ember-source 2.5.1 → 2.6.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -6,10 +6,10 @@
6
6
  * Portions Copyright 2008-2011 Apple Inc. All rights reserved.
7
7
  * @license Licensed under MIT license
8
8
  * See https://raw.github.com/emberjs/ember.js/master/LICENSE
9
- * @version 2.5.1
9
+ * @version 2.6.0-beta.1
10
10
  */
11
11
 
12
- var enifed, requireModule, require, requirejs, Ember;
12
+ var enifed, requireModule, require, Ember;
13
13
  var mainContext = this;
14
14
 
15
15
  (function() {
@@ -20,7 +20,7 @@ var mainContext = this;
20
20
  Ember = this.Ember = this.Ember || {};
21
21
  }
22
22
 
23
- if (typeof Ember === 'undefined') { Ember = {}; };
23
+ if (typeof Ember === 'undefined') { Ember = {}; }
24
24
 
25
25
  if (typeof Ember.__loader === 'undefined') {
26
26
  var registry = {};
@@ -40,9 +40,9 @@ var mainContext = this;
40
40
  registry[name] = value;
41
41
  };
42
42
 
43
- requirejs = require = requireModule = function(name) {
43
+ require = requireModule = function(name) {
44
44
  return internalRequire(name, null);
45
- }
45
+ };
46
46
 
47
47
  // setup `require` module
48
48
  require['default'] = require;
@@ -83,7 +83,7 @@ var mainContext = this;
83
83
  var deps = mod.deps;
84
84
  var callback = mod.callback;
85
85
  var length = deps.length;
86
- var reified = new Array(length);;
86
+ var reified = new Array(length);
87
87
 
88
88
  for (var i = 0; i < length; i++) {
89
89
  if (deps[i] === 'exports') {
@@ -98,9 +98,9 @@ var mainContext = this;
98
98
  callback.apply(this, reified);
99
99
 
100
100
  return exports;
101
- };
101
+ }
102
102
 
103
- requirejs._eak_seen = registry;
103
+ requireModule._eak_seen = registry;
104
104
 
105
105
  Ember.__loader = {
106
106
  define: enifed,
@@ -109,7 +109,7 @@ var mainContext = this;
109
109
  };
110
110
  } else {
111
111
  enifed = Ember.__loader.define;
112
- requirejs = require = requireModule = Ember.__loader.require;
112
+ require = requireModule = Ember.__loader.require;
113
113
  }
114
114
  })();
115
115
 
@@ -1187,18 +1187,27 @@ enifed('ember-debug/deprecate', ['exports', 'ember-metal/core', 'ember-metal/err
1187
1187
  _emberMetalLogger.default.warn('DEPRECATION: ' + updatedMessage);
1188
1188
  });
1189
1189
 
