esperanto-source 0.6.17.3 → 0.6.18
Sign up to get free protection for your applications and to get access to all the features.
- 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
|