ember-source 2.14.1 → 2.15.0.beta.1
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 +986 -1137
- data/dist/ember-template-compiler.js +3486 -2980
- data/dist/ember-testing.js +29 -47
- data/dist/ember-tests.js +6589 -6027
- data/dist/ember-tests.prod.js +7329 -6438
- data/dist/ember.debug.js +9171 -9147
- data/dist/ember.min.js +1549 -1405
- data/dist/ember.prod.js +8426 -8019
- metadata +5 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 837dbd7fb572dd0ef6914e79596b0ed915b7902c
|
|
4
|
+
data.tar.gz: 999a619c076d16e997bb242b4900cbefa4d1c464
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 78d9e22bbcfe1a4386f7d3d6fdcb79080a22ad4855d83111f77669e3a3bfe5de8b7a51a32e788abe22c479dbdf5baffb99ae24dca07c58e9baf42ba84b3719f7
|
|
7
|
+
data.tar.gz: 4e0a5b4dd1e6a2b1eea3c11ff495472a9d791de4e82d989628b3af3e572343910f4792f749f268527939350fbea968fda8b3eb63cdb59988c614fed4f0b3c356
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.
|
|
1
|
+
2.15.0.beta.1
|
data/dist/ember-runtime.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
|
+
* @version 2.15.0-beta.1
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
12
|
var enifed, requireModule, Ember;
|
|
@@ -112,10 +112,10 @@ var mainContext = this; // Used in ember-environment/lib/global.js
|
|
|
112
112
|
}
|
|
113
113
|
})();
|
|
114
114
|
|
|
115
|
-
enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'ember-environment'], function (exports, _emberBabel, _emberUtils, _emberDebug,
|
|
115
|
+
enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'ember/features', 'ember-environment'], function (exports, _emberBabel, _emberUtils, _emberDebug, _features) {
|
|
116
116
|
'use strict';
|
|
117
117
|
|
|
118
|
-
exports.
|
|
118
|
+
exports.Container = exports.privatize = exports.Registry = undefined;
|
|
119
119
|
|
|
120
120
|
|
|
121
121
|
/* globals Proxy */
|
|
@@ -134,16 +134,19 @@ enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'em
|
|
|
134
134
|
@private
|
|
135
135
|
@class Container
|
|
136
136
|
*/
|
|
137
|
-
function Container(registry
|
|
137
|
+
function Container(registry) {
|
|
138
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
139
|
+
|
|
138
140
|
this.registry = registry;
|
|
139
|
-
this.owner = options
|
|
140
|
-
this.cache = (0, _emberUtils.dictionary)(options
|
|
141
|
-
this.
|
|
142
|
-
this.factoryManagerCache = (0, _emberUtils.dictionary)(options && options.factoryManagerCache ? options.factoryManagerCache : null);
|
|
143
|
-
this.validationCache = (0, _emberUtils.dictionary)(options && options.validationCache ? options.validationCache : null);
|
|
144
|
-
this._fakeContainerToInject = buildFakeContainerWithDeprecations(this);
|
|
141
|
+
this.owner = options.owner || null;
|
|
142
|
+
this.cache = (0, _emberUtils.dictionary)(options.cache || null);
|
|
143
|
+
this.factoryManagerCache = (0, _emberUtils.dictionary)(options.factoryManagerCache || null);
|
|
145
144
|
this[CONTAINER_OVERRIDE] = undefined;
|
|
146
145
|
this.isDestroyed = false;
|
|
146
|
+
|
|
147
|
+
if (true) {
|
|
148
|
+
this.validationCache = (0, _emberUtils.dictionary)(options.validationCache || null);
|
|
149
|
+
}
|
|
147
150
|
}
|
|
148
151
|
|
|
149
152
|
Container.prototype = {
|
|
@@ -152,19 +155,12 @@ enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'em
|
|
|
152
155
|
|
|
153
156
|
return lookup(this, this.registry.normalize(fullName), options);
|
|
154
157
|
},
|
|
155
|
-
lookupFactory: function (fullName, options) {
|
|
156
|
-
(true && !(this.registry.validateFullName(fullName)) && (0, _emberDebug.assert)('fullName must be a proper full name', this.registry.validateFullName(fullName)));
|
|
157
|
-
(true && !(false) && (0, _emberDebug.deprecate)('Using "_lookupFactory" is deprecated. Please use container.factoryFor instead.', false, { id: 'container-lookupFactory', until: '2.13.0', url: 'http://emberjs.com/deprecations/v2.x/#toc_migrating-from-_lookupfactory-to-factoryfor' }));
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
return deprecatedFactoryFor(this, this.registry.normalize(fullName), options);
|
|
161
|
-
},
|
|
162
158
|
destroy: function () {
|
|
163
159
|
destroyDestroyables(this);
|
|
164
160
|
this.isDestroyed = true;
|
|
165
161
|
},
|
|
166
162
|
reset: function (fullName) {
|
|
167
|
-
if (
|
|
163
|
+
if (fullName !== undefined) {
|
|
168
164
|
resetMember(this, this.registry.normalize(fullName));
|
|
169
165
|
} else {
|
|
170
166
|
resetCache(this);
|
|
@@ -175,6 +171,9 @@ enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'em
|
|
|
175
171
|
|
|
176
172
|
return _ref = {}, _ref[_emberUtils.OWNER] = this.owner, _ref;
|
|
177
173
|
},
|
|
174
|
+
_resolverCacheKey: function (name, options) {
|
|
175
|
+
return this.registry.resolverCacheKey(name, options);
|
|
176
|
+
},
|
|
178
177
|
factoryFor: function (fullName) {
|
|
179
178
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
180
179
|
|
|
@@ -184,20 +183,37 @@ enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'em
|
|
|
184
183
|
|
|
185
184
|
|
|
186
185
|
if (options.source) {
|
|
187
|
-
|
|
186
|
+
var expandedFullName = this.registry.expandLocalLookup(fullName, options);
|
|
188
187
|
// if expandLocalLookup returns falsey, we do not support local lookup
|
|
189
|
-
if (
|
|
190
|
-
|
|
188
|
+
if (_features.EMBER_MODULE_UNIFICATION) {
|
|
189
|
+
if (expandedFullName) {
|
|
190
|
+
// with ember-module-unification, if expandLocalLookup returns something,
|
|
191
|
+
// pass it to the resolve without the source
|
|
192
|
+
normalizedName = expandedFullName;
|
|
193
|
+
options = {};
|
|
194
|
+
}
|
|
195
|
+
} else {
|
|
196
|
+
if (!expandedFullName) {
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
normalizedName = expandedFullName;
|
|
191
201
|
}
|
|
192
202
|
}
|
|
193
203
|
|
|
194
|
-
var
|
|
204
|
+
var cacheKey = this._resolverCacheKey(normalizedName, options);
|
|
205
|
+
var cached = this.factoryManagerCache[cacheKey];
|
|
195
206
|
|
|
196
|
-
if (cached) {
|
|
207
|
+
if (cached !== undefined) {
|
|
197
208
|
return cached;
|
|
198
209
|
}
|
|
199
210
|
|
|
200
|
-
var factory =
|
|
211
|
+
var factory = void 0;
|
|
212
|
+
if (_features.EMBER_MODULE_UNIFICATION) {
|
|
213
|
+
factory = this.registry.resolve(normalizedName, options);
|
|
214
|
+
} else {
|
|
215
|
+
factory = this.registry.resolve(normalizedName);
|
|
216
|
+
}
|
|
201
217
|
|
|
202
218
|
if (factory === undefined) {
|
|
203
219
|
return;
|
|
@@ -213,7 +229,7 @@ enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'em
|
|
|
213
229
|
manager = wrapManagerInDeprecationProxy(manager);
|
|
214
230
|
}
|
|
215
231
|
|
|
216
|
-
this.factoryManagerCache[
|
|
232
|
+
this.factoryManagerCache[cacheKey] = manager;
|
|
217
233
|
return manager;
|
|
218
234
|
}
|
|
219
235
|
};
|
|
@@ -225,20 +241,6 @@ enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'em
|
|
|
225
241
|
function wrapManagerInDeprecationProxy(manager) {
|
|
226
242
|
if (_emberUtils.HAS_NATIVE_PROXY) {
|
|
227
243
|
var validator = {
|
|
228
|
-
get: function (obj, prop) {
|
|
229
|
-
if (typeof prop === 'symbol') {
|
|
230
|
-
return obj[prop];
|
|
231
|
-
}
|
|
232
|
-
if (prop === 'inspect') {
|
|
233
|
-
return undefined; /* for nodes formatter */
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
if (prop !== 'class' && prop !== 'create' && prop !== 'toString') {
|
|
237
|
-
throw new Error('You attempted to access "' + prop + '" on a factory manager created by container#factoryFor. "' + prop + '" is not a member of a factory manager."');
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
return obj[prop];
|
|
241
|
-
},
|
|
242
244
|
set: function (obj, prop, value) {
|
|
243
245
|
throw new Error('You attempted to set "' + prop + '" on a factory manager created by container#factoryFor. A factory manager is a read-only construct.');
|
|
244
246
|
}
|
|
@@ -273,16 +275,29 @@ enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'em
|
|
|
273
275
|
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
274
276
|
|
|
275
277
|
if (options.source) {
|
|
276
|
-
|
|
278
|
+
var expandedFullName = container.registry.expandLocalLookup(fullName, options);
|
|
279
|
+
|
|
280
|
+
if (_features.EMBER_MODULE_UNIFICATION) {
|
|
281
|
+
if (expandedFullName) {
|
|
282
|
+
// with ember-module-unification, if expandLocalLookup returns something,
|
|
283
|
+
// pass it to the resolve without the source
|
|
284
|
+
fullName = expandedFullName;
|
|
285
|
+
options = {};
|
|
286
|
+
}
|
|
287
|
+
} else {
|
|
288
|
+
// if expandLocalLookup returns falsey, we do not support local lookup
|
|
289
|
+
if (!expandedFullName) {
|
|
290
|
+
return;
|
|
291
|
+
}
|
|
277
292
|
|
|
278
|
-
|
|
279
|
-
if (!fullName) {
|
|
280
|
-
return;
|
|
293
|
+
fullName = expandedFullName;
|
|
281
294
|
}
|
|
282
295
|
}
|
|
283
296
|
|
|
284
|
-
|
|
285
|
-
|
|
297
|
+
var cacheKey = container._resolverCacheKey(fullName, options);
|
|
298
|
+
var cached = container.cache[cacheKey];
|
|
299
|
+
if (cached !== undefined && options.singleton !== false) {
|
|
300
|
+
return cached;
|
|
286
301
|
}
|
|
287
302
|
|
|
288
303
|
return instantiateFactory(container, fullName, options);
|
|
@@ -292,41 +307,53 @@ enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'em
|
|
|
292
307
|
var instantiate = _ref2.instantiate,
|
|
293
308
|
singleton = _ref2.singleton;
|
|
294
309
|
|
|
295
|
-
return singleton !== false && isSingleton(container, fullName) && !
|
|
310
|
+
return singleton !== false && !instantiate && isSingleton(container, fullName) && !isInstantiatable(container, fullName);
|
|
296
311
|
}
|
|
297
312
|
|
|
298
313
|
function isSingletonInstance(container, fullName, _ref3) {
|
|
299
314
|
var instantiate = _ref3.instantiate,
|
|
300
315
|
singleton = _ref3.singleton;
|
|
301
316
|
|
|
302
|
-
return singleton !== false && isSingleton(container, fullName) &&
|
|
317
|
+
return singleton !== false && instantiate !== false && isSingleton(container, fullName) && isInstantiatable(container, fullName);
|
|
303
318
|
}
|
|
304
319
|
|
|
305
320
|
function isFactoryClass(container, fullname, _ref4) {
|
|
306
321
|
var instantiate = _ref4.instantiate,
|
|
307
322
|
singleton = _ref4.singleton;
|
|
308
323
|
|
|
309
|
-
return (singleton === false || !isSingleton(container, fullname)) &&
|
|
324
|
+
return instantiate === false && (singleton === false || !isSingleton(container, fullname)) && !isInstantiatable(container, fullname);
|
|
310
325
|
}
|
|
311
326
|
|
|
312
327
|
function isFactoryInstance(container, fullName, _ref5) {
|
|
313
328
|
var instantiate = _ref5.instantiate,
|
|
314
329
|
singleton = _ref5.singleton;
|
|
315
330
|
|
|
316
|
-
return (singleton !== false || isSingleton(container, fullName)) &&
|
|
331
|
+
return instantiate !== false && (singleton !== false || isSingleton(container, fullName)) && isInstantiatable(container, fullName);
|
|
317
332
|
}
|
|
318
333
|
|
|
319
334
|
function instantiateFactory(container, fullName, options) {
|
|
320
|
-
|
|
335
|
+
|
|
336
|
+
var factoryManager = void 0;
|
|
337
|
+
if (_features.EMBER_MODULE_UNIFICATION) {
|
|
338
|
+
if (options && options.source) {
|
|
339
|
+
factoryManager = container.factoryFor(fullName, options);
|
|
340
|
+
} else {
|
|
341
|
+
factoryManager = container.factoryFor(fullName);
|
|
342
|
+
}
|
|
343
|
+
} else {
|
|
344
|
+
factoryManager = container.factoryFor(fullName);
|
|
345
|
+
}
|
|
321
346
|
|
|
322
347
|
if (factoryManager === undefined) {
|
|
323
348
|
return;
|
|
324
349
|
}
|
|
325
350
|
|
|
351
|
+
var cacheKey = container._resolverCacheKey(fullName, options);
|
|
352
|
+
|
|
326
353
|
// SomeClass { singleton: true, instantiate: true } | { singleton: true } | { instantiate: true } | {}
|
|
327
354
|
// By default majority of objects fall into this case
|
|
328
355
|
if (isSingletonInstance(container, fullName, options)) {
|
|
329
|
-
return container.cache[
|
|
356
|
+
return container.cache[cacheKey] = factoryManager.create();
|
|
330
357
|
}
|
|
331
358
|
|
|
332
359
|
// SomeClass { singleton: false, instantiate: true }
|
|
@@ -346,8 +373,8 @@ enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'em
|
|
|
346
373
|
injections._dynamic = true;
|
|
347
374
|
}
|
|
348
375
|
|
|
349
|
-
function
|
|
350
|
-
return
|
|
376
|
+
function areInjectionsNotDynamic(injections) {
|
|
377
|
+
return injections._dynamic !== true;
|
|
351
378
|
}
|
|
352
379
|
|
|
353
380
|
function buildInjections() /* container, ...injections */{
|
|
@@ -385,65 +412,6 @@ enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'em
|
|
|
385
412
|
return hash;
|
|
386
413
|
}
|
|
387
414
|
|
|
388
|
-
function deprecatedFactoryFor(container, fullName) {
|
|
389
|
-
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
390
|
-
|
|
391
|
-
var registry = container.registry;
|
|
392
|
-
|
|
393
|
-
if (options.source) {
|
|
394
|
-
fullName = registry.expandLocalLookup(fullName, options);
|
|
395
|
-
// if expandLocalLookup returns falsey, we do not support local lookup
|
|
396
|
-
if (!fullName) {
|
|
397
|
-
return;
|
|
398
|
-
}
|
|
399
|
-
}
|
|
400
|
-
|
|
401
|
-
var cache = container.factoryCache;
|
|
402
|
-
if (cache[fullName]) {
|
|
403
|
-
return cache[fullName];
|
|
404
|
-
}
|
|
405
|
-
var factory = registry.resolve(fullName);
|
|
406
|
-
if (factory === undefined) {
|
|
407
|
-
return;
|
|
408
|
-
}
|
|
409
|
-
|
|
410
|
-
var type = fullName.split(':')[0];
|
|
411
|
-
if (!factory || typeof factory.extend !== 'function' || !_emberEnvironment.ENV.MODEL_FACTORY_INJECTIONS && type === 'model') {
|
|
412
|
-
if (factory && typeof factory._onLookup === 'function') {
|
|
413
|
-
factory._onLookup(fullName);
|
|
414
|
-
}
|
|
415
|
-
|
|
416
|
-
// TODO: think about a 'safe' merge style extension
|
|
417
|
-
// for now just fallback to create time injection
|
|
418
|
-
cache[fullName] = factory;
|
|
419
|
-
return factory;
|
|
420
|
-
} else {
|
|
421
|
-
var injections = injectionsFor(container, fullName);
|
|
422
|
-
var factoryInjections = factoryInjectionsFor(container, fullName);
|
|
423
|
-
var cacheable = !areInjectionsDynamic(injections) && !areInjectionsDynamic(factoryInjections);
|
|
424
|
-
|
|
425
|
-
factoryInjections[_emberUtils.NAME_KEY] = registry.makeToString(factory, fullName);
|
|
426
|
-
injections._debugContainerKey = fullName;
|
|
427
|
-
(0, _emberUtils.setOwner)(injections, container.owner);
|
|
428
|
-
|
|
429
|
-
var injectedFactory = factory.extend(injections);
|
|
430
|
-
|
|
431
|
-
// TODO - remove all `container` injections when Ember reaches v3.0.0
|
|
432
|
-
injectDeprecatedContainer(injectedFactory.prototype, container);
|
|
433
|
-
injectedFactory.reopenClass(factoryInjections);
|
|
434
|
-
|
|
435
|
-
if (factory && typeof factory._onLookup === 'function') {
|
|
436
|
-
factory._onLookup(fullName);
|
|
437
|
-
}
|
|
438
|
-
|
|
439
|
-
if (cacheable) {
|
|
440
|
-
cache[fullName] = injectedFactory;
|
|
441
|
-
}
|
|
442
|
-
|
|
443
|
-
return injectedFactory;
|
|
444
|
-
}
|
|
445
|
-
}
|
|
446
|
-
|
|
447
415
|
function injectionsFor(container, fullName) {
|
|
448
416
|
var registry = container.registry;
|
|
449
417
|
var splitName = fullName.split(':');
|
|
@@ -454,43 +422,6 @@ enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'em
|
|
|
454
422
|
return injections;
|
|
455
423
|
}
|
|
456
424
|
|
|
457
|
-
function factoryInjectionsFor(container, fullName) {
|
|
458
|
-
var registry = container.registry;
|
|
459
|
-
var splitName = fullName.split(':');
|
|
460
|
-
var type = splitName[0];
|
|
461
|
-
|
|
462
|
-
var factoryInjections = buildInjections(container, registry.getFactoryTypeInjections(type), registry.getFactoryInjections(fullName));
|
|
463
|
-
factoryInjections._debugContainerKey = fullName;
|
|
464
|
-
|
|
465
|
-
return factoryInjections;
|
|
466
|
-
}
|
|
467
|
-
|
|
468
|
-
var INJECTED_DEPRECATED_CONTAINER_DESC = {
|
|
469
|
-
configurable: true,
|
|
470
|
-
enumerable: false,
|
|
471
|
-
get: function () {
|
|
472
|
-
(true && !(false) && (0, _emberDebug.deprecate)('Using the injected `container` is deprecated. Please use the `getOwner` helper instead to access the owner of this object.', false, { id: 'ember-application.injected-container', until: '2.13.0', url: 'http://emberjs.com/deprecations/v2.x#toc_injected-container-access' }));
|
|
473
|
-
|
|
474
|
-
return this[CONTAINER_OVERRIDE] || (0, _emberUtils.getOwner)(this).__container__;
|
|
475
|
-
},
|
|
476
|
-
set: function (value) {
|
|
477
|
-
(true && !(false) && (0, _emberDebug.deprecate)('Providing the `container` property to ' + this + ' is deprecated. Please use `Ember.setOwner` or `owner.ownerInjection()` instead to provide an owner to the instance being created.', false, { id: 'ember-application.injected-container', until: '2.13.0', url: 'http://emberjs.com/deprecations/v2.x#toc_injected-container-access' }));
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
this[CONTAINER_OVERRIDE] = value;
|
|
481
|
-
|
|
482
|
-
return value;
|
|
483
|
-
}
|
|
484
|
-
};
|
|
485
|
-
|
|
486
|
-
// TODO - remove when Ember reaches v3.0.0
|
|
487
|
-
function injectDeprecatedContainer(object, container) {
|
|
488
|
-
if ('container' in object) {
|
|
489
|
-
return;
|
|
490
|
-
}
|
|
491
|
-
Object.defineProperty(object, 'container', INJECTED_DEPRECATED_CONTAINER_DESC);
|
|
492
|
-
}
|
|
493
|
-
|
|
494
425
|
function destroyDestroyables(container) {
|
|
495
426
|
var cache = container.cache;
|
|
496
427
|
var keys = Object.keys(cache);
|
|
@@ -513,7 +444,7 @@ enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'em
|
|
|
513
444
|
function resetMember(container, fullName) {
|
|
514
445
|
var member = container.cache[fullName];
|
|
515
446
|
|
|
516
|
-
delete container.
|
|
447
|
+
delete container.factoryManagerCache[fullName];
|
|
517
448
|
|
|
518
449
|
if (member) {
|
|
519
450
|
delete container.cache[fullName];
|
|
@@ -524,32 +455,6 @@ enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'em
|
|
|
524
455
|
}
|
|
525
456
|
}
|
|
526
457
|
|
|
527
|
-
function buildFakeContainerWithDeprecations(container) {
|
|
528
|
-
var fakeContainer = {};
|
|
529
|
-
var propertyMappings = {
|
|
530
|
-
lookup: 'lookup',
|
|
531
|
-
lookupFactory: '_lookupFactory'
|
|
532
|
-
};
|
|
533
|
-
|
|
534
|
-
for (var containerProperty in propertyMappings) {
|
|
535
|
-
fakeContainer[containerProperty] = buildFakeContainerFunction(container, containerProperty, propertyMappings[containerProperty]);
|
|
536
|
-
}
|
|
537
|
-
|
|
538
|
-
return fakeContainer;
|
|
539
|
-
}
|
|
540
|
-
|
|
541
|
-
function buildFakeContainerFunction(container, containerProperty, ownerProperty) {
|
|
542
|
-
return function () {
|
|
543
|
-
(true && !(false) && (0, _emberDebug.deprecate)('Using the injected `container` is deprecated. Please use the `getOwner` helper to access the owner of this object and then call `' + ownerProperty + '` instead.', false, {
|
|
544
|
-
id: 'ember-application.injected-container',
|
|
545
|
-
until: '2.13.0',
|
|
546
|
-
url: 'http://emberjs.com/deprecations/v2.x#toc_injected-container-access'
|
|
547
|
-
}));
|
|
548
|
-
|
|
549
|
-
return container[containerProperty].apply(container, arguments);
|
|
550
|
-
};
|
|
551
|
-
}
|
|
552
|
-
|
|
553
458
|
var FactoryManager = function () {
|
|
554
459
|
function FactoryManager(container, factory, fullName, normalizedName) {
|
|
555
460
|
(0, _emberBabel.classCallCheck)(this, FactoryManager);
|
|
@@ -574,11 +479,10 @@ enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'em
|
|
|
574
479
|
FactoryManager.prototype.create = function create() {
|
|
575
480
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
576
481
|
|
|
577
|
-
|
|
578
482
|
var injections = this.injections;
|
|
579
483
|
if (injections === undefined) {
|
|
580
484
|
injections = injectionsFor(this.container, this.normalizedName);
|
|
581
|
-
if (
|
|
485
|
+
if (areInjectionsNotDynamic(injections)) {
|
|
582
486
|
this.injections = injections;
|
|
583
487
|
}
|
|
584
488
|
}
|
|
@@ -602,11 +506,6 @@ enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'em
|
|
|
602
506
|
throw new Error('Failed to create an instance of \'' + this.normalizedName + '\'. Most likely an improperly defined class or' + ' an invalid module export.');
|
|
603
507
|
}
|
|
604
508
|
|
|
605
|
-
var prototype = this.class.prototype;
|
|
606
|
-
if (prototype) {
|
|
607
|
-
injectDeprecatedContainer(prototype, this.container);
|
|
608
|
-
}
|
|
609
|
-
|
|
610
509
|
// required to allow access to things like
|
|
611
510
|
// the customized toString, _debugContainerKey,
|
|
612
511
|
// owner, etc. without a double extend and without
|
|
@@ -643,23 +542,22 @@ enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'em
|
|
|
643
542
|
@class Registry
|
|
644
543
|
@since 1.11.0
|
|
645
544
|
*/
|
|
646
|
-
function Registry(
|
|
647
|
-
|
|
545
|
+
function Registry() {
|
|
546
|
+
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
648
547
|
|
|
649
|
-
|
|
650
|
-
this.resolver = options.resolver;
|
|
548
|
+
this.fallback = options.fallback || null;
|
|
651
549
|
|
|
550
|
+
if (options.resolver) {
|
|
551
|
+
this.resolver = options.resolver;
|
|
652
552
|
if (typeof this.resolver === 'function') {
|
|
653
553
|
deprecateResolverFunction(this);
|
|
654
554
|
}
|
|
655
555
|
}
|
|
656
556
|
|
|
657
|
-
this.registrations = (0, _emberUtils.dictionary)(options
|
|
557
|
+
this.registrations = (0, _emberUtils.dictionary)(options.registrations || null);
|
|
658
558
|
|
|
659
559
|
this._typeInjections = (0, _emberUtils.dictionary)(null);
|
|
660
560
|
this._injections = (0, _emberUtils.dictionary)(null);
|
|
661
|
-
this._factoryTypeInjections = (0, _emberUtils.dictionary)(null);
|
|
662
|
-
this._factoryInjections = (0, _emberUtils.dictionary)(null);
|
|
663
561
|
|
|
664
562
|
this._localLookupCache = Object.create(null);
|
|
665
563
|
this._normalizeCache = (0, _emberUtils.dictionary)(null);
|
|
@@ -708,20 +606,6 @@ enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'em
|
|
|
708
606
|
*/
|
|
709
607
|
_injections: null,
|
|
710
608
|
|
|
711
|
-
/**
|
|
712
|
-
@private
|
|
713
|
-
@property _factoryTypeInjections
|
|
714
|
-
@type InheritingDict
|
|
715
|
-
*/
|
|
716
|
-
_factoryTypeInjections: null,
|
|
717
|
-
|
|
718
|
-
/**
|
|
719
|
-
@private
|
|
720
|
-
@property _factoryInjections
|
|
721
|
-
@type InheritingDict
|
|
722
|
-
*/
|
|
723
|
-
_factoryInjections: null,
|
|
724
|
-
|
|
725
609
|
/**
|
|
726
610
|
@private
|
|
727
611
|
@property _normalizeCache
|
|
@@ -911,31 +795,6 @@ enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'em
|
|
|
911
795
|
fullName: normalizedInjectionName
|
|
912
796
|
});
|
|
913
797
|
},
|
|
914
|
-
factoryTypeInjection: function (type, property, fullName) {
|
|
915
|
-
var injections = this._factoryTypeInjections[type] || (this._factoryTypeInjections[type] = []);
|
|
916
|
-
|
|
917
|
-
injections.push({
|
|
918
|
-
property: property,
|
|
919
|
-
fullName: this.normalize(fullName)
|
|
920
|
-
});
|
|
921
|
-
},
|
|
922
|
-
factoryInjection: function (fullName, property, injectionName) {
|
|
923
|
-
var normalizedName = this.normalize(fullName);
|
|
924
|
-
var normalizedInjectionName = this.normalize(injectionName);
|
|
925
|
-
|
|
926
|
-
this.validateFullName(injectionName);
|
|
927
|
-
|
|
928
|
-
if (fullName.indexOf(':') === -1) {
|
|
929
|
-
return this.factoryTypeInjection(normalizedName, property, normalizedInjectionName);
|
|
930
|
-
}
|
|
931
|
-
|
|
932
|
-
var injections = this._factoryInjections[normalizedName] || (this._factoryInjections[normalizedName] = []);
|
|
933
|
-
|
|
934
|
-
injections.push({
|
|
935
|
-
property: property,
|
|
936
|
-
fullName: normalizedInjectionName
|
|
937
|
-
});
|
|
938
|
-
},
|
|
939
798
|
knownForType: function (type) {
|
|
940
799
|
var fallbackKnown = void 0,
|
|
941
800
|
resolverKnown = void 0;
|
|
@@ -969,20 +828,7 @@ enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'em
|
|
|
969
828
|
return true;
|
|
970
829
|
},
|
|
971
830
|
isValidFullName: function (fullName) {
|
|
972
|
-
return
|
|
973
|
-
},
|
|
974
|
-
validateInjections: function (injections) {
|
|
975
|
-
if (!injections) {
|
|
976
|
-
return;
|
|
977
|
-
}
|
|
978
|
-
|
|
979
|
-
var fullName = void 0;
|
|
980
|
-
|
|
981
|
-
for (var i = 0; i < injections.length; i++) {
|
|
982
|
-
fullName = injections[i].fullName;
|
|
983
|
-
|
|
984
|
-
(true && !(this.has(fullName)) && (0, _emberDebug.assert)('Attempting to inject an unknown injection: \'' + fullName + '\'', this.has(fullName)));
|
|
985
|
-
}
|
|
831
|
+
return VALID_FULL_NAME_REGEXP.test(fullName);
|
|
986
832
|
},
|
|
987
833
|
normalizeInjectionsHash: function (hash) {
|
|
988
834
|
var injections = [];
|
|
@@ -1015,30 +861,39 @@ enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'em
|
|
|
1015
861
|
}
|
|
1016
862
|
return injections;
|
|
1017
863
|
},
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
return injections;
|
|
1024
|
-
},
|
|
1025
|
-
getFactoryTypeInjections: function (type) {
|
|
1026
|
-
var injections = this._factoryTypeInjections[type] || [];
|
|
1027
|
-
if (this.fallback) {
|
|
1028
|
-
injections = injections.concat(this.fallback.getFactoryTypeInjections(type));
|
|
864
|
+
resolverCacheKey: function (name, options) {
|
|
865
|
+
if (_features.EMBER_MODULE_UNIFICATION) {
|
|
866
|
+
return options && options.source ? options.source + ':' + name : name;
|
|
867
|
+
} else {
|
|
868
|
+
return name;
|
|
1029
869
|
}
|
|
1030
|
-
return injections;
|
|
1031
870
|
}
|
|
1032
871
|
};
|
|
1033
872
|
|
|
1034
873
|
function deprecateResolverFunction(registry) {
|
|
1035
|
-
(true && !(false) && (0, _emberDebug.deprecate)('Passing a `resolver` function into a Registry is deprecated. Please pass in a Resolver object with a `resolve` method.', false, { id: 'ember-application.registry-resolver-as-function', until: '3.0.0', url: '
|
|
874
|
+
(true && !(false) && (0, _emberDebug.deprecate)('Passing a `resolver` function into a Registry is deprecated. Please pass in a Resolver object with a `resolve` method.', false, { id: 'ember-application.registry-resolver-as-function', until: '3.0.0', url: 'https://emberjs.com/deprecations/v2.x#toc_registry-resolver-as-function' }));
|
|
1036
875
|
|
|
1037
876
|
registry.resolver = {
|
|
1038
877
|
resolve: registry.resolver
|
|
1039
878
|
};
|
|
1040
879
|
}
|
|
1041
880
|
|
|
881
|
+
if (true) {
|
|
882
|
+
Registry.prototype.validateInjections = function (injections) {
|
|
883
|
+
if (!injections) {
|
|
884
|
+
return;
|
|
885
|
+
}
|
|
886
|
+
|
|
887
|
+
var fullName = void 0;
|
|
888
|
+
|
|
889
|
+
for (var i = 0; i < injections.length; i++) {
|
|
890
|
+
fullName = injections[i].fullName;
|
|
891
|
+
|
|
892
|
+
(true && !(this.has(fullName)) && (0, _emberDebug.assert)('Attempting to inject an unknown injection: \'' + fullName + '\'', this.has(fullName)));
|
|
893
|
+
}
|
|
894
|
+
};
|
|
895
|
+
}
|
|
896
|
+
|
|
1042
897
|
/**
|
|
1043
898
|
Given a fullName and a source fullName returns the fully resolved
|
|
1044
899
|
fullName. Used to allow for local lookup.
|
|
@@ -1098,26 +953,38 @@ enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'em
|
|
|
1098
953
|
if (options && options.source) {
|
|
1099
954
|
// when `source` is provided expand normalizedName
|
|
1100
955
|
// and source into the full normalizedName
|
|
1101
|
-
|
|
956
|
+
var expandedNormalizedName = registry.expandLocalLookup(normalizedName, options);
|
|
957
|
+
|
|
958
|
+
if (_features.EMBER_MODULE_UNIFICATION) {
|
|
959
|
+
if (expandedNormalizedName) {
|
|
960
|
+
// with ember-module-unification, if expandLocalLookup returns something,
|
|
961
|
+
// pass it to the resolve without the source
|
|
962
|
+
normalizedName = expandedNormalizedName;
|
|
963
|
+
options = {};
|
|
964
|
+
}
|
|
965
|
+
} else {
|
|
966
|
+
// if expandLocalLookup returns falsey, we do not support local lookup
|
|
967
|
+
if (!expandedNormalizedName) {
|
|
968
|
+
return;
|
|
969
|
+
}
|
|
1102
970
|
|
|
1103
|
-
|
|
1104
|
-
if (!normalizedName) {
|
|
1105
|
-
return;
|
|
971
|
+
normalizedName = expandedNormalizedName;
|
|
1106
972
|
}
|
|
1107
973
|
}
|
|
1108
974
|
|
|
1109
|
-
var
|
|
975
|
+
var cacheKey = registry.resolverCacheKey(normalizedName, options);
|
|
976
|
+
var cached = registry._resolveCache[cacheKey];
|
|
1110
977
|
if (cached !== undefined) {
|
|
1111
978
|
return cached;
|
|
1112
979
|
}
|
|
1113
|
-
if (registry._failCache[
|
|
980
|
+
if (registry._failCache[cacheKey]) {
|
|
1114
981
|
return;
|
|
1115
982
|
}
|
|
1116
983
|
|
|
1117
984
|
var resolved = void 0;
|
|
1118
985
|
|
|
1119
986
|
if (registry.resolver) {
|
|
1120
|
-
resolved = registry.resolver.resolve(normalizedName);
|
|
987
|
+
resolved = registry.resolver.resolve(normalizedName, options && options.source);
|
|
1121
988
|
}
|
|
1122
989
|
|
|
1123
990
|
if (resolved === undefined) {
|
|
@@ -1125,9 +992,9 @@ enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'em
|
|
|
1125
992
|
}
|
|
1126
993
|
|
|
1127
994
|
if (resolved === undefined) {
|
|
1128
|
-
registry._failCache[
|
|
995
|
+
registry._failCache[cacheKey] = true;
|
|
1129
996
|
} else {
|
|
1130
|
-
registry._resolveCache[
|
|
997
|
+
registry._resolveCache[cacheKey] = resolved;
|
|
1131
998
|
}
|
|
1132
999
|
|
|
1133
1000
|
return resolved;
|
|
@@ -1138,7 +1005,7 @@ enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'em
|
|
|
1138
1005
|
}
|
|
1139
1006
|
|
|
1140
1007
|
var privateNames = (0, _emberUtils.dictionary)(null);
|
|
1141
|
-
var privateSuffix = '' + Math.random() + Date.now();
|
|
1008
|
+
var privateSuffix = ('' + Math.random() + Date.now()).replace('.', '');
|
|
1142
1009
|
|
|
1143
1010
|
function privatize(_ref6) {
|
|
1144
1011
|
var fullName = _ref6[0];
|
|
@@ -1165,7 +1032,6 @@ enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'em
|
|
|
1165
1032
|
exports.Registry = Registry;
|
|
1166
1033
|
exports.privatize = privatize;
|
|
1167
1034
|
exports.Container = Container;
|
|
1168
|
-
exports.buildFakeContainerWithDeprecations = buildFakeContainerWithDeprecations;
|
|
1169
1035
|
});
|
|
1170
1036
|
enifed('ember-babel', ['exports'], function (exports) {
|
|
1171
1037
|
'use strict';
|
|
@@ -1233,7 +1099,7 @@ enifed('ember-babel', ['exports'], function (exports) {
|
|
|
1233
1099
|
|
|
1234
1100
|
var possibleConstructorReturn = exports.possibleConstructorReturn = function (self, call) {
|
|
1235
1101
|
if (!self) {
|
|
1236
|
-
throw new ReferenceError('this hasn\'t been
|
|
1102
|
+
throw new ReferenceError('this hasn\'t been initialized - super() hasn\'t been called');
|
|
1237
1103
|
}
|
|
1238
1104
|
return call && (typeof call === 'object' || typeof call === 'function') ? call : self;
|
|
1239
1105
|
};
|
|
@@ -1545,7 +1411,7 @@ enifed('ember-environment', ['exports'], function (exports) {
|
|
|
1545
1411
|
enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-debug', 'ember-babel', 'ember/features', '@glimmer/reference', 'require', 'ember-console', 'backburner'], function (exports, emberEnvironment, emberUtils, emberDebug, emberBabel, ember_features, _glimmer_reference, require, Logger, Backburner) {
|
|
1546
1412
|
'use strict';
|
|
1547
1413
|
|
|
1548
|
-
|
|
1414
|
+
require = 'default' in require ? require['default'] : require;
|
|
1549
1415
|
Logger = 'default' in Logger ? Logger['default'] : Logger;
|
|
1550
1416
|
Backburner = 'default' in Backburner ? Backburner['default'] : Backburner;
|
|
1551
1417
|
|
|
@@ -1563,7 +1429,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
1563
1429
|
cross-platform compatibility and object property observing. Ember-Runtime is
|
|
1564
1430
|
small and performance-focused so you can use it alongside other
|
|
1565
1431
|
cross-platform libraries such as jQuery. For more details, see
|
|
1566
|
-
[Ember-Runtime](
|
|
1432
|
+
[Ember-Runtime](https://emberjs.com/api/modules/ember-runtime.html).
|
|
1567
1433
|
|
|
1568
1434
|
@class Ember
|
|
1569
1435
|
@static
|
|
@@ -1595,7 +1461,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
1595
1461
|
|
|
1596
1462
|
var protoMethods = {
|
|
1597
1463
|
addToListeners: function (eventName, target, method, flags) {
|
|
1598
|
-
if (
|
|
1464
|
+
if (this._listeners === undefined) {
|
|
1599
1465
|
this._listeners = [];
|
|
1600
1466
|
}
|
|
1601
1467
|
this._listeners.push(eventName, target, method, flags);
|
|
@@ -1604,13 +1470,13 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
1604
1470
|
if (this._listenersFinalized) {
|
|
1605
1471
|
return;
|
|
1606
1472
|
}
|
|
1607
|
-
if (
|
|
1473
|
+
if (this._listeners === undefined) {
|
|
1608
1474
|
this._listeners = [];
|
|
1609
1475
|
}
|
|
1610
1476
|
var pointer = this.parent;
|
|
1611
|
-
while (pointer) {
|
|
1477
|
+
while (pointer !== undefined) {
|
|
1612
1478
|
var listeners = pointer._listeners;
|
|
1613
|
-
if (listeners) {
|
|
1479
|
+
if (listeners !== undefined) {
|
|
1614
1480
|
this._listeners = this._listeners.concat(listeners);
|
|
1615
1481
|
}
|
|
1616
1482
|
if (pointer._listenersFinalized) {
|
|
@@ -1622,9 +1488,9 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
1622
1488
|
},
|
|
1623
1489
|
removeFromListeners: function (eventName, target, method, didRemove) {
|
|
1624
1490
|
var pointer = this;
|
|
1625
|
-
while (pointer) {
|
|
1491
|
+
while (pointer !== undefined) {
|
|
1626
1492
|
var listeners = pointer._listeners;
|
|
1627
|
-
if (listeners) {
|
|
1493
|
+
if (listeners !== undefined) {
|
|
1628
1494
|
for (var index = listeners.length - 4; index >= 0; index -= 4) {
|
|
1629
1495
|
if (listeners[index] === eventName && (!method || listeners[index + 1] === target && listeners[index + 2] === method)) {
|
|
1630
1496
|
if (pointer === this) {
|
|
@@ -1655,23 +1521,23 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
1655
1521
|
while (pointer !== undefined) {
|
|
1656
1522
|
var listeners = pointer._listeners;
|
|
1657
1523
|
if (listeners !== undefined) {
|
|
1658
|
-
for (var index = 0; index < listeners.length
|
|
1524
|
+
for (var index = 0; index < listeners.length; index += 4) {
|
|
1659
1525
|
if (listeners[index] === eventName) {
|
|
1660
1526
|
result = result || [];
|
|
1661
1527
|
pushUniqueListener(result, listeners, index);
|
|
1662
1528
|
}
|
|
1663
1529
|
}
|
|
1664
1530
|
}
|
|
1665
|
-
if (pointer._listenersFinalized
|
|
1531
|
+
if (pointer._listenersFinalized) {
|
|
1666
1532
|
break;
|
|
1667
1533
|
}
|
|
1668
1534
|
pointer = pointer.parent;
|
|
1669
1535
|
}
|
|
1670
1536
|
var sus = this._suspendedListeners;
|
|
1671
1537
|
if (sus !== undefined && result !== undefined) {
|
|
1672
|
-
for (var susIndex = 0; susIndex < sus.length
|
|
1538
|
+
for (var susIndex = 0; susIndex < sus.length; susIndex += 3) {
|
|
1673
1539
|
if (eventName === sus[susIndex]) {
|
|
1674
|
-
for (var resultIndex = 0; resultIndex < result.length
|
|
1540
|
+
for (var resultIndex = 0; resultIndex < result.length; resultIndex += 3) {
|
|
1675
1541
|
if (result[resultIndex] === sus[susIndex + 1] && result[resultIndex + 1] === sus[susIndex + 2]) {
|
|
1676
1542
|
result[resultIndex + 2] |= SUSPENDED;
|
|
1677
1543
|
}
|
|
@@ -1683,7 +1549,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
1683
1549
|
},
|
|
1684
1550
|
suspendListeners: function (eventNames, target, method, callback) {
|
|
1685
1551
|
var sus = this._suspendedListeners;
|
|
1686
|
-
if (
|
|
1552
|
+
if (sus === undefined) {
|
|
1687
1553
|
sus = this._suspendedListeners = [];
|
|
1688
1554
|
}
|
|
1689
1555
|
for (var i = 0; i < eventNames.length; i++) {
|
|
@@ -1706,10 +1572,10 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
1706
1572
|
watchedEvents: function () {
|
|
1707
1573
|
var pointer = this;
|
|
1708
1574
|
var names = {};
|
|
1709
|
-
while (pointer) {
|
|
1575
|
+
while (pointer !== undefined) {
|
|
1710
1576
|
var listeners = pointer._listeners;
|
|
1711
|
-
if (listeners) {
|
|
1712
|
-
for (var index = 0; index < listeners.length
|
|
1577
|
+
if (listeners !== undefined) {
|
|
1578
|
+
for (var index = 0; index < listeners.length; index += 4) {
|
|
1713
1579
|
names[listeners[index]] = true;
|
|
1714
1580
|
}
|
|
1715
1581
|
}
|
|
@@ -1719,18 +1585,13 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
1719
1585
|
pointer = pointer.parent;
|
|
1720
1586
|
}
|
|
1721
1587
|
return Object.keys(names);
|
|
1722
|
-
},
|
|
1723
|
-
_initializeListeners: function () {
|
|
1724
|
-
this._listeners = undefined;
|
|
1725
|
-
this._listenersFinalized = undefined;
|
|
1726
|
-
this._suspendedListeners = undefined;
|
|
1727
1588
|
}
|
|
1728
1589
|
};
|
|
1729
1590
|
|
|
1730
1591
|
function pushUniqueListener(destination, source, index) {
|
|
1731
1592
|
var target = source[index + 1];
|
|
1732
1593
|
var method = source[index + 2];
|
|
1733
|
-
for (var destinationIndex = 0; destinationIndex < destination.length
|
|
1594
|
+
for (var destinationIndex = 0; destinationIndex < destination.length; destinationIndex += 3) {
|
|
1734
1595
|
if (destination[destinationIndex] === target && destination[destinationIndex + 1] === method) {
|
|
1735
1596
|
return;
|
|
1736
1597
|
}
|
|
@@ -1817,7 +1678,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
1817
1678
|
true && !(eventName !== 'didInitAttrs') && emberDebug.deprecate('didInitAttrs called in ' + (obj && obj.toString && obj.toString()) + '.', eventName !== 'didInitAttrs', {
|
|
1818
1679
|
id: 'ember-views.did-init-attrs',
|
|
1819
1680
|
until: '3.0.0',
|
|
1820
|
-
url: '
|
|
1681
|
+
url: 'https://emberjs.com/deprecations/v2.x#toc_ember-component-didinitattrs'
|
|
1821
1682
|
});
|
|
1822
1683
|
|
|
1823
1684
|
if (!method && 'function' === typeof target) {
|
|
@@ -1858,11 +1719,8 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
1858
1719
|
target = null;
|
|
1859
1720
|
}
|
|
1860
1721
|
|
|
1861
|
-
|
|
1862
|
-
|
|
1863
|
-
obj.didRemoveListener.apply(obj, arguments);
|
|
1864
|
-
}
|
|
1865
|
-
});
|
|
1722
|
+
var func = 'function' === typeof obj.didRemoveListener ? obj.didRemoveListener.bind(obj) : function () {};
|
|
1723
|
+
meta(obj).removeFromListeners(eventName, target, method, func);
|
|
1866
1724
|
}
|
|
1867
1725
|
|
|
1868
1726
|
/**
|
|
@@ -1917,7 +1775,8 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
1917
1775
|
@param obj
|
|
1918
1776
|
*/
|
|
1919
1777
|
function watchedEvents(obj) {
|
|
1920
|
-
|
|
1778
|
+
var meta$$1 = exports.peekMeta(obj);
|
|
1779
|
+
return meta$$1 && meta$$1.watchedEvents() || [];
|
|
1921
1780
|
}
|
|
1922
1781
|
|
|
1923
1782
|
/**
|
|
@@ -1943,7 +1802,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
1943
1802
|
}
|
|
1944
1803
|
|
|
1945
1804
|
if (actions === undefined || actions.length === 0) {
|
|
1946
|
-
return;
|
|
1805
|
+
return false;
|
|
1947
1806
|
}
|
|
1948
1807
|
|
|
1949
1808
|
for (var i = actions.length - 3; i >= 0; i -= 3) {
|
|
@@ -2057,15 +1916,6 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
2057
1916
|
return func;
|
|
2058
1917
|
}
|
|
2059
1918
|
|
|
2060
|
-
function isProxy(value) {
|
|
2061
|
-
if (typeof value === 'object' && value) {
|
|
2062
|
-
var meta$$1 = exports.peekMeta(value);
|
|
2063
|
-
return meta$$1 && meta$$1.isProxy();
|
|
2064
|
-
}
|
|
2065
|
-
|
|
2066
|
-
return false;
|
|
2067
|
-
}
|
|
2068
|
-
|
|
2069
1919
|
var hasViews = function () {
|
|
2070
1920
|
return false;
|
|
2071
1921
|
};
|
|
@@ -2098,7 +1948,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
2098
1948
|
}
|
|
2099
1949
|
|
|
2100
1950
|
function tagFor(object, _meta) {
|
|
2101
|
-
if (typeof object === 'object' && object) {
|
|
1951
|
+
if (typeof object === 'object' && object !== null) {
|
|
2102
1952
|
var meta$$1 = _meta || meta(object);
|
|
2103
1953
|
return meta$$1.writableTag(makeTag);
|
|
2104
1954
|
} else {
|
|
@@ -2109,14 +1959,14 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
2109
1959
|
function markObjectAsDirty(meta$$1, propertyKey) {
|
|
2110
1960
|
var objectTag = meta$$1.readableTag();
|
|
2111
1961
|
|
|
2112
|
-
if (objectTag) {
|
|
1962
|
+
if (objectTag !== undefined) {
|
|
2113
1963
|
objectTag.dirty();
|
|
2114
1964
|
}
|
|
2115
1965
|
|
|
2116
1966
|
var tags = meta$$1.readableTags();
|
|
2117
|
-
var propertyTag = tags
|
|
1967
|
+
var propertyTag = tags !== undefined ? tags[propertyKey] : undefined;
|
|
2118
1968
|
|
|
2119
|
-
if (propertyTag) {
|
|
1969
|
+
if (propertyTag !== undefined) {
|
|
2120
1970
|
propertyTag.dirty();
|
|
2121
1971
|
}
|
|
2122
1972
|
|
|
@@ -2124,22 +1974,19 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
2124
1974
|
meta$$1.getTag().contentDidChange();
|
|
2125
1975
|
}
|
|
2126
1976
|
|
|
2127
|
-
if (objectTag || propertyTag) {
|
|
1977
|
+
if (objectTag !== undefined || propertyTag !== undefined) {
|
|
2128
1978
|
ensureRunloop();
|
|
2129
1979
|
}
|
|
2130
1980
|
}
|
|
2131
1981
|
|
|
2132
1982
|
var run = void 0;
|
|
2133
|
-
|
|
2134
|
-
function K() {}
|
|
2135
|
-
|
|
2136
1983
|
function ensureRunloop() {
|
|
2137
|
-
if (
|
|
2138
|
-
run =
|
|
1984
|
+
if (run === undefined) {
|
|
1985
|
+
run = require('ember-metal').run;
|
|
2139
1986
|
}
|
|
2140
1987
|
|
|
2141
|
-
if (hasViews()
|
|
2142
|
-
run.
|
|
1988
|
+
if (hasViews()) {
|
|
1989
|
+
run.backburner.ensureInstance();
|
|
2143
1990
|
}
|
|
2144
1991
|
}
|
|
2145
1992
|
|
|
@@ -2340,10 +2187,10 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
2340
2187
|
|
|
2341
2188
|
var watching = meta$$1 && meta$$1.peekWatching(keyName) > 0;
|
|
2342
2189
|
var possibleDesc = obj[keyName];
|
|
2343
|
-
var
|
|
2190
|
+
var isDescriptor = possibleDesc !== null && typeof possibleDesc === 'object' && possibleDesc.isDescriptor;
|
|
2344
2191
|
|
|
2345
|
-
if (
|
|
2346
|
-
|
|
2192
|
+
if (isDescriptor && possibleDesc.willChange) {
|
|
2193
|
+
possibleDesc.willChange(obj, keyName);
|
|
2347
2194
|
}
|
|
2348
2195
|
|
|
2349
2196
|
if (watching) {
|
|
@@ -2379,11 +2226,11 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
2379
2226
|
}
|
|
2380
2227
|
|
|
2381
2228
|
var possibleDesc = obj[keyName];
|
|
2382
|
-
var
|
|
2229
|
+
var isDescriptor = possibleDesc !== null && typeof possibleDesc === 'object' && possibleDesc.isDescriptor;
|
|
2383
2230
|
|
|
2384
2231
|
// shouldn't this mean that we're watching this key?
|
|
2385
|
-
if (
|
|
2386
|
-
|
|
2232
|
+
if (isDescriptor && possibleDesc.didChange) {
|
|
2233
|
+
possibleDesc.didChange(obj, keyName);
|
|
2387
2234
|
}
|
|
2388
2235
|
|
|
2389
2236
|
if (hasMeta && meta$$1.peekWatching(keyName) > 0) {
|
|
@@ -2452,7 +2299,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
2452
2299
|
|
|
2453
2300
|
function iterDeps(method, obj, depKey, seen, meta$$1) {
|
|
2454
2301
|
var possibleDesc = void 0,
|
|
2455
|
-
|
|
2302
|
+
isDescriptor = void 0;
|
|
2456
2303
|
var guid = emberUtils.guidFor(obj);
|
|
2457
2304
|
var current = seen[guid];
|
|
2458
2305
|
|
|
@@ -2472,9 +2319,9 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
2472
2319
|
}
|
|
2473
2320
|
|
|
2474
2321
|
possibleDesc = obj[key];
|
|
2475
|
-
|
|
2322
|
+
isDescriptor = possibleDesc !== null && typeof possibleDesc === 'object' && possibleDesc.isDescriptor;
|
|
2476
2323
|
|
|
2477
|
-
if (
|
|
2324
|
+
if (isDescriptor && possibleDesc._suspended === obj) {
|
|
2478
2325
|
return;
|
|
2479
2326
|
}
|
|
2480
2327
|
|
|
@@ -2707,14 +2554,14 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
2707
2554
|
if (!meta$$1) {
|
|
2708
2555
|
meta$$1 = meta(obj);
|
|
2709
2556
|
}
|
|
2710
|
-
var watchEntry = meta$$1.peekWatching(keyName);
|
|
2711
|
-
var possibleDesc = obj[keyName];
|
|
2712
|
-
var existingDesc = possibleDesc !== null && typeof possibleDesc === 'object' && possibleDesc.isDescriptor ? possibleDesc : undefined;
|
|
2713
2557
|
|
|
2558
|
+
var watchEntry = meta$$1.peekWatching(keyName);
|
|
2714
2559
|
var watching = watchEntry !== undefined && watchEntry > 0;
|
|
2560
|
+
var possibleDesc = obj[keyName];
|
|
2561
|
+
var isDescriptor = possibleDesc !== null && typeof possibleDesc === 'object' && possibleDesc.isDescriptor;
|
|
2715
2562
|
|
|
2716
|
-
if (
|
|
2717
|
-
|
|
2563
|
+
if (isDescriptor) {
|
|
2564
|
+
possibleDesc.teardown(obj, keyName, meta$$1);
|
|
2718
2565
|
}
|
|
2719
2566
|
|
|
2720
2567
|
var value = void 0;
|
|
@@ -2740,38 +2587,36 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
2740
2587
|
if (typeof desc.setup === 'function') {
|
|
2741
2588
|
desc.setup(obj, keyName);
|
|
2742
2589
|
}
|
|
2743
|
-
} else {
|
|
2744
|
-
|
|
2745
|
-
value = data;
|
|
2590
|
+
} else if (desc === undefined || desc === null) {
|
|
2591
|
+
value = data;
|
|
2746
2592
|
|
|
2747
|
-
|
|
2748
|
-
|
|
2749
|
-
|
|
2593
|
+
if (ember_features.MANDATORY_SETTER) {
|
|
2594
|
+
if (watching) {
|
|
2595
|
+
meta$$1.writeValues(keyName, data);
|
|
2750
2596
|
|
|
2751
|
-
|
|
2752
|
-
|
|
2753
|
-
|
|
2754
|
-
|
|
2755
|
-
|
|
2756
|
-
|
|
2597
|
+
var defaultDescriptor = {
|
|
2598
|
+
configurable: true,
|
|
2599
|
+
enumerable: true,
|
|
2600
|
+
set: MANDATORY_SETTER_FUNCTION(keyName),
|
|
2601
|
+
get: DEFAULT_GETTER_FUNCTION(keyName)
|
|
2602
|
+
};
|
|
2757
2603
|
|
|
2758
|
-
|
|
2759
|
-
|
|
2760
|
-
} else {
|
|
2761
|
-
handleBrokenPhantomDefineProperty(obj, keyName, defaultDescriptor);
|
|
2762
|
-
}
|
|
2604
|
+
if (REDEFINE_SUPPORTED) {
|
|
2605
|
+
Object.defineProperty(obj, keyName, defaultDescriptor);
|
|
2763
2606
|
} else {
|
|
2764
|
-
obj
|
|
2607
|
+
handleBrokenPhantomDefineProperty(obj, keyName, defaultDescriptor);
|
|
2765
2608
|
}
|
|
2766
2609
|
} else {
|
|
2767
2610
|
obj[keyName] = data;
|
|
2768
2611
|
}
|
|
2769
2612
|
} else {
|
|
2770
|
-
|
|
2771
|
-
|
|
2772
|
-
// fallback to ES5
|
|
2773
|
-
Object.defineProperty(obj, keyName, desc);
|
|
2613
|
+
obj[keyName] = data;
|
|
2774
2614
|
}
|
|
2615
|
+
} else {
|
|
2616
|
+
value = desc;
|
|
2617
|
+
|
|
2618
|
+
// fallback to ES5
|
|
2619
|
+
Object.defineProperty(obj, keyName, desc);
|
|
2775
2620
|
}
|
|
2776
2621
|
|
|
2777
2622
|
// if key is being watched, override chains that
|
|
@@ -2817,16 +2662,17 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
2817
2662
|
if (typeof obj !== 'object' || obj === null) {
|
|
2818
2663
|
return;
|
|
2819
2664
|
}
|
|
2820
|
-
var m = meta$$1 || meta(obj);
|
|
2821
2665
|
|
|
2822
|
-
|
|
2823
|
-
|
|
2824
|
-
|
|
2666
|
+
var m = meta$$1 || meta(obj);
|
|
2667
|
+
var count = m.peekWatching(keyName) || 0;
|
|
2668
|
+
m.writeWatching(keyName, count + 1);
|
|
2825
2669
|
|
|
2670
|
+
if (count === 0) {
|
|
2671
|
+
// activate watching first time
|
|
2826
2672
|
var possibleDesc = obj[keyName];
|
|
2827
|
-
var
|
|
2828
|
-
if (
|
|
2829
|
-
|
|
2673
|
+
var isDescriptor = possibleDesc !== null && typeof possibleDesc === 'object' && possibleDesc.isDescriptor;
|
|
2674
|
+
if (isDescriptor && possibleDesc.willWatch) {
|
|
2675
|
+
possibleDesc.willWatch(obj, keyName);
|
|
2830
2676
|
}
|
|
2831
2677
|
|
|
2832
2678
|
if ('function' === typeof obj.willWatchProperty) {
|
|
@@ -2837,8 +2683,6 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
2837
2683
|
// NOTE: this is dropped for prod + minified builds
|
|
2838
2684
|
handleMandatorySetter(m, obj, keyName);
|
|
2839
2685
|
}
|
|
2840
|
-
} else {
|
|
2841
|
-
m.writeWatching(keyName, (m.peekWatching(keyName) || 0) + 1);
|
|
2842
2686
|
}
|
|
2843
2687
|
}
|
|
2844
2688
|
|
|
@@ -2856,10 +2700,11 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
2856
2700
|
// ember strip this entire block out
|
|
2857
2701
|
handleMandatorySetter = function handleMandatorySetter(m, obj, keyName) {
|
|
2858
2702
|
var descriptor = emberUtils.lookupDescriptor(obj, keyName);
|
|
2859
|
-
var
|
|
2860
|
-
var
|
|
2861
|
-
var
|
|
2862
|
-
var
|
|
2703
|
+
var hasDescriptor = descriptor !== null;
|
|
2704
|
+
var configurable = hasDescriptor ? descriptor.configurable : true;
|
|
2705
|
+
var isWritable = hasDescriptor ? descriptor.writable : true;
|
|
2706
|
+
var hasValue = hasDescriptor ? 'value' in descriptor : true;
|
|
2707
|
+
var possibleDesc = hasDescriptor && descriptor.value;
|
|
2863
2708
|
var isDescriptor = possibleDesc !== null && typeof possibleDesc === 'object' && possibleDesc.isDescriptor;
|
|
2864
2709
|
|
|
2865
2710
|
if (isDescriptor) {
|
|
@@ -2891,10 +2736,10 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
2891
2736
|
if (typeof obj !== 'object' || obj === null) {
|
|
2892
2737
|
return;
|
|
2893
2738
|
}
|
|
2894
|
-
var meta$$1 = _meta ||
|
|
2739
|
+
var meta$$1 = _meta || exports.peekMeta(obj);
|
|
2895
2740
|
|
|
2896
2741
|
// do nothing of this object has already been destroyed
|
|
2897
|
-
if (meta$$1.isSourceDestroyed()) {
|
|
2742
|
+
if (!meta$$1 || meta$$1.isSourceDestroyed()) {
|
|
2898
2743
|
return;
|
|
2899
2744
|
}
|
|
2900
2745
|
|
|
@@ -2903,10 +2748,10 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
2903
2748
|
meta$$1.writeWatching(keyName, 0);
|
|
2904
2749
|
|
|
2905
2750
|
var possibleDesc = obj[keyName];
|
|
2906
|
-
var
|
|
2751
|
+
var isDescriptor = possibleDesc !== null && typeof possibleDesc === 'object' && possibleDesc.isDescriptor;
|
|
2907
2752
|
|
|
2908
|
-
if (
|
|
2909
|
-
|
|
2753
|
+
if (isDescriptor && possibleDesc.didUnwatch) {
|
|
2754
|
+
possibleDesc.didUnwatch(obj, keyName);
|
|
2910
2755
|
}
|
|
2911
2756
|
|
|
2912
2757
|
if ('function' === typeof obj.didUnwatchProperty) {
|
|
@@ -2922,7 +2767,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
2922
2767
|
// for mutation, will bypass observation. This code exists to assert when
|
|
2923
2768
|
// that occurs, and attempt to provide more helpful feedback. The alternative
|
|
2924
2769
|
// is tricky to debug partially observable properties.
|
|
2925
|
-
if (!
|
|
2770
|
+
if (!isDescriptor && keyName in obj) {
|
|
2926
2771
|
var maybeMandatoryDescriptor = emberUtils.lookupDescriptor(obj, keyName);
|
|
2927
2772
|
|
|
2928
2773
|
if (maybeMandatoryDescriptor.set && maybeMandatoryDescriptor.set.isMandatorySetter) {
|
|
@@ -2966,12 +2811,11 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
2966
2811
|
}
|
|
2967
2812
|
var m = meta$$1 || meta(obj);
|
|
2968
2813
|
var counter = m.peekWatching(keyPath) || 0;
|
|
2969
|
-
|
|
2814
|
+
|
|
2815
|
+
m.writeWatching(keyPath, counter + 1);
|
|
2816
|
+
if (counter === 0) {
|
|
2970
2817
|
// activate watching first time
|
|
2971
|
-
m.writeWatching(keyPath, 1);
|
|
2972
2818
|
chainsFor(obj, m).add(keyPath);
|
|
2973
|
-
} else {
|
|
2974
|
-
m.writeWatching(keyPath, counter + 1);
|
|
2975
2819
|
}
|
|
2976
2820
|
}
|
|
2977
2821
|
|
|
@@ -2979,7 +2823,10 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
2979
2823
|
if (typeof obj !== 'object' || obj === null) {
|
|
2980
2824
|
return;
|
|
2981
2825
|
}
|
|
2982
|
-
var m = meta$$1 ||
|
|
2826
|
+
var m = meta$$1 || exports.peekMeta(obj);
|
|
2827
|
+
if (m === undefined) {
|
|
2828
|
+
return;
|
|
2829
|
+
}
|
|
2983
2830
|
var counter = m.peekWatching(keyPath) || 0;
|
|
2984
2831
|
|
|
2985
2832
|
if (counter === 1) {
|
|
@@ -2997,7 +2844,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
2997
2844
|
}
|
|
2998
2845
|
|
|
2999
2846
|
function isObject(obj) {
|
|
3000
|
-
return typeof obj === 'object' && obj;
|
|
2847
|
+
return typeof obj === 'object' && obj !== null;
|
|
3001
2848
|
}
|
|
3002
2849
|
|
|
3003
2850
|
function isVolatile(obj) {
|
|
@@ -3025,7 +2872,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
3025
2872
|
|
|
3026
2873
|
ChainWatchers.prototype.remove = function remove(key, node) {
|
|
3027
2874
|
var nodes = this.chains[key];
|
|
3028
|
-
if (nodes) {
|
|
2875
|
+
if (nodes !== undefined) {
|
|
3029
2876
|
for (var i = 0; i < nodes.length; i++) {
|
|
3030
2877
|
if (nodes[i] === node) {
|
|
3031
2878
|
nodes.splice(i, 1);
|
|
@@ -3035,9 +2882,9 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
3035
2882
|
}
|
|
3036
2883
|
};
|
|
3037
2884
|
|
|
3038
|
-
ChainWatchers.prototype.has = function has
|
|
2885
|
+
ChainWatchers.prototype.has = function has(key, node) {
|
|
3039
2886
|
var nodes = this.chains[key];
|
|
3040
|
-
if (nodes) {
|
|
2887
|
+
if (nodes !== undefined) {
|
|
3041
2888
|
for (var i = 0; i < nodes.length; i++) {
|
|
3042
2889
|
if (nodes[i] === node) {
|
|
3043
2890
|
return true;
|
|
@@ -3149,10 +2996,10 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
3149
2996
|
|
|
3150
2997
|
this._value = value;
|
|
3151
2998
|
this._paths = undefined;
|
|
3152
|
-
if (isWatching
|
|
2999
|
+
if (isWatching) {
|
|
3153
3000
|
var obj = parent.value();
|
|
3154
3001
|
|
|
3155
|
-
if (!isObject(obj)
|
|
3002
|
+
if (!isObject(obj)) {
|
|
3156
3003
|
return;
|
|
3157
3004
|
}
|
|
3158
3005
|
|
|
@@ -3163,7 +3010,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
3163
3010
|
}
|
|
3164
3011
|
|
|
3165
3012
|
ChainNode.prototype.value = function value() {
|
|
3166
|
-
if (this._value === undefined && this._watching
|
|
3013
|
+
if (this._value === undefined && this._watching) {
|
|
3167
3014
|
var obj = this._parent.value();
|
|
3168
3015
|
this._value = lazyGet(obj, this._key);
|
|
3169
3016
|
}
|
|
@@ -3171,11 +3018,8 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
3171
3018
|
};
|
|
3172
3019
|
|
|
3173
3020
|
ChainNode.prototype.destroy = function destroy() {
|
|
3174
|
-
if (this._watching
|
|
3175
|
-
|
|
3176
|
-
if (obj) {
|
|
3177
|
-
removeChainWatcher(obj, this._key, this);
|
|
3178
|
-
}
|
|
3021
|
+
if (this._watching) {
|
|
3022
|
+
removeChainWatcher(this._object, this._key, this);
|
|
3179
3023
|
this._watching = false; // so future calls do nothing
|
|
3180
3024
|
}
|
|
3181
3025
|
};
|
|
@@ -3275,13 +3119,11 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
3275
3119
|
};
|
|
3276
3120
|
|
|
3277
3121
|
ChainNode.prototype.notify = function notify(revalidate, affected) {
|
|
3278
|
-
if (revalidate && this._watching
|
|
3122
|
+
if (revalidate && this._watching) {
|
|
3279
3123
|
var parentValue = this._parent.value();
|
|
3280
3124
|
|
|
3281
3125
|
if (parentValue !== this._object) {
|
|
3282
|
-
|
|
3283
|
-
removeChainWatcher(this._object, this._key, this);
|
|
3284
|
-
}
|
|
3126
|
+
removeChainWatcher(this._object, this._key, this);
|
|
3285
3127
|
|
|
3286
3128
|
if (isObject(parentValue)) {
|
|
3287
3129
|
this._object = parentValue;
|
|
@@ -3340,12 +3182,12 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
3340
3182
|
}
|
|
3341
3183
|
|
|
3342
3184
|
// Use `get` if the return value is an EachProxy or an uncacheable value.
|
|
3343
|
-
if (isVolatile(obj[key])
|
|
3185
|
+
if (isVolatile(obj[key])) {
|
|
3344
3186
|
return get(obj, key);
|
|
3345
3187
|
// Otherwise attempt to get the cached value of the computed property
|
|
3346
3188
|
} else {
|
|
3347
3189
|
var cache = meta$$1.readableCache();
|
|
3348
|
-
if (cache) {
|
|
3190
|
+
if (cache !== undefined) {
|
|
3349
3191
|
return cacheFor.get(cache, key);
|
|
3350
3192
|
}
|
|
3351
3193
|
}
|
|
@@ -3364,53 +3206,24 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
3364
3206
|
}
|
|
3365
3207
|
}
|
|
3366
3208
|
|
|
3367
|
-
var counters =
|
|
3368
|
-
|
|
3369
|
-
|
|
3370
|
-
|
|
3371
|
-
|
|
3372
|
-
|
|
3373
|
-
|
|
3374
|
-
|
|
3375
|
-
|
|
3209
|
+
var counters = void 0;
|
|
3210
|
+
{
|
|
3211
|
+
counters = {
|
|
3212
|
+
peekCalls: 0,
|
|
3213
|
+
peekParentCalls: 0,
|
|
3214
|
+
peekPrototypeWalks: 0,
|
|
3215
|
+
setCalls: 0,
|
|
3216
|
+
deleteCalls: 0,
|
|
3217
|
+
metaCalls: 0,
|
|
3218
|
+
metaInstantiated: 0
|
|
3219
|
+
};
|
|
3220
|
+
}
|
|
3376
3221
|
|
|
3377
3222
|
/**
|
|
3378
3223
|
@module ember-metal
|
|
3379
3224
|
*/
|
|
3380
3225
|
|
|
3381
|
-
|
|
3382
|
-
This declares several meta-programmed members on the Meta class. Such
|
|
3383
|
-
meta!
|
|
3384
|
-
|
|
3385
|
-
In general, the `readable` variants will give you an object (if it
|
|
3386
|
-
already exists) that you can read but should not modify. The
|
|
3387
|
-
`writable` variants will give you a mutable object, and they will
|
|
3388
|
-
create it if it didn't already exist.
|
|
3389
|
-
|
|
3390
|
-
The following methods will get generated metaprogrammatically, and
|
|
3391
|
-
I'm including them here for greppability:
|
|
3392
|
-
|
|
3393
|
-
writableCache, readableCache, writeWatching,
|
|
3394
|
-
peekWatching, clearWatching, writeMixins,
|
|
3395
|
-
peekMixins, clearMixins, writeBindings,
|
|
3396
|
-
peekBindings, clearBindings, writeValues,
|
|
3397
|
-
peekValues, clearValues, writeDeps, forEachInDeps
|
|
3398
|
-
writableChainWatchers, readableChainWatchers, writableChains,
|
|
3399
|
-
readableChains, writableTag, readableTag, writableTags,
|
|
3400
|
-
readableTags
|
|
3401
|
-
*/
|
|
3402
|
-
var members = {
|
|
3403
|
-
cache: ownMap,
|
|
3404
|
-
weak: ownMap,
|
|
3405
|
-
watching: inheritedMap,
|
|
3406
|
-
mixins: inheritedMap,
|
|
3407
|
-
bindings: inheritedMap,
|
|
3408
|
-
values: inheritedMap,
|
|
3409
|
-
chainWatchers: ownCustomObject,
|
|
3410
|
-
chains: inheritedCustomObject,
|
|
3411
|
-
tag: ownCustomObject,
|
|
3412
|
-
tags: ownMap
|
|
3413
|
-
};
|
|
3226
|
+
var UNDEFINED = emberUtils.symbol('undefined');
|
|
3414
3227
|
|
|
3415
3228
|
// FLAGS
|
|
3416
3229
|
var SOURCE_DESTROYING = 1 << 1;
|
|
@@ -3418,17 +3231,8 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
3418
3231
|
var META_DESTROYED = 1 << 3;
|
|
3419
3232
|
var IS_PROXY = 1 << 4;
|
|
3420
3233
|
|
|
3421
|
-
if (ember_features.EMBER_GLIMMER_DETECT_BACKTRACKING_RERENDER || ember_features.EMBER_GLIMMER_ALLOW_BACKTRACKING_RERENDER) {
|
|
3422
|
-
members.lastRendered = ownMap;
|
|
3423
|
-
if (require.has('ember-debug')) {
|
|
3424
|
-
//https://github.com/emberjs/ember.js/issues/14732
|
|
3425
|
-
members.lastRenderedReferenceMap = ownMap;
|
|
3426
|
-
members.lastRenderedTemplateMap = ownMap;
|
|
3427
|
-
}
|
|
3428
|
-
}
|
|
3429
|
-
|
|
3430
|
-
var memberNames = Object.keys(members);
|
|
3431
3234
|
var META_FIELD = '__ember_meta__';
|
|
3235
|
+
var NODE_STACK = [];
|
|
3432
3236
|
|
|
3433
3237
|
var Meta = function () {
|
|
3434
3238
|
function Meta(obj, parentMeta) {
|
|
@@ -3476,7 +3280,9 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
3476
3280
|
}
|
|
3477
3281
|
}
|
|
3478
3282
|
|
|
3479
|
-
this.
|
|
3283
|
+
this._listeners = undefined;
|
|
3284
|
+
this._listenersFinalized = false;
|
|
3285
|
+
this._suspendedListeners = undefined;
|
|
3480
3286
|
}
|
|
3481
3287
|
|
|
3482
3288
|
Meta.prototype.isInitialized = function isInitialized(obj) {
|
|
@@ -3603,7 +3409,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
3603
3409
|
|
|
3604
3410
|
|
|
3605
3411
|
Meta.prototype.writeDeps = function writeDeps(subkey, itemkey, value) {
|
|
3606
|
-
true && !!this.isMetaDestroyed() && emberDebug.assert('Cannot
|
|
3412
|
+
true && !!this.isMetaDestroyed() && emberDebug.assert('Cannot modify dependent keys for `' + itemkey + '` on `' + emberUtils.toString(this.source) + '` after it has been destroyed.', !this.isMetaDestroyed());
|
|
3607
3413
|
|
|
3608
3414
|
var outerMap = this._getOrCreateOwnMap('_deps');
|
|
3609
3415
|
var innerMap = outerMap[subkey];
|
|
@@ -3660,117 +3466,124 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
3660
3466
|
if (seen[innerKey] === undefined) {
|
|
3661
3467
|
seen[innerKey] = true;
|
|
3662
3468
|
calls = calls || [];
|
|
3663
|
-
calls.push(
|
|
3469
|
+
calls.push(innerKey, innerMap[innerKey]);
|
|
3664
3470
|
}
|
|
3665
3471
|
}
|
|
3666
3472
|
}
|
|
3667
3473
|
}
|
|
3668
3474
|
pointer = pointer.parent;
|
|
3669
3475
|
}
|
|
3670
|
-
if (calls !== undefined) {
|
|
3671
|
-
for (var i = 0; i < calls.length; i++) {
|
|
3672
|
-
var _calls$i = calls[i],
|
|
3673
|
-
_innerKey = _calls$i[0],
|
|
3674
|
-
value = _calls$i[1];
|
|
3675
3476
|
|
|
3676
|
-
|
|
3477
|
+
if (calls !== undefined) {
|
|
3478
|
+
for (var i = 0; i < calls.length; i += 2) {
|
|
3479
|
+
fn(calls[i], calls[i + 1]);
|
|
3677
3480
|
}
|
|
3678
3481
|
}
|
|
3679
3482
|
};
|
|
3680
3483
|
|
|
3681
|
-
Meta.prototype.
|
|
3682
|
-
|
|
3484
|
+
Meta.prototype.writableCache = function writableCache() {
|
|
3485
|
+
return this._getOrCreateOwnMap('_cache');
|
|
3486
|
+
};
|
|
3683
3487
|
|
|
3684
|
-
|
|
3488
|
+
Meta.prototype.readableCache = function readableCache() {
|
|
3489
|
+
return this._cache;
|
|
3490
|
+
};
|
|
3685
3491
|
|
|
3686
|
-
|
|
3687
|
-
|
|
3688
|
-
|
|
3689
|
-
var value = map[subkey];
|
|
3690
|
-
if (value !== undefined || subkey in map) {
|
|
3691
|
-
return value;
|
|
3692
|
-
}
|
|
3693
|
-
}
|
|
3694
|
-
pointer = pointer.parent;
|
|
3695
|
-
}
|
|
3492
|
+
Meta.prototype.writableWeak = function writableWeak() {
|
|
3493
|
+
return this._getOrCreateOwnMap('_weak');
|
|
3494
|
+
};
|
|
3696
3495
|
|
|
3697
|
-
|
|
3496
|
+
Meta.prototype.readableWeak = function readableWeak() {
|
|
3497
|
+
return this._weak;
|
|
3698
3498
|
};
|
|
3699
3499
|
|
|
3700
|
-
Meta.prototype.
|
|
3701
|
-
|
|
3702
|
-
|
|
3500
|
+
Meta.prototype.writableTags = function writableTags() {
|
|
3501
|
+
return this._getOrCreateOwnMap('_tags');
|
|
3502
|
+
};
|
|
3703
3503
|
|
|
3704
|
-
|
|
3705
|
-
|
|
3706
|
-
|
|
3707
|
-
|
|
3504
|
+
Meta.prototype.readableTags = function readableTags() {
|
|
3505
|
+
return this._tags;
|
|
3506
|
+
};
|
|
3507
|
+
|
|
3508
|
+
Meta.prototype.writableTag = function writableTag(create) {
|
|
3509
|
+
true && !!this.isMetaDestroyed() && emberDebug.assert('Cannot create a new tag for `' + emberUtils.toString(this.source) + '` after it has been destroyed.', !this.isMetaDestroyed());
|
|
3510
|
+
|
|
3511
|
+
var ret = this._tag;
|
|
3512
|
+
if (ret === undefined) {
|
|
3513
|
+
ret = this._tag = create(this.source);
|
|
3708
3514
|
}
|
|
3515
|
+
return ret;
|
|
3709
3516
|
};
|
|
3710
3517
|
|
|
3711
|
-
|
|
3712
|
-
|
|
3713
|
-
|
|
3714
|
-
|
|
3715
|
-
|
|
3716
|
-
|
|
3717
|
-
|
|
3518
|
+
Meta.prototype.readableTag = function readableTag() {
|
|
3519
|
+
return this._tag;
|
|
3520
|
+
};
|
|
3521
|
+
|
|
3522
|
+
Meta.prototype.writableChainWatchers = function writableChainWatchers(create) {
|
|
3523
|
+
true && !!this.isMetaDestroyed() && emberDebug.assert('Cannot create a new chain watcher for `' + emberUtils.toString(this.source) + '` after it has been destroyed.', !this.isMetaDestroyed());
|
|
3524
|
+
|
|
3525
|
+
var ret = this._chainWatchers;
|
|
3526
|
+
if (ret === undefined) {
|
|
3527
|
+
ret = this._chainWatchers = create(this.source);
|
|
3718
3528
|
}
|
|
3719
|
-
|
|
3529
|
+
return ret;
|
|
3530
|
+
};
|
|
3720
3531
|
|
|
3721
|
-
|
|
3722
|
-
|
|
3532
|
+
Meta.prototype.readableChainWatchers = function readableChainWatchers() {
|
|
3533
|
+
return this._chainWatchers;
|
|
3534
|
+
};
|
|
3723
3535
|
|
|
3724
|
-
|
|
3536
|
+
Meta.prototype.writableChains = function writableChains(create) {
|
|
3537
|
+
true && !!this.isMetaDestroyed() && emberDebug.assert('Cannot create a new chains for `' + emberUtils.toString(this.source) + '` after it has been destroyed.', !this.isMetaDestroyed());
|
|
3725
3538
|
|
|
3726
|
-
|
|
3727
|
-
|
|
3728
|
-
|
|
3729
|
-
|
|
3730
|
-
|
|
3731
|
-
|
|
3539
|
+
var ret = this._chains;
|
|
3540
|
+
if (ret === undefined) {
|
|
3541
|
+
if (this.parent) {
|
|
3542
|
+
ret = this._chains = this.parent.writableChains(create).copy(this.source);
|
|
3543
|
+
} else {
|
|
3544
|
+
ret = this._chains = create(this.source);
|
|
3545
|
+
}
|
|
3546
|
+
}
|
|
3547
|
+
return ret;
|
|
3548
|
+
};
|
|
3732
3549
|
|
|
3733
|
-
|
|
3734
|
-
|
|
3735
|
-
function ownMap(name, Meta) {
|
|
3736
|
-
var key = memberProperty(name);
|
|
3737
|
-
var capitalized = capitalize(name);
|
|
3738
|
-
Meta.prototype['writable' + capitalized] = function () {
|
|
3739
|
-
return this._getOrCreateOwnMap(key);
|
|
3550
|
+
Meta.prototype.readableChains = function readableChains() {
|
|
3551
|
+
return this._getInherited('_chains');
|
|
3740
3552
|
};
|
|
3741
|
-
|
|
3742
|
-
|
|
3553
|
+
|
|
3554
|
+
Meta.prototype.writeWatching = function writeWatching(subkey, value) {
|
|
3555
|
+
true && !!this.isMetaDestroyed() && emberDebug.assert('Cannot update watchers for `hello` on `' + emberUtils.toString(this.source) + '` after it has been destroyed.', !this.isMetaDestroyed());
|
|
3556
|
+
|
|
3557
|
+
var map = this._getOrCreateOwnMap('_watching');
|
|
3558
|
+
map[subkey] = value;
|
|
3743
3559
|
};
|
|
3744
|
-
}
|
|
3745
3560
|
|
|
3746
|
-
|
|
3747
|
-
|
|
3748
|
-
|
|
3749
|
-
var key = memberProperty(name);
|
|
3750
|
-
var capitalized = capitalize(name);
|
|
3561
|
+
Meta.prototype.peekWatching = function peekWatching(subkey) {
|
|
3562
|
+
return this._findInherited('_watching', subkey);
|
|
3563
|
+
};
|
|
3751
3564
|
|
|
3752
|
-
Meta.prototype
|
|
3753
|
-
true && !!this.isMetaDestroyed() && emberDebug.assert('Cannot
|
|
3565
|
+
Meta.prototype.writeMixins = function writeMixins(subkey, value) {
|
|
3566
|
+
true && !!this.isMetaDestroyed() && emberDebug.assert('Cannot add mixins for `' + subkey + '` on `' + emberUtils.toString(this.source) + '` call writeMixins after it has been destroyed.', !this.isMetaDestroyed());
|
|
3754
3567
|
|
|
3755
|
-
var map = this._getOrCreateOwnMap(
|
|
3568
|
+
var map = this._getOrCreateOwnMap('_mixins');
|
|
3756
3569
|
map[subkey] = value;
|
|
3757
3570
|
};
|
|
3758
3571
|
|
|
3759
|
-
Meta.prototype
|
|
3760
|
-
return this._findInherited(
|
|
3572
|
+
Meta.prototype.peekMixins = function peekMixins(subkey) {
|
|
3573
|
+
return this._findInherited('_mixins', subkey);
|
|
3761
3574
|
};
|
|
3762
3575
|
|
|
3763
|
-
Meta.prototype
|
|
3576
|
+
Meta.prototype.forEachMixins = function forEachMixins(fn) {
|
|
3764
3577
|
var pointer = this;
|
|
3765
3578
|
var seen = void 0;
|
|
3766
3579
|
while (pointer !== undefined) {
|
|
3767
|
-
var map = pointer
|
|
3580
|
+
var map = pointer._mixins;
|
|
3768
3581
|
if (map !== undefined) {
|
|
3769
|
-
for (var
|
|
3582
|
+
for (var key in map) {
|
|
3770
3583
|
seen = seen || Object.create(null);
|
|
3771
|
-
if (seen[
|
|
3772
|
-
seen[
|
|
3773
|
-
fn(
|
|
3584
|
+
if (seen[key] === undefined) {
|
|
3585
|
+
seen[key] = true;
|
|
3586
|
+
fn(key, map[key]);
|
|
3774
3587
|
}
|
|
3775
3588
|
}
|
|
3776
3589
|
}
|
|
@@ -3778,76 +3591,94 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
3778
3591
|
}
|
|
3779
3592
|
};
|
|
3780
3593
|
|
|
3781
|
-
Meta.prototype
|
|
3782
|
-
true && !!this.isMetaDestroyed() && emberDebug.assert('Cannot
|
|
3594
|
+
Meta.prototype.writeBindings = function writeBindings(subkey, value) {
|
|
3595
|
+
true && !!this.isMetaDestroyed() && emberDebug.assert('Cannot add a binding for `' + subkey + '` on `' + emberUtils.toString(this.source) + '` after it has been destroyed.', !this.isMetaDestroyed());
|
|
3783
3596
|
|
|
3784
|
-
|
|
3597
|
+
var map = this._getOrCreateOwnMap('_bindings');
|
|
3598
|
+
map[subkey] = value;
|
|
3785
3599
|
};
|
|
3786
3600
|
|
|
3787
|
-
Meta.prototype
|
|
3788
|
-
|
|
3601
|
+
Meta.prototype.peekBindings = function peekBindings(subkey) {
|
|
3602
|
+
return this._findInherited('_bindings', subkey);
|
|
3789
3603
|
};
|
|
3790
3604
|
|
|
3791
|
-
Meta.prototype
|
|
3792
|
-
|
|
3605
|
+
Meta.prototype.forEachBindings = function forEachBindings(fn) {
|
|
3606
|
+
var pointer = this;
|
|
3607
|
+
var seen = void 0;
|
|
3608
|
+
while (pointer !== undefined) {
|
|
3609
|
+
var map = pointer._bindings;
|
|
3610
|
+
if (map !== undefined) {
|
|
3611
|
+
for (var key in map) {
|
|
3612
|
+
seen = seen || Object.create(null);
|
|
3613
|
+
if (seen[key] === undefined) {
|
|
3614
|
+
seen[key] = true;
|
|
3615
|
+
fn(key, map[key]);
|
|
3616
|
+
}
|
|
3617
|
+
}
|
|
3618
|
+
}
|
|
3619
|
+
pointer = pointer.parent;
|
|
3620
|
+
}
|
|
3793
3621
|
};
|
|
3794
|
-
}
|
|
3795
3622
|
|
|
3796
|
-
|
|
3623
|
+
Meta.prototype.clearBindings = function clearBindings() {
|
|
3624
|
+
true && !!this.isMetaDestroyed() && emberDebug.assert('Cannot clear bindings on `' + emberUtils.toString(this.source) + '` after it has been destroyed.', !this.isMetaDestroyed());
|
|
3797
3625
|
|
|
3798
|
-
|
|
3799
|
-
|
|
3800
|
-
function ownCustomObject(name, Meta) {
|
|
3801
|
-
var key = memberProperty(name);
|
|
3802
|
-
var capitalized = capitalize(name);
|
|
3803
|
-
Meta.prototype['writable' + capitalized] = function (create) {
|
|
3804
|
-
true && !!this.isMetaDestroyed() && emberDebug.assert('Cannot call writable' + capitalized + ' after the object is destroyed.', !this.isMetaDestroyed());
|
|
3626
|
+
this._bindings = undefined;
|
|
3627
|
+
};
|
|
3805
3628
|
|
|
3806
|
-
|
|
3807
|
-
|
|
3808
|
-
|
|
3809
|
-
|
|
3810
|
-
|
|
3629
|
+
Meta.prototype.writeValues = function writeValues(subkey, value) {
|
|
3630
|
+
true && !!this.isMetaDestroyed() && emberDebug.assert('Cannot set the value of `' + subkey + '` on `' + emberUtils.toString(this.source) + '` after it has been destroyed.', !this.isMetaDestroyed());
|
|
3631
|
+
|
|
3632
|
+
var map = this._getOrCreateOwnMap('_values');
|
|
3633
|
+
map[subkey] = value;
|
|
3811
3634
|
};
|
|
3812
|
-
|
|
3813
|
-
|
|
3635
|
+
|
|
3636
|
+
Meta.prototype.peekValues = function peekValues(subkey) {
|
|
3637
|
+
return this._findInherited('_values', subkey);
|
|
3814
3638
|
};
|
|
3815
|
-
}
|
|
3816
3639
|
|
|
3817
|
-
|
|
3818
|
-
|
|
3819
|
-
|
|
3820
|
-
function inheritedCustomObject(name, Meta) {
|
|
3821
|
-
var key = memberProperty(name);
|
|
3822
|
-
var capitalized = capitalize(name);
|
|
3823
|
-
Meta.prototype['writable' + capitalized] = function (create) {
|
|
3824
|
-
true && !!this.isMetaDestroyed() && emberDebug.assert('Cannot call writable' + capitalized + ' after the object is destroyed.', !this.isMetaDestroyed());
|
|
3640
|
+
Meta.prototype.deleteFromValues = function deleteFromValues(subkey) {
|
|
3641
|
+
delete this._getOrCreateOwnMap('_values')[subkey];
|
|
3642
|
+
};
|
|
3825
3643
|
|
|
3826
|
-
|
|
3827
|
-
|
|
3828
|
-
|
|
3829
|
-
|
|
3830
|
-
|
|
3831
|
-
|
|
3832
|
-
|
|
3644
|
+
emberBabel.createClass(Meta, [{
|
|
3645
|
+
key: 'factory',
|
|
3646
|
+
set: function (factory) {
|
|
3647
|
+
this._factory = factory;
|
|
3648
|
+
},
|
|
3649
|
+
get: function () {
|
|
3650
|
+
return this._factory;
|
|
3833
3651
|
}
|
|
3834
|
-
|
|
3652
|
+
}]);
|
|
3653
|
+
|
|
3654
|
+
return Meta;
|
|
3655
|
+
}();
|
|
3656
|
+
|
|
3657
|
+
if (ember_features.EMBER_GLIMMER_DETECT_BACKTRACKING_RERENDER || ember_features.EMBER_GLIMMER_ALLOW_BACKTRACKING_RERENDER) {
|
|
3658
|
+
Meta.prototype.writableLastRendered = function () {
|
|
3659
|
+
return this._getOrCreateOwnMap('_lastRendered');
|
|
3835
3660
|
};
|
|
3836
|
-
Meta.prototype
|
|
3837
|
-
return this.
|
|
3661
|
+
Meta.prototype.readableLastRendered = function () {
|
|
3662
|
+
return this._lastRendered;
|
|
3838
3663
|
};
|
|
3664
|
+
{
|
|
3665
|
+
Meta.prototype.writableLastRenderedReferenceMap = function () {
|
|
3666
|
+
return this._getOrCreateOwnMap('_lastRenderedReferenceMap');
|
|
3667
|
+
};
|
|
3668
|
+
Meta.prototype.readableLastRenderedReferenceMap = function () {
|
|
3669
|
+
return this._lastRenderedReferenceMap;
|
|
3670
|
+
};
|
|
3671
|
+
Meta.prototype.writableLastRenderedTemplateMap = function () {
|
|
3672
|
+
return this._getOrCreateOwnMap('_lastRenderedTemplateMap');
|
|
3673
|
+
};
|
|
3674
|
+
Meta.prototype.readableLastRenderedTemplateMap = function () {
|
|
3675
|
+
return this._lastRenderedTemplateMap;
|
|
3676
|
+
};
|
|
3677
|
+
}
|
|
3839
3678
|
}
|
|
3840
3679
|
|
|
3841
|
-
|
|
3842
|
-
|
|
3843
|
-
}
|
|
3844
|
-
|
|
3845
|
-
// there's a more general-purpose capitalize in ember-runtime, but we
|
|
3846
|
-
// don't want to make ember-metal depend on ember-runtime.
|
|
3847
|
-
function capitalize(name) {
|
|
3848
|
-
return name.replace(/^\w/, function (m) {
|
|
3849
|
-
return m.toUpperCase();
|
|
3850
|
-
});
|
|
3680
|
+
for (var name in protoMethods) {
|
|
3681
|
+
Meta.prototype[name] = protoMethods[name];
|
|
3851
3682
|
}
|
|
3852
3683
|
|
|
3853
3684
|
var META_DESC = {
|
|
@@ -3884,7 +3715,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
3884
3715
|
|
|
3885
3716
|
Meta.prototype.writeValue = function (obj, key, value) {
|
|
3886
3717
|
var descriptor = emberUtils.lookupDescriptor(obj, key);
|
|
3887
|
-
var isMandatorySetter = descriptor !==
|
|
3718
|
+
var isMandatorySetter = descriptor !== null && descriptor.set && descriptor.set.isMandatorySetter;
|
|
3888
3719
|
|
|
3889
3720
|
if (isMandatorySetter) {
|
|
3890
3721
|
this.writeValues(key, value);
|
|
@@ -3909,14 +3740,6 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
3909
3740
|
metaStore.set(obj, meta);
|
|
3910
3741
|
};
|
|
3911
3742
|
|
|
3912
|
-
exports.peekMeta = function WeakMap_peekMeta(obj) {
|
|
3913
|
-
{
|
|
3914
|
-
counters.peekCalls++;
|
|
3915
|
-
}
|
|
3916
|
-
|
|
3917
|
-
return metaStore.get(obj);
|
|
3918
|
-
};
|
|
3919
|
-
|
|
3920
3743
|
exports.peekMeta = function WeakMap_peekParentMeta(obj) {
|
|
3921
3744
|
var pointer = obj;
|
|
3922
3745
|
var meta = void 0;
|
|
@@ -3926,7 +3749,10 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
3926
3749
|
{
|
|
3927
3750
|
counters.peekCalls++;
|
|
3928
3751
|
}
|
|
3929
|
-
if
|
|
3752
|
+
// stop if we find a `null` value, since
|
|
3753
|
+
// that means the meta was deleted
|
|
3754
|
+
// any other truthy value is a "real" meta
|
|
3755
|
+
if (meta === null || meta !== undefined) {
|
|
3930
3756
|
return meta;
|
|
3931
3757
|
}
|
|
3932
3758
|
|
|
@@ -3938,10 +3764,14 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
3938
3764
|
};
|
|
3939
3765
|
} else {
|
|
3940
3766
|
setMeta = function Fallback_setMeta(obj, meta) {
|
|
3941
|
-
if
|
|
3942
|
-
|
|
3943
|
-
|
|
3944
|
-
|
|
3767
|
+
// if `null` already, just set it to the new value
|
|
3768
|
+
// otherwise define property first
|
|
3769
|
+
if (obj[META_FIELD] !== null) {
|
|
3770
|
+
if (obj.__defineNonEnumerable) {
|
|
3771
|
+
obj.__defineNonEnumerable(EMBER_META_PROPERTY);
|
|
3772
|
+
} else {
|
|
3773
|
+
Object.defineProperty(obj, META_FIELD, META_DESC);
|
|
3774
|
+
}
|
|
3945
3775
|
}
|
|
3946
3776
|
|
|
3947
3777
|
obj[META_FIELD] = meta;
|
|
@@ -3990,7 +3820,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
3990
3820
|
var parent = void 0;
|
|
3991
3821
|
|
|
3992
3822
|
// remove this code, in-favor of explicit parent
|
|
3993
|
-
if (maybeMeta !== undefined) {
|
|
3823
|
+
if (maybeMeta !== undefined && maybeMeta !== null) {
|
|
3994
3824
|
if (maybeMeta.source === obj) {
|
|
3995
3825
|
return maybeMeta;
|
|
3996
3826
|
}
|
|
@@ -4189,23 +4019,16 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
4189
4019
|
true && !(keyName !== '') && emberDebug.assert('Cannot call `Ember.get` with an empty string', keyName !== '');
|
|
4190
4020
|
|
|
4191
4021
|
var value = obj[keyName];
|
|
4192
|
-
var
|
|
4193
|
-
var ret = void 0;
|
|
4022
|
+
var isDescriptor = value !== null && typeof value === 'object' && value.isDescriptor;
|
|
4194
4023
|
|
|
4195
|
-
if (
|
|
4024
|
+
if (isDescriptor) {
|
|
4025
|
+
return value.get(obj, keyName);
|
|
4026
|
+
} else if (isPath(keyName)) {
|
|
4196
4027
|
return _getPath(obj, keyName);
|
|
4197
|
-
}
|
|
4198
|
-
|
|
4199
|
-
if (desc) {
|
|
4200
|
-
return desc.get(obj, keyName);
|
|
4028
|
+
} else if (value === undefined && 'object' === typeof obj && !(keyName in obj) && 'function' === typeof obj.unknownProperty) {
|
|
4029
|
+
return obj.unknownProperty(keyName);
|
|
4201
4030
|
} else {
|
|
4202
|
-
|
|
4203
|
-
|
|
4204
|
-
if (ret === undefined && 'object' === typeof obj && !(keyName in obj) && 'function' === typeof obj.unknownProperty) {
|
|
4205
|
-
return obj.unknownProperty(keyName);
|
|
4206
|
-
}
|
|
4207
|
-
|
|
4208
|
-
return ret;
|
|
4031
|
+
return value;
|
|
4209
4032
|
}
|
|
4210
4033
|
}
|
|
4211
4034
|
|
|
@@ -4229,11 +4052,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
4229
4052
|
}
|
|
4230
4053
|
|
|
4231
4054
|
function isGettable(obj) {
|
|
4232
|
-
|
|
4233
|
-
return false;
|
|
4234
|
-
}
|
|
4235
|
-
|
|
4236
|
-
return ALLOWABLE_TYPES[typeof obj];
|
|
4055
|
+
return obj !== undefined && obj !== null && ALLOWABLE_TYPES[typeof obj];
|
|
4237
4056
|
}
|
|
4238
4057
|
|
|
4239
4058
|
/**
|
|
@@ -4290,29 +4109,20 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
4290
4109
|
return setPath(obj, keyName, value, tolerant);
|
|
4291
4110
|
}
|
|
4292
4111
|
|
|
4293
|
-
var
|
|
4294
|
-
var
|
|
4295
|
-
|
|
4296
|
-
var desc = void 0,
|
|
4297
|
-
currentValue = void 0;
|
|
4298
|
-
if (possibleDesc !== null && typeof possibleDesc === 'object' && possibleDesc.isDescriptor) {
|
|
4299
|
-
desc = possibleDesc;
|
|
4300
|
-
} else {
|
|
4301
|
-
currentValue = possibleDesc;
|
|
4302
|
-
}
|
|
4112
|
+
var currentValue = obj[keyName];
|
|
4113
|
+
var isDescriptor = currentValue !== null && typeof currentValue === 'object' && currentValue.isDescriptor;
|
|
4303
4114
|
|
|
4304
|
-
if (
|
|
4115
|
+
if (isDescriptor) {
|
|
4305
4116
|
/* computed property */
|
|
4306
|
-
|
|
4117
|
+
currentValue.set(obj, keyName, value);
|
|
4307
4118
|
} else if (obj.setUnknownProperty && currentValue === undefined && !(keyName in obj)) {
|
|
4308
4119
|
/* unknown property */
|
|
4309
4120
|
true && !(typeof obj.setUnknownProperty === 'function') && emberDebug.assert('setUnknownProperty must be a function', typeof obj.setUnknownProperty === 'function');
|
|
4310
4121
|
|
|
4311
4122
|
obj.setUnknownProperty(keyName, value);
|
|
4312
|
-
} else if (currentValue === value) {
|
|
4313
|
-
/* no change */
|
|
4314
|
-
return value;
|
|
4123
|
+
} else if (currentValue === value) {/* no change */
|
|
4315
4124
|
} else {
|
|
4125
|
+
var meta$$1 = exports.peekMeta(obj);
|
|
4316
4126
|
propertyWillChange(obj, keyName, meta$$1);
|
|
4317
4127
|
|
|
4318
4128
|
if (ember_features.MANDATORY_SETTER) {
|
|
@@ -4672,7 +4482,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
4672
4482
|
|
|
4673
4483
|
Additional resources:
|
|
4674
4484
|
- [New CP syntax RFC](https://github.com/emberjs/rfcs/blob/master/text/0011-improved-cp-syntax.md)
|
|
4675
|
-
- [New computed syntax explained in "Ember 1.12 released" ](
|
|
4485
|
+
- [New computed syntax explained in "Ember 1.12 released" ](https://emberjs.com/blog/2015/05/13/ember-1-12-released.html#toc_new-computed-syntax)
|
|
4676
4486
|
|
|
4677
4487
|
@class ComputedProperty
|
|
4678
4488
|
@namespace Ember
|
|
@@ -4684,28 +4494,17 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
4684
4494
|
this._getter = config;
|
|
4685
4495
|
} else {
|
|
4686
4496
|
true && !(typeof config === 'object' && !Array.isArray(config)) && emberDebug.assert('Ember.computed expects a function or an object as last argument.', typeof config === 'object' && !Array.isArray(config));
|
|
4687
|
-
true && !function () {
|
|
4688
|
-
|
|
4689
|
-
|
|
4690
|
-
|
|
4691
|
-
|
|
4692
|
-
}
|
|
4693
|
-
}
|
|
4694
|
-
return true;
|
|
4695
|
-
}() && emberDebug.assert('Config object passed to an Ember.computed can only contain `get` or `set` keys.', function () {
|
|
4696
|
-
var keys = Object.keys(config);for (var i = 0; i < keys.length; i++) {
|
|
4697
|
-
if (keys[i] !== 'get' && keys[i] !== 'set') {
|
|
4698
|
-
return false;
|
|
4699
|
-
}
|
|
4700
|
-
}return true;
|
|
4701
|
-
}());
|
|
4497
|
+
true && !Object.keys(config).every(function (key) {
|
|
4498
|
+
return key === 'get' || key === 'set';
|
|
4499
|
+
}) && emberDebug.assert('Config object passed to an Ember.computed can only contain `get` or `set` keys.', Object.keys(config).every(function (key) {
|
|
4500
|
+
return key === 'get' || key === 'set';
|
|
4501
|
+
}));
|
|
4702
4502
|
|
|
4703
4503
|
this._getter = config.get;
|
|
4704
4504
|
this._setter = config.set;
|
|
4705
4505
|
}
|
|
4706
4506
|
true && !(!!this._getter || !!this._setter) && emberDebug.assert('Computed properties must receive a getter or a setter, you passed none.', !!this._getter || !!this._setter);
|
|
4707
4507
|
|
|
4708
|
-
this._dependentKeys = undefined;
|
|
4709
4508
|
this._suspended = undefined;
|
|
4710
4509
|
this._meta = undefined;
|
|
4711
4510
|
this._volatile = false;
|
|
@@ -4971,9 +4770,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
4971
4770
|
|
|
4972
4771
|
if (hadCachedValue) {
|
|
4973
4772
|
cache[keyName] = undefined;
|
|
4974
|
-
}
|
|
4975
|
-
|
|
4976
|
-
if (!hadCachedValue) {
|
|
4773
|
+
} else {
|
|
4977
4774
|
addDependentKeys(this, obj, keyName, meta$$1);
|
|
4978
4775
|
}
|
|
4979
4776
|
|
|
@@ -4989,13 +4786,12 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
4989
4786
|
};
|
|
4990
4787
|
|
|
4991
4788
|
/* called before property is overridden */
|
|
4992
|
-
ComputedPropertyPrototype.teardown = function (obj, keyName) {
|
|
4789
|
+
ComputedPropertyPrototype.teardown = function (obj, keyName, meta$$1) {
|
|
4993
4790
|
if (this._volatile) {
|
|
4994
4791
|
return;
|
|
4995
4792
|
}
|
|
4996
|
-
var meta$$1 = meta(obj);
|
|
4997
4793
|
var cache = meta$$1.readableCache();
|
|
4998
|
-
if (cache && cache[keyName] !== undefined) {
|
|
4794
|
+
if (cache !== undefined && cache[keyName] !== undefined) {
|
|
4999
4795
|
removeDependentKeys(this, obj, keyName, meta$$1);
|
|
5000
4796
|
cache[keyName] = undefined;
|
|
5001
4797
|
}
|
|
@@ -5067,7 +4863,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
5067
4863
|
|
|
5068
4864
|
_Note: This is the preferred way to define computed properties when writing third-party
|
|
5069
4865
|
libraries that depend on or use Ember, since there is no guarantee that the user
|
|
5070
|
-
will have [prototype Extensions](
|
|
4866
|
+
will have [prototype Extensions](https://emberjs.com/guides/configuring-ember/disabling-prototype-extensions/) enabled._
|
|
5071
4867
|
|
|
5072
4868
|
The alternative syntax, with prototype extensions, might look like:
|
|
5073
4869
|
|
|
@@ -5086,17 +4882,16 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
5086
4882
|
@return {Ember.ComputedProperty} property descriptor instance
|
|
5087
4883
|
@public
|
|
5088
4884
|
*/
|
|
5089
|
-
function computed(
|
|
5090
|
-
var args =
|
|
5091
|
-
|
|
5092
|
-
if (arguments.length > 1) {
|
|
5093
|
-
args = [].slice.call(arguments);
|
|
5094
|
-
func = args.pop();
|
|
4885
|
+
function computed() {
|
|
4886
|
+
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
|
|
4887
|
+
args[_key] = arguments[_key];
|
|
5095
4888
|
}
|
|
5096
4889
|
|
|
4890
|
+
var func = args.pop();
|
|
4891
|
+
|
|
5097
4892
|
var cp = new ComputedProperty(func);
|
|
5098
4893
|
|
|
5099
|
-
if (args) {
|
|
4894
|
+
if (args.length > 0) {
|
|
5100
4895
|
cp.property.apply(cp, args);
|
|
5101
4896
|
}
|
|
5102
4897
|
|
|
@@ -5177,9 +4972,8 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
5177
4972
|
}
|
|
5178
4973
|
};
|
|
5179
4974
|
|
|
5180
|
-
AliasedProperty.prototype.teardown = function teardown(obj, keyName) {
|
|
5181
|
-
|
|
5182
|
-
if (meta$$1.peekWatching(keyName)) {
|
|
4975
|
+
AliasedProperty.prototype.teardown = function teardown(obj, keyName, meta$$1) {
|
|
4976
|
+
if (meta$$1 && meta$$1.peekWatching(keyName)) {
|
|
5183
4977
|
removeDependentKeys(this, obj, keyName, meta$$1);
|
|
5184
4978
|
}
|
|
5185
4979
|
};
|
|
@@ -5848,7 +5642,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
5848
5642
|
@public
|
|
5849
5643
|
*/
|
|
5850
5644
|
function isBlank(obj) {
|
|
5851
|
-
return isEmpty(obj) || typeof obj === 'string' &&
|
|
5645
|
+
return isEmpty(obj) || typeof obj === 'string' && /\S/.test(obj) === false;
|
|
5852
5646
|
}
|
|
5853
5647
|
|
|
5854
5648
|
/**
|
|
@@ -6146,7 +5940,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
6146
5940
|
will be resolved on the target object at the time the scheduled item is
|
|
6147
5941
|
invoked allowing you to change the target function.
|
|
6148
5942
|
@param {Object} [arguments*] Optional arguments to be passed to the queued method.
|
|
6149
|
-
@return {*} Timer information for use in
|
|
5943
|
+
@return {*} Timer information for use in canceling, see `run.cancel`.
|
|
6150
5944
|
@public
|
|
6151
5945
|
*/
|
|
6152
5946
|
run$1.schedule = function () /* queue, target, method */{
|
|
@@ -6211,7 +6005,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
6211
6005
|
target at the time the method is invoked.
|
|
6212
6006
|
@param {Object} [args*] Optional arguments to pass to the timeout.
|
|
6213
6007
|
@param {Number} wait Number of milliseconds to wait.
|
|
6214
|
-
@return {*} Timer information for use in
|
|
6008
|
+
@return {*} Timer information for use in canceling, see `run.cancel`.
|
|
6215
6009
|
@public
|
|
6216
6010
|
*/
|
|
6217
6011
|
run$1.later = function () /*target, method*/{
|
|
@@ -6228,7 +6022,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
6228
6022
|
If you pass a string it will be resolved on the
|
|
6229
6023
|
target at the time the method is invoked.
|
|
6230
6024
|
@param {Object} [args*] Optional arguments to pass to the timeout.
|
|
6231
|
-
@return {Object} Timer information for use in
|
|
6025
|
+
@return {Object} Timer information for use in canceling, see `run.cancel`.
|
|
6232
6026
|
@public
|
|
6233
6027
|
*/
|
|
6234
6028
|
run$1.once = function () {
|
|
@@ -6291,7 +6085,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
6291
6085
|
If you pass a string it will be resolved on the
|
|
6292
6086
|
target at the time the method is invoked.
|
|
6293
6087
|
@param {Object} [args*] Optional arguments to pass to the timeout.
|
|
6294
|
-
@return {Object} Timer information for use in
|
|
6088
|
+
@return {Object} Timer information for use in canceling, see `run.cancel`.
|
|
6295
6089
|
@public
|
|
6296
6090
|
*/
|
|
6297
6091
|
run$1.scheduleOnce = function () /*queue, target, method*/{
|
|
@@ -6360,7 +6154,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
6360
6154
|
If you pass a string it will be resolved on the
|
|
6361
6155
|
target at the time the method is invoked.
|
|
6362
6156
|
@param {Object} [args*] Optional arguments to pass to the timeout.
|
|
6363
|
-
@return {Object} Timer information for use in
|
|
6157
|
+
@return {Object} Timer information for use in canceling, see `run.cancel`.
|
|
6364
6158
|
@public
|
|
6365
6159
|
*/
|
|
6366
6160
|
run$1.next = function () {
|
|
@@ -6418,13 +6212,13 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
6418
6212
|
// will be executed since we passed in true (immediate)
|
|
6419
6213
|
}, 100, true);
|
|
6420
6214
|
|
|
6421
|
-
// the 100ms delay until this method can be called again will be
|
|
6215
|
+
// the 100ms delay until this method can be called again will be canceled
|
|
6422
6216
|
run.cancel(debounceImmediate);
|
|
6423
6217
|
```
|
|
6424
6218
|
|
|
6425
6219
|
@method cancel
|
|
6426
6220
|
@param {Object} timer Timer object to cancel
|
|
6427
|
-
@return {Boolean} true if
|
|
6221
|
+
@return {Boolean} true if canceled or false/undefined if it wasn't found
|
|
6428
6222
|
@public
|
|
6429
6223
|
*/
|
|
6430
6224
|
run$1.cancel = function (timer) {
|
|
@@ -6497,7 +6291,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
6497
6291
|
@param {Number} wait Number of milliseconds to wait.
|
|
6498
6292
|
@param {Boolean} immediate Trigger the function on the leading instead
|
|
6499
6293
|
of the trailing edge of the wait interval. Defaults to false.
|
|
6500
|
-
@return {Array} Timer information for use in
|
|
6294
|
+
@return {Array} Timer information for use in canceling, see `run.cancel`.
|
|
6501
6295
|
@public
|
|
6502
6296
|
*/
|
|
6503
6297
|
run$1.debounce = function () {
|
|
@@ -6540,7 +6334,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
6540
6334
|
@param {Number} spacing Number of milliseconds to space out requests.
|
|
6541
6335
|
@param {Boolean} immediate Trigger the function on the leading instead
|
|
6542
6336
|
of the trailing edge of the wait interval. Defaults to true.
|
|
6543
|
-
@return {Array} Timer information for use in
|
|
6337
|
+
@return {Array} Timer information for use in canceling, see `run.cancel`.
|
|
6544
6338
|
@public
|
|
6545
6339
|
*/
|
|
6546
6340
|
run$1.throttle = function () {
|
|
@@ -7318,7 +7112,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
7318
7112
|
/**
|
|
7319
7113
|
@class Binding
|
|
7320
7114
|
@namespace Ember
|
|
7321
|
-
@deprecated See
|
|
7115
|
+
@deprecated See https://emberjs.com/deprecations/v2.x#toc_ember-binding
|
|
7322
7116
|
@public
|
|
7323
7117
|
*/
|
|
7324
7118
|
|
|
@@ -7576,17 +7370,17 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
7576
7370
|
true && !!deprecateGlobal && emberDebug.deprecate(objectInfo + deprecateGlobalMessage, !deprecateGlobal, {
|
|
7577
7371
|
id: 'ember-metal.binding',
|
|
7578
7372
|
until: '3.0.0',
|
|
7579
|
-
url: '
|
|
7373
|
+
url: 'https://emberjs.com/deprecations/v2.x#toc_ember-binding'
|
|
7580
7374
|
});
|
|
7581
7375
|
true && !!deprecateOneWay && emberDebug.deprecate(objectInfo + deprecateOneWayMessage, !deprecateOneWay, {
|
|
7582
7376
|
id: 'ember-metal.binding',
|
|
7583
7377
|
until: '3.0.0',
|
|
7584
|
-
url: '
|
|
7378
|
+
url: 'https://emberjs.com/deprecations/v2.x#toc_ember-binding'
|
|
7585
7379
|
});
|
|
7586
7380
|
true && !!deprecateAlias && emberDebug.deprecate(objectInfo + deprecateAliasMessage, !deprecateAlias, {
|
|
7587
7381
|
id: 'ember-metal.binding',
|
|
7588
7382
|
until: '3.0.0',
|
|
7589
|
-
url: '
|
|
7383
|
+
url: 'https://emberjs.com/deprecations/v2.x#toc_ember-binding'
|
|
7590
7384
|
});
|
|
7591
7385
|
}
|
|
7592
7386
|
|
|
@@ -8535,36 +8329,40 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
8535
8329
|
@public
|
|
8536
8330
|
*/
|
|
8537
8331
|
function observer() {
|
|
8332
|
+
var _paths = void 0,
|
|
8333
|
+
func = void 0;
|
|
8334
|
+
|
|
8538
8335
|
for (var _len5 = arguments.length, args = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
|
|
8539
8336
|
args[_key5] = arguments[_key5];
|
|
8540
8337
|
}
|
|
8541
8338
|
|
|
8542
|
-
|
|
8543
|
-
var paths = void 0;
|
|
8544
|
-
|
|
8545
|
-
var addWatchedProperty = function (path) {
|
|
8546
|
-
paths.push(path);
|
|
8547
|
-
};
|
|
8548
|
-
var _paths = args.slice(0, -1);
|
|
8549
|
-
|
|
8550
|
-
if (typeof func !== 'function') {
|
|
8339
|
+
if (typeof args[args.length - 1] !== 'function') {
|
|
8551
8340
|
// revert to old, soft-deprecated argument ordering
|
|
8552
8341
|
true && !false && emberDebug.deprecate('Passing the dependentKeys after the callback function in Ember.observer is deprecated. Ensure the callback function is the last argument.', false, { id: 'ember-metal.observer-argument-order', until: '3.0.0' });
|
|
8553
8342
|
|
|
8554
|
-
func = args
|
|
8555
|
-
_paths = args
|
|
8343
|
+
func = args.shift();
|
|
8344
|
+
_paths = args;
|
|
8345
|
+
} else {
|
|
8346
|
+
func = args.pop();
|
|
8347
|
+
_paths = args;
|
|
8556
8348
|
}
|
|
8557
8349
|
|
|
8558
|
-
|
|
8350
|
+
true && !(typeof func === 'function') && emberDebug.assert('Ember.observer called without a function', typeof func === 'function');
|
|
8351
|
+
true && !(_paths.length > 0 && _paths.every(function (p) {
|
|
8352
|
+
return typeof p === 'string' && p.length;
|
|
8353
|
+
})) && emberDebug.assert('Ember.observer called without valid path', _paths.length > 0 && _paths.every(function (p) {
|
|
8354
|
+
return typeof p === 'string' && p.length;
|
|
8355
|
+
}));
|
|
8356
|
+
|
|
8357
|
+
var paths = [];
|
|
8358
|
+
var addWatchedProperty = function (path) {
|
|
8359
|
+
return paths.push(path);
|
|
8360
|
+
};
|
|
8559
8361
|
|
|
8560
8362
|
for (var i = 0; i < _paths.length; ++i) {
|
|
8561
8363
|
expandProperties(_paths[i], addWatchedProperty);
|
|
8562
8364
|
}
|
|
8563
8365
|
|
|
8564
|
-
if (typeof func !== 'function') {
|
|
8565
|
-
throw new emberDebug.EmberError('Ember.observer called without a function');
|
|
8566
|
-
}
|
|
8567
|
-
|
|
8568
8366
|
func.__ember_observes__ = paths;
|
|
8569
8367
|
return func;
|
|
8570
8368
|
}
|
|
@@ -8626,7 +8424,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
8626
8424
|
args[_key6] = arguments[_key6];
|
|
8627
8425
|
}
|
|
8628
8426
|
|
|
8629
|
-
var func = args.
|
|
8427
|
+
var func = args[args.length - 1];
|
|
8630
8428
|
var paths = void 0;
|
|
8631
8429
|
|
|
8632
8430
|
var addWatchedProperty = function (path) {
|
|
@@ -8726,6 +8524,15 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
|
8726
8524
|
return ret;
|
|
8727
8525
|
}
|
|
8728
8526
|
|
|
8527
|
+
function isProxy(value) {
|
|
8528
|
+
if (typeof value === 'object' && value !== null) {
|
|
8529
|
+
var meta$$1 = exports.peekMeta(value);
|
|
8530
|
+
return meta$$1 && meta$$1.isProxy();
|
|
8531
|
+
}
|
|
8532
|
+
|
|
8533
|
+
return false;
|
|
8534
|
+
}
|
|
8535
|
+
|
|
8729
8536
|
function descriptor(desc) {
|
|
8730
8537
|
return new Descriptor$1(desc);
|
|
8731
8538
|
}
|
|
@@ -8966,14 +8773,6 @@ enifed('rsvp', ['exports', 'ember-babel', 'node-module'], function (exports, _em
|
|
|
8966
8773
|
EventTarget['mixin'](config);
|
|
8967
8774
|
|
|
8968
8775
|
function configure(name, value) {
|
|
8969
|
-
if (name === 'onerror') {
|
|
8970
|
-
// handle for legacy users that expect the actual
|
|
8971
|
-
// error to be passed to their function added via
|
|
8972
|
-
// `RSVP.configure('onerror', someFunctionHere);`
|
|
8973
|
-
config['on']('error', value);
|
|
8974
|
-
return;
|
|
8975
|
-
}
|
|
8976
|
-
|
|
8977
8776
|
if (arguments.length === 2) {
|
|
8978
8777
|
config[name] = value;
|
|
8979
8778
|
} else {
|
|
@@ -8982,24 +8781,29 @@ enifed('rsvp', ['exports', 'ember-babel', 'node-module'], function (exports, _em
|
|
|
8982
8781
|
}
|
|
8983
8782
|
|
|
8984
8783
|
function objectOrFunction(x) {
|
|
8985
|
-
|
|
8784
|
+
var type = typeof x;
|
|
8785
|
+
return x !== null && (type === 'object' || type === 'function');
|
|
8986
8786
|
}
|
|
8987
8787
|
|
|
8988
8788
|
function isFunction(x) {
|
|
8989
8789
|
return typeof x === 'function';
|
|
8990
8790
|
}
|
|
8991
8791
|
|
|
8792
|
+
function isObject(x) {
|
|
8793
|
+
return x !== null && typeof x === 'object';
|
|
8794
|
+
}
|
|
8795
|
+
|
|
8992
8796
|
function isMaybeThenable(x) {
|
|
8993
|
-
return typeof x === 'object'
|
|
8797
|
+
return x !== null && typeof x === 'object';
|
|
8994
8798
|
}
|
|
8995
8799
|
|
|
8996
8800
|
var _isArray = void 0;
|
|
8997
|
-
if (
|
|
8801
|
+
if (Array.isArray) {
|
|
8802
|
+
_isArray = Array.isArray;
|
|
8803
|
+
} else {
|
|
8998
8804
|
_isArray = function (x) {
|
|
8999
8805
|
return Object.prototype.toString.call(x) === '[object Array]';
|
|
9000
8806
|
};
|
|
9001
|
-
} else {
|
|
9002
|
-
_isArray = Array.isArray;
|
|
9003
8807
|
}
|
|
9004
8808
|
|
|
9005
8809
|
var isArray = _isArray;
|
|
@@ -9010,19 +8814,6 @@ enifed('rsvp', ['exports', 'ember-babel', 'node-module'], function (exports, _em
|
|
|
9010
8814
|
return new Date().getTime();
|
|
9011
8815
|
};
|
|
9012
8816
|
|
|
9013
|
-
function F() {}
|
|
9014
|
-
|
|
9015
|
-
var o_create = Object.create || function (o) {
|
|
9016
|
-
if (arguments.length > 1) {
|
|
9017
|
-
throw new Error('Second argument not supported');
|
|
9018
|
-
}
|
|
9019
|
-
if (typeof o !== 'object') {
|
|
9020
|
-
throw new TypeError('Argument must be an object');
|
|
9021
|
-
}
|
|
9022
|
-
F.prototype = o;
|
|
9023
|
-
return new F();
|
|
9024
|
-
};
|
|
9025
|
-
|
|
9026
8817
|
var queue = [];
|
|
9027
8818
|
|
|
9028
8819
|
function scheduleFlush() {
|
|
@@ -9184,19 +8975,17 @@ enifed('rsvp', ['exports', 'ember-babel', 'node-module'], function (exports, _em
|
|
|
9184
8975
|
}
|
|
9185
8976
|
|
|
9186
8977
|
function handleMaybeThenable(promise, maybeThenable, then$$1) {
|
|
9187
|
-
|
|
8978
|
+
var isOwnThenable = maybeThenable.constructor === promise.constructor && then$$1 === then && promise.constructor.resolve === resolve$1;
|
|
8979
|
+
|
|
8980
|
+
if (isOwnThenable) {
|
|
9188
8981
|
handleOwnThenable(promise, maybeThenable);
|
|
8982
|
+
} else if (then$$1 === GET_THEN_ERROR) {
|
|
8983
|
+
reject(promise, GET_THEN_ERROR.error);
|
|
8984
|
+
GET_THEN_ERROR.error = null;
|
|
8985
|
+
} else if (isFunction(then$$1)) {
|
|
8986
|
+
handleForeignThenable(promise, maybeThenable, then$$1);
|
|
9189
8987
|
} else {
|
|
9190
|
-
|
|
9191
|
-
reject(promise, GET_THEN_ERROR.error);
|
|
9192
|
-
GET_THEN_ERROR.error = null;
|
|
9193
|
-
} else if (then$$1 === undefined) {
|
|
9194
|
-
fulfill(promise, maybeThenable);
|
|
9195
|
-
} else if (isFunction(then$$1)) {
|
|
9196
|
-
handleForeignThenable(promise, maybeThenable, then$$1);
|
|
9197
|
-
} else {
|
|
9198
|
-
fulfill(promise, maybeThenable);
|
|
9199
|
-
}
|
|
8988
|
+
fulfill(promise, maybeThenable);
|
|
9200
8989
|
}
|
|
9201
8990
|
}
|
|
9202
8991
|
|
|
@@ -9273,16 +9062,16 @@ enifed('rsvp', ['exports', 'ember-babel', 'node-module'], function (exports, _em
|
|
|
9273
9062
|
|
|
9274
9063
|
var child = void 0,
|
|
9275
9064
|
callback = void 0,
|
|
9276
|
-
|
|
9065
|
+
result = promise._result;
|
|
9277
9066
|
|
|
9278
9067
|
for (var i = 0; i < subscribers.length; i += 3) {
|
|
9279
9068
|
child = subscribers[i];
|
|
9280
9069
|
callback = subscribers[i + settled];
|
|
9281
9070
|
|
|
9282
9071
|
if (child) {
|
|
9283
|
-
invokeCallback(settled, child, callback,
|
|
9072
|
+
invokeCallback(settled, child, callback, result);
|
|
9284
9073
|
} else {
|
|
9285
|
-
callback(
|
|
9074
|
+
callback(result);
|
|
9286
9075
|
}
|
|
9287
9076
|
}
|
|
9288
9077
|
|
|
@@ -9295,51 +9084,43 @@ enifed('rsvp', ['exports', 'ember-babel', 'node-module'], function (exports, _em
|
|
|
9295
9084
|
|
|
9296
9085
|
var TRY_CATCH_ERROR = new ErrorObject();
|
|
9297
9086
|
|
|
9298
|
-
function tryCatch(callback,
|
|
9087
|
+
function tryCatch(callback, result) {
|
|
9299
9088
|
try {
|
|
9300
|
-
return callback(
|
|
9089
|
+
return callback(result);
|
|
9301
9090
|
} catch (e) {
|
|
9302
9091
|
TRY_CATCH_ERROR.error = e;
|
|
9303
9092
|
return TRY_CATCH_ERROR;
|
|
9304
9093
|
}
|
|
9305
9094
|
}
|
|
9306
9095
|
|
|
9307
|
-
function invokeCallback(
|
|
9308
|
-
var hasCallback = isFunction(callback)
|
|
9309
|
-
|
|
9310
|
-
error = void 0
|
|
9311
|
-
succeeded = void 0,
|
|
9312
|
-
failed = void 0;
|
|
9096
|
+
function invokeCallback(state, promise, callback, result) {
|
|
9097
|
+
var hasCallback = isFunction(callback);
|
|
9098
|
+
var value = void 0,
|
|
9099
|
+
error = void 0;
|
|
9313
9100
|
|
|
9314
9101
|
if (hasCallback) {
|
|
9315
|
-
value = tryCatch(callback,
|
|
9102
|
+
value = tryCatch(callback, result);
|
|
9316
9103
|
|
|
9317
9104
|
if (value === TRY_CATCH_ERROR) {
|
|
9318
|
-
failed = true;
|
|
9319
9105
|
error = value.error;
|
|
9320
9106
|
value.error = null; // release
|
|
9321
|
-
} else {
|
|
9322
|
-
succeeded = true;
|
|
9323
|
-
}
|
|
9324
|
-
|
|
9325
|
-
if (promise === value) {
|
|
9107
|
+
} else if (value === promise) {
|
|
9326
9108
|
reject(promise, withOwnPromise());
|
|
9327
9109
|
return;
|
|
9328
9110
|
}
|
|
9329
9111
|
} else {
|
|
9330
|
-
value =
|
|
9331
|
-
succeeded = true;
|
|
9112
|
+
value = result;
|
|
9332
9113
|
}
|
|
9333
9114
|
|
|
9334
9115
|
if (promise._state !== PENDING) {
|
|
9335
9116
|
// noop
|
|
9336
|
-
} else if (hasCallback &&
|
|
9117
|
+
} else if (hasCallback && error === undefined) {
|
|
9337
9118
|
resolve(promise, value);
|
|
9338
|
-
} else if (
|
|
9119
|
+
} else if (error !== undefined) {
|
|
9339
9120
|
reject(promise, error);
|
|
9340
|
-
} else if (
|
|
9121
|
+
} else if (state === FULFILLED) {
|
|
9341
9122
|
fulfill(promise, value);
|
|
9342
|
-
} else if (
|
|
9123
|
+
} else if (state === REJECTED) {
|
|
9343
9124
|
reject(promise, value);
|
|
9344
9125
|
}
|
|
9345
9126
|
}
|
|
@@ -9381,74 +9162,41 @@ enifed('rsvp', ['exports', 'ember-babel', 'node-module'], function (exports, _em
|
|
|
9381
9162
|
|
|
9382
9163
|
config.instrument && instrument('chained', parent, child);
|
|
9383
9164
|
|
|
9384
|
-
if (state) {
|
|
9385
|
-
|
|
9165
|
+
if (state === PENDING) {
|
|
9166
|
+
subscribe(parent, child, onFulfillment, onRejection);
|
|
9167
|
+
} else {
|
|
9168
|
+
var callback = state === FULFILLED ? onFulfillment : onRejection;
|
|
9386
9169
|
config.async(function () {
|
|
9387
9170
|
return invokeCallback(state, child, callback, result);
|
|
9388
9171
|
});
|
|
9389
|
-
} else {
|
|
9390
|
-
subscribe(parent, child, onFulfillment, onRejection);
|
|
9391
9172
|
}
|
|
9392
9173
|
|
|
9393
9174
|
return child;
|
|
9394
9175
|
}
|
|
9395
9176
|
|
|
9396
|
-
function makeSettledResult(state, position, value) {
|
|
9397
|
-
if (state === FULFILLED) {
|
|
9398
|
-
return {
|
|
9399
|
-
state: 'fulfilled',
|
|
9400
|
-
value: value
|
|
9401
|
-
};
|
|
9402
|
-
} else {
|
|
9403
|
-
return {
|
|
9404
|
-
state: 'rejected',
|
|
9405
|
-
reason: value
|
|
9406
|
-
};
|
|
9407
|
-
}
|
|
9408
|
-
}
|
|
9409
|
-
|
|
9410
9177
|
function Enumerator(Constructor, input, abortOnReject, label) {
|
|
9411
9178
|
this._instanceConstructor = Constructor;
|
|
9412
9179
|
this.promise = new Constructor(noop, label);
|
|
9413
9180
|
this._abortOnReject = abortOnReject;
|
|
9414
9181
|
|
|
9415
|
-
|
|
9416
|
-
this._input = input;
|
|
9417
|
-
this.length = input.length;
|
|
9418
|
-
this._remaining = input.length;
|
|
9419
|
-
|
|
9420
|
-
this._init();
|
|
9421
|
-
|
|
9422
|
-
if (this.length === 0) {
|
|
9423
|
-
fulfill(this.promise, this._result);
|
|
9424
|
-
} else {
|
|
9425
|
-
this.length = this.length || 0;
|
|
9426
|
-
this._enumerate();
|
|
9427
|
-
if (this._remaining === 0) {
|
|
9428
|
-
fulfill(this.promise, this._result);
|
|
9429
|
-
}
|
|
9430
|
-
}
|
|
9431
|
-
} else {
|
|
9432
|
-
reject(this.promise, this._validationError());
|
|
9433
|
-
}
|
|
9182
|
+
this._init.apply(this, arguments);
|
|
9434
9183
|
}
|
|
9435
9184
|
|
|
9436
|
-
Enumerator.prototype.
|
|
9437
|
-
|
|
9438
|
-
|
|
9439
|
-
|
|
9440
|
-
|
|
9441
|
-
return new Error('Array Methods must be provided an Array');
|
|
9442
|
-
};
|
|
9185
|
+
Enumerator.prototype._init = function (Constructor, input) {
|
|
9186
|
+
var len = input.length || 0;
|
|
9187
|
+
this.length = len;
|
|
9188
|
+
this._remaining = len;
|
|
9189
|
+
this._result = new Array(len);
|
|
9443
9190
|
|
|
9444
|
-
|
|
9445
|
-
this.
|
|
9191
|
+
this._enumerate(input);
|
|
9192
|
+
if (this._remaining === 0) {
|
|
9193
|
+
fulfill(this.promise, this._result);
|
|
9194
|
+
}
|
|
9446
9195
|
};
|
|
9447
9196
|
|
|
9448
|
-
Enumerator.prototype._enumerate = function () {
|
|
9197
|
+
Enumerator.prototype._enumerate = function (input) {
|
|
9449
9198
|
var length = this.length;
|
|
9450
9199
|
var promise = this.promise;
|
|
9451
|
-
var input = this._input;
|
|
9452
9200
|
|
|
9453
9201
|
for (var i = 0; promise._state === PENDING && i < length; i++) {
|
|
9454
9202
|
this._eachEntry(input[i], i);
|
|
@@ -9495,18 +9243,16 @@ enifed('rsvp', ['exports', 'ember-babel', 'node-module'], function (exports, _em
|
|
|
9495
9243
|
var promise = this.promise;
|
|
9496
9244
|
|
|
9497
9245
|
if (promise._state === PENDING) {
|
|
9498
|
-
this._remaining--;
|
|
9499
|
-
|
|
9500
9246
|
if (this._abortOnReject && state === REJECTED) {
|
|
9501
9247
|
reject(promise, value);
|
|
9502
9248
|
} else {
|
|
9249
|
+
this._remaining--;
|
|
9503
9250
|
this._result[i] = this._makeResult(state, i, value);
|
|
9251
|
+
if (this._remaining === 0) {
|
|
9252
|
+
fulfill(promise, this._result);
|
|
9253
|
+
}
|
|
9504
9254
|
}
|
|
9505
9255
|
}
|
|
9506
|
-
|
|
9507
|
-
if (this._remaining === 0) {
|
|
9508
|
-
fulfill(promise, this._result);
|
|
9509
|
-
}
|
|
9510
9256
|
};
|
|
9511
9257
|
|
|
9512
9258
|
Enumerator.prototype._makeResult = function (state, i, value) {
|
|
@@ -9523,6 +9269,20 @@ enifed('rsvp', ['exports', 'ember-babel', 'node-module'], function (exports, _em
|
|
|
9523
9269
|
});
|
|
9524
9270
|
};
|
|
9525
9271
|
|
|
9272
|
+
function makeSettledResult(state, position, value) {
|
|
9273
|
+
if (state === FULFILLED) {
|
|
9274
|
+
return {
|
|
9275
|
+
state: 'fulfilled',
|
|
9276
|
+
value: value
|
|
9277
|
+
};
|
|
9278
|
+
} else {
|
|
9279
|
+
return {
|
|
9280
|
+
state: 'rejected',
|
|
9281
|
+
reason: value
|
|
9282
|
+
};
|
|
9283
|
+
}
|
|
9284
|
+
}
|
|
9285
|
+
|
|
9526
9286
|
/**
|
|
9527
9287
|
`RSVP.Promise.all` accepts an array of promises, and returns a new promise which
|
|
9528
9288
|
is fulfilled with an array of fulfillment values for the passed promises, or
|
|
@@ -9571,6 +9331,9 @@ enifed('rsvp', ['exports', 'ember-babel', 'node-module'], function (exports, _em
|
|
|
9571
9331
|
@static
|
|
9572
9332
|
*/
|
|
9573
9333
|
function all(entries, label) {
|
|
9334
|
+
if (!isArray(entries)) {
|
|
9335
|
+
return this.reject(new TypeError("Promise.all must be called with an array"), label);
|
|
9336
|
+
}
|
|
9574
9337
|
return new Enumerator(this, entries, true /* abort on reject */, label).promise;
|
|
9575
9338
|
}
|
|
9576
9339
|
|
|
@@ -9647,7 +9410,7 @@ enifed('rsvp', ['exports', 'ember-babel', 'node-module'], function (exports, _em
|
|
|
9647
9410
|
var promise = new Constructor(noop, label);
|
|
9648
9411
|
|
|
9649
9412
|
if (!isArray(entries)) {
|
|
9650
|
-
reject(promise, new TypeError('
|
|
9413
|
+
reject(promise, new TypeError('Promise.race must be called with an array'));
|
|
9651
9414
|
return promise;
|
|
9652
9415
|
}
|
|
9653
9416
|
|
|
@@ -9835,241 +9598,306 @@ enifed('rsvp', ['exports', 'ember-babel', 'node-module'], function (exports, _em
|
|
|
9835
9598
|
}
|
|
9836
9599
|
}
|
|
9837
9600
|
|
|
9601
|
+
Promise.prototype._onError = function (reason) {
|
|
9602
|
+
var _this = this;
|
|
9603
|
+
|
|
9604
|
+
config.after(function () {
|
|
9605
|
+
if (_this._onError) {
|
|
9606
|
+
config.trigger('error', reason, _this._label);
|
|
9607
|
+
}
|
|
9608
|
+
});
|
|
9609
|
+
};
|
|
9610
|
+
|
|
9611
|
+
/**
|
|
9612
|
+
`catch` is simply sugar for `then(undefined, onRejection)` which makes it the same
|
|
9613
|
+
as the catch block of a try/catch statement.
|
|
9614
|
+
|
|
9615
|
+
```js
|
|
9616
|
+
function findAuthor(){
|
|
9617
|
+
throw new Error('couldn\'t find that author');
|
|
9618
|
+
}
|
|
9619
|
+
|
|
9620
|
+
// synchronous
|
|
9621
|
+
try {
|
|
9622
|
+
findAuthor();
|
|
9623
|
+
} catch(reason) {
|
|
9624
|
+
// something went wrong
|
|
9625
|
+
}
|
|
9626
|
+
|
|
9627
|
+
// async with promises
|
|
9628
|
+
findAuthor().catch(function(reason){
|
|
9629
|
+
// something went wrong
|
|
9630
|
+
});
|
|
9631
|
+
```
|
|
9632
|
+
|
|
9633
|
+
@method catch
|
|
9634
|
+
@param {Function} onRejection
|
|
9635
|
+
@param {String} label optional string for labeling the promise.
|
|
9636
|
+
Useful for tooling.
|
|
9637
|
+
@return {Promise}
|
|
9638
|
+
*/
|
|
9639
|
+
Promise.prototype.catch = function (onRejection, label) {
|
|
9640
|
+
return this.then(undefined, onRejection, label);
|
|
9641
|
+
};
|
|
9642
|
+
|
|
9643
|
+
/**
|
|
9644
|
+
`finally` will be invoked regardless of the promise's fate just as native
|
|
9645
|
+
try/catch/finally behaves
|
|
9646
|
+
|
|
9647
|
+
Synchronous example:
|
|
9648
|
+
|
|
9649
|
+
```js
|
|
9650
|
+
findAuthor() {
|
|
9651
|
+
if (Math.random() > 0.5) {
|
|
9652
|
+
throw new Error();
|
|
9653
|
+
}
|
|
9654
|
+
return new Author();
|
|
9655
|
+
}
|
|
9656
|
+
|
|
9657
|
+
try {
|
|
9658
|
+
return findAuthor(); // succeed or fail
|
|
9659
|
+
} catch(error) {
|
|
9660
|
+
return findOtherAuthor();
|
|
9661
|
+
} finally {
|
|
9662
|
+
// always runs
|
|
9663
|
+
// doesn't affect the return value
|
|
9664
|
+
}
|
|
9665
|
+
```
|
|
9666
|
+
|
|
9667
|
+
Asynchronous example:
|
|
9668
|
+
|
|
9669
|
+
```js
|
|
9670
|
+
findAuthor().catch(function(reason){
|
|
9671
|
+
return findOtherAuthor();
|
|
9672
|
+
}).finally(function(){
|
|
9673
|
+
// author was either found, or not
|
|
9674
|
+
});
|
|
9675
|
+
```
|
|
9676
|
+
|
|
9677
|
+
@method finally
|
|
9678
|
+
@param {Function} callback
|
|
9679
|
+
@param {String} label optional string for labeling the promise.
|
|
9680
|
+
Useful for tooling.
|
|
9681
|
+
@return {Promise}
|
|
9682
|
+
*/
|
|
9683
|
+
Promise.prototype.finally = function (callback, label) {
|
|
9684
|
+
var promise = this;
|
|
9685
|
+
var constructor = promise.constructor;
|
|
9686
|
+
|
|
9687
|
+
return promise.then(function (value) {
|
|
9688
|
+
return constructor.resolve(callback()).then(function () {
|
|
9689
|
+
return value;
|
|
9690
|
+
});
|
|
9691
|
+
}, function (reason) {
|
|
9692
|
+
return constructor.resolve(callback()).then(function () {
|
|
9693
|
+
throw reason;
|
|
9694
|
+
});
|
|
9695
|
+
}, label);
|
|
9696
|
+
};
|
|
9697
|
+
|
|
9838
9698
|
Promise.cast = resolve$1; // deprecated
|
|
9839
9699
|
Promise.all = all;
|
|
9840
9700
|
Promise.race = race;
|
|
9841
9701
|
Promise.resolve = resolve$1;
|
|
9842
9702
|
Promise.reject = reject$1;
|
|
9843
9703
|
|
|
9844
|
-
Promise.prototype =
|
|
9845
|
-
constructor: Promise,
|
|
9704
|
+
Promise.prototype._guidKey = guidKey;
|
|
9846
9705
|
|
|
9847
|
-
|
|
9848
|
-
|
|
9849
|
-
|
|
9850
|
-
|
|
9851
|
-
|
|
9852
|
-
|
|
9853
|
-
|
|
9854
|
-
|
|
9855
|
-
|
|
9856
|
-
|
|
9857
|
-
|
|
9858
|
-
|
|
9859
|
-
|
|
9860
|
-
|
|
9861
|
-
|
|
9862
|
-
|
|
9863
|
-
|
|
9864
|
-
|
|
9865
|
-
|
|
9866
|
-
|
|
9867
|
-
|
|
9868
|
-
|
|
9869
|
-
|
|
9870
|
-
|
|
9871
|
-
|
|
9872
|
-
|
|
9873
|
-
|
|
9874
|
-
|
|
9875
|
-
|
|
9876
|
-
|
|
9877
|
-
|
|
9878
|
-
|
|
9879
|
-
|
|
9880
|
-
findUser
|
|
9881
|
-
|
|
9882
|
-
|
|
9883
|
-
|
|
9884
|
-
|
|
9885
|
-
|
|
9886
|
-
|
|
9887
|
-
|
|
9888
|
-
|
|
9889
|
-
|
|
9890
|
-
|
|
9891
|
-
|
|
9892
|
-
|
|
9893
|
-
|
|
9894
|
-
|
|
9895
|
-
|
|
9896
|
-
|
|
9897
|
-
|
|
9898
|
-
|
|
9899
|
-
|
|
9900
|
-
|
|
9901
|
-
|
|
9902
|
-
|
|
9903
|
-
|
|
9904
|
-
|
|
9905
|
-
|
|
9906
|
-
|
|
9907
|
-
|
|
9908
|
-
|
|
9909
|
-
|
|
9910
|
-
|
|
9911
|
-
|
|
9912
|
-
|
|
9913
|
-
|
|
9914
|
-
|
|
9915
|
-
|
|
9916
|
-
|
|
9917
|
-
|
|
9918
|
-
|
|
9919
|
-
|
|
9920
|
-
|
|
9921
|
-
|
|
9922
|
-
|
|
9923
|
-
|
|
9924
|
-
|
|
9925
|
-
|
|
9926
|
-
|
|
9927
|
-
|
|
9928
|
-
|
|
9929
|
-
|
|
9930
|
-
|
|
9931
|
-
|
|
9932
|
-
|
|
9933
|
-
|
|
9934
|
-
|
|
9935
|
-
|
|
9936
|
-
|
|
9937
|
-
|
|
9938
|
-
|
|
9939
|
-
|
|
9940
|
-
|
|
9941
|
-
|
|
9942
|
-
|
|
9943
|
-
|
|
9944
|
-
|
|
9945
|
-
|
|
9946
|
-
|
|
9947
|
-
|
|
9948
|
-
|
|
9949
|
-
|
|
9950
|
-
|
|
9951
|
-
result = findResult();
|
|
9952
|
-
// success
|
|
9953
|
-
} catch(reason) {
|
|
9954
|
-
// failure
|
|
9955
|
-
}
|
|
9956
|
-
```
|
|
9957
|
-
|
|
9958
|
-
Errback Example
|
|
9959
|
-
|
|
9960
|
-
```js
|
|
9961
|
-
findResult(function(result, err){
|
|
9962
|
-
if (err) {
|
|
9963
|
-
// failure
|
|
9964
|
-
} else {
|
|
9965
|
-
// success
|
|
9966
|
-
}
|
|
9967
|
-
});
|
|
9968
|
-
```
|
|
9969
|
-
|
|
9970
|
-
Promise Example;
|
|
9971
|
-
|
|
9972
|
-
```javascript
|
|
9973
|
-
findResult().then(function(result){
|
|
9974
|
-
// success
|
|
9975
|
-
}, function(reason){
|
|
9706
|
+
/**
|
|
9707
|
+
The primary way of interacting with a promise is through its `then` method,
|
|
9708
|
+
which registers callbacks to receive either a promise's eventual value or the
|
|
9709
|
+
reason why the promise cannot be fulfilled.
|
|
9710
|
+
|
|
9711
|
+
```js
|
|
9712
|
+
findUser().then(function(user){
|
|
9713
|
+
// user is available
|
|
9714
|
+
}, function(reason){
|
|
9715
|
+
// user is unavailable, and you are given the reason why
|
|
9716
|
+
});
|
|
9717
|
+
```
|
|
9718
|
+
|
|
9719
|
+
Chaining
|
|
9720
|
+
--------
|
|
9721
|
+
|
|
9722
|
+
The return value of `then` is itself a promise. This second, 'downstream'
|
|
9723
|
+
promise is resolved with the return value of the first promise's fulfillment
|
|
9724
|
+
or rejection handler, or rejected if the handler throws an exception.
|
|
9725
|
+
|
|
9726
|
+
```js
|
|
9727
|
+
findUser().then(function (user) {
|
|
9728
|
+
return user.name;
|
|
9729
|
+
}, function (reason) {
|
|
9730
|
+
return 'default name';
|
|
9731
|
+
}).then(function (userName) {
|
|
9732
|
+
// If `findUser` fulfilled, `userName` will be the user's name, otherwise it
|
|
9733
|
+
// will be `'default name'`
|
|
9734
|
+
});
|
|
9735
|
+
|
|
9736
|
+
findUser().then(function (user) {
|
|
9737
|
+
throw new Error('Found user, but still unhappy');
|
|
9738
|
+
}, function (reason) {
|
|
9739
|
+
throw new Error('`findUser` rejected and we\'re unhappy');
|
|
9740
|
+
}).then(function (value) {
|
|
9741
|
+
// never reached
|
|
9742
|
+
}, function (reason) {
|
|
9743
|
+
// if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.
|
|
9744
|
+
// If `findUser` rejected, `reason` will be '`findUser` rejected and we\'re unhappy'.
|
|
9745
|
+
});
|
|
9746
|
+
```
|
|
9747
|
+
If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.
|
|
9748
|
+
|
|
9749
|
+
```js
|
|
9750
|
+
findUser().then(function (user) {
|
|
9751
|
+
throw new PedagogicalException('Upstream error');
|
|
9752
|
+
}).then(function (value) {
|
|
9753
|
+
// never reached
|
|
9754
|
+
}).then(function (value) {
|
|
9755
|
+
// never reached
|
|
9756
|
+
}, function (reason) {
|
|
9757
|
+
// The `PedgagocialException` is propagated all the way down to here
|
|
9758
|
+
});
|
|
9759
|
+
```
|
|
9760
|
+
|
|
9761
|
+
Assimilation
|
|
9762
|
+
------------
|
|
9763
|
+
|
|
9764
|
+
Sometimes the value you want to propagate to a downstream promise can only be
|
|
9765
|
+
retrieved asynchronously. This can be achieved by returning a promise in the
|
|
9766
|
+
fulfillment or rejection handler. The downstream promise will then be pending
|
|
9767
|
+
until the returned promise is settled. This is called *assimilation*.
|
|
9768
|
+
|
|
9769
|
+
```js
|
|
9770
|
+
findUser().then(function (user) {
|
|
9771
|
+
return findCommentsByAuthor(user);
|
|
9772
|
+
}).then(function (comments) {
|
|
9773
|
+
// The user's comments are now available
|
|
9774
|
+
});
|
|
9775
|
+
```
|
|
9776
|
+
|
|
9777
|
+
If the assimliated promise rejects, then the downstream promise will also reject.
|
|
9778
|
+
|
|
9779
|
+
```js
|
|
9780
|
+
findUser().then(function (user) {
|
|
9781
|
+
return findCommentsByAuthor(user);
|
|
9782
|
+
}).then(function (comments) {
|
|
9783
|
+
// If `findCommentsByAuthor` fulfills, we'll have the value here
|
|
9784
|
+
}, function (reason) {
|
|
9785
|
+
// If `findCommentsByAuthor` rejects, we'll have the reason here
|
|
9786
|
+
});
|
|
9787
|
+
```
|
|
9788
|
+
|
|
9789
|
+
Simple Example
|
|
9790
|
+
--------------
|
|
9791
|
+
|
|
9792
|
+
Synchronous Example
|
|
9793
|
+
|
|
9794
|
+
```javascript
|
|
9795
|
+
let result;
|
|
9796
|
+
|
|
9797
|
+
try {
|
|
9798
|
+
result = findResult();
|
|
9799
|
+
// success
|
|
9800
|
+
} catch(reason) {
|
|
9801
|
+
// failure
|
|
9802
|
+
}
|
|
9803
|
+
```
|
|
9804
|
+
|
|
9805
|
+
Errback Example
|
|
9806
|
+
|
|
9807
|
+
```js
|
|
9808
|
+
findResult(function(result, err){
|
|
9809
|
+
if (err) {
|
|
9976
9810
|
// failure
|
|
9977
|
-
}
|
|
9978
|
-
```
|
|
9979
|
-
|
|
9980
|
-
Advanced Example
|
|
9981
|
-
--------------
|
|
9982
|
-
|
|
9983
|
-
Synchronous Example
|
|
9984
|
-
|
|
9985
|
-
```javascript
|
|
9986
|
-
let author, books;
|
|
9987
|
-
|
|
9988
|
-
try {
|
|
9989
|
-
author = findAuthor();
|
|
9990
|
-
books = findBooksByAuthor(author);
|
|
9811
|
+
} else {
|
|
9991
9812
|
// success
|
|
9992
|
-
} catch(reason) {
|
|
9993
|
-
// failure
|
|
9994
9813
|
}
|
|
9995
|
-
|
|
9996
|
-
|
|
9997
|
-
|
|
9998
|
-
|
|
9999
|
-
|
|
10000
|
-
|
|
10001
|
-
|
|
10002
|
-
|
|
10003
|
-
|
|
10004
|
-
|
|
10005
|
-
|
|
10006
|
-
|
|
10007
|
-
|
|
10008
|
-
|
|
10009
|
-
|
|
10010
|
-
|
|
10011
|
-
|
|
10012
|
-
|
|
10013
|
-
|
|
10014
|
-
|
|
10015
|
-
|
|
10016
|
-
|
|
10017
|
-
|
|
10018
|
-
|
|
10019
|
-
|
|
10020
|
-
|
|
10021
|
-
|
|
10022
|
-
|
|
10023
|
-
|
|
9814
|
+
});
|
|
9815
|
+
```
|
|
9816
|
+
|
|
9817
|
+
Promise Example;
|
|
9818
|
+
|
|
9819
|
+
```javascript
|
|
9820
|
+
findResult().then(function(result){
|
|
9821
|
+
// success
|
|
9822
|
+
}, function(reason){
|
|
9823
|
+
// failure
|
|
9824
|
+
});
|
|
9825
|
+
```
|
|
9826
|
+
|
|
9827
|
+
Advanced Example
|
|
9828
|
+
--------------
|
|
9829
|
+
|
|
9830
|
+
Synchronous Example
|
|
9831
|
+
|
|
9832
|
+
```javascript
|
|
9833
|
+
let author, books;
|
|
9834
|
+
|
|
9835
|
+
try {
|
|
9836
|
+
author = findAuthor();
|
|
9837
|
+
books = findBooksByAuthor(author);
|
|
9838
|
+
// success
|
|
9839
|
+
} catch(reason) {
|
|
9840
|
+
// failure
|
|
9841
|
+
}
|
|
9842
|
+
```
|
|
9843
|
+
|
|
9844
|
+
Errback Example
|
|
9845
|
+
|
|
9846
|
+
```js
|
|
9847
|
+
|
|
9848
|
+
function foundBooks(books) {
|
|
9849
|
+
|
|
9850
|
+
}
|
|
9851
|
+
|
|
9852
|
+
function failure(reason) {
|
|
9853
|
+
|
|
9854
|
+
}
|
|
9855
|
+
|
|
9856
|
+
findAuthor(function(author, err){
|
|
9857
|
+
if (err) {
|
|
9858
|
+
failure(err);
|
|
9859
|
+
// failure
|
|
9860
|
+
} else {
|
|
9861
|
+
try {
|
|
9862
|
+
findBoooksByAuthor(author, function(books, err) {
|
|
9863
|
+
if (err) {
|
|
9864
|
+
failure(err);
|
|
9865
|
+
} else {
|
|
9866
|
+
try {
|
|
9867
|
+
foundBooks(books);
|
|
9868
|
+
} catch(reason) {
|
|
9869
|
+
failure(reason);
|
|
10024
9870
|
}
|
|
10025
|
-
}
|
|
10026
|
-
}
|
|
10027
|
-
|
|
10028
|
-
|
|
10029
|
-
// success
|
|
9871
|
+
}
|
|
9872
|
+
});
|
|
9873
|
+
} catch(error) {
|
|
9874
|
+
failure(err);
|
|
10030
9875
|
}
|
|
10031
|
-
|
|
10032
|
-
|
|
10033
|
-
|
|
10034
|
-
|
|
10035
|
-
|
|
10036
|
-
|
|
10037
|
-
|
|
10038
|
-
|
|
10039
|
-
|
|
10040
|
-
|
|
10041
|
-
|
|
10042
|
-
//
|
|
10043
|
-
|
|
10044
|
-
|
|
10045
|
-
|
|
10046
|
-
|
|
10047
|
-
|
|
10048
|
-
|
|
10049
|
-
|
|
10050
|
-
|
|
10051
|
-
|
|
10052
|
-
|
|
10053
|
-
|
|
10054
|
-
|
|
10055
|
-
|
|
10056
|
-
return this.then(undefined, onRejection, label);
|
|
10057
|
-
},
|
|
10058
|
-
finally: function (callback, label) {
|
|
10059
|
-
var promise = this;
|
|
10060
|
-
var constructor = promise.constructor;
|
|
10061
|
-
|
|
10062
|
-
return promise.then(function (value) {
|
|
10063
|
-
return constructor.resolve(callback()).then(function () {
|
|
10064
|
-
return value;
|
|
10065
|
-
});
|
|
10066
|
-
}, function (reason) {
|
|
10067
|
-
return constructor.resolve(callback()).then(function () {
|
|
10068
|
-
throw reason;
|
|
10069
|
-
});
|
|
10070
|
-
}, label);
|
|
10071
|
-
}
|
|
10072
|
-
};
|
|
9876
|
+
// success
|
|
9877
|
+
}
|
|
9878
|
+
});
|
|
9879
|
+
```
|
|
9880
|
+
|
|
9881
|
+
Promise Example;
|
|
9882
|
+
|
|
9883
|
+
```javascript
|
|
9884
|
+
findAuthor().
|
|
9885
|
+
then(findBooksByAuthor).
|
|
9886
|
+
then(function(books){
|
|
9887
|
+
// found books
|
|
9888
|
+
}).catch(function(reason){
|
|
9889
|
+
// something went wrong
|
|
9890
|
+
});
|
|
9891
|
+
```
|
|
9892
|
+
|
|
9893
|
+
@method then
|
|
9894
|
+
@param {Function} onFulfillment
|
|
9895
|
+
@param {Function} onRejection
|
|
9896
|
+
@param {String} label optional string for labeling the promise.
|
|
9897
|
+
Useful for tooling.
|
|
9898
|
+
@return {Promise}
|
|
9899
|
+
*/
|
|
9900
|
+
Promise.prototype.then = then;
|
|
10073
9901
|
|
|
10074
9902
|
function Result() {
|
|
10075
9903
|
this.value = undefined;
|
|
@@ -10347,70 +10175,69 @@ enifed('rsvp', ['exports', 'ember-babel', 'node-module'], function (exports, _em
|
|
|
10347
10175
|
return Promise.all(array, label);
|
|
10348
10176
|
}
|
|
10349
10177
|
|
|
10350
|
-
|
|
10351
|
-
|
|
10352
|
-
|
|
10178
|
+
var AllSettled = function (_Enumerator) {
|
|
10179
|
+
(0, _emberBabel.inherits)(AllSettled, _Enumerator);
|
|
10180
|
+
|
|
10181
|
+
function AllSettled(Constructor, entries, label) {
|
|
10182
|
+
(0, _emberBabel.classCallCheck)(this, AllSettled);
|
|
10183
|
+
return (0, _emberBabel.possibleConstructorReturn)(this, _Enumerator.call(this, Constructor, entries, false /* don't abort on reject */, label));
|
|
10184
|
+
}
|
|
10185
|
+
|
|
10186
|
+
return AllSettled;
|
|
10187
|
+
}(Enumerator);
|
|
10353
10188
|
|
|
10354
|
-
AllSettled.prototype = o_create(Enumerator.prototype);
|
|
10355
|
-
AllSettled.prototype._superConstructor = Enumerator;
|
|
10356
10189
|
AllSettled.prototype._makeResult = makeSettledResult;
|
|
10357
|
-
AllSettled.prototype._validationError = function () {
|
|
10358
|
-
return new Error('allSettled must be called with an array');
|
|
10359
|
-
};
|
|
10360
10190
|
|
|
10361
10191
|
/**
|
|
10362
|
-
|
|
10363
|
-
|
|
10364
|
-
|
|
10365
|
-
|
|
10366
|
-
|
|
10367
|
-
|
|
10368
|
-
|
|
10369
|
-
|
|
10370
|
-
|
|
10371
|
-
|
|
10372
|
-
|
|
10373
|
-
|
|
10374
|
-
|
|
10375
|
-
|
|
10376
|
-
|
|
10377
|
-
|
|
10378
|
-
|
|
10379
|
-
|
|
10380
|
-
|
|
10381
|
-
|
|
10382
|
-
|
|
10383
|
-
|
|
10384
|
-
|
|
10385
|
-
|
|
10386
|
-
|
|
10387
|
-
|
|
10388
|
-
|
|
10389
|
-
|
|
10390
|
-
|
|
10391
|
-
|
|
10392
|
-
|
|
10393
|
-
|
|
10394
|
-
|
|
10395
|
-
|
|
10396
|
-
|
|
10397
|
-
|
|
10398
|
-
|
|
10399
|
-
|
|
10400
|
-
|
|
10401
|
-
|
|
10402
|
-
|
|
10403
|
-
|
|
10404
|
-
@static
|
|
10405
|
-
@for RSVP
|
|
10406
|
-
@param {Array} entries
|
|
10407
|
-
@param {String} label - optional string that describes the promise.
|
|
10408
|
-
Useful for tooling.
|
|
10409
|
-
@return {Promise} promise that is fulfilled with an array of the settled
|
|
10410
|
-
states of the constituent promises.
|
|
10192
|
+
`RSVP.allSettled` is similar to `RSVP.all`, but instead of implementing
|
|
10193
|
+
a fail-fast method, it waits until all the promises have returned and
|
|
10194
|
+
shows you all the results. This is useful if you want to handle multiple
|
|
10195
|
+
promises' failure states together as a set.
|
|
10196
|
+
Returns a promise that is fulfilled when all the given promises have been
|
|
10197
|
+
settled. The return promise is fulfilled with an array of the states of
|
|
10198
|
+
the promises passed into the `promises` array argument.
|
|
10199
|
+
Each state object will either indicate fulfillment or rejection, and
|
|
10200
|
+
provide the corresponding value or reason. The states will take one of
|
|
10201
|
+
the following formats:
|
|
10202
|
+
```javascript
|
|
10203
|
+
{ state: 'fulfilled', value: value }
|
|
10204
|
+
or
|
|
10205
|
+
{ state: 'rejected', reason: reason }
|
|
10206
|
+
```
|
|
10207
|
+
Example:
|
|
10208
|
+
```javascript
|
|
10209
|
+
let promise1 = RSVP.Promise.resolve(1);
|
|
10210
|
+
let promise2 = RSVP.Promise.reject(new Error('2'));
|
|
10211
|
+
let promise3 = RSVP.Promise.reject(new Error('3'));
|
|
10212
|
+
let promises = [ promise1, promise2, promise3 ];
|
|
10213
|
+
RSVP.allSettled(promises).then(function(array){
|
|
10214
|
+
// array == [
|
|
10215
|
+
// { state: 'fulfilled', value: 1 },
|
|
10216
|
+
// { state: 'rejected', reason: Error },
|
|
10217
|
+
// { state: 'rejected', reason: Error }
|
|
10218
|
+
// ]
|
|
10219
|
+
// Note that for the second item, reason.message will be '2', and for the
|
|
10220
|
+
// third item, reason.message will be '3'.
|
|
10221
|
+
}, function(error) {
|
|
10222
|
+
// Not run. (This block would only be called if allSettled had failed,
|
|
10223
|
+
// for instance if passed an incorrect argument type.)
|
|
10224
|
+
});
|
|
10225
|
+
```
|
|
10226
|
+
@method allSettled
|
|
10227
|
+
@static
|
|
10228
|
+
@for RSVP
|
|
10229
|
+
@param {Array} entries
|
|
10230
|
+
@param {String} label - optional string that describes the promise.
|
|
10231
|
+
Useful for tooling.
|
|
10232
|
+
@return {Promise} promise that is fulfilled with an array of the settled
|
|
10233
|
+
states of the constituent promises.
|
|
10411
10234
|
*/
|
|
10412
10235
|
|
|
10413
10236
|
function allSettled(entries, label) {
|
|
10237
|
+
if (!isArray(entries)) {
|
|
10238
|
+
return Promise.reject(new TypeError("Promise.allSettled must be called with an array"), label);
|
|
10239
|
+
}
|
|
10240
|
+
|
|
10414
10241
|
return new AllSettled(Promise, entries, label).promise;
|
|
10415
10242
|
}
|
|
10416
10243
|
|
|
@@ -10428,48 +10255,52 @@ enifed('rsvp', ['exports', 'ember-babel', 'node-module'], function (exports, _em
|
|
|
10428
10255
|
return Promise.race(array, label);
|
|
10429
10256
|
}
|
|
10430
10257
|
|
|
10431
|
-
|
|
10432
|
-
this._superConstructor(Constructor, object, true, label);
|
|
10433
|
-
}
|
|
10258
|
+
var hasOwnProperty = Object.prototype.hasOwnProperty;
|
|
10434
10259
|
|
|
10435
|
-
PromiseHash
|
|
10436
|
-
|
|
10437
|
-
PromiseHash.prototype._init = function () {
|
|
10438
|
-
this._result = {};
|
|
10439
|
-
};
|
|
10260
|
+
var PromiseHash = function (_Enumerator2) {
|
|
10261
|
+
(0, _emberBabel.inherits)(PromiseHash, _Enumerator2);
|
|
10440
10262
|
|
|
10441
|
-
|
|
10442
|
-
|
|
10443
|
-
|
|
10263
|
+
function PromiseHash(Constructor, object) {
|
|
10264
|
+
var abortOnReject = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
10265
|
+
var label = arguments[3];
|
|
10266
|
+
(0, _emberBabel.classCallCheck)(this, PromiseHash);
|
|
10267
|
+
return (0, _emberBabel.possibleConstructorReturn)(this, _Enumerator2.call(this, Constructor, object, abortOnReject, label));
|
|
10268
|
+
}
|
|
10444
10269
|
|
|
10445
|
-
|
|
10446
|
-
|
|
10447
|
-
};
|
|
10270
|
+
PromiseHash.prototype._init = function _init(Constructor, object) {
|
|
10271
|
+
this._result = {};
|
|
10448
10272
|
|
|
10449
|
-
|
|
10450
|
-
|
|
10451
|
-
|
|
10452
|
-
var input = enumerator._input;
|
|
10453
|
-
var results = [];
|
|
10454
|
-
|
|
10455
|
-
for (var key in input) {
|
|
10456
|
-
if (promise._state === PENDING && Object.prototype.hasOwnProperty.call(input, key)) {
|
|
10457
|
-
results.push({
|
|
10458
|
-
position: key,
|
|
10459
|
-
entry: input[key]
|
|
10460
|
-
});
|
|
10273
|
+
this._enumerate(object);
|
|
10274
|
+
if (this._remaining === 0) {
|
|
10275
|
+
fulfill(this.promise, this._result);
|
|
10461
10276
|
}
|
|
10462
|
-
}
|
|
10277
|
+
};
|
|
10463
10278
|
|
|
10464
|
-
|
|
10465
|
-
|
|
10466
|
-
|
|
10279
|
+
PromiseHash.prototype._enumerate = function _enumerate(input) {
|
|
10280
|
+
var promise = this.promise;
|
|
10281
|
+
var results = [];
|
|
10467
10282
|
|
|
10468
|
-
|
|
10469
|
-
|
|
10470
|
-
|
|
10471
|
-
|
|
10472
|
-
|
|
10283
|
+
for (var key in input) {
|
|
10284
|
+
if (hasOwnProperty.call(input, key)) {
|
|
10285
|
+
results.push({
|
|
10286
|
+
position: key,
|
|
10287
|
+
entry: input[key]
|
|
10288
|
+
});
|
|
10289
|
+
}
|
|
10290
|
+
}
|
|
10291
|
+
|
|
10292
|
+
var length = results.length;
|
|
10293
|
+
this._remaining = length;
|
|
10294
|
+
var result = void 0;
|
|
10295
|
+
|
|
10296
|
+
for (var i = 0; promise._state === PENDING && i < length; i++) {
|
|
10297
|
+
result = results[i];
|
|
10298
|
+
this._eachEntry(result.entry, result.position);
|
|
10299
|
+
}
|
|
10300
|
+
};
|
|
10301
|
+
|
|
10302
|
+
return PromiseHash;
|
|
10303
|
+
}(Enumerator);
|
|
10473
10304
|
|
|
10474
10305
|
/**
|
|
10475
10306
|
`RSVP.hash` is similar to `RSVP.all`, but takes an object instead of an array
|
|
@@ -10560,20 +10391,25 @@ enifed('rsvp', ['exports', 'ember-babel', 'node-module'], function (exports, _em
|
|
|
10560
10391
|
have been fulfilled, or rejected if any of them become rejected.
|
|
10561
10392
|
*/
|
|
10562
10393
|
function hash(object, label) {
|
|
10394
|
+
if (!isObject(object)) {
|
|
10395
|
+
return Promise.reject(new TypeError("Promise.hash must be called with an object"), label);
|
|
10396
|
+
}
|
|
10397
|
+
|
|
10563
10398
|
return new PromiseHash(Promise, object, label).promise;
|
|
10564
10399
|
}
|
|
10565
10400
|
|
|
10566
|
-
|
|
10567
|
-
|
|
10568
|
-
}
|
|
10401
|
+
var HashSettled = function (_PromiseHash) {
|
|
10402
|
+
(0, _emberBabel.inherits)(HashSettled, _PromiseHash);
|
|
10569
10403
|
|
|
10570
|
-
|
|
10571
|
-
|
|
10572
|
-
|
|
10404
|
+
function HashSettled(Constructor, object, label) {
|
|
10405
|
+
(0, _emberBabel.classCallCheck)(this, HashSettled);
|
|
10406
|
+
return (0, _emberBabel.possibleConstructorReturn)(this, _PromiseHash.call(this, Constructor, object, false, label));
|
|
10407
|
+
}
|
|
10573
10408
|
|
|
10574
|
-
|
|
10575
|
-
|
|
10576
|
-
|
|
10409
|
+
return HashSettled;
|
|
10410
|
+
}(PromiseHash);
|
|
10411
|
+
|
|
10412
|
+
HashSettled.prototype._makeResult = makeSettledResult;
|
|
10577
10413
|
|
|
10578
10414
|
/**
|
|
10579
10415
|
`RSVP.hashSettled` is similar to `RSVP.allSettled`, but takes an object
|
|
@@ -10676,8 +10512,13 @@ enifed('rsvp', ['exports', 'ember-babel', 'node-module'], function (exports, _em
|
|
|
10676
10512
|
have been settled.
|
|
10677
10513
|
@static
|
|
10678
10514
|
*/
|
|
10515
|
+
|
|
10679
10516
|
function hashSettled(object, label) {
|
|
10680
|
-
|
|
10517
|
+
if (!isObject(object)) {
|
|
10518
|
+
return Promise.reject(new TypeError("RSVP.hashSettled must be called with an object"), label);
|
|
10519
|
+
}
|
|
10520
|
+
|
|
10521
|
+
return new HashSettled(Promise, object, false, label).promise;
|
|
10681
10522
|
}
|
|
10682
10523
|
|
|
10683
10524
|
/**
|
|
@@ -10850,11 +10691,15 @@ enifed('rsvp', ['exports', 'ember-babel', 'node-module'], function (exports, _em
|
|
|
10850
10691
|
@static
|
|
10851
10692
|
*/
|
|
10852
10693
|
function map(promises, mapFn, label) {
|
|
10853
|
-
|
|
10854
|
-
|
|
10855
|
-
|
|
10856
|
-
}
|
|
10694
|
+
if (!isArray(promises)) {
|
|
10695
|
+
return Promise.reject(new TypeError("RSVP.map must be called with an array"), label);
|
|
10696
|
+
}
|
|
10857
10697
|
|
|
10698
|
+
if (!isFunction(mapFn)) {
|
|
10699
|
+
return Promise.reject(new TypeError("RSVP.map expects a function as a second argument"), label);
|
|
10700
|
+
}
|
|
10701
|
+
|
|
10702
|
+
return Promise.all(promises, label).then(function (values) {
|
|
10858
10703
|
var length = values.length;
|
|
10859
10704
|
var results = new Array(length);
|
|
10860
10705
|
|
|
@@ -10994,12 +10839,16 @@ enifed('rsvp', ['exports', 'ember-babel', 'node-module'], function (exports, _em
|
|
|
10994
10839
|
}
|
|
10995
10840
|
|
|
10996
10841
|
function filter(promises, filterFn, label) {
|
|
10842
|
+
if (!isArray(promises) && !(isObject(promises) && promises.then !== undefined)) {
|
|
10843
|
+
return Promise.reject(new TypeError("RSVP.filter must be called with an array or promise"), label);
|
|
10844
|
+
}
|
|
10845
|
+
|
|
10846
|
+
if (!isFunction(filterFn)) {
|
|
10847
|
+
return Promise.reject(new TypeError("RSVP.filter expects function as a second argument"), label);
|
|
10848
|
+
}
|
|
10849
|
+
|
|
10997
10850
|
var promise = isArray(promises) ? resolveAll(promises, label) : resolveSingle(promises, label);
|
|
10998
10851
|
return promise.then(function (values) {
|
|
10999
|
-
if (!isFunction(filterFn)) {
|
|
11000
|
-
throw new TypeError("You must pass a function as filter's second argument.");
|
|
11001
|
-
}
|
|
11002
|
-
|
|
11003
10852
|
var length = values.length;
|
|
11004
10853
|
var filtered = new Array(length);
|
|
11005
10854
|
|