ember-source 2.12.0.beta.3 → 2.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9aa0f3a49fd3afec1f4ec0971bfb36797ef66790
4
- data.tar.gz: 1b1a42475991461b5d4f37a023055dd7eba10f3b
3
+ metadata.gz: e20f63e7ae0e225765bcf45db4e30d2772a5da3d
4
+ data.tar.gz: 400bf98bd04c88a91896fc772294bae7858d6c3d
5
5
  SHA512:
6
- metadata.gz: d5c985994b4aa873f8e38e5891d160aa8cdce41b859920214cc777abe1efc230d1c2c3e4a213090ba28fddcb3e29eee7050e937319d7b744d1d91255192ad616
7
- data.tar.gz: c5d38b68cddeb55320c9fdcc9128c776737ebe7ace23831fbb7e543187c7e1c2898e75de0c9eee62f4af6574e637cfb1f3d6a2fa8db91b9125ee9b37d3ef033d
6
+ metadata.gz: 815d7664118ac234a0e4b5a77b3f0a91885a9f8b4c9c35e3101c956a79f02c6c5dce2543b46ff5b1b67d6ec8adbaa1b109ac908edee4ad91ab251fa3a6755069
7
+ data.tar.gz: cf34b721b9a0f0feee2baadc7e04af70e21b1cfaa6055fc01b7764b5f799fed8ec90c3a461dacf4b89748e573804814bb2713b91dccaf64d995d1bbd2ffb1ec1
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.12.0.beta.3
1
+ 2.12.0
@@ -6,7 +6,7 @@
6
6
  * Portions Copyright 2008-2011 Apple Inc. All rights reserved.
7
7
  * @license Licensed under MIT license
8
8
  * See https://raw.github.com/emberjs/ember.js/master/LICENSE
9
- * @version 2.12.0-beta.3
9
+ * @version 2.12.0
10
10
  */
11
11
 
12
12
  var enifed, requireModule, Ember;
