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

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: 613b60c2b0774caf727b16cacf6577128f45ab65
4
- data.tar.gz: a8b4e3b1d83d93bec8ed02a3ae4d2d0529b8d9ac
3
+ metadata.gz: bd3e19939120975296f3c49573a60ff1077afaa4
4
+ data.tar.gz: 8a0bb39c6f5d4efd9a3029dcfc7a09577769b44a
5
5
  SHA512:
6
- metadata.gz: 8459838e131e049f616a7789be7552c4fc5949896b648ae21c5d831dc3d8de8898043ad6335bf2c3020528b5a054b2b2c6fd677fa2e3b064f6422cba21e41ce3
7
- data.tar.gz: dc0f4e244ed30e5fe524f42e25ac6f4f806d205804d02a31a0b70ae99ba57f30d0cc6f87e78d631322e1b353c147c9941ee11838ad23fa6ca34226053f0d4257
6
+ metadata.gz: 8e846f081643523a71dce8176e31685dac4b0489b9949d1faf97447c44cd55e2bb0a88274b72ef1dd1ab29ad689d3029413cd90833bc5fc1bacedbb738bbacec
7
+ data.tar.gz: 98682ebc8f75b651af4eb556b8cf80856ec137ea4e484de0c0f286aa6aa7840e2e94fb80d8bffc9fda189d14019d5666187c3afba91b479e50638b93321f9217
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.8.0-beta.2
1
+ 1.8.0-beta.3
@@ -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.8.0-beta.2
8
+ * @version 1.8.0-beta.3
9
9
  */
10
10
 
