Skip to content
This repository was archived by the owner on Jul 13, 2020. It is now read-only.

Commit 34789e4

Browse files
committed
separate transpiler loading into loader-specific implementation
1 parent e28d36d commit 34789e4

File tree

2 files changed

+25
-23
lines changed

2 files changed

+25
-23
lines changed

src/system-resolve.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,28 @@ SystemLoader.prototype.normalize = function(name, parentName, parentAddress) {
2020

2121
SystemLoader.prototype.locate = function(load) {
2222
return load.name;
23+
};
24+
25+
26+
// ensure the transpiler is loaded correctly
27+
SystemLoader.prototype.instantiate = function(load) {
28+
var self = this;
29+
return Promise.resolve(self.normalize(self.transpiler))
30+
.then(function(transpilerNormalized) {
31+
// load transpiler as a global (avoiding System clobbering)
32+
if (load.address === transpilerNormalized) {
33+
return {
34+
deps: [],
35+
execute: function() {
36+
var curSystem = __global.System;
37+
var curLoader = __global.Reflect.Loader;
38+
// ensure not detected as CommonJS
39+
__eval('(function(require,exports,module){' + load.source + '})();', load.address, __global);
40+
__global.System = curSystem;
41+
__global.Reflect.Loader = curLoader;
42+
return self.newModule({ 'default': __global[self.transpiler], __useDefault: true });
43+
}
44+
};
45+
}
46+
});
2347
};

src/transpiler.js

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ var transpile = (function() {
99
function transpile(load) {
1010
var self = this;
1111

12-
return Promise.resolve(__global[self.transpiler == 'typescript' ? 'ts' : self.transpiler]
12+
return Promise.resolve(__global[self.transpiler == 'typescript' ? 'ts' : self.transpiler]
1313
|| (self.pluginLoader || self)['import'](self.transpiler))
1414
.then(function(transpiler) {
1515
if (transpiler.__useDefault)
@@ -36,28 +36,6 @@ var transpile = (function() {
3636
});
3737
};
3838

39-
Loader.prototype.instantiate = function(load) {
40-
var self = this;
41-
return Promise.resolve(self.normalize(self.transpiler))
42-
.then(function(transpilerNormalized) {
43-
// load transpiler as a global (avoiding System clobbering)
44-
if (load.address === transpilerNormalized) {
45-
return {
46-
deps: [],
47-
execute: function() {
48-
var curSystem = __global.System;
49-
var curLoader = __global.Reflect.Loader;
50-
// ensure not detected as CommonJS
51-
__eval('(function(require,exports,module){' + load.source + '})();', load.address, __global);
52-
__global.System = curSystem;
53-
__global.Reflect.Loader = curLoader;
54-
return self.newModule({ 'default': __global[self.transpiler], __useDefault: true });
55-
}
56-
};
57-
}
58-
});
59-
};
60-
6139
function traceurTranspile(load, traceur) {
6240
var options = this.traceurOptions || {};
6341
options.modules = 'instantiate';

0 commit comments

Comments
 (0)