babel-source 4.6.5 → 4.6.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +8 -8
  2. data/lib/babel.js +165 -54
  3. data/lib/babel/source.rb +2 -2
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZGFjODk3YzBiZGU5NTRjMDNlYWM2Nzk0NTE4ZTAzMGNkMWVkM2VjMg==
4
+ YTY1MDg0OTBjNzRhMTRkM2JiYzJkZWYxNWRhOTNmMzI4MjI4YmE5Nw==
5
5
  data.tar.gz: !binary |-
6
- ODk0ZmFlMGI3NTFjNzJhNGVkNGIxYWY4ZjkwZGRkNTFhOGIwMzhiZQ==
6
+ YzNmYWJiZDM1ZmY0MTc3MWY3NmY1ZTk0OGJlNDkwYzZmODgyNmU4ZQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- OTg1NWZlNGI0ZWY0ODg4MjU1MWY3NWVkNDlhN2ZjM2Y2ZWY4Yjk5ZDVhNjgy
10
- Y2JkMTNlY2NkNDNiMjk5ODJkOTk5MzQ5MGU3ZGEwMWEwYzc4MjQ5NmEzNjE4
11
- MGRiODQwYzZhNzg3MDNmYmY1NmUzOTg2ZTJmYjBmZjExNDM5OGI=
9
+ NjVjNDIyOGI1NWZiOGU4ZjdjOGRiNDg5NWMyOGU3ZDUxMDhiM2VhNGZmYzk0
10
+ ZWM5NTQ4M2M3NDVhMDRmMjUwNjgxMTk2YTk4NGFhYmU5M2Q5OTA3YjNlMjM4
11
+ MjM2YWExMjQ5MmFmNmUyYWRjOWEyYTI1YWNlMDdjZDEzYTdiMDc=
12
12
  data.tar.gz: !binary |-
13
- ZjI1NDBhZDMzY2RjOGQyMDM2N2JkYjUwYzFhZjQwMGY4Y2M4ZDI0MTNjOGQ4
14
- MmJiNzAwNzU4MTBiODI2ZTkzNWYwODM4ZGNkNTI1MWI1MmJkMzJmYjczOGNl
15
- NDlhNjEzNjQyN2U0MGM2MzU3ZjFmNmE2ZDQ2OWRhNWQ1Yjk0NzI=
13
+ YTQ2MDg5MjA1MjI4ZDllMWM4YTg3MmNhMDczYmRjYTNjYzBjYzkyMDAzYmMx
14
+ ZmU1N2Y0YzA5YjY0YTU1NzJhNjFiYWYyMGQ4NGIzOTg3ZjY2YWQyYzQwODYz
15
+ YTUwN2U3ZDk0ZTJiMWQ4MmRjMzFkOTY4MWZiNTJkM2Q4OTdiNDU=
data/lib/babel.js CHANGED
@@ -422,6 +422,7 @@ exports.ThisExpression = ThisExpression;
422
422
  exports.CallExpression = CallExpression;
423
423
  exports.EmptyStatement = EmptyStatement;
424
424
  exports.ExpressionStatement = ExpressionStatement;
425
+ exports.AssignmentExpression = AssignmentExpression;
425
426
  exports.MemberExpression = MemberExpression;
426
427
 
427
428
  var isInteger = _interopRequire(require("is-integer"));
@@ -537,14 +538,18 @@ function ExpressionStatement(node, print) {
537
538
  this.semicolon();
538
539
  }
539
540
 
540
- exports.BinaryExpression = exports.LogicalExpression = exports.AssignmentPattern = exports.AssignmentExpression = function (node, print) {
541
+ function AssignmentExpression(node, print) {
541
542
  // todo: add cases where the spaces can be dropped when in compact mode
542
543
  print(node.left);
543
544
  this.push(" ");
544
545
  this.push(node.operator);
545
546
  this.push(" ");
546
547
  print(node.right);
547
- };
548
+ }
549
+
550
+ exports.BinaryExpression = AssignmentExpression;
551
+ exports.LogicalExpression = AssignmentExpression;
552
+ exports.AssignmentPattern = AssignmentExpression;
548
553
 
549
554
  var SCIENTIFIC_NOTATION = /e/i;
