esperanto-source 0.6.17.3 → 0.6.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/esperanto/source/version.rb +1 -1
- data/vendor/esperanto.browser.js +227 -168
- data/vendor/esperanto.js +178 -157
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5eed9288fc9bb2887d6c21a1c181b38df7f33238
|
4
|
+
data.tar.gz: 0c66bb5c87139cf500b514f208c53bd167324284
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: be6b159bcf781c1e36cfc0a687cb215a1cecaf6342c9d2ebf225bd8cf0748f650b3bd809374927da128a8ccbf179421acdff482b388fa856ab9e5620dd2956a6
|
7
|
+
data.tar.gz: 0b8ea823e8f5af10c02d21fcc866b8d59cf4c9027892687c4387aadb449d1be05dafba8d586170b0c7f35c7495a17ac9715f3b262873b80d7b7df976c1e8c557
|
data/vendor/esperanto.browser.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*
|
2
|
-
esperanto.js v0.6.
|
2
|
+
esperanto.js v0.6.18 - 2015-03-30
|
3
3
|
http://esperantojs.org
|
4
4
|
|
5
5
|
Released under the MIT License.
|
@@ -42,7 +42,7 @@
|
|
42
42
|
return new Buffer( str ).toString( 'base64' );
|
43
43
|
};
|
44
44
|
} else {
|
45
|
-
throw new Error( 'Unsupported environment' );
|
45
|
+
throw new Error( 'Unsupported environment: `window.btoa` or `Buffer` should be supported.' );
|
46
46
|
}
|
47
47
|
|
48
48
|
var btoa = _btoa;
|
@@ -529,6 +529,10 @@
|
|
529
529
|
},
|
530
530
|
|
531
531
|
append: function ( content ) {
|
532
|
+
if ( typeof content !== 'string' ) {
|
533
|
+
throw new TypeError( 'appended content must be a string' );
|
534
|
+
}
|
535
|
+
|
532
536
|
this.str += content;
|
533
537
|
return this;
|
534
538
|
},
|
@@ -675,6 +679,10 @@
|
|
675
679
|
},
|
676
680
|
|
677
681
|
insert: function ( index, content ) {
|
682
|
+
if ( typeof content !== 'string' ) {
|
683
|
+
throw new TypeError( 'inserted content must be a string' );
|
684
|
+
}
|
685
|
+
|
678
686
|
if ( index === 0 ) {
|
679
687
|
this.prepend( content );
|
680
688
|
} else if ( index === this.original.length ) {
|
@@ -729,11 +737,41 @@
|
|
729
737
|
},
|
730
738
|
|
731
739
|
remove: function ( start, end ) {
|
732
|
-
|
740
|
+
var loc, d, i, currentStart, currentEnd;
|
741
|
+
|
742
|
+
if ( start < 0 || end > this.mappings.length ) {
|
743
|
+
throw new Error( 'Character is out of bounds' );
|
744
|
+
}
|
745
|
+
|
746
|
+
d = 0;
|
747
|
+
currentStart = -1;
|
748
|
+
currentEnd = -1;
|
749
|
+
for ( i = start; i < end; i += 1 ) {
|
750
|
+
loc = this.mappings[i];
|
751
|
+
|
752
|
+
if ( loc !== -1 ) {
|
753
|
+
if ( !~currentStart ) {
|
754
|
+
currentStart = loc;
|
755
|
+
}
|
756
|
+
|
757
|
+
currentEnd = loc + 1;
|
758
|
+
|
759
|
+
this.mappings[i] = -1;
|
760
|
+
d += 1;
|
761
|
+
}
|
762
|
+
}
|
763
|
+
|
764
|
+
this.str = this.str.slice( 0, currentStart ) + this.str.slice( currentEnd );
|
765
|
+
|
766
|
+
adjust( this.mappings, end, this.mappings.length, -d );
|
733
767
|
return this;
|
734
768
|
},
|
735
769
|
|
736
770
|
replace: function ( start, end, content ) {
|
771
|
+
if ( typeof content !== 'string' ) {
|
772
|
+
throw new TypeError( 'replacement content must be a string' );
|
773
|
+
}
|
774
|
+
|
737
775
|
var firstChar, lastChar, d;
|
738
776
|
|
739
777
|
firstChar = this.locate( start );
|
@@ -934,7 +972,7 @@
|
|
934
972
|
|
935
973
|
estraverse.traverse( ast, {
|
936
974
|
enter: function ( node ) {
|
937
|
-
if ( node.type === 'ImportDeclaration' ) {
|
975
|
+
if ( node.type === 'ImportDeclaration' || node.type === 'ExportSpecifier' ) {
|
938
976
|
node._skip = true;
|
939
977
|
}
|
940
978
|
|
@@ -1076,16 +1114,19 @@
|
|
1076
1114
|
imports.push( declaration );
|
1077
1115
|
}
|
1078
1116
|
|
1079
|
-
else if ( node.type === '
|
1080
|
-
declaration =
|
1117
|
+
else if ( node.type === 'ExportDefaultDeclaration' ) {
|
1118
|
+
declaration = processDefaultExport( node, source );
|
1081
1119
|
exports.push( declaration );
|
1082
1120
|
|
1083
|
-
if (
|
1084
|
-
|
1085
|
-
throw new Error( 'Duplicate default exports' );
|
1086
|
-
}
|
1087
|
-
mod.defaultExport = declaration;
|
1121
|
+
if ( mod.defaultExport ) {
|
1122
|
+
throw new Error( 'Duplicate default exports' );
|
1088
1123
|
}
|
1124
|
+
mod.defaultExport = declaration;
|
1125
|
+
}
|
1126
|
+
|
1127
|
+
else if ( node.type === 'ExportNamedDeclaration' ) {
|
1128
|
+
declaration = processExport( node, source );
|
1129
|
+
exports.push( declaration );
|
1089
1130
|
|
1090
1131
|
if ( node.source ) {
|
1091
1132
|
// it's both an import and an export, e.g.
|
@@ -1129,20 +1170,25 @@
|
|
1129
1170
|
specifiers: node.specifiers.map( function(s ) {
|
1130
1171
|
var id;
|
1131
1172
|
|
1132
|
-
if ( s.type === '
|
1173
|
+
if ( s.type === 'ImportNamespaceSpecifier' ) {
|
1133
1174
|
return {
|
1134
1175
|
isBatch: true,
|
1135
|
-
name: s.
|
1136
|
-
as: s.
|
1176
|
+
name: s.local.name, // TODO is this line necessary?
|
1177
|
+
as: s.local.name
|
1137
1178
|
};
|
1138
1179
|
}
|
1139
1180
|
|
1140
|
-
|
1181
|
+
if ( s.type === 'ImportDefaultSpecifier' ) {
|
1182
|
+
return {
|
1183
|
+
isDefault: true,
|
1184
|
+
name: 'default',
|
1185
|
+
as: s.local.name
|
1186
|
+
}
|
1187
|
+
}
|
1141
1188
|
|
1142
1189
|
return {
|
1143
|
-
|
1144
|
-
|
1145
|
-
as: s.name ? s.name.name : id
|
1190
|
+
name: ( !!passthrough ? s.exported : s.imported ).name,
|
1191
|
+
as: s.local.name
|
1146
1192
|
};
|
1147
1193
|
})
|
1148
1194
|
};
|
@@ -1164,6 +1210,53 @@
|
|
1164
1210
|
return x;
|
1165
1211
|
}
|
1166
1212
|
|
1213
|
+
function processDefaultExport ( node, source ) {
|
1214
|
+
var result = {
|
1215
|
+
isDefault: true,
|
1216
|
+
node: node,
|
1217
|
+
start: node.start,
|
1218
|
+
end: node.end
|
1219
|
+
};
|
1220
|
+
|
1221
|
+
var d = node.declaration;
|
1222
|
+
|
1223
|
+
if ( d.type === 'FunctionExpression' ) {
|
1224
|
+
// Case 1: `export default function () {...}`
|
1225
|
+
result.hasDeclaration = true; // TODO remove in favour of result.type
|
1226
|
+
result.type = 'anonFunction';
|
1227
|
+
}
|
1228
|
+
|
1229
|
+
else if ( d.type === 'FunctionDeclaration' ) {
|
1230
|
+
// Case 2: `export default function foo () {...}`
|
1231
|
+
result.hasDeclaration = true; // TODO remove in favour of result.type
|
1232
|
+
result.type = 'namedFunction';
|
1233
|
+
result.name = d.id.name;
|
1234
|
+
}
|
1235
|
+
|
1236
|
+
else if ( d.type === 'ClassExpression' ) {
|
1237
|
+
// Case 3: `export default class {...}`
|
1238
|
+
result.hasDeclaration = true; // TODO remove in favour of result.type
|
1239
|
+
result.type = 'anonClass';
|
1240
|
+
}
|
1241
|
+
|
1242
|
+
else if ( d.type === 'ClassDeclaration' ) {
|
1243
|
+
// Case 4: `export default class Foo {...}`
|
1244
|
+
result.hasDeclaration = true; // TODO remove in favour of result.type
|
1245
|
+
result.type = 'namedClass';
|
1246
|
+
result.name = d.id.name;
|
1247
|
+
}
|
1248
|
+
|
1249
|
+
else {
|
1250
|
+
result.type = 'expression';
|
1251
|
+
result.name = 'default';
|
1252
|
+
}
|
1253
|
+
|
1254
|
+
result.value = source.slice( d.start, d.end );
|
1255
|
+
result.valueStart = d.start;
|
1256
|
+
|
1257
|
+
return result;
|
1258
|
+
}
|
1259
|
+
|
1167
1260
|
/**
|
1168
1261
|
* Generates a representation of an export declaration
|
1169
1262
|
* @param {object} node - the original AST node
|
@@ -1194,62 +1287,23 @@
|
|
1194
1287
|
else if ( d.type === 'FunctionDeclaration' ) {
|
1195
1288
|
result.hasDeclaration = true; // TODO remove in favour of result.type
|
1196
1289
|
result.type = 'namedFunction';
|
1197
|
-
result.isDefault = !!node.default;
|
1198
1290
|
result.name = d.id.name;
|
1199
1291
|
}
|
1200
1292
|
|
1201
|
-
|
1202
|
-
result.hasDeclaration = true; // TODO remove in favour of result.type
|
1203
|
-
result.isDefault = true;
|
1204
|
-
|
1205
|
-
// Case 3: `export default function foo () {...}`
|
1206
|
-
if ( d.id ) {
|
1207
|
-
result.type = 'namedFunction';
|
1208
|
-
result.name = d.id.name;
|
1209
|
-
}
|
1210
|
-
|
1211
|
-
// Case 4: `export default function () {...}`
|
1212
|
-
else {
|
1213
|
-
result.type = 'anonFunction';
|
1214
|
-
}
|
1215
|
-
}
|
1216
|
-
|
1217
|
-
// Case 5: `export class Foo {...}`
|
1293
|
+
// Case 3: `export class Foo {...}`
|
1218
1294
|
else if ( d.type === 'ClassDeclaration' ) {
|
1219
1295
|
result.hasDeclaration = true; // TODO remove in favour of result.type
|
1220
1296
|
result.type = 'namedClass';
|
1221
|
-
result.isDefault = !!node.default;
|
1222
1297
|
result.name = d.id.name;
|
1223
1298
|
}
|
1224
|
-
|
1225
|
-
else if ( d.type === 'ClassExpression' ) {
|
1226
|
-
result.hasDeclaration = true; // TODO remove in favour of result.type
|
1227
|
-
result.isDefault = true;
|
1228
|
-
|
1229
|
-
// Case 6: `export default class Foo {...}`
|
1230
|
-
if ( d.id ) {
|
1231
|
-
result.type = 'namedClass';
|
1232
|
-
result.name = d.id.name;
|
1233
|
-
}
|
1234
|
-
|
1235
|
-
// Case 7: `export default class {...}`
|
1236
|
-
else {
|
1237
|
-
result.type = 'anonClass';
|
1238
|
-
}
|
1239
|
-
}
|
1240
|
-
|
1241
|
-
// Case 8: `export default 1 + 2`
|
1242
|
-
else {
|
1243
|
-
result.type = 'expression';
|
1244
|
-
result.isDefault = true;
|
1245
|
-
result.name = 'default';
|
1246
|
-
}
|
1247
1299
|
}
|
1248
1300
|
|
1249
1301
|
// Case 9: `export { foo, bar };`
|
1250
1302
|
else {
|
1251
1303
|
result.type = 'named';
|
1252
|
-
result.specifiers = node.specifiers.map( function(s ) {
|
1304
|
+
result.specifiers = node.specifiers.map( function(s ) {
|
1305
|
+
return { name: s.local.name };
|
1306
|
+
}); // TODO as?
|
1253
1307
|
}
|
1254
1308
|
|
1255
1309
|
return result;
|
@@ -1352,24 +1406,36 @@
|
|
1352
1406
|
return path.split( pathSplitRE );
|
1353
1407
|
}
|
1354
1408
|
|
1355
|
-
|
1356
|
-
|
1409
|
+
var SOURCEMAPPINGURL_REGEX = /^# sourceMappingURL=/;
|
1410
|
+
|
1411
|
+
function getStandaloneModule ( options ) {
|
1412
|
+
var toRemove = [];
|
1357
1413
|
|
1358
|
-
mod = {
|
1414
|
+
var mod = {
|
1359
1415
|
body: new MagicString( options.source ),
|
1360
1416
|
ast: acorn.parse( options.source, {
|
1361
1417
|
ecmaVersion: 6,
|
1362
|
-
|
1418
|
+
sourceType: 'module',
|
1419
|
+
onComment: function ( block, text, start, end ) {
|
1420
|
+
// sourceMappingURL comments should be removed
|
1421
|
+
if ( !block && /^# sourceMappingURL=/.test( text ) ) {
|
1422
|
+
toRemove.push({ start: start, end: end });
|
1423
|
+
}
|
1424
|
+
}
|
1363
1425
|
})
|
1364
1426
|
};
|
1365
1427
|
|
1366
|
-
|
1428
|
+
toRemove.forEach( function(end) {var start = end.start, end = end.end;return mod.body.remove( start, end )} );
|
1429
|
+
|
1430
|
+
var imports = (exports = findImportsAndExports( mod, options.source, mod.ast ))[0], exports = exports[1];
|
1367
1431
|
|
1368
1432
|
disallowConflictingImports( imports );
|
1369
1433
|
|
1370
1434
|
mod.imports = imports;
|
1371
1435
|
mod.exports = exports;
|
1372
1436
|
|
1437
|
+
var conflicts = {};
|
1438
|
+
|
1373
1439
|
if ( options.strict ) {
|
1374
1440
|
annotateAst( mod.ast );
|
1375
1441
|
|
@@ -1382,7 +1448,7 @@
|
|
1382
1448
|
determineImportNames( imports, options.getModuleName, conflicts );
|
1383
1449
|
|
1384
1450
|
return mod;
|
1385
|
-
|
1451
|
+
}
|
1386
1452
|
|
1387
1453
|
function determineImportNames ( imports, userFn, usedNames ) {
|
1388
1454
|
var nameById = {}, inferredNames = {};
|
@@ -1450,44 +1516,48 @@
|
|
1450
1516
|
}
|
1451
1517
|
|
1452
1518
|
function transformExportDeclaration ( declaration, body ) {
|
1453
|
-
|
1519
|
+
if ( !declaration ) {
|
1520
|
+
return;
|
1521
|
+
}
|
1454
1522
|
|
1455
|
-
|
1456
|
-
switch ( declaration.type ) {
|
1457
|
-
case 'namedFunction':
|
1458
|
-
case 'namedClass':
|
1459
|
-
body.remove( declaration.start, declaration.valueStart );
|
1460
|
-
exportedValue = declaration.name;
|
1461
|
-
break;
|
1523
|
+
var exportedValue;
|
1462
1524
|
|
1463
|
-
|
1464
|
-
|
1465
|
-
|
1466
|
-
|
1467
|
-
|
1468
|
-
|
1469
|
-
|
1470
|
-
|
1525
|
+
switch ( declaration.type ) {
|
1526
|
+
case 'namedFunction':
|
1527
|
+
case 'namedClass':
|
1528
|
+
body.remove( declaration.start, declaration.valueStart );
|
1529
|
+
exportedValue = declaration.name;
|
1530
|
+
break;
|
1531
|
+
|
1532
|
+
case 'anonFunction':
|
1533
|
+
case 'anonClass':
|
1534
|
+
if ( declaration.isFinal ) {
|
1535
|
+
body.replace( declaration.start, declaration.valueStart, 'return ' );
|
1536
|
+
} else {
|
1537
|
+
body.replace( declaration.start, declaration.valueStart, 'var __export = ' );
|
1538
|
+
exportedValue = '__export';
|
1539
|
+
}
|
1471
1540
|
|
1472
|
-
|
1473
|
-
|
1474
|
-
|
1475
|
-
|
1541
|
+
// add semi-colon, if necessary
|
1542
|
+
// TODO body.original is an implementation detail of magic-string - there
|
1543
|
+
// should probably be an API for this sort of thing
|
1544
|
+
if ( body.original[ declaration.end - 1 ] !== ';' ) {
|
1545
|
+
body.insert( declaration.end, ';' );
|
1546
|
+
}
|
1476
1547
|
|
1477
|
-
|
1548
|
+
break;
|
1478
1549
|
|
1479
|
-
|
1480
|
-
|
1481
|
-
|
1482
|
-
|
1550
|
+
case 'expression':
|
1551
|
+
body.remove( declaration.start, declaration.next );
|
1552
|
+
exportedValue = declaration.value;
|
1553
|
+
break;
|
1483
1554
|
|
1484
|
-
|
1485
|
-
|
1486
|
-
|
1555
|
+
default:
|
1556
|
+
throw new Error( (("Unexpected export type '" + (declaration.type)) + "'") );
|
1557
|
+
}
|
1487
1558
|
|
1488
|
-
|
1489
|
-
|
1490
|
-
}
|
1559
|
+
if ( exportedValue ) {
|
1560
|
+
body.append( '\nreturn ' + exportedValue + ';' );
|
1491
1561
|
}
|
1492
1562
|
}
|
1493
1563
|
|
@@ -1744,18 +1814,13 @@
|
|
1744
1814
|
switch ( exportDeclaration.type ) {
|
1745
1815
|
case 'namedFunction':
|
1746
1816
|
case 'namedClass':
|
1747
|
-
mod.body.remove( exportDeclaration.start, exportDeclaration.
|
1817
|
+
mod.body.remove( exportDeclaration.start, exportDeclaration.node.declaration.start );
|
1748
1818
|
mod.body.replace( exportDeclaration.end, exportDeclaration.end, (("\nmodule.exports = " + (exportDeclaration.node.declaration.id.name)) + ";") );
|
1749
1819
|
break;
|
1750
1820
|
|
1751
|
-
case 'anonFunction':
|
1752
|
-
case 'anonClass':
|
1753
|
-
case 'expression':
|
1754
|
-
mod.body.replace( exportDeclaration.start, exportDeclaration.valueStart, 'module.exports = ' );
|
1755
|
-
break;
|
1756
|
-
|
1757
1821
|
default:
|
1758
|
-
|
1822
|
+
mod.body.replace( exportDeclaration.start, exportDeclaration.node.declaration.start, 'module.exports = ' );
|
1823
|
+
break;
|
1759
1824
|
}
|
1760
1825
|
}
|
1761
1826
|
|
@@ -1771,12 +1836,12 @@
|
|
1771
1836
|
|
1772
1837
|
var intro =
|
1773
1838
|
(("(function (factory) {\
|
1774
|
-
\n
|
1775
|
-
\n
|
1776
|
-
\n
|
1777
|
-
\n
|
1839
|
+
\n !(typeof exports === 'object' && typeof module !== 'undefined') &&\
|
1840
|
+
\n typeof define === 'function' && define.amd ? define(" + amdName) + "factory) :\
|
1841
|
+
\n factory()\
|
1842
|
+
\n}(function () { 'use strict';\
|
1778
1843
|
\n\
|
1779
|
-
\n
|
1844
|
+
\n");
|
1780
1845
|
|
1781
1846
|
return intro.replace( /\t/g, indentStr );
|
1782
1847
|
}
|
@@ -1803,12 +1868,12 @@
|
|
1803
1868
|
|
1804
1869
|
var intro =
|
1805
1870
|
(("(function (global, factory) {\
|
1806
|
-
\n
|
1807
|
-
\n
|
1808
|
-
\n
|
1809
|
-
\n
|
1871
|
+
\n typeof exports === 'object' && typeof module !== 'undefined' ? " + cjsExport) + (" :\
|
1872
|
+
\n typeof define === 'function' && define.amd ? define(" + amdName) + ("" + amdDeps) + ("factory) :\
|
1873
|
+
\n " + globalExport) + ("\
|
1874
|
+
\n}(this, function (" + args) + ") { 'use strict';\
|
1810
1875
|
\n\
|
1811
|
-
\n
|
1876
|
+
\n");
|
1812
1877
|
|
1813
1878
|
return intro.replace( /\t/g, indentStr );
|
1814
1879
|
}
|
@@ -1999,19 +2064,15 @@
|
|
1999
2064
|
}
|
2000
2065
|
}
|
2001
2066
|
|
2002
|
-
function
|
2003
|
-
var name
|
2004
|
-
|
2005
|
-
if ( node.type === 'Identifier' ) {
|
2006
|
-
name = node.name;
|
2007
|
-
replacement = hasOwnProp.call( identifierReplacements, name ) && identifierReplacements[ name ];
|
2067
|
+
function replaceIdentifiers ( body, node, identifierReplacements, scope ) {
|
2068
|
+
var name = node.name;
|
2069
|
+
var replacement = hasOwnProp.call( identifierReplacements, name ) && identifierReplacements[ name ];
|
2008
2070
|
|
2009
|
-
|
2010
|
-
|
2011
|
-
|
2012
|
-
|
2013
|
-
|
2014
|
-
}
|
2071
|
+
// TODO unchanged identifiers shouldn't have got this far -
|
2072
|
+
// remove the `replacement !== name` safeguard once that's the case
|
2073
|
+
if ( replacement && replacement !== name && !scope.contains( name, true ) ) {
|
2074
|
+
// rewrite
|
2075
|
+
body.replace( node.start, node.end, replacement );
|
2015
2076
|
}
|
2016
2077
|
}
|
2017
2078
|
|
@@ -2067,7 +2128,7 @@
|
|
2067
2128
|
previousCapturedUpdates = null;
|
2068
2129
|
|
2069
2130
|
estraverse.traverse( ast, {
|
2070
|
-
enter: function ( node ) {
|
2131
|
+
enter: function ( node, parent ) {
|
2071
2132
|
// we're only interested in references, not property names etc
|
2072
2133
|
if ( node._skip ) return this.skip();
|
2073
2134
|
|
@@ -2096,8 +2157,9 @@
|
|
2096
2157
|
// and `capturedUpdates`, which are used elsewhere
|
2097
2158
|
rewriteExportAssignments( body, node, exportNames, scope, alreadyExported, scope === ast._scope, capturedUpdates );
|
2098
2159
|
|
2099
|
-
|
2100
|
-
|
2160
|
+
if ( node.type === 'Identifier' && parent.type !== 'FunctionExpression' ) {
|
2161
|
+
replaceIdentifiers( body, node, identifierReplacements, scope );
|
2162
|
+
}
|
2101
2163
|
|
2102
2164
|
// Replace top-level this with undefined ES6 8.1.1.5.4
|
2103
2165
|
if ( node.type === 'ThisExpression' && node._topLevel ) {
|
@@ -2128,7 +2190,7 @@
|
|
2128
2190
|
return ((" exports." + (c.name)) + (" = " + (c.exportAs)) + ";");
|
2129
2191
|
}
|
2130
2192
|
|
2131
|
-
function transformBody ( mod, body, options ) {var $D$
|
2193
|
+
function transformBody ( mod, body, options ) {var $D$0;
|
2132
2194
|
var chains,
|
2133
2195
|
identifierReplacements,
|
2134
2196
|
importedBindings = {},
|
@@ -2138,10 +2200,10 @@
|
|
2138
2200
|
earlyExports,
|
2139
2201
|
lateExports;
|
2140
2202
|
|
2141
|
-
chains = ($D$
|
2203
|
+
chains = ($D$0 = gatherImports( mod.imports ))[0], identifierReplacements = $D$0[1], $D$0;
|
2142
2204
|
exportNames = getExportNames( mod.exports );
|
2143
2205
|
|
2144
|
-
importedBindings = ($D$
|
2206
|
+
importedBindings = ($D$0 = getReadOnlyIdentifiers( mod.imports ))[0], importedNamespaces = $D$0[1], $D$0;
|
2145
2207
|
|
2146
2208
|
// ensure no conflict with `exports`
|
2147
2209
|
identifierReplacements.exports = deconflict( 'exports', mod.ast._declared );
|
@@ -2166,35 +2228,32 @@
|
|
2166
2228
|
|
2167
2229
|
// Remove export statements (but keep declarations)
|
2168
2230
|
mod.exports.forEach( function(x ) {
|
2169
|
-
|
2170
|
-
|
2231
|
+
if ( x.isDefault ) {
|
2232
|
+
if ( /^named/.test( x.type ) ) {
|
2233
|
+
// export default function answer () { return 42; }
|
2171
2234
|
body.remove( x.start, x.valueStart );
|
2172
|
-
|
2235
|
+
body.insert( x.end, (("\nexports['default'] = " + (x.name)) + ";") );
|
2236
|
+
} else {
|
2237
|
+
// everything else
|
2238
|
+
body.replace( x.start, x.valueStart, 'exports[\'default\'] = ' );
|
2239
|
+
}
|
2240
|
+
}
|
2173
2241
|
|
2174
|
-
|
2175
|
-
|
2176
|
-
|
2177
|
-
|
2178
|
-
|
2179
|
-
body.insert( x.end, (("\nexports['default'] = " + (x.name)) + ";") );
|
2180
|
-
} else {
|
2181
|
-
// export function answer () { return 42; }
|
2242
|
+
else {
|
2243
|
+
switch ( x.type ) {
|
2244
|
+
case 'varDeclaration': // export var answer = 42; (or let)
|
2245
|
+
case 'namedFunction': // export function answer () {...}
|
2246
|
+
case 'namedClass': // export class answer {...}
|
2182
2247
|
body.remove( x.start, x.valueStart );
|
2183
|
-
|
2184
|
-
return;
|
2185
|
-
|
2186
|
-
case 'anonFunction': // export default function () {}
|
2187
|
-
case 'anonClass': // export default class () {}
|
2188
|
-
case 'expression': // export default 40 + 2;
|
2189
|
-
body.replace( x.start, x.valueStart, 'exports[\'default\'] = ' );
|
2190
|
-
return;
|
2248
|
+
break;
|
2191
2249
|
|
2192
|
-
|
2193
|
-
|
2194
|
-
|
2250
|
+
case 'named': // export { foo, bar };
|
2251
|
+
body.remove( x.start, x.next );
|
2252
|
+
break;
|
2195
2253
|
|
2196
|
-
|
2197
|
-
|
2254
|
+
default:
|
2255
|
+
body.replace( x.start, x.valueStart, 'exports[\'default\'] = ' );
|
2256
|
+
}
|
2198
2257
|
}
|
2199
2258
|
});
|
2200
2259
|
|
@@ -2234,7 +2293,7 @@
|
|
2234
2293
|
if ( options.intro && options.outro ) {
|
2235
2294
|
body.indent().prepend( options.intro ).trimLines().append( options.outro );
|
2236
2295
|
}
|
2237
|
-
;$D$
|
2296
|
+
;$D$0 = void 0}
|
2238
2297
|
|
2239
2298
|
function deconflict ( name, declared ) {
|
2240
2299
|
while ( hasOwnProp.call( declared, name ) ) {
|
@@ -2272,12 +2331,12 @@
|
|
2272
2331
|
|
2273
2332
|
strictMode_amd__introTemplate = template( 'define(<%= amdName %><%= paths %>function (<%= names %>) {\n\n\t\'use strict\';\n\n' );
|
2274
2333
|
|
2275
|
-
function strictMode_amd__amd ( mod, options ) {var $D$
|
2334
|
+
function strictMode_amd__amd ( mod, options ) {var $D$1;
|
2276
2335
|
var importPaths,
|
2277
2336
|
importNames,
|
2278
2337
|
intro;
|
2279
2338
|
|
2280
|
-
importPaths = ($D$
|
2339
|
+
importPaths = ($D$1 = getImportSummary( mod ))[0], importNames = $D$1[1], $D$1;
|
2281
2340
|
|
2282
2341
|
if ( mod.exports.length ) {
|
2283
2342
|
importPaths.unshift( 'exports' );
|
@@ -2297,7 +2356,7 @@
|
|
2297
2356
|
});
|
2298
2357
|
|
2299
2358
|
return packageResult( mod, mod.body, options, 'toAmd' );
|
2300
|
-
;$D$
|
2359
|
+
;$D$1 = void 0}
|
2301
2360
|
|
2302
2361
|
function strictMode_cjs__cjs ( mod, options ) {
|
2303
2362
|
var importBlock, seen = {};
|
@@ -2350,17 +2409,17 @@
|
|
2350
2409
|
defaultsBlock = options.externalDefaults.map( function(x )
|
2351
2410
|
{return '\t' + ( x.needsNamed ? (("var " + (x.name)) + "__default") : x.name ) +
|
2352
2411
|
((" = ('default' in " + (x.name)) + (" ? " + (x.name)) + ("['default'] : " + (x.name)) + ");")}
|
2353
|
-
|
2412
|
+
).join('\n') + '\n\n';
|
2354
2413
|
}
|
2355
2414
|
|
2356
2415
|
var intro =
|
2357
2416
|
(("(function (global, factory) {\
|
2358
|
-
\n
|
2359
|
-
\n
|
2360
|
-
\n
|
2361
|
-
\n
|
2417
|
+
\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(" + cjsDeps) + (") :\
|
2418
|
+
\n typeof define === 'function' && define.amd ? define(" + amdName) + ("" + amdDeps) + ("factory) :\
|
2419
|
+
\n factory(" + globalDeps) + (")\
|
2420
|
+
\n}(this, function (" + args) + (") { 'use strict';\
|
2362
2421
|
\n\
|
2363
|
-
\n
|
2422
|
+
\n" + defaultsBlock) + "");
|
2364
2423
|
|
2365
2424
|
return intro.replace( /\t/g, indentStr );
|
2366
2425
|
}
|
data/vendor/esperanto.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*
|
2
|
-
esperanto.js v0.6.
|
2
|
+
esperanto.js v0.6.18 - 2015-03-30
|
3
3
|
http://esperantojs.org
|
4
4
|
|
5
5
|
Released under the MIT License.
|
@@ -77,7 +77,7 @@ function annotateAst ( ast ) {
|
|
77
77
|
|
78
78
|
estraverse.traverse( ast, {
|
79
79
|
enter: function ( node ) {
|
80
|
-
if ( node.type === 'ImportDeclaration' ) {
|
80
|
+
if ( node.type === 'ImportDeclaration' || node.type === 'ExportSpecifier' ) {
|
81
81
|
node._skip = true;
|
82
82
|
}
|
83
83
|
|
@@ -219,16 +219,19 @@ function findImportsAndExports ( mod, source, ast ) {
|
|
219
219
|
imports.push( declaration );
|
220
220
|
}
|
221
221
|
|
222
|
-
else if ( node.type === '
|
223
|
-
declaration =
|
222
|
+
else if ( node.type === 'ExportDefaultDeclaration' ) {
|
223
|
+
declaration = processDefaultExport( node, source );
|
224
224
|
exports.push( declaration );
|
225
225
|
|
226
|
-
if (
|
227
|
-
|
228
|
-
throw new Error( 'Duplicate default exports' );
|
229
|
-
}
|
230
|
-
mod.defaultExport = declaration;
|
226
|
+
if ( mod.defaultExport ) {
|
227
|
+
throw new Error( 'Duplicate default exports' );
|
231
228
|
}
|
229
|
+
mod.defaultExport = declaration;
|
230
|
+
}
|
231
|
+
|
232
|
+
else if ( node.type === 'ExportNamedDeclaration' ) {
|
233
|
+
declaration = processExport( node, source );
|
234
|
+
exports.push( declaration );
|
232
235
|
|
233
236
|
if ( node.source ) {
|
234
237
|
// it's both an import and an export, e.g.
|
@@ -272,20 +275,25 @@ function processImport ( node, passthrough ) {
|
|
272
275
|
specifiers: node.specifiers.map( function(s ) {
|
273
276
|
var id;
|
274
277
|
|
275
|
-
if ( s.type === '
|
278
|
+
if ( s.type === 'ImportNamespaceSpecifier' ) {
|
276
279
|
return {
|
277
280
|
isBatch: true,
|
278
|
-
name: s.
|
279
|
-
as: s.
|
281
|
+
name: s.local.name, // TODO is this line necessary?
|
282
|
+
as: s.local.name
|
280
283
|
};
|
281
284
|
}
|
282
285
|
|
283
|
-
|
286
|
+
if ( s.type === 'ImportDefaultSpecifier' ) {
|
287
|
+
return {
|
288
|
+
isDefault: true,
|
289
|
+
name: 'default',
|
290
|
+
as: s.local.name
|
291
|
+
}
|
292
|
+
}
|
284
293
|
|
285
294
|
return {
|
286
|
-
|
287
|
-
|
288
|
-
as: s.name ? s.name.name : id
|
295
|
+
name: ( !!passthrough ? s.exported : s.imported ).name,
|
296
|
+
as: s.local.name
|
289
297
|
};
|
290
298
|
})
|
291
299
|
};
|
@@ -307,6 +315,53 @@ function processImport ( node, passthrough ) {
|
|
307
315
|
return x;
|
308
316
|
}
|
309
317
|
|
318
|
+
function processDefaultExport ( node, source ) {
|
319
|
+
var result = {
|
320
|
+
isDefault: true,
|
321
|
+
node: node,
|
322
|
+
start: node.start,
|
323
|
+
end: node.end
|
324
|
+
};
|
325
|
+
|
326
|
+
var d = node.declaration;
|
327
|
+
|
328
|
+
if ( d.type === 'FunctionExpression' ) {
|
329
|
+
// Case 1: `export default function () {...}`
|
330
|
+
result.hasDeclaration = true; // TODO remove in favour of result.type
|
331
|
+
result.type = 'anonFunction';
|
332
|
+
}
|
333
|
+
|
334
|
+
else if ( d.type === 'FunctionDeclaration' ) {
|
335
|
+
// Case 2: `export default function foo () {...}`
|
336
|
+
result.hasDeclaration = true; // TODO remove in favour of result.type
|
337
|
+
result.type = 'namedFunction';
|
338
|
+
result.name = d.id.name;
|
339
|
+
}
|
340
|
+
|
341
|
+
else if ( d.type === 'ClassExpression' ) {
|
342
|
+
// Case 3: `export default class {...}`
|
343
|
+
result.hasDeclaration = true; // TODO remove in favour of result.type
|
344
|
+
result.type = 'anonClass';
|
345
|
+
}
|
346
|
+
|
347
|
+
else if ( d.type === 'ClassDeclaration' ) {
|
348
|
+
// Case 4: `export default class Foo {...}`
|
349
|
+
result.hasDeclaration = true; // TODO remove in favour of result.type
|
350
|
+
result.type = 'namedClass';
|
351
|
+
result.name = d.id.name;
|
352
|
+
}
|
353
|
+
|
354
|
+
else {
|
355
|
+
result.type = 'expression';
|
356
|
+
result.name = 'default';
|
357
|
+
}
|
358
|
+
|
359
|
+
result.value = source.slice( d.start, d.end );
|
360
|
+
result.valueStart = d.start;
|
361
|
+
|
362
|
+
return result;
|
363
|
+
}
|
364
|
+
|
310
365
|
/**
|
311
366
|
* Generates a representation of an export declaration
|
312
367
|
* @param {object} node - the original AST node
|
@@ -337,62 +392,23 @@ function processExport ( node, source ) {
|
|
337
392
|
else if ( d.type === 'FunctionDeclaration' ) {
|
338
393
|
result.hasDeclaration = true; // TODO remove in favour of result.type
|
339
394
|
result.type = 'namedFunction';
|
340
|
-
result.isDefault = !!node.default;
|
341
395
|
result.name = d.id.name;
|
342
396
|
}
|
343
397
|
|
344
|
-
|
345
|
-
result.hasDeclaration = true; // TODO remove in favour of result.type
|
346
|
-
result.isDefault = true;
|
347
|
-
|
348
|
-
// Case 3: `export default function foo () {...}`
|
349
|
-
if ( d.id ) {
|
350
|
-
result.type = 'namedFunction';
|
351
|
-
result.name = d.id.name;
|
352
|
-
}
|
353
|
-
|
354
|
-
// Case 4: `export default function () {...}`
|
355
|
-
else {
|
356
|
-
result.type = 'anonFunction';
|
357
|
-
}
|
358
|
-
}
|
359
|
-
|
360
|
-
// Case 5: `export class Foo {...}`
|
398
|
+
// Case 3: `export class Foo {...}`
|
361
399
|
else if ( d.type === 'ClassDeclaration' ) {
|
362
400
|
result.hasDeclaration = true; // TODO remove in favour of result.type
|
363
401
|
result.type = 'namedClass';
|
364
|
-
result.isDefault = !!node.default;
|
365
402
|
result.name = d.id.name;
|
366
403
|
}
|
367
|
-
|
368
|
-
else if ( d.type === 'ClassExpression' ) {
|
369
|
-
result.hasDeclaration = true; // TODO remove in favour of result.type
|
370
|
-
result.isDefault = true;
|
371
|
-
|
372
|
-
// Case 6: `export default class Foo {...}`
|
373
|
-
if ( d.id ) {
|
374
|
-
result.type = 'namedClass';
|
375
|
-
result.name = d.id.name;
|
376
|
-
}
|
377
|
-
|
378
|
-
// Case 7: `export default class {...}`
|
379
|
-
else {
|
380
|
-
result.type = 'anonClass';
|
381
|
-
}
|
382
|
-
}
|
383
|
-
|
384
|
-
// Case 8: `export default 1 + 2`
|
385
|
-
else {
|
386
|
-
result.type = 'expression';
|
387
|
-
result.isDefault = true;
|
388
|
-
result.name = 'default';
|
389
|
-
}
|
390
404
|
}
|
391
405
|
|
392
406
|
// Case 9: `export { foo, bar };`
|
393
407
|
else {
|
394
408
|
result.type = 'named';
|
395
|
-
result.specifiers = node.specifiers.map( function(s ) {
|
409
|
+
result.specifiers = node.specifiers.map( function(s ) {
|
410
|
+
return { name: s.local.name };
|
411
|
+
}); // TODO as?
|
396
412
|
}
|
397
413
|
|
398
414
|
return result;
|
@@ -495,24 +511,36 @@ function splitPath ( path ) {
|
|
495
511
|
return path.split( pathSplitRE );
|
496
512
|
}
|
497
513
|
|
498
|
-
|
499
|
-
var mod, imports, exports, conflicts = {};
|
514
|
+
var SOURCEMAPPINGURL_REGEX = /^# sourceMappingURL=/;
|
500
515
|
|
501
|
-
|
516
|
+
function getStandaloneModule ( options ) {
|
517
|
+
var toRemove = [];
|
518
|
+
|
519
|
+
var mod = {
|
502
520
|
body: new MagicString( options.source ),
|
503
521
|
ast: acorn.parse( options.source, {
|
504
522
|
ecmaVersion: 6,
|
505
|
-
|
523
|
+
sourceType: 'module',
|
524
|
+
onComment: function ( block, text, start, end ) {
|
525
|
+
// sourceMappingURL comments should be removed
|
526
|
+
if ( !block && /^# sourceMappingURL=/.test( text ) ) {
|
527
|
+
toRemove.push({ start: start, end: end });
|
528
|
+
}
|
529
|
+
}
|
506
530
|
})
|
507
531
|
};
|
508
532
|
|
509
|
-
|
533
|
+
toRemove.forEach( function(end) {var start = end.start, end = end.end;return mod.body.remove( start, end )} );
|
534
|
+
|
535
|
+
var imports = (exports = findImportsAndExports( mod, options.source, mod.ast ))[0], exports = exports[1];
|
510
536
|
|
511
537
|
disallowConflictingImports( imports );
|
512
538
|
|
513
539
|
mod.imports = imports;
|
514
540
|
mod.exports = exports;
|
515
541
|
|
542
|
+
var conflicts = {};
|
543
|
+
|
516
544
|
if ( options.strict ) {
|
517
545
|
annotateAst( mod.ast );
|
518
546
|
|
@@ -525,7 +553,7 @@ function getStandaloneModule ( options ) {var $D$0;
|
|
525
553
|
determineImportNames( imports, options.getModuleName, conflicts );
|
526
554
|
|
527
555
|
return mod;
|
528
|
-
|
556
|
+
}
|
529
557
|
|
530
558
|
function determineImportNames ( imports, userFn, usedNames ) {
|
531
559
|
var nameById = {}, inferredNames = {};
|
@@ -1069,19 +1097,15 @@ function disallowIllegalReassignment ( node, importedBindings, importedNamespace
|
|
1069
1097
|
}
|
1070
1098
|
}
|
1071
1099
|
|
1072
|
-
function
|
1073
|
-
var name
|
1074
|
-
|
1075
|
-
if ( node.type === 'Identifier' ) {
|
1076
|
-
name = node.name;
|
1077
|
-
replacement = hasOwnProp.call( identifierReplacements, name ) && identifierReplacements[ name ];
|
1100
|
+
function replaceIdentifiers ( body, node, identifierReplacements, scope ) {
|
1101
|
+
var name = node.name;
|
1102
|
+
var replacement = hasOwnProp.call( identifierReplacements, name ) && identifierReplacements[ name ];
|
1078
1103
|
|
1079
|
-
|
1080
|
-
|
1081
|
-
|
1082
|
-
|
1083
|
-
|
1084
|
-
}
|
1104
|
+
// TODO unchanged identifiers shouldn't have got this far -
|
1105
|
+
// remove the `replacement !== name` safeguard once that's the case
|
1106
|
+
if ( replacement && replacement !== name && !scope.contains( name, true ) ) {
|
1107
|
+
// rewrite
|
1108
|
+
body.replace( node.start, node.end, replacement );
|
1085
1109
|
}
|
1086
1110
|
}
|
1087
1111
|
|
@@ -1137,7 +1161,7 @@ function traverseAst ( ast, body, identifierReplacements, importedBindings, impo
|
|
1137
1161
|
previousCapturedUpdates = null;
|
1138
1162
|
|
1139
1163
|
estraverse.traverse( ast, {
|
1140
|
-
enter: function ( node ) {
|
1164
|
+
enter: function ( node, parent ) {
|
1141
1165
|
// we're only interested in references, not property names etc
|
1142
1166
|
if ( node._skip ) return this.skip();
|
1143
1167
|
|
@@ -1166,8 +1190,9 @@ function traverseAst ( ast, body, identifierReplacements, importedBindings, impo
|
|
1166
1190
|
// and `capturedUpdates`, which are used elsewhere
|
1167
1191
|
rewriteExportAssignments( body, node, exportNames, scope, alreadyExported, scope === ast._scope, capturedUpdates );
|
1168
1192
|
|
1169
|
-
|
1170
|
-
|
1193
|
+
if ( node.type === 'Identifier' && parent.type !== 'FunctionExpression' ) {
|
1194
|
+
replaceIdentifiers( body, node, identifierReplacements, scope );
|
1195
|
+
}
|
1171
1196
|
|
1172
1197
|
// Replace top-level this with undefined ES6 8.1.1.5.4
|
1173
1198
|
if ( node.type === 'ThisExpression' && node._topLevel ) {
|
@@ -1198,7 +1223,7 @@ function exportCapturedUpdate ( c ) {
|
|
1198
1223
|
return ((" exports." + (c.name)) + (" = " + (c.exportAs)) + ";");
|
1199
1224
|
}
|
1200
1225
|
|
1201
|
-
function transformBody__transformBody ( bundle, mod, body ) {var $D$
|
1226
|
+
function transformBody__transformBody ( bundle, mod, body ) {var $D$0;
|
1202
1227
|
var identifierReplacements,
|
1203
1228
|
importedBindings,
|
1204
1229
|
importedNamespaces,
|
@@ -1208,7 +1233,7 @@ function transformBody__transformBody ( bundle, mod, body ) {var $D$1;
|
|
1208
1233
|
exportBlock;
|
1209
1234
|
|
1210
1235
|
identifierReplacements = mod.identifierReplacements;
|
1211
|
-
importedBindings = ($D$
|
1236
|
+
importedBindings = ($D$0 = getReadOnlyIdentifiers( mod.imports ))[0], importedNamespaces = $D$0[1], $D$0;
|
1212
1237
|
|
1213
1238
|
exportNames = hasOwnProp.call( bundle.exports, mod.id ) && bundle.exports[ mod.id ];
|
1214
1239
|
|
@@ -1319,7 +1344,7 @@ function transformBody__transformBody ( bundle, mod, body ) {var $D$1;
|
|
1319
1344
|
}
|
1320
1345
|
|
1321
1346
|
return body.trim();
|
1322
|
-
;$D$
|
1347
|
+
;$D$0 = void 0}
|
1323
1348
|
|
1324
1349
|
function combine ( bundle ) {
|
1325
1350
|
var body;
|
@@ -1370,7 +1395,7 @@ function combine ( bundle ) {
|
|
1370
1395
|
bundle.body = body;
|
1371
1396
|
}
|
1372
1397
|
|
1373
|
-
function getModule ( mod ) {var $D$
|
1398
|
+
function getModule ( mod ) {var $D$1;
|
1374
1399
|
var imports, exports;
|
1375
1400
|
|
1376
1401
|
mod.body = new MagicString( mod.source );
|
@@ -1378,7 +1403,7 @@ function getModule ( mod ) {var $D$2;
|
|
1378
1403
|
try {
|
1379
1404
|
mod.ast = acorn.parse( mod.source, {
|
1380
1405
|
ecmaVersion: 6,
|
1381
|
-
|
1406
|
+
sourceType: 'module'
|
1382
1407
|
});
|
1383
1408
|
|
1384
1409
|
annotateAst( mod.ast );
|
@@ -1392,7 +1417,7 @@ function getModule ( mod ) {var $D$2;
|
|
1392
1417
|
throw err;
|
1393
1418
|
}
|
1394
1419
|
|
1395
|
-
imports = ($D$
|
1420
|
+
imports = ($D$1 = findImportsAndExports( mod, mod.source, mod.ast ))[0], exports = $D$1[1], $D$1;
|
1396
1421
|
|
1397
1422
|
disallowConflictingImports( imports );
|
1398
1423
|
|
@@ -1428,7 +1453,7 @@ function getModule ( mod ) {var $D$2;
|
|
1428
1453
|
});
|
1429
1454
|
|
1430
1455
|
return mod;
|
1431
|
-
;$D$
|
1456
|
+
;$D$1 = void 0}
|
1432
1457
|
|
1433
1458
|
var getBundle__Promise = sander.Promise;
|
1434
1459
|
|
@@ -1571,44 +1596,48 @@ function isThenable ( obj ) {
|
|
1571
1596
|
}
|
1572
1597
|
|
1573
1598
|
function transformExportDeclaration ( declaration, body ) {
|
1574
|
-
|
1599
|
+
if ( !declaration ) {
|
1600
|
+
return;
|
1601
|
+
}
|
1575
1602
|
|
1576
|
-
|
1577
|
-
switch ( declaration.type ) {
|
1578
|
-
case 'namedFunction':
|
1579
|
-
case 'namedClass':
|
1580
|
-
body.remove( declaration.start, declaration.valueStart );
|
1581
|
-
exportedValue = declaration.name;
|
1582
|
-
break;
|
1603
|
+
var exportedValue;
|
1583
1604
|
|
1584
|
-
|
1585
|
-
|
1586
|
-
|
1587
|
-
|
1588
|
-
|
1589
|
-
|
1590
|
-
|
1591
|
-
|
1605
|
+
switch ( declaration.type ) {
|
1606
|
+
case 'namedFunction':
|
1607
|
+
case 'namedClass':
|
1608
|
+
body.remove( declaration.start, declaration.valueStart );
|
1609
|
+
exportedValue = declaration.name;
|
1610
|
+
break;
|
1611
|
+
|
1612
|
+
case 'anonFunction':
|
1613
|
+
case 'anonClass':
|
1614
|
+
if ( declaration.isFinal ) {
|
1615
|
+
body.replace( declaration.start, declaration.valueStart, 'return ' );
|
1616
|
+
} else {
|
1617
|
+
body.replace( declaration.start, declaration.valueStart, 'var __export = ' );
|
1618
|
+
exportedValue = '__export';
|
1619
|
+
}
|
1592
1620
|
|
1593
|
-
|
1594
|
-
|
1595
|
-
|
1596
|
-
|
1621
|
+
// add semi-colon, if necessary
|
1622
|
+
// TODO body.original is an implementation detail of magic-string - there
|
1623
|
+
// should probably be an API for this sort of thing
|
1624
|
+
if ( body.original[ declaration.end - 1 ] !== ';' ) {
|
1625
|
+
body.insert( declaration.end, ';' );
|
1626
|
+
}
|
1597
1627
|
|
1598
|
-
|
1628
|
+
break;
|
1599
1629
|
|
1600
|
-
|
1601
|
-
|
1602
|
-
|
1603
|
-
|
1630
|
+
case 'expression':
|
1631
|
+
body.remove( declaration.start, declaration.next );
|
1632
|
+
exportedValue = declaration.value;
|
1633
|
+
break;
|
1604
1634
|
|
1605
|
-
|
1606
|
-
|
1607
|
-
|
1635
|
+
default:
|
1636
|
+
throw new Error( (("Unexpected export type '" + (declaration.type)) + "'") );
|
1637
|
+
}
|
1608
1638
|
|
1609
|
-
|
1610
|
-
|
1611
|
-
}
|
1639
|
+
if ( exportedValue ) {
|
1640
|
+
body.append( '\nreturn ' + exportedValue + ';' );
|
1612
1641
|
}
|
1613
1642
|
}
|
1614
1643
|
|
@@ -1806,18 +1835,13 @@ function cjs__cjs ( mod, options ) {
|
|
1806
1835
|
switch ( exportDeclaration.type ) {
|
1807
1836
|
case 'namedFunction':
|
1808
1837
|
case 'namedClass':
|
1809
|
-
mod.body.remove( exportDeclaration.start, exportDeclaration.
|
1838
|
+
mod.body.remove( exportDeclaration.start, exportDeclaration.node.declaration.start );
|
1810
1839
|
mod.body.replace( exportDeclaration.end, exportDeclaration.end, (("\nmodule.exports = " + (exportDeclaration.node.declaration.id.name)) + ";") );
|
1811
1840
|
break;
|
1812
1841
|
|
1813
|
-
case 'anonFunction':
|
1814
|
-
case 'anonClass':
|
1815
|
-
case 'expression':
|
1816
|
-
mod.body.replace( exportDeclaration.start, exportDeclaration.valueStart, 'module.exports = ' );
|
1817
|
-
break;
|
1818
|
-
|
1819
1842
|
default:
|
1820
|
-
|
1843
|
+
mod.body.replace( exportDeclaration.start, exportDeclaration.node.declaration.start, 'module.exports = ' );
|
1844
|
+
break;
|
1821
1845
|
}
|
1822
1846
|
}
|
1823
1847
|
|
@@ -2005,7 +2029,7 @@ function getExportNames ( exports ) {
|
|
2005
2029
|
return result;
|
2006
2030
|
}
|
2007
2031
|
|
2008
|
-
function utils_transformBody__transformBody ( mod, body, options ) {var $D$
|
2032
|
+
function utils_transformBody__transformBody ( mod, body, options ) {var $D$2;
|
2009
2033
|
var chains,
|
2010
2034
|
identifierReplacements,
|
2011
2035
|
importedBindings = {},
|
@@ -2015,10 +2039,10 @@ function utils_transformBody__transformBody ( mod, body, options ) {var $D$3;
|
|
2015
2039
|
earlyExports,
|
2016
2040
|
lateExports;
|
2017
2041
|
|
2018
|
-
chains = ($D$
|
2042
|
+
chains = ($D$2 = gatherImports( mod.imports ))[0], identifierReplacements = $D$2[1], $D$2;
|
2019
2043
|
exportNames = getExportNames( mod.exports );
|
2020
2044
|
|
2021
|
-
importedBindings = ($D$
|
2045
|
+
importedBindings = ($D$2 = getReadOnlyIdentifiers( mod.imports ))[0], importedNamespaces = $D$2[1], $D$2;
|
2022
2046
|
|
2023
2047
|
// ensure no conflict with `exports`
|
2024
2048
|
identifierReplacements.exports = deconflict( 'exports', mod.ast._declared );
|
@@ -2043,35 +2067,32 @@ function utils_transformBody__transformBody ( mod, body, options ) {var $D$3;
|
|
2043
2067
|
|
2044
2068
|
// Remove export statements (but keep declarations)
|
2045
2069
|
mod.exports.forEach( function(x ) {
|
2046
|
-
|
2047
|
-
|
2070
|
+
if ( x.isDefault ) {
|
2071
|
+
if ( /^named/.test( x.type ) ) {
|
2072
|
+
// export default function answer () { return 42; }
|
2048
2073
|
body.remove( x.start, x.valueStart );
|
2049
|
-
|
2074
|
+
body.insert( x.end, (("\nexports['default'] = " + (x.name)) + ";") );
|
2075
|
+
} else {
|
2076
|
+
// everything else
|
2077
|
+
body.replace( x.start, x.valueStart, 'exports[\'default\'] = ' );
|
2078
|
+
}
|
2079
|
+
}
|
2050
2080
|
|
2051
|
-
|
2052
|
-
|
2053
|
-
|
2054
|
-
|
2055
|
-
|
2056
|
-
body.insert( x.end, (("\nexports['default'] = " + (x.name)) + ";") );
|
2057
|
-
} else {
|
2058
|
-
// export function answer () { return 42; }
|
2081
|
+
else {
|
2082
|
+
switch ( x.type ) {
|
2083
|
+
case 'varDeclaration': // export var answer = 42; (or let)
|
2084
|
+
case 'namedFunction': // export function answer () {...}
|
2085
|
+
case 'namedClass': // export class answer {...}
|
2059
2086
|
body.remove( x.start, x.valueStart );
|
2060
|
-
|
2061
|
-
return;
|
2062
|
-
|
2063
|
-
case 'anonFunction': // export default function () {}
|
2064
|
-
case 'anonClass': // export default class () {}
|
2065
|
-
case 'expression': // export default 40 + 2;
|
2066
|
-
body.replace( x.start, x.valueStart, 'exports[\'default\'] = ' );
|
2067
|
-
return;
|
2087
|
+
break;
|
2068
2088
|
|
2069
|
-
|
2070
|
-
|
2071
|
-
|
2089
|
+
case 'named': // export { foo, bar };
|
2090
|
+
body.remove( x.start, x.next );
|
2091
|
+
break;
|
2072
2092
|
|
2073
|
-
|
2074
|
-
|
2093
|
+
default:
|
2094
|
+
body.replace( x.start, x.valueStart, 'exports[\'default\'] = ' );
|
2095
|
+
}
|
2075
2096
|
}
|
2076
2097
|
});
|
2077
2098
|
|
@@ -2111,7 +2132,7 @@ function utils_transformBody__transformBody ( mod, body, options ) {var $D$3;
|
|
2111
2132
|
if ( options.intro && options.outro ) {
|
2112
2133
|
body.indent().prepend( options.intro ).trimLines().append( options.outro );
|
2113
2134
|
}
|
2114
|
-
;$D$
|
2135
|
+
;$D$2 = void 0}
|
2115
2136
|
|
2116
2137
|
function deconflict ( name, declared ) {
|
2117
2138
|
while ( hasOwnProp.call( declared, name ) ) {
|
@@ -2149,12 +2170,12 @@ var strictMode_amd__introTemplate;
|
|
2149
2170
|
|
2150
2171
|
strictMode_amd__introTemplate = template( 'define(<%= amdName %><%= paths %>function (<%= names %>) {\n\n\t\'use strict\';\n\n' );
|
2151
2172
|
|
2152
|
-
function strictMode_amd__amd ( mod, options ) {var $D$
|
2173
|
+
function strictMode_amd__amd ( mod, options ) {var $D$3;
|
2153
2174
|
var importPaths,
|
2154
2175
|
importNames,
|
2155
2176
|
intro;
|
2156
2177
|
|
2157
|
-
importPaths = ($D$
|
2178
|
+
importPaths = ($D$3 = getImportSummary( mod ))[0], importNames = $D$3[1], $D$3;
|
2158
2179
|
|
2159
2180
|
if ( mod.exports.length ) {
|
2160
2181
|
importPaths.unshift( 'exports' );
|
@@ -2174,7 +2195,7 @@ function strictMode_amd__amd ( mod, options ) {var $D$4;
|
|
2174
2195
|
});
|
2175
2196
|
|
2176
2197
|
return packageResult( mod, mod.body, options, 'toAmd' );
|
2177
|
-
;$D$
|
2198
|
+
;$D$3 = void 0}
|
2178
2199
|
|
2179
2200
|
function strictMode_cjs__cjs ( mod, options ) {
|
2180
2201
|
var importBlock, seen = {};
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: esperanto-source
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.18
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryunosuke SATO
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-03-
|
11
|
+
date: 2015-03-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|