ember-source 1.8.0.beta.3 → 1.8.0.beta.4
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 +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
data/dist/ember.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
|
|
@@ -8513,6 +8557,8 @@ define("ember-handlebars/helpers/collection",
|
|
8513
8557
|
var viewOptions = ViewHelper.propertiesFromHTMLOptions({ data: data, hash: itemHash }, this);
|
8514
8558
|
hash.itemViewClass = itemViewClass.extend(viewOptions);
|
8515
8559
|
|
8560
|
+
options.helperName = options.helperName || 'collection';
|
8561
|
+
|
8516
8562
|
return helpers.view.call(this, collectionClass, options);
|
8517
8563
|
}
|
8518
8564
|
|
@@ -9126,24 +9172,29 @@ define("ember-handlebars/helpers/loc",
|
|
9126
9172
|
@submodule ember-handlebars
|
9127
9173
|
*/
|
9128
9174
|
|
9129
|
-
// ES6TODO:
|
9130
|
-
// Pretty sure this can be expressed as
|
9131
|
-
// var locHelper EmberStringUtils.loc ?
|
9132
|
-
|
9133
9175
|
/**
|
9134
9176
|
Calls [Ember.String.loc](/api/classes/Ember.String.html#method_loc) with the
|
9135
9177
|
provided string.
|
9136
9178
|
|
9137
|
-
This is a convenient way to localize text
|
9179
|
+
This is a convenient way to localize text within a template:
|
9138
9180
|
|
9139
|
-
```
|
9140
|
-
|
9141
|
-
|
9142
|
-
|
9181
|
+
```javascript
|
9182
|
+
Ember.STRINGS = {
|
9183
|
+
'_welcome_': 'Bonjour'
|
9184
|
+
};
|
9185
|
+
```
|
9186
|
+
|
9187
|
+
```handlebars
|
9188
|
+
<div class='message'>
|
9189
|
+
{{loc '_welcome_'}}
|
9190
|
+
</div>
|
9143
9191
|
```
|
9144
9192
|
|
9145
|
-
|
9146
|
-
|
9193
|
+
```html
|
9194
|
+
<div class='message'>
|
9195
|
+
Bonjour
|
9196
|
+
</div>
|
9197
|
+
```
|
9147
9198
|
|
9148
9199
|
See [Ember.String.loc](/api/classes/Ember.String.html#method_loc) for how to
|
9149
9200
|
set up localized string references.
|
@@ -9153,9 +9204,7 @@ define("ember-handlebars/helpers/loc",
|
|
9153
9204
|
@param {String} str The string to format
|
9154
9205
|
@see {Ember.String#loc}
|
9155
9206
|
*/
|
9156
|
-
__exports__["default"] =
|
9157
|
-
return loc(str);
|
9158
|
-
}
|
9207
|
+
__exports__["default"] = loc;
|
9159
9208
|
});
|
9160
9209
|
define("ember-handlebars/helpers/partial",
|
9161
9210
|
["ember-metal/core","ember-metal/is_none","ember-handlebars/ext","ember-handlebars/helpers/binding","exports"],
|
@@ -9292,7 +9341,7 @@ define("ember-handlebars/helpers/template",
|
|
9292
9341
|
function(__dependency1__, __dependency2__, __exports__) {
|
9293
9342
|
"use strict";
|
9294
9343
|
var Ember = __dependency1__["default"];
|
9295
|
-
//
|
9344
|
+
// Ember.deprecate;
|
9296
9345
|
|
9297
9346
|
var EmberHandlebars = __dependency2__["default"];
|
9298
9347
|
var helpers = EmberHandlebars.helpers;
|
@@ -9302,43 +9351,6 @@ define("ember-handlebars/helpers/template",
|
|
9302
9351
|
*/
|
9303
9352
|
|
9304
9353
|
/**
|
9305
|
-
`template` allows you to render a template from inside another template.
|
9306
|
-
This allows you to re-use the same template in multiple places. For example:
|
9307
|
-
|
9308
|
-
```html
|
9309
|
-
<script type="text/x-handlebars" data-template-name="logged_in_user">
|
9310
|
-
{{#with loggedInUser}}
|
9311
|
-
Last Login: {{lastLogin}}
|
9312
|
-
User Info: {{template "user_info"}}
|
9313
|
-
{{/with}}
|
9314
|
-
</script>
|
9315
|
-
```
|
9316
|
-
|
9317
|
-
```html
|
9318
|
-
<script type="text/x-handlebars" data-template-name="user_info">
|
9319
|
-
Name: <em>{{name}}</em>
|
9320
|
-
Karma: <em>{{karma}}</em>
|
9321
|
-
</script>
|
9322
|
-
```
|
9323
|
-
|
9324
|
-
```handlebars
|
9325
|
-
{{#if isUser}}
|
9326
|
-
{{template "user_info"}}
|
9327
|
-
{{else}}
|
9328
|
-
{{template "unlogged_user_info"}}
|
9329
|
-
{{/if}}
|
9330
|
-
```
|
9331
|
-
|
9332
|
-
This helper looks for templates in the global `Ember.TEMPLATES` hash. If you
|
9333
|
-
add `<script>` tags to your page with the `data-template-name` attribute set,
|
9334
|
-
they will be compiled and placed in this hash automatically.
|
9335
|
-
|
9336
|
-
You can also manually register templates by adding them to the hash:
|
9337
|
-
|
9338
|
-
```javascript
|
9339
|
-
Ember.TEMPLATES["my_cool_template"] = Ember.Handlebars.compile('<b>{{user}}</b>');
|
9340
|
-
```
|
9341
|
-
|
9342
9354
|
@deprecated
|
9343
9355
|
@method template
|
9344
9356
|
@for Ember.Handlebars.helpers
|
@@ -9473,13 +9485,13 @@ define("ember-handlebars/helpers/view",
|
|
9473
9485
|
|
9474
9486
|
var ViewHelper = EmberObject.create({
|
9475
9487
|
propertiesFromHTMLOptions: function(options) {
|
9476
|
-
var hash
|
9477
|
-
var data
|
9488
|
+
var hash = options.hash;
|
9489
|
+
var data = options.data;
|
9490
|
+
var classes = hash['class'];
|
9491
|
+
|
9478
9492
|
var extensions = {
|
9479
|
-
|
9480
|
-
helperName: options.helperName || ''
|
9493
|
+
helperName: options.helperName || ''
|
9481
9494
|
};
|
9482
|
-
var classes = hash['class'];
|
9483
9495
|
|
9484
9496
|
if (hash.id) {
|
9485
9497
|
extensions.elementId = hash.id;
|
@@ -9499,6 +9511,9 @@ define("ember-handlebars/helpers/view",
|
|
9499
9511
|
}
|
9500
9512
|
|
9501
9513
|
if (hash.classNameBindings) {
|
9514
|
+
if (extensions.classNameBindings === undefined) {
|
9515
|
+
extensions.classNameBindings = [];
|
9516
|
+
}
|
9502
9517
|
extensions.classNameBindings = extensions.classNameBindings.concat(hash.classNameBindings.split(' '));
|
9503
9518
|
}
|
9504
9519
|
|
@@ -9530,26 +9545,25 @@ define("ember-handlebars/helpers/view",
|
|
9530
9545
|
}
|
9531
9546
|
}
|
9532
9547
|
|
9533
|
-
|
9534
|
-
|
9535
|
-
|
9536
|
-
|
9537
|
-
|
9538
|
-
|
9539
|
-
|
9540
|
-
|
9541
|
-
|
9542
|
-
|
9543
|
-
|
9544
|
-
|
9545
|
-
|
9546
|
-
|
9547
|
-
|
9548
|
-
|
9549
|
-
|
9550
|
-
|
9551
|
-
|
9552
|
-
extensions.classNameBindings[classKey] = path + parsedPath.classNames;
|
9548
|
+
if (extensions.classNameBindings) {
|
9549
|
+
// Evaluate the context of class name bindings:
|
9550
|
+
for (var j = 0, k = extensions.classNameBindings.length; j < k; j++) {
|
9551
|
+
var full = extensions.classNameBindings[j];
|
9552
|
+
|
9553
|
+
if (typeof full === 'string') {
|
9554
|
+
// Contextualize the path of classNameBinding so this:
|
9555
|
+
//
|
9556
|
+
// classNameBinding="isGreen:green"
|
9557
|
+
//
|
9558
|
+
// is converted to this:
|
9559
|
+
//
|
9560
|
+
// classNameBinding="_parentView.context.isGreen:green"
|
9561
|
+
var parsedPath = View._parsePropertyPath(full);
|
9562
|
+
if (parsedPath.path !== '') {
|
9563
|
+
path = this.contextualizeBindingPath(parsedPath.path, data);
|
9564
|
+
if (path) {
|
9565
|
+
extensions.classNameBindings[j] = path + parsedPath.classNames;
|
9566
|
+
}
|
9553
9567
|
}
|
9554
9568
|
}
|
9555
9569
|
}
|
@@ -11350,7 +11364,7 @@ define("ember-metal/binding",
|
|
11350
11364
|
var set = __dependency3__.set;
|
11351
11365
|
var trySet = __dependency3__.trySet;
|
11352
11366
|
var guidFor = __dependency4__.guidFor;
|
11353
|
-
var Map = __dependency5__
|
11367
|
+
var Map = __dependency5__["default"];
|
11354
11368
|
var addObserver = __dependency6__.addObserver;
|
11355
11369
|
var removeObserver = __dependency6__.removeObserver;
|
11356
11370
|
var _suspendObserver = __dependency6__._suspendObserver;
|
@@ -11402,7 +11416,7 @@ define("ember-metal/binding",
|
|
11402
11416
|
this._direction = 'fwd';
|
11403
11417
|
this._from = fromPath;
|
11404
11418
|
this._to = toPath;
|
11405
|
-
this._directionMap = Map
|
11419
|
+
this._directionMap = new Map();
|
11406
11420
|
this._readyToSync = undefined;
|
11407
11421
|
this._oneWay = undefined;
|
11408
11422
|
}
|
@@ -11588,7 +11602,7 @@ define("ember-metal/binding",
|
|
11588
11602
|
var fromPath = this._from;
|
11589
11603
|
var toPath = this._to;
|
11590
11604
|
|
11591
|
-
directionMap
|
11605
|
+
directionMap["delete"](obj);
|
11592
11606
|
|
11593
11607
|
// if we're synchronizing from the remote object...
|
11594
11608
|
if (direction === 'fwd') {
|
@@ -11883,7 +11897,7 @@ define("ember-metal/cache",
|
|
11883
11897
|
value = this.set(key, this.func(key));
|
11884
11898
|
} else if (value === UNDEFINED) {
|
11885
11899
|
this.hits ++;
|
11886
|
-
value =
|
11900
|
+
value = undefined;
|
11887
11901
|
} else {
|
11888
11902
|
this.hits ++;
|
11889
11903
|
// nothing to translate
|
@@ -13602,7 +13616,7 @@ define("ember-metal/core",
|
|
13602
13616
|
|
13603
13617
|
@class Ember
|
13604
13618
|
@static
|
13605
|
-
@version 1.8.0-beta.
|
13619
|
+
@version 1.8.0-beta.4
|
13606
13620
|
*/
|
13607
13621
|
|
13608
13622
|
if ('undefined' === typeof Ember) {
|
@@ -13629,10 +13643,10 @@ define("ember-metal/core",
|
|
13629
13643
|
/**
|
13630
13644
|
@property VERSION
|
13631
13645
|
@type String
|
13632
|
-
@default '1.8.0-beta.
|
13646
|
+
@default '1.8.0-beta.4'
|
13633
13647
|
@static
|
13634
13648
|
*/
|
13635
|
-
Ember.VERSION = '1.8.0-beta.
|
13649
|
+
Ember.VERSION = '1.8.0-beta.4';
|
13636
13650
|
|
13637
13651
|
/**
|
13638
13652
|
Standard environmental variables. You can define these in a global `EmberENV`
|
@@ -15418,8 +15432,8 @@ define("ember-metal/logger",
|
|
15418
15432
|
};
|
15419
15433
|
});
|
15420
15434
|
define("ember-metal/map",
|
15421
|
-
["ember-metal/utils","ember-metal/array","ember-metal/platform","exports"],
|
15422
|
-
function(__dependency1__, __dependency2__, __dependency3__, __exports__) {
|
15435
|
+
["ember-metal/utils","ember-metal/array","ember-metal/platform","ember-metal/deprecate_property","exports"],
|
15436
|
+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __exports__) {
|
15423
15437
|
"use strict";
|
15424
15438
|
/**
|
15425
15439
|
@module ember-metal
|
@@ -15436,9 +15450,7 @@ define("ember-metal/map",
|
|
15436
15450
|
|
15437
15451
|
This implementation follows the current iteration of the ES6 proposal for
|
15438
15452
|
maps (http://wiki.ecmascript.org/doku.php?id=harmony:simple_maps_and_sets),
|
15439
|
-
with
|
15440
|
-
on older browsers, we do not use the `delete` name (using `remove` instead).
|
15441
|
-
Second, as we do not have the luxury of in-VM iteration, we implement a
|
15453
|
+
with one exception: as we do not have the luxury of in-VM iteration, we implement a
|
15442
15454
|
forEach method for iteration.
|
15443
15455
|
|
15444
15456
|
Map is mocked out to look like an Ember object, so you can do
|
@@ -15448,6 +15460,7 @@ define("ember-metal/map",
|
|
15448
15460
|
var guidFor = __dependency1__.guidFor;
|
15449
15461
|
var indexOf = __dependency2__.indexOf;
|
15450
15462
|
var create = __dependency3__.create;
|
15463
|
+
var deprecateProperty = __dependency4__.deprecateProperty;
|
15451
15464
|
|
15452
15465
|
function missingFunction(fn) {
|
15453
15466
|
throw new TypeError('' + Object.prototype.toString.call(fn) + " is not a function");
|
@@ -15493,6 +15506,7 @@ define("ember-metal/map",
|
|
15493
15506
|
|
15494
15507
|
if (this instanceof OrderedSet) {
|
15495
15508
|
this.clear();
|
15509
|
+
this._silenceRemoveDeprecation = false;
|
15496
15510
|
} else {
|
15497
15511
|
missingNew("OrderedSet");
|
15498
15512
|
}
|
@@ -15551,7 +15565,9 @@ define("ember-metal/map",
|
|
15551
15565
|
@return {Boolean}
|
15552
15566
|
*/
|
15553
15567
|
remove: function(obj, _guid) {
|
15554
|
-
|
15568
|
+
Ember.deprecate('Calling `OrderedSet.prototype.remove` has been deprecated, please use `OrderedSet.prototype.delete` instead.', this._silenceRemoveDeprecation);
|
15569
|
+
|
15570
|
+
return this["delete"](obj, _guid);
|
15555
15571
|
},
|
15556
15572
|
|
15557
15573
|
/**
|
@@ -15560,7 +15576,7 @@ define("ember-metal/map",
|
|
15560
15576
|
@param _guid (optional and for internal use only)
|
15561
15577
|
@return {Boolean}
|
15562
15578
|
*/
|
15563
|
-
|
15579
|
+
"delete": function(obj, _guid) {
|
15564
15580
|
var guid = _guid || guidFor(obj);
|
15565
15581
|
var presenceSet = this.presenceSet;
|
15566
15582
|
var list = this.list;
|
@@ -15592,6 +15608,8 @@ define("ember-metal/map",
|
|
15592
15608
|
@return {Boolean}
|
15593
15609
|
*/
|
15594
15610
|
has: function(obj) {
|
15611
|
+
if (this.size === 0) { return false; }
|
15612
|
+
|
15595
15613
|
var guid = guidFor(obj);
|
15596
15614
|
var presenceSet = this.presenceSet;
|
15597
15615
|
|
@@ -15603,14 +15621,20 @@ define("ember-metal/map",
|
|
15603
15621
|
@param {Function} fn
|
15604
15622
|
@param self
|
15605
15623
|
*/
|
15606
|
-
forEach: function(fn
|
15624
|
+
forEach: function(fn /*, thisArg*/) {
|
15625
|
+
if (typeof fn !== 'function') {
|
15626
|
+
missingFunction(fn);
|
15627
|
+
}
|
15628
|
+
|
15629
|
+
if (this.size === 0) { return; }
|
15630
|
+
|
15607
15631
|
var list = this.list;
|
15608
15632
|
var length = arguments.length;
|
15609
15633
|
var i;
|
15610
15634
|
|
15611
15635
|
if (length === 2) {
|
15612
15636
|
for (i = 0; i < list.length; i++) {
|
15613
|
-
fn.call(
|
15637
|
+
fn.call(arguments[1], list[i]);
|
15614
15638
|
}
|
15615
15639
|
} else {
|
15616
15640
|
for (i = 0; i < list.length; i++) {
|
@@ -15635,13 +15659,17 @@ define("ember-metal/map",
|
|
15635
15659
|
var Constructor = this.constructor;
|
15636
15660
|
var set = new Constructor();
|
15637
15661
|
|
15662
|
+
set._silenceRemoveDeprecation = this._silenceRemoveDeprecation;
|
15638
15663
|
set.presenceSet = copyNull(this.presenceSet);
|
15639
15664
|
set.list = this.toArray();
|
15665
|
+
set.size = this.size;
|
15640
15666
|
|
15641
15667
|
return set;
|
15642
15668
|
}
|
15643
15669
|
};
|
15644
15670
|
|
15671
|
+
deprecateProperty(OrderedSet.prototype, 'length', 'size');
|
15672
|
+
|
15645
15673
|
/**
|
15646
15674
|
A Map stores values indexed by keys. Unlike JavaScript's
|
15647
15675
|
default Objects, the keys of a Map can be any JavaScript
|
@@ -15665,6 +15693,7 @@ define("ember-metal/map",
|
|
15665
15693
|
function Map() {
|
15666
15694
|
if (this instanceof this.constructor) {
|
15667
15695
|
this.keys = OrderedSet.create();
|
15696
|
+
this.keys._silenceRemoveDeprecation = true;
|
15668
15697
|
this.values = Object.create(null);
|
15669
15698
|
this.size = 0;
|
15670
15699
|
} else {
|
@@ -15703,6 +15732,8 @@ define("ember-metal/map",
|
|
15703
15732
|
@return {*} the value associated with the key, or `undefined`
|
15704
15733
|
*/
|
15705
15734
|
get: function(key) {
|
15735
|
+
if (this.size === 0) { return; }
|
15736
|
+
|
15706
15737
|
var values = this.values;
|
15707
15738
|
var guid = guidFor(key);
|
15708
15739
|
|
@@ -15723,7 +15754,11 @@ define("ember-metal/map",
|
|
15723
15754
|
var values = this.values;
|
15724
15755
|
var guid = guidFor(key);
|
15725
15756
|
|
15726
|
-
|
15757
|
+
// ensure we don't store -0
|
15758
|
+
var k = key === -0 ? 0 : key;
|
15759
|
+
|
15760
|
+
keys.add(k, guid);
|
15761
|
+
|
15727
15762
|
values[guid] = value;
|
15728
15763
|
|
15729
15764
|
this.size = keys.size;
|
@@ -15740,7 +15775,9 @@ define("ember-metal/map",
|
|
15740
15775
|
@return {Boolean} true if an item was removed, false otherwise
|
15741
15776
|
*/
|
15742
15777
|
remove: function(key) {
|
15743
|
-
|
15778
|
+
Ember.deprecate('Calling `Map.prototype.remove` has been deprecated, please use `Map.prototype.delete` instead.');
|
15779
|
+
|
15780
|
+
return this["delete"](key);
|
15744
15781
|
},
|
15745
15782
|
|
15746
15783
|
/**
|
@@ -15750,7 +15787,8 @@ define("ember-metal/map",
|
|
15750
15787
|
@param {*} key
|
15751
15788
|
@return {Boolean} true if an item was removed, false otherwise
|
15752
15789
|
*/
|
15753
|
-
|
15790
|
+
"delete": function(key) {
|
15791
|
+
if (this.size === 0) { return false; }
|
15754
15792
|
// don't use ES6 "delete" because it will be annoying
|
15755
15793
|
// to use in browsers that are not ES6 friendly;
|
15756
15794
|
var keys = this.keys;
|
@@ -15758,7 +15796,7 @@ define("ember-metal/map",
|
|
15758
15796
|
var guid = guidFor(key);
|
15759
15797
|
|
15760
15798
|
if (values[guid]) {
|
15761
|
-
keys
|
15799
|
+
keys["delete"](key, guid);
|
15762
15800
|
delete values[guid];
|
15763
15801
|
this.size = keys.size;
|
15764
15802
|
return true;
|
@@ -15775,6 +15813,7 @@ define("ember-metal/map",
|
|
15775
15813
|
@return {Boolean} true if the item was present, false otherwise
|
15776
15814
|
*/
|
15777
15815
|
has: function(key) {
|
15816
|
+
if (this.size === 0) { return false; }
|
15778
15817
|
return this.keys.has(key);
|
15779
15818
|
},
|
15780
15819
|
|
@@ -15789,16 +15828,19 @@ define("ember-metal/map",
|
|
15789
15828
|
@param {*} self if passed, the `this` value inside the
|
15790
15829
|
callback. By default, `this` is the map.
|
15791
15830
|
*/
|
15792
|
-
forEach: function(callback
|
15831
|
+
forEach: function(callback /*, thisArg*/) {
|
15793
15832
|
if (typeof callback !== 'function') {
|
15794
15833
|
missingFunction(callback);
|
15795
15834
|
}
|
15796
15835
|
|
15836
|
+
if (this.size === 0) { return; }
|
15837
|
+
|
15797
15838
|
var length = arguments.length;
|
15798
15839
|
var map = this;
|
15799
|
-
var cb;
|
15840
|
+
var cb, thisArg;
|
15800
15841
|
|
15801
15842
|
if (length === 2) {
|
15843
|
+
thisArg = arguments[1];
|
15802
15844
|
cb = function(key) {
|
15803
15845
|
callback.call(thisArg, map.get(key), key);
|
15804
15846
|
};
|
@@ -15811,6 +15853,15 @@ define("ember-metal/map",
|
|
15811
15853
|
this.keys.forEach(cb);
|
15812
15854
|
},
|
15813
15855
|
|
15856
|
+
/**
|
15857
|
+
@method clear
|
15858
|
+
*/
|
15859
|
+
clear: function() {
|
15860
|
+
this.keys.clear();
|
15861
|
+
this.values = Object.create(null);
|
15862
|
+
this.size = 0;
|
15863
|
+
},
|
15864
|
+
|
15814
15865
|
/**
|
15815
15866
|
@method copy
|
15816
15867
|
@return {Ember.Map}
|
@@ -15820,6 +15871,8 @@ define("ember-metal/map",
|
|
15820
15871
|
}
|
15821
15872
|
};
|
15822
15873
|
|
15874
|
+
deprecateProperty(Map.prototype, 'length', 'size');
|
15875
|
+
|
15823
15876
|
/**
|
15824
15877
|
@class MapWithDefault
|
15825
15878
|
@namespace Ember
|
@@ -15885,6 +15938,8 @@ define("ember-metal/map",
|
|
15885
15938
|
}));
|
15886
15939
|
};
|
15887
15940
|
|
15941
|
+
__exports__["default"] = Map;
|
15942
|
+
|
15888
15943
|
__exports__.OrderedSet = OrderedSet;
|
15889
15944
|
__exports__.Map = Map;
|
15890
15945
|
__exports__.MapWithDefault = MapWithDefault;
|
@@ -18298,8 +18353,7 @@ define("ember-metal/run_loop",
|
|
18298
18353
|
target at the time the method is invoked.
|
18299
18354
|
@param {Object} [args*] Optional arguments to pass to the timeout.
|
18300
18355
|
@param {Number} wait Number of milliseconds to wait.
|
18301
|
-
@return {
|
18302
|
-
`run.cancel` later.
|
18356
|
+
@return {Object} Timer information for use in cancelling, see `run.cancel`.
|
18303
18357
|
*/
|
18304
18358
|
run.later = function(target, method) {
|
18305
18359
|
return apply(backburner, backburner.later, arguments);
|
@@ -18615,11 +18669,12 @@ define("ember-metal/run_loop",
|
|
18615
18669
|
};
|
18616
18670
|
});
|
18617
18671
|
define("ember-metal/set_properties",
|
18618
|
-
["ember-metal/property_events","ember-metal/property_set","exports"],
|
18619
|
-
function(__dependency1__, __dependency2__, __exports__) {
|
18672
|
+
["ember-metal/property_events","ember-metal/property_set","ember-metal/keys","exports"],
|
18673
|
+
function(__dependency1__, __dependency2__, __dependency3__, __exports__) {
|
18620
18674
|
"use strict";
|
18621
18675
|
var changeProperties = __dependency1__.changeProperties;
|
18622
18676
|
var set = __dependency2__.set;
|
18677
|
+
var keys = __dependency3__["default"];
|
18623
18678
|
|
18624
18679
|
/**
|
18625
18680
|
Set a list of properties on an object. These properties are set inside
|
@@ -18643,8 +18698,13 @@ define("ember-metal/set_properties",
|
|
18643
18698
|
*/
|
18644
18699
|
__exports__["default"] = function setProperties(self, hash) {
|
18645
18700
|
changeProperties(function() {
|
18646
|
-
|
18647
|
-
|
18701
|
+
var props = keys(hash);
|
18702
|
+
var prop;
|
18703
|
+
|
18704
|
+
for (var i = 0, l = props.length; i < l; i++) {
|
18705
|
+
prop = props[i];
|
18706
|
+
|
18707
|
+
set(self, prop, hash[prop]);
|
18648
18708
|
}
|
18649
18709
|
});
|
18650
18710
|
return self;
|
@@ -39072,15 +39132,15 @@ define("ember-views/system/render_buffer",
|
|
39072
39132
|
tagString = tagName;
|
39073
39133
|
}
|
39074
39134
|
|
39075
|
-
var element = this.dom.createElement(tagString);
|
39135
|
+
var element = this.dom.createElement(tagString, this._contextualElement);
|
39076
39136
|
var $element = jQuery(element);
|
39077
39137
|
|
39078
39138
|
if (id) {
|
39079
|
-
|
39139
|
+
this.dom.setAttribute(element, 'id', id);
|
39080
39140
|
this.elementId = null;
|
39081
39141
|
}
|
39082
39142
|
if (classes) {
|
39083
|
-
|
39143
|
+
this.dom.setAttribute(element, 'class', classes.join(' '));
|
39084
39144
|
this.classes = null;
|
39085
39145
|
this.elementClasses = null;
|
39086
39146
|
}
|
@@ -39092,7 +39152,7 @@ define("ember-views/system/render_buffer",
|
|
39092
39152
|
}
|
39093
39153
|
}
|
39094
39154
|
|
39095
|
-
|
39155
|
+
this.dom.setAttribute(element, 'style', styleBuffer);
|
39096
39156
|
|
39097
39157
|
this.elementStyle = null;
|
39098
39158
|
}
|
@@ -39100,7 +39160,7 @@ define("ember-views/system/render_buffer",
|
|
39100
39160
|
if (attrs) {
|
39101
39161
|
for (attr in attrs) {
|
39102
39162
|
if (attrs.hasOwnProperty(attr)) {
|
39103
|
-
|
39163
|
+
this.dom.setAttribute(element, attr, attrs[attr]);
|
39104
39164
|
}
|
39105
39165
|
}
|
39106
39166
|
|
@@ -39135,6 +39195,7 @@ define("ember-views/system/render_buffer",
|
|
39135
39195
|
var nodes;
|
39136
39196
|
if (this._element) {
|
39137
39197
|
if (html) {
|
39198
|
+
this.dom.detectNamespace(this._element);
|
39138
39199
|
nodes = this.dom.parseHTML(html, this._element);
|
39139
39200
|
while (nodes[0]) {
|
39140
39201
|
this._element.appendChild(nodes[0]);
|
@@ -39145,6 +39206,7 @@ define("ember-views/system/render_buffer",
|
|
39145
39206
|
if (html) {
|
39146
39207
|
var omittedStartTag = detectOmittedStartTag(html, this._contextualElement);
|
39147
39208
|
var contextualElement = omittedStartTag || this._contextualElement;
|
39209
|
+
this.dom.detectNamespace(contextualElement);
|
39148
39210
|
nodes = this.dom.parseHTML(html, contextualElement);
|
39149
39211
|
var frag = this._element = document.createDocumentFragment();
|
39150
39212
|
while (nodes[0]) {
|
@@ -43205,6 +43267,8 @@ define("morph/dom-helper",
|
|
43205
43267
|
"use strict";
|
43206
43268
|
var Morph = __dependency1__["default"];
|
43207
43269
|
var buildHTMLDOM = __dependency2__.buildHTMLDOM;
|
43270
|
+
var svgNamespace = __dependency2__.svgNamespace;
|
43271
|
+
var svgHTMLIntegrationPoints = __dependency2__.svgHTMLIntegrationPoints;
|
43208
43272
|
|
43209
43273
|
var deletesBlankTextNodes = (function(){
|
43210
43274
|
var element = document.createElement('div');
|
@@ -43220,9 +43284,6 @@ define("morph/dom-helper",
|
|
43220
43284
|
return !clonedElement.checked;
|
43221
43285
|
})();
|
43222
43286
|
|
43223
|
-
var svgNamespace = 'http://www.w3.org/2000/svg',
|
43224
|
-
svgHTMLIntegrationPoints = {foreignObject: 1, desc: 1, title: 1};
|
43225
|
-
|
43226
43287
|
function isSVG(ns){
|
43227
43288
|
return ns === svgNamespace;
|
43228
43289
|
}
|
@@ -43329,9 +43390,19 @@ define("morph/dom-helper",
|
|
43329
43390
|
};
|
43330
43391
|
|
43331
43392
|
if (document.createElementNS) {
|
43332
|
-
|
43333
|
-
|
43334
|
-
|
43393
|
+
// Only opt into namespace detection if a contextualElement
|
43394
|
+
// is passed.
|
43395
|
+
prototype.createElement = function(tagName, contextualElement) {
|
43396
|
+
var namespace = this.namespace;
|
43397
|
+
if (contextualElement) {
|
43398
|
+
if (tagName === 'svg') {
|
43399
|
+
namespace = svgNamespace;
|
43400
|
+
} else {
|
43401
|
+
namespace = interiorNamespace(contextualElement);
|
43402
|
+
}
|
43403
|
+
}
|
43404
|
+
if (namespace) {
|
43405
|
+
return this.document.createElementNS(namespace, tagName);
|
43335
43406
|
} else {
|
43336
43407
|
return this.document.createElement(tagName);
|
43337
43408
|
}
|
@@ -43441,6 +43512,17 @@ define("morph/dom-helper/build-html-dom",
|
|
43441
43512
|
["exports"],
|
43442
43513
|
function(__exports__) {
|
43443
43514
|
"use strict";
|
43515
|
+
var svgHTMLIntegrationPoints = {foreignObject: 1, desc: 1, title: 1};
|
43516
|
+
__exports__.svgHTMLIntegrationPoints = svgHTMLIntegrationPoints;var svgNamespace = 'http://www.w3.org/2000/svg';
|
43517
|
+
__exports__.svgNamespace = svgNamespace;
|
43518
|
+
// Safari does not like using innerHTML on SVG HTML integration
|
43519
|
+
// points.
|
43520
|
+
var needsIntegrationPointFix = document.createElementNS && (function() {
|
43521
|
+
var testEl = document.createElementNS(svgNamespace, 'foreignObject');
|
43522
|
+
testEl.innerHTML = "<div></div>";
|
43523
|
+
return testEl.childNodes.length === 0;
|
43524
|
+
})();
|
43525
|
+
|
43444
43526
|
// Internet Explorer prior to 9 does not allow setting innerHTML if the first element
|
43445
43527
|
// is a "zero-scope" element. This problem can be worked around by making
|
43446
43528
|
// the first node an invisible text node. We, like Modernizr, use ­
|
@@ -43560,15 +43642,25 @@ define("morph/dom-helper/build-html-dom",
|
|
43560
43642
|
return element ? element.childNodes : [];
|
43561
43643
|
}
|
43562
43644
|
|
43563
|
-
|
43564
|
-
|
43565
|
-
|
43566
|
-
|
43645
|
+
var buildDOM;
|
43646
|
+
if (needsShy) {
|
43647
|
+
buildDOM = function buildDOM(html, contextualElement, dom){
|
43648
|
+
contextualElement = dom.cloneNode(contextualElement, false);
|
43649
|
+
scriptSafeInnerHTML(contextualElement, html);
|
43650
|
+
return contextualElement.childNodes;
|
43651
|
+
};
|
43652
|
+
} else {
|
43653
|
+
buildDOM = function buildDOM(html, contextualElement, dom){
|
43654
|
+
contextualElement = dom.cloneNode(contextualElement, false);
|
43655
|
+
contextualElement.innerHTML = html;
|
43656
|
+
return contextualElement.childNodes;
|
43657
|
+
};
|
43567
43658
|
}
|
43568
43659
|
|
43660
|
+
|
43569
43661
|
var buildHTMLDOM;
|
43570
43662
|
// Really, this just means IE8 and IE9 get a slower buildHTMLDOM
|
43571
|
-
if (tagNamesRequiringInnerHTMLFix.length > 0 ||
|
43663
|
+
if (tagNamesRequiringInnerHTMLFix.length > 0 || movesWhitespace) {
|
43572
43664
|
buildHTMLDOM = function buildHTMLDOM(html, contextualElement, dom) {
|
43573
43665
|
// Make a list of the leading text on script nodes. Include
|
43574
43666
|
// script tags without any whitespace for easier processing later.
|
@@ -43629,6 +43721,14 @@ define("morph/dom-helper/build-html-dom",
|
|
43629
43721
|
|
43630
43722
|
return nodes;
|
43631
43723
|
};
|
43724
|
+
} else if (needsIntegrationPointFix) {
|
43725
|
+
buildHTMLDOM = function buildHTMLDOM(html, contextualElement, dom){
|
43726
|
+
if (svgHTMLIntegrationPoints[contextualElement.tagName]) {
|
43727
|
+
return buildDOM(html, document.createElement('div'), dom);
|
43728
|
+
} else {
|
43729
|
+
return buildDOM(html, contextualElement, dom);
|
43730
|
+
}
|
43731
|
+
};
|
43632
43732
|
} else {
|
43633
43733
|
buildHTMLDOM = buildDOM;
|
43634
43734
|
}
|
@@ -46758,10 +46858,10 @@ define("rsvp.umd",
|
|
46758
46858
|
};
|
46759
46859
|
|
46760
46860
|
/* global define:true module:true window: true */
|
46761
|
-
if (typeof define === 'function' && define
|
46861
|
+
if (typeof define === 'function' && define['amd']) {
|
46762
46862
|
define(function() { return RSVP; });
|
46763
|
-
} else if (typeof module !== 'undefined' && module
|
46764
|
-
module
|
46863
|
+
} else if (typeof module !== 'undefined' && module['exports']) {
|
46864
|
+
module['exports'] = RSVP;
|
46765
46865
|
} else if (typeof this !== 'undefined') {
|
46766
46866
|
this['RSVP'] = RSVP;
|
46767
46867
|
}
|
@@ -46777,6 +46877,10 @@ define("rsvp/-internal",
|
|
46777
46877
|
|
46778
46878
|
var config = __dependency3__.config;
|
46779
46879
|
|
46880
|
+
function withOwnPromise() {
|
46881
|
+
return new TypeError('A promises callback cannot return that same promise.');
|
46882
|
+
}
|
46883
|
+
|
46780
46884
|
function noop() {}
|
46781
46885
|
|
46782
46886
|
var PENDING = void 0;
|
@@ -46976,7 +47080,7 @@ define("rsvp/-internal",
|
|
46976
47080
|
}
|
46977
47081
|
|
46978
47082
|
if (promise === value) {
|
46979
|
-
reject(promise,
|
47083
|
+
reject(promise, withOwnPromise());
|
46980
47084
|
return;
|
46981
47085
|
}
|
46982
47086
|
|
@@ -47137,7 +47241,8 @@ define("rsvp/asap",
|
|
47137
47241
|
}
|
47138
47242
|
}
|
47139
47243
|
|
47140
|
-
var
|
47244
|
+
var browserWindow = (typeof window !== 'undefined') ? window : undefined
|
47245
|
+
var browserGlobal = browserWindow || {};
|
47141
47246
|
var BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;
|
47142
47247
|
|
47143
47248
|
// test for web worker but not in IE10
|
@@ -47152,6 +47257,13 @@ define("rsvp/asap",
|
|
47152
47257
|
};
|
47153
47258
|
}
|
47154
47259
|
|
47260
|
+
// vertx
|
47261
|
+
function useVertxTimer() {
|
47262
|
+
return function() {
|
47263
|
+
vertxNext(flush);
|
47264
|
+
};
|
47265
|
+
}
|
47266
|
+
|
47155
47267
|
function useMutationObserver() {
|
47156
47268
|
var iterations = 0;
|
47157
47269
|
var observer = new BrowserMutationObserver(flush);
|
@@ -47193,8 +47305,17 @@ define("rsvp/asap",
|
|
47193
47305
|
len = 0;
|
47194
47306
|
}
|
47195
47307
|
|
47196
|
-
|
47308
|
+
function attemptVertex() {
|
47309
|
+
try {
|
47310
|
+
var vertx = require('vertx');
|
47311
|
+
var vertxNext = vertx.runOnLoop || vertx.runOnContext;
|
47312
|
+
return useVertxTimer();
|
47313
|
+
} catch(e) {
|
47314
|
+
return useSetTimeout();
|
47315
|
+
}
|
47316
|
+
}
|
47197
47317
|
|
47318
|
+
var scheduleFlush;
|
47198
47319
|
// Decide what async method to use to triggering processing of queued callbacks:
|
47199
47320
|
if (typeof process !== 'undefined' && {}.toString.call(process) === '[object process]') {
|
47200
47321
|
scheduleFlush = useNextTick();
|
@@ -47202,6 +47323,8 @@ define("rsvp/asap",
|
|
47202
47323
|
scheduleFlush = useMutationObserver();
|
47203
47324
|
} else if (isWorker) {
|
47204
47325
|
scheduleFlush = useMessageChannel();
|
47326
|
+
} else if (browserWindow === undefined && typeof require === 'function') {
|
47327
|
+
scheduleFlush = attemptVertex();
|
47205
47328
|
} else {
|
47206
47329
|
scheduleFlush = useSetTimeout();
|
47207
47330
|
}
|
@@ -47279,9 +47402,9 @@ define("rsvp/defer",
|
|
47279
47402
|
__exports__["default"] = function defer(label) {
|
47280
47403
|
var deferred = { };
|
47281
47404
|
|
47282
|
-
deferred
|
47283
|
-
deferred
|
47284
|
-
deferred
|
47405
|
+
deferred['promise'] = new Promise(function(resolve, reject) {
|
47406
|
+
deferred['resolve'] = resolve;
|
47407
|
+
deferred['reject'] = reject;
|
47285
47408
|
}, label);
|
47286
47409
|
|
47287
47410
|
return deferred;
|
@@ -47977,27 +48100,40 @@ define("rsvp/instrument",
|
|
47977
48100
|
|
47978
48101
|
var queue = [];
|
47979
48102
|
|
48103
|
+
function scheduleFlush() {
|
48104
|
+
setTimeout(function() {
|
48105
|
+
var entry;
|
48106
|
+
for (var i = 0; i < queue.length; i++) {
|
48107
|
+
entry = queue[i];
|
48108
|
+
|
48109
|
+
var payload = entry.payload;
|
48110
|
+
|
48111
|
+
payload.guid = payload.key + payload.id;
|
48112
|
+
payload.childGuid = payload.key + payload.childId;
|
48113
|
+
if (payload.error) {
|
48114
|
+
payload.stack = payload.error.stack;
|
48115
|
+
}
|
48116
|
+
|
48117
|
+
config.trigger(entry.name, entry.payload);
|
48118
|
+
}
|
48119
|
+
queue.length = 0;
|
48120
|
+
}, 50);
|
48121
|
+
}
|
48122
|
+
|
47980
48123
|
__exports__["default"] = function instrument(eventName, promise, child) {
|
47981
48124
|
if (1 === queue.push({
|
47982
48125
|
name: eventName,
|
47983
48126
|
payload: {
|
47984
|
-
|
48127
|
+
key: promise._guidKey,
|
48128
|
+
id: promise._id,
|
47985
48129
|
eventName: eventName,
|
47986
48130
|
detail: promise._result,
|
47987
|
-
|
48131
|
+
childId: child && child._id,
|
47988
48132
|
label: promise._label,
|
47989
48133
|
timeStamp: now(),
|
47990
|
-
|
48134
|
+
error: config["instrument-with-stack"] ? new Error(promise._label) : null
|
47991
48135
|
}})) {
|
47992
|
-
|
47993
|
-
setTimeout(function() {
|
47994
|
-
var entry;
|
47995
|
-
for (var i = 0; i < queue.length; i++) {
|
47996
|
-
entry = queue[i];
|
47997
|
-
config.trigger(entry.name, entry.payload);
|
47998
|
-
}
|
47999
|
-
queue.length = 0;
|
48000
|
-
}, 50);
|
48136
|
+
scheduleFlush();
|
48001
48137
|
}
|
48002
48138
|
}
|
48003
48139
|
});
|