1190
- registerHandler(function logDeprecationStackTrace(message, options, next) {
1191
- if (_emberMetalCore.default.LOG_STACKTRACE_ON_DEPRECATION) {
1192
- var stackStr = '';
1193
- var error = undefined,
1194
- stack = undefined;
1190
+ var captureErrorForStack = undefined;
1195
1191
 
1196
- // When using new Error, we can't do the arguments check for Chrome. Alternatives are welcome
1192
+ if (new Error().stack) {
1193
+ captureErrorForStack = function () {
1194
+ return new Error();
1195
+ };
1196
+ } else {
1197
+ captureErrorForStack = function () {
1197
1198
  try {
1198
1199
  __fail__.fail();
1199
1200
  } catch (e) {
1200
- error = e;
1201
+ return e;
1201
1202
  }
1203
+ };
1204
+ }
1205
+
1206
+ registerHandler(function logDeprecationStackTrace(message, options, next) {
1207
+ if (_emberMetalCore.default.LOG_STACKTRACE_ON_DEPRECATION) {
1208
+ var stackStr = '';
1209
+ var error = captureErrorForStack();
1210
+ var stack = undefined;
1202
1211
 
1203
1212
  if (error.stack) {
1204
1213
  if (error['arguments']) {
@@ -1577,7 +1586,8 @@ enifed('ember-debug/index', ['exports', 'ember-metal/core', 'ember-metal/debug',
1577
1586
  Deprecations are invoked by calls to [Ember.deprecate](http://emberjs.com/api/classes/Ember.html#method_deprecate).
1578
1587
  The following example demonstrates its usage by registering a handler that throws an error if the
1579
1588
  message contains the word "should", otherwise defers to the default handler.
1580
- ```javascript
1589
+
1590
+ ```javascript
1581
1591
  Ember.Debug.registerDeprecationHandler((message, options, next) => {
1582
1592
  if (message.indexOf('should') !== -1) {
1583
1593
  throw new Error(`Deprecation message with should: ${message}`);
@@ -1587,8 +1597,10 @@ enifed('ember-debug/index', ['exports', 'ember-metal/core', 'ember-metal/debug',
1587
1597
  }
1588
1598
  }
1589
1599
  ```
1590
- The handler function takes the following arguments:
1591
- <ul>
1600
+
1601
+ The handler function takes the following arguments:
1602
+
1603
+ <ul>
1592
1604
  <li> <code>message</code> - The message received from the deprecation call.</li>
1593
1605
  <li> <code>options</code> - An object passed in with the deprecation call containing additional information including:</li>
1594
1606
  <ul>
@@ -1597,7 +1609,8 @@ enifed('ember-debug/index', ['exports', 'ember-metal/core', 'ember-metal/debug',
1597
1609
  </ul>
1598
1610
  <li> <code>next</code> - A function that calls into the previously registered handler.</li>
1599
1611
  </ul>
1600
- @public
1612
+
1613
+ @public
1601
1614
  @static
1602
1615
  @method registerDeprecationHandler
1603
1616
  @param handler {Function} A function to handle deprecation calls.
@@ -1609,12 +1622,15 @@ enifed('ember-debug/index', ['exports', 'ember-metal/core', 'ember-metal/debug',
1609
1622
  Warnings are invoked by calls made to [Ember.warn](http://emberjs.com/api/classes/Ember.html#method_warn).
1610
1623
  The following example demonstrates its usage by registering a handler that does nothing overriding Ember's
1611
1624
  default warning behavior.
1612
- ```javascript
1625
+
1626
+ ```javascript
1613
1627
  // next is not called, so no warnings get the default behavior
1614
1628
  Ember.Debug.registerWarnHandler(() => {});
1615
1629
  ```
1616
- The handler function takes the following arguments:
1617
- <ul>
1630
+
1631
+ The handler function takes the following arguments:
1632
+
1633
+ <ul>
1618
1634
  <li> <code>message</code> - The message received from the warn call. </li>
1619
1635
  <li> <code>options</code> - An object passed in with the warn call containing additional information including:</li>
1620
1636
  <ul>
@@ -1622,7 +1638,8 @@ enifed('ember-debug/index', ['exports', 'ember-metal/core', 'ember-metal/debug',
1622
1638
  </ul>
1623
1639
  <li> <code>next</code> - A function that calls into the previously registered handler.</li>
1624
1640
  </ul>
1625
- @public
1641
+
1642
+ @public
1626
1643
  @static
1627
1644
  @method registerWarnHandler
1628
1645
  @param handler {Function} A function to handle warnings.
@@ -3304,7 +3321,7 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/debug', 'ember-metal/pro
3304
3321
  exports.computed = computed;
3305
3322
  exports.cacheFor = cacheFor;
3306
3323
  });
3307
- enifed('ember-metal/computed_macros', ['exports', 'ember-metal/debug', 'ember-metal/property_get', 'ember-metal/property_set', 'ember-metal/computed', 'ember-metal/is_empty', 'ember-metal/is_none', 'ember-metal/alias'], function (exports, _emberMetalDebug, _emberMetalProperty_get, _emberMetalProperty_set, _emberMetalComputed, _emberMetalIs_empty, _emberMetalIs_none, _emberMetalAlias) {
3324
+ enifed('ember-metal/computed_macros', ['exports', 'ember-metal/debug', 'ember-metal/property_get', 'ember-metal/property_set', 'ember-metal/computed', 'ember-metal/is_empty', 'ember-metal/is_none', 'ember-metal/alias', 'ember-metal/expand_properties'], function (exports, _emberMetalDebug, _emberMetalProperty_get, _emberMetalProperty_set, _emberMetalComputed, _emberMetalIs_empty, _emberMetalIs_none, _emberMetalAlias, _emberMetalExpand_properties) {
3308
3325
  'use strict';
3309
3326
 
3310
3327
  exports.empty = empty;
@@ -3337,15 +3354,24 @@ enifed('ember-metal/computed_macros', ['exports', 'ember-metal/debug', 'ember-me
3337
3354
 
3338
3355
  function generateComputedWithProperties(macro) {
3339
3356
  return function () {
3357
+ var expandedProperties = [];
3358
+ var computedFunc = _emberMetalComputed.computed(function () {
3359
+ return macro.apply(this, [getProperties(this, expandedProperties)]);
3360
+ });
3361
+
3362
+ function extractProperty(entry) {
3363
+ expandedProperties.push(entry);
3364
+ }
3365
+
3340
3366
  for (var _len = arguments.length, properties = Array(_len), _key = 0; _key < _len; _key++) {
3341
3367
  properties[_key] = arguments[_key];
3342
3368
  }
3343
3369
 
3344
- var computedFunc = _emberMetalComputed.computed(function () {
3345
- return macro.apply(this, [getProperties(this, properties)]);
3346
- });
3370
+ for (var i = 0; i < properties.length; i++) {
3371
+ _emberMetalExpand_properties.default(properties[i], extractProperty);
3372
+ }
3347
3373
 
3348
- return computedFunc.property.apply(computedFunc, properties);
3374
+ return computedFunc.property.apply(computedFunc, expandedProperties);
3349
3375
  };
3350
3376
  }
3351
3377
 
@@ -3734,22 +3760,30 @@ enifed('ember-metal/computed_macros', ['exports', 'ember-metal/debug', 'ember-me
3734
3760
  A computed property that performs a logical `and` on the
3735
3761
  original values for the provided dependent properties.
3736
3762
 
3763
+ You may pass in more than two properties and even use
3764
+ property brace expansion. The computed property will
3765
+ returns the first falsy value or last truthy value
3766
+ just like JavaScript's `||` operator.
3767
+
3737
3768
  Example
3738
3769
 
3739
3770
  ```javascript
3740
3771
  var Hamster = Ember.Object.extend({
3741
- readyForCamp: Ember.computed.and('hasTent', 'hasBackpack')
3772
+ readyForCamp: Ember.computed.and('hasTent', 'hasBackpack'),
3773
+ readyForHike: Ember.computed.and('hasWalkingStick', 'hasBackpack')
3742
3774
  });
3743
3775
 
3744
- var hamster = Hamster.create();
3745
-
3746
- hamster.get('readyForCamp'); // false
3747
- hamster.set('hasTent', true);
3748
- hamster.get('readyForCamp'); // false
3749
- hamster.set('hasBackpack', true);
3750
- hamster.get('readyForCamp'); // true
3751
- hamster.set('hasBackpack', 'Yes');
3752
- hamster.get('readyForCamp'); // 'Yes'
3776
+ var tomster = Hamster.create();
3777
+
3778
+ tomster.get('readyForCamp'); // false
3779
+ tomster.set('hasTent', true);
3780
+ tomster.get('readyForCamp'); // false
3781
+ tomster.set('hasBackpack', true);
3782
+ tomster.get('readyForCamp'); // true
3783
+ tomster.set('hasBackpack', 'Yes');
3784
+ tomster.get('readyForCamp'); // 'Yes'
3785
+ tomster.set('hasWalkingStick', null);
3786
+ tomster.get('readyForHike'); // null
3753
3787
  ```
3754
3788
 
3755
3789
  @method and
@@ -3764,7 +3798,7 @@ enifed('ember-metal/computed_macros', ['exports', 'ember-metal/debug', 'ember-me
3764
3798
  for (var key in properties) {
3765
3799
  value = properties[key];
3766
3800
  if (properties.hasOwnProperty(key) && !value) {
3767
- return false;
3801
+ return value;
3768
3802
  }
3769
3803
  }
3770
3804
  return value;
@@ -3775,20 +3809,28 @@ enifed('ember-metal/computed_macros', ['exports', 'ember-metal/debug', 'ember-me
3775
3809
  A computed property which performs a logical `or` on the
3776
3810
  original values for the provided dependent properties.
3777
3811
 
3812
+ You may pass in more than two properties and even use
3813
+ property brace expansion. The computed property will
3814
+ returns the first truthy value or last falsy value just
3815
+ like JavaScript's `||` operator.
3816
+
3778
3817
  Example
3779
3818
 
3780
3819
  ```javascript
3781
3820
  var Hamster = Ember.Object.extend({
3782
- readyForRain: Ember.computed.or('hasJacket', 'hasUmbrella')
3821
+ readyForRain: Ember.computed.or('hasJacket', 'hasUmbrella'),
3822
+ readyForBeach: Ember.computed.or('{hasSunscreen,hasUmbrella}')
3783
3823
  });
3784
3824
 
3785
- var hamster = Hamster.create();
3825
+ var tomster = Hamster.create();
3786
3826
 
3787
- hamster.get('readyForRain'); // false
3788
- hamster.set('hasUmbrella', true);
3789
- hamster.get('readyForRain'); // true
3790
- hamster.set('hasJacket', 'Yes');
3791
- hamster.get('readyForRain'); // 'Yes'
3827
+ tomster.get('readyForRain'); // undefined
3828
+ tomster.set('hasUmbrella', true);
3829
+ tomster.get('readyForRain'); // true
3830
+ tomster.set('hasJacket', 'Yes');
3831
+ tomster.get('readyForRain'); // 'Yes'
3832
+ tomster.set('hasSunscreen', 'Check');
3833
+ tomster.get('readyForBeach'); // 'Check'
3792
3834
  ```
3793
3835
 
3794
3836
  @method or
@@ -3980,7 +4022,7 @@ enifed('ember-metal/core', ['exports', 'require'], function (exports, _require)
3980
4022
 
3981
4023
  @class Ember
3982
4024
  @static
3983
- @version 2.5.1
4025
+ @version 2.6.0-beta.1
3984
4026
  @public
3985
4027
  */
3986
4028
 
@@ -4022,11 +4064,11 @@ enifed('ember-metal/core', ['exports', 'require'], function (exports, _require)
4022
4064
 
4023
4065
  @property VERSION
4024
4066
  @type String
4025
- @default '2.5.1'
4067
+ @default '2.6.0-beta.1'
4026
4068
  @static
4027
4069
  @public
4028
4070
  */
4029
- Ember.VERSION = '2.5.1';
4071
+ Ember.VERSION = '2.6.0-beta.1';
4030
4072
 
4031
4073
  /**
4032
4074
  The hash of environment variables used to control various configuration
@@ -4514,6 +4556,14 @@ enifed('ember-metal/events', ['exports', 'ember-metal/debug', 'ember-metal/utils
4514
4556
  function addListener(obj, eventName, target, method, once) {
4515
4557
  _emberMetalDebug.assert('You must pass at least an object and event name to Ember.addListener', !!obj && !!eventName);
4516
4558
 
4559
+ if (eventName === 'didInitAttrs' && obj.isComponent) {
4560
+ _emberMetalDebug.deprecate('[DEPRECATED] didInitAttrs called in ' + obj.toString() + '.', false, {
4561
+ id: 'ember-views.did-init-attrs',
4562
+ until: '3.0.0',
4563
+ url: 'http://emberjs.com/deprecations/v2.x#toc_ember-component-didinitattrs'
4564
+ });
4565
+ }
4566
+
4517
4567
  if (!method && 'function' === typeof target) {
4518
4568
  method = target;
4519
4569
  target = null;
@@ -5128,7 +5178,6 @@ enifed('ember-metal/index', ['exports', 'require', 'ember-metal/core', 'ember-me
5128
5178
  _require.default('ember-debug');
5129
5179
  } else {
5130
5180
  _emberMetalCore.default.Debug = {};
5131
-
5132
5181
  _emberMetalCore.default.Debug.registerDeprecationHandler = function () {};
5133
5182
  _emberMetalCore.default.Debug.registerWarnHandler = function () {};
5134
5183
  }
@@ -5162,7 +5211,7 @@ enifed('ember-metal/injected_property', ['exports', 'ember-metal/debug', 'ember-
5162
5211
 
5163
5212
  function injectedPropertyGet(keyName) {
5164
5213
  var desc = this[keyName];
5165
- var owner = _containerOwner.getOwner(this) || this.container; // fallback to `container` for backwards compat
5214
+ var owner = _containerOwner.getOwner(this);
5166
5215
 
5167
5216
  _emberMetalDebug.assert('InjectedProperties should be defined with the Ember.inject computed property macros.', desc && desc.isDescriptor && desc.type);
5168
5217
  _emberMetalDebug.assert('Attempting to lookup an injected property on an object without a container, ensure that the object was instantiated via a container.', owner);
@@ -5185,7 +5234,7 @@ enifed('ember-metal/injected_property', ['exports', 'ember-metal/debug', 'ember-
5185
5234
 
5186
5235
  exports.default = InjectedProperty;
5187
5236
  });
5188
- enifed('ember-metal/instrumentation', ['exports', 'ember-metal/core'], function (exports, _emberMetalCore) {
5237
+ enifed('ember-metal/instrumentation', ['exports', 'ember-metal/core', 'ember-metal/features'], function (exports, _emberMetalCore, _emberMetalFeatures) {
5189
5238
  'use strict';
5190
5239
 
5191
5240
  exports.instrument = instrument;
@@ -5303,14 +5352,23 @@ enifed('ember-metal/instrumentation', ['exports', 'ember-metal/core'], function
5303
5352
  }
5304
5353
  }
5305
5354
 
5355
+ var flaggedInstrument;
5356
+
5357
+ exports.flaggedInstrument = flaggedInstrument = function (name, payload, callback) {
5358
+ return callback();
5359
+ };
5360
+ exports.flaggedInstrument = flaggedInstrument;
5361
+
5306
5362
  function withFinalizer(callback, finalizer, payload, binding) {
5363
+ var result = undefined;
5307
5364
  try {
5308
- return callback.call(binding);
5365
+ result = callback.call(binding);
5309
5366
  } catch (e) {
5310
5367
  payload.exception = e;
5311
- return payload;
5368
+ result = payload;
5312
5369
  } finally {
5313
- return finalizer();
5370
+ finalizer();
5371
+ return result;
5314
5372
  }
5315
5373
  }
5316
5374
 
@@ -5350,7 +5408,9 @@ enifed('ember-metal/instrumentation', ['exports', 'ember-metal/core'], function
5350
5408
  var timestamp = time();
5351
5409
  for (i = 0, l = listeners.length; i < l; i++) {
5352
5410
  listener = listeners[i];
5353
- listener.after(name, timestamp, payload, beforeValues[i]);
5411
+ if (typeof listener.after === 'function') {
5412
+ listener.after(name, timestamp, payload, beforeValues[i]);
5413
+ }
5354
5414
  }
5355
5415
 
5356
5416
  if (STRUCTURED_PROFILE) {
@@ -6310,7 +6370,11 @@ enifed('ember-metal/map', ['exports', 'ember-metal/core', 'ember-metal/utils', '
6310
6370
  exports.Map = Map;
6311
6371
  exports.MapWithDefault = MapWithDefault;
6312
6372
  });
6313
- enifed('ember-metal/merge', ['exports'], function (exports) {
6373
+ enifed('ember-metal/merge', ['exports', 'ember-metal/debug', 'ember-metal/features'], function (exports, _emberMetalDebug, _emberMetalFeatures) {
6374
+ 'use strict';
6375
+
6376
+ exports.default = merge;
6377
+
6314
6378
  /**
6315
6379
  Merge the contents of two objects together into the first object.
6316
6380
 
@@ -6328,11 +6392,12 @@ enifed('ember-metal/merge', ['exports'], function (exports) {
6328
6392
  @return {Object}
6329
6393
  @public
6330
6394
  */
6331
- 'use strict';
6332
-
6333
- exports.default = merge;
6334
6395
 
6335
6396
  function merge(original, updates) {
6397
+ _emberMetalDebug.deprecate('Usage of `Ember.merge` is deprecated, use `Ember.assign` instead.', false, {
6398
+ id: 'ember-metal.merge', until: '3.0.0', url: 'http://emberjs.com/deprecations/v2.x/#toc_ember-merge'
6399
+ });
6400
+
6336
6401
  if (!updates || typeof updates !== 'object') {
6337
6402
  return original;
6338
6403
  }
@@ -6380,7 +6445,7 @@ enifed('ember-metal/meta', ['exports', 'ember-metal/meta_listeners', 'ember-meta
6380
6445
  peekBindings, clearBindings, writeValues,
6381
6446
  peekValues, clearValues, writeDeps, forEachInDeps
6382
6447
  writableChainWatchers, readableChainWatchers, writableChains,
6383
- readableChains
6448
+ readableChains, writableTag, readableTag
6384
6449
 
6385
6450
  */
6386
6451
  var members = {
@@ -6392,7 +6457,8 @@ enifed('ember-metal/meta', ['exports', 'ember-metal/meta_listeners', 'ember-meta
6392
6457
  values: inheritedMap,
6393
6458
  deps: inheritedMapOfMaps,
6394
6459
  chainWatchers: ownCustomObject,
6395
- chains: inheritedCustomObject
6460
+ chains: inheritedCustomObject,
6461
+ tag: ownCustomObject
6396
6462
  };
6397
6463
 
6398
6464
  var memberNames = Object.keys(members);
@@ -6408,6 +6474,8 @@ enifed('ember-metal/meta', ['exports', 'ember-metal/meta_listeners', 'ember-meta
6408
6474
  this._deps = undefined;
6409
6475
  this._chainWatchers = undefined;
6410
6476
  this._chains = undefined;
6477
+ this._tag = undefined;
6478
+
6411
6479
  // used only internally
6412
6480
  this.source = obj;
6413
6481
 
@@ -8695,7 +8763,7 @@ enifed('ember-metal/property_get', ['exports', 'ember-metal/debug', 'ember-metal
8695
8763
 
8696
8764
  exports.default = get;
8697
8765
  });
8698
- enifed('ember-metal/property_set', ['exports', 'ember-metal/debug', 'ember-metal/features', 'ember-metal/property_get', 'ember-metal/property_events', 'ember-metal/properties', 'ember-metal/error', 'ember-metal/path_cache', 'ember-metal/meta', 'ember-metal/utils'], function (exports, _emberMetalDebug, _emberMetalFeatures, _emberMetalProperty_get, _emberMetalProperty_events, _emberMetalProperties, _emberMetalError, _emberMetalPath_cache, _emberMetalMeta, _emberMetalUtils) {
8766
+ enifed('ember-metal/property_set', ['exports', 'ember-metal/debug', 'ember-metal/features', 'ember-metal/property_get', 'ember-metal/property_events', 'ember-metal/properties', 'ember-metal/error', 'ember-metal/path_cache', 'ember-metal/meta', 'ember-metal/utils', 'ember-metal/tags'], function (exports, _emberMetalDebug, _emberMetalFeatures, _emberMetalProperty_get, _emberMetalProperty_events, _emberMetalProperties, _emberMetalError, _emberMetalPath_cache, _emberMetalMeta, _emberMetalUtils, _emberMetalTags) {
8699
8767
  'use strict';
8700
8768
 
8701
8769
  exports.set = set;
@@ -8722,11 +8790,15 @@ enifed('ember-metal/property_set', ['exports', 'ember-metal/debug', 'ember-metal
8722
8790
  _emberMetalDebug.assert('The key provided to set must be a string, you passed ' + keyName, typeof keyName === 'string');
8723
8791
  _emberMetalDebug.assert('\'this\' in paths is not supported', !_emberMetalPath_cache.hasThis(keyName));
8724
8792
 
8725
- var meta, possibleDesc, desc;
8793
+ var meta = undefined,
8794
+ possibleDesc = undefined,
8795
+ desc = undefined;
8796
+
8726
8797
  if (obj) {
8727
8798
  meta = _emberMetalMeta.peekMeta(obj);
8728
8799
  possibleDesc = obj[keyName];
8729
8800
  desc = possibleDesc !== null && typeof possibleDesc === 'object' && possibleDesc.isDescriptor ? possibleDesc : undefined;
8801
+ _emberMetalTags.markObjectAsDirty(meta);
8730
8802
  }
8731
8803
 
8732
8804
  var isUnknown, currentValue;
@@ -9333,17 +9405,21 @@ enifed('ember-metal/run_loop', ['exports', 'ember-metal/core', 'ember-metal/debu
9333
9405
  after all DOM element operations have completed within the current
9334
9406
  run loop, you can make use of the `afterRender` run loop queue (added
9335
9407
  by the `ember-views` package, along with the preceding `render` queue
9336
- where all the DOM element operations happen). Example:
9408
+ where all the DOM element operations happen).
9409
+
9410
+ Example:
9337
9411
 
9338
9412
  ```javascript
9339
- App.MyCollectionView = Ember.CollectionView.extend({
9340
- didInsertElement: function() {
9413
+ export default Ember.Component.extend({
9414
+ didInsertElement() {
9415
+ this._super(...arguments);
9341
9416
  run.scheduleOnce('afterRender', this, 'processChildElements');
9342
9417
  },
9343
- processChildElements: function() {
9344
- // ... do something with collectionView's child view
9418
+
9419
+ processChildElements() {
9420
+ // ... do something with component's child component
9345
9421
  // elements after they've finished rendering, which
9346
- // can't be done within the CollectionView's
9422
+ // can't be done within this component's
9347
9423
  // `didInsertElement` hook because that gets run
9348
9424
  // before the child elements have been added to the DOM.
9349
9425
  }
@@ -10604,6 +10680,53 @@ enifed('ember-metal/symbol', ['exports', 'ember-metal/utils'], function (exports
10604
10680
  return _emberMetalUtils.intern(debugName + ' [id=' + _emberMetalUtils.GUID_KEY + Math.floor(Math.random() * new Date()) + ']');
10605
10681
  }
10606
10682
  });
10683
+ enifed('ember-metal/tags', ['exports', 'ember-metal/meta', 'require'], function (exports, _emberMetalMeta, _require2) {
10684
+ 'use strict';
10685
+
10686
+ exports.tagFor = tagFor;
10687
+
10688
+ var hasGlimmer = _require2.has('glimmer-reference');
10689
+ var CONSTANT_TAG = undefined,
10690
+ CURRENT_TAG = undefined,
10691
+ DirtyableTag = undefined,
10692
+ makeTag = undefined;
10693
+
10694
+ var markObjectAsDirty = undefined;
10695
+
10696
+ exports.markObjectAsDirty = markObjectAsDirty;
10697
+
10698
+ function tagFor(object, _meta) {
10699
+ if (!hasGlimmer) {
10700
+ throw new Error('Cannot call tagFor without Glimmer');
10701
+ }
10702
+
10703
+ if (object && typeof object === 'object') {
10704
+ var meta = _meta || _emberMetalMeta.meta(object);
10705
+ return meta.writableTag(makeTag);
10706
+ } else {
10707
+ return CONSTANT_TAG;
10708
+ }
10709
+ }
10710
+
10711
+ if (hasGlimmer) {
10712
+ var _require = _require2.default('glimmer-reference');
10713
+
10714
+ DirtyableTag = _require.DirtyableTag;
10715
+ CONSTANT_TAG = _require.CONSTANT_TAG;
10716
+ CURRENT_TAG = _require.CURRENT_TAG;
10717
+
10718
+ makeTag = function () {
10719
+ return new DirtyableTag();
10720
+ };
10721
+
10722
+ exports.markObjectAsDirty = markObjectAsDirty = function (meta) {
10723
+ var tag = meta && meta.readableTag() || CURRENT_TAG;
10724
+ tag.dirty();
10725
+ };
10726
+ } else {
10727
+ exports.markObjectAsDirty = markObjectAsDirty = function () {};
10728
+ }
10729
+ });
10607
10730
  enifed('ember-metal/utils', ['exports'], function (exports) {
10608
10731
  'no use strict';
10609
10732
  // Remove "use strict"; from transpiled module until
@@ -11601,7 +11724,7 @@ enifed('ember-template-compiler/compat', ['exports', 'ember-metal/core', 'ember-
11601
11724
  EmberHandlebars.compile = _emberTemplateCompilerSystemCompile.default;
11602
11725
  EmberHandlebars.template = _emberTemplateCompilerSystemTemplate.default;
11603
11726
  });
11604
- enifed('ember-template-compiler/index', ['exports', 'ember-metal', 'ember-template-compiler/system/precompile', 'ember-template-compiler/system/compile', 'ember-template-compiler/system/template', 'ember-template-compiler/plugins', 'ember-template-compiler/plugins/transform-old-binding-syntax', 'ember-template-compiler/plugins/transform-old-class-binding-syntax', 'ember-template-compiler/plugins/transform-item-class', 'ember-template-compiler/plugins/transform-closure-component-attrs-into-mut', 'ember-template-compiler/plugins/transform-component-attrs-into-mut', 'ember-template-compiler/plugins/transform-component-curly-to-readonly', 'ember-template-compiler/plugins/transform-angle-bracket-components', 'ember-template-compiler/plugins/transform-input-on-to-onEvent', 'ember-template-compiler/plugins/transform-top-level-components', 'ember-template-compiler/plugins/transform-each-into-collection', 'ember-template-compiler/plugins/transform-unescaped-inline-link-to', 'ember-template-compiler/plugins/deprecate-render-block', 'ember-template-compiler/plugins/assert-no-view-and-controller-paths', 'ember-template-compiler/plugins/assert-no-view-helper', 'ember-template-compiler/plugins/assert-no-each-in', 'ember-template-compiler/compat'], function (exports, _emberMetal, _emberTemplateCompilerSystemPrecompile, _emberTemplateCompilerSystemCompile, _emberTemplateCompilerSystemTemplate, _emberTemplateCompilerPlugins, _emberTemplateCompilerPluginsTransformOldBindingSyntax, _emberTemplateCompilerPluginsTransformOldClassBindingSyntax, _emberTemplateCompilerPluginsTransformItemClass, _emberTemplateCompilerPluginsTransformClosureComponentAttrsIntoMut, _emberTemplateCompilerPluginsTransformComponentAttrsIntoMut, _emberTemplateCompilerPluginsTransformComponentCurlyToReadonly, _emberTemplateCompilerPluginsTransformAngleBracketComponents, _emberTemplateCompilerPluginsTransformInputOnToOnEvent, _emberTemplateCompilerPluginsTransformTopLevelComponents, _emberTemplateCompilerPluginsTransformEachIntoCollection, _emberTemplateCompilerPluginsTransformUnescapedInlineLinkTo, _emberTemplateCompilerPluginsDeprecateRenderBlock, _emberTemplateCompilerPluginsAssertNoViewAndControllerPaths, _emberTemplateCompilerPluginsAssertNoViewHelper, _emberTemplateCompilerPluginsAssertNoEachIn, _emberTemplateCompilerCompat) {
11727
+ enifed('ember-template-compiler/index', ['exports', 'ember-metal', 'ember-template-compiler/system/precompile', 'ember-template-compiler/system/compile', 'ember-template-compiler/system/template', 'ember-template-compiler/plugins', 'ember-template-compiler/plugins/transform-old-binding-syntax', 'ember-template-compiler/plugins/transform-old-class-binding-syntax', 'ember-template-compiler/plugins/transform-item-class', 'ember-template-compiler/plugins/transform-closure-component-attrs-into-mut', 'ember-template-compiler/plugins/transform-component-attrs-into-mut', 'ember-template-compiler/plugins/transform-component-curly-to-readonly', 'ember-template-compiler/plugins/transform-angle-bracket-components', 'ember-template-compiler/plugins/transform-input-on-to-onEvent', 'ember-template-compiler/plugins/transform-top-level-components', 'ember-template-compiler/plugins/deprecate-render-model', 'ember-template-compiler/plugins/prevent-render-block', 'ember-template-compiler/plugins/transform-inline-link-to', 'ember-template-compiler/plugins/assert-no-view-and-controller-paths', 'ember-template-compiler/plugins/assert-no-view-helper', 'ember-template-compiler/plugins/assert-no-each-in', 'ember-template-compiler/compat'], function (exports, _emberMetal, _emberTemplateCompilerSystemPrecompile, _emberTemplateCompilerSystemCompile, _emberTemplateCompilerSystemTemplate, _emberTemplateCompilerPlugins, _emberTemplateCompilerPluginsTransformOldBindingSyntax, _emberTemplateCompilerPluginsTransformOldClassBindingSyntax, _emberTemplateCompilerPluginsTransformItemClass, _emberTemplateCompilerPluginsTransformClosureComponentAttrsIntoMut, _emberTemplateCompilerPluginsTransformComponentAttrsIntoMut, _emberTemplateCompilerPluginsTransformComponentCurlyToReadonly, _emberTemplateCompilerPluginsTransformAngleBracketComponents, _emberTemplateCompilerPluginsTransformInputOnToOnEvent, _emberTemplateCompilerPluginsTransformTopLevelComponents, _emberTemplateCompilerPluginsDeprecateRenderModel, _emberTemplateCompilerPluginsPreventRenderBlock, _emberTemplateCompilerPluginsTransformInlineLinkTo, _emberTemplateCompilerPluginsAssertNoViewAndControllerPaths, _emberTemplateCompilerPluginsAssertNoViewHelper, _emberTemplateCompilerPluginsAssertNoEachIn, _emberTemplateCompilerCompat) {
11605
11728
  'use strict';
11606
11729
 
11607
11730
  _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformOldBindingSyntax.default);
@@ -11613,13 +11736,12 @@ enifed('ember-template-compiler/index', ['exports', 'ember-metal', 'ember-templa
11613
11736
  _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformAngleBracketComponents.default);
11614
11737
  _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformInputOnToOnEvent.default);
11615
11738
  _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformTopLevelComponents.default);
11616
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformUnescapedInlineLinkTo.default);
11617
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsDeprecateRenderBlock.default);
11739
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsDeprecateRenderModel.default);
11740
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsPreventRenderBlock.default);
11618
11741
  _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsAssertNoEachIn.default);
11742
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformInlineLinkTo.default);
11619
11743
 
11620
- if (_emberMetal.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT) {
11621
- _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformEachIntoCollection.default);
11622
- } else {
11744
+ if (!_emberMetal.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT) {
11623
11745
  _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsAssertNoViewAndControllerPaths.default);
11624
11746
  _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsAssertNoViewHelper.default);
11625
11747
  }
@@ -11733,11 +11855,10 @@ enifed('ember-template-compiler/plugins/assert-no-view-and-controller-paths', ['
11733
11855
  _emberMetalDebug.assert('Using `{{' + (path && path.type === 'PathExpression' && path.parts[0]) + '}}` or any path based on it ' + _emberTemplateCompilerSystemCalculateLocationDisplay.default(moduleName, node.loc) + 'has been removed in Ember 2.0', (function () {
11734
11856
  var noAssertion = true;
11735
11857
 
11858
+ // allow opt-out of the assertion when legacy addons are present
11736
11859
  var viewKeyword = path && path.type === 'PathExpression' && path.parts && path.parts[0];
11737
11860
  if (viewKeyword === 'view') {
11738
11861
  noAssertion = _emberMetalCore.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT;
11739
- } else if (viewKeyword === 'controller') {
11740
- noAssertion = _emberMetalCore.default.ENV._ENABLE_LEGACY_CONTROLLER_SUPPORT;
11741
11862
  }
11742
11863
 
11743
11864
  return noAssertion;
@@ -11803,17 +11924,17 @@ enifed('ember-template-compiler/plugins/assert-no-view-helper', ['exports', 'emb
11803
11924
 
11804
11925
  exports.default = AssertNoViewHelper;
11805
11926
  });
11806
- enifed('ember-template-compiler/plugins/deprecate-render-block', ['exports', 'ember-metal/debug', 'ember-template-compiler/system/calculate-location-display'], function (exports, _emberMetalDebug, _emberTemplateCompilerSystemCalculateLocationDisplay) {
11927
+ enifed('ember-template-compiler/plugins/deprecate-render-model', ['exports', 'ember-metal/debug', 'ember-template-compiler/system/calculate-location-display'], function (exports, _emberMetalDebug, _emberTemplateCompilerSystemCalculateLocationDisplay) {
11807
11928
  'use strict';
11808
11929
 
11809
- exports.default = DeprecateRenderBlock;
11930
+ exports.default = DeprecateRenderModel;
11810
11931
 
11811
- function DeprecateRenderBlock(options) {
11932
+ function DeprecateRenderModel(options) {
11812
11933
  this.syntax = null;
11813
11934
  this.options = options;
11814
11935
  }
11815
11936
 
11816
- DeprecateRenderBlock.prototype.transform = function DeprecateRenderBlock_transform(ast) {
11937
+ DeprecateRenderModel.prototype.transform = function DeprecateRenderModel_transform(ast) {
11817
11938
  var moduleName = this.options.moduleName;
11818
11939
  var walker = new this.syntax.Walker();
11819
11940
 
@@ -11822,24 +11943,75 @@ enifed('ember-template-compiler/plugins/deprecate-render-block', ['exports', 'em
11822
11943
  return;
11823
11944
  }
11824
11945
 
11825
- _emberMetalDebug.deprecate(deprecationMessage(moduleName, node), false, {
11826
- id: 'ember-template-compiler.deprecate-render-block',
11827
- until: '2.4.0',
11828
- url: 'http://emberjs.com/deprecations/v2.x#toc_render-helper-with-block'
11946
+ each(node.params, function (param) {
11947
+ if (param.type !== 'PathExpression') {
11948
+ return;
11949
+ }
11950
+
11951
+ _emberMetalDebug.deprecate(deprecationMessage(moduleName, node, param), false, {
11952
+ id: 'ember-template-compiler.deprecate-render-model',
11953
+ until: '3.0.0',
11954
+ url: 'http://emberjs.com/deprecations/v2.x#toc_model-param-in-code-render-code-helper'
11955
+ });
11829
11956
  });
11830
11957
  });
11831
11958
 
11832
11959
  return ast;
11833
11960
  };
11834
11961
 
11962
+ function validate(node) {
11963
+ return node.type === 'MustacheStatement' && node.path.original === 'render' && node.params.length > 1;
11964
+ }
11965
+
11966
+ function each(list, callback) {
11967
+ for (var i = 0, l = list.length; i < l; i++) {
11968
+ callback(list[i]);
11969
+ }
11970
+ }
11971
+
11972
+ function deprecationMessage(moduleName, node, param) {
11973
+ var sourceInformation = _emberTemplateCompilerSystemCalculateLocationDisplay.default(moduleName, node.loc);
11974
+ var componentName = node.params[0].original;
11975
+ var modelName = param.original;
11976
+ var original = '{{render "' + componentName + '" ' + modelName + '}}';
11977
+ var preferred = '{{' + componentName + ' model=' + modelName + '}}';
11978
+
11979
+ return 'Please refactor `' + original + '` to a component and invoke via' + (' `' + preferred + '`. ' + sourceInformation);
11980
+ }
11981
+ });
11982
+ enifed('ember-template-compiler/plugins/prevent-render-block', ['exports', 'ember-metal/error', 'ember-template-compiler/system/calculate-location-display'], function (exports, _emberMetalError, _emberTemplateCompilerSystemCalculateLocationDisplay) {
11983
+ 'use strict';
11984
+
11985
+ exports.default = PreventRenderBlock;
11986
+
11987
+ function PreventRenderBlock(options) {
11988
+ this.syntax = null;
11989
+ this.options = options;
11990
+ }
11991
+
11992
+ PreventRenderBlock.prototype.transform = function PreventRenderBlock_transform(ast) {
11993
+ var moduleName = this.options.moduleName;
11994
+ var walker = new this.syntax.Walker();
11995
+
11996
+ walker.visit(ast, function (node) {
11997
+ if (!validate(node)) {
11998
+ return;
11999
+ }
12000
+
12001
+ throw new _emberMetalError.default(assertionMessage(moduleName, node));
12002
+ });
12003
+
12004
+ return ast;
12005
+ };
12006
+
11835
12007
  function validate(node) {
11836
12008
  return node.type === 'BlockStatement' && node.path.original === 'render';
11837
12009
  }
11838
12010
 
11839
- function deprecationMessage(moduleName, node) {
12011
+ function assertionMessage(moduleName, node) {
11840
12012
  var sourceInformation = _emberTemplateCompilerSystemCalculateLocationDisplay.default(moduleName, node.loc);
11841
12013
 
11842
- return 'Usage of `render` in block form is deprecated ' + sourceInformation + '.';
12014
+ return 'Usage of `render` in block form is unsupported ' + sourceInformation + '.';
11843
12015
  }
11844
12016
  });
11845
12017
  enifed('ember-template-compiler/plugins/transform-angle-bracket-components', ['exports'], function (exports) {
@@ -12052,68 +12224,54 @@ enifed('ember-template-compiler/plugins/transform-component-curly-to-readonly',
12052
12224
 
12053
12225
  exports.default = TransformComponentCurlyToReadonly;
12054
12226
  });
12055
- enifed('ember-template-compiler/plugins/transform-each-into-collection', ['exports', 'ember-metal/debug', 'ember-template-compiler/system/calculate-location-display'], function (exports, _emberMetalDebug, _emberTemplateCompilerSystemCalculateLocationDisplay) {
12227
+ enifed('ember-template-compiler/plugins/transform-inline-link-to', ['exports'], function (exports) {
12056
12228
  'use strict';
12057
12229
 
12058
- exports.default = TransformEachIntoCollection;
12230
+ exports.default = TransformInlineLinkTo;
12059
12231
 
12060
- function TransformEachIntoCollection(options) {
12232
+ function TransformInlineLinkTo(options) {
12061
12233
  this.options = options;
12062
12234
  this.syntax = null;
12063
12235
  }
12064
12236
 
12065
- TransformEachIntoCollection.prototype.transform = function TransformEachIntoCollection_transform(ast) {
12066
- var moduleName = this.options.moduleName;
12067
- var b = this.syntax.builders;
12068
- var walker = new this.syntax.Walker();
12069
-
12070
- walker.visit(ast, function (node) {
12071
- var legacyHashKey = validate(node);
12072
- if (!legacyHashKey) {
12073
- return;
12074
- }
12075
-
12076
- var moduleInfo = _emberTemplateCompilerSystemCalculateLocationDisplay.default(moduleName, legacyHashKey.loc);
12237
+ TransformInlineLinkTo.prototype.transform = function TransformInlineLinkTo_transform(ast) {
12238
+ var _syntax = this.syntax;
12239
+ var traverse = _syntax.traverse;
12240
+ var b = _syntax.builders;
12077
12241
 
12078
- _emberMetalDebug.deprecate('Using \'' + legacyHashKey.key + '\' with \'{{each}}\' ' + moduleInfo + 'is deprecated. Please refactor to a component.', false, { id: 'ember-template-compiler.transform-each-into-collection', until: '2.0.0' });
12242
+ function buildProgram(content) {
12243
+ return b.program([buildStatement(content)]);
12244
+ }
12079
12245
 
12080
- var list = node.params.shift();
12081
- node.path = b.path('collection');
12246
+ function buildStatement(content) {
12247
+ switch (content.type) {
12248
+ case 'PathExpression':
12249
+ return b.mustache(content);
12082
12250
 
12083
- node.params.unshift(b.string('-legacy-each'));
12251
+ case 'SubExpression':
12252
+ return b.mustache(content.path, content.params, content.hash);
12084
12253
 
12085
- var pair = b.pair('content', list);
12086
- pair.loc = list.loc;
12254
+ // The default case handles literals.
12255
+ default:
12256
+ return b.text('' + content.value);
12257
+ }
12258
+ }
12087
12259
 
12088
- node.hash.pairs.push(pair);
12260
+ function unsafeHtml(expr) {
12261
+ return b.sexpr('-html-safe', [expr]);
12262
+ }
12089
12263
 
12090
- //pair = b.pair('dataSource', list);
12091
- //node.hash.pairs.push(pair);
12264
+ traverse(ast, {
12265
+ MustacheStatement: function (node) {
12266
+ if (node.path.original === 'link-to') {
12267
+ var content = node.escaped ? node.params[0] : unsafeHtml(node.params[0]);
12268
+ return b.block('link-to', node.params.slice(1), node.hash, buildProgram(content));
12269
+ }
12270
+ }
12092
12271
  });
12093
12272
 
12094
12273
  return ast;
12095
12274
  };
12096
-
12097
- function validate(node) {
12098
- if ((node.type === 'BlockStatement' || node.type === 'MustacheStatement') && node.path.original === 'each') {
12099
- return any(node.hash.pairs, function (pair) {
12100
- var key = pair.key;
12101
- return key === 'itemController' || key === 'itemView' || key === 'itemViewClass' || key === 'tagName' || key === 'emptyView' || key === 'emptyViewClass';
12102
- });
12103
- }
12104
-
12105
- return false;
12106
- }
12107
-
12108
- function any(list, predicate) {
12109
- for (var i = 0, l = list.length; i < l; i++) {
12110
- if (predicate(list[i])) {
12111
- return list[i];
12112
- }
12113
- }
12114
-
12115
- return false;
12116
- }
12117
12275
  });
12118
12276
  enifed('ember-template-compiler/plugins/transform-input-on-to-onEvent', ['exports', 'ember-metal/debug', 'ember-template-compiler/system/calculate-location-display'], function (exports, _emberMetalDebug, _emberTemplateCompilerSystemCalculateLocationDisplay) {
12119
12277
  'use strict';
@@ -12577,36 +12735,6 @@ enifed('ember-template-compiler/plugins/transform-top-level-components', ['expor
12577
12735
 
12578
12736
  exports.default = TransformTopLevelComponents;
12579
12737
  });
12580
- enifed('ember-template-compiler/plugins/transform-unescaped-inline-link-to', ['exports'], function (exports) {
12581
- 'use strict';
12582
-
12583
- exports.default = TransformUnescapedInlineLinkTo;
12584
-
12585
- function TransformUnescapedInlineLinkTo(options) {
12586
- this.options = options;
12587
- this.syntax = null;
12588
- }
12589
-
12590
- TransformUnescapedInlineLinkTo.prototype.transform = function TransformUnescapedInlineLinkTo_transform(ast) {
12591
- var b = this.syntax.builders;
12592
- var walker = new this.syntax.Walker();
12593
-
12594
- walker.visit(ast, function (node) {
12595
- if (!validate(node)) {
12596
- return;
12597
- }
12598
-
12599
- node.escaped = true;
12600
- node.params[0] = b.sexpr(b.string('-html-safe'), [node.params[0]]);
12601
- });
12602
-
12603
- return ast;
12604
- };
12605
-
12606
- function validate(node) {
12607
- return node.type === 'MustacheStatement' && node.path.original === 'link-to' && !node.escaped;
12608
- }
12609
- });
12610
12738
  enifed('ember-template-compiler/plugins', ['exports'], function (exports) {
12611
12739
  /**
12612
12740
  @module ember
@@ -12674,7 +12802,7 @@ enifed('ember-template-compiler/system/calculate-location-display', ['exports'],
12674
12802
  return moduleInfo;
12675
12803
  }
12676
12804
  });
12677
- enifed('ember-template-compiler/system/compile', ['exports', 'require', 'ember-template-compiler/system/compile_options', 'ember-template-compiler/system/template'], function (exports, _require, _emberTemplateCompilerSystemCompile_options, _emberTemplateCompilerSystemTemplate) {
12805
+ enifed('ember-template-compiler/system/compile', ['exports', 'ember-metal/features', 'require', 'ember-template-compiler/system/compile_options', 'ember-template-compiler/system/template'], function (exports, _emberMetalFeatures, _require, _emberTemplateCompilerSystemCompile_options, _emberTemplateCompilerSystemTemplate) {
12678
12806
  /**
12679
12807
  @module ember
12680
12808
  @submodule ember-template-compiler
@@ -12717,12 +12845,14 @@ enifed('ember-template-compiler/system/compile_options', ['exports', 'ember-meta
12717
12845
 
12718
12846
  'use strict';
12719
12847
 
12848
+ var compileOptions = undefined;
12849
+ var fragmentReason = undefined;
12850
+
12720
12851
  /**
12721
12852
  @private
12722
12853
  @property compileOptions
12723
12854
  */
12724
-
12725
- exports.default = function (_options) {
12855
+ compileOptions = function (_options) {
12726
12856
  var disableComponentGeneration = true;
12727
12857
 
12728
12858
  var options = undefined;
@@ -12749,7 +12879,7 @@ enifed('ember-template-compiler/system/compile_options', ['exports', 'ember-meta
12749
12879
  options.buildMeta = function buildMeta(program) {
12750
12880
  return {
12751
12881
  fragmentReason: fragmentReason(program),
12752
- revision: 'Ember@2.5.1',
12882
+ revision: 'Ember@2.6.0-beta.1',
12753
12883
  loc: program.loc,
12754
12884
  moduleName: options.moduleName
12755
12885
  };
@@ -12758,7 +12888,7 @@ enifed('ember-template-compiler/system/compile_options', ['exports', 'ember-meta
12758
12888
  return options;
12759
12889
  };
12760
12890
 
12761
- function fragmentReason(program) {
12891
+ fragmentReason = function (program) {
12762
12892
  var loc = program.loc;
12763
12893
  var body = program.body;
12764
12894
 
@@ -12813,13 +12943,16 @@ enifed('ember-template-compiler/system/compile_options', ['exports', 'ember-meta
12813
12943
  } else {
12814
12944
  return false;
12815
12945
  }
12816
- }
12946
+ };
12947
+
12948
+ exports.default = compileOptions;
12817
12949
  });
12818
- enifed('ember-template-compiler/system/precompile', ['exports', 'require', 'ember-template-compiler/system/compile_options'], function (exports, _require, _emberTemplateCompilerSystemCompile_options) {
12950
+ enifed('ember-template-compiler/system/precompile', ['exports', 'ember-metal/features', 'require', 'ember-template-compiler/system/compile_options'], function (exports, _emberMetalFeatures, _require, _emberTemplateCompilerSystemCompile_options) {
12819
12951
  /**
12820
12952
  @module ember
12821
12953
  @submodule ember-template-compiler
12822
12954
  */
12955
+
12823
12956
  'use strict';
12824
12957
 
12825
12958
  var compileSpec;
@@ -12847,7 +12980,7 @@ enifed('ember-template-compiler/system/precompile', ['exports', 'require', 'embe
12847
12980
  return compileSpec(templateString, _emberTemplateCompilerSystemCompile_options.default(options));
12848
12981
  };
12849
12982
  });
12850
- enifed('ember-template-compiler/system/template', ['exports', 'htmlbars-runtime/hooks'], function (exports, _htmlbarsRuntimeHooks) {
12983
+ enifed('ember-template-compiler/system/template', ['exports', 'ember-metal/features', 'require'], function (exports, _emberMetalFeatures, _require2) {
12851
12984
  'use strict';
12852
12985
 
12853
12986
  /**
@@ -12864,9 +12997,15 @@ enifed('ember-template-compiler/system/template', ['exports', 'htmlbars-runtime/
12864
12997
  @param {Function} templateSpec This is the compiled HTMLBars template spec.
12865
12998
  */
12866
12999
 
12867
- exports.default = function (templateSpec) {
13000
+ var template = undefined;
13001
+
13002
+ var _require = _require2.default('htmlbars-runtime/hooks');
13003
+
13004
+ var wrap = _require.wrap;
13005
+
13006
+ template = function (templateSpec) {
12868
13007
  if (!templateSpec.render) {
12869
- templateSpec = _htmlbarsRuntimeHooks.wrap(templateSpec);
13008
+ templateSpec = wrap(templateSpec);
12870
13009
  }
12871
13010
 
12872
13011
  templateSpec.isTop = true;
@@ -12874,6 +13013,7 @@ enifed('ember-template-compiler/system/template', ['exports', 'htmlbars-runtime/
12874
13013
 
12875
13014
  return templateSpec;
12876
13015
  };
13016
+ exports.default = template;
12877
13017
  });
12878
13018
  enifed("htmlbars-compiler/compiler", ["exports", "htmlbars-syntax/parser", "htmlbars-compiler/template-compiler", "htmlbars-runtime/hooks", "htmlbars-runtime/render"], function (exports, _htmlbarsSyntaxParser, _htmlbarsCompilerTemplateCompiler, _htmlbarsRuntimeHooks, _htmlbarsRuntimeRender) {
12879
13019
  /*jshint evil:true*/
@@ -18080,7 +18220,9 @@ enifed("htmlbars-syntax/parser/handlebars-node-visitors", ["exports", "htmlbars-
18080
18220
  changeLines = leadingNewlineDifference(content.original, content.value);
18081
18221
  }
18082
18222
 
18083
- this.tokenizer.line = this.tokenizer.line + changeLines;
18223
+ this.tokenizer.line = content.loc.start.line + changeLines;
18224
+ this.tokenizer.column = changeLines ? 0 : content.loc.start.column;
18225
+
18084
18226
  this.tokenizer.tokenizePart(content.value);
18085
18227
  this.tokenizer.flushData();
18086
18228
  },