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

Commit 7ea47a8

Browse files
committed
System protection
1 parent adba021 commit 7ea47a8

File tree

1 file changed

+13
-10
lines changed

1 file changed

+13
-10
lines changed

src/transpiler.js

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,26 @@
44
(function(Loader) {
55
var g = __global;
66

7-
function getTranspilerModule(globalName) {
8-
return System.newModule({ 'default': g[globalName], __useDefault: true });
7+
function getTranspilerModule(loader, globalName) {
8+
return loader.newModule({ 'default': g[globalName], __useDefault: true });
99
}
1010
var firstRun = true;
1111

1212
// use Traceur by default
1313
Loader.prototype.transpiler = 'traceur';
1414

1515
Loader.prototype.transpile = function(load) {
16+
var self = this;
17+
1618
// pick up Transpiler modules from existing globals on first run if set
1719
if (firstRun) {
18-
if (g.traceur && !this.has('traceur'))
19-
this.set('traceur', getTranspilerModule('traceur'));
20-
if (g.babel && !this.has('babel'))
21-
this.set('babel', getTranspilerModule('babel'));
20+
if (g.traceur && !self.has('traceur'))
21+
self.set('traceur', getTranspilerModule(self, 'traceur'));
22+
if (g.babel && !self.has('babel'))
23+
self.set('babel', getTranspilerModule(self, 'babel'));
2224
firstRun = false;
2325
}
24-
25-
var self = this;
26+
2627
return self['import'](self.transpiler).then(function(transpiler) {
2728
if (transpiler.__useDefault)
2829
transpiler = transpiler['default'];
@@ -32,7 +33,8 @@
3233

3334
Loader.prototype.instantiate = function(load) {
3435
// load transpiler as a global (avoiding System clobbering)
35-
if (load.name === this.transpiler)
36+
if (load.name === this.transpiler) {
37+
var self = this;
3638
return {
3739
deps: [],
3840
execute: function() {
@@ -41,9 +43,10 @@
4143
__eval(load.source, g, load);
4244
g.System = curSystem;
4345
g.Reflect.Loader = curLoader;
44-
return getTranspilerModule(load.name);
46+
return getTranspilerModule(self, load.name);
4547
}
4648
};
49+
}
4750
};
4851

4952
function traceurTranspile(load, traceur) {

0 commit comments

Comments
 (0)