11
11
  (function() {
@@ -3356,12 +3356,26 @@ define("ember-metal/chains",
3356
3356
 
3357
3357
  function finishChains(obj) {
3358
3358
  // We only create meta if we really have to
3359
- var m = obj['__ember_meta__'], chains = m && m.chains;
3360
- if (chains) {
3361
- if (chains.value() !== obj) {
3359
+ var m = obj['__ember_meta__'],
3360
+ chains, chainWatchers, chainNodes;
3361
+ if (m) {
3362
+ // finish any current chains node watchers that reference obj
3363
+ chainWatchers = m.chainWatchers;
3364
+ if (chainWatchers) {
3365
+ for(var key in chainWatchers) {
3366
+ if (!chainWatchers.hasOwnProperty(key)) { continue; }
3367
+ chainNodes = chainWatchers[key];
3368
+ if (chainNodes) {
3369
+ for (var i=0,l=chainNodes.length;i<l;i++) {
3370
+ chainNodes[i].didChange(null);
3371
+ }
3372
+ }
3373
+ }
3374
+ }
3375
+ // copy chains from prototype
3376
+ chains = m.chains;
3377
+ if (chains && chains.value() !== obj) {
3362
3378
  metaFor(obj).chains = chains = chains.copy(obj);
3363
- } else {
3364
- chains.didChange(null);
3365
3379
  }
3366
3380
  }
3367
3381
  }
@@ -4711,7 +4725,7 @@ define("ember-metal/core",
4711
4725
 
4712
4726
  @class Ember
4713
4727
  @static
4714
- @version 1.8.0-beta.2
4728
+ @version 1.8.0-beta.3
4715
4729
  */
4716
4730
 
4717
4731
  if ('undefined' === typeof Ember) {
@@ -4738,10 +4752,10 @@ define("ember-metal/core",
4738
4752
  /**
4739
4753
  @property VERSION
4740
4754
  @type String
4741
- @default '1.8.0-beta.2'
4755
+ @default '1.8.0-beta.3'
4742
4756
  @static
4743
4757
  */
4744
- Ember.VERSION = '1.8.0-beta.2';
4758
+ Ember.VERSION = '1.8.0-beta.3';
4745
4759
 
4746
4760
  /**
4747
4761
  Standard environmental variables. You can define these in a global `EmberENV`
@@ -6267,11 +6281,10 @@ define("ember-metal/is_present",
6267
6281
  __exports__["default"] = isPresent;
6268
6282
  });
6269
6283
  define("ember-metal/keys",
6270
- ["ember-metal/array","ember-metal/platform","exports"],
6271
- function(__dependency1__, __dependency2__, __exports__) {
6284
+ ["ember-metal/platform","exports"],
6285
+ function(__dependency1__, __exports__) {
6272
6286
  "use strict";
6273
- var indexOf = __dependency1__.indexOf;
6274
- var canDefineNonEnumerableProperties = __dependency2__.canDefineNonEnumerableProperties;
6287
+ var canDefineNonEnumerableProperties = __dependency1__.canDefineNonEnumerableProperties;
6275
6288
 
6276
6289
  /**
6277
6290
  Returns all of the keys defined on an object or hash. This is useful
@@ -6286,54 +6299,47 @@ define("ember-metal/keys",
6286
6299
  var keys = Object.keys;
6287
6300
 
6288
6301
  if (!keys || !canDefineNonEnumerableProperties) {
6289
- var prototypeProperties = [
6290
- 'constructor',
6291
- 'hasOwnProperty',
6292
- 'isPrototypeOf',
6293
- 'propertyIsEnumerable',
6294
- 'valueOf',
6295
- 'toLocaleString',
6296
- 'toString'
6297
- ];
6298
- var pushPropertyName = function(obj, array, key) {
6299
- // Prevents browsers that don't respect non-enumerability from
6300
- // copying internal Ember properties
6301
- if (key.substring(0, 2) === '__') {
6302
- return;
6303
- }
6304
-
6305
- if (key === '_super') {
6306
- return;
6307
- }
6308
-
6309
- if (indexOf(array, key) >= 0) {
6310
- return;
6311
- }
6312
-
6313
- if (!Object.prototype.hasOwnProperty.call(obj, key)) {
6314
- return;
6315
- }
6316
-
6317
- array.push(key);
6318
- };
6319
-
6320
- keys = function keys(obj) {
6321
- var ret = [];
6322
- var key;
6323
-
6324
- for (key in obj) {
6325
- pushPropertyName(obj, ret, key);
6326
- }
6302
+ // modified from
6303
+ // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
6304
+ keys = (function () {
6305
+ var hasOwnProperty = Object.prototype.hasOwnProperty,
6306
+ hasDontEnumBug = !({toString: null}).propertyIsEnumerable('toString'),
6307
+ dontEnums = [
6308
+ 'toString',
6309
+ 'toLocaleString',
6310
+ 'valueOf',
6311
+ 'hasOwnProperty',
6312
+ 'isPrototypeOf',
6313
+ 'propertyIsEnumerable',
6314
+ 'constructor'
6315
+ ],
6316
+ dontEnumsLength = dontEnums.length;
6317
+
6318
+ return function keys(obj) {
6319
+ if (typeof obj !== 'object' && (typeof obj !== 'function' || obj === null)) {
6320
+ throw new TypeError('Object.keys called on non-object');
6321
+ }
6327
6322
 
6328
- // IE8 doesn't enumerate property that named the same as prototype properties.
6329
- for (var i = 0, l = prototypeProperties.length; i < l; i++) {
6330
- key = prototypeProperties[i];
6323
+ var result = [], prop, i;
6331
6324
 
6332
- pushPropertyName(obj, ret, key);
6333
- }
6325
+ for (prop in obj) {
6326
+ if (prop !== '_super' &&
6327
+ prop.lastIndexOf('__',0) !== 0 &&
6328
+ hasOwnProperty.call(obj, prop)) {
6329
+ result.push(prop);
6330
+ }
6331
+ }
6334
6332
 
6335
- return ret;
6336
- };
6333
+ if (hasDontEnumBug) {
6334
+ for (i = 0; i < dontEnumsLength; i++) {
6335
+ if (hasOwnProperty.call(obj, dontEnums[i])) {
6336
+ result.push(dontEnums[i]);
6337
+ }
6338
+ }
6339
+ }
6340
+ return result;
6341
+ };
6342
+ }());
6337
6343
  }
6338
6344
 
6339
6345
  __exports__["default"] = keys;
@@ -6535,8 +6541,8 @@ define("ember-metal/logger",
6535
6541
  };
6536
6542
  });
6537
6543
  define("ember-metal/map",
6538
- ["ember-metal/property_set","ember-metal/utils","ember-metal/array","ember-metal/platform","exports"],
6539
- function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __exports__) {
6544
+ ["ember-metal/utils","ember-metal/array","ember-metal/platform","exports"],
6545
+ function(__dependency1__, __dependency2__, __dependency3__, __exports__) {
6540
6546
  "use strict";
6541
6547
  /**
6542
6548
  @module ember-metal
@@ -6562,13 +6568,20 @@ define("ember-metal/map",
6562
6568
  `Ember.Map.create()` for symmetry with other Ember classes.
6563
6569
  */
6564
6570
 
6565
- var set = __dependency1__.set;
6566
- var guidFor = __dependency2__.guidFor;
6567
- var indexOf = __dependency3__.indexOf;
6568
- var create = __dependency4__.create;
6571
+ var guidFor = __dependency1__.guidFor;
6572
+ var indexOf = __dependency2__.indexOf;
6573
+ var create = __dependency3__.create;
6574
+
6575
+ function missingFunction(fn) {
6576
+ throw new TypeError('' + Object.prototype.toString.call(fn) + " is not a function");
6577
+ }
6569
6578
 
6570
- function copy(obj) {
6571
- var output = {};
6579
+ function missingNew(name) {
6580
+ throw new TypeError("Constructor " + name + "requires 'new'");
6581
+ }
6582
+
6583
+ function copyNull(obj) {
6584
+ var output = Object.create(null);
6572
6585
 
6573
6586
  for (var prop in obj) {
6574
6587
  // hasOwnPropery is not needed because obj is Object.create(null);
@@ -6580,11 +6593,11 @@ define("ember-metal/map",
6580
6593
 
6581
6594
  function copyMap(original, newObject) {
6582
6595
  var keys = original.keys.copy();
6583
- var values = copy(original.values);
6596
+ var values = copyNull(original.values);
6584
6597
 
6585
6598
  newObject.keys = keys;
6586
6599
  newObject.values = values;
6587
- newObject.length = original.length;
6600
+ newObject.size = original.size;
6588
6601
 
6589
6602
  return newObject;
6590
6603
  }
@@ -6600,7 +6613,12 @@ define("ember-metal/map",
6600
6613
  @private
6601
6614
  */
6602
6615
  function OrderedSet() {
6603
- this.clear();
6616
+
6617
+ if (this instanceof OrderedSet) {
6618
+ this.clear();
6619
+ } else {
6620
+ missingNew("OrderedSet");
6621
+ }
6604
6622
  }
6605
6623
 
6606
6624
  /**
@@ -6609,47 +6627,77 @@ define("ember-metal/map",
6609
6627
  @return {Ember.OrderedSet}
6610
6628
  */
6611
6629
  OrderedSet.create = function() {
6612
- return new OrderedSet();
6630
+ var Constructor = this;
6631
+
6632
+ return new Constructor();
6613
6633
  };
6614
6634
 
6615
6635
  OrderedSet.prototype = {
6636
+ constructor: OrderedSet,
6616
6637
  /**
6617
6638
  @method clear
6618
6639
  */
6619
6640
  clear: function() {
6620
6641
  this.presenceSet = Object.create(null);
6621
6642
  this.list = [];
6643
+ this.size = 0;
6622
6644
  },
6623
6645
 
6624
6646
  /**
6625
6647
  @method add
6626
6648
  @param obj
6649
+ @param guid (optional, and for internal use)
6650
+ @return {Ember.OrderedSet}
6627
6651
  */
6628
- add: function(obj) {
6629
- var guid = guidFor(obj);
6652
+ add: function(obj, _guid) {
6653
+ var guid = _guid || guidFor(obj);
6630
6654
  var presenceSet = this.presenceSet;
6631
6655
  var list = this.list;
6632
6656
 
6633
- if (presenceSet[guid]) { return; }
6657
+ if (presenceSet[guid]) {
6658
+ return;
6659
+ }
6634
6660
 
6635
6661
  presenceSet[guid] = true;
6636
6662
  list.push(obj);
6663
+ this.size++;
6664
+
6665
+ return this;
6637
6666
  },
6638
6667
 
6639
6668
  /**
6669
+ @deprecated
6670
+
6640
6671
  @method remove
6641
6672
  @param obj
6673
+ @param _guid (optional and for internal use only)
6674
+ @return {Boolean}
6642
6675
  */
6643
- remove: function(obj) {
6644
- var guid = guidFor(obj);
6676
+ remove: function(obj, _guid) {
6677
+ return this['delete'](obj, _guid);
6678
+ },
6679
+
6680
+ /**
6681
+ @method delete
6682
+ @param obj
6683
+ @param _guid (optional and for internal use only)
6684
+ @return {Boolean}
6685
+ */
6686
+ 'delete': function(obj, _guid) {
6687
+ var guid = _guid || guidFor(obj);
6645
6688
  var presenceSet = this.presenceSet;
6646
6689
  var list = this.list;
6647
6690
 
6648
- delete presenceSet[guid];
6649
-
6650
- var index = indexOf.call(list, obj);
6651
- if (index > -1) {
6652
- list.splice(index, 1);
6691
+ if (presenceSet[guid] !== undefined) {
6692
+ delete presenceSet[guid];
6693
+ var index = indexOf.call(list, obj);
6694
+ if (index > -1) {
6695
+ list.splice(index, 1);
6696
+ }
6697
+ this.size--;
6698
+ return true;
6699
+ } else {
6700
+ return false;
6653
6701
  }
6654
6702
  },
6655
6703
 
@@ -6658,7 +6706,7 @@ define("ember-metal/map",
6658
6706
  @return {Boolean}
6659
6707
  */
6660
6708
  isEmpty: function() {
6661
- return this.list.length === 0;
6709
+ return this.size === 0;
6662
6710
  },
6663
6711
 
6664
6712
  /**
@@ -6670,7 +6718,7 @@ define("ember-metal/map",
6670
6718
  var guid = guidFor(obj);
6671
6719
  var presenceSet = this.presenceSet;
6672
6720
 
6673
- return presenceSet[guid];
6721
+ return !!presenceSet[guid];
6674
6722
  },
6675
6723
 
6676
6724
  /**
@@ -6678,12 +6726,19 @@ define("ember-metal/map",
6678
6726
  @param {Function} fn
6679
6727
  @param self
6680
6728
  */
6681
- forEach: function(fn, self) {
6682
- // allow mutation during iteration
6683
- var list = this.toArray();
6729
+ forEach: function(fn, thisArg) {
6730
+ var list = this.list;
6731
+ var length = arguments.length;
6732
+ var i;
6684
6733
 
6685
- for (var i = 0, j = list.length; i < j; i++) {
6686
- fn.call(self, list[i]);
6734
+ if (length === 2) {
6735
+ for (i = 0; i < list.length; i++) {
6736
+ fn.call(thisArg, list[i]);
6737
+ }
6738
+ } else {
6739
+ for (i = 0; i < list.length; i++) {
6740
+ fn(list[i]);
6741
+ }
6687
6742
  }
6688
6743
  },
6689
6744
 
@@ -6700,9 +6755,10 @@ define("ember-metal/map",
6700
6755
  @return {Ember.OrderedSet}
6701
6756
  */
6702
6757
  copy: function() {
6703
- var set = new OrderedSet();
6758
+ var Constructor = this.constructor;
6759
+ var set = new Constructor();
6704
6760
 
6705
- set.presenceSet = copy(this.presenceSet);
6761
+ set.presenceSet = copyNull(this.presenceSet);
6706
6762
  set.list = this.toArray();
6707
6763
 
6708
6764
  return set;
@@ -6730,8 +6786,13 @@ define("ember-metal/map",
6730
6786
  @constructor
6731
6787
  */
6732
6788
  function Map() {
6733
- this.keys = OrderedSet.create();
6734
- this.values = Object.create(null);
6789
+ if (this instanceof this.constructor) {
6790
+ this.keys = OrderedSet.create();
6791
+ this.values = Object.create(null);
6792
+ this.size = 0;
6793
+ } else {
6794
+ missingNew("OrderedSet");
6795
+ }
6735
6796
  }
6736
6797
 
6737
6798
  Ember.Map = Map;
@@ -6741,18 +6802,21 @@ define("ember-metal/map",
6741
6802
  @static
6742
6803
  */
6743
6804
  Map.create = function() {
6744
- return new Map();
6805
+ var Constructor = this;
6806
+ return new Constructor();
6745
6807
  };
6746
6808
 
6747
6809
  Map.prototype = {
6810
+ constructor: Map,
6811
+
6748
6812
  /**
6749
6813
  This property will change as the number of objects in the map changes.
6750
6814
 
6751
- @property length
6815
+ @property size
6752
6816
  @type number
6753
6817
  @default 0
6754
6818
  */
6755
- length: 0,
6819
+ size: 0,
6756
6820
 
6757
6821
  /**
6758
6822
  Retrieve the value associated with a given key.
@@ -6775,18 +6839,23 @@ define("ember-metal/map",
6775
6839
  @method set
6776
6840
  @param {*} key
6777
6841
  @param {*} value
6842
+ @return {Ember.Map}
6778
6843
  */
6779
6844
  set: function(key, value) {
6780
6845
  var keys = this.keys;
6781
6846
  var values = this.values;
6782
6847
  var guid = guidFor(key);
6783
6848
 
6784
- keys.add(key);
6849
+ keys.add(key, guid);
6785
6850
  values[guid] = value;
6786
- set(this, 'length', keys.list.length);
6851
+
6852
+ this.size = keys.size;
6853
+
6854
+ return this;
6787
6855
  },
6788
6856
 
6789
6857
  /**
6858
+ @deprecated see delete
6790
6859
  Removes a value from the map for an associated key.
6791
6860
 
6792
6861
  @method remove
@@ -6794,6 +6863,17 @@ define("ember-metal/map",
6794
6863
  @return {Boolean} true if an item was removed, false otherwise
6795
6864
  */
6796
6865
  remove: function(key) {
6866
+ return this['delete'](key);
6867
+ },
6868
+
6869
+ /**
6870
+ Removes a value from the map for an associated key.
6871
+
6872
+ @method delete
6873
+ @param {*} key
6874
+ @return {Boolean} true if an item was removed, false otherwise
6875
+ */
6876
+ 'delete': function(key) {
6797
6877
  // don't use ES6 "delete" because it will be annoying
6798
6878
  // to use in browsers that are not ES6 friendly;
6799
6879
  var keys = this.keys;
@@ -6801,9 +6881,9 @@ define("ember-metal/map",
6801
6881
  var guid = guidFor(key);
6802
6882
 
6803
6883
  if (values[guid]) {
6804
- keys.remove(key);
6884
+ keys.remove(key, guid);
6805
6885
  delete values[guid];
6806
- set(this, 'length', keys.list.length);
6886
+ this.size = keys.size;
6807
6887
  return true;
6808
6888
  } else {
6809
6889
  return false;
@@ -6818,10 +6898,7 @@ define("ember-metal/map",
6818
6898
  @return {Boolean} true if the item was present, false otherwise
6819
6899
  */
6820
6900
  has: function(key) {
6821
- var values = this.values;
6822
- var guid = guidFor(key);
6823
-
6824
- return !!values[guid];
6901
+ return this.keys.has(key);
6825
6902
  },
6826
6903
 
6827
6904
  /**
@@ -6835,14 +6912,26 @@ define("ember-metal/map",
6835
6912
  @param {*} self if passed, the `this` value inside the
6836
6913
  callback. By default, `this` is the map.
6837
6914
  */
6838
- forEach: function(callback, self) {
6839
- var keys = this.keys;
6840
- var values = this.values;
6915
+ forEach: function(callback, thisArg) {
6916
+ if (typeof callback !== 'function') {
6917
+ missingFunction(callback);
6918
+ }
6841
6919
 
6842
- keys.forEach(function(key) {
6843
- var guid = guidFor(key);
6844
- callback.call(self, key, values[guid]);
6845
- });
6920
+ var length = arguments.length;
6921
+ var map = this;
6922
+ var cb;
6923
+
6924
+ if (length === 2) {
6925
+ cb = function(key) {
6926
+ callback.call(thisArg, map.get(key), key);
6927
+ };
6928
+ } else {
6929
+ cb = function(key) {
6930
+ callback(map.get(key), key);
6931
+ };
6932
+ }
6933
+
6934
+ this.keys.forEach(cb);
6846
6935
  },
6847
6936
 
6848
6937
  /**
@@ -6913,7 +7002,8 @@ define("ember-metal/map",
6913
7002
  @return {Ember.MapWithDefault}
6914
7003
  */
6915
7004
  MapWithDefault.prototype.copy = function() {
6916
- return copyMap(this, new MapWithDefault({
7005
+ var Constructor = this.constructor;
7006
+ return copyMap(this, new Constructor({
6917
7007
  defaultValue: this.defaultValue
6918
7008
  }));
6919
7009
  };
@@ -6923,9 +7013,11 @@ define("ember-metal/map",
6923
7013
  __exports__.MapWithDefault = MapWithDefault;
6924
7014
  });
6925
7015
  define("ember-metal/merge",
6926
- ["exports"],
6927
- function(__exports__) {
7016
+ ["ember-metal/keys","exports"],
7017
+ function(__dependency1__, __exports__) {
6928
7018
  "use strict";
7019
+ var keys = __dependency1__["default"];
7020
+
6929
7021
  /**
6930
7022
  Merge the contents of two objects together into the first object.
6931
7023
 
@@ -6942,10 +7034,19 @@ define("ember-metal/merge",
6942
7034
  @return {Object}
6943
7035
  */
6944
7036
  __exports__["default"] = function merge(original, updates) {
6945
- for (var prop in updates) {
6946
- if (!updates.hasOwnProperty(prop)) { continue; }
7037
+ if (!updates || typeof updates !== 'object') {
7038
+ return original;
7039
+ }
7040
+
7041
+ var props = keys(updates);
7042
+ var prop;
7043
+ var length = props.length;
7044
+
7045
+ for (var i = 0; i < length; i++) {
7046
+ prop = props[i];
6947
7047
  original[prop] = updates[prop];
6948
7048
  }
7049
+
6949
7050
  return original;
6950
7051
  }
6951
7052
  });
@@ -14180,8 +14281,8 @@ define("ember-runtime/mixins/action_handler",
14180
14281
  __exports__["default"] = ActionHandler;
14181
14282
  });
14182
14283
  define("ember-runtime/mixins/array",
14183
- ["ember-metal/core","ember-metal/property_get","ember-metal/property_set","ember-metal/computed","ember-metal/is_none","ember-runtime/mixins/enumerable","ember-metal/enumerable_utils","ember-metal/mixin","ember-metal/property_events","ember-metal/events","ember-metal/watching","exports"],
14184
- function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __exports__) {
14284
+ ["ember-metal/core","ember-metal/property_get","ember-metal/computed","ember-metal/is_none","ember-runtime/mixins/enumerable","ember-metal/enumerable_utils","ember-metal/mixin","ember-metal/property_events","ember-metal/events","ember-metal/watching","exports"],
14285
+ function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __exports__) {
14185
14286
  "use strict";
14186
14287
  /**
14187
14288
  @module ember
@@ -14193,24 +14294,22 @@ define("ember-runtime/mixins/array",
14193
14294
  //
14194
14295
  var Ember = __dependency1__["default"];
14195
14296
  // ES6TODO: Ember.A
14196
-
14197
14297
  var get = __dependency2__.get;
14198
- var set = __dependency3__.set;
14199
- var computed = __dependency4__.computed;
14200
- var cacheFor = __dependency4__.cacheFor;
14201
- var isNone = __dependency5__.isNone;
14202
- var none = __dependency5__.none;
14203
- var Enumerable = __dependency6__["default"];
14204
- var map = __dependency7__.map;
14205
- var Mixin = __dependency8__.Mixin;
14206
- var required = __dependency8__.required;
14207
- var propertyWillChange = __dependency9__.propertyWillChange;
14208
- var propertyDidChange = __dependency9__.propertyDidChange;
14209
- var addListener = __dependency10__.addListener;
14210
- var removeListener = __dependency10__.removeListener;
14211
- var sendEvent = __dependency10__.sendEvent;
14212
- var hasListeners = __dependency10__.hasListeners;
14213
- var isWatching = __dependency11__.isWatching;
14298
+ var computed = __dependency3__.computed;
14299
+ var cacheFor = __dependency3__.cacheFor;
14300
+ var isNone = __dependency4__.isNone;
14301
+ var none = __dependency4__.none;
14302
+ var Enumerable = __dependency5__["default"];
14303
+ var map = __dependency6__.map;
14304
+ var Mixin = __dependency7__.Mixin;
14305
+ var required = __dependency7__.required;
14306
+ var propertyWillChange = __dependency8__.propertyWillChange;
14307
+ var propertyDidChange = __dependency8__.propertyDidChange;
14308
+ var addListener = __dependency9__.addListener;
14309
+ var removeListener = __dependency9__.removeListener;
14310
+ var sendEvent = __dependency9__.sendEvent;
14311
+ var hasListeners = __dependency9__.hasListeners;
14312
+ var isWatching = __dependency10__.isWatching;
14214
14313
 
14215
14314
  function arrayObserversHelper(obj, target, opts, operation, notify) {
14216
14315
  var willChange = (opts && opts.willChange) || 'arrayWillChange';
@@ -14227,6 +14326,7 @@ define("ember-runtime/mixins/array",
14227
14326
  if (hasObservers === notify) {
14228
14327
  propertyDidChange(obj, 'hasArrayObservers');
14229
14328
  }
14329
+
14230
14330
  return obj;
14231
14331
  }
14232
14332
 
@@ -14290,8 +14390,9 @@ define("ember-runtime/mixins/array",
14290
14390
 
14291
14391
  ```javascript
14292
14392
  var arr = ['a', 'b', 'c', 'd'];
14293
- arr.objectAt(0); // "a"
14294
- arr.objectAt(3); // "d"
14393
+
14394
+ arr.objectAt(0); // 'a'
14395
+ arr.objectAt(3); // 'd'
14295
14396
  arr.objectAt(-1); // undefined
14296
14397
  arr.objectAt(4); // undefined
14297
14398
  arr.objectAt(5); // undefined
@@ -14302,7 +14403,10 @@ define("ember-runtime/mixins/array",
14302
14403
  @return {*} item at index or undefined
14303
14404
  */
14304
14405
  objectAt: function(idx) {
14305
- if (idx < 0 || idx >= get(this, 'length')) return undefined;
14406
+ if (idx < 0 || idx >= get(this, 'length')) {
14407
+ return undefined;
14408
+ }
14409
+
14306
14410
  return get(this, idx);
14307
14411
  },
14308
14412
 
@@ -14311,8 +14415,9 @@ define("ember-runtime/mixins/array",
14311
14415
 
14312
14416
  ```javascript
14313
14417
  var arr = ['a', 'b', 'c', 'd'];
14314
- arr.objectsAt([0, 1, 2]); // ["a", "b", "c"]
14315
- arr.objectsAt([2, 3, 4]); // ["c", "d", undefined]
14418
+
14419
+ arr.objectsAt([0, 1, 2]); // ['a', 'b', 'c']
14420
+ arr.objectsAt([2, 3, 4]); // ['c', 'd', undefined]
14316
14421
  ```
14317
14422
 
14318
14423
  @method objectsAt
@@ -14321,7 +14426,10 @@ define("ember-runtime/mixins/array",
14321
14426
  */
14322
14427
  objectsAt: function(indexes) {
14323
14428
  var self = this;
14324
- return map(indexes, function(idx) { return self.objectAt(idx); });
14429
+
14430
+ return map(indexes, function(idx) {
14431
+ return self.objectAt(idx);
14432
+ });
14325
14433
  },
14326
14434
 
14327
14435
  // overrides Ember.Enumerable version
@@ -14340,7 +14448,10 @@ define("ember-runtime/mixins/array",
14340
14448
  @return this
14341
14449
  */
14342
14450
  '[]': computed(function(key, value) {
14343
- if (value !== undefined) this.replace(0, get(this, 'length'), value) ;
14451
+ if (value !== undefined) {
14452
+ this.replace(0, get(this, 'length'), value);
14453
+ }
14454
+
14344
14455
  return this;
14345
14456
  }),
14346
14457
 
@@ -14349,7 +14460,7 @@ define("ember-runtime/mixins/array",
14349
14460
  }),
14350
14461
 
14351
14462
  lastObject: computed(function() {
14352
- return this.objectAt(get(this, 'length')-1);
14463
+ return this.objectAt(get(this, 'length') - 1);
14353
14464
  }),
14354
14465
 
14355
14466
  // optimized version from Enumerable
@@ -14365,6 +14476,7 @@ define("ember-runtime/mixins/array",
14365
14476
 
14366
14477
  ```javascript
14367
14478
  var arr = ['red', 'green', 'blue'];
14479
+
14368
14480
  arr.slice(0); // ['red', 'green', 'blue']
14369
14481
  arr.slice(0, 2); // ['red', 'green']
14370
14482
  arr.slice(1, 100); // ['green', 'blue']
@@ -14377,17 +14489,29 @@ define("ember-runtime/mixins/array",
14377
14489
  */
14378
14490
  slice: function(beginIndex, endIndex) {
14379
14491
  var ret = Ember.A();
14380
- var length = get(this, 'length') ;
14381
- if (isNone(beginIndex)) beginIndex = 0 ;
14382
- if (isNone(endIndex) || (endIndex > length)) endIndex = length ;
14492
+ var length = get(this, 'length');
14383
14493
 
14384
- if (beginIndex < 0) beginIndex = length + beginIndex;
14385
- if (endIndex < 0) endIndex = length + endIndex;
14494
+ if (isNone(beginIndex)) {
14495
+ beginIndex = 0;
14496
+ }
14386
14497
 
14387
- while(beginIndex < endIndex) {
14388
- ret[ret.length] = this.objectAt(beginIndex++) ;
14498
+ if (isNone(endIndex) || (endIndex > length)) {
14499
+ endIndex = length;
14389
14500
  }
14390
- return ret ;
14501
+
14502
+ if (beginIndex < 0) {
14503
+ beginIndex = length + beginIndex;
14504
+ }
14505
+
14506
+ if (endIndex < 0) {
14507
+ endIndex = length + endIndex;
14508
+ }
14509
+
14510
+ while (beginIndex < endIndex) {
14511
+ ret[ret.length] = this.objectAt(beginIndex++);
14512
+ }
14513
+
14514
+ return ret;
14391
14515
  },
14392
14516
 
14393
14517
  /**
@@ -14397,13 +14521,14 @@ define("ember-runtime/mixins/array",
14397
14521
  the end of the array. Returns -1 if no match is found.
14398
14522
 
14399
14523
  ```javascript
14400
- var arr = ["a", "b", "c", "d", "a"];
14401
- arr.indexOf("a"); // 0
14402
- arr.indexOf("z"); // -1
14403
- arr.indexOf("a", 2); // 4
14404
- arr.indexOf("a", -1); // 4
14405
- arr.indexOf("b", 3); // -1
14406
- arr.indexOf("a", 100); // -1
14524
+ var arr = ['a', 'b', 'c', 'd', 'a'];
14525
+
14526
+ arr.indexOf('a'); // 0
14527
+ arr.indexOf('z'); // -1
14528
+ arr.indexOf('a', 2); // 4
14529
+ arr.indexOf('a', -1); // 4
14530
+ arr.indexOf('b', 3); // -1
14531
+ arr.indexOf('a', 100); // -1
14407
14532
  ```
14408
14533
 
14409
14534
  @method indexOf
@@ -14412,14 +14537,23 @@ define("ember-runtime/mixins/array",
14412
14537
  @return {Number} index or -1 if not found
14413
14538
  */
14414
14539
  indexOf: function(object, startAt) {
14415
- var idx, len = get(this, 'length');
14540
+ var len = get(this, 'length');
14541
+ var idx;
14416
14542
 
14417
- if (startAt === undefined) startAt = 0;
14418
- if (startAt < 0) startAt += len;
14543
+ if (startAt === undefined) {
14544
+ startAt = 0;
14545
+ }
14546
+
14547
+ if (startAt < 0) {
14548
+ startAt += len;
14549
+ }
14419
14550
 
14420
- for(idx = startAt; idx < len; idx++) {
14421
- if (this.objectAt(idx) === object) return idx;
14551
+ for (idx = startAt; idx < len; idx++) {
14552
+ if (this.objectAt(idx) === object) {
14553
+ return idx;
14554
+ }
14422
14555
  }
14556
+
14423
14557
  return -1;
14424
14558
  },
14425
14559
 
@@ -14430,13 +14564,14 @@ define("ember-runtime/mixins/array",
14430
14564
  from the end of the array. Returns -1 if no match is found.
14431
14565
 
14432
14566
  ```javascript
14433
- var arr = ["a", "b", "c", "d", "a"];
14434
- arr.lastIndexOf("a"); // 4
14435
- arr.lastIndexOf("z"); // -1
14436
- arr.lastIndexOf("a", 2); // 0
14437
- arr.lastIndexOf("a", -1); // 4
14438
- arr.lastIndexOf("b", 3); // 1
14439
- arr.lastIndexOf("a", 100); // 4
14567
+ var arr = ['a', 'b', 'c', 'd', 'a'];
14568
+
14569
+ arr.lastIndexOf('a'); // 4
14570
+ arr.lastIndexOf('z'); // -1
14571
+ arr.lastIndexOf('a', 2); // 0
14572
+ arr.lastIndexOf('a', -1); // 4
14573
+ arr.lastIndexOf('b', 3); // 1
14574
+ arr.lastIndexOf('a', 100); // 4
14440
14575
  ```
14441
14576
 
14442
14577
  @method lastIndexOf
@@ -14445,14 +14580,23 @@ define("ember-runtime/mixins/array",
14445
14580
  @return {Number} index or -1 if not found
14446
14581
  */
14447
14582
  lastIndexOf: function(object, startAt) {
14448
- var idx, len = get(this, 'length');
14583
+ var len = get(this, 'length');
14584
+ var idx;
14585
+
14586
+ if (startAt === undefined || startAt >= len) {
14587
+ startAt = len-1;
14588
+ }
14449
14589
 
14450
- if (startAt === undefined || startAt >= len) startAt = len-1;
14451
- if (startAt < 0) startAt += len;
14590
+ if (startAt < 0) {
14591
+ startAt += len;
14592
+ }
14452
14593
 
14453
- for(idx = startAt; idx >= 0; idx--) {
14454
- if (this.objectAt(idx) === object) return idx;
14594
+ for (idx = startAt; idx >= 0; idx--) {
14595
+ if (this.objectAt(idx) === object) {
14596
+ return idx;
14597
+ }
14455
14598
  }
14599
+
14456
14600
  return -1;
14457
14601
  },
14458
14602
 
@@ -14529,26 +14673,36 @@ define("ember-runtime/mixins/array",
14529
14673
  @return {Ember.Array} receiver
14530
14674
  */
14531
14675
  arrayContentWillChange: function(startIdx, removeAmt, addAmt) {
14676
+ var removing, lim;
14532
14677
 
14533
14678
  // if no args are passed assume everything changes
14534
- if (startIdx===undefined) {
14679
+ if (startIdx === undefined) {
14535
14680
  startIdx = 0;
14536
14681
  removeAmt = addAmt = -1;
14537
14682
  } else {
14538
- if (removeAmt === undefined) removeAmt=-1;
14539
- if (addAmt === undefined) addAmt=-1;
14683
+ if (removeAmt === undefined) {
14684
+ removeAmt = -1;
14685
+ }
14686
+
14687
+ if (addAmt === undefined) {
14688
+ addAmt = -1;
14689
+ }
14540
14690
  }
14541
14691
 
14542
14692
  // Make sure the @each proxy is set up if anyone is observing @each
14543
- if (isWatching(this, '@each')) { get(this, '@each'); }
14693
+ if (isWatching(this, '@each')) {
14694
+ get(this, '@each');
14695
+ }
14544
14696
 
14545
14697
  sendEvent(this, '@array:before', [this, startIdx, removeAmt, addAmt]);
14546
14698
 
14547
- var removing, lim;
14548
- if (startIdx>=0 && removeAmt>=0 && get(this, 'hasEnumerableObservers')) {
14699
+ if (startIdx >= 0 && removeAmt >= 0 && get(this, 'hasEnumerableObservers')) {
14549
14700
  removing = [];
14550
- lim = startIdx+removeAmt;
14551
- for(var idx=startIdx;idx<lim;idx++) removing.push(this.objectAt(idx));
14701
+ lim = startIdx + removeAmt;
14702
+
14703
+ for (var idx = startIdx; idx < lim; idx++) {
14704
+ removing.push(this.objectAt(idx));
14705
+ }
14552
14706
  } else {
14553
14707
  removing = removeAmt;
14554
14708
  }
@@ -14573,21 +14727,29 @@ define("ember-runtime/mixins/array",
14573
14727
  @return {Ember.Array} receiver
14574
14728
  */
14575
14729
  arrayContentDidChange: function(startIdx, removeAmt, addAmt) {
14730
+ var adding, lim;
14576
14731
 
14577
14732
  // if no args are passed assume everything changes
14578
- if (startIdx===undefined) {
14733
+ if (startIdx === undefined) {
14579
14734
  startIdx = 0;
14580
14735
  removeAmt = addAmt = -1;
14581
14736
  } else {
14582
- if (removeAmt === undefined) removeAmt=-1;
14583
- if (addAmt === undefined) addAmt=-1;
14737
+ if (removeAmt === undefined) {
14738
+ removeAmt = -1;
14739
+ }
14740
+
14741
+ if (addAmt === undefined) {
14742
+ addAmt = -1;
14743
+ }
14584
14744
  }
14585
14745
 
14586
- var adding, lim;
14587
- if (startIdx>=0 && addAmt>=0 && get(this, 'hasEnumerableObservers')) {
14746
+ if (startIdx >= 0 && addAmt >= 0 && get(this, 'hasEnumerableObservers')) {
14588
14747
  adding = [];
14589
- lim = startIdx+addAmt;
14590
- for(var idx=startIdx;idx<lim;idx++) adding.push(this.objectAt(idx));
14748
+ lim = startIdx + addAmt;
14749
+
14750
+ for (var idx = startIdx; idx < lim; idx++) {
14751
+ adding.push(this.objectAt(idx));
14752
+ }
14591
14753
  } else {
14592
14754
  adding = addAmt;
14593
14755
  }
@@ -14595,13 +14757,15 @@ define("ember-runtime/mixins/array",
14595
14757
  this.enumerableContentDidChange(removeAmt, adding);
14596
14758
  sendEvent(this, '@array:change', [this, startIdx, removeAmt, addAmt]);
14597
14759
 
14598
- var length = get(this, 'length');
14760
+ var length = get(this, 'length');
14599
14761
  var cachedFirst = cacheFor(this, 'firstObject');
14600
- var cachedLast = cacheFor(this, 'lastObject');
14762
+ var cachedLast = cacheFor(this, 'lastObject');
14763
+
14601
14764
  if (this.objectAt(0) !== cachedFirst) {
14602
14765
  propertyWillChange(this, 'firstObject');
14603
14766
  propertyDidChange(this, 'firstObject');
14604
14767
  }
14768
+
14605
14769
  if (this.objectAt(length-1) !== cachedLast) {
14606
14770
  propertyWillChange(this, 'lastObject');
14607
14771
  propertyDidChange(this, 'lastObject');