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

Commit d55a95b

Browse files
committed
support System.traceurOptions, better anonymous and Traceur errors
1 parent 15dc9ba commit d55a95b

File tree

3 files changed

+24
-6
lines changed

3 files changed

+24
-6
lines changed

src/loader.js

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ function logloads(loads) {
247247
return;
248248

249249
if (instantiateResult === undefined) {
250-
load.address = load.address || 'anon' + ++anonCnt;
250+
load.address = load.address || '<Anonymous Module ' + ++anonCnt + '>';
251251

252252
// NB instead of load.kind, use load.isDeclarative
253253
load.isDeclarative = true;
@@ -1022,6 +1022,16 @@ function logloads(loads) {
10221022
// parse function is used to parse a load record
10231023
// Returns an array of ModuleSpecifiers
10241024
var traceur;
1025+
1026+
function doCompile(source, compiler, filename) {
1027+
try {
1028+
return compiler.compile(source, filename);
1029+
}
1030+
catch(e) {
1031+
// traceur throws an error array
1032+
throw e[0];
1033+
}
1034+
}
10251035
Loader.prototype.parse = function(load) {
10261036
if (!traceur) {
10271037
if (typeof window == 'undefined' &&
@@ -1039,14 +1049,19 @@ function logloads(loads) {
10391049

10401050
load.isDeclarative = true;
10411051

1042-
var options = traceur.options || {};
1052+
var options = this.traceurOptions || {};
10431053
options.modules = 'instantiate';
10441054
options.script = false;
10451055
options.sourceMaps = true;
10461056
options.filename = load.address;
10471057

10481058
var compiler = new traceur.Compiler(options);
1049-
var source = compiler.compile(load.source, options.filename);
1059+
1060+
var source = doCompile(load.source, compiler, options.filename);
1061+
1062+
if (!source)
1063+
throw 'Error evaluating module ' + load.address;
1064+
10501065
var sourceMap = compiler.getSourceMap();
10511066

10521067
if (__global.btoa && sourceMap)

src/system.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -273,11 +273,10 @@
273273

274274
function ready() {
275275
var scripts = document.getElementsByTagName('script');
276-
277276
for (var i = 0; i < scripts.length; i++) {
278277
var script = scripts[i];
279278
if (script.type == 'module') {
280-
var source = script.innerHTML;
279+
var source = script.innerHTML.substr(1);
281280
System.module(source)['catch'](function(err) { setTimeout(function() { throw err; }); });
282281
}
283282
}

test/test.html

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,11 @@
1515

1616
<script src="../node_modules/when/es6-shim/Promise.js"></script>
1717

18-
<script src="../dist/es6-module-loader.js"></script>
18+
<script src="../dist/es6-module-loader.src.js"></script>
19+
<script>
20+
// test traceurOptions and anonymous errors
21+
// System.traceurOptions = { classes: false };
22+
</script>
1923

2024
<script>
2125
// test tracing

0 commit comments

Comments
 (0)