ember-source 2.14.0.beta.2 → 2.14.0.beta.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 72206915d83b8a817350336c940b89365f00cf1c
4
- data.tar.gz: 8bad923f95d3fc4d373b720b7772355a900bc4fe
3
+ metadata.gz: 1c528163801044f08c894c3e12454131d6d5a191
4
+ data.tar.gz: b7460495a2ef06aa13a1fa3c7c4a77f2a6e6e191
5
5
  SHA512:
6
- metadata.gz: 3a982b599e0cfe2551ea027f62e9c904f27906efc3c633aa36d2ac8e34be39c8d7a3a10e9343229861f3589c6d09433719c3a2985a04a6e309e833019104c422
7
- data.tar.gz: d4bd72d4bde88e6f0ceb60a75b83df4ec22ab5343defc55224d1a407233d32766c6ab14e6847b700991a8ff82af6f39b0cb7d1fefeb807d537661cd8861dc471
6
+ metadata.gz: b775e038c8285dec5c7405abcd21121d9f2e16b47a345bc45195d144c6490795a6561c58eb81543ce82530554bbddb75737bfed32bfb6e94d3e19f4be9bd79b0
7
+ data.tar.gz: 0291be65bfb6d3f3e9a44f439e0a3b891ee5f5cf9246951fcba41ee7e35649caf820648331c10b0a6f100bb9bc51b010c8ed2eda8add884f505a98faeb787d57
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.14.0.beta.2
1
+ 2.14.0.beta.3
@@ -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.14.0-beta.2
9
+ * @version 2.14.0-beta.3
10
10
  */
11
11
 
12
12
  var enifed, requireModule, Ember;
@@ -148,12 +148,12 @@ enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'em
148
148
 
