react 0.14.0-beta1 → 0.14.0-beta2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. package/addons.js +5 -2
  2. package/dist/JSXTransformer.js +588 -227
  3. package/dist/react-with-addons.js +3118 -2707
  4. package/dist/react-with-addons.min.js +6 -6
  5. package/dist/react.js +3713 -3317
  6. package/dist/react.min.js +6 -5
  7. package/lib/AutoFocusUtils.js +3 -3
  8. package/lib/BeforeInputEventPlugin.js +13 -13
  9. package/lib/CSSProperty.js +3 -0
  10. package/lib/CSSPropertyOperations.js +13 -13
  11. package/lib/CallbackQueue.js +4 -4
  12. package/lib/ChangeEventPlugin.js +12 -12
  13. package/lib/DOMChildrenOperations.js +10 -6
  14. package/lib/DOMProperty.js +8 -8
  15. package/lib/DOMPropertyOperations.js +9 -9
  16. package/lib/Danger.js +14 -14
  17. package/lib/DefaultEventPluginOrder.js +2 -2
  18. package/lib/EnterLeaveEventPlugin.js +5 -5
  19. package/lib/EventConstants.js +23 -1
  20. package/lib/EventPluginHub.js +11 -11
  21. package/lib/EventPluginRegistry.js +8 -8
  22. package/lib/EventPluginUtils.js +11 -11
  23. package/lib/EventPropagators.js +7 -7
  24. package/lib/FallbackCompositionState.js +3 -3
  25. package/lib/HTMLDOMPropertyConfig.js +4 -2
  26. package/lib/LinkedStateMixin.js +2 -2
  27. package/lib/LinkedValueUtils.js +8 -8
  28. package/lib/MetaMatchers.js +118 -0
  29. package/lib/OrderedMap.js +453 -0
  30. package/lib/PooledClass.js +2 -2
  31. package/lib/React.js +6 -6
  32. package/lib/ReactBrowserComponentMixin.js +4 -4
  33. package/lib/ReactBrowserEventEmitter.js +30 -7
  34. package/lib/ReactCSSTransitionGroup.js +16 -5
  35. package/lib/ReactCSSTransitionGroupChild.js +12 -11
  36. package/lib/ReactChildReconciler.js +25 -18
  37. package/lib/ReactChildren.js +6 -6
  38. package/lib/ReactClass.js +42 -42
  39. package/lib/ReactComponent.js +13 -13
  40. package/lib/ReactComponentBrowserEnvironment.js +2 -2
  41. package/lib/ReactComponentEnvironment.js +2 -2
  42. package/lib/ReactComponentWithPureRenderMixin.js +1 -1
  43. package/lib/ReactCompositeComponent.js +38 -38
  44. package/lib/ReactDOM.js +72 -159
  45. package/lib/ReactDOMComponent.js +104 -60
  46. package/lib/ReactDOMFactories.js +177 -0
  47. package/lib/ReactDOMIDOperations.js +10 -24
  48. package/lib/ReactDOMInput.js +8 -8
  49. package/lib/ReactDOMOption.js +7 -7
  50. package/lib/ReactDOMSelect.js +8 -8
  51. package/lib/ReactDOMSelection.js +3 -3
  52. package/lib/ReactDOMServer.js +2 -2
  53. package/lib/ReactDOMTextComponent.js +11 -11
  54. package/lib/ReactDOMTextarea.js +11 -11
  55. package/lib/ReactDefaultBatchingStrategy.js +4 -4
  56. package/lib/ReactDefaultInjection.js +24 -24
  57. package/lib/ReactDefaultPerf.js +7 -7
  58. package/lib/ReactDefaultPerfAnalysis.js +6 -9
  59. package/lib/ReactElement.js +4 -4
  60. package/lib/ReactElementValidator.js +21 -21
  61. package/lib/ReactEmptyComponent.js +4 -4
  62. package/lib/ReactEventEmitterMixin.js +1 -1
  63. package/lib/ReactEventListener.js +19 -14
  64. package/lib/ReactFragment.js +11 -11
  65. package/lib/ReactInjection.js +11 -11
  66. package/lib/ReactInputSelection.js +4 -4
  67. package/lib/ReactInstanceHandles.js +10 -11
  68. package/lib/ReactIsomorphic.js +11 -11
  69. package/lib/ReactLink.js +1 -1
  70. package/lib/ReactMarkupChecksum.js +6 -2
  71. package/lib/ReactMount.js +68 -48
  72. package/lib/ReactMultiChild.js +83 -22
  73. package/lib/ReactMultiChildUpdateTypes.js +2 -1
  74. package/lib/ReactNativeComponent.js +3 -3
  75. package/lib/ReactNoopUpdateQueue.js +3 -3
  76. package/lib/ReactOwner.js +3 -3
  77. package/lib/ReactPerf.js +2 -2
  78. package/lib/ReactPropTransferer.js +3 -3
  79. package/lib/ReactPropTypeLocationNames.js +1 -1
  80. package/lib/ReactPropTypeLocations.js +1 -1
  81. package/lib/ReactPropTypes.js +34 -8
  82. package/lib/ReactReconcileTransaction.js +6 -6
  83. package/lib/ReactReconciler.js +12 -12
  84. package/lib/ReactRef.js +1 -1
  85. package/lib/ReactServerBatchingStrategy.js +5 -5
  86. package/lib/ReactServerRendering.js +12 -12
  87. package/lib/ReactServerRenderingTransaction.js +5 -5
  88. package/lib/ReactTestUtils.js +26 -27
  89. package/lib/ReactTransitionChildMapping.js +2 -2
  90. package/lib/ReactTransitionEvents.js +1 -1
  91. package/lib/ReactTransitionGroup.js +5 -6
  92. package/lib/ReactUpdateQueue.js +17 -17
  93. package/lib/ReactUpdates.js +14 -14
  94. package/lib/ReactWithAddons.js +14 -14
  95. package/lib/ResponderEventPlugin.js +514 -0
  96. package/lib/ResponderSyntheticEvent.js +40 -0
  97. package/lib/ResponderTouchHistoryStore.js +180 -0
  98. package/lib/SVGDOMPropertyConfig.js +1 -1
  99. package/lib/SelectEventPlugin.js +9 -9
  100. package/lib/SimpleEventPlugin.js +201 -25
  101. package/lib/SyntheticClipboardEvent.js +1 -1
  102. package/lib/SyntheticCompositionEvent.js +1 -1
  103. package/lib/SyntheticDragEvent.js +1 -1
  104. package/lib/SyntheticEvent.js +3 -3
  105. package/lib/SyntheticFocusEvent.js +1 -1
  106. package/lib/SyntheticInputEvent.js +1 -1
  107. package/lib/SyntheticKeyboardEvent.js +4 -4
  108. package/lib/SyntheticMouseEvent.js +3 -3
  109. package/lib/SyntheticTouchEvent.js +2 -2
  110. package/lib/SyntheticUIEvent.js +2 -2
  111. package/lib/SyntheticWheelEvent.js +1 -1
  112. package/lib/TapEventPlugin.js +119 -0
  113. package/lib/Transaction.js +6 -6
  114. package/lib/accumulate.js +44 -0
  115. package/lib/accumulateInto.js +2 -2
  116. package/lib/adler32.js +19 -7
  117. package/lib/cloneWithProps.js +11 -6
  118. package/lib/createHierarchyRenderer.js +85 -0
  119. package/lib/dangerousStyleValue.js +1 -1
  120. package/lib/deprecated.js +4 -4
  121. package/lib/findDOMNode.js +9 -9
  122. package/lib/flattenChildren.js +4 -4
  123. package/lib/getEventKey.js +1 -1
  124. package/lib/getTestDocument.js +28 -0
  125. package/lib/getTextContentAccessor.js +1 -1
  126. package/lib/instantiateReactComponent.js +12 -12
  127. package/lib/isEventSupported.js +1 -1
  128. package/lib/onlyChild.js +3 -3
  129. package/lib/quoteAttributeValueForBrowser.js +1 -1
  130. package/lib/reactComponentExpect.js +210 -0
  131. package/lib/renderSubtreeIntoContainer.js +1 -1
  132. package/lib/setInnerHTML.js +1 -1
  133. package/lib/setTextContent.js +3 -3
  134. package/lib/shallowCompare.js +1 -1
  135. package/lib/sliceChildren.js +51 -0
  136. package/lib/traverseAllChildren.js +14 -13
  137. package/lib/update.js +13 -13
  138. package/lib/validateDOMNesting.js +6 -6
  139. package/lib/webcomponents.js +6379 -0
  140. package/package.json +4 -6
  141. package/react.js +1 -1
  142. package/lib/CSSCore.js +0 -97
  143. package/lib/EventListener.js +0 -84
  144. package/lib/ExecutionEnvironment.js +0 -38
  145. package/lib/ReactDOMClient.js +0 -90
  146. package/lib/camelize.js +0 -32
  147. package/lib/camelizeStyleName.js +0 -40
  148. package/lib/containsNode.js +0 -55
  149. package/lib/createArrayFromMixed.js +0 -85
  150. package/lib/createNodesFromMarkup.js +0 -84
  151. package/lib/emptyFunction.js +0 -38
  152. package/lib/emptyObject.js +0 -20
  153. package/lib/focusNode.js +0 -26
  154. package/lib/getActiveElement.js +0 -29
  155. package/lib/getMarkupWrap.js +0 -93
  156. package/lib/getUnboundedScrollPosition.js +0 -38
  157. package/lib/hyphenate.js +0 -33
  158. package/lib/hyphenateStyleName.js +0 -39
  159. package/lib/invariant.js +0 -49
  160. package/lib/isNode.js +0 -23
  161. package/lib/isTextNode.js +0 -25
  162. package/lib/keyMirror.js +0 -48
  163. package/lib/keyOf.js +0 -35
  164. package/lib/mapObject.js +0 -51
  165. package/lib/performance.js +0 -23
  166. package/lib/performanceNow.js +0 -28
  167. package/lib/shallowEqual.js +0 -48
  168. package/lib/toArray.js +0 -57
  169. package/lib/warning.js +0 -57
package/addons.js CHANGED
@@ -1,8 +1,11 @@
1
1
  var warning = require('./lib/warning');
2
2
  warning(
3
3
  false,
4
- "require('react/addons') is deprecated. " +
5
- "Access using require('react-addons-{addon}') instead."
4
+ // Require examples in this string must be split to prevent React's
5
+ // build tools from mistaking them for real requires.
6
+ // Otherwise the build tools will attempt to build a 'react-addons-{addon}' module.
7
+ 'require' + "('react/addons') is deprecated. " +
8
+ 'Access using require' + "('react-addons-{addon}') instead."
6
9
  );
