ember-source 1.8.0.beta.2 → 1.8.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: 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');