ember-source 2.12.2 → 2.13.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.
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';