ember-source 1.12.0.beta.1 → 1.12.0.beta.3

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of ember-source might be problematic. Click here for more details.

@@ -5,7 +5,7 @@
5
5
  * Portions Copyright 2008-2011 Apple Inc. All rights reserved.
6
6
  * @license Licensed under MIT license
7
7
  * See https://raw.github.com/emberjs/ember.js/master/LICENSE
8
- * @version 1.12.0-beta.1
8
+ * @version 1.12.0-beta.3
9
9
  */
10
10
 
11
11
  (function() {
@@ -1100,21 +1100,9 @@ enifed('container', ['exports', 'container/registry', 'container/container'], fu
1100
1100
 
1101
1101
  'use strict';
1102
1102
 
1103
- /*
1104
- Public api for the container is still in flux.
1105
- The public api, specified on the application namespace should be considered the stable api.
1106
- // @module container
1107
- @private
1108
- */
1109
-
1110
- /*
1111
- Flag to enable/disable model factory injections (disabled by default)
1112
- If model factory injections are enabled, models should not be
1113
- accessed globally (only through `container.lookupFactory('model:modelName'))`);
1114
- */
1115
1103
  Ember.MODEL_FACTORY_INJECTIONS = false;
1116
1104
 
1117
- if (Ember.ENV && typeof Ember.ENV.MODEL_FACTORY_INJECTIONS !== "undefined") {
1105
+ if (Ember.ENV && typeof Ember.ENV.MODEL_FACTORY_INJECTIONS !== 'undefined') {
1118
1106
  Ember.MODEL_FACTORY_INJECTIONS = !!Ember.ENV.MODEL_FACTORY_INJECTIONS;
1119
1107
  }
1120
1108
 
@@ -1143,11 +1131,11 @@ enifed('container/container', ['exports', 'ember-metal/core', 'ember-metal/keys'
1143
1131
  */
1144
1132
  function Container(registry, options) {
1145
1133
  this._registry = registry || (function () {
1146
- Ember['default'].deprecate("A container should only be created for an already instantiated " + "registry. For backward compatibility, an isolated registry will " + "be instantiated just for this container.");
1134
+ Ember['default'].deprecate('A container should only be created for an already instantiated ' + 'registry. For backward compatibility, an isolated registry will ' + 'be instantiated just for this container.');
1147
1135
 
1148
1136
  // TODO - See note above about transpiler import workaround.
1149
1137
  if (!Registry) {
1150
- Registry = requireModule("container/registry")["default"];
1138
+ Registry = requireModule('container/registry')['default'];
1151
1139
  }
1152
1140
 
1153
1141
  return new Registry();
@@ -1216,7 +1204,7 @@ enifed('container/container', ['exports', 'ember-metal/core', 'ember-metal/keys'
1216
1204
  @return {any}
1217
1205
  */
1218
1206
  lookup: function (fullName, options) {
1219
- Ember['default'].assert("fullName must be a proper full name", this._registry.validateFullName(fullName));
1207
+ Ember['default'].assert('fullName must be a proper full name', this._registry.validateFullName(fullName));
1220
1208
  return lookup(this, this._registry.normalize(fullName), options);
1221
1209
  },
1222
1210
 
@@ -1227,7 +1215,7 @@ enifed('container/container', ['exports', 'ember-metal/core', 'ember-metal/keys'
1227
1215
  @return {any}
1228
1216
  */
1229
1217
  lookupFactory: function (fullName) {
1230
- Ember['default'].assert("fullName must be a proper full name", this._registry.validateFullName(fullName));
1218
+ Ember['default'].assert('fullName must be a proper full name', this._registry.validateFullName(fullName));
1231
1219
  return factoryFor(this, this._registry.normalize(fullName));
1232
1220
  },
1233
1221
 
@@ -1261,11 +1249,11 @@ enifed('container/container', ['exports', 'ember-metal/core', 'ember-metal/keys'
1261
1249
  };
1262
1250
 
1263
1251
  (function exposeRegistryMethods() {
1264
- var methods = ["register", "unregister", "resolve", "normalize", "typeInjection", "injection", "factoryInjection", "factoryTypeInjection", "has", "options", "optionsForType"];
1252
+ var methods = ['register', 'unregister', 'resolve', 'normalize', 'typeInjection', 'injection', 'factoryInjection', 'factoryTypeInjection', 'has', 'options', 'optionsForType'];
1265
1253
 
1266
1254
  function exposeRegistryMethod(method) {
1267
1255
  Container.prototype[method] = function () {
1268
- Ember['default'].deprecate(method + " should be called on the registry instead of the container");
1256
+ Ember['default'].deprecate(method + ' should be called on the registry instead of the container');
1269
1257
  return this._registry[method].apply(this._registry, arguments);
1270
1258
  };
1271
1259
  }
@@ -1288,7 +1276,7 @@ enifed('container/container', ['exports', 'ember-metal/core', 'ember-metal/keys'
1288
1276
  return;
1289
1277
  }
1290
1278
 
1291
- if (container._registry.getOption(fullName, "singleton") !== false && options.singleton !== false) {
1279
+ if (container._registry.getOption(fullName, 'singleton') !== false && options.singleton !== false) {
1292
1280
  container.cache[fullName] = value;
1293
1281
  }
1294
1282
 
@@ -1331,9 +1319,9 @@ enifed('container/container', ['exports', 'ember-metal/core', 'ember-metal/keys'
1331
1319
  return;
1332
1320
  }
1333
1321
 
1334
- var type = fullName.split(":")[0];
1335
- if (!factory || typeof factory.extend !== "function" || !Ember['default'].MODEL_FACTORY_INJECTIONS && type === "model") {
1336
- if (factory && typeof factory._onLookup === "function") {
1322
+ var type = fullName.split(':')[0];
1323
+ if (!factory || typeof factory.extend !== 'function' || !Ember['default'].MODEL_FACTORY_INJECTIONS && type === 'model') {
1324
+ if (factory && typeof factory._onLookup === 'function') {
1337
1325
  factory._onLookup(fullName);
1338
1326
  }
1339
1327
 
@@ -1350,7 +1338,7 @@ enifed('container/container', ['exports', 'ember-metal/core', 'ember-metal/keys'
1350
1338
  var injectedFactory = factory.extend(injections);
1351
1339
  injectedFactory.reopenClass(factoryInjections);
1352
1340
 
1353
- if (factory && typeof factory._onLookup === "function") {
1341
+ if (factory && typeof factory._onLookup === 'function') {
1354
1342
  factory._onLookup(fullName);
1355
1343
  }
1356
1344
 
@@ -1362,7 +1350,7 @@ enifed('container/container', ['exports', 'ember-metal/core', 'ember-metal/keys'
1362
1350
 
1363
1351
  function injectionsFor(container, fullName) {
1364
1352
  var registry = container._registry;
1365
- var splitName = fullName.split(":");
1353
+ var splitName = fullName.split(':');
1366
1354
  var type = splitName[0];
1367
1355
 
1368
1356
  var injections = buildInjections(container, registry.getTypeInjections(type), registry.getInjections(fullName));
@@ -1374,7 +1362,7 @@ enifed('container/container', ['exports', 'ember-metal/core', 'ember-metal/keys'
1374
1362
 
1375
1363
  function factoryInjectionsFor(container, fullName) {
1376
1364
  var registry = container._registry;
1377
- var splitName = fullName.split(":");
1365
+ var splitName = fullName.split(':');
1378
1366
  var type = splitName[0];
1379
1367
 
1380
1368
  var factoryInjections = buildInjections(container, registry.getFactoryTypeInjections(type), registry.getFactoryInjections(fullName));
@@ -1387,19 +1375,19 @@ enifed('container/container', ['exports', 'ember-metal/core', 'ember-metal/keys'
1387
1375
  var factory = factoryFor(container, fullName);
1388
1376
  var lazyInjections, validationCache;
1389
1377
 
1390
- if (container._registry.getOption(fullName, "instantiate") === false) {
1378
+ if (container._registry.getOption(fullName, 'instantiate') === false) {
1391
1379
  return factory;
1392
1380
  }
1393
1381
 
1394
1382
  if (factory) {
1395
- if (typeof factory.create !== "function") {
1396
- throw new Error("Failed to create an instance of '" + fullName + "'. " + "Most likely an improperly defined class or an invalid module export.");
1383
+ if (typeof factory.create !== 'function') {
1384
+ throw new Error('Failed to create an instance of \'' + fullName + '\'. ' + 'Most likely an improperly defined class or an invalid module export.');
1397
1385
  }
1398
1386
 
1399
1387
  validationCache = container.validationCache;
1400
1388
 
1401
1389
  // Ensure that all lazy injections are valid at instantiation time
1402
- if (!validationCache[fullName] && typeof factory._lazyInjections === "function") {
1390
+ if (!validationCache[fullName] && typeof factory._lazyInjections === 'function') {
1403
1391
  lazyInjections = factory._lazyInjections();
1404
1392
  lazyInjections = container._registry.normalizeInjectionsHash(lazyInjections);
1405
1393
 
@@ -1408,7 +1396,7 @@ enifed('container/container', ['exports', 'ember-metal/core', 'ember-metal/keys'
1408
1396
 
1409
1397
  validationCache[fullName] = true;
1410
1398
 
1411
- if (typeof factory.extend === "function") {
1399
+ if (typeof factory.extend === 'function') {
1412
1400
  // assume the factory was extendable and is already injected
1413
1401
  return factory.create();
1414
1402
  } else {
@@ -1429,7 +1417,7 @@ enifed('container/container', ['exports', 'ember-metal/core', 'ember-metal/keys'
1429
1417
  key = keys[i];
1430
1418
  value = cache[key];
1431
1419
 
1432
- if (container._registry.getOption(key, "instantiate") !== false) {
1420
+ if (container._registry.getOption(key, 'instantiate') !== false) {
1433
1421
  callback(value);
1434
1422
  }
1435
1423
  }
@@ -1625,20 +1613,20 @@ enifed('container/registry', ['exports', 'ember-metal/core', 'ember-metal/dictio
1625
1613
  },
1626
1614
 
1627
1615
  lookup: function (fullName, options) {
1628
- Ember['default'].assert("Create a container on the registry (with `registry.container()`) before calling `lookup`.", this._defaultContainer);
1616
+ Ember['default'].assert('Create a container on the registry (with `registry.container()`) before calling `lookup`.', this._defaultContainer);
1629
1617
 
1630
1618
  if (instanceInitializersFeatureEnabled) {
1631
- Ember['default'].deprecate("`lookup` was called on a Registry. The `initializer` API no longer receives a container, and you should use an `instanceInitializer` to look up objects from the container.", { url: "http://emberjs.com/guides/deprecations#toc_deprecate-access-to-instances-in-initializers" });
1619
+ Ember['default'].deprecate('`lookup` was called on a Registry. The `initializer` API no longer receives a container, and you should use an `instanceInitializer` to look up objects from the container.', false, { url: 'http://emberjs.com/guides/deprecations#toc_deprecate-access-to-instances-in-initializers' });
1632
1620
  }
1633
1621
 
1634
1622
  return this._defaultContainer.lookup(fullName, options);
1635
1623
  },
1636
1624
 
1637
1625
  lookupFactory: function (fullName) {
1638
- Ember['default'].assert("Create a container on the registry (with `registry.container()`) before calling `lookupFactory`.", this._defaultContainer);
1626
+ Ember['default'].assert('Create a container on the registry (with `registry.container()`) before calling `lookupFactory`.', this._defaultContainer);
1639
1627
 
1640
1628
  if (instanceInitializersFeatureEnabled) {
1641
- Ember['default'].deprecate("`lookupFactory` was called on a Registry. The `initializer` API no longer receives a container, and you should use an `instanceInitializer` to look up objects from the container.", { url: "http://emberjs.com/guides/deprecations#toc_deprecate-access-to-instances-in-initializers" });
1629
+ Ember['default'].deprecate('`lookupFactory` was called on a Registry. The `initializer` API no longer receives a container, and you should use an `instanceInitializer` to look up objects from the container.', false, { url: 'http://emberjs.com/guides/deprecations#toc_deprecate-access-to-instances-in-initializers' });
1642
1630
  }
1643
1631
 
1644
1632
  return this._defaultContainer.lookupFactory(fullName);
@@ -1659,16 +1647,16 @@ enifed('container/registry', ['exports', 'ember-metal/core', 'ember-metal/dictio
1659
1647
  @param {Object} options
1660
1648
  */
1661
1649
  register: function (fullName, factory, options) {
1662
- Ember['default'].assert("fullName must be a proper full name", this.validateFullName(fullName));
1650
+ Ember['default'].assert('fullName must be a proper full name', this.validateFullName(fullName));
1663
1651
 
1664
1652
  if (factory === undefined) {
1665
- throw new TypeError("Attempting to register an unknown factory: `" + fullName + "`");
1653
+ throw new TypeError('Attempting to register an unknown factory: `' + fullName + '`');
1666
1654
  }
1667
1655
 
1668
1656
  var normalizedName = this.normalize(fullName);
1669
1657
 
1670
1658
  if (this._resolveCache[normalizedName]) {
1671
- throw new Error("Cannot re-register: `" + fullName + "`, as it has already been resolved.");
1659
+ throw new Error('Cannot re-register: `' + fullName + '`, as it has already been resolved.');
1672
1660
  }
1673
1661
 
1674
1662
  this.registrations[normalizedName] = factory;
@@ -1688,7 +1676,7 @@ enifed('container/registry', ['exports', 'ember-metal/core', 'ember-metal/dictio
1688
1676
  @param {String} fullName
1689
1677
  */
1690
1678
  unregister: function (fullName) {
1691
- Ember['default'].assert("fullName must be a proper full name", this.validateFullName(fullName));
1679
+ Ember['default'].assert('fullName must be a proper full name', this.validateFullName(fullName));
1692
1680
 
1693
1681
  var normalizedName = this.normalize(fullName);
1694
1682
 
@@ -1723,7 +1711,7 @@ enifed('container/registry', ['exports', 'ember-metal/core', 'ember-metal/dictio
1723
1711
  @return {Function} fullName's factory
1724
1712
  */
1725
1713
  resolve: function (fullName) {
1726
- Ember['default'].assert("fullName must be a proper full name", this.validateFullName(fullName));
1714
+ Ember['default'].assert('fullName must be a proper full name', this.validateFullName(fullName));
1727
1715
  var factory = resolve(this, this.normalize(fullName));
1728
1716
  if (factory === undefined && this.fallback) {
1729
1717
  factory = this.fallback.resolve(fullName);
@@ -1783,7 +1771,7 @@ enifed('container/registry', ['exports', 'ember-metal/core', 'ember-metal/dictio
1783
1771
  @return {Boolean}
1784
1772
  */
1785
1773
  has: function (fullName) {
1786
- Ember['default'].assert("fullName must be a proper full name", this.validateFullName(fullName));
1774
+ Ember['default'].assert('fullName must be a proper full name', this.validateFullName(fullName));
1787
1775
  return has(this, this.normalize(fullName));
1788
1776
  },
1789
1777
 
@@ -1846,7 +1834,7 @@ enifed('container/registry', ['exports', 'ember-metal/core', 'ember-metal/dictio
1846
1834
  return options[optionName];
1847
1835
  }
1848
1836
 
1849
- var type = fullName.split(":")[0];
1837
+ var type = fullName.split(':')[0];
1850
1838
  options = this._typeOptions[type];
1851
1839
 
1852
1840
  if (options && options[optionName] !== undefined) {
@@ -1857,7 +1845,7 @@ enifed('container/registry', ['exports', 'ember-metal/core', 'ember-metal/dictio
1857
1845
  },
1858
1846
 
1859
1847
  option: function (fullName, optionName) {
1860
- Ember['default'].deprecate("`Registry.option()` has been deprecated. Call `Registry.getOption()` instead.");
1848
+ Ember['default'].deprecate('`Registry.option()` has been deprecated. Call `Registry.getOption()` instead.');
1861
1849
  return this.getOption(fullName, optionName);
1862
1850
  },
1863
1851
 
@@ -1889,11 +1877,11 @@ enifed('container/registry', ['exports', 'ember-metal/core', 'ember-metal/dictio
1889
1877
  @param {String} fullName
1890
1878
  */
1891
1879
  typeInjection: function (type, property, fullName) {
1892
- Ember['default'].assert("fullName must be a proper full name", this.validateFullName(fullName));
1880
+ Ember['default'].assert('fullName must be a proper full name', this.validateFullName(fullName));
1893
1881
 
1894
- var fullNameType = fullName.split(":")[0];
1882
+ var fullNameType = fullName.split(':')[0];
1895
1883
  if (fullNameType === type) {
1896
- throw new Error("Cannot inject a `" + fullName + "` on other " + type + "(s).");
1884
+ throw new Error('Cannot inject a `' + fullName + '` on other ' + type + '(s).');
1897
1885
  }
1898
1886
 
1899
1887
  var injections = this._typeInjections[type] || (this._typeInjections[type] = []);
@@ -1940,11 +1928,11 @@ enifed('container/registry', ['exports', 'ember-metal/core', 'ember-metal/dictio
1940
1928
  this.validateFullName(injectionName);
1941
1929
  var normalizedInjectionName = this.normalize(injectionName);
1942
1930
 
1943
- if (fullName.indexOf(":") === -1) {
1931
+ if (fullName.indexOf(':') === -1) {
1944
1932
  return this.typeInjection(fullName, property, normalizedInjectionName);
1945
1933
  }
1946
1934
 
1947
- Ember['default'].assert("fullName must be a proper full name", this.validateFullName(fullName));
1935
+ Ember['default'].assert('fullName must be a proper full name', this.validateFullName(fullName));
1948
1936
  var normalizedName = this.normalize(fullName);
1949
1937
 
1950
1938
  var injections = this._injections[normalizedName] || (this._injections[normalizedName] = []);
@@ -2027,7 +2015,7 @@ enifed('container/registry', ['exports', 'ember-metal/core', 'ember-metal/dictio
2027
2015
 
2028
2016
  this.validateFullName(injectionName);
2029
2017
 
2030
- if (fullName.indexOf(":") === -1) {
2018
+ if (fullName.indexOf(':') === -1) {
2031
2019
  return this.factoryTypeInjection(normalizedName, property, normalizedInjectionName);
2032
2020
  }
2033
2021
 
@@ -2041,7 +2029,7 @@ enifed('container/registry', ['exports', 'ember-metal/core', 'ember-metal/dictio
2041
2029
 
2042
2030
  validateFullName: function (fullName) {
2043
2031
  if (!VALID_FULL_NAME_REGEXP.test(fullName)) {
2044
- throw new TypeError("Invalid Fullname, expected: `type:name` got: " + fullName);
2032
+ throw new TypeError('Invalid Fullname, expected: `type:name` got: ' + fullName);
2045
2033
  }
2046
2034
  return true;
2047
2035
  },
@@ -2057,7 +2045,7 @@ enifed('container/registry', ['exports', 'ember-metal/core', 'ember-metal/dictio
2057
2045
  fullName = injections[i].fullName;
2058
2046
 
2059
2047
  if (!this.has(fullName)) {
2060
- throw new Error("Attempting to inject an unknown injection: `" + fullName + "`");
2048
+ throw new Error('Attempting to inject an unknown injection: `' + fullName + '`');
2061
2049
  }
2062
2050
  }
2063
2051
  },
@@ -2067,7 +2055,7 @@ enifed('container/registry', ['exports', 'ember-metal/core', 'ember-metal/dictio
2067
2055
 
2068
2056
  for (var key in hash) {
2069
2057
  if (hash.hasOwnProperty(key)) {
2070
- Ember['default'].assert("Expected a proper full name, given '" + hash[key] + "'", this.validateFullName(hash[key]));
2058
+ Ember['default'].assert('Expected a proper full name, given \'' + hash[key] + '\'', this.validateFullName(hash[key]));
2071
2059
 
2072
2060
  injections.push({
2073
2061
  property: key,
@@ -3207,7 +3195,7 @@ enifed('ember-application', ['ember-metal/core', 'ember-runtime/system/lazy_load
3207
3195
  Ember['default'].Resolver = DefaultResolver.Resolver;
3208
3196
  Ember['default'].DefaultResolver = DefaultResolver['default'];
3209
3197
 
3210
- lazy_load.runLoadHooks("Ember.Application", Application['default']);
3198
+ lazy_load.runLoadHooks('Ember.Application', Application['default']);
3211
3199
 
3212
3200
  });
3213
3201
  enifed('ember-application/ext/controller', ['exports', 'ember-metal/core', 'ember-metal/property_get', 'ember-metal/error', 'ember-metal/utils', 'ember-metal/computed', 'ember-runtime/mixins/controller', 'ember-routing/system/controller_for'], function (exports, Ember, property_get, EmberError, utils, computed, ControllerMixin, controllerFor) {
@@ -3715,7 +3703,7 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
3715
3703
  @type DOMElement
3716
3704
  @default 'body'
3717
3705
  */
3718
- rootElement: "body",
3706
+ rootElement: 'body',
3719
3707
 
3720
3708
  /**
3721
3709
  The `Ember.EventDispatcher` responsible for delegating events to this
@@ -3809,8 +3797,8 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
3809
3797
  */
3810
3798
  buildInstance: function () {
3811
3799
  return ApplicationInstance['default'].create({
3812
- customEvents: property_get.get(this, "customEvents"),
3813
- rootElement: property_get.get(this, "rootElement"),
3800
+ customEvents: property_get.get(this, 'customEvents'),
3801
+ rootElement: property_get.get(this, 'rootElement'),
3814
3802
  applicationRegistry: this.registry
3815
3803
  });
3816
3804
  },
@@ -3820,7 +3808,7 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
3820
3808
 
3821
3809
  // For the default instance only, set the view registry to the global
3822
3810
  // Ember.View.views hash for backwards-compatibility.
3823
- EmberView['default'].views = instance.container.lookup("-view-registry:main");
3811
+ EmberView['default'].views = instance.container.lookup('-view-registry:main');
3824
3812
 
3825
3813
  // TODO2.0: Legacy support for App.__container__
3826
3814
  // and global methods on App that rely on a single,
@@ -3846,9 +3834,9 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
3846
3834
  */
3847
3835
  waitForDOMReady: function (_instance) {
3848
3836
  if (!this.$ || this.$.isReady) {
3849
- run['default'].schedule("actions", this, "domReady", _instance);
3837
+ run['default'].schedule('actions', this, 'domReady', _instance);
3850
3838
  } else {
3851
- this.$().ready(run['default'].bind(this, "domReady", _instance));
3839
+ this.$().ready(run['default'].bind(this, 'domReady', _instance));
3852
3840
  }
3853
3841
  },
3854
3842
 
@@ -3858,7 +3846,7 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
3858
3846
  ```javascript
3859
3847
  var App = Ember.Application.create();
3860
3848
  App.deferReadiness();
3861
- // Ember.$ is a reference to the jQuery object/function
3849
+ // Ember.$ is a reference to the jQuery object/function
3862
3850
  Ember.$.getJSON('/auth-token', function(token) {
3863
3851
  App.token = token;
3864
3852
  App.advanceReadiness();
@@ -3871,8 +3859,8 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
3871
3859
  @method deferReadiness
3872
3860
  */
3873
3861
  deferReadiness: function () {
3874
- Ember['default'].assert("You must call deferReadiness on an instance of Ember.Application", this instanceof Application);
3875
- Ember['default'].assert("You cannot defer readiness since the `ready()` hook has already been called.", this._readinessDeferrals > 0);
3862
+ Ember['default'].assert('You must call deferReadiness on an instance of Ember.Application', this instanceof Application);
3863
+ Ember['default'].assert('You cannot defer readiness since the `ready()` hook has already been called.', this._readinessDeferrals > 0);
3876
3864
  this._readinessDeferrals++;
3877
3865
  },
3878
3866
 
@@ -3884,7 +3872,7 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
3884
3872
  @see {Ember.Application#deferReadiness}
3885
3873
  */
3886
3874
  advanceReadiness: function () {
3887
- Ember['default'].assert("You must call advanceReadiness on an instance of Ember.Application", this instanceof Application);
3875
+ Ember['default'].assert('You must call advanceReadiness on an instance of Ember.Application', this instanceof Application);
3888
3876
  this._readinessDeferrals--;
3889
3877
 
3890
3878
  if (this._readinessDeferrals === 0) {
@@ -3922,9 +3910,9 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
3922
3910
  Some examples modifying that default behavior:
3923
3911
  ```javascript
3924
3912
  var App = Ember.Application.create();
3925
- App.Person = Ember.Object.extend();
3926
- App.Orange = Ember.Object.extend();
3927
- App.Email = Ember.Object.extend();
3913
+ App.Person = Ember.Object.extend();
3914
+ App.Orange = Ember.Object.extend();
3915
+ App.Email = Ember.Object.extend();
3928
3916
  App.session = Ember.Object.create();
3929
3917
  App.register('model:user', App.Person, { singleton: false });
3930
3918
  App.register('fruit:favorite', App.Orange);
@@ -3981,9 +3969,9 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
3981
3969
  @param injectionName {String}
3982
3970
  **/
3983
3971
  inject: function () {
3984
- var _registry;
3972
+ var _registry2;
3985
3973
 
3986
- (_registry = this.registry).injection.apply(_registry, arguments);
3974
+ (_registry2 = this.registry).injection.apply(_registry2, arguments);
3987
3975
  },
3988
3976
 
3989
3977
  /**
@@ -3995,7 +3983,7 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
3995
3983
  @method initialize
3996
3984
  **/
3997
3985
  initialize: function () {
3998
- Ember['default'].deprecate("Calling initialize manually is not supported. Please see Ember.Application#advanceReadiness and Ember.Application#deferReadiness");
3986
+ Ember['default'].deprecate('Calling initialize manually is not supported. Please see Ember.Application#advanceReadiness and Ember.Application#deferReadiness');
3999
3987
  },
4000
3988
 
4001
3989
  /**
@@ -4030,7 +4018,7 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
4030
4018
  this._bootResolver = defer;
4031
4019
 
4032
4020
  this.runInitializers(this.registry);
4033
- lazy_load.runLoadHooks("application", this);
4021
+ lazy_load.runLoadHooks('application', this);
4034
4022
 
4035
4023
  this.advanceReadiness();
4036
4024
 
@@ -4097,11 +4085,11 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
4097
4085
  this._bootResolver = null;
4098
4086
 
4099
4087
  function handleReset() {
4100
- run['default'](instance, "destroy");
4088
+ run['default'](instance, 'destroy');
4101
4089
 
4102
4090
  this.buildDefaultInstance();
4103
4091
 
4104
- run['default'].schedule("actions", this, "domReady");
4092
+ run['default'].schedule('actions', this, 'domReady');
4105
4093
  }
4106
4094
 
4107
4095
  run['default'].join(this, handleReset);
@@ -4113,8 +4101,8 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
4113
4101
  */
4114
4102
  runInitializers: function (registry) {
4115
4103
  var App = this;
4116
- this._runInitializer("initializers", function (name, initializer) {
4117
- Ember['default'].assert("No application initializer named '" + name + "'", !!initializer);
4104
+ this._runInitializer('initializers', function (name, initializer) {
4105
+ Ember['default'].assert('No application initializer named \'' + name + '\'', !!initializer);
4118
4106
 
4119
4107
 
4120
4108
  initializer.initialize(registry, App);
@@ -4122,8 +4110,8 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
4122
4110
  },
4123
4111
 
4124
4112
  runInstanceInitializers: function (instance) {
4125
- this._runInitializer("instanceInitializers", function (name, initializer) {
4126
- Ember['default'].assert("No instance initializer named '" + name + "'", !!initializer);
4113
+ this._runInitializer('instanceInitializers', function (name, initializer) {
4114
+ Ember['default'].assert('No instance initializer named \'' + name + '\'', !!initializer);
4127
4115
  initializer.initialize(instance);
4128
4116
  });
4129
4117
  },
@@ -4193,6 +4181,7 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
4193
4181
 
4194
4182
  // This method must be moved to the application instance object
4195
4183
  willDestroy: function () {
4184
+ this._super.apply(this, arguments);
4196
4185
  Ember['default'].BOOTED = false;
4197
4186
  this._bootPromise = null;
4198
4187
  this._bootResolver = null;
@@ -4209,7 +4198,7 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
4209
4198
  @deprecated
4210
4199
  */
4211
4200
  then: function () {
4212
- Ember['default'].deprecate("Do not use `.then` on an instance of Ember.Application. Please use the `.ready` hook instead.", false, { url: "http://emberjs.com/guides/deprecations/#toc_deprecate-code-then-code-on-ember-application" });
4201
+ Ember['default'].deprecate('Do not use `.then` on an instance of Ember.Application. Please use the `.ready` hook instead.', false, { url: 'http://emberjs.com/guides/deprecations/#toc_deprecate-code-then-code-on-ember-application' });
4213
4202
 
4214
4203
  this._super.apply(this, arguments);
4215
4204
  }
@@ -4223,7 +4212,7 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
4223
4212
  });
4224
4213
 
4225
4214
  Application.reopenClass({
4226
- instanceInitializer: buildInitializerMethod("instanceInitializers", "instance initializer")
4215
+ instanceInitializer: buildInitializerMethod('instanceInitializers', 'instance initializer')
4227
4216
  });
4228
4217
 
4229
4218
 
@@ -4326,7 +4315,7 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
4326
4315
  @method initializer
4327
4316
  @param initializer {Object}
4328
4317
  */
4329
- initializer: buildInitializerMethod("initializers", "initializer"),
4318
+ initializer: buildInitializerMethod('initializers', 'initializer'),
4330
4319
 
4331
4320
  /**
4332
4321
  This creates a registry with the default Ember naming conventions.
@@ -4359,62 +4348,62 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
4359
4348
  registry.describe = registry.resolver.describe;
4360
4349
  registry.makeToString = registry.resolver.makeToString;
4361
4350
 
4362
- registry.optionsForType("component", { singleton: false });
4363
- registry.optionsForType("view", { singleton: false });
4364
- registry.optionsForType("template", { instantiate: false });
4365
- registry.optionsForType("helper", { instantiate: false });
4351
+ registry.optionsForType('component', { singleton: false });
4352
+ registry.optionsForType('view', { singleton: false });
4353
+ registry.optionsForType('template', { instantiate: false });
4354
+ registry.optionsForType('helper', { instantiate: false });
4366
4355
 
4367
- registry.register("application:main", namespace, { instantiate: false });
4356
+ registry.register('application:main', namespace, { instantiate: false });
4368
4357
 
4369
- registry.register("controller:basic", Controller['default'], { instantiate: false });
4370
- registry.register("controller:object", ObjectController['default'], { instantiate: false });
4371
- registry.register("controller:array", ArrayController['default'], { instantiate: false });
4358
+ registry.register('controller:basic', Controller['default'], { instantiate: false });
4359
+ registry.register('controller:object', ObjectController['default'], { instantiate: false });
4360
+ registry.register('controller:array', ArrayController['default'], { instantiate: false });
4372
4361
 
4373
- registry.register("renderer:-dom", { create: function () {
4362
+ registry.register('renderer:-dom', { create: function () {
4374
4363
  return new Renderer['default'](new DOMHelper['default']());
4375
4364
  } });
4376
4365
 
4377
- registry.injection("view", "renderer", "renderer:-dom");
4378
- registry.register("view:select", SelectView['default']);
4379
- registry.register("view:-outlet", outlet.OutletView);
4366
+ registry.injection('view', 'renderer', 'renderer:-dom');
4367
+ registry.register('view:select', SelectView['default']);
4368
+ registry.register('view:-outlet', outlet.OutletView);
4380
4369
 
4381
- registry.register("-view-registry:main", { create: function () {
4370
+ registry.register('-view-registry:main', { create: function () {
4382
4371
  return {};
4383
4372
  } });
4384
4373
 
4385
- registry.injection("view", "_viewRegistry", "-view-registry:main");
4374
+ registry.injection('view', '_viewRegistry', '-view-registry:main');
4386
4375
 
4387
- registry.register("view:default", _MetamorphView['default']);
4388
- registry.register("view:toplevel", EmberView['default'].extend());
4376
+ registry.register('view:default', _MetamorphView['default']);
4377
+ registry.register('view:toplevel', EmberView['default'].extend());
4389
4378
 
4390
- registry.register("route:basic", Route['default'], { instantiate: false });
4391
- registry.register("event_dispatcher:main", EventDispatcher['default']);
4379
+ registry.register('route:basic', Route['default'], { instantiate: false });
4380
+ registry.register('event_dispatcher:main', EventDispatcher['default']);
4392
4381
 
4393
- registry.injection("router:main", "namespace", "application:main");
4394
- registry.injection("view:-outlet", "namespace", "application:main");
4382
+ registry.injection('router:main', 'namespace', 'application:main');
4383
+ registry.injection('view:-outlet', 'namespace', 'application:main');
4395
4384
 
4396
- registry.register("location:auto", AutoLocation['default']);
4397
- registry.register("location:hash", HashLocation['default']);
4398
- registry.register("location:history", HistoryLocation['default']);
4399
- registry.register("location:none", NoneLocation['default']);
4385
+ registry.register('location:auto', AutoLocation['default']);
4386
+ registry.register('location:hash', HashLocation['default']);
4387
+ registry.register('location:history', HistoryLocation['default']);
4388
+ registry.register('location:none', NoneLocation['default']);
4400
4389
 
4401
- registry.injection("controller", "target", "router:main");
4402
- registry.injection("controller", "namespace", "application:main");
4390
+ registry.injection('controller', 'target', 'router:main');
4391
+ registry.injection('controller', 'namespace', 'application:main');
4403
4392
 
4404
- registry.register("-bucket-cache:main", BucketCache['default']);
4405
- registry.injection("router", "_bucketCache", "-bucket-cache:main");
4406
- registry.injection("route", "_bucketCache", "-bucket-cache:main");
4407
- registry.injection("controller", "_bucketCache", "-bucket-cache:main");
4393
+ registry.register('-bucket-cache:main', BucketCache['default']);
4394
+ registry.injection('router', '_bucketCache', '-bucket-cache:main');
4395
+ registry.injection('route', '_bucketCache', '-bucket-cache:main');
4396
+ registry.injection('controller', '_bucketCache', '-bucket-cache:main');
4408
4397
 
4409
- registry.injection("route", "router", "router:main");
4398
+ registry.injection('route', 'router', 'router:main');
4410
4399
 
4411
4400
  // DEBUGGING
4412
- registry.register("resolver-for-debugging:main", registry.resolver.__resolver__, { instantiate: false });
4413
- registry.injection("container-debug-adapter:main", "resolver", "resolver-for-debugging:main");
4414
- registry.injection("data-adapter:main", "containerDebugAdapter", "container-debug-adapter:main");
4401
+ registry.register('resolver-for-debugging:main', registry.resolver.__resolver__, { instantiate: false });
4402
+ registry.injection('container-debug-adapter:main', 'resolver', 'resolver-for-debugging:main');
4403
+ registry.injection('data-adapter:main', 'containerDebugAdapter', 'container-debug-adapter:main');
4415
4404
  // Custom resolver authors may want to register their own ContainerDebugAdapter with this key
4416
4405
 
4417
- registry.register("container-debug-adapter:main", ContainerDebugAdapter['default']);
4406
+ registry.register('container-debug-adapter:main', ContainerDebugAdapter['default']);
4418
4407
 
4419
4408
  return registry;
4420
4409
  }
@@ -4437,9 +4426,9 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
4437
4426
  @return {*} the resolved value for a given lookup
4438
4427
  */
4439
4428
  function resolverFor(namespace) {
4440
- Ember['default'].deprecate("Application.resolver is deprecated in favor of Application.Resolver", !namespace.get("resolver"));
4429
+ Ember['default'].deprecate('Application.resolver is deprecated in favor of Application.Resolver', !namespace.get('resolver'));
4441
4430
 
4442
- var ResolverClass = namespace.get("resolver") || namespace.get("Resolver") || DefaultResolver['default'];
4431
+ var ResolverClass = namespace.get('resolver') || namespace.get('Resolver') || DefaultResolver['default'];
4443
4432
  var resolver = ResolverClass.create({
4444
4433
  namespace: namespace
4445
4434
  });
@@ -4460,7 +4449,7 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
4460
4449
  if (resolver.normalize) {
4461
4450
  return resolver.normalize(fullName);
4462
4451
  } else {
4463
- Ember['default'].deprecate("The Resolver should now provide a 'normalize' function");
4452
+ Ember['default'].deprecate('The Resolver should now provide a \'normalize\' function');
4464
4453
  return fullName;
4465
4454
  }
4466
4455
  };
@@ -4475,7 +4464,7 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
4475
4464
  librariesRegistered = true;
4476
4465
 
4477
4466
  if (environment['default'].hasDOM) {
4478
- Ember['default'].libraries.registerCoreLibrary("jQuery", jQuery['default']().jquery);
4467
+ Ember['default'].libraries.registerCoreLibrary('jQuery', jQuery['default']().jquery);
4479
4468
  }
4480
4469
  }
4481
4470
  }
@@ -4487,18 +4476,18 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
4487
4476
  var libs = Ember['default'].libraries._registry;
4488
4477
 
4489
4478
  var nameLengths = EnumerableUtils['default'].map(libs, function (item) {
4490
- return property_get.get(item, "name.length");
4479
+ return property_get.get(item, 'name.length');
4491
4480
  });
4492
4481
 
4493
4482
  var maxNameLength = Math.max.apply(this, nameLengths);
4494
4483
 
4495
- Ember['default'].debug("-------------------------------");
4484
+ Ember['default'].debug('-------------------------------');
4496
4485
  for (var i = 0, l = libs.length; i < l; i++) {
4497
4486
  var lib = libs[i];
4498
- var spaces = new Array(maxNameLength - lib.name.length + 1).join(" ");
4499
- Ember['default'].debug([lib.name, spaces, " : ", lib.version].join(""));
4487
+ var spaces = new Array(maxNameLength - lib.name.length + 1).join(' ');
4488
+ Ember['default'].debug([lib.name, spaces, ' : ', lib.version].join(''));
4500
4489
  }
4501
- Ember['default'].debug("-------------------------------");
4490
+ Ember['default'].debug('-------------------------------');
4502
4491
  }
4503
4492
  }
4504
4493
 
@@ -4514,9 +4503,9 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
4514
4503
  this.reopenClass(attrs);
4515
4504
  }
4516
4505
 
4517
- Ember['default'].assert("The " + humanName + " '" + initializer.name + "' has already been registered", !this[bucketName][initializer.name]);
4518
- Ember['default'].assert("An " + humanName + " cannot be registered without an initialize function", utils.canInvoke(initializer, "initialize"));
4519
- Ember['default'].assert("An " + humanName + " cannot be registered without a name property", initializer.name !== undefined);
4506
+ Ember['default'].assert('The ' + humanName + ' \'' + initializer.name + '\' has already been registered', !this[bucketName][initializer.name]);
4507
+ Ember['default'].assert('An ' + humanName + ' cannot be registered without an initialize function', utils.canInvoke(initializer, 'initialize'));
4508
+ Ember['default'].assert('An ' + humanName + ' cannot be registered without a name property', initializer.name !== undefined);
4520
4509
 
4521
4510
  this[bucketName][initializer.name] = initializer;
4522
4511
  };
@@ -4529,8 +4518,6 @@ enifed('ember-application/system/resolver', ['exports', 'ember-metal/core', 'emb
4529
4518
 
4530
4519
  'use strict';
4531
4520
 
4532
- var _slicedToArray = function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { var _arr = []; for (var _iterator = arr[Symbol.iterator](), _step; !(_step = _iterator.next()).done;) { _arr.push(_step.value); if (i && _arr.length === i) break; } return _arr; } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } };
4533
-
4534
4521
  /**
4535
4522
  @module ember
4536
4523
  @submodule ember-application
@@ -4550,9 +4537,7 @@ enifed('ember-application/system/resolver', ['exports', 'ember-metal/core', 'emb
4550
4537
  makeToString: null, // required
4551
4538
  resolveOther: null, // required
4552
4539
  _logLookup: null // required
4553
- });
4554
-
4555
- exports['default'] = EmberObject['default'].extend({
4540
+ });exports['default'] = EmberObject['default'].extend({
4556
4541
  /**
4557
4542
  This will be set to the Application instance when it is
4558
4543
  created.
@@ -4564,31 +4549,29 @@ enifed('ember-application/system/resolver', ['exports', 'ember-metal/core', 'emb
4564
4549
  this._parseNameCache = dictionary['default'](null);
4565
4550
  },
4566
4551
  normalize: function (fullName) {
4567
- var _fullName$split = fullName.split(":", 2);
4552
+ var _fullName$split = fullName.split(':', 2);
4568
4553
 
4569
- var _fullName$split2 = _slicedToArray(_fullName$split, 2);
4554
+ var type = _fullName$split[0];
4555
+ var name = _fullName$split[1];
4570
4556
 
4571
- var type = _fullName$split2[0];
4572
- var name = _fullName$split2[1];
4557
+ Ember['default'].assert('Tried to normalize a container name without a colon (:) in it.' + ' You probably tried to lookup a name that did not contain a type,' + ' a colon, and a name. A proper lookup name would be `view:post`.', fullName.split(':').length === 2);
4573
4558
 
4574
- Ember['default'].assert("Tried to normalize a container name without a colon (:) in it." + " You probably tried to lookup a name that did not contain a type," + " a colon, and a name. A proper lookup name would be `view:post`.", fullName.split(":").length === 2);
4575
-
4576
- if (type !== "template") {
4559
+ if (type !== 'template') {
4577
4560
  var result = name;
4578
4561
 
4579
- if (result.indexOf(".") > -1) {
4562
+ if (result.indexOf('.') > -1) {
4580
4563
  result = result.replace(/\.(.)/g, function (m) {
4581
4564
  return m.charAt(1).toUpperCase();
4582
4565
  });
4583
4566
  }
4584
4567
 
4585
- if (name.indexOf("_") > -1) {
4568
+ if (name.indexOf('_') > -1) {
4586
4569
  result = result.replace(/_(.)/g, function (m) {
4587
4570
  return m.charAt(1).toUpperCase();
4588
4571
  });
4589
4572
  }
4590
4573
 
4591
- return type + ":" + result;
4574
+ return type + ':' + result;
4592
4575
  } else {
4593
4576
  return fullName;
4594
4577
  }
@@ -4634,30 +4617,28 @@ enifed('ember-application/system/resolver', ['exports', 'ember-metal/core', 'emb
4634
4617
  },
4635
4618
 
4636
4619
  _parseName: function (fullName) {
4637
- var _fullName$split = fullName.split(":");
4638
-
4639
- var _fullName$split2 = _slicedToArray(_fullName$split, 2);
4620
+ var _fullName$split2 = fullName.split(':');
4640
4621
 
4641
4622
  var type = _fullName$split2[0];
4642
4623
  var fullNameWithoutType = _fullName$split2[1];
4643
4624
 
4644
4625
  var name = fullNameWithoutType;
4645
- var namespace = property_get.get(this, "namespace");
4626
+ var namespace = property_get.get(this, 'namespace');
4646
4627
  var root = namespace;
4647
4628
 
4648
- if (type !== "template" && name.indexOf("/") !== -1) {
4649
- var parts = name.split("/");
4629
+ if (type !== 'template' && name.indexOf('/') !== -1) {
4630
+ var parts = name.split('/');
4650
4631
  name = parts[parts.length - 1];
4651
- var namespaceName = string.capitalize(parts.slice(0, -1).join("."));
4632
+ var namespaceName = string.capitalize(parts.slice(0, -1).join('.'));
4652
4633
  root = Namespace['default'].byName(namespaceName);
4653
4634
 
4654
- Ember['default'].assert("You are looking for a " + name + " " + type + " in the " + namespaceName + " namespace, but the namespace could not be found", root);
4635
+ Ember['default'].assert('You are looking for a ' + name + ' ' + type + ' in the ' + namespaceName + ' namespace, but the namespace could not be found', root);
4655
4636
  }
4656
4637
 
4657
- var resolveMethodName = fullNameWithoutType === "main" ? "Main" : string.classify(type);
4638
+ var resolveMethodName = fullNameWithoutType === 'main' ? 'Main' : string.classify(type);
4658
4639
 
4659
4640
  if (!(name && type)) {
4660
- throw new TypeError("Invalid fullName: `" + fullName + "`, must be of the form `type:name` ");
4641
+ throw new TypeError('Invalid fullName: `' + fullName + '`, must be of the form `type:name` ');
4661
4642
  }
4662
4643
 
4663
4644
  return {
@@ -4666,7 +4647,7 @@ enifed('ember-application/system/resolver', ['exports', 'ember-metal/core', 'emb
4666
4647
  fullNameWithoutType: fullNameWithoutType,
4667
4648
  name: name,
4668
4649
  root: root,
4669
- resolveMethodName: "resolve" + resolveMethodName
4650
+ resolveMethodName: 'resolve' + resolveMethodName
4670
4651
  };
4671
4652
  },
4672
4653
 
@@ -4683,13 +4664,13 @@ enifed('ember-application/system/resolver', ['exports', 'ember-metal/core', 'emb
4683
4664
  var parsedName = this.parseName(fullName);
4684
4665
  var description;
4685
4666
 
4686
- if (parsedName.type === "template") {
4687
- return "template at " + parsedName.fullNameWithoutType.replace(/\./g, "/");
4667
+ if (parsedName.type === 'template') {
4668
+ return 'template at ' + parsedName.fullNameWithoutType.replace(/\./g, '/');
4688
4669
  }
4689
4670
 
4690
- description = parsedName.root + "." + string.classify(parsedName.name).replace(/\./g, "");
4671
+ description = parsedName.root + '.' + string.classify(parsedName.name).replace(/\./g, '');
4691
4672
 
4692
- if (parsedName.type !== "model") {
4673
+ if (parsedName.type !== 'model') {
4693
4674
  description += string.classify(parsedName.type);
4694
4675
  }
4695
4676
 
@@ -4709,9 +4690,9 @@ enifed('ember-application/system/resolver', ['exports', 'ember-metal/core', 'emb
4709
4690
  @method useRouterNaming
4710
4691
  */
4711
4692
  useRouterNaming: function (parsedName) {
4712
- parsedName.name = parsedName.name.replace(/\./g, "_");
4713
- if (parsedName.name === "basic") {
4714
- parsedName.name = "";
4693
+ parsedName.name = parsedName.name.replace(/\./g, '_');
4694
+ if (parsedName.name === 'basic') {
4695
+ parsedName.name = '';
4715
4696
  }
4716
4697
  },
4717
4698
  /**
@@ -4722,7 +4703,7 @@ enifed('ember-application/system/resolver', ['exports', 'ember-metal/core', 'emb
4722
4703
  @method resolveTemplate
4723
4704
  */
4724
4705
  resolveTemplate: function (parsedName) {
4725
- var templateName = parsedName.fullNameWithoutType.replace(/\./g, "/");
4706
+ var templateName = parsedName.fullNameWithoutType.replace(/\./g, '/');
4726
4707
 
4727
4708
  if (Ember['default'].TEMPLATES[templateName]) {
4728
4709
  return Ember['default'].TEMPLATES[templateName];
@@ -4826,15 +4807,15 @@ enifed('ember-application/system/resolver', ['exports', 'ember-metal/core', 'emb
4826
4807
  var symbol, padding;
4827
4808
 
4828
4809
  if (found) {
4829
- symbol = "[✓]";
4810
+ symbol = '[✓]';
4830
4811
  } else {
4831
- symbol = "[ ]";
4812
+ symbol = '[ ]';
4832
4813
  }
4833
4814
 
4834
4815
  if (parsedName.fullName.length > 60) {
4835
- padding = ".";
4816
+ padding = '.';
4836
4817
  } else {
4837
- padding = new Array(60 - parsedName.fullName.length).join(".");
4818
+ padding = new Array(60 - parsedName.fullName.length).join('.');
4838
4819
  }
4839
4820
 
4840
4821
  Logger['default'].info(symbol, parsedName.fullName, padding, this.lookupDescription(parsedName.fullName));
@@ -4844,7 +4825,7 @@ enifed('ember-application/system/resolver', ['exports', 'ember-metal/core', 'emb
4844
4825
  exports.Resolver = Resolver;
4845
4826
 
4846
4827
  });
4847
- enifed('ember-debug', ['exports', 'ember-metal/core', 'ember-metal/error', 'ember-metal/logger', 'ember-metal/environment'], function (exports, Ember, EmberError, Logger, environment) {
4828
+ enifed('ember-debug', ['exports', 'ember-metal/core', 'ember-metal/utils', 'ember-metal/error', 'ember-metal/logger', 'ember-metal/environment'], function (exports, Ember, utils, EmberError, Logger, environment) {
4848
4829
 
4849
4830
  'use strict';
4850
4831
 
@@ -4863,7 +4844,7 @@ enifed('ember-debug', ['exports', 'ember-metal/core', 'ember-metal/error', 'embe
4863
4844
  Ember['default'].assert = function (desc, test) {
4864
4845
  var throwAssertion;
4865
4846
 
4866
- if (Ember['default'].typeOf(test) === "function") {
4847
+ if (utils.typeOf(test) === "function") {
4867
4848
  throwAssertion = !test();
4868
4849
  } else {
4869
4850
  throwAssertion = !test;
@@ -4914,8 +4895,9 @@ enifed('ember-debug', ['exports', 'ember-metal/core', 'ember-metal/error', 'embe
4914
4895
 
4915
4896
  @method deprecate
4916
4897
  @param {String} message A description of the deprecation.
4917
- @param {Boolean} test An optional boolean. If falsy, the deprecation
4918
- will be displayed.
4898
+ @param {Boolean|Function} test An optional boolean. If falsy, the deprecation
4899
+ will be displayed. If this is a function, it will be executed and its return
4900
+ value will be used as condition.
4919
4901
  @param {Object} options An optional object that can be used to pass
4920
4902
  in a `url` to the transition guide on the emberjs.com website.
4921
4903
  */
@@ -5668,7 +5650,7 @@ enifed('ember-htmlbars/compat/handlebars-get', ['exports'], function (exports) {
5668
5650
  exports['default'] = handlebarsGet;
5669
5651
 
5670
5652
  function handlebarsGet(root, path, options) {
5671
- Ember.deprecate("Usage of Ember.Handlebars.get is deprecated, use a Component or Ember.Handlebars.makeBoundHelper instead.");
5653
+ Ember.deprecate('Usage of Ember.Handlebars.get is deprecated, use a Component or Ember.Handlebars.makeBoundHelper instead.');
5672
5654
 
5673
5655
  return options.data.view.getStream(path).value();
5674
5656
  }
@@ -5703,7 +5685,7 @@ enifed('ember-htmlbars/compat/helper', ['exports', 'ember-metal/merge', 'ember-h
5703
5685
  function HandlebarsCompatibleHelper(fn) {
5704
5686
  this.helperFunction = function helperFunc(params, hash, options, env) {
5705
5687
  var param, blockResult, fnResult;
5706
- var context = this;
5688
+ var context = env.data.view;
5707
5689
  var handlebarsOptions = {
5708
5690
  hash: {},
5709
5691
  types: new Array(params.length),
@@ -5719,6 +5701,12 @@ enifed('ember-htmlbars/compat/helper', ['exports', 'ember-metal/merge', 'ember-h
5719
5701
  handlebarsOptions.fn = function () {
5720
5702
  blockResult = options.template.render(context, env, options.morph.contextualElement);
5721
5703
  };
5704
+
5705
+ if (options.inverse) {
5706
+ handlebarsOptions.inverse = function () {
5707
+ blockResult = options.inverse.render(context, env, options.morph.contextualElement);
5708
+ };
5709
+ }
5722
5710
  }
5723
5711
 
5724
5712
  for (var prop in hash) {
@@ -6083,12 +6071,6 @@ enifed('ember-htmlbars/helpers', ['exports', 'ember-metal/platform/create', 'emb
6083
6071
  @param {Object|Function} helperFunc the helper function to add
6084
6072
  */
6085
6073
  var helpers = o_create['default'](null);
6086
-
6087
- /**
6088
- @module ember
6089
- @submodule ember-htmlbars
6090
- */
6091
-
6092
6074
  function registerHelper(name, helperFunc) {
6093
6075
  var helper;
6094
6076
 
@@ -6571,14 +6553,14 @@ enifed('ember-htmlbars/helpers/debugger', ['exports', 'ember-metal/logger'], fun
6571
6553
  var view = env.data.view;
6572
6554
 
6573
6555
  /* jshint unused: false */
6574
- var context = view.get("context");
6556
+ var context = view.get('context');
6575
6557
 
6576
6558
  /* jshint unused: false */
6577
6559
  function get(path) {
6578
6560
  return view.getStream(path).value();
6579
6561
  }
6580
6562
 
6581
- Logger['default'].info("Use `view`, `context`, and `get(<path>)` to debug this template.");
6563
+ Logger['default'].info('Use `view`, `context`, and `get(<path>)` to debug this template.');
6582
6564
 
6583
6565
  debugger;
6584
6566
  }
@@ -6599,7 +6581,7 @@ enifed('ember-htmlbars/helpers/each', ['exports', 'ember-metal/core', 'ember-vie
6599
6581
  var helperName = "each";
6600
6582
  var path = params[0] || view.getStream("");
6601
6583
 
6602
- Ember['default'].assert("If you pass more than one argument to the each helper, " + "it must be in the form #each foo in bar", params.length <= 1);
6584
+ Ember['default'].assert("If you pass more than one argument to the each helper, " + "it must be in the form {{#each foo in bar}}", params.length <= 1);
6603
6585
 
6604
6586
  var blockParams = options.template && options.template.blockParams;
6605
6587
 
@@ -6608,7 +6590,7 @@ enifed('ember-htmlbars/helpers/each', ['exports', 'ember-metal/core', 'ember-vie
6608
6590
  hash.blockParams = blockParams;
6609
6591
  }
6610
6592
 
6611
- Ember['default'].deprecate("Using the context switching form of {{each}} is deprecated. " + "Please use the keyword form (`{{#each foo in bar}}`) instead.", hash.keyword === true || typeof hash.keyword === "string", { url: "http://emberjs.com/guides/deprecations/#toc_more-consistent-handlebars-scope" });
6593
+ Ember['default'].deprecate("Using the context switching form of {{each}} is deprecated. " + "Please use the block param form (`{{#each bar as |foo|}}`) instead.", hash.keyword === true || typeof hash.keyword === "string", { url: "http://emberjs.com/guides/deprecations/#toc_more-consistent-handlebars-scope" });
6612
6594
 
6613
6595
  hash.dataSource = path;
6614
6596
  options.helperName = options.helperName || helperName;
@@ -6948,7 +6930,7 @@ enifed('ember-htmlbars/helpers/loc', ['exports', 'ember-metal/core', 'ember-runt
6948
6930
  @see {Ember.String#loc}
6949
6931
  */
6950
6932
  function locHelper(params, hash, options, env) {
6951
- Ember['default'].assert("You cannot pass bindings to `loc` helper", (function ifParamsContainBindings() {
6933
+ Ember['default'].assert('You cannot pass bindings to `loc` helper', (function ifParamsContainBindings() {
6952
6934
  for (var i = 0, l = params.length; i < l; i++) {
6953
6935
  if (utils.isStream(params[i])) {
6954
6936
  return false;
@@ -7591,12 +7573,12 @@ enifed('ember-htmlbars/helpers/with', ['exports', 'ember-metal/core', 'ember-vie
7591
7573
 
7592
7574
  ```handlebars
7593
7575
  // posts might not be
7594
- {{#with user.posts as blogPosts}}
7576
+ {{#with user.posts as |blogPosts|}}
7595
7577
  <div class="notice">
7596
7578
  There are {{blogPosts.length}} blog posts written by {{user.name}}.
7597
7579
  </div>
7598
7580
 
7599
- {{#each post in blogPosts}}
7581
+ {{#each blogPosts as |post|}}
7600
7582
  <li>{{post.title}}</li>
7601
7583
  {{/each}}
7602
7584
  {{/with}}
@@ -7605,8 +7587,8 @@ enifed('ember-htmlbars/helpers/with', ['exports', 'ember-metal/core', 'ember-vie
7605
7587
  Without the `as` operator, it would be impossible to reference `user.name` in the example above.
7606
7588
 
7607
7589
  NOTE: The alias should not reuse a name from the bound property path.
7608
- For example: `{{#with foo.bar as foo}}` is not supported because it attempts to alias using
7609
- the first part of the property path, `foo`. Instead, use `{{#with foo.bar as baz}}`.
7590
+ For example: `{{#with foo as |foo.bar|}}` is not supported because it attempts to alias using
7591
+ the first part of the property path, `foo`. Instead, use `{{#with foo.bar as |baz|}}`.
7610
7592
 
7611
7593
  ### `controller` option
7612
7594
 
@@ -7616,7 +7598,7 @@ enifed('ember-htmlbars/helpers/with', ['exports', 'ember-metal/core', 'ember-vie
7616
7598
  This is very similar to using an `itemController` option with the `{{each}}` helper.
7617
7599
 
7618
7600
  ```handlebars
7619
- {{#with users.posts as posts controller='userBlogPosts'}}
7601
+ {{#with users.posts controller='userBlogPosts' as |posts|}}
7620
7602
  {{!- `posts` is wrapped in our controller instance }}
7621
7603
  {{/with}}
7622
7604
  ```
@@ -7632,7 +7614,7 @@ enifed('ember-htmlbars/helpers/with', ['exports', 'ember-metal/core', 'ember-vie
7632
7614
  @return {String} HTML string
7633
7615
  */
7634
7616
  function withHelper(params, hash, options, env) {
7635
- Ember['default'].assert("{{#with foo}} must be called with a single argument or the use the " + "{{#with foo as bar}} syntax", params.length === 1);
7617
+ Ember['default'].assert("{{#with}} must be called with an argument. For example, `{{#with foo as |bar|}}{{/with}}`", params.length === 1);
7636
7618
 
7637
7619
  Ember['default'].assert("The {{#with}} helper must be called with a block", !!options.template);
7638
7620
 
@@ -7642,7 +7624,7 @@ enifed('ember-htmlbars/helpers/with', ['exports', 'ember-metal/core', 'ember-vie
7642
7624
  if (options.template.blockParams) {
7643
7625
  preserveContext = true;
7644
7626
  } else {
7645
- Ember['default'].deprecate("Using the context switching form of `{{with}}` is deprecated. " + "Please use the keyword form (`{{with foo as bar}}`) instead.", false, { url: "http://emberjs.com/guides/deprecations/#toc_more-consistent-handlebars-scope" });
7627
+ Ember['default'].deprecate("Using the context switching form of `{{with}}` is deprecated. " + "Please use the block param form (`{{#with bar as |foo|}}`) instead.", false, { url: "http://emberjs.com/guides/deprecations/#toc_more-consistent-handlebars-scope" });
7646
7628
  preserveContext = false;
7647
7629
  }
7648
7630
 
@@ -8490,7 +8472,7 @@ enifed('ember-htmlbars/system/render-view', ['exports', 'ember-metal/core', 'emb
8490
8472
  }
8491
8473
 
8492
8474
  function renderHTMLBarsTemplate(view, buffer, template) {
8493
- Ember['default'].assert("The template being rendered by `" + view + "` was compiled with `" + template.revision + "` which does not match `Ember@1.12.0-beta.1` (this revision).", template.revision === "Ember@1.12.0-beta.1");
8475
+ Ember['default'].assert("The template being rendered by `" + view + "` was compiled with `" + template.revision + "` which does not match `Ember@1.12.0-beta.3` (this revision).", template.revision === "Ember@1.12.0-beta.3");
8494
8476
 
8495
8477
  var contextualElement = buffer.innerContextualElement();
8496
8478
  var args = view._blockArguments;
@@ -8529,7 +8511,7 @@ enifed('ember-htmlbars/templates/component', ['exports', 'ember-template-compile
8529
8511
  exports['default'] = template['default']((function () {
8530
8512
  return {
8531
8513
  isHTMLBars: true,
8532
- revision: "Ember@1.12.0-beta.1",
8514
+ revision: "Ember@1.12.0-beta.3",
8533
8515
  blockParams: 0,
8534
8516
  cachedFragment: null,
8535
8517
  hasRendered: false,
@@ -8577,7 +8559,7 @@ enifed('ember-htmlbars/templates/empty', ['exports', 'ember-template-compiler/sy
8577
8559
  exports['default'] = template['default']((function () {
8578
8560
  return {
8579
8561
  isHTMLBars: true,
8580
- revision: "Ember@1.12.0-beta.1",
8562
+ revision: "Ember@1.12.0-beta.3",
8581
8563
  blockParams: 0,
8582
8564
  cachedFragment: null,
8583
8565
  hasRendered: false,
@@ -8617,7 +8599,7 @@ enifed('ember-htmlbars/templates/link-to-escaped', ['exports', 'ember-template-c
8617
8599
  exports['default'] = template['default']((function () {
8618
8600
  return {
8619
8601
  isHTMLBars: true,
8620
- revision: "Ember@1.12.0-beta.1",
8602
+ revision: "Ember@1.12.0-beta.3",
8621
8603
  blockParams: 0,
8622
8604
  cachedFragment: null,
8623
8605
  hasRendered: false,
@@ -8665,7 +8647,7 @@ enifed('ember-htmlbars/templates/link-to-unescaped', ['exports', 'ember-template
8665
8647
  exports['default'] = template['default']((function () {
8666
8648
  return {
8667
8649
  isHTMLBars: true,
8668
- revision: "Ember@1.12.0-beta.1",
8650
+ revision: "Ember@1.12.0-beta.3",
8669
8651
  blockParams: 0,
8670
8652
  cachedFragment: null,
8671
8653
  hasRendered: false,
@@ -8705,6 +8687,54 @@ enifed('ember-htmlbars/templates/link-to-unescaped', ['exports', 'ember-template
8705
8687
  };
8706
8688
  })());
8707
8689
 
8690
+ });
8691
+ enifed('ember-htmlbars/templates/select-option', ['exports', 'ember-template-compiler/system/template'], function (exports, template) {
8692
+
8693
+ 'use strict';
8694
+
8695
+ exports['default'] = template['default']((function () {
8696
+ return {
8697
+ isHTMLBars: true,
8698
+ revision: "Ember@1.12.0-beta.3",
8699
+ blockParams: 0,
8700
+ cachedFragment: null,
8701
+ hasRendered: false,
8702
+ build: function build(dom) {
8703
+ var el0 = dom.createDocumentFragment();
8704
+ var el1 = dom.createComment("");
8705
+ dom.appendChild(el0, el1);
8706
+ return el0;
8707
+ },
8708
+ render: function render(context, env, contextualElement) {
8709
+ var dom = env.dom;
8710
+ var hooks = env.hooks,
8711
+ content = hooks.content;
8712
+ dom.detectNamespace(contextualElement);
8713
+ var fragment;
8714
+ if (env.useFragmentCache && dom.canClone) {
8715
+ if (this.cachedFragment === null) {
8716
+ fragment = this.build(dom);
8717
+ if (this.hasRendered) {
8718
+ this.cachedFragment = fragment;
8719
+ } else {
8720
+ this.hasRendered = true;
8721
+ }
8722
+ }
8723
+ if (this.cachedFragment) {
8724
+ fragment = dom.cloneNode(this.cachedFragment, true);
8725
+ }
8726
+ } else {
8727
+ fragment = this.build(dom);
8728
+ }
8729
+ var morph0 = dom.createMorphAt(fragment, 0, 0, contextualElement);
8730
+ dom.insertBoundary(fragment, null);
8731
+ dom.insertBoundary(fragment, 0);
8732
+ content(env, morph0, context, "view.label");
8733
+ return fragment;
8734
+ }
8735
+ };
8736
+ })());
8737
+
8708
8738
  });
8709
8739
  enifed('ember-htmlbars/templates/select', ['exports', 'ember-template-compiler/system/template'], function (exports, template) {
8710
8740
 
@@ -8714,7 +8744,7 @@ enifed('ember-htmlbars/templates/select', ['exports', 'ember-template-compiler/s
8714
8744
  var child0 = (function () {
8715
8745
  return {
8716
8746
  isHTMLBars: true,
8717
- revision: "Ember@1.12.0-beta.1",
8747
+ revision: "Ember@1.12.0-beta.3",
8718
8748
  blockParams: 0,
8719
8749
  cachedFragment: null,
8720
8750
  hasRendered: false,
@@ -8758,7 +8788,7 @@ enifed('ember-htmlbars/templates/select', ['exports', 'ember-template-compiler/s
8758
8788
  var child0 = (function () {
8759
8789
  return {
8760
8790
  isHTMLBars: true,
8761
- revision: "Ember@1.12.0-beta.1",
8791
+ revision: "Ember@1.12.0-beta.3",
8762
8792
  blockParams: 0,
8763
8793
  cachedFragment: null,
8764
8794
  hasRendered: false,
@@ -8800,7 +8830,7 @@ enifed('ember-htmlbars/templates/select', ['exports', 'ember-template-compiler/s
8800
8830
  })();
8801
8831
  return {
8802
8832
  isHTMLBars: true,
8803
- revision: "Ember@1.12.0-beta.1",
8833
+ revision: "Ember@1.12.0-beta.3",
8804
8834
  blockParams: 0,
8805
8835
  cachedFragment: null,
8806
8836
  hasRendered: false,
@@ -8844,7 +8874,7 @@ enifed('ember-htmlbars/templates/select', ['exports', 'ember-template-compiler/s
8844
8874
  var child0 = (function () {
8845
8875
  return {
8846
8876
  isHTMLBars: true,
8847
- revision: "Ember@1.12.0-beta.1",
8877
+ revision: "Ember@1.12.0-beta.3",
8848
8878
  blockParams: 0,
8849
8879
  cachedFragment: null,
8850
8880
  hasRendered: false,
@@ -8886,7 +8916,7 @@ enifed('ember-htmlbars/templates/select', ['exports', 'ember-template-compiler/s
8886
8916
  })();
8887
8917
  return {
8888
8918
  isHTMLBars: true,
8889
- revision: "Ember@1.12.0-beta.1",
8919
+ revision: "Ember@1.12.0-beta.3",
8890
8920
  blockParams: 0,
8891
8921
  cachedFragment: null,
8892
8922
  hasRendered: false,
@@ -8928,7 +8958,7 @@ enifed('ember-htmlbars/templates/select', ['exports', 'ember-template-compiler/s
8928
8958
  })();
8929
8959
  return {
8930
8960
  isHTMLBars: true,
8931
- revision: "Ember@1.12.0-beta.1",
8961
+ revision: "Ember@1.12.0-beta.3",
8932
8962
  blockParams: 0,
8933
8963
  cachedFragment: null,
8934
8964
  hasRendered: false,
@@ -9199,8 +9229,8 @@ enifed('ember-metal-views/renderer', ['exports', 'dom-helper', 'ember-metal/envi
9199
9229
 
9200
9230
  Renderer.prototype.replaceIn = function Renderer_replaceIn(view, target) {
9201
9231
  var morph;
9202
- if (target.firstNode) {
9203
- morph = this._dom.createMorph(target, target.firstNode, target.lastNode);
9232
+ if (target.firstChild) {
9233
+ morph = this._dom.createMorph(target, target.firstChild, target.lastChild);
9204
9234
  } else {
9205
9235
  morph = this._dom.appendMorph(target);
9206
9236
  }
@@ -9237,7 +9267,7 @@ enifed('ember-metal-views/renderer', ['exports', 'dom-helper', 'ember-metal/envi
9237
9267
 
9238
9268
  this.beforeRemove(removeQueue[idx]);
9239
9269
 
9240
- childViews = view._childViews;
9270
+ childViews = this.childViews(view);
9241
9271
  if (childViews) {
9242
9272
  for (i = 0, l = childViews.length; i < l; i++) {
9243
9273
  queue.push(childViews[i]);
@@ -9250,7 +9280,7 @@ enifed('ember-metal-views/renderer', ['exports', 'dom-helper', 'ember-metal/envi
9250
9280
 
9251
9281
  this.beforeRemove(destroyQueue[idx]);
9252
9282
 
9253
- childViews = view._childViews;
9283
+ childViews = this.childViews(view);
9254
9284
  if (childViews) {
9255
9285
  for (i = 0, l = childViews.length; i < l; i++) {
9256
9286
  destroyQueue.push(childViews[i]);
@@ -9369,8 +9399,9 @@ enifed('ember-metal', ['exports', 'ember-metal/core', 'ember-metal/merge', 'embe
9369
9399
  computed.computed.and = computed_macros.and;
9370
9400
  computed.computed.or = computed_macros.or;
9371
9401
  computed.computed.any = computed_macros.any;
9372
- computed.computed.collect = computed_macros.collect;
9402
+ computed.computed.collect = computed_macros.collect; // END IMPORTS
9373
9403
 
9404
+ // BEGIN EXPORTS
9374
9405
  var EmberInstrumentation = Ember['default'].Instrumentation = {};
9375
9406
  EmberInstrumentation.instrument = instrumentation.instrument;
9376
9407
  EmberInstrumentation.subscribe = instrumentation.subscribe;
@@ -10791,7 +10822,7 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/property_set', 'ember-me
10791
10822
  this._getter = config;
10792
10823
  if (config.__ember_arity > 1) {
10793
10824
  Ember.deprecate("Using the same function as getter and setter is deprecated.", false, {
10794
- url: "http://emberjs.com/deprecations/v1.x/#toc_deprecate-using-the-same-function-as-getter-and-setter-in-computed-properties"
10825
+ url: "http://emberjs.com/deprecations/v1.x/#toc_computed-properties-with-a-shared-getter-and-setter"
10795
10826
  });
10796
10827
  this._setter = config;
10797
10828
  }
@@ -10884,6 +10915,8 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/property_set', 'ember-me
10884
10915
  ComputedPropertyPrototype.readOnly = function (readOnly) {
10885
10916
  Ember.deprecate("Passing arguments to ComputedProperty.readOnly() is deprecated.", arguments.length === 0);
10886
10917
  this._readOnly = readOnly === undefined || !!readOnly; // Force to true once this deprecation is gone
10918
+ Ember.assert("Computed properties that define a setter using the new syntax cannot be read-only", !(this._readOnly && this._setter && this._setter !== this._getter));
10919
+
10887
10920
  return this;
10888
10921
  };
10889
10922
 
@@ -11582,10 +11615,10 @@ enifed('ember-metal/core', ['exports'], function (exports) {
11582
11615
 
11583
11616
  @class Ember
11584
11617
  @static
11585
- @version 1.12.0-beta.1
11618
+ @version 1.12.0-beta.3
11586
11619
  */
11587
11620
 
11588
- if ("undefined" === typeof Ember) {
11621
+ if ('undefined' === typeof Ember) {
11589
11622
  // Create core object. Make it act like an instance of Ember.Namespace so that
11590
11623
  // objects assigned to it are given a sane string representation.
11591
11624
  Ember = {};
@@ -11605,16 +11638,16 @@ enifed('ember-metal/core', ['exports'], function (exports) {
11605
11638
  Ember.isNamespace = true;
11606
11639
 
11607
11640
  Ember.toString = function () {
11608
- return "Ember";
11641
+ return 'Ember';
11609
11642
  };
11610
11643
 
11611
11644
  /**
11612
11645
  @property VERSION
11613
11646
  @type String
11614
- @default '1.12.0-beta.1'
11647
+ @default '1.12.0-beta.3'
11615
11648
  @static
11616
11649
  */
11617
- Ember.VERSION = "1.12.0-beta.1";
11650
+ Ember.VERSION = '1.12.0-beta.3';
11618
11651
 
11619
11652
  /**
11620
11653
  Standard environmental variables. You can define these in a global `EmberENV`
@@ -11629,10 +11662,10 @@ enifed('ember-metal/core', ['exports'], function (exports) {
11629
11662
 
11630
11663
  if (Ember.ENV) {
11631
11664
  // do nothing if Ember.ENV is already setup
11632
- Ember.assert("Ember.ENV should be an object.", "object" !== typeof Ember.ENV);
11633
- } else if ("undefined" !== typeof EmberENV) {
11665
+ Ember.assert('Ember.ENV should be an object.', 'object' !== typeof Ember.ENV);
11666
+ } else if ('undefined' !== typeof EmberENV) {
11634
11667
  Ember.ENV = EmberENV;
11635
- } else if ("undefined" !== typeof ENV) {
11668
+ } else if ('undefined' !== typeof ENV) {
11636
11669
  Ember.ENV = ENV;
11637
11670
  } else {
11638
11671
  Ember.ENV = {};
@@ -11641,7 +11674,7 @@ enifed('ember-metal/core', ['exports'], function (exports) {
11641
11674
  Ember.config = Ember.config || {};
11642
11675
 
11643
11676
  // We disable the RANGE API by default for performance reasons
11644
- if ("undefined" === typeof Ember.ENV.DISABLE_RANGE_API) {
11677
+ if ('undefined' === typeof Ember.ENV.DISABLE_RANGE_API) {
11645
11678
  Ember.ENV.DISABLE_RANGE_API = true;
11646
11679
  }
11647
11680
 
@@ -11655,11 +11688,14 @@ enifed('ember-metal/core', ['exports'], function (exports) {
11655
11688
  @static
11656
11689
  @since 1.1.0
11657
11690
  */
11691
+ Ember.FEATURES = {"features-stripped-test":false,"ember-routing-named-substates":true,"mandatory-setter":true,"ember-htmlbars-component-generation":false,"ember-htmlbars-component-helper":true,"ember-htmlbars-inline-if-helper":true,"ember-htmlbars-attribute-syntax":true,"ember-routing-transitioning-classes":true,"new-computed-syntax":true,"ember-testing-checkbox-helpers":false,"ember-metal-stream":false,"ember-application-instance-initializers":true,"ember-application-initializer-context":true,"ember-router-willtransition":true,"ember-application-visit":false,"ember-views-component-block-info":false,"ember-routing-core-outlet":false,"ember-libraries-isregistered":false}; //jshint ignore:line
11658
11692
 
11659
- Ember.FEATURES = Ember.ENV.FEATURES;
11660
-
11661
- if (!Ember.FEATURES) {
11662
- Ember.FEATURES = {"features-stripped-test":false,"ember-routing-named-substates":true,"mandatory-setter":true,"ember-htmlbars-component-generation":false,"ember-htmlbars-component-helper":true,"ember-htmlbars-inline-if-helper":true,"ember-htmlbars-attribute-syntax":true,"ember-routing-transitioning-classes":true,"new-computed-syntax":true,"ember-testing-checkbox-helpers":false,"ember-metal-stream":false,"ember-htmlbars-each-with-index":true,"ember-application-instance-initializers":true,"ember-application-initializer-context":true,"ember-router-willtransition":true,"ember-application-visit":false,"ember-views-component-block-info":false,"ember-routing-core-outlet":false,"ember-libraries-isregistered":false}; //jshint ignore:line
11693
+ if (Ember.ENV.FEATURES) {
11694
+ for (var feature in Ember.ENV.FEATURES) {
11695
+ if (Ember.ENV.FEATURES.hasOwnProperty(feature)) {
11696
+ Ember.FEATURES[feature] = Ember.ENV.FEATURES[feature];
11697
+ }
11698
+ }
11663
11699
  }
11664
11700
 
11665
11701
  /**
@@ -11714,7 +11750,7 @@ enifed('ember-metal/core', ['exports'], function (exports) {
11714
11750
  */
11715
11751
  Ember.EXTEND_PROTOTYPES = Ember.ENV.EXTEND_PROTOTYPES;
11716
11752
 
11717
- if (typeof Ember.EXTEND_PROTOTYPES === "undefined") {
11753
+ if (typeof Ember.EXTEND_PROTOTYPES === 'undefined') {
11718
11754
  Ember.EXTEND_PROTOTYPES = true;
11719
11755
  }
11720
11756
 
@@ -11760,22 +11796,22 @@ enifed('ember-metal/core', ['exports'], function (exports) {
11760
11796
 
11761
11797
  // Stub out the methods defined by the ember-debug package in case it's not loaded
11762
11798
 
11763
- if ("undefined" === typeof Ember.assert) {
11799
+ if ('undefined' === typeof Ember.assert) {
11764
11800
  Ember.assert = K;
11765
11801
  }
11766
- if ("undefined" === typeof Ember.warn) {
11802
+ if ('undefined' === typeof Ember.warn) {
11767
11803
  Ember.warn = K;
11768
11804
  }
11769
- if ("undefined" === typeof Ember.debug) {
11805
+ if ('undefined' === typeof Ember.debug) {
11770
11806
  Ember.debug = K;
11771
11807
  }
11772
- if ("undefined" === typeof Ember.runInDebug) {
11808
+ if ('undefined' === typeof Ember.runInDebug) {
11773
11809
  Ember.runInDebug = K;
11774
11810
  }
11775
- if ("undefined" === typeof Ember.deprecate) {
11811
+ if ('undefined' === typeof Ember.deprecate) {
11776
11812
  Ember.deprecate = K;
11777
11813
  }
11778
- if ("undefined" === typeof Ember.deprecateFunc) {
11814
+ if ('undefined' === typeof Ember.deprecateFunc) {
11779
11815
  Ember.deprecateFunc = function (_, func) {
11780
11816
  return func;
11781
11817
  };
@@ -11911,13 +11947,13 @@ enifed('ember-metal/dictionary', ['exports', 'ember-metal/platform/create'], fun
11911
11947
  exports['default'] = makeDictionary;
11912
11948
  function makeDictionary(parent) {
11913
11949
  var dict = create['default'](parent);
11914
- dict["_dict"] = null;
11915
- delete dict["_dict"];
11950
+ dict['_dict'] = null;
11951
+ delete dict['_dict'];
11916
11952
  return dict;
11917
11953
  }
11918
11954
 
11919
11955
  });
11920
- enifed('ember-metal/enumerable_utils', ['exports', 'ember-metal/array'], function (exports, array) {
11956
+ enifed('ember-metal/enumerable_utils', ['exports', 'ember-metal/array'], function (exports, ember_metal__array) {
11921
11957
 
11922
11958
  'use strict';
11923
11959
 
@@ -11954,19 +11990,19 @@ enifed('ember-metal/enumerable_utils', ['exports', 'ember-metal/array'], functio
11954
11990
  */
11955
11991
  var splice = Array.prototype.splice;
11956
11992
  function map(obj, callback, thisArg) {
11957
- return obj.map ? obj.map(callback, thisArg) : array.map.call(obj, callback, thisArg);
11993
+ return obj.map ? obj.map(callback, thisArg) : ember_metal__array.map.call(obj, callback, thisArg);
11958
11994
  }
11959
11995
 
11960
11996
  function forEach(obj, callback, thisArg) {
11961
- return obj.forEach ? obj.forEach(callback, thisArg) : array.forEach.call(obj, callback, thisArg);
11997
+ return obj.forEach ? obj.forEach(callback, thisArg) : ember_metal__array.forEach.call(obj, callback, thisArg);
11962
11998
  }
11963
11999
 
11964
12000
  function filter(obj, callback, thisArg) {
11965
- return obj.filter ? obj.filter(callback, thisArg) : array.filter.call(obj, callback, thisArg);
12001
+ return obj.filter ? obj.filter(callback, thisArg) : ember_metal__array.filter.call(obj, callback, thisArg);
11966
12002
  }
11967
12003
 
11968
12004
  function indexOf(obj, element, index) {
11969
- return obj.indexOf ? obj.indexOf(element, index) : array.indexOf.call(obj, element, index);
12005
+ return obj.indexOf ? obj.indexOf(element, index) : ember_metal__array.indexOf.call(obj, element, index);
11970
12006
  }
11971
12007
 
11972
12008
  function indexesOf(obj, elements) {
@@ -12060,7 +12096,7 @@ enifed('ember-metal/environment', ['exports', 'ember-metal/core'], function (exp
12060
12096
  // by searching for window and document.createElement. An environment
12061
12097
  // with DOM may disable the DOM functionality of Ember explicitly by
12062
12098
  // defining a `disableBrowserEnvironment` ENV.
12063
- var hasDOM = typeof window !== "undefined" && typeof document !== "undefined" && typeof document.createElement !== "undefined" && !Ember['default'].ENV.disableBrowserEnvironment;
12099
+ var hasDOM = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof document.createElement !== 'undefined' && !Ember['default'].ENV.disableBrowserEnvironment;
12064
12100
 
12065
12101
  if (hasDOM) {
12066
12102
  environment = {
@@ -12077,7 +12113,7 @@ enifed('ember-metal/environment', ['exports', 'ember-metal/core'], function (exp
12077
12113
  isChrome: false,
12078
12114
  location: null,
12079
12115
  history: null,
12080
- userAgent: "Lynx (textmode)",
12116
+ userAgent: 'Lynx (textmode)',
12081
12117
  global: null
12082
12118
  };
12083
12119
  }
@@ -12089,7 +12125,7 @@ enifed('ember-metal/error', ['exports', 'ember-metal/platform/create'], function
12089
12125
 
12090
12126
  'use strict';
12091
12127
 
12092
- var errorProps = ["description", "fileName", "lineNumber", "message", "name", "number", "stack"];
12128
+ var errorProps = ['description', 'fileName', 'lineNumber', 'message', 'name', 'number', 'stack'];
12093
12129
 
12094
12130
  /**
12095
12131
  A subclass of the JavaScript Error object for use in Ember.
@@ -12488,7 +12524,7 @@ enifed('ember-metal/expand_properties', ['exports', 'ember-metal/error', 'ember-
12488
12524
  Ember.expandProperties('foo.bar', echo); //=> 'foo.bar'
12489
12525
  Ember.expandProperties('{foo,bar}', echo); //=> 'foo', 'bar'
12490
12526
  Ember.expandProperties('foo.{bar,baz}', echo); //=> 'foo.bar', 'foo.baz'
12491
- Ember.expandProperties('{foo,bar}.baz', echo); //=> '{foo,bar}.baz'
12527
+ Ember.expandProperties('{foo,bar}.baz', echo); //=> 'foo.baz', 'bar.baz'
12492
12528
  Ember.expandProperties('foo.{bar,baz}.@each', echo) //=> 'foo.bar.@each', 'foo.baz.@each'
12493
12529
  Ember.expandProperties('{foo,bar}.{spam,eggs}', echo) //=> 'foo.spam', 'foo.eggs', 'bar.spam', 'bar.eggs'
12494
12530
  Ember.expandProperties('{foo}.bar.{baz}') //=> 'foo.bar.baz'
@@ -12504,22 +12540,22 @@ enifed('ember-metal/expand_properties', ['exports', 'ember-metal/error', 'ember-
12504
12540
 
12505
12541
  var SPLIT_REGEX = /\{|\}/;
12506
12542
  function expandProperties(pattern, callback) {
12507
- if (pattern.indexOf(" ") > -1) {
12508
- throw new EmberError['default']("Brace expanded properties cannot contain spaces, e.g. 'user.{firstName, lastName}' should be 'user.{firstName,lastName}'");
12543
+ if (pattern.indexOf(' ') > -1) {
12544
+ throw new EmberError['default']('Brace expanded properties cannot contain spaces, e.g. \'user.{firstName, lastName}\' should be \'user.{firstName,lastName}\'');
12509
12545
  }
12510
12546
 
12511
- if ("string" === utils.typeOf(pattern)) {
12547
+ if ('string' === utils.typeOf(pattern)) {
12512
12548
  var parts = pattern.split(SPLIT_REGEX);
12513
12549
  var properties = [parts];
12514
12550
 
12515
12551
  enumerable_utils.forEach(parts, function (part, index) {
12516
- if (part.indexOf(",") >= 0) {
12517
- properties = duplicateAndReplace(properties, part.split(","), index);
12552
+ if (part.indexOf(',') >= 0) {
12553
+ properties = duplicateAndReplace(properties, part.split(','), index);
12518
12554
  }
12519
12555
  });
12520
12556
 
12521
12557
  enumerable_utils.forEach(properties, function (property) {
12522
- callback(property.join(""));
12558
+ callback(property.join(''));
12523
12559
  });
12524
12560
  } else {
12525
12561
  callback(pattern);
@@ -12820,7 +12856,7 @@ enifed('ember-metal/is_blank', ['exports', 'ember-metal/is_empty'], function (ex
12820
12856
  */
12821
12857
  exports['default'] = isBlank;
12822
12858
  function isBlank(obj) {
12823
- return isEmpty['default'](obj) || typeof obj === "string" && obj.match(/\S/) === null;
12859
+ return isEmpty['default'](obj) || typeof obj === 'string' && obj.match(/\S/) === null;
12824
12860
  }
12825
12861
 
12826
12862
  });
@@ -12834,26 +12870,26 @@ enifed('ember-metal/is_empty', ['exports', 'ember-metal/property_get', 'ember-me
12834
12870
  return none;
12835
12871
  }
12836
12872
 
12837
- if (typeof obj.size === "number") {
12873
+ if (typeof obj.size === 'number') {
12838
12874
  return !obj.size;
12839
12875
  }
12840
12876
 
12841
12877
  var objectType = typeof obj;
12842
12878
 
12843
- if (objectType === "object") {
12844
- var size = property_get.get(obj, "size");
12845
- if (typeof size === "number") {
12879
+ if (objectType === 'object') {
12880
+ var size = property_get.get(obj, 'size');
12881
+ if (typeof size === 'number') {
12846
12882
  return !size;
12847
12883
  }
12848
12884
  }
12849
12885
 
12850
- if (typeof obj.length === "number" && objectType !== "function") {
12886
+ if (typeof obj.length === 'number' && objectType !== 'function') {
12851
12887
  return !obj.length;
12852
12888
  }
12853
12889
 
12854
- if (objectType === "object") {
12855
- var length = property_get.get(obj, "length");
12856
- if (typeof length === "number") {
12890
+ if (objectType === 'object') {
12891
+ var length = property_get.get(obj, 'length');
12892
+ if (typeof length === 'number') {
12857
12893
  return !length;
12858
12894
  }
12859
12895
  }
@@ -12940,20 +12976,20 @@ enifed('ember-metal/keys', ['exports', 'ember-metal/platform/define_property'],
12940
12976
  // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
12941
12977
  keys = (function () {
12942
12978
  var hasOwnProperty = Object.prototype.hasOwnProperty;
12943
- var hasDontEnumBug = !({ toString: null }).propertyIsEnumerable("toString");
12944
- var dontEnums = ["toString", "toLocaleString", "valueOf", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "constructor"];
12979
+ var hasDontEnumBug = !({ toString: null }).propertyIsEnumerable('toString');
12980
+ var dontEnums = ['toString', 'toLocaleString', 'valueOf', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'constructor'];
12945
12981
  var dontEnumsLength = dontEnums.length;
12946
12982
 
12947
12983
  return function keys(obj) {
12948
- if (typeof obj !== "object" && (typeof obj !== "function" || obj === null)) {
12949
- throw new TypeError("Object.keys called on non-object");
12984
+ if (typeof obj !== 'object' && (typeof obj !== 'function' || obj === null)) {
12985
+ throw new TypeError('Object.keys called on non-object');
12950
12986
  }
12951
12987
 
12952
12988
  var result = [];
12953
12989
  var prop, i;
12954
12990
 
12955
12991
  for (prop in obj) {
12956
- if (prop !== "_super" && prop.lastIndexOf("__", 0) !== 0 && hasOwnProperty.call(obj, prop)) {
12992
+ if (prop !== '_super' && prop.lastIndexOf('__', 0) !== 0 && hasOwnProperty.call(obj, prop)) {
12957
12993
  result.push(prop);
12958
12994
  }
12959
12995
  }
@@ -13710,7 +13746,7 @@ enifed('ember-metal/merge', ['exports', 'ember-metal/keys'], function (exports,
13710
13746
  */
13711
13747
  exports['default'] = merge;
13712
13748
  function merge(original, updates) {
13713
- if (!updates || typeof updates !== "object") {
13749
+ if (!updates || typeof updates !== 'object') {
13714
13750
  return original;
13715
13751
  }
13716
13752
 
@@ -13727,7 +13763,7 @@ enifed('ember-metal/merge', ['exports', 'ember-metal/keys'], function (exports,
13727
13763
  }
13728
13764
 
13729
13765
  });
13730
- enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/merge', 'ember-metal/array', 'ember-metal/platform/create', 'ember-metal/property_get', 'ember-metal/property_set', 'ember-metal/utils', 'ember-metal/expand_properties', 'ember-metal/properties', 'ember-metal/computed', 'ember-metal/binding', 'ember-metal/observer', 'ember-metal/events', 'ember-metal/streams/utils'], function (exports, Ember, merge, array, o_create, property_get, property_set, utils, expandProperties, properties, computed, ember_metal__binding, ember_metal__observer, events, streams__utils) {
13766
+ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/merge', 'ember-metal/array', 'ember-metal/platform/create', 'ember-metal/property_get', 'ember-metal/property_set', 'ember-metal/utils', 'ember-metal/expand_properties', 'ember-metal/properties', 'ember-metal/computed', 'ember-metal/binding', 'ember-metal/observer', 'ember-metal/events', 'ember-metal/streams/utils'], function (exports, Ember, merge, array, o_create, property_get, property_set, utils, expandProperties, ember_metal__properties, computed, ember_metal__binding, ember_metal__observer, events, streams__utils) {
13731
13767
 
13732
13768
 
13733
13769
  exports.mixin = mixin;
@@ -13959,7 +13995,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/merge',
13959
13995
  }
13960
13996
 
13961
13997
  function addNormalizedProperty(base, key, value, meta, descs, values, concats, mergings) {
13962
- if (value instanceof properties.Descriptor) {
13998
+ if (value instanceof ember_metal__properties.Descriptor) {
13963
13999
  if (value === REQUIRED && descs[key]) {
13964
14000
  return CONTINUE;
13965
14001
  }
@@ -14191,7 +14227,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/merge',
14191
14227
 
14192
14228
  replaceObserversAndListeners(obj, key, value);
14193
14229
  detectBinding(obj, key, value, m);
14194
- properties.defineProperty(obj, key, desc, value, m);
14230
+ ember_metal__properties.defineProperty(obj, key, desc, value, m);
14195
14231
  }
14196
14232
 
14197
14233
  if (!partial) {
@@ -14307,8 +14343,8 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/merge',
14307
14343
  @param arguments*
14308
14344
  */
14309
14345
  Mixin.create = function () {
14310
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
14311
- args[_key] = arguments[_key];
14346
+ for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
14347
+ args[_key2] = arguments[_key2];
14312
14348
  }
14313
14349
 
14314
14350
  // ES6TODO: this relies on a global state?
@@ -14407,8 +14443,8 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/merge',
14407
14443
  };
14408
14444
 
14409
14445
  MixinPrototype.without = function () {
14410
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
14411
- args[_key] = arguments[_key];
14446
+ for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
14447
+ args[_key3] = arguments[_key3];
14412
14448
  }
14413
14449
 
14414
14450
  var ret = new Mixin([this]);
@@ -14472,7 +14508,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/merge',
14472
14508
  return ret;
14473
14509
  };
14474
14510
 
14475
- exports.REQUIRED = REQUIRED = new properties.Descriptor();
14511
+ REQUIRED = new ember_metal__properties.Descriptor();
14476
14512
  REQUIRED.toString = function () {
14477
14513
  return "(Required Property)";
14478
14514
  };
@@ -14486,14 +14522,14 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/merge',
14486
14522
  this.methodName = methodName;
14487
14523
  }
14488
14524
 
14489
- Alias.prototype = new properties.Descriptor();
14525
+ Alias.prototype = new ember_metal__properties.Descriptor();
14490
14526
  function aliasMethod(methodName) {
14491
14527
  return new Alias(methodName);
14492
14528
  }
14493
14529
 
14494
14530
  function observer() {
14495
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
14496
- args[_key] = arguments[_key];
14531
+ for (var _len4 = arguments.length, args = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
14532
+ args[_key4] = arguments[_key4];
14497
14533
  }
14498
14534
 
14499
14535
  var func = args.slice(-1)[0];
@@ -14535,8 +14571,8 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/merge',
14535
14571
  }
14536
14572
 
14537
14573
  function beforeObserver() {
14538
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
14539
- args[_key] = arguments[_key];
14574
+ for (var _len5 = arguments.length, args = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
14575
+ args[_key5] = arguments[_key5];
14540
14576
  }
14541
14577
 
14542
14578
  var func = args.slice(-1)[0];
@@ -14570,6 +14606,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/merge',
14570
14606
  }
14571
14607
 
14572
14608
  exports.IS_BINDING = IS_BINDING;
14609
+ exports.REQUIRED = REQUIRED;
14573
14610
 
14574
14611
  });
14575
14612
  enifed('ember-metal/observer', ['exports', 'ember-metal/watching', 'ember-metal/array', 'ember-metal/events'], function (exports, watching, array, ember_metal__events) {
@@ -14725,7 +14762,7 @@ enifed('ember-metal/path_cache', ['exports', 'ember-metal/cache'], function (exp
14725
14762
 
14726
14763
  var IS_GLOBAL = /^[A-Z$]/;
14727
14764
  var IS_GLOBAL_PATH = /^[A-Z$].*[\.]/;
14728
- var HAS_THIS = "this.";
14765
+ var HAS_THIS = 'this.';
14729
14766
 
14730
14767
  var isGlobalCache = new Cache['default'](1000, function (key) {
14731
14768
  return IS_GLOBAL.test(key);
@@ -14740,7 +14777,7 @@ enifed('ember-metal/path_cache', ['exports', 'ember-metal/cache'], function (exp
14740
14777
  });
14741
14778
 
14742
14779
  var firstDotIndexCache = new Cache['default'](1000, function (key) {
14743
- return key.indexOf(".");
14780
+ return key.indexOf('.');
14744
14781
  });
14745
14782
 
14746
14783
  var firstKeyCache = new Cache['default'](1000, function (path) {
@@ -14799,7 +14836,7 @@ enifed('ember-metal/platform/create', ['exports', 'ember-metal/platform/define_p
14799
14836
  // Remove "use strict"; from transpiled module until
14800
14837
  // https://bugs.webkit.org/show_bug.cgi?id=138038 is fixed
14801
14838
  //
14802
- "REMOVE_USE_STRICT: true";
14839
+ 'REMOVE_USE_STRICT: true';
14803
14840
 
14804
14841
  var create;
14805
14842
  // ES5 15.2.3.5
@@ -14808,13 +14845,13 @@ enifed('ember-metal/platform/create', ['exports', 'ember-metal/platform/define_p
14808
14845
  /* jshint scripturl:true, proto:true */
14809
14846
  // Contributed by Brandon Benvie, October, 2012
14810
14847
  var createEmpty;
14811
- var supportsProto = !({ "__proto__": null } instanceof Object);
14848
+ var supportsProto = !({ '__proto__': null } instanceof Object);
14812
14849
  // the following produces false positives
14813
14850
  // in Opera Mini => not a reliable check
14814
14851
  // Object.prototype.__proto__ === null
14815
- if (supportsProto || typeof document === "undefined") {
14852
+ if (supportsProto || typeof document === 'undefined') {
14816
14853
  createEmpty = function () {
14817
- return { "__proto__": null };
14854
+ return { '__proto__': null };
14818
14855
  };
14819
14856
  } else {
14820
14857
  // In old IE __proto__ can't be used to manually set `null`, nor does
@@ -14823,11 +14860,11 @@ enifed('ember-metal/platform/create', ['exports', 'ember-metal/platform/define_p
14823
14860
  // object and *steal* its Object.prototype and strip it bare. This is
14824
14861
  // used as the prototype to create nullary objects.
14825
14862
  createEmpty = function () {
14826
- var iframe = document.createElement("iframe");
14863
+ var iframe = document.createElement('iframe');
14827
14864
  var parent = document.body || document.documentElement;
14828
- iframe.style.display = "none";
14865
+ iframe.style.display = 'none';
14829
14866
  parent.appendChild(iframe);
14830
- iframe.src = "javascript:";
14867
+ iframe.src = 'javascript:';
14831
14868
  var empty = iframe.contentWindow.Object.prototype;
14832
14869
  parent.removeChild(iframe);
14833
14870
  iframe = null;
@@ -14857,13 +14894,13 @@ enifed('ember-metal/platform/create', ['exports', 'ember-metal/platform/define_p
14857
14894
  if (prototype === null) {
14858
14895
  object = createEmpty();
14859
14896
  } else {
14860
- if (typeof prototype !== "object" && typeof prototype !== "function") {
14897
+ if (typeof prototype !== 'object' && typeof prototype !== 'function') {
14861
14898
  // In the native implementation `parent` can be `null`
14862
14899
  // OR *any* `instanceof Object` (Object|Function|Array|RegExp|etc)
14863
14900
  // Use `typeof` tho, b/c in old IE, DOM elements are not `instanceof Object`
14864
14901
  // like they are in modern browsers. Using `Object.create` on DOM elements
14865
14902
  // is...err...probably inappropriate, but the native version allows for it.
14866
- throw new TypeError("Object prototype may only be an Object or null"); // same msg as Chrome
14903
+ throw new TypeError('Object prototype may only be an Object or null'); // same msg as Chrome
14867
14904
  }
14868
14905
 
14869
14906
  Type.prototype = prototype;
@@ -14945,7 +14982,7 @@ enifed('ember-metal/platform/define_property', ['exports'], function (exports) {
14945
14982
  try {
14946
14983
  var a = 5;
14947
14984
  var obj = {};
14948
- defineProperty(obj, "a", {
14985
+ defineProperty(obj, 'a', {
14949
14986
  configurable: true,
14950
14987
  enumerable: true,
14951
14988
  get: function () {
@@ -14965,14 +15002,14 @@ enifed('ember-metal/platform/define_property', ['exports'], function (exports) {
14965
15002
  }
14966
15003
 
14967
15004
  // check non-enumerability
14968
- defineProperty(obj, "a", {
15005
+ defineProperty(obj, 'a', {
14969
15006
  configurable: true,
14970
15007
  enumerable: false,
14971
15008
  writable: true,
14972
15009
  value: true
14973
15010
  });
14974
15011
  for (var key in obj) {
14975
- if (key === "a") {
15012
+ if (key === 'a') {
14976
15013
  return;
14977
15014
  }
14978
15015
  }
@@ -14985,7 +15022,7 @@ enifed('ember-metal/platform/define_property', ['exports'], function (exports) {
14985
15022
 
14986
15023
  // Detects a bug in Android <3 where redefining a property without a value changes the value
14987
15024
  // Object.defineProperty once accessors have already been set.
14988
- defineProperty(obj, "a", {
15025
+ defineProperty(obj, 'a', {
14989
15026
  enumerable: false
14990
15027
  });
14991
15028
  if (obj.a !== true) {
@@ -15002,12 +15039,12 @@ enifed('ember-metal/platform/define_property', ['exports'], function (exports) {
15002
15039
 
15003
15040
  var hasES5CompliantDefineProperty = !!defineProperty;
15004
15041
 
15005
- if (hasES5CompliantDefineProperty && typeof document !== "undefined") {
15042
+ if (hasES5CompliantDefineProperty && typeof document !== 'undefined') {
15006
15043
  // This is for Safari 5.0, which supports Object.defineProperty, but not
15007
15044
  // on DOM nodes.
15008
15045
  var canDefinePropertyOnDOM = (function () {
15009
15046
  try {
15010
- defineProperty(document.createElement("div"), "definePropertyOnDOM", {});
15047
+ defineProperty(document.createElement('div'), 'definePropertyOnDOM', {});
15011
15048
  return true;
15012
15049
  } catch (e) {}
15013
15050
 
@@ -15018,10 +15055,10 @@ enifed('ember-metal/platform/define_property', ['exports'], function (exports) {
15018
15055
  defineProperty = function (obj, keyName, desc) {
15019
15056
  var isNode;
15020
15057
 
15021
- if (typeof Node === "object") {
15058
+ if (typeof Node === 'object') {
15022
15059
  isNode = obj instanceof Node;
15023
15060
  } else {
15024
- isNode = typeof obj === "object" && typeof obj.nodeType === "number" && typeof obj.nodeName === "string";
15061
+ isNode = typeof obj === 'object' && typeof obj.nodeType === 'number' && typeof obj.nodeName === 'string';
15025
15062
  }
15026
15063
 
15027
15064
  if (isNode) {
@@ -15753,8 +15790,6 @@ enifed('ember-metal/run_loop', ['exports', 'ember-metal/core', 'ember-metal/util
15753
15790
 
15754
15791
  'use strict';
15755
15792
 
15756
- var _toConsumableArray = function (arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; return arr2; } else { return Array.from(arr); } };
15757
-
15758
15793
  function onBegin(current) {
15759
15794
  run.currentRunLoop = current;
15760
15795
  }
@@ -15764,17 +15799,17 @@ enifed('ember-metal/run_loop', ['exports', 'ember-metal/core', 'ember-metal/util
15764
15799
  }
15765
15800
 
15766
15801
  // ES6TODO: should Backburner become es6?
15767
- var backburner = new Backburner['default'](["sync", "actions", "destroy"], {
15802
+ var backburner = new Backburner['default'](['sync', 'actions', 'destroy'], {
15768
15803
  GUID_KEY: utils.GUID_KEY,
15769
15804
  sync: {
15770
15805
  before: property_events.beginPropertyChanges,
15771
15806
  after: property_events.endPropertyChanges
15772
15807
  },
15773
- defaultQueue: "actions",
15808
+ defaultQueue: 'actions',
15774
15809
  onBegin: onBegin,
15775
15810
  onEnd: onEnd,
15776
15811
  onErrorTarget: Ember['default'],
15777
- onErrorMethod: "onerror"
15812
+ onErrorMethod: 'onerror'
15778
15813
  });
15779
15814
 
15780
15815
  // ..........................................................
@@ -15872,12 +15907,12 @@ enifed('ember-metal/run_loop', ['exports', 'ember-metal/core', 'ember-metal/util
15872
15907
 
15873
15908
  ```javascript
15874
15909
  App.RichTextEditorComponent = Ember.Component.extend({
15875
- initializeTinyMCE: function() {
15910
+ initializeTinyMCE: Ember.on('didInsertElement', function() {
15876
15911
  tinymce.init({
15877
15912
  selector: '#' + this.$().prop('id'),
15878
15913
  setup: Ember.run.bind(this, this.setupEditor)
15879
15914
  });
15880
- }.on('didInsertElement'),
15915
+ }),
15881
15916
 
15882
15917
  setupEditor: function(editor) {
15883
15918
  this.set('editor', editor);
@@ -15913,7 +15948,7 @@ enifed('ember-metal/run_loop', ['exports', 'ember-metal/core', 'ember-metal/util
15913
15948
  args[_key2] = arguments[_key2];
15914
15949
  }
15915
15950
 
15916
- return run.join.apply(run, _toConsumableArray(curried.concat(args)));
15951
+ return run.join.apply(run, curried.concat(args));
15917
15952
  };
15918
15953
  };
15919
15954
 
@@ -16084,12 +16119,12 @@ enifed('ember-metal/run_loop', ['exports', 'ember-metal/core', 'ember-metal/util
16084
16119
  @return {Object} Timer information for use in cancelling, see `run.cancel`.
16085
16120
  */
16086
16121
  run.once = function () {
16087
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
16088
- args[_key] = arguments[_key];
16122
+ for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
16123
+ args[_key3] = arguments[_key3];
16089
16124
  }
16090
16125
 
16091
16126
  checkAutoRun();
16092
- args.unshift("actions");
16127
+ args.unshift('actions');
16093
16128
  return backburner.scheduleOnce.apply(backburner, args);
16094
16129
  };
16095
16130
 
@@ -16208,8 +16243,8 @@ enifed('ember-metal/run_loop', ['exports', 'ember-metal/core', 'ember-metal/util
16208
16243
  @return {Object} Timer information for use in cancelling, see `run.cancel`.
16209
16244
  */
16210
16245
  run.next = function () {
16211
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
16212
- args[_key] = arguments[_key];
16246
+ for (var _len4 = arguments.length, args = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
16247
+ args[_key4] = arguments[_key4];
16213
16248
  }
16214
16249
 
16215
16250
  args.push(1);
@@ -16385,7 +16420,7 @@ enifed('ember-metal/run_loop', ['exports', 'ember-metal/core', 'ember-metal/util
16385
16420
  // Make sure it's not an autorun during testing
16386
16421
  function checkAutoRun() {
16387
16422
  if (!run.currentRunLoop) {
16388
- Ember['default'].assert("You have turned on testing mode, which disabled the run-loop's autorun.\n You will need to wrap any code with asynchronous side-effects in a run", !Ember['default'].testing);
16423
+ Ember['default'].assert('You have turned on testing mode, which disabled the run-loop\'s autorun.\n You will need to wrap any code with asynchronous side-effects in a run', !Ember['default'].testing);
16389
16424
  }
16390
16425
  }
16391
16426
 
@@ -16603,7 +16638,7 @@ enifed('ember-metal/streams/stream', ['exports', 'ember-metal/platform/create',
16603
16638
  }
16604
16639
  };
16605
16640
 
16606
- /**
16641
+ /*
16607
16642
  @public
16608
16643
  @class Stream
16609
16644
  @namespace Ember.stream
@@ -16854,7 +16889,7 @@ enifed('ember-metal/streams/utils', ['exports', './stream'], function (exports,
16854
16889
  exports.concat = concat;
16855
16890
  exports.chain = chain;
16856
16891
 
16857
- /**
16892
+ /*
16858
16893
  Check whether an object is a stream or not
16859
16894
 
16860
16895
  @public
@@ -18604,7 +18639,7 @@ enifed('ember-routing-htmlbars/helpers/query-params', ['exports', 'ember-metal/c
18604
18639
  }
18605
18640
 
18606
18641
  });
18607
- enifed('ember-routing-htmlbars/helpers/render', ['exports', 'ember-metal/core', 'ember-metal/error', 'ember-runtime/system/string', 'ember-routing/system/generate_controller', 'ember-metal/streams/utils', 'ember-htmlbars/system/merge-view-bindings', 'ember-htmlbars/system/append-templated-view', 'ember-metal/platform/create'], function (exports, Ember, EmberError, string, generateController, utils, mergeViewBindings, appendTemplatedView, create) {
18642
+ enifed('ember-routing-htmlbars/helpers/render', ['exports', 'ember-metal/core', 'ember-metal/property_get', 'ember-metal/error', 'ember-runtime/system/string', 'ember-routing/system/generate_controller', 'ember-metal/streams/utils', 'ember-htmlbars/system/merge-view-bindings', 'ember-htmlbars/system/append-templated-view', 'ember-metal/platform/create'], function (exports, Ember, property_get, EmberError, string, generateController, utils, mergeViewBindings, appendTemplatedView, create) {
18608
18643
 
18609
18644
  'use strict';
18610
18645
 
@@ -18715,6 +18750,9 @@ enifed('ember-routing-htmlbars/helpers/render', ['exports', 'ember-metal/core',
18715
18750
  view = container.lookup("view:" + name);
18716
18751
  if (!view) {
18717
18752
  view = container.lookup("view:default");
18753
+ }
18754
+ var viewHasTemplateSpecified = !!property_get.get(view, "template");
18755
+ if (!viewHasTemplateSpecified) {
18718
18756
  template = template || container.lookup(templateName);
18719
18757
  }
18720
18758
 
@@ -18781,6 +18819,13 @@ enifed('ember-routing-htmlbars/helpers/render', ['exports', 'ember-metal/core',
18781
18819
  view._isOutlet = true;
18782
18820
  view._outletName = "__ember_orphans__";
18783
18821
  view._matchOutletName = name;
18822
+ view._parentOutlet = function () {
18823
+ var parent = this._parentView;
18824
+ while (parent && !parent._isOutlet) {
18825
+ parent = parent._parentView;
18826
+ }
18827
+ return parent;
18828
+ };
18784
18829
  view.setOutletState = function (state) {
18785
18830
  var ownState;
18786
18831
  if (state && (ownState = state.outlets[this._matchOutletName])) {
@@ -19944,7 +19989,7 @@ enifed('ember-routing/ext/run_loop', ['ember-metal/run_loop'], function (run) {
19944
19989
 
19945
19990
  'use strict';
19946
19991
 
19947
- run['default']._addQueue("routerTransitions", "actions");
19992
+ run['default']._addQueue('routerTransitions', 'actions');
19948
19993
 
19949
19994
  });
19950
19995
  enifed('ember-routing/location/api', ['exports', 'ember-metal/core', 'ember-metal/environment', 'ember-routing/location/util'], function (exports, Ember, environment, util) {
@@ -20418,7 +20463,13 @@ enifed('ember-routing/location/history_location', ['exports', 'ember-metal/prope
20418
20463
  @method initState
20419
20464
  */
20420
20465
  initState: function () {
20421
- property_set.set(this, "history", property_get.get(this, "history") || window.history);
20466
+ var history = property_get.get(this, "history") || window.history;
20467
+ property_set.set(this, "history", history);
20468
+
20469
+ if (history && "state" in history) {
20470
+ this.supportsHistory = true;
20471
+ }
20472
+
20422
20473
  this.replaceState(this.formatURL(this.getURL()));
20423
20474
  },
20424
20475
 
@@ -20460,7 +20511,7 @@ enifed('ember-routing/location/history_location', ['exports', 'ember-metal/prope
20460
20511
  @param path {String}
20461
20512
  */
20462
20513
  setURL: function (path) {
20463
- var state = this._historyState;
20514
+ var state = this.getState();
20464
20515
  path = this.formatURL(path);
20465
20516
 
20466
20517
  if (!state || state.path !== path) {
@@ -20476,7 +20527,7 @@ enifed('ember-routing/location/history_location', ['exports', 'ember-metal/prope
20476
20527
  @param path {String}
20477
20528
  */
20478
20529
  replaceURL: function (path) {
20479
- var state = this._historyState;
20530
+ var state = this.getState();
20480
20531
  path = this.formatURL(path);
20481
20532
 
20482
20533
  if (!state || state.path !== path) {
@@ -20484,6 +20535,23 @@ enifed('ember-routing/location/history_location', ['exports', 'ember-metal/prope
20484
20535
  }
20485
20536
  },
20486
20537
 
20538
+ /**
20539
+ Get the current `history.state`. Checks for if a polyfill is
20540
+ required and if so fetches this._historyState. The state returned
20541
+ from getState may be null if an iframe has changed a window's
20542
+ history.
20543
+ @private
20544
+ @method getState
20545
+ @return state {Object}
20546
+ */
20547
+ getState: function () {
20548
+ if (this.supportsHistory) {
20549
+ return property_get.get(this, "history").state;
20550
+ }
20551
+
20552
+ return this._historyState;
20553
+ },
20554
+
20487
20555
  /**
20488
20556
  Pushes a new state.
20489
20557
  @private
@@ -20493,7 +20561,7 @@ enifed('ember-routing/location/history_location', ['exports', 'ember-metal/prope
20493
20561
  pushState: function (path) {
20494
20562
  var state = { path: path };
20495
20563
 
20496
- property_get.get(this, "history").pushState(null, null, path);
20564
+ property_get.get(this, "history").pushState(state, null, path);
20497
20565
 
20498
20566
  this._historyState = state;
20499
20567
 
@@ -20509,7 +20577,7 @@ enifed('ember-routing/location/history_location', ['exports', 'ember-metal/prope
20509
20577
  */
20510
20578
  replaceState: function (path) {
20511
20579
  var state = { path: path };
20512
- property_get.get(this, "history").replaceState(null, null, path);
20580
+ property_get.get(this, "history").replaceState(state, null, path);
20513
20581
 
20514
20582
  this._historyState = state;
20515
20583
 
@@ -20673,8 +20741,8 @@ enifed('ember-routing/location/util', ['exports'], function (exports) {
20673
20741
  function getPath(location) {
20674
20742
  var pathname = location.pathname;
20675
20743
  // Various versions of IE/Opera don't always return a leading slash
20676
- if (pathname.charAt(0) !== "/") {
20677
- pathname = "/" + pathname;
20744
+ if (pathname.charAt(0) !== '/') {
20745
+ pathname = '/' + pathname;
20678
20746
  }
20679
20747
 
20680
20748
  return pathname;
@@ -20686,10 +20754,10 @@ enifed('ember-routing/location/util', ['exports'], function (exports) {
20686
20754
 
20687
20755
  function getHash(location) {
20688
20756
  var href = location.href;
20689
- var hashIndex = href.indexOf("#");
20757
+ var hashIndex = href.indexOf('#');
20690
20758
 
20691
20759
  if (hashIndex === -1) {
20692
- return "";
20760
+ return '';
20693
20761
  } else {
20694
20762
  return href.substr(hashIndex);
20695
20763
  }
@@ -20704,10 +20772,10 @@ enifed('ember-routing/location/util', ['exports'], function (exports) {
20704
20772
 
20705
20773
  // Older browsers, especially IE, don't have origin
20706
20774
  if (!origin) {
20707
- origin = location.protocol + "//" + location.hostname;
20775
+ origin = location.protocol + '//' + location.hostname;
20708
20776
 
20709
20777
  if (location.port) {
20710
- origin += ":" + location.port;
20778
+ origin += ':' + location.port;
20711
20779
  }
20712
20780
  }
20713
20781
 
@@ -20715,7 +20783,7 @@ enifed('ember-routing/location/util', ['exports'], function (exports) {
20715
20783
  }
20716
20784
 
20717
20785
  function supportsHashChange(documentMode, global) {
20718
- return "onhashchange" in global && (documentMode === undefined || documentMode > 7);
20786
+ return 'onhashchange' in global && (documentMode === undefined || documentMode > 7);
20719
20787
  }
20720
20788
 
20721
20789
  function supportsHistory(userAgent, history) {
@@ -20726,11 +20794,11 @@ enifed('ember-routing/location/util', ['exports'], function (exports) {
20726
20794
 
20727
20795
  // We only want Android 2, stock browser, and not Chrome which identifies
20728
20796
  // itself as 'Mobile Safari' as well
20729
- if (userAgent.indexOf("Android 2") !== -1 && userAgent.indexOf("Mobile Safari") !== -1 && userAgent.indexOf("Chrome") === -1) {
20797
+ if (userAgent.indexOf('Android 2') !== -1 && userAgent.indexOf('Mobile Safari') !== -1 && userAgent.indexOf('Chrome') === -1) {
20730
20798
  return false;
20731
20799
  }
20732
20800
 
20733
- return !!(history && "pushState" in history);
20801
+ return !!(history && 'pushState' in history);
20734
20802
  }
20735
20803
 
20736
20804
  function replacePath(location, path) {
@@ -20792,7 +20860,7 @@ enifed('ember-routing/system/controller_for', ['exports'], function (exports) {
20792
20860
  exports['default'] = controllerFor;
20793
20861
 
20794
20862
  function controllerFor(container, controllerName, lookupOptions) {
20795
- return container.lookup("controller:" + controllerName, lookupOptions);
20863
+ return container.lookup('controller:' + controllerName, lookupOptions);
20796
20864
  }
20797
20865
 
20798
20866
  });
@@ -23125,9 +23193,9 @@ enifed('ember-routing/system/router', ['exports', 'ember-metal/core', 'ember-met
23125
23193
  },
23126
23194
 
23127
23195
  generate: function () {
23128
- var _router;
23196
+ var _router2;
23129
23197
 
23130
- var url = (_router = this.router).generate.apply(_router, arguments);
23198
+ var url = (_router2 = this.router).generate.apply(_router2, arguments);
23131
23199
  return this.location.formatURL(url);
23132
23200
  },
23133
23201
 
@@ -23160,9 +23228,9 @@ enifed('ember-routing/system/router', ['exports', 'ember-metal/core', 'ember-met
23160
23228
  },
23161
23229
 
23162
23230
  send: function (name, context) {
23163
- var _router;
23231
+ var _router3;
23164
23232
 
23165
- (_router = this.router).trigger.apply(_router, arguments);
23233
+ (_router3 = this.router).trigger.apply(_router3, arguments);
23166
23234
  },
23167
23235
 
23168
23236
  /**
@@ -23985,8 +24053,8 @@ enifed('ember-routing/utils', ['exports', 'ember-metal/utils'], function (export
23985
24053
 
23986
24054
  function routeArgs(targetRouteName, models, queryParams) {
23987
24055
  var args = [];
23988
- if (utils.typeOf(targetRouteName) === "string") {
23989
- args.push("" + targetRouteName);
24056
+ if (utils.typeOf(targetRouteName) === 'string') {
24057
+ args.push('' + targetRouteName);
23990
24058
  }
23991
24059
  args.push.apply(args, models);
23992
24060
  args.push({ queryParams: queryParams });
@@ -24159,17 +24227,17 @@ enifed('ember-runtime/compare', ['exports', 'ember-metal/utils', 'ember-runtime/
24159
24227
  */
24160
24228
  exports['default'] = compare;
24161
24229
  var TYPE_ORDER = {
24162
- "undefined": 0,
24163
- "null": 1,
24164
- "boolean": 2,
24165
- "number": 3,
24166
- "string": 4,
24167
- "array": 5,
24168
- "object": 6,
24169
- "instance": 7,
24170
- "function": 8,
24171
- "class": 9,
24172
- "date": 10
24230
+ 'undefined': 0,
24231
+ 'null': 1,
24232
+ 'boolean': 2,
24233
+ 'number': 3,
24234
+ 'string': 4,
24235
+ 'array': 5,
24236
+ 'object': 6,
24237
+ 'instance': 7,
24238
+ 'function': 8,
24239
+ 'class': 9,
24240
+ 'date': 10
24173
24241
  };
24174
24242
 
24175
24243
  //
@@ -24188,11 +24256,11 @@ enifed('ember-runtime/compare', ['exports', 'ember-metal/utils', 'ember-runtime/
24188
24256
  var type2 = utils.typeOf(w);
24189
24257
 
24190
24258
  if (Comparable['default']) {
24191
- if (type1 === "instance" && Comparable['default'].detect(v) && v.constructor.compare) {
24259
+ if (type1 === 'instance' && Comparable['default'].detect(v) && v.constructor.compare) {
24192
24260
  return v.constructor.compare(v, w);
24193
24261
  }
24194
24262
 
24195
- if (type2 === "instance" && Comparable['default'].detect(w) && w.constructor.compare) {
24263
+ if (type2 === 'instance' && Comparable['default'].detect(w) && w.constructor.compare) {
24196
24264
  return w.constructor.compare(w, v) * -1;
24197
24265
  }
24198
24266
  }
@@ -24205,14 +24273,14 @@ enifed('ember-runtime/compare', ['exports', 'ember-metal/utils', 'ember-runtime/
24205
24273
 
24206
24274
  // types are equal - so we have to check values now
24207
24275
  switch (type1) {
24208
- case "boolean":
24209
- case "number":
24276
+ case 'boolean':
24277
+ case 'number':
24210
24278
  return spaceship(v, w);
24211
24279
 
24212
- case "string":
24280
+ case 'string':
24213
24281
  return spaceship(v.localeCompare(w), 0);
24214
24282
 
24215
- case "array":
24283
+ case 'array':
24216
24284
  var vLen = v.length;
24217
24285
  var wLen = w.length;
24218
24286
  var len = Math.min(vLen, wLen);
@@ -24228,13 +24296,13 @@ enifed('ember-runtime/compare', ['exports', 'ember-metal/utils', 'ember-runtime/
24228
24296
  // shorter array should be ordered first
24229
24297
  return spaceship(vLen, wLen);
24230
24298
 
24231
- case "instance":
24299
+ case 'instance':
24232
24300
  if (Comparable['default'] && Comparable['default'].detect(v)) {
24233
24301
  return v.compare(v, w);
24234
24302
  }
24235
24303
  return 0;
24236
24304
 
24237
- case "date":
24305
+ case 'date':
24238
24306
  return spaceship(v.getTime(), w.getTime());
24239
24307
 
24240
24308
  default:
@@ -24415,8 +24483,8 @@ enifed('ember-runtime/computed/array_computed', ['exports', 'ember-metal/core',
24415
24483
  options = a_slice.call(arguments, -1)[0];
24416
24484
  }
24417
24485
 
24418
- if (typeof options !== "object") {
24419
- throw new EmberError['default']("Array Computed Property declared without an options hash");
24486
+ if (typeof options !== 'object') {
24487
+ throw new EmberError['default']('Array Computed Property declared without an options hash');
24420
24488
  }
24421
24489
 
24422
24490
  var cp = new ArrayComputedProperty(options);
@@ -24632,7 +24700,7 @@ enifed('ember-runtime/computed/reduce_computed', ['exports', 'ember-metal/core',
24632
24700
  var arrayBracketPattern = /\.\[\]$/;
24633
24701
 
24634
24702
  function get(obj, key) {
24635
- if (key === "@this") {
24703
+ if (key === '@this') {
24636
24704
  return obj;
24637
24705
  }
24638
24706
 
@@ -24681,7 +24749,7 @@ enifed('ember-runtime/computed/reduce_computed', ['exports', 'ember-metal/core',
24681
24749
  }
24682
24750
 
24683
24751
  function ItemPropertyObserverContext(dependentArray, index, trackedArray) {
24684
- Ember['default'].assert("Internal error: trackedArray is null or undefined", trackedArray);
24752
+ Ember['default'].assert('Internal error: trackedArray is null or undefined', trackedArray);
24685
24753
 
24686
24754
  this.dependentArray = dependentArray;
24687
24755
  this.index = index;
@@ -24705,8 +24773,8 @@ enifed('ember-runtime/computed/reduce_computed', ['exports', 'ember-metal/core',
24705
24773
  this.dependentKeysByGuid[utils.guidFor(dependentArray)] = dependentKey;
24706
24774
 
24707
24775
  dependentArray.addArrayObserver(this, {
24708
- willChange: "dependentArrayWillChange",
24709
- didChange: "dependentArrayDidChange"
24776
+ willChange: 'dependentArrayWillChange',
24777
+ didChange: 'dependentArrayDidChange'
24710
24778
  });
24711
24779
 
24712
24780
  if (this.cp._itemPropertyKeys[dependentKey]) {
@@ -24722,8 +24790,8 @@ enifed('ember-runtime/computed/reduce_computed', ['exports', 'ember-metal/core',
24722
24790
  this.teardownPropertyObservers(dependentKey, itemPropertyKeys);
24723
24791
 
24724
24792
  dependentArray.removeArrayObserver(this, {
24725
- willChange: "dependentArrayWillChange",
24726
- didChange: "dependentArrayDidChange"
24793
+ willChange: 'dependentArrayWillChange',
24794
+ didChange: 'dependentArrayDidChange'
24727
24795
  });
24728
24796
  },
24729
24797
 
@@ -24736,7 +24804,7 @@ enifed('ember-runtime/computed/reduce_computed', ['exports', 'ember-metal/core',
24736
24804
 
24737
24805
  setupPropertyObservers: function (dependentKey, itemPropertyKeys) {
24738
24806
  var dependentArray = get(this.instanceMeta.context, dependentKey);
24739
- var length = get(dependentArray, "length");
24807
+ var length = get(dependentArray, 'length');
24740
24808
  var observerContexts = new Array(length);
24741
24809
 
24742
24810
  this.resetTransformations(dependentKey, observerContexts);
@@ -24823,7 +24891,7 @@ enifed('ember-runtime/computed/reduce_computed', ['exports', 'ember-metal/core',
24823
24891
  },
24824
24892
 
24825
24893
  updateIndexes: function (trackedArray, array) {
24826
- var length = get(array, "length");
24894
+ var length = get(array, 'length');
24827
24895
  // OPTIMIZE: we could stop updating once we hit the object whose observer
24828
24896
  // fired; ie partially apply the transformations
24829
24897
  trackedArray.apply(function (observerContexts, offset, operation, operationIndex) {
@@ -24854,7 +24922,7 @@ enifed('ember-runtime/computed/reduce_computed', ['exports', 'ember-metal/core',
24854
24922
  var guid = utils.guidFor(dependentArray);
24855
24923
  var dependentKey = this.dependentKeysByGuid[guid];
24856
24924
  var itemPropertyKeys = this.cp._itemPropertyKeys[dependentKey] || [];
24857
- var length = get(dependentArray, "length");
24925
+ var length = get(dependentArray, 'length');
24858
24926
  var normalizedIndex = normalizeIndex(index, length, 0);
24859
24927
  var normalizedRemoveCount = normalizeRemoveCount(normalizedIndex, length, removedCount);
24860
24928
  var item, itemIndex, sliceIndex, observerContexts;
@@ -24893,7 +24961,7 @@ enifed('ember-runtime/computed/reduce_computed', ['exports', 'ember-metal/core',
24893
24961
  var dependentKey = this.dependentKeysByGuid[guid];
24894
24962
  var observerContexts = new Array(addedCount);
24895
24963
  var itemPropertyKeys = this.cp._itemPropertyKeys[dependentKey];
24896
- var length = get(dependentArray, "length");
24964
+ var length = get(dependentArray, 'length');
24897
24965
  var normalizedIndex = normalizeIndex(index, length, addedCount);
24898
24966
  var endIndex = normalizedIndex + addedCount;
24899
24967
  var changeMeta, observerContext;
@@ -25107,7 +25175,7 @@ enifed('ember-runtime/computed/reduce_computed', ['exports', 'ember-metal/core',
25107
25175
 
25108
25176
  meta.dependentArraysObserver.suspendArrayObservers(function () {
25109
25177
  enumerable_utils.forEach(cp._dependentKeys, function (dependentKey) {
25110
- Ember['default'].assert("dependent array " + dependentKey + " must be an `Ember.Array`. " + "If you are not extending arrays, you will need to wrap native arrays with `Ember.A`", !(utils.isArray(get(this, dependentKey)) && !EmberArray['default'].detect(get(this, dependentKey))));
25178
+ Ember['default'].assert('dependent array ' + dependentKey + ' must be an `Ember.Array`. ' + 'If you are not extending arrays, you will need to wrap native arrays with `Ember.A`', !(utils.isArray(get(this, dependentKey)) && !EmberArray['default'].detect(get(this, dependentKey))));
25111
25179
 
25112
25180
  if (!partiallyRecomputeFor(this, dependentKey)) {
25113
25181
  return;
@@ -25153,7 +25221,7 @@ enifed('ember-runtime/computed/reduce_computed', ['exports', 'ember-metal/core',
25153
25221
  };
25154
25222
 
25155
25223
  this._getter = function (propertyName) {
25156
- Ember['default'].assert("Computed reduce values require at least one dependent key", cp._dependentKeys);
25224
+ Ember['default'].assert('Computed reduce values require at least one dependent key', cp._dependentKeys);
25157
25225
 
25158
25226
  recompute.call(this, propertyName);
25159
25227
 
@@ -25204,7 +25272,7 @@ enifed('ember-runtime/computed/reduce_computed', ['exports', 'ember-metal/core',
25204
25272
  };
25205
25273
 
25206
25274
  ReduceComputedProperty.prototype.initialValue = function () {
25207
- if (typeof this.options.initialValue === "function") {
25275
+ if (typeof this.options.initialValue === 'function') {
25208
25276
  return this.options.initialValue();
25209
25277
  } else {
25210
25278
  return this.options.initialValue;
@@ -25235,7 +25303,7 @@ enifed('ember-runtime/computed/reduce_computed', ['exports', 'ember-metal/core',
25235
25303
 
25236
25304
  enumerable_utils.forEach(args, function (dependentKey) {
25237
25305
  if (doubleEachPropertyPattern.test(dependentKey)) {
25238
- throw new EmberError['default']("Nested @each properties not supported: " + dependentKey);
25306
+ throw new EmberError['default']('Nested @each properties not supported: ' + dependentKey);
25239
25307
  } else if (match = eachPropertyPattern.exec(dependentKey)) {
25240
25308
  dependentArrayKey = match[1];
25241
25309
 
@@ -25266,12 +25334,12 @@ enifed('ember-runtime/computed/reduce_computed', ['exports', 'ember-metal/core',
25266
25334
  options = a_slice.call(arguments, -1)[0];
25267
25335
  }
25268
25336
 
25269
- if (typeof options !== "object") {
25270
- throw new EmberError['default']("Reduce Computed Property declared without an options hash");
25337
+ if (typeof options !== 'object') {
25338
+ throw new EmberError['default']('Reduce Computed Property declared without an options hash');
25271
25339
  }
25272
25340
 
25273
- if (!("initialValue" in options)) {
25274
- throw new EmberError['default']("Reduce Computed Property declared without an initial value");
25341
+ if (!('initialValue' in options)) {
25342
+ throw new EmberError['default']('Reduce Computed Property declared without an initial value');
25275
25343
  }
25276
25344
 
25277
25345
  var cp = new ReduceComputedProperty(options);
@@ -25378,7 +25446,7 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-metal
25378
25446
  var callback = function (item) {
25379
25447
  return property_get.get(item, propertyKey);
25380
25448
  };
25381
- return map(dependentKey + ".@each." + propertyKey, callback);
25449
+ return map(dependentKey + '.@each.' + propertyKey, callback);
25382
25450
  }
25383
25451
 
25384
25452
  /**
@@ -25432,7 +25500,7 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-metal
25432
25500
  };
25433
25501
  }
25434
25502
 
25435
- return filter(dependentKey + ".@each." + propertyKey, callback);
25503
+ return filter(dependentKey + '.@each.' + propertyKey, callback);
25436
25504
  }
25437
25505
 
25438
25506
  /**
@@ -25546,7 +25614,7 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-metal
25546
25614
 
25547
25615
  function setDiff(setAProperty, setBProperty) {
25548
25616
  if (arguments.length !== 2) {
25549
- throw new EmberError['default']("setDiff requires exactly two dependent arrays.");
25617
+ throw new EmberError['default']('setDiff requires exactly two dependent arrays.');
25550
25618
  }
25551
25619
 
25552
25620
  return array_computed.arrayComputed(setAProperty, setBProperty, {
@@ -25586,7 +25654,7 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-metal
25586
25654
  var mid, midItem, res, guidMid, guidItem;
25587
25655
 
25588
25656
  if (arguments.length < 4) {
25589
- high = property_get.get(array, "length");
25657
+ high = property_get.get(array, 'length');
25590
25658
  }
25591
25659
 
25592
25660
  if (arguments.length < 3) {
@@ -25622,9 +25690,9 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-metal
25622
25690
  return mid;
25623
25691
  }
25624
25692
  function sort(itemsKey, sortDefinition) {
25625
- Ember['default'].assert("Ember.computed.sort requires two arguments: an array key to sort and " + "either a sort properties key or sort function", arguments.length === 2);
25693
+ Ember['default'].assert('Ember.computed.sort requires two arguments: an array key to sort and ' + 'either a sort properties key or sort function', arguments.length === 2);
25626
25694
 
25627
- if (typeof sortDefinition === "function") {
25695
+ if (typeof sortDefinition === 'function') {
25628
25696
  return customSort(itemsKey, sortDefinition);
25629
25697
  } else {
25630
25698
  return propertySort(itemsKey, sortDefinition);
@@ -25677,14 +25745,14 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-metal
25677
25745
  var sortPropertyAscending = instanceMeta.sortPropertyAscending = {};
25678
25746
  var sortProperty, idx, asc;
25679
25747
 
25680
- Ember['default'].assert("Cannot sort: '" + sortPropertiesKey + "' is not an array.", utils.isArray(sortPropertyDefinitions));
25748
+ Ember['default'].assert('Cannot sort: \'' + sortPropertiesKey + '\' is not an array.', utils.isArray(sortPropertyDefinitions));
25681
25749
 
25682
25750
  changeMeta.property.clearItemPropertyKeys(itemsKey);
25683
25751
 
25684
25752
  enumerable_utils.forEach(sortPropertyDefinitions, function (sortPropertyDefinition) {
25685
- if ((idx = sortPropertyDefinition.indexOf(":")) !== -1) {
25753
+ if ((idx = sortPropertyDefinition.indexOf(':')) !== -1) {
25686
25754
  sortProperty = sortPropertyDefinition.substring(0, idx);
25687
- asc = sortPropertyDefinition.substring(idx + 1).toLowerCase() !== "desc";
25755
+ asc = sortPropertyDefinition.substring(idx + 1).toLowerCase() !== 'desc';
25688
25756
  } else {
25689
25757
  sortProperty = sortPropertyDefinition;
25690
25758
  asc = true;
@@ -25695,7 +25763,7 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-metal
25695
25763
  changeMeta.property.itemPropertyKey(itemsKey, sortProperty);
25696
25764
  });
25697
25765
 
25698
- sortPropertyDefinitions.addObserver("@each", this, updateSortPropertiesOnce);
25766
+ this.addObserver(sortPropertiesKey + '.@each', this, updateSortPropertiesOnce);
25699
25767
  }
25700
25768
 
25701
25769
  function updateSortPropertiesOnce() {
@@ -25823,12 +25891,12 @@ enifed('ember-runtime/controllers/array_controller', ['exports', 'ember-metal/co
25823
25891
  @return {String}
25824
25892
  */
25825
25893
  lookupItemController: function (object) {
25826
- return property_get.get(this, "itemController");
25894
+ return property_get.get(this, 'itemController');
25827
25895
  },
25828
25896
 
25829
25897
  objectAtContent: function (idx) {
25830
- var length = property_get.get(this, "length");
25831
- var arrangedContent = property_get.get(this, "arrangedContent");
25898
+ var length = property_get.get(this, 'length');
25899
+ var arrangedContent = property_get.get(this, 'arrangedContent');
25832
25900
  var object = arrangedContent && arrangedContent.objectAt(idx);
25833
25901
  var controllerClass;
25834
25902
 
@@ -25885,7 +25953,7 @@ enifed('ember-runtime/controllers/array_controller', ['exports', 'ember-metal/co
25885
25953
  return Ember['default'].A();
25886
25954
  },
25887
25955
  set: function (key, value) {
25888
- Ember['default'].assert("ArrayController expects `model` to implement the Ember.Array mixin. " + "This can often be fixed by wrapping your model with `Ember.A()`.", EmberArray['default'].detect(value));
25956
+ Ember['default'].assert('ArrayController expects `model` to implement the Ember.Array mixin. ' + 'This can often be fixed by wrapping your model with `Ember.A()`.', EmberArray['default'].detect(value) || !value);
25889
25957
 
25890
25958
  return value;
25891
25959
  }
@@ -25902,7 +25970,7 @@ enifed('ember-runtime/controllers/array_controller', ['exports', 'ember-metal/co
25902
25970
  _isVirtual: false,
25903
25971
 
25904
25972
  controllerAt: function (idx, object, controllerClass) {
25905
- var container = property_get.get(this, "container");
25973
+ var container = property_get.get(this, 'container');
25906
25974
  var subControllers = this._subControllers;
25907
25975
  var fullName, subController, parentController;
25908
25976
 
@@ -25915,15 +25983,15 @@ enifed('ember-runtime/controllers/array_controller', ['exports', 'ember-metal/co
25915
25983
  }
25916
25984
 
25917
25985
  if (this._isVirtual) {
25918
- parentController = property_get.get(this, "parentController");
25986
+ parentController = property_get.get(this, 'parentController');
25919
25987
  } else {
25920
25988
  parentController = this;
25921
25989
  }
25922
25990
 
25923
- fullName = "controller:" + controllerClass;
25991
+ fullName = 'controller:' + controllerClass;
25924
25992
 
25925
25993
  if (!container._registry.has(fullName)) {
25926
- throw new EmberError['default']("Could not resolve itemController: \"" + controllerClass + "\"");
25994
+ throw new EmberError['default']('Could not resolve itemController: "' + controllerClass + '"');
25927
25995
  }
25928
25996
 
25929
25997
  subController = container.lookupFactory(fullName).create({
@@ -25970,7 +26038,7 @@ enifed('ember-runtime/controllers/controller', ['exports', 'ember-metal/core', '
25970
26038
  var Controller = EmberObject['default'].extend(Mixin['default']);
25971
26039
 
25972
26040
  function controllerInjectionHelper(factory) {
25973
- Ember['default'].assert("Defining an injected controller property on a " + "non-controller is not allowed.", Mixin['default'].detect(factory.PrototypeMixin));
26041
+ Ember['default'].assert('Defining an injected controller property on a ' + 'non-controller is not allowed.', Mixin['default'].detect(factory.PrototypeMixin));
25974
26042
  }
25975
26043
 
25976
26044
  /**
@@ -26003,7 +26071,7 @@ enifed('ember-runtime/controllers/controller', ['exports', 'ember-metal/core', '
26003
26071
  to the property's name
26004
26072
  @return {Ember.InjectedProperty} injection descriptor instance
26005
26073
  */
26006
- inject.createInjectionHelper("controller", controllerInjectionHelper);
26074
+ inject.createInjectionHelper('controller', controllerInjectionHelper);
26007
26075
 
26008
26076
  exports['default'] = Controller;
26009
26077
 
@@ -26012,7 +26080,7 @@ enifed('ember-runtime/controllers/object_controller', ['exports', 'ember-metal/c
26012
26080
 
26013
26081
  'use strict';
26014
26082
 
26015
- var objectControllerDeprecation = "Ember.ObjectController is deprecated, " + "please use Ember.Controller and use `model.propertyName`.";
26083
+ var objectControllerDeprecation = 'Ember.ObjectController is deprecated, ' + 'please use Ember.Controller and use `model.propertyName`.';
26016
26084
 
26017
26085
  exports['default'] = ObjectProxy['default'].extend(ControllerMixin['default'], {
26018
26086
  init: function () {
@@ -26050,7 +26118,7 @@ enifed('ember-runtime/copy', ['exports', 'ember-metal/enumerable_utils', 'ember-
26050
26118
  var ret, loc, key;
26051
26119
 
26052
26120
  // primitive data types are immutable, just return them.
26053
- if (typeof obj !== "object" || obj === null) {
26121
+ if (typeof obj !== 'object' || obj === null) {
26054
26122
  return obj;
26055
26123
  }
26056
26124
 
@@ -26059,11 +26127,11 @@ enifed('ember-runtime/copy', ['exports', 'ember-metal/enumerable_utils', 'ember-
26059
26127
  return copies[loc];
26060
26128
  }
26061
26129
 
26062
- Ember.assert("Cannot clone an Ember.Object that does not implement Ember.Copyable", !(obj instanceof EmberObject['default']) || Copyable['default'] && Copyable['default'].detect(obj));
26130
+ Ember.assert('Cannot clone an Ember.Object that does not implement Ember.Copyable', !(obj instanceof EmberObject['default']) || Copyable['default'] && Copyable['default'].detect(obj));
26063
26131
 
26064
26132
  // IMPORTANT: this specific test will detect a native array only. Any other
26065
26133
  // object will need to implement Copyable.
26066
- if (utils.typeOf(obj) === "array") {
26134
+ if (utils.typeOf(obj) === 'array') {
26067
26135
  ret = obj.slice();
26068
26136
 
26069
26137
  if (deep) {
@@ -26088,7 +26156,7 @@ enifed('ember-runtime/copy', ['exports', 'ember-metal/enumerable_utils', 'ember-
26088
26156
 
26089
26157
  // Prevents browsers that don't respect non-enumerability from
26090
26158
  // copying internal Ember properties
26091
- if (key.substring(0, 2) === "__") {
26159
+ if (key.substring(0, 2) === '__') {
26092
26160
  continue;
26093
26161
  }
26094
26162
 
@@ -26105,7 +26173,7 @@ enifed('ember-runtime/copy', ['exports', 'ember-metal/enumerable_utils', 'ember-
26105
26173
  }
26106
26174
  function copy(obj, deep) {
26107
26175
  // fast paths
26108
- if ("object" !== typeof obj || obj === null) {
26176
+ if ('object' !== typeof obj || obj === null) {
26109
26177
  return obj; // can't copy primitives
26110
26178
  }
26111
26179
 
@@ -26147,7 +26215,7 @@ enifed('ember-runtime/core', ['exports'], function (exports) {
26147
26215
  @return {Boolean}
26148
26216
  */
26149
26217
  function isEqual(a, b) {
26150
- if (a && typeof a.isEqual === "function") {
26218
+ if (a && typeof a.isEqual === 'function') {
26151
26219
  return a.isEqual(b);
26152
26220
  }
26153
26221
 
@@ -26275,9 +26343,9 @@ enifed('ember-runtime/ext/function', ['ember-metal/core', 'ember-metal/expand_pr
26275
26343
  @for Function
26276
26344
  */
26277
26345
  FunctionPrototype.observesImmediately = function () {
26278
- Ember['default'].assert("Immediate observers must observe internal properties only, " + "not properties on other objects.", function checkIsInternalProperty() {
26346
+ Ember['default'].assert('Immediate observers must observe internal properties only, ' + 'not properties on other objects.', function checkIsInternalProperty() {
26279
26347
  for (var i = 0, l = arguments.length; i < l; i++) {
26280
- if (arguments[i].indexOf(".") !== -1) {
26348
+ if (arguments[i].indexOf('.') !== -1) {
26281
26349
  return false;
26282
26350
  }
26283
26351
  }
@@ -26353,7 +26421,7 @@ enifed('ember-runtime/ext/rsvp', ['exports', 'ember-metal/core', 'ember-metal/lo
26353
26421
 
26354
26422
  exports.onerrorDefault = onerrorDefault;
26355
26423
 
26356
- var testModuleName = "ember-testing/test";
26424
+ var testModuleName = 'ember-testing/test';
26357
26425
  var Test;
26358
26426
 
26359
26427
  var asyncStart = function () {
@@ -26368,14 +26436,14 @@ enifed('ember-runtime/ext/rsvp', ['exports', 'ember-metal/core', 'ember-metal/lo
26368
26436
  }
26369
26437
  };
26370
26438
 
26371
- RSVP.configure("async", function (callback, promise) {
26439
+ RSVP.configure('async', function (callback, promise) {
26372
26440
  var async = !run['default'].currentRunLoop;
26373
26441
 
26374
26442
  if (Ember['default'].testing && async) {
26375
26443
  asyncStart();
26376
26444
  }
26377
26445
 
26378
- run['default'].backburner.schedule("actions", function () {
26446
+ run['default'].backburner.schedule('actions', function () {
26379
26447
  if (Ember['default'].testing && async) {
26380
26448
  asyncEnd();
26381
26449
  }
@@ -26384,8 +26452,8 @@ enifed('ember-runtime/ext/rsvp', ['exports', 'ember-metal/core', 'ember-metal/lo
26384
26452
  });
26385
26453
 
26386
26454
  RSVP.Promise.prototype.fail = function (callback, label) {
26387
- Ember['default'].deprecate("RSVP.Promise.fail has been renamed as RSVP.Promise.catch");
26388
- return this["catch"](callback, label);
26455
+ Ember['default'].deprecate('RSVP.Promise.fail has been renamed as RSVP.Promise.catch');
26456
+ return this['catch'](callback, label);
26389
26457
  };
26390
26458
  function onerrorDefault(e) {
26391
26459
  var error;
@@ -26393,7 +26461,7 @@ enifed('ember-runtime/ext/rsvp', ['exports', 'ember-metal/core', 'ember-metal/lo
26393
26461
  if (e && e.errorThrown) {
26394
26462
  // jqXHR provides this
26395
26463
  error = e.errorThrown;
26396
- if (typeof error === "string") {
26464
+ if (typeof error === 'string') {
26397
26465
  error = new Error(error);
26398
26466
  }
26399
26467
  error.__reason_with_error_thrown__ = e;
@@ -26401,11 +26469,11 @@ enifed('ember-runtime/ext/rsvp', ['exports', 'ember-metal/core', 'ember-metal/lo
26401
26469
  error = e;
26402
26470
  }
26403
26471
 
26404
- if (error && error.name !== "TransitionAborted") {
26472
+ if (error && error.name !== 'TransitionAborted') {
26405
26473
  if (Ember['default'].testing) {
26406
26474
  // ES6TODO: remove when possible
26407
26475
  if (!Test && Ember['default'].__loader.registry[testModuleName]) {
26408
- Test = requireModule(testModuleName)["default"];
26476
+ Test = requireModule(testModuleName)['default'];
26409
26477
  }
26410
26478
 
26411
26479
  if (Test && Test.adapter) {
@@ -26422,7 +26490,7 @@ enifed('ember-runtime/ext/rsvp', ['exports', 'ember-metal/core', 'ember-metal/lo
26422
26490
  }
26423
26491
  }
26424
26492
 
26425
- RSVP.on("error", onerrorDefault);
26493
+ RSVP.on('error', onerrorDefault);
26426
26494
 
26427
26495
  exports['default'] = RSVP;
26428
26496
 
@@ -26872,19 +26940,19 @@ enifed('ember-runtime/mixins/array', ['exports', 'ember-metal/core', 'ember-meta
26872
26940
  // HELPERS
26873
26941
  //
26874
26942
  function arrayObserversHelper(obj, target, opts, operation, notify) {
26875
- var willChange = opts && opts.willChange || "arrayWillChange";
26876
- var didChange = opts && opts.didChange || "arrayDidChange";
26877
- var hasObservers = property_get.get(obj, "hasArrayObservers");
26943
+ var willChange = opts && opts.willChange || 'arrayWillChange';
26944
+ var didChange = opts && opts.didChange || 'arrayDidChange';
26945
+ var hasObservers = property_get.get(obj, 'hasArrayObservers');
26878
26946
 
26879
26947
  if (hasObservers === notify) {
26880
- property_events.propertyWillChange(obj, "hasArrayObservers");
26948
+ property_events.propertyWillChange(obj, 'hasArrayObservers');
26881
26949
  }
26882
26950
 
26883
- operation(obj, "@array:before", target, willChange);
26884
- operation(obj, "@array:change", target, didChange);
26951
+ operation(obj, '@array:before', target, willChange);
26952
+ operation(obj, '@array:change', target, didChange);
26885
26953
 
26886
26954
  if (hasObservers === notify) {
26887
- property_events.propertyDidChange(obj, "hasArrayObservers");
26955
+ property_events.propertyDidChange(obj, 'hasArrayObservers');
26888
26956
  }
26889
26957
 
26890
26958
  return obj;
@@ -26959,7 +27027,7 @@ enifed('ember-runtime/mixins/array', ['exports', 'ember-metal/core', 'ember-meta
26959
27027
  @return {*} item at index or undefined
26960
27028
  */
26961
27029
  objectAt: function (idx) {
26962
- if (idx < 0 || idx >= property_get.get(this, "length")) {
27030
+ if (idx < 0 || idx >= property_get.get(this, 'length')) {
26963
27031
  return undefined;
26964
27032
  }
26965
27033
 
@@ -26998,12 +27066,12 @@ enifed('ember-runtime/mixins/array', ['exports', 'ember-metal/core', 'ember-meta
26998
27066
  @property []
26999
27067
  @return this
27000
27068
  */
27001
- "[]": computed.computed({
27069
+ '[]': computed.computed({
27002
27070
  get: function (key) {
27003
27071
  return this;
27004
27072
  },
27005
27073
  set: function (key, value) {
27006
- this.replace(0, property_get.get(this, "length"), value);
27074
+ this.replace(0, property_get.get(this, 'length'), value);
27007
27075
  return this;
27008
27076
  }
27009
27077
  }),
@@ -27013,7 +27081,7 @@ enifed('ember-runtime/mixins/array', ['exports', 'ember-metal/core', 'ember-meta
27013
27081
  }),
27014
27082
 
27015
27083
  lastObject: computed.computed(function () {
27016
- return this.objectAt(property_get.get(this, "length") - 1);
27084
+ return this.objectAt(property_get.get(this, 'length') - 1);
27017
27085
  }),
27018
27086
 
27019
27087
  // optimized version from Enumerable
@@ -27039,7 +27107,7 @@ enifed('ember-runtime/mixins/array', ['exports', 'ember-metal/core', 'ember-meta
27039
27107
  */
27040
27108
  slice: function (beginIndex, endIndex) {
27041
27109
  var ret = Ember['default'].A();
27042
- var length = property_get.get(this, "length");
27110
+ var length = property_get.get(this, 'length');
27043
27111
 
27044
27112
  if (isNone['default'](beginIndex)) {
27045
27113
  beginIndex = 0;
@@ -27084,7 +27152,7 @@ enifed('ember-runtime/mixins/array', ['exports', 'ember-metal/core', 'ember-meta
27084
27152
  @return {Number} index or -1 if not found
27085
27153
  */
27086
27154
  indexOf: function (object, startAt) {
27087
- var len = property_get.get(this, "length");
27155
+ var len = property_get.get(this, 'length');
27088
27156
  var idx;
27089
27157
 
27090
27158
  if (startAt === undefined) {
@@ -27124,7 +27192,7 @@ enifed('ember-runtime/mixins/array', ['exports', 'ember-metal/core', 'ember-meta
27124
27192
  @return {Number} index or -1 if not found
27125
27193
  */
27126
27194
  lastIndexOf: function (object, startAt) {
27127
- var len = property_get.get(this, "length");
27195
+ var len = property_get.get(this, 'length');
27128
27196
  var idx;
27129
27197
 
27130
27198
  if (startAt === undefined || startAt >= len) {
@@ -27193,7 +27261,7 @@ enifed('ember-runtime/mixins/array', ['exports', 'ember-metal/core', 'ember-meta
27193
27261
  @property {Boolean} hasArrayObservers
27194
27262
  */
27195
27263
  hasArrayObservers: computed.computed(function () {
27196
- return events.hasListeners(this, "@array:change") || events.hasListeners(this, "@array:before");
27264
+ return events.hasListeners(this, '@array:change') || events.hasListeners(this, '@array:before');
27197
27265
  }),
27198
27266
 
27199
27267
  /**
@@ -27227,13 +27295,13 @@ enifed('ember-runtime/mixins/array', ['exports', 'ember-metal/core', 'ember-meta
27227
27295
  }
27228
27296
 
27229
27297
  // Make sure the @each proxy is set up if anyone is observing @each
27230
- if (watching.isWatching(this, "@each")) {
27231
- property_get.get(this, "@each");
27298
+ if (watching.isWatching(this, '@each')) {
27299
+ property_get.get(this, '@each');
27232
27300
  }
27233
27301
 
27234
- events.sendEvent(this, "@array:before", [this, startIdx, removeAmt, addAmt]);
27302
+ events.sendEvent(this, '@array:before', [this, startIdx, removeAmt, addAmt]);
27235
27303
 
27236
- if (startIdx >= 0 && removeAmt >= 0 && property_get.get(this, "hasEnumerableObservers")) {
27304
+ if (startIdx >= 0 && removeAmt >= 0 && property_get.get(this, 'hasEnumerableObservers')) {
27237
27305
  removing = [];
27238
27306
  lim = startIdx + removeAmt;
27239
27307
 
@@ -27279,7 +27347,7 @@ enifed('ember-runtime/mixins/array', ['exports', 'ember-metal/core', 'ember-meta
27279
27347
  }
27280
27348
  }
27281
27349
 
27282
- if (startIdx >= 0 && addAmt >= 0 && property_get.get(this, "hasEnumerableObservers")) {
27350
+ if (startIdx >= 0 && addAmt >= 0 && property_get.get(this, 'hasEnumerableObservers')) {
27283
27351
  adding = [];
27284
27352
  lim = startIdx + addAmt;
27285
27353
 
@@ -27291,20 +27359,20 @@ enifed('ember-runtime/mixins/array', ['exports', 'ember-metal/core', 'ember-meta
27291
27359
  }
27292
27360
 
27293
27361
  this.enumerableContentDidChange(removeAmt, adding);
27294
- events.sendEvent(this, "@array:change", [this, startIdx, removeAmt, addAmt]);
27362
+ events.sendEvent(this, '@array:change', [this, startIdx, removeAmt, addAmt]);
27295
27363
 
27296
- var length = property_get.get(this, "length");
27297
- var cachedFirst = computed.cacheFor(this, "firstObject");
27298
- var cachedLast = computed.cacheFor(this, "lastObject");
27364
+ var length = property_get.get(this, 'length');
27365
+ var cachedFirst = computed.cacheFor(this, 'firstObject');
27366
+ var cachedLast = computed.cacheFor(this, 'lastObject');
27299
27367
 
27300
27368
  if (this.objectAt(0) !== cachedFirst) {
27301
- property_events.propertyWillChange(this, "firstObject");
27302
- property_events.propertyDidChange(this, "firstObject");
27369
+ property_events.propertyWillChange(this, 'firstObject');
27370
+ property_events.propertyDidChange(this, 'firstObject');
27303
27371
  }
27304
27372
 
27305
27373
  if (this.objectAt(length - 1) !== cachedLast) {
27306
- property_events.propertyWillChange(this, "lastObject");
27307
- property_events.propertyDidChange(this, "lastObject");
27374
+ property_events.propertyWillChange(this, 'lastObject');
27375
+ property_events.propertyDidChange(this, 'lastObject');
27308
27376
  }
27309
27377
 
27310
27378
  return this;
@@ -27323,10 +27391,10 @@ enifed('ember-runtime/mixins/array', ['exports', 'ember-metal/core', 'ember-meta
27323
27391
  use the `[]` property instead of `@each`.
27324
27392
  @property @each
27325
27393
  */
27326
- "@each": computed.computed(function () {
27394
+ '@each': computed.computed(function () {
27327
27395
  if (!this.__each) {
27328
27396
  // ES6TODO: GRRRRR
27329
- var EachProxy = requireModule("ember-runtime/system/each_proxy")["EachProxy"];
27397
+ var EachProxy = requireModule('ember-runtime/system/each_proxy')['EachProxy'];
27330
27398
 
27331
27399
  this.__each = new EachProxy(this);
27332
27400
  }
@@ -27429,9 +27497,9 @@ enifed('ember-runtime/mixins/controller_content_model_alias_deprecation', ['expo
27429
27497
 
27430
27498
  if (props.content && !modelSpecified) {
27431
27499
  props.model = props.content;
27432
- delete props["content"];
27500
+ delete props['content'];
27433
27501
 
27434
- Ember['default'].deprecate("Do not specify `content` on a Controller, use `model` instead.");
27502
+ Ember['default'].deprecate('Do not specify `content` on a Controller, use `model` instead.');
27435
27503
  }
27436
27504
  }
27437
27505
  });
@@ -27661,8 +27729,8 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember
27661
27729
  @property firstObject
27662
27730
  @return {Object} the object or undefined
27663
27731
  */
27664
- firstObject: computed.computed("[]", function () {
27665
- if (property_get.get(this, "length") === 0) {
27732
+ firstObject: computed.computed('[]', function () {
27733
+ if (property_get.get(this, 'length') === 0) {
27666
27734
  return undefined;
27667
27735
  }
27668
27736
 
@@ -27688,8 +27756,8 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember
27688
27756
  @property lastObject
27689
27757
  @return {Object} the last object or undefined
27690
27758
  */
27691
- lastObject: computed.computed("[]", function () {
27692
- var len = property_get.get(this, "length");
27759
+ lastObject: computed.computed('[]', function () {
27760
+ var len = property_get.get(this, 'length');
27693
27761
 
27694
27762
  if (len === 0) {
27695
27763
  return undefined;
@@ -27752,12 +27820,12 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember
27752
27820
  @return {Object} receiver
27753
27821
  */
27754
27822
  forEach: function (callback, target) {
27755
- if (typeof callback !== "function") {
27823
+ if (typeof callback !== 'function') {
27756
27824
  throw new TypeError();
27757
27825
  }
27758
27826
 
27759
27827
  var context = popCtx();
27760
- var len = property_get.get(this, "length");
27828
+ var len = property_get.get(this, 'length');
27761
27829
  var last = null;
27762
27830
 
27763
27831
  if (target === undefined) {
@@ -27782,7 +27850,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember
27782
27850
  @param {String} key name of the property
27783
27851
  @return {Array} The mapped array.
27784
27852
  */
27785
- getEach: mixin.aliasMethod("mapBy"),
27853
+ getEach: mixin.aliasMethod('mapBy'),
27786
27854
 
27787
27855
  /**
27788
27856
  Sets the value on the named property for each member. This is more
@@ -27852,7 +27920,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember
27852
27920
  @deprecated Use `mapBy` instead
27853
27921
  */
27854
27922
 
27855
- mapProperty: mixin.aliasMethod("mapBy"),
27923
+ mapProperty: mixin.aliasMethod('mapBy'),
27856
27924
 
27857
27925
  /**
27858
27926
  Returns an array with all of the items in the enumeration that the passed
@@ -27937,7 +28005,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember
27937
28005
  @return {Array} filtered array
27938
28006
  @deprecated Use `filterBy` instead
27939
28007
  */
27940
- filterProperty: mixin.aliasMethod("filterBy"),
28008
+ filterProperty: mixin.aliasMethod('filterBy'),
27941
28009
 
27942
28010
  /**
27943
28011
  Returns an array with the items that do not have truthy values for
@@ -27972,7 +28040,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember
27972
28040
  @return {Array} rejected array
27973
28041
  @deprecated Use `rejectBy` instead
27974
28042
  */
27975
- rejectProperty: mixin.aliasMethod("rejectBy"),
28043
+ rejectProperty: mixin.aliasMethod('rejectBy'),
27976
28044
 
27977
28045
  /**
27978
28046
  Returns the first item in the array for which the callback returns true.
@@ -27997,7 +28065,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember
27997
28065
  @return {Object} Found item or `undefined`.
27998
28066
  */
27999
28067
  find: function (callback, target) {
28000
- var len = property_get.get(this, "length");
28068
+ var len = property_get.get(this, 'length');
28001
28069
 
28002
28070
  if (target === undefined) {
28003
28071
  target = null;
@@ -28049,7 +28117,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember
28049
28117
  @return {Object} found item or `undefined`
28050
28118
  @deprecated Use `findBy` instead
28051
28119
  */
28052
- findProperty: mixin.aliasMethod("findBy"),
28120
+ findProperty: mixin.aliasMethod('findBy'),
28053
28121
 
28054
28122
  /**
28055
28123
  Returns `true` if the passed function returns true for every item in the
@@ -28090,7 +28158,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember
28090
28158
  @deprecated Use `isEvery` instead
28091
28159
  @return {Boolean}
28092
28160
  */
28093
- everyBy: mixin.aliasMethod("isEvery"),
28161
+ everyBy: mixin.aliasMethod('isEvery'),
28094
28162
 
28095
28163
  /**
28096
28164
  @method everyProperty
@@ -28099,7 +28167,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember
28099
28167
  @deprecated Use `isEvery` instead
28100
28168
  @return {Boolean}
28101
28169
  */
28102
- everyProperty: mixin.aliasMethod("isEvery"),
28170
+ everyProperty: mixin.aliasMethod('isEvery'),
28103
28171
 
28104
28172
  /**
28105
28173
  Returns `true` if the passed property resolves to `true` for all items in
@@ -28142,7 +28210,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember
28142
28210
  @return {Boolean} `true` if the passed function returns `true` for any item
28143
28211
  */
28144
28212
  any: function (callback, target) {
28145
- var len = property_get.get(this, "length");
28213
+ var len = property_get.get(this, 'length');
28146
28214
  var context = popCtx();
28147
28215
  var found = false;
28148
28216
  var last = null;
@@ -28191,7 +28259,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember
28191
28259
  @return {Boolean} `true` if the passed function returns `true` for any item
28192
28260
  @deprecated Use `any` instead
28193
28261
  */
28194
- some: mixin.aliasMethod("any"),
28262
+ some: mixin.aliasMethod('any'),
28195
28263
 
28196
28264
  /**
28197
28265
  Returns `true` if the passed property resolves to `true` for any item in
@@ -28213,7 +28281,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember
28213
28281
  @return {Boolean}
28214
28282
  @deprecated Use `isAny` instead
28215
28283
  */
28216
- anyBy: mixin.aliasMethod("isAny"),
28284
+ anyBy: mixin.aliasMethod('isAny'),
28217
28285
 
28218
28286
  /**
28219
28287
  @method someProperty
@@ -28222,7 +28290,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember
28222
28290
  @return {Boolean}
28223
28291
  @deprecated Use `isAny` instead
28224
28292
  */
28225
- someProperty: mixin.aliasMethod("isAny"),
28293
+ someProperty: mixin.aliasMethod('isAny'),
28226
28294
 
28227
28295
  /**
28228
28296
  This will combine the values of the enumerator into a single value. It
@@ -28251,7 +28319,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember
28251
28319
  @return {Object} The reduced value.
28252
28320
  */
28253
28321
  reduce: function (callback, initialValue, reducerProperty) {
28254
- if (typeof callback !== "function") {
28322
+ if (typeof callback !== 'function') {
28255
28323
  throw new TypeError();
28256
28324
  }
28257
28325
 
@@ -28283,7 +28351,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember
28283
28351
  this.forEach(function (x, idx) {
28284
28352
  var method = x && x[methodName];
28285
28353
 
28286
- if ("function" === typeof method) {
28354
+ if ('function' === typeof method) {
28287
28355
  ret[idx] = args ? method.apply(x, args) : x[methodName]();
28288
28356
  }
28289
28357
  }, this);
@@ -28383,7 +28451,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember
28383
28451
  @type Array
28384
28452
  @return this
28385
28453
  */
28386
- "[]": computed.computed({
28454
+ '[]': computed.computed({
28387
28455
  get: function (key) {
28388
28456
  return this;
28389
28457
  }
@@ -28402,19 +28470,19 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember
28402
28470
  @return this
28403
28471
  */
28404
28472
  addEnumerableObserver: function (target, opts) {
28405
- var willChange = opts && opts.willChange || "enumerableWillChange";
28406
- var didChange = opts && opts.didChange || "enumerableDidChange";
28407
- var hasObservers = property_get.get(this, "hasEnumerableObservers");
28473
+ var willChange = opts && opts.willChange || 'enumerableWillChange';
28474
+ var didChange = opts && opts.didChange || 'enumerableDidChange';
28475
+ var hasObservers = property_get.get(this, 'hasEnumerableObservers');
28408
28476
 
28409
28477
  if (!hasObservers) {
28410
- property_events.propertyWillChange(this, "hasEnumerableObservers");
28478
+ property_events.propertyWillChange(this, 'hasEnumerableObservers');
28411
28479
  }
28412
28480
 
28413
- events.addListener(this, "@enumerable:before", target, willChange);
28414
- events.addListener(this, "@enumerable:change", target, didChange);
28481
+ events.addListener(this, '@enumerable:before', target, willChange);
28482
+ events.addListener(this, '@enumerable:change', target, didChange);
28415
28483
 
28416
28484
  if (!hasObservers) {
28417
- property_events.propertyDidChange(this, "hasEnumerableObservers");
28485
+ property_events.propertyDidChange(this, 'hasEnumerableObservers');
28418
28486
  }
28419
28487
 
28420
28488
  return this;
@@ -28428,19 +28496,19 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember
28428
28496
  @return this
28429
28497
  */
28430
28498
  removeEnumerableObserver: function (target, opts) {
28431
- var willChange = opts && opts.willChange || "enumerableWillChange";
28432
- var didChange = opts && opts.didChange || "enumerableDidChange";
28433
- var hasObservers = property_get.get(this, "hasEnumerableObservers");
28499
+ var willChange = opts && opts.willChange || 'enumerableWillChange';
28500
+ var didChange = opts && opts.didChange || 'enumerableDidChange';
28501
+ var hasObservers = property_get.get(this, 'hasEnumerableObservers');
28434
28502
 
28435
28503
  if (hasObservers) {
28436
- property_events.propertyWillChange(this, "hasEnumerableObservers");
28504
+ property_events.propertyWillChange(this, 'hasEnumerableObservers');
28437
28505
  }
28438
28506
 
28439
- events.removeListener(this, "@enumerable:before", target, willChange);
28440
- events.removeListener(this, "@enumerable:change", target, didChange);
28507
+ events.removeListener(this, '@enumerable:before', target, willChange);
28508
+ events.removeListener(this, '@enumerable:change', target, didChange);
28441
28509
 
28442
28510
  if (hasObservers) {
28443
- property_events.propertyDidChange(this, "hasEnumerableObservers");
28511
+ property_events.propertyDidChange(this, 'hasEnumerableObservers');
28444
28512
  }
28445
28513
 
28446
28514
  return this;
@@ -28453,7 +28521,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember
28453
28521
  @type Boolean
28454
28522
  */
28455
28523
  hasEnumerableObservers: computed.computed(function () {
28456
- return events.hasListeners(this, "@enumerable:change") || events.hasListeners(this, "@enumerable:before");
28524
+ return events.hasListeners(this, '@enumerable:change') || events.hasListeners(this, '@enumerable:before');
28457
28525
  }),
28458
28526
 
28459
28527
  /**
@@ -28470,18 +28538,18 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember
28470
28538
  enumerableContentWillChange: function (removing, adding) {
28471
28539
  var removeCnt, addCnt, hasDelta;
28472
28540
 
28473
- if ("number" === typeof removing) {
28541
+ if ('number' === typeof removing) {
28474
28542
  removeCnt = removing;
28475
28543
  } else if (removing) {
28476
- removeCnt = property_get.get(removing, "length");
28544
+ removeCnt = property_get.get(removing, 'length');
28477
28545
  } else {
28478
28546
  removeCnt = removing = -1;
28479
28547
  }
28480
28548
 
28481
- if ("number" === typeof adding) {
28549
+ if ('number' === typeof adding) {
28482
28550
  addCnt = adding;
28483
28551
  } else if (adding) {
28484
- addCnt = property_get.get(adding, "length");
28552
+ addCnt = property_get.get(adding, 'length');
28485
28553
  } else {
28486
28554
  addCnt = adding = -1;
28487
28555
  }
@@ -28496,13 +28564,13 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember
28496
28564
  adding = null;
28497
28565
  }
28498
28566
 
28499
- property_events.propertyWillChange(this, "[]");
28567
+ property_events.propertyWillChange(this, '[]');
28500
28568
 
28501
28569
  if (hasDelta) {
28502
- property_events.propertyWillChange(this, "length");
28570
+ property_events.propertyWillChange(this, 'length');
28503
28571
  }
28504
28572
 
28505
- events.sendEvent(this, "@enumerable:before", [this, removing, adding]);
28573
+ events.sendEvent(this, '@enumerable:before', [this, removing, adding]);
28506
28574
 
28507
28575
  return this;
28508
28576
  },
@@ -28523,18 +28591,18 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember
28523
28591
  enumerableContentDidChange: function (removing, adding) {
28524
28592
  var removeCnt, addCnt, hasDelta;
28525
28593
 
28526
- if ("number" === typeof removing) {
28594
+ if ('number' === typeof removing) {
28527
28595
  removeCnt = removing;
28528
28596
  } else if (removing) {
28529
- removeCnt = property_get.get(removing, "length");
28597
+ removeCnt = property_get.get(removing, 'length');
28530
28598
  } else {
28531
28599
  removeCnt = removing = -1;
28532
28600
  }
28533
28601
 
28534
- if ("number" === typeof adding) {
28602
+ if ('number' === typeof adding) {
28535
28603
  addCnt = adding;
28536
28604
  } else if (adding) {
28537
- addCnt = property_get.get(adding, "length");
28605
+ addCnt = property_get.get(adding, 'length');
28538
28606
  } else {
28539
28607
  addCnt = adding = -1;
28540
28608
  }
@@ -28549,13 +28617,13 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember
28549
28617
  adding = null;
28550
28618
  }
28551
28619
 
28552
- events.sendEvent(this, "@enumerable:change", [this, removing, adding]);
28620
+ events.sendEvent(this, '@enumerable:change', [this, removing, adding]);
28553
28621
 
28554
28622
  if (hasDelta) {
28555
- property_events.propertyDidChange(this, "length");
28623
+ property_events.propertyDidChange(this, 'length');
28556
28624
  }
28557
28625
 
28558
- property_events.propertyDidChange(this, "[]");
28626
+ property_events.propertyDidChange(this, '[]');
28559
28627
 
28560
28628
  return this;
28561
28629
  },
@@ -28735,25 +28803,33 @@ enifed('ember-runtime/mixins/mutable_array', ['exports', 'ember-metal/property_g
28735
28803
 
28736
28804
  'use strict';
28737
28805
 
28738
- /**
28739
- @module ember
28740
- @submodule ember-runtime
28741
- */
28742
28806
 
28743
- // require('ember-runtime/mixins/array');
28744
- // require('ember-runtime/mixins/mutable_enumerable');
28745
-
28746
- // ..........................................................
28747
- // CONSTANTS
28748
- //
28749
-
28750
- var OUT_OF_RANGE_EXCEPTION = "Index out of range";
28751
- var EMPTY = [];
28752
28807
 
28753
28808
  // ..........................................................
28754
28809
  // HELPERS
28755
28810
  //
28756
28811
 
28812
+ var OUT_OF_RANGE_EXCEPTION = "Index out of range";
28813
+ var EMPTY = []; /**
28814
+ This mixin defines the API for modifying array-like objects. These methods
28815
+ can be applied only to a collection that keeps its items in an ordered set.
28816
+ It builds upon the Array mixin and adds methods to modify the array.
28817
+ Concrete implementations of this class include ArrayProxy and ArrayController.
28818
+
28819
+ It is important to use the methods in this class to modify arrays so that
28820
+ changes are observable. This allows the binding system in Ember to function
28821
+ correctly.
28822
+
28823
+
28824
+ Note that an Array can change even if it does not implement this mixin.
28825
+ For example, one might implement a SparseArray that cannot be directly
28826
+ modified, but if its underlying enumerable changes, it will change also.
28827
+
28828
+ @class MutableArray
28829
+ @namespace Ember
28830
+ @uses Ember.Array
28831
+ @uses Ember.MutableEnumerable
28832
+ */
28757
28833
  exports['default'] = mixin.Mixin.create(EmberArray['default'], MutableEnumerable['default'], {
28758
28834
 
28759
28835
  /**
@@ -29521,7 +29597,7 @@ enifed('ember-runtime/mixins/promise_proxy', ['exports', 'ember-metal/property_g
29521
29597
  }
29522
29598
 
29523
29599
  /**
29524
- A low level mixin making ObjectProxy, ObjectController or ArrayController's promise aware.
29600
+ A low level mixin making ObjectProxy, ObjectController or ArrayControllers promise-aware.
29525
29601
 
29526
29602
  ```javascript
29527
29603
  var ObjectPromiseController = Ember.ObjectController.extend(Ember.PromiseProxyMixin);
@@ -30419,7 +30495,7 @@ enifed('ember-runtime/system/container', ['exports', 'ember-metal/property_set',
30419
30495
  exports.Container = Container['default'];
30420
30496
 
30421
30497
  });
30422
- enifed('ember-runtime/system/core_object', ['exports', 'ember-metal', 'ember-metal/merge', 'ember-metal/property_get', 'ember-metal/utils', 'ember-metal/platform/create', 'ember-metal/chains', 'ember-metal/events', 'ember-metal/mixin', 'ember-metal/enumerable_utils', 'ember-metal/error', 'ember-metal/platform/define_property', 'ember-metal/keys', 'ember-runtime/mixins/action_handler', 'ember-metal/properties', 'ember-metal/binding', 'ember-metal/computed', 'ember-metal/injected_property', 'ember-metal/run_loop', 'ember-metal/watching', 'ember-metal/core', 'ember-runtime/inject'], function (exports, Ember, merge, property_get, utils, o_create, chains, events, mixin, enumerable_utils, EmberError, define_property, keys, ActionHandler, ember_metal__properties, binding, computed, InjectedProperty, run, watching, core, inject) {
30498
+ enifed('ember-runtime/system/core_object', ['exports', 'ember-metal', 'ember-metal/merge', 'ember-metal/property_get', 'ember-metal/utils', 'ember-metal/platform/create', 'ember-metal/chains', 'ember-metal/events', 'ember-metal/mixin', 'ember-metal/enumerable_utils', 'ember-metal/error', 'ember-metal/platform/define_property', 'ember-metal/keys', 'ember-runtime/mixins/action_handler', 'ember-metal/properties', 'ember-metal/binding', 'ember-metal/computed', 'ember-metal/injected_property', 'ember-metal/run_loop', 'ember-metal/watching', 'ember-metal/core', 'ember-runtime/inject'], function (exports, Ember, merge, property_get, utils, o_create, chains, events, mixin, enumerable_utils, EmberError, define_property, keys, ActionHandler, ember_metal__properties, ember_metal__binding, computed, InjectedProperty, run, watching, core, inject) {
30423
30499
 
30424
30500
 
30425
30501
  // Remove "use strict"; from transpiled module until
@@ -30763,8 +30839,8 @@ enifed('ember-runtime/system/core_object', ['exports', 'ember-metal', 'ember-met
30763
30839
  },
30764
30840
 
30765
30841
  bind: function (to, from) {
30766
- if (!(from instanceof binding.Binding)) {
30767
- from = binding.Binding.from(from);
30842
+ if (!(from instanceof ember_metal__binding.Binding)) {
30843
+ from = ember_metal__binding.Binding.from(from);
30768
30844
  }
30769
30845
  from.to(to).connect(this);
30770
30846
  return from;
@@ -30924,8 +31000,8 @@ enifed('ember-runtime/system/core_object', ['exports', 'ember-metal', 'ember-met
30924
31000
  @param [arguments]*
30925
31001
  */
30926
31002
  createWithMixins: function () {
30927
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
30928
- args[_key] = arguments[_key];
31003
+ for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
31004
+ args[_key2] = arguments[_key2];
30929
31005
  }
30930
31006
 
30931
31007
  var C = this;
@@ -30965,8 +31041,8 @@ enifed('ember-runtime/system/core_object', ['exports', 'ember-metal', 'ember-met
30965
31041
  @param [arguments]*
30966
31042
  */
30967
31043
  create: function () {
30968
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
30969
- args[_key] = arguments[_key];
31044
+ for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
31045
+ args[_key3] = arguments[_key3];
30970
31046
  }
30971
31047
 
30972
31048
  var C = this;
@@ -31501,7 +31577,7 @@ enifed('ember-runtime/system/lazy_load', ['exports', 'ember-metal/core', 'ember-
31501
31577
  }
31502
31578
 
31503
31579
  });
31504
- enifed('ember-runtime/system/namespace', ['exports', 'ember-metal/core', 'ember-metal/property_get', 'ember-metal/array', 'ember-metal/utils', 'ember-metal/mixin', 'ember-runtime/system/object'], function (exports, Ember, property_get, array, utils, mixin, EmberObject) {
31580
+ enifed('ember-runtime/system/namespace', ['exports', 'ember-metal/core', 'ember-metal/property_get', 'ember-metal/array', 'ember-metal/utils', 'ember-metal/mixin', 'ember-runtime/system/object'], function (exports, Ember, property_get, array, utils, ember_metal__mixin, EmberObject) {
31505
31581
 
31506
31582
  'use strict';
31507
31583
 
@@ -31710,7 +31786,7 @@ enifed('ember-runtime/system/namespace', ['exports', 'ember-metal/core', 'ember-
31710
31786
  };
31711
31787
  }
31712
31788
 
31713
- mixin.Mixin.prototype.toString = classToString; // ES6TODO: altering imported objects. SBB.
31789
+ ember_metal__mixin.Mixin.prototype.toString = classToString; // ES6TODO: altering imported objects. SBB.
31714
31790
 
31715
31791
  exports['default'] = Namespace;
31716
31792
 
@@ -31859,7 +31935,7 @@ enifed('ember-runtime/system/native_array', ['exports', 'ember-metal/core', 'emb
31859
31935
  NativeArray.activate = function () {
31860
31936
  NativeArray.apply(Array.prototype);
31861
31937
 
31862
- A = function (arr) {
31938
+ exports.A = A = function (arr) {
31863
31939
  return arr || [];
31864
31940
  };
31865
31941
  };
@@ -31903,7 +31979,7 @@ enifed('ember-runtime/system/service', ['exports', 'ember-runtime/system/object'
31903
31979
 
31904
31980
  'use strict';
31905
31981
 
31906
- inject.createInjectionHelper("service");
31982
+ inject.createInjectionHelper('service');
31907
31983
 
31908
31984
  /**
31909
31985
  @class Service
@@ -33106,22 +33182,22 @@ enifed('ember-template-compiler/compat/precompile', ['exports', 'ember-template-
33106
33182
  var compile, compileSpec;
33107
33183
 
33108
33184
  exports['default'] = function (string) {
33109
- if ((!compile || !compileSpec) && Ember.__loader.registry["htmlbars-compiler/compiler"]) {
33110
- var Compiler = requireModule("htmlbars-compiler/compiler");
33185
+ if ((!compile || !compileSpec) && Ember.__loader.registry['htmlbars-compiler/compiler']) {
33186
+ var Compiler = requireModule('htmlbars-compiler/compiler');
33111
33187
 
33112
33188
  compile = Compiler.compile;
33113
33189
  compileSpec = Compiler.compileSpec;
33114
33190
  }
33115
33191
 
33116
33192
  if (!compile || !compileSpec) {
33117
- throw new Error("Cannot call `precompile` without the template compiler loaded. Please load `ember-template-compiler.js` prior to calling `precompile`.");
33193
+ throw new Error('Cannot call `precompile` without the template compiler loaded. Please load `ember-template-compiler.js` prior to calling `precompile`.');
33118
33194
  }
33119
33195
 
33120
33196
  var asObject = arguments[1] === undefined ? true : arguments[1];
33121
33197
  var compileFunc = asObject ? compile : compileSpec;
33122
33198
 
33123
33199
  return compileFunc(string, compileOptions['default']());
33124
- };
33200
+ }
33125
33201
 
33126
33202
  });
33127
33203
  enifed('ember-template-compiler/plugins', ['exports'], function (exports) {
@@ -33141,7 +33217,7 @@ enifed('ember-template-compiler/plugins', ['exports'], function (exports) {
33141
33217
  };
33142
33218
  function registerPlugin(type, Plugin) {
33143
33219
  if (!plugins[type]) {
33144
- throw new Error("Attempting to register \"" + Plugin + "\" as \"" + type + "\" which is not a valid HTMLBars plugin type.");
33220
+ throw new Error('Attempting to register "' + Plugin + '" as "' + type + '" which is not a valid HTMLBars plugin type.');
33145
33221
  }
33146
33222
 
33147
33223
  plugins[type].push(Plugin);
@@ -33177,9 +33253,10 @@ enifed('ember-template-compiler/plugins/transform-each-in-to-hash', ['exports'],
33177
33253
  @class TransformEachInToHash
33178
33254
  @private
33179
33255
  */
33180
- function TransformEachInToHash() {
33256
+ function TransformEachInToHash(options) {
33181
33257
  // set later within HTMLBars to the syntax package
33182
33258
  this.syntax = null;
33259
+ this.options = options || {};
33183
33260
  }
33184
33261
 
33185
33262
  /**
@@ -33196,7 +33273,7 @@ enifed('ember-template-compiler/plugins/transform-each-in-to-hash', ['exports'],
33196
33273
  if (pluginContext.validate(node)) {
33197
33274
 
33198
33275
  if (node.program && node.program.blockParams.length) {
33199
- throw new Error("You cannot use keyword (`{{each foo in bar}}`) and block params (`{{each bar as |foo|}}`) at the same time.");
33276
+ throw new Error('You cannot use keyword (`{{each foo in bar}}`) and block params (`{{each bar as |foo|}}`) at the same time.');
33200
33277
  }
33201
33278
 
33202
33279
  var removedParams = node.sexpr.params.splice(0, 2);
@@ -33207,7 +33284,7 @@ enifed('ember-template-compiler/plugins/transform-each-in-to-hash', ['exports'],
33207
33284
  node.sexpr.hash = b.hash();
33208
33285
  }
33209
33286
 
33210
- node.sexpr.hash.pairs.push(b.pair("keyword", b.string(keyword)));
33287
+ node.sexpr.hash.pairs.push(b.pair('keyword', b.string(keyword)));
33211
33288
  }
33212
33289
  });
33213
33290
 
@@ -33215,7 +33292,7 @@ enifed('ember-template-compiler/plugins/transform-each-in-to-hash', ['exports'],
33215
33292
  };
33216
33293
 
33217
33294
  TransformEachInToHash.prototype.validate = function TransformEachInToHash_validate(node) {
33218
- return (node.type === "BlockStatement" || node.type === "MustacheStatement") && node.sexpr.path.original === "each" && node.sexpr.params.length === 3 && node.sexpr.params[1].type === "PathExpression" && node.sexpr.params[1].original === "in";
33295
+ return (node.type === 'BlockStatement' || node.type === 'MustacheStatement') && node.sexpr.path.original === 'each' && node.sexpr.params.length === 3 && node.sexpr.params[1].type === 'PathExpression' && node.sexpr.params[1].original === 'in';
33219
33296
  };
33220
33297
 
33221
33298
  exports['default'] = TransformEachInToHash;
@@ -33248,9 +33325,10 @@ enifed('ember-template-compiler/plugins/transform-with-as-to-hash', ['exports'],
33248
33325
  @private
33249
33326
  @class TransformWithAsToHash
33250
33327
  */
33251
- function TransformWithAsToHash() {
33328
+ function TransformWithAsToHash(options) {
33252
33329
  // set later within HTMLBars to the syntax package
33253
33330
  this.syntax = null;
33331
+ this.options = options;
33254
33332
  }
33255
33333
 
33256
33334
  /**
@@ -33261,6 +33339,7 @@ enifed('ember-template-compiler/plugins/transform-with-as-to-hash', ['exports'],
33261
33339
  TransformWithAsToHash.prototype.transform = function TransformWithAsToHash_transform(ast) {
33262
33340
  var pluginContext = this;
33263
33341
  var walker = new pluginContext.syntax.Walker();
33342
+ var moduleName = this.options.moduleName;
33264
33343
 
33265
33344
  walker.visit(ast, function (node) {
33266
33345
  if (pluginContext.validate(node)) {
@@ -33269,6 +33348,8 @@ enifed('ember-template-compiler/plugins/transform-with-as-to-hash', ['exports'],
33269
33348
  throw new Error("You cannot use keyword (`{{with foo as bar}}`) and block params (`{{with foo as |bar|}}`) at the same time.");
33270
33349
  }
33271
33350
 
33351
+ Ember.deprecate("Using {{with}} without block syntax is deprecated. " + "Please use standard block form (`{{#with foo as |bar|}}`) " + (moduleName ? " in `" + moduleName + "` " : "") + "instead.", false, { url: "http://emberjs.com/deprecations/v1.x/#toc_code-as-code-sytnax-for-code-with-code" });
33352
+
33272
33353
  var removedParams = node.sexpr.params.splice(1, 2);
33273
33354
  var keyword = removedParams[1].original;
33274
33355
  node.program.blockParams = [keyword];
@@ -33289,13 +33370,18 @@ enifed('ember-template-compiler/system/compile', ['exports', 'ember-template-com
33289
33370
 
33290
33371
  'use strict';
33291
33372
 
33292
- /**
33293
- @module ember
33294
- @submodule ember-template-compiler
33295
- */
33296
33373
 
33297
- var compile;
33298
- exports['default'] = function (templateString) {
33374
+ var compile; /**
33375
+ Uses HTMLBars `compile` function to process a string into a compiled template.
33376
+
33377
+ This is not present in production builds.
33378
+
33379
+ @private
33380
+ @method compile
33381
+ @param {String} templateString This is the string to be compiled by HTMLBars.
33382
+ @param {Object} options This is an options hash to augment the compiler options.
33383
+ */
33384
+ exports['default'] = function (templateString, options) {
33299
33385
  if (!compile && Ember.__loader.registry["htmlbars-compiler/compiler"]) {
33300
33386
  compile = requireModule("htmlbars-compiler/compiler").compile;
33301
33387
  }
@@ -33304,10 +33390,10 @@ enifed('ember-template-compiler/system/compile', ['exports', 'ember-template-com
33304
33390
  throw new Error("Cannot call `compile` without the template compiler loaded. Please load `ember-template-compiler.js` prior to calling `compile`.");
33305
33391
  }
33306
33392
 
33307
- var templateSpec = compile(templateString, compileOptions['default']());
33393
+ var templateSpec = compile(templateString, compileOptions['default'](options));
33308
33394
 
33309
33395
  return template['default'](templateSpec);
33310
- };
33396
+ }
33311
33397
 
33312
33398
  });
33313
33399
  enifed('ember-template-compiler/system/compile_options', ['exports', 'ember-metal/core', 'ember-template-compiler/plugins'], function (exports, Ember, plugins) {
@@ -33319,17 +33405,23 @@ enifed('ember-template-compiler/system/compile_options', ['exports', 'ember-meta
33319
33405
  @submodule ember-template-compiler
33320
33406
  */
33321
33407
 
33322
- exports['default'] = function () {
33408
+ exports['default'] = function (_options) {
33323
33409
  var disableComponentGeneration = true;
33324
33410
 
33325
- return {
33326
- revision: "Ember@1.12.0-beta.1",
33411
+ var options = _options || {};
33412
+ // When calling `Ember.Handlebars.compile()` a second argument of `true`
33413
+ // had a special meaning (long since lost), this just gaurds against
33414
+ // `options` being true, and causing an error during compilation.
33415
+ if (options === true) {
33416
+ options = {};
33417
+ }
33327
33418
 
33328
- disableComponentGeneration: disableComponentGeneration,
33419
+ options.revision = "Ember@1.12.0-beta.3";
33420
+ options.disableComponentGeneration = disableComponentGeneration;
33421
+ options.plugins = plugins['default'];
33329
33422
 
33330
- plugins: plugins['default']
33331
- };
33332
- };
33423
+ return options;
33424
+ }
33333
33425
 
33334
33426
  });
33335
33427
  enifed('ember-template-compiler/system/precompile', ['exports', 'ember-template-compiler/system/compile_options'], function (exports, compileOptions) {
@@ -33353,17 +33445,17 @@ enifed('ember-template-compiler/system/precompile', ['exports', 'ember-template-
33353
33445
  @method precompile
33354
33446
  @param {String} templateString This is the string to be compiled by HTMLBars.
33355
33447
  */
33356
- exports['default'] = function (templateString) {
33357
- if (!compileSpec && Ember.__loader.registry["htmlbars-compiler/compiler"]) {
33358
- compileSpec = requireModule("htmlbars-compiler/compiler").compileSpec;
33448
+ exports['default'] = function (templateString, options) {
33449
+ if (!compileSpec && Ember.__loader.registry['htmlbars-compiler/compiler']) {
33450
+ compileSpec = requireModule('htmlbars-compiler/compiler').compileSpec;
33359
33451
  }
33360
33452
 
33361
33453
  if (!compileSpec) {
33362
- throw new Error("Cannot call `compileSpec` without the template compiler loaded. Please load `ember-template-compiler.js` prior to calling `compileSpec`.");
33454
+ throw new Error('Cannot call `compileSpec` without the template compiler loaded. Please load `ember-template-compiler.js` prior to calling `compileSpec`.');
33363
33455
  }
33364
33456
 
33365
- return compileSpec(templateString, compileOptions['default']());
33366
- };
33457
+ return compileSpec(templateString, compileOptions['default'](options));
33458
+ }
33367
33459
 
33368
33460
  });
33369
33461
  enifed('ember-template-compiler/system/template', ['exports'], function (exports) {
@@ -33389,7 +33481,7 @@ enifed('ember-template-compiler/system/template', ['exports'], function (exports
33389
33481
  templateSpec.isMethod = false;
33390
33482
 
33391
33483
  return templateSpec;
33392
- };
33484
+ }
33393
33485
 
33394
33486
  });
33395
33487
  enifed('ember-testing', ['ember-metal/core', 'ember-testing/initializers', 'ember-testing/support', 'ember-testing/setup_for_testing', 'ember-testing/test', 'ember-testing/adapters/adapter', 'ember-testing/adapters/qunit', 'ember-testing/helpers'], function (Ember, __dep1__, __dep2__, setupForTesting, Test, Adapter, QUnitAdapter) {
@@ -33948,9 +34040,9 @@ enifed('ember-testing/initializers', ['ember-runtime/system/lazy_load'], functio
33948
34040
 
33949
34041
  'use strict';
33950
34042
 
33951
- var name = "deferReadiness in `testing` mode";
34043
+ var name = 'deferReadiness in `testing` mode';
33952
34044
 
33953
- lazy_load.onLoad("Ember.Application", function (Application) {
34045
+ lazy_load.onLoad('Ember.Application', function (Application) {
33954
34046
  if (!Application.initializers[name]) {
33955
34047
  Application.initializer({
33956
34048
  name: name,
@@ -34476,8 +34568,8 @@ enifed('ember-testing/test', ['exports', 'ember-metal/core', 'ember-metal/run_lo
34476
34568
  // of helper chaining
34477
34569
  function protoWrap(proto, name, callback, isAsync) {
34478
34570
  proto[name] = function () {
34479
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
34480
- args[_key] = arguments[_key];
34571
+ for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
34572
+ args[_key2] = arguments[_key2];
34481
34573
  }
34482
34574
 
34483
34575
  if (isAsync) {
@@ -34609,7 +34701,7 @@ enifed('ember-views/attr_nodes/attr_node', ['exports', 'ember-metal/core', 'embe
34609
34701
  this.init(attrName, attrValue);
34610
34702
  }
34611
34703
 
34612
- var styleWarning = "Binding style attributes may introduce cross-site scripting vulnerabilities; " + "please ensure that values being bound are properly escaped. For more information, " + "including how to disable this warning, see " + "http://emberjs.com/deprecations/v1.x/#toc_warning-when-binding-style-attributes.";
34704
+ var styleWarning = "Binding style attributes may introduce cross-site scripting vulnerabilities; " + "please ensure that values being bound are properly escaped. For more information, " + "including how to disable this warning, see " + "http://emberjs.com/deprecations/v1.x/#toc_binding-style-attributes.";
34613
34705
 
34614
34706
  AttrNode.prototype.init = function init(attrName, simpleAttrValue) {
34615
34707
  this.isAttrNode = true;
@@ -34760,12 +34852,12 @@ enifed('ember-views/component_lookup', ['exports', 'ember-runtime/system/object'
34760
34852
 
34761
34853
  container = container || this.container;
34762
34854
 
34763
- var fullName = "component:" + name;
34764
- var templateFullName = "template:components/" + name;
34855
+ var fullName = 'component:' + name;
34856
+ var templateFullName = 'template:components/' + name;
34765
34857
  var templateRegistered = container && container._registry.has(templateFullName);
34766
34858
 
34767
34859
  if (templateRegistered) {
34768
- container._registry.injection(fullName, "layout", templateFullName);
34860
+ container._registry.injection(fullName, 'layout', templateFullName);
34769
34861
  }
34770
34862
 
34771
34863
  var Component = container.lookupFactory(fullName);
@@ -34787,8 +34879,16 @@ enifed('ember-views/mixins/attribute_bindings_support', ['exports', 'ember-metal
34787
34879
 
34788
34880
  'use strict';
34789
34881
 
34882
+ /**
34883
+ @module ember
34884
+ @submodule ember-views
34885
+ */
34790
34886
  var EMPTY_ARRAY = [];
34791
34887
 
34888
+ /**
34889
+ @class AttributeBindingsSupport
34890
+ @namespace Ember
34891
+ */
34792
34892
  var AttributeBindingsSupport = mixin.Mixin.create({
34793
34893
  concatenatedProperties: ["attributeBindings"],
34794
34894
 
@@ -34816,6 +34916,8 @@ enifed('ember-views/mixins/attribute_bindings_support', ['exports', 'ember-metal
34816
34916
  */
34817
34917
  attributeBindings: EMPTY_ARRAY,
34818
34918
 
34919
+ _attrNodes: EMPTY_ARRAY,
34920
+
34819
34921
  _unspecifiedAttributeBindings: null,
34820
34922
 
34821
34923
  /**
@@ -34898,8 +35000,16 @@ enifed('ember-views/mixins/class_names_support', ['exports', 'ember-metal/core',
34898
35000
 
34899
35001
  'use strict';
34900
35002
 
35003
+ /**
35004
+ @module ember
35005
+ @submodule ember-views
35006
+ */
34901
35007
  var EMPTY_ARRAY = [];
34902
35008
 
35009
+ /**
35010
+ @class ClassNamesSupport
35011
+ @namespace Ember
35012
+ */
34903
35013
  var ClassNamesSupport = mixin.Mixin.create({
34904
35014
  concatenatedProperties: ["classNames", "classNameBindings"],
34905
35015
 
@@ -35073,25 +35183,25 @@ enifed('ember-views/mixins/component_template_deprecation', ['exports', 'ember-m
35073
35183
  this._super.apply(this, arguments);
35074
35184
 
35075
35185
  var deprecatedProperty, replacementProperty;
35076
- var layoutSpecified = props.layoutName || props.layout || property_get.get(this, "layoutName");
35186
+ var layoutSpecified = props.layoutName || props.layout || property_get.get(this, 'layoutName');
35077
35187
 
35078
35188
  if (props.templateName && !layoutSpecified) {
35079
- deprecatedProperty = "templateName";
35080
- replacementProperty = "layoutName";
35189
+ deprecatedProperty = 'templateName';
35190
+ replacementProperty = 'layoutName';
35081
35191
 
35082
35192
  props.layoutName = props.templateName;
35083
- delete props["templateName"];
35193
+ delete props['templateName'];
35084
35194
  }
35085
35195
 
35086
35196
  if (props.template && !layoutSpecified) {
35087
- deprecatedProperty = "template";
35088
- replacementProperty = "layout";
35197
+ deprecatedProperty = 'template';
35198
+ replacementProperty = 'layout';
35089
35199
 
35090
35200
  props.layout = props.template;
35091
- delete props["template"];
35201
+ delete props['template'];
35092
35202
  }
35093
35203
 
35094
- Ember['default'].deprecate("Do not specify " + deprecatedProperty + " on a Component, use " + replacementProperty + " instead.", !deprecatedProperty);
35204
+ Ember['default'].deprecate('Do not specify ' + deprecatedProperty + ' on a Component, use ' + replacementProperty + ' instead.', !deprecatedProperty);
35095
35205
  }
35096
35206
  });
35097
35207
 
@@ -35100,6 +35210,10 @@ enifed('ember-views/mixins/instrumentation_support', ['exports', 'ember-metal/mi
35100
35210
 
35101
35211
  'use strict';
35102
35212
 
35213
+ /**
35214
+ @module ember
35215
+ @submodule ember-views
35216
+ */
35103
35217
  var InstrumentationSupport = mixin.Mixin.create({
35104
35218
  /**
35105
35219
  Used to identify this view during debugging
@@ -35127,6 +35241,10 @@ enifed('ember-views/mixins/legacy_view_support', ['exports', 'ember-metal/core',
35127
35241
 
35128
35242
  'use strict';
35129
35243
 
35244
+ /**
35245
+ @module ember
35246
+ @submodule ember-views
35247
+ */
35130
35248
  var LegacyViewSupport = mixin.Mixin.create({
35131
35249
  beforeRender: function (buffer) {},
35132
35250
 
@@ -35251,6 +35369,10 @@ enifed('ember-views/mixins/template_rendering_support', ['exports', 'ember-metal
35251
35369
 
35252
35370
  'use strict';
35253
35371
 
35372
+ /**
35373
+ @module ember
35374
+ @submodule ember-views
35375
+ */
35254
35376
  var _renderView;
35255
35377
  function renderView(view, buffer, template) {
35256
35378
  if (_renderView === undefined) {
@@ -35259,6 +35381,10 @@ enifed('ember-views/mixins/template_rendering_support', ['exports', 'ember-metal
35259
35381
  _renderView(view, buffer, template);
35260
35382
  }
35261
35383
 
35384
+ /**
35385
+ @class TemplateRenderingSupport
35386
+ @namespace Ember
35387
+ */
35262
35388
  var TemplateRenderingSupport = mixin.Mixin.create({
35263
35389
  /**
35264
35390
  Called on your view when it should push strings of HTML into a
@@ -35500,6 +35626,10 @@ enifed('ember-views/mixins/view_child_views_support', ['exports', 'ember-metal/c
35500
35626
 
35501
35627
  'use strict';
35502
35628
 
35629
+ /**
35630
+ @module ember
35631
+ @submodule ember-views
35632
+ */
35503
35633
  var childViewsProperty = computed.computed(function () {
35504
35634
  var childViews = this._childViews;
35505
35635
  var ret = native_array.A();
@@ -35638,6 +35768,10 @@ enifed('ember-views/mixins/view_context_support', ['exports', 'ember-metal/mixin
35638
35768
 
35639
35769
  'use strict';
35640
35770
 
35771
+ /**
35772
+ @module ember
35773
+ @submodule ember-views
35774
+ */
35641
35775
  var ViewContextSupport = mixin.Mixin.create({
35642
35776
  /**
35643
35777
  The object from which templates should access properties.
@@ -35900,10 +36034,18 @@ enifed('ember-views/mixins/visibility_support', ['exports', 'ember-metal/mixin',
35900
36034
 
35901
36035
  'use strict';
35902
36036
 
36037
+ /**
36038
+ @module ember
36039
+ @submodule ember-views
36040
+ */
35903
36041
  function K() {
35904
36042
  return this;
35905
36043
  }
35906
36044
 
36045
+ /**
36046
+ @class VisibilitySupport
36047
+ @namespace Ember
36048
+ */
35907
36049
  var VisibilitySupport = mixin.Mixin.create({
35908
36050
  /**
35909
36051
  If `false`, the view will appear hidden in DOM.
@@ -36110,7 +36252,7 @@ enifed('ember-views/streams/context_stream', ['exports', 'ember-metal/core', 'em
36110
36252
  'use strict';
36111
36253
 
36112
36254
  function ContextStream(view) {
36113
- Ember['default'].assert("ContextStream error: the argument is not a view", view && view.isView);
36255
+ Ember['default'].assert('ContextStream error: the argument is not a view', view && view.isView);
36114
36256
 
36115
36257
  this.init();
36116
36258
  this.view = view;
@@ -36124,10 +36266,10 @@ enifed('ember-views/streams/context_stream', ['exports', 'ember-metal/core', 'em
36124
36266
  _makeChildStream: function (key, _fullPath) {
36125
36267
  var stream;
36126
36268
 
36127
- if (key === "" || key === "this") {
36269
+ if (key === '' || key === 'this') {
36128
36270
  stream = this.view._baseContext;
36129
36271
  } else if (path_cache.isGlobal(key) && Ember['default'].lookup[key]) {
36130
- Ember['default'].deprecate("Global lookup of " + _fullPath + " from a Handlebars template is deprecated.");
36272
+ Ember['default'].deprecate('Global lookup of ' + _fullPath + ' from a Handlebars template is deprecated.');
36131
36273
  stream = new SimpleStream['default'](Ember['default'].lookup[key]);
36132
36274
  stream._isGlobal = true;
36133
36275
  } else if (key in this.view._keywords) {
@@ -36138,7 +36280,7 @@ enifed('ember-views/streams/context_stream', ['exports', 'ember-metal/core', 'em
36138
36280
 
36139
36281
  stream._isRoot = true;
36140
36282
 
36141
- if (key === "controller") {
36283
+ if (key === 'controller') {
36142
36284
  stream._isController = true;
36143
36285
  }
36144
36286
 
@@ -36154,8 +36296,8 @@ enifed('ember-views/streams/key_stream', ['exports', 'ember-metal/core', 'ember-
36154
36296
  'use strict';
36155
36297
 
36156
36298
  function KeyStream(source, key) {
36157
- Ember['default'].assert("KeyStream error: key must be a non-empty string", typeof key === "string" && key.length > 0);
36158
- Ember['default'].assert("KeyStream error: key must not have a '.'", key.indexOf(".") === -1);
36299
+ Ember['default'].assert('KeyStream error: key must be a non-empty string', typeof key === 'string' && key.length > 0);
36300
+ Ember['default'].assert('KeyStream error: key must not have a \'.\'', key.indexOf('.') === -1);
36159
36301
 
36160
36302
  this.init();
36161
36303
  this.source = source;
@@ -36175,11 +36317,11 @@ enifed('ember-views/streams/key_stream', ['exports', 'ember-metal/core', 'ember-
36175
36317
  var nextObj = utils.read(this.source);
36176
36318
 
36177
36319
  if (nextObj !== prevObj) {
36178
- if (prevObj && typeof prevObj === "object") {
36320
+ if (prevObj && typeof prevObj === 'object') {
36179
36321
  observer.removeObserver(prevObj, this.key, this, this._didChange);
36180
36322
  }
36181
36323
 
36182
- if (nextObj && typeof nextObj === "object") {
36324
+ if (nextObj && typeof nextObj === 'object') {
36183
36325
  observer.addObserver(nextObj, this.key, this, this._didChange);
36184
36326
  }
36185
36327
 
@@ -36198,7 +36340,7 @@ enifed('ember-views/streams/key_stream', ['exports', 'ember-metal/core', 'ember-
36198
36340
  },
36199
36341
 
36200
36342
  setSource: function (nextSource) {
36201
- Ember['default'].assert("KeyStream error: source must be an object", typeof nextSource === "object");
36343
+ Ember['default'].assert('KeyStream error: source must be an object', typeof nextSource === 'object');
36202
36344
 
36203
36345
  var prevSource = this.source;
36204
36346
 
@@ -36228,7 +36370,7 @@ enifed('ember-views/streams/key_stream', ['exports', 'ember-metal/core', 'ember-
36228
36370
  this.source.unsubscribe(this._didChange, this);
36229
36371
  }
36230
36372
 
36231
- if (this.obj && typeof this.obj === "object") {
36373
+ if (this.obj && typeof this.obj === 'object') {
36232
36374
  observer.removeObserver(this.obj, this.key, this, this._didChange);
36233
36375
  }
36234
36376
 
@@ -36620,8 +36762,8 @@ enifed('ember-views/system/ext', ['ember-metal/run_loop'], function (run) {
36620
36762
  @submodule ember-views
36621
36763
  */
36622
36764
 
36623
- run['default']._addQueue("render", "actions");
36624
- run['default']._addQueue("afterRender", "render");
36765
+ run['default']._addQueue('render', 'actions');
36766
+ run['default']._addQueue('afterRender', 'render');
36625
36767
 
36626
36768
  });
36627
36769
  enifed('ember-views/system/jquery', ['exports', 'ember-metal/core', 'ember-metal/enumerable_utils', 'ember-metal/environment'], function (exports, Ember, enumerable_utils, environment) {
@@ -36633,11 +36775,11 @@ enifed('ember-views/system/jquery', ['exports', 'ember-metal/core', 'ember-metal
36633
36775
  if (environment['default'].hasDOM) {
36634
36776
  // mainContext is set in `package/loader/lib/main.js` to the `this` context before entering strict mode
36635
36777
  jQuery = Ember['default'].imports && Ember['default'].imports.jQuery || mainContext && mainContext.jQuery; //jshint ignore:line
36636
- if (!jQuery && typeof eriuqer === "function") {
36637
- jQuery = eriuqer("jquery");
36778
+ if (!jQuery && typeof eriuqer === 'function') {
36779
+ jQuery = eriuqer('jquery');
36638
36780
  }
36639
36781
 
36640
- Ember['default'].assert("Ember Views require jQuery between 1.7 and 2.1", jQuery && (jQuery().jquery.match(/^((1\.(7|8|9|10|11))|(2\.(0|1)))(\.\d+)?(pre|rc\d?)?/) || Ember['default'].ENV.FORCE_JQUERY));
36782
+ Ember['default'].assert('Ember Views require jQuery between 1.7 and 2.1', jQuery && (jQuery().jquery.match(/^((1\.(7|8|9|10|11))|(2\.(0|1)))(\.\d+)?(pre|rc\d?)?/) || Ember['default'].ENV.FORCE_JQUERY));
36641
36783
 
36642
36784
  /**
36643
36785
  @module ember
@@ -36645,13 +36787,13 @@ enifed('ember-views/system/jquery', ['exports', 'ember-metal/core', 'ember-metal
36645
36787
  */
36646
36788
  if (jQuery) {
36647
36789
  // http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#dndevents
36648
- var dragEvents = ["dragstart", "drag", "dragenter", "dragleave", "dragover", "drop", "dragend"];
36790
+ var dragEvents = ['dragstart', 'drag', 'dragenter', 'dragleave', 'dragover', 'drop', 'dragend'];
36649
36791
 
36650
36792
  // Copies the `dataTransfer` property from a browser event object onto the
36651
36793
  // jQuery event object for the specified events
36652
36794
  enumerable_utils.forEach(dragEvents, function (eventName) {
36653
36795
  jQuery.event.fixHooks[eventName] = {
36654
- props: ["dataTransfer"]
36796
+ props: ['dataTransfer']
36655
36797
  };
36656
36798
  });
36657
36799
  }
@@ -36690,13 +36832,13 @@ enifed('ember-views/system/platform', ['exports', 'ember-metal/environment'], fu
36690
36832
  'use strict';
36691
36833
 
36692
36834
  var canSetNameOnInputs = environment['default'].hasDOM && (function () {
36693
- var div = document.createElement("div");
36694
- var el = document.createElement("input");
36835
+ var div = document.createElement('div');
36836
+ var el = document.createElement('input');
36695
36837
 
36696
- el.setAttribute("name", "foo");
36838
+ el.setAttribute('name', 'foo');
36697
36839
  div.appendChild(el);
36698
36840
 
36699
- return !!div.innerHTML.match("foo");
36841
+ return !!div.innerHTML.match('foo');
36700
36842
  })();
36701
36843
 
36702
36844
  exports.canSetNameOnInputs = canSetNameOnInputs;
@@ -37263,7 +37405,7 @@ enifed('ember-views/system/renderer', ['exports', 'ember-metal/core', 'ember-met
37263
37405
  EmberRenderer.prototype._super$constructor = Renderer['default'];
37264
37406
 
37265
37407
  EmberRenderer.prototype.scheduleRender = function EmberRenderer_scheduleRender(ctx, fn) {
37266
- return run['default'].scheduleOnce("render", ctx, fn);
37408
+ return run['default'].scheduleOnce('render', ctx, fn);
37267
37409
  };
37268
37410
 
37269
37411
  EmberRenderer.prototype.cancelRender = function EmberRenderer_cancelRender(id) {
@@ -37276,18 +37418,18 @@ enifed('ember-views/system/renderer', ['exports', 'ember-metal/core', 'ember-met
37276
37418
  // provided buffer operation (for example, `insertAfter` will
37277
37419
  // insert a new buffer after the "parent buffer").
37278
37420
  var tagName = view.tagName;
37279
- if (tagName !== null && typeof tagName === "object" && tagName.isDescriptor) {
37280
- tagName = property_get.get(view, "tagName");
37281
- Ember['default'].deprecate("In the future using a computed property to define tagName will not be permitted. That value will be respected, but changing it will not update the element.", !tagName);
37421
+ if (tagName !== null && typeof tagName === 'object' && tagName.isDescriptor) {
37422
+ tagName = property_get.get(view, 'tagName');
37423
+ Ember['default'].deprecate('In the future using a computed property to define tagName will not be permitted. That value will be respected, but changing it will not update the element.', !tagName);
37282
37424
  }
37283
37425
  var classNameBindings = view.classNameBindings;
37284
- var taglessViewWithClassBindings = tagName === "" && (classNameBindings && classNameBindings.length > 0);
37426
+ var taglessViewWithClassBindings = tagName === '' && (classNameBindings && classNameBindings.length > 0);
37285
37427
 
37286
37428
  if (tagName === null || tagName === undefined) {
37287
- tagName = "div";
37429
+ tagName = 'div';
37288
37430
  }
37289
37431
 
37290
- Ember['default'].assert("You cannot use `classNameBindings` on a tag-less view: " + view.toString(), !taglessViewWithClassBindings);
37432
+ Ember['default'].assert('You cannot use `classNameBindings` on a tag-less view: ' + view.toString(), !taglessViewWithClassBindings);
37291
37433
 
37292
37434
  var buffer = view.buffer = this.buffer;
37293
37435
  buffer.reset(tagName, contextualElement);
@@ -37296,7 +37438,7 @@ enifed('ember-views/system/renderer', ['exports', 'ember-metal/core', 'ember-met
37296
37438
  view.beforeRender(buffer);
37297
37439
  }
37298
37440
 
37299
- if (tagName !== "") {
37441
+ if (tagName !== '') {
37300
37442
  if (view.applyAttributesToBuffer) {
37301
37443
  view.applyAttributesToBuffer(buffer);
37302
37444
  }
@@ -37326,24 +37468,27 @@ enifed('ember-views/system/renderer', ['exports', 'ember-metal/core', 'ember-met
37326
37468
  };
37327
37469
 
37328
37470
  EmberRenderer.prototype.childViews = function childViews(view) {
37329
- return view._childViews;
37471
+ if (view._attrNodes && view._childViews) {
37472
+ return view._attrNodes.concat(view._childViews);
37473
+ }
37474
+ return view._attrNodes || view._childViews;
37330
37475
  };
37331
37476
 
37332
37477
  Renderer['default'].prototype.willCreateElement = function (view) {
37333
37478
  if (instrumentation.subscribers.length && view.instrumentDetails) {
37334
- view._instrumentEnd = instrumentation._instrumentStart("render." + view.instrumentName, function viewInstrumentDetails() {
37479
+ view._instrumentEnd = instrumentation._instrumentStart('render.' + view.instrumentName, function viewInstrumentDetails() {
37335
37480
  var details = {};
37336
37481
  view.instrumentDetails(details);
37337
37482
  return details;
37338
37483
  });
37339
37484
  }
37340
37485
  if (view._transitionTo) {
37341
- view._transitionTo("inBuffer");
37486
+ view._transitionTo('inBuffer');
37342
37487
  }
37343
37488
  }; // inBuffer
37344
37489
  Renderer['default'].prototype.didCreateElement = function (view) {
37345
37490
  if (view._transitionTo) {
37346
- view._transitionTo("hasElement");
37491
+ view._transitionTo('hasElement');
37347
37492
  }
37348
37493
  if (view._instrumentEnd) {
37349
37494
  view._instrumentEnd();
@@ -37352,18 +37497,18 @@ enifed('ember-views/system/renderer', ['exports', 'ember-metal/core', 'ember-met
37352
37497
  Renderer['default'].prototype.willInsertElement = function (view) {
37353
37498
  if (this._destinedForDOM) {
37354
37499
  if (view.trigger) {
37355
- view.trigger("willInsertElement");
37500
+ view.trigger('willInsertElement');
37356
37501
  }
37357
37502
  }
37358
37503
  }; // will place into DOM
37359
37504
  Renderer['default'].prototype.didInsertElement = function (view) {
37360
37505
  if (view._transitionTo) {
37361
- view._transitionTo("inDOM");
37506
+ view._transitionTo('inDOM');
37362
37507
  }
37363
37508
 
37364
37509
  if (this._destinedForDOM) {
37365
37510
  if (view.trigger) {
37366
- view.trigger("didInsertElement");
37511
+ view.trigger('didInsertElement');
37367
37512
  }
37368
37513
  }
37369
37514
  }; // inDOM // placed into DOM
@@ -37376,8 +37521,8 @@ enifed('ember-views/system/renderer', ['exports', 'ember-metal/core', 'ember-met
37376
37521
  view._willDestroyElement();
37377
37522
  }
37378
37523
  if (view.trigger) {
37379
- view.trigger("willDestroyElement");
37380
- view.trigger("willClearRender");
37524
+ view.trigger('willDestroyElement');
37525
+ view.trigger('willClearRender');
37381
37526
  }
37382
37527
  }
37383
37528
  };
@@ -37385,7 +37530,7 @@ enifed('ember-views/system/renderer', ['exports', 'ember-metal/core', 'ember-met
37385
37530
  Renderer['default'].prototype.didDestroyElement = function (view) {
37386
37531
  view.element = null;
37387
37532
  if (view._transitionTo) {
37388
- view._transitionTo("preRender");
37533
+ view._transitionTo('preRender');
37389
37534
  }
37390
37535
  }; // element destroyed so view.destroy shouldn't try to remove it removedFromDOM
37391
37536
 
@@ -37434,7 +37579,7 @@ enifed('ember-views/system/utils', ['exports'], function (exports) {
37434
37579
  }
37435
37580
 
37436
37581
  });
37437
- enifed('ember-views/views/bound_component_view', ['exports', 'ember-views/views/metamorph_view', 'ember-metal/streams/utils', 'ember-views/streams/utils', 'ember-htmlbars/system/merge-view-bindings', 'ember-metal/error', 'ember-views/views/container_view'], function (exports, metamorph_view, utils, streams__utils, mergeViewBindings, EmberError, ContainerView) {
37582
+ enifed('ember-views/views/bound_component_view', ['exports', 'ember-views/views/metamorph_view', 'ember-metal/streams/utils', 'ember-views/streams/utils', 'ember-htmlbars/system/merge-view-bindings', 'ember-metal/error', 'ember-views/views/container_view', 'ember-views/views/view'], function (exports, metamorph_view, utils, streams__utils, mergeViewBindings, EmberError, ContainerView, View) {
37438
37583
 
37439
37584
  'use strict';
37440
37585
 
@@ -37446,24 +37591,25 @@ enifed('ember-views/views/bound_component_view', ['exports', 'ember-views/views/
37446
37591
  exports['default'] = ContainerView['default'].extend(metamorph_view._Metamorph, {
37447
37592
  init: function () {
37448
37593
  this._super.apply(this, arguments);
37449
- var componentNameStream = this._boundComponentOptions.componentNameStream;
37450
- var container = this.container;
37451
- this.componentClassStream = utils.chain(componentNameStream, function () {
37452
- return streams__utils.readComponentFactory(componentNameStream, container);
37453
- });
37594
+ this.componentNameStream = this._boundComponentOptions.componentNameStream;
37454
37595
 
37455
- utils.subscribe(this.componentClassStream, this._updateBoundChildComponent, this);
37596
+ utils.subscribe(this.componentNameStream, this._updateBoundChildComponent, this);
37456
37597
  this._updateBoundChildComponent();
37457
37598
  },
37458
37599
  willDestroy: function () {
37459
- utils.unsubscribe(this.componentClassStream, this._updateBoundChildComponent, this);
37600
+ utils.unsubscribe(this.componentNameStream, this._updateBoundChildComponent, this);
37460
37601
  this._super.apply(this, arguments);
37461
37602
  },
37462
37603
  _updateBoundChildComponent: function () {
37463
37604
  this.replace(0, 1, [this._createNewComponent()]);
37464
37605
  },
37465
37606
  _createNewComponent: function () {
37466
- var componentClass = utils.read(this.componentClassStream);
37607
+ var componentName = utils.read(this.componentNameStream);
37608
+ if (!componentName) {
37609
+ return this.createChildView(View['default']);
37610
+ }
37611
+
37612
+ var componentClass = streams__utils.readComponentFactory(componentName, this.container);
37467
37613
  if (!componentClass) {
37468
37614
  throw new EmberError['default']("HTMLBars error: Could not find component named \"" + utils.read(this._boundComponentOptions.componentNameStream) + "\".");
37469
37615
  }
@@ -37472,7 +37618,7 @@ enifed('ember-views/views/bound_component_view', ['exports', 'ember-views/views/
37472
37618
 
37473
37619
  var prop;
37474
37620
  for (prop in hash) {
37475
- if (prop === "_boundComponentOptions" || prop === "componentClassStream") {
37621
+ if (prop === "_boundComponentOptions" || prop === "componentNameStream") {
37476
37622
  continue;
37477
37623
  }
37478
37624
  hashForComponent[prop] = hash[prop];
@@ -37767,27 +37913,25 @@ enifed('ember-views/views/collection_view', ['exports', 'ember-metal/core', 'emb
37767
37913
 
37768
37914
  view = this.createChildView(itemViewClass, itemViewProps);
37769
37915
 
37770
-
37771
- if (this.blockParams > 1) {
37772
- view._blockArguments = [item, view.getStream("_view.contentIndex")];
37773
- } else if (this.blockParams === 1) {
37774
- view._blockArguments = [item];
37775
- }
37776
-
37916
+ if (this.blockParams > 0) {
37917
+ view._blockArguments = [item];
37918
+ }
37919
+ if (this.blockParams > 1) {
37920
+ view._blockArguments.push(view.getStream("_view.contentIndex"));
37921
+ }
37922
+
37777
37923
  addedViews.push(view);
37778
37924
  }
37779
37925
 
37780
37926
  this.replace(start, 0, addedViews);
37781
37927
 
37782
-
37783
- if (this.blockParams > 1) {
37784
- var childViews = this._childViews;
37785
- for (idx = start + added; idx < len; idx++) {
37786
- view = childViews[idx];
37787
- property_set.set(view, "contentIndex", idx);
37788
- }
37928
+ if (this.blockParams > 1) {
37929
+ var childViews = this._childViews;
37930
+ for (idx = start + added; idx < len; idx++) {
37931
+ view = childViews[idx];
37932
+ property_set.set(view, "contentIndex", idx);
37789
37933
  }
37790
-
37934
+ }
37791
37935
  } else {
37792
37936
  emptyView = property_get.get(this, "emptyView");
37793
37937
 
@@ -37906,19 +38050,18 @@ enifed('ember-views/views/component', ['exports', 'ember-metal/core', 'ember-vie
37906
38050
  @deprecated
37907
38051
  @property template
37908
38052
  */
37909
- template: computed.computed({
38053
+ template: computed.computed("templateName", {
37910
38054
  get: function () {
37911
38055
  var templateName = property_get.get(this, "templateName");
37912
38056
  var template = this.templateForName(templateName, "template");
37913
38057
 
37914
38058
  Ember['default'].assert("You specified the templateName " + templateName + " for " + this + ", but it did not exist.", !templateName || !!template);
37915
-
37916
38059
  return template || property_get.get(this, "defaultTemplate");
37917
38060
  },
37918
38061
  set: function (key, value) {
37919
38062
  return value;
37920
38063
  }
37921
- }).property("templateName"),
38064
+ }),
37922
38065
 
37923
38066
  /**
37924
38067
  Specifying a components `templateName` is deprecated without also
@@ -37958,10 +38101,10 @@ enifed('ember-views/views/component', ['exports', 'ember-metal/core', 'ember-vie
37958
38101
  @type Ember.Controller
37959
38102
  @default null
37960
38103
  */
37961
- targetObject: computed.computed(function (key) {
38104
+ targetObject: computed.computed("_parentView", function (key) {
37962
38105
  var parentView = this._parentView;
37963
38106
  return parentView ? property_get.get(parentView, "controller") : null;
37964
- }).property("_parentView"),
38107
+ }),
37965
38108
 
37966
38109
  /**
37967
38110
  Triggers a named action on the controller context where the component is used if
@@ -38058,8 +38201,8 @@ enifed('ember-views/views/component', ['exports', 'ember-metal/core', 'ember-vie
38058
38201
  },
38059
38202
 
38060
38203
  send: function (actionName) {
38061
- for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
38062
- args[_key - 1] = arguments[_key];
38204
+ for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
38205
+ args[_key2 - 1] = arguments[_key2];
38063
38206
  }
38064
38207
 
38065
38208
  var target;
@@ -38743,7 +38886,7 @@ enifed('ember-views/views/metamorph_view', ['exports', 'ember-metal/core', 'embe
38743
38886
  exports._Metamorph = _Metamorph;
38744
38887
 
38745
38888
  });
38746
- enifed('ember-views/views/select', ['exports', 'ember-metal/enumerable_utils', 'ember-metal/property_get', 'ember-metal/property_set', 'ember-views/views/view', 'ember-views/views/collection_view', 'ember-metal/utils', 'ember-metal/is_none', 'ember-metal/computed', 'ember-runtime/system/native_array', 'ember-metal/mixin', 'ember-metal/properties', 'ember-metal/run_loop', 'ember-htmlbars/templates/select'], function (exports, enumerable_utils, property_get, property_set, View, CollectionView, utils, isNone, computed, native_array, mixin, properties, run, htmlbarsTemplate) {
38889
+ enifed('ember-views/views/select', ['exports', 'ember-metal/enumerable_utils', 'ember-metal/property_get', 'ember-metal/property_set', 'ember-views/views/view', 'ember-views/views/collection_view', 'ember-metal/utils', 'ember-metal/is_none', 'ember-metal/computed', 'ember-runtime/system/native_array', 'ember-metal/mixin', 'ember-metal/properties', 'ember-htmlbars/templates/select', 'ember-htmlbars/templates/select-option'], function (exports, enumerable_utils, property_get, property_set, View, CollectionView, utils, isNone, computed, native_array, mixin, properties, htmlbarsTemplate, selectOptionDefaultTemplate) {
38747
38890
 
38748
38891
  'use strict';
38749
38892
 
@@ -38754,27 +38897,13 @@ enifed('ember-views/views/select', ['exports', 'ember-metal/enumerable_utils', '
38754
38897
 
38755
38898
  var defaultTemplate = htmlbarsTemplate['default'];
38756
38899
 
38757
- var selectOptionDefaultTemplate = {
38758
- isHTMLBars: true,
38759
- revision: "Ember@1.12.0-beta.1",
38760
- render: function (context, env, contextualElement) {
38761
- var lazyValue = context.getStream("view.label");
38762
-
38763
- lazyValue.subscribe(context._wrapAsScheduled(function () {
38764
- run['default'].scheduleOnce("render", context, "rerender");
38765
- }));
38766
-
38767
- return lazyValue.value();
38768
- }
38769
- };
38770
-
38771
38900
  var SelectOption = View['default'].extend({
38772
38901
  instrumentDisplay: "Ember.SelectOption",
38773
38902
 
38774
38903
  tagName: "option",
38775
38904
  attributeBindings: ["value", "selected"],
38776
38905
 
38777
- defaultTemplate: selectOptionDefaultTemplate,
38906
+ defaultTemplate: selectOptionDefaultTemplate['default'],
38778
38907
 
38779
38908
  init: function () {
38780
38909
  this.labelPathDidChange();
@@ -38839,7 +38968,7 @@ enifed('ember-views/views/select', ['exports', 'ember-metal/enumerable_utils', '
38839
38968
  Example:
38840
38969
 
38841
38970
  ```javascript
38842
- App.ApplicationController = Ember.ObjectController.extend({
38971
+ App.ApplicationController = Ember.Controller.extend({
38843
38972
  names: ["Yehuda", "Tom"]
38844
38973
  });
38845
38974
  ```
@@ -38861,7 +38990,7 @@ enifed('ember-views/views/select', ['exports', 'ember-metal/enumerable_utils', '
38861
38990
  `value` property:
38862
38991
 
38863
38992
  ```javascript
38864
- App.ApplicationController = Ember.ObjectController.extend({
38993
+ App.ApplicationController = Ember.Controller.extend({
38865
38994
  selectedName: 'Tom',
38866
38995
  names: ["Yehuda", "Tom"]
38867
38996
  });
@@ -38898,7 +39027,7 @@ enifed('ember-views/views/select', ['exports', 'ember-metal/enumerable_utils', '
38898
39027
  element's text. Both paths must reference each object itself as `content`:
38899
39028
 
38900
39029
  ```javascript
38901
- App.ApplicationController = Ember.ObjectController.extend({
39030
+ App.ApplicationController = Ember.Controller.extend({
38902
39031
  programmers: [
38903
39032
  {firstName: "Yehuda", id: 1},
38904
39033
  {firstName: "Tom", id: 2}
@@ -38926,7 +39055,7 @@ enifed('ember-views/views/select', ['exports', 'ember-metal/enumerable_utils', '
38926
39055
  can be bound to a property on another object:
38927
39056
 
38928
39057
  ```javascript
38929
- App.ApplicationController = Ember.ObjectController.extend({
39058
+ App.ApplicationController = Ember.Controller.extend({
38930
39059
  programmers: [
38931
39060
  {firstName: "Yehuda", id: 1},
38932
39061
  {firstName: "Tom", id: 2}
@@ -38969,7 +39098,7 @@ enifed('ember-views/views/select', ['exports', 'ember-metal/enumerable_utils', '
38969
39098
  var yehuda = {firstName: "Yehuda", id: 1, bff4eva: 'tom'}
38970
39099
  var tom = {firstName: "Tom", id: 2, bff4eva: 'yehuda'};
38971
39100
 
38972
- App.ApplicationController = Ember.ObjectController.extend({
39101
+ App.ApplicationController = Ember.Controller.extend({
38973
39102
  selectedPerson: tom,
38974
39103
  programmers: [ yehuda, tom ]
38975
39104
  });
@@ -39003,7 +39132,7 @@ enifed('ember-views/views/select', ['exports', 'ember-metal/enumerable_utils', '
39003
39132
  results in there being no `<option>` with a `selected` attribute:
39004
39133
 
39005
39134
  ```javascript
39006
- App.ApplicationController = Ember.ObjectController.extend({
39135
+ App.ApplicationController = Ember.Controller.extend({
39007
39136
  selectedProgrammer: null,
39008
39137
  programmers: ["Yehuda", "Tom"]
39009
39138
  });
@@ -39032,7 +39161,7 @@ enifed('ember-views/views/select', ['exports', 'ember-metal/enumerable_utils', '
39032
39161
  with the `prompt` option:
39033
39162
 
39034
39163
  ```javascript
39035
- App.ApplicationController = Ember.ObjectController.extend({
39164
+ App.ApplicationController = Ember.Controller.extend({
39036
39165
  selectedProgrammer: null,
39037
39166
  programmers: [ "Yehuda", "Tom" ]
39038
39167
  });
@@ -39635,14 +39764,8 @@ enifed('ember-views/views/states/has_element', ['exports', 'ember-views/views/st
39635
39764
  if (view._root._morph && !view._elementInserted) {
39636
39765
  throw new EmberError['default']("Something you did caused a view to re-render after it rendered but before it was inserted into the DOM.");
39637
39766
  }
39638
- // TODO: should be scheduled with renderer
39639
- run['default'].scheduleOnce("render", function () {
39640
- if (view.isDestroying) {
39641
- return;
39642
- }
39643
39767
 
39644
- view._renderer.renderTree(view, view._parentView);
39645
- });
39768
+ run['default'].scheduleOnce("render", view, "_rerender");
39646
39769
  },
39647
39770
 
39648
39771
  // once the view is already in the DOM, destroying it removes it
@@ -39719,12 +39842,12 @@ enifed('ember-views/views/states/in_buffer', ['exports', 'ember-views/views/stat
39719
39842
 
39720
39843
  appendAttr: function (view, attrNode) {
39721
39844
  var buffer = view.buffer;
39722
- var _childViews = view._childViews;
39845
+ var _attrNodes = view._attrNodes;
39723
39846
 
39724
- if (!_childViews.length) {
39725
- _childViews = view._childViews = _childViews.slice();
39847
+ if (!_attrNodes.length) {
39848
+ _attrNodes = view._attrNodes = _attrNodes.slice();
39726
39849
  }
39727
- _childViews.push(attrNode);
39850
+ _attrNodes.push(attrNode);
39728
39851
 
39729
39852
  if (!attrNode._morph) {
39730
39853
  Ember.assert("bound attributes that do not have a morph must have a buffer", !!buffer);
@@ -39772,12 +39895,12 @@ enifed('ember-views/views/states/in_dom', ['exports', 'ember-metal/platform/crea
39772
39895
  },
39773
39896
 
39774
39897
  appendAttr: function (view, attrNode) {
39775
- var _childViews = view._childViews;
39898
+ var _attrNodes = view._attrNodes;
39776
39899
 
39777
- if (!_childViews.length) {
39778
- _childViews = view._childViews = _childViews.slice();
39900
+ if (!_attrNodes.length) {
39901
+ _attrNodes = view._attrNodes = _attrNodes.slice();
39779
39902
  }
39780
- _childViews.push(attrNode);
39903
+ _attrNodes.push(attrNode);
39781
39904
 
39782
39905
  attrNode._parentView = view;
39783
39906
  view.renderer.appendAttrTo(attrNode, view.element, attrNode.attrName);
@@ -39969,7 +40092,7 @@ enifed('ember-views/views/text_field', ['exports', 'ember-metal/core', 'ember-me
39969
40092
  });
39970
40093
 
39971
40094
  });
39972
- enifed('ember-views/views/view', ['exports', 'ember-metal/core', 'ember-runtime/mixins/evented', 'ember-runtime/system/object', 'ember-metal/error', 'ember-metal/property_get', 'ember-metal/run_loop', 'ember-metal/observer', 'ember-metal/utils', 'ember-metal/computed', 'ember-metal/mixin', 'ember-metal/deprecate_property', 'ember-metal/property_events', 'ember-views/system/jquery', 'ember-views/system/ext', 'ember-views/views/core_view', 'ember-views/mixins/view_stream_support', 'ember-views/mixins/view_keyword_support', 'ember-views/mixins/view_context_support', 'ember-views/mixins/view_child_views_support', 'ember-views/mixins/view_state_support', 'ember-views/mixins/template_rendering_support', 'ember-views/mixins/class_names_support', 'ember-views/mixins/attribute_bindings_support', 'ember-views/mixins/legacy_view_support', 'ember-views/mixins/instrumentation_support', 'ember-views/mixins/visibility_support'], function (exports, Ember, Evented, EmberObject, EmberError, property_get, run, observer, utils, computed, mixin, deprecate_property, property_events, jQuery, __dep13__, CoreView, ViewStreamSupport, ViewKeywordSupport, ViewContextSupport, ViewChildViewsSupport, ViewStateSupport, TemplateRenderingSupport, ClassNamesSupport, AttributeBindingsSupport, LegacyViewSupport, InstrumentationSupport, VisibilitySupport) {
40095
+ enifed('ember-views/views/view', ['exports', 'ember-metal/core', 'ember-runtime/mixins/evented', 'ember-runtime/system/object', 'ember-metal/error', 'ember-metal/property_get', 'ember-metal/run_loop', 'ember-metal/observer', 'ember-metal/utils', 'ember-metal/computed', 'ember-metal/mixin', 'ember-metal/deprecate_property', 'ember-metal/property_events', 'ember-views/system/jquery', 'ember-views/system/ext', 'ember-views/views/core_view', 'ember-views/mixins/view_stream_support', 'ember-views/mixins/view_keyword_support', 'ember-views/mixins/view_context_support', 'ember-views/mixins/view_child_views_support', 'ember-views/mixins/view_state_support', 'ember-views/mixins/template_rendering_support', 'ember-views/mixins/class_names_support', 'ember-views/mixins/attribute_bindings_support', 'ember-views/mixins/legacy_view_support', 'ember-views/mixins/instrumentation_support', 'ember-views/mixins/visibility_support'], function (exports, Ember, Evented, EmberObject, EmberError, property_get, run, ember_metal__observer, utils, computed, mixin, deprecate_property, property_events, jQuery, __dep13__, CoreView, ViewStreamSupport, ViewKeywordSupport, ViewContextSupport, ViewChildViewsSupport, ViewStateSupport, TemplateRenderingSupport, ClassNamesSupport, AttributeBindingsSupport, LegacyViewSupport, InstrumentationSupport, VisibilitySupport) {
39973
40096
 
39974
40097
  'use strict';
39975
40098
 
@@ -40603,6 +40726,14 @@ enifed('ember-views/views/view', ['exports', 'ember-metal/core', 'ember-runtime/
40603
40726
  @class View
40604
40727
  @namespace Ember
40605
40728
  @extends Ember.CoreView
40729
+ @uses Ember.ViewContextSupport
40730
+ @uses Ember.ViewChildViewsSupport
40731
+ @uses Ember.TemplateRenderingSupport
40732
+ @uses Ember.ClassNamesSupport
40733
+ @uses Ember.AttributeBindingsSupport
40734
+ @uses Ember.LegacyViewSupport
40735
+ @uses Ember.InstrumentationSupport
40736
+ @uses Ember.VisibilitySupport
40606
40737
  */
40607
40738
  // jscs:disable validateIndentation
40608
40739
  var View = CoreView['default'].extend(ViewStreamSupport['default'], ViewKeywordSupport['default'], ViewContextSupport['default'], ViewChildViewsSupport['default'], ViewStateSupport['default'], TemplateRenderingSupport['default'], ClassNamesSupport['default'], AttributeBindingsSupport['default'], LegacyViewSupport['default'], InstrumentationSupport['default'], VisibilitySupport['default'], {
@@ -40675,15 +40806,21 @@ enifed('ember-views/views/view', ['exports', 'ember-metal/core', 'ember-runtime/
40675
40806
  on a subclass.
40676
40807
  @property layout
40677
40808
  @type Function
40678
- */
40679
- layout: computed.computed(function (key) {
40680
- var layoutName = property_get.get(this, "layoutName");
40681
- var layout = this.templateForName(layoutName, "layout");
40809
+ */
40810
+ layout: computed.computed("layoutName", {
40811
+ get: function (key) {
40812
+ var layoutName = property_get.get(this, "layoutName");
40813
+ var layout = this.templateForName(layoutName, "layout");
40682
40814
 
40683
- Ember['default'].assert("You specified the layoutName " + layoutName + " for " + this + ", but it did not exist.", !layoutName || !!layout);
40815
+ Ember['default'].assert("You specified the layoutName " + layoutName + " for " + this + ", but it did not exist.", !layoutName || !!layout);
40684
40816
 
40685
- return layout || property_get.get(this, "defaultLayout");
40686
- }).property("layoutName"),
40817
+ return layout || property_get.get(this, "defaultLayout");
40818
+ },
40819
+
40820
+ set: function (key, value) {
40821
+ return value;
40822
+ }
40823
+ }),
40687
40824
 
40688
40825
  _yield: function (context, options, morph) {
40689
40826
  var template = property_get.get(this, "template");
@@ -40832,6 +40969,19 @@ enifed('ember-views/views/view', ['exports', 'ember-metal/core', 'ember-runtime/
40832
40969
  return this.currentState.rerender(this);
40833
40970
  },
40834
40971
 
40972
+ /*
40973
+ * @private
40974
+ *
40975
+ * @method _rerender
40976
+ */
40977
+ _rerender: function () {
40978
+ if (this.isDestroying || this.isDestroyed) {
40979
+ return;
40980
+ }
40981
+
40982
+ this._renderer.renderTree(this, this._parentView);
40983
+ },
40984
+
40835
40985
  /**
40836
40986
  Given a property name, returns a dasherized version of that
40837
40987
  property name if the property evaluates to a non-falsy value.
@@ -41022,7 +41172,17 @@ enifed('ember-views/views/view', ['exports', 'ember-metal/core', 'ember-runtime/
41022
41172
  ```
41023
41173
  If not manually set a default value will be provided by the framework.
41024
41174
  Once rendered an element's `elementId` is considered immutable and you
41025
- should never change it.
41175
+ should never change it. If you need to compute a dynamic value for the
41176
+ `elementId`, you should do this when the component or element is being
41177
+ instantiated:
41178
+ ```javascript
41179
+ export default Ember.Component.extend({
41180
+ setElementId: function() {
41181
+ var index = this.get('index');
41182
+ this.set('elementId', 'component-id' + index);
41183
+ }.on('init')
41184
+ });
41185
+ ```
41026
41186
  @property elementId
41027
41187
  @type String
41028
41188
  */
@@ -41301,10 +41461,10 @@ enifed('ember-views/views/view', ['exports', 'ember-metal/core', 'ember-runtime/
41301
41461
 
41302
41462
  var scheduledObserver = this._wrapAsScheduled(observer);
41303
41463
 
41304
- observer.addObserver(root, path, target, scheduledObserver);
41464
+ ember_metal__observer.addObserver(root, path, target, scheduledObserver);
41305
41465
 
41306
41466
  this.one("willClearRender", function () {
41307
- observer.removeObserver(root, path, target, scheduledObserver);
41467
+ ember_metal__observer.removeObserver(root, path, target, scheduledObserver);
41308
41468
  });
41309
41469
  },
41310
41470