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 +4 -4
- data/VERSION +1 -1
- data/dist/ember-runtime.js +354 -190
- data/dist/ember-tests.js +507 -64
- data/dist/ember-tests.prod.js +507 -64
- data/dist/ember.js +853 -519
- data/dist/ember.min.js +12 -12
- data/dist/ember.prod.js +851 -519
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bd3e19939120975296f3c49573a60ff1077afaa4
|
4
|
+
data.tar.gz: 8a0bb39c6f5d4efd9a3029dcfc7a09577769b44a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8e846f081643523a71dce8176e31685dac4b0489b9949d1faf97447c44cd55e2bb0a88274b72ef1dd1ab29ad689d3029413cd90833bc5fc1bacedbb738bbacec
|
7
|
+
data.tar.gz: 98682ebc8f75b651af4eb556b8cf80856ec137ea4e484de0c0f286aa6aa7840e2e94fb80d8bffc9fda189d14019d5666187c3afba91b479e50638b93321f9217
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.8.0-beta.
|
1
|
+
1.8.0-beta.3
|
data/dist/ember-runtime.js
CHANGED
@@ -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.
|
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__'],
|
3360
|
-
|
3361
|
-
|
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.
|
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.
|
4755
|
+
@default '1.8.0-beta.3'
|
4742
4756
|
@static
|
4743
4757
|
*/
|
4744
|
-
Ember.VERSION = '1.8.0-beta.
|
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/
|
6271
|
-
function(__dependency1__,
|
6284
|
+
["ember-metal/platform","exports"],
|
6285
|
+
function(__dependency1__, __exports__) {
|
6272
6286
|
"use strict";
|
6273
|
-
var
|
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
|
-
|
6290
|
-
|
6291
|
-
|
6292
|
-
|
6293
|
-
|
6294
|
-
|
6295
|
-
|
6296
|
-
|
6297
|
-
|
6298
|
-
|
6299
|
-
|
6300
|
-
|
6301
|
-
|
6302
|
-
|
6303
|
-
|
6304
|
-
|
6305
|
-
|
6306
|
-
|
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
|
-
|
6329
|
-
for (var i = 0, l = prototypeProperties.length; i < l; i++) {
|
6330
|
-
key = prototypeProperties[i];
|
6323
|
+
var result = [], prop, i;
|
6331
6324
|
|
6332
|
-
|
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
|
-
|
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/
|
6539
|
-
function(__dependency1__, __dependency2__, __dependency3__,
|
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
|
6566
|
-
var
|
6567
|
-
var
|
6568
|
-
|
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
|
6571
|
-
|
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 =
|
6596
|
+
var values = copyNull(original.values);
|
6584
6597
|
|
6585
6598
|
newObject.keys = keys;
|
6586
6599
|
newObject.values = values;
|
6587
|
-
newObject.
|
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
|
-
|
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
|
-
|
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]) {
|
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
|
-
|
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
|
-
|
6649
|
-
|
6650
|
-
|
6651
|
-
|
6652
|
-
|
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.
|
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,
|
6682
|
-
|
6683
|
-
var
|
6729
|
+
forEach: function(fn, thisArg) {
|
6730
|
+
var list = this.list;
|
6731
|
+
var length = arguments.length;
|
6732
|
+
var i;
|
6684
6733
|
|
6685
|
-
|
6686
|
-
|
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
|
6758
|
+
var Constructor = this.constructor;
|
6759
|
+
var set = new Constructor();
|
6704
6760
|
|
6705
|
-
set.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
|
6734
|
-
|
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
|
-
|
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
|
6815
|
+
@property size
|
6752
6816
|
@type number
|
6753
6817
|
@default 0
|
6754
6818
|
*/
|
6755
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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,
|
6839
|
-
|
6840
|
-
|
6915
|
+
forEach: function(callback, thisArg) {
|
6916
|
+
if (typeof callback !== 'function') {
|
6917
|
+
missingFunction(callback);
|
6918
|
+
}
|
6841
6919
|
|
6842
|
-
|
6843
|
-
|
6844
|
-
|
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
|
-
|
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
|
-
|
6946
|
-
|
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/
|
14184
|
-
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__,
|
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
|
14199
|
-
var
|
14200
|
-
var
|
14201
|
-
var
|
14202
|
-
var
|
14203
|
-
var
|
14204
|
-
var
|
14205
|
-
var
|
14206
|
-
var
|
14207
|
-
var
|
14208
|
-
var
|
14209
|
-
var
|
14210
|
-
var
|
14211
|
-
var
|
14212
|
-
var
|
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
|
-
|
14294
|
-
arr.objectAt(
|
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'))
|
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
|
-
|
14315
|
-
arr.objectsAt([
|
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
|
-
|
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)
|
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
|
14385
|
-
|
14494
|
+
if (isNone(beginIndex)) {
|
14495
|
+
beginIndex = 0;
|
14496
|
+
}
|
14386
14497
|
|
14387
|
-
|
14388
|
-
|
14498
|
+
if (isNone(endIndex) || (endIndex > length)) {
|
14499
|
+
endIndex = length;
|
14389
14500
|
}
|
14390
|
-
|
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 = [
|
14401
|
-
|
14402
|
-
arr.indexOf(
|
14403
|
-
arr.indexOf(
|
14404
|
-
arr.indexOf(
|
14405
|
-
arr.indexOf(
|
14406
|
-
arr.indexOf(
|
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
|
14540
|
+
var len = get(this, 'length');
|
14541
|
+
var idx;
|
14416
14542
|
|
14417
|
-
if (startAt === undefined)
|
14418
|
-
|
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)
|
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 = [
|
14434
|
-
|
14435
|
-
arr.lastIndexOf(
|
14436
|
-
arr.lastIndexOf(
|
14437
|
-
arr.lastIndexOf(
|
14438
|
-
arr.lastIndexOf(
|
14439
|
-
arr.lastIndexOf(
|
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
|
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
|
14451
|
-
|
14590
|
+
if (startAt < 0) {
|
14591
|
+
startAt += len;
|
14592
|
+
}
|
14452
14593
|
|
14453
|
-
for(idx = startAt; idx >= 0; idx--) {
|
14454
|
-
if (this.objectAt(idx) === object)
|
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)
|
14539
|
-
|
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')) {
|
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
|
-
|
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
|
-
|
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)
|
14583
|
-
|
14737
|
+
if (removeAmt === undefined) {
|
14738
|
+
removeAmt = -1;
|
14739
|
+
}
|
14740
|
+
|
14741
|
+
if (addAmt === undefined) {
|
14742
|
+
addAmt = -1;
|
14743
|
+
}
|
14584
14744
|
}
|
14585
14745
|
|
14586
|
-
|
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
|
-
|
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
|
14760
|
+
var length = get(this, 'length');
|
14599
14761
|
var cachedFirst = cacheFor(this, 'firstObject');
|
14600
|
-
var cachedLast
|
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');
|