149
149
  Container.prototype = {
150
150
  lookup: function (fullName, options) {
151
- (true && (0, _emberDebug.assert)('fullName must be a proper full name', this.registry.validateFullName(fullName)));
151
+ (true && !(this.registry.validateFullName(fullName)) && (0, _emberDebug.assert)('fullName must be a proper full name', this.registry.validateFullName(fullName)));
152
152
 
153
153
  return lookup(this, this.registry.normalize(fullName), options);
154
154
  },
155
155
  lookupFactory: function (fullName, options) {
156
- (true && (0, _emberDebug.assert)('fullName must be a proper full name', this.registry.validateFullName(fullName)));
156
+ (true && !(this.registry.validateFullName(fullName)) && (0, _emberDebug.assert)('fullName must be a proper full name', this.registry.validateFullName(fullName)));
157
157
  (true && !(false) && (0, _emberDebug.deprecate)('Using "_lookupFactory" is deprecated. Please use container.factoryFor instead.', false, { id: 'container-lookupFactory', until: '2.13.0', url: 'http://emberjs.com/deprecations/v2.x/#toc_migrating-from-_lookupfactory-to-factoryfor' }));
158
158
 
159
159
 
@@ -180,7 +180,7 @@ enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'em
180
180
 
181
181
  var normalizedName = this.registry.normalize(fullName);
182
182
 
183
- (true && (0, _emberDebug.assert)('fullName must be a proper full name', this.registry.validateFullName(normalizedName)));
183
+ (true && !(this.registry.validateFullName(normalizedName)) && (0, _emberDebug.assert)('fullName must be a proper full name', this.registry.validateFullName(normalizedName)));
184
184
 
185
185
 
186
186
  if (options.source) {
@@ -748,7 +748,7 @@ enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'em
748
748
  },
749
749
  register: function (fullName, factory) {
750
750
  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
751
- (true && (0, _emberDebug.assert)('fullName must be a proper full name', this.validateFullName(fullName)));
751
+ (true && !(this.validateFullName(fullName)) && (0, _emberDebug.assert)('fullName must be a proper full name', this.validateFullName(fullName)));
752
752
 
753
753
 
754
754
  if (factory === undefined) {
@@ -766,7 +766,7 @@ enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'em
766
766
  this._options[normalizedName] = options;
767
767
  },
768
768
  unregister: function (fullName) {
769
- (true && (0, _emberDebug.assert)('fullName must be a proper full name', this.validateFullName(fullName)));
769
+ (true && !(this.validateFullName(fullName)) && (0, _emberDebug.assert)('fullName must be a proper full name', this.validateFullName(fullName)));
770
770
 
771
771
 
772
772
  var normalizedName = this.normalize(fullName);
@@ -779,7 +779,7 @@ enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'em
779
779
  delete this._options[normalizedName];
780
780
  },
781
781
  resolve: function (fullName, options) {
782
- (true && (0, _emberDebug.assert)('fullName must be a proper full name', this.validateFullName(fullName)));
782
+ (true && !(this.validateFullName(fullName)) && (0, _emberDebug.assert)('fullName must be a proper full name', this.validateFullName(fullName)));
783
783
 
784
784
  var factory = resolve(this, this.normalize(fullName), options);
785
785
  if (factory === undefined && this.fallback) {
@@ -870,7 +870,7 @@ enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'em
870
870
  }
871
871
  },
872
872
  typeInjection: function (type, property, fullName) {
873
- (true && (0, _emberDebug.assert)('fullName must be a proper full name', this.validateFullName(fullName)));
873
+ (true && !(this.validateFullName(fullName)) && (0, _emberDebug.assert)('fullName must be a proper full name', this.validateFullName(fullName)));
874
874
 
875
875
 
876
876
  var fullNameType = fullName.split(':')[0];
@@ -893,7 +893,7 @@ enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'em
893
893
  return this.typeInjection(fullName, property, normalizedInjectionName);
894
894
  }
895
895
 
896
- (true && (0, _emberDebug.assert)('fullName must be a proper full name', this.validateFullName(fullName)));
896
+ (true && !(this.validateFullName(fullName)) && (0, _emberDebug.assert)('fullName must be a proper full name', this.validateFullName(fullName)));
897
897
 
898
898
  var normalizedName = this.normalize(fullName);
899
899
 
@@ -974,7 +974,7 @@ enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'em
974
974
  for (var i = 0; i < injections.length; i++) {
975
975
  fullName = injections[i].fullName;
976
976
 
977
- (true && (0, _emberDebug.assert)('Attempting to inject an unknown injection: \'' + fullName + '\'', this.has(fullName)));
977
+ (true && !(this.has(fullName)) && (0, _emberDebug.assert)('Attempting to inject an unknown injection: \'' + fullName + '\'', this.has(fullName)));
978
978
  }
979
979
  },
980
980
  normalizeInjectionsHash: function (hash) {
@@ -982,7 +982,7 @@ enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'em
982
982
 
983
983
  for (var key in hash) {
984
984
  if (hash.hasOwnProperty(key)) {
985
- (true && (0, _emberDebug.assert)('Expected a proper full name, given \'' + hash[key] + '\'', this.validateFullName(hash[key])));
985
+ (true && !(this.validateFullName(hash[key])) && (0, _emberDebug.assert)('Expected a proper full name, given \'' + hash[key] + '\'', this.validateFullName(hash[key])));
986
986
 
987
987
 
988
988
  injections.push({
@@ -1052,9 +1052,9 @@ enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'em
1052
1052
  */
1053
1053
  Registry.prototype.expandLocalLookup = function Registry_expandLocalLookup(fullName, options) {
1054
1054
  if (this.resolver && this.resolver.expandLocalLookup) {
1055
- (true && (0, _emberDebug.assert)('fullName must be a proper full name', this.validateFullName(fullName)));
1056
- (true && (0, _emberDebug.assert)('options.source must be provided to expandLocalLookup', options && options.source));
1057
- (true && (0, _emberDebug.assert)('options.source must be a proper full name', this.validateFullName(options.source)));
1055
+ (true && !(this.validateFullName(fullName)) && (0, _emberDebug.assert)('fullName must be a proper full name', this.validateFullName(fullName)));
1056
+ (true && !(options && options.source) && (0, _emberDebug.assert)('options.source must be provided to expandLocalLookup', options && options.source));
1057
+ (true && !(this.validateFullName(options.source)) && (0, _emberDebug.assert)('options.source must be a proper full name', this.validateFullName(options.source)));
1058
1058
 
1059
1059
 
1060
1060
  var normalizedFullName = this.normalize(fullName);
@@ -1480,9 +1480,6 @@ enifed('ember-environment', ['exports'], function (exports) {
1480
1480
  */
1481
1481
  ENV.LOG_VERSION = defaultTrue(ENV.LOG_VERSION);
1482
1482
 
1483
- // default false
1484
- ENV.MODEL_FACTORY_INJECTIONS = defaultFalse(ENV.MODEL_FACTORY_INJECTIONS);
1485
-
1486
1483
  /**
1487
1484
  Debug parameter you can turn on. This will log all bindings that fire to
1488
1485
  the console. This should be disabled in production code. Note that you
@@ -1809,7 +1806,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
1809
1806
  @public
1810
1807
  */
1811
1808
  function addListener(obj, eventName, target, method, once) {
1812
- true && emberDebug.assert('You must pass at least an object and event name to Ember.addListener', !!obj && !!eventName);
1809
+ true && !(!!obj && !!eventName) && emberDebug.assert('You must pass at least an object and event name to Ember.addListener', !!obj && !!eventName);
1813
1810
  true && !(eventName !== 'didInitAttrs') && emberDebug.deprecate('didInitAttrs called in ' + (obj && obj.toString && obj.toString()) + '.', eventName !== 'didInitAttrs', {
1814
1811
  id: 'ember-views.did-init-attrs',
1815
1812
  until: '3.0.0',
@@ -1847,7 +1844,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
1847
1844
  @public
1848
1845
  */
1849
1846
  function removeListener(obj, eventName, target, method) {
1850
- true && emberDebug.assert('You must pass at least an object and event name to Ember.removeListener', !!obj && !!eventName);
1847
+ true && !(!!obj && !!eventName) && emberDebug.assert('You must pass at least an object and event name to Ember.removeListener', !!obj && !!eventName);
1851
1848
 
1852
1849
  if (!method && 'function' === typeof target) {
1853
1850
  method = target;
@@ -2286,7 +2283,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
2286
2283
  if (ember_features.EMBER_GLIMMER_ALLOW_BACKTRACKING_RERENDER) {
2287
2284
  true && !false && emberDebug.deprecate(message + ' will be removed in Ember 3.0.', false, { id: 'ember-views.render-double-modify', until: '3.0.0' });
2288
2285
  } else {
2289
- true && emberDebug.assert(message + ' is no longer supported. See https://github.com/emberjs/ember.js/issues/13948 for more details.', false);
2286
+ true && !false && emberDebug.assert(message + ' is no longer supported. See https://github.com/emberjs/ember.js/issues/13948 for more details.', false);
2290
2287
  }
2291
2288
  }
2292
2289
 
@@ -2622,7 +2619,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
2622
2619
  if (!m.isInitialized(this)) {
2623
2620
  m.writeValues(name, value);
2624
2621
  } else {
2625
- true && emberDebug.assert('You must use Ember.set() to set the `' + name + '` property (of ' + this + ') to `' + value + '`.', false);
2622
+ true && !false && emberDebug.assert('You must use Ember.set() to set the `' + name + '` property (of ' + this + ') to `' + value + '`.', false);
2626
2623
  }
2627
2624
  }
2628
2625
 
@@ -3599,7 +3596,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
3599
3596
 
3600
3597
 
3601
3598
  Meta.prototype.writeDeps = function writeDeps(subkey, itemkey, value) {
3602
- true && emberDebug.assert('Cannot call writeDeps after the object is destroyed.', !this.isMetaDestroyed());
3599
+ true && !!this.isMetaDestroyed() && emberDebug.assert('Cannot call writeDeps after the object is destroyed.', !this.isMetaDestroyed());
3603
3600
 
3604
3601
  var outerMap = this._getOrCreateOwnMap('_deps');
3605
3602
  var innerMap = outerMap[subkey];
@@ -3746,7 +3743,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
3746
3743
  var capitalized = capitalize(name);
3747
3744
 
3748
3745
  Meta.prototype['write' + capitalized] = function (subkey, value) {
3749
- true && emberDebug.assert('Cannot call write' + capitalized + ' after the object is destroyed.', !this.isMetaDestroyed());
3746
+ true && !!this.isMetaDestroyed() && emberDebug.assert('Cannot call write' + capitalized + ' after the object is destroyed.', !this.isMetaDestroyed());
3750
3747
 
3751
3748
  var map = this._getOrCreateOwnMap(key);
3752
3749
  map[subkey] = value;
@@ -3775,7 +3772,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
3775
3772
  };
3776
3773
 
3777
3774
  Meta.prototype['clear' + capitalized] = function () {
3778
- true && emberDebug.assert('Cannot call clear' + capitalized + ' after the object is destroyed.', !this.isMetaDestroyed());
3775
+ true && !!this.isMetaDestroyed() && emberDebug.assert('Cannot call clear' + capitalized + ' after the object is destroyed.', !this.isMetaDestroyed());
3779
3776
 
3780
3777
  this[key] = undefined;
3781
3778
  };
@@ -3797,7 +3794,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
3797
3794
  var key = memberProperty(name);
3798
3795
  var capitalized = capitalize(name);
3799
3796
  Meta.prototype['writable' + capitalized] = function (create) {
3800
- true && emberDebug.assert('Cannot call writable' + capitalized + ' after the object is destroyed.', !this.isMetaDestroyed());
3797
+ true && !!this.isMetaDestroyed() && emberDebug.assert('Cannot call writable' + capitalized + ' after the object is destroyed.', !this.isMetaDestroyed());
3801
3798
 
3802
3799
  var ret = this[key];
3803
3800
  if (ret === undefined) {
@@ -3817,7 +3814,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
3817
3814
  var key = memberProperty(name);
3818
3815
  var capitalized = capitalize(name);
3819
3816
  Meta.prototype['writable' + capitalized] = function (create) {
3820
- true && emberDebug.assert('Cannot call writable' + capitalized + ' after the object is destroyed.', !this.isMetaDestroyed());
3817
+ true && !!this.isMetaDestroyed() && emberDebug.assert('Cannot call writable' + capitalized + ' after the object is destroyed.', !this.isMetaDestroyed());
3821
3818
 
3822
3819
  var ret = this[key];
3823
3820
  if (ret === undefined) {
@@ -4185,11 +4182,11 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
4185
4182
  @public
4186
4183
  */
4187
4184
  function get(obj, keyName) {
4188
- true && emberDebug.assert('Get must be called with two arguments; an object and a property key', arguments.length === 2);
4189
- true && emberDebug.assert('Cannot call get with \'' + keyName + '\' on an undefined object.', obj !== undefined && obj !== null);
4190
- true && emberDebug.assert('The key provided to get must be a string, you passed ' + keyName, typeof keyName === 'string');
4191
- true && emberDebug.assert('\'this\' in paths is not supported', !hasThis(keyName));
4192
- true && emberDebug.assert('Cannot call `Ember.get` with an empty string', keyName !== '');
4185
+ true && !(arguments.length === 2) && emberDebug.assert('Get must be called with two arguments; an object and a property key', arguments.length === 2);
4186
+ true && !(obj !== undefined && obj !== null) && emberDebug.assert('Cannot call get with \'' + keyName + '\' on an undefined object.', obj !== undefined && obj !== null);
4187
+ true && !(typeof keyName === 'string') && emberDebug.assert('The key provided to get must be a string, you passed ' + keyName, typeof keyName === 'string');
4188
+ true && !!hasThis(keyName) && emberDebug.assert('\'this\' in paths is not supported', !hasThis(keyName));
4189
+ true && !(keyName !== '') && emberDebug.assert('Cannot call `Ember.get` with an empty string', keyName !== '');
4193
4190
 
4194
4191
  var value = obj[keyName];
4195
4192
  var desc = value !== null && typeof value === 'object' && value.isDescriptor ? value : undefined;
@@ -4283,11 +4280,11 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
4283
4280
  @public
4284
4281
  */
4285
4282
  function set(obj, keyName, value, tolerant) {
4286
- true && emberDebug.assert('Set must be called with three or four arguments; an object, a property key, a value and tolerant true/false', arguments.length === 3 || arguments.length === 4);
4287
- true && emberDebug.assert('Cannot call set with \'' + keyName + '\' on an undefined object.', obj && typeof obj === 'object' || typeof obj === 'function');
4288
- true && emberDebug.assert('The key provided to set must be a string, you passed ' + keyName, typeof keyName === 'string');
4289
- true && emberDebug.assert('\'this\' in paths is not supported', !hasThis(keyName));
4290
- true && emberDebug.assert('calling set on destroyed object: ' + emberUtils.toString(obj) + '.' + keyName + ' = ' + emberUtils.toString(value), !obj.isDestroyed);
4283
+ true && !(arguments.length === 3 || arguments.length === 4) && emberDebug.assert('Set must be called with three or four arguments; an object, a property key, a value and tolerant true/false', arguments.length === 3 || arguments.length === 4);
4284
+ true && !(obj && typeof obj === 'object' || typeof obj === 'function') && emberDebug.assert('Cannot call set with \'' + keyName + '\' on an undefined object.', obj && typeof obj === 'object' || typeof obj === 'function');
4285
+ true && !(typeof keyName === 'string') && emberDebug.assert('The key provided to set must be a string, you passed ' + keyName, typeof keyName === 'string');
4286
+ true && !!hasThis(keyName) && emberDebug.assert('\'this\' in paths is not supported', !hasThis(keyName));
4287
+ true && !!obj.isDestroyed && emberDebug.assert('calling set on destroyed object: ' + emberUtils.toString(obj) + '.' + keyName + ' = ' + emberUtils.toString(value), !obj.isDestroyed);
4291
4288
 
4292
4289
  if (isPath(keyName)) {
4293
4290
  return setPath(obj, keyName, value, tolerant);
@@ -4309,7 +4306,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
4309
4306
  desc.set(obj, keyName, value);
4310
4307
  } else if (obj.setUnknownProperty && currentValue === undefined && !(keyName in obj)) {
4311
4308
  /* unknown property */
4312
- true && emberDebug.assert('setUnknownProperty must be a function', typeof obj.setUnknownProperty === 'function');
4309
+ true && !(typeof obj.setUnknownProperty === 'function') && emberDebug.assert('setUnknownProperty must be a function', typeof obj.setUnknownProperty === 'function');
4313
4310
 
4314
4311
  obj.setUnknownProperty(keyName, value);
4315
4312
  } else if (currentValue === value) {
@@ -4431,56 +4428,37 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
4431
4428
  expansion, and is passed the expansion.
4432
4429
  */
4433
4430
  function expandProperties(pattern, callback) {
4434
- true && emberDebug.assert('A computed property key must be a string, you passed ' + typeof pattern + ' ' + pattern, typeof pattern === 'string');
4435
- true && emberDebug.assert('Brace expanded properties cannot contain spaces, e.g. "user.{firstName, lastName}" should be "user.{firstName,lastName}"', pattern.indexOf(' ') === -1);
4436
-
4437
- var unbalancedNestedError = 'Brace expanded properties have to be balanced and cannot be nested, pattern: ' + pattern;
4438
- var properties = [pattern];
4439
-
4440
- // Iterating backward over the pattern makes dealing with indices easier.
4441
- var bookmark = void 0;
4442
- var inside = false;
4443
- for (var i = pattern.length; i > 0; --i) {
4444
- var current = pattern[i - 1];
4445
-
4446
- switch (current) {
4447
- // Closing curly brace will be the first character of the brace expansion we encounter.
4448
- // Bookmark its index so long as we're not already inside a brace expansion.
4449
- case '}':
4450
- if (!inside) {
4451
- bookmark = i - 1;
4452
- inside = true;
4453
- } else {
4454
- true && emberDebug.assert(unbalancedNestedError, false);
4455
- }
4456
- break;
4457
- // Opening curly brace will be the last character of the brace expansion we encounter.
4458
- // Apply the brace expansion so long as we've already seen a closing curly brace.
4459
- case '{':
4460
- if (inside) {
4461
- var expansion = pattern.slice(i, bookmark).split(',');
4462
- // Iterating backward allows us to push new properties w/out affecting our "cursor".
4463
- for (var j = properties.length; j > 0; --j) {
4464
- // Extract the unexpanded property from the array.
4465
- var property = properties.splice(j - 1, 1)[0];
4466
- // Iterate over the expansion, pushing the newly formed properties onto the array.
4467
- for (var k = 0; k < expansion.length; ++k) {
4468
- properties.push(property.slice(0, i - 1) + expansion[k] + property.slice(bookmark + 1));
4469
- }
4470
- }
4471
- inside = false;
4472
- } else {
4473
- true && emberDebug.assert(unbalancedNestedError, false);
4474
- }
4475
- break;
4476
- }
4477
- }
4478
- if (inside) {
4479
- true && emberDebug.assert(unbalancedNestedError, false);
4431
+ true && !(typeof pattern === 'string') && emberDebug.assert('A computed property key must be a string, you passed ' + typeof pattern + ' ' + pattern, typeof pattern === 'string');
4432
+ true && !(pattern.indexOf(' ') === -1) && emberDebug.assert('Brace expanded properties cannot contain spaces, e.g. "user.{firstName, lastName}" should be "user.{firstName,lastName}"', pattern.indexOf(' ') === -1);
4433
+ // regex to look for double open, double close, or unclosed braces
4434
+
4435
+ true && !(pattern.match(/\{[^}{]*\{|\}[^}{]*\}|\{[^}]*$/g) === null) && emberDebug.assert('Brace expanded properties have to be balanced and cannot be nested, pattern: ' + pattern, pattern.match(/\{[^}{]*\{|\}[^}{]*\}|\{[^}]*$/g) === null);
4436
+
4437
+ var start = pattern.indexOf('{');
4438
+ if (start < 0) {
4439
+ callback(pattern.replace(END_WITH_EACH_REGEX, '.[]'));
4440
+ } else {
4441
+ dive('', pattern, start, callback);
4480
4442
  }
4443
+ }
4444
+
4445
+ function dive(prefix, pattern, start, callback) {
4446
+ var end = pattern.indexOf('}'),
4447
+ i = 0,
4448
+ newStart = void 0,
4449
+ arrayLength = void 0;
4450
+ var tempArr = pattern.substring(start + 1, end).split(',');
4451
+ var after = pattern.substring(end + 1);
4452
+ prefix = prefix + pattern.substring(0, start);
4481
4453
 
4482
- for (var _i = 0; _i < properties.length; _i++) {
4483
- callback(properties[_i].replace(END_WITH_EACH_REGEX, '.[]'));
4454
+ arrayLength = tempArr.length;
4455
+ while (i < arrayLength) {
4456
+ newStart = after.indexOf('{');
4457
+ if (newStart < 0) {
4458
+ callback((prefix + tempArr[i++] + after).replace(END_WITH_EACH_REGEX, '.[]'));
4459
+ } else {
4460
+ dive(prefix + tempArr[i++], after, newStart, callback);
4461
+ }
4484
4462
  }
4485
4463
  }
4486
4464
 
@@ -4705,8 +4683,8 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
4705
4683
  if (typeof config === 'function') {
4706
4684
  this._getter = config;
4707
4685
  } else {
4708
- true && emberDebug.assert('Ember.computed expects a function or an object as last argument.', typeof config === 'object' && !Array.isArray(config));
4709
- true && emberDebug.assert('Config object passed to an Ember.computed can only contain `get` or `set` keys.', function () {
4686
+ true && !(typeof config === 'object' && !Array.isArray(config)) && emberDebug.assert('Ember.computed expects a function or an object as last argument.', typeof config === 'object' && !Array.isArray(config));
4687
+ true && !function () {
4710
4688
  var keys = Object.keys(config);
4711
4689
  for (var i = 0; i < keys.length; i++) {
4712
4690
  if (keys[i] !== 'get' && keys[i] !== 'set') {
@@ -4714,12 +4692,18 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
4714
4692
  }
4715
4693
  }
4716
4694
  return true;
4695
+ }() && emberDebug.assert('Config object passed to an Ember.computed can only contain `get` or `set` keys.', function () {
4696
+ var keys = Object.keys(config);for (var i = 0; i < keys.length; i++) {
4697
+ if (keys[i] !== 'get' && keys[i] !== 'set') {
4698
+ return false;
4699
+ }
4700
+ }return true;
4717
4701
  }());
4718
4702
 
4719
4703
  this._getter = config.get;
4720
4704
  this._setter = config.set;
4721
4705
  }
4722
- true && emberDebug.assert('Computed properties must receive a getter or a setter, you passed none.', !!this._getter || !!this._setter);
4706
+ true && !(!!this._getter || !!this._setter) && emberDebug.assert('Computed properties must receive a getter or a setter, you passed none.', !!this._getter || !!this._setter);
4723
4707
 
4724
4708
  this._dependentKeys = undefined;
4725
4709
  this._suspended = undefined;
@@ -4785,7 +4769,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
4785
4769
  */
4786
4770
  ComputedPropertyPrototype.readOnly = function () {
4787
4771
  this._readOnly = true;
4788
- true && emberDebug.assert('Computed properties that define a setter using the new syntax cannot be read-only', !(this._readOnly && this._setter && this._setter !== this._getter));
4772
+ true && !!(this._readOnly && this._setter && this._setter !== this._getter) && emberDebug.assert('Computed properties that define a setter using the new syntax cannot be read-only', !(this._readOnly && this._setter && this._setter !== this._getter));
4789
4773
 
4790
4774
  return this;
4791
4775
  };
@@ -5185,7 +5169,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
5185
5169
  }
5186
5170
 
5187
5171
  AliasedProperty.prototype.setup = function setup(obj, keyName) {
5188
- true && emberDebug.assert('Setting alias \'' + keyName + '\' on self', this.altKey !== keyName);
5172
+ true && !(this.altKey !== keyName) && emberDebug.assert('Setting alias \'' + keyName + '\' on self', this.altKey !== keyName);
5189
5173
 
5190
5174
  var meta$$1 = meta(obj);
5191
5175
  if (meta$$1.peekWatching(keyName)) {
@@ -6166,7 +6150,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
6166
6150
  @public
6167
6151
  */
6168
6152
  run$1.schedule = function () /* queue, target, method */{
6169
- true && emberDebug.assert('You have turned on testing mode, which disabled the run-loop\'s autorun. ' + 'You will need to wrap any code with asynchronous side-effects in a run', run$1.currentRunLoop || !emberDebug.isTesting());
6153
+ true && !(run$1.currentRunLoop || !emberDebug.isTesting()) && emberDebug.assert('You have turned on testing mode, which disabled the run-loop\'s autorun. ' + 'You will need to wrap any code with asynchronous side-effects in a run', run$1.currentRunLoop || !emberDebug.isTesting());
6170
6154
 
6171
6155
  return backburner.schedule.apply(backburner, arguments);
6172
6156
  };
@@ -6248,7 +6232,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
6248
6232
  @public
6249
6233
  */
6250
6234
  run$1.once = function () {
6251
- true && emberDebug.assert('You have turned on testing mode, which disabled the run-loop\'s autorun. ' + 'You will need to wrap any code with asynchronous side-effects in a run', run$1.currentRunLoop || !emberDebug.isTesting());
6235
+ true && !(run$1.currentRunLoop || !emberDebug.isTesting()) && emberDebug.assert('You have turned on testing mode, which disabled the run-loop\'s autorun. ' + 'You will need to wrap any code with asynchronous side-effects in a run', run$1.currentRunLoop || !emberDebug.isTesting());
6252
6236
 
6253
6237
  for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
6254
6238
  args[_key3] = arguments[_key3];
@@ -6311,7 +6295,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
6311
6295
  @public
6312
6296
  */
6313
6297
  run$1.scheduleOnce = function () /*queue, target, method*/{
6314
- true && emberDebug.assert('You have turned on testing mode, which disabled the run-loop\'s autorun. ' + 'You will need to wrap any code with asynchronous side-effects in a run', run$1.currentRunLoop || !emberDebug.isTesting());
6298
+ true && !(run$1.currentRunLoop || !emberDebug.isTesting()) && emberDebug.assert('You have turned on testing mode, which disabled the run-loop\'s autorun. ' + 'You will need to wrap any code with asynchronous side-effects in a run', run$1.currentRunLoop || !emberDebug.isTesting());
6315
6299
 
6316
6300
  return backburner.scheduleOnce.apply(backburner, arguments);
6317
6301
  };
@@ -7434,7 +7418,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
7434
7418
  */
7435
7419
 
7436
7420
  Binding.prototype.connect = function connect(obj) {
7437
- true && emberDebug.assert('Must pass a valid object to Ember.Binding.connect()', !!obj);
7421
+ true && !!!obj && emberDebug.assert('Must pass a valid object to Ember.Binding.connect()', !!obj);
7438
7422
 
7439
7423
  var fromObj = void 0,
7440
7424
  fromPath = void 0,
@@ -7488,7 +7472,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
7488
7472
  */
7489
7473
 
7490
7474
  Binding.prototype.disconnect = function disconnect() {
7491
- true && emberDebug.assert('Must pass a valid object to Ember.Binding.disconnect()', !!this._toObj);
7475
+ true && !!!this._toObj && emberDebug.assert('Must pass a valid object to Ember.Binding.disconnect()', !!this._toObj);
7492
7476
 
7493
7477
  // Remove an observer on the object so we're no longer notified of
7494
7478
  // changes that should update bindings.
@@ -7919,7 +7903,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
7919
7903
  {
7920
7904
  if (isArray(value)) {
7921
7905
  // use conditional to avoid stringifying every time
7922
- true && emberDebug.assert('You passed in `' + JSON.stringify(value) + '` as the value for `' + key + '` but `' + key + '` cannot be an Array', false);
7906
+ true && !false && emberDebug.assert('You passed in `' + JSON.stringify(value) + '` as the value for `' + key + '` but `' + key + '` cannot be an Array', false);
7923
7907
  }
7924
7908
  }
7925
7909
 
@@ -7994,7 +7978,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
7994
7978
 
7995
7979
  for (var i = 0; i < mixins.length; i++) {
7996
7980
  currentMixin = mixins[i];
7997
- true && emberDebug.assert('Expected hash or Mixin instance, got ' + Object.prototype.toString.call(currentMixin), typeof currentMixin === 'object' && currentMixin !== null && Object.prototype.toString.call(currentMixin) !== '[object Array]');
7981
+ true && !(typeof currentMixin === 'object' && currentMixin !== null && Object.prototype.toString.call(currentMixin) !== '[object Array]') && emberDebug.assert('Expected hash or Mixin instance, got ' + Object.prototype.toString.call(currentMixin), typeof currentMixin === 'object' && currentMixin !== null && Object.prototype.toString.call(currentMixin) !== '[object Array]');
7998
7982
 
7999
7983
  props = mixinProperties(meta$$1, currentMixin);
8000
7984
  if (props === CONTINUE) {
@@ -8364,7 +8348,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
8364
8348
 
8365
8349
  for (idx = 0; idx < arguments.length; idx++) {
8366
8350
  currentMixin = arguments[idx];
8367
- true && emberDebug.assert('Expected hash or Mixin instance, got ' + Object.prototype.toString.call(currentMixin), typeof currentMixin === 'object' && currentMixin !== null && Object.prototype.toString.call(currentMixin) !== '[object Array]');
8351
+ true && !(typeof currentMixin === 'object' && currentMixin !== null && Object.prototype.toString.call(currentMixin) !== '[object Array]') && emberDebug.assert('Expected hash or Mixin instance, got ' + Object.prototype.toString.call(currentMixin), typeof currentMixin === 'object' && currentMixin !== null && Object.prototype.toString.call(currentMixin) !== '[object Array]');
8368
8352
 
8369
8353
  if (currentMixin instanceof Mixin) {
8370
8354
  mixins.push(currentMixin);
@@ -8615,7 +8599,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
8615
8599
 
8616
8600
  for (var i = 0; i < arguments.length; i++) {
8617
8601
  var arg = arguments[i];
8618
- true && emberDebug.assert('Immediate observers must observe internal properties only, not properties on other objects.', typeof arg !== 'string' || arg.indexOf('.') === -1);
8602
+ true && !(typeof arg !== 'string' || arg.indexOf('.') === -1) && emberDebug.assert('Immediate observers must observe internal properties only, not properties on other objects.', typeof arg !== 'string' || arg.indexOf('.') === -1);
8619
8603
  }
8620
8604
 
8621
8605
  return observer.apply(this, arguments);
@@ -8695,8 +8679,8 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
8695
8679
  var desc = this[keyName];
8696
8680
  var owner = emberUtils.getOwner(this) || this.container; // fallback to `container` for backwards compat
8697
8681
 
8698
- true && emberDebug.assert('InjectedProperties should be defined with the Ember.inject computed property macros.', desc && desc.isDescriptor && desc.type);
8699
- true && emberDebug.assert('Attempting to lookup an injected property on an object without a container, ensure that the object was instantiated via a container.', owner);
8682
+ true && !(desc && desc.isDescriptor && desc.type) && emberDebug.assert('InjectedProperties should be defined with the Ember.inject computed property macros.', desc && desc.isDescriptor && desc.type);
8683
+ true && !owner && emberDebug.assert('Attempting to lookup an injected property on an object without a container, ensure that the object was instantiated via a container.', owner);
8700
8684
 
8701
8685
  return owner.lookup(desc.type + ':' + (desc.name || keyName));
8702
8686
  }