esperanto-source 0.6.16 → 0.6.17

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2db1faeb981d396e1cf561a554bbcb58c5eec0f0
4
- data.tar.gz: 812893bfa15d0277c92035235d59884ce01d616d
3
+ metadata.gz: 4e7da637ba9ff5b37efcc590d016cce3cdac9894
4
+ data.tar.gz: 43618b690433711be54869fa3072d9b22e01d65e
5
5
  SHA512:
6
- metadata.gz: 96bea70d8e01aa0d862c9742b1ce3e447d7bc3e53d3bc0471ea47e016c608a443dd85fc568fae6982691d59c4705c25383b0938b6c17ed3aff045fcd1e7ea278
7
- data.tar.gz: 50bfb8581beeef06828199996e7f44a5a3016cc45931900d877f598780728f296bc842691f93d2d521f364c89401a6bcdbb64dbd4501d34f37030c7fd01c0822
6
+ metadata.gz: 23b5ac1323f08b6e5e4075342ddcaef5e07d358624aa3d2983f58e0b5422f2794b41020c6a288406cbb6fc65c68f80892e4df8f59bb58ba993fb0d36127b66d6
7
+ data.tar.gz: 0b14cd2c7c4d1c0f5bcc677a76802b9efdc5ca56b7f0a5282989ad96a7f849f857ed1277d7fdd711b015e51f19880cab1f650f5301691c91f83ae3e342c8350f
@@ -1,5 +1,5 @@
1
1
  module Esperanto
2
2
  module Source
3
- VERSION = '0.6.16'
3
+ VERSION = '0.6.17'
4
4
  end
5
5
  end
