ember-source 2.12.2 → 2.13.0.beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3d6d45897f60970574ce57ee7d6e5736b189280d
4
- data.tar.gz: f4b7f9bd3571870e2769fec4204c5f912edb6ac8
3
+ metadata.gz: c6e8bdcca54e82efd558a7746c80ecaf25ee143e
4
+ data.tar.gz: 52a17ef3b165c8d06a7ebd8d4e1d86e0a03287c0
5
5
  SHA512:
6
- metadata.gz: 183c60f610cce6d37afca93d4d9982021a89e20b829846b29b3d017844ff3ef5d649b25d3110cfb7ee87dd7a313cd29dd84c56b449d5be07703dabe073ebbded
7
- data.tar.gz: 04b32112ba851a5265ecf386fb1472b39068b4b92c0946a93efe776e6fb6fecfeb585a1ce41792cada37fcdd25704061f40f7e61ff1c1d1ca92d5477bb56d3d3
6
+ metadata.gz: 38d2ea2e2018e5671d033ea777aacd6ffebedb3ecc9a08df7a74f4b5d32c76bcb8df5859e56d9c5e0570004161401526b6702bfb75f0577b3cc763306e56b3de
7
+ data.tar.gz: fd7a7b9367cfd21703063c44e4da29b9f26ec9b14e9a3caa512bedca5a4b23f8da60903b734353ae438cf67ef3abcf61c92daf473e2de086eacbdff8ef9b7972
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.12.2
1
+ 2.13.0.beta.1
@@ -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.12.2
9
+ * @version 2.13.0-beta.1
10
10
  */
11
11
 
12
12
  var enifed, requireModule, Ember;
@@ -173,6 +173,248 @@ var babelHelpers = {
173
173
  defaults: defaults
174
174
  };
175
175
 
176
+ enifed('@glimmer/di', ['exports', '@glimmer/util'], function (exports, _glimmerUtil) {
177
+ 'use strict';
178
+
179
+ var Container = (function () {
180
+ function Container(registry) {
181
+ var resolver = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];
182
+
183
+ this._registry = registry;
184
+ this._resolver = resolver;
185
+ this._lookups = _glimmerUtil.dict();
186
+ this._factoryLookups = _glimmerUtil.dict();
187
+ }
188
+
189
+ Container.prototype.factoryFor = function factoryFor(specifier) {
190
+ var factory = this._factoryLookups[specifier];
191
+ if (!factory) {
192
+ if (this._resolver) {
193
+ factory = this._resolver.retrieve(specifier);
194
+ }
195
+ if (!factory) {
196
+ factory = this._registry.registration(specifier);
197
+ }
198
+ if (factory) {
199
+ this._factoryLookups[specifier] = factory;
200
+ }
201
+ }
202
+ return factory;
203
+ };
204
+
205
+ Container.prototype.lookup = function lookup(specifier) {
206
+ var singleton = this._registry.registeredOption(specifier, 'singleton') !== false;
207
+ if (singleton && this._lookups[specifier]) {
208
+ return this._lookups[specifier];
209
+ }
210
+ var factory = this.factoryFor(specifier);
211
+ if (!factory) {
212
+ return;
213
+ }
214
+ if (this._registry.registeredOption(specifier, 'instantiate') === false) {
215
+ return factory;
216
+ }
217
+ var injections = this.buildInjections(specifier);
218
+ var object = factory.create(injections);
219
+ if (singleton && object) {
220
+ this._lookups[specifier] = object;
221
+ }
222
+ return object;
223
+ };
224
+
225
+ Container.prototype.defaultInjections = function defaultInjections(specifier) {
226
+ return {};
227
+ };
228
+
229
+ Container.prototype.buildInjections = function buildInjections(specifier) {
230
+ var hash = this.defaultInjections(specifier);
231
+ var injections = this._registry.registeredInjections(specifier);
232
+ var injection = undefined;
233
+ for (var i = 0; i < injections.length; i++) {
234
+ injection = injections[i];
235
+ hash[injection.property] = this.lookup(injection.source);
236
+ }
237
+ return hash;
238
+ };
239
+
240
+ return Container;
241
+ })();
242
+
243
+ var Registry = (function () {
244
+ function Registry() {
245
+ this._registrations = _glimmerUtil.dict();
246
+ this._registeredOptions = _glimmerUtil.dict();
247
+ this._registeredInjections = _glimmerUtil.dict();
248
+ }
249
+
250
+ // TODO - use symbol
251
+
252
+ Registry.prototype.register = function register(specifier, factory, options) {
253
+ this._registrations[specifier] = factory;
254
+ if (options) {
255
+ this._registeredOptions[specifier] = options;
256
+ }
257
+ };
258
+
259
+ Registry.prototype.registration = function registration(specifier) {
260
+ return this._registrations[specifier];
261
+ };
262
+
263
+ Registry.prototype.unregister = function unregister(specifier) {
264
+ delete this._registrations[specifier];
265
+ delete this._registeredOptions[specifier];
266
+ delete this._registeredInjections[specifier];
267
+ };
268
+
269
+ Registry.prototype.registerOption = function registerOption(specifier, option, value) {
270
+ var options = this._registeredOptions[specifier];
271
+ if (!options) {
272
+ options = {};
273
+ this._registeredOptions[specifier] = options;
274
+ }
275
+ options[option] = value;
276
+ };
277
+
278
+ Registry.prototype.registeredOption = function registeredOption(specifier, option) {
279
+ var options = this.registeredOptions(specifier);
280
+ if (options) {
281
+ return options[option];
282
+ }
283
+ };
284
+
285
+ Registry.prototype.registeredOptions = function registeredOptions(specifier) {
286
+ var options = this._registeredOptions[specifier];
287
+ if (options === undefined) {
288
+ var _specifier$split = specifier.split(':');
289
+
290
+ var type = _specifier$split[0];
291
+
292
+ options = this._registeredOptions[type];
293
+ }
294
+ return options;
295
+ };
296
+
297
+ Registry.prototype.unregisterOption = function unregisterOption(specifier, option) {
298
+ var options = this._registeredOptions[specifier];
299
+ if (options) {
300
+ delete options[option];
301
+ }
302
+ };
303
+
304
+ Registry.prototype.registerInjection = function registerInjection(specifier, property, source) {
305
+ var injections = this._registeredInjections[specifier];
306
+ if (injections === undefined) {
307
+ this._registeredInjections[specifier] = injections = [];
308
+ }
309
+ injections.push({
310
+ property: property,
311
+ source: source
312
+ });
313
+ };
314
+
315
+ Registry.prototype.registeredInjections = function registeredInjections(specifier) {
316
+ var _specifier$split2 = specifier.split(':');
317
+
318
+ var type = _specifier$split2[0];
319
+
320
+ var injections = [];
321
+ Array.prototype.push.apply(injections, this._registeredInjections[type]);
322
+ Array.prototype.push.apply(injections, this._registeredInjections[specifier]);
323
+ return injections;
324
+ };
325
+
326
+ return Registry;
327
+ })();
328
+
329
+ var OWNER = '__owner__';
330
+ function getOwner(object) {
331
+ return object[OWNER];
332
+ }
333
+ function setOwner(object, owner) {
334
+ object[OWNER] = owner;
335
+ }
336
+
337
+ function isSpecifierStringAbsolute(specifier) {
338
+ var _specifier$split3 = specifier.split(':');
339
+
340
+ var type = _specifier$split3[0];
341
+ var path = _specifier$split3[1];
342
+
343
+ return !!(type && path && path.indexOf('/') === 0 && path.split('/').length > 3);
344
+ }
345
+ function isSpecifierObjectAbsolute(specifier) {
346
+ return specifier.rootName !== undefined && specifier.collection !== undefined && specifier.name !== undefined && specifier.type !== undefined;
347
+ }
348
+ function serializeSpecifier(specifier) {
349
+ var type = specifier.type;
350
+ var path = serializeSpecifierPath(specifier);
351
+ if (path) {
352
+ return type + ':' + path;
353
+ } else {
354
+ return type;
355
+ }
356
+ }
357
+ function serializeSpecifierPath(specifier) {
358
+ var path = [];
359
+ if (specifier.rootName) {
360
+ path.push(specifier.rootName);
361
+ }
362
+ if (specifier.collection) {
363
+ path.push(specifier.collection);
364
+ }
365
+ if (specifier.namespace) {
366
+ path.push(specifier.namespace);
367
+ }
368
+ if (specifier.name) {
369
+ path.push(specifier.name);
370
+ }
371
+ if (path.length > 0) {
372
+ var fullPath = path.join('/');
373
+ if (isSpecifierObjectAbsolute(specifier)) {
374
+ fullPath = '/' + fullPath;
375
+ }
376
+ return fullPath;
377
+ }
378
+ }
379
+ function deserializeSpecifier(specifier) {
380
+ var obj = {};
381
+ if (specifier.indexOf(':') > -1) {
382
+ var _specifier$split4 = specifier.split(':');
383
+
384
+ var type = _specifier$split4[0];
385
+ var path = _specifier$split4[1];
386
+
387
+ obj.type = type;
388
+ var pathSegments = undefined;
389
+ if (path.indexOf('/') === 0) {
390
+ pathSegments = path.substr(1).split('/');
391
+ obj.rootName = pathSegments.shift();
392
+ obj.collection = pathSegments.shift();
393
+ } else {
394
+ pathSegments = path.split('/');
395
+ }
396
+ if (pathSegments.length > 0) {
397
+ obj.name = pathSegments.pop();
398
+ if (pathSegments.length > 0) {
399
+ obj.namespace = pathSegments.join('/');
400
+ }
401
+ }
402
+ } else {
403
+ obj.type = specifier;
404
+ }
405
+ return obj;
406
+ }
407
+
408
+ exports.Container = Container;
409
+ exports.Registry = Registry;
410
+ exports.getOwner = getOwner;
411
+ exports.setOwner = setOwner;
412
+ exports.OWNER = OWNER;
413
+ exports.isSpecifierStringAbsolute = isSpecifierStringAbsolute;
414
+ exports.isSpecifierObjectAbsolute = isSpecifierObjectAbsolute;
415
+ exports.serializeSpecifier = serializeSpecifier;
416
+ exports.deserializeSpecifier = deserializeSpecifier;
417
+ });
176
418
  enifed('backburner', ['exports'], function (exports) { 'use strict';
177
419
 
178
420
  var NUMBER = /\d+/;
@@ -1187,8 +1429,7 @@ exports['default'] = Backburner;
1187
1429
  Object.defineProperty(exports, '__esModule', { value: true });
1188
1430
 
1189
1431
  });
