diff --git a/lib/es.js b/lib/es.js index f7b02060..4820f36d 100644 --- a/lib/es.js +++ b/lib/es.js @@ -34,17 +34,13 @@ var loader = this; return translate.call(loader, load) .then(function(source) { - if (load.metadata.format === 'es6') - throw new TypeError(load.name + ' has been configured to use the "es6" module format, which has been renamed to "es".' - + '\n\tSet `System.meta["' + load.name + '"] = {format: "es"}` to resolve this.'); - // detect & transpile ES6 - if (load.metadata.format == 'es' || !load.metadata.format && source.match(esRegEx)) { + if (load.metadata.format == 'es' || load.metadata.format == 'es6' || !load.metadata.format && source.match(esRegEx)) { load.metadata.format = 'es'; return transpile.call(loader, load); } - if (load.metadata.format == 'system') { + if (load.metadata.format == 'system' || load.metadata.format == 'register') { if (!__global.$traceurRuntime && load.source.match(traceurRuntimeRegEx)) { return loader['import']('traceur-runtime').then(function() { return source; diff --git a/lib/meta.js b/lib/meta.js index 234e6558..9ef7b72e 100644 --- a/lib/meta.js +++ b/lib/meta.js @@ -117,7 +117,18 @@ if (metaName) { var metaValue = metaString.substr(metaName.length + 1, metaString.length - metaName.length - 1); - setMetaProperty(load.metadata, metaName, metaValue); + // support "deps [jquery,bootstrap]" array syntax + if (metaValue[0] == '[' && metaValue[metaValue.length - 1] == ']') + metaValue = metaValue.substr(1, metaValue.length - 2).split(','); + + // Array addition backwards-compatibility, to be deprecated + if (load.metadata[metaName] instanceof Array) { + if (!(metaValue instanceof Array)) + metaValue = [metaValue]; + load.metadata[metaName] = load.metadata[metaName].concat(metaValue); + } + else + setMetaProperty(load.metadata, metaName, metaValue); } } } diff --git a/lib/register.js b/lib/register.js index ddd34255..62171250 100644 --- a/lib/register.js +++ b/lib/register.js @@ -56,7 +56,7 @@ // dynamic backwards-compatibility // can be deprecated eventually if (typeof declare == 'boolean') - throw new TypeError('System.register has been split into System.register and System.registerDyanmic taking three arguments and four argument forms respectively. The bundle may need to be rebuilt.'); + return this.registerDynamic.apply(this, arguments); doRegister(this, name, { declarative: true, @@ -426,7 +426,7 @@ anonRegister = null; calledRegister = false; - if (load.metadata.format == 'system') + if (load.metadata.format == 'system' || load.metadata.format == 'register') load.metadata.scriptLoad = true; return fetch.call(this, load); @@ -443,7 +443,7 @@ load.metadata.deps = load.metadata.deps || []; // run detection for register format - if (load.metadata.format == 'system' || !load.metadata.format && load.source.match(registerRegEx)) + if (load.metadata.format == 'system' || load.metadata.format == 'register' || !load.metadata.format && load.source.match(registerRegEx)) load.metadata.format = 'system'; return source; }); @@ -456,9 +456,6 @@ var entry; - if (load.metadata.format == 'register') - throw new TypeError(load.name + ' defined as format "register", which has been renamed to "system".'); - // first we check if this module has already been defined in the registry if (loader.defined[load.name]) { entry = loader.defined[load.name]; @@ -480,7 +477,7 @@ } // Contains System.register calls - else if (load.metadata.format == 'system' || load.metadata.format == 'es') { + else if (load.metadata.format == 'system' || load.metadata.format == 'register' || load.metadata.format == 'es' || load.metadata.format == 'es6') { anonRegister = null; calledRegister = false;