550
555
 
@@ -945,6 +950,7 @@ var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["defau
945
950
 
946
951
  exports._params = _params;
947
952
  exports._method = _method;
953
+ exports.FunctionExpression = FunctionExpression;
948
954
  exports.ArrowFunctionExpression = ArrowFunctionExpression;
949
955
 
950
956
  var t = _interopRequire(require("../../types"));
@@ -995,7 +1001,7 @@ function _method(node, print) {
995
1001
  print(value.body);
996
1002
  }
997
1003
 
998
- exports.FunctionDeclaration = exports.FunctionExpression = function (node, print) {
1004
+ function FunctionExpression(node, print) {
999
1005
  if (node.async) this.push("async ");
1000
1006
  this.push("function");
1001
1007
  if (node.generator) this.push("*");
@@ -1010,7 +1016,9 @@ exports.FunctionDeclaration = exports.FunctionExpression = function (node, print
1010
1016
  this._params(node, print);
1011
1017
  this.space();
1012
1018
  print(node.body);
1013
- };
1019
+ }
1020
+
1021
+ exports.FunctionDeclaration = FunctionExpression;
1014
1022
 
1015
1023
  function ArrowFunctionExpression(node, print) {
1016
1024
  if (node.async) this.push("async ");
@@ -1046,7 +1054,7 @@ function ImportSpecifier(node, print) {
1046
1054
  if (t.isSpecifierDefault(node)) {
1047
1055
  print(t.getSpecifierName(node));
1048
1056
  } else {
1049
- return exports.ExportSpecifier.apply(this, arguments);
1057
+ return ExportSpecifier.apply(this, arguments);
1050
1058
  }
1051
1059
  }
1052
1060
 
@@ -1447,8 +1455,11 @@ exports.__esModule = true;
1447
1455
  var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; };
1448
1456
 
1449
1457
  exports.Identifier = Identifier;
1458
+ exports.RestElement = RestElement;
1450
1459
  exports.VirtualPropertyExpression = VirtualPropertyExpression;
1460
+ exports.ObjectExpression = ObjectExpression;
1451
1461
  exports.Property = Property;
1462
+ exports.ArrayExpression = ArrayExpression;
1452
1463
  exports.Literal = Literal;
1453
1464
  exports._stringLiteral = _stringLiteral;
1454
1465
 
@@ -1458,10 +1469,13 @@ function Identifier(node) {
1458
1469
  this.push(node.name);
1459
1470
  }
1460
1471
 
1461
- exports.RestElement = exports.SpreadElement = exports.SpreadProperty = function (node, print) {
1472
+ function RestElement(node, print) {
1462
1473
  this.push("...");
1463
1474
  print(node.argument);
1464
- };
1475
+ }
1476
+
1477
+ exports.SpreadElement = RestElement;
1478
+ exports.SpreadProperty = RestElement;
1465
1479
 
1466
1480
  function VirtualPropertyExpression(node, print) {
1467
1481
  print(node.object);
@@ -1469,7 +1483,7 @@ function VirtualPropertyExpression(node, print) {
1469
1483
  print(node.property);
1470
1484
  }
1471
1485
 
1472
- exports.ObjectExpression = exports.ObjectPattern = function (node, print) {
1486
+ function ObjectExpression(node, print) {
1473
1487
  var props = node.properties;
1474
1488
 
1475
1489
  if (props.length) {
@@ -1483,7 +1497,9 @@ exports.ObjectExpression = exports.ObjectPattern = function (node, print) {
1483
1497
  } else {
1484
1498
  this.push("{}");
1485
1499
  }
1486
- };
1500
+ }
1501
+
1502
+ exports.ObjectPattern = ObjectExpression;
1487
1503
 
1488
1504
  function Property(node, print) {
1489
1505
  if (node.method || node.kind === "get" || node.kind === "set") {
@@ -1504,7 +1520,7 @@ function Property(node, print) {
1504
1520
  }
1505
1521
  }
1506
1522
 
1507
- exports.ArrayExpression = exports.ArrayPattern = function (node, print) {
1523
+ function ArrayExpression(node, print) {
1508
1524
  var _this = this;
1509
1525
 
1510
1526
  var elems = node.elements;
@@ -1528,7 +1544,9 @@ exports.ArrayExpression = exports.ArrayPattern = function (node, print) {
1528
1544
  });
1529
1545
 
1530
1546
  this.push("]");
1531
- };
1547
+ }
1548
+
1549
+ exports.ArrayPattern = ArrayExpression;
1532
1550
 
1533
1551
  function Literal(node) {
1534
1552
  var val = node.value;
@@ -2752,7 +2770,7 @@ module.exports = function (lines, lineNumber, colNumber) {
2752
2770
  return;
2753
2771
  }
2754
2772
  if (colNumber) {
2755
- params.line += "\n" + params.before + repeating(" ", params.width) + params.after + repeating(" ", colNumber - 1) + "^";
2773
+ params.line += "\n" + params.before + "" + repeating(" ", params.width) + "" + params.after + "" + repeating(" ", colNumber - 1) + "^";
2756
2774
  }
2757
2775
  params.before = params.before.replace(/^./, ">");
2758
2776
  }
@@ -2820,7 +2838,7 @@ module.exports = function (opts, code, callback) {
2820
2838
  } catch (err) {
2821
2839
  if (!err._babel) {
2822
2840
  err._babel = true;
2823
- var message = opts.filename + ": " + err.message;
2841
+ var message = "" + opts.filename + ": " + err.message;
2824
2842
 
2825
2843
  var loc = err.loc;
2826
2844
  if (loc) {
@@ -2885,14 +2903,14 @@ var messages = exports.messages = {
2885
2903
  };
2886
2904
 
2887
2905
  function get(key) {
2888
- var msg = exports.messages[key];
2889
- if (!msg) throw new ReferenceError("Unknown message `" + key + "`");
2906
+ var msg = messages[key];
2907
+ if (!msg) throw new ReferenceError("Unknown message " + JSON.stringify(key));
2890
2908
 
2891
2909
  var args = [];
2892
2910
  for (var i = 1; i < arguments.length; i++) {
2893
2911
  args.push(arguments[i]);
2894
2912
  }
2895
- args = exports.parseArgs(args);
2913
+ args = parseArgs(args);
2896
2914
 
2897
2915
  return msg.replace(/\$(\d+)/g, function (str, i) {
2898
2916
  return args[--i];
@@ -3379,6 +3397,13 @@ var File = (function () {
3379
3397
 
3380
3398
  return _checkNodeWrapper;
3381
3399
  })(function (node, scope) {
3400
+ if (Array.isArray(node)) {
3401
+ for (var i = 0; i < node.length; i++) {
3402
+ this.checkNode(node[i], scope);
3403
+ }
3404
+ return;
3405
+ }
3406
+
3382
3407
  var stack = this.transformerStack;
3383
3408
  if (!scope) scope = this.scope;
3384
3409
 
@@ -3422,7 +3447,7 @@ var File = (function () {
3422
3447
 
3423
3448
  if (this.shebang) {
3424
3449
  // add back shebang
3425
- result.code = this.shebang + "\n" + result.code;
3450
+ result.code = "" + this.shebang + "\n" + result.code;
3426
3451
  }
3427
3452
 
3428
3453
  if (opts.sourceMap === "inline") {
@@ -4567,7 +4592,7 @@ function has(node) {
4567
4592
 
4568
4593
  function wrap(node, callback) {
4569
4594
  var useStrictNode;
4570
- if (exports.has(node)) {
4595
+ if (has(node)) {
4571
4596
  useStrictNode = node.body.shift();
4572
4597
  }
4573
4598
 
@@ -5913,12 +5938,10 @@ function BlockStatement(node, parent, scope, file) {
5913
5938
  var letRefs = node._letReferences;
5914
5939
  if (!letRefs) return;
5915
5940
 
5916
- var state = {
5941
+ scope.traverse(node, visitor, {
5917
5942
  letRefs: letRefs,
5918
5943
  file: file
5919
- };
5920
-
5921
- scope.traverse(node, visitor, state);
5944
+ });
5922
5945
  }
5923
5946
 
5924
5947
  exports.Program = BlockStatement;
@@ -6135,7 +6158,7 @@ var loopVisitor = {
6135
6158
  return;
6136
6159
  }
6137
6160
 
6138
- loopText = loopText + "|" + node.label.name;
6161
+ loopText = "" + loopText + "|" + node.label.name;
6139
6162
  } else {
6140
6163
  // we shouldn't be transforming these statements because
6141
6164
  // they don't refer to the actual loop we're scopifying
@@ -6696,7 +6719,7 @@ var ClassTransformer = (function () {
6696
6719
  }
6697
6720
 
6698
6721
  // we have no constructor, we have a super, and the super doesn't appear to be falsy
6699
- if (!this.hasConstructor && this.hasSuper && t.evaluateTruthy(superName) !== false) {
6722
+ if (!this.hasConstructor && this.hasSuper && t.evaluateTruthy(superName, this.scope) !== false) {
6700
6723
  var helperName = "class-super-constructor-call";
6701
6724
  if (this.isLoose) helperName += "-loose";
6702
6725
  constructor.body.body.push(util.template(helperName, {
@@ -6946,12 +6969,12 @@ exports.ForInStatement = ForOfStatement;
6946
6969
  exports.Function = function (node, parent, scope, file) {
6947
6970
  var nodes = [];
6948
6971
 
6949
- var hasDestructuringTransformer = false;
6972
+ var hasDestructuring = false;
6950
6973
 
6951
6974
  node.params = node.params.map(function (pattern, i) {
6952
6975
  if (!t.isPattern(pattern)) return pattern;
6953
6976
 
6954
- hasDestructuringTransformer = true;
6977
+ hasDestructuring = true;
6955
6978
  var ref = scope.generateUidIdentifier("ref");
6956
6979
 
6957
6980
  var destructuring = new DestructuringTransformer({
@@ -6959,14 +6982,16 @@ exports.Function = function (node, parent, scope, file) {
6959
6982
  nodes: nodes,
6960
6983
  scope: scope,
6961
6984
  file: file,
6962
- kind: "var" });
6985
+ kind: "let"
6986
+ });
6963
6987
  destructuring.init(pattern, ref);
6964
6988
 
6965
6989
  return ref;
6966
6990
  });
6967
6991
 
6968
- if (!hasDestructuringTransformer) return;
6992
+ if (!hasDestructuring) return;
6969
6993
 
6994
+ file.checkNode(nodes);
6970
6995
  t.ensureBlock(node);
6971
6996
 
6972
6997
  var block = node.body;
@@ -7487,7 +7512,6 @@ var loose = function loose(node, parent, scope, file) {
7487
7512
  };
7488
7513
 
7489
7514
  var spec = function spec(node, parent, scope, file) {
7490
-
7491
7515
  var left = node.left;
7492
7516
  var declar;
7493
7517
 
@@ -7726,7 +7750,7 @@ exports.Function = function (node, parent, scope, file) {
7726
7750
  scope.traverse(param, iifeVisitor, state);
7727
7751
  }
7728
7752
 
7729
- if (file.transformers["es6.blockScopingTDZ"].canRun()) {
7753
+ if (file.transformers["es6.blockScopingTDZ"].canRun() && t.isIdentifier(param)) {
7730
7754
  pushDefNode(param, t.identifier("undefined"), i);
7731
7755
  }
7732
7756
 
@@ -7833,7 +7857,7 @@ var hasRest = function hasRest(node) {
7833
7857
  return t.isRestElement(node.params[node.params.length - 1]);
7834
7858
  };
7835
7859
 
7836
- exports.Function = function (node, parent, scope) {
7860
+ exports.Function = function (node, parent, scope, file) {
7837
7861
  if (!hasRest(node)) return;
7838
7862
 
7839
7863
  var rest = node.params.pop().argument;
@@ -7847,10 +7871,12 @@ exports.Function = function (node, parent, scope) {
7847
7871
  if (t.isPattern(rest)) {
7848
7872
  var pattern = rest;
7849
7873
  rest = scope.generateUidIdentifier("ref");
7850
- var declar = t.variableDeclaration("var", pattern.elements.map(function (elem, index) {
7874
+
7875
+ var declar = t.variableDeclaration("let", pattern.elements.map(function (elem, index) {
7851
7876
  var accessExpr = t.memberExpression(rest, t.literal(index), true);
7852
7877
  return t.variableDeclarator(elem, accessExpr);
7853
7878
  }));
7879
+ file.checkNode(declar);
7854
7880
  node.body.body.unshift(declar);
7855
7881
  }
7856
7882
 
@@ -10094,8 +10120,8 @@ function toStatements(node) {
10094
10120
 
10095
10121
  var optional = exports.optional = true;
10096
10122
 
10097
- function ConditionalExpression(node) {
10098
- var evaluateTest = t.evaluateTruthy(node.test);
10123
+ function ConditionalExpression(node, parent, scope) {
10124
+ var evaluateTest = t.evaluateTruthy(node.test, scope);
10099
10125
  if (evaluateTest === true) {
10100
10126
  return node.consequent;
10101
10127
  } else if (evaluateTest === false) {
@@ -10104,12 +10130,12 @@ function ConditionalExpression(node) {
10104
10130
  }
10105
10131
 
10106
10132
  var IfStatement = exports.IfStatement = {
10107
- exit: function exit(node) {
10133
+ exit: function exit(node, parent, scope) {
10108
10134
  var consequent = node.consequent;
10109
10135
  var alternate = node.alternate;
10110
10136
  var test = node.test;
10111
10137
 
10112
- var evaluateTest = t.evaluateTruthy(test);
10138
+ var evaluateTest = t.evaluateTruthy(test, scope);
10113
10139
 
10114
10140
  // we can check if a test will be truthy 100% and if so then we can inline
10115
10141
  // the consequent and completely ignore the alternate
@@ -10152,7 +10178,7 @@ var IfStatement = exports.IfStatement = {
10152
10178
  // if (foo) {} else { bar; } -> if (!foo) { bar; }
10153
10179
  //
10154
10180
 
10155
- if (t.blockStatement(consequent) && !consequent.body.length && t.isBlockStatement(alternate) && alternate.body.length) {
10181
+ if (t.isBlockStatement(consequent) && !consequent.body.length && t.isBlockStatement(alternate) && alternate.body.length) {
10156
10182
  node.consequent = node.alternate;
10157
10183
  node.alternate = null;
10158
10184
  node.test = t.unaryExpression("!", test, true);
@@ -10191,17 +10217,22 @@ exports.__esModule = true;
10191
10217
  var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; };
10192
10218
 
10193
10219
  exports.Expression = Expression;
10220
+ exports.Identifier = Identifier;
10194
10221
 
10195
10222
  var t = _interopRequire(require("../../../types"));
10196
10223
 
10197
10224
  var optional = exports.optional = true;
10198
10225
 
10199
- function Expression(node) {
10200
- var res = t.evaluate(node);
10226
+ function Expression(node, parent, scope) {
10227
+ var res = t.evaluate(node, scope);
10201
10228
  if (res.confident) return t.valueToNode(res.value);
10202
10229
  }
10203
10230
 
10231
+ function Identifier() {}
10232
+
10204
10233
  exports.__esModule = true;
10234
+
10235
+ // override Expression
10205
10236
  },{"../../../types":124}],112:[function(require,module,exports){
10206
10237
  "use strict";
10207
10238
 
@@ -11205,7 +11236,7 @@ var Scope = (function () {
11205
11236
  Scope.prototype.registerVariableDeclaration = function registerVariableDeclaration(declar) {
11206
11237
  var declars = declar.declarations;
11207
11238
  for (var i = 0; i < declars.length; i++) {
11208
- this.registerBinding(declars[i], declar.kind);
11239
+ this.registerBinding(declar.kind, declars[i]);
11209
11240
  }
11210
11241
  };
11211
11242
 
@@ -11418,6 +11449,36 @@ var Scope = (function () {
11418
11449
  return binding && binding.identifier;
11419
11450
  };
11420
11451
 
11452
+ Scope.prototype.getOwnImmutableBindingValue = function getOwnImmutableBindingValue(name) {
11453
+ return this._immutableBindingInfoToValue(this.getOwnBindingInfo(name));
11454
+ };
11455
+
11456
+ Scope.prototype.getImmutableBindingValue = function getImmutableBindingValue(name) {
11457
+ return this._immutableBindingInfoToValue(this.getBindingInfo(name));
11458
+ };
11459
+
11460
+ Scope.prototype._immutableBindingInfoToValue = function _immutableBindingInfoToValue(info) {
11461
+ if (!info) return;
11462
+
11463
+ // can't guarantee this value is the same
11464
+ if (info.reassigned) return;
11465
+
11466
+ var node = info.node;
11467
+ if (t.isVariableDeclarator(node)) {
11468
+ if (t.isIdentifier(node.id)) {
11469
+ node = node.init;
11470
+ } else {
11471
+ // otherwise it's probably a destructuring like:
11472
+ // var { foo } = "foo";
11473
+ return;
11474
+ }
11475
+ }
11476
+
11477
+ if (t.isImmutable(node)) {
11478
+ return node;
11479
+ }
11480
+ };
11481
+
11421
11482
  // has
11422
11483
 
11423
11484
  Scope.prototype.hasOwnBinding = function hasOwnBinding(name) {
@@ -12564,6 +12625,35 @@ t.isScope = function (node, parent) {
12564
12625
  return t.isScopable(node);
12565
12626
  };
12566
12627
 
12628
+ /**
12629
+ * Description
12630
+ *
12631
+ * @param {Node} node
12632
+ * @returns {Boolean}
12633
+ */
12634
+
12635
+ t.isImmutable = function (node) {
12636
+ if (t.isLiteral(node)) {
12637
+ if (node.regex) {
12638
+ // regexes are mutable
12639
+ return false;
12640
+ } else {
12641
+ // immutable!
12642
+ return true;
12643
+ }
12644
+ } else if (t.isIdentifier(node)) {
12645
+ if (node.name === "undefined") {
12646
+ // immutable!
12647
+ return true;
12648
+ } else {
12649
+ // no idea...
12650
+ return false;
12651
+ }
12652
+ }
12653
+
12654
+ return false;
12655
+ };
12656
+
12567
12657
  /**
12568
12658
  * Walk the input `node` and statically evaluate if it's truthy.
12569
12659
  *
@@ -12581,11 +12671,12 @@ t.isScope = function (node, parent) {
12581
12671
  * if (!t.evaluateTruthy(node)) falsyLogic();
12582
12672
  *
12583
12673
  * @param {Node} node
12674
+ * @param {Scope} scope
12584
12675
  * @returns {Boolean}
12585
12676
  */
12586
12677
 
12587
- t.evaluateTruthy = function (node) {
12588
- var res = t.evaluate(node);
12678
+ t.evaluateTruthy = function (node, scope) {
12679
+ var res = t.evaluate(node, scope);
12589
12680
  if (res.confident) return !!res.value;
12590
12681
  };
12591
12682
 
@@ -12603,10 +12694,11 @@ t.evaluateTruthy = function (node) {
12603
12694
  * t.evaluate(parse("foo + foo")) // { confident: false, value: undefined }
12604
12695
  *
12605
12696
  * @param {Node} node
12697
+ * @param {Scope} scope
12606
12698
  * @returns {Object}
12607
12699
  */
12608
12700
 
12609
- t.evaluate = function (node) {
12701
+ t.evaluate = function (node, scope) {
12610
12702
  var confident = true;
12611
12703
 
12612
12704
  var value = evaluate(node);
@@ -12637,8 +12729,12 @@ t.evaluate = function (node) {
12637
12729
  }
12638
12730
  }
12639
12731
 
12640
- if (t.isIdentifier(node, { name: "undefined" })) {
12641
- return undefined;
12732
+ if (t.isIdentifier(node)) {
12733
+ if (node.name === "undefined") {
12734
+ return undefined;
12735
+ } else {
12736
+ return evaluate(scope.getImmutableBindingValue(node.name));
12737
+ }
12642
12738
  }
12643
12739
 
12644
12740
  if (t.isUnaryExpression(node, { prefix: true })) {
@@ -12921,7 +13017,7 @@ exports.inspect = _util.inspect;
12921
13017
  var debug = exports.debug = buildDebug("babel");
12922
13018
 
12923
13019
  function canCompile(filename, altExts) {
12924
- var exts = altExts || exports.canCompile.EXTENSIONS;
13020
+ var exts = altExts || canCompile.EXTENSIONS;
12925
13021
  var ext = path.extname(filename);
12926
13022
  return contains(exts, ext);
12927
13023
  }
@@ -12951,7 +13047,7 @@ function regexify(val) {
12951
13047
  function arrayify(val) {
12952
13048
  if (!val) return [];
12953
13049
  if (isBoolean(val)) return [val];
12954
- if (isString(val)) return exports.list(val);
13050
+ if (isString(val)) return list(val);
12955
13051
  if (Array.isArray(val)) return val;
12956
13052
  throw new TypeError("illegal type for arrayify");
12957
13053
  }
@@ -18347,7 +18443,7 @@ def("ArrowFunctionExpression")
18347
18443
  .field("id", null, defaults["null"])
18348
18444
  // The current spec forbids arrow generators, so I have taken the
18349
18445
  // liberty of enforcing that. TODO Report this.
18350
- .field("generator", false);
18446
+ .field("generator", false, defaults["false"]);
18351
18447
 
18352
18448
  def("YieldExpression")
18353
18449
  .bases("Expression")
@@ -43046,8 +43142,23 @@ define(function (require, exports, module) {
43046
43142
  return -1;
43047
43143
  }
43048
43144
 
43049
- return recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack, aCompare,
43050
- aBias || exports.GREATEST_LOWER_BOUND);
43145
+ var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,
43146
+ aCompare, aBias || exports.GREATEST_LOWER_BOUND);
43147
+ if (index < 0) {
43148
+ return -1;
43149
+ }
43150
+
43151
+ // We have found either the exact element, or the next-closest element than
43152
+ // the one we are searching for. However, there may be more than one such
43153
+ // element. Make sure we always return the smallest of these.
43154
+ while (index - 1 >= 0) {
43155
+ if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {
43156
+ break;
43157
+ }
43158
+ --index;
43159
+ }
43160
+
43161
+ return index;
43051
43162
  };
43052
43163
 
43053
43164
  });
@@ -43495,7 +43606,7 @@ define(function (require, exports, module) {
43495
43606
  var index = 0;
43496
43607
  var cachedValues = {};
43497
43608
  var temp = {};
43498
- var mapping, str, values, end;
43609
+ var mapping, str, values, end, value;
43499
43610
 
43500
43611
  while (index < length) {
43501
43612
  if (aStr.charAt(index) === ';') {
@@ -45172,7 +45283,7 @@ define(function (require, exports, module) {
45172
45283
  return cmp;
45173
45284
  }
45174
45285
 
45175
- cmp = strcmp(mappingA.name, mappingB.name);
45286
+ cmp = mappingA.generatedColumn - mappingB.generatedColumn;
45176
45287
  if (cmp) {
45177
45288
  return cmp;
45178
45289
  }
@@ -45182,7 +45293,7 @@ define(function (require, exports, module) {
45182
45293
  return cmp;
45183
45294
  }
45184
45295
 
45185
- return mappingA.generatedColumn - mappingB.generatedColumn;
45296
+ return strcmp(mappingA.name, mappingB.name);
45186
45297
  };
45187
45298
  exports.compareByOriginalPositions = compareByOriginalPositions;
45188
45299
 
@@ -45542,7 +45653,7 @@ module.exports = function (str) {
45542
45653
  module.exports={
45543
45654
  "name": "babel",
45544
45655
  "description": "Turn ES6 code into readable vanilla ES5 with source maps",
45545
- "version": "4.6.5",
45656
+ "version": "4.6.6",
45546
45657
  "author": "Sebastian McKenzie <sebmck@gmail.com>",
45547
45658
  "homepage": "https://babeljs.io/",
45548
45659
  "repository": "babel/babel",
data/lib/babel/source.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  module Babel
2
2
  module Source
3
- VERSION = "4.6.5"
4
- DATE = Time.at(1425297275)
3
+ VERSION = "4.6.6"
4
+ DATE = Time.at(1425382986)
5
5
  PATH = File.expand_path("../..", __FILE__)
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: babel-source
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.6.5
4
+ version: 4.6.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sebastian McKenzie
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-02 00:00:00.000000000 Z
11
+ date: 2015-03-03 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email: sebmck@gmail.com