1190
- enifed('container/container', ['exports', 'ember-utils', 'ember-environment', 'ember-metal'], function (exports, _emberUtils, _emberEnvironment, _emberMetal) {
1191
- /* globals Proxy */
1432
+ enifed('container/container', ['exports', 'ember-debug', 'ember-utils', 'ember-environment'], function (exports, _emberDebug, _emberUtils, _emberEnvironment) {
1192
1433
  'use strict';
1193
1434
 
1194
1435
  var _Container$prototype;
@@ -1298,7 +1539,7 @@ enifed('container/container', ['exports', 'ember-utils', 'ember-environment', 'e
1298
1539
  @return {any}
1299
1540
  */
1300
1541
  lookup: function (fullName, options) {
1301
- _emberMetal.assert('fullName must be a proper full name', this.registry.validateFullName(fullName));
1542
+ _emberDebug.assert('fullName must be a proper full name', this.registry.validateFullName(fullName));
1302
1543
  return lookup(this, this.registry.normalize(fullName), options);
1303
1544
  },
1304
1545
 
@@ -1312,21 +1553,21 @@ enifed('container/container', ['exports', 'ember-utils', 'ember-environment', 'e
1312
1553
  @return {any}
1313
1554
  */
1314
1555
  lookupFactory: function (fullName, options) {
1315
- _emberMetal.assert('fullName must be a proper full name', this.registry.validateFullName(fullName));
1556
+ _emberDebug.assert('fullName must be a proper full name', this.registry.validateFullName(fullName));
1316
1557
 
1317
- _emberMetal.deprecate('Using "_lookupFactory" is deprecated. Please use container.factoryFor instead.', !_emberMetal.isFeatureEnabled('ember-factory-for'), { id: 'container-lookupFactory', until: '2.13.0', url: 'http://emberjs.com/deprecations/v2.x/#toc_migrating-from-_lookupfactory-to-factoryfor' });
1558
+ _emberDebug.deprecate('Using "_lookupFactory" is deprecated. Please use container.factoryFor instead.', !_emberDebug.isFeatureEnabled('ember-factory-for'), { id: 'container-lookupFactory', until: '2.13.0', url: 'http://emberjs.com/deprecations/v2.x/#toc_migrating-from-_lookupfactory-to-factoryfor' });
1318
1559
 
1319
1560
  return deprecatedFactoryFor(this, this.registry.normalize(fullName), options);
1320
1561
  }
1321
1562
 
1322
1563
  }, _Container$prototype[LOOKUP_FACTORY] = function (fullName, options) {
1323
- _emberMetal.assert('fullName must be a proper full name', this.registry.validateFullName(fullName));
1564
+ _emberDebug.assert('fullName must be a proper full name', this.registry.validateFullName(fullName));
1324
1565
  return deprecatedFactoryFor(this, this.registry.normalize(fullName), options);
1325
1566
  }, _Container$prototype[FACTORY_FOR] = function (fullName) {
1326
1567
  var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
1327
1568
 
1328
- if (_emberMetal.isFeatureEnabled('ember-no-double-extend')) {
1329
- if (_emberMetal.isFeatureEnabled('ember-factory-for')) {
1569
+ if (_emberDebug.isFeatureEnabled('ember-no-double-extend')) {
1570
+ if (_emberDebug.isFeatureEnabled('ember-factory-for')) {
1330
1571
  return this.factoryFor(fullName, options);
1331
1572
  } else {
1332
1573
  /* This throws in case of a poorly designed build */
@@ -1339,18 +1580,13 @@ enifed('container/container', ['exports', 'ember-utils', 'ember-environment', 'e
1339
1580
  }
1340
1581
  var manager = new DeprecatedFactoryManager(this, factory, fullName);
1341
1582
 
1342
- _emberMetal.runInDebug(function () {
1583
+ _emberDebug.runInDebug(function () {
1343
1584
  manager = wrapManagerInDeprecationProxy(manager);
1344
1585
  });
1345
1586
 
1346
1587
  return manager;
1347
1588
  }, _Container$prototype.destroy = function () {
1348
- eachDestroyable(this, function (item) {
1349
- if (item.destroy) {
1350
- item.destroy();
1351
- }
1352
- });
1353
-
1589
+ destroyDestroyables(this);
1354
1590
  this.isDestroyed = true;
1355
1591
  }, _Container$prototype.reset = function (fullName) {
1356
1592
  if (arguments.length > 0) {
@@ -1406,7 +1642,7 @@ enifed('container/container', ['exports', 'ember-utils', 'ember-environment', 'e
1406
1642
  return manager;
1407
1643
  }
1408
1644
 
1409
- if (_emberMetal.isFeatureEnabled('ember-factory-for')) {
1645
+ if (_emberDebug.isFeatureEnabled('ember-factory-for')) {
1410
1646
  /**
1411
1647
  Given a fullName, return the corresponding factory. The consumer of the factory
1412
1648
  is responsible for the destruction of any factory instances, as there is no
@@ -1424,7 +1660,7 @@ enifed('container/container', ['exports', 'ember-utils', 'ember-environment', 'e
1424
1660
 
1425
1661
  var normalizedName = this.registry.normalize(fullName);
1426
1662
 
1427
- _emberMetal.assert('fullName must be a proper full name', this.registry.validateFullName(normalizedName));
1663
+ _emberDebug.assert('fullName must be a proper full name', this.registry.validateFullName(normalizedName));
1428
1664
 
1429
1665
  if (options.source) {
1430
1666
  normalizedName = this.registry.expandLocalLookup(fullName, options);
@@ -1448,7 +1684,7 @@ enifed('container/container', ['exports', 'ember-utils', 'ember-environment', 'e
1448
1684
 
1449
1685
  var manager = new FactoryManager(this, factory, fullName, normalizedName);
1450
1686
 
1451
- _emberMetal.runInDebug(function () {
1687
+ _emberDebug.runInDebug(function () {
1452
1688
  manager = wrapManagerInDeprecationProxy(manager);
1453
1689
  });
1454
1690
 
@@ -1461,7 +1697,7 @@ enifed('container/container', ['exports', 'ember-utils', 'ember-environment', 'e
1461
1697
  return container.registry.getOption(fullName, 'singleton') !== false;
1462
1698
  }
1463
1699
 
1464
- function shouldInstantiate(container, fullName) {
1700
+ function isInstantiatable(container, fullName) {
1465
1701
  return container.registry.getOption(fullName, 'instantiate') !== false;
1466
1702
  }
1467
1703
 
@@ -1481,7 +1717,7 @@ enifed('container/container', ['exports', 'ember-utils', 'ember-environment', 'e
1481
1717
  return container.cache[fullName];
1482
1718
  }
1483
1719
 
1484
- if (_emberMetal.isFeatureEnabled('ember-factory-for')) {
1720
+ if (_emberDebug.isFeatureEnabled('ember-factory-for')) {
1485
1721
  return instantiateFactory(container, fullName, options);
1486
1722
  } else {
1487
1723
  var factory = deprecatedFactoryFor(container, fullName);
@@ -1503,28 +1739,28 @@ enifed('container/container', ['exports', 'ember-utils', 'ember-environment', 'e
1503
1739
  var instantiate = _ref2.instantiate;
1504
1740
  var singleton = _ref2.singleton;
1505
1741
 
1506
- return singleton !== false && isSingleton(container, fullName) && !instantiate && !shouldInstantiate(container, fullName);
1742
+ return singleton !== false && isSingleton(container, fullName) && !instantiate && !isInstantiatable(container, fullName);
1507
1743
  }
1508
1744
 
1509
1745
  function isSingletonInstance(container, fullName, _ref3) {
1510
1746
  var instantiate = _ref3.instantiate;
1511
1747
  var singleton = _ref3.singleton;
1512
1748
 
1513
- return singleton !== false && isSingleton(container, fullName) && instantiate !== false && shouldInstantiate(container, fullName);
1749
+ return singleton !== false && isSingleton(container, fullName) && instantiate !== false && isInstantiatable(container, fullName);
1514
1750
  }
1515
1751
 
1516
1752
  function isFactoryClass(container, fullname, _ref4) {
1517
1753
  var instantiate = _ref4.instantiate;
1518
1754
  var singleton = _ref4.singleton;
1519
1755
 
1520
- return (singleton === false || !isSingleton(container, fullname)) && instantiate === false && !shouldInstantiate(container, fullname);
1756
+ return (singleton === false || !isSingleton(container, fullname)) && instantiate === false && !isInstantiatable(container, fullname);
1521
1757
  }
1522
1758
 
1523
1759
  function isFactoryInstance(container, fullName, _ref5) {
1524
1760
  var instantiate = _ref5.instantiate;
1525
1761
  var singleton = _ref5.singleton;
1526
1762
 
1527
- return (singleton !== false || isSingleton(container, fullName)) && instantiate !== false && shouldInstantiate(container, fullName);
1763
+ return (singleton !== false || isSingleton(container, fullName)) && instantiate !== false && isInstantiatable(container, fullName);
1528
1764
  }
1529
1765
 
1530
1766
  function instantiateFactory(container, fullName, options) {
@@ -1578,8 +1814,8 @@ enifed('container/container', ['exports', 'ember-utils', 'ember-environment', 'e
1578
1814
  }
1579
1815
  }
1580
1816
 
1581
- _emberMetal.runInDebug(function () {
1582
- return container.registry.validateInjections(injections);
1817
+ _emberDebug.runInDebug(function () {
1818
+ container.registry.validateInjections(injections);
1583
1819
  });
1584
1820
 
1585
1821
  for (var i = 0; i < injections.length; i++) {
@@ -1682,7 +1918,7 @@ enifed('container/container', ['exports', 'ember-utils', 'ember-environment', 'e
1682
1918
 
1683
1919
  validationCache = container.validationCache;
1684
1920
 
1685
- _emberMetal.runInDebug(function () {
1921
+ _emberDebug.runInDebug(function () {
1686
1922
  // Ensure that all lazy injections are valid at instantiation time
1687
1923
  if (!validationCache[fullName] && typeof factory._lazyInjections === 'function') {
1688
1924
  lazyInjections = factory._lazyInjections();
@@ -1733,32 +1969,30 @@ enifed('container/container', ['exports', 'ember-utils', 'ember-environment', 'e
1733
1969
  return factoryInjections;
1734
1970
  }
1735
1971
 
1736
- var INJECTED_DEPRECATED_CONTAINER_DESC = {
1737
- configurable: true,
1738
- enumerable: false,
1739
- get: function () {
1740
- _emberMetal.deprecate('Using the injected `container` is deprecated. Please use the `getOwner` helper instead to access the owner of this object.', false, { id: 'ember-application.injected-container', until: '2.13.0', url: 'http://emberjs.com/deprecations/v2.x#toc_injected-container-access' });
1741
- return this[CONTAINER_OVERRIDE] || _emberUtils.getOwner(this).__container__;
1742
- },
1743
-
1744
- set: function (value) {
1745
- _emberMetal.deprecate('Providing the `container` property to ' + this + ' is deprecated. Please use `Ember.setOwner` or `owner.ownerInjection()` instead to provide an owner to the instance being created.', false, { id: 'ember-application.injected-container', until: '2.13.0', url: 'http://emberjs.com/deprecations/v2.x#toc_injected-container-access' });
1746
-
1747
- this[CONTAINER_OVERRIDE] = value;
1748
-
1749
- return value;
1750
- }
1751
- };
1752
-
1753
1972
  // TODO - remove when Ember reaches v3.0.0
1754
1973
  function injectDeprecatedContainer(object, container) {
1755
1974
  if ('container' in object) {
1756
1975
  return;
1757
1976
  }
1758
- Object.defineProperty(object, 'container', INJECTED_DEPRECATED_CONTAINER_DESC);
1977
+ Object.defineProperty(object, 'container', {
1978
+ configurable: true,
1979
+ enumerable: false,
1980
+ get: function () {
1981
+ _emberDebug.deprecate('Using the injected `container` is deprecated. Please use the `getOwner` helper instead to access the owner of this object.', false, { id: 'ember-application.injected-container', until: '3.0.0', url: 'http://emberjs.com/deprecations/v2.x#toc_injected-container-access' });
1982
+ return this[CONTAINER_OVERRIDE] || container;
1983
+ },
1984
+
1985
+ set: function (value) {
1986
+ _emberDebug.deprecate('Providing the `container` property to ' + this + ' is deprecated. Please use `Ember.setOwner` or `owner.ownerInjection()` instead to provide an owner to the instance being created.', false, { id: 'ember-application.injected-container', until: '3.0.0', url: 'http://emberjs.com/deprecations/v2.x#toc_injected-container-access' });
1987
+
1988
+ this[CONTAINER_OVERRIDE] = value;
1989
+
1990
+ return value;
1991
+ }
1992
+ });
1759
1993
  }
1760
1994
 
1761
- function eachDestroyable(container, callback) {
1995
+ function destroyDestroyables(container) {
1762
1996
  var cache = container.cache;
1763
1997
  var keys = Object.keys(cache);
1764
1998
 
@@ -1766,19 +2000,14 @@ enifed('container/container', ['exports', 'ember-utils', 'ember-environment', 'e
1766
2000
  var key = keys[i];
1767
2001
  var value = cache[key];
1768
2002
 
1769
- if (container.registry.getOption(key, 'instantiate') !== false) {
1770
- callback(value);
2003
+ if (isInstantiatable(container, key) && value.destroy) {
2004
+ value.destroy();
1771
2005
  }
1772
2006
  }
1773
2007
  }
1774
2008
 
1775
2009
  function resetCache(container) {
1776
- eachDestroyable(container, function (value) {
1777
- if (value.destroy) {
1778
- value.destroy();
1779
- }
1780
- });
1781
-
2010
+ destroyDestroyables(container);
1782
2011
  container.cache.dict = _emberUtils.dictionary(null);
1783
2012
  }
1784
2013
 
@@ -1812,9 +2041,9 @@ enifed('container/container', ['exports', 'ember-utils', 'ember-environment', 'e
1812
2041
 
1813
2042
  function buildFakeContainerFunction(container, containerProperty, ownerProperty) {
1814
2043
  return function () {
1815
- _emberMetal.deprecate('Using the injected `container` is deprecated. Please use the `getOwner` helper to access the owner of this object and then call `' + ownerProperty + '` instead.', false, {
2044
+ _emberDebug.deprecate('Using the injected `container` is deprecated. Please use the `getOwner` helper to access the owner of this object and then call `' + ownerProperty + '` instead.', false, {
1816
2045
  id: 'ember-application.injected-container',
1817
- until: '2.13.0',
2046
+ until: '3.0.0',
1818
2047
  url: 'http://emberjs.com/deprecations/v2.x#toc_injected-container-access'
1819
2048
  });
1820
2049
  return container[containerProperty].apply(container, arguments);
@@ -1844,7 +2073,6 @@ enifed('container/container', ['exports', 'ember-utils', 'ember-environment', 'e
1844
2073
  this.fullName = fullName;
1845
2074
  this.normalizedName = normalizedName;
1846
2075
  this.madeToString = undefined;
1847
- this.injections = undefined;
1848
2076
  }
1849
2077
 
1850
2078
  FactoryManager.prototype.create = function create() {
@@ -1852,18 +2080,12 @@ enifed('container/container', ['exports', 'ember-utils', 'ember-environment', 'e
1852
2080
 
1853
2081
  var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
1854
2082
 
1855
- var injections = this.injections;
1856
- if (injections === undefined) {
1857
- injections = injectionsFor(this.container, this.normalizedName);
1858
- if (areInjectionsDynamic(injections) === false) {
1859
- this.injections = injections;
1860
- }
1861
- }
2083
+ var injections = injectionsFor(this.container, this.normalizedName);
1862
2084
  var props = _emberUtils.assign({}, injections, options);
1863
2085
 
1864
2086
  props[_emberUtils.NAME_KEY] = this.madeToString || (this.madeToString = this.container.registry.makeToString(this.class, this.fullName));
1865
2087
 
1866
- _emberMetal.runInDebug(function () {
2088
+ _emberDebug.runInDebug(function () {
1867
2089
  var lazyInjections = undefined;
1868
2090
  var validationCache = _this.container.validationCache;
1869
2091
  // Ensure that all lazy injections are valid at instantiation time
@@ -1893,6 +2115,8 @@ enifed('container/container', ['exports', 'ember-utils', 'ember-environment', 'e
1893
2115
  })();
1894
2116
  });
1895
2117
 
2118
+ /* globals Proxy */
2119
+
1896
2120
  /*
1897
2121
  * This internal version of factoryFor swaps between the public API for
1898
2122
  * factoryFor (class is the registered class) and a transition implementation
@@ -1938,7 +2162,7 @@ enifed('container/index', ['exports', 'container/registry', 'container/container
1938
2162
  exports.FACTORY_FOR = _containerContainer.FACTORY_FOR;
1939
2163
  exports.LOOKUP_FACTORY = _containerContainer.LOOKUP_FACTORY;
1940
2164
  });
1941
- enifed('container/registry', ['exports', 'ember-utils', 'ember-metal', 'container/container'], function (exports, _emberUtils, _emberMetal, _containerContainer) {
2165
+ enifed('container/registry', ['exports', 'ember-utils', 'ember-debug', 'container/container'], function (exports, _emberUtils, _emberDebug, _containerContainer) {
1942
2166
  'use strict';
1943
2167
 
1944
2168
  exports.default = Registry;
@@ -2096,7 +2320,7 @@ enifed('container/registry', ['exports', 'ember-utils', 'ember-metal', 'containe
2096
2320
  register: function (fullName, factory) {
2097
2321
  var options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];
2098
2322
 
2099
- _emberMetal.assert('fullName must be a proper full name', this.validateFullName(fullName));
2323
+ _emberDebug.assert('fullName must be a proper full name', this.validateFullName(fullName));
2100
2324
 
2101
2325
  if (factory === undefined) {
2102
2326
  throw new TypeError('Attempting to register an unknown factory: \'' + fullName + '\'');
@@ -2127,7 +2351,7 @@ enifed('container/registry', ['exports', 'ember-utils', 'ember-metal', 'containe
2127
2351
  @param {String} fullName
2128
2352
  */
2129
2353
  unregister: function (fullName) {
2130
- _emberMetal.assert('fullName must be a proper full name', this.validateFullName(fullName));
2354
+ _emberDebug.assert('fullName must be a proper full name', this.validateFullName(fullName));
2131
2355
 
2132
2356
  var normalizedName = this.normalize(fullName);
2133
2357
 
@@ -2168,7 +2392,7 @@ enifed('container/registry', ['exports', 'ember-utils', 'ember-metal', 'containe
2168
2392
  @return {Function} fullName's factory
2169
2393
  */
2170
2394
  resolve: function (fullName, options) {
2171
- _emberMetal.assert('fullName must be a proper full name', this.validateFullName(fullName));
2395
+ _emberDebug.assert('fullName must be a proper full name', this.validateFullName(fullName));
2172
2396
  var factory = resolve(this, this.normalize(fullName), options);
2173
2397
  if (factory === undefined && this.fallback) {
2174
2398
  var _fallback;
@@ -2365,7 +2589,7 @@ enifed('container/registry', ['exports', 'ember-utils', 'ember-metal', 'containe
2365
2589
  @param {String} fullName
2366
2590
  */
2367
2591
  typeInjection: function (type, property, fullName) {
2368
- _emberMetal.assert('fullName must be a proper full name', this.validateFullName(fullName));
2592
+ _emberDebug.assert('fullName must be a proper full name', this.validateFullName(fullName));
2369
2593
 
2370
2594
  var fullNameType = fullName.split(':')[0];
2371
2595
  if (fullNameType === type) {
@@ -2421,7 +2645,7 @@ enifed('container/registry', ['exports', 'ember-utils', 'ember-metal', 'containe
2421
2645
  return this.typeInjection(fullName, property, normalizedInjectionName);
2422
2646
  }
2423
2647
 
2424
- _emberMetal.assert('fullName must be a proper full name', this.validateFullName(fullName));
2648
+ _emberDebug.assert('fullName must be a proper full name', this.validateFullName(fullName));
2425
2649
  var normalizedName = this.normalize(fullName);
2426
2650
 
2427
2651
  var injections = this._injections[normalizedName] || (this._injections[normalizedName] = []);
@@ -2570,9 +2794,7 @@ enifed('container/registry', ['exports', 'ember-utils', 'ember-metal', 'containe
2570
2794
  for (var i = 0; i < injections.length; i++) {
2571
2795
  fullName = injections[i].fullName;
2572
2796
 
2573
- if (!this.has(fullName)) {
2574
- throw new Error('Attempting to inject an unknown injection: \'' + fullName + '\'');
2575
- }
2797
+ _emberDebug.assert('Attempting to inject an unknown injection: \'' + fullName + '\'', this.has(fullName));
2576
2798
  }
2577
2799
  },
2578
2800
 
@@ -2581,7 +2803,7 @@ enifed('container/registry', ['exports', 'ember-utils', 'ember-metal', 'containe
2581
2803
 
2582
2804
  for (var key in hash) {
2583
2805
  if (hash.hasOwnProperty(key)) {
2584
- _emberMetal.assert('Expected a proper full name, given \'' + hash[key] + '\'', this.validateFullName(hash[key]));
2806
+ _emberDebug.assert('Expected a proper full name, given \'' + hash[key] + '\'', this.validateFullName(hash[key]));
2585
2807
 
2586
2808
  injections.push({
2587
2809
  property: key,
@@ -2627,7 +2849,7 @@ enifed('container/registry', ['exports', 'ember-utils', 'ember-metal', 'containe
2627
2849
  };
2628
2850
 
2629
2851
  function deprecateResolverFunction(registry) {
2630
- _emberMetal.deprecate('Passing a `resolver` function into a Registry is deprecated. Please pass in a Resolver object with a `resolve` method.', false, { id: 'ember-application.registry-resolver-as-function', until: '3.0.0', url: 'http://emberjs.com/deprecations/v2.x#toc_registry-resolver-as-function' });
2852
+ _emberDebug.deprecate('Passing a `resolver` function into a Registry is deprecated. Please pass in a Resolver object with a `resolve` method.', false, { id: 'ember-application.registry-resolver-as-function', until: '3.0.0', url: 'http://emberjs.com/deprecations/v2.x#toc_registry-resolver-as-function' });
2631
2853
  registry.resolver = {
2632
2854
  resolve: registry.resolver
2633
2855
  };
@@ -2653,9 +2875,9 @@ enifed('container/registry', ['exports', 'ember-utils', 'ember-metal', 'containe
2653
2875
  */
2654
2876
  Registry.prototype.expandLocalLookup = function Registry_expandLocalLookup(fullName, options) {
2655
2877
  if (this.resolver && this.resolver.expandLocalLookup) {
2656
- _emberMetal.assert('fullName must be a proper full name', this.validateFullName(fullName));
2657
- _emberMetal.assert('options.source must be provided to expandLocalLookup', options && options.source);
2658
- _emberMetal.assert('options.source must be a proper full name', this.validateFullName(options.source));
2878
+ _emberDebug.assert('fullName must be a proper full name', this.validateFullName(fullName));
2879
+ _emberDebug.assert('options.source must be provided to expandLocalLookup', options && options.source);
2880
+ _emberDebug.assert('options.source must be a proper full name', this.validateFullName(options.source));
2659
2881
 
2660
2882
  var normalizedFullName = this.normalize(fullName);
2661
2883
  var normalizedSource = this.normalize(options.source);
@@ -3061,7 +3283,7 @@ enifed("ember-environment/utils", ["exports"], function (exports) {
3061
3283
  }
3062
3284
  }
3063
3285
  });
3064
- enifed('ember-metal/alias', ['exports', 'ember-utils', 'ember-metal/debug', 'ember-metal/property_get', 'ember-metal/property_set', 'ember-metal/error', 'ember-metal/properties', 'ember-metal/computed', 'ember-metal/meta', 'ember-metal/dependent_keys'], function (exports, _emberUtils, _emberMetalDebug, _emberMetalProperty_get, _emberMetalProperty_set, _emberMetalError, _emberMetalProperties, _emberMetalComputed, _emberMetalMeta, _emberMetalDependent_keys) {
3286
+ enifed('ember-metal/alias', ['exports', 'ember-utils', 'ember-debug', 'ember-metal/property_get', 'ember-metal/property_set', 'ember-metal/properties', 'ember-metal/computed', 'ember-metal/meta', 'ember-metal/dependent_keys'], function (exports, _emberUtils, _emberDebug, _emberMetalProperty_get, _emberMetalProperty_set, _emberMetalProperties, _emberMetalComputed, _emberMetalMeta, _emberMetalDependent_keys) {
3065
3287
  'use strict';
3066
3288
 
3067
3289
  exports.default = alias;
@@ -3083,7 +3305,7 @@ enifed('ember-metal/alias', ['exports', 'ember-utils', 'ember-metal/debug', 'emb
3083
3305
  }
3084
3306
 
3085
3307
  AliasedProperty.prototype.setup = function setup(obj, keyName) {
3086
- _emberMetalDebug.assert('Setting alias \'' + keyName + '\' on self', this.altKey !== keyName);
3308
+ _emberDebug.assert('Setting alias \'' + keyName + '\' on self', this.altKey !== keyName);
3087
3309
  var meta = _emberMetalMeta.meta(obj);
3088
3310
  if (meta.peekWatching(keyName)) {
3089
3311
  _emberMetalDependent_keys.addDependentKeys(this, obj, keyName, meta);
@@ -3136,7 +3358,7 @@ enifed('ember-metal/alias', ['exports', 'ember-utils', 'ember-metal/debug', 'emb
3136
3358
  exports.AliasedProperty = AliasedProperty;
3137
3359
 
3138
3360
  function AliasedProperty_readOnlySet(obj, keyName, value) {
3139
- throw new _emberMetalError.default('Cannot set read-only property \'' + keyName + '\' on object: ' + _emberUtils.inspect(obj));
3361
+ throw new _emberDebug.Error('Cannot set read-only property \'' + keyName + '\' on object: ' + _emberUtils.inspect(obj));
3140
3362
  }
3141
3363
 
3142
3364
  function AliasedProperty_oneWaySet(obj, keyName, value) {
@@ -3148,7 +3370,7 @@ enifed('ember-metal/alias', ['exports', 'ember-utils', 'ember-metal/debug', 'emb
3148
3370
  AliasedProperty.prototype._meta = undefined;
3149
3371
  AliasedProperty.prototype.meta = _emberMetalComputed.ComputedProperty.prototype.meta;
3150
3372
  });
3151
- enifed('ember-metal/binding', ['exports', 'ember-utils', 'ember-console', 'ember-environment', 'ember-metal/run_loop', 'ember-metal/debug', 'ember-metal/property_get', 'ember-metal/property_set', 'ember-metal/events', 'ember-metal/observer', 'ember-metal/path_cache'], function (exports, _emberUtils, _emberConsole, _emberEnvironment, _emberMetalRun_loop, _emberMetalDebug, _emberMetalProperty_get, _emberMetalProperty_set, _emberMetalEvents, _emberMetalObserver, _emberMetalPath_cache) {
3373
+ enifed('ember-metal/binding', ['exports', 'ember-utils', 'ember-console', 'ember-environment', 'ember-metal/run_loop', 'ember-debug', 'ember-metal/property_get', 'ember-metal/property_set', 'ember-metal/events', 'ember-metal/observer', 'ember-metal/path_cache'], function (exports, _emberUtils, _emberConsole, _emberEnvironment, _emberMetalRun_loop, _emberDebug, _emberMetalProperty_get, _emberMetalProperty_set, _emberMetalEvents, _emberMetalObserver, _emberMetalPath_cache) {
3152
3374
  'use strict';
3153
3375
 
3154
3376
  exports.bind = bind;
@@ -3280,7 +3502,7 @@ enifed('ember-metal/binding', ['exports', 'ember-utils', 'ember-console', 'ember
3280
3502
  */
3281
3503
 
3282
3504
  Binding.prototype.connect = function connect(obj) {
3283
- _emberMetalDebug.assert('Must pass a valid object to Ember.Binding.connect()', !!obj);
3505
+ _emberDebug.assert('Must pass a valid object to Ember.Binding.connect()', !!obj);
3284
3506
 
3285
3507
  var fromObj = undefined,
3286
3508
  fromPath = undefined,
@@ -3334,7 +3556,7 @@ enifed('ember-metal/binding', ['exports', 'ember-utils', 'ember-console', 'ember
3334
3556
  */
3335
3557
 
3336
3558
  Binding.prototype.disconnect = function disconnect() {
3337
- _emberMetalDebug.assert('Must pass a valid object to Ember.Binding.disconnect()', !!this._toObj);
3559
+ _emberDebug.assert('Must pass a valid object to Ember.Binding.disconnect()', !!this._toObj);
3338
3560
 
3339
3561
  // Remove an observer on the object so we're no longer notified of
3340
3562
  // changes that should update bindings.
@@ -3440,17 +3662,17 @@ enifed('ember-metal/binding', ['exports', 'ember-utils', 'ember-console', 'ember
3440
3662
  var deprecateAliasMessage = '`Ember.Binding` is deprecated. Consider' + ' using an `alias` computed property instead.';
3441
3663
 
3442
3664
  var objectInfo = 'The `' + toPath + '` property of `' + obj + '` is an `Ember.Binding` connected to `' + fromPath + '`, but ';
3443
- _emberMetalDebug.deprecate(objectInfo + deprecateGlobalMessage, !deprecateGlobal, {
3665
+ _emberDebug.deprecate(objectInfo + deprecateGlobalMessage, !deprecateGlobal, {
3444
3666
  id: 'ember-metal.binding',
3445
3667
  until: '3.0.0',
3446
3668
  url: 'http://emberjs.com/deprecations/v2.x#toc_ember-binding'
3447
3669
  });
3448
- _emberMetalDebug.deprecate(objectInfo + deprecateOneWayMessage, !deprecateOneWay, {
3670
+ _emberDebug.deprecate(objectInfo + deprecateOneWayMessage, !deprecateOneWay, {
3449
3671
  id: 'ember-metal.binding',
3450
3672
  until: '3.0.0',
3451
3673
  url: 'http://emberjs.com/deprecations/v2.x#toc_ember-binding'
3452
3674
  });
3453
- _emberMetalDebug.deprecate(objectInfo + deprecateAliasMessage, !deprecateAlias, {
3675
+ _emberDebug.deprecate(objectInfo + deprecateAliasMessage, !deprecateAlias, {
3454
3676
  id: 'ember-metal.binding',
3455
3677
  until: '3.0.0',
3456
3678
  url: 'http://emberjs.com/deprecations/v2.x#toc_ember-binding'
@@ -4097,7 +4319,7 @@ enifed('ember-metal/chains', ['exports', 'ember-metal/property_get', 'ember-meta
4097
4319
  exports.removeChainWatcher = removeChainWatcher;
4098
4320
  exports.ChainNode = ChainNode;
4099
4321
  });
4100
- enifed('ember-metal/computed', ['exports', 'ember-utils', 'ember-metal/debug', 'ember-metal/property_set', 'ember-metal/meta', 'ember-metal/expand_properties', 'ember-metal/error', 'ember-metal/properties', 'ember-metal/property_events', 'ember-metal/dependent_keys'], function (exports, _emberUtils, _emberMetalDebug, _emberMetalProperty_set, _emberMetalMeta, _emberMetalExpand_properties, _emberMetalError, _emberMetalProperties, _emberMetalProperty_events, _emberMetalDependent_keys) {
4322
+ enifed('ember-metal/computed', ['exports', 'ember-utils', 'ember-debug', 'ember-metal/property_set', 'ember-metal/meta', 'ember-metal/expand_properties', 'ember-metal/properties', 'ember-metal/property_events', 'ember-metal/dependent_keys'], function (exports, _emberUtils, _emberDebug, _emberMetalProperty_set, _emberMetalMeta, _emberMetalExpand_properties, _emberMetalProperties, _emberMetalProperty_events, _emberMetalDependent_keys) {
4101
4323
  'use strict';
4102
4324
 
4103
4325
  exports.default = computed;
@@ -4218,8 +4440,8 @@ enifed('ember-metal/computed', ['exports', 'ember-utils', 'ember-metal/debug', '
4218
4440
  if (typeof config === 'function') {
4219
4441
  this._getter = config;
4220
4442
  } else {
4221
- _emberMetalDebug.assert('Ember.computed expects a function or an object as last argument.', typeof config === 'object' && !Array.isArray(config));
4222
- _emberMetalDebug.assert('Config object passed to an Ember.computed can only contain `get` or `set` keys.', (function () {
4443
+ _emberDebug.assert('Ember.computed expects a function or an object as last argument.', typeof config === 'object' && !Array.isArray(config));
4444
+ _emberDebug.assert('Config object passed to an Ember.computed can only contain `get` or `set` keys.', (function () {
4223
4445
  var keys = Object.keys(config);
4224
4446
  for (var i = 0; i < keys.length; i++) {
4225
4447
  if (keys[i] !== 'get' && keys[i] !== 'set') {
@@ -4231,7 +4453,7 @@ enifed('ember-metal/computed', ['exports', 'ember-utils', 'ember-metal/debug', '
4231
4453
  this._getter = config.get;
4232
4454
  this._setter = config.set;
4233
4455
  }
4234
- _emberMetalDebug.assert('Computed properties must receive a getter or a setter, you passed none.', !!this._getter || !!this._setter);
4456
+ _emberDebug.assert('Computed properties must receive a getter or a setter, you passed none.', !!this._getter || !!this._setter);
4235
4457
  this._dependentKeys = undefined;
4236
4458
  this._suspended = undefined;
4237
4459
  this._meta = undefined;
@@ -4296,7 +4518,7 @@ enifed('ember-metal/computed', ['exports', 'ember-utils', 'ember-metal/debug', '
4296
4518
  */
4297
4519
  ComputedPropertyPrototype.readOnly = function () {
4298
4520
  this._readOnly = true;
4299
- _emberMetalDebug.assert('Computed properties that define a setter using the new syntax cannot be read-only', !(this._readOnly && this._setter && this._setter !== this._getter));
4521
+ _emberDebug.assert('Computed properties that define a setter using the new syntax cannot be read-only', !(this._readOnly && this._setter && this._setter !== this._getter));
4300
4522
  return this;
4301
4523
  };
4302
4524
 
@@ -4332,7 +4554,7 @@ enifed('ember-metal/computed', ['exports', 'ember-utils', 'ember-metal/debug', '
4332
4554
  var args = [];
4333
4555
 
4334
4556
  function addArg(property) {
4335
- _emberMetalDebug.warn('Dependent keys containing @each only work one level deep. ' + ('You used the key "' + property + '" which is invalid. ') + 'Please create an intermediary computed property.', DEEP_EACH_REGEX.test(property) === false, { id: 'ember-metal.computed-deep-each' });
4557
+ _emberDebug.warn('Dependent keys containing @each only work one level deep. ' + ('You used the key "' + property + '" which is invalid. ') + 'Please create an intermediary computed property.', DEEP_EACH_REGEX.test(property) === false, { id: 'ember-metal.computed-deep-each' });
4336
4558
  args.push(property);
4337
4559
  }
4338
4560
 
@@ -4447,7 +4669,7 @@ enifed('ember-metal/computed', ['exports', 'ember-utils', 'ember-metal/debug', '
4447
4669
  };
4448
4670
 
4449
4671
  ComputedPropertyPrototype._throwReadOnlyError = function computedPropertyThrowReadOnlyError(obj, keyName) {
4450
- throw new _emberMetalError.default('Cannot set read-only property "' + keyName + '" on object: ' + _emberUtils.inspect(obj));
4672
+ throw new _emberDebug.Error('Cannot set read-only property "' + keyName + '" on object: ' + _emberUtils.inspect(obj));
4451
4673
  };
4452
4674
 
4453
4675
  ComputedPropertyPrototype.clobberSet = function computedPropertyClobberSet(obj, keyName, value) {
@@ -4715,88 +4937,8 @@ enifed('ember-metal/core', ['exports', 'ember-environment'], function (exports,
4715
4937
 
4716
4938
  exports.default = Ember;
4717
4939
  });
4718
- enifed("ember-metal/debug", ["exports"], function (exports) {
4719
- "use strict";
4720
-
4721
- exports.getDebugFunction = getDebugFunction;
4722
- exports.setDebugFunction = setDebugFunction;
4723
- exports.assert = assert;
4724
- exports.info = info;
4725
- exports.warn = warn;
4726
- exports.debug = debug;
4727
- exports.deprecate = deprecate;
4728
- exports.deprecateFunc = deprecateFunc;
4729
- exports.runInDebug = runInDebug;
4730
- exports.debugSeal = debugSeal;
4731
- exports.debugFreeze = debugFreeze;
4732
- var debugFunctions = {
4733
- assert: function () {},
4734
- info: function () {},
4735
- warn: function () {},
4736
- debug: function () {},
4737
- deprecate: function () {},
4738
- deprecateFunc: function () {
4739
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
4740
- args[_key] = arguments[_key];
4741
- }
4742
-
4743
- return args[args.length - 1];
4744
- },
4745
- runInDebug: function () {},
4746
- debugSeal: function () {},
4747
- debugFreeze: function () {}
4748
- };
4749
-
4750
- exports.debugFunctions = debugFunctions;
4751
-
4752
- function getDebugFunction(name) {
4753
- return debugFunctions[name];
4754
- }
4755
-
4756
- function setDebugFunction(name, fn) {
4757
- debugFunctions[name] = fn;
4758
- }
4759
-
4760
- function assert() {
4761
- return debugFunctions.assert.apply(undefined, arguments);
4762
- }
4763
-
4764
- function info() {
4765
- return debugFunctions.info.apply(undefined, arguments);
4766
- }
4767
-
4768
- function warn() {
4769
- return debugFunctions.warn.apply(undefined, arguments);
4770
- }
4771
-
4772
- function debug() {
4773
- return debugFunctions.debug.apply(undefined, arguments);
4774
- }
4775
-
4776
- function deprecate() {
4777
- return debugFunctions.deprecate.apply(undefined, arguments);
4778
- }
4779
-
4780
- function deprecateFunc() {
4781
- return debugFunctions.deprecateFunc.apply(undefined, arguments);
4782
- }
4783
-
4784
- function runInDebug() {
4785
- return debugFunctions.runInDebug.apply(undefined, arguments);
4786
- }
4787
-
4788
- function debugSeal() {
4789
- return debugFunctions.debugSeal.apply(undefined, arguments);
4790
- }
4791
-
4792
- function debugFreeze() {
4793
- return debugFunctions.debugFreeze.apply(undefined, arguments);
4794
- }
4795
- });
4796
4940
  enifed('ember-metal/dependent_keys', ['exports', 'ember-metal/watching'], function (exports, _emberMetalWatching) {
4797
- 'no use strict';
4798
- // Remove "use strict"; from transpiled module until
4799
- // https://bugs.webkit.org/show_bug.cgi?id=138038 is fixed
4941
+ 'use strict';
4800
4942
 
4801
4943
  exports.addDependentKeys = addDependentKeys;
4802
4944
  exports.removeDependentKeys = removeDependentKeys;
@@ -4846,7 +4988,7 @@ enifed('ember-metal/dependent_keys', ['exports', 'ember-metal/watching'], functi
4846
4988
  }
4847
4989
  }
4848
4990
  });
4849
- enifed('ember-metal/deprecate_property', ['exports', 'ember-metal/debug', 'ember-metal/property_get', 'ember-metal/property_set'], function (exports, _emberMetalDebug, _emberMetalProperty_get, _emberMetalProperty_set) {
4991
+ enifed('ember-metal/deprecate_property', ['exports', 'ember-debug', 'ember-metal/property_get', 'ember-metal/property_set'], function (exports, _emberDebug, _emberMetalProperty_get, _emberMetalProperty_set) {
4850
4992
  /**
4851
4993
  @module ember
4852
4994
  @submodule ember-metal
@@ -4870,7 +5012,7 @@ enifed('ember-metal/deprecate_property', ['exports', 'ember-metal/debug', 'ember
4870
5012
 
4871
5013
  function deprecateProperty(object, deprecatedKey, newKey, options) {
4872
5014
  function _deprecate() {
4873
- _emberMetalDebug.deprecate('Usage of `' + deprecatedKey + '` is deprecated, use `' + newKey + '` instead.', false, options);
5015
+ _emberDebug.deprecate('Usage of `' + deprecatedKey + '` is deprecated, use `' + newKey + '` instead.', false, options);
4874
5016
  }
4875
5017
 
4876
5018
  Object.defineProperty(object, deprecatedKey, {
@@ -4922,52 +5064,7 @@ enifed('ember-metal/descriptor', ['exports', 'ember-metal/properties'], function
4922
5064
  return Descriptor;
4923
5065
  })(_emberMetalProperties.Descriptor);
4924
5066
  });
4925
- enifed("ember-metal/error", ["exports"], function (exports) {
4926
-
4927
- /**
4928
- A subclass of the JavaScript Error object for use in Ember.
4929
-
4930
- @class Error
4931
- @namespace Ember
4932
- @extends Error
4933
- @constructor
4934
- @public
4935
- */
4936
- "use strict";
4937
-
4938
- var EmberError = (function (_Error) {
4939
- babelHelpers.inherits(EmberError, _Error);
4940
-
4941
- function EmberError(message) {
4942
- _Error.call(this);
4943
-
4944
- if (!(this instanceof EmberError)) {
4945
- return new EmberError(message);
4946
- }
4947
-
4948
- var error = Error.call(this, message);
4949
-
4950
- if (Error.captureStackTrace) {
4951
- Error.captureStackTrace(this, EmberError);
4952
- } else {
4953
- this.stack = error.stack;
4954
- }
4955
-
4956
- this.description = error.description;
4957
- this.fileName = error.fileName;
4958
- this.lineNumber = error.lineNumber;
4959
- this.message = error.message;
4960
- this.name = error.name;
4961
- this.number = error.number;
4962
- this.code = error.code;
4963
- }
4964
-
4965
- return EmberError;
4966
- })(Error);
4967
-
4968
- exports.default = EmberError;
4969
- });
4970
- enifed('ember-metal/error_handler', ['exports', 'ember-console', 'ember-metal/testing'], function (exports, _emberConsole, _emberMetalTesting) {
5067
+ enifed('ember-metal/error_handler', ['exports', 'ember-console', 'ember-debug'], function (exports, _emberConsole, _emberDebug) {
4971
5068
  'use strict';
4972
5069
 
4973
5070
  exports.getOnerror = getOnerror;
@@ -4981,7 +5078,7 @@ enifed('ember-metal/error_handler', ['exports', 'ember-console', 'ember-metal/te
4981
5078
  var stack = error.stack;
4982
5079
  var message = error.message;
4983
5080
 
4984
- if (stack && stack.indexOf(message) === -1) {
5081
+ if (stack && !stack.includes(message)) {
4985
5082
  stack = message + '\n' + stack;
4986
5083
  }
4987
5084
 
@@ -5023,7 +5120,7 @@ enifed('ember-metal/error_handler', ['exports', 'ember-console', 'ember-metal/te
5023
5120
  }
5024
5121
 
5025
5122
  function defaultDispatch(error) {
5026
- if (_emberMetalTesting.isTesting()) {
5123
+ if (_emberDebug.isTesting()) {
5027
5124
  throw error;
5028
5125
  }
5029
5126
  if (onerror) {
@@ -5033,15 +5130,13 @@ enifed('ember-metal/error_handler', ['exports', 'ember-console', 'ember-metal/te
5033
5130
  }
5034
5131
  }
5035
5132
  });
5036
- enifed('ember-metal/events', ['exports', 'ember-utils', 'ember-metal/debug', 'ember-metal/meta', 'ember-metal/meta_listeners'], function (exports, _emberUtils, _emberMetalDebug, _emberMetalMeta, _emberMetalMeta_listeners) {
5037
- 'no use strict';
5038
- // Remove "use strict"; from transpiled module until
5039
- // https://bugs.webkit.org/show_bug.cgi?id=138038 is fixed
5040
-
5133
+ enifed('ember-metal/events', ['exports', 'ember-utils', 'ember-metal/meta', 'ember-debug', 'ember-metal/meta_listeners'], function (exports, _emberUtils, _emberMetalMeta, _emberDebug, _emberMetalMeta_listeners) {
5041
5134
  /**
5042
5135
  @module ember
5043
5136
  @submodule ember-metal
5044
5137
  */
5138
+ 'use strict';
5139
+
5045
5140
  exports.accumulateListeners = accumulateListeners;
5046
5141
  exports.addListener = addListener;
5047
5142
  exports.removeListener = removeListener;
@@ -5122,9 +5217,9 @@ enifed('ember-metal/events', ['exports', 'ember-utils', 'ember-metal/debug', 'em
5122
5217
  */
5123
5218
 
5124
5219
  function addListener(obj, eventName, target, method, once) {
5125
- _emberMetalDebug.assert('You must pass at least an object and event name to Ember.addListener', !!obj && !!eventName);
5220
+ _emberDebug.assert('You must pass at least an object and event name to Ember.addListener', !!obj && !!eventName);
5126
5221
 
5127
- _emberMetalDebug.deprecate('didInitAttrs called in ' + (obj && obj.toString && obj.toString()) + '.', eventName !== 'didInitAttrs', {
5222
+ _emberDebug.deprecate('didInitAttrs called in ' + (obj && obj.toString && obj.toString()) + '.', eventName !== 'didInitAttrs', {
5128
5223
  id: 'ember-views.did-init-attrs',
5129
5224
  until: '3.0.0',
5130
5225
  url: 'http://emberjs.com/deprecations/v2.x#toc_ember-component-didinitattrs'
@@ -5162,7 +5257,7 @@ enifed('ember-metal/events', ['exports', 'ember-utils', 'ember-metal/debug', 'em
5162
5257
  */
5163
5258
 
5164
5259
  function removeListener(obj, eventName, target, method) {
5165
- _emberMetalDebug.assert('You must pass at least an object and event name to Ember.removeListener', !!obj && !!eventName);
5260
+ _emberDebug.assert('You must pass at least an object and event name to Ember.removeListener', !!obj && !!eventName);
5166
5261
 
5167
5262
  if (!method && 'function' === typeof target) {
5168
5263
  method = target;
@@ -5373,7 +5468,7 @@ enifed('ember-metal/events', ['exports', 'ember-utils', 'ember-metal/debug', 'em
5373
5468
  return func;
5374
5469
  }
5375
5470
  });
5376
- enifed('ember-metal/expand_properties', ['exports', 'ember-metal/debug'], function (exports, _emberMetalDebug) {
5471
+ enifed('ember-metal/expand_properties', ['exports', 'ember-debug'], function (exports, _emberDebug) {
5377
5472
  'use strict';
5378
5473
 
5379
5474
  exports.default = expandProperties;
@@ -5383,7 +5478,6 @@ enifed('ember-metal/expand_properties', ['exports', 'ember-metal/debug'], functi
5383
5478
  @submodule ember-metal
5384
5479
  */
5385
5480
 
5386
- var SPLIT_REGEX = /\{|\}/;
5387
5481
  var END_WITH_EACH_REGEX = /\.@each$/;
5388
5482
 
5389
5483
  /**
@@ -5415,108 +5509,58 @@ enifed('ember-metal/expand_properties', ['exports', 'ember-metal/debug'], functi
5415
5509
  */
5416
5510
 
5417
5511
  function expandProperties(pattern, callback) {
5418
- _emberMetalDebug.assert('A computed property key must be a string, you passed ' + typeof pattern + ' ' + pattern, typeof pattern === 'string');
5419
- _emberMetalDebug.assert('Brace expanded properties cannot contain spaces, e.g. "user.{firstName, lastName}" should be "user.{firstName,lastName}"', pattern.indexOf(' ') === -1);
5420
- _emberMetalDebug.assert('Brace expanded properties have to be balanced and cannot be nested, pattern: ' + pattern, (function (str) {
5421
- var inBrace = 0;
5422
- var char = undefined;
5423
- for (var i = 0; i < str.length; i++) {
5424
- char = str.charAt(i);
5425
-
5426
- if (char === '{') {
5427
- inBrace++;
5428
- } else if (char === '}') {
5429
- inBrace--;
5430
- }
5431
-
5432
- if (inBrace > 1 || inBrace < 0) {
5433
- return false;
5434
- }
5435
- }
5436
-
5437
- return true;
5438
- })(pattern));
5439
-
5440
- var parts = pattern.split(SPLIT_REGEX);
5441
- var properties = [parts];
5442
-
5443
- for (var i = 0; i < parts.length; i++) {
5444
- var part = parts[i];
5445
- if (part.indexOf(',') >= 0) {
5446
- properties = duplicateAndReplace(properties, part.split(','), i);
5512
+ _emberDebug.assert('A computed property key must be a string', typeof pattern === 'string');
5513
+ _emberDebug.assert('Brace expanded properties cannot contain spaces, e.g. "user.{firstName, lastName}" should be "user.{firstName,lastName}"', pattern.indexOf(' ') === -1);
5514
+
5515
+ var unbalancedNestedError = 'Brace expanded properties have to be balanced and cannot be nested, pattern: ' + pattern;
5516
+ var properties = [pattern];
5517
+
5518
+ // Iterating backward over the pattern makes dealing with indices easier.
5519
+ var bookmark = undefined;
5520
+ var inside = false;
5521
+ for (var i = pattern.length; i > 0; --i) {
5522
+ var current = pattern[i - 1];
5523
+
5524
+ switch (current) {
5525
+ // Closing curly brace will be the first character of the brace expansion we encounter.
5526
+ // Bookmark its index so long as we're not already inside a brace expansion.
5527
+ case '}':
5528
+ if (!inside) {
5529
+ bookmark = i - 1;
5530
+ inside = true;
5531
+ } else {
5532
+ _emberDebug.assert(unbalancedNestedError, false);
5533
+ }
5534
+ break;
5535
+ // Opening curly brace will be the last character of the brace expansion we encounter.
5536
+ // Apply the brace expansion so long as we've already seen a closing curly brace.
5537
+ case '{':
5538
+ if (inside) {
5539
+ var expansion = pattern.slice(i, bookmark).split(',');
5540
+ // Iterating backward allows us to push new properties w/out affecting our "cursor".
5541
+ for (var j = properties.length; j > 0; --j) {
5542
+ // Extract the unexpanded property from the array.
5543
+ var property = properties.splice(j - 1, 1)[0];
5544
+ // Iterate over the expansion, pushing the newly formed properties onto the array.
5545
+ for (var k = 0; k < expansion.length; ++k) {
5546
+ properties.push(property.slice(0, i - 1) + expansion[k] + property.slice(bookmark + 1));
5547
+ }
5548
+ }
5549
+ inside = false;
5550
+ } else {
5551
+ _emberDebug.assert(unbalancedNestedError, false);
5552
+ }
5553
+ break;
5447
5554
  }
5448
5555
  }
5449
-
5450
- for (var i = 0; i < properties.length; i++) {
5451
- callback(properties[i].join('').replace(END_WITH_EACH_REGEX, '.[]'));
5556
+ if (inside) {
5557
+ _emberDebug.assert(unbalancedNestedError, false);
5452
5558
  }
5453
- }
5454
-
5455
- function duplicateAndReplace(properties, currentParts, index) {
5456
- var all = [];
5457
-
5458
- properties.forEach(function (property) {
5459
- currentParts.forEach(function (part) {
5460
- var current = property.slice(0);
5461
- current[index] = part;
5462
- all.push(current);
5463
- });
5464
- });
5465
-
5466
- return all;
5467
- }
5468
- });
5469
- enifed('ember-metal/features', ['exports', 'ember-utils', 'ember-environment', 'ember/features'], function (exports, _emberUtils, _emberEnvironment, _emberFeatures) {
5470
- 'use strict';
5471
-
5472
- exports.default = isEnabled;
5473
5559
 
5474
- /**
5475
- The hash of enabled Canary features. Add to this, any canary features
5476
- before creating your application.
5477
-
5478
- Alternatively (and recommended), you can also define `EmberENV.FEATURES`
5479
- if you need to enable features flagged at runtime.
5480
-
5481
- @class FEATURES
5482
- @namespace Ember
5483
- @static
5484
- @since 1.1.0
5485
- @public
5486
- */
5487
- var FEATURES = _emberUtils.assign(_emberFeatures.default, _emberEnvironment.ENV.FEATURES);
5488
-
5489
- exports.FEATURES = FEATURES;
5490
- /**
5491
- Determine whether the specified `feature` is enabled. Used by Ember's
5492
- build tools to exclude experimental features from beta/stable builds.
5493
-
5494
- You can define the following configuration options:
5495
-
5496
- * `EmberENV.ENABLE_OPTIONAL_FEATURES` - enable any features that have not been explicitly
5497
- enabled/disabled.
5498
-
5499
- @method isEnabled
5500
- @param {String} feature The feature to check
5501
- @return {Boolean}
5502
- @for Ember.FEATURES
5503
- @since 1.1.0
5504
- @public
5505
- */
5506
-
5507
- function isEnabled(feature) {
5508
- var featureValue = FEATURES[feature];
5509
-
5510
- if (featureValue === true || featureValue === false || featureValue === undefined) {
5511
- return featureValue;
5512
- } else if (_emberEnvironment.ENV.ENABLE_OPTIONAL_FEATURES) {
5513
- return true;
5514
- } else {
5515
- return false;
5560
+ for (var i = 0; i < properties.length; i++) {
5561
+ callback(properties[i].replace(END_WITH_EACH_REGEX, '.[]'));
5516
5562
  }
5517
5563
  }
5518
-
5519
- exports.DEFAULT_FEATURES = _emberFeatures.default;
5520
5564
  });
5521
5565
  enifed('ember-metal/get_properties', ['exports', 'ember-metal/property_get'], function (exports, _emberMetalProperty_get) {
5522
5566
  'use strict';
@@ -5562,7 +5606,7 @@ enifed('ember-metal/get_properties', ['exports', 'ember-metal/property_get'], fu
5562
5606
  return ret;
5563
5607
  }
5564
5608
  });
5565
- enifed('ember-metal/index', ['exports', 'require', 'ember-metal/core', 'ember-metal/computed', 'ember-metal/alias', 'ember-metal/merge', 'ember-metal/debug', 'ember-metal/instrumentation', 'ember-metal/testing', 'ember-metal/error_handler', 'ember-metal/meta', 'ember-metal/error', 'ember-metal/cache', 'ember-metal/features', 'ember-metal/property_get', 'ember-metal/property_set', 'ember-metal/weak_map', 'ember-metal/events', 'ember-metal/is_none', 'ember-metal/is_empty', 'ember-metal/is_blank', 'ember-metal/is_present', 'ember-metal/run_loop', 'ember-metal/observer_set', 'ember-metal/property_events', 'ember-metal/properties', 'ember-metal/watch_key', 'ember-metal/chains', 'ember-metal/watch_path', 'ember-metal/watching', 'ember-metal/libraries', 'ember-metal/map', 'ember-metal/get_properties', 'ember-metal/set_properties', 'ember-metal/expand_properties', 'ember-metal/observer', 'ember-metal/mixin', 'ember-metal/binding', 'ember-metal/path_cache', 'ember-metal/injected_property', 'ember-metal/tags', 'ember-metal/replace', 'ember-metal/transaction', 'ember-metal/is_proxy', 'ember-metal/descriptor'], function (exports, _require, _emberMetalCore, _emberMetalComputed, _emberMetalAlias, _emberMetalMerge, _emberMetalDebug, _emberMetalInstrumentation, _emberMetalTesting, _emberMetalError_handler, _emberMetalMeta, _emberMetalError, _emberMetalCache, _emberMetalFeatures, _emberMetalProperty_get, _emberMetalProperty_set, _emberMetalWeak_map, _emberMetalEvents, _emberMetalIs_none, _emberMetalIs_empty, _emberMetalIs_blank, _emberMetalIs_present, _emberMetalRun_loop, _emberMetalObserver_set, _emberMetalProperty_events, _emberMetalProperties, _emberMetalWatch_key, _emberMetalChains, _emberMetalWatch_path, _emberMetalWatching, _emberMetalLibraries, _emberMetalMap, _emberMetalGet_properties, _emberMetalSet_properties, _emberMetalExpand_properties, _emberMetalObserver, _emberMetalMixin, _emberMetalBinding, _emberMetalPath_cache, _emberMetalInjected_property, _emberMetalTags, _emberMetalReplace, _emberMetalTransaction, _emberMetalIs_proxy, _emberMetalDescriptor) {
5609
+ enifed('ember-metal/index', ['exports', 'ember-metal/core', 'ember-metal/computed', 'ember-metal/alias', 'ember-metal/merge', 'ember-metal/deprecate_property', 'ember-metal/instrumentation', 'ember-metal/error_handler', 'ember-metal/meta', 'ember-metal/cache', 'ember-metal/property_get', 'ember-metal/property_set', 'ember-metal/weak_map', 'ember-metal/events', 'ember-metal/is_none', 'ember-metal/is_empty', 'ember-metal/is_blank', 'ember-metal/is_present', 'ember-metal/run_loop', 'ember-metal/observer_set', 'ember-metal/property_events', 'ember-metal/properties', 'ember-metal/watch_key', 'ember-metal/chains', 'ember-metal/watch_path', 'ember-metal/watching', 'ember-metal/libraries', 'ember-metal/map', 'ember-metal/get_properties', 'ember-metal/set_properties', 'ember-metal/expand_properties', 'ember-metal/observer', 'ember-metal/mixin', 'ember-metal/binding', 'ember-metal/path_cache', 'ember-metal/injected_property', 'ember-metal/tags', 'ember-metal/replace', 'ember-metal/transaction', 'ember-metal/is_proxy', 'ember-metal/descriptor'], function (exports, _emberMetalCore, _emberMetalComputed, _emberMetalAlias, _emberMetalMerge, _emberMetalDeprecate_property, _emberMetalInstrumentation, _emberMetalError_handler, _emberMetalMeta, _emberMetalCache, _emberMetalProperty_get, _emberMetalProperty_set, _emberMetalWeak_map, _emberMetalEvents, _emberMetalIs_none, _emberMetalIs_empty, _emberMetalIs_blank, _emberMetalIs_present, _emberMetalRun_loop, _emberMetalObserver_set, _emberMetalProperty_events, _emberMetalProperties, _emberMetalWatch_key, _emberMetalChains, _emberMetalWatch_path, _emberMetalWatching, _emberMetalLibraries, _emberMetalMap, _emberMetalGet_properties, _emberMetalSet_properties, _emberMetalExpand_properties, _emberMetalObserver, _emberMetalMixin, _emberMetalBinding, _emberMetalPath_cache, _emberMetalInjected_property, _emberMetalTags, _emberMetalReplace, _emberMetalTransaction, _emberMetalIs_proxy, _emberMetalDescriptor) {
5566
5610
  /**
5567
5611
  @module ember
5568
5612
  @submodule ember-metal
@@ -5577,25 +5621,13 @@ enifed('ember-metal/index', ['exports', 'require', 'ember-metal/core', 'ember-me
5577
5621
  exports.ComputedProperty = _emberMetalComputed.ComputedProperty;
5578
5622
  exports.alias = _emberMetalAlias.default;
5579
5623
  exports.merge = _emberMetalMerge.default;
5580
- exports.assert = _emberMetalDebug.assert;
5581
- exports.info = _emberMetalDebug.info;
5582
- exports.warn = _emberMetalDebug.warn;
5583
- exports.debug = _emberMetalDebug.debug;
5584
- exports.deprecate = _emberMetalDebug.deprecate;
5585
- exports.deprecateFunc = _emberMetalDebug.deprecateFunc;
5586
- exports.runInDebug = _emberMetalDebug.runInDebug;
5587
- exports.setDebugFunction = _emberMetalDebug.setDebugFunction;
5588
- exports.getDebugFunction = _emberMetalDebug.getDebugFunction;
5589
- exports.debugSeal = _emberMetalDebug.debugSeal;
5590
- exports.debugFreeze = _emberMetalDebug.debugFreeze;
5624
+ exports.deprecateProperty = _emberMetalDeprecate_property.deprecateProperty;
5591
5625
  exports.instrument = _emberMetalInstrumentation.instrument;
5592
5626
  exports.flaggedInstrument = _emberMetalInstrumentation.flaggedInstrument;
5593
5627
  exports._instrumentStart = _emberMetalInstrumentation._instrumentStart;
5594
5628
  exports.instrumentationReset = _emberMetalInstrumentation.reset;
5595
5629
  exports.instrumentationSubscribe = _emberMetalInstrumentation.subscribe;
5596
5630
  exports.instrumentationUnsubscribe = _emberMetalInstrumentation.unsubscribe;
5597
- exports.isTesting = _emberMetalTesting.isTesting;
5598
- exports.setTesting = _emberMetalTesting.setTesting;
5599
5631
  exports.getOnerror = _emberMetalError_handler.getOnerror;
5600
5632
  exports.setOnerror = _emberMetalError_handler.setOnerror;
5601
5633
  exports.dispatchError = _emberMetalError_handler.dispatchError;
@@ -5603,11 +5635,7 @@ enifed('ember-metal/index', ['exports', 'require', 'ember-metal/core', 'ember-me
5603
5635
  exports.META_DESC = _emberMetalMeta.META_DESC;
5604
5636
  exports.meta = _emberMetalMeta.meta;
5605
5637
  exports.peekMeta = _emberMetalMeta.peekMeta;
5606
- exports.Error = _emberMetalError.default;
5607
5638
  exports.Cache = _emberMetalCache.default;
5608
- exports.isFeatureEnabled = _emberMetalFeatures.default;
5609
- exports.FEATURES = _emberMetalFeatures.FEATURES;
5610
- exports.DEFAULT_FEATURES = _emberMetalFeatures.DEFAULT_FEATURES;
5611
5639
  exports._getPath = _emberMetalProperty_get._getPath;
5612
5640
  exports.get = _emberMetalProperty_get.get;
5613
5641
  exports.getWithDefault = _emberMetalProperty_get.getWithDefault;
@@ -5690,17 +5718,8 @@ enifed('ember-metal/index', ['exports', 'require', 'ember-metal/core', 'ember-me
5690
5718
  exports.assertNotRendered = _emberMetalTransaction.assertNotRendered;
5691
5719
  exports.isProxy = _emberMetalIs_proxy.isProxy;
5692
5720
  exports.descriptor = _emberMetalDescriptor.default;
5693
-
5694
- // TODO: this needs to be deleted once we refactor the build tooling
5695
- // do this for side-effects of updating Ember.assert, warn, etc when
5696
- // ember-debug is present
5697
- // This needs to be called before any deprecateFunc
5698
-
5699
- if (_require.has('ember-debug')) {
5700
- _require.default('ember-debug');
5701
- }
5702
5721
  });
5703
- enifed('ember-metal/injected_property', ['exports', 'ember-utils', 'ember-metal/debug', 'ember-metal/computed', 'ember-metal/alias', 'ember-metal/properties'], function (exports, _emberUtils, _emberMetalDebug, _emberMetalComputed, _emberMetalAlias, _emberMetalProperties) {
5722
+ enifed('ember-metal/injected_property', ['exports', 'ember-utils', 'ember-debug', 'ember-metal/computed', 'ember-metal/alias', 'ember-metal/properties'], function (exports, _emberUtils, _emberDebug, _emberMetalComputed, _emberMetalAlias, _emberMetalProperties) {
5704
5723
  'use strict';
5705
5724
 
5706
5725
  exports.default = InjectedProperty;
@@ -5729,8 +5748,8 @@ enifed('ember-metal/injected_property', ['exports', 'ember-utils', 'ember-metal/
5729
5748
  var desc = this[keyName];
5730
5749
  var owner = _emberUtils.getOwner(this) || this.container; // fallback to `container` for backwards compat
5731
5750
 
5732
- _emberMetalDebug.assert('InjectedProperties should be defined with the Ember.inject computed property macros.', desc && desc.isDescriptor && desc.type);
5733
- _emberMetalDebug.assert('Attempting to lookup an injected property on an object without a container, ensure that the object was instantiated via a container.', owner);
5751
+ _emberDebug.assert('InjectedProperties should be defined with the Ember.inject computed property macros.', desc && desc.isDescriptor && desc.type);
5752
+ _emberDebug.assert('Attempting to lookup an injected property on an object without a container, ensure that the object was instantiated via a container.', owner);
5734
5753
 
5735
5754
  return owner.lookup(desc.type + ':' + (desc.name || keyName));
5736
5755
  }
@@ -5747,7 +5766,7 @@ enifed('ember-metal/injected_property', ['exports', 'ember-utils', 'ember-metal/
5747
5766
  InjectedPropertyPrototype.readOnly = ComputedPropertyPrototype.readOnly;
5748
5767
  InjectedPropertyPrototype.teardown = ComputedPropertyPrototype.teardown;
5749
5768
  });
5750
- enifed('ember-metal/instrumentation', ['exports', 'ember-environment', 'ember-metal/features'], function (exports, _emberEnvironment, _emberMetalFeatures) {
5769
+ enifed('ember-metal/instrumentation', ['exports', 'ember-environment', 'ember-debug'], function (exports, _emberEnvironment, _emberDebug) {
5751
5770
  /* eslint no-console:off */
5752
5771
  /* global console */
5753
5772
 
@@ -5869,7 +5888,7 @@ enifed('ember-metal/instrumentation', ['exports', 'ember-environment', 'ember-me
5869
5888
  }
5870
5889
 
5871
5890
  var flaggedInstrument = undefined;
5872
- if (_emberMetalFeatures.default('ember-improved-instrumentation')) {
5891
+ if (_emberDebug.isFeatureEnabled('ember-improved-instrumentation')) {
5873
5892
  exports.flaggedInstrument = flaggedInstrument = instrument;
5874
5893
  } else {
5875
5894
  exports.flaggedInstrument = flaggedInstrument = function (name, payload, callback) {
@@ -6205,7 +6224,7 @@ enifed('ember-metal/is_proxy', ['exports', 'ember-metal/meta'], function (export
6205
6224
  return false;
6206
6225
  }
6207
6226
  });
6208
- enifed('ember-metal/libraries', ['exports', 'ember-metal/debug', 'ember-metal/features'], function (exports, _emberMetalDebug, _emberMetalFeatures) {
6227
+ enifed('ember-metal/libraries', ['exports', 'ember-debug'], function (exports, _emberDebug) {
6209
6228
  'use strict';
6210
6229
 
6211
6230
  /**
@@ -6256,7 +6275,7 @@ enifed('ember-metal/libraries', ['exports', 'ember-metal/debug', 'ember-metal/fe
6256
6275
  }
6257
6276
  this._registry.splice(index, 0, { name: name, version: version });
6258
6277
  } else {
6259
- _emberMetalDebug.warn('Library "' + name + '" is already registered with Ember.', false, { id: 'ember-metal.libraries-register' });
6278
+ _emberDebug.warn('Library "' + name + '" is already registered with Ember.', false, { id: 'ember-metal.libraries-register' });
6260
6279
  }
6261
6280
  },
6262
6281
 
@@ -6275,7 +6294,7 @@ enifed('ember-metal/libraries', ['exports', 'ember-metal/debug', 'ember-metal/fe
6275
6294
  }
6276
6295
  };
6277
6296
 
6278
- if (_emberMetalFeatures.default('ember-libraries-isregistered')) {
6297
+ if (_emberDebug.isFeatureEnabled('ember-libraries-isregistered')) {
6279
6298
  Libraries.prototype.isRegistered = function (name) {
6280
6299
  return !!this._getLibraryByName(name);
6281
6300
  };
@@ -6813,10 +6832,8 @@ enifed('ember-metal/merge', ['exports'], function (exports) {
6813
6832
  return original;
6814
6833
  }
6815
6834
  });
6816
- enifed('ember-metal/meta', ['exports', 'ember-utils', 'ember-metal/features', 'ember-metal/meta_listeners', 'ember-metal/debug', 'ember-metal/chains', 'require'], function (exports, _emberUtils, _emberMetalFeatures, _emberMetalMeta_listeners, _emberMetalDebug, _emberMetalChains, _require) {
6817
- 'no use strict';
6818
- // Remove "use strict"; from transpiled module until
6819
- // https://bugs.webkit.org/show_bug.cgi?id=138038 is fixed
6835
+ enifed('ember-metal/meta', ['exports', 'ember-utils', 'ember-metal/meta_listeners', 'ember-debug', 'ember-metal/chains', 'require'], function (exports, _emberUtils, _emberMetalMeta_listeners, _emberDebug, _emberMetalChains, _require) {
6836
+ 'use strict';
6820
6837
 
6821
6838
  exports.deleteMeta = deleteMeta;
6822
6839
  exports.meta = meta;
@@ -6875,7 +6892,7 @@ enifed('ember-metal/meta', ['exports', 'ember-utils', 'ember-metal/features', 'e
6875
6892
  var META_DESTROYED = 1 << 3;
6876
6893
  var IS_PROXY = 1 << 4;
6877
6894
 
6878
- if (_emberMetalFeatures.default('ember-glimmer-detect-backtracking-rerender') || _emberMetalFeatures.default('ember-glimmer-allow-backtracking-rerender')) {
6895
+ if (_emberDebug.isFeatureEnabled('ember-glimmer-detect-backtracking-rerender') || _emberDebug.isFeatureEnabled('ember-glimmer-allow-backtracking-rerender')) {
6879
6896
  members.lastRendered = ownMap;
6880
6897
  if (_require.has('ember-debug')) {
6881
6898
  //https://github.com/emberjs/ember.js/issues/14732
@@ -6891,7 +6908,7 @@ enifed('ember-metal/meta', ['exports', 'ember-utils', 'ember-metal/features', 'e
6891
6908
  function Meta(obj, parentMeta) {
6892
6909
  var _this = this;
6893
6910
 
6894
- _emberMetalDebug.runInDebug(function () {
6911
+ _emberDebug.runInDebug(function () {
6895
6912
  return counters.metaInstantiated++;
6896
6913
  });
6897
6914
 
@@ -6924,9 +6941,9 @@ enifed('ember-metal/meta', ['exports', 'ember-utils', 'ember-metal/features', 'e
6924
6941
  // inherited, and we can optimize it much better than JS runtimes.
6925
6942
  this.parent = parentMeta;
6926
6943
 
6927
- if (_emberMetalFeatures.default('ember-glimmer-detect-backtracking-rerender') || _emberMetalFeatures.default('ember-glimmer-allow-backtracking-rerender')) {
6944
+ if (_emberDebug.isFeatureEnabled('ember-glimmer-detect-backtracking-rerender') || _emberDebug.isFeatureEnabled('ember-glimmer-allow-backtracking-rerender')) {
6928
6945
  this._lastRendered = undefined;
6929
- _emberMetalDebug.runInDebug(function () {
6946
+ _emberDebug.runInDebug(function () {
6930
6947
  _this._lastRenderedReferenceMap = undefined;
6931
6948
  _this._lastRenderedTemplateMap = undefined;
6932
6949
  });
@@ -7050,7 +7067,7 @@ enifed('ember-metal/meta', ['exports', 'ember-utils', 'ember-metal/features', 'e
7050
7067
  // with inheritance at both levels.
7051
7068
 
7052
7069
  Meta.prototype.writeDeps = function writeDeps(subkey, itemkey, value) {
7053
- _emberMetalDebug.assert('Cannot call writeDeps after the object is destroyed.', !this.isMetaDestroyed());
7070
+ _emberDebug.assert('Cannot call writeDeps after the object is destroyed.', !this.isMetaDestroyed());
7054
7071
 
7055
7072
  var outerMap = this._getOrCreateOwnMap('_deps');
7056
7073
  var innerMap = outerMap[subkey];
@@ -7188,7 +7205,7 @@ enifed('ember-metal/meta', ['exports', 'ember-utils', 'ember-metal/features', 'e
7188
7205
  var capitalized = capitalize(name);
7189
7206
 
7190
7207
  Meta.prototype['write' + capitalized] = function (subkey, value) {
7191
- _emberMetalDebug.assert('Cannot call write' + capitalized + ' after the object is destroyed.', !this.isMetaDestroyed());
7208
+ _emberDebug.assert('Cannot call write' + capitalized + ' after the object is destroyed.', !this.isMetaDestroyed());
7192
7209
 
7193
7210
  var map = this._getOrCreateOwnMap(key);
7194
7211
  map[subkey] = value;
@@ -7217,7 +7234,7 @@ enifed('ember-metal/meta', ['exports', 'ember-utils', 'ember-metal/features', 'e
7217
7234
  };
7218
7235
 
7219
7236
  Meta.prototype['clear' + capitalized] = function () {
7220
- _emberMetalDebug.assert('Cannot call clear' + capitalized + ' after the object is destroyed.', !this.isMetaDestroyed());
7237
+ _emberDebug.assert('Cannot call clear' + capitalized + ' after the object is destroyed.', !this.isMetaDestroyed());
7221
7238
 
7222
7239
  this[key] = undefined;
7223
7240
  };
@@ -7240,7 +7257,7 @@ enifed('ember-metal/meta', ['exports', 'ember-utils', 'ember-metal/features', 'e
7240
7257
  var key = memberProperty(name);
7241
7258
  var capitalized = capitalize(name);
7242
7259
  Meta.prototype['writable' + capitalized] = function (create) {
7243
- _emberMetalDebug.assert('Cannot call writable' + capitalized + ' after the object is destroyed.', !this.isMetaDestroyed());
7260
+ _emberDebug.assert('Cannot call writable' + capitalized + ' after the object is destroyed.', !this.isMetaDestroyed());
7244
7261
 
7245
7262
  var ret = this[key];
7246
7263
  if (!ret) {
@@ -7260,7 +7277,7 @@ enifed('ember-metal/meta', ['exports', 'ember-utils', 'ember-metal/features', 'e
7260
7277
  var key = memberProperty(name);
7261
7278
  var capitalized = capitalize(name);
7262
7279
  Meta.prototype['writable' + capitalized] = function (create) {
7263
- _emberMetalDebug.assert('Cannot call writable' + capitalized + ' after the object is destroyed.', !this.isMetaDestroyed());
7280
+ _emberDebug.assert('Cannot call writable' + capitalized + ' after the object is destroyed.', !this.isMetaDestroyed());
7264
7281
 
7265
7282
  var ret = this[key];
7266
7283
  if (!ret) {
@@ -7302,7 +7319,7 @@ enifed('ember-metal/meta', ['exports', 'ember-utils', 'ember-metal/features', 'e
7302
7319
  descriptor: META_DESC
7303
7320
  };
7304
7321
 
7305
- if (_emberMetalFeatures.default('mandatory-setter')) {
7322
+ if (_emberDebug.isFeatureEnabled('mandatory-setter')) {
7306
7323
  Meta.prototype.readInheritedValue = function (key, subkey) {
7307
7324
  var internalKey = '_' + key;
7308
7325
 
@@ -7344,14 +7361,14 @@ enifed('ember-metal/meta', ['exports', 'ember-utils', 'ember-metal/features', 'e
7344
7361
  var metaStore = new WeakMap();
7345
7362
 
7346
7363
  exports.setMeta = setMeta = function WeakMap_setMeta(obj, meta) {
7347
- _emberMetalDebug.runInDebug(function () {
7364
+ _emberDebug.runInDebug(function () {
7348
7365
  return counters.setCalls++;
7349
7366
  });
7350
7367
  metaStore.set(obj, meta);
7351
7368
  };
7352
7369
 
7353
7370
  exports.peekMeta = peekMeta = function WeakMap_peekMeta(obj) {
7354
- _emberMetalDebug.runInDebug(function () {
7371
+ _emberDebug.runInDebug(function () {
7355
7372
  return counters.peekCalls++;
7356
7373
  });
7357
7374
 
@@ -7364,7 +7381,7 @@ enifed('ember-metal/meta', ['exports', 'ember-utils', 'ember-metal/features', 'e
7364
7381
  while (pointer) {
7365
7382
  meta = metaStore.get(pointer);
7366
7383
  // jshint loopfunc:true
7367
- _emberMetalDebug.runInDebug(function () {
7384
+ _emberDebug.runInDebug(function () {
7368
7385
  return counters.peekCalls++;
7369
7386
  });
7370
7387
  // stop if we find a `null` value, since
@@ -7375,7 +7392,7 @@ enifed('ember-metal/meta', ['exports', 'ember-utils', 'ember-metal/features', 'e
7375
7392
  }
7376
7393
 
7377
7394
  pointer = getPrototypeOf(pointer);
7378
- _emberMetalDebug.runInDebug(function () {
7395
+ _emberDebug.runInDebug(function () {
7379
7396
  return counters.peakPrototypeWalks++;
7380
7397
  });
7381
7398
  }
@@ -7402,7 +7419,7 @@ enifed('ember-metal/meta', ['exports', 'ember-utils', 'ember-metal/features', 'e
7402
7419
  }
7403
7420
 
7404
7421
  function deleteMeta(obj) {
7405
- _emberMetalDebug.runInDebug(function () {
7422
+ _emberDebug.runInDebug(function () {
7406
7423
  return counters.deleteCalls++;
7407
7424
  });
7408
7425
 
@@ -7432,7 +7449,7 @@ enifed('ember-metal/meta', ['exports', 'ember-utils', 'ember-metal/features', 'e
7432
7449
  */
7433
7450
 
7434
7451
  function meta(obj) {
7435
- _emberMetalDebug.runInDebug(function () {
7452
+ _emberDebug.runInDebug(function () {
7436
7453
  return counters.metaCalls++;
7437
7454
  });
7438
7455
 
@@ -7629,15 +7646,13 @@ enifed('ember-metal/meta_listeners', ['exports'], function (exports) {
7629
7646
  destination.push(target, method, source[index + 3]);
7630
7647
  }
7631
7648
  });
7632
- enifed('ember-metal/mixin', ['exports', 'ember-utils', 'ember-metal/error', 'ember-metal/debug', 'ember-metal/meta', 'ember-metal/expand_properties', 'ember-metal/properties', 'ember-metal/computed', 'ember-metal/binding', 'ember-metal/observer', 'ember-metal/events'], function (exports, _emberUtils, _emberMetalError, _emberMetalDebug, _emberMetalMeta, _emberMetalExpand_properties, _emberMetalProperties, _emberMetalComputed, _emberMetalBinding, _emberMetalObserver, _emberMetalEvents) {
7633
- 'no use strict';
7634
- // Remove "use strict"; from transpiled module until
7635
- // https://bugs.webkit.org/show_bug.cgi?id=138038 is fixed
7636
-
7649
+ enifed('ember-metal/mixin', ['exports', 'ember-utils', 'ember-debug', 'ember-metal/meta', 'ember-metal/expand_properties', 'ember-metal/properties', 'ember-metal/computed', 'ember-metal/binding', 'ember-metal/observer', 'ember-metal/events'], function (exports, _emberUtils, _emberDebug, _emberMetalMeta, _emberMetalExpand_properties, _emberMetalProperties, _emberMetalComputed, _emberMetalBinding, _emberMetalObserver, _emberMetalEvents) {
7637
7650
  /**
7638
7651
  @module ember
7639
7652
  @submodule ember-metal
7640
7653
  */
7654
+ 'use strict';
7655
+
7641
7656
  exports.detectBinding = detectBinding;
7642
7657
  exports.mixin = mixin;
7643
7658
  exports.hasUnprocessedMixins = hasUnprocessedMixins;
@@ -7648,9 +7663,6 @@ enifed('ember-metal/mixin', ['exports', 'ember-utils', 'ember-metal/error', 'emb
7648
7663
  exports._immediateObserver = _immediateObserver;
7649
7664
  exports._beforeObserver = _beforeObserver;
7650
7665
 
7651
- function ROOT() {}
7652
- ROOT.__hasSuper = false;
7653
-
7654
7666
  var a_slice = Array.prototype.slice;
7655
7667
  var a_concat = Array.prototype.concat;
7656
7668
  var isArray = Array.isArray;
@@ -7762,7 +7774,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-utils', 'ember-metal/error', 'emb
7762
7774
  }
7763
7775
  }
7764
7776
 
7765
- _emberMetalDebug.runInDebug(function () {
7777
+ _emberDebug.runInDebug(function () {
7766
7778
  // it is possible to use concatenatedProperties with strings (which cannot be frozen)
7767
7779
  // only freeze objects...
7768
7780
  if (typeof ret === 'object' && ret !== null) {
@@ -7777,10 +7789,10 @@ enifed('ember-metal/mixin', ['exports', 'ember-utils', 'ember-metal/error', 'emb
7777
7789
  function applyMergedProperties(obj, key, value, values) {
7778
7790
  var baseValue = values[key] || obj[key];
7779
7791
 
7780
- _emberMetalDebug.runInDebug(function () {
7792
+ _emberDebug.runInDebug(function () {
7781
7793
  if (isArray(value)) {
7782
7794
  // use conditional to avoid stringifying every time
7783
- _emberMetalDebug.assert('You passed in `' + JSON.stringify(value) + '` as the value for `' + key + '` but `' + key + '` cannot be an Array', false);
7795
+ _emberDebug.assert('You passed in `' + JSON.stringify(value) + '` as the value for `' + key + '` but `' + key + '` cannot be an Array', false);
7784
7796
  }
7785
7797
  });
7786
7798
 
@@ -7807,7 +7819,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-utils', 'ember-metal/error', 'emb
7807
7819
  }
7808
7820
 
7809
7821
  if (hasFunction) {
7810
- newBase._super = ROOT;
7822
+ newBase._super = _emberUtils.ROOT;
7811
7823
  }
7812
7824
 
7813
7825
  return newBase;
@@ -7841,7 +7853,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-utils', 'ember-metal/error', 'emb
7841
7853
  }
7842
7854
  }
7843
7855
 
7844
- function mergeMixins(mixins, m, descs, values, base, keys) {
7856
+ function mergeMixins(mixins, meta, descs, values, base, keys) {
7845
7857
  var currentMixin = undefined,
7846
7858
  props = undefined,
7847
7859
  key = undefined,
@@ -7855,9 +7867,9 @@ enifed('ember-metal/mixin', ['exports', 'ember-utils', 'ember-metal/error', 'emb
7855
7867
 
7856
7868
  for (var i = 0; i < mixins.length; i++) {
7857
7869
  currentMixin = mixins[i];
7858
- _emberMetalDebug.assert('Expected hash or Mixin instance, got ' + Object.prototype.toString.call(currentMixin), typeof currentMixin === 'object' && currentMixin !== null && Object.prototype.toString.call(currentMixin) !== '[object Array]');
7870
+ _emberDebug.assert('Expected hash or Mixin instance, got ' + Object.prototype.toString.call(currentMixin), typeof currentMixin === 'object' && currentMixin !== null && Object.prototype.toString.call(currentMixin) !== '[object Array]');
7859
7871
 
7860
- props = mixinProperties(m, currentMixin);
7872
+ props = mixinProperties(meta, currentMixin);
7861
7873
  if (props === CONTINUE) {
7862
7874
  continue;
7863
7875
  }
@@ -7874,7 +7886,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-utils', 'ember-metal/error', 'emb
7874
7886
  continue;
7875
7887
  }
7876
7888
  keys.push(key);
7877
- addNormalizedProperty(base, key, props[key], m, descs, values, concats, mergings);
7889
+ addNormalizedProperty(base, key, props[key], meta, descs, values, concats, mergings);
7878
7890
  }
7879
7891
 
7880
7892
  // manually copy toString() because some JS engines do not enumerate it
@@ -7882,7 +7894,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-utils', 'ember-metal/error', 'emb
7882
7894
  base.toString = props.toString;
7883
7895
  }
7884
7896
  } else if (currentMixin.mixins) {
7885
- mergeMixins(currentMixin.mixins, m, descs, values, base, keys);
7897
+ mergeMixins(currentMixin.mixins, meta, descs, values, base, keys);
7886
7898
  if (currentMixin._without) {
7887
7899
  currentMixin._without.forEach(removeKeys);
7888
7900
  }
@@ -7900,9 +7912,9 @@ enifed('ember-metal/mixin', ['exports', 'ember-utils', 'ember-metal/error', 'emb
7900
7912
  detectBinding('notbound');
7901
7913
  detectBinding('fooBinding');
7902
7914
 
7903
- function connectBindings(obj, m) {
7915
+ function connectBindings(obj, meta) {
7904
7916
  // TODO Mixin.apply(instance) should disconnect binding if exists
7905
- m.forEachBindings(function (key, binding) {
7917
+ meta.forEachBindings(function (key, binding) {
7906
7918
  if (binding) {
7907
7919
  var to = key.slice(0, -7); // strip Binding off end
7908
7920
  if (binding instanceof _emberMetalBinding.Binding) {
@@ -7917,15 +7929,15 @@ enifed('ember-metal/mixin', ['exports', 'ember-utils', 'ember-metal/error', 'emb
7917
7929
  }
7918
7930
  });
7919
7931
  // mark as applied
7920
- m.clearBindings();
7932
+ meta.clearBindings();
7921
7933
  }
7922
7934
 
7923
- function finishPartial(obj, m) {
7924
- connectBindings(obj, m || _emberMetalMeta.meta(obj));
7935
+ function finishPartial(obj, meta) {
7936
+ connectBindings(obj, meta || _emberMetalMeta.meta(obj));
7925
7937
  return obj;
7926
7938
  }
7927
7939
 
7928
- function followAlias(obj, desc, m, descs, values) {
7940
+ function followAlias(obj, desc, descs, values) {
7929
7941
  var altKey = desc.methodName;
7930
7942
  var value = undefined;
7931
7943
  var possibleDesc = undefined;
@@ -7972,13 +7984,13 @@ enifed('ember-metal/mixin', ['exports', 'ember-utils', 'ember-metal/error', 'emb
7972
7984
  function applyMixin(obj, mixins, partial) {
7973
7985
  var descs = {};
7974
7986
  var values = {};
7975
- var m = _emberMetalMeta.meta(obj);
7987
+ var meta = _emberMetalMeta.meta(obj);
7976
7988
  var keys = [];
7977
7989
  var key = undefined,
7978
7990
  value = undefined,
7979
7991
  desc = undefined;
7980
7992
 
7981
- obj._super = ROOT;
7993
+ obj._super = _emberUtils.ROOT;
7982
7994
 
7983
7995
  // Go through all mixins and hashes passed in, and:
7984
7996
  //
@@ -7987,7 +7999,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-utils', 'ember-metal/error', 'emb
7987
7999
  // * Set up _super wrapping if necessary
7988
8000
  // * Set up computed property descriptors
7989
8001
  // * Copying `toString` in broken browsers
7990
- mergeMixins(mixins, m, descs, values, obj, keys);
8002
+ mergeMixins(mixins, meta, descs, values, obj, keys);
7991
8003
 
7992
8004
  for (var i = 0; i < keys.length; i++) {
7993
8005
  key = keys[i];
@@ -8003,7 +8015,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-utils', 'ember-metal/error', 'emb
8003
8015
  }
8004
8016
 
8005
8017
  while (desc && desc instanceof Alias) {
8006
- var followed = followAlias(obj, desc, m, descs, values);
8018
+ var followed = followAlias(obj, desc, descs, values);
8007
8019
  desc = followed.desc;
8008
8020
  value = followed.value;
8009
8021
  }
@@ -8015,15 +8027,15 @@ enifed('ember-metal/mixin', ['exports', 'ember-utils', 'ember-metal/error', 'emb
8015
8027
  replaceObserversAndListeners(obj, key, value);
8016
8028
 
8017
8029
  if (detectBinding(key)) {
8018
- m.writeBindings(key, value);
8030
+ meta.writeBindings(key, value);
8019
8031
  }
8020
8032
 
8021
- _emberMetalProperties.defineProperty(obj, key, desc, value, m);
8033
+ _emberMetalProperties.defineProperty(obj, key, desc, value, meta);
8022
8034
  }
8023
8035
 
8024
8036
  if (!partial) {
8025
8037
  // don't apply to prototype
8026
- finishPartial(obj, m);
8038
+ finishPartial(obj, meta);
8027
8039
  }
8028
8040
 
8029
8041
  return obj;
@@ -8066,10 +8078,10 @@ enifed('ember-metal/mixin', ['exports', 'ember-utils', 'ember-metal/error', 'emb
8066
8078
  post: null
8067
8079
  });
8068
8080
 
8069
- let comment = Comment.create({
8070
- post: somePost
8081
+ let comment = Comment.create({
8082
+ post: somePost
8071
8083
  });
8072
-
8084
+
8073
8085
  comment.edit(); // outputs 'starting to edit'
8074
8086
  ```
8075
8087
 
@@ -8109,16 +8121,16 @@ enifed('ember-metal/mixin', ['exports', 'ember-utils', 'ember-metal/error', 'emb
8109
8121
  */
8110
8122
 
8111
8123
  var Mixin = (function () {
8112
- function Mixin(args, properties) {
8124
+ function Mixin(mixins, properties) {
8113
8125
  this.properties = properties;
8114
8126
 
8115
- var length = args && args.length;
8127
+ var length = mixins && mixins.length;
8116
8128
 
8117
8129
  if (length > 0) {
8118
8130
  var m = new Array(length);
8119
8131
 
8120
8132
  for (var i = 0; i < length; i++) {
8121
- var x = args[i];
8133
+ var x = mixins[i];
8122
8134
  if (x instanceof Mixin) {
8123
8135
  m[i] = x;
8124
8136
  } else {
@@ -8134,11 +8146,14 @@ enifed('ember-metal/mixin', ['exports', 'ember-utils', 'ember-metal/error', 'emb
8134
8146
  this._without = undefined;
8135
8147
  this[_emberUtils.GUID_KEY] = null;
8136
8148
  this[_emberUtils.NAME_KEY] = null;
8137
- _emberMetalDebug.debugSeal(this);
8149
+ _emberDebug.debugSeal(this);
8138
8150
  }
8139
8151
 
8140
8152
  Mixin.applyPartial = function applyPartial(obj) {
8141
- var args = a_slice.call(arguments, 1);
8153
+ for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
8154
+ args[_key2 - 1] = arguments[_key2];
8155
+ }
8156
+
8142
8157
  return applyMixin(obj, args, true);
8143
8158
  };
8144
8159
 
@@ -8154,8 +8169,8 @@ enifed('ember-metal/mixin', ['exports', 'ember-utils', 'ember-metal/error', 'emb
8154
8169
  unprocessedFlag = true;
8155
8170
  var M = this;
8156
8171
 
8157
- for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
8158
- args[_key2] = arguments[_key2];
8172
+ for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
8173
+ args[_key3] = arguments[_key3];
8159
8174
  }
8160
8175
 
8161
8176
  return new M(args, undefined);
@@ -8165,13 +8180,13 @@ enifed('ember-metal/mixin', ['exports', 'ember-utils', 'ember-metal/error', 'emb
8165
8180
  // TODO: Make Ember.mixin
8166
8181
 
8167
8182
  Mixin.mixins = function mixins(obj) {
8168
- var m = _emberMetalMeta.peekMeta(obj);
8183
+ var meta = _emberMetalMeta.peekMeta(obj);
8169
8184
  var ret = [];
8170
- if (!m) {
8185
+ if (!meta) {
8171
8186
  return ret;
8172
8187
  }
8173
8188
 
8174
- m.forEachMixins(function (key, currentMixin) {
8189
+ meta.forEachMixins(function (key, currentMixin) {
8175
8190
  // skip primitive mixins since these are always anonymous
8176
8191
  if (!currentMixin.properties) {
8177
8192
  ret.push(currentMixin);
@@ -8223,7 +8238,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-utils', 'ember-metal/error', 'emb
8223
8238
 
8224
8239
  for (idx = 0; idx < arguments.length; idx++) {
8225
8240
  currentMixin = arguments[idx];
8226
- _emberMetalDebug.assert('Expected hash or Mixin instance, got ' + Object.prototype.toString.call(currentMixin), typeof currentMixin === 'object' && currentMixin !== null && Object.prototype.toString.call(currentMixin) !== '[object Array]');
8241
+ _emberDebug.assert('Expected hash or Mixin instance, got ' + Object.prototype.toString.call(currentMixin), typeof currentMixin === 'object' && currentMixin !== null && Object.prototype.toString.call(currentMixin) !== '[object Array]');
8227
8242
 
8228
8243
  if (currentMixin instanceof Mixin) {
8229
8244
  mixins.push(currentMixin);
@@ -8285,18 +8300,18 @@ enifed('ember-metal/mixin', ['exports', 'ember-utils', 'ember-metal/error', 'emb
8285
8300
  if (obj instanceof Mixin) {
8286
8301
  return _detect(obj, this, {});
8287
8302
  }
8288
- var m = _emberMetalMeta.peekMeta(obj);
8289
- if (!m) {
8303
+ var meta = _emberMetalMeta.peekMeta(obj);
8304
+ if (!meta) {
8290
8305
  return false;
8291
8306
  }
8292
- return !!m.peekMixins(_emberUtils.guidFor(this));
8307
+ return !!meta.peekMixins(_emberUtils.guidFor(this));
8293
8308
  };
8294
8309
 
8295
8310
  MixinPrototype.without = function () {
8296
8311
  var ret = new Mixin([this]);
8297
8312
 
8298
- for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
8299
- args[_key3] = arguments[_key3];
8313
+ for (var _len4 = arguments.length, args = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
8314
+ args[_key4] = arguments[_key4];
8300
8315
  }
8301
8316
 
8302
8317
  ret._without = args;
@@ -8331,7 +8346,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-utils', 'ember-metal/error', 'emb
8331
8346
  return ret;
8332
8347
  };
8333
8348
 
8334
- _emberMetalDebug.debugSeal(MixinPrototype);
8349
+ _emberDebug.debugSeal(MixinPrototype);
8335
8350
 
8336
8351
  var REQUIRED = new _emberMetalProperties.Descriptor();
8337
8352
  REQUIRED.toString = function () {
@@ -8347,7 +8362,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-utils', 'ember-metal/error', 'emb
8347
8362
  */
8348
8363
 
8349
8364
  function required() {
8350
- _emberMetalDebug.deprecate('Ember.required is deprecated as its behavior is inconsistent and unreliable.', false, { id: 'ember-metal.required', until: '3.0.0' });
8365
+ _emberDebug.deprecate('Ember.required is deprecated as its behavior is inconsistent and unreliable.', false, { id: 'ember-metal.required', until: '3.0.0' });
8351
8366
  return REQUIRED;
8352
8367
  }
8353
8368
 
@@ -8412,8 +8427,8 @@ enifed('ember-metal/mixin', ['exports', 'ember-utils', 'ember-metal/error', 'emb
8412
8427
  */
8413
8428
 
8414
8429
  function observer() {
8415
- for (var _len4 = arguments.length, args = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
8416
- args[_key4] = arguments[_key4];
8430
+ for (var _len5 = arguments.length, args = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
8431
+ args[_key5] = arguments[_key5];
8417
8432
  }
8418
8433
 
8419
8434
  var func = args.slice(-1)[0];
@@ -8426,7 +8441,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-utils', 'ember-metal/error', 'emb
8426
8441
 
8427
8442
  if (typeof func !== 'function') {
8428
8443
  // revert to old, soft-deprecated argument ordering
8429
- _emberMetalDebug.deprecate('Passing the dependentKeys after the callback function in Ember.observer is deprecated. Ensure the callback function is the last argument.', false, { id: 'ember-metal.observer-argument-order', until: '3.0.0' });
8444
+ _emberDebug.deprecate('Passing the dependentKeys after the callback function in Ember.observer is deprecated. Ensure the callback function is the last argument.', false, { id: 'ember-metal.observer-argument-order', until: '3.0.0' });
8430
8445
 
8431
8446
  func = args[0];
8432
8447
  _paths = args.slice(1);
@@ -8439,7 +8454,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-utils', 'ember-metal/error', 'emb
8439
8454
  }
8440
8455
 
8441
8456
  if (typeof func !== 'function') {
8442
- throw new _emberMetalError.default('Ember.observer called without a function');
8457
+ throw new _emberDebug.EmberError('Ember.observer called without a function');
8443
8458
  }
8444
8459
 
8445
8460
  func.__ember_observes__ = paths;
@@ -8473,11 +8488,11 @@ enifed('ember-metal/mixin', ['exports', 'ember-utils', 'ember-metal/error', 'emb
8473
8488
  */
8474
8489
 
8475
8490
  function _immediateObserver() {
8476
- _emberMetalDebug.deprecate('Usage of `Ember.immediateObserver` is deprecated, use `Ember.observer` instead.', false, { id: 'ember-metal.immediate-observer', until: '3.0.0' });
8491
+ _emberDebug.deprecate('Usage of `Ember.immediateObserver` is deprecated, use `Ember.observer` instead.', false, { id: 'ember-metal.immediate-observer', until: '3.0.0' });
8477
8492
 
8478
8493
  for (var i = 0; i < arguments.length; i++) {
8479
8494
  var arg = arguments[i];
8480
- _emberMetalDebug.assert('Immediate observers must observe internal properties only, not properties on other objects.', typeof arg !== 'string' || arg.indexOf('.') === -1);
8495
+ _emberDebug.assert('Immediate observers must observe internal properties only, not properties on other objects.', typeof arg !== 'string' || arg.indexOf('.') === -1);
8481
8496
  }
8482
8497
 
8483
8498
  return observer.apply(this, arguments);
@@ -8501,8 +8516,8 @@ enifed('ember-metal/mixin', ['exports', 'ember-utils', 'ember-metal/error', 'emb
8501
8516
  */
8502
8517
 
8503
8518
  function _beforeObserver() {
8504
- for (var _len5 = arguments.length, args = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
8505
- args[_key5] = arguments[_key5];
8519
+ for (var _len6 = arguments.length, args = Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
8520
+ args[_key6] = arguments[_key6];
8506
8521
  }
8507
8522
 
8508
8523
  var func = args.slice(-1)[0];
@@ -8528,7 +8543,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-utils', 'ember-metal/error', 'emb
8528
8543
  }
8529
8544
 
8530
8545
  if (typeof func !== 'function') {
8531
- throw new _emberMetalError.default('_beforeObserver called without a function');
8546
+ throw new _emberDebug.EmberError('_beforeObserver called without a function');
8532
8547
  }
8533
8548
 
8534
8549
  func.__ember_observesBefore__ = paths;
@@ -8806,7 +8821,7 @@ enifed('ember-metal/path_cache', ['exports', 'ember-metal/cache'], function (exp
8806
8821
  return tailPathCache.get(path);
8807
8822
  }
8808
8823
  });
8809
- enifed('ember-metal/properties', ['exports', 'ember-metal/debug', 'ember-metal/features', 'ember-metal/meta', 'ember-metal/property_events'], function (exports, _emberMetalDebug, _emberMetalFeatures, _emberMetalMeta, _emberMetalProperty_events) {
8824
+ enifed('ember-metal/properties', ['exports', 'ember-debug', 'ember-metal/meta', 'ember-metal/property_events'], function (exports, _emberDebug, _emberMetalMeta, _emberMetalProperty_events) {
8810
8825
  /**
8811
8826
  @module ember-metal
8812
8827
  */
@@ -8861,7 +8876,7 @@ enifed('ember-metal/properties', ['exports', 'ember-metal/debug', 'ember-metal/f
8861
8876
  if (!m.isInitialized(this)) {
8862
8877
  m.writeValues(name, value);
8863
8878
  } else {
8864
- _emberMetalDebug.assert('You must use Ember.set() to set the `' + name + '` property (of ' + this + ') to `' + value + '`.', false);
8879
+ _emberDebug.assert('You must use Ember.set() to set the `' + name + '` property (of ' + this + ') to `' + value + '`.', false);
8865
8880
  }
8866
8881
  }
8867
8882
 
@@ -8960,7 +8975,7 @@ enifed('ember-metal/properties', ['exports', 'ember-metal/debug', 'ember-metal/f
8960
8975
 
8961
8976
  if (desc instanceof Descriptor) {
8962
8977
  value = desc;
8963
- if (_emberMetalFeatures.default('mandatory-setter')) {
8978
+ if (_emberDebug.isFeatureEnabled('mandatory-setter')) {
8964
8979
  if (watching) {
8965
8980
  Object.defineProperty(obj, keyName, {
8966
8981
  configurable: true,
@@ -8981,7 +8996,7 @@ enifed('ember-metal/properties', ['exports', 'ember-metal/debug', 'ember-metal/f
8981
8996
  if (desc == null) {
8982
8997
  value = data;
8983
8998
 
8984
- if (_emberMetalFeatures.default('mandatory-setter')) {
8999
+ if (_emberDebug.isFeatureEnabled('mandatory-setter')) {
8985
9000
  if (watching) {
8986
9001
  meta.writeValues(keyName, data);
8987
9002
 
@@ -9032,7 +9047,7 @@ enifed('ember-metal/properties', ['exports', 'ember-metal/debug', 'ember-metal/f
9032
9047
  Object.defineProperty(obj, keyName, desc);
9033
9048
  }
9034
9049
  });
9035
- enifed('ember-metal/property_events', ['exports', 'ember-utils', 'ember-metal/meta', 'ember-metal/events', 'ember-metal/tags', 'ember-metal/observer_set', 'ember-metal/features', 'ember-metal/transaction'], function (exports, _emberUtils, _emberMetalMeta, _emberMetalEvents, _emberMetalTags, _emberMetalObserver_set, _emberMetalFeatures, _emberMetalTransaction) {
9050
+ enifed('ember-metal/property_events', ['exports', 'ember-utils', 'ember-metal/meta', 'ember-metal/events', 'ember-metal/tags', 'ember-metal/observer_set', 'ember-debug', 'ember-metal/transaction'], function (exports, _emberUtils, _emberMetalMeta, _emberMetalEvents, _emberMetalTags, _emberMetalObserver_set, _emberDebug, _emberMetalTransaction) {
9036
9051
  'use strict';
9037
9052
 
9038
9053
  var PROPERTY_DID_CHANGE = _emberUtils.symbol('PROPERTY_DID_CHANGE');
@@ -9136,7 +9151,7 @@ enifed('ember-metal/property_events', ['exports', 'ember-utils', 'ember-metal/me
9136
9151
 
9137
9152
  _emberMetalTags.markObjectAsDirty(meta, keyName);
9138
9153
 
9139
- if (_emberMetalFeatures.default('ember-glimmer-detect-backtracking-rerender') || _emberMetalFeatures.default('ember-glimmer-allow-backtracking-rerender')) {
9154
+ if (_emberDebug.isFeatureEnabled('ember-glimmer-detect-backtracking-rerender') || _emberDebug.isFeatureEnabled('ember-glimmer-allow-backtracking-rerender')) {
9140
9155
  _emberMetalTransaction.assertNotRendered(obj, keyName, meta);
9141
9156
  }
9142
9157
  }
@@ -9325,7 +9340,7 @@ enifed('ember-metal/property_events', ['exports', 'ember-utils', 'ember-metal/me
9325
9340
  exports.endPropertyChanges = endPropertyChanges;
9326
9341
  exports.changeProperties = changeProperties;
9327
9342
  });
9328
- enifed('ember-metal/property_get', ['exports', 'ember-metal/debug', 'ember-metal/path_cache'], function (exports, _emberMetalDebug, _emberMetalPath_cache) {
9343
+ enifed('ember-metal/property_get', ['exports', 'ember-debug', 'ember-metal/path_cache'], function (exports, _emberDebug, _emberMetalPath_cache) {
9329
9344
  /**
9330
9345
  @module ember-metal
9331
9346
  */
@@ -9380,11 +9395,11 @@ enifed('ember-metal/property_get', ['exports', 'ember-metal/debug', 'ember-metal
9380
9395
  */
9381
9396
 
9382
9397
  function get(obj, keyName) {
9383
- _emberMetalDebug.assert('Get must be called with two arguments; an object and a property key', arguments.length === 2);
9384
- _emberMetalDebug.assert('Cannot call get with \'' + keyName + '\' on an undefined object.', obj !== undefined && obj !== null);
9385
- _emberMetalDebug.assert('The key provided to get must be a string, you passed ' + keyName, typeof keyName === 'string');
9386
- _emberMetalDebug.assert('\'this\' in paths is not supported', !_emberMetalPath_cache.hasThis(keyName));
9387
- _emberMetalDebug.assert('Cannot call `Ember.get` with an empty string', keyName !== '');
9398
+ _emberDebug.assert('Get must be called with two arguments; an object and a property key', arguments.length === 2);
9399
+ _emberDebug.assert('Cannot call get with \'' + keyName + '\' on an undefined object.', obj !== undefined && obj !== null);
9400
+ _emberDebug.assert('The key provided to get must be a string, you passed ' + keyName, typeof keyName === 'string');
9401
+ _emberDebug.assert('\'this\' in paths is not supported', !_emberMetalPath_cache.hasThis(keyName));
9402
+ _emberDebug.assert('Cannot call `Ember.get` with an empty string', keyName !== '');
9388
9403
 
9389
9404
  var value = obj[keyName];
9390
9405
  var desc = value !== null && typeof value === 'object' && value.isDescriptor ? value : undefined;
@@ -9462,7 +9477,7 @@ enifed('ember-metal/property_get', ['exports', 'ember-metal/debug', 'ember-metal
9462
9477
 
9463
9478
  exports.default = get;
9464
9479
  });
9465
- enifed('ember-metal/property_set', ['exports', 'ember-utils', 'ember-metal/debug', 'ember-metal/features', 'ember-metal/property_get', 'ember-metal/property_events', 'ember-metal/error', 'ember-metal/path_cache', 'ember-metal/meta'], function (exports, _emberUtils, _emberMetalDebug, _emberMetalFeatures, _emberMetalProperty_get, _emberMetalProperty_events, _emberMetalError, _emberMetalPath_cache, _emberMetalMeta) {
9480
+ enifed('ember-metal/property_set', ['exports', 'ember-utils', 'ember-debug', 'ember-metal/property_get', 'ember-metal/property_events', 'ember-metal/path_cache', 'ember-metal/meta'], function (exports, _emberUtils, _emberDebug, _emberMetalProperty_get, _emberMetalProperty_events, _emberMetalPath_cache, _emberMetalMeta) {
9466
9481
  'use strict';
9467
9482
 
9468
9483
  exports.set = set;
@@ -9488,11 +9503,11 @@ enifed('ember-metal/property_set', ['exports', 'ember-utils', 'ember-metal/debug
9488
9503
  */
9489
9504
 
9490
9505
  function set(obj, keyName, value, tolerant) {
9491
- _emberMetalDebug.assert('Set must be called with three or four arguments; an object, a property key, a value and tolerant true/false', arguments.length === 3 || arguments.length === 4);
9492
- _emberMetalDebug.assert('Cannot call set with \'' + keyName + '\' on an undefined object.', obj && typeof obj === 'object' || typeof obj === 'function');
9493
- _emberMetalDebug.assert('The key provided to set must be a string, you passed ' + keyName, typeof keyName === 'string');
9494
- _emberMetalDebug.assert('\'this\' in paths is not supported', !_emberMetalPath_cache.hasThis(keyName));
9495
- _emberMetalDebug.assert('calling set on destroyed object: ' + _emberUtils.toString(obj) + '.' + keyName + ' = ' + _emberUtils.toString(value), !obj.isDestroyed);
9506
+ _emberDebug.assert('Set must be called with three or four arguments; an object, a property key, a value and tolerant true/false', arguments.length === 3 || arguments.length === 4);
9507
+ _emberDebug.assert('Cannot call set with \'' + keyName + '\' on an undefined object.', obj && typeof obj === 'object' || typeof obj === 'function');
9508
+ _emberDebug.assert('The key provided to set must be a string, you passed ' + keyName, typeof keyName === 'string');
9509
+ _emberDebug.assert('\'this\' in paths is not supported', !_emberMetalPath_cache.hasThis(keyName));
9510
+ _emberDebug.assert('calling set on destroyed object: ' + _emberUtils.toString(obj) + '.' + keyName + ' = ' + _emberUtils.toString(value), !obj.isDestroyed);
9496
9511
 
9497
9512
  if (_emberMetalPath_cache.isPath(keyName)) {
9498
9513
  return setPath(obj, keyName, value, tolerant);
@@ -9514,7 +9529,7 @@ enifed('ember-metal/property_set', ['exports', 'ember-utils', 'ember-metal/debug
9514
9529
  desc.set(obj, keyName, value);
9515
9530
  } else if (obj.setUnknownProperty && currentValue === undefined && !(keyName in obj)) {
9516
9531
  /* unknown property */
9517
- _emberMetalDebug.assert('setUnknownProperty must be a function', typeof obj.setUnknownProperty === 'function');
9532
+ _emberDebug.assert('setUnknownProperty must be a function', typeof obj.setUnknownProperty === 'function');
9518
9533
  obj.setUnknownProperty(keyName, value);
9519
9534
  } else if (currentValue === value) {
9520
9535
  /* no change */
@@ -9522,7 +9537,7 @@ enifed('ember-metal/property_set', ['exports', 'ember-utils', 'ember-metal/debug
9522
9537
  } else {
9523
9538
  _emberMetalProperty_events.propertyWillChange(obj, keyName);
9524
9539
 
9525
- if (_emberMetalFeatures.default('mandatory-setter')) {
9540
+ if (_emberDebug.isFeatureEnabled('mandatory-setter')) {
9526
9541
  setWithMandatorySetter(meta, obj, keyName, value);
9527
9542
  } else {
9528
9543
  obj[keyName] = value;
@@ -9534,7 +9549,7 @@ enifed('ember-metal/property_set', ['exports', 'ember-utils', 'ember-metal/debug
9534
9549
  return value;
9535
9550
  }
9536
9551
 
9537
- if (_emberMetalFeatures.default('mandatory-setter')) {
9552
+ if (_emberDebug.isFeatureEnabled('mandatory-setter')) {
9538
9553
  var setWithMandatorySetter = function (meta, obj, keyName, value) {
9539
9554
  if (meta && meta.peekWatching(keyName) > 0) {
9540
9555
  makeEnumerable(obj, keyName);
@@ -9568,14 +9583,14 @@ enifed('ember-metal/property_set', ['exports', 'ember-utils', 'ember-metal/debug
9568
9583
  }
9569
9584
 
9570
9585
  if (!keyName || keyName.length === 0) {
9571
- throw new _emberMetalError.default('Property set failed: You passed an empty path');
9586
+ throw new _emberDebug.Error('Property set failed: You passed an empty path');
9572
9587
  }
9573
9588
 
9574
9589
  if (!root) {
9575
9590
  if (tolerant) {
9576
9591
  return;
9577
9592
  } else {
9578
- throw new _emberMetalError.default('Property set failed: object in path "' + path + '" could not be found or was destroyed.');
9593
+ throw new _emberDebug.Error('Property set failed: object in path "' + path + '" could not be found or was destroyed.');
9579
9594
  }
9580
9595
  }
9581
9596
 
@@ -9634,7 +9649,7 @@ enifed("ember-metal/replace", ["exports"], function (exports) {
9634
9649
  return ret;
9635
9650
  }
9636
9651
  });
9637
- enifed('ember-metal/run_loop', ['exports', 'ember-utils', 'ember-metal/debug', 'ember-metal/testing', 'ember-metal/error_handler', 'ember-metal/property_events', 'backburner'], function (exports, _emberUtils, _emberMetalDebug, _emberMetalTesting, _emberMetalError_handler, _emberMetalProperty_events, _backburner) {
9652
+ enifed('ember-metal/run_loop', ['exports', 'ember-utils', 'ember-debug', 'ember-metal/error_handler', 'ember-metal/property_events', 'backburner'], function (exports, _emberUtils, _emberDebug, _emberMetalError_handler, _emberMetalProperty_events, _backburner) {
9638
9653
  'use strict';
9639
9654
 
9640
9655
  exports.default = run;
@@ -9905,7 +9920,7 @@ enifed('ember-metal/run_loop', ['exports', 'ember-utils', 'ember-metal/debug', '
9905
9920
  @public
9906
9921
  */
9907
9922
  run.schedule = function () /* queue, target, method */{
9908
- _emberMetalDebug.assert('You have turned on testing mode, which disabled the run-loop\'s autorun. ' + 'You will need to wrap any code with asynchronous side-effects in a run', run.currentRunLoop || !_emberMetalTesting.isTesting());
9923
+ _emberDebug.assert('You have turned on testing mode, which disabled the run-loop\'s autorun. ' + 'You will need to wrap any code with asynchronous side-effects in a run', run.currentRunLoop || !_emberDebug.isTesting());
9909
9924
 
9910
9925
  return backburner.schedule.apply(backburner, arguments);
9911
9926
  };
@@ -9987,7 +10002,7 @@ enifed('ember-metal/run_loop', ['exports', 'ember-utils', 'ember-metal/debug', '
9987
10002
  @public
9988
10003
  */
9989
10004
  run.once = function () {
9990
- _emberMetalDebug.assert('You have turned on testing mode, which disabled the run-loop\'s autorun. ' + 'You will need to wrap any code with asynchronous side-effects in a run', run.currentRunLoop || !_emberMetalTesting.isTesting());
10005
+ _emberDebug.assert('You have turned on testing mode, which disabled the run-loop\'s autorun. ' + 'You will need to wrap any code with asynchronous side-effects in a run', run.currentRunLoop || !_emberDebug.isTesting());
9991
10006
 
9992
10007
  for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
9993
10008
  args[_key3] = arguments[_key3];
@@ -10050,7 +10065,7 @@ enifed('ember-metal/run_loop', ['exports', 'ember-utils', 'ember-metal/debug', '
10050
10065
  @public
10051
10066
  */
10052
10067
  run.scheduleOnce = function () /*queue, target, method*/{
10053
- _emberMetalDebug.assert('You have turned on testing mode, which disabled the run-loop\'s autorun. ' + 'You will need to wrap any code with asynchronous side-effects in a run', run.currentRunLoop || !_emberMetalTesting.isTesting());
10068
+ _emberDebug.assert('You have turned on testing mode, which disabled the run-loop\'s autorun. ' + 'You will need to wrap any code with asynchronous side-effects in a run', run.currentRunLoop || !_emberDebug.isTesting());
10054
10069
  return backburner.scheduleOnce.apply(backburner, arguments);
10055
10070
  };
10056
10071
 
@@ -10361,7 +10376,7 @@ enifed('ember-metal/set_properties', ['exports', 'ember-metal/property_events',
10361
10376
  return properties;
10362
10377
  }
10363
10378
  });
10364
- enifed('ember-metal/tags', ['exports', 'glimmer-reference', 'ember-metal/meta', 'require', 'ember-metal/is_proxy'], function (exports, _glimmerReference, _emberMetalMeta, _require, _emberMetalIs_proxy) {
10379
+ enifed('ember-metal/tags', ['exports', '@glimmer/reference', 'ember-metal/meta', 'require', 'ember-metal/is_proxy'], function (exports, _glimmerReference, _emberMetalMeta, _require, _emberMetalIs_proxy) {
10365
10380
  'use strict';
10366
10381
 
10367
10382
  exports.setHasViews = setHasViews;
@@ -10442,43 +10457,16 @@ enifed('ember-metal/tags', ['exports', 'glimmer-reference', 'ember-metal/meta',
10442
10457
  }
10443
10458
  }
10444
10459
  });
10445
- enifed("ember-metal/testing", ["exports"], function (exports) {
10446
- "use strict";
10447
-
10448
- exports.isTesting = isTesting;
10449
- exports.setTesting = setTesting;
10450
- var testing = false;
10451
-
10452
- function isTesting() {
10453
- return testing;
10454
- }
10455
-
10456
- function setTesting(value) {
10457
- testing = !!value;
10458
- }
10459
- });
10460
- enifed('ember-metal/transaction', ['exports', 'ember-metal/meta', 'ember-metal/debug', 'ember-metal/features'], function (exports, _emberMetalMeta, _emberMetalDebug, _emberMetalFeatures) {
10460
+ enifed('ember-metal/transaction', ['exports', 'ember-metal/meta', 'ember-debug'], function (exports, _emberMetalMeta, _emberDebug) {
10461
10461
  'use strict';
10462
10462
 
10463
10463
  var runInTransaction = undefined,
10464
10464
  didRender = undefined,
10465
10465
  assertNotRendered = undefined;
10466
10466
 
10467
- var raise = _emberMetalDebug.assert;
10468
- if (_emberMetalFeatures.default('ember-glimmer-allow-backtracking-rerender')) {
10469
- raise = function (message, test) {
10470
- _emberMetalDebug.deprecate(message, test, { id: 'ember-views.render-double-modify', until: '3.0.0' });
10471
- };
10472
- }
10473
-
10474
- var implication = undefined;
10475
- if (_emberMetalFeatures.default('ember-glimmer-allow-backtracking-rerender')) {
10476
- implication = 'will be removed in Ember 3.0.';
10477
- } else if (_emberMetalFeatures.default('ember-glimmer-detect-backtracking-rerender')) {
10478
- implication = 'is no longer supported. See https://github.com/emberjs/ember.js/issues/13948 for more details.';
10479
- }
10480
-
10481
- if (_emberMetalFeatures.default('ember-glimmer-detect-backtracking-rerender') || _emberMetalFeatures.default('ember-glimmer-allow-backtracking-rerender')) {
10467
+ // detect-backtracking-rerender by default is debug build only
10468
+ // detect-glimmer-allow-backtracking-rerender can be enabled in custom builds
10469
+ if (_emberDebug.isFeatureEnabled('ember-glimmer-detect-backtracking-rerender') || _emberDebug.isFeatureEnabled('ember-glimmer-allow-backtracking-rerender')) {
10482
10470
  (function () {
10483
10471
  var counter = 0;
10484
10472
  var inTransaction = false;
@@ -10488,7 +10476,7 @@ enifed('ember-metal/transaction', ['exports', 'ember-metal/meta', 'ember-metal/d
10488
10476
  exports.default = runInTransaction = function (context, methodName) {
10489
10477
  shouldReflush = false;
10490
10478
  inTransaction = true;
10491
- _emberMetalDebug.runInDebug(function () {
10479
+ _emberDebug.runInDebug(function () {
10492
10480
  debugStack = context.env.debugStack;
10493
10481
  });
10494
10482
  context[methodName]();
@@ -10505,7 +10493,7 @@ enifed('ember-metal/transaction', ['exports', 'ember-metal/meta', 'ember-metal/d
10505
10493
  var lastRendered = meta.writableLastRendered();
10506
10494
  lastRendered[key] = counter;
10507
10495
 
10508
- _emberMetalDebug.runInDebug(function () {
10496
+ _emberDebug.runInDebug(function () {
10509
10497
  var referenceMap = meta.writableLastRenderedReferenceMap();
10510
10498
  referenceMap[key] = reference;
10511
10499
 
@@ -10521,7 +10509,7 @@ enifed('ember-metal/transaction', ['exports', 'ember-metal/meta', 'ember-metal/d
10521
10509
  var lastRendered = meta.readableLastRendered();
10522
10510
 
10523
10511
  if (lastRendered && lastRendered[key] === counter) {
10524
- raise((function () {
10512
+ _emberDebug.runInDebug(function () {
10525
10513
  var templateMap = meta.readableLastRenderedTemplateMap();
10526
10514
  var lastRenderedIn = templateMap[key];
10527
10515
  var currentlyIn = debugStack.peek();
@@ -10542,24 +10530,24 @@ enifed('ember-metal/transaction', ['exports', 'ember-metal/meta', 'ember-metal/d
10542
10530
  label = 'the same value';
10543
10531
  }
10544
10532
 
10545
- return 'You modified "' + label + '" twice on ' + object + ' in a single render. It was rendered in ' + lastRenderedIn + ' and modified in ' + currentlyIn + '. This was unreliable and slow in Ember 1.x and ' + implication;
10546
- })(), false);
10533
+ var message = 'You modified "' + label + '" twice on ' + object + ' in a single render. It was rendered in ' + lastRenderedIn + ' and modified in ' + currentlyIn + '. This was unreliable and slow in Ember 1.x and';
10534
+
10535
+ if (_emberDebug.isFeatureEnabled('ember-glimmer-allow-backtracking-rerender')) {
10536
+ _emberDebug.deprecate(message + ' will be removed in Ember 3.0.', false, { id: 'ember-views.render-double-modify', until: '3.0.0' });
10537
+ } else {
10538
+ _emberDebug.assert(message + ' is no longer supported. See https://github.com/emberjs/ember.js/issues/13948 for more details.', false);
10539
+ }
10540
+ });
10547
10541
 
10548
10542
  shouldReflush = true;
10549
10543
  }
10550
10544
  };
10551
10545
  })();
10552
10546
  } else {
10553
- exports.default = runInTransaction = function () {
10554
- throw new Error('Cannot call runInTransaction without Glimmer');
10555
- };
10556
-
10557
- exports.didRender = didRender = function () {
10558
- throw new Error('Cannot call didRender without Glimmer');
10559
- };
10560
-
10561
- exports.assertNotRendered = assertNotRendered = function () {
10562
- throw new Error('Cannot call assertNotRendered without Glimmer');
10547
+ // in production do nothing to detect reflushes
10548
+ exports.default = runInTransaction = function (context, methodName) {
10549
+ context[methodName]();
10550
+ return false;
10563
10551
  };
10564
10552
  }
10565
10553
 
@@ -10567,7 +10555,7 @@ enifed('ember-metal/transaction', ['exports', 'ember-metal/meta', 'ember-metal/d
10567
10555
  exports.didRender = didRender;
10568
10556
  exports.assertNotRendered = assertNotRendered;
10569
10557
  });
10570
- enifed('ember-metal/watch_key', ['exports', 'ember-utils', 'ember-metal/features', 'ember-metal/meta', 'ember-metal/properties'], function (exports, _emberUtils, _emberMetalFeatures, _emberMetalMeta, _emberMetalProperties) {
10558
+ enifed('ember-metal/watch_key', ['exports', 'ember-utils', 'ember-debug', 'ember-metal/meta', 'ember-metal/properties'], function (exports, _emberUtils, _emberDebug, _emberMetalMeta, _emberMetalProperties) {
10571
10559
  'use strict';
10572
10560
 
10573
10561
  exports.watchKey = watchKey;
@@ -10595,7 +10583,7 @@ enifed('ember-metal/watch_key', ['exports', 'ember-utils', 'ember-metal/features
10595
10583
  obj.willWatchProperty(keyName);
10596
10584
  }
10597
10585
 
10598
- if (_emberMetalFeatures.default('mandatory-setter')) {
10586
+ if (_emberDebug.isFeatureEnabled('mandatory-setter')) {
10599
10587
  // NOTE: this is dropped for prod + minified builds
10600
10588
  handleMandatorySetter(m, obj, keyName);
10601
10589
  }
@@ -10604,7 +10592,7 @@ enifed('ember-metal/watch_key', ['exports', 'ember-utils', 'ember-metal/features
10604
10592
  }
10605
10593
  }
10606
10594
 
10607
- if (_emberMetalFeatures.default('mandatory-setter')) {
10595
+ if (_emberDebug.isFeatureEnabled('mandatory-setter')) {
10608
10596
  (function () {
10609
10597
  var hasOwnProperty = function (obj, key) {
10610
10598
  return Object.prototype.hasOwnProperty.call(obj, key);
@@ -10677,7 +10665,7 @@ enifed('ember-metal/watch_key', ['exports', 'ember-utils', 'ember-metal/features
10677
10665
  obj.didUnwatchProperty(keyName);
10678
10666
  }
10679
10667
 
10680
- if (_emberMetalFeatures.default('mandatory-setter')) {
10668
+ if (_emberDebug.isFeatureEnabled('mandatory-setter')) {
10681
10669
  // It is true, the following code looks quite WAT. But have no fear, It
10682
10670
  // exists purely to improve development ergonomics and is removed from
10683
10671
  // ember.min.js and ember.prod.js builds.
@@ -11113,7 +11101,7 @@ enifed('ember-runtime/compare', ['exports', 'ember-runtime/utils', 'ember-runtim
11113
11101
  }
11114
11102
  }
11115
11103
  });
11116
- enifed('ember-runtime/computed/computed_macros', ['exports', 'ember-metal'], function (exports, _emberMetal) {
11104
+ enifed('ember-runtime/computed/computed_macros', ['exports', 'ember-metal', 'ember-debug'], function (exports, _emberMetal, _emberDebug) {
11117
11105
  'use strict';
11118
11106
 
11119
11107
  exports.empty = empty;
@@ -11145,7 +11133,7 @@ enifed('ember-runtime/computed/computed_macros', ['exports', 'ember-metal'], fun
11145
11133
 
11146
11134
  for (var i = 0; i < properties.length; i++) {
11147
11135
  var property = properties[i];
11148
- _emberMetal.assert('Dependent keys passed to Ember.computed.' + predicateName + '() can\'t have spaces.', property.indexOf(' ') < 0);
11136
+ _emberDebug.assert('Dependent keys passed to Ember.computed.' + predicateName + '() can\'t have spaces.', property.indexOf(' ') < 0);
11149
11137
 
11150
11138
  _emberMetal.expandProperties(property, extractProperty);
11151
11139
  }
@@ -11792,18 +11780,18 @@ enifed('ember-runtime/computed/computed_macros', ['exports', 'ember-metal'], fun
11792
11780
  function deprecatingAlias(dependentKey, options) {
11793
11781
  return _emberMetal.computed(dependentKey, {
11794
11782
  get: function (key) {
11795
- _emberMetal.deprecate('Usage of `' + key + '` is deprecated, use `' + dependentKey + '` instead.', false, options);
11783
+ _emberDebug.deprecate('Usage of `' + key + '` is deprecated, use `' + dependentKey + '` instead.', false, options);
11796
11784
  return _emberMetal.get(this, dependentKey);
11797
11785
  },
11798
11786
  set: function (key, value) {
11799
- _emberMetal.deprecate('Usage of `' + key + '` is deprecated, use `' + dependentKey + '` instead.', false, options);
11787
+ _emberDebug.deprecate('Usage of `' + key + '` is deprecated, use `' + dependentKey + '` instead.', false, options);
11800
11788
  _emberMetal.set(this, dependentKey, value);
11801
11789
  return value;
11802
11790
  }
11803
11791
  });
11804
11792
  }
11805
11793
  });
11806
- enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-utils', 'ember-metal', 'ember-runtime/compare', 'ember-runtime/utils', 'ember-runtime/system/native_array'], function (exports, _emberUtils, _emberMetal, _emberRuntimeCompare, _emberRuntimeUtils, _emberRuntimeSystemNative_array) {
11794
+ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-utils', 'ember-debug', 'ember-metal', 'ember-runtime/compare', 'ember-runtime/utils', 'ember-runtime/system/native_array'], function (exports, _emberUtils, _emberDebug, _emberMetal, _emberRuntimeCompare, _emberRuntimeUtils, _emberRuntimeSystemNative_array) {
11807
11795
  /**
11808
11796
  @module ember
11809
11797
  @submodule ember-runtime
@@ -12060,7 +12048,7 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-utils
12060
12048
  */
12061
12049
 
12062
12050
  function mapBy(dependentKey, propertyKey) {
12063
- _emberMetal.assert('Ember.computed.mapBy expects a property string for its second argument, ' + 'perhaps you meant to use "map"', typeof propertyKey === 'string');
12051
+ _emberDebug.assert('Ember.computed.mapBy expects a property string for its second argument, ' + 'perhaps you meant to use "map"', typeof propertyKey === 'string');
12064
12052
 
12065
12053
  return map(dependentKey + '.@each.' + propertyKey, function (item) {
12066
12054
  return _emberMetal.get(item, propertyKey);
@@ -12097,6 +12085,28 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-utils
12097
12085
  hamster.get('remainingChores'); // [{name: 'write more unit tests', done: false}]
12098
12086
  ```
12099
12087
 
12088
+ You can also use `@each.property` in your dependent key, the callback will still use the underlying array:
12089
+
12090
+ ```javascript
12091
+ let Hamster = Ember.Object.extend({
12092
+ remainingChores: Ember.computed.filter('chores.@each.done', function(chore, index, array) {
12093
+ return !chore.get('done');
12094
+ })
12095
+ });
12096
+
12097
+ let hamster = Hamster.create({
12098
+ chores: Ember.A([
12099
+ Ember.Object.create({ name: 'cook', done: true }),
12100
+ Ember.Object.create({ name: 'clean', done: true }),
12101
+ Ember.Object.create({ name: 'write more unit tests', done: false })
12102
+ ])
12103
+ });
12104
+ hamster.get('remainingChores'); // [{name: 'write more unit tests', done: false}]
12105
+ hamster.get('chores').objectAt(2).set('done', true);
12106
+ hamster.get('remainingChores'); // []
12107
+ ```
12108
+
12109
+
12100
12110
  @method filter
12101
12111
  @for Ember.computed
12102
12112
  @param {String} dependentKey
@@ -12260,7 +12270,33 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-utils
12260
12270
  }
12261
12271
 
12262
12272
  /**
12263
- Alias for [Ember.computed.uniq](/api/#method_computed_uniq).
12273
+ A computed property which returns a new array with all the unique
12274
+ elements from one or more dependent arrays.
12275
+
12276
+ Example
12277
+
12278
+ ```javascript
12279
+ let Hamster = Ember.Object.extend({
12280
+ uniqueFruits: Ember.computed.union('fruits', 'vegetables')
12281
+ });
12282
+
12283
+ let hamster = Hamster.create({
12284
+ fruits: [
12285
+ 'banana',
12286
+ 'grape',
12287
+ 'kale',
12288
+ 'banana',
12289
+ 'tomato'
12290
+ ],
12291
+ vegetables: [
12292
+ 'tomato',
12293
+ 'carrot',
12294
+ 'lettuce'
12295
+ ]
12296
+ });
12297
+
12298
+ hamster.get('uniqueFruits'); // ['banana', 'grape', 'kale', 'tomato', 'carrot', 'lettuce']
12299
+ ```
12264
12300
 
12265
12301
  @method union
12266
12302
  @for Ember.computed
@@ -12273,8 +12309,8 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-utils
12273
12309
 
12274
12310
  exports.union = union;
12275
12311
  /**
12276
- A computed property which returns a new array with all the duplicated
12277
- elements from two or more dependent arrays.
12312
+ A computed property which returns a new array with all the elements
12313
+ two or more dependent arrays have in common.
12278
12314
 
12279
12315
  Example
12280
12316
 
@@ -12369,7 +12405,7 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-utils
12369
12405
 
12370
12406
  function setDiff(setAProperty, setBProperty) {
12371
12407
  if (arguments.length !== 2) {
12372
- throw new _emberMetal.Error('setDiff requires exactly two dependent arrays.');
12408
+ throw new _emberDebug.Error('setDiff requires exactly two dependent arrays.');
12373
12409
  }
12374
12410
 
12375
12411
  return _emberMetal.computed(setAProperty + '.[]', setBProperty + '.[]', function () {
@@ -12504,7 +12540,7 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-utils
12504
12540
  */
12505
12541
 
12506
12542
  function sort(itemsKey, sortDefinition) {
12507
- _emberMetal.assert('Ember.computed.sort requires two arguments: an array key to sort and ' + 'either a sort properties key or sort function', arguments.length === 2);
12543
+ _emberDebug.assert('Ember.computed.sort requires two arguments: an array key to sort and ' + 'either a sort properties key or sort function', arguments.length === 2);
12508
12544
 
12509
12545
  if (typeof sortDefinition === 'function') {
12510
12546
  return customSort(itemsKey, sortDefinition);
@@ -12532,7 +12568,7 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-utils
12532
12568
  var itemsKeyIsAtThis = itemsKey === '@this';
12533
12569
  var sortProperties = _emberMetal.get(this, sortPropertiesKey);
12534
12570
 
12535
- _emberMetal.assert('The sort definition for \'' + key + '\' on ' + this + ' must be a function or an array of strings', _emberRuntimeUtils.isArray(sortProperties) && sortProperties.every(function (s) {
12571
+ _emberDebug.assert('The sort definition for \'' + key + '\' on ' + this + ' must be a function or an array of strings', _emberRuntimeUtils.isArray(sortProperties) && sortProperties.every(function (s) {
12536
12572
  return typeof s === 'string';
12537
12573
  }));
12538
12574
 
@@ -12608,7 +12644,7 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-utils
12608
12644
  }));
12609
12645
  }
12610
12646
  });
12611
- enifed('ember-runtime/controllers/controller', ['exports', 'ember-metal', 'ember-runtime/system/object', 'ember-runtime/mixins/controller', 'ember-runtime/inject', 'ember-runtime/mixins/action_handler'], function (exports, _emberMetal, _emberRuntimeSystemObject, _emberRuntimeMixinsController, _emberRuntimeInject, _emberRuntimeMixinsAction_handler) {
12647
+ enifed('ember-runtime/controllers/controller', ['exports', 'ember-debug', 'ember-runtime/system/object', 'ember-runtime/mixins/controller', 'ember-runtime/inject', 'ember-runtime/mixins/action_handler'], function (exports, _emberDebug, _emberRuntimeSystemObject, _emberRuntimeMixinsController, _emberRuntimeInject, _emberRuntimeMixinsAction_handler) {
12612
12648
  'use strict';
12613
12649
 
12614
12650
  /**
@@ -12628,7 +12664,7 @@ enifed('ember-runtime/controllers/controller', ['exports', 'ember-metal', 'ember
12628
12664
  _emberRuntimeMixinsAction_handler.deprecateUnderscoreActions(Controller);
12629
12665
 
12630
12666
  function controllerInjectionHelper(factory) {
12631
- _emberMetal.assert('Defining an injected controller property on a ' + 'non-controller is not allowed.', _emberRuntimeMixinsController.default.detect(factory.PrototypeMixin));
12667
+ _emberDebug.assert('Defining an injected controller property on a ' + 'non-controller is not allowed.', _emberRuntimeMixinsController.default.detect(factory.PrototypeMixin));
12632
12668
  }
12633
12669
 
12634
12670
  /**
@@ -12666,7 +12702,7 @@ enifed('ember-runtime/controllers/controller', ['exports', 'ember-metal', 'ember
12666
12702
 
12667
12703
  exports.default = Controller;
12668
12704
  });
12669
- enifed('ember-runtime/copy', ['exports', 'ember-metal', 'ember-runtime/system/object', 'ember-runtime/mixins/copyable'], function (exports, _emberMetal, _emberRuntimeSystemObject, _emberRuntimeMixinsCopyable) {
12705
+ enifed('ember-runtime/copy', ['exports', 'ember-debug', 'ember-runtime/system/object', 'ember-runtime/mixins/copyable'], function (exports, _emberDebug, _emberRuntimeSystemObject, _emberRuntimeMixinsCopyable) {
12670
12706
  'use strict';
12671
12707
 
12672
12708
  exports.default = copy;
@@ -12686,7 +12722,7 @@ enifed('ember-runtime/copy', ['exports', 'ember-metal', 'ember-runtime/system/ob
12686
12722
  return copies[loc];
12687
12723
  }
12688
12724
 
12689
- _emberMetal.assert('Cannot clone an Ember.Object that does not implement Ember.Copyable', !(obj instanceof _emberRuntimeSystemObject.default) || _emberRuntimeMixinsCopyable.default && _emberRuntimeMixinsCopyable.default.detect(obj));
12725
+ _emberDebug.assert('Cannot clone an Ember.Object that does not implement Ember.Copyable', !(obj instanceof _emberRuntimeSystemObject.default) || _emberRuntimeMixinsCopyable.default && _emberRuntimeMixinsCopyable.default.detect(obj));
12690
12726
 
12691
12727
  // IMPORTANT: this specific test will detect a native array only. Any other
12692
12728
  // object will need to implement Copyable.
@@ -12763,7 +12799,7 @@ enifed('ember-runtime/copy', ['exports', 'ember-metal', 'ember-runtime/system/ob
12763
12799
  return _copy(obj, deep, deep ? [] : null, deep ? [] : null);
12764
12800
  }
12765
12801
  });
12766
- enifed('ember-runtime/ext/function', ['exports', 'ember-environment', 'ember-metal'], function (exports, _emberEnvironment, _emberMetal) {
12802
+ enifed('ember-runtime/ext/function', ['exports', 'ember-environment', 'ember-metal', 'ember-debug'], function (exports, _emberEnvironment, _emberMetal, _emberDebug) {
12767
12803
  /**
12768
12804
  @module ember
12769
12805
  @submodule ember-runtime
@@ -12858,7 +12894,7 @@ enifed('ember-runtime/ext/function', ['exports', 'ember-environment', 'ember-met
12858
12894
  };
12859
12895
 
12860
12896
  FunctionPrototype._observesImmediately = function () {
12861
- _emberMetal.assert('Immediate observers must observe internal properties only, ' + 'not properties on other objects.', function checkIsInternalProperty() {
12897
+ _emberDebug.assert('Immediate observers must observe internal properties only, ' + 'not properties on other objects.', function checkIsInternalProperty() {
12862
12898
  for (var i = 0; i < arguments.length; i++) {
12863
12899
  if (arguments[i].indexOf('.') !== -1) {
12864
12900
  return false;
@@ -12892,7 +12928,7 @@ enifed('ember-runtime/ext/function', ['exports', 'ember-environment', 'ember-met
12892
12928
  @deprecated
12893
12929
  @private
12894
12930
  */
12895
- FunctionPrototype.observesImmediately = _emberMetal.deprecateFunc('Function#observesImmediately is deprecated. Use Function#observes instead', { id: 'ember-runtime.ext-function', until: '3.0.0' }, FunctionPrototype._observesImmediately);
12931
+ FunctionPrototype.observesImmediately = _emberDebug.deprecateFunc('Function#observesImmediately is deprecated. Use Function#observes instead', { id: 'ember-runtime.ext-function', until: '3.0.0' }, FunctionPrototype._observesImmediately);
12896
12932
 
12897
12933
  /**
12898
12934
  The `on` extension of Javascript's Function prototype is available
@@ -12920,7 +12956,7 @@ enifed('ember-runtime/ext/function', ['exports', 'ember-environment', 'ember-met
12920
12956
  };
12921
12957
  }
12922
12958
  });
12923
- enifed('ember-runtime/ext/rsvp', ['exports', 'rsvp', 'ember-metal'], function (exports, _rsvp, _emberMetal) {
12959
+ enifed('ember-runtime/ext/rsvp', ['exports', 'rsvp', 'ember-metal', 'ember-debug'], function (exports, _rsvp, _emberMetal, _emberDebug) {
12924
12960
  'use strict';
12925
12961
 
12926
12962
  exports.onerrorDefault = onerrorDefault;
@@ -12953,7 +12989,7 @@ enifed('ember-runtime/ext/rsvp', ['exports', 'rsvp', 'ember-metal'], function (e
12953
12989
  }
12954
12990
 
12955
12991
  if (reason.name === 'UnrecognizedURLError') {
12956
- _emberMetal.assert('The URL \'' + reason.message + '\' did not match any routes in your application', false);
12992
+ _emberDebug.assert('The URL \'' + reason.message + '\' did not match any routes in your application', false);
12957
12993
  return;
12958
12994
  }
12959
12995
 
@@ -13181,7 +13217,7 @@ enifed('ember-runtime/index', ['exports', 'ember-runtime/ext/string', 'ember-run
13181
13217
  });
13182
13218
  // just for side effect of extending String.prototype
13183
13219
  // just for side effect of extending Function.prototype
13184
- enifed('ember-runtime/inject', ['exports', 'ember-metal'], function (exports, _emberMetal) {
13220
+ enifed('ember-runtime/inject', ['exports', 'ember-metal', 'ember-debug'], function (exports, _emberMetal, _emberDebug) {
13185
13221
  'use strict';
13186
13222
 
13187
13223
  exports.default = inject;
@@ -13198,7 +13234,7 @@ enifed('ember-runtime/inject', ['exports', 'ember-metal'], function (exports, _e
13198
13234
  */
13199
13235
 
13200
13236
  function inject() {
13201
- _emberMetal.assert('Injected properties must be created through helpers, see \'' + Object.keys(inject).join('"', '"') + '\'');
13237
+ _emberDebug.assert('Injected properties must be created through helpers, see \'' + Object.keys(inject).join('"', '"') + '\'');
13202
13238
  }
13203
13239
 
13204
13240
  // Dictionary of injection validations by type, added to by `createInjectionHelper`
@@ -13315,7 +13351,7 @@ enifed('ember-runtime/is-equal', ['exports'], function (exports) {
13315
13351
  return a === b;
13316
13352
  }
13317
13353
  });
13318
- enifed('ember-runtime/mixins/-proxy', ['exports', 'glimmer-reference', 'ember-metal', 'ember-runtime/computed/computed_macros'], function (exports, _glimmerReference, _emberMetal, _emberRuntimeComputedComputed_macros) {
13354
+ enifed('ember-runtime/mixins/-proxy', ['exports', '@glimmer/reference', 'ember-metal', 'ember-debug', 'ember-runtime/computed/computed_macros'], function (exports, _glimmerReference, _emberMetal, _emberDebug, _emberRuntimeComputedComputed_macros) {
13319
13355
  /**
13320
13356
  @module ember
13321
13357
  @submodule ember-runtime
@@ -13397,7 +13433,7 @@ enifed('ember-runtime/mixins/-proxy', ['exports', 'glimmer-reference', 'ember-me
13397
13433
  }),
13398
13434
 
13399
13435
  _contentDidChange: _emberMetal.observer('content', function () {
13400
- _emberMetal.assert('Can\'t set Proxy\'s content to itself', _emberMetal.get(this, 'content') !== this);
13436
+ _emberDebug.assert('Can\'t set Proxy\'s content to itself', _emberMetal.get(this, 'content') !== this);
13401
13437
  _emberMetal.tagFor(this).contentDidChange();
13402
13438
  }),
13403
13439
 
@@ -13420,7 +13456,7 @@ enifed('ember-runtime/mixins/-proxy', ['exports', 'glimmer-reference', 'ember-me
13420
13456
  unknownProperty: function (key) {
13421
13457
  var content = _emberMetal.get(this, 'content');
13422
13458
  if (content) {
13423
- _emberMetal.deprecate('You attempted to access `' + key + '` from `' + this + '`, but object proxying is deprecated. Please use `model.' + key + '` instead.', !this.isController, { id: 'ember-runtime.controller-proxy', until: '3.0.0' });
13459
+ _emberDebug.deprecate('You attempted to access `' + key + '` from `' + this + '`, but object proxying is deprecated. Please use `model.' + key + '` instead.', !this.isController, { id: 'ember-runtime.controller-proxy', until: '3.0.0' });
13424
13460
  return _emberMetal.get(content, key);
13425
13461
  }
13426
13462
  },
@@ -13435,14 +13471,14 @@ enifed('ember-runtime/mixins/-proxy', ['exports', 'glimmer-reference', 'ember-me
13435
13471
  }
13436
13472
 
13437
13473
  var content = _emberMetal.get(this, 'content');
13438
- _emberMetal.assert('Cannot delegate set(\'' + key + '\', ' + value + ') to the \'content\' property of object proxy ' + this + ': its \'content\' is undefined.', content);
13474
+ _emberDebug.assert('Cannot delegate set(\'' + key + '\', ' + value + ') to the \'content\' property of object proxy ' + this + ': its \'content\' is undefined.', content);
13439
13475
 
13440
- _emberMetal.deprecate('You attempted to set `' + key + '` from `' + this + '`, but object proxying is deprecated. Please use `model.' + key + '` instead.', !this.isController, { id: 'ember-runtime.controller-proxy', until: '3.0.0' });
13476
+ _emberDebug.deprecate('You attempted to set `' + key + '` from `' + this + '`, but object proxying is deprecated. Please use `model.' + key + '` instead.', !this.isController, { id: 'ember-runtime.controller-proxy', until: '3.0.0' });
13441
13477
  return _emberMetal.set(content, key, value);
13442
13478
  }
13443
13479
  });
13444
13480
  });
13445
- enifed('ember-runtime/mixins/action_handler', ['exports', 'ember-metal'], function (exports, _emberMetal) {
13481
+ enifed('ember-runtime/mixins/action_handler', ['exports', 'ember-metal', 'ember-debug'], function (exports, _emberMetal, _emberDebug) {
13446
13482
  /**
13447
13483
  @module ember
13448
13484
  @submodule ember-runtime
@@ -13607,16 +13643,16 @@ enifed('ember-runtime/mixins/action_handler', ['exports', 'ember-metal'], functi
13607
13643
 
13608
13644
  var target = _emberMetal.get(this, 'target');
13609
13645
  if (target) {
13610
- _emberMetal.assert('The `target` for ' + this + ' (' + target + ') does not have a `send` method', typeof target.send === 'function');
13646
+ _emberDebug.assert('The `target` for ' + this + ' (' + target + ') does not have a `send` method', typeof target.send === 'function');
13611
13647
  target.send.apply(target, arguments);
13612
13648
  }
13613
13649
  },
13614
13650
 
13615
13651
  willMergeMixin: function (props) {
13616
- _emberMetal.assert('Specifying `_actions` and `actions` in the same mixin is not supported.', !props.actions || !props._actions);
13652
+ _emberDebug.assert('Specifying `_actions` and `actions` in the same mixin is not supported.', !props.actions || !props._actions);
13617
13653
 
13618
13654
  if (props._actions) {
13619
- _emberMetal.deprecate('Specifying actions in `_actions` is deprecated, please use `actions` instead.', false, { id: 'ember-runtime.action-handler-_actions', until: '3.0.0' });
13655
+ _emberDebug.deprecate('Specifying actions in `_actions` is deprecated, please use `actions` instead.', false, { id: 'ember-runtime.action-handler-_actions', until: '3.0.0' });
13620
13656
 
13621
13657
  props.actions = props._actions;
13622
13658
  delete props._actions;
@@ -13631,16 +13667,16 @@ enifed('ember-runtime/mixins/action_handler', ['exports', 'ember-metal'], functi
13631
13667
  configurable: true,
13632
13668
  enumerable: false,
13633
13669
  set: function (value) {
13634
- _emberMetal.assert('You cannot set `_actions` on ' + this + ', please use `actions` instead.');
13670
+ _emberDebug.assert('You cannot set `_actions` on ' + this + ', please use `actions` instead.');
13635
13671
  },
13636
13672
  get: function () {
13637
- _emberMetal.deprecate('Usage of `_actions` is deprecated, use `actions` instead.', false, { id: 'ember-runtime.action-handler-_actions', until: '3.0.0' });
13673
+ _emberDebug.deprecate('Usage of `_actions` is deprecated, use `actions` instead.', false, { id: 'ember-runtime.action-handler-_actions', until: '3.0.0' });
13638
13674
  return _emberMetal.get(this, 'actions');
13639
13675
  }
13640
13676
  });
13641
13677
  }
13642
13678
  });
13643
- enifed('ember-runtime/mixins/array', ['exports', 'ember-utils', 'ember-metal', 'ember-runtime/mixins/enumerable', 'ember-runtime/system/each_proxy'], function (exports, _emberUtils, _emberMetal, _emberRuntimeMixinsEnumerable, _emberRuntimeSystemEach_proxy) {
13679
+ enifed('ember-runtime/mixins/array', ['exports', 'ember-utils', 'ember-metal', 'ember-debug', 'ember-runtime/mixins/enumerable', 'ember-runtime/system/each_proxy'], function (exports, _emberUtils, _emberMetal, _emberDebug, _emberRuntimeMixinsEnumerable, _emberRuntimeSystemEach_proxy) {
13644
13680
  /**
13645
13681
  @module ember
13646
13682
  @submodule ember-runtime
@@ -13859,7 +13895,7 @@ enifed('ember-runtime/mixins/array', ['exports', 'ember-utils', 'ember-metal', '
13859
13895
  }).readOnly(), _Mixin$create.lastObject = _emberMetal.computed(function () {
13860
13896
  return objectAt(this, _emberMetal.get(this, 'length') - 1);
13861
13897
  }).readOnly(), _Mixin$create.contains = function (obj) {
13862
- _emberMetal.deprecate('`Enumerable#contains` is deprecated, use `Enumerable#includes` instead.', false, { id: 'ember-runtime.enumerable-contains', until: '3.0.0', url: 'http://emberjs.com/deprecations/v2.x#toc_enumerable-contains' });
13898
+ _emberDebug.deprecate('`Enumerable#contains` is deprecated, use `Enumerable#includes` instead.', false, { id: 'ember-runtime.enumerable-contains', until: '3.0.0', url: 'http://emberjs.com/deprecations/v2.x#toc_enumerable-contains' });
13863
13899
 
13864
13900
  return this.indexOf(obj) >= 0;
13865
13901
  }, _Mixin$create.slice = function (beginIndex, endIndex) {
@@ -14240,7 +14276,7 @@ enifed('ember-runtime/mixins/comparable', ['exports', 'ember-metal'], function (
14240
14276
  compare: null
14241
14277
  });
14242
14278
  });
14243
- enifed('ember-runtime/mixins/container_proxy', ['exports', 'ember-metal', 'container'], function (exports, _emberMetal, _container) {
14279
+ enifed('ember-runtime/mixins/container_proxy', ['exports', 'ember-metal', 'container', 'ember-debug'], function (exports, _emberMetal, _container, _emberDebug) {
14244
14280
  /**
14245
14281
  @module ember
14246
14282
  @submodule ember-runtime
@@ -14350,7 +14386,7 @@ enifed('ember-runtime/mixins/container_proxy', ['exports', 'ember-metal', 'conta
14350
14386
  }
14351
14387
  }, _containerProxyMixin);
14352
14388
 
14353
- if (_emberMetal.isFeatureEnabled('ember-factory-for')) {
14389
+ if (_emberDebug.isFeatureEnabled('ember-factory-for')) {
14354
14390
  /**
14355
14391
  Given a fullName return a factory manager.
14356
14392
  This method returns a manager which can be used for introspection of the
@@ -14448,7 +14484,7 @@ enifed('ember-runtime/mixins/controller', ['exports', 'ember-metal', 'ember-runt
14448
14484
 
14449
14485
  });
14450
14486
  });
14451
- enifed('ember-runtime/mixins/controller_content_model_alias_deprecation', ['exports', 'ember-metal'], function (exports, _emberMetal) {
14487
+ enifed('ember-runtime/mixins/controller_content_model_alias_deprecation', ['exports', 'ember-metal', 'ember-debug'], function (exports, _emberMetal, _emberDebug) {
14452
14488
  'use strict';
14453
14489
 
14454
14490
  /*
@@ -14486,12 +14522,12 @@ enifed('ember-runtime/mixins/controller_content_model_alias_deprecation', ['expo
14486
14522
  props.model = props.content;
14487
14523
  delete props['content'];
14488
14524
 
14489
- _emberMetal.deprecate('Do not specify `content` on a Controller, use `model` instead.', false, { id: 'ember-runtime.will-merge-mixin', until: '3.0.0' });
14525
+ _emberDebug.deprecate('Do not specify `content` on a Controller, use `model` instead.', false, { id: 'ember-runtime.will-merge-mixin', until: '3.0.0' });
14490
14526
  }
14491
14527
  }
14492
14528
  });
14493
14529
  });
14494
- enifed('ember-runtime/mixins/copyable', ['exports', 'ember-metal', 'ember-runtime/mixins/freezable'], function (exports, _emberMetal, _emberRuntimeMixinsFreezable) {
14530
+ enifed('ember-runtime/mixins/copyable', ['exports', 'ember-metal', 'ember-debug', 'ember-runtime/mixins/freezable'], function (exports, _emberMetal, _emberDebug, _emberRuntimeMixinsFreezable) {
14495
14531
  /**
14496
14532
  @module ember
14497
14533
  @submodule ember-runtime
@@ -14541,16 +14577,16 @@ enifed('ember-runtime/mixins/copyable', ['exports', 'ember-metal', 'ember-runtim
14541
14577
  @private
14542
14578
  */
14543
14579
  frozenCopy: function () {
14544
- _emberMetal.deprecate('`frozenCopy` is deprecated, use `Object.freeze` instead.', false, { id: 'ember-runtime.frozen-copy', until: '3.0.0' });
14580
+ _emberDebug.deprecate('`frozenCopy` is deprecated, use `Object.freeze` instead.', false, { id: 'ember-runtime.frozen-copy', until: '3.0.0' });
14545
14581
  if (_emberRuntimeMixinsFreezable.Freezable && _emberRuntimeMixinsFreezable.Freezable.detect(this)) {
14546
14582
  return _emberMetal.get(this, 'isFrozen') ? this : this.copy().freeze();
14547
14583
  } else {
14548
- throw new _emberMetal.Error(this + ' does not support freezing');
14584
+ throw new _emberDebug.Error(this + ' does not support freezing');
14549
14585
  }
14550
14586
  }
14551
14587
  });
14552
14588
  });
14553
- enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-utils', 'ember-metal', 'ember-runtime/compare', 'require'], function (exports, _emberUtils, _emberMetal, _emberRuntimeCompare, _require) {
14589
+ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-utils', 'ember-metal', 'ember-debug', 'ember-runtime/compare', 'require'], function (exports, _emberUtils, _emberMetal, _emberDebug, _emberRuntimeCompare, _require) {
14554
14590
  /**
14555
14591
  @module ember
14556
14592
  @submodule ember-runtime
@@ -14747,7 +14783,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-utils', 'ember-meta
14747
14783
  @public
14748
14784
  */
14749
14785
  contains: function (obj) {
14750
- _emberMetal.deprecate('`Enumerable#contains` is deprecated, use `Enumerable#includes` instead.', false, { id: 'ember-runtime.enumerable-contains', until: '3.0.0', url: 'http://emberjs.com/deprecations/v2.x#toc_enumerable-contains' });
14786
+ _emberDebug.deprecate('`Enumerable#contains` is deprecated, use `Enumerable#includes` instead.', false, { id: 'ember-runtime.enumerable-contains', until: '3.0.0', url: 'http://emberjs.com/deprecations/v2.x#toc_enumerable-contains' });
14751
14787
 
14752
14788
  var found = this.find(function (item) {
14753
14789
  return item === obj;
@@ -15576,7 +15612,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-utils', 'ember-meta
15576
15612
  @public
15577
15613
  */
15578
15614
  includes: function (obj) {
15579
- _emberMetal.assert('Enumerable#includes cannot accept a second argument "startAt" as enumerable items are unordered.', arguments.length === 1);
15615
+ _emberDebug.assert('Enumerable#includes cannot accept a second argument "startAt" as enumerable items are unordered.', arguments.length === 1);
15580
15616
 
15581
15617
  var len = _emberMetal.get(this, 'length');
15582
15618
  var idx = undefined,
@@ -15746,7 +15782,7 @@ enifed('ember-runtime/mixins/evented', ['exports', 'ember-metal'], function (exp
15746
15782
  }
15747
15783
  });
15748
15784
  });
15749
- enifed('ember-runtime/mixins/freezable', ['exports', 'ember-metal'], function (exports, _emberMetal) {
15785
+ enifed('ember-runtime/mixins/freezable', ['exports', 'ember-metal', 'ember-debug'], function (exports, _emberMetal, _emberDebug) {
15750
15786
  /**
15751
15787
  @module ember
15752
15788
  @submodule ember-runtime
@@ -15815,7 +15851,7 @@ enifed('ember-runtime/mixins/freezable', ['exports', 'ember-metal'], function (e
15815
15851
  var Freezable = _emberMetal.Mixin.create({
15816
15852
 
15817
15853
  init: function () {
15818
- _emberMetal.deprecate('`Ember.Freezable` is deprecated, use `Object.freeze` instead.', false, { id: 'ember-runtime.freezable-init', until: '3.0.0' });
15854
+ _emberDebug.deprecate('`Ember.Freezable` is deprecated, use `Object.freeze` instead.', false, { id: 'ember-runtime.freezable-init', until: '3.0.0' });
15819
15855
  this._super.apply(this, arguments);
15820
15856
  },
15821
15857
 
@@ -15850,7 +15886,7 @@ enifed('ember-runtime/mixins/freezable', ['exports', 'ember-metal'], function (e
15850
15886
  var FROZEN_ERROR = 'Frozen object cannot be modified.';
15851
15887
  exports.FROZEN_ERROR = FROZEN_ERROR;
15852
15888
  });
15853
- enifed('ember-runtime/mixins/mutable_array', ['exports', 'ember-metal', 'ember-runtime/mixins/array', 'ember-runtime/mixins/mutable_enumerable', 'ember-runtime/mixins/enumerable'], function (exports, _emberMetal, _emberRuntimeMixinsArray, _emberRuntimeMixinsMutable_enumerable, _emberRuntimeMixinsEnumerable) {
15889
+ enifed('ember-runtime/mixins/mutable_array', ['exports', 'ember-metal', 'ember-runtime/mixins/array', 'ember-runtime/mixins/mutable_enumerable', 'ember-runtime/mixins/enumerable', 'ember-debug'], function (exports, _emberMetal, _emberRuntimeMixinsArray, _emberRuntimeMixinsMutable_enumerable, _emberRuntimeMixinsEnumerable, _emberDebug) {
15854
15890
  /**
15855
15891
  @module ember
15856
15892
  @submodule ember-runtime
@@ -15869,7 +15905,7 @@ enifed('ember-runtime/mixins/mutable_array', ['exports', 'ember-metal', 'ember-r
15869
15905
  function removeAt(array, start, len) {
15870
15906
  if ('number' === typeof start) {
15871
15907
  if (start < 0 || start >= _emberMetal.get(array, 'length')) {
15872
- throw new _emberMetal.Error(OUT_OF_RANGE_EXCEPTION);
15908
+ throw new _emberDebug.Error(OUT_OF_RANGE_EXCEPTION);
15873
15909
  }
15874
15910
 
15875
15911
  // fast case
@@ -15961,7 +15997,7 @@ enifed('ember-runtime/mixins/mutable_array', ['exports', 'ember-metal', 'ember-r
15961
15997
  */
15962
15998
  insertAt: function (idx, object) {
15963
15999
  if (idx > _emberMetal.get(this, 'length')) {
15964
- throw new _emberMetal.Error(OUT_OF_RANGE_EXCEPTION);
16000
+ throw new _emberDebug.Error(OUT_OF_RANGE_EXCEPTION);
15965
16001
  }
15966
16002
 
15967
16003
  this.replace(idx, 0, [object]);
@@ -16316,7 +16352,7 @@ enifed('ember-runtime/mixins/mutable_enumerable', ['exports', 'ember-runtime/mix
16316
16352
  }
16317
16353
  });
16318
16354
  });
16319
- enifed('ember-runtime/mixins/observable', ['exports', 'ember-metal'], function (exports, _emberMetal) {
16355
+ enifed('ember-runtime/mixins/observable', ['exports', 'ember-metal', 'ember-debug'], function (exports, _emberMetal, _emberDebug) {
16320
16356
  /**
16321
16357
  @module ember
16322
16358
  @submodule ember-runtime
@@ -16697,7 +16733,7 @@ enifed('ember-runtime/mixins/observable', ['exports', 'ember-metal'], function (
16697
16733
  if (_emberMetal.isNone(increment)) {
16698
16734
  increment = 1;
16699
16735
  }
16700
- _emberMetal.assert('Must pass a numeric value to incrementProperty', !isNaN(parseFloat(increment)) && isFinite(increment));
16736
+ _emberDebug.assert('Must pass a numeric value to incrementProperty', !isNaN(parseFloat(increment)) && isFinite(increment));
16701
16737
  return _emberMetal.set(this, keyName, (parseFloat(_emberMetal.get(this, keyName)) || 0) + increment);
16702
16738
  },
16703
16739
 
@@ -16717,7 +16753,7 @@ enifed('ember-runtime/mixins/observable', ['exports', 'ember-metal'], function (
16717
16753
  if (_emberMetal.isNone(decrement)) {
16718
16754
  decrement = 1;
16719
16755
  }
16720
- _emberMetal.assert('Must pass a numeric value to decrementProperty', !isNaN(parseFloat(decrement)) && isFinite(decrement));
16756
+ _emberDebug.assert('Must pass a numeric value to decrementProperty', !isNaN(parseFloat(decrement)) && isFinite(decrement));
16721
16757
  return _emberMetal.set(this, keyName, (_emberMetal.get(this, keyName) || 0) - decrement);
16722
16758
  },
16723
16759
 
@@ -16756,7 +16792,7 @@ enifed('ember-runtime/mixins/observable', ['exports', 'ember-metal'], function (
16756
16792
  }
16757
16793
  });
16758
16794
  });
16759
- enifed('ember-runtime/mixins/promise_proxy', ['exports', 'ember-metal', 'ember-runtime/computed/computed_macros'], function (exports, _emberMetal, _emberRuntimeComputedComputed_macros) {
16795
+ enifed('ember-runtime/mixins/promise_proxy', ['exports', 'ember-metal', 'ember-debug', 'ember-runtime/computed/computed_macros'], function (exports, _emberMetal, _emberDebug, _emberRuntimeComputedComputed_macros) {
16760
16796
  'use strict';
16761
16797
 
16762
16798
  /**
@@ -16904,7 +16940,7 @@ enifed('ember-runtime/mixins/promise_proxy', ['exports', 'ember-metal', 'ember-r
16904
16940
  */
16905
16941
  promise: _emberMetal.computed({
16906
16942
  get: function () {
16907
- throw new _emberMetal.Error('PromiseProxy\'s promise must be set');
16943
+ throw new _emberDebug.Error('PromiseProxy\'s promise must be set');
16908
16944
  },
16909
16945
  set: function (key, promise) {
16910
16946
  return tap(this, promise);
@@ -16952,7 +16988,7 @@ enifed('ember-runtime/mixins/promise_proxy', ['exports', 'ember-metal', 'ember-r
16952
16988
  };
16953
16989
  }
16954
16990
  });
16955
- enifed('ember-runtime/mixins/registry_proxy', ['exports', 'ember-metal'], function (exports, _emberMetal) {
16991
+ enifed('ember-runtime/mixins/registry_proxy', ['exports', 'ember-metal', 'ember-debug'], function (exports, _emberMetal, _emberDebug) {
16956
16992
  /**
16957
16993
  @module ember
16958
16994
  @submodule ember-runtime
@@ -17197,7 +17233,7 @@ enifed('ember-runtime/mixins/registry_proxy', ['exports', 'ember-metal'], functi
17197
17233
 
17198
17234
  function buildFakeRegistryFunction(instance, typeForMessage, deprecatedProperty, nonDeprecatedProperty) {
17199
17235
  return function () {
17200
- _emberMetal.deprecate('Using `' + typeForMessage + '.registry.' + deprecatedProperty + '` is deprecated. Please use `' + typeForMessage + '.' + nonDeprecatedProperty + '` instead.', false, {
17236
+ _emberDebug.deprecate('Using `' + typeForMessage + '.registry.' + deprecatedProperty + '` is deprecated. Please use `' + typeForMessage + '.' + nonDeprecatedProperty + '` instead.', false, {
17201
17237
  id: 'ember-application.app-instance-registry',
17202
17238
  until: '3.0.0',
17203
17239
  url: 'http://emberjs.com/deprecations/v2.x/#toc_ember-application-registry-ember-applicationinstance-registry'
@@ -17206,7 +17242,7 @@ enifed('ember-runtime/mixins/registry_proxy', ['exports', 'ember-metal'], functi
17206
17242
  };
17207
17243
  }
17208
17244
  });
17209
- enifed('ember-runtime/mixins/target_action_support', ['exports', 'ember-environment', 'ember-metal'], function (exports, _emberEnvironment, _emberMetal) {
17245
+ enifed('ember-runtime/mixins/target_action_support', ['exports', 'ember-environment', 'ember-metal', 'ember-debug'], function (exports, _emberEnvironment, _emberMetal, _emberDebug) {
17210
17246
  /**
17211
17247
  @module ember
17212
17248
  @submodule ember-runtime
@@ -17327,7 +17363,7 @@ enifed('ember-runtime/mixins/target_action_support', ['exports', 'ember-environm
17327
17363
  } else {
17328
17364
  var _target2;
17329
17365
 
17330
- _emberMetal.assert('The action \'' + action + '\' did not exist on ' + target, typeof target[action] === 'function');
17366
+ _emberDebug.assert('The action \'' + action + '\' did not exist on ' + target, typeof target[action] === 'function');
17331
17367
  ret = (_target2 = target)[action].apply(_target2, args(actionContext));
17332
17368
  }
17333
17369
 
@@ -17401,7 +17437,7 @@ enifed('ember-runtime/system/application', ['exports', 'ember-runtime/system/nam
17401
17437
 
17402
17438
  exports.default = _emberRuntimeSystemNamespace.default.extend();
17403
17439
  });
17404
- enifed('ember-runtime/system/array_proxy', ['exports', 'ember-metal', 'ember-runtime/utils', 'ember-runtime/system/object', 'ember-runtime/mixins/mutable_array', 'ember-runtime/mixins/enumerable', 'ember-runtime/mixins/array'], function (exports, _emberMetal, _emberRuntimeUtils, _emberRuntimeSystemObject, _emberRuntimeMixinsMutable_array, _emberRuntimeMixinsEnumerable, _emberRuntimeMixinsArray) {
17440
+ enifed('ember-runtime/system/array_proxy', ['exports', 'ember-metal', 'ember-runtime/utils', 'ember-runtime/system/object', 'ember-runtime/mixins/mutable_array', 'ember-runtime/mixins/enumerable', 'ember-runtime/mixins/array', 'ember-debug'], function (exports, _emberMetal, _emberRuntimeUtils, _emberRuntimeSystemObject, _emberRuntimeMixinsMutable_array, _emberRuntimeMixinsEnumerable, _emberRuntimeMixinsArray, _emberDebug) {
17405
17441
  'use strict';
17406
17442
 
17407
17443
  /**
@@ -17557,7 +17593,7 @@ enifed('ember-runtime/system/array_proxy', ['exports', 'ember-metal', 'ember-run
17557
17593
  _contentDidChange: _emberMetal.observer('content', function () {
17558
17594
  var content = _emberMetal.get(this, 'content');
17559
17595
 
17560
- _emberMetal.assert('Can\'t set ArrayProxy\'s content to itself', content !== this);
17596
+ _emberDebug.assert('Can\'t set ArrayProxy\'s content to itself', content !== this);
17561
17597
 
17562
17598
  this._setupContent();
17563
17599
  }),
@@ -17566,7 +17602,7 @@ enifed('ember-runtime/system/array_proxy', ['exports', 'ember-metal', 'ember-run
17566
17602
  var content = _emberMetal.get(this, 'content');
17567
17603
 
17568
17604
  if (content) {
17569
- _emberMetal.assert('ArrayProxy expects an Array or Ember.ArrayProxy, but you passed ' + typeof content, _emberRuntimeUtils.isArray(content) || content.isDestroyed);
17605
+ _emberDebug.assert('ArrayProxy expects an Array or Ember.ArrayProxy, but you passed ' + typeof content, _emberRuntimeUtils.isArray(content) || content.isDestroyed);
17570
17606
 
17571
17607
  _emberRuntimeMixinsArray.addArrayObserver(content, this, {
17572
17608
  willChange: 'contentArrayWillChange',
@@ -17589,7 +17625,7 @@ enifed('ember-runtime/system/array_proxy', ['exports', 'ember-metal', 'ember-run
17589
17625
  var arrangedContent = _emberMetal.get(this, 'arrangedContent');
17590
17626
  var len = arrangedContent ? _emberMetal.get(arrangedContent, 'length') : 0;
17591
17627
 
17592
- _emberMetal.assert('Can\'t set ArrayProxy\'s content to itself', arrangedContent !== this);
17628
+ _emberDebug.assert('Can\'t set ArrayProxy\'s content to itself', arrangedContent !== this);
17593
17629
 
17594
17630
  this._setupArrangedContent();
17595
17631
 
@@ -17601,7 +17637,7 @@ enifed('ember-runtime/system/array_proxy', ['exports', 'ember-metal', 'ember-run
17601
17637
  var arrangedContent = _emberMetal.get(this, 'arrangedContent');
17602
17638
 
17603
17639
  if (arrangedContent) {
17604
- _emberMetal.assert('ArrayProxy expects an Array or Ember.ArrayProxy, but you passed ' + typeof arrangedContent, _emberRuntimeUtils.isArray(arrangedContent) || arrangedContent.isDestroyed);
17640
+ _emberDebug.assert('ArrayProxy expects an Array or Ember.ArrayProxy, but you passed ' + typeof arrangedContent, _emberRuntimeUtils.isArray(arrangedContent) || arrangedContent.isDestroyed);
17605
17641
 
17606
17642
  _emberRuntimeMixinsArray.addArrayObserver(arrangedContent, this, {
17607
17643
  willChange: 'arrangedContentArrayWillChange',
@@ -17636,7 +17672,7 @@ enifed('ember-runtime/system/array_proxy', ['exports', 'ember-metal', 'ember-run
17636
17672
 
17637
17673
  _replace: function (idx, amt, objects) {
17638
17674
  var content = _emberMetal.get(this, 'content');
17639
- _emberMetal.assert('The content property of ' + this.constructor + ' should be set before modifying it', content);
17675
+ _emberDebug.assert('The content property of ' + this.constructor + ' should be set before modifying it', content);
17640
17676
  if (content) {
17641
17677
  this.replaceContent(idx, amt, objects);
17642
17678
  }
@@ -17648,13 +17684,13 @@ enifed('ember-runtime/system/array_proxy', ['exports', 'ember-metal', 'ember-run
17648
17684
  if (_emberMetal.get(this, 'arrangedContent') === _emberMetal.get(this, 'content')) {
17649
17685
  this._replace.apply(this, arguments);
17650
17686
  } else {
17651
- throw new _emberMetal.Error('Using replace on an arranged ArrayProxy is not allowed.');
17687
+ throw new _emberDebug.Error('Using replace on an arranged ArrayProxy is not allowed.');
17652
17688
  }
17653
17689
  },
17654
17690
 
17655
17691
  _insertAt: function (idx, object) {
17656
17692
  if (idx > _emberMetal.get(this, 'content.length')) {
17657
- throw new _emberMetal.Error(OUT_OF_RANGE_EXCEPTION);
17693
+ throw new _emberDebug.Error(OUT_OF_RANGE_EXCEPTION);
17658
17694
  }
17659
17695
 
17660
17696
  this._replace(idx, 0, [object]);
@@ -17665,7 +17701,7 @@ enifed('ember-runtime/system/array_proxy', ['exports', 'ember-metal', 'ember-run
17665
17701
  if (_emberMetal.get(this, 'arrangedContent') === _emberMetal.get(this, 'content')) {
17666
17702
  return this._insertAt(idx, object);
17667
17703
  } else {
17668
- throw new _emberMetal.Error('Using insertAt on an arranged ArrayProxy is not allowed.');
17704
+ throw new _emberDebug.Error('Using insertAt on an arranged ArrayProxy is not allowed.');
17669
17705
  }
17670
17706
  },
17671
17707
 
@@ -17676,7 +17712,7 @@ enifed('ember-runtime/system/array_proxy', ['exports', 'ember-metal', 'ember-run
17676
17712
  var indices = [];
17677
17713
 
17678
17714
  if (start < 0 || start >= _emberMetal.get(this, 'length')) {
17679
- throw new _emberMetal.Error(OUT_OF_RANGE_EXCEPTION);
17715
+ throw new _emberDebug.Error(OUT_OF_RANGE_EXCEPTION);
17680
17716
  }
17681
17717
 
17682
17718
  if (len === undefined) {
@@ -17762,11 +17798,7 @@ enifed('ember-runtime/system/array_proxy', ['exports', 'ember-metal', 'ember-run
17762
17798
  }
17763
17799
  });
17764
17800
  });
17765
- enifed('ember-runtime/system/core_object', ['exports', 'ember-utils', 'ember-metal', 'ember-runtime/mixins/action_handler', 'ember-runtime/inject'], function (exports, _emberUtils, _emberMetal, _emberRuntimeMixinsAction_handler, _emberRuntimeInject) {
17766
- 'no use strict';
17767
- // Remove "use strict"; from transpiled module until
17768
- // https://bugs.webkit.org/show_bug.cgi?id=138038 is fixed
17769
-
17801
+ enifed('ember-runtime/system/core_object', ['exports', 'ember-utils', 'ember-metal', 'ember-runtime/mixins/action_handler', 'ember-runtime/inject', 'ember-debug'], function (exports, _emberUtils, _emberMetal, _emberRuntimeMixinsAction_handler, _emberRuntimeInject, _emberDebug) {
17770
17802
  /**
17771
17803
  @module ember
17772
17804
  @submodule ember-runtime
@@ -17774,6 +17806,7 @@ enifed('ember-runtime/system/core_object', ['exports', 'ember-utils', 'ember-met
17774
17806
 
17775
17807
  // using ember-metal/lib/main here to ensure that ember-debug is setup
17776
17808
  // if present
17809
+ 'use strict';
17777
17810
 
17778
17811
  var _Mixin$create, _ClassMixinProps;
17779
17812
 
@@ -17820,10 +17853,10 @@ enifed('ember-runtime/system/core_object', ['exports', 'ember-utils', 'ember-met
17820
17853
 
17821
17854
  for (var i = 0; i < props.length; i++) {
17822
17855
  var properties = props[i];
17823
- _emberMetal.assert('Ember.Object.create no longer supports mixing in other ' + 'definitions, use .extend & .create separately instead.', !(properties instanceof _emberMetal.Mixin));
17856
+ _emberDebug.assert('Ember.Object.create no longer supports mixing in other ' + 'definitions, use .extend & .create separately instead.', !(properties instanceof _emberMetal.Mixin));
17824
17857
 
17825
17858
  if (typeof properties !== 'object' && properties !== undefined) {
17826
- throw new _emberMetal.Error('Ember.Object.create only accepts objects.');
17859
+ throw new _emberDebug.Error('Ember.Object.create only accepts objects.');
17827
17860
  }
17828
17861
 
17829
17862
  if (!properties) {
@@ -17843,9 +17876,9 @@ enifed('ember-runtime/system/core_object', ['exports', 'ember-utils', 'ember-met
17843
17876
  var possibleDesc = this[keyName];
17844
17877
  var desc = possibleDesc !== null && typeof possibleDesc === 'object' && possibleDesc.isDescriptor ? possibleDesc : undefined;
17845
17878
 
17846
- _emberMetal.assert('Ember.Object.create no longer supports defining computed ' + 'properties. Define computed properties using extend() or reopen() ' + 'before calling create().', !(value instanceof _emberMetal.ComputedProperty));
17847
- _emberMetal.assert('Ember.Object.create no longer supports defining methods that call _super.', !(typeof value === 'function' && value.toString().indexOf('._super') !== -1));
17848
- _emberMetal.assert('`actions` must be provided at extend time, not at create time, ' + 'when Ember.ActionHandler is used (i.e. views, controllers & routes).', !(keyName === 'actions' && _emberRuntimeMixinsAction_handler.default.detect(this)));
17879
+ _emberDebug.assert('Ember.Object.create no longer supports defining computed ' + 'properties. Define computed properties using extend() or reopen() ' + 'before calling create().', !(value instanceof _emberMetal.ComputedProperty));
17880
+ _emberDebug.assert('Ember.Object.create no longer supports defining methods that call _super.', !(typeof value === 'function' && value.toString().indexOf('._super') !== -1));
17881
+ _emberDebug.assert('`actions` must be provided at extend time, not at create time, ' + 'when Ember.ActionHandler is used (i.e. views, controllers & routes).', !(keyName === 'actions' && _emberRuntimeMixinsAction_handler.default.detect(this)));
17849
17882
 
17850
17883
  if (concatenatedProperties && concatenatedProperties.length > 0 && concatenatedProperties.indexOf(keyName) >= 0) {
17851
17884
  var baseValue = this[keyName];
@@ -17873,7 +17906,7 @@ enifed('ember-runtime/system/core_object', ['exports', 'ember-utils', 'ember-met
17873
17906
  if (typeof this.setUnknownProperty === 'function' && !(keyName in this)) {
17874
17907
  this.setUnknownProperty(keyName, value);
17875
17908
  } else {
17876
- if (_emberMetal.isFeatureEnabled('mandatory-setter')) {
17909
+ if (_emberDebug.isFeatureEnabled('mandatory-setter')) {
17877
17910
  _emberMetal.defineProperty(this, keyName, null, value); // setup mandatory setter
17878
17911
  } else {
17879
17912
  this[keyName] = value;
@@ -17987,7 +18020,7 @@ enifed('ember-runtime/system/core_object', ['exports', 'ember-utils', 'ember-met
17987
18020
  return;
17988
18021
  }
17989
18022
 
17990
- _emberMetal.assert(('You cannot set `' + this + '.isDestroyed` directly, please use ').destroy()(_templateObject), false);
18023
+ _emberDebug.assert(('You cannot set `' + this + '.isDestroyed` directly, please use ').destroy()(_templateObject), false);
17991
18024
  }
17992
18025
  }), _Mixin$create.isDestroying = _emberMetal.descriptor({
17993
18026
  get: function () {
@@ -18000,7 +18033,7 @@ enifed('ember-runtime/system/core_object', ['exports', 'ember-utils', 'ember-met
18000
18033
  return;
18001
18034
  }
18002
18035
 
18003
- _emberMetal.assert(('You cannot set `' + this + '.isDestroying` directly, please use ').destroy()(_templateObject), false);
18036
+ _emberDebug.assert(('You cannot set `' + this + '.isDestroying` directly, please use ').destroy()(_templateObject), false);
18004
18037
  }
18005
18038
  }), _Mixin$create.destroy = function () {
18006
18039
  var m = _emberMetal.meta(this);
@@ -18105,7 +18138,7 @@ enifed('ember-runtime/system/core_object', ['exports', 'ember-utils', 'ember-met
18105
18138
  var possibleDesc = proto[key];
18106
18139
  var desc = possibleDesc !== null && typeof possibleDesc === 'object' && possibleDesc.isDescriptor ? possibleDesc : undefined;
18107
18140
 
18108
- _emberMetal.assert('metaForProperty() could not find a computed property with key \'' + key + '\'.', !!desc && desc instanceof _emberMetal.ComputedProperty);
18141
+ _emberDebug.assert('metaForProperty() could not find a computed property with key \'' + key + '\'.', !!desc && desc instanceof _emberMetal.ComputedProperty);
18109
18142
  return desc._meta || {};
18110
18143
  }, _ClassMixinProps._computedProperties = _emberMetal.computed(function () {
18111
18144
  hasCachedComputedProperties = true;
@@ -18137,10 +18170,10 @@ enifed('ember-runtime/system/core_object', ['exports', 'ember-utils', 'ember-met
18137
18170
  }, _ClassMixinProps);
18138
18171
 
18139
18172
  function injectedPropertyAssertion() {
18140
- _emberMetal.assert('Injected properties are invalid', _emberRuntimeInject.validatePropertyInjections(this));
18173
+ _emberDebug.assert('Injected properties are invalid', _emberRuntimeInject.validatePropertyInjections(this));
18141
18174
  }
18142
18175
 
18143
- _emberMetal.runInDebug(function () {
18176
+ _emberDebug.runInDebug(function () {
18144
18177
  /**
18145
18178
  Provides lookup-time type validation for injected properties.
18146
18179
  @private
@@ -18541,8 +18574,7 @@ enifed('ember-runtime/system/core_object', ['exports', 'ember-utils', 'ember-met
18541
18574
  });
18542
18575
  Person.reopenClass({
18543
18576
  species: 'Homo sapiens',
18544
-
18545
- createPerson(name) {
18577
+ createPerson(name) {
18546
18578
  return Person.create({ name });
18547
18579
  }
18548
18580
  });
@@ -18596,7 +18628,7 @@ enifed('ember-runtime/system/core_object', ['exports', 'ember-utils', 'ember-met
18596
18628
  @param {Object} binding
18597
18629
  @private
18598
18630
  */
18599
- enifed('ember-runtime/system/each_proxy', ['exports', 'ember-metal', 'ember-runtime/mixins/array'], function (exports, _emberMetal, _emberRuntimeMixinsArray) {
18631
+ enifed('ember-runtime/system/each_proxy', ['exports', 'ember-debug', 'ember-metal', 'ember-runtime/mixins/array'], function (exports, _emberDebug, _emberMetal, _emberRuntimeMixinsArray) {
18600
18632
  'use strict';
18601
18633
 
18602
18634
  exports.default = EachProxy;
@@ -18702,7 +18734,7 @@ enifed('ember-runtime/system/each_proxy', ['exports', 'ember-metal', 'ember-runt
18702
18734
  while (--loc >= idx) {
18703
18735
  var item = _emberRuntimeMixinsArray.objectAt(content, loc);
18704
18736
  if (item) {
18705
- _emberMetal.assert('When using @each to observe the array ' + content + ', the array must return an object', typeof item === 'object');
18737
+ _emberDebug.assert('When using @each to observe the array ' + content + ', the array must return an object', typeof item === 'object');
18706
18738
  _emberMetal._addBeforeObserver(item, keyName, proxy, 'contentKeyWillChange');
18707
18739
  _emberMetal.addObserver(item, keyName, proxy, 'contentKeyDidChange');
18708
18740
  }
@@ -19181,7 +19213,7 @@ enifed('ember-runtime/system/native_array', ['exports', 'ember-metal', 'ember-en
19181
19213
  exports.default = NativeArray;
19182
19214
  });
19183
19215
  // Ember.A circular
19184
- enifed('ember-runtime/system/object', ['exports', 'ember-utils', 'ember-metal', 'ember-runtime/system/core_object', 'ember-runtime/mixins/observable'], function (exports, _emberUtils, _emberMetal, _emberRuntimeSystemCore_object, _emberRuntimeMixinsObservable) {
19216
+ enifed('ember-runtime/system/object', ['exports', 'ember-utils', 'ember-metal', 'ember-runtime/system/core_object', 'ember-runtime/mixins/observable', 'ember-debug'], function (exports, _emberUtils, _emberMetal, _emberRuntimeSystemCore_object, _emberRuntimeMixinsObservable, _emberDebug) {
19185
19217
  /**
19186
19218
  @module ember
19187
19219
  @submodule ember-runtime
@@ -19208,7 +19240,7 @@ enifed('ember-runtime/system/object', ['exports', 'ember-utils', 'ember-metal',
19208
19240
  var FrameworkObject = EmberObject;
19209
19241
 
19210
19242
  exports.FrameworkObject = FrameworkObject;
19211
- _emberMetal.runInDebug(function () {
19243
+ _emberDebug.runInDebug(function () {
19212
19244
  var _EmberObject$extend;
19213
19245
 
19214
19246
  var INIT_WAS_CALLED = _emberUtils.symbol('INIT_WAS_CALLED');
@@ -19221,7 +19253,7 @@ enifed('ember-runtime/system/object', ['exports', 'ember-utils', 'ember-metal',
19221
19253
  }
19222
19254
 
19223
19255
  }, _EmberObject$extend[ASSERT_INIT_WAS_CALLED] = _emberMetal.on('init', function () {
19224
- _emberMetal.assert('You must call `this._super(...arguments);` when overriding `init` on a framework object. Please update ' + this + ' to call `this._super(...arguments);` from `init`.', this[INIT_WAS_CALLED]);
19256
+ _emberDebug.assert('You must call `this._super(...arguments);` when overriding `init` on a framework object. Please update ' + this + ' to call `this._super(...arguments);` from `init`.', this[INIT_WAS_CALLED]);
19225
19257
  }), _EmberObject$extend));
19226
19258
  });
19227
19259
 
@@ -19350,7 +19382,7 @@ enifed('ember-runtime/system/service', ['exports', 'ember-runtime/system/object'
19350
19382
 
19351
19383
  exports.default = Service;
19352
19384
  });
19353
- enifed('ember-runtime/system/string', ['exports', 'ember-metal', 'ember-utils', 'ember-runtime/utils', 'ember-runtime/string_registry'], function (exports, _emberMetal, _emberUtils, _emberRuntimeUtils, _emberRuntimeString_registry) {
19385
+ enifed('ember-runtime/system/string', ['exports', 'ember-metal', 'ember-debug', 'ember-utils', 'ember-runtime/utils', 'ember-runtime/string_registry'], function (exports, _emberMetal, _emberDebug, _emberUtils, _emberRuntimeUtils, _emberRuntimeString_registry) {
19354
19386
  /**
19355
19387
  @module ember
19356
19388
  @submodule ember-runtime
@@ -19436,7 +19468,7 @@ enifed('ember-runtime/system/string', ['exports', 'ember-metal', 'ember-utils',
19436
19468
  }
19437
19469
 
19438
19470
  function fmt(str, formats) {
19439
- _emberMetal.deprecate('Ember.String.fmt is deprecated, use ES6 template strings instead.', false, { id: 'ember-string-utils.fmt', until: '3.0.0', url: 'http://babeljs.io/docs/learn-es2015/#template-strings' });
19471
+ _emberDebug.deprecate('Ember.String.fmt is deprecated, use ES6 template strings instead.', false, { id: 'ember-string-utils.fmt', until: '3.0.0', url: 'http://babeljs.io/docs/learn-es2015/#template-strings' });
19440
19472
  return _fmt.apply(undefined, arguments);
19441
19473
  }
19442
19474
 
@@ -19812,12 +19844,12 @@ enifed('ember-runtime/utils', ['exports', 'ember-runtime/mixins/array', 'ember-r
19812
19844
  enifed("ember/features", ["exports"], function (exports) {
19813
19845
  "use strict";
19814
19846
 
19815
- exports.default = { "features-stripped-test": false, "ember-libraries-isregistered": false, "ember-improved-instrumentation": false, "ember-metal-weakmap": false, "ember-glimmer-allow-backtracking-rerender": false, "ember-testing-resume-test": false, "ember-factory-for": true, "ember-no-double-extend": false, "mandatory-setter": true, "ember-glimmer-detect-backtracking-rerender": true };
19847
+ exports.default = { "features-stripped-test": false, "ember-libraries-isregistered": false, "ember-improved-instrumentation": false, "ember-metal-weakmap": false, "ember-glimmer-allow-backtracking-rerender": false, "ember-testing-resume-test": true, "ember-factory-for": true, "ember-no-double-extend": true, "ember-routing-router-service": false, "ember-unique-location-history-state": true, "mandatory-setter": true, "ember-glimmer-detect-backtracking-rerender": true };
19816
19848
  });
19817
19849
  enifed("ember/version", ["exports"], function (exports) {
19818
19850
  "use strict";
19819
19851
 
19820
- exports.default = "2.12.2";
19852
+ exports.default = "2.13.0-beta.1";
19821
19853
  });
19822
19854
  enifed('rsvp', ['exports'], function (exports) {
19823
19855
  'use strict';