@@ -1,5 +1,5 @@
1
1
  /*
2
- esperanto.js v0.6.16 - 2015-03-02
2
+ esperanto.js v0.6.17 - 2015-03-01
3
3
  http://esperantojs.org
4
4
 
5
5
  Released under the MIT License.
@@ -342,17 +342,15 @@
342
342
  }
343
343
 
344
344
  function encode ( value ) {
345
- var result;
345
+ var result, i;
346
346
 
347
347
  if ( typeof value === 'number' ) {
348
348
  result = encodeInteger( value );
349
- } else if ( Array.isArray( value ) ) {
350
- result = '';
351
- value.forEach( function ( num ) {
352
- result += encodeInteger( num );
353
- });
354
349
  } else {
355
- throw new Error( 'vlq.encode accepts an integer or an array of integers' );
350
+ result = '';
351
+ for ( i = 0; i < value.length; i += 1 ) {
352
+ result += encodeInteger( value[i] );
353
+ }
356
354
  }
357
355
 
358
356
  return result;
@@ -383,7 +381,7 @@
383
381
 
384
382
  var encode__default = encode;
385
383
 
386
- function encodeMappings ( original, str, mappings, hires, sourceIndex, offsets ) {
384
+ function encodeMappings ( original, str, mappings, hires, sourcemapLocations, sourceIndex, offsets ) {
387
385
  var lineStart,
388
386
  locations,
389
387
  lines,
@@ -427,7 +425,7 @@
427
425
  }
428
426
 
429
427
  else {
430
- if ( !hires && ( origin === lastOrigin + 1 ) ) {
428
+ if ( !hires && ( origin === lastOrigin + 1 ) && !sourcemapLocations[ origin ] ) {
431
429
  // do nothing
432
430
  } else {
433
431
  location = getLocation( locations, origin );
@@ -520,10 +518,16 @@
520
518
  this.original = this.str = string;
521
519
  this.mappings = initMappings( string.length );
522
520
 
521
+ this.sourcemapLocations = {};
522
+
523
523
  this.indentStr = guessIndent( string );
524
524
  };
525
525
 
526
526
  MagicString.prototype = {
527
+ addSourcemapLocation: function ( char ) {
528
+ this.sourcemapLocations[ char ] = true;
529
+ },
530
+
527
531
  append: function ( content ) {
528
532
  this.str += content;
529
533
  return this;
@@ -560,7 +564,7 @@
560
564
  },
561
565
 
562
566
  getMappings: function ( hires, sourceIndex, offsets ) {
563
- return encodeMappings( this.original, this.str, this.mappings, hires, sourceIndex, offsets );
567
+ return encodeMappings( this.original, this.str, this.mappings, hires, this.sourcemapLocations, sourceIndex, offsets );
564
568
  },
565
569
 
566
570
  indent: function ( indentStr, options ) {
@@ -1489,7 +1493,7 @@
1489
1493
 
1490
1494
  var warned = {};
1491
1495
 
1492
- function packageResult ( body, options, methodName, isBundle ) {
1496
+ function packageResult ( bundleOrModule, body, options, methodName, isBundle ) {
1493
1497
  var code, map;
1494
1498
 
1495
1499
  // wrap output
@@ -1514,9 +1518,14 @@
1514
1518
  sourceMapFile = isAbsolutePath( options.sourceMapFile ) ? options.sourceMapFile : './' + splitPath( options.sourceMapFile ).pop();
1515
1519
  }
1516
1520
 
1521
+ if ( isBundle ) {
1522
+ markBundleSourcemapLocations( bundleOrModule );
1523
+ } else {
1524
+ markModuleSourcemapLocations( bundleOrModule );
1525
+ }
1526
+
1517
1527
  map = body.generateMap({
1518
1528
  includeContent: true,
1519
- hires: true,
1520
1529
  file: sourceMapFile,
1521
1530
  source: (sourceMapFile && !isBundle) ? packageResult__getRelativePath( sourceMapFile, options.sourceMapSource ) : null
1522
1531
  });
@@ -1573,6 +1582,24 @@
1573
1582
  }
1574
1583
  }
1575
1584
 
1585
+ function markBundleSourcemapLocations ( bundle ) {
1586
+ bundle.modules.forEach( function(mod ) {
1587
+ estraverse.traverse( mod.ast, {
1588
+ enter: function(node ) {
1589
+ mod.body.addSourcemapLocation( node.start );
1590
+ }
1591
+ });
1592
+ })
1593
+ }
1594
+
1595
+ function markModuleSourcemapLocations ( mod ) {
1596
+ estraverse.traverse( mod.ast, {
1597
+ enter: function(node ) {
1598
+ mod.body.addSourcemapLocation( node.start );
1599
+ }
1600
+ });
1601
+ }
1602
+
1576
1603
  /**
1577
1604
  * Creates a template function from a template string. The template
1578
1605
  may have `<%= someVar %>` interpolators, and the returned function
@@ -1649,7 +1676,7 @@
1649
1676
 
1650
1677
  var amd__introTemplate = template( 'define(<%= amdName %><%= paths %>function (<%= names %>) {\n\n' );
1651
1678
 
1652
- function amd__amd ( mod, body, options ) {
1679
+ function amd__amd ( mod, options ) {
1653
1680
  var seen = {},
1654
1681
  importNames = [],
1655
1682
  importPaths = [],
@@ -1676,10 +1703,10 @@
1676
1703
  seen[ path ] = true;
1677
1704
  }
1678
1705
 
1679
- body.remove( x.start, x.next );
1706
+ mod.body.remove( x.start, x.next );
1680
1707
  });
1681
1708
 
1682
- transformExportDeclaration( mod.exports[0], body );
1709
+ transformExportDeclaration( mod.exports[0], mod.body );
1683
1710
 
1684
1711
  intro = amd__introTemplate({
1685
1712
  amdName: options.amdName ? (("'" + (options.amdName)) + "', ") : '',
@@ -1687,27 +1714,27 @@
1687
1714
  names: importNames.join( ', ' )
1688
1715
  });
1689
1716
 
1690
- body.trim()
1717
+ mod.body.trim()
1691
1718
  .prepend( "'use strict';\n\n" )
1692
1719
  .trim()
1693
1720
  .indent()
1694
1721
  .prepend( intro )
1695
1722
  .append( '\n\n});' );
1696
1723
 
1697
- return packageResult( body, options, 'toAmd' );
1724
+ return packageResult( mod, mod.body, options, 'toAmd' );
1698
1725
  }
1699
1726
 
1700
- function cjs__cjs ( mod, body, options ) {
1727
+ function cjs__cjs ( mod, options ) {
1701
1728
  var seen = {}, exportDeclaration;
1702
1729
 
1703
1730
  mod.imports.forEach( function(x ) {
1704
1731
  if ( !hasOwnProp.call( seen, x.path ) ) {
1705
1732
  var replacement = x.isEmpty ? (("" + (req(x.path))) + ";") : (("var " + (x.as)) + (" = " + (req(x.path))) + ";");
1706
- body.replace( x.start, x.end, replacement );
1733
+ mod.body.replace( x.start, x.end, replacement );
1707
1734
 
1708
1735
  seen[ x.path ] = true;
1709
1736
  } else {
1710
- body.remove( x.start, x.next );
1737
+ mod.body.remove( x.start, x.next );
1711
1738
  }
1712
1739
  });
1713
1740
 
@@ -1717,14 +1744,14 @@
1717
1744
  switch ( exportDeclaration.type ) {
1718
1745
  case 'namedFunction':
1719
1746
  case 'namedClass':
1720
- body.remove( exportDeclaration.start, exportDeclaration.valueStart );
1721
- body.replace( exportDeclaration.end, exportDeclaration.end, (("\nmodule.exports = " + (exportDeclaration.node.declaration.id.name)) + ";") );
1747
+ mod.body.remove( exportDeclaration.start, exportDeclaration.valueStart );
1748
+ mod.body.replace( exportDeclaration.end, exportDeclaration.end, (("\nmodule.exports = " + (exportDeclaration.node.declaration.id.name)) + ";") );
1722
1749
  break;
1723
1750
 
1724
1751
  case 'anonFunction':
1725
1752
  case 'anonClass':
1726
1753
  case 'expression':
1727
- body.replace( exportDeclaration.start, exportDeclaration.valueStart, 'module.exports = ' );
1754
+ mod.body.replace( exportDeclaration.start, exportDeclaration.valueStart, 'module.exports = ' );
1728
1755
  break;
1729
1756
 
1730
1757
  default:
@@ -1732,9 +1759,9 @@
1732
1759
  }
1733
1760
  }
1734
1761
 
1735
- body.prepend( "'use strict';\n\n" ).trimLines();
1762
+ mod.body.prepend( "'use strict';\n\n" ).trimLines();
1736
1763
 
1737
- return packageResult( body, options, 'toCjs' );
1764
+ return packageResult( mod, mod.body, options, 'toCjs' );
1738
1765
  }
1739
1766
 
1740
1767
  function standaloneUmdIntro ( options, indentStr ) {
@@ -1811,7 +1838,7 @@
1811
1838
  }
1812
1839
  }
1813
1840
 
1814
- function umd__umd ( mod, body, options ) {
1841
+ function umd__umd ( mod, options ) {
1815
1842
  var importNames = [];
1816
1843
  var importPaths = [];
1817
1844
  var seen = {};
@@ -1826,7 +1853,7 @@
1826
1853
  if (!hasImports && !hasExports) {
1827
1854
  intro = standaloneUmdIntro({
1828
1855
  amdName: options.amdName,
1829
- }, body.getIndentString() );
1856
+ }, mod.body.getIndentString() );
1830
1857
  } else {
1831
1858
  // gather imports, and remove import declarations
1832
1859
  mod.imports.forEach( function(x ) {
@@ -1846,10 +1873,10 @@
1846
1873
  seen[ x.path ] = true;
1847
1874
  }
1848
1875
 
1849
- body.remove( x.start, x.next );
1876
+ mod.body.remove( x.start, x.next );
1850
1877
  });
1851
1878
 
1852
- transformExportDeclaration( mod.exports[0], body );
1879
+ transformExportDeclaration( mod.exports[0], mod.body );
1853
1880
 
1854
1881
  intro = defaultUmdIntro({
1855
1882
  hasExports: hasExports,
@@ -1858,12 +1885,12 @@
1858
1885
  amdName: options.amdName,
1859
1886
  absolutePaths: options.absolutePaths,
1860
1887
  name: options.name
1861
- }, body.getIndentString() );
1888
+ }, mod.body.getIndentString() );
1862
1889
  }
1863
1890
 
1864
- body.indent().prepend( intro ).trimLines().append( '\n\n}));' );
1891
+ mod.body.indent().prepend( intro ).trimLines().append( '\n\n}));' );
1865
1892
 
1866
- return packageResult( body, options, 'toUmd' );
1893
+ return packageResult( mod, mod.body, options, 'toUmd' );
1867
1894
  }
1868
1895
 
1869
1896
  var defaultsMode = {
@@ -2245,7 +2272,7 @@
2245
2272
 
2246
2273
  strictMode_amd__introTemplate = template( 'define(<%= amdName %><%= paths %>function (<%= names %>) {\n\n\t\'use strict\';\n\n' );
2247
2274
 
2248
- function strictMode_amd__amd ( mod, body, options ) {var $D$2;
2275
+ function strictMode_amd__amd ( mod, options ) {var $D$2;
2249
2276
  var importPaths,
2250
2277
  importNames,
2251
2278
  intro;
@@ -2261,18 +2288,18 @@
2261
2288
  amdName: options.amdName ? (("'" + (options.amdName)) + "', ") : '',
2262
2289
  paths: importPaths.length ? '[' + ( options.absolutePaths ? importPaths.map( resolveAgainst( options.amdName ) ) : importPaths ).map( quote ).join( ', ' ) + '], ' : '',
2263
2290
  names: importNames.join( ', ' )
2264
- }).replace( /\t/g, body.getIndentString() );
2291
+ }).replace( /\t/g, mod.body.getIndentString() );
2265
2292
 
2266
- transformBody( mod, body, {
2293
+ transformBody( mod, mod.body, {
2267
2294
  intro: intro,
2268
2295
  outro: '\n\n});',
2269
2296
  _evilES3SafeReExports: options._evilES3SafeReExports
2270
2297
  });
2271
2298
 
2272
- return packageResult( body, options, 'toAmd' );
2299
+ return packageResult( mod, mod.body, options, 'toAmd' );
2273
2300
  ;$D$2 = void 0}
2274
2301
 
2275
- function strictMode_cjs__cjs ( mod, body, options ) {
2302
+ function strictMode_cjs__cjs ( mod, options ) {
2276
2303
  var importBlock, seen = {};
2277
2304
 
2278
2305
  // Create block of require statements
@@ -2292,14 +2319,14 @@
2292
2319
  return replacement;
2293
2320
  }).filter( Boolean ).join( '\n' );
2294
2321
 
2295
- transformBody( mod, body, {
2322
+ transformBody( mod, mod.body, {
2296
2323
  header: importBlock,
2297
2324
  _evilES3SafeReExports: options._evilES3SafeReExports
2298
2325
  });
2299
2326
 
2300
- body.prepend( "'use strict';\n\n" ).trimLines();
2327
+ mod.body.prepend( "'use strict';\n\n" ).trimLines();
2301
2328
 
2302
- return packageResult( body, options, 'toCjs' );
2329
+ return packageResult( mod, mod.body, options, 'toCjs' );
2303
2330
  }
2304
2331
 
2305
2332
  function strictUmdIntro ( options, indentStr ) {
@@ -2338,7 +2365,7 @@
2338
2365
  return intro.replace( /\t/g, indentStr );
2339
2366
  }
2340
2367
 
2341
- function strictMode_umd__umd ( mod, body, options ) {
2368
+ function strictMode_umd__umd ( mod, options ) {
2342
2369
  requireName( options );
2343
2370
 
2344
2371
  var importPaths = (importNames = getImportSummary( mod ))[0], importNames = importNames[1];
@@ -2350,7 +2377,7 @@
2350
2377
  if (!hasImports && !hasExports) {
2351
2378
  intro = standaloneUmdIntro({
2352
2379
  amdName: options.amdName,
2353
- }, body.getIndentString() );
2380
+ }, mod.body.getIndentString() );
2354
2381
  } else {
2355
2382
  intro = strictUmdIntro({
2356
2383
  hasExports: hasExports,
@@ -2359,16 +2386,16 @@
2359
2386
  amdName: options.amdName,
2360
2387
  absolutePaths: options.absolutePaths,
2361
2388
  name: options.name
2362
- }, body.getIndentString() );
2389
+ }, mod.body.getIndentString() );
2363
2390
  }
2364
2391
 
2365
- transformBody( mod, body, {
2392
+ transformBody( mod, mod.body, {
2366
2393
  intro: intro,
2367
2394
  outro: '\n\n}));',
2368
2395
  _evilES3SafeReExports: options._evilES3SafeReExports
2369
2396
  });
2370
2397
 
2371
- return packageResult( body, options, 'toUmd' );
2398
+ return packageResult( mod, mod.body, options, 'toUmd' );
2372
2399
  }
2373
2400
 
2374
2401
  var strictMode = {
@@ -2385,46 +2412,46 @@
2385
2412
 
2386
2413
  var defaultsMode_amd__introTemplate = template( 'define(<%= amdName %><%= amdDeps %>function (<%= names %>) {\n\n\t\'use strict\';\n\n' );
2387
2414
 
2388
- function defaultsMode_amd__amd ( bundle, body, options ) {
2415
+ function defaultsMode_amd__amd ( bundle, options ) {
2389
2416
  var defaultName = bundle.entryModule.identifierReplacements.default;
2390
2417
  if ( defaultName ) {
2391
- body.append( (("\n\nreturn " + defaultName) + ";") );
2418
+ bundle.body.append( (("\n\nreturn " + defaultName) + ";") );
2392
2419
  }
2393
2420
 
2394
2421
  var intro = defaultsMode_amd__introTemplate({
2395
2422
  amdName: options.amdName ? (("" + (quote(options.amdName))) + ", ") : '',
2396
2423
  amdDeps: bundle.externalModules.length ? '[' + bundle.externalModules.map( quoteId ).join( ', ' ) + '], ' : '',
2397
2424
  names: bundle.externalModules.map( getName ).join( ', ' )
2398
- }).replace( /\t/g, body.getIndentString() );
2425
+ }).replace( /\t/g, bundle.body.getIndentString() );
2399
2426
 
2400
- body.indent().prepend( intro ).trimLines().append( '\n\n});' );
2401
- return packageResult( body, options, 'toAmd', true );
2427
+ bundle.body.indent().prepend( intro ).trimLines().append( '\n\n});' );
2428
+ return packageResult( bundle, bundle.body, options, 'toAmd', true );
2402
2429
  }
2403
2430
 
2404
2431
  function quoteId ( m ) {
2405
2432
  return "'" + m.id + "'";
2406
2433
  }
2407
2434
 
2408
- function defaultsMode_cjs__cjs ( bundle, body, options ) {
2435
+ function defaultsMode_cjs__cjs ( bundle, options ) {
2409
2436
  var importBlock = bundle.externalModules.map( function(x ) {
2410
2437
  return (("var " + (x.name)) + (" = " + (req(x.id))) + ";");
2411
2438
  }).join( '\n' );
2412
2439
 
2413
2440
  if ( importBlock ) {
2414
- body.prepend( importBlock + '\n\n' );
2441
+ bundle.body.prepend( importBlock + '\n\n' );
2415
2442
  }
2416
2443
 
2417
2444
  var defaultName = bundle.entryModule.identifierReplacements.default;
2418
2445
  if ( defaultName ) {
2419
- body.append( (("\n\nmodule.exports = " + defaultName) + ";") );
2446
+ bundle.body.append( (("\n\nmodule.exports = " + defaultName) + ";") );
2420
2447
  }
2421
2448
 
2422
- body.prepend("'use strict';\n\n").trimLines();
2449
+ bundle.body.prepend("'use strict';\n\n").trimLines();
2423
2450
 
2424
- return packageResult( body, options, 'toCjs', true );
2451
+ return packageResult( bundle, bundle.body, options, 'toCjs', true );
2425
2452
  }
2426
2453
 
2427
- function defaultsMode_umd__umd ( bundle, body, options ) {
2454
+ function defaultsMode_umd__umd ( bundle, options ) {
2428
2455
  requireName( options );
2429
2456
 
2430
2457
  var entry = bundle.entryModule;
@@ -2436,12 +2463,12 @@
2436
2463
  if (!hasImports && !hasExports) {
2437
2464
  intro = standaloneUmdIntro({
2438
2465
  amdName: options.amdName,
2439
- }, body.getIndentString() );
2466
+ }, bundle.body.getIndentString() );
2440
2467
  } else {
2441
2468
 
2442
2469
  var defaultName = entry.identifierReplacements.default;
2443
2470
  if ( defaultName ) {
2444
- body.append( (("\n\nreturn " + defaultName) + ";") );
2471
+ bundle.body.append( (("\n\nreturn " + defaultName) + ";") );
2445
2472
  }
2446
2473
 
2447
2474
  var importPaths = bundle.externalModules.map( getId );
@@ -2453,12 +2480,12 @@
2453
2480
  importNames: importNames,
2454
2481
  amdName: options.amdName,
2455
2482
  name: options.name
2456
- }, body.getIndentString() );
2483
+ }, bundle.body.getIndentString() );
2457
2484
  }
2458
2485
 
2459
- body.indent().prepend( intro ).trimLines().append('\n\n}));');
2486
+ bundle.body.indent().prepend( intro ).trimLines().append('\n\n}));');
2460
2487
 
2461
- return packageResult( body, options, 'toUmd', true );
2488
+ return packageResult( bundle, bundle.body, options, 'toUmd', true );
2462
2489
  }
2463
2490
 
2464
2491
  var builders_defaultsMode = {
@@ -2474,7 +2501,7 @@
2474
2501
 
2475
2502
  var builders_strictMode_amd__introTemplate = template( 'define(<%= amdName %><%= amdDeps %>function (<%= names %>) {\n\n\t\'use strict\';\n\n' );
2476
2503
 
2477
- function builders_strictMode_amd__amd ( bundle, body, options ) {
2504
+ function builders_strictMode_amd__amd ( bundle, options ) {
2478
2505
  var externalDefaults = bundle.externalModules.filter( builders_strictMode_amd__needsDefault );
2479
2506
  var entry = bundle.entryModule;
2480
2507
 
@@ -2492,7 +2519,7 @@
2492
2519
  return (("var " + (x.name)) + ("__default = ('default' in " + (x.name)) + (" ? " + (x.name)) + ("['default'] : " + (x.name)) + ");");
2493
2520
  }).join( '\n' );
2494
2521
 
2495
- body.prepend( defaultsBlock + '\n\n' );
2522
+ bundle.body.prepend( defaultsBlock + '\n\n' );
2496
2523
  }
2497
2524
 
2498
2525
  if ( entry.exports.length ) {
@@ -2500,7 +2527,7 @@
2500
2527
  importNames.unshift( 'exports' );
2501
2528
 
2502
2529
  if ( entry.defaultExport ) {
2503
- body.append( '\n\n' + getExportBlock( entry ) );
2530
+ bundle.body.append( '\n\n' + getExportBlock( entry ) );
2504
2531
  }
2505
2532
  }
2506
2533
 
@@ -2508,17 +2535,17 @@
2508
2535
  amdName: options.amdName ? (("" + (quote(options.amdName))) + ", ") : '',
2509
2536
  amdDeps: importIds.length ? '[' + importIds.map( quote ).join( ', ' ) + '], ' : '',
2510
2537
  names: importNames.join( ', ' )
2511
- }).replace( /\t/g, body.getIndentString() );
2538
+ }).replace( /\t/g, bundle.body.getIndentString() );
2512
2539
 
2513
- body.indent().prepend( intro ).trimLines().append( '\n\n});' );
2514
- return packageResult( body, options, 'toAmd', true );
2540
+ bundle.body.indent().prepend( intro ).trimLines().append( '\n\n});' );
2541
+ return packageResult( bundle, bundle.body, options, 'toAmd', true );
2515
2542
  }
2516
2543
 
2517
2544
  function builders_strictMode_amd__needsDefault ( externalModule ) {
2518
2545
  return externalModule.needsDefault;
2519
2546
  }
2520
2547
 
2521
- function builders_strictMode_cjs__cjs ( bundle, body, options ) {
2548
+ function builders_strictMode_cjs__cjs ( bundle, options ) {
2522
2549
  var entry = bundle.entryModule;
2523
2550
 
2524
2551
  var importBlock = bundle.externalModules.map( function(x ) {
@@ -2534,19 +2561,19 @@
2534
2561
  }).join( '\n' );
2535
2562
 
2536
2563
  if ( importBlock ) {
2537
- body.prepend( importBlock + '\n\n' );
2564
+ bundle.body.prepend( importBlock + '\n\n' );
2538
2565
  }
2539
2566
 
2540
2567
  if ( entry.defaultExport ) {
2541
- body.append( '\n\n' + getExportBlock( entry ) );
2568
+ bundle.body.append( '\n\n' + getExportBlock( entry ) );
2542
2569
  }
2543
2570
 
2544
- body.prepend("'use strict';\n\n").trimLines();
2571
+ bundle.body.prepend("'use strict';\n\n").trimLines();
2545
2572
 
2546
- return packageResult( body, options, 'toCjs', true );
2573
+ return packageResult( bundle, bundle.body, options, 'toCjs', true );
2547
2574
  }
2548
2575
 
2549
- function builders_strictMode_umd__umd ( bundle, body, options ) {
2576
+ function builders_strictMode_umd__umd ( bundle, options ) {
2550
2577
  requireName( options );
2551
2578
 
2552
2579
  var entry = bundle.entryModule;
@@ -2558,11 +2585,11 @@
2558
2585
  if (!hasImports && !hasExports) {
2559
2586
  intro = standaloneUmdIntro({
2560
2587
  amdName: options.amdName,
2561
- }, body.getIndentString() );
2588
+ }, bundle.body.getIndentString() );
2562
2589
  } else {
2563
2590
 
2564
2591
  if ( hasExports && entry.defaultExport ) {
2565
- body.append( '\n\n' + getExportBlock( entry ) );
2592
+ bundle.body.append( '\n\n' + getExportBlock( entry ) );
2566
2593
  }
2567
2594
 
2568
2595
  var importPaths = bundle.externalModules.map( getId );
@@ -2575,12 +2602,12 @@
2575
2602
  externalDefaults: bundle.externalModules.filter( builders_strictMode_umd__needsDefault ),
2576
2603
  amdName: options.amdName,
2577
2604
  name: options.name,
2578
- }, body.getIndentString() );
2605
+ }, bundle.body.getIndentString() );
2579
2606
  }
2580
2607
 
2581
- body.indent().prepend( intro ).trimLines().append('\n\n}));');
2608
+ bundle.body.indent().prepend( intro ).trimLines().append('\n\n}));');
2582
2609
 
2583
- return packageResult( body, options, 'toUmd', true );
2610
+ return packageResult( bundle, bundle.body, options, 'toUmd', true );
2584
2611
  }
2585
2612
 
2586
2613
  function builders_strictMode_umd__needsDefault ( externalModule ) {
@@ -2600,28 +2627,26 @@
2600
2627
  };
2601
2628
 
2602
2629
  function concat ( bundle, options ) {
2603
- var body, intro, outro, indent;
2630
+ var intro, outro, indent;
2604
2631
 
2605
2632
  // This bundle must be self-contained - no imports or exports
2606
2633
  if ( bundle.externalModules.length || bundle.entryModule.exports.length ) {
2607
2634
  throw new Error( (("bundle.concat() can only be used with bundles that have no imports/exports (imports: [" + (bundle.externalModules.map(function(x){return x.id}).join(', '))) + ("], exports: [" + (bundle.entryModule.exports.join(', '))) + "])") );
2608
2635
  }
2609
2636
 
2610
- body = bundle.body.clone();
2611
-
2612
2637
  // TODO test these options
2613
2638
  intro = 'intro' in options ? options.intro : ("(function () { 'use strict';\n\n");
2614
2639
  outro = 'outro' in options ? options.outro : '\n\n})();';
2615
2640
 
2616
2641
  if ( !( 'indent' in options ) || options.indent === true ) {
2617
- indent = body.getIndentString();
2642
+ indent = bundle.body.getIndentString();
2618
2643
  } else {
2619
2644
  indent = options.indent || '';
2620
2645
  }
2621
2646
 
2622
- body.trimLines().indent( indent ).prepend( intro ).append( outro );
2647
+ bundle.body.trimLines().indent( indent ).prepend( intro ).append( outro );
2623
2648
 
2624
- return packageResult( body, options, 'toString', true );
2649
+ return packageResult( bundle, bundle.body, options, 'toString', true );
2625
2650
  }
2626
2651
 
2627
2652
  var deprecateMessage = 'options.defaultOnly has been deprecated, and is now standard behaviour. To use named imports/exports, pass `strict: true`.',
@@ -2634,7 +2659,6 @@
2634
2659
  builder;
2635
2660
 
2636
2661
  mod = getStandaloneModule({ source: source, getModuleName: options.getModuleName, strict: options.strict });
2637
- body = mod.body.clone();
2638
2662
 
2639
2663
  if ( 'defaultOnly' in options && !alreadyWarned ) {
2640
2664
  // TODO link to a wiki page explaining this, or something
@@ -2657,7 +2681,7 @@
2657
2681
  builder = moduleBuilders.strictMode[ format ];
2658
2682
  }
2659
2683
 
2660
- return builder( mod, body, options );
2684
+ return builder( mod, options );
2661
2685
  };
2662
2686
  }
2663
2687
 
@@ -2709,7 +2733,7 @@
2709
2733
  builder = bundleBuilders.strictMode[ format ];
2710
2734
  }
2711
2735
 
2712
- return builder( bundle, bundle.body.clone(), options );
2736
+ return builder( bundle, options );
2713
2737
  }
2714
2738
  });
2715
2739
  }
data/vendor/esperanto.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*
2
- esperanto.js v0.6.16 - 2015-03-02
2
+ esperanto.js v0.6.17 - 2015-03-01
3
3
  http://esperantojs.org
4
4
 
5
5
  Released under the MIT License.
@@ -1362,7 +1362,7 @@ function combine ( bundle ) {
1362
1362
 
1363
1363
  body.addSource({
1364
1364
  filename: path.resolve( bundle.base, mod.relativePath ),
1365
- content: transformBody__transformBody( bundle, mod, mod.body.clone() ),
1365
+ content: transformBody__transformBody( bundle, mod, mod.body ),
1366
1366
  indentExclusionRanges: mod.ast._templateLiteralRanges
1367
1367
  });
1368
1368
  });
@@ -1614,7 +1614,7 @@ function transformExportDeclaration ( declaration, body ) {
1614
1614
 
1615
1615
  var warned = {};
1616
1616
 
1617
- function packageResult ( body, options, methodName, isBundle ) {
1617
+ function packageResult ( bundleOrModule, body, options, methodName, isBundle ) {
1618
1618
  var code, map;
1619
1619
 
1620
1620
  // wrap output
@@ -1639,9 +1639,14 @@ function packageResult ( body, options, methodName, isBundle ) {
1639
1639
  sourceMapFile = isAbsolutePath( options.sourceMapFile ) ? options.sourceMapFile : './' + splitPath( options.sourceMapFile ).pop();
1640
1640
  }
1641
1641
 
1642
+ if ( isBundle ) {
1643
+ markBundleSourcemapLocations( bundleOrModule );
1644
+ } else {
1645
+ markModuleSourcemapLocations( bundleOrModule );
1646
+ }
1647
+
1642
1648
  map = body.generateMap({
1643
1649
  includeContent: true,
1644
- hires: true,
1645
1650
  file: sourceMapFile,
1646
1651
  source: (sourceMapFile && !isBundle) ? getRelativePath( sourceMapFile, options.sourceMapSource ) : null
1647
1652
  });
@@ -1698,6 +1703,24 @@ function getRelativePath ( from, to ) {
1698
1703
  }
1699
1704
  }
1700
1705
 
1706
+ function markBundleSourcemapLocations ( bundle ) {
1707
+ bundle.modules.forEach( function(mod ) {
1708
+ estraverse.traverse( mod.ast, {
1709
+ enter: function(node ) {
1710
+ mod.body.addSourcemapLocation( node.start );
1711
+ }
1712
+ });
1713
+ })
1714
+ }
1715
+
1716
+ function markModuleSourcemapLocations ( mod ) {
1717
+ estraverse.traverse( mod.ast, {
1718
+ enter: function(node ) {
1719
+ mod.body.addSourcemapLocation( node.start );
1720
+ }
1721
+ });
1722
+ }
1723
+
1701
1724
  /**
1702
1725
  * Creates a template function from a template string. The template
1703
1726
  may have `<%= someVar %>` interpolators, and the returned function
@@ -1715,7 +1738,7 @@ function template ( str ) {
1715
1738
 
1716
1739
  var amd__introTemplate = template( 'define(<%= amdName %><%= paths %>function (<%= names %>) {\n\n' );
1717
1740
 
1718
- function amd__amd ( mod, body, options ) {
1741
+ function amd__amd ( mod, options ) {
1719
1742
  var seen = {},
1720
1743
  importNames = [],
1721
1744
  importPaths = [],
@@ -1742,10 +1765,10 @@ function amd__amd ( mod, body, options ) {
1742
1765
  seen[ path ] = true;
1743
1766
  }
1744
1767
 
1745
- body.remove( x.start, x.next );
1768
+ mod.body.remove( x.start, x.next );
1746
1769
  });
1747
1770
 
1748
- transformExportDeclaration( mod.exports[0], body );
1771
+ transformExportDeclaration( mod.exports[0], mod.body );
1749
1772
 
1750
1773
  intro = amd__introTemplate({
1751
1774
  amdName: options.amdName ? (("'" + (options.amdName)) + "', ") : '',
@@ -1753,27 +1776,27 @@ function amd__amd ( mod, body, options ) {
1753
1776
  names: importNames.join( ', ' )
1754
1777
  });
1755
1778
 
1756
- body.trim()
1779
+ mod.body.trim()
1757
1780
  .prepend( "'use strict';\n\n" )
1758
1781
  .trim()
1759
1782
  .indent()
1760
1783
  .prepend( intro )
1761
1784
  .append( '\n\n});' );
1762
1785
 
1763
- return packageResult( body, options, 'toAmd' );
1786
+ return packageResult( mod, mod.body, options, 'toAmd' );
1764
1787
  }
1765
1788
 
1766
- function cjs__cjs ( mod, body, options ) {
1789
+ function cjs__cjs ( mod, options ) {
1767
1790
  var seen = {}, exportDeclaration;
1768
1791
 
1769
1792
  mod.imports.forEach( function(x ) {
1770
1793
  if ( !hasOwnProp.call( seen, x.path ) ) {
1771
1794
  var replacement = x.isEmpty ? (("" + (req(x.path))) + ";") : (("var " + (x.as)) + (" = " + (req(x.path))) + ";");
1772
- body.replace( x.start, x.end, replacement );
1795
+ mod.body.replace( x.start, x.end, replacement );
1773
1796
 
1774
1797
  seen[ x.path ] = true;
1775
1798
  } else {
1776
- body.remove( x.start, x.next );
1799
+ mod.body.remove( x.start, x.next );
1777
1800
  }
1778
1801
  });
1779
1802
 
@@ -1783,14 +1806,14 @@ function cjs__cjs ( mod, body, options ) {
1783
1806
  switch ( exportDeclaration.type ) {
1784
1807
  case 'namedFunction':
1785
1808
  case 'namedClass':
1786
- body.remove( exportDeclaration.start, exportDeclaration.valueStart );
1787
- body.replace( exportDeclaration.end, exportDeclaration.end, (("\nmodule.exports = " + (exportDeclaration.node.declaration.id.name)) + ";") );
1809
+ mod.body.remove( exportDeclaration.start, exportDeclaration.valueStart );
1810
+ mod.body.replace( exportDeclaration.end, exportDeclaration.end, (("\nmodule.exports = " + (exportDeclaration.node.declaration.id.name)) + ";") );
1788
1811
  break;
1789
1812
 
1790
1813
  case 'anonFunction':
1791
1814
  case 'anonClass':
1792
1815
  case 'expression':
1793
- body.replace( exportDeclaration.start, exportDeclaration.valueStart, 'module.exports = ' );
1816
+ mod.body.replace( exportDeclaration.start, exportDeclaration.valueStart, 'module.exports = ' );
1794
1817
  break;
1795
1818
 
1796
1819
  default:
@@ -1798,9 +1821,9 @@ function cjs__cjs ( mod, body, options ) {
1798
1821
  }
1799
1822
  }
1800
1823
 
1801
- body.prepend( "'use strict';\n\n" ).trimLines();
1824
+ mod.body.prepend( "'use strict';\n\n" ).trimLines();
1802
1825
 
1803
- return packageResult( body, options, 'toCjs' );
1826
+ return packageResult( mod, mod.body, options, 'toCjs' );
1804
1827
  }
1805
1828
 
1806
1829
  function standaloneUmdIntro ( options, indentStr ) {
@@ -1877,7 +1900,7 @@ function requireName ( options ) {
1877
1900
  }
1878
1901
  }
1879
1902
 
1880
- function umd__umd ( mod, body, options ) {
1903
+ function umd__umd ( mod, options ) {
1881
1904
  var importNames = [];
1882
1905
  var importPaths = [];
1883
1906
  var seen = {};
@@ -1892,7 +1915,7 @@ function umd__umd ( mod, body, options ) {
1892
1915
  if (!hasImports && !hasExports) {
1893
1916
  intro = standaloneUmdIntro({
1894
1917
  amdName: options.amdName,
1895
- }, body.getIndentString() );
1918
+ }, mod.body.getIndentString() );
1896
1919
  } else {
1897
1920
  // gather imports, and remove import declarations
1898
1921
  mod.imports.forEach( function(x ) {
@@ -1912,10 +1935,10 @@ function umd__umd ( mod, body, options ) {
1912
1935
  seen[ x.path ] = true;
1913
1936
  }
1914
1937
 
1915
- body.remove( x.start, x.next );
1938
+ mod.body.remove( x.start, x.next );
1916
1939
  });
1917
1940
 
1918
- transformExportDeclaration( mod.exports[0], body );
1941
+ transformExportDeclaration( mod.exports[0], mod.body );
1919
1942
 
1920
1943
  intro = defaultUmdIntro({
1921
1944
  hasExports: hasExports,
@@ -1924,12 +1947,12 @@ function umd__umd ( mod, body, options ) {
1924
1947
  amdName: options.amdName,
1925
1948
  absolutePaths: options.absolutePaths,
1926
1949
  name: options.name
1927
- }, body.getIndentString() );
1950
+ }, mod.body.getIndentString() );
1928
1951
  }
1929
1952
 
1930
- body.indent().prepend( intro ).trimLines().append( '\n\n}));' );
1953
+ mod.body.indent().prepend( intro ).trimLines().append( '\n\n}));' );
1931
1954
 
1932
- return packageResult( body, options, 'toUmd' );
1955
+ return packageResult( mod, mod.body, options, 'toUmd' );
1933
1956
  }
1934
1957
 
1935
1958
  var defaultsMode = {
@@ -2126,7 +2149,7 @@ var strictMode_amd__introTemplate;
2126
2149
 
2127
2150
  strictMode_amd__introTemplate = template( 'define(<%= amdName %><%= paths %>function (<%= names %>) {\n\n\t\'use strict\';\n\n' );
2128
2151
 
2129
- function strictMode_amd__amd ( mod, body, options ) {var $D$4;
2152
+ function strictMode_amd__amd ( mod, options ) {var $D$4;
2130
2153
  var importPaths,
2131
2154
  importNames,
2132
2155
  intro;
@@ -2142,18 +2165,18 @@ function strictMode_amd__amd ( mod, body, options ) {var $D$4;
2142
2165
  amdName: options.amdName ? (("'" + (options.amdName)) + "', ") : '',
2143
2166
  paths: importPaths.length ? '[' + ( options.absolutePaths ? importPaths.map( resolveAgainst( options.amdName ) ) : importPaths ).map( quote ).join( ', ' ) + '], ' : '',
2144
2167
  names: importNames.join( ', ' )
2145
- }).replace( /\t/g, body.getIndentString() );
2168
+ }).replace( /\t/g, mod.body.getIndentString() );
2146
2169
 
2147
- utils_transformBody__transformBody( mod, body, {
2170
+ utils_transformBody__transformBody( mod, mod.body, {
2148
2171
  intro: intro,
2149
2172
  outro: '\n\n});',
2150
2173
  _evilES3SafeReExports: options._evilES3SafeReExports
2151
2174
  });
2152
2175
 
2153
- return packageResult( body, options, 'toAmd' );
2176
+ return packageResult( mod, mod.body, options, 'toAmd' );
2154
2177
  ;$D$4 = void 0}
2155
2178
 
2156
- function strictMode_cjs__cjs ( mod, body, options ) {
2179
+ function strictMode_cjs__cjs ( mod, options ) {
2157
2180
  var importBlock, seen = {};
2158
2181
 
2159
2182
  // Create block of require statements
@@ -2173,14 +2196,14 @@ function strictMode_cjs__cjs ( mod, body, options ) {
2173
2196
  return replacement;
2174
2197
  }).filter( Boolean ).join( '\n' );
2175
2198
 
2176
- utils_transformBody__transformBody( mod, body, {
2199
+ utils_transformBody__transformBody( mod, mod.body, {
2177
2200
  header: importBlock,
2178
2201
  _evilES3SafeReExports: options._evilES3SafeReExports
2179
2202
  });
2180
2203
 
2181
- body.prepend( "'use strict';\n\n" ).trimLines();
2204
+ mod.body.prepend( "'use strict';\n\n" ).trimLines();
2182
2205
 
2183
- return packageResult( body, options, 'toCjs' );
2206
+ return packageResult( mod, mod.body, options, 'toCjs' );
2184
2207
  }
2185
2208
 
2186
2209
  function strictUmdIntro ( options, indentStr ) {
@@ -2219,7 +2242,7 @@ function strictUmdIntro ( options, indentStr ) {
2219
2242
  return intro.replace( /\t/g, indentStr );
2220
2243
  }
2221
2244
 
2222
- function strictMode_umd__umd ( mod, body, options ) {
2245
+ function strictMode_umd__umd ( mod, options ) {
2223
2246
  requireName( options );
2224
2247
 
2225
2248
  var importPaths = (importNames = getImportSummary( mod ))[0], importNames = importNames[1];
@@ -2231,7 +2254,7 @@ function strictMode_umd__umd ( mod, body, options ) {
2231
2254
  if (!hasImports && !hasExports) {
2232
2255
  intro = standaloneUmdIntro({
2233
2256
  amdName: options.amdName,
2234
- }, body.getIndentString() );
2257
+ }, mod.body.getIndentString() );
2235
2258
  } else {
2236
2259
  intro = strictUmdIntro({
2237
2260
  hasExports: hasExports,
@@ -2240,16 +2263,16 @@ function strictMode_umd__umd ( mod, body, options ) {
2240
2263
  amdName: options.amdName,
2241
2264
  absolutePaths: options.absolutePaths,
2242
2265
  name: options.name
2243
- }, body.getIndentString() );
2266
+ }, mod.body.getIndentString() );
2244
2267
  }
2245
2268
 
2246
- utils_transformBody__transformBody( mod, body, {
2269
+ utils_transformBody__transformBody( mod, mod.body, {
2247
2270
  intro: intro,
2248
2271
  outro: '\n\n}));',
2249
2272
  _evilES3SafeReExports: options._evilES3SafeReExports
2250
2273
  });
2251
2274
 
2252
- return packageResult( body, options, 'toUmd' );
2275
+ return packageResult( mod, mod.body, options, 'toUmd' );
2253
2276
  }
2254
2277
 
2255
2278
  var strictMode = {
@@ -2266,46 +2289,46 @@ var moduleBuilders = {
2266
2289
 
2267
2290
  var defaultsMode_amd__introTemplate = template( 'define(<%= amdName %><%= amdDeps %>function (<%= names %>) {\n\n\t\'use strict\';\n\n' );
2268
2291
 
2269
- function defaultsMode_amd__amd ( bundle, body, options ) {
2292
+ function defaultsMode_amd__amd ( bundle, options ) {
2270
2293
  var defaultName = bundle.entryModule.identifierReplacements.default;
2271
2294
  if ( defaultName ) {
2272
- body.append( (("\n\nreturn " + defaultName) + ";") );
2295
+ bundle.body.append( (("\n\nreturn " + defaultName) + ";") );
2273
2296
  }
2274
2297
 
2275
2298
  var intro = defaultsMode_amd__introTemplate({
2276
2299
  amdName: options.amdName ? (("" + (quote(options.amdName))) + ", ") : '',
2277
2300
  amdDeps: bundle.externalModules.length ? '[' + bundle.externalModules.map( quoteId ).join( ', ' ) + '], ' : '',
2278
2301
  names: bundle.externalModules.map( getName ).join( ', ' )
2279
- }).replace( /\t/g, body.getIndentString() );
2302
+ }).replace( /\t/g, bundle.body.getIndentString() );
2280
2303
 
2281
- body.indent().prepend( intro ).trimLines().append( '\n\n});' );
2282
- return packageResult( body, options, 'toAmd', true );
2304
+ bundle.body.indent().prepend( intro ).trimLines().append( '\n\n});' );
2305
+ return packageResult( bundle, bundle.body, options, 'toAmd', true );
2283
2306
  }
2284
2307
 
2285
2308
  function quoteId ( m ) {
2286
2309
  return "'" + m.id + "'";
2287
2310
  }
2288
2311
 
2289
- function defaultsMode_cjs__cjs ( bundle, body, options ) {
2312
+ function defaultsMode_cjs__cjs ( bundle, options ) {
2290
2313
  var importBlock = bundle.externalModules.map( function(x ) {
2291
2314
  return (("var " + (x.name)) + (" = " + (req(x.id))) + ";");
2292
2315
  }).join( '\n' );
2293
2316
 
2294
2317
  if ( importBlock ) {
2295
- body.prepend( importBlock + '\n\n' );
2318
+ bundle.body.prepend( importBlock + '\n\n' );
2296
2319
  }
2297
2320
 
2298
2321
  var defaultName = bundle.entryModule.identifierReplacements.default;
2299
2322
  if ( defaultName ) {
2300
- body.append( (("\n\nmodule.exports = " + defaultName) + ";") );
2323
+ bundle.body.append( (("\n\nmodule.exports = " + defaultName) + ";") );
2301
2324
  }
2302
2325
 
2303
- body.prepend("'use strict';\n\n").trimLines();
2326
+ bundle.body.prepend("'use strict';\n\n").trimLines();
2304
2327
 
2305
- return packageResult( body, options, 'toCjs', true );
2328
+ return packageResult( bundle, bundle.body, options, 'toCjs', true );
2306
2329
  }
2307
2330
 
2308
- function defaultsMode_umd__umd ( bundle, body, options ) {
2331
+ function defaultsMode_umd__umd ( bundle, options ) {
2309
2332
  requireName( options );
2310
2333
 
2311
2334
  var entry = bundle.entryModule;
@@ -2317,12 +2340,12 @@ function defaultsMode_umd__umd ( bundle, body, options ) {
2317
2340
  if (!hasImports && !hasExports) {
2318
2341
  intro = standaloneUmdIntro({
2319
2342
  amdName: options.amdName,
2320
- }, body.getIndentString() );
2343
+ }, bundle.body.getIndentString() );
2321
2344
  } else {
2322
2345
 
2323
2346
  var defaultName = entry.identifierReplacements.default;
2324
2347
  if ( defaultName ) {
2325
- body.append( (("\n\nreturn " + defaultName) + ";") );
2348
+ bundle.body.append( (("\n\nreturn " + defaultName) + ";") );
2326
2349
  }
2327
2350
 
2328
2351
  var importPaths = bundle.externalModules.map( getId );
@@ -2334,12 +2357,12 @@ function defaultsMode_umd__umd ( bundle, body, options ) {
2334
2357
  importNames: importNames,
2335
2358
  amdName: options.amdName,
2336
2359
  name: options.name
2337
- }, body.getIndentString() );
2360
+ }, bundle.body.getIndentString() );
2338
2361
  }
2339
2362
 
2340
- body.indent().prepend( intro ).trimLines().append('\n\n}));');
2363
+ bundle.body.indent().prepend( intro ).trimLines().append('\n\n}));');
2341
2364
 
2342
- return packageResult( body, options, 'toUmd', true );
2365
+ return packageResult( bundle, bundle.body, options, 'toUmd', true );
2343
2366
  }
2344
2367
 
2345
2368
  var builders_defaultsMode = {
@@ -2355,7 +2378,7 @@ function getExportBlock ( entry ) {
2355
2378
 
2356
2379
  var builders_strictMode_amd__introTemplate = template( 'define(<%= amdName %><%= amdDeps %>function (<%= names %>) {\n\n\t\'use strict\';\n\n' );
2357
2380
 
2358
- function builders_strictMode_amd__amd ( bundle, body, options ) {
2381
+ function builders_strictMode_amd__amd ( bundle, options ) {
2359
2382
  var externalDefaults = bundle.externalModules.filter( builders_strictMode_amd__needsDefault );
2360
2383
  var entry = bundle.entryModule;
2361
2384
 
@@ -2373,7 +2396,7 @@ function builders_strictMode_amd__amd ( bundle, body, options ) {
2373
2396
  return (("var " + (x.name)) + ("__default = ('default' in " + (x.name)) + (" ? " + (x.name)) + ("['default'] : " + (x.name)) + ");");
2374
2397
  }).join( '\n' );
2375
2398
 
2376
- body.prepend( defaultsBlock + '\n\n' );
2399
+ bundle.body.prepend( defaultsBlock + '\n\n' );
2377
2400
  }
2378
2401
 
2379
2402
  if ( entry.exports.length ) {
@@ -2381,7 +2404,7 @@ function builders_strictMode_amd__amd ( bundle, body, options ) {
2381
2404
  importNames.unshift( 'exports' );
2382
2405
 
2383
2406
  if ( entry.defaultExport ) {
2384
- body.append( '\n\n' + getExportBlock( entry ) );
2407
+ bundle.body.append( '\n\n' + getExportBlock( entry ) );
2385
2408
  }
2386
2409
  }
2387
2410
 
@@ -2389,17 +2412,17 @@ function builders_strictMode_amd__amd ( bundle, body, options ) {
2389
2412
  amdName: options.amdName ? (("" + (quote(options.amdName))) + ", ") : '',
2390
2413
  amdDeps: importIds.length ? '[' + importIds.map( quote ).join( ', ' ) + '], ' : '',
2391
2414
  names: importNames.join( ', ' )
2392
- }).replace( /\t/g, body.getIndentString() );
2415
+ }).replace( /\t/g, bundle.body.getIndentString() );
2393
2416
 
2394
- body.indent().prepend( intro ).trimLines().append( '\n\n});' );
2395
- return packageResult( body, options, 'toAmd', true );
2417
+ bundle.body.indent().prepend( intro ).trimLines().append( '\n\n});' );
2418
+ return packageResult( bundle, bundle.body, options, 'toAmd', true );
2396
2419
  }
2397
2420
 
2398
2421
  function builders_strictMode_amd__needsDefault ( externalModule ) {
2399
2422
  return externalModule.needsDefault;
2400
2423
  }
2401
2424
 
2402
- function builders_strictMode_cjs__cjs ( bundle, body, options ) {
2425
+ function builders_strictMode_cjs__cjs ( bundle, options ) {
2403
2426
  var entry = bundle.entryModule;
2404
2427
 
2405
2428
  var importBlock = bundle.externalModules.map( function(x ) {
@@ -2415,19 +2438,19 @@ function builders_strictMode_cjs__cjs ( bundle, body, options ) {
2415
2438
  }).join( '\n' );
2416
2439
 
2417
2440
  if ( importBlock ) {
2418
- body.prepend( importBlock + '\n\n' );
2441
+ bundle.body.prepend( importBlock + '\n\n' );
2419
2442
  }
2420
2443
 
2421
2444
  if ( entry.defaultExport ) {
2422
- body.append( '\n\n' + getExportBlock( entry ) );
2445
+ bundle.body.append( '\n\n' + getExportBlock( entry ) );
2423
2446
  }
2424
2447
 
2425
- body.prepend("'use strict';\n\n").trimLines();
2448
+ bundle.body.prepend("'use strict';\n\n").trimLines();
2426
2449
 
2427
- return packageResult( body, options, 'toCjs', true );
2450
+ return packageResult( bundle, bundle.body, options, 'toCjs', true );
2428
2451
  }
2429
2452
 
2430
- function builders_strictMode_umd__umd ( bundle, body, options ) {
2453
+ function builders_strictMode_umd__umd ( bundle, options ) {
2431
2454
  requireName( options );
2432
2455
 
2433
2456
  var entry = bundle.entryModule;
@@ -2439,11 +2462,11 @@ function builders_strictMode_umd__umd ( bundle, body, options ) {
2439
2462
  if (!hasImports && !hasExports) {
2440
2463
  intro = standaloneUmdIntro({
2441
2464
  amdName: options.amdName,
2442
- }, body.getIndentString() );
2465
+ }, bundle.body.getIndentString() );
2443
2466
  } else {
2444
2467
 
2445
2468
  if ( hasExports && entry.defaultExport ) {
2446
- body.append( '\n\n' + getExportBlock( entry ) );
2469
+ bundle.body.append( '\n\n' + getExportBlock( entry ) );
2447
2470
  }
2448
2471
 
2449
2472
  var importPaths = bundle.externalModules.map( getId );
@@ -2456,12 +2479,12 @@ function builders_strictMode_umd__umd ( bundle, body, options ) {
2456
2479
  externalDefaults: bundle.externalModules.filter( builders_strictMode_umd__needsDefault ),
2457
2480
  amdName: options.amdName,
2458
2481
  name: options.name,
2459
- }, body.getIndentString() );
2482
+ }, bundle.body.getIndentString() );
2460
2483
  }
2461
2484
 
2462
- body.indent().prepend( intro ).trimLines().append('\n\n}));');
2485
+ bundle.body.indent().prepend( intro ).trimLines().append('\n\n}));');
2463
2486
 
2464
- return packageResult( body, options, 'toUmd', true );
2487
+ return packageResult( bundle, bundle.body, options, 'toUmd', true );
2465
2488
  }
2466
2489
 
2467
2490
  function builders_strictMode_umd__needsDefault ( externalModule ) {
@@ -2481,28 +2504,26 @@ var bundleBuilders = {
2481
2504
  };
2482
2505
 
2483
2506
  function concat ( bundle, options ) {
2484
- var body, intro, outro, indent;
2507
+ var intro, outro, indent;
2485
2508
 
2486
2509
  // This bundle must be self-contained - no imports or exports
2487
2510
  if ( bundle.externalModules.length || bundle.entryModule.exports.length ) {
2488
2511
  throw new Error( (("bundle.concat() can only be used with bundles that have no imports/exports (imports: [" + (bundle.externalModules.map(function(x){return x.id}).join(', '))) + ("], exports: [" + (bundle.entryModule.exports.join(', '))) + "])") );
2489
2512
  }
2490
2513
 
2491
- body = bundle.body.clone();
2492
-
2493
2514
  // TODO test these options
2494
2515
  intro = 'intro' in options ? options.intro : ("(function () { 'use strict';\n\n");
2495
2516
  outro = 'outro' in options ? options.outro : '\n\n})();';
2496
2517
 
2497
2518
  if ( !( 'indent' in options ) || options.indent === true ) {
2498
- indent = body.getIndentString();
2519
+ indent = bundle.body.getIndentString();
2499
2520
  } else {
2500
2521
  indent = options.indent || '';
2501
2522
  }
2502
2523
 
2503
- body.trimLines().indent( indent ).prepend( intro ).append( outro );
2524
+ bundle.body.trimLines().indent( indent ).prepend( intro ).append( outro );
2504
2525
 
2505
- return packageResult( body, options, 'toString', true );
2526
+ return packageResult( bundle, bundle.body, options, 'toString', true );
2506
2527
  }
2507
2528
 
2508
2529
  var deprecateMessage = 'options.defaultOnly has been deprecated, and is now standard behaviour. To use named imports/exports, pass `strict: true`.',
@@ -2515,7 +2536,6 @@ function transpileMethod ( format ) {
2515
2536
  builder;
2516
2537
 
2517
2538
  mod = getStandaloneModule({ source: source, getModuleName: options.getModuleName, strict: options.strict });
2518
- body = mod.body.clone();
2519
2539
 
2520
2540
  if ( 'defaultOnly' in options && !alreadyWarned ) {
2521
2541
  // TODO link to a wiki page explaining this, or something
@@ -2538,7 +2558,7 @@ function transpileMethod ( format ) {
2538
2558
  builder = moduleBuilders.strictMode[ format ];
2539
2559
  }
2540
2560
 
2541
- return builder( mod, body, options );
2561
+ return builder( mod, options );
2542
2562
  };
2543
2563
  }
2544
2564
 
@@ -2590,7 +2610,7 @@ var esperanto = {
2590
2610
  builder = bundleBuilders.strictMode[ format ];
2591
2611
  }
2592
2612
 
2593
- return builder( bundle, bundle.body.clone(), options );
2613
+ return builder( bundle, options );
2594
2614
  }
2595
2615
  });
2596
2616
  }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: esperanto-source
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.16
4
+ version: 0.6.17
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryunosuke SATO