ember-source 2.5.0.beta.4 → 2.5.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -6,7 +6,7 @@
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.0-beta.4
9
+ * @version 2.5.0
10
10
  */
11
11
 
12
12
  var enifed, requireModule, require, requirejs, Ember;
@@ -204,8 +204,10 @@ enifed('ember-debug/deprecate', ['exports', 'ember-metal/core', 'ember-metal/err
204
204
 
205
205
  /**
206
206
  Display a deprecation warning with the provided message and a stack trace
207
- (Chrome and Firefox only). Ember build tools will remove any calls to
208
- `Ember.deprecate()` when doing a production build.
207
+ (Chrome and Firefox only).
208
+
209
+ * In a production build, this method is defined as an empty function (NOP).
210
+ Uses of this method in Ember itself are stripped from the ember.prod.js build.
209
211
 
210
212
  @method deprecate
211
213
  @param {String} message A description of the deprecation.
@@ -312,10 +314,10 @@ enifed('ember-debug/index', ['exports', 'ember-metal/core', 'ember-metal/debug',
312
314
  */
313
315
 
314
316
  /**
315
- Define an assertion that will throw an exception if the condition is not
316
- met. Ember build tools will remove any calls to `Ember.assert()` when
317
- doing an Ember.js framework production build and will make the assertion a
318
- no-op for an application production build. Example:
317
+ Define an assertion that will throw an exception if the condition is not met.
318
+
319
+ * In a production build, this method is defined as an empty function (NOP).
320
+ Uses of this method in Ember itself are stripped from the ember.prod.js build.
319
321
 
320
322
  ```javascript
321
323
  // Test for truthiness
@@ -349,8 +351,10 @@ enifed('ember-debug/index', ['exports', 'ember-metal/core', 'ember-metal/debug',
349
351
  });
350
352
 
351
353
  /**
352
- Display a debug notice. Ember build tools will remove any calls to
353
- `Ember.debug()` when doing a production build.
354
+ Display a debug notice.
355
+
356
+ * In a production build, this method is defined as an empty function (NOP).
357
+ Uses of this method in Ember itself are stripped from the ember.prod.js build.
354
358
 
355
359
  ```javascript
356
360
  Ember.debug('I\'m a debug notice!');
@@ -367,6 +371,9 @@ enifed('ember-debug/index', ['exports', 'ember-metal/core', 'ember-metal/debug',
367
371
  /**
368
372
  Display an info notice.
369
373
 
374
+ * In a production build, this method is defined as an empty function (NOP).
375
+ Uses of this method in Ember itself are stripped from the ember.prod.js build.
376
+
370
377
  @method info
371
378
  @private
372
379
  */
@@ -380,8 +387,7 @@ enifed('ember-debug/index', ['exports', 'ember-metal/core', 'ember-metal/debug',
380
387
  Display a deprecation warning with the provided message and a stack trace
381
388
  (Chrome and Firefox only) when the assigned method is called.
382
389
 
383
- Ember build tools will not remove calls to `Ember.deprecateFunc()`, though
384
- no warnings will be shown in production.
390
+ * In a production build, this method is defined as an empty function (NOP).
385
391
 
386
392
  ```javascript
387
393
  Ember.oldMethod = Ember.deprecateFunc('Please use the new, updated method', Ember.newMethod);
@@ -432,8 +438,10 @@ enifed('ember-debug/index', ['exports', 'ember-metal/core', 'ember-metal/debug',
432
438
  });
433
439
 
434
440
  /**
435
- Run a function meant for debugging. Ember build tools will remove any calls to
436
- `Ember.runInDebug()` when doing a production build.
441
+ Run a function meant for debugging.
442
+
443
+ * In a production build, this method is defined as an empty function (NOP).
444
+ Uses of this method in Ember itself are stripped from the ember.prod.js build.
437
445
 
438
446
  ```javascript
439
447
  Ember.runInDebug(() => {
@@ -473,14 +481,18 @@ enifed('ember-debug/index', ['exports', 'ember-metal/core', 'ember-metal/debug',
473
481
  @return {void}
474
482
  */
475
483
 
476
- function _warnIfUsingStrippedFeatureFlags(FEATURES, featuresWereStripped) {
484
+ function _warnIfUsingStrippedFeatureFlags(FEATURES, knownFeatures, featuresWereStripped) {
477
485
  if (featuresWereStripped) {
478
486
  _emberMetalDebug.warn('Ember.ENV.ENABLE_OPTIONAL_FEATURES is only available in canary builds.', !_emberMetalCore.default.ENV.ENABLE_OPTIONAL_FEATURES, { id: 'ember-debug.feature-flag-with-features-stripped' });
479
487
 
480
- for (var key in FEATURES) {
481
- if (FEATURES.hasOwnProperty(key) && key !== 'isEnabled') {
482
- _emberMetalDebug.warn('FEATURE["' + key + '"] is set as enabled, but FEATURE flags are only available in canary builds.', !FEATURES[key], { id: 'ember-debug.feature-flag-with-features-stripped' });
488
+ var keys = Object.keys(FEATURES || {});
489
+ for (var i = 0; i < keys.length; i++) {
490
+ var key = keys[i];
491
+ if (key === 'isEnabled' || !(key in knownFeatures)) {
492
+ continue;
483
493
  }
494
+
495
+ _emberMetalDebug.warn('FEATURE["' + key + '"] is set as enabled, but FEATURE flags are only available in canary builds.', !FEATURES[key], { id: 'ember-debug.feature-flag-with-features-stripped' });
484
496
  }
485
497
  }
486
498
  }
@@ -491,7 +503,7 @@ enifed('ember-debug/index', ['exports', 'ember-metal/core', 'ember-metal/debug',
491
503
  var featuresWereStripped = true;
492
504
 
493
505
  delete _emberMetalFeatures.FEATURES['features-stripped-test'];
494
- _warnIfUsingStrippedFeatureFlags(_emberMetalCore.default.ENV.FEATURES, featuresWereStripped);
506
+ _warnIfUsingStrippedFeatureFlags(_emberMetalCore.default.ENV.FEATURES, _emberMetalFeatures.KNOWN_FEATURES, featuresWereStripped);
495
507
 
496
508
  // Inform the developer about the Ember Inspector if not installed.
497
509
  var isFirefox = _emberMetalEnvironment.default.isFirefox;
@@ -629,8 +641,10 @@ enifed('ember-debug/warn', ['exports', 'ember-metal/logger', 'ember-metal/debug'
629
641
  */
630
642
 
631
643
  /**
632
- Display a warning with the provided message. Ember build tools will
633
- remove any calls to `Ember.warn()` when doing a production build.
644
+ Display a warning with the provided message.
645
+
646
+ * In a production build, this method is defined as an empty function (NOP).
647
+ Uses of this method in Ember itself are stripped from the ember.prod.js build.
634
648
 
635
649
  @method warn
636
650
  @param {String} message A warning to display.
data/dist/ember.debug.js CHANGED
@@ -6,7 +6,7 @@
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.0-beta.4
9
+ * @version 2.5.0
10
10
  */
11
11
 
12
12
  var enifed, requireModule, require, requirejs, Ember;
@@ -5267,6 +5267,7 @@ enifed('ember-application/system/engine-instance', ['exports', 'ember-runtime/sy
5267
5267
  @extends Ember.Object
5268
5268
  @uses RegistryProxyMixin
5269
5269
  @uses ContainerProxyMixin
5270
+ @category ember-application-engines
5270
5271
  */
5271
5272
 
5272
5273
  var EngineInstance = _emberRuntimeSystemObject.default.extend(_emberRuntimeMixinsRegistry_proxy.default, _emberRuntimeMixinsContainer_proxy.default, {
@@ -5353,6 +5354,7 @@ enifed('ember-application/system/engine', ['exports', 'ember-runtime/system/name
5353
5354
  @namespace Ember
5354
5355
  @extends Ember.Namespace
5355
5356
  @uses RegistryProxy
5357
+ @category ember-application-engines
5356
5358
  @public
5357
5359
  */
5358
5360
  var Engine = _emberRuntimeSystemNamespace.default.extend(_emberRuntimeMixinsRegistry_proxy.default, {
@@ -6274,8 +6276,10 @@ enifed('ember-debug/deprecate', ['exports', 'ember-metal/core', 'ember-metal/err
6274
6276
 
6275
6277
  /**
6276
6278
  Display a deprecation warning with the provided message and a stack trace
6277
- (Chrome and Firefox only). Ember build tools will remove any calls to
6278
- `Ember.deprecate()` when doing a production build.
6279
+ (Chrome and Firefox only).
6280
+
6281
+ * In a production build, this method is defined as an empty function (NOP).
6282
+ Uses of this method in Ember itself are stripped from the ember.prod.js build.
6279
6283
 
6280
6284
  @method deprecate
6281
6285
  @param {String} message A description of the deprecation.
@@ -6382,10 +6386,10 @@ enifed('ember-debug/index', ['exports', 'ember-metal/core', 'ember-metal/debug',
6382
6386
  */
6383
6387
 
6384
6388
  /**
6385
- Define an assertion that will throw an exception if the condition is not
6386
- met. Ember build tools will remove any calls to `Ember.assert()` when
6387
- doing an Ember.js framework production build and will make the assertion a
6388
- no-op for an application production build. Example:
6389
+ Define an assertion that will throw an exception if the condition is not met.
6390
+
6391
+ * In a production build, this method is defined as an empty function (NOP).
6392
+ Uses of this method in Ember itself are stripped from the ember.prod.js build.
6389
6393
 
6390
6394
  ```javascript
6391
6395
  // Test for truthiness
@@ -6419,8 +6423,10 @@ enifed('ember-debug/index', ['exports', 'ember-metal/core', 'ember-metal/debug',
6419
6423
  });
6420
6424
 
6421
6425
  /**
6422
- Display a debug notice. Ember build tools will remove any calls to
6423
- `Ember.debug()` when doing a production build.
6426
+ Display a debug notice.
6427
+
6428
+ * In a production build, this method is defined as an empty function (NOP).
6429
+ Uses of this method in Ember itself are stripped from the ember.prod.js build.
6424
6430
 
6425
6431
  ```javascript
6426
6432
  Ember.debug('I\'m a debug notice!');
@@ -6437,6 +6443,9 @@ enifed('ember-debug/index', ['exports', 'ember-metal/core', 'ember-metal/debug',
6437
6443
  /**
6438
6444
  Display an info notice.
6439
6445
 
6446
+ * In a production build, this method is defined as an empty function (NOP).
6447
+ Uses of this method in Ember itself are stripped from the ember.prod.js build.
6448
+
6440
6449
  @method info
6441
6450
  @private
6442
6451
  */
@@ -6450,8 +6459,7 @@ enifed('ember-debug/index', ['exports', 'ember-metal/core', 'ember-metal/debug',
6450
6459
  Display a deprecation warning with the provided message and a stack trace
6451
6460
  (Chrome and Firefox only) when the assigned method is called.
6452
6461
 
6453
- Ember build tools will not remove calls to `Ember.deprecateFunc()`, though
6454
- no warnings will be shown in production.
6462
+ * In a production build, this method is defined as an empty function (NOP).
6455
6463
 
6456
6464
  ```javascript
6457
6465
  Ember.oldMethod = Ember.deprecateFunc('Please use the new, updated method', Ember.newMethod);
@@ -6502,8 +6510,10 @@ enifed('ember-debug/index', ['exports', 'ember-metal/core', 'ember-metal/debug',
6502
6510
  });
6503
6511
 
6504
6512
  /**
6505
- Run a function meant for debugging. Ember build tools will remove any calls to
6506
- `Ember.runInDebug()` when doing a production build.
6513
+ Run a function meant for debugging.
6514
+
6515
+ * In a production build, this method is defined as an empty function (NOP).
6516
+ Uses of this method in Ember itself are stripped from the ember.prod.js build.
6507
6517
 
6508
6518
  ```javascript
6509
6519
  Ember.runInDebug(() => {
@@ -6543,14 +6553,18 @@ enifed('ember-debug/index', ['exports', 'ember-metal/core', 'ember-metal/debug',
6543
6553
  @return {void}
6544
6554
  */
6545
6555
 
6546
- function _warnIfUsingStrippedFeatureFlags(FEATURES, featuresWereStripped) {
6556
+ function _warnIfUsingStrippedFeatureFlags(FEATURES, knownFeatures, featuresWereStripped) {
6547
6557
  if (featuresWereStripped) {
6548
6558
  _emberMetalDebug.warn('Ember.ENV.ENABLE_OPTIONAL_FEATURES is only available in canary builds.', !_emberMetalCore.default.ENV.ENABLE_OPTIONAL_FEATURES, { id: 'ember-debug.feature-flag-with-features-stripped' });
6549
6559
 
6550
- for (var key in FEATURES) {
6551
- if (FEATURES.hasOwnProperty(key) && key !== 'isEnabled') {
6552
- _emberMetalDebug.warn('FEATURE["' + key + '"] is set as enabled, but FEATURE flags are only available in canary builds.', !FEATURES[key], { id: 'ember-debug.feature-flag-with-features-stripped' });
6560
+ var keys = Object.keys(FEATURES || {});
6561
+ for (var i = 0; i < keys.length; i++) {
6562
+ var key = keys[i];
6563
+ if (key === 'isEnabled' || !(key in knownFeatures)) {
6564
+ continue;
6553
6565
  }
6566
+
6567
+ _emberMetalDebug.warn('FEATURE["' + key + '"] is set as enabled, but FEATURE flags are only available in canary builds.', !FEATURES[key], { id: 'ember-debug.feature-flag-with-features-stripped' });
6554
6568
  }
6555
6569
  }
6556
6570
  }
@@ -6561,7 +6575,7 @@ enifed('ember-debug/index', ['exports', 'ember-metal/core', 'ember-metal/debug',
6561
6575
  var featuresWereStripped = true;
6562
6576
 
6563
6577
  delete _emberMetalFeatures.FEATURES['features-stripped-test'];
6564
- _warnIfUsingStrippedFeatureFlags(_emberMetalCore.default.ENV.FEATURES, featuresWereStripped);
6578
+ _warnIfUsingStrippedFeatureFlags(_emberMetalCore.default.ENV.FEATURES, _emberMetalFeatures.KNOWN_FEATURES, featuresWereStripped);
6565
6579
 
6566
6580
  // Inform the developer about the Ember Inspector if not installed.
6567
6581
  var isFirefox = _emberMetalEnvironment.default.isFirefox;
@@ -6699,8 +6713,10 @@ enifed('ember-debug/warn', ['exports', 'ember-metal/logger', 'ember-metal/debug'
6699
6713
  */
6700
6714
 
6701
6715
  /**
6702
- Display a warning with the provided message. Ember build tools will
6703
- remove any calls to `Ember.warn()` when doing a production build.
6716
+ Display a warning with the provided message.
6717
+
6718
+ * In a production build, this method is defined as an empty function (NOP).
6719
+ Uses of this method in Ember itself are stripped from the ember.prod.js build.
6704
6720
 
6705
6721
  @method warn
6706
6722
  @param {String} message A warning to display.
@@ -10481,7 +10497,7 @@ enifed('ember-htmlbars/keywords/mut', ['exports', 'ember-metal/debug', 'ember-me
10481
10497
  To specify that a parameter is mutable, when invoking the child `Component`:
10482
10498
 
10483
10499
  ```handlebars
10484
- <my-child child-click-count={{mut totalClicks}} />
10500
+ {{my-child childClickCount=(mut totalClicks)}}
10485
10501
  ```
10486
10502
 
10487
10503
  The child `Component` can then modify the parent's value as needed:
@@ -10490,11 +10506,31 @@ enifed('ember-htmlbars/keywords/mut', ['exports', 'ember-metal/debug', 'ember-me
10490
10506
  // my-child.js
10491
10507
  export default Component.extend({
10492
10508
  click() {
10493
- this.attrs.childClickCount.update(this.attrs.childClickCount.value + 1);
10509
+ this.get('childClickCount').update(this.get('childClickCount').value + 1);
10494
10510
  }
10495
10511
  });
10496
10512
  ```
10497
10513
 
10514
+ Additionally, the `mut` helper can be combined with the `action` helper to
10515
+ mutate a value. For example:
10516
+
10517
+ ```handlebars
10518
+ {{my-child childClickCount=totalClicks click-count-change=(action (mut "totalClicks"))}}
10519
+ ```
10520
+
10521
+ The child `Component` would invoke the action with the new click value:
10522
+
10523
+ ```javascript
10524
+ // my-child.js
10525
+ export default Component.extend({
10526
+ click() {
10527
+ this.get('clickCountChange')(this.get('childClickCount') + 1);
10528
+ }
10529
+ });
10530
+ ```
10531
+
10532
+ The `mut` helper changes the `totalClicks` value to what was provided as the action argument.
10533
+
10498
10534
  See a [2.0 blog post](http://emberjs.com/blog/2015/05/10/run-up-to-two-oh.html#toc_the-code-mut-code-helper) for
10499
10535
  additional information on using `{{mut}}`.
10500
10536
 
@@ -10566,7 +10602,7 @@ enifed('ember-htmlbars/keywords/outlet', ['exports', 'ember-metal/debug', 'ember
10566
10602
 
10567
10603
  'use strict';
10568
10604
 
10569
- _emberHtmlbarsTemplatesTopLevelView.default.meta.revision = 'Ember@2.5.0-beta.4';
10605
+ _emberHtmlbarsTemplatesTopLevelView.default.meta.revision = 'Ember@2.5.0';
10570
10606
 
10571
10607
  /**
10572
10608
  The `{{outlet}}` helper lets you specify where a child route will render in
@@ -14869,10 +14905,6 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/debug', 'ember-metal/pro
14869
14905
 
14870
14906
  var DEEP_EACH_REGEX = /\.@each\.[^.]+\./;
14871
14907
 
14872
- // ..........................................................
14873
- // COMPUTED PROPERTY
14874
- //
14875
-
14876
14908
  /**
14877
14909
  A computed property transforms an object literal with object's accessor function(s) into a property.
14878
14910
 
@@ -14975,7 +15007,6 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/debug', 'ember-metal/pro
14975
15007
 
14976
15008
  @class ComputedProperty
14977
15009
  @namespace Ember
14978
- @constructor
14979
15010
  @public
14980
15011
  */
14981
15012
  function ComputedProperty(config, opts) {
@@ -15134,7 +15165,6 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/debug', 'ember-metal/pro
15134
15165
  @chainable
15135
15166
  @public
15136
15167
  */
15137
-
15138
15168
  ComputedPropertyPrototype.meta = function (meta) {
15139
15169
  if (arguments.length === 0) {
15140
15170
  return this._meta || {};
@@ -15165,33 +15195,6 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/debug', 'ember-metal/pro
15165
15195
  }
15166
15196
  };
15167
15197
 
15168
- /**
15169
- Access the value of the function backing the computed property.
15170
- If this property has already been cached, return the cached result.
15171
- Otherwise, call the function passing the property name as an argument.
15172
-
15173
- ```javascript
15174
- let Person = Ember.Object.extend({
15175
- fullName: Ember.computed('firstName', 'lastName', function(keyName) {
15176
- // the keyName parameter is 'fullName' in this case.
15177
- return this.get('firstName') + ' ' + this.get('lastName');
15178
- })
15179
- });
15180
-
15181
-
15182
- let tom = Person.create({
15183
- firstName: 'Tom',
15184
- lastName: 'Dale'
15185
- });
15186
-
15187
- tom.get('fullName') // 'Tom Dale'
15188
- ```
15189
-
15190
- @method get
15191
- @param {String} keyName The key being accessed.
15192
- @return {Object} The return value of the function backing the CP.
15193
- @public
15194
- */
15195
15198
  ComputedPropertyPrototype.get = function (obj, keyName) {
15196
15199
  if (this._volatile) {
15197
15200
  return this._getter.call(obj, keyName);
@@ -15223,54 +15226,6 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/debug', 'ember-metal/pro
15223
15226
  return ret;
15224
15227
  };
15225
15228
 
15226
- /**
15227
- Set the value of a computed property. If the function that backs your
15228
- computed property does not accept arguments then the default action for
15229
- setting would be to define the property on the current object, and set
15230
- the value of the property to the value being set.
15231
-
15232
- Generally speaking if you intend for your computed property to be set
15233
- you should pass `set(key, value)` function in hash as argument to `Ember.computed()` along with `get(key)` function.
15234
-
15235
- ```javascript
15236
- let Person = Ember.Object.extend({
15237
- // these will be supplied by `create`
15238
- firstName: null,
15239
- lastName: null,
15240
-
15241
- fullName: Ember.computed('firstName', 'lastName', {
15242
- // getter
15243
- get() {
15244
- let firstName = this.get('firstName');
15245
- let lastName = this.get('lastName');
15246
-
15247
- return firstName + ' ' + lastName;
15248
- },
15249
- // setter
15250
- set(key, value) {
15251
- let [firstName, lastName] = value.split(' ');
15252
-
15253
- this.set('firstName', firstName);
15254
- this.set('lastName', lastName);
15255
-
15256
- return value;
15257
- }
15258
- })
15259
- });
15260
-
15261
- let person = Person.create();
15262
-
15263
- person.set('fullName', 'Peter Wagenet');
15264
- person.get('firstName'); // 'Peter'
15265
- person.get('lastName'); // 'Wagenet'
15266
- ```
15267
-
15268
- @method set
15269
- @param {String} keyName The key being accessed.
15270
- @param {Object} newValue The new value being assigned.
15271
- @return {Object} The return value of the function backing the CP.
15272
- @public
15273
- */
15274
15229
  ComputedPropertyPrototype.set = function computedPropertySetEntry(obj, keyName, value) {
15275
15230
  if (this._readOnly) {
15276
15231
  this._throwReadOnlyError(obj, keyName);
@@ -16192,8 +16147,6 @@ enifed('ember-metal/core', ['exports', 'require'], function (exports, _require)
16192
16147
  Ember may overwrite this namespace and therefore, you should avoid adding any
16193
16148
  new properties.
16194
16149
 
16195
- You can also use the shorthand `Em` instead of `Ember`.
16196
-
16197
16150
  At the heart of Ember is Ember-Runtime, a set of core functions that provide
16198
16151
  cross-platform compatibility and object property observing. Ember-Runtime is
16199
16152
  small and performance-focused so you can use it alongside other
@@ -16202,7 +16155,7 @@ enifed('ember-metal/core', ['exports', 'require'], function (exports, _require)
16202
16155
 
16203
16156
  @class Ember
16204
16157
  @static
16205
- @version 2.5.0-beta.4
16158
+ @version 2.5.0
16206
16159
  @public
16207
16160
  */
16208
16161
 
@@ -16244,11 +16197,11 @@ enifed('ember-metal/core', ['exports', 'require'], function (exports, _require)
16244
16197
 
16245
16198
  @property VERSION
16246
16199
  @type String
16247
- @default '2.5.0-beta.4'
16200
+ @default '2.5.0'
16248
16201
  @static
16249
16202
  @public
16250
16203
  */
16251
- Ember.VERSION = '2.5.0-beta.4';
16204
+ Ember.VERSION = '2.5.0';
16252
16205
 
16253
16206
  /**
16254
16207
  The hash of environment variables used to control various configuration
@@ -17071,9 +17024,11 @@ enifed('ember-metal/features', ['exports', 'ember-metal/core', 'ember-metal/assi
17071
17024
  @since 1.1.0
17072
17025
  @public
17073
17026
  */
17074
- var FEATURES = _emberMetalAssign.default({}, _emberMetalCore.default.ENV.FEATURES);exports.FEATURES = FEATURES;
17027
+ var KNOWN_FEATURES = {};exports.KNOWN_FEATURES = KNOWN_FEATURES;
17075
17028
  // jshint ignore:line
17029
+ var FEATURES = _emberMetalAssign.default(KNOWN_FEATURES, _emberMetalCore.default.ENV.FEATURES);
17076
17030
 
17031
+ exports.FEATURES = FEATURES;
17077
17032
  /**
17078
17033
  Determine whether the specified `feature` is enabled. Used by Ember's
17079
17034
  build tools to exclude experimental features from beta/stable builds.
@@ -18554,7 +18509,9 @@ enifed('ember-metal/merge', ['exports', 'ember-metal/debug', 'ember-metal/featur
18554
18509
  */
18555
18510
 
18556
18511
  function merge(original, updates) {
18557
- _emberMetalDebug.deprecate('Usage of `Ember.merge` is deprecated, use `Ember.assign` instead.', false, { id: 'ember-metal.merge', until: '3.0.0' });
18512
+ _emberMetalDebug.deprecate('Usage of `Ember.merge` is deprecated, use `Ember.assign` instead.', false, {
18513
+ id: 'ember-metal.merge', until: '3.0.0', url: 'http://emberjs.com/deprecations/v2.x/#toc_ember-merge'
18514
+ });
18558
18515
 
18559
18516
  if (!updates || typeof updates !== 'object') {
18560
18517
  return original;
@@ -20410,9 +20367,9 @@ enifed('ember-metal/properties', ['exports', 'ember-metal/debug', 'ember-metal/f
20410
20367
  Ember.defineProperty(contact, 'lastName', undefined, 'Jolley');
20411
20368
 
20412
20369
  // define a computed property
20413
- Ember.defineProperty(contact, 'fullName', Ember.computed(function() {
20370
+ Ember.defineProperty(contact, 'fullName', Ember.computed('firstName', 'lastName', function() {
20414
20371
  return this.firstName+' '+this.lastName;
20415
- }).property('firstName', 'lastName'));
20372
+ }));
20416
20373
  ```
20417
20374
 
20418
20375
  @private
@@ -22036,11 +21993,13 @@ enifed('ember-metal/streams/proxy-stream', ['exports', 'ember-runtime/system/obj
22036
21993
 
22037
21994
  exports.default = ProxyStream;
22038
21995
  });
22039
- enifed('ember-metal/streams/stream', ['exports', 'ember-metal/assign', 'ember-metal/debug', 'ember-metal/path_cache', 'ember-metal/observer', 'ember-metal/streams/utils', 'ember-metal/empty_object', 'ember-metal/streams/subscriber', 'ember-metal/streams/dependency', 'ember-metal/utils', 'require'], function (exports, _emberMetalAssign, _emberMetalDebug, _emberMetalPath_cache, _emberMetalObserver, _emberMetalStreamsUtils, _emberMetalEmpty_object, _emberMetalStreamsSubscriber, _emberMetalStreamsDependency, _emberMetalUtils, _require) {
21996
+ enifed('ember-metal/streams/stream', ['exports', 'ember-metal/assign', 'ember-metal/debug', 'ember-metal/path_cache', 'ember-metal/observer', 'ember-metal/streams/utils', 'ember-metal/empty_object', 'ember-metal/streams/subscriber', 'ember-metal/streams/dependency', 'ember-metal/utils', 'require', 'ember-metal/symbol'], function (exports, _emberMetalAssign, _emberMetalDebug, _emberMetalPath_cache, _emberMetalObserver, _emberMetalStreamsUtils, _emberMetalEmpty_object, _emberMetalStreamsSubscriber, _emberMetalStreamsDependency, _emberMetalUtils, _require, _emberMetalSymbol) {
22040
21997
  'use strict';
22041
21998
 
22042
21999
  exports.wrap = wrap;
22000
+ var IS_STREAM = _emberMetalSymbol.default('IS_STREAM');
22043
22001
 
22002
+ exports.IS_STREAM = IS_STREAM;
22044
22003
  /**
22045
22004
  @module ember-metal
22046
22005
  */
@@ -22059,9 +22018,8 @@ enifed('ember-metal/streams/stream', ['exports', 'ember-metal/assign', 'ember-me
22059
22018
  var ProxyMixin;
22060
22019
 
22061
22020
  BasicStream.prototype = {
22062
- isStream: true,
22063
-
22064
22021
  _init: function (label) {
22022
+ this[IS_STREAM] = true;
22065
22023
  this.label = makeLabel(label);
22066
22024
  this.isActive = false;
22067
22025
  this.isDirty = true;
@@ -22461,7 +22419,7 @@ enifed('ember-metal/streams/utils', ['exports', 'ember-metal/debug', 'ember-meta
22461
22419
  */
22462
22420
 
22463
22421
  function isStream(object) {
22464
- return object && object.isStream;
22422
+ return object && object[_emberMetalStreamsStream.IS_STREAM];
22465
22423
  }
22466
22424
 
22467
22425
  /*
@@ -22478,7 +22436,7 @@ enifed('ember-metal/streams/utils', ['exports', 'ember-metal/debug', 'ember-meta
22478
22436
  */
22479
22437
 
22480
22438
  function subscribe(object, callback, context) {
22481
- if (object && object.isStream) {
22439
+ if (object && object[_emberMetalStreamsStream.IS_STREAM]) {
22482
22440
  return object.subscribe(callback, context);
22483
22441
  }
22484
22442
  }
@@ -22496,7 +22454,7 @@ enifed('ember-metal/streams/utils', ['exports', 'ember-metal/debug', 'ember-meta
22496
22454
  */
22497
22455
 
22498
22456
  function unsubscribe(object, callback, context) {
22499
- if (object && object.isStream) {
22457
+ if (object && object[_emberMetalStreamsStream.IS_STREAM]) {
22500
22458
  object.unsubscribe(callback, context);
22501
22459
  }
22502
22460
  }
@@ -22513,7 +22471,7 @@ enifed('ember-metal/streams/utils', ['exports', 'ember-metal/debug', 'ember-meta
22513
22471
  */
22514
22472
 
22515
22473
  function read(object) {
22516
- if (object && object.isStream) {
22474
+ if (object && object[_emberMetalStreamsStream.IS_STREAM]) {
22517
22475
  return object.value();
22518
22476
  } else {
22519
22477
  return object;
@@ -22808,7 +22766,7 @@ enifed('ember-metal/streams/utils', ['exports', 'ember-metal/debug', 'ember-meta
22808
22766
  }
22809
22767
 
22810
22768
  function setValue(object, value) {
22811
- if (object && object.isStream) {
22769
+ if (object && object[_emberMetalStreamsStream.IS_STREAM]) {
22812
22770
  object.setValue(value);
22813
22771
  }
22814
22772
  }
@@ -28423,11 +28381,6 @@ enifed('ember-routing/system/router', ['exports', 'ember-metal/logger', 'ember-m
28423
28381
  currentState: null,
28424
28382
  targetState: null,
28425
28383
 
28426
- _resetTargetState: function () {
28427
- var currentState = this.get('currentState');
28428
- this.set('targetState', currentState);
28429
- },
28430
-
28431
28384
  _handleSlowTransition: function (transition, originRoute) {
28432
28385
  if (!this.router.activeTransition) {
28433
28386
  // Don't fire an event if we've since moved on from
@@ -28801,7 +28754,6 @@ enifed('ember-routing/system/router', ['exports', 'ember-metal/logger', 'ember-m
28801
28754
  if (router._isErrorHandled(errorId)) {
28802
28755
  router._clearHandledError(errorId);
28803
28756
  } else {
28804
- router._resetTargetState();
28805
28757
  throw error;
28806
28758
  }
28807
28759
  });
@@ -30326,7 +30278,7 @@ enifed('ember-routing-views/components/link-to', ['exports', 'ember-metal/logger
30326
30278
 
30327
30279
  'use strict';
30328
30280
 
30329
- _emberHtmlbarsTemplatesLinkTo.default.meta.revision = 'Ember@2.5.0-beta.4';
30281
+ _emberHtmlbarsTemplatesLinkTo.default.meta.revision = 'Ember@2.5.0';
30330
30282
 
30331
30283
  /**
30332
30284
  `Ember.LinkComponent` renders an element whose `click` event triggers a
@@ -30829,7 +30781,7 @@ enifed('ember-routing-views/views/outlet', ['exports', 'ember-views/views/view',
30829
30781
 
30830
30782
  'use strict';
30831
30783
 
30832
- _emberHtmlbarsTemplatesTopLevelView.default.meta.revision = 'Ember@2.5.0-beta.4';
30784
+ _emberHtmlbarsTemplatesTopLevelView.default.meta.revision = 'Ember@2.5.0';
30833
30785
 
30834
30786
  var CoreOutletView = _emberViewsViewsView.default.extend({
30835
30787
  defaultTemplate: _emberHtmlbarsTemplatesTopLevelView.default,
@@ -33297,7 +33249,7 @@ enifed('ember-runtime/mixins/array', ['exports', 'ember-metal/core', 'ember-meta
33297
33249
  on the array. Just get an equivalent property on this object and it will
33298
33250
  return an enumerable that maps automatically to the named key on the
33299
33251
  member objects.
33300
- @each should only be used in a non-terminal context. Example:
33252
+ `@each` should only be used in a non-terminal context. Example:
33301
33253
  ```javascript
33302
33254
  myMethod: computed('posts.@each.author', function(){
33303
33255
  ...
@@ -33766,6 +33718,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/property_get'
33766
33718
  ```
33767
33719
  @property firstObject
33768
33720
  @return {Object} the object or undefined
33721
+ @readOnly
33769
33722
  @public
33770
33723
  */
33771
33724
  firstObject: _emberMetalComputed.computed('[]', function () {
@@ -33794,6 +33747,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/property_get'
33794
33747
  ```
33795
33748
  @property lastObject
33796
33749
  @return {Object} the last object or undefined
33750
+ @readOnly
33797
33751
  @public
33798
33752
  */
33799
33753
  lastObject: _emberMetalComputed.computed('[]', function () {
@@ -38156,14 +38110,14 @@ enifed('ember-runtime/system/native_array', ['exports', 'ember-metal/core', 'emb
38156
38110
  if (_emberMetalCore.default.EXTEND_PROTOTYPES === true || _emberMetalCore.default.EXTEND_PROTOTYPES.Array) {
38157
38111
  NativeArray.apply(Array.prototype);
38158
38112
  exports. // ES6TODO: Setting A onto the object returned by ember-metal/core to avoid circles
38159
- A = A = function () {
38160
- var arr = arguments.length <= 0 || arguments[0] === undefined ? [] : arguments[0];
38161
- return arr;
38113
+ A = A = function (arr) {
38114
+ return arr || [];
38162
38115
  };
38163
38116
  } else {
38164
- exports.A = A = function () {
38165
- var arr = arguments.length <= 0 || arguments[0] === undefined ? [] : arguments[0];
38166
-
38117
+ exports.A = A = function (arr) {
38118
+ if (!arr) {
38119
+ arr = [];
38120
+ }
38167
38121
  return _emberRuntimeMixinsArray.default.detect(arr) ? arr : NativeArray.apply(arr);
38168
38122
  };
38169
38123
  }
@@ -38814,7 +38768,7 @@ enifed('ember-template-compiler/compat', ['exports', 'ember-metal/core', 'ember-
38814
38768
  EmberHandlebars.compile = _emberTemplateCompilerSystemCompile.default;
38815
38769
  EmberHandlebars.template = _emberTemplateCompilerSystemTemplate.default;
38816
38770
  });
38817
- 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/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, _emberTemplateCompilerPluginsAssertNoViewAndControllerPaths, _emberTemplateCompilerPluginsAssertNoViewHelper, _emberTemplateCompilerPluginsAssertNoEachIn, _emberTemplateCompilerCompat) {
38771
+ 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) {
38818
38772
  'use strict';
38819
38773
 
38820
38774
  _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformOldBindingSyntax.default);
@@ -38827,6 +38781,7 @@ enifed('ember-template-compiler/index', ['exports', 'ember-metal', 'ember-templa
38827
38781
  _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformInputOnToOnEvent.default);
38828
38782
  _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformTopLevelComponents.default);
38829
38783
  _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformUnescapedInlineLinkTo.default);
38784
+ _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsDeprecateRenderBlock.default);
38830
38785
  _emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsAssertNoEachIn.default);
38831
38786
 
38832
38787
  if (_emberMetal.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT) {
@@ -39015,6 +38970,45 @@ enifed('ember-template-compiler/plugins/assert-no-view-helper', ['exports', 'emb
39015
38970
 
39016
38971
  exports.default = AssertNoViewHelper;
39017
38972
  });
38973
+ enifed('ember-template-compiler/plugins/deprecate-render-block', ['exports', 'ember-metal/debug', 'ember-template-compiler/system/calculate-location-display'], function (exports, _emberMetalDebug, _emberTemplateCompilerSystemCalculateLocationDisplay) {
38974
+ 'use strict';
38975
+
38976
+ exports.default = DeprecateRenderBlock;
38977
+
38978
+ function DeprecateRenderBlock(options) {
38979
+ this.syntax = null;
38980
+ this.options = options;
38981
+ }
38982
+
38983
+ DeprecateRenderBlock.prototype.transform = function DeprecateRenderBlock_transform(ast) {
38984
+ var moduleName = this.options.moduleName;
38985
+ var walker = new this.syntax.Walker();
38986
+
38987
+ walker.visit(ast, function (node) {
38988
+ if (!validate(node)) {
38989
+ return;
38990
+ }
38991
+
38992
+ _emberMetalDebug.deprecate(deprecationMessage(moduleName, node), false, {
38993
+ id: 'ember-template-compiler.deprecate-render-block',
38994
+ until: '2.4.0',
38995
+ url: 'http://emberjs.com/deprecations/v2.x#toc_render-helper-with-block'
38996
+ });
38997
+ });
38998
+
38999
+ return ast;
39000
+ };
39001
+
39002
+ function validate(node) {
39003
+ return node.type === 'BlockStatement' && node.path.original === 'render';
39004
+ }
39005
+
39006
+ function deprecationMessage(moduleName, node) {
39007
+ var sourceInformation = _emberTemplateCompilerSystemCalculateLocationDisplay.default(moduleName, node.loc);
39008
+
39009
+ return 'Usage of `render` in block form is deprecated ' + sourceInformation + '.';
39010
+ }
39011
+ });
39018
39012
  enifed('ember-template-compiler/plugins/transform-angle-bracket-components', ['exports'], function (exports) {
39019
39013
  'use strict';
39020
39014
 
@@ -39922,7 +39916,7 @@ enifed('ember-template-compiler/system/compile_options', ['exports', 'ember-meta
39922
39916
  options.buildMeta = function buildMeta(program) {
39923
39917
  return {
39924
39918
  fragmentReason: fragmentReason(program),
39925
- revision: 'Ember@2.5.0-beta.4',
39919
+ revision: 'Ember@2.5.0',
39926
39920
  loc: program.loc,
39927
39921
  moduleName: options.moduleName
39928
39922
  };
@@ -41899,6 +41893,106 @@ enifed('ember-views/components/component', ['exports', 'ember-metal/debug', 'emb
41899
41893
  @property positionalParams
41900
41894
  @since 1.13.0
41901
41895
  */
41896
+
41897
+ /**
41898
+ Called when the attributes passed into the component have been updated.
41899
+ Called both during the initial render of a container and during a rerender.
41900
+ Can be used in place of an observer; code placed here will be executed
41901
+ every time any attribute updates.
41902
+ @method didReceiveAttrs
41903
+ @public
41904
+ @since 1.13.0
41905
+ */
41906
+
41907
+ /**
41908
+ Called when the attributes passed into the component have been updated.
41909
+ Called both during the initial render of a container and during a rerender.
41910
+ Can be used in place of an observer; code placed here will be executed
41911
+ every time any attribute updates.
41912
+ @event didReceiveAttrs
41913
+ @public
41914
+ @since 1.13.0
41915
+ */
41916
+
41917
+ /**
41918
+ Called after a component has been rendered, both on initial render and
41919
+ in subsequent rerenders.
41920
+ @method didRender
41921
+ @public
41922
+ @since 1.13.0
41923
+ */
41924
+
41925
+ /**
41926
+ Called after a component has been rendered, both on initial render and
41927
+ in subsequent rerenders.
41928
+ @event didRender
41929
+ @public
41930
+ @since 1.13.0
41931
+ */
41932
+
41933
+ /**
41934
+ Called before a component has been rendered, both on initial render and
41935
+ in subsequent rerenders.
41936
+ @method willRender
41937
+ @public
41938
+ @since 1.13.0
41939
+ */
41940
+
41941
+ /**
41942
+ Called before a component has been rendered, both on initial render and
41943
+ in subsequent rerenders.
41944
+ @event willRender
41945
+ @public
41946
+ @since 1.13.0
41947
+ */
41948
+
41949
+ /**
41950
+ Called when the attributes passed into the component have been changed.
41951
+ Called only during a rerender, not during an initial render.
41952
+ @method didUpdateAttrs
41953
+ @public
41954
+ @since 1.13.0
41955
+ */
41956
+
41957
+ /**
41958
+ Called when the attributes passed into the component have been changed.
41959
+ Called only during a rerender, not during an initial render.
41960
+ @event didUpdateAttrs
41961
+ @public
41962
+ @since 1.13.0
41963
+ */
41964
+
41965
+ /**
41966
+ Called when the component is about to update and rerender itself.
41967
+ Called only during a rerender, not during an initial render.
41968
+ @method willUpdate
41969
+ @public
41970
+ @since 1.13.0
41971
+ */
41972
+
41973
+ /**
41974
+ Called when the component is about to update and rerender itself.
41975
+ Called only during a rerender, not during an initial render.
41976
+ @event willUpdate
41977
+ @public
41978
+ @since 1.13.0
41979
+ */
41980
+
41981
+ /**
41982
+ Called when the component has updated and rerendered itself.
41983
+ Called only during a rerender, not during an initial render.
41984
+ @event didUpdate
41985
+ @public
41986
+ @since 1.13.0
41987
+ */
41988
+
41989
+ /**
41990
+ Called when the component has updated and rerendered itself.
41991
+ Called only during a rerender, not during an initial render.
41992
+ @event didUpdate
41993
+ @public
41994
+ @since 1.13.0
41995
+ */
41902
41996
  });
41903
41997
 
41904
41998
  Component.reopenClass({
@@ -45344,7 +45438,7 @@ enifed('ember-views/views/collection_view', ['exports', 'ember-metal/core', 'emb
45344
45438
  enifed('ember-views/views/container_view', ['exports', 'ember-metal/core', 'ember-metal/debug', 'ember-runtime/mixins/mutable_array', 'ember-runtime/system/native_array', 'ember-views/views/view', 'ember-metal/property_get', 'ember-metal/property_set', 'ember-metal/mixin', 'ember-metal/events', 'ember-htmlbars/templates/container-view'], function (exports, _emberMetalCore, _emberMetalDebug, _emberRuntimeMixinsMutable_array, _emberRuntimeSystemNative_array, _emberViewsViewsView, _emberMetalProperty_get, _emberMetalProperty_set, _emberMetalMixin, _emberMetalEvents, _emberHtmlbarsTemplatesContainerView) {
45345
45439
  'use strict';
45346
45440
 
45347
- _emberHtmlbarsTemplatesContainerView.default.meta.revision = 'Ember@2.5.0-beta.4';
45441
+ _emberHtmlbarsTemplatesContainerView.default.meta.revision = 'Ember@2.5.0';
45348
45442
 
45349
45443
  /**
45350
45444
  @module ember