|
4 | 4 | (function(Loader) {
|
5 | 5 | var g = __global;
|
6 | 6 |
|
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 }); |
9 | 9 | }
|
10 | 10 | var firstRun = true;
|
11 | 11 |
|
12 | 12 | // use Traceur by default
|
13 | 13 | Loader.prototype.transpiler = 'traceur';
|
14 | 14 |
|
15 | 15 | Loader.prototype.transpile = function(load) {
|
| 16 | + var self = this; |
| 17 | + |
16 | 18 | // pick up Transpiler modules from existing globals on first run if set
|
17 | 19 | 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')); |
22 | 24 | firstRun = false;
|
23 | 25 | }
|
24 |
| - |
25 |
| - var self = this; |
| 26 | + |
26 | 27 | return self['import'](self.transpiler).then(function(transpiler) {
|
27 | 28 | if (transpiler.__useDefault)
|
28 | 29 | transpiler = transpiler['default'];
|
|
32 | 33 |
|
33 | 34 | Loader.prototype.instantiate = function(load) {
|
34 | 35 | // load transpiler as a global (avoiding System clobbering)
|
35 |
| - if (load.name === this.transpiler) |
| 36 | + if (load.name === this.transpiler) { |
| 37 | + var self = this; |
36 | 38 | return {
|
37 | 39 | deps: [],
|
38 | 40 | execute: function() {
|
|
41 | 43 | __eval(load.source, g, load);
|
42 | 44 | g.System = curSystem;
|
43 | 45 | g.Reflect.Loader = curLoader;
|
44 |
| - return getTranspilerModule(load.name); |
| 46 | + return getTranspilerModule(self, load.name); |
45 | 47 | }
|
46 | 48 | };
|
| 49 | + } |
47 | 50 | };
|
48 | 51 |
|
49 | 52 | function traceurTranspile(load, traceur) {
|
|
0 commit comments