ember-source 1.8.0.beta.3 → 1.8.0.beta.4
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 +215 -89
- data/dist/ember-tests.js +353 -15
- data/dist/ember-tests.prod.js +353 -15
- data/dist/ember.js +318 -182
- data/dist/ember.min.js +12 -12
- data/dist/ember.prod.js +316 -182
- 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: 1ffeb5cdfb2eb08e6473fc492c7492620bb6dab8
|
4
|
+
data.tar.gz: 097e80d0bed3b23bc532d963ac4236d2bc68003e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 633d7ca1d371f1a22efc8647b307c03e682ae4ec52c557e200f5a84b6bfc460f7cbd8a2019e451d6b15abdd1154445d4b5833bc776832caff8f4340552c37c02
|
7
|
+
data.tar.gz: 9c16f7819ee9d7cea4deb894fcc2be592063eff8e6abb1c7d1b63949f079f92fb55ce8ad99c9a1a5e7742a1ec116efc34888bb821f78d677b35493630186cec4
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.8.0-beta.
|
1
|
+
1.8.0-beta.4
|
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.4
|
9
9
|
*/
|
10
10
|
|
11
11
|
(function() {
|
@@ -82,6 +82,7 @@ define("backburner",
|
|
82
82
|
var isNumber = __dependency1__.isNumber;
|
83
83
|
var isCoercableNumber = __dependency1__.isCoercableNumber;
|
84
84
|
var wrapInTryCatch = __dependency1__.wrapInTryCatch;
|
85
|
+
var now = __dependency1__.now;
|
85
86
|
|
86
87
|
var needsIETryCatchFix = __dependency2__.needsIETryCatchFix;
|
87
88
|
|
@@ -251,9 +252,11 @@ define("backburner",
|
|
251
252
|
setTimeout: function() {
|
252
253
|
var l = arguments.length;
|
253
254
|
var args = new Array(l);
|
255
|
+
|
254
256
|
for (var x = 0; x < l; x++) {
|
255
257
|
args[x] = arguments[x];
|
256
258
|
}
|
259
|
+
|
257
260
|
var length = args.length,
|
258
261
|
method, wait, target,
|
259
262
|
methodOrTarget, methodOrWait, methodOrArgs;
|
@@ -300,7 +303,7 @@ define("backburner",
|
|
300
303
|
}
|
301
304
|
}
|
302
305
|
|
303
|
-
var executeAt = (
|
306
|
+
var executeAt = now() + parseInt(wait, 10);
|
304
307
|
|
305
308
|
if (isString(method)) {
|
306
309
|
method = target[method];
|
@@ -331,7 +334,7 @@ define("backburner",
|
|
331
334
|
},
|
332
335
|
|
333
336
|
throttle: function(target, method /* , args, wait, [immediate] */) {
|
334
|
-
var
|
337
|
+
var backburner = this;
|
335
338
|
var args = arguments;
|
336
339
|
var immediate = pop.call(args);
|
337
340
|
var wait, throttler, index, timer;
|
@@ -350,16 +353,16 @@ define("backburner",
|
|
350
353
|
|
351
354
|
timer = global.setTimeout(function() {
|
352
355
|
if (!immediate) {
|
353
|
-
|
356
|
+
backburner.run.apply(backburner, args);
|
354
357
|
}
|
355
|
-
var index = findThrottler(target, method,
|
358
|
+
var index = findThrottler(target, method, backburner._throttlers);
|
356
359
|
if (index > -1) {
|
357
|
-
|
360
|
+
backburner._throttlers.splice(index, 1);
|
358
361
|
}
|
359
362
|
}, wait);
|
360
363
|
|
361
364
|
if (immediate) {
|
362
|
-
|
365
|
+
this.run.apply(this, args);
|
363
366
|
}
|
364
367
|
|
365
368
|
throttler = [target, method, timer];
|
@@ -370,7 +373,7 @@ define("backburner",
|
|
370
373
|
},
|
371
374
|
|
372
375
|
debounce: function(target, method /* , args, wait, [immediate] */) {
|
373
|
-
var
|
376
|
+
var backburner = this;
|
374
377
|
var args = arguments;
|
375
378
|
var immediate = pop.call(args);
|
376
379
|
var wait, index, debouncee, timer;
|
@@ -394,16 +397,16 @@ define("backburner",
|
|
394
397
|
|
395
398
|
timer = global.setTimeout(function() {
|
396
399
|
if (!immediate) {
|
397
|
-
|
400
|
+
backburner.run.apply(backburner, args);
|
398
401
|
}
|
399
|
-
var index = findDebouncee(target, method,
|
402
|
+
var index = findDebouncee(target, method, backburner._debouncees);
|
400
403
|
if (index > -1) {
|
401
|
-
|
404
|
+
backburner._debouncees.splice(index, 1);
|
402
405
|
}
|
403
406
|
}, wait);
|
404
407
|
|
405
408
|
if (immediate && index === -1) {
|
406
|
-
|
409
|
+
backburner.run.apply(backburner, args);
|
407
410
|
}
|
408
411
|
|
409
412
|
debouncee = [
|
@@ -412,7 +415,7 @@ define("backburner",
|
|
412
415
|
timer
|
413
416
|
];
|
414
417
|
|
415
|
-
|
418
|
+
backburner._debouncees.push(debouncee);
|
416
419
|
|
417
420
|
return debouncee;
|
418
421
|
},
|
@@ -459,7 +462,7 @@ define("backburner",
|
|
459
462
|
this._laterTimer = null;
|
460
463
|
}
|
461
464
|
if (this._timers.length > 0) { // Update to next available timer when available
|
462
|
-
updateLaterTimer(this, this._timers[0], this._timers[0] - (
|
465
|
+
updateLaterTimer(this, this._timers[0], this._timers[0] - now());
|
463
466
|
}
|
464
467
|
}
|
465
468
|
return true;
|
@@ -519,48 +522,48 @@ define("backburner",
|
|
519
522
|
});
|
520
523
|
}
|
521
524
|
|
522
|
-
function updateLaterTimer(
|
523
|
-
var
|
524
|
-
if (!
|
525
|
+
function updateLaterTimer(backburner, executeAt, wait) {
|
526
|
+
var n = now();
|
527
|
+
if (!backburner._laterTimer || executeAt < backburner._laterTimerExpiresAt || backburner._laterTimerExpiresAt < n) {
|
525
528
|
|
526
|
-
if (
|
529
|
+
if (backburner._laterTimer) {
|
527
530
|
// Clear when:
|
528
531
|
// - Already expired
|
529
532
|
// - New timer is earlier
|
530
|
-
clearTimeout(
|
533
|
+
clearTimeout(backburner._laterTimer);
|
531
534
|
|
532
|
-
if (
|
535
|
+
if (backburner._laterTimerExpiresAt < n) { // If timer was never triggered
|
533
536
|
// Calculate the left-over wait-time
|
534
|
-
wait = Math.max(0, executeAt -
|
537
|
+
wait = Math.max(0, executeAt - n);
|
535
538
|
}
|
536
539
|
}
|
537
540
|
|
538
|
-
|
539
|
-
|
540
|
-
|
541
|
-
executeTimers(
|
541
|
+
backburner._laterTimer = global.setTimeout(function() {
|
542
|
+
backburner._laterTimer = null;
|
543
|
+
backburner._laterTimerExpiresAt = null;
|
544
|
+
executeTimers(backburner);
|
542
545
|
}, wait);
|
543
546
|
|
544
|
-
|
547
|
+
backburner._laterTimerExpiresAt = n + wait;
|
545
548
|
}
|
546
549
|
}
|
547
550
|
|
548
|
-
function executeTimers(
|
549
|
-
var
|
551
|
+
function executeTimers(backburner) {
|
552
|
+
var n = now();
|
550
553
|
var fns, i, l;
|
551
554
|
|
552
|
-
|
553
|
-
i = searchTimer(
|
555
|
+
backburner.run(function() {
|
556
|
+
i = searchTimer(n, backburner._timers);
|
554
557
|
|
555
|
-
fns =
|
558
|
+
fns = backburner._timers.splice(0, i);
|
556
559
|
|
557
560
|
for (i = 1, l = fns.length; i < l; i += 2) {
|
558
|
-
|
561
|
+
backburner.schedule(backburner.options.defaultQueue, null, fns[i]);
|
559
562
|
}
|
560
563
|
});
|
561
564
|
|
562
|
-
if (
|
563
|
-
updateLaterTimer(
|
565
|
+
if (backburner._timers.length) {
|
566
|
+
updateLaterTimer(backburner, backburner._timers[0], backburner._timers[0] - n);
|
564
567
|
}
|
565
568
|
}
|
566
569
|
|
@@ -713,7 +716,9 @@ define("backburner/deferred-action-queues",
|
|
713
716
|
var queueIndex = 0;
|
714
717
|
var numberOfQueueItems = queueItems.length;
|
715
718
|
|
716
|
-
if (numberOfQueueItems && before) {
|
719
|
+
if (numberOfQueueItems && before) {
|
720
|
+
before();
|
721
|
+
}
|
717
722
|
|
718
723
|
while (queueIndex < numberOfQueueItems) {
|
719
724
|
target = queueItems[queueIndex];
|
@@ -721,10 +726,26 @@ define("backburner/deferred-action-queues",
|
|
721
726
|
args = queueItems[queueIndex+2];
|
722
727
|
errorRecordedForStack = queueItems[queueIndex+3]; // Debugging assistance
|
723
728
|
|
724
|
-
|
729
|
+
//
|
730
|
+
|
731
|
+
if (isString(method)) {
|
732
|
+
method = target[method];
|
733
|
+
}
|
725
734
|
|
726
735
|
// method could have been nullified / canceled during flush
|
727
736
|
if (method) {
|
737
|
+
//
|
738
|
+
// ** Attention intrepid developer **
|
739
|
+
//
|
740
|
+
// To find out the stack of this task when it was scheduled onto
|
741
|
+
// the run loop, add the following to your app.js:
|
742
|
+
//
|
743
|
+
// Ember.run.backburner.DEBUG = true; // NOTE: This slows your app, don't leave it on in production.
|
744
|
+
//
|
745
|
+
// Once that is in place, when you are at a breakpoint and navigate
|
746
|
+
// here in the stack explorer, you can look at `errorRecordedForStack.stack`,
|
747
|
+
// which will be the captured stack when this job was scheduled.
|
748
|
+
//
|
728
749
|
invoke(target, method, args, onError, errorRecordedForStack);
|
729
750
|
}
|
730
751
|
|
@@ -732,7 +753,9 @@ define("backburner/deferred-action-queues",
|
|
732
753
|
}
|
733
754
|
|
734
755
|
queue._queueBeingFlushed = null;
|
735
|
-
if (numberOfQueueItems && after) {
|
756
|
+
if (numberOfQueueItems && after) {
|
757
|
+
after();
|
758
|
+
}
|
736
759
|
|
737
760
|
if ((priorQueueNameIndex = indexOfPriorQueueWithActions(this, queueNameIndex)) !== -1) {
|
738
761
|
queueNameIndex = priorQueueNameIndex;
|
@@ -927,12 +950,28 @@ define("backburner/queue",
|
|
927
950
|
|
928
951
|
cancel: function(actionToCancel) {
|
929
952
|
var queue = this._queue, currentTarget, currentMethod, i, l;
|
953
|
+
var target = actionToCancel.target;
|
954
|
+
var method = actionToCancel.method;
|
955
|
+
var GUID_KEY = this.globalOptions.GUID_KEY;
|
956
|
+
|
957
|
+
if (GUID_KEY && this.targetQueues && target) {
|
958
|
+
var targetQueue = this.targetQueues[target[GUID_KEY]];
|
959
|
+
|
960
|
+
if (targetQueue) {
|
961
|
+
for (i = 0, l = targetQueue.length; i < l; i++) {
|
962
|
+
if (targetQueue[i] === method) {
|
963
|
+
targetQueue.splice(i, 1);
|
964
|
+
}
|
965
|
+
}
|
966
|
+
}
|
967
|
+
}
|
930
968
|
|
931
969
|
for (i = 0, l = queue.length; i < l; i += 4) {
|
932
970
|
currentTarget = queue[i];
|
933
971
|
currentMethod = queue[i+1];
|
934
972
|
|
935
|
-
if (currentTarget ===
|
973
|
+
if (currentTarget === target &&
|
974
|
+
currentMethod === method) {
|
936
975
|
queue.splice(i, 4);
|
937
976
|
return true;
|
938
977
|
}
|
@@ -948,7 +987,8 @@ define("backburner/queue",
|
|
948
987
|
currentTarget = queue[i];
|
949
988
|
currentMethod = queue[i+1];
|
950
989
|
|
951
|
-
if (currentTarget ===
|
990
|
+
if (currentTarget === target &&
|
991
|
+
currentMethod === method) {
|
952
992
|
// don't mess with array during flush
|
953
993
|
// just nullify the method
|
954
994
|
queue[i+1] = null;
|
@@ -972,7 +1012,11 @@ define("backburner/utils",
|
|
972
1012
|
}
|
973
1013
|
}
|
974
1014
|
|
975
|
-
__exports__.each = each
|
1015
|
+
__exports__.each = each;// Date.now is not available in browsers < IE9
|
1016
|
+
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/now#Compatibility
|
1017
|
+
var now = Date.now || function() { return new Date().getTime(); };
|
1018
|
+
__exports__.now = now;
|
1019
|
+
function isString(suspect) {
|
976
1020
|
return typeof suspect === 'string';
|
977
1021
|
}
|
978
1022
|
|
@@ -2473,7 +2517,7 @@ define("ember-metal/binding",
|
|
2473
2517
|
var set = __dependency3__.set;
|
2474
2518
|
var trySet = __dependency3__.trySet;
|
2475
2519
|
var guidFor = __dependency4__.guidFor;
|
2476
|
-
var Map = __dependency5__
|
2520
|
+
var Map = __dependency5__["default"];
|
2477
2521
|
var addObserver = __dependency6__.addObserver;
|
2478
2522
|
var removeObserver = __dependency6__.removeObserver;
|
2479
2523
|
var _suspendObserver = __dependency6__._suspendObserver;
|
@@ -2525,7 +2569,7 @@ define("ember-metal/binding",
|
|
2525
2569
|
this._direction = 'fwd';
|
2526
2570
|
this._from = fromPath;
|
2527
2571
|
this._to = toPath;
|
2528
|
-
this._directionMap = Map
|
2572
|
+
this._directionMap = new Map();
|
2529
2573
|
this._readyToSync = undefined;
|
2530
2574
|
this._oneWay = undefined;
|
2531
2575
|
}
|
@@ -2711,7 +2755,7 @@ define("ember-metal/binding",
|
|
2711
2755
|
var fromPath = this._from;
|
2712
2756
|
var toPath = this._to;
|
2713
2757
|
|
2714
|
-
directionMap.
|
2758
|
+
directionMap.delete(obj);
|
2715
2759
|
|
2716
2760
|
// if we're synchronizing from the remote object...
|
2717
2761
|
if (direction === 'fwd') {
|
@@ -3006,7 +3050,7 @@ define("ember-metal/cache",
|
|
3006
3050
|
value = this.set(key, this.func(key));
|
3007
3051
|
} else if (value === UNDEFINED) {
|
3008
3052
|
this.hits ++;
|
3009
|
-
value =
|
3053
|
+
value = undefined;
|
3010
3054
|
} else {
|
3011
3055
|
this.hits ++;
|
3012
3056
|
// nothing to translate
|
@@ -4725,7 +4769,7 @@ define("ember-metal/core",
|
|
4725
4769
|
|
4726
4770
|
@class Ember
|
4727
4771
|
@static
|
4728
|
-
@version 1.8.0-beta.
|
4772
|
+
@version 1.8.0-beta.4
|
4729
4773
|
*/
|
4730
4774
|
|
4731
4775
|
if ('undefined' === typeof Ember) {
|
@@ -4752,10 +4796,10 @@ define("ember-metal/core",
|
|
4752
4796
|
/**
|
4753
4797
|
@property VERSION
|
4754
4798
|
@type String
|
4755
|
-
@default '1.8.0-beta.
|
4799
|
+
@default '1.8.0-beta.4'
|
4756
4800
|
@static
|
4757
4801
|
*/
|
4758
|
-
Ember.VERSION = '1.8.0-beta.
|
4802
|
+
Ember.VERSION = '1.8.0-beta.4';
|
4759
4803
|
|
4760
4804
|
/**
|
4761
4805
|
Standard environmental variables. You can define these in a global `EmberENV`
|
@@ -6541,8 +6585,8 @@ define("ember-metal/logger",
|
|
6541
6585
|
};
|
6542
6586
|
});
|
6543
6587
|
define("ember-metal/map",
|
6544
|
-
["ember-metal/utils","ember-metal/array","ember-metal/platform","exports"],
|
6545
|
-
function(__dependency1__, __dependency2__, __dependency3__, __exports__) {
|
6588
|
+
["ember-metal/utils","ember-metal/array","ember-metal/platform","ember-metal/deprecate_property","exports"],
|
6589
|
+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __exports__) {
|
6546
6590
|
"use strict";
|
6547
6591
|
/**
|
6548
6592
|
@module ember-metal
|
@@ -6559,9 +6603,7 @@ define("ember-metal/map",
|
|
6559
6603
|
|
6560
6604
|
This implementation follows the current iteration of the ES6 proposal for
|
6561
6605
|
maps (http://wiki.ecmascript.org/doku.php?id=harmony:simple_maps_and_sets),
|
6562
|
-
with
|
6563
|
-
on older browsers, we do not use the `delete` name (using `remove` instead).
|
6564
|
-
Second, as we do not have the luxury of in-VM iteration, we implement a
|
6606
|
+
with one exception: as we do not have the luxury of in-VM iteration, we implement a
|
6565
6607
|
forEach method for iteration.
|
6566
6608
|
|
6567
6609
|
Map is mocked out to look like an Ember object, so you can do
|
@@ -6571,6 +6613,7 @@ define("ember-metal/map",
|
|
6571
6613
|
var guidFor = __dependency1__.guidFor;
|
6572
6614
|
var indexOf = __dependency2__.indexOf;
|
6573
6615
|
var create = __dependency3__.create;
|
6616
|
+
var deprecateProperty = __dependency4__.deprecateProperty;
|
6574
6617
|
|
6575
6618
|
function missingFunction(fn) {
|
6576
6619
|
throw new TypeError('' + Object.prototype.toString.call(fn) + " is not a function");
|
@@ -6616,6 +6659,7 @@ define("ember-metal/map",
|
|
6616
6659
|
|
6617
6660
|
if (this instanceof OrderedSet) {
|
6618
6661
|
this.clear();
|
6662
|
+
this._silenceRemoveDeprecation = false;
|
6619
6663
|
} else {
|
6620
6664
|
missingNew("OrderedSet");
|
6621
6665
|
}
|
@@ -6674,7 +6718,9 @@ define("ember-metal/map",
|
|
6674
6718
|
@return {Boolean}
|
6675
6719
|
*/
|
6676
6720
|
remove: function(obj, _guid) {
|
6677
|
-
|
6721
|
+
Ember.deprecate('Calling `OrderedSet.prototype.remove` has been deprecated, please use `OrderedSet.prototype.delete` instead.', this._silenceRemoveDeprecation);
|
6722
|
+
|
6723
|
+
return this.delete(obj, _guid);
|
6678
6724
|
},
|
6679
6725
|
|
6680
6726
|
/**
|
@@ -6683,7 +6729,7 @@ define("ember-metal/map",
|
|
6683
6729
|
@param _guid (optional and for internal use only)
|
6684
6730
|
@return {Boolean}
|
6685
6731
|
*/
|
6686
|
-
|
6732
|
+
delete: function(obj, _guid) {
|
6687
6733
|
var guid = _guid || guidFor(obj);
|
6688
6734
|
var presenceSet = this.presenceSet;
|
6689
6735
|
var list = this.list;
|
@@ -6715,6 +6761,8 @@ define("ember-metal/map",
|
|
6715
6761
|
@return {Boolean}
|
6716
6762
|
*/
|
6717
6763
|
has: function(obj) {
|
6764
|
+
if (this.size === 0) { return false; }
|
6765
|
+
|
6718
6766
|
var guid = guidFor(obj);
|
6719
6767
|
var presenceSet = this.presenceSet;
|
6720
6768
|
|
@@ -6726,14 +6774,20 @@ define("ember-metal/map",
|
|
6726
6774
|
@param {Function} fn
|
6727
6775
|
@param self
|
6728
6776
|
*/
|
6729
|
-
forEach: function(fn
|
6777
|
+
forEach: function(fn /*, thisArg*/) {
|
6778
|
+
if (typeof fn !== 'function') {
|
6779
|
+
missingFunction(fn);
|
6780
|
+
}
|
6781
|
+
|
6782
|
+
if (this.size === 0) { return; }
|
6783
|
+
|
6730
6784
|
var list = this.list;
|
6731
6785
|
var length = arguments.length;
|
6732
6786
|
var i;
|
6733
6787
|
|
6734
6788
|
if (length === 2) {
|
6735
6789
|
for (i = 0; i < list.length; i++) {
|
6736
|
-
fn.call(
|
6790
|
+
fn.call(arguments[1], list[i]);
|
6737
6791
|
}
|
6738
6792
|
} else {
|
6739
6793
|
for (i = 0; i < list.length; i++) {
|
@@ -6758,13 +6812,17 @@ define("ember-metal/map",
|
|
6758
6812
|
var Constructor = this.constructor;
|
6759
6813
|
var set = new Constructor();
|
6760
6814
|
|
6815
|
+
set._silenceRemoveDeprecation = this._silenceRemoveDeprecation;
|
6761
6816
|
set.presenceSet = copyNull(this.presenceSet);
|
6762
6817
|
set.list = this.toArray();
|
6818
|
+
set.size = this.size;
|
6763
6819
|
|
6764
6820
|
return set;
|
6765
6821
|
}
|
6766
6822
|
};
|
6767
6823
|
|
6824
|
+
deprecateProperty(OrderedSet.prototype, 'length', 'size');
|
6825
|
+
|
6768
6826
|
/**
|
6769
6827
|
A Map stores values indexed by keys. Unlike JavaScript's
|
6770
6828
|
default Objects, the keys of a Map can be any JavaScript
|
@@ -6788,6 +6846,7 @@ define("ember-metal/map",
|
|
6788
6846
|
function Map() {
|
6789
6847
|
if (this instanceof this.constructor) {
|
6790
6848
|
this.keys = OrderedSet.create();
|
6849
|
+
this.keys._silenceRemoveDeprecation = true;
|
6791
6850
|
this.values = Object.create(null);
|
6792
6851
|
this.size = 0;
|
6793
6852
|
} else {
|
@@ -6826,6 +6885,8 @@ define("ember-metal/map",
|
|
6826
6885
|
@return {*} the value associated with the key, or `undefined`
|
6827
6886
|
*/
|
6828
6887
|
get: function(key) {
|
6888
|
+
if (this.size === 0) { return; }
|
6889
|
+
|
6829
6890
|
var values = this.values;
|
6830
6891
|
var guid = guidFor(key);
|
6831
6892
|
|
@@ -6846,7 +6907,11 @@ define("ember-metal/map",
|
|
6846
6907
|
var values = this.values;
|
6847
6908
|
var guid = guidFor(key);
|
6848
6909
|
|
6849
|
-
|
6910
|
+
// ensure we don't store -0
|
6911
|
+
var k = key === -0 ? 0 : key;
|
6912
|
+
|
6913
|
+
keys.add(k, guid);
|
6914
|
+
|
6850
6915
|
values[guid] = value;
|
6851
6916
|
|
6852
6917
|
this.size = keys.size;
|
@@ -6863,7 +6928,9 @@ define("ember-metal/map",
|
|
6863
6928
|
@return {Boolean} true if an item was removed, false otherwise
|
6864
6929
|
*/
|
6865
6930
|
remove: function(key) {
|
6866
|
-
|
6931
|
+
Ember.deprecate('Calling `Map.prototype.remove` has been deprecated, please use `Map.prototype.delete` instead.');
|
6932
|
+
|
6933
|
+
return this.delete(key);
|
6867
6934
|
},
|
6868
6935
|
|
6869
6936
|
/**
|
@@ -6873,7 +6940,8 @@ define("ember-metal/map",
|
|
6873
6940
|
@param {*} key
|
6874
6941
|
@return {Boolean} true if an item was removed, false otherwise
|
6875
6942
|
*/
|
6876
|
-
|
6943
|
+
delete: function(key) {
|
6944
|
+
if (this.size === 0) { return false; }
|
6877
6945
|
// don't use ES6 "delete" because it will be annoying
|
6878
6946
|
// to use in browsers that are not ES6 friendly;
|
6879
6947
|
var keys = this.keys;
|
@@ -6881,7 +6949,7 @@ define("ember-metal/map",
|
|
6881
6949
|
var guid = guidFor(key);
|
6882
6950
|
|
6883
6951
|
if (values[guid]) {
|
6884
|
-
keys.
|
6952
|
+
keys.delete(key, guid);
|
6885
6953
|
delete values[guid];
|
6886
6954
|
this.size = keys.size;
|
6887
6955
|
return true;
|
@@ -6898,6 +6966,7 @@ define("ember-metal/map",
|
|
6898
6966
|
@return {Boolean} true if the item was present, false otherwise
|
6899
6967
|
*/
|
6900
6968
|
has: function(key) {
|
6969
|
+
if (this.size === 0) { return false; }
|
6901
6970
|
return this.keys.has(key);
|
6902
6971
|
},
|
6903
6972
|
|
@@ -6912,16 +6981,19 @@ define("ember-metal/map",
|
|
6912
6981
|
@param {*} self if passed, the `this` value inside the
|
6913
6982
|
callback. By default, `this` is the map.
|
6914
6983
|
*/
|
6915
|
-
forEach: function(callback
|
6984
|
+
forEach: function(callback /*, thisArg*/) {
|
6916
6985
|
if (typeof callback !== 'function') {
|
6917
6986
|
missingFunction(callback);
|
6918
6987
|
}
|
6919
6988
|
|
6989
|
+
if (this.size === 0) { return; }
|
6990
|
+
|
6920
6991
|
var length = arguments.length;
|
6921
6992
|
var map = this;
|
6922
|
-
var cb;
|
6993
|
+
var cb, thisArg;
|
6923
6994
|
|
6924
6995
|
if (length === 2) {
|
6996
|
+
thisArg = arguments[1];
|
6925
6997
|
cb = function(key) {
|
6926
6998
|
callback.call(thisArg, map.get(key), key);
|
6927
6999
|
};
|
@@ -6934,6 +7006,15 @@ define("ember-metal/map",
|
|
6934
7006
|
this.keys.forEach(cb);
|
6935
7007
|
},
|
6936
7008
|
|
7009
|
+
/**
|
7010
|
+
@method clear
|
7011
|
+
*/
|
7012
|
+
clear: function() {
|
7013
|
+
this.keys.clear();
|
7014
|
+
this.values = Object.create(null);
|
7015
|
+
this.size = 0;
|
7016
|
+
},
|
7017
|
+
|
6937
7018
|
/**
|
6938
7019
|
@method copy
|
6939
7020
|
@return {Ember.Map}
|
@@ -6943,6 +7024,8 @@ define("ember-metal/map",
|
|
6943
7024
|
}
|
6944
7025
|
};
|
6945
7026
|
|
7027
|
+
deprecateProperty(Map.prototype, 'length', 'size');
|
7028
|
+
|
6946
7029
|
/**
|
6947
7030
|
@class MapWithDefault
|
6948
7031
|
@namespace Ember
|
@@ -7008,6 +7091,8 @@ define("ember-metal/map",
|
|
7008
7091
|
}));
|
7009
7092
|
};
|
7010
7093
|
|
7094
|
+
__exports__["default"] = Map;
|
7095
|
+
|
7011
7096
|
__exports__.OrderedSet = OrderedSet;
|
7012
7097
|
__exports__.Map = Map;
|
7013
7098
|
__exports__.MapWithDefault = MapWithDefault;
|
@@ -9421,8 +9506,7 @@ define("ember-metal/run_loop",
|
|
9421
9506
|
target at the time the method is invoked.
|
9422
9507
|
@param {Object} [args*] Optional arguments to pass to the timeout.
|
9423
9508
|
@param {Number} wait Number of milliseconds to wait.
|
9424
|
-
@return {
|
9425
|
-
`run.cancel` later.
|
9509
|
+
@return {Object} Timer information for use in cancelling, see `run.cancel`.
|
9426
9510
|
*/
|
9427
9511
|
run.later = function(target, method) {
|
9428
9512
|
return apply(backburner, backburner.later, arguments);
|
@@ -9738,11 +9822,12 @@ define("ember-metal/run_loop",
|
|
9738
9822
|
};
|
9739
9823
|
});
|
9740
9824
|
define("ember-metal/set_properties",
|
9741
|
-
["ember-metal/property_events","ember-metal/property_set","exports"],
|
9742
|
-
function(__dependency1__, __dependency2__, __exports__) {
|
9825
|
+
["ember-metal/property_events","ember-metal/property_set","ember-metal/keys","exports"],
|
9826
|
+
function(__dependency1__, __dependency2__, __dependency3__, __exports__) {
|
9743
9827
|
"use strict";
|
9744
9828
|
var changeProperties = __dependency1__.changeProperties;
|
9745
9829
|
var set = __dependency2__.set;
|
9830
|
+
var keys = __dependency3__["default"];
|
9746
9831
|
|
9747
9832
|
/**
|
9748
9833
|
Set a list of properties on an object. These properties are set inside
|
@@ -9766,8 +9851,13 @@ define("ember-metal/set_properties",
|
|
9766
9851
|
*/
|
9767
9852
|
__exports__["default"] = function setProperties(self, hash) {
|
9768
9853
|
changeProperties(function() {
|
9769
|
-
|
9770
|
-
|
9854
|
+
var props = keys(hash);
|
9855
|
+
var prop;
|
9856
|
+
|
9857
|
+
for (var i = 0, l = props.length; i < l; i++) {
|
9858
|
+
prop = props[i];
|
9859
|
+
|
9860
|
+
set(self, prop, hash[prop]);
|
9771
9861
|
}
|
9772
9862
|
});
|
9773
9863
|
return self;
|
@@ -21577,10 +21667,10 @@ define("rsvp.umd",
|
|
21577
21667
|
};
|
21578
21668
|
|
21579
21669
|
/* global define:true module:true window: true */
|
21580
|
-
if (typeof define === 'function' && define
|
21670
|
+
if (typeof define === 'function' && define['amd']) {
|
21581
21671
|
define(function() { return RSVP; });
|
21582
|
-
} else if (typeof module !== 'undefined' && module
|
21583
|
-
module
|
21672
|
+
} else if (typeof module !== 'undefined' && module['exports']) {
|
21673
|
+
module['exports'] = RSVP;
|
21584
21674
|
} else if (typeof this !== 'undefined') {
|
21585
21675
|
this['RSVP'] = RSVP;
|
21586
21676
|
}
|
@@ -21596,6 +21686,10 @@ define("rsvp/-internal",
|
|
21596
21686
|
|
21597
21687
|
var config = __dependency3__.config;
|
21598
21688
|
|
21689
|
+
function withOwnPromise() {
|
21690
|
+
return new TypeError('A promises callback cannot return that same promise.');
|
21691
|
+
}
|
21692
|
+
|
21599
21693
|
function noop() {}
|
21600
21694
|
|
21601
21695
|
var PENDING = void 0;
|
@@ -21795,7 +21889,7 @@ define("rsvp/-internal",
|
|
21795
21889
|
}
|
21796
21890
|
|
21797
21891
|
if (promise === value) {
|
21798
|
-
reject(promise,
|
21892
|
+
reject(promise, withOwnPromise());
|
21799
21893
|
return;
|
21800
21894
|
}
|
21801
21895
|
|
@@ -21956,7 +22050,8 @@ define("rsvp/asap",
|
|
21956
22050
|
}
|
21957
22051
|
}
|
21958
22052
|
|
21959
|
-
var
|
22053
|
+
var browserWindow = (typeof window !== 'undefined') ? window : undefined
|
22054
|
+
var browserGlobal = browserWindow || {};
|
21960
22055
|
var BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;
|
21961
22056
|
|
21962
22057
|
// test for web worker but not in IE10
|
@@ -21971,6 +22066,13 @@ define("rsvp/asap",
|
|
21971
22066
|
};
|
21972
22067
|
}
|
21973
22068
|
|
22069
|
+
// vertx
|
22070
|
+
function useVertxTimer() {
|
22071
|
+
return function() {
|
22072
|
+
vertxNext(flush);
|
22073
|
+
};
|
22074
|
+
}
|
22075
|
+
|
21974
22076
|
function useMutationObserver() {
|
21975
22077
|
var iterations = 0;
|
21976
22078
|
var observer = new BrowserMutationObserver(flush);
|
@@ -22012,8 +22114,17 @@ define("rsvp/asap",
|
|
22012
22114
|
len = 0;
|
22013
22115
|
}
|
22014
22116
|
|
22015
|
-
|
22117
|
+
function attemptVertex() {
|
22118
|
+
try {
|
22119
|
+
var vertx = require('vertx');
|
22120
|
+
var vertxNext = vertx.runOnLoop || vertx.runOnContext;
|
22121
|
+
return useVertxTimer();
|
22122
|
+
} catch(e) {
|
22123
|
+
return useSetTimeout();
|
22124
|
+
}
|
22125
|
+
}
|
22016
22126
|
|
22127
|
+
var scheduleFlush;
|
22017
22128
|
// Decide what async method to use to triggering processing of queued callbacks:
|
22018
22129
|
if (typeof process !== 'undefined' && {}.toString.call(process) === '[object process]') {
|
22019
22130
|
scheduleFlush = useNextTick();
|
@@ -22021,6 +22132,8 @@ define("rsvp/asap",
|
|
22021
22132
|
scheduleFlush = useMutationObserver();
|
22022
22133
|
} else if (isWorker) {
|
22023
22134
|
scheduleFlush = useMessageChannel();
|
22135
|
+
} else if (browserWindow === undefined && typeof require === 'function') {
|
22136
|
+
scheduleFlush = attemptVertex();
|
22024
22137
|
} else {
|
22025
22138
|
scheduleFlush = useSetTimeout();
|
22026
22139
|
}
|
@@ -22098,9 +22211,9 @@ define("rsvp/defer",
|
|
22098
22211
|
__exports__["default"] = function defer(label) {
|
22099
22212
|
var deferred = { };
|
22100
22213
|
|
22101
|
-
deferred
|
22102
|
-
deferred
|
22103
|
-
deferred
|
22214
|
+
deferred['promise'] = new Promise(function(resolve, reject) {
|
22215
|
+
deferred['resolve'] = resolve;
|
22216
|
+
deferred['reject'] = reject;
|
22104
22217
|
}, label);
|
22105
22218
|
|
22106
22219
|
return deferred;
|
@@ -22796,27 +22909,40 @@ define("rsvp/instrument",
|
|
22796
22909
|
|
22797
22910
|
var queue = [];
|
22798
22911
|
|
22912
|
+
function scheduleFlush() {
|
22913
|
+
setTimeout(function() {
|
22914
|
+
var entry;
|
22915
|
+
for (var i = 0; i < queue.length; i++) {
|
22916
|
+
entry = queue[i];
|
22917
|
+
|
22918
|
+
var payload = entry.payload;
|
22919
|
+
|
22920
|
+
payload.guid = payload.key + payload.id;
|
22921
|
+
payload.childGuid = payload.key + payload.childId;
|
22922
|
+
if (payload.error) {
|
22923
|
+
payload.stack = payload.error.stack;
|
22924
|
+
}
|
22925
|
+
|
22926
|
+
config.trigger(entry.name, entry.payload);
|
22927
|
+
}
|
22928
|
+
queue.length = 0;
|
22929
|
+
}, 50);
|
22930
|
+
}
|
22931
|
+
|
22799
22932
|
__exports__["default"] = function instrument(eventName, promise, child) {
|
22800
22933
|
if (1 === queue.push({
|
22801
22934
|
name: eventName,
|
22802
22935
|
payload: {
|
22803
|
-
|
22936
|
+
key: promise._guidKey,
|
22937
|
+
id: promise._id,
|
22804
22938
|
eventName: eventName,
|
22805
22939
|
detail: promise._result,
|
22806
|
-
|
22940
|
+
childId: child && child._id,
|
22807
22941
|
label: promise._label,
|
22808
22942
|
timeStamp: now(),
|
22809
|
-
|
22943
|
+
error: config["instrument-with-stack"] ? new Error(promise._label) : null
|
22810
22944
|
}})) {
|
22811
|
-
|
22812
|
-
setTimeout(function() {
|
22813
|
-
var entry;
|
22814
|
-
for (var i = 0; i < queue.length; i++) {
|
22815
|
-
entry = queue[i];
|
22816
|
-
config.trigger(entry.name, entry.payload);
|
22817
|
-
}
|
22818
|
-
queue.length = 0;
|
22819
|
-
}, 50);
|
22945
|
+
scheduleFlush();
|
22820
22946
|
}
|
22821
22947
|
}
|
22822
22948
|
});
|