script(code, name, referrerName, address, metadata) {
    var normalizedName = this.loader_.normalize(name || '', referrerName, address);
    var codeUnit = new EvalCodeUnit(this.loaderCompiler, code, 'script',
                                    normalizedName, referrerName, address);
    var key = {};
    if (name)
      key = this.getKey(normalizedName, 'script');
    codeUnit.metadata = this.defaultMetadata_(metadata);
    this.cache.set(key, codeUnit);
    this.handleCodeUnitLoaded(codeUnit);
    return codeUnit.promise;
  }
@param {string} code, source to be compiled as 'Script'
@param {string=} name,  ModuleSpecifier-like name, not normalized.
@param {string=} referrerName,  normalized name of container
@param {string=} address, URL