code: function(name, options) {
          // run normalize first
          var loaderObj = this;
  
          // added, see https://bugs.ecmascript.org/show_bug.cgi?id=2659
          return Promise.resolve(loaderObj.normalize(name, options && options.name, options && options.address))
          .then(function(name) {
            var loader = loaderObj._loader;
  
            if (loader.modules[name]) {
              doEnsureEvaluated(loader.modules[name], [], loader._loader);
              return loader.modules[name].module;
            }
  
            return importPromises[name] || createImportPromise(name,
              loadModule(loader, name, options || {})
              .then(function(load) {
                delete importPromises[name];
                return evaluateLoadedModule(loader, load);
              }));
          });
        }
docs: 26.3.3.8