ember-source 2.9.0.beta.5 → 2.9.0
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 +5511 -4543
- data/dist/ember-template-compiler.js +9223 -16349
- data/dist/ember-testing.js +291 -404
- data/dist/ember.debug.js +40376 -44179
- data/dist/ember.js +40376 -44179
- data/dist/ember.min.js +14 -16
- data/dist/ember.prod.js +41816 -45321
- data/dist/test-template.js +6 -0
- metadata +6 -5
data/dist/ember-testing.js
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
* Portions Copyright 2008-2011 Apple Inc. All rights reserved.
|
7
7
|
* @license Licensed under MIT license
|
8
8
|
* See https://raw.github.com/emberjs/ember.js/master/LICENSE
|
9
|
-
* @version 2.9.0
|
9
|
+
* @version 2.9.0
|
10
10
|
*/
|
11
11
|
|
12
12
|
var enifed, requireModule, require, Ember;
|
@@ -112,85 +112,12 @@ var mainContext = this;
|
|
112
112
|
}
|
113
113
|
})();
|
114
114
|
|
115
|
-
|
116
|
-
|
117
|
-
function classCallCheck(instance, Constructor) {
|
118
|
-
if (!(instance instanceof Constructor)) {
|
119
|
-
throw new TypeError('Cannot call a class as a function');
|
120
|
-
}
|
121
|
-
}
|
122
|
-
|
123
|
-
function inherits(subClass, superClass) {
|
124
|
-
if (typeof superClass !== 'function' && superClass !== null) {
|
125
|
-
throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass);
|
126
|
-
}
|
127
|
-
|
128
|
-
subClass.prototype = Object.create(superClass && superClass.prototype, {
|
129
|
-
constructor: {
|
130
|
-
value: subClass,
|
131
|
-
enumerable: false,
|
132
|
-
writable: true,
|
133
|
-
configurable: true
|
134
|
-
}
|
135
|
-
});
|
136
|
-
|
137
|
-
if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : defaults(subClass, superClass);
|
138
|
-
}
|
139
|
-
|
140
|
-
function taggedTemplateLiteralLoose(strings, raw) {
|
141
|
-
strings.raw = raw;
|
142
|
-
return strings;
|
143
|
-
}
|
144
|
-
|
145
|
-
function defineProperties(target, props) {
|
146
|
-
for (var i = 0; i < props.length; i++) {
|
147
|
-
var descriptor = props[i];
|
148
|
-
descriptor.enumerable = descriptor.enumerable || false;
|
149
|
-
descriptor.configurable = true;
|
150
|
-
if ('value' in descriptor) descriptor.writable = true;
|
151
|
-
Object.defineProperty(target, descriptor.key, descriptor);
|
152
|
-
}
|
153
|
-
}
|
154
|
-
|
155
|
-
function createClass(Constructor, protoProps, staticProps) {
|
156
|
-
if (protoProps) defineProperties(Constructor.prototype, protoProps);
|
157
|
-
if (staticProps) defineProperties(Constructor, staticProps);
|
158
|
-
return Constructor;
|
159
|
-
}
|
160
|
-
|
161
|
-
function interopExportWildcard(obj, defaults) {
|
162
|
-
var newObj = defaults({}, obj);
|
163
|
-
delete newObj['default'];
|
164
|
-
return newObj;
|
165
|
-
}
|
166
|
-
|
167
|
-
function defaults(obj, defaults) {
|
168
|
-
var keys = Object.getOwnPropertyNames(defaults);
|
169
|
-
for (var i = 0; i < keys.length; i++) {
|
170
|
-
var key = keys[i];
|
171
|
-
var value = Object.getOwnPropertyDescriptor(defaults, key);
|
172
|
-
if (value && value.configurable && obj[key] === undefined) {
|
173
|
-
Object.defineProperty(obj, key, value);
|
174
|
-
}
|
175
|
-
}
|
176
|
-
return obj;
|
177
|
-
}
|
178
|
-
|
179
|
-
babelHelpers = {
|
180
|
-
classCallCheck: classCallCheck,
|
181
|
-
inherits: inherits,
|
182
|
-
taggedTemplateLiteralLoose: taggedTemplateLiteralLoose,
|
183
|
-
slice: Array.prototype.slice,
|
184
|
-
createClass: createClass,
|
185
|
-
interopExportWildcard: interopExportWildcard,
|
186
|
-
defaults: defaults
|
187
|
-
};
|
188
|
-
|
189
|
-
enifed('ember-debug/deprecate', ['exports', 'ember-metal', 'ember-console', 'ember-environment', 'ember-debug/handlers'], function (exports, _emberMetal, _emberConsole, _emberEnvironment, _emberDebugHandlers) {
|
115
|
+
enifed('ember-debug/deprecate', ['exports', 'ember-metal/error', 'ember-console', 'ember-environment', 'ember-debug/handlers'], function (exports, _emberMetalError, _emberConsole, _emberEnvironment, _emberDebugHandlers) {
|
190
116
|
/*global __fail__*/
|
191
117
|
|
192
118
|
'use strict';
|
193
119
|
|
120
|
+
var _slice = Array.prototype.slice;
|
194
121
|
exports.registerHandler = registerHandler;
|
195
122
|
exports.default = deprecate;
|
196
123
|
|
@@ -265,7 +192,7 @@ enifed('ember-debug/deprecate', ['exports', 'ember-metal', 'ember-console', 'emb
|
|
265
192
|
if (_emberEnvironment.ENV.RAISE_ON_DEPRECATION) {
|
266
193
|
var updatedMessage = formatMessage(message);
|
267
194
|
|
268
|
-
throw new
|
195
|
+
throw new _emberMetalError.default(updatedMessage);
|
269
196
|
} else {
|
270
197
|
next.apply(undefined, arguments);
|
271
198
|
}
|
@@ -331,7 +258,7 @@ enifed('ember-debug/deprecate', ['exports', 'ember-metal', 'ember-console', 'emb
|
|
331
258
|
});
|
332
259
|
}
|
333
260
|
|
334
|
-
_emberDebugHandlers.invoke.apply(undefined, ['deprecate'].concat(
|
261
|
+
_emberDebugHandlers.invoke.apply(undefined, ['deprecate'].concat(_slice.call(arguments)));
|
335
262
|
}
|
336
263
|
});
|
337
264
|
enifed("ember-debug/handlers", ["exports"], function (exports) {
|
@@ -367,7 +294,7 @@ enifed("ember-debug/handlers", ["exports"], function (exports) {
|
|
367
294
|
}
|
368
295
|
}
|
369
296
|
});
|
370
|
-
enifed('ember-debug/index', ['exports', 'ember-metal', 'ember-environment', 'ember-console', 'ember-debug/deprecate', 'ember-debug/warn'], function (exports,
|
297
|
+
enifed('ember-debug/index', ['exports', 'ember-metal/core', 'ember-environment', 'ember-metal/testing', 'ember-metal/debug', 'ember-metal/features', 'ember-metal/error', 'ember-console', 'ember-debug/deprecate', 'ember-debug/warn'], function (exports, _emberMetalCore, _emberEnvironment, _emberMetalTesting, _emberMetalDebug, _emberMetalFeatures, _emberMetalError, _emberConsole, _emberDebugDeprecate, _emberDebugWarn) {
|
371
298
|
'use strict';
|
372
299
|
|
373
300
|
exports._warnIfUsingStrippedFeatureFlags = _warnIfUsingStrippedFeatureFlags;
|
@@ -403,9 +330,9 @@ enifed('ember-debug/index', ['exports', 'ember-metal', 'ember-environment', 'emb
|
|
403
330
|
falsy, an exception will be thrown.
|
404
331
|
@public
|
405
332
|
*/
|
406
|
-
|
333
|
+
_emberMetalDebug.setDebugFunction('assert', function assert(desc, test) {
|
407
334
|
if (!test) {
|
408
|
-
throw new
|
335
|
+
throw new _emberMetalError.default('Assertion Failed: ' + desc);
|
409
336
|
}
|
410
337
|
});
|
411
338
|
|
@@ -423,7 +350,7 @@ enifed('ember-debug/index', ['exports', 'ember-metal', 'ember-environment', 'emb
|
|
423
350
|
@param {String} message A debug message to display.
|
424
351
|
@public
|
425
352
|
*/
|
426
|
-
|
353
|
+
_emberMetalDebug.setDebugFunction('debug', function debug(message) {
|
427
354
|
_emberConsole.default.debug('DEBUG: ' + message);
|
428
355
|
});
|
429
356
|
|
@@ -436,7 +363,7 @@ enifed('ember-debug/index', ['exports', 'ember-metal', 'ember-environment', 'emb
|
|
436
363
|
@method info
|
437
364
|
@private
|
438
365
|
*/
|
439
|
-
|
366
|
+
_emberMetalDebug.setDebugFunction('info', function info() {
|
440
367
|
_emberConsole.default.info.apply(undefined, arguments);
|
441
368
|
});
|
442
369
|
|
@@ -459,7 +386,7 @@ enifed('ember-debug/index', ['exports', 'ember-metal', 'ember-environment', 'emb
|
|
459
386
|
@return {Function} A new function that wraps the original function with a deprecation warning
|
460
387
|
@private
|
461
388
|
*/
|
462
|
-
|
389
|
+
_emberMetalDebug.setDebugFunction('deprecateFunc', function deprecateFunc() {
|
463
390
|
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
|
464
391
|
args[_key] = arguments[_key];
|
465
392
|
}
|
@@ -472,7 +399,7 @@ enifed('ember-debug/index', ['exports', 'ember-metal', 'ember-environment', 'emb
|
|
472
399
|
|
473
400
|
return {
|
474
401
|
v: function () {
|
475
|
-
|
402
|
+
_emberMetalDebug.deprecate(message, false, options);
|
476
403
|
return func.apply(this, arguments);
|
477
404
|
}
|
478
405
|
};
|
@@ -486,7 +413,7 @@ enifed('ember-debug/index', ['exports', 'ember-metal', 'ember-environment', 'emb
|
|
486
413
|
|
487
414
|
return {
|
488
415
|
v: function () {
|
489
|
-
|
416
|
+
_emberMetalDebug.deprecate(message);
|
490
417
|
return func.apply(this, arguments);
|
491
418
|
}
|
492
419
|
};
|
@@ -517,17 +444,17 @@ enifed('ember-debug/index', ['exports', 'ember-metal', 'ember-environment', 'emb
|
|
517
444
|
@since 1.5.0
|
518
445
|
@public
|
519
446
|
*/
|
520
|
-
|
447
|
+
_emberMetalDebug.setDebugFunction('runInDebug', function runInDebug(func) {
|
521
448
|
func();
|
522
449
|
});
|
523
450
|
|
524
|
-
|
451
|
+
_emberMetalDebug.setDebugFunction('debugSeal', function debugSeal(obj) {
|
525
452
|
Object.seal(obj);
|
526
453
|
});
|
527
454
|
|
528
|
-
|
455
|
+
_emberMetalDebug.setDebugFunction('deprecate', _emberDebugDeprecate.default);
|
529
456
|
|
530
|
-
|
457
|
+
_emberMetalDebug.setDebugFunction('warn', _emberDebugWarn.default);
|
531
458
|
|
532
459
|
/**
|
533
460
|
Will call `Ember.warn()` if ENABLE_OPTIONAL_FEATURES or
|
@@ -542,7 +469,7 @@ enifed('ember-debug/index', ['exports', 'ember-metal', 'ember-environment', 'emb
|
|
542
469
|
|
543
470
|
function _warnIfUsingStrippedFeatureFlags(FEATURES, knownFeatures, featuresWereStripped) {
|
544
471
|
if (featuresWereStripped) {
|
545
|
-
|
472
|
+
_emberMetalDebug.warn('Ember.ENV.ENABLE_OPTIONAL_FEATURES is only available in canary builds.', !_emberEnvironment.ENV.ENABLE_OPTIONAL_FEATURES, { id: 'ember-debug.feature-flag-with-features-stripped' });
|
546
473
|
|
547
474
|
var keys = Object.keys(FEATURES || {});
|
548
475
|
for (var i = 0; i < keys.length; i++) {
|
@@ -551,23 +478,23 @@ enifed('ember-debug/index', ['exports', 'ember-metal', 'ember-environment', 'emb
|
|
551
478
|
continue;
|
552
479
|
}
|
553
480
|
|
554
|
-
|
481
|
+
_emberMetalDebug.warn('FEATURE["' + key + '"] is set as enabled, but FEATURE flags are only available in canary builds.', !FEATURES[key], { id: 'ember-debug.feature-flag-with-features-stripped' });
|
555
482
|
}
|
556
483
|
}
|
557
484
|
}
|
558
485
|
|
559
|
-
if (!
|
486
|
+
if (!_emberMetalTesting.isTesting()) {
|
560
487
|
(function () {
|
561
488
|
// Complain if they're using FEATURE flags in builds other than canary
|
562
|
-
|
489
|
+
_emberMetalFeatures.FEATURES['features-stripped-test'] = true;
|
563
490
|
var featuresWereStripped = true;
|
564
491
|
|
565
492
|
if (false) {
|
566
493
|
featuresWereStripped = false;
|
567
494
|
}
|
568
495
|
|
569
|
-
delete
|
570
|
-
_warnIfUsingStrippedFeatureFlags(_emberEnvironment.ENV.FEATURES,
|
496
|
+
delete _emberMetalFeatures.FEATURES['features-stripped-test'];
|
497
|
+
_warnIfUsingStrippedFeatureFlags(_emberEnvironment.ENV.FEATURES, _emberMetalFeatures.DEFAULT_FEATURES, featuresWereStripped);
|
571
498
|
|
572
499
|
// Inform the developer about the Ember Inspector if not installed.
|
573
500
|
var isFirefox = _emberEnvironment.environment.isFirefox;
|
@@ -584,7 +511,7 @@ enifed('ember-debug/index', ['exports', 'ember-metal', 'ember-environment', 'emb
|
|
584
511
|
downloadURL = 'https://addons.mozilla.org/en-US/firefox/addon/ember-inspector/';
|
585
512
|
}
|
586
513
|
|
587
|
-
|
514
|
+
_emberMetalDebug.debug('For more advanced debugging, install the Ember Inspector from ' + downloadURL);
|
588
515
|
}
|
589
516
|
}, false);
|
590
517
|
}
|
@@ -594,7 +521,7 @@ enifed('ember-debug/index', ['exports', 'ember-metal', 'ember-environment', 'emb
|
|
594
521
|
@public
|
595
522
|
@class Ember.Debug
|
596
523
|
*/
|
597
|
-
|
524
|
+
_emberMetalCore.default.Debug = {};
|
598
525
|
|
599
526
|
/**
|
600
527
|
Allows for runtime registration of handler functions that override the default deprecation behavior.
|
@@ -631,7 +558,7 @@ enifed('ember-debug/index', ['exports', 'ember-metal', 'ember-environment', 'emb
|
|
631
558
|
@param handler {Function} A function to handle deprecation calls.
|
632
559
|
@since 2.1.0
|
633
560
|
*/
|
634
|
-
|
561
|
+
_emberMetalCore.default.Debug.registerDeprecationHandler = _emberDebugDeprecate.registerHandler;
|
635
562
|
/**
|
636
563
|
Allows for runtime registration of handler functions that override the default warning behavior.
|
637
564
|
Warnings are invoked by calls made to [Ember.warn](http://emberjs.com/api/classes/Ember.html#method_warn).
|
@@ -660,7 +587,7 @@ enifed('ember-debug/index', ['exports', 'ember-metal', 'ember-environment', 'emb
|
|
660
587
|
@param handler {Function} A function to handle warnings.
|
661
588
|
@since 2.1.0
|
662
589
|
*/
|
663
|
-
|
590
|
+
_emberMetalCore.default.Debug.registerWarnHandler = _emberDebugWarn.registerHandler;
|
664
591
|
|
665
592
|
/*
|
666
593
|
We are transitioning away from `ember.js` to `ember.debug.js` to make
|
@@ -673,13 +600,14 @@ enifed('ember-debug/index', ['exports', 'ember-metal', 'ember-environment', 'emb
|
|
673
600
|
var runningNonEmberDebugJS = false;
|
674
601
|
exports.runningNonEmberDebugJS = runningNonEmberDebugJS;
|
675
602
|
if (runningNonEmberDebugJS) {
|
676
|
-
|
603
|
+
_emberMetalDebug.warn('Please use `ember.debug.js` instead of `ember.js` for development and debugging.');
|
677
604
|
}
|
678
605
|
});
|
679
606
|
// reexports
|
680
|
-
enifed('ember-debug/warn', ['exports', 'ember-console', 'ember-metal', 'ember-debug/handlers'], function (exports, _emberConsole,
|
607
|
+
enifed('ember-debug/warn', ['exports', 'ember-console', 'ember-metal/debug', 'ember-debug/handlers'], function (exports, _emberConsole, _emberMetalDebug, _emberDebugHandlers) {
|
681
608
|
'use strict';
|
682
609
|
|
610
|
+
var _slice = Array.prototype.slice;
|
683
611
|
exports.registerHandler = registerHandler;
|
684
612
|
exports.default = warn;
|
685
613
|
|
@@ -724,7 +652,7 @@ enifed('ember-debug/warn', ['exports', 'ember-console', 'ember-metal', 'ember-de
|
|
724
652
|
|
725
653
|
function warn(message, test, options) {
|
726
654
|
if (!options) {
|
727
|
-
|
655
|
+
_emberMetalDebug.deprecate(missingOptionsDeprecation, false, {
|
728
656
|
id: 'ember-debug.warn-options-missing',
|
729
657
|
until: '3.0.0',
|
730
658
|
url: 'http://emberjs.com/deprecations/v2.x/#toc_ember-debug-function-options'
|
@@ -732,17 +660,17 @@ enifed('ember-debug/warn', ['exports', 'ember-console', 'ember-metal', 'ember-de
|
|
732
660
|
}
|
733
661
|
|
734
662
|
if (options && !options.id) {
|
735
|
-
|
663
|
+
_emberMetalDebug.deprecate(missingOptionsIdDeprecation, false, {
|
736
664
|
id: 'ember-debug.warn-id-missing',
|
737
665
|
until: '3.0.0',
|
738
666
|
url: 'http://emberjs.com/deprecations/v2.x/#toc_ember-debug-function-options'
|
739
667
|
});
|
740
668
|
}
|
741
669
|
|
742
|
-
_emberDebugHandlers.invoke.apply(undefined, ['warn'].concat(
|
670
|
+
_emberDebugHandlers.invoke.apply(undefined, ['warn'].concat(_slice.call(arguments)));
|
743
671
|
}
|
744
672
|
});
|
745
|
-
enifed('ember-testing/adapters/adapter', ['exports', 'ember-runtime'], function (exports,
|
673
|
+
enifed('ember-testing/adapters/adapter', ['exports', 'ember-runtime/system/object'], function (exports, _emberRuntimeSystemObject) {
|
746
674
|
'use strict';
|
747
675
|
|
748
676
|
function K() {
|
@@ -762,7 +690,7 @@ enifed('ember-testing/adapters/adapter', ['exports', 'ember-runtime'], function
|
|
762
690
|
@namespace Ember.Test
|
763
691
|
@public
|
764
692
|
*/
|
765
|
-
exports.default =
|
693
|
+
exports.default = _emberRuntimeSystemObject.default.extend({
|
766
694
|
/**
|
767
695
|
This callback will be called whenever an async operation is about to start.
|
768
696
|
Override this to call your framework's methods that handle async
|
@@ -798,7 +726,7 @@ enifed('ember-testing/adapters/adapter', ['exports', 'ember-runtime'], function
|
|
798
726
|
}
|
799
727
|
});
|
800
728
|
});
|
801
|
-
enifed('ember-testing/adapters/qunit', ['exports', 'ember-
|
729
|
+
enifed('ember-testing/adapters/qunit', ['exports', 'ember-testing/adapters/adapter', 'ember-metal/utils'], function (exports, _emberTestingAdaptersAdapter, _emberMetalUtils) {
|
802
730
|
'use strict';
|
803
731
|
|
804
732
|
/**
|
@@ -818,11 +746,11 @@ enifed('ember-testing/adapters/qunit', ['exports', 'ember-utils', 'ember-testing
|
|
818
746
|
QUnit.start();
|
819
747
|
},
|
820
748
|
exception: function (error) {
|
821
|
-
ok(false,
|
749
|
+
ok(false, _emberMetalUtils.inspect(error));
|
822
750
|
}
|
823
751
|
});
|
824
752
|
});
|
825
|
-
enifed('ember-testing/events', ['exports', 'ember-views', 'ember-metal'], function (exports,
|
753
|
+
enifed('ember-testing/events', ['exports', 'ember-views/system/jquery', 'ember-metal/run_loop'], function (exports, _emberViewsSystemJquery, _emberMetalRun_loop) {
|
826
754
|
'use strict';
|
827
755
|
|
828
756
|
exports.focus = focus;
|
@@ -836,11 +764,11 @@ enifed('ember-testing/events', ['exports', 'ember-views', 'ember-metal'], functi
|
|
836
764
|
if (!el) {
|
837
765
|
return;
|
838
766
|
}
|
839
|
-
var $el =
|
767
|
+
var $el = _emberViewsSystemJquery.default(el);
|
840
768
|
if ($el.is(':input, [contenteditable=true]')) {
|
841
769
|
var type = $el.prop('type');
|
842
770
|
if (type !== 'checkbox' && type !== 'radio' && type !== 'hidden') {
|
843
|
-
|
771
|
+
_emberMetalRun_loop.default(null, function () {
|
844
772
|
// Firefox does not trigger the `focusin` event if the window
|
845
773
|
// does not have focus. If the document doesn't have focus just
|
846
774
|
// use trigger('focusin') instead.
|
@@ -874,7 +802,7 @@ enifed('ember-testing/events', ['exports', 'ember-views', 'ember-metal'], functi
|
|
874
802
|
clientX: x,
|
875
803
|
clientY: y
|
876
804
|
};
|
877
|
-
event = buildMouseEvent(type,
|
805
|
+
event = buildMouseEvent(type, _emberViewsSystemJquery.default.extend(simulatedCoordinates, options));
|
878
806
|
} else {
|
879
807
|
event = buildBasicEvent(type, options);
|
880
808
|
}
|
@@ -886,7 +814,7 @@ enifed('ember-testing/events', ['exports', 'ember-views', 'ember-metal'], functi
|
|
886
814
|
|
887
815
|
var event = document.createEvent('Events');
|
888
816
|
event.initEvent(type, true, true);
|
889
|
-
|
817
|
+
_emberViewsSystemJquery.default.extend(event, options);
|
890
818
|
return event;
|
891
819
|
}
|
892
820
|
|
@@ -896,7 +824,7 @@ enifed('ember-testing/events', ['exports', 'ember-views', 'ember-metal'], functi
|
|
896
824
|
var event = undefined;
|
897
825
|
try {
|
898
826
|
event = document.createEvent('MouseEvents');
|
899
|
-
var eventOpts =
|
827
|
+
var eventOpts = _emberViewsSystemJquery.default.extend({}, DEFAULT_EVENT_OPTIONS, options);
|
900
828
|
event.initMouseEvent(type, eventOpts.canBubble, eventOpts.cancelable, window, eventOpts.detail, eventOpts.screenX, eventOpts.screenY, eventOpts.clientX, eventOpts.clientY, eventOpts.ctrlKey, eventOpts.altKey, eventOpts.shiftKey, eventOpts.metaKey, eventOpts.button, eventOpts.relatedTarget);
|
901
829
|
} catch (e) {
|
902
830
|
event = buildBasicEvent(type, options);
|
@@ -910,7 +838,7 @@ enifed('ember-testing/events', ['exports', 'ember-views', 'ember-metal'], functi
|
|
910
838
|
var event = undefined;
|
911
839
|
try {
|
912
840
|
event = document.createEvent('KeyEvents');
|
913
|
-
var eventOpts =
|
841
|
+
var eventOpts = _emberViewsSystemJquery.default.extend({}, DEFAULT_EVENT_OPTIONS, options);
|
914
842
|
event.initKeyEvent(type, eventOpts.canBubble, eventOpts.cancelable, window, eventOpts.ctrlKey, eventOpts.altKey, eventOpts.shiftKey, eventOpts.metaKey, eventOpts.keyCode, eventOpts.charCode);
|
915
843
|
} catch (e) {
|
916
844
|
event = buildBasicEvent(type, options);
|
@@ -918,10 +846,10 @@ enifed('ember-testing/events', ['exports', 'ember-views', 'ember-metal'], functi
|
|
918
846
|
return event;
|
919
847
|
}
|
920
848
|
});
|
921
|
-
enifed('ember-testing/ext/application', ['exports', 'ember-application', 'ember-testing/setup_for_testing', 'ember-testing/test/helpers', 'ember-testing/test/promise', 'ember-testing/test/run', 'ember-testing/test/on_inject_helpers', 'ember-testing/test/adapter'], function (exports,
|
849
|
+
enifed('ember-testing/ext/application', ['exports', 'ember-application/system/application', 'ember-testing/setup_for_testing', 'ember-testing/test/helpers', 'ember-testing/test/promise', 'ember-testing/test/run', 'ember-testing/test/on_inject_helpers', 'ember-testing/test/adapter'], function (exports, _emberApplicationSystemApplication, _emberTestingSetup_for_testing, _emberTestingTestHelpers, _emberTestingTestPromise, _emberTestingTestRun, _emberTestingTestOn_inject_helpers, _emberTestingTestAdapter) {
|
922
850
|
'use strict';
|
923
851
|
|
924
|
-
|
852
|
+
_emberApplicationSystemApplication.default.reopen({
|
925
853
|
/**
|
926
854
|
This property contains the testing helpers for the current application. These
|
927
855
|
are created once you call `injectTestHelpers` on your `Ember.Application`
|
@@ -1108,65 +1036,53 @@ enifed('ember-testing/ext/application', ['exports', 'ember-application', 'ember-
|
|
1108
1036
|
};
|
1109
1037
|
}
|
1110
1038
|
});
|
1111
|
-
enifed('ember-testing/ext/rsvp', ['exports', 'ember-runtime', 'ember-metal', 'ember-testing/test/adapter'], function (exports,
|
1039
|
+
enifed('ember-testing/ext/rsvp', ['exports', 'ember-runtime/ext/rsvp', 'ember-metal/run_loop', 'ember-metal/testing', 'ember-testing/test/adapter'], function (exports, _emberRuntimeExtRsvp, _emberMetalRun_loop, _emberMetalTesting, _emberTestingTestAdapter) {
|
1112
1040
|
'use strict';
|
1113
1041
|
|
1114
|
-
|
1042
|
+
_emberRuntimeExtRsvp.default.configure('async', function (callback, promise) {
|
1115
1043
|
// if schedule will cause autorun, we need to inform adapter
|
1116
|
-
if (
|
1044
|
+
if (_emberMetalTesting.isTesting() && !_emberMetalRun_loop.default.backburner.currentInstance) {
|
1117
1045
|
_emberTestingTestAdapter.asyncStart();
|
1118
|
-
|
1046
|
+
_emberMetalRun_loop.default.backburner.schedule('actions', function () {
|
1119
1047
|
_emberTestingTestAdapter.asyncEnd();
|
1120
1048
|
callback(promise);
|
1121
1049
|
});
|
1122
1050
|
} else {
|
1123
|
-
|
1051
|
+
_emberMetalRun_loop.default.backburner.schedule('actions', function () {
|
1124
1052
|
return callback(promise);
|
1125
1053
|
});
|
1126
1054
|
}
|
1127
1055
|
});
|
1128
1056
|
|
1129
|
-
exports.default =
|
1057
|
+
exports.default = _emberRuntimeExtRsvp.default;
|
1130
1058
|
});
|
1131
1059
|
enifed('ember-testing/helpers', ['exports', 'ember-testing/test/helpers', 'ember-testing/helpers/and_then', 'ember-testing/helpers/click', 'ember-testing/helpers/current_path', 'ember-testing/helpers/current_route_name', 'ember-testing/helpers/current_url', 'ember-testing/helpers/fill_in', 'ember-testing/helpers/find', 'ember-testing/helpers/find_with_assert', 'ember-testing/helpers/key_event', 'ember-testing/helpers/pause_test', 'ember-testing/helpers/trigger_event', 'ember-testing/helpers/visit', 'ember-testing/helpers/wait'], function (exports, _emberTestingTestHelpers, _emberTestingHelpersAnd_then, _emberTestingHelpersClick, _emberTestingHelpersCurrent_path, _emberTestingHelpersCurrent_route_name, _emberTestingHelpersCurrent_url, _emberTestingHelpersFill_in, _emberTestingHelpersFind, _emberTestingHelpersFind_with_assert, _emberTestingHelpersKey_event, _emberTestingHelpersPause_test, _emberTestingHelpersTrigger_event, _emberTestingHelpersVisit, _emberTestingHelpersWait) {
|
1132
1060
|
'use strict';
|
1133
1061
|
|
1134
|
-
_emberTestingTestHelpers.registerAsyncHelper('visit', _emberTestingHelpersVisit.default);
|
1135
|
-
_emberTestingTestHelpers.registerAsyncHelper('click', _emberTestingHelpersClick.default);
|
1136
|
-
_emberTestingTestHelpers.registerAsyncHelper('keyEvent', _emberTestingHelpersKey_event.default);
|
1137
|
-
_emberTestingTestHelpers.registerAsyncHelper('fillIn', _emberTestingHelpersFill_in.default);
|
1138
|
-
_emberTestingTestHelpers.registerAsyncHelper('wait', _emberTestingHelpersWait.default);
|
1139
|
-
_emberTestingTestHelpers.registerAsyncHelper('andThen', _emberTestingHelpersAnd_then.default);
|
1140
|
-
_emberTestingTestHelpers.registerAsyncHelper('pauseTest', _emberTestingHelpersPause_test.default);
|
1141
|
-
_emberTestingTestHelpers.registerAsyncHelper('triggerEvent', _emberTestingHelpersTrigger_event.default);
|
1142
|
-
|
1143
|
-
_emberTestingTestHelpers.registerHelper('find', _emberTestingHelpersFind.default);
|
1144
|
-
_emberTestingTestHelpers.registerHelper('findWithAssert', _emberTestingHelpersFind_with_assert.default);
|
1145
|
-
_emberTestingTestHelpers.registerHelper('currentRouteName', _emberTestingHelpersCurrent_route_name.default);
|
1146
|
-
_emberTestingTestHelpers.registerHelper('currentPath', _emberTestingHelpersCurrent_path.default);
|
1147
|
-
_emberTestingTestHelpers.registerHelper('currentURL', _emberTestingHelpersCurrent_url.default);
|
1148
|
-
});
|
1149
|
-
enifed("ember-testing/helpers/and_then", ["exports"], function (exports) {
|
1150
1062
|
/**
|
1151
1063
|
@module ember
|
1152
1064
|
@submodule ember-testing
|
1153
1065
|
*/
|
1154
|
-
"use strict";
|
1155
1066
|
|
1156
|
-
exports.default = andThen;
|
1157
|
-
|
1158
|
-
function andThen(app, callback) {
|
1159
|
-
return app.testHelpers.wait(callback(app));
|
1160
|
-
}
|
1161
|
-
});
|
1162
|
-
enifed('ember-testing/helpers/click', ['exports', 'ember-testing/events'], function (exports, _emberTestingEvents) {
|
1163
1067
|
/**
|
1164
|
-
|
1165
|
-
|
1068
|
+
Loads a route, sets up any controllers, and renders any templates associated
|
1069
|
+
with the route as though a real user had triggered the route change while
|
1070
|
+
using your app.
|
1071
|
+
|
1072
|
+
Example:
|
1073
|
+
|
1074
|
+
```javascript
|
1075
|
+
visit('posts/index').then(function() {
|
1076
|
+
// assert something
|
1077
|
+
});
|
1078
|
+
```
|
1079
|
+
|
1080
|
+
@method visit
|
1081
|
+
@param {String} url the name of the route
|
1082
|
+
@return {RSVP.Promise}
|
1083
|
+
@public
|
1166
1084
|
*/
|
1167
|
-
'
|
1168
|
-
|
1169
|
-
exports.default = click;
|
1085
|
+
_emberTestingTestHelpers.registerAsyncHelper('visit', _emberTestingHelpersVisit.default);
|
1170
1086
|
|
1171
1087
|
/**
|
1172
1088
|
Clicks an element and triggers any actions triggered by the element's `click`
|
@@ -1186,30 +1102,111 @@ enifed('ember-testing/helpers/click', ['exports', 'ember-testing/events'], funct
|
|
1186
1102
|
@return {RSVP.Promise}
|
1187
1103
|
@public
|
1188
1104
|
*/
|
1105
|
+
_emberTestingTestHelpers.registerAsyncHelper('click', _emberTestingHelpersClick.default);
|
1189
1106
|
|
1190
|
-
|
1191
|
-
|
1192
|
-
|
1193
|
-
|
1194
|
-
|
1195
|
-
|
1196
|
-
|
1107
|
+
/**
|
1108
|
+
Simulates a key event, e.g. `keypress`, `keydown`, `keyup` with the desired keyCode
|
1109
|
+
|
1110
|
+
Example:
|
1111
|
+
|
1112
|
+
```javascript
|
1113
|
+
keyEvent('.some-jQuery-selector', 'keypress', 13).then(function() {
|
1114
|
+
// assert something
|
1115
|
+
});
|
1116
|
+
```
|
1117
|
+
|
1118
|
+
@method keyEvent
|
1119
|
+
@param {String} selector jQuery selector for finding element on the DOM
|
1120
|
+
@param {String} type the type of key event, e.g. `keypress`, `keydown`, `keyup`
|
1121
|
+
@param {Number} keyCode the keyCode of the simulated key event
|
1122
|
+
@return {RSVP.Promise}
|
1123
|
+
@since 1.5.0
|
1124
|
+
@public
|
1125
|
+
*/
|
1126
|
+
_emberTestingTestHelpers.registerAsyncHelper('keyEvent', _emberTestingHelpersKey_event.default);
|
1197
1127
|
|
1198
|
-
|
1199
|
-
|
1128
|
+
/**
|
1129
|
+
Fills in an input element with some text.
|
1130
|
+
|
1131
|
+
Example:
|
1132
|
+
|
1133
|
+
```javascript
|
1134
|
+
fillIn('#email', 'you@example.com').then(function() {
|
1135
|
+
// assert something
|
1136
|
+
});
|
1137
|
+
```
|
1138
|
+
|
1139
|
+
@method fillIn
|
1140
|
+
@param {String} selector jQuery selector finding an input element on the DOM
|
1141
|
+
to fill text with
|
1142
|
+
@param {String} text text to place inside the input element
|
1143
|
+
@return {RSVP.Promise}
|
1144
|
+
@public
|
1145
|
+
*/
|
1146
|
+
_emberTestingTestHelpers.registerAsyncHelper('fillIn', _emberTestingHelpersFill_in.default);
|
1200
1147
|
|
1201
|
-
return app.testHelpers.wait();
|
1202
|
-
}
|
1203
|
-
});
|
1204
|
-
enifed('ember-testing/helpers/current_path', ['exports', 'ember-metal'], function (exports, _emberMetal) {
|
1205
1148
|
/**
|
1206
|
-
|
1207
|
-
|
1149
|
+
Finds an element in the context of the app's container element. A simple alias
|
1150
|
+
for `app.$(selector)`.
|
1151
|
+
|
1152
|
+
Example:
|
1153
|
+
|
1154
|
+
```javascript
|
1155
|
+
var $el = find('.my-selector');
|
1156
|
+
```
|
1157
|
+
|
1158
|
+
@method find
|
1159
|
+
@param {String} selector jQuery string selector for element lookup
|
1160
|
+
@return {Object} jQuery object representing the results of the query
|
1161
|
+
@public
|
1208
1162
|
*/
|
1209
|
-
'
|
1163
|
+
_emberTestingTestHelpers.registerHelper('find', _emberTestingHelpersFind.default);
|
1210
1164
|
|
1211
|
-
|
1165
|
+
/**
|
1166
|
+
Like `find`, but throws an error if the element selector returns no results.
|
1167
|
+
|
1168
|
+
Example:
|
1169
|
+
|
1170
|
+
```javascript
|
1171
|
+
var $el = findWithAssert('.doesnt-exist'); // throws error
|
1172
|
+
```
|
1173
|
+
|
1174
|
+
@method findWithAssert
|
1175
|
+
@param {String} selector jQuery selector string for finding an element within
|
1176
|
+
the DOM
|
1177
|
+
@return {Object} jQuery object representing the results of the query
|
1178
|
+
@throws {Error} throws error if jQuery object returned has a length of 0
|
1179
|
+
@public
|
1180
|
+
*/
|
1181
|
+
_emberTestingTestHelpers.registerHelper('findWithAssert', _emberTestingHelpersFind_with_assert.default);
|
1212
1182
|
|
1183
|
+
/**
|
1184
|
+
Causes the run loop to process any pending events. This is used to ensure that
|
1185
|
+
any async operations from other helpers (or your assertions) have been processed.
|
1186
|
+
|
1187
|
+
This is most often used as the return value for the helper functions (see 'click',
|
1188
|
+
'fillIn','visit',etc).
|
1189
|
+
|
1190
|
+
Example:
|
1191
|
+
|
1192
|
+
```javascript
|
1193
|
+
Ember.Test.registerAsyncHelper('loginUser', function(app, username, password) {
|
1194
|
+
visit('secured/path/here')
|
1195
|
+
.fillIn('#username', username)
|
1196
|
+
.fillIn('#password', password)
|
1197
|
+
.click('.submit')
|
1198
|
+
|
1199
|
+
return app.testHelpers.wait();
|
1200
|
+
});
|
1201
|
+
|
1202
|
+
@method wait
|
1203
|
+
@param {Object} value The value to be returned.
|
1204
|
+
@return {RSVP.Promise}
|
1205
|
+
@public
|
1206
|
+
*/
|
1207
|
+
_emberTestingTestHelpers.registerAsyncHelper('wait', _emberTestingHelpersWait.default);
|
1208
|
+
_emberTestingTestHelpers.registerAsyncHelper('andThen', _emberTestingHelpersAnd_then.default);
|
1209
|
+
_emberTestingTestHelpers.registerHelper('currentRouteName', _emberTestingHelpersCurrent_route_name.default);
|
1213
1210
|
/**
|
1214
1211
|
Returns the current path.
|
1215
1212
|
|
@@ -1228,13 +1225,69 @@ enifed('ember-testing/helpers/current_path', ['exports', 'ember-metal'], functio
|
|
1228
1225
|
@since 1.5.0
|
1229
1226
|
@public
|
1230
1227
|
*/
|
1228
|
+
_emberTestingTestHelpers.registerHelper('currentPath', _emberTestingHelpersCurrent_path.default);
|
1229
|
+
|
1230
|
+
/**
|
1231
|
+
Returns the current URL.
|
1232
|
+
|
1233
|
+
Example:
|
1234
|
+
|
1235
|
+
```javascript
|
1236
|
+
function validateURL() {
|
1237
|
+
equal(currentURL(), '/some/path', "correct URL was transitioned into.");
|
1238
|
+
}
|
1239
|
+
|
1240
|
+
click('#some-link-id').then(validateURL);
|
1241
|
+
```
|
1242
|
+
|
1243
|
+
@method currentURL
|
1244
|
+
@return {Object} The currently active URL.
|
1245
|
+
@since 1.5.0
|
1246
|
+
@public
|
1247
|
+
*/
|
1248
|
+
_emberTestingTestHelpers.registerHelper('currentURL', _emberTestingHelpersCurrent_url.default);
|
1249
|
+
_emberTestingTestHelpers.registerAsyncHelper('pauseTest', _emberTestingHelpersPause_test.default);
|
1250
|
+
_emberTestingTestHelpers.registerAsyncHelper('triggerEvent', _emberTestingHelpersTrigger_event.default);
|
1251
|
+
});
|
1252
|
+
enifed("ember-testing/helpers/and_then", ["exports"], function (exports) {
|
1253
|
+
"use strict";
|
1254
|
+
|
1255
|
+
exports.default = andThen;
|
1256
|
+
|
1257
|
+
function andThen(app, callback) {
|
1258
|
+
return app.testHelpers.wait(callback(app));
|
1259
|
+
}
|
1260
|
+
});
|
1261
|
+
enifed('ember-testing/helpers/click', ['exports', 'ember-testing/events'], function (exports, _emberTestingEvents) {
|
1262
|
+
'use strict';
|
1263
|
+
|
1264
|
+
exports.default = click;
|
1265
|
+
|
1266
|
+
function click(app, selector, context) {
|
1267
|
+
var $el = app.testHelpers.findWithAssert(selector, context);
|
1268
|
+
var el = $el[0];
|
1269
|
+
|
1270
|
+
_emberTestingEvents.fireEvent(el, 'mousedown');
|
1271
|
+
|
1272
|
+
_emberTestingEvents.focus(el);
|
1273
|
+
|
1274
|
+
_emberTestingEvents.fireEvent(el, 'mouseup');
|
1275
|
+
_emberTestingEvents.fireEvent(el, 'click');
|
1276
|
+
|
1277
|
+
return app.testHelpers.wait();
|
1278
|
+
}
|
1279
|
+
});
|
1280
|
+
enifed('ember-testing/helpers/current_path', ['exports', 'ember-metal/property_get'], function (exports, _emberMetalProperty_get) {
|
1281
|
+
'use strict';
|
1282
|
+
|
1283
|
+
exports.default = currentPath;
|
1231
1284
|
|
1232
1285
|
function currentPath(app) {
|
1233
1286
|
var routingService = app.__container__.lookup('service:-routing');
|
1234
|
-
return
|
1287
|
+
return _emberMetalProperty_get.get(routingService, 'currentPath');
|
1235
1288
|
}
|
1236
1289
|
});
|
1237
|
-
enifed('ember-testing/helpers/current_route_name', ['exports', 'ember-metal'], function (exports,
|
1290
|
+
enifed('ember-testing/helpers/current_route_name', ['exports', 'ember-metal/property_get'], function (exports, _emberMetalProperty_get) {
|
1238
1291
|
/**
|
1239
1292
|
@module ember
|
1240
1293
|
@submodule ember-testing
|
@@ -1260,70 +1313,24 @@ enifed('ember-testing/helpers/current_route_name', ['exports', 'ember-metal'], f
|
|
1260
1313
|
|
1261
1314
|
function currentRouteName(app) {
|
1262
1315
|
var routingService = app.__container__.lookup('service:-routing');
|
1263
|
-
return
|
1316
|
+
return _emberMetalProperty_get.get(routingService, 'currentRouteName');
|
1264
1317
|
}
|
1265
1318
|
});
|
1266
|
-
enifed('ember-testing/helpers/current_url', ['exports', 'ember-metal'], function (exports,
|
1267
|
-
/**
|
1268
|
-
@module ember
|
1269
|
-
@submodule ember-testing
|
1270
|
-
*/
|
1319
|
+
enifed('ember-testing/helpers/current_url', ['exports', 'ember-metal/property_get'], function (exports, _emberMetalProperty_get) {
|
1271
1320
|
'use strict';
|
1272
1321
|
|
1273
1322
|
exports.default = currentURL;
|
1274
1323
|
|
1275
|
-
/**
|
1276
|
-
Returns the current URL.
|
1277
|
-
|
1278
|
-
Example:
|
1279
|
-
|
1280
|
-
```javascript
|
1281
|
-
function validateURL() {
|
1282
|
-
equal(currentURL(), '/some/path', "correct URL was transitioned into.");
|
1283
|
-
}
|
1284
|
-
|
1285
|
-
click('#some-link-id').then(validateURL);
|
1286
|
-
```
|
1287
|
-
|
1288
|
-
@method currentURL
|
1289
|
-
@return {Object} The currently active URL.
|
1290
|
-
@since 1.5.0
|
1291
|
-
@public
|
1292
|
-
*/
|
1293
|
-
|
1294
1324
|
function currentURL(app) {
|
1295
1325
|
var router = app.__container__.lookup('router:main');
|
1296
|
-
return
|
1326
|
+
return _emberMetalProperty_get.get(router, 'location').getURL();
|
1297
1327
|
}
|
1298
1328
|
});
|
1299
1329
|
enifed('ember-testing/helpers/fill_in', ['exports', 'ember-testing/events'], function (exports, _emberTestingEvents) {
|
1300
|
-
/**
|
1301
|
-
@module ember
|
1302
|
-
@submodule ember-testing
|
1303
|
-
*/
|
1304
1330
|
'use strict';
|
1305
1331
|
|
1306
1332
|
exports.default = fillIn;
|
1307
1333
|
|
1308
|
-
/**
|
1309
|
-
Fills in an input element with some text.
|
1310
|
-
|
1311
|
-
Example:
|
1312
|
-
|
1313
|
-
```javascript
|
1314
|
-
fillIn('#email', 'you@example.com').then(function() {
|
1315
|
-
// assert something
|
1316
|
-
});
|
1317
|
-
```
|
1318
|
-
|
1319
|
-
@method fillIn
|
1320
|
-
@param {String} selector jQuery selector finding an input element on the DOM
|
1321
|
-
to fill text with
|
1322
|
-
@param {String} text text to place inside the input element
|
1323
|
-
@return {RSVP.Promise}
|
1324
|
-
@public
|
1325
|
-
*/
|
1326
|
-
|
1327
1334
|
function fillIn(app, selector, contextOrText, text) {
|
1328
1335
|
var $el = undefined,
|
1329
1336
|
el = undefined,
|
@@ -1344,75 +1351,19 @@ enifed('ember-testing/helpers/fill_in', ['exports', 'ember-testing/events'], fun
|
|
1344
1351
|
return app.testHelpers.wait();
|
1345
1352
|
}
|
1346
1353
|
});
|
1347
|
-
enifed('ember-testing/helpers/find', ['exports', 'ember-metal'], function (exports,
|
1348
|
-
/**
|
1349
|
-
@module ember
|
1350
|
-
@submodule ember-testing
|
1351
|
-
*/
|
1354
|
+
enifed('ember-testing/helpers/find', ['exports', 'ember-metal/property_get'], function (exports, _emberMetalProperty_get) {
|
1352
1355
|
'use strict';
|
1353
1356
|
|
1354
1357
|
exports.default = find;
|
1355
1358
|
|
1356
|
-
/**
|
1357
|
-
Finds an element in the context of the app's container element. A simple alias
|
1358
|
-
for `app.$(selector)`.
|
1359
|
-
|
1360
|
-
Example:
|
1361
|
-
|
1362
|
-
```javascript
|
1363
|
-
var $el = find('.my-selector');
|
1364
|
-
```
|
1365
|
-
|
1366
|
-
With the `context` param:
|
1367
|
-
|
1368
|
-
```javascript
|
1369
|
-
var $el = find('.my-selector', '.parent-element-class');
|
1370
|
-
```
|
1371
|
-
|
1372
|
-
@method find
|
1373
|
-
@param {String} selector jQuery string selector for element lookup
|
1374
|
-
@param {String} [context] (optional) jQuery selector that will limit the selector
|
1375
|
-
argument to find only within the context's children
|
1376
|
-
@return {Object} jQuery object representing the results of the query
|
1377
|
-
@public
|
1378
|
-
*/
|
1379
|
-
|
1380
1359
|
function find(app, selector, context) {
|
1381
1360
|
var $el = undefined;
|
1382
|
-
context = context ||
|
1361
|
+
context = context || _emberMetalProperty_get.get(app, 'rootElement');
|
1383
1362
|
$el = app.$(selector, context);
|
1384
1363
|
return $el;
|
1385
1364
|
}
|
1386
1365
|
});
|
1387
1366
|
enifed('ember-testing/helpers/find_with_assert', ['exports'], function (exports) {
|
1388
|
-
/**
|
1389
|
-
@module ember
|
1390
|
-
@submodule ember-testing
|
1391
|
-
*/
|
1392
|
-
/**
|
1393
|
-
Like `find`, but throws an error if the element selector returns no results.
|
1394
|
-
|
1395
|
-
Example:
|
1396
|
-
|
1397
|
-
```javascript
|
1398
|
-
var $el = findWithAssert('.doesnt-exist'); // throws error
|
1399
|
-
```
|
1400
|
-
|
1401
|
-
With the `context` param:
|
1402
|
-
|
1403
|
-
```javascript
|
1404
|
-
var $el = findWithAssert('.selector-id', '.parent-element-class'); // assert will pass
|
1405
|
-
```
|
1406
|
-
|
1407
|
-
@method findWithAssert
|
1408
|
-
@param {String} selector jQuery selector string for finding an element within
|
1409
|
-
the DOM
|
1410
|
-
@param {String} [context] (optional) jQuery selector that will limit the
|
1411
|
-
selector argument to find only within the context's children
|
1412
|
-
@return {Object} jQuery object representing the results of the query
|
1413
|
-
@throws {Error} throws error if jQuery object returned has a length of 0
|
1414
|
-
@public
|
1415
|
-
*/
|
1416
1367
|
'use strict';
|
1417
1368
|
|
1418
1369
|
exports.default = findWithAssert;
|
@@ -1426,26 +1377,6 @@ enifed('ember-testing/helpers/find_with_assert', ['exports'], function (exports)
|
|
1426
1377
|
}
|
1427
1378
|
});
|
1428
1379
|
enifed('ember-testing/helpers/key_event', ['exports'], function (exports) {
|
1429
|
-
/**
|
1430
|
-
@module ember
|
1431
|
-
@submodule ember-testing
|
1432
|
-
*/
|
1433
|
-
/**
|
1434
|
-
Simulates a key event, e.g. `keypress`, `keydown`, `keyup` with the desired keyCode
|
1435
|
-
Example:
|
1436
|
-
```javascript
|
1437
|
-
keyEvent('.some-jQuery-selector', 'keypress', 13).then(function() {
|
1438
|
-
// assert something
|
1439
|
-
});
|
1440
|
-
```
|
1441
|
-
@method keyEvent
|
1442
|
-
@param {String} selector jQuery selector for finding element on the DOM
|
1443
|
-
@param {String} type the type of key event, e.g. `keypress`, `keydown`, `keyup`
|
1444
|
-
@param {Number} keyCode the keyCode of the simulated key event
|
1445
|
-
@return {RSVP.Promise}
|
1446
|
-
@since 1.5.0
|
1447
|
-
@public
|
1448
|
-
*/
|
1449
1380
|
'use strict';
|
1450
1381
|
|
1451
1382
|
exports.default = keyEvent;
|
@@ -1466,7 +1397,7 @@ enifed('ember-testing/helpers/key_event', ['exports'], function (exports) {
|
|
1466
1397
|
return app.testHelpers.triggerEvent(selector, context, type, { keyCode: keyCode, which: keyCode });
|
1467
1398
|
}
|
1468
1399
|
});
|
1469
|
-
enifed('ember-testing/helpers/pause_test', ['exports', 'ember-runtime'], function (exports,
|
1400
|
+
enifed('ember-testing/helpers/pause_test', ['exports', 'ember-runtime/ext/rsvp'], function (exports, _emberRuntimeExtRsvp) {
|
1470
1401
|
/**
|
1471
1402
|
@module ember
|
1472
1403
|
@submodule ember-testing
|
@@ -1491,7 +1422,7 @@ enifed('ember-testing/helpers/pause_test', ['exports', 'ember-runtime'], functio
|
|
1491
1422
|
*/
|
1492
1423
|
|
1493
1424
|
function pauseTest() {
|
1494
|
-
return new
|
1425
|
+
return new _emberRuntimeExtRsvp.default.Promise(function () {}, 'TestAdapter paused promise');
|
1495
1426
|
}
|
1496
1427
|
});
|
1497
1428
|
enifed('ember-testing/helpers/trigger_event', ['exports', 'ember-testing/events'], function (exports, _emberTestingEvents) {
|
@@ -1565,34 +1496,11 @@ enifed('ember-testing/helpers/trigger_event', ['exports', 'ember-testing/events'
|
|
1565
1496
|
return app.testHelpers.wait();
|
1566
1497
|
}
|
1567
1498
|
});
|
1568
|
-
enifed('ember-testing/helpers/visit', ['exports', 'ember-metal'], function (exports,
|
1569
|
-
/**
|
1570
|
-
@module ember
|
1571
|
-
@submodule ember-testing
|
1572
|
-
*/
|
1499
|
+
enifed('ember-testing/helpers/visit', ['exports', 'ember-metal/run_loop'], function (exports, _emberMetalRun_loop) {
|
1573
1500
|
'use strict';
|
1574
1501
|
|
1575
1502
|
exports.default = visit;
|
1576
1503
|
|
1577
|
-
/**
|
1578
|
-
Loads a route, sets up any controllers, and renders any templates associated
|
1579
|
-
with the route as though a real user had triggered the route change while
|
1580
|
-
using your app.
|
1581
|
-
|
1582
|
-
Example:
|
1583
|
-
|
1584
|
-
```javascript
|
1585
|
-
visit('posts/index').then(function() {
|
1586
|
-
// assert something
|
1587
|
-
});
|
1588
|
-
```
|
1589
|
-
|
1590
|
-
@method visit
|
1591
|
-
@param {String} url the name of the route
|
1592
|
-
@return {RSVP.Promise}
|
1593
|
-
@public
|
1594
|
-
*/
|
1595
|
-
|
1596
1504
|
function visit(app, url) {
|
1597
1505
|
var router = app.__container__.lookup('router:main');
|
1598
1506
|
var shouldHandleURL = false;
|
@@ -1601,13 +1509,13 @@ enifed('ember-testing/helpers/visit', ['exports', 'ember-metal'], function (expo
|
|
1601
1509
|
router.location.setURL(url);
|
1602
1510
|
|
1603
1511
|
if (shouldHandleURL) {
|
1604
|
-
|
1512
|
+
_emberMetalRun_loop.default(app.__deprecatedInstance__, 'handleURL', url);
|
1605
1513
|
}
|
1606
1514
|
});
|
1607
1515
|
|
1608
1516
|
if (app._readinessDeferrals > 0) {
|
1609
1517
|
router['initialURL'] = url;
|
1610
|
-
|
1518
|
+
_emberMetalRun_loop.default(app, 'advanceReadiness');
|
1611
1519
|
delete router['initialURL'];
|
1612
1520
|
} else {
|
1613
1521
|
shouldHandleURL = true;
|
@@ -1616,42 +1524,13 @@ enifed('ember-testing/helpers/visit', ['exports', 'ember-metal'], function (expo
|
|
1616
1524
|
return app.testHelpers.wait();
|
1617
1525
|
}
|
1618
1526
|
});
|
1619
|
-
enifed('ember-testing/helpers/wait', ['exports', 'ember-testing/test/waiters', 'ember-runtime', 'ember-metal', 'ember-testing/test/pending_requests'], function (exports, _emberTestingTestWaiters,
|
1620
|
-
/**
|
1621
|
-
@module ember
|
1622
|
-
@submodule ember-testing
|
1623
|
-
*/
|
1527
|
+
enifed('ember-testing/helpers/wait', ['exports', 'ember-testing/test/waiters', 'ember-runtime/ext/rsvp', 'ember-metal/run_loop', 'ember-testing/test/pending_requests'], function (exports, _emberTestingTestWaiters, _emberRuntimeExtRsvp, _emberMetalRun_loop, _emberTestingTestPending_requests) {
|
1624
1528
|
'use strict';
|
1625
1529
|
|
1626
1530
|
exports.default = wait;
|
1627
1531
|
|
1628
|
-
/**
|
1629
|
-
Causes the run loop to process any pending events. This is used to ensure that
|
1630
|
-
any async operations from other helpers (or your assertions) have been processed.
|
1631
|
-
|
1632
|
-
This is most often used as the return value for the helper functions (see 'click',
|
1633
|
-
'fillIn','visit',etc).
|
1634
|
-
|
1635
|
-
Example:
|
1636
|
-
|
1637
|
-
```javascript
|
1638
|
-
Ember.Test.registerAsyncHelper('loginUser', function(app, username, password) {
|
1639
|
-
visit('secured/path/here')
|
1640
|
-
.fillIn('#username', username)
|
1641
|
-
.fillIn('#password', password)
|
1642
|
-
.click('.submit')
|
1643
|
-
|
1644
|
-
return app.testHelpers.wait();
|
1645
|
-
});
|
1646
|
-
|
1647
|
-
@method wait
|
1648
|
-
@param {Object} value The value to be returned.
|
1649
|
-
@return {RSVP.Promise}
|
1650
|
-
@public
|
1651
|
-
*/
|
1652
|
-
|
1653
1532
|
function wait(app, value) {
|
1654
|
-
return new
|
1533
|
+
return new _emberRuntimeExtRsvp.default.Promise(function (resolve) {
|
1655
1534
|
var router = app.__container__.lookup('router:main');
|
1656
1535
|
|
1657
1536
|
// Every 10ms, poll for the async thing to have finished
|
@@ -1668,7 +1547,7 @@ enifed('ember-testing/helpers/wait', ['exports', 'ember-testing/test/waiters', '
|
|
1668
1547
|
}
|
1669
1548
|
|
1670
1549
|
// 3. If there are scheduled timers or we are inside of a run loop, keep polling
|
1671
|
-
if (
|
1550
|
+
if (_emberMetalRun_loop.default.hasScheduledTimers() || _emberMetalRun_loop.default.currentRunLoop) {
|
1672
1551
|
return;
|
1673
1552
|
}
|
1674
1553
|
|
@@ -1680,34 +1559,39 @@ enifed('ember-testing/helpers/wait', ['exports', 'ember-testing/test/waiters', '
|
|
1680
1559
|
clearInterval(watcher);
|
1681
1560
|
|
1682
1561
|
// Synchronously resolve the promise
|
1683
|
-
|
1562
|
+
_emberMetalRun_loop.default(null, resolve, value);
|
1684
1563
|
}, 10);
|
1685
1564
|
});
|
1686
1565
|
}
|
1687
1566
|
});
|
1688
|
-
enifed('ember-testing/index', ['exports', 'ember-
|
1567
|
+
enifed('ember-testing/index', ['exports', 'ember-metal/core', 'ember-testing/test', 'ember-testing/adapters/adapter', 'ember-testing/setup_for_testing', 'require', 'ember-testing/support', 'ember-testing/ext/application', 'ember-testing/ext/rsvp', 'ember-testing/helpers', 'ember-testing/initializers'], function (exports, _emberMetalCore, _emberTestingTest, _emberTestingAdaptersAdapter, _emberTestingSetup_for_testing, _require, _emberTestingSupport, _emberTestingExtApplication, _emberTestingExtRsvp, _emberTestingHelpers, _emberTestingInitializers) {
|
1689
1568
|
'use strict';
|
1690
1569
|
|
1691
|
-
|
1692
|
-
|
1693
|
-
|
1694
|
-
|
1570
|
+
// to setup initializer
|
1571
|
+
|
1572
|
+
/**
|
1573
|
+
@module ember
|
1574
|
+
@submodule ember-testing
|
1575
|
+
*/
|
1576
|
+
|
1577
|
+
_emberMetalCore.default.Test = _emberTestingTest.default;
|
1578
|
+
_emberMetalCore.default.Test.Adapter = _emberTestingAdaptersAdapter.default;
|
1579
|
+
_emberMetalCore.default.setupForTesting = _emberTestingSetup_for_testing.default;
|
1580
|
+
Object.defineProperty(_emberTestingTest.default, 'QUnitAdapter', {
|
1581
|
+
get: function () {
|
1582
|
+
return _require.default('ember-testing/adapters/qunit').default;
|
1583
|
+
}
|
1584
|
+
});
|
1695
1585
|
});
|
1586
|
+
// reexports
|
1696
1587
|
// to handle various edge cases
|
1697
|
-
// setup RSVP + run loop integration
|
1698
1588
|
// adds helpers to helpers object in Test
|
1699
|
-
|
1700
|
-
|
1701
|
-
/**
|
1702
|
-
@module ember
|
1703
|
-
@submodule ember-testing
|
1704
|
-
*/
|
1705
|
-
enifed('ember-testing/initializers', ['exports', 'ember-runtime'], function (exports, _emberRuntime) {
|
1589
|
+
enifed('ember-testing/initializers', ['exports', 'ember-runtime/system/lazy_load'], function (exports, _emberRuntimeSystemLazy_load) {
|
1706
1590
|
'use strict';
|
1707
1591
|
|
1708
1592
|
var name = 'deferReadiness in `testing` mode';
|
1709
1593
|
|
1710
|
-
|
1594
|
+
_emberRuntimeSystemLazy_load.onLoad('Ember.Application', function (Application) {
|
1711
1595
|
if (!Application.initializers[name]) {
|
1712
1596
|
Application.initializer({
|
1713
1597
|
name: name,
|
@@ -1721,7 +1605,7 @@ enifed('ember-testing/initializers', ['exports', 'ember-runtime'], function (exp
|
|
1721
1605
|
}
|
1722
1606
|
});
|
1723
1607
|
});
|
1724
|
-
enifed('ember-testing/setup_for_testing', ['exports', 'ember-metal', 'ember-views', 'ember-testing/test/adapter', 'ember-testing/test/pending_requests', '
|
1608
|
+
enifed('ember-testing/setup_for_testing', ['exports', 'ember-metal/testing', 'ember-views/system/jquery', 'ember-testing/test/adapter', 'ember-testing/test/pending_requests', 'require'], function (exports, _emberMetalTesting, _emberViewsSystemJquery, _emberTestingTestAdapter, _emberTestingTestPending_requests, _require) {
|
1725
1609
|
'use strict';
|
1726
1610
|
|
1727
1611
|
exports.default = setupForTesting;
|
@@ -1740,24 +1624,25 @@ enifed('ember-testing/setup_for_testing', ['exports', 'ember-metal', 'ember-view
|
|
1740
1624
|
*/
|
1741
1625
|
|
1742
1626
|
function setupForTesting() {
|
1743
|
-
|
1627
|
+
_emberMetalTesting.setTesting(true);
|
1744
1628
|
|
1745
1629
|
var adapter = _emberTestingTestAdapter.getAdapter();
|
1746
1630
|
// if adapter is not manually set default to QUnit
|
1747
1631
|
if (!adapter) {
|
1748
|
-
|
1632
|
+
var QUnitAdapter = _require.default('ember-testing/adapters/qunit').default;
|
1633
|
+
_emberTestingTestAdapter.setAdapter(new QUnitAdapter());
|
1749
1634
|
}
|
1750
1635
|
|
1751
|
-
|
1752
|
-
|
1636
|
+
_emberViewsSystemJquery.default(document).off('ajaxSend', _emberTestingTestPending_requests.incrementPendingRequests);
|
1637
|
+
_emberViewsSystemJquery.default(document).off('ajaxComplete', _emberTestingTestPending_requests.decrementPendingRequests);
|
1753
1638
|
|
1754
1639
|
_emberTestingTestPending_requests.clearPendingRequests();
|
1755
1640
|
|
1756
|
-
|
1757
|
-
|
1641
|
+
_emberViewsSystemJquery.default(document).on('ajaxSend', _emberTestingTestPending_requests.incrementPendingRequests);
|
1642
|
+
_emberViewsSystemJquery.default(document).on('ajaxComplete', _emberTestingTestPending_requests.decrementPendingRequests);
|
1758
1643
|
}
|
1759
1644
|
});
|
1760
|
-
enifed('ember-testing/support', ['exports', 'ember-metal', 'ember-views', 'ember-environment'], function (exports,
|
1645
|
+
enifed('ember-testing/support', ['exports', 'ember-metal/debug', 'ember-views/system/jquery', 'ember-environment'], function (exports, _emberMetalDebug, _emberViewsSystemJquery, _emberEnvironment) {
|
1761
1646
|
'use strict';
|
1762
1647
|
|
1763
1648
|
/**
|
@@ -1765,7 +1650,7 @@ enifed('ember-testing/support', ['exports', 'ember-metal', 'ember-views', 'ember
|
|
1765
1650
|
@submodule ember-testing
|
1766
1651
|
*/
|
1767
1652
|
|
1768
|
-
var $ =
|
1653
|
+
var $ = _emberViewsSystemJquery.default;
|
1769
1654
|
|
1770
1655
|
/**
|
1771
1656
|
This method creates a checkbox and triggers the click event to fire the
|
@@ -1776,11 +1661,10 @@ enifed('ember-testing/support', ['exports', 'ember-metal', 'ember-views', 'ember
|
|
1776
1661
|
@method testCheckboxClick
|
1777
1662
|
*/
|
1778
1663
|
function testCheckboxClick(handler) {
|
1779
|
-
|
1780
|
-
$(input).attr('type', 'checkbox').css({ position: 'absolute', left: '-1000px', top: '-1000px' }).appendTo('body').on('click', handler).trigger('click').remove();
|
1664
|
+
$('<input type="checkbox">').css({ position: 'absolute', left: '-1000px', top: '-1000px' }).appendTo('body').on('click', handler).trigger('click').remove();
|
1781
1665
|
}
|
1782
1666
|
|
1783
|
-
if (_emberEnvironment.environment.hasDOM
|
1667
|
+
if (_emberEnvironment.environment.hasDOM) {
|
1784
1668
|
$(function () {
|
1785
1669
|
/*
|
1786
1670
|
Determine whether a checkbox checked using jQuery's "click" method will have
|
@@ -1805,12 +1689,12 @@ enifed('ember-testing/support', ['exports', 'ember-metal', 'ember-views', 'ember
|
|
1805
1689
|
|
1806
1690
|
// Try again to verify that the patch took effect or blow up.
|
1807
1691
|
testCheckboxClick(function () {
|
1808
|
-
|
1692
|
+
_emberMetalDebug.warn('clicked checkboxes should be checked! the jQuery patch didn\'t work', this.checked, { id: 'ember-testing.test-checkbox-click' });
|
1809
1693
|
});
|
1810
1694
|
});
|
1811
1695
|
}
|
1812
1696
|
});
|
1813
|
-
enifed('ember-testing/test', ['exports', 'ember-testing/test/helpers', 'ember-testing/test/on_inject_helpers', 'ember-testing/test/promise', 'ember-testing/test/waiters', 'ember-testing/test/adapter', 'ember-metal'], function (exports, _emberTestingTestHelpers, _emberTestingTestOn_inject_helpers, _emberTestingTestPromise, _emberTestingTestWaiters, _emberTestingTestAdapter,
|
1697
|
+
enifed('ember-testing/test', ['exports', 'ember-testing/test/helpers', 'ember-testing/test/on_inject_helpers', 'ember-testing/test/promise', 'ember-testing/test/waiters', 'ember-testing/test/adapter', 'ember-metal/features'], function (exports, _emberTestingTestHelpers, _emberTestingTestOn_inject_helpers, _emberTestingTestPromise, _emberTestingTestWaiters, _emberTestingTestAdapter, _emberMetalFeatures) {
|
1814
1698
|
/**
|
1815
1699
|
@module ember
|
1816
1700
|
@submodule ember-testing
|
@@ -1884,7 +1768,7 @@ enifed('ember-testing/test', ['exports', 'ember-testing/test/helpers', 'ember-te
|
|
1884
1768
|
|
1885
1769
|
exports.default = Test;
|
1886
1770
|
});
|
1887
|
-
enifed('ember-testing/test/adapter', ['exports', 'ember-console', 'ember-metal'], function (exports, _emberConsole,
|
1771
|
+
enifed('ember-testing/test/adapter', ['exports', 'ember-console', 'ember-metal/error_handler'], function (exports, _emberConsole, _emberMetalError_handler) {
|
1888
1772
|
'use strict';
|
1889
1773
|
|
1890
1774
|
exports.getAdapter = getAdapter;
|
@@ -1901,9 +1785,9 @@ enifed('ember-testing/test/adapter', ['exports', 'ember-console', 'ember-metal']
|
|
1901
1785
|
function setAdapter(value) {
|
1902
1786
|
adapter = value;
|
1903
1787
|
if (value) {
|
1904
|
-
|
1788
|
+
_emberMetalError_handler.setDispatchOverride(adapterDispatch);
|
1905
1789
|
} else {
|
1906
|
-
|
1790
|
+
_emberMetalError_handler.setDispatchOverride(null);
|
1907
1791
|
}
|
1908
1792
|
}
|
1909
1793
|
|
@@ -2114,20 +1998,26 @@ enifed("ember-testing/test/pending_requests", ["exports"], function (exports) {
|
|
2114
1998
|
}
|
2115
1999
|
}
|
2116
2000
|
});
|
2117
|
-
enifed('ember-testing/test/promise', ['exports', 'ember-runtime', 'ember-testing/test/run'], function (exports,
|
2001
|
+
enifed('ember-testing/test/promise', ['exports', 'ember-runtime/ext/rsvp', 'ember-testing/test/run'], function (exports, _emberRuntimeExtRsvp, _emberTestingTestRun) {
|
2118
2002
|
'use strict';
|
2119
2003
|
|
2120
2004
|
exports.promise = promise;
|
2121
2005
|
exports.resolve = resolve;
|
2122
2006
|
exports.getLastPromise = getLastPromise;
|
2123
2007
|
|
2008
|
+
function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }
|
2009
|
+
|
2010
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
|
2011
|
+
|
2012
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); }
|
2013
|
+
|
2124
2014
|
var lastPromise = undefined;
|
2125
2015
|
|
2126
2016
|
var TestPromise = (function (_RSVP$Promise) {
|
2127
|
-
|
2017
|
+
_inherits(TestPromise, _RSVP$Promise);
|
2128
2018
|
|
2129
2019
|
function TestPromise() {
|
2130
|
-
|
2020
|
+
_classCallCheck(this, TestPromise);
|
2131
2021
|
|
2132
2022
|
_RSVP$Promise.apply(this, arguments);
|
2133
2023
|
lastPromise = this;
|
@@ -2166,7 +2056,7 @@ enifed('ember-testing/test/promise', ['exports', 'ember-runtime', 'ember-testing
|
|
2166
2056
|
};
|
2167
2057
|
|
2168
2058
|
return TestPromise;
|
2169
|
-
})(
|
2059
|
+
})(_emberRuntimeExtRsvp.default.Promise);
|
2170
2060
|
|
2171
2061
|
exports.default = TestPromise;
|
2172
2062
|
|
@@ -2226,20 +2116,20 @@ enifed('ember-testing/test/promise', ['exports', 'ember-runtime', 'ember-testing
|
|
2226
2116
|
}
|
2227
2117
|
}
|
2228
2118
|
});
|
2229
|
-
enifed('ember-testing/test/run', ['exports', 'ember-metal'], function (exports,
|
2119
|
+
enifed('ember-testing/test/run', ['exports', 'ember-metal/run_loop'], function (exports, _emberMetalRun_loop) {
|
2230
2120
|
'use strict';
|
2231
2121
|
|
2232
2122
|
exports.default = run;
|
2233
2123
|
|
2234
2124
|
function run(fn) {
|
2235
|
-
if (!
|
2236
|
-
return
|
2125
|
+
if (!_emberMetalRun_loop.default.currentRunLoop) {
|
2126
|
+
return _emberMetalRun_loop.default(fn);
|
2237
2127
|
} else {
|
2238
2128
|
return fn();
|
2239
2129
|
}
|
2240
2130
|
}
|
2241
2131
|
});
|
2242
|
-
enifed('ember-testing/test/waiters', ['exports', 'ember-metal'], function (exports,
|
2132
|
+
enifed('ember-testing/test/waiters', ['exports', 'ember-metal/features', 'ember-metal/debug'], function (exports, _emberMetalFeatures, _emberMetalDebug) {
|
2243
2133
|
'use strict';
|
2244
2134
|
|
2245
2135
|
exports.registerWaiter = registerWaiter;
|
@@ -2253,10 +2143,7 @@ enifed('ember-testing/test/waiters', ['exports', 'ember-metal'], function (expor
|
|
2253
2143
|
/**
|
2254
2144
|
This allows ember-testing to play nicely with other asynchronous
|
2255
2145
|
events, such as an application that is waiting for a CSS3
|
2256
|
-
transition or an IndexDB transaction.
|
2257
|
-
after each async helper (i.e. `click`, `andThen`, `visit`, etc) has executed,
|
2258
|
-
until the returning result is truthy. After the waiters finish, the next async helper
|
2259
|
-
is executed and the process repeats.
|
2146
|
+
transition or an IndexDB transaction.
|
2260
2147
|
|
2261
2148
|
For example:
|
2262
2149
|
|
@@ -2360,7 +2247,7 @@ enifed('ember-testing/test/waiters', ['exports', 'ember-metal'], function (expor
|
|
2360
2247
|
}
|
2361
2248
|
|
2362
2249
|
function generateDeprecatedWaitersArray() {
|
2363
|
-
|
2250
|
+
_emberMetalDebug.deprecate('Usage of `Ember.Test.waiters` is deprecated. Please refactor to `Ember.Test.checkWaiters`.', !true, { until: '2.8.0', id: 'ember-testing.test-waiters' });
|
2364
2251
|
|
2365
2252
|
var array = new Array(callbacks.length);
|
2366
2253
|
for (var i = 0; i < callbacks.length; i++) {
|