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 +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');
|