7
10
 
8
11
  module.exports = require('./lib/ReactWithAddons');
@@ -1,5 +1,5 @@
1
1
  /**
2
- * JSXTransformer v0.14.0-beta1
2
+ * JSXTransformer v0.14.0-beta2
3
3
  */
4
4
  (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.JSXTransformer = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){
5
5
  /**
@@ -332,7 +332,7 @@ module.exports = {
332
332
  exec: exec,
333
333
  };
334
334
 
335
- },{"jstransform/simple":23}],2:[function(_dereq_,module,exports){
335
+ },{"jstransform/simple":24}],2:[function(_dereq_,module,exports){
336
336
 
337
337
  },{}],3:[function(_dereq_,module,exports){
338
338
  /*!
@@ -351,7 +351,6 @@ exports.SlowBuffer = SlowBuffer
351
351
  exports.INSPECT_MAX_BYTES = 50
352
352
  Buffer.poolSize = 8192 // not used by this implementation
353
353
 
354
- var kMaxLength = 0x3fffffff
355
354
  var rootParent = {}
356
355
 
357
356
  /**
@@ -377,11 +376,14 @@ var rootParent = {}
377
376
  * get the Object implementation, which is slower but will work correctly.
378
377
  */
379
378
  Buffer.TYPED_ARRAY_SUPPORT = (function () {
379
+ function Foo () {}
380
380
  try {
381
381
  var buf = new ArrayBuffer(0)
382
382
  var arr = new Uint8Array(buf)
383
383
  arr.foo = function () { return 42 }
384
+ arr.constructor = Foo
384
385
  return arr.foo() === 42 && // typed array instances can be augmented
386
+ arr.constructor === Foo && // constructor can be set
385
387
  typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`
386
388
  new Uint8Array(1).subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`
387
389
  } catch (e) {
@@ -389,6 +391,12 @@ Buffer.TYPED_ARRAY_SUPPORT = (function () {
389
391
  }
390
392
  })()
391
393
 
394
+ function kMaxLength () {
395
+ return Buffer.TYPED_ARRAY_SUPPORT
396
+ ? 0x7fffffff
397
+ : 0x3fffffff
398
+ }
399
+
392
400
  /**
393
401
  * Class: Buffer
394
402
  * =============
@@ -539,9 +547,9 @@ function allocate (that, length) {
539
547
  function checked (length) {
540
548
  // Note: cannot use `length < kMaxLength` here because that fails when
541
549
  // length is NaN (which is otherwise coerced to zero.)
542
- if (length >= kMaxLength) {
550
+ if (length >= kMaxLength()) {
543
551
  throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
544
- 'size: 0x' + kMaxLength.toString(16) + ' bytes')
552
+ 'size: 0x' + kMaxLength().toString(16) + ' bytes')
545
553
  }
546
554
  return length | 0
547
555
  }
@@ -633,29 +641,38 @@ Buffer.concat = function concat (list, length) {
633
641
  }
634
642
 
635
643
  function byteLength (string, encoding) {
636
- if (typeof string !== 'string') string = String(string)
644
+ if (typeof string !== 'string') string = '' + string
637
645
 
638
- if (string.length === 0) return 0
646
+ var len = string.length
647
+ if (len === 0) return 0
639
648
 
640
- switch (encoding || 'utf8') {
641
- case 'ascii':
642
- case 'binary':
643
- case 'raw':
644
- return string.length
645
- case 'ucs2':
646
- case 'ucs-2':
647
- case 'utf16le':
648
- case 'utf-16le':
649
- return string.length * 2
650
- case 'hex':
651
- return string.length >>> 1
652
- case 'utf8':
653
- case 'utf-8':
654
- return utf8ToBytes(string).length
655
- case 'base64':
656
- return base64ToBytes(string).length
657
- default:
658
- return string.length
649
+ // Use a for loop to avoid recursion
650
+ var loweredCase = false
651
+ for (;;) {
652
+ switch (encoding) {
653
+ case 'ascii':
654
+ case 'binary':
655
+ // Deprecated
656
+ case 'raw':
657
+ case 'raws':
658
+ return len
659
+ case 'utf8':
660
+ case 'utf-8':
661
+ return utf8ToBytes(string).length
662
+ case 'ucs2':
663
+ case 'ucs-2':
664
+ case 'utf16le':
665
+ case 'utf-16le':
666
+ return len * 2
667
+ case 'hex':
668
+ return len >>> 1
669
+ case 'base64':
670
+ return base64ToBytes(string).length
671
+ default:
672
+ if (loweredCase) return utf8ToBytes(string).length // assume utf8
673
+ encoding = ('' + encoding).toLowerCase()
674
+ loweredCase = true
675
+ }
659
676
  }
660
677
  }
661
678
  Buffer.byteLength = byteLength
@@ -664,8 +681,7 @@ Buffer.byteLength = byteLength
664
681
  Buffer.prototype.length = undefined
665
682
  Buffer.prototype.parent = undefined
666
683
 
667
- // toString(encoding, start=0, end=buffer.length)
668
- Buffer.prototype.toString = function toString (encoding, start, end) {
684
+ function slowToString (encoding, start, end) {
669
685
  var loweredCase = false
670
686
 
671
687
  start = start | 0
@@ -708,6 +724,13 @@ Buffer.prototype.toString = function toString (encoding, start, end) {
708
724
  }
709
725
  }
710
726
 
727
+ Buffer.prototype.toString = function toString () {
728
+ var length = this.length | 0
729
+ if (length === 0) return ''
730
+ if (arguments.length === 0) return utf8Slice(this, 0, length)
731
+ return slowToString.apply(this, arguments)
732
+ }
733
+
711
734
  Buffer.prototype.equals = function equals (b) {
712
735
  if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
713
736
  if (this === b) return true
@@ -1878,14 +1901,14 @@ var lookup = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
1878
1901
 
1879
1902
  },{}],5:[function(_dereq_,module,exports){
1880
1903
  exports.read = function (buffer, offset, isLE, mLen, nBytes) {
1881
- var e, m,
1882
- eLen = nBytes * 8 - mLen - 1,
1883
- eMax = (1 << eLen) - 1,
1884
- eBias = eMax >> 1,
1885
- nBits = -7,
1886
- i = isLE ? (nBytes - 1) : 0,
1887
- d = isLE ? -1 : 1,
1888
- s = buffer[offset + i]
1904
+ var e, m
1905
+ var eLen = nBytes * 8 - mLen - 1
1906
+ var eMax = (1 << eLen) - 1
1907
+ var eBias = eMax >> 1
1908
+ var nBits = -7
1909
+ var i = isLE ? (nBytes - 1) : 0
1910
+ var d = isLE ? -1 : 1
1911
+ var s = buffer[offset + i]
1889
1912
 
1890
1913
  i += d
1891
1914
 
@@ -1911,14 +1934,14 @@ exports.read = function (buffer, offset, isLE, mLen, nBytes) {
1911
1934
  }
1912
1935
 
1913
1936
  exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
1914
- var e, m, c,
1915
- eLen = nBytes * 8 - mLen - 1,
1916
- eMax = (1 << eLen) - 1,
1917
- eBias = eMax >> 1,
1918
- rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0),
1919
- i = isLE ? 0 : (nBytes - 1),
1920
- d = isLE ? 1 : -1,
1921
- s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0
1937
+ var e, m, c
1938
+ var eLen = nBytes * 8 - mLen - 1
1939
+ var eMax = (1 << eLen) - 1
1940
+ var eBias = eMax >> 1
1941
+ var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)
1942
+ var i = isLE ? 0 : (nBytes - 1)
1943
+ var d = isLE ? 1 : -1
1944
+ var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0
1922
1945
 
1923
1946
  value = Math.abs(value)
1924
1947
 
@@ -10129,7 +10152,7 @@ exports.SourceMapGenerator = _dereq_('./source-map/source-map-generator').Source
10129
10152
  exports.SourceMapConsumer = _dereq_('./source-map/source-map-consumer').SourceMapConsumer;
10130
10153
  exports.SourceNode = _dereq_('./source-map/source-node').SourceNode;
10131
10154
 
10132
- },{"./source-map/source-map-consumer":18,"./source-map/source-map-generator":19,"./source-map/source-node":20}],13:[function(_dereq_,module,exports){
10155
+ },{"./source-map/source-map-consumer":19,"./source-map/source-map-generator":20,"./source-map/source-node":21}],13:[function(_dereq_,module,exports){
10133
10156
  /* -*- Mode: js; js-indent-level: 2; -*- */
10134
10157
  /*
10135
10158
  * Copyright 2011 Mozilla Foundation and contributors
@@ -10165,6 +10188,16 @@ define(function (_dereq_, exports, module) {
10165
10188
  return set;
10166
10189
  };
10167
10190
 
10191
+ /**
10192
+ * Return how many unique items are in this ArraySet. If duplicates have been
10193
+ * added, than those do not count towards the size.
10194
+ *
10195
+ * @returns Number
10196
+ */
10197
+ ArraySet.prototype.size = function ArraySet_size() {
10198
+ return Object.getOwnPropertyNames(this._set).length;
10199
+ };
10200
+
10168
10201
  /**
10169
10202
  * Add the given string to this set.
10170
10203
  *
@@ -10228,7 +10261,7 @@ define(function (_dereq_, exports, module) {
10228
10261
 
10229
10262
  });
10230
10263
 
10231
- },{"./util":21,"amdefine":22}],14:[function(_dereq_,module,exports){
10264
+ },{"./util":22,"amdefine":23}],14:[function(_dereq_,module,exports){
10232
10265
  /* -*- Mode: js; js-indent-level: 2; -*- */
10233
10266
  /*
10234
10267
  * Copyright 2011 Mozilla Foundation and contributors
@@ -10358,7 +10391,12 @@ define(function (_dereq_, exports, module) {
10358
10391
  if (aIndex >= strLen) {
10359
10392
  throw new Error("Expected more digits in base 64 VLQ value.");
10360
10393
  }
10361
- digit = base64.decode(aStr.charAt(aIndex++));
10394
+
10395
+ digit = base64.decode(aStr.charCodeAt(aIndex++));
10396
+ if (digit === -1) {
10397
+ throw new Error("Invalid base64 digit: " + aStr.charAt(aIndex - 1));
10398
+ }
10399
+
10362
10400
  continuation = !!(digit & VLQ_CONTINUATION_BIT);
10363
10401
  digit &= VLQ_BASE_MASK;
10364
10402
  result = result + (digit << shift);
@@ -10371,7 +10409,7 @@ define(function (_dereq_, exports, module) {
10371
10409
 
10372
10410
  });
10373
10411
 
10374
- },{"./base64":15,"amdefine":22}],15:[function(_dereq_,module,exports){
10412
+ },{"./base64":15,"amdefine":23}],15:[function(_dereq_,module,exports){
10375
10413
  /* -*- Mode: js; js-indent-level: 2; -*- */
10376
10414
  /*
10377
10415
  * Copyright 2011 Mozilla Foundation and contributors
@@ -10383,39 +10421,70 @@ if (typeof define !== 'function') {
10383
10421
  }
10384
10422
  define(function (_dereq_, exports, module) {
10385
10423
 
10386
- var charToIntMap = {};
10387
- var intToCharMap = {};
10388
-
10389
- 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
10390
- .split('')
10391
- .forEach(function (ch, index) {
10392
- charToIntMap[ch] = index;
10393
- intToCharMap[index] = ch;
10394
- });
10424
+ var intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');
10395
10425
 
10396
10426
  /**
10397
10427
  * Encode an integer in the range of 0 to 63 to a single base 64 digit.
10398
10428
  */
10399
- exports.encode = function base64_encode(aNumber) {
10400
- if (aNumber in intToCharMap) {
10401
- return intToCharMap[aNumber];
10429
+ exports.encode = function (number) {
10430
+ if (0 <= number && number < intToCharMap.length) {
10431
+ return intToCharMap[number];
10402
10432
  }
10403
10433
  throw new TypeError("Must be between 0 and 63: " + aNumber);
10404
10434
  };
10405
10435
 
10406
10436
  /**
10407
- * Decode a single base 64 digit to an integer.
10437
+ * Decode a single base 64 character code digit to an integer. Returns -1 on
10438
+ * failure.
10408
10439
  */
10409
- exports.decode = function base64_decode(aChar) {
10410
- if (aChar in charToIntMap) {
10411
- return charToIntMap[aChar];
10440
+ exports.decode = function (charCode) {
10441
+ var bigA = 65; // 'A'
10442
+ var bigZ = 90; // 'Z'
10443
+
10444
+ var littleA = 97; // 'a'
10445
+ var littleZ = 122; // 'z'
10446
+
10447
+ var zero = 48; // '0'
10448
+ var nine = 57; // '9'
10449
+
10450
+ var plus = 43; // '+'
10451
+ var slash = 47; // '/'
10452
+
10453
+ var littleOffset = 26;
10454
+ var numberOffset = 52;
10455
+
10456
+ // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ
10457
+ if (bigA <= charCode && charCode <= bigZ) {
10458
+ return (charCode - bigA);
10412
10459
  }
10413
- throw new TypeError("Not a valid base 64 digit: " + aChar);
10460
+
10461
+ // 26 - 51: abcdefghijklmnopqrstuvwxyz
10462
+ if (littleA <= charCode && charCode <= littleZ) {
10463
+ return (charCode - littleA + littleOffset);
10464
+ }
10465
+
10466
+ // 52 - 61: 0123456789
10467
+ if (zero <= charCode && charCode <= nine) {
10468
+ return (charCode - zero + numberOffset);
10469
+ }
10470
+
10471
+ // 62: +
10472
+ if (charCode == plus) {
10473
+ return 62;
10474
+ }
10475
+
10476
+ // 63: /
10477
+ if (charCode == slash) {
10478
+ return 63;
10479
+ }
10480
+
10481
+ // Invalid base64 digit.
10482
+ return -1;
10414
10483
  };
10415
10484
 
10416
10485
  });
10417
10486
 
10418
- },{"amdefine":22}],16:[function(_dereq_,module,exports){
10487
+ },{"amdefine":23}],16:[function(_dereq_,module,exports){
10419
10488
  /* -*- Mode: js; js-indent-level: 2; -*- */
10420
10489
  /*
10421
10490
  * Copyright 2011 Mozilla Foundation and contributors
@@ -10534,7 +10603,7 @@ define(function (_dereq_, exports, module) {
10534
10603
 
10535
10604
  });
10536
10605
 
10537
- },{"amdefine":22}],17:[function(_dereq_,module,exports){
10606
+ },{"amdefine":23}],17:[function(_dereq_,module,exports){
10538
10607
  /* -*- Mode: js; js-indent-level: 2; -*- */
10539
10608
  /*
10540
10609
  * Copyright 2014 Mozilla Foundation and contributors
@@ -10559,7 +10628,7 @@ define(function (_dereq_, exports, module) {
10559
10628
  var columnA = mappingA.generatedColumn;
10560
10629
  var columnB = mappingB.generatedColumn;
10561
10630
  return lineB > lineA || lineB == lineA && columnB >= columnA ||
10562
- util.compareByGeneratedPositions(mappingA, mappingB) <= 0;
10631
+ util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;
10563
10632
  }
10564
10633
 
10565
10634
  /**
@@ -10612,7 +10681,7 @@ define(function (_dereq_, exports, module) {
10612
10681
  */
10613
10682
  MappingList.prototype.toArray = function MappingList_toArray() {
10614
10683
  if (!this._sorted) {
10615
- this._array.sort(util.compareByGeneratedPositions);
10684
+ this._array.sort(util.compareByGeneratedPositionsInflated);
10616
10685
  this._sorted = true;
10617
10686
  }
10618
10687
  return this._array;
@@ -10622,7 +10691,129 @@ define(function (_dereq_, exports, module) {
10622
10691
 
10623
10692
  });
10624
10693
 
10625
- },{"./util":21,"amdefine":22}],18:[function(_dereq_,module,exports){
10694
+ },{"./util":22,"amdefine":23}],18:[function(_dereq_,module,exports){
10695
+ /* -*- Mode: js; js-indent-level: 2; -*- */
10696
+ /*
10697
+ * Copyright 2011 Mozilla Foundation and contributors
10698
+ * Licensed under the New BSD license. See LICENSE or:
10699
+ * http://opensource.org/licenses/BSD-3-Clause
10700
+ */
10701
+ if (typeof define !== 'function') {
10702
+ var define = _dereq_('amdefine')(module, _dereq_);
10703
+ }
10704
+ define(function (_dereq_, exports, module) {
10705
+
10706
+ // It turns out that some (most?) JavaScript engines don't self-host
10707
+ // `Array.prototype.sort`. This makes sense because C++ will likely remain
10708
+ // faster than JS when doing raw CPU-intensive sorting. However, when using a
10709
+ // custom comparator function, calling back and forth between the VM's C++ and
10710
+ // JIT'd JS is rather slow *and* loses JIT type information, resulting in
10711
+ // worse generated code for the comparator function than would be optimal. In
10712
+ // fact, when sorting with a comparator, these costs outweigh the benefits of
10713
+ // sorting in C++. By using our own JS-implemented Quick Sort (below), we get
10714
+ // a ~3500ms mean speed-up in `bench/bench.html`.
10715
+
10716
+ /**
10717
+ * Swap the elements indexed by `x` and `y` in the array `ary`.
10718
+ *
10719
+ * @param {Array} ary
10720
+ * The array.
10721
+ * @param {Number} x
10722
+ * The index of the first item.
10723
+ * @param {Number} y
10724
+ * The index of the second item.
10725
+ */
10726
+ function swap(ary, x, y) {
10727
+ var temp = ary[x];
10728
+ ary[x] = ary[y];
10729
+ ary[y] = temp;
10730
+ }
10731
+
10732
+ /**
10733
+ * Returns a random integer within the range `low .. high` inclusive.
10734
+ *
10735
+ * @param {Number} low
10736
+ * The lower bound on the range.
10737
+ * @param {Number} high
10738
+ * The upper bound on the range.
10739
+ */
10740
+ function randomIntInRange(low, high) {
10741
+ return Math.round(low + (Math.random() * (high - low)));
10742
+ }
10743
+
10744
+ /**
10745
+ * The Quick Sort algorithm.
10746
+ *
10747
+ * @param {Array} ary
10748
+ * An array to sort.
10749
+ * @param {function} comparator
10750
+ * Function to use to compare two items.
10751
+ * @param {Number} p
10752
+ * Start index of the array
10753
+ * @param {Number} r
10754
+ * End index of the array
10755
+ */
10756
+ function doQuickSort(ary, comparator, p, r) {
10757
+ // If our lower bound is less than our upper bound, we (1) partition the
10758
+ // array into two pieces and (2) recurse on each half. If it is not, this is
10759
+ // the empty array and our base case.
10760
+
10761
+ if (p < r) {
10762
+ // (1) Partitioning.
10763
+ //
10764
+ // The partitioning chooses a pivot between `p` and `r` and moves all
10765
+ // elements that are less than or equal to the pivot to the before it, and
10766
+ // all the elements that are greater than it after it. The effect is that
10767
+ // once partition is done, the pivot is in the exact place it will be when
10768
+ // the array is put in sorted order, and it will not need to be moved
10769
+ // again. This runs in O(n) time.
10770
+
10771
+ // Always choose a random pivot so that an input array which is reverse
10772
+ // sorted does not cause O(n^2) running time.
10773
+ var pivotIndex = randomIntInRange(p, r);
10774
+ var i = p - 1;
10775
+
10776
+ swap(ary, pivotIndex, r);
10777
+ var pivot = ary[r];
10778
+
10779
+ // Immediately after `j` is incremented in this loop, the following hold
10780
+ // true:
10781
+ //
10782
+ // * Every element in `ary[p .. i]` is less than or equal to the pivot.
10783
+ //
10784
+ // * Every element in `ary[i+1 .. j-1]` is greater than the pivot.
10785
+ for (var j = p; j < r; j++) {
10786
+ if (comparator(ary[j], pivot) <= 0) {
10787
+ i += 1;
10788
+ swap(ary, i, j);
10789
+ }
10790
+ }
10791
+
10792
+ swap(ary, i + 1, j);
10793
+ var q = i + 1;
10794
+
10795
+ // (2) Recurse on each half.
10796
+
10797
+ doQuickSort(ary, comparator, p, q - 1);
10798
+ doQuickSort(ary, comparator, q + 1, r);
10799
+ }
10800
+ }
10801
+
10802
+ /**
10803
+ * Sort the given array in-place with the given comparator function.
10804
+ *
10805
+ * @param {Array} ary
10806
+ * An array to sort.
10807
+ * @param {function} comparator
10808
+ * Function to use to compare two items.
10809
+ */
10810
+ exports.quickSort = function (ary, comparator) {
10811
+ doQuickSort(ary, comparator, 0, ary.length - 1);
10812
+ };
10813
+
10814
+ });
10815
+
10816
+ },{"amdefine":23}],19:[function(_dereq_,module,exports){
10626
10817
  /* -*- Mode: js; js-indent-level: 2; -*- */
10627
10818
  /*
10628
10819
  * Copyright 2011 Mozilla Foundation and contributors
@@ -10638,6 +10829,7 @@ define(function (_dereq_, exports, module) {
10638
10829
  var binarySearch = _dereq_('./binary-search');
10639
10830
  var ArraySet = _dereq_('./array-set').ArraySet;
10640
10831
  var base64VLQ = _dereq_('./base64-vlq');
10832
+ var quickSort = _dereq_('./quick-sort').quickSort;
10641
10833
 
10642
10834
  function SourceMapConsumer(aSourceMap) {
10643
10835
  var sourceMap = aSourceMap;
@@ -10693,8 +10885,6 @@ define(function (_dereq_, exports, module) {
10693
10885
  Object.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {
10694
10886
  get: function () {
10695
10887
  if (!this.__generatedMappings) {
10696
- this.__generatedMappings = [];
10697
- this.__originalMappings = [];
10698
10888
  this._parseMappings(this._mappings, this.sourceRoot);
10699
10889
  }
10700
10890
 
@@ -10706,8 +10896,6 @@ define(function (_dereq_, exports, module) {
10706
10896
  Object.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {
10707
10897
  get: function () {
10708
10898
  if (!this.__originalMappings) {
10709
- this.__generatedMappings = [];
10710
- this.__originalMappings = [];
10711
10899
  this._parseMappings(this._mappings, this.sourceRoot);
10712
10900
  }
10713
10901
 
@@ -10715,8 +10903,8 @@ define(function (_dereq_, exports, module) {
10715
10903
  }
10716
10904
  });
10717
10905
 
10718
- SourceMapConsumer.prototype._nextCharIsMappingSeparator =
10719
- function SourceMapConsumer_nextCharIsMappingSeparator(aStr, index) {
10906
+ SourceMapConsumer.prototype._charIsMappingSeparator =
10907
+ function SourceMapConsumer_charIsMappingSeparator(aStr, index) {
10720
10908
  var c = aStr.charAt(index);
10721
10909
  return c === ";" || c === ",";
10722
10910
  };
@@ -10772,7 +10960,7 @@ define(function (_dereq_, exports, module) {
10772
10960
 
10773
10961
  var sourceRoot = this.sourceRoot;
10774
10962
  mappings.map(function (mapping) {
10775
- var source = mapping.source;
10963
+ var source = mapping.source === null ? null : this._sources.at(mapping.source);
10776
10964
  if (source != null && sourceRoot != null) {
10777
10965
  source = util.join(sourceRoot, source);
10778
10966
  }
@@ -10782,16 +10970,18 @@ define(function (_dereq_, exports, module) {
10782
10970
  generatedColumn: mapping.generatedColumn,
10783
10971
  originalLine: mapping.originalLine,
10784
10972
  originalColumn: mapping.originalColumn,
10785
- name: mapping.name
10973
+ name: mapping.name === null ? null : this._names.at(mapping.name)
10786
10974
  };
10787
- }).forEach(aCallback, context);
10975
+ }, this).forEach(aCallback, context);
10788
10976
  };
10789
10977
 
10790
10978
  /**
10791
10979
  * Returns all generated line and column information for the original source,
10792
10980
  * line, and column provided. If no column is provided, returns all mappings
10793
- * corresponding to a single line. Otherwise, returns all mappings
10794
- * corresponding to a single line and column.
10981
+ * corresponding to a either the line we are searching for or the next
10982
+ * closest line that has any mappings. Otherwise, returns all mappings
10983
+ * corresponding to the given line and either the column we are searching for
10984
+ * or the next closest column that has any offsets.
10795
10985
  *
10796
10986
  * The only argument is an object with the following properties:
10797
10987
  *
@@ -10806,19 +10996,25 @@ define(function (_dereq_, exports, module) {
10806
10996
  */
10807
10997
  SourceMapConsumer.prototype.allGeneratedPositionsFor =
10808
10998
  function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {
10999
+ var line = util.getArg(aArgs, 'line');
11000
+
10809
11001
  // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping
10810
11002
  // returns the index of the closest mapping less than the needle. By
10811
11003
  // setting needle.originalColumn to 0, we thus find the last mapping for
10812
11004
  // the given line, provided such a mapping exists.
10813
11005
  var needle = {
10814
11006
  source: util.getArg(aArgs, 'source'),
10815
- originalLine: util.getArg(aArgs, 'line'),
11007
+ originalLine: line,
10816
11008
  originalColumn: util.getArg(aArgs, 'column', 0)
10817
11009
  };
10818
11010
 
10819
11011
  if (this.sourceRoot != null) {
10820
11012
  needle.source = util.relative(this.sourceRoot, needle.source);
10821
11013
  }
11014
+ if (!this._sources.has(needle.source)) {
11015
+ return [];
11016
+ }
11017
+ needle.source = this._sources.indexOf(needle.source);
10822
11018
 
10823
11019
  var mappings = [];
10824
11020
 
@@ -10830,22 +11026,41 @@ define(function (_dereq_, exports, module) {
10830
11026
  binarySearch.LEAST_UPPER_BOUND);
10831
11027
  if (index >= 0) {
10832
11028
  var mapping = this._originalMappings[index];
10833
- var originalLine = mapping.originalLine;
10834
- var originalColumn = mapping.originalColumn;
10835
-
10836
- // Iterate until either we run out of mappings, or we run into
10837
- // a mapping for a different line. Since mappings are sorted, this is
10838
- // guaranteed to find all mappings for the line we are searching for.
10839
- while (mapping && mapping.originalLine === originalLine &&
10840
- (aArgs.column === undefined ||
10841
- mapping.originalColumn === originalColumn)) {
10842
- mappings.push({
10843
- line: util.getArg(mapping, 'generatedLine', null),
10844
- column: util.getArg(mapping, 'generatedColumn', null),
10845
- lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)
10846
- });
10847
11029
 
10848
- mapping = this._originalMappings[++index];
11030
+ if (aArgs.column === undefined) {
11031
+ var originalLine = mapping.originalLine;
11032
+
11033
+ // Iterate until either we run out of mappings, or we run into
11034
+ // a mapping for a different line than the one we found. Since
11035
+ // mappings are sorted, this is guaranteed to find all mappings for
11036
+ // the line we found.
11037
+ while (mapping && mapping.originalLine === originalLine) {
11038
+ mappings.push({
11039
+ line: util.getArg(mapping, 'generatedLine', null),
11040
+ column: util.getArg(mapping, 'generatedColumn', null),
11041
+ lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)
11042
+ });
11043
+
11044
+ mapping = this._originalMappings[++index];
11045
+ }
11046
+ } else {
11047
+ var originalColumn = mapping.originalColumn;
11048
+
11049
+ // Iterate until either we run out of mappings, or we run into
11050
+ // a mapping for a different line than the one we were searching for.
11051
+ // Since mappings are sorted, this is guaranteed to find all mappings for
11052
+ // the line we are searching for.
11053
+ while (mapping &&
11054
+ mapping.originalLine === line &&
11055
+ mapping.originalColumn == originalColumn) {
11056
+ mappings.push({
11057
+ line: util.getArg(mapping, 'generatedLine', null),
11058
+ column: util.getArg(mapping, 'generatedColumn', null),
11059
+ lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)
11060
+ });
11061
+
11062
+ mapping = this._originalMappings[++index];
11063
+ }
10849
11064
  }
10850
11065
  }
10851
11066
 
@@ -10938,16 +11153,44 @@ define(function (_dereq_, exports, module) {
10938
11153
  function SourceMapConsumer_fromSourceMap(aSourceMap) {
10939
11154
  var smc = Object.create(BasicSourceMapConsumer.prototype);
10940
11155
 
10941
- smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);
10942
- smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);
11156
+ var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);
11157
+ var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);
10943
11158
  smc.sourceRoot = aSourceMap._sourceRoot;
10944
11159
  smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),
10945
11160
  smc.sourceRoot);
10946
11161
  smc.file = aSourceMap._file;
10947
11162
 
10948
- smc.__generatedMappings = aSourceMap._mappings.toArray().slice();
10949
- smc.__originalMappings = aSourceMap._mappings.toArray().slice()
10950
- .sort(util.compareByOriginalPositions);
11163
+ // Because we are modifying the entries (by converting string sources and
11164
+ // names to indices into the sources and names ArraySets), we have to make
11165
+ // a copy of the entry or else bad things happen. Shared mutable state
11166
+ // strikes again! See github issue #191.
11167
+
11168
+ var generatedMappings = aSourceMap._mappings.toArray().slice();
11169
+ var destGeneratedMappings = smc.__generatedMappings = [];
11170
+ var destOriginalMappings = smc.__originalMappings = [];
11171
+
11172
+ for (var i = 0, length = generatedMappings.length; i < length; i++) {
11173
+ var srcMapping = generatedMappings[i];
11174
+ var destMapping = new Mapping;
11175
+ destMapping.generatedLine = srcMapping.generatedLine;
11176
+ destMapping.generatedColumn = srcMapping.generatedColumn;
11177
+
11178
+ if (srcMapping.source) {
11179
+ destMapping.source = sources.indexOf(srcMapping.source);
11180
+ destMapping.originalLine = srcMapping.originalLine;
11181
+ destMapping.originalColumn = srcMapping.originalColumn;
11182
+
11183
+ if (srcMapping.name) {
11184
+ destMapping.name = names.indexOf(srcMapping.name);
11185
+ }
11186
+
11187
+ destOriginalMappings.push(destMapping);
11188
+ }
11189
+
11190
+ destGeneratedMappings.push(destMapping);
11191
+ }
11192
+
11193
+ quickSort(smc.__originalMappings, util.compareByOriginalPositions);
10951
11194
 
10952
11195
  return smc;
10953
11196
  };
@@ -10968,6 +11211,18 @@ define(function (_dereq_, exports, module) {
10968
11211
  }
10969
11212
  });
10970
11213
 
11214
+ /**
11215
+ * Provide the JIT with a nice shape / hidden class.
11216
+ */
11217
+ function Mapping() {
11218
+ this.generatedLine = 0;
11219
+ this.generatedColumn = 0;
11220
+ this.source = null;
11221
+ this.originalLine = null;
11222
+ this.originalColumn = null;
11223
+ this.name = null;
11224
+ }
11225
+
10971
11226
  /**
10972
11227
  * Parse the mappings in a string in to a data structure which we can easily
10973
11228
  * query (the ordered arrays in the `this.__generatedMappings` and
@@ -10983,21 +11238,23 @@ define(function (_dereq_, exports, module) {
10983
11238
  var previousName = 0;
10984
11239
  var length = aStr.length;
10985
11240
  var index = 0;
10986
- var cachedValues = {};
11241
+ var cachedSegments = {};
10987
11242
  var temp = {};
10988
- var mapping, str, values, end, value;
11243
+ var originalMappings = [];
11244
+ var generatedMappings = [];
11245
+ var mapping, str, segment, end, value;
10989
11246
 
10990
11247
  while (index < length) {
10991
11248
  if (aStr.charAt(index) === ';') {
10992
11249
  generatedLine++;
10993
- ++index;
11250
+ index++;
10994
11251
  previousGeneratedColumn = 0;
10995
11252
  }
10996
11253
  else if (aStr.charAt(index) === ',') {
10997
- ++index;
11254
+ index++;
10998
11255
  }
10999
11256
  else {
11000
- mapping = {};
11257
+ mapping = new Mapping();
11001
11258
  mapping.generatedLine = generatedLine;
11002
11259
 
11003
11260
  // Because each offset is encoded relative to the previous one,
@@ -11005,68 +11262,74 @@ define(function (_dereq_, exports, module) {
11005
11262
  // fact by caching the parsed variable length fields of each segment,
11006
11263
  // allowing us to avoid a second parse if we encounter the same
11007
11264
  // segment again.
11008
- for (end = index; end < length; ++end) {
11009
- if (this._nextCharIsMappingSeparator(aStr, end)) {
11265
+ for (end = index; end < length; end++) {
11266
+ if (this._charIsMappingSeparator(aStr, end)) {
11010
11267
  break;
11011
11268
  }
11012
11269
  }
11013
11270
  str = aStr.slice(index, end);
11014
11271
 
11015
- values = cachedValues[str];
11016
- if (values) {
11272
+ segment = cachedSegments[str];
11273
+ if (segment) {
11017
11274
  index += str.length;
11018
11275
  } else {
11019
- values = [];
11276
+ segment = [];
11020
11277
  while (index < end) {
11021
11278
  base64VLQ.decode(aStr, index, temp);
11022
11279
  value = temp.value;
11023
11280
  index = temp.rest;
11024
- values.push(value);
11281
+ segment.push(value);
11282
+ }
11283
+
11284
+ if (segment.length === 2) {
11285
+ throw new Error('Found a source, but no line and column');
11286
+ }
11287
+
11288
+ if (segment.length === 3) {
11289
+ throw new Error('Found a source and line, but no column');
11025
11290
  }
11026
- cachedValues[str] = values;
11291
+
11292
+ cachedSegments[str] = segment;
11027
11293
  }
11028
11294
 
11029
11295
  // Generated column.
11030
- mapping.generatedColumn = previousGeneratedColumn + values[0];
11296
+ mapping.generatedColumn = previousGeneratedColumn + segment[0];
11031
11297
  previousGeneratedColumn = mapping.generatedColumn;
11032
11298
 
11033
- if (values.length > 1) {
11299
+ if (segment.length > 1) {
11034
11300
  // Original source.
11035
- mapping.source = this._sources.at(previousSource + values[1]);
11036
- previousSource += values[1];
11037
- if (values.length === 2) {
11038
- throw new Error('Found a source, but no line and column');
11039
- }
11301
+ mapping.source = previousSource + segment[1];
11302
+ previousSource += segment[1];
11040
11303
 
11041
11304
  // Original line.
11042
- mapping.originalLine = previousOriginalLine + values[2];
11305
+ mapping.originalLine = previousOriginalLine + segment[2];
11043
11306
  previousOriginalLine = mapping.originalLine;
11044
11307
  // Lines are stored 0-based
11045
11308
  mapping.originalLine += 1;
11046
- if (values.length === 3) {
11047
- throw new Error('Found a source and line, but no column');
11048
- }
11049
11309
 
11050
11310
  // Original column.
11051
- mapping.originalColumn = previousOriginalColumn + values[3];
11311
+ mapping.originalColumn = previousOriginalColumn + segment[3];
11052
11312
  previousOriginalColumn = mapping.originalColumn;
11053
11313
 
11054
- if (values.length > 4) {
11314
+ if (segment.length > 4) {
11055
11315
  // Original name.
11056
- mapping.name = this._names.at(previousName + values[4]);
11057
- previousName += values[4];
11316
+ mapping.name = previousName + segment[4];
11317
+ previousName += segment[4];
11058
11318
  }
11059
11319
  }
11060
11320
 
11061
- this.__generatedMappings.push(mapping);
11321
+ generatedMappings.push(mapping);
11062
11322
  if (typeof mapping.originalLine === 'number') {
11063
- this.__originalMappings.push(mapping);
11323
+ originalMappings.push(mapping);
11064
11324
  }
11065
11325
  }
11066
11326
  }
11067
11327
 
11068
- this.__generatedMappings.sort(util.compareByGeneratedPositions);
11069
- this.__originalMappings.sort(util.compareByOriginalPositions);
11328
+ quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);
11329
+ this.__generatedMappings = generatedMappings;
11330
+
11331
+ quickSort(originalMappings, util.compareByOriginalPositions);
11332
+ this.__originalMappings = originalMappings;
11070
11333
  };
11071
11334
 
11072
11335
  /**
@@ -11152,7 +11415,7 @@ define(function (_dereq_, exports, module) {
11152
11415
  this._generatedMappings,
11153
11416
  "generatedLine",
11154
11417
  "generatedColumn",
11155
- util.compareByGeneratedPositions,
11418
+ util.compareByGeneratedPositionsDeflated,
11156
11419
  util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)
11157
11420
  );
11158
11421
 
@@ -11161,14 +11424,21 @@ define(function (_dereq_, exports, module) {
11161
11424
 
11162
11425
  if (mapping.generatedLine === needle.generatedLine) {
11163
11426
  var source = util.getArg(mapping, 'source', null);
11164
- if (source != null && this.sourceRoot != null) {
11165
- source = util.join(this.sourceRoot, source);
11427
+ if (source !== null) {
11428
+ source = this._sources.at(source);
11429
+ if (this.sourceRoot != null) {
11430
+ source = util.join(this.sourceRoot, source);
11431
+ }
11432
+ }
11433
+ var name = util.getArg(mapping, 'name', null);
11434
+ if (name !== null) {
11435
+ name = this._names.at(name);
11166
11436
  }
11167
11437
  return {
11168
11438
  source: source,
11169
11439
  line: util.getArg(mapping, 'originalLine', null),
11170
11440
  column: util.getArg(mapping, 'originalColumn', null),
11171
- name: util.getArg(mapping, 'name', null)
11441
+ name: name
11172
11442
  };
11173
11443
  }
11174
11444
  }
@@ -11181,6 +11451,19 @@ define(function (_dereq_, exports, module) {
11181
11451
  };
11182
11452
  };
11183
11453
 
11454
+ /**
11455
+ * Return true if we have the source content for every source in the source
11456
+ * map, false otherwise.
11457
+ */
11458
+ BasicSourceMapConsumer.prototype.hasContentsOfAllSources =
11459
+ function BasicSourceMapConsumer_hasContentsOfAllSources() {
11460
+ if (!this.sourcesContent) {
11461
+ return false;
11462
+ }
11463
+ return this.sourcesContent.length >= this._sources.size() &&
11464
+ !this.sourcesContent.some(function (sc) { return sc == null; });
11465
+ };
11466
+
11184
11467
  /**
11185
11468
  * Returns the original source content. The only argument is the url of the
11186
11469
  * original source file. Returns null if no original source content is
@@ -11252,16 +11535,25 @@ define(function (_dereq_, exports, module) {
11252
11535
  */
11253
11536
  BasicSourceMapConsumer.prototype.generatedPositionFor =
11254
11537
  function SourceMapConsumer_generatedPositionFor(aArgs) {
11538
+ var source = util.getArg(aArgs, 'source');
11539
+ if (this.sourceRoot != null) {
11540
+ source = util.relative(this.sourceRoot, source);
11541
+ }
11542
+ if (!this._sources.has(source)) {
11543
+ return {
11544
+ line: null,
11545
+ column: null,
11546
+ lastColumn: null
11547
+ };
11548
+ }
11549
+ source = this._sources.indexOf(source);
11550
+
11255
11551
  var needle = {
11256
- source: util.getArg(aArgs, 'source'),
11552
+ source: source,
11257
11553
  originalLine: util.getArg(aArgs, 'line'),
11258
11554
  originalColumn: util.getArg(aArgs, 'column')
11259
11555
  };
11260
11556
 
11261
- if (this.sourceRoot != null) {
11262
- needle.source = util.relative(this.sourceRoot, needle.source);
11263
- }
11264
-
11265
11557
  var index = this._findMapping(
11266
11558
  needle,
11267
11559
  this._originalMappings,
@@ -11350,6 +11642,9 @@ define(function (_dereq_, exports, module) {
11350
11642
  throw new Error('Unsupported version: ' + version);
11351
11643
  }
11352
11644
 
11645
+ this._sources = new ArraySet();
11646
+ this._names = new ArraySet();
11647
+
11353
11648
  var lastOffset = {
11354
11649
  line: -1,
11355
11650
  column: 0
@@ -11461,6 +11756,17 @@ define(function (_dereq_, exports, module) {
11461
11756
  });
11462
11757
  };
11463
11758
 
11759
+ /**
11760
+ * Return true if we have the source content for every source in the source
11761
+ * map, false otherwise.
11762
+ */
11763
+ IndexedSourceMapConsumer.prototype.hasContentsOfAllSources =
11764
+ function IndexedSourceMapConsumer_hasContentsOfAllSources() {
11765
+ return this._sections.every(function (s) {
11766
+ return s.consumer.hasContentsOfAllSources();
11767
+ });
11768
+ };
11769
+
11464
11770
  /**
11465
11771
  * Returns the original source content. The only argument is the url of the
11466
11772
  * original source file. Returns null if no original source content is
@@ -11543,12 +11849,16 @@ define(function (_dereq_, exports, module) {
11543
11849
  for (var j = 0; j < sectionMappings.length; j++) {
11544
11850
  var mapping = sectionMappings[i];
11545
11851
 
11546
- var source = mapping.source;
11547
- var sourceRoot = section.consumer.sourceRoot;
11548
-
11549
- if (source != null && sourceRoot != null) {
11550
- source = util.join(sourceRoot, source);
11852
+ var source = section.consumer._sources.at(mapping.source);
11853
+ if (section.consumer.sourceRoot !== null) {
11854
+ source = util.join(section.consumer.sourceRoot, source);
11551
11855
  }
11856
+ this._sources.add(source);
11857
+ source = this._sources.indexOf(source);
11858
+
11859
+ var name = section.consumer._names.at(mapping.name);
11860
+ this._names.add(name);
11861
+ name = this._names.indexOf(name);
11552
11862
 
11553
11863
  // The mappings coming from the consumer for the section have
11554
11864
  // generated positions relative to the start of the section, so we
@@ -11564,7 +11874,7 @@ define(function (_dereq_, exports, module) {
11564
11874
  : 0,
11565
11875
  originalLine: mapping.originalLine,
11566
11876
  originalColumn: mapping.originalColumn,
11567
- name: mapping.name
11877
+ name: name
11568
11878
  };
11569
11879
 
11570
11880
  this.__generatedMappings.push(adjustedMapping);
@@ -11574,15 +11884,15 @@ define(function (_dereq_, exports, module) {
11574
11884
  };
11575
11885
  };
11576
11886
 
11577
- this.__generatedMappings.sort(util.compareByGeneratedPositions);
11578
- this.__originalMappings.sort(util.compareByOriginalPositions);
11579
- };
11887
+ quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);
11888
+ quickSort(this.__originalMappings, util.compareByOriginalPositions);
11889
+ };
11580
11890
 
11581
11891
  exports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;
11582
11892
 
11583
11893
  });
11584
11894
 
11585
- },{"./array-set":13,"./base64-vlq":14,"./binary-search":16,"./util":21,"amdefine":22}],19:[function(_dereq_,module,exports){
11895
+ },{"./array-set":13,"./base64-vlq":14,"./binary-search":16,"./quick-sort":18,"./util":22,"amdefine":23}],20:[function(_dereq_,module,exports){
11586
11896
  /* -*- Mode: js; js-indent-level: 2; -*- */
11587
11897
  /*
11588
11898
  * Copyright 2011 Mozilla Foundation and contributors
@@ -11882,7 +12192,6 @@ define(function (_dereq_, exports, module) {
11882
12192
  var mapping;
11883
12193
 
11884
12194
  var mappings = this._mappings.toArray();
11885
-
11886
12195
  for (var i = 0, len = mappings.length; i < len; i++) {
11887
12196
  mapping = mappings[i];
11888
12197
 
@@ -11895,7 +12204,7 @@ define(function (_dereq_, exports, module) {
11895
12204
  }
11896
12205
  else {
11897
12206
  if (i > 0) {
11898
- if (!util.compareByGeneratedPositions(mapping, mappings[i - 1])) {
12207
+ if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {
11899
12208
  continue;
11900
12209
  }
11901
12210
  result += ',';
@@ -11984,7 +12293,7 @@ define(function (_dereq_, exports, module) {
11984
12293
 
11985
12294
  });
11986
12295
 
11987
- },{"./array-set":13,"./base64-vlq":14,"./mapping-list":17,"./util":21,"amdefine":22}],20:[function(_dereq_,module,exports){
12296
+ },{"./array-set":13,"./base64-vlq":14,"./mapping-list":17,"./util":22,"amdefine":23}],21:[function(_dereq_,module,exports){
11988
12297
  /* -*- Mode: js; js-indent-level: 2; -*- */
11989
12298
  /*
11990
12299
  * Copyright 2011 Mozilla Foundation and contributors
@@ -12400,7 +12709,7 @@ define(function (_dereq_, exports, module) {
12400
12709
 
12401
12710
  });
12402
12711
 
12403
- },{"./source-map-generator":19,"./util":21,"amdefine":22}],21:[function(_dereq_,module,exports){
12712
+ },{"./source-map-generator":20,"./util":22,"amdefine":23}],22:[function(_dereq_,module,exports){
12404
12713
  /* -*- Mode: js; js-indent-level: 2; -*- */
12405
12714
  /*
12406
12715
  * Copyright 2011 Mozilla Foundation and contributors
@@ -12601,15 +12910,30 @@ define(function (_dereq_, exports, module) {
12601
12910
 
12602
12911
  aRoot = aRoot.replace(/\/$/, '');
12603
12912
 
12604
- // XXX: It is possible to remove this block, and the tests still pass!
12605
- var url = urlParse(aRoot);
12606
- if (aPath.charAt(0) == "/" && url && url.path == "/") {
12607
- return aPath.slice(1);
12913
+ // It is possible for the path to be above the root. In this case, simply
12914
+ // checking whether the root is a prefix of the path won't work. Instead, we
12915
+ // need to remove components from the root one by one, until either we find
12916
+ // a prefix that fits, or we run out of components to remove.
12917
+ var level = 0;
12918
+ while (aPath.indexOf(aRoot + '/') !== 0) {
12919
+ var index = aRoot.lastIndexOf("/");
12920
+ if (index < 0) {
12921
+ return aPath;
12922
+ }
12923
+
12924
+ // If the only part of the root that is left is the scheme (i.e. http://,
12925
+ // file:///, etc.), one or more slashes (/), or simply nothing at all, we
12926
+ // have exhausted all components, so the path is not relative to the root.
12927
+ aRoot = aRoot.slice(0, index);
12928
+ if (aRoot.match(/^([^\/]+:\/)?\/*$/)) {
12929
+ return aPath;
12930
+ }
12931
+
12932
+ ++level;
12608
12933
  }
12609
12934
 
12610
- return aPath.indexOf(aRoot + '/') === 0
12611
- ? aPath.substr(aRoot.length + 1)
12612
- : aPath;
12935
+ // Make sure we add a "../" for each component we removed from the root.
12936
+ return Array(level + 1).join("../") + aPath.substr(aRoot.length + 1);
12613
12937
  }
12614
12938
  exports.relative = relative;
12615
12939
 
@@ -12632,12 +12956,6 @@ define(function (_dereq_, exports, module) {
12632
12956
  }
12633
12957
  exports.fromSetString = fromSetString;
12634
12958
 
12635
- function strcmp(aStr1, aStr2) {
12636
- var s1 = aStr1 || "";
12637
- var s2 = aStr2 || "";
12638
- return (s1 > s2) - (s1 < s2);
12639
- }
12640
-
12641
12959
  /**
12642
12960
  * Comparator between two mappings where the original positions are compared.
12643
12961
  *
@@ -12647,84 +12965,126 @@ define(function (_dereq_, exports, module) {
12647
12965
  * stubbed out mapping.
12648
12966
  */
12649
12967
  function compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {
12650
- var cmp;
12651
-
12652
- cmp = strcmp(mappingA.source, mappingB.source);
12653
- if (cmp) {
12968
+ var cmp = mappingA.source - mappingB.source;
12969
+ if (cmp !== 0) {
12654
12970
  return cmp;
12655
12971
  }
12656
12972
 
12657
12973
  cmp = mappingA.originalLine - mappingB.originalLine;
12658
- if (cmp) {
12974
+ if (cmp !== 0) {
12659
12975
  return cmp;
12660
12976
  }
12661
12977
 
12662
12978
  cmp = mappingA.originalColumn - mappingB.originalColumn;
12663
- if (cmp || onlyCompareOriginal) {
12979
+ if (cmp !== 0 || onlyCompareOriginal) {
12664
12980
  return cmp;
12665
12981
  }
12666
12982
 
12667
12983
  cmp = mappingA.generatedColumn - mappingB.generatedColumn;
12668
- if (cmp) {
12984
+ if (cmp !== 0) {
12669
12985
  return cmp;
12670
12986
  }
12671
12987
 
12672
12988
  cmp = mappingA.generatedLine - mappingB.generatedLine;
12673
- if (cmp) {
12989
+ if (cmp !== 0) {
12674
12990
  return cmp;
12675
12991
  }
12676
12992
 
12677
- return strcmp(mappingA.name, mappingB.name);
12993
+ return mappingA.name - mappingB.name;
12678
12994
  };
12679
12995
  exports.compareByOriginalPositions = compareByOriginalPositions;
12680
12996
 
12681
12997
  /**
12682
- * Comparator between two mappings where the generated positions are
12683
- * compared.
12998
+ * Comparator between two mappings with deflated source and name indices where
12999
+ * the generated positions are compared.
12684
13000
  *
12685
13001
  * Optionally pass in `true` as `onlyCompareGenerated` to consider two
12686
13002
  * mappings with the same generated line and column, but different
12687
13003
  * source/name/original line and column the same. Useful when searching for a
12688
13004
  * mapping with a stubbed out mapping.
12689
13005
  */
12690
- function compareByGeneratedPositions(mappingA, mappingB, onlyCompareGenerated) {
12691
- var cmp;
13006
+ function compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {
13007
+ var cmp = mappingA.generatedLine - mappingB.generatedLine;
13008
+ if (cmp !== 0) {
13009
+ return cmp;
13010
+ }
12692
13011
 
12693
- cmp = mappingA.generatedLine - mappingB.generatedLine;
12694
- if (cmp) {
13012
+ cmp = mappingA.generatedColumn - mappingB.generatedColumn;
13013
+ if (cmp !== 0 || onlyCompareGenerated) {
13014
+ return cmp;
13015
+ }
13016
+
13017
+ cmp = mappingA.source - mappingB.source;
13018
+ if (cmp !== 0) {
13019
+ return cmp;
13020
+ }
13021
+
13022
+ cmp = mappingA.originalLine - mappingB.originalLine;
13023
+ if (cmp !== 0) {
13024
+ return cmp;
13025
+ }
13026
+
13027
+ cmp = mappingA.originalColumn - mappingB.originalColumn;
13028
+ if (cmp !== 0) {
13029
+ return cmp;
13030
+ }
13031
+
13032
+ return mappingA.name - mappingB.name;
13033
+ };
13034
+ exports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;
13035
+
13036
+ function strcmp(aStr1, aStr2) {
13037
+ if (aStr1 === aStr2) {
13038
+ return 0;
13039
+ }
13040
+
13041
+ if (aStr1 > aStr2) {
13042
+ return 1;
13043
+ }
13044
+
13045
+ return -1;
13046
+ }
13047
+
13048
+ /**
13049
+ * Comparator between two mappings with inflated source and name strings where
13050
+ * the generated positions are compared.
13051
+ */
13052
+ function compareByGeneratedPositionsInflated(mappingA, mappingB) {
13053
+ var cmp = mappingA.generatedLine - mappingB.generatedLine;
13054
+ if (cmp !== 0) {
12695
13055
  return cmp;
12696
13056
  }
12697
13057
 
12698
13058
  cmp = mappingA.generatedColumn - mappingB.generatedColumn;
12699
- if (cmp || onlyCompareGenerated) {
13059
+ if (cmp !== 0) {
12700
13060
  return cmp;
12701
13061
  }
12702
13062
 
12703
13063
  cmp = strcmp(mappingA.source, mappingB.source);
12704
- if (cmp) {
13064
+ if (cmp !== 0) {
12705
13065
  return cmp;
12706
13066
  }
12707
13067
 
12708
13068
  cmp = mappingA.originalLine - mappingB.originalLine;
12709
- if (cmp) {
13069
+ if (cmp !== 0) {
12710
13070
  return cmp;
12711
13071
  }
12712
13072
 
12713
13073
  cmp = mappingA.originalColumn - mappingB.originalColumn;
12714
- if (cmp) {
13074
+ if (cmp !== 0) {
12715
13075
  return cmp;
12716
13076
  }
12717
13077
 
12718
13078
  return strcmp(mappingA.name, mappingB.name);
12719
13079
  };
12720
- exports.compareByGeneratedPositions = compareByGeneratedPositions;
13080
+ exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;
12721
13081
 
12722
13082
  });
12723
13083
 
12724
- },{"amdefine":22}],22:[function(_dereq_,module,exports){
13084
+ },{"amdefine":23}],23:[function(_dereq_,module,exports){
12725
13085
  (function (process,__filename){
12726
13086
  /** vim: et:ts=4:sw=4:sts=4
12727
- * @license amdefine 0.1.0 Copyright (c) 2011, The Dojo Foundation All Rights Reserved.
13087
+ * @license amdefine 1.0.0 Copyright (c) 2011-2015, The Dojo Foundation All Rights Reserved.
12728
13088
  * Available via the MIT or new BSD license.
12729
13089
  * see: http://github.com/jrburke/amdefine for details
12730
13090
  */
@@ -12845,9 +13205,11 @@ function amdefine(module, requireFn) {
12845
13205
  });
12846
13206
 
12847
13207
  //Wait for next tick to call back the require call.
12848
- process.nextTick(function () {
12849
- callback.apply(null, deps);
12850
- });
13208
+ if (callback) {
13209
+ process.nextTick(function () {
13210
+ callback.apply(null, deps);
13211
+ });
13212
+ }
12851
13213
  }
12852
13214
  }
12853
13215
 
@@ -13024,7 +13386,7 @@ function amdefine(module, requireFn) {
13024
13386
  module.exports = amdefine;
13025
13387
 
13026
13388
  }).call(this,_dereq_('_process'),"/node_modules/jstransform/node_modules/source-map/node_modules/amdefine/amdefine.js")
13027
- },{"_process":8,"path":7}],23:[function(_dereq_,module,exports){
13389
+ },{"_process":8,"path":7}],24:[function(_dereq_,module,exports){
13028
13390
  /**
13029
13391
  * Copyright 2013-present, Facebook, Inc.
13030
13392
  * All rights reserved.
@@ -13039,7 +13401,7 @@ module.exports = amdefine;
13039
13401
  // moved to something else (perhaps 'jstranform/advanced')
13040
13402
  module.exports = _dereq_('./src/simple');
13041
13403
 
13042
- },{"./src/simple":27}],24:[function(_dereq_,module,exports){
13404
+ },{"./src/simple":28}],25:[function(_dereq_,module,exports){
13043
13405
  /**
13044
13406
  * Copyright 2013-present, Facebook, Inc.
13045
13407
  * All rights reserved.
@@ -13120,7 +13482,7 @@ exports.extract = extract;
13120
13482
  exports.parse = parse;
13121
13483
  exports.parseAsObject = parseAsObject;
13122
13484
 
13123
- },{}],25:[function(_dereq_,module,exports){
13485
+ },{}],26:[function(_dereq_,module,exports){
13124
13486
  /**
13125
13487
  * Copyright 2013-present, Facebook, Inc.
13126
13488
  * All rights reserved.
@@ -13149,7 +13511,7 @@ function inlineSourceMap(sourceMap, sourceCode, sourceFilename) {
13149
13511
 
13150
13512
  module.exports = inlineSourceMap;
13151
13513
 
13152
- },{"buffer":3}],26:[function(_dereq_,module,exports){
13514
+ },{"buffer":3}],27:[function(_dereq_,module,exports){
13153
13515
  /**
13154
13516
  * Copyright 2013-present, Facebook, Inc.
13155
13517
  * All rights reserved.
@@ -13443,7 +13805,7 @@ function transform(visitors, source, options) {
13443
13805
  exports.transform = transform;
13444
13806
  exports.Syntax = Syntax;
13445
13807
 
13446
- },{"./utils":28,"esprima-fb":10,"source-map":12}],27:[function(_dereq_,module,exports){
13808
+ },{"./utils":29,"esprima-fb":10,"source-map":12}],28:[function(_dereq_,module,exports){
13447
13809
  /**
13448
13810
  * Copyright 2013-present, Facebook, Inc.
13449
13811
  * All rights reserved.
@@ -13560,7 +13922,7 @@ function transform(code, options) {
13560
13922
  var sourceMap;
13561
13923
  if (result.sourceMap) {
13562
13924
  sourceMap = result.sourceMap.toJSON();
13563
- sourceMap.sources = transformOptions.filename;
13925
+ sourceMap.sources = [transformOptions.filename];
13564
13926
  sourceMap.sourcesContent = [code];
13565
13927
  }
13566
13928
 
@@ -13610,8 +13972,7 @@ module.exports = {
13610
13972
  transformFileSync: transformFileSync
13611
13973
  };
13612
13974
 
13613
-
13614
- },{"../visitors":42,"../visitors/type-syntax":49,"./inline-source-map":25,"./jstransform":26,"fs":2,"object-assign":11}],28:[function(_dereq_,module,exports){
13975
+ },{"../visitors":43,"../visitors/type-syntax":50,"./inline-source-map":26,"./jstransform":27,"fs":2,"object-assign":11}],29:[function(_dereq_,module,exports){
13615
13976
  /**
13616
13977
  * Copyright 2013-present, Facebook, Inc.
13617
13978
  * All rights reserved.
@@ -14314,7 +14675,7 @@ exports.scopeTypes = scopeTypes;
14314
14675
  exports.updateIndent = updateIndent;
14315
14676
  exports.updateState = updateState;
14316
14677
 
14317
- },{"./docblock":24,"esprima-fb":10}],29:[function(_dereq_,module,exports){
14678
+ },{"./docblock":25,"esprima-fb":10}],30:[function(_dereq_,module,exports){
14318
14679
  /**
14319
14680
  * Copyright 2013-present, Facebook, Inc.
14320
14681
  * All rights reserved.
@@ -14469,7 +14830,7 @@ exports.visitorList = [
14469
14830
  ];
14470
14831
 
14471
14832
 
14472
- },{"../src/utils":28,"./es6-destructuring-visitors":32,"./es6-rest-param-visitors":37,"esprima-fb":10}],30:[function(_dereq_,module,exports){
14833
+ },{"../src/utils":29,"./es6-destructuring-visitors":33,"./es6-rest-param-visitors":38,"esprima-fb":10}],31:[function(_dereq_,module,exports){
14473
14834
  /**
14474
14835
  * Copyright 2013-present, Facebook, Inc.
14475
14836
  * All rights reserved.
@@ -14580,10 +14941,10 @@ visitCallSpread.test = function(node, path, state) {
14580
14941
  };
14581
14942
 
14582
14943
  exports.visitorList = [
14583
- visitCallSpread,
14944
+ visitCallSpread
14584
14945
  ];
14585
14946
 
14586
- },{"../src/utils":28,"esprima-fb":10}],31:[function(_dereq_,module,exports){
14947
+ },{"../src/utils":29,"esprima-fb":10}],32:[function(_dereq_,module,exports){
14587
14948
  /**
14588
14949
  * Copyright 2013-present, Facebook, Inc.
14589
14950
  * All rights reserved.
@@ -15166,7 +15527,7 @@ exports.visitorList = [
15166
15527
  visitSuperMemberExpression
15167
15528
  ];
15168
15529
 
15169
- },{"../src/utils":28,"./reserved-words-helper":46,"base62":9,"esprima-fb":10}],32:[function(_dereq_,module,exports){
15530
+ },{"../src/utils":29,"./reserved-words-helper":47,"base62":9,"esprima-fb":10}],33:[function(_dereq_,module,exports){
15170
15531
  /**
15171
15532
  * Copyright 2013-present, Facebook, Inc.
15172
15533
  * All rights reserved.
@@ -15442,7 +15803,7 @@ exports.visitorList = [
15442
15803
  exports.renderDestructuredComponents = renderDestructuredComponents;
15443
15804
 
15444
15805
 
15445
- },{"../src/utils":28,"./es6-rest-param-visitors":37,"./es7-rest-property-helpers":39,"./reserved-words-helper":46,"esprima-fb":10}],33:[function(_dereq_,module,exports){
15806
+ },{"../src/utils":29,"./es6-rest-param-visitors":38,"./es7-rest-property-helpers":40,"./reserved-words-helper":47,"esprima-fb":10}],34:[function(_dereq_,module,exports){
15446
15807
  /**
15447
15808
  * Copyright 2013-present, Facebook, Inc.
15448
15809
  * All rights reserved.
@@ -15567,7 +15928,7 @@ exports.visitorList = [
15567
15928
  visitForOfStatement,
15568
15929
  ];
15569
15930
 
15570
- },{"../src/utils":28,"esprima-fb":10}],34:[function(_dereq_,module,exports){
15931
+ },{"../src/utils":29,"esprima-fb":10}],35:[function(_dereq_,module,exports){
15571
15932
  /**
15572
15933
  * Copyright 2013-present, Facebook, Inc.
15573
15934
  * All rights reserved.
@@ -15675,7 +16036,7 @@ exports.visitorList = [
15675
16036
  es6ObjectComputedProperties,
15676
16037
  ];
15677
16038
 
15678
- },{"../src/utils":28,"./es6-object-concise-method-visitors":35,"./es7-spread-property-visitors":40,"esprima-fb":10}],35:[function(_dereq_,module,exports){
16039
+ },{"../src/utils":29,"./es6-object-concise-method-visitors":36,"./es7-spread-property-visitors":41,"esprima-fb":10}],36:[function(_dereq_,module,exports){
15679
16040
  /**
15680
16041
  * Copyright 2013-present, Facebook, Inc.
15681
16042
  * All rights reserved.
@@ -15747,7 +16108,7 @@ exports.visitorList = [
15747
16108
  visitObjectConciseMethod
15748
16109
  ];
15749
16110
 
15750
- },{"../src/utils":28,"./reserved-words-helper":46,"esprima-fb":10}],36:[function(_dereq_,module,exports){
16111
+ },{"../src/utils":29,"./reserved-words-helper":47,"esprima-fb":10}],37:[function(_dereq_,module,exports){
15751
16112
  /**
15752
16113
  * Copyright 2013-present, Facebook, Inc.
15753
16114
  * All rights reserved.
@@ -15795,7 +16156,7 @@ exports.visitorList = [
15795
16156
  ];
15796
16157
 
15797
16158
 
15798
- },{"../src/utils":28,"esprima-fb":10}],37:[function(_dereq_,module,exports){
16159
+ },{"../src/utils":29,"esprima-fb":10}],38:[function(_dereq_,module,exports){
15799
16160
  /**
15800
16161
  * Copyright 2013-present, Facebook, Inc.
15801
16162
  * All rights reserved.
@@ -15897,7 +16258,7 @@ exports.visitorList = [
15897
16258
  visitFunctionBodyWithRestParam
15898
16259
  ];
15899
16260
 
15900
- },{"../src/utils":28,"esprima-fb":10}],38:[function(_dereq_,module,exports){
16261
+ },{"../src/utils":29,"esprima-fb":10}],39:[function(_dereq_,module,exports){
15901
16262
  /**
15902
16263
  * Copyright 2013-present, Facebook, Inc.
15903
16264
  * All rights reserved.
@@ -16052,7 +16413,7 @@ exports.visitorList = [
16052
16413
  visitTaggedTemplateExpression
16053
16414
  ];
16054
16415
 
16055
- },{"../src/utils":28,"esprima-fb":10}],39:[function(_dereq_,module,exports){
16416
+ },{"../src/utils":29,"esprima-fb":10}],40:[function(_dereq_,module,exports){
16056
16417
  /**
16057
16418
  * Copyright 2013-present, Facebook, Inc.
16058
16419
  * All rights reserved.
@@ -16127,7 +16488,7 @@ function renderRestExpression(accessorExpression, excludedProperties) {
16127
16488
 
16128
16489
  exports.renderRestExpression = renderRestExpression;
16129
16490
 
16130
- },{"esprima-fb":10}],40:[function(_dereq_,module,exports){
16491
+ },{"esprima-fb":10}],41:[function(_dereq_,module,exports){
16131
16492
  /**
16132
16493
  * Copyright 2013-present, Facebook, Inc.
16133
16494
  * All rights reserved.
@@ -16255,7 +16616,7 @@ exports.visitorList = [
16255
16616
  visitObjectLiteralSpread
16256
16617
  ];
16257
16618
 
16258
- },{"../src/utils":28,"esprima-fb":10}],41:[function(_dereq_,module,exports){
16619
+ },{"../src/utils":29,"esprima-fb":10}],42:[function(_dereq_,module,exports){
16259
16620
  /**
16260
16621
  * Copyright 2013-present, Facebook, Inc.
16261
16622
  * All rights reserved.
@@ -16360,7 +16721,7 @@ exports.visitorList = [
16360
16721
  visitFunctionDefinitionArguments,
16361
16722
  ];
16362
16723
 
16363
- },{"../src/utils":28,"esprima-fb":10}],42:[function(_dereq_,module,exports){
16724
+ },{"../src/utils":29,"esprima-fb":10}],43:[function(_dereq_,module,exports){
16364
16725
  /**
16365
16726
  * Copyright 2013-present, Facebook, Inc.
16366
16727
  * All rights reserved.
@@ -16523,7 +16884,7 @@ exports.getAllVisitors = getAllVisitors;
16523
16884
  exports.transformVisitors = transformVisitors;
16524
16885
 
16525
16886
 
16526
- },{"./es6-arrow-function-visitors":29,"./es6-call-spread-visitors":30,"./es6-class-visitors":31,"./es6-destructuring-visitors":32,"./es6-for-of-visitors":33,"./es6-object-computed-property-visitors":34,"./es6-object-concise-method-visitors":35,"./es6-object-short-notation-visitors":36,"./es6-rest-param-visitors":37,"./es6-template-visitors":38,"./es7-spread-property-visitors":40,"./es7-trailing-comma-visitors":41,"./react-display-name-visitors":44,"./react-jsx-visitors":45,"./reserved-words-visitors":47,"./trailing-comma-visitors":48,"./undefined-to-void-0-visitors":50}],43:[function(_dereq_,module,exports){
16887
+ },{"./es6-arrow-function-visitors":30,"./es6-call-spread-visitors":31,"./es6-class-visitors":32,"./es6-destructuring-visitors":33,"./es6-for-of-visitors":34,"./es6-object-computed-property-visitors":35,"./es6-object-concise-method-visitors":36,"./es6-object-short-notation-visitors":37,"./es6-rest-param-visitors":38,"./es6-template-visitors":39,"./es7-spread-property-visitors":41,"./es7-trailing-comma-visitors":42,"./react-display-name-visitors":45,"./react-jsx-visitors":46,"./reserved-words-visitors":48,"./trailing-comma-visitors":49,"./undefined-to-void-0-visitors":51}],44:[function(_dereq_,module,exports){
16527
16888
  /**
16528
16889
  * Copyright 2013-present, Facebook, Inc.
16529
16890
  * All rights reserved.
@@ -16602,7 +16963,7 @@ function renderJSXLiteral(object, isLast, state, start, end) {
16602
16963
  if (trimmedLine || isLastNonEmptyLine) {
16603
16964
  utils.append(
16604
16965
  JSON.stringify(trimmedLine) +
16605
- (!isLastNonEmptyLine ? ' + \' \' +' : ''),
16966
+ (!isLastNonEmptyLine ? ' + " " +' : ''),
16606
16967
  state);
16607
16968
 
16608
16969
  if (isLastNonEmptyLine) {
@@ -16663,7 +17024,7 @@ exports.renderJSXLiteral = renderJSXLiteral;
16663
17024
  exports.quoteAttrName = quoteAttrName;
16664
17025
  exports.trimLeft = trimLeft;
16665
17026
 
16666
- },{"../src/utils":28,"esprima-fb":10}],44:[function(_dereq_,module,exports){
17027
+ },{"../src/utils":29,"esprima-fb":10}],45:[function(_dereq_,module,exports){
16667
17028
  /**
16668
17029
  * Copyright 2013-present, Facebook, Inc.
16669
17030
  * All rights reserved.
@@ -16791,7 +17152,7 @@ exports.visitorList = [
16791
17152
  visitReactDisplayName
16792
17153
  ];
16793
17154
 
16794
- },{"../src/utils":28,"esprima-fb":10}],45:[function(_dereq_,module,exports){
17155
+ },{"../src/utils":29,"esprima-fb":10}],46:[function(_dereq_,module,exports){
16795
17156
  /**
16796
17157
  * Copyright 2013-present, Facebook, Inc.
16797
17158
  * All rights reserved.
@@ -17035,7 +17396,7 @@ exports.visitorList = [
17035
17396
  visitReactTag
17036
17397
  ];
17037
17398
 
17038
- },{"../src/utils":28,"./jsx-helpers":43,"esprima-fb":10}],46:[function(_dereq_,module,exports){
17399
+ },{"../src/utils":29,"./jsx-helpers":44,"esprima-fb":10}],47:[function(_dereq_,module,exports){
17039
17400
  /**
17040
17401
  * Copyright 2013-present, Facebook, Inc.
17041
17402
  * All rights reserved.
@@ -17104,7 +17465,7 @@ exports.isES3ReservedWord = function(word) {
17104
17465
  return !!es3ReservedWordsMap[word];
17105
17466
  };
17106
17467
 
17107
- },{}],47:[function(_dereq_,module,exports){
17468
+ },{}],48:[function(_dereq_,module,exports){
17108
17469
  /**
17109
17470
  * Copyright 2013-present, Facebook, Inc.
17110
17471
  * All rights reserved.
@@ -17173,7 +17534,7 @@ exports.visitorList = [
17173
17534
  visitMemberExpression
17174
17535
  ];
17175
17536
 
17176
- },{"../src/utils":28,"./reserved-words-helper":46,"esprima-fb":10}],48:[function(_dereq_,module,exports){
17537
+ },{"../src/utils":29,"./reserved-words-helper":47,"esprima-fb":10}],49:[function(_dereq_,module,exports){
17177
17538
  /**
17178
17539
  * Copyright 2013-present, Facebook, Inc.
17179
17540
  * All rights reserved.
@@ -17249,7 +17610,7 @@ exports.visitorList = [
17249
17610
  visitArrayOrObjectExpression
17250
17611
  ];
17251
17612
 
17252
- },{"../src/utils":28,"esprima-fb":10}],49:[function(_dereq_,module,exports){
17613
+ },{"../src/utils":29,"esprima-fb":10}],50:[function(_dereq_,module,exports){
17253
17614
  /**
17254
17615
  * Copyright 2013-present, Facebook, Inc.
17255
17616
  * All rights reserved.
@@ -17441,7 +17802,7 @@ exports.visitorList = [
17441
17802
  visitTypeAnnotatedObjectOrArrayPattern
17442
17803
  ];
17443
17804
 
17444
- },{"../src/utils":28,"esprima-fb":10}],50:[function(_dereq_,module,exports){
17805
+ },{"../src/utils":29,"esprima-fb":10}],51:[function(_dereq_,module,exports){
17445
17806
  /**
17446
17807
  * Copyright 2013-present, Facebook, Inc.
17447
17808
  * All rights reserved.
@@ -17584,5 +17945,5 @@ exports.visitorList = [
17584
17945
  visitIdentifierUndefined
17585
17946
  ];
17586
17947
 
17587
- },{"../src/utils":28,"esprima-fb":10}]},{},[1])(1)
17948
+ },{"../src/utils":29,"esprima-fb":10}]},{},[1])(1)
17588
17949
  });