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

Commit 8ee0ba4

Browse files
committed
use single build file
1 parent adc4517 commit 8ee0ba4

16 files changed

+131
-159
lines changed

.travis.yml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ before_install:
1414
script:
1515
- grunt
1616
- npm test
17-
- npm run test:browser -- --polyfill
18-
- npm run test:browser -- --saucelabs
19-
- npm run test:browser -- --saucelabs --ie8
17+
- npm run test:browser-traceur -- --polyfill
18+
- npm run test:browser-6to5 -- --polyfill
19+
- npm run test:browser-traceur -- --saucelabs
20+
- npm run test:browser-6to5 -- --saucelabs
21+
- npm run test:browser-traceur -- --saucelabs --ie8
22+
- npm run test:browser-6to5 -- --saucelabs --ie8

Gruntfile.js

Lines changed: 13 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -20,47 +20,28 @@ module.exports = function (grunt) {
2020
concat: {
2121
dist: {
2222
files: {
23-
'dist/<%= pkg.name %>-traceur.src.js': [
23+
'dist/<%= pkg.name %>.src.js': [
2424
'node_modules/when/es6-shim/Promise.js',
2525
'src/polyfill-wrapper-start.js',
26-
'dist/<%= pkg.name %>-traceur.js',
26+
'dist/<%= pkg.name %>.js',
2727
'src/polyfill-wrapper-end.js'
2828
],
29-
'dist/<%= pkg.name %>-6to5.src.js': [
30-
'node_modules/when/es6-shim/Promise.js',
31-
'src/polyfill-wrapper-start.js',
32-
'dist/<%= pkg.name %>-6to5.js',
33-
'src/polyfill-wrapper-end.js'
34-
],
35-
'dist/<%= pkg.name %>-traceur-sp.src.js': [
36-
'src/polyfill-wrapper-start.js',
37-
'dist/<%= pkg.name %>-traceur.js',
38-
'src/polyfill-wrapper-end.js'
39-
],
40-
'dist/<%= pkg.name %>-6to5-sp.src.js': [
29+
'dist/<%= pkg.name %>-sans-promises.src.js': [
4130
'src/polyfill-wrapper-start.js',
42-
'dist/<%= pkg.name %>-6to5.js',
31+
'dist/<%= pkg.name %>.js',
4332
'src/polyfill-wrapper-end.js'
4433
]
4534
}
4635
}
4736
},
4837
esnext: {
49-
distTraceur: {
50-
src: [
51-
'src/loader.js',
52-
'src/traceur-loader.js',
53-
'src/system.js'
54-
],
55-
dest: 'dist/<%= pkg.name %>-traceur.js'
56-
},
57-
dist6to5: {
38+
dist: {
5839
src: [
5940
'src/loader.js',
60-
'src/6to5-loader.js',
41+
'src/parser.js',
6142
'src/system.js'
6243
],
63-
dest: 'dist/<%= pkg.name %>-6to5.js'
44+
dest: 'dist/<%= pkg.name %>.js'
6445
}
6546
},
6647
'string-replace': {
@@ -89,27 +70,16 @@ module.exports = function (grunt) {
8970
},
9071
sourceMap: true
9172
},
92-
distTraceur: {
93-
options: {
94-
banner: '<%= meta.banner %>\n'
95-
},
96-
src: 'dist/<%= pkg.name %>-traceur.src.js',
97-
dest: 'dist/<%= pkg.name %>-traceur.js'
98-
},
99-
dist6to5: {
73+
dist: {
10074
options: {
10175
banner: '<%= meta.banner %>\n'
10276
},
103-
src: 'dist/<%= pkg.name %>-6to5.src.js',
104-
dest: 'dist/<%= pkg.name %>-6to5.js'
105-
},
106-
distTraceurSansPromises: {
107-
src: 'dist/<%= pkg.name %>-traceur-sp.src.js',
108-
dest: 'dist/<%= pkg.name %>-traceur-sp.js'
77+
src: 'dist/<%= pkg.name %>.src.js',
78+
dest: 'dist/<%= pkg.name %>.js'
10979
},
110-
dist6to5SansPromises: {
111-
src: 'dist/<%= pkg.name %>-6to5-sp.src.js',
112-
dest: 'dist/<%= pkg.name %>-6to5-sp.js'
80+
distSansPromises: {
81+
src: 'dist/<%= pkg.name %>-sans-promises.src.js',
82+
dest: 'dist/<%= pkg.name %>-sans-promises.js'
11383
}
11484
}
11585
});

karma.conf.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ module.exports = function(config) {
3636

3737
[!options.ie8 ? (!options['6to5'] ? 'node_modules/traceur/bin/traceur.js' : 'node_modules/6to5/browser.js') : ''],
3838

39-
'dist/es6-module-loader-' + (!options['6to5'] ? 'traceur' : '6to5') + (options.polyfill ? '' : '-sp') + '.src.js',
39+
'dist/es6-module-loader' + (options.polyfill ? '' : '-sans-promises') + '.src.js',
4040

4141
'test/_browser.js',
4242
'test/browser-script-type-module.js',

lib/index-6to5.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
require('../dist/es6-module-loader-6to5.src');
1+
var System = require('../dist/es6-module-loader.src');
2+
3+
System.parser = '6to5';
24

35
module.exports = {
46
Loader: global.LoaderPolyfill,
5-
System: global.System
7+
System: System
68
};

lib/index-traceur.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
1-
require('../dist/es6-module-loader-traceur.src');
1+
if (!global.traceur)
2+
require('traceur');
3+
4+
var System = require('../dist/es6-module-loader.src');
5+
6+
System.parser = 'traceur';
27

38
module.exports = {
49
Loader: global.LoaderPolyfill,
5-
System: global.System
10+
System: System
611
};

package.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,10 @@
5757
"scripts": {
5858
"test": "npm run test:node && npm run test:browser",
5959
"test:node": "mocha test/_node-traceur.js && mocha test/_node-6to5.js",
60-
"test:browser": "karma start --single-run && karma start --single-run --6to5",
61-
"test:browsers:perf": "karma start karma-benchmark.conf.js --single-run"
60+
"test:browser": "npm run test:browser-traceur && npm run test:browser-6to5",
61+
"test:browser-traceur": "karma start --single-run",
62+
"test:browser-6to5": "karma start --single-run --6to5",
63+
"test:browser:perf": "karma start karma-benchmark.conf.js --single-run"
6264
},
6365
"dependencies": {
6466
"6to5": "^2.0.2",

src/6to5-loader.js

Lines changed: 0 additions & 40 deletions
This file was deleted.

src/parser.js

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
/*
2+
* Traceur and 6to5 Parsing Code for Loader
3+
*/
4+
(function(Loader) {
5+
// parse function is used to parse a load record
6+
// Returns an array of ModuleSpecifiers
7+
var parser, parserName, parserOptionsName;
8+
9+
// use Traceur by default
10+
Loader.prototype.parser = 'traceur';
11+
12+
Loader.prototype.parse = function(load) {
13+
if (!parser) {
14+
parserName = this.parser == '6to5' ? 'to5' : this.parser;
15+
16+
// try to pick up parser from global or require
17+
if (typeof window == 'undefined' && typeof WorkerGlobalScope == 'undefined')
18+
parser = require(this.parser);
19+
else
20+
parser = __global[parserName]
21+
22+
if (!parser)
23+
throw new TypeError('Include Traceur or 6to5 for module syntax support');
24+
25+
parserOptionsName = parserName + 'Options';
26+
}
27+
28+
var source = (this.parser == '6to5' ? to5Parse : traceurParse).call(this, load);
29+
30+
source = 'var __moduleAddress = "' + load.address + '";' + source;
31+
32+
__eval(source, __global, load);
33+
}
34+
35+
function traceurParse(load) {
36+
var options = this.traceurOptions || {};
37+
options.modules = 'instantiate';
38+
options.script = false;
39+
options.sourceMaps = 'inline';
40+
options.filename = load.address;
41+
42+
var compiler = new parser.Compiler(options);
43+
var source = doTraceurCompile(load.source, compiler, options.filename);
44+
45+
// add "!eval" to end of Traceur sourceURL
46+
// I believe this does something?
47+
source += '!eval';
48+
49+
return source;
50+
}
51+
function doTraceurCompile(source, compiler, filename) {
52+
try {
53+
return compiler.compile(source, filename);
54+
}
55+
catch(e) {
56+
// traceur throws an error array
57+
throw e[0];
58+
}
59+
}
60+
61+
function to5Parse(load) {
62+
var options = this.to5Options || {};
63+
options.modules = 'system';
64+
options.sourceMap = 'inline';
65+
options.filename = load.address;
66+
options.code = true;
67+
options.ast = false;
68+
69+
var source = parser.transform(load.source, options).code;
70+
71+
// add "!eval" to end of 6to5 sourceURL
72+
// I believe this does something?
73+
return source + '\n//# sourceURL=' + load.address + '!eval';
74+
}
75+
76+
77+
})(__global.LoaderPolyfill);

src/traceur-loader.js

Lines changed: 0 additions & 58 deletions
This file was deleted.

test/_node-6to5.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,11 @@ global.expect = require('expect.js');
44

55
require('./_helper');
66

7-
require('../lib/index-6to5');
7+
require('regenerator/runtime');
8+
9+
global.System = require('../lib/index-6to5').System;
10+
11+
System.parser = '6to5';
812

913
require('./system.spec');
1014

0 commit comments

Comments
 (0)