backwards compatibility adjustments

This commit is contained in:
guybedford 2015-04-29 16:31:03 +02:00
parent 1ee77a3f99
commit 80b6a99e45
3 changed files with 18 additions and 14 deletions

View File

@ -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;

View File

@ -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);
}
}
}

View File

@ -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;