@@ -1221,6 +1221,7 @@ enifed('container/container', ['exports', 'ember-utils', 'ember-environment', 'e
1221
1221
  this.owner = options && options.owner ? options.owner : null;
1222
1222
  this.cache = _emberUtils.dictionary(options && options.cache ? options.cache : null);
1223
1223
  this.factoryCache = _emberUtils.dictionary(options && options.factoryCache ? options.factoryCache : null);
1224
+ this.factoryManagerCache = _emberUtils.dictionary(options && options.factoryManagerCache ? options.factoryManagerCache : null);
1224
1225
  this.validationCache = _emberUtils.dictionary(options && options.validationCache ? options.validationCache : null);
1225
1226
  this._fakeContainerToInject = buildFakeContainerWithDeprecations(this);
1226
1227
  this[CONTAINER_OVERRIDE] = undefined;
@@ -1422,6 +1423,7 @@ enifed('container/container', ['exports', 'ember-utils', 'ember-environment', 'e
1422
1423
  var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
1423
1424
 
1424
1425
  var normalizedName = this.registry.normalize(fullName);
1426
+
1425
1427
  _emberMetal.assert('fullName must be a proper full name', this.registry.validateFullName(normalizedName));
1426
1428
 
1427
1429
  if (options.source) {
@@ -1432,6 +1434,12 @@ enifed('container/container', ['exports', 'ember-utils', 'ember-environment', 'e
1432
1434
  }
1433
1435
  }
1434
1436
 
1437
+ var cached = this.factoryManagerCache[normalizedName];
1438
+
1439
+ if (cached) {
1440
+ return cached;
1441
+ }
1442
+
1435
1443
  var factory = this.registry.resolve(normalizedName);
1436
1444
 
1437
1445
  if (factory === undefined) {
@@ -1444,6 +1452,7 @@ enifed('container/container', ['exports', 'ember-utils', 'ember-environment', 'e
1444
1452
  manager = wrapManagerInDeprecationProxy(manager);
1445
1453
  });
1446
1454
 
1455
+ this.factoryManagerCache[normalizedName] = manager;
1447
1456
  return manager;
1448
1457
  };
1449
1458
  }
@@ -1698,7 +1707,7 @@ enifed('container/container', ['exports', 'ember-utils', 'ember-environment', 'e
1698
1707
  obj = factory.create(_emberUtils.assign({}, injections, props));
1699
1708
 
1700
1709
  // TODO - remove when Ember reaches v3.0.0
1701
- if (!Object.isFrozen(obj) && 'container' in obj) {
1710
+ if (!Object.isFrozen(obj)) {
1702
1711
  injectDeprecatedContainer(obj, container);
1703
1712
  }
1704
1713
  }
@@ -1720,6 +1729,9 @@ enifed('container/container', ['exports', 'ember-utils', 'ember-environment', 'e
1720
1729
 
1721
1730
  // TODO - remove when Ember reaches v3.0.0
1722
1731
  function injectDeprecatedContainer(object, container) {
1732
+ if ('container' in object) {
1733
+ return;
1734
+ }
1723
1735
  Object.defineProperty(object, 'container', {
1724
1736
  configurable: true,
1725
1737
  enumerable: false,
@@ -1823,6 +1835,7 @@ enifed('container/container', ['exports', 'ember-utils', 'ember-environment', 'e
1823
1835
  this.class = factory;
1824
1836
  this.fullName = fullName;
1825
1837
  this.normalizedName = normalizedName;
1838
+ this.madeToString = undefined;
1826
1839
  }
1827
1840
 
1828
1841
  FactoryManager.prototype.create = function create() {
@@ -1833,7 +1846,7 @@ enifed('container/container', ['exports', 'ember-utils', 'ember-environment', 'e
1833
1846
  var injections = injectionsFor(this.container, this.normalizedName);
1834
1847
  var props = _emberUtils.assign({}, injections, options);
1835
1848
 
1836
- props[_emberUtils.NAME_KEY] = this.container.registry.makeToString(this.class, this.fullName);
1849
+ props[_emberUtils.NAME_KEY] = this.madeToString || (this.madeToString = this.container.registry.makeToString(this.class, this.fullName));
1837
1850
 
1838
1851
  _emberMetal.runInDebug(function () {
1839
1852
  var lazyInjections = undefined;
@@ -1853,8 +1866,9 @@ enifed('container/container', ['exports', 'ember-utils', 'ember-environment', 'e
1853
1866
  throw new Error('Failed to create an instance of \'' + this.normalizedName + '\'. Most likely an improperly defined class or' + ' an invalid module export.');
1854
1867
  }
1855
1868
 
1856
- if (this.class.prototype) {
1857
- injectDeprecatedContainer(this.class.prototype, this.container);
1869
+ var prototype = this.class.prototype;
1870
+ if (prototype) {
1871
+ injectDeprecatedContainer(prototype, this.container);
1858
1872
  }
1859
1873
 
1860
1874
  return this.class.create(props);
@@ -1949,7 +1963,7 @@ enifed('container/registry', ['exports', 'ember-utils', 'ember-metal', 'containe
1949
1963
  this._factoryTypeInjections = _emberUtils.dictionary(null);
1950
1964
  this._factoryInjections = _emberUtils.dictionary(null);
1951
1965
 
1952
- this._localLookupCache = new _emberUtils.EmptyObject();
1966
+ this._localLookupCache = Object.create(null);
1953
1967
  this._normalizeCache = _emberUtils.dictionary(null);
1954
1968
  this._resolveCache = _emberUtils.dictionary(null);
1955
1969
  this._failCache = _emberUtils.dictionary(null);
@@ -2102,7 +2116,7 @@ enifed('container/registry', ['exports', 'ember-utils', 'ember-metal', 'containe
2102
2116
 
2103
2117
  var normalizedName = this.normalize(fullName);
2104
2118
 
2105
- this._localLookupCache = new _emberUtils.EmptyObject();
2119
+ this._localLookupCache = Object.create(null);
2106
2120
 
2107
2121
  delete this.registrations[normalizedName];
2108
2122
  delete this._resolveCache[normalizedName];
@@ -2644,7 +2658,7 @@ enifed('container/registry', ['exports', 'ember-utils', 'ember-metal', 'containe
2644
2658
  var normalizedNameCache = cache[normalizedName];
2645
2659
 
2646
2660
  if (!normalizedNameCache) {
2647
- normalizedNameCache = cache[normalizedName] = new _emberUtils.EmptyObject();
2661
+ normalizedNameCache = cache[normalizedName] = Object.create(null);
2648
2662
  }
2649
2663
 
2650
2664
  var cached = normalizedNameCache[normalizedSource];
@@ -3611,7 +3625,7 @@ enifed('ember-metal/binding', ['exports', 'ember-utils', 'ember-console', 'ember
3611
3625
 
3612
3626
  exports.Binding = Binding;
3613
3627
  });
3614
- enifed('ember-metal/cache', ['exports', 'ember-utils', 'ember-metal/meta'], function (exports, _emberUtils, _emberMetalMeta) {
3628
+ enifed('ember-metal/cache', ['exports', 'ember-metal/meta'], function (exports, _emberMetalMeta) {
3615
3629
  'use strict';
3616
3630
 
3617
3631
  var Cache = (function () {
@@ -3674,7 +3688,7 @@ enifed('ember-metal/cache', ['exports', 'ember-utils', 'ember-metal/meta'], func
3674
3688
 
3675
3689
  var DefaultStore = (function () {
3676
3690
  function DefaultStore() {
3677
- this.data = new _emberUtils.EmptyObject();
3691
+ this.data = Object.create(null);
3678
3692
  }
3679
3693
 
3680
3694
  DefaultStore.prototype.get = function get(key) {
@@ -3686,13 +3700,13 @@ enifed('ember-metal/cache', ['exports', 'ember-utils', 'ember-metal/meta'], func
3686
3700
  };
3687
3701
 
3688
3702
  DefaultStore.prototype.clear = function clear() {
3689
- this.data = new _emberUtils.EmptyObject();
3703
+ this.data = Object.create(null);
3690
3704
  };
3691
3705
 
3692
3706
  return DefaultStore;
3693
3707
  })();
3694
3708
  });
3695
- enifed('ember-metal/chains', ['exports', 'ember-utils', 'ember-metal/property_get', 'ember-metal/meta', 'ember-metal/watch_key', 'ember-metal/computed', 'ember-metal/watch_path'], function (exports, _emberUtils, _emberMetalProperty_get, _emberMetalMeta, _emberMetalWatch_key, _emberMetalComputed, _emberMetalWatch_path) {
3709
+ enifed('ember-metal/chains', ['exports', 'ember-metal/property_get', 'ember-metal/meta', 'ember-metal/watch_key', 'ember-metal/computed', 'ember-metal/watch_path'], function (exports, _emberMetalProperty_get, _emberMetalMeta, _emberMetalWatch_key, _emberMetalComputed, _emberMetalWatch_path) {
3696
3710
  'use strict';
3697
3711
 
3698
3712
  exports.finishChains = finishChains;
@@ -3716,7 +3730,7 @@ enifed('ember-metal/chains', ['exports', 'ember-utils', 'ember-metal/property_ge
3716
3730
  // chain nodes that reference a key in this obj by key
3717
3731
  // we only create ChainWatchers when we are going to add them
3718
3732
  // so create this upfront
3719
- this.chains = new _emberUtils.EmptyObject();
3733
+ this.chains = Object.create(null);
3720
3734
  }
3721
3735
 
3722
3736
  ChainWatchers.prototype.add = function add(key, node) {
@@ -3931,7 +3945,7 @@ enifed('ember-metal/chains', ['exports', 'ember-utils', 'ember-metal/property_ge
3931
3945
  var chains = this._chains;
3932
3946
  var node = undefined;
3933
3947
  if (chains === undefined) {
3934
- chains = this._chains = new _emberUtils.EmptyObject();
3948
+ chains = this._chains = Object.create(null);
3935
3949
  } else {
3936
3950
  node = chains[key];
3937
3951
  }
@@ -6288,10 +6302,10 @@ enifed('ember-metal/map', ['exports', 'ember-utils'], function (exports, _emberU
6288
6302
  }
6289
6303
 
6290
6304
  function copyNull(obj) {
6291
- var output = new _emberUtils.EmptyObject();
6305
+ var output = Object.create(null);
6292
6306
 
6293
6307
  for (var prop in obj) {
6294
- // hasOwnPropery is not needed because obj is new EmptyObject();
6308
+ // hasOwnPropery is not needed because obj is Object.create(null);
6295
6309
  output[prop] = obj[prop];
6296
6310
  }
6297
6311
 
@@ -6347,7 +6361,7 @@ enifed('ember-metal/map', ['exports', 'ember-utils'], function (exports, _emberU
6347
6361
  @private
6348
6362
  */
6349
6363
  clear: function () {
6350
- this.presenceSet = new _emberUtils.EmptyObject();
6364
+ this.presenceSet = Object.create(null);
6351
6365
  this.list = [];
6352
6366
  this.size = 0;
6353
6367
  },
@@ -6503,7 +6517,7 @@ enifed('ember-metal/map', ['exports', 'ember-utils'], function (exports, _emberU
6503
6517
  if (this instanceof Map) {
6504
6518
  this._keys = OrderedSet.create();
6505
6519
  this._keys._silenceRemoveDeprecation = true;
6506
- this._values = new _emberUtils.EmptyObject();
6520
+ this._values = Object.create(null);
6507
6521
  this.size = 0;
6508
6522
  } else {
6509
6523
  missingNew('Map');
@@ -6659,7 +6673,7 @@ enifed('ember-metal/map', ['exports', 'ember-utils'], function (exports, _emberU
6659
6673
  */
6660
6674
  clear: function () {
6661
6675
  this._keys.clear();
6662
- this._values = new _emberUtils.EmptyObject();
6676
+ this._values = Object.create(null);
6663
6677
  this.size = 0;
6664
6678
  },
6665
6679
 
@@ -6989,14 +7003,15 @@ enifed('ember-metal/meta', ['exports', 'ember-utils', 'ember-metal/features', 'e
6989
7003
  };
6990
7004
 
6991
7005
  Meta.prototype._getOrCreateOwnMap = function _getOrCreateOwnMap(key) {
6992
- return this[key] || (this[key] = new _emberUtils.EmptyObject());
7006
+ return this[key] || (this[key] = Object.create(null));
6993
7007
  };
6994
7008
 
6995
7009
  Meta.prototype._getInherited = function _getInherited(key) {
6996
7010
  var pointer = this;
6997
7011
  while (pointer !== undefined) {
6998
- if (pointer[key]) {
6999
- return pointer[key];
7012
+ var map = pointer[key];
7013
+ if (map) {
7014
+ return map;
7000
7015
  }
7001
7016
  pointer = pointer.parent;
7002
7017
  }
@@ -7025,7 +7040,7 @@ enifed('ember-metal/meta', ['exports', 'ember-utils', 'ember-metal/features', 'e
7025
7040
  var outerMap = this._getOrCreateOwnMap('_deps');
7026
7041
  var innerMap = outerMap[subkey];
7027
7042
  if (!innerMap) {
7028
- innerMap = outerMap[subkey] = new _emberUtils.EmptyObject();
7043
+ innerMap = outerMap[subkey] = Object.create(null);
7029
7044
  }
7030
7045
  innerMap[itemkey] = value;
7031
7046
  };
@@ -7037,8 +7052,9 @@ enifed('ember-metal/meta', ['exports', 'ember-utils', 'ember-metal/features', 'e
7037
7052
  if (map) {
7038
7053
  var value = map[subkey];
7039
7054
  if (value) {
7040
- if (value[itemkey] !== undefined) {
7041
- return value[itemkey];
7055
+ var itemvalue = value[itemkey];
7056
+ if (itemvalue !== undefined) {
7057
+ return itemvalue;
7042
7058
  }
7043
7059
  }
7044
7060
  }
@@ -7063,16 +7079,18 @@ enifed('ember-metal/meta', ['exports', 'ember-utils', 'ember-metal/features', 'e
7063
7079
 
7064
7080
  Meta.prototype._forEachIn = function _forEachIn(key, subkey, fn) {
7065
7081
  var pointer = this;
7066
- var seen = new _emberUtils.EmptyObject();
7067
- var calls = [];
7082
+ var seen = undefined;
7083
+ var calls = undefined;
7068
7084
  while (pointer !== undefined) {
7069
7085
  var map = pointer[key];
7070
7086
  if (map) {
7071
7087
  var innerMap = map[subkey];
7072
7088
  if (innerMap) {
7073
7089
  for (var innerKey in innerMap) {
7090
+ seen = seen || Object.create(null);
7074
7091
  if (!seen[innerKey]) {
7075
7092
  seen[innerKey] = true;
7093
+ calls = calls || [];
7076
7094
  calls.push([innerKey, innerMap[innerKey]]);
7077
7095
  }
7078
7096
  }
@@ -7080,12 +7098,14 @@ enifed('ember-metal/meta', ['exports', 'ember-utils', 'ember-metal/features', 'e
7080
7098
  }
7081
7099
  pointer = pointer.parent;
7082
7100
  }
7083
- for (var i = 0; i < calls.length; i++) {
7084
- var _calls$i = calls[i];
7085
- var innerKey = _calls$i[0];
7086
- var value = _calls$i[1];
7101
+ if (calls) {
7102
+ for (var i = 0; i < calls.length; i++) {
7103
+ var _calls$i = calls[i];
7104
+ var innerKey = _calls$i[0];
7105
+ var value = _calls$i[1];
7087
7106
 
7088
- fn(innerKey, value);
7107
+ fn(innerKey, value);
7108
+ }
7089
7109
  }
7090
7110
  };
7091
7111
 
@@ -7099,7 +7119,7 @@ enifed('ember-metal/meta', ['exports', 'ember-utils', 'ember-metal/features', 'e
7099
7119
  if (map) {
7100
7120
  var value = map[subkey];
7101
7121
  if (value !== undefined || subkey in map) {
7102
- return map[subkey];
7122
+ return value;
7103
7123
  }
7104
7124
  }
7105
7125
  pointer = pointer.parent;
@@ -7165,11 +7185,12 @@ enifed('ember-metal/meta', ['exports', 'ember-utils', 'ember-metal/features', 'e
7165
7185
 
7166
7186
  Meta.prototype['forEach' + capitalized] = function (fn) {
7167
7187
  var pointer = this;
7168
- var seen = new _emberUtils.EmptyObject();
7188
+ var seen = undefined;
7169
7189
  while (pointer !== undefined) {
7170
7190
  var map = pointer[key];
7171
7191
  if (map) {
7172
7192
  for (var _key in map) {
7193
+ seen = seen || Object.create(null);
7173
7194
  if (!seen[_key]) {
7174
7195
  seen[_key] = true;
7175
7196
  fn(_key, map[_key]);
@@ -7277,7 +7298,7 @@ enifed('ember-metal/meta', ['exports', 'ember-utils', 'ember-metal/features', 'e
7277
7298
  if (map) {
7278
7299
  var value = map[subkey];
7279
7300
  if (value !== undefined || subkey in map) {
7280
- return map[subkey];
7301
+ return value;
7281
7302
  }
7282
7303
  }
7283
7304
  pointer = pointer.parent;
@@ -12208,7 +12229,7 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-utils
12208
12229
  function uniqBy(dependentKey, propertyKey) {
12209
12230
  return _emberMetal.computed(dependentKey + '.[]', function () {
12210
12231
  var uniq = _emberRuntimeSystemNative_array.A();
12211
- var seen = new _emberUtils.EmptyObject();
12232
+ var seen = Object.create(null);
12212
12233
  var list = _emberMetal.get(this, dependentKey);
12213
12234
  if (_emberRuntimeUtils.isArray(list)) {
12214
12235
  list.forEach(function (item) {
@@ -14315,6 +14336,36 @@ enifed('ember-runtime/mixins/container_proxy', ['exports', 'ember-metal', 'conta
14315
14336
  }, _containerProxyMixin);
14316
14337
 
14317
14338
  if (_emberMetal.isFeatureEnabled('ember-factory-for')) {
14339
+ /**
14340
+ Given a fullName return a factory manager.
14341
+ This method returns a manager which can be used for introspection of the
14342
+ factory's class or for the creation of factory instances with initial
14343
+ properties. The manager is an object with the following properties:
14344
+ * `class` - The registered or resolved class.
14345
+ * `create` - A function that will create an instance of the class with
14346
+ any dependencies injected.
14347
+ For example:
14348
+ ```javascript
14349
+ let owner = Ember.getOwner(otherInstance);
14350
+ // the owner is commonly the `applicationInstance`, and can be accessed via
14351
+ // an instance initializer.
14352
+ let factory = owner.factoryFor('service:bespoke');
14353
+ factory.class;
14354
+ // The registered or resolved class. For example when used with an Ember-CLI
14355
+ // app, this would be the default export from `app/services/bespoke.js`.
14356
+ let instance = factory.create({
14357
+ someProperty: 'an initial property value'
14358
+ });
14359
+ // Create an instance with any injections and the passed options as
14360
+ // initial properties.
14361
+ ```
14362
+ @public
14363
+ @class ContainerProxyMixin
14364
+ @method factoryFor
14365
+ @param {String} fullName
14366
+ @param {Object} options
14367
+ @return {FactoryManager}
14368
+ */
14318
14369
  containerProxyMixin.factoryFor = function ContainerProxyMixin_factoryFor(fullName) {
14319
14370
  var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
14320
14371
 
@@ -15482,7 +15533,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-utils', 'ember-meta
15482
15533
 
15483
15534
  uniqBy: function (key) {
15484
15535
  var ret = emberA();
15485
- var seen = new _emberUtils.EmptyObject();
15536
+ var seen = Object.create(null);
15486
15537
 
15487
15538
  this.forEach(function (item) {
15488
15539
  var guid = _emberUtils.guidFor(_emberMetal.get(item, key));
@@ -18530,7 +18581,7 @@ enifed('ember-runtime/system/core_object', ['exports', 'ember-utils', 'ember-met
18530
18581
  @param {Object} binding
18531
18582
  @private
18532
18583
  */
18533
- enifed('ember-runtime/system/each_proxy', ['exports', 'ember-utils', 'ember-metal', 'ember-runtime/mixins/array'], function (exports, _emberUtils, _emberMetal, _emberRuntimeMixinsArray) {
18584
+ enifed('ember-runtime/system/each_proxy', ['exports', 'ember-metal', 'ember-runtime/mixins/array'], function (exports, _emberMetal, _emberRuntimeMixinsArray) {
18534
18585
  'use strict';
18535
18586
 
18536
18587
  exports.default = EachProxy;
@@ -18599,7 +18650,7 @@ enifed('ember-runtime/system/each_proxy', ['exports', 'ember-utils', 'ember-meta
18599
18650
  beginObservingContentKey: function (keyName) {
18600
18651
  var keys = this._keys;
18601
18652
  if (!keys) {
18602
- keys = this._keys = new _emberUtils.EmptyObject();
18653
+ keys = this._keys = Object.create(null);
18603
18654
  }
18604
18655
 
18605
18656
  if (!keys[keyName]) {
@@ -19751,7 +19802,7 @@ enifed("ember/features", ["exports"], function (exports) {
19751
19802
  enifed("ember/version", ["exports"], function (exports) {
19752
19803
  "use strict";
19753
19804
 
19754
- exports.default = "2.12.0-beta.3";
19805
+ exports.default = "2.12.0";
19755
19806
  });
19756
19807
  enifed('rsvp', ['exports'], function (exports) {
19757
19808
  'use strict';
@@ -6,7 +6,7 @@
6
6
  * Portions Copyright 2008-2011 Apple Inc. All rights reserved.
7
7
  * @license Licensed under MIT license
8
8
  * See https://raw.github.com/emberjs/ember.js/master/LICENSE
9
- * @version 2.12.0-beta.3
9
+ * @version 2.12.0
10
10
  */
11
11
 
12
12
  var enifed, requireModule, Ember;
@@ -2656,7 +2656,7 @@ enifed('ember-metal/binding', ['exports', 'ember-utils', 'ember-console', 'ember
2656
2656
 
2657
2657
  exports.Binding = Binding;
2658
2658
  });
2659
- enifed('ember-metal/cache', ['exports', 'ember-utils', 'ember-metal/meta'], function (exports, _emberUtils, _emberMetalMeta) {
2659
+ enifed('ember-metal/cache', ['exports', 'ember-metal/meta'], function (exports, _emberMetalMeta) {
2660
2660
  'use strict';
2661
2661
 
2662
2662
  var Cache = (function () {
@@ -2723,7 +2723,7 @@ enifed('ember-metal/cache', ['exports', 'ember-utils', 'ember-metal/meta'], func
2723
2723
  function DefaultStore() {
2724
2724
  babelHelpers.classCallCheck(this, DefaultStore);
2725
2725
 
2726
- this.data = new _emberUtils.EmptyObject();
2726
+ this.data = Object.create(null);
2727
2727
  }
2728
2728
 
2729
2729
  DefaultStore.prototype.get = function get(key) {
@@ -2735,13 +2735,13 @@ enifed('ember-metal/cache', ['exports', 'ember-utils', 'ember-metal/meta'], func
2735
2735
  };
2736
2736
 
2737
2737
  DefaultStore.prototype.clear = function clear() {
2738
- this.data = new _emberUtils.EmptyObject();
2738
+ this.data = Object.create(null);
2739
2739
  };
2740
2740
 
2741
2741
  return DefaultStore;
2742
2742
  })();
2743
2743
  });
2744
- enifed('ember-metal/chains', ['exports', 'ember-utils', 'ember-metal/property_get', 'ember-metal/meta', 'ember-metal/watch_key', 'ember-metal/computed', 'ember-metal/watch_path'], function (exports, _emberUtils, _emberMetalProperty_get, _emberMetalMeta, _emberMetalWatch_key, _emberMetalComputed, _emberMetalWatch_path) {
2744
+ enifed('ember-metal/chains', ['exports', 'ember-metal/property_get', 'ember-metal/meta', 'ember-metal/watch_key', 'ember-metal/computed', 'ember-metal/watch_path'], function (exports, _emberMetalProperty_get, _emberMetalMeta, _emberMetalWatch_key, _emberMetalComputed, _emberMetalWatch_path) {
2745
2745
  'use strict';
2746
2746
 
2747
2747
  exports.finishChains = finishChains;
@@ -2767,7 +2767,7 @@ enifed('ember-metal/chains', ['exports', 'ember-utils', 'ember-metal/property_ge
2767
2767
  // chain nodes that reference a key in this obj by key
2768
2768
  // we only create ChainWatchers when we are going to add them
2769
2769
  // so create this upfront
2770
- this.chains = new _emberUtils.EmptyObject();
2770
+ this.chains = Object.create(null);
2771
2771
  }
2772
2772
 
2773
2773
  ChainWatchers.prototype.add = function add(key, node) {
@@ -2984,7 +2984,7 @@ enifed('ember-metal/chains', ['exports', 'ember-utils', 'ember-metal/property_ge
2984
2984
  var chains = this._chains;
2985
2985
  var node = undefined;
2986
2986
  if (chains === undefined) {
2987
- chains = this._chains = new _emberUtils.EmptyObject();
2987
+ chains = this._chains = Object.create(null);
2988
2988
  } else {
2989
2989
  node = chains[key];
2990
2990
  }
@@ -5347,10 +5347,10 @@ enifed('ember-metal/map', ['exports', 'ember-utils'], function (exports, _emberU
5347
5347
  }
5348
5348
 
5349
5349
  function copyNull(obj) {
5350
- var output = new _emberUtils.EmptyObject();
5350
+ var output = Object.create(null);
5351
5351
 
5352
5352
  for (var prop in obj) {
5353
- // hasOwnPropery is not needed because obj is new EmptyObject();
5353
+ // hasOwnPropery is not needed because obj is Object.create(null);
5354
5354
  output[prop] = obj[prop];
5355
5355
  }
5356
5356
 
@@ -5406,7 +5406,7 @@ enifed('ember-metal/map', ['exports', 'ember-utils'], function (exports, _emberU
5406
5406
  @private
5407
5407
  */
5408
5408
  clear: function () {
5409
- this.presenceSet = new _emberUtils.EmptyObject();
5409
+ this.presenceSet = Object.create(null);
5410
5410
  this.list = [];
5411
5411
  this.size = 0;
5412
5412
  },
@@ -5562,7 +5562,7 @@ enifed('ember-metal/map', ['exports', 'ember-utils'], function (exports, _emberU
5562
5562
  if (this instanceof Map) {
5563
5563
  this._keys = OrderedSet.create();
5564
5564
  this._keys._silenceRemoveDeprecation = true;
5565
- this._values = new _emberUtils.EmptyObject();
5565
+ this._values = Object.create(null);
5566
5566
  this.size = 0;
5567
5567
  } else {
5568
5568
  missingNew('Map');
@@ -5718,7 +5718,7 @@ enifed('ember-metal/map', ['exports', 'ember-utils'], function (exports, _emberU
5718
5718
  */
5719
5719
  clear: function () {
5720
5720
  this._keys.clear();
5721
- this._values = new _emberUtils.EmptyObject();
5721
+ this._values = Object.create(null);
5722
5722
  this.size = 0;
5723
5723
  },
5724
5724
 
@@ -6050,14 +6050,15 @@ enifed('ember-metal/meta', ['exports', 'ember-utils', 'ember-metal/features', 'e
6050
6050
  };
6051
6051
 
6052
6052
  Meta.prototype._getOrCreateOwnMap = function _getOrCreateOwnMap(key) {
6053
- return this[key] || (this[key] = new _emberUtils.EmptyObject());
6053
+ return this[key] || (this[key] = Object.create(null));
6054
6054
  };
6055
6055
 
6056
6056
  Meta.prototype._getInherited = function _getInherited(key) {
6057
6057
  var pointer = this;
6058
6058
  while (pointer !== undefined) {
6059
- if (pointer[key]) {
6060
- return pointer[key];
6059
+ var map = pointer[key];
6060
+ if (map) {
6061
+ return map;
6061
6062
  }
6062
6063
  pointer = pointer.parent;
6063
6064
  }
@@ -6086,7 +6087,7 @@ enifed('ember-metal/meta', ['exports', 'ember-utils', 'ember-metal/features', 'e
6086
6087
  var outerMap = this._getOrCreateOwnMap('_deps');
6087
6088
  var innerMap = outerMap[subkey];
6088
6089
  if (!innerMap) {
6089
- innerMap = outerMap[subkey] = new _emberUtils.EmptyObject();
6090
+ innerMap = outerMap[subkey] = Object.create(null);
6090
6091
  }
6091
6092
  innerMap[itemkey] = value;
6092
6093
  };
@@ -6098,8 +6099,9 @@ enifed('ember-metal/meta', ['exports', 'ember-utils', 'ember-metal/features', 'e
6098
6099
  if (map) {
6099
6100
  var value = map[subkey];
6100
6101
  if (value) {
6101
- if (value[itemkey] !== undefined) {
6102
- return value[itemkey];
6102
+ var itemvalue = value[itemkey];
6103
+ if (itemvalue !== undefined) {
6104
+ return itemvalue;
6103
6105
  }
6104
6106
  }
6105
6107
  }
@@ -6124,16 +6126,18 @@ enifed('ember-metal/meta', ['exports', 'ember-utils', 'ember-metal/features', 'e
6124
6126
 
6125
6127
  Meta.prototype._forEachIn = function _forEachIn(key, subkey, fn) {
6126
6128
  var pointer = this;
6127
- var seen = new _emberUtils.EmptyObject();
6128
- var calls = [];
6129
+ var seen = undefined;
6130
+ var calls = undefined;
6129
6131
  while (pointer !== undefined) {
6130
6132
  var map = pointer[key];
6131
6133
  if (map) {
6132
6134
  var innerMap = map[subkey];
6133
6135
  if (innerMap) {
6134
6136
  for (var innerKey in innerMap) {
6137
+ seen = seen || Object.create(null);
6135
6138
  if (!seen[innerKey]) {
6136
6139
  seen[innerKey] = true;
6140
+ calls = calls || [];
6137
6141
  calls.push([innerKey, innerMap[innerKey]]);
6138
6142
  }
6139
6143
  }
@@ -6141,12 +6145,14 @@ enifed('ember-metal/meta', ['exports', 'ember-utils', 'ember-metal/features', 'e
6141
6145
  }
6142
6146
  pointer = pointer.parent;
6143
6147
  }
6144
- for (var i = 0; i < calls.length; i++) {
6145
- var _calls$i = calls[i];
6146
- var innerKey = _calls$i[0];
6147
- var value = _calls$i[1];
6148
+ if (calls) {
6149
+ for (var i = 0; i < calls.length; i++) {
6150
+ var _calls$i = calls[i];
6151
+ var innerKey = _calls$i[0];
6152
+ var value = _calls$i[1];
6148
6153
 
6149
- fn(innerKey, value);
6154
+ fn(innerKey, value);
6155
+ }
6150
6156
  }
6151
6157
  };
6152
6158
 
@@ -6160,7 +6166,7 @@ enifed('ember-metal/meta', ['exports', 'ember-utils', 'ember-metal/features', 'e
6160
6166
  if (map) {
6161
6167
  var value = map[subkey];
6162
6168
  if (value !== undefined || subkey in map) {
6163
- return map[subkey];
6169
+ return value;
6164
6170
  }
6165
6171
  }
6166
6172
  pointer = pointer.parent;
@@ -6226,11 +6232,12 @@ enifed('ember-metal/meta', ['exports', 'ember-utils', 'ember-metal/features', 'e
6226
6232
 
6227
6233
  Meta.prototype['forEach' + capitalized] = function (fn) {
6228
6234
  var pointer = this;
6229
- var seen = new _emberUtils.EmptyObject();
6235
+ var seen = undefined;
6230
6236
  while (pointer !== undefined) {
6231
6237
  var map = pointer[key];
6232
6238
  if (map) {
6233
6239
  for (var _key in map) {
6240
+ seen = seen || Object.create(null);
6234
6241
  if (!seen[_key]) {
6235
6242
  seen[_key] = true;
6236
6243
  fn(_key, map[_key]);
@@ -6338,7 +6345,7 @@ enifed('ember-metal/meta', ['exports', 'ember-utils', 'ember-metal/features', 'e
6338
6345
  if (map) {
6339
6346
  var value = map[subkey];
6340
6347
  if (value !== undefined || subkey in map) {
6341
- return map[subkey];
6348
+ return value;
6342
6349
  }
6343
6350
  }
6344
6351
  pointer = pointer.parent;
@@ -11407,52 +11414,23 @@ enifed("ember-utils/assign", ["exports"], function (exports) {
11407
11414
  return original;
11408
11415
  }
11409
11416
  });
11410
- enifed('ember-utils/dictionary', ['exports', 'ember-utils/empty-object'], function (exports, _emberUtilsEmptyObject) {
11411
- 'use strict';
11412
-
11413
- exports.default = makeDictionary;
11414
-
11417
+ enifed('ember-utils/dictionary', ['exports'], function (exports) {
11415
11418
  // the delete is meant to hint at runtimes that this object should remain in
11416
11419
  // dictionary mode. This is clearly a runtime specific hack, but currently it
11417
11420
  // appears worthwhile in some usecases. Please note, these deletes do increase
11418
11421
  // the cost of creation dramatically over a plain Object.create. And as this
11419
11422
  // only makes sense for long-lived dictionaries that aren't instantiated often.
11423
+ 'use strict';
11424
+
11425
+ exports.default = makeDictionary;
11420
11426
 
11421
11427
  function makeDictionary(parent) {
11422
- var dict = undefined;
11423
- if (parent === null) {
11424
- dict = new _emberUtilsEmptyObject.default();
11425
- } else {
11426
- dict = Object.create(parent);
11427
- }
11428
+ var dict = Object.create(parent);
11428
11429
  dict['_dict'] = null;
11429
11430
  delete dict['_dict'];
11430
11431
  return dict;
11431
11432
  }
11432
11433
  });
11433
- enifed("ember-utils/empty-object", ["exports"], function (exports) {
11434
- // This exists because `Object.create(null)` is absurdly slow compared
11435
- // to `new EmptyObject()`. In either case, you want a null prototype
11436
- // when you're treating the object instances as arbitrary dictionaries
11437
- // and don't want your keys colliding with build-in methods on the
11438
- // default object prototype.
11439
-
11440
- "use strict";
11441
-
11442
- var proto = Object.create(null, {
11443
- // without this, we will always still end up with (new
11444
- // EmptyObject()).constructor === Object
11445
- constructor: {
11446
- value: undefined,
11447
- enumerable: false,
11448
- writable: true
11449
- }
11450
- });
11451
-
11452
- function EmptyObject() {}
11453
- EmptyObject.prototype = proto;
11454
- exports.default = EmptyObject;
11455
- });
11456
11434
  enifed('ember-utils/guid', ['exports', 'ember-utils/intern'], function (exports, _emberUtilsIntern) {
11457
11435
  'use strict';
11458
11436
 
@@ -11657,7 +11635,7 @@ enifed('ember-utils/guid', ['exports', 'ember-utils/intern'], function (exports,
11657
11635
  }
11658
11636
  }
11659
11637
  });
11660
- enifed('ember-utils/index', ['exports', 'ember-utils/symbol', 'ember-utils/owner', 'ember-utils/assign', 'ember-utils/empty-object', 'ember-utils/dictionary', 'ember-utils/guid', 'ember-utils/intern', 'ember-utils/super', 'ember-utils/inspect', 'ember-utils/lookup-descriptor', 'ember-utils/invoke', 'ember-utils/make-array', 'ember-utils/apply-str', 'ember-utils/name', 'ember-utils/to-string', 'ember-utils/weak-map-utils', 'ember-utils/proxy-utils'], function (exports, _emberUtilsSymbol, _emberUtilsOwner, _emberUtilsAssign, _emberUtilsEmptyObject, _emberUtilsDictionary, _emberUtilsGuid, _emberUtilsIntern, _emberUtilsSuper, _emberUtilsInspect, _emberUtilsLookupDescriptor, _emberUtilsInvoke, _emberUtilsMakeArray, _emberUtilsApplyStr, _emberUtilsName, _emberUtilsToString, _emberUtilsWeakMapUtils, _emberUtilsProxyUtils) {
11638
+ enifed('ember-utils/index', ['exports', 'ember-utils/symbol', 'ember-utils/owner', 'ember-utils/assign', 'ember-utils/dictionary', 'ember-utils/guid', 'ember-utils/intern', 'ember-utils/super', 'ember-utils/inspect', 'ember-utils/lookup-descriptor', 'ember-utils/invoke', 'ember-utils/make-array', 'ember-utils/apply-str', 'ember-utils/name', 'ember-utils/to-string', 'ember-utils/weak-map-utils', 'ember-utils/proxy-utils'], function (exports, _emberUtilsSymbol, _emberUtilsOwner, _emberUtilsAssign, _emberUtilsDictionary, _emberUtilsGuid, _emberUtilsIntern, _emberUtilsSuper, _emberUtilsInspect, _emberUtilsLookupDescriptor, _emberUtilsInvoke, _emberUtilsMakeArray, _emberUtilsApplyStr, _emberUtilsName, _emberUtilsToString, _emberUtilsWeakMapUtils, _emberUtilsProxyUtils) {
11661
11639
  /*
11662
11640
  This package will be eagerly parsed and should have no dependencies on external
11663
11641
  packages.
@@ -11675,7 +11653,6 @@ enifed('ember-utils/index', ['exports', 'ember-utils/symbol', 'ember-utils/owner
11675
11653
  exports.setOwner = _emberUtilsOwner.setOwner;
11676
11654
  exports.OWNER = _emberUtilsOwner.OWNER;
11677
11655
  exports.assign = _emberUtilsAssign.default;
11678
- exports.EmptyObject = _emberUtilsEmptyObject.default;
11679
11656
  exports.dictionary = _emberUtilsDictionary.default;
11680
11657
  exports.uuid = _emberUtilsGuid.uuid;
11681
11658
  exports.GUID_KEY = _emberUtilsGuid.GUID_KEY;
@@ -12146,7 +12123,7 @@ enifed("ember/features", ["exports"], function (exports) {
12146
12123
  enifed("ember/version", ["exports"], function (exports) {
12147
12124
  "use strict";
12148
12125
 
12149
- exports.default = "2.12.0-beta.3";
12126
+ exports.default = "2.12.0";
12150
12127
  });
12151
12128
  enifed("glimmer-compiler/index", ["exports", "glimmer-compiler/lib/compiler", "glimmer-compiler/lib/template-visitor"], function (exports, _glimmerCompilerLibCompiler, _glimmerCompilerLibTemplateVisitor) {
12152
12129
  "use strict";