ember-source 2.16.0.beta.1 → 2.16.0.beta.2
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 +110 -77
- data/dist/ember-template-compiler.js +174 -132
- data/dist/ember-testing.js +1 -1
- data/dist/ember-tests.js +1329 -1251
- data/dist/ember-tests.prod.js +1279 -1249
- data/dist/ember.debug.js +631 -424
- data/dist/ember.min.js +204 -198
- data/dist/ember.prod.js +650 -436
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 475e7db17b8b57155cfa98a604cbab329fd92038
|
4
|
+
data.tar.gz: e3c43638f235929b6c391b1d956a4d7ffa22e654
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e6854e8807f2604fd5829b40c6c1dd1427531b55a3d0b5c32acaae79e217edd4807498125cac471fb742a9d6ae80333daf2df207e247fa6482ddff28a31e33b0
|
7
|
+
data.tar.gz: e599b4860f349c2c7d1287cbfae1c89256d90e819dd682eea08d6da3e114f8e643316a4e6e68a755de32b3dcea2a8ae2857e5b0679a195354f25d8b2c7d8740c
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.16.0.beta.
|
1
|
+
2.16.0.beta.2
|
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.16.0-beta.
|
9
|
+
* @version 2.16.0-beta.2
|
10
10
|
*/
|
11
11
|
|
12
12
|
var enifed, requireModule, Ember;
|
@@ -112,7 +112,7 @@ 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/features'
|
115
|
+
enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'ember/features'], function (exports, _emberBabel, _emberUtils, _emberDebug, _features) {
|
116
116
|
'use strict';
|
117
117
|
|
118
118
|
exports.Container = exports.privatize = exports.Registry = undefined;
|
@@ -494,7 +494,7 @@ enifed('container', ['exports', 'ember-babel', 'ember-utils', 'ember-debug', 'em
|
|
494
494
|
if (typeof this.class._initFactory === 'function') {
|
495
495
|
this.class._initFactory(this);
|
496
496
|
} else {
|
497
|
-
// in the non-
|
497
|
+
// in the non-EmberObject case we need to still setOwner
|
498
498
|
// this is required for supporting glimmer environment and
|
499
499
|
// template instantiation which rely heavily on
|
500
500
|
// `options[OWNER]` being passed into `create`
|
@@ -1788,7 +1788,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
1788
1788
|
*/
|
1789
1789
|
function hasListeners(obj, eventName) {
|
1790
1790
|
var meta$$1 = exports.peekMeta(obj);
|
1791
|
-
if (
|
1791
|
+
if (meta$$1 === undefined) {
|
1792
1792
|
return false;
|
1793
1793
|
}
|
1794
1794
|
var matched = meta$$1.matchingListeners(eventName);
|
@@ -1851,6 +1851,14 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
1851
1851
|
|
1852
1852
|
var func = args.pop();
|
1853
1853
|
var events = args;
|
1854
|
+
|
1855
|
+
true && !(typeof func === 'function') && emberDebug.assert('Ember.on expects function as last argument', typeof func === 'function');
|
1856
|
+
true && !(events.length > 0 && events.every(function (p) {
|
1857
|
+
return typeof p === 'string' && p.length;
|
1858
|
+
})) && emberDebug.assert('Ember.on called without valid event names', events.length > 0 && events.every(function (p) {
|
1859
|
+
return typeof p === 'string' && p.length;
|
1860
|
+
}));
|
1861
|
+
|
1854
1862
|
func.__ember_listens__ = events;
|
1855
1863
|
return func;
|
1856
1864
|
}
|
@@ -2453,7 +2461,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
2453
2461
|
function DEFAULT_GETTER_FUNCTION(name) {
|
2454
2462
|
return function GETTER_FUNCTION() {
|
2455
2463
|
var meta$$1 = exports.peekMeta(this);
|
2456
|
-
if (meta$$1 !==
|
2464
|
+
if (meta$$1 !== undefined) {
|
2457
2465
|
return meta$$1.peekValues(name);
|
2458
2466
|
}
|
2459
2467
|
};
|
@@ -2463,7 +2471,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
2463
2471
|
function IGETTER_FUNCTION() {
|
2464
2472
|
var meta$$1 = exports.peekMeta(this);
|
2465
2473
|
var val = void 0;
|
2466
|
-
if (meta$$1 !==
|
2474
|
+
if (meta$$1 !== undefined) {
|
2467
2475
|
val = meta$$1.readInheritedValue('values', name);
|
2468
2476
|
}
|
2469
2477
|
|
@@ -2525,7 +2533,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
2525
2533
|
become the explicit value of this property.
|
2526
2534
|
*/
|
2527
2535
|
function defineProperty(obj, keyName, desc, data, meta$$1) {
|
2528
|
-
if (meta$$1 ===
|
2536
|
+
if (meta$$1 === undefined) {
|
2529
2537
|
meta$$1 = meta(obj);
|
2530
2538
|
}
|
2531
2539
|
|
@@ -2713,7 +2721,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
2713
2721
|
var meta$$1 = _meta || exports.peekMeta(obj);
|
2714
2722
|
|
2715
2723
|
// do nothing of this object has already been destroyed
|
2716
|
-
if (
|
2724
|
+
if (meta$$1 === undefined || meta$$1.isSourceDestroyed()) {
|
2717
2725
|
return;
|
2718
2726
|
}
|
2719
2727
|
|
@@ -2924,9 +2932,9 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
2924
2932
|
return;
|
2925
2933
|
}
|
2926
2934
|
|
2927
|
-
var meta$$1 = _meta
|
2935
|
+
var meta$$1 = _meta === undefined ? exports.peekMeta(obj) : _meta;
|
2928
2936
|
|
2929
|
-
if (
|
2937
|
+
if (meta$$1 === undefined || meta$$1.readableChainWatchers() === undefined) {
|
2930
2938
|
return;
|
2931
2939
|
}
|
2932
2940
|
|
@@ -4387,7 +4395,8 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
4387
4395
|
*/
|
4388
4396
|
function ComputedProperty(config, opts) {
|
4389
4397
|
this.isDescriptor = true;
|
4390
|
-
|
4398
|
+
var hasGetterOnly = typeof config === 'function';
|
4399
|
+
if (hasGetterOnly) {
|
4391
4400
|
this._getter = config;
|
4392
4401
|
} else {
|
4393
4402
|
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));
|
@@ -4405,8 +4414,9 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
4405
4414
|
this._suspended = undefined;
|
4406
4415
|
this._meta = undefined;
|
4407
4416
|
this._volatile = false;
|
4417
|
+
|
4408
4418
|
this._dependentKeys = opts && opts.dependentKeys;
|
4409
|
-
this._readOnly =
|
4419
|
+
this._readOnly = opts && hasGetterOnly && opts.readOnly === true;
|
4410
4420
|
}
|
4411
4421
|
|
4412
4422
|
ComputedProperty.prototype = new Descriptor();
|
@@ -4524,10 +4534,13 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
4524
4534
|
You can pass a hash of these values to a computed property like this:
|
4525
4535
|
|
4526
4536
|
```
|
4527
|
-
|
4537
|
+
import { computed } from '@ember/object';
|
4538
|
+
import Person from 'my-app/utils/person';
|
4539
|
+
|
4540
|
+
person: computed(function() {
|
4528
4541
|
let personId = this.get('personId');
|
4529
|
-
return
|
4530
|
-
}).meta({ type:
|
4542
|
+
return Person.create({ id: personId });
|
4543
|
+
}).meta({ type: Person })
|
4531
4544
|
```
|
4532
4545
|
|
4533
4546
|
The hash that you pass to the `meta()` function will be saved on the
|
@@ -4559,12 +4572,12 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
4559
4572
|
|
4560
4573
|
// don't create objects just to invalidate
|
4561
4574
|
var meta$$1 = exports.peekMeta(obj);
|
4562
|
-
if (
|
4575
|
+
if (meta$$1 === undefined || meta$$1.source !== obj) {
|
4563
4576
|
return;
|
4564
4577
|
}
|
4565
4578
|
|
4566
4579
|
var cache = meta$$1.readableCache();
|
4567
|
-
if (cache && cache[keyName] !== undefined) {
|
4580
|
+
if (cache !== undefined && cache[keyName] !== undefined) {
|
4568
4581
|
cache[keyName] = undefined;
|
4569
4582
|
removeDependentKeys(this, obj, keyName, meta$$1);
|
4570
4583
|
}
|
@@ -4586,14 +4599,10 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
4586
4599
|
}
|
4587
4600
|
|
4588
4601
|
var ret = this._getter.call(obj, keyName);
|
4589
|
-
|
4590
|
-
cache[keyName] = UNDEFINED;
|
4591
|
-
} else {
|
4592
|
-
cache[keyName] = ret;
|
4593
|
-
}
|
4602
|
+
cache[keyName] = ret === undefined ? UNDEFINED : ret;
|
4594
4603
|
|
4595
4604
|
var chainWatchers = meta$$1.readableChainWatchers();
|
4596
|
-
if (chainWatchers) {
|
4605
|
+
if (chainWatchers !== undefined) {
|
4597
4606
|
chainWatchers.revalidate(keyName);
|
4598
4607
|
}
|
4599
4608
|
addDependentKeys(this, obj, keyName, meta$$1);
|
@@ -4643,15 +4652,14 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
4643
4652
|
};
|
4644
4653
|
|
4645
4654
|
ComputedPropertyPrototype._set = function computedPropertySet(obj, keyName, value) {
|
4646
|
-
// cache requires own meta
|
4647
4655
|
var meta$$1 = meta(obj);
|
4648
|
-
// either there is a writable cache or we need one to update
|
4649
4656
|
var cache = meta$$1.writableCache();
|
4650
4657
|
var hadCachedValue = false;
|
4651
4658
|
var cachedValue = void 0;
|
4652
|
-
|
4653
|
-
|
4654
|
-
|
4659
|
+
var val = cache[keyName];
|
4660
|
+
if (val !== undefined) {
|
4661
|
+
if (val !== UNDEFINED) {
|
4662
|
+
cachedValue = val;
|
4655
4663
|
}
|
4656
4664
|
hadCachedValue = true;
|
4657
4665
|
}
|
@@ -5265,6 +5273,12 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
5265
5273
|
};
|
5266
5274
|
|
5267
5275
|
var onerror = void 0;
|
5276
|
+
var onErrorTarget = {
|
5277
|
+
get onerror() {
|
5278
|
+
return dispatchOverride || onerror;
|
5279
|
+
}
|
5280
|
+
};
|
5281
|
+
|
5268
5282
|
// Ember.onerror getter
|
5269
5283
|
function getOnerror() {
|
5270
5284
|
return onerror;
|
@@ -5356,7 +5370,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
5356
5370
|
}
|
5357
5371
|
|
5358
5372
|
var meta$$1 = exports.peekMeta(obj);
|
5359
|
-
if (meta$$1) {
|
5373
|
+
if (meta$$1 !== undefined) {
|
5360
5374
|
var map = meta$$1.readableWeak();
|
5361
5375
|
if (map !== undefined) {
|
5362
5376
|
var val = map[this._id];
|
@@ -5401,7 +5415,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
5401
5415
|
}
|
5402
5416
|
|
5403
5417
|
var meta$$1 = exports.peekMeta(obj);
|
5404
|
-
if (meta$$1) {
|
5418
|
+
if (meta$$1 !== undefined) {
|
5405
5419
|
var map = meta$$1.readableWeak();
|
5406
5420
|
if (map !== undefined) {
|
5407
5421
|
return map[this._id] !== undefined;
|
@@ -5593,15 +5607,6 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
5593
5607
|
run.currentRunLoop = next;
|
5594
5608
|
}
|
5595
5609
|
|
5596
|
-
var onErrorTarget = {
|
5597
|
-
get onerror() {
|
5598
|
-
return dispatchError;
|
5599
|
-
},
|
5600
|
-
set onerror(handler) {
|
5601
|
-
return setOnerror(handler);
|
5602
|
-
}
|
5603
|
-
};
|
5604
|
-
|
5605
5610
|
var backburner$1 = new Backburner(['sync', 'actions', 'destroy'], {
|
5606
5611
|
GUID_KEY: emberUtils.GUID_KEY,
|
5607
5612
|
sync: {
|
@@ -5709,16 +5714,26 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
5709
5714
|
We can use that setup option to do some additional setup for our component.
|
5710
5715
|
The component itself could look something like the following:
|
5711
5716
|
|
5712
|
-
```
|
5713
|
-
|
5717
|
+
```app/components/rich-text-editor.js
|
5718
|
+
import Component from '@ember/component';
|
5719
|
+
import { bind } from '@ember/runloop';
|
5720
|
+
|
5721
|
+
export default Component.extend({
|
5714
5722
|
initializeTinyMCE: Ember.on('didInsertElement', function() {
|
5715
5723
|
tinymce.init({
|
5716
5724
|
selector: '#' + this.$().prop('id'),
|
5717
5725
|
setup: Ember.run.bind(this, this.setupEditor)
|
5718
5726
|
});
|
5719
5727
|
}),
|
5728
|
+
|
5729
|
+
didInsertElement() {
|
5730
|
+
tinymce.init({
|
5731
|
+
selector: '#' + this.$().prop('id'),
|
5732
|
+
setup: Ember.run.bind(this, this.setupEditor)
|
5733
|
+
});
|
5734
|
+
}
|
5720
5735
|
|
5721
|
-
setupEditor
|
5736
|
+
setupEditor(editor) {
|
5722
5737
|
this.set('editor', editor);
|
5723
5738
|
|
5724
5739
|
editor.on('change', function() {
|
@@ -5729,7 +5744,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
5729
5744
|
```
|
5730
5745
|
|
5731
5746
|
In this example, we use Ember.run.bind to bind the setupEditor method to the
|
5732
|
-
context of the
|
5747
|
+
context of the RichTextEditor component and to have the invocation of that
|
5733
5748
|
method be safely handled and executed by the Ember run loop.
|
5734
5749
|
|
5735
5750
|
@method bind
|
@@ -5963,9 +5978,23 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
5963
5978
|
});
|
5964
5979
|
```
|
5965
5980
|
|
5966
|
-
Also note that
|
5967
|
-
|
5968
|
-
|
5981
|
+
Also note that for `run.scheduleOnce` to prevent additional calls, you need to
|
5982
|
+
pass the same function instance. The following case works as expected:
|
5983
|
+
|
5984
|
+
```javascript
|
5985
|
+
function log() {
|
5986
|
+
console.log('Logging only once');
|
5987
|
+
}
|
5988
|
+
|
5989
|
+
function scheduleIt() {
|
5990
|
+
run.scheduleOnce('actions', myContext, log);
|
5991
|
+
}
|
5992
|
+
|
5993
|
+
scheduleIt();
|
5994
|
+
scheduleIt();
|
5995
|
+
```
|
5996
|
+
|
5997
|
+
But this other case will schedule the function multiple times:
|
5969
5998
|
|
5970
5999
|
```javascript
|
5971
6000
|
function scheduleIt() {
|
@@ -5978,7 +6007,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
5978
6007
|
scheduleIt();
|
5979
6008
|
|
5980
6009
|
// "Closure" will print twice, even though we're using `run.scheduleOnce`,
|
5981
|
-
// because the function we pass to it
|
6010
|
+
// because the function we pass to it won't match the
|
5982
6011
|
// previously scheduled operation.
|
5983
6012
|
```
|
5984
6013
|
|
@@ -6026,8 +6055,10 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
6026
6055
|
|
6027
6056
|
Example:
|
6028
6057
|
|
6029
|
-
```
|
6030
|
-
|
6058
|
+
```app/components/my-component.js
|
6059
|
+
import Component from '@ember/component';
|
6060
|
+
|
6061
|
+
export Component.extend({
|
6031
6062
|
didInsertElement() {
|
6032
6063
|
this._super(...arguments);
|
6033
6064
|
run.scheduleOnce('afterRender', this, 'processChildElements');
|
@@ -7573,16 +7604,14 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
7573
7604
|
|
7574
7605
|
if (baseValue === null || baseValue === undefined) {
|
7575
7606
|
ret = emberUtils.makeArray(value);
|
7576
|
-
} else {
|
7577
|
-
if (
|
7578
|
-
|
7579
|
-
ret = baseValue;
|
7580
|
-
} else {
|
7581
|
-
ret = a_concat.call(baseValue, value);
|
7582
|
-
}
|
7607
|
+
} else if (isArray(baseValue)) {
|
7608
|
+
if (value === null || value === undefined) {
|
7609
|
+
ret = baseValue;
|
7583
7610
|
} else {
|
7584
|
-
ret = a_concat.call(
|
7611
|
+
ret = a_concat.call(baseValue, value);
|
7585
7612
|
}
|
7613
|
+
} else {
|
7614
|
+
ret = a_concat.call(emberUtils.makeArray(baseValue), value);
|
7586
7615
|
}
|
7587
7616
|
|
7588
7617
|
{
|
@@ -7653,7 +7682,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
7653
7682
|
} else {
|
7654
7683
|
if (concats && concats.indexOf(key) >= 0 || key === 'concatenatedProperties' || key === 'mergedProperties') {
|
7655
7684
|
value = applyConcatenatedProperties(base, key, value, values);
|
7656
|
-
} else if (mergings && mergings.indexOf(key)
|
7685
|
+
} else if (mergings && mergings.indexOf(key) > -1) {
|
7657
7686
|
value = applyMergedProperties(base, key, value, values);
|
7658
7687
|
} else if (isMethod(value)) {
|
7659
7688
|
value = giveMethodSuper(base, key, value, values, descs);
|
@@ -7765,9 +7794,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
7765
7794
|
return { desc: desc, value: value };
|
7766
7795
|
}
|
7767
7796
|
|
7768
|
-
function updateObserversAndListeners(obj, key,
|
7769
|
-
var paths = observerOrListener[pathsKey];
|
7770
|
-
|
7797
|
+
function updateObserversAndListeners(obj, key, paths, updateMethod) {
|
7771
7798
|
if (paths) {
|
7772
7799
|
for (var i = 0; i < paths.length; i++) {
|
7773
7800
|
updateMethod(obj, paths[i], null, key);
|
@@ -7778,16 +7805,16 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
7778
7805
|
function replaceObserversAndListeners(obj, key, observerOrListener) {
|
7779
7806
|
var prev = obj[key];
|
7780
7807
|
|
7781
|
-
if ('function'
|
7782
|
-
updateObserversAndListeners(obj, key, prev
|
7783
|
-
updateObserversAndListeners(obj, key, prev
|
7784
|
-
updateObserversAndListeners(obj, key, prev
|
7808
|
+
if (typeof prev === 'function') {
|
7809
|
+
updateObserversAndListeners(obj, key, prev.__ember_observesBefore__, _removeBeforeObserver);
|
7810
|
+
updateObserversAndListeners(obj, key, prev.__ember_observes__, removeObserver);
|
7811
|
+
updateObserversAndListeners(obj, key, prev.__ember_listens__, removeListener);
|
7785
7812
|
}
|
7786
7813
|
|
7787
|
-
if ('function'
|
7788
|
-
updateObserversAndListeners(obj, key, observerOrListener
|
7789
|
-
updateObserversAndListeners(obj, key, observerOrListener
|
7790
|
-
updateObserversAndListeners(obj, key, observerOrListener
|
7814
|
+
if (typeof observerOrListener === 'function') {
|
7815
|
+
updateObserversAndListeners(obj, key, observerOrListener.__ember_observesBefore__, _addBeforeObserver);
|
7816
|
+
updateObserversAndListeners(obj, key, observerOrListener.__ember_observes__, addObserver);
|
7817
|
+
updateObserversAndListeners(obj, key, observerOrListener.__ember_listens__, addListener);
|
7791
7818
|
}
|
7792
7819
|
}
|
7793
7820
|
|
@@ -7994,7 +8021,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
7994
8021
|
Mixin.mixins = function mixins(obj) {
|
7995
8022
|
var meta$$1 = exports.peekMeta(obj);
|
7996
8023
|
var ret = [];
|
7997
|
-
if (
|
8024
|
+
if (meta$$1 === undefined) {
|
7998
8025
|
return ret;
|
7999
8026
|
}
|
8000
8027
|
|
@@ -8111,7 +8138,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
8111
8138
|
return _detect(obj, this, {});
|
8112
8139
|
}
|
8113
8140
|
var meta$$1 = exports.peekMeta(obj);
|
8114
|
-
if (
|
8141
|
+
if (meta$$1 === undefined) {
|
8115
8142
|
return false;
|
8116
8143
|
}
|
8117
8144
|
return !!meta$$1.peekMixins(emberUtils.guidFor(this));
|
@@ -8186,15 +8213,21 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
8186
8213
|
/**
|
8187
8214
|
Makes a method available via an additional name.
|
8188
8215
|
|
8189
|
-
```
|
8190
|
-
|
8191
|
-
|
8216
|
+
```app/utils/person.js
|
8217
|
+
import EmberObject, {
|
8218
|
+
aliasMethod
|
8219
|
+
} from '@ember/object';
|
8220
|
+
|
8221
|
+
export default EmberObject.extend({
|
8222
|
+
name() {
|
8192
8223
|
return 'Tomhuda Katzdale';
|
8193
8224
|
},
|
8194
|
-
moniker:
|
8225
|
+
moniker: aliasMethod('name')
|
8195
8226
|
});
|
8227
|
+
```
|
8196
8228
|
|
8197
|
-
|
8229
|
+
```javascript
|
8230
|
+
let goodGuy = Person.create();
|
8198
8231
|
|
8199
8232
|
goodGuy.name(); // 'Tomhuda Katzdale'
|
8200
8233
|
goodGuy.moniker(); // 'Tomhuda Katzdale'
|
@@ -8433,7 +8466,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
8433
8466
|
function isProxy(value) {
|
8434
8467
|
if (typeof value === 'object' && value !== null) {
|
8435
8468
|
var meta$$1 = exports.peekMeta(value);
|
8436
|
-
return meta$$1
|
8469
|
+
return meta$$1 === undefined ? false : meta$$1.isProxy();
|
8437
8470
|
}
|
8438
8471
|
|
8439
8472
|
return false;
|
@@ -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.16.0-beta.
|
9
|
+
* @version 2.16.0-beta.2
|
10
10
|
*/
|
11
11
|
|
12
12
|
var enifed, requireModule, Ember;
|
@@ -4640,7 +4640,6 @@ enifed('backburner', ['exports'], function (exports) {
|
|
4640
4640
|
this.name = name;
|
4641
4641
|
this.options = options;
|
4642
4642
|
this.globalOptions = globalOptions;
|
4643
|
-
this.globalOptions.onError = getOnError(globalOptions);
|
4644
4643
|
}
|
4645
4644
|
|
4646
4645
|
Queue.prototype.push = function (target, method, args, stack) {
|
@@ -4670,14 +4669,13 @@ enifed('backburner', ['exports'], function (exports) {
|
|
4670
4669
|
var _options = this.options,
|
4671
4670
|
before = _options.before,
|
4672
4671
|
after = _options.after,
|
4672
|
+
onError,
|
4673
4673
|
i;
|
4674
4674
|
|
4675
4675
|
var target = void 0;
|
4676
4676
|
var method = void 0;
|
4677
4677
|
var args = void 0;
|
4678
4678
|
var errorRecordedForStack = void 0;
|
4679
|
-
var onError = this.globalOptions.onError;
|
4680
|
-
var invoke = onError ? this.invokeWithOnError : this.invoke;
|
4681
4679
|
this.targetQueues = Object.create(null);
|
4682
4680
|
var queueItems = void 0;
|
4683
4681
|
if (this._queueBeingFlushed.length > 0) {
|
@@ -4689,33 +4687,39 @@ enifed('backburner', ['exports'], function (exports) {
|
|
4689
4687
|
if (before) {
|
4690
4688
|
before();
|
4691
4689
|
}
|
4692
|
-
|
4693
|
-
|
4694
|
-
|
4695
|
-
|
4696
|
-
|
4697
|
-
|
4698
|
-
|
4699
|
-
|
4700
|
-
|
4701
|
-
|
4702
|
-
//
|
4703
|
-
//
|
4704
|
-
|
4705
|
-
|
4706
|
-
|
4707
|
-
|
4708
|
-
|
4709
|
-
|
4710
|
-
|
4711
|
-
|
4712
|
-
|
4713
|
-
|
4714
|
-
|
4715
|
-
|
4716
|
-
|
4717
|
-
|
4718
|
-
|
4690
|
+
var invoke = void 0;
|
4691
|
+
if (queueItems.length > 0) {
|
4692
|
+
onError = getOnError(this.globalOptions);
|
4693
|
+
|
4694
|
+
invoke = onError ? this.invokeWithOnError : this.invoke;
|
4695
|
+
for (i = this.index; i < queueItems.length; i += 4) {
|
4696
|
+
this.index += 4;
|
4697
|
+
target = queueItems[i];
|
4698
|
+
method = queueItems[i + 1];
|
4699
|
+
args = queueItems[i + 2];
|
4700
|
+
errorRecordedForStack = queueItems[i + 3]; // Debugging assistance
|
4701
|
+
// method could have been nullified / canceled during flush
|
4702
|
+
if (method !== null) {
|
4703
|
+
//
|
4704
|
+
// ** Attention intrepid developer **
|
4705
|
+
//
|
4706
|
+
// To find out the stack of this task when it was scheduled onto
|
4707
|
+
// the run loop, add the following to your app.js:
|
4708
|
+
//
|
4709
|
+
// Ember.run.backburner.DEBUG = true; // NOTE: This slows your app, don't leave it on in production.
|
4710
|
+
//
|
4711
|
+
// Once that is in place, when you are at a breakpoint and navigate
|
4712
|
+
// here in the stack explorer, you can look at `errorRecordedForStack.stack`,
|
4713
|
+
// which will be the captured stack when this job was scheduled.
|
4714
|
+
//
|
4715
|
+
// One possible long-term solution is the following Chrome issue:
|
4716
|
+
// https://bugs.chromium.org/p/chromium/issues/detail?id=332624
|
4717
|
+
//
|
4718
|
+
invoke(target, method, args, onError, errorRecordedForStack);
|
4719
|
+
}
|
4720
|
+
if (this.index !== this._queueBeingFlushed.length && this.globalOptions.mustYield && this.globalOptions.mustYield()) {
|
4721
|
+
return 1 /* Pause */;
|
4722
|
+
}
|
4719
4723
|
}
|
4720
4724
|
}
|
4721
4725
|
if (after) {
|
@@ -4926,7 +4930,6 @@ enifed('backburner', ['exports'], function (exports) {
|
|
4926
4930
|
|
4927
4931
|
// accepts a function that when invoked will return an iterator
|
4928
4932
|
// iterator will drain until completion
|
4929
|
-
// accepts a function that when invoked will return an iterator
|
4930
4933
|
var iteratorDrain = function (fn) {
|
4931
4934
|
var iterator = fn();
|
4932
4935
|
var result = iterator.next();
|
@@ -4936,7 +4939,6 @@ enifed('backburner', ['exports'], function (exports) {
|
|
4936
4939
|
}
|
4937
4940
|
};
|
4938
4941
|
|
4939
|
-
var now = Date.now;
|
4940
4942
|
var noop = function () {};
|
4941
4943
|
|
4942
4944
|
var Backburner = function () {
|
@@ -4977,6 +4979,9 @@ enifed('backburner', ['exports'], function (exports) {
|
|
4977
4979
|
return platform.setTimeout(fn, 0);
|
4978
4980
|
};
|
4979
4981
|
platform.clearNext = _platform.clearNext || platform.clearTimeout;
|
4982
|
+
platform.now = _platform.now || function () {
|
4983
|
+
return Date.now();
|
4984
|
+
};
|
4980
4985
|
this._platform = platform;
|
4981
4986
|
this._boundRunExpiredTimers = function () {
|
4982
4987
|
_this._runExpiredTimers();
|
@@ -5275,7 +5280,7 @@ enifed('backburner', ['exports'], function (exports) {
|
|
5275
5280
|
}
|
5276
5281
|
}
|
5277
5282
|
var onError = getOnError(this.options);
|
5278
|
-
var executeAt = now() + wait;
|
5283
|
+
var executeAt = this._platform.now() + wait;
|
5279
5284
|
var fn = void 0;
|
5280
5285
|
if (onError) {
|
5281
5286
|
fn = function () {
|
@@ -5495,7 +5500,7 @@ enifed('backburner', ['exports'], function (exports) {
|
|
5495
5500
|
var l = timers.length;
|
5496
5501
|
var i = 0;
|
5497
5502
|
var defaultQueue = this.options.defaultQueue;
|
5498
|
-
var n = now();
|
5503
|
+
var n = this._platform.now();
|
5499
5504
|
for (; i < l; i += 2) {
|
5500
5505
|
executeAt = timers[i];
|
5501
5506
|
|
@@ -5529,7 +5534,7 @@ enifed('backburner', ['exports'], function (exports) {
|
|
5529
5534
|
return;
|
5530
5535
|
}
|
5531
5536
|
var minExpiresAt = this._timers[0];
|
5532
|
-
var n = now();
|
5537
|
+
var n = this._platform.now();
|
5533
5538
|
var wait = Math.max(0, minExpiresAt - n);
|
5534
5539
|
this._timerTimeoutId = this._platform.setTimeout(this._boundRunExpiredTimers, wait);
|
5535
5540
|
};
|
@@ -5553,7 +5558,7 @@ enifed('backburner', ['exports'], function (exports) {
|
|
5553
5558
|
|
5554
5559
|
exports.default = Backburner;
|
5555
5560
|
});
|
5556
|
-
enifed('container', ['exports', 'ember-utils', 'ember-debug', 'ember/features'
|
5561
|
+
enifed('container', ['exports', 'ember-utils', 'ember-debug', 'ember/features'], function (exports, _emberUtils, _emberDebug, _features) {
|
5557
5562
|
'use strict';
|
5558
5563
|
|
5559
5564
|
exports.Container = exports.privatize = exports.Registry = undefined;
|
@@ -5945,7 +5950,7 @@ enifed('container', ['exports', 'ember-utils', 'ember-debug', 'ember/features',
|
|
5945
5950
|
if (typeof this.class._initFactory === 'function') {
|
5946
5951
|
this.class._initFactory(this);
|
5947
5952
|
} else {
|
5948
|
-
// in the non-
|
5953
|
+
// in the non-EmberObject case we need to still setOwner
|
5949
5954
|
// this is required for supporting glimmer environment and
|
5950
5955
|
// template instantiation which rely heavily on
|
5951
5956
|
// `options[OWNER]` being passed into `create`
|
@@ -8675,7 +8680,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
8675
8680
|
function DEFAULT_GETTER_FUNCTION(name) {
|
8676
8681
|
return function () {
|
8677
8682
|
var meta$$1 = exports.peekMeta(this);
|
8678
|
-
if (meta$$1 !==
|
8683
|
+
if (meta$$1 !== undefined) {
|
8679
8684
|
return meta$$1.peekValues(name);
|
8680
8685
|
}
|
8681
8686
|
};
|
@@ -8686,7 +8691,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
8686
8691
|
var meta$$1 = exports.peekMeta(this),
|
8687
8692
|
proto;
|
8688
8693
|
var val = void 0;
|
8689
|
-
if (meta$$1 !==
|
8694
|
+
if (meta$$1 !== undefined) {
|
8690
8695
|
val = meta$$1.readInheritedValue('values', name);
|
8691
8696
|
}
|
8692
8697
|
|
@@ -8749,7 +8754,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
8749
8754
|
become the explicit value of this property.
|
8750
8755
|
*/
|
8751
8756
|
function defineProperty(obj, keyName, desc, data, meta$$1) {
|
8752
|
-
if (meta$$1 ===
|
8757
|
+
if (meta$$1 === undefined) {
|
8753
8758
|
meta$$1 = meta(obj);
|
8754
8759
|
}
|
8755
8760
|
|
@@ -8946,7 +8951,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
8946
8951
|
possibleValue;
|
8947
8952
|
|
8948
8953
|
// do nothing of this object has already been destroyed
|
8949
|
-
if (
|
8954
|
+
if (meta$$1 === undefined || meta$$1.isSourceDestroyed()) {
|
8950
8955
|
return;
|
8951
8956
|
}
|
8952
8957
|
|
@@ -9166,9 +9171,9 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
9166
9171
|
return;
|
9167
9172
|
}
|
9168
9173
|
|
9169
|
-
var meta$$1 = _meta
|
9174
|
+
var meta$$1 = _meta === undefined ? exports.peekMeta(obj) : _meta;
|
9170
9175
|
|
9171
|
-
if (
|
9176
|
+
if (meta$$1 === undefined || meta$$1.readableChainWatchers() === undefined) {
|
9172
9177
|
return;
|
9173
9178
|
}
|
9174
9179
|
|
@@ -10642,7 +10647,8 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
10642
10647
|
*/
|
10643
10648
|
function ComputedProperty(config, opts) {
|
10644
10649
|
this.isDescriptor = true;
|
10645
|
-
|
10650
|
+
var hasGetterOnly = typeof config === 'function';
|
10651
|
+
if (hasGetterOnly) {
|
10646
10652
|
this._getter = config;
|
10647
10653
|
} else {
|
10648
10654
|
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));
|
@@ -10660,8 +10666,9 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
10660
10666
|
this._suspended = undefined;
|
10661
10667
|
this._meta = undefined;
|
10662
10668
|
this._volatile = false;
|
10669
|
+
|
10663
10670
|
this._dependentKeys = opts && opts.dependentKeys;
|
10664
|
-
this._readOnly =
|
10671
|
+
this._readOnly = opts && hasGetterOnly && opts.readOnly === true;
|
10665
10672
|
}
|
10666
10673
|
|
10667
10674
|
ComputedProperty.prototype = new Descriptor();
|
@@ -10780,10 +10787,13 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
10780
10787
|
You can pass a hash of these values to a computed property like this:
|
10781
10788
|
|
10782
10789
|
```
|
10783
|
-
|
10790
|
+
import { computed } from '@ember/object';
|
10791
|
+
import Person from 'my-app/utils/person';
|
10792
|
+
|
10793
|
+
person: computed(function() {
|
10784
10794
|
let personId = this.get('personId');
|
10785
|
-
return
|
10786
|
-
}).meta({ type:
|
10795
|
+
return Person.create({ id: personId });
|
10796
|
+
}).meta({ type: Person })
|
10787
10797
|
```
|
10788
10798
|
|
10789
10799
|
The hash that you pass to the `meta()` function will be saved on the
|
@@ -10815,12 +10825,12 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
10815
10825
|
|
10816
10826
|
// don't create objects just to invalidate
|
10817
10827
|
var meta$$1 = exports.peekMeta(obj);
|
10818
|
-
if (
|
10828
|
+
if (meta$$1 === undefined || meta$$1.source !== obj) {
|
10819
10829
|
return;
|
10820
10830
|
}
|
10821
10831
|
|
10822
10832
|
var cache = meta$$1.readableCache();
|
10823
|
-
if (cache && cache[keyName] !== undefined) {
|
10833
|
+
if (cache !== undefined && cache[keyName] !== undefined) {
|
10824
10834
|
cache[keyName] = undefined;
|
10825
10835
|
removeDependentKeys(this, obj, keyName, meta$$1);
|
10826
10836
|
}
|
@@ -10842,14 +10852,10 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
10842
10852
|
}
|
10843
10853
|
|
10844
10854
|
var ret = this._getter.call(obj, keyName);
|
10845
|
-
|
10846
|
-
cache[keyName] = UNDEFINED;
|
10847
|
-
} else {
|
10848
|
-
cache[keyName] = ret;
|
10849
|
-
}
|
10855
|
+
cache[keyName] = ret === undefined ? UNDEFINED : ret;
|
10850
10856
|
|
10851
10857
|
var chainWatchers = meta$$1.readableChainWatchers();
|
10852
|
-
if (chainWatchers) {
|
10858
|
+
if (chainWatchers !== undefined) {
|
10853
10859
|
chainWatchers.revalidate(keyName);
|
10854
10860
|
}
|
10855
10861
|
addDependentKeys(this, obj, keyName, meta$$1);
|
@@ -10899,15 +10905,14 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
10899
10905
|
};
|
10900
10906
|
|
10901
10907
|
ComputedPropertyPrototype._set = function (obj, keyName, value) {
|
10902
|
-
// cache requires own meta
|
10903
10908
|
var meta$$1 = meta(obj);
|
10904
|
-
// either there is a writable cache or we need one to update
|
10905
10909
|
var cache = meta$$1.writableCache();
|
10906
10910
|
var hadCachedValue = false;
|
10907
10911
|
var cachedValue = void 0;
|
10908
|
-
|
10909
|
-
|
10910
|
-
|
10912
|
+
var val = cache[keyName];
|
10913
|
+
if (val !== undefined) {
|
10914
|
+
if (val !== UNDEFINED) {
|
10915
|
+
cachedValue = val;
|
10911
10916
|
}
|
10912
10917
|
hadCachedValue = true;
|
10913
10918
|
}
|
@@ -11429,22 +11434,20 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
11429
11434
|
};
|
11430
11435
|
|
11431
11436
|
var onerror = void 0;
|
11437
|
+
var onErrorTarget = {
|
11438
|
+
get onerror() {
|
11439
|
+
return dispatchOverride || onerror;
|
11440
|
+
}
|
11441
|
+
};
|
11442
|
+
|
11432
11443
|
// Ember.onerror getter
|
11433
11444
|
|
11434
11445
|
// Ember.onerror setter
|
11435
|
-
|
11436
|
-
onerror = handler;
|
11437
|
-
}
|
11446
|
+
|
11438
11447
|
|
11439
11448
|
var dispatchOverride = void 0;
|
11440
11449
|
// dispatch error
|
11441
|
-
|
11442
|
-
if (dispatchOverride) {
|
11443
|
-
dispatchOverride(error);
|
11444
|
-
} else {
|
11445
|
-
defaultDispatch(error);
|
11446
|
-
}
|
11447
|
-
}
|
11450
|
+
|
11448
11451
|
|
11449
11452
|
// allows testing adapter to override dispatch
|
11450
11453
|
|
@@ -11512,7 +11515,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
11512
11515
|
var meta$$1 = exports.peekMeta(obj),
|
11513
11516
|
map,
|
11514
11517
|
val;
|
11515
|
-
if (meta$$1) {
|
11518
|
+
if (meta$$1 !== undefined) {
|
11516
11519
|
map = meta$$1.readableWeak();
|
11517
11520
|
|
11518
11521
|
if (map !== undefined) {
|
@@ -11560,7 +11563,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
11560
11563
|
|
11561
11564
|
var meta$$1 = exports.peekMeta(obj),
|
11562
11565
|
map;
|
11563
|
-
if (meta$$1) {
|
11566
|
+
if (meta$$1 !== undefined) {
|
11564
11567
|
map = meta$$1.readableWeak();
|
11565
11568
|
|
11566
11569
|
if (map !== undefined) {
|
@@ -11747,15 +11750,6 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
11747
11750
|
*/
|
11748
11751
|
|
11749
11752
|
|
11750
|
-
var onErrorTarget = {
|
11751
|
-
get onerror() {
|
11752
|
-
return dispatchError;
|
11753
|
-
},
|
11754
|
-
set onerror(handler) {
|
11755
|
-
return setOnerror(handler);
|
11756
|
-
}
|
11757
|
-
};
|
11758
|
-
|
11759
11753
|
var backburner$1 = new Backburner(['sync', 'actions', 'destroy'], {
|
11760
11754
|
GUID_KEY: emberUtils.GUID_KEY,
|
11761
11755
|
sync: {
|
@@ -11867,16 +11861,26 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
11867
11861
|
We can use that setup option to do some additional setup for our component.
|
11868
11862
|
The component itself could look something like the following:
|
11869
11863
|
|
11870
|
-
```
|
11871
|
-
|
11864
|
+
```app/components/rich-text-editor.js
|
11865
|
+
import Component from '@ember/component';
|
11866
|
+
import { bind } from '@ember/runloop';
|
11867
|
+
|
11868
|
+
export default Component.extend({
|
11872
11869
|
initializeTinyMCE: Ember.on('didInsertElement', function() {
|
11873
11870
|
tinymce.init({
|
11874
11871
|
selector: '#' + this.$().prop('id'),
|
11875
11872
|
setup: Ember.run.bind(this, this.setupEditor)
|
11876
11873
|
});
|
11877
11874
|
}),
|
11875
|
+
|
11876
|
+
didInsertElement() {
|
11877
|
+
tinymce.init({
|
11878
|
+
selector: '#' + this.$().prop('id'),
|
11879
|
+
setup: Ember.run.bind(this, this.setupEditor)
|
11880
|
+
});
|
11881
|
+
}
|
11878
11882
|
|
11879
|
-
setupEditor
|
11883
|
+
setupEditor(editor) {
|
11880
11884
|
this.set('editor', editor);
|
11881
11885
|
|
11882
11886
|
editor.on('change', function() {
|
@@ -11887,7 +11891,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
11887
11891
|
```
|
11888
11892
|
|
11889
11893
|
In this example, we use Ember.run.bind to bind the setupEditor method to the
|
11890
|
-
context of the
|
11894
|
+
context of the RichTextEditor component and to have the invocation of that
|
11891
11895
|
method be safely handled and executed by the Ember run loop.
|
11892
11896
|
|
11893
11897
|
@method bind
|
@@ -12127,9 +12131,23 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
12127
12131
|
});
|
12128
12132
|
```
|
12129
12133
|
|
12130
|
-
Also note that
|
12131
|
-
|
12132
|
-
|
12134
|
+
Also note that for `run.scheduleOnce` to prevent additional calls, you need to
|
12135
|
+
pass the same function instance. The following case works as expected:
|
12136
|
+
|
12137
|
+
```javascript
|
12138
|
+
function log() {
|
12139
|
+
console.log('Logging only once');
|
12140
|
+
}
|
12141
|
+
|
12142
|
+
function scheduleIt() {
|
12143
|
+
run.scheduleOnce('actions', myContext, log);
|
12144
|
+
}
|
12145
|
+
|
12146
|
+
scheduleIt();
|
12147
|
+
scheduleIt();
|
12148
|
+
```
|
12149
|
+
|
12150
|
+
But this other case will schedule the function multiple times:
|
12133
12151
|
|
12134
12152
|
```javascript
|
12135
12153
|
function scheduleIt() {
|
@@ -12142,7 +12160,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
12142
12160
|
scheduleIt();
|
12143
12161
|
|
12144
12162
|
// "Closure" will print twice, even though we're using `run.scheduleOnce`,
|
12145
|
-
// because the function we pass to it
|
12163
|
+
// because the function we pass to it won't match the
|
12146
12164
|
// previously scheduled operation.
|
12147
12165
|
```
|
12148
12166
|
|
@@ -12190,8 +12208,10 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
12190
12208
|
|
12191
12209
|
Example:
|
12192
12210
|
|
12193
|
-
```
|
12194
|
-
|
12211
|
+
```app/components/my-component.js
|
12212
|
+
import Component from '@ember/component';
|
12213
|
+
|
12214
|
+
export Component.extend({
|
12195
12215
|
didInsertElement() {
|
12196
12216
|
this._super(...arguments);
|
12197
12217
|
run.scheduleOnce('afterRender', this, 'processChildElements');
|
@@ -13706,16 +13726,14 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
13706
13726
|
|
13707
13727
|
if (baseValue === null || baseValue === undefined) {
|
13708
13728
|
ret = emberUtils.makeArray(value);
|
13709
|
-
} else {
|
13710
|
-
if (
|
13711
|
-
|
13712
|
-
ret = baseValue;
|
13713
|
-
} else {
|
13714
|
-
ret = a_concat.call(baseValue, value);
|
13715
|
-
}
|
13729
|
+
} else if (isArray(baseValue)) {
|
13730
|
+
if (value === null || value === undefined) {
|
13731
|
+
ret = baseValue;
|
13716
13732
|
} else {
|
13717
|
-
ret = a_concat.call(
|
13733
|
+
ret = a_concat.call(baseValue, value);
|
13718
13734
|
}
|
13735
|
+
} else {
|
13736
|
+
ret = a_concat.call(emberUtils.makeArray(baseValue), value);
|
13719
13737
|
}
|
13720
13738
|
|
13721
13739
|
{
|
@@ -13788,7 +13806,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
13788
13806
|
} else {
|
13789
13807
|
if (concats && concats.indexOf(key) >= 0 || key === 'concatenatedProperties' || key === 'mergedProperties') {
|
13790
13808
|
value = applyConcatenatedProperties(base, key, value, values);
|
13791
|
-
} else if (mergings && mergings.indexOf(key)
|
13809
|
+
} else if (mergings && mergings.indexOf(key) > -1) {
|
13792
13810
|
value = applyMergedProperties(base, key, value, values);
|
13793
13811
|
} else if (isMethod(value)) {
|
13794
13812
|
value = giveMethodSuper(base, key, value, values, descs);
|
@@ -13904,9 +13922,8 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
13904
13922
|
return { desc: desc, value: value };
|
13905
13923
|
}
|
13906
13924
|
|
13907
|
-
function updateObserversAndListeners(obj, key,
|
13908
|
-
var
|
13909
|
-
i;
|
13925
|
+
function updateObserversAndListeners(obj, key, paths, updateMethod) {
|
13926
|
+
var i;
|
13910
13927
|
|
13911
13928
|
if (paths) {
|
13912
13929
|
for (i = 0; i < paths.length; i++) {
|
@@ -13918,16 +13935,16 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
13918
13935
|
function replaceObserversAndListeners(obj, key, observerOrListener) {
|
13919
13936
|
var prev = obj[key];
|
13920
13937
|
|
13921
|
-
if ('function'
|
13922
|
-
updateObserversAndListeners(obj, key, prev
|
13923
|
-
updateObserversAndListeners(obj, key, prev
|
13924
|
-
updateObserversAndListeners(obj, key, prev
|
13938
|
+
if (typeof prev === 'function') {
|
13939
|
+
updateObserversAndListeners(obj, key, prev.__ember_observesBefore__, _removeBeforeObserver);
|
13940
|
+
updateObserversAndListeners(obj, key, prev.__ember_observes__, removeObserver);
|
13941
|
+
updateObserversAndListeners(obj, key, prev.__ember_listens__, removeListener);
|
13925
13942
|
}
|
13926
13943
|
|
13927
|
-
if ('function'
|
13928
|
-
updateObserversAndListeners(obj, key, observerOrListener
|
13929
|
-
updateObserversAndListeners(obj, key, observerOrListener
|
13930
|
-
updateObserversAndListeners(obj, key, observerOrListener
|
13944
|
+
if (typeof observerOrListener === 'function') {
|
13945
|
+
updateObserversAndListeners(obj, key, observerOrListener.__ember_observesBefore__, _addBeforeObserver);
|
13946
|
+
updateObserversAndListeners(obj, key, observerOrListener.__ember_observes__, addObserver);
|
13947
|
+
updateObserversAndListeners(obj, key, observerOrListener.__ember_listens__, addListener);
|
13931
13948
|
}
|
13932
13949
|
}
|
13933
13950
|
|
@@ -14139,7 +14156,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
14139
14156
|
Mixin.mixins = function (obj) {
|
14140
14157
|
var meta$$1 = exports.peekMeta(obj);
|
14141
14158
|
var ret = [];
|
14142
|
-
if (
|
14159
|
+
if (meta$$1 === undefined) {
|
14143
14160
|
return ret;
|
14144
14161
|
}
|
14145
14162
|
|
@@ -14248,7 +14265,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
14248
14265
|
return _detect(obj, this, {});
|
14249
14266
|
}
|
14250
14267
|
var meta$$1 = exports.peekMeta(obj);
|
14251
|
-
if (
|
14268
|
+
if (meta$$1 === undefined) {
|
14252
14269
|
return false;
|
14253
14270
|
}
|
14254
14271
|
return !!meta$$1.peekMixins(emberUtils.guidFor(this));
|
@@ -14326,15 +14343,21 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
14326
14343
|
/**
|
14327
14344
|
Makes a method available via an additional name.
|
14328
14345
|
|
14329
|
-
```
|
14330
|
-
|
14331
|
-
|
14346
|
+
```app/utils/person.js
|
14347
|
+
import EmberObject, {
|
14348
|
+
aliasMethod
|
14349
|
+
} from '@ember/object';
|
14350
|
+
|
14351
|
+
export default EmberObject.extend({
|
14352
|
+
name() {
|
14332
14353
|
return 'Tomhuda Katzdale';
|
14333
14354
|
},
|
14334
|
-
moniker:
|
14355
|
+
moniker: aliasMethod('name')
|
14335
14356
|
});
|
14357
|
+
```
|
14336
14358
|
|
14337
|
-
|
14359
|
+
```javascript
|
14360
|
+
let goodGuy = Person.create();
|
14338
14361
|
|
14339
14362
|
goodGuy.name(); // 'Tomhuda Katzdale'
|
14340
14363
|
goodGuy.moniker(); // 'Tomhuda Katzdale'
|
@@ -14646,8 +14669,16 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
14646
14669
|
exports.getOnerror = function () {
|
14647
14670
|
return onerror;
|
14648
14671
|
};
|
14649
|
-
exports.setOnerror =
|
14650
|
-
|
14672
|
+
exports.setOnerror = function (handler) {
|
14673
|
+
onerror = handler;
|
14674
|
+
};
|
14675
|
+
exports.dispatchError = function (error) {
|
14676
|
+
if (dispatchOverride) {
|
14677
|
+
dispatchOverride(error);
|
14678
|
+
} else {
|
14679
|
+
defaultDispatch(error);
|
14680
|
+
}
|
14681
|
+
};
|
14651
14682
|
exports.setDispatchOverride = function (handler) {
|
14652
14683
|
dispatchOverride = handler;
|
14653
14684
|
};
|
@@ -14674,7 +14705,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
14674
14705
|
exports.addListener = addListener;
|
14675
14706
|
exports.hasListeners = function (obj, eventName) {
|
14676
14707
|
var meta$$1 = exports.peekMeta(obj);
|
14677
|
-
if (
|
14708
|
+
if (meta$$1 === undefined) {
|
14678
14709
|
return false;
|
14679
14710
|
}
|
14680
14711
|
var matched = meta$$1.matchingListeners(eventName);
|
@@ -14690,8 +14721,16 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
14690
14721
|
_len,
|
14691
14722
|
args,
|
14692
14723
|
_key;
|
14724
|
+
var events = args;
|
14725
|
+
|
14726
|
+
true && !(typeof func === 'function') && emberDebug.assert('Ember.on expects function as last argument', typeof func === 'function');
|
14727
|
+
true && !(events.length > 0 && events.every(function (p) {
|
14728
|
+
return typeof p === 'string' && p.length;
|
14729
|
+
})) && emberDebug.assert('Ember.on called without valid event names', events.length > 0 && events.every(function (p) {
|
14730
|
+
return typeof p === 'string' && p.length;
|
14731
|
+
}));
|
14693
14732
|
|
14694
|
-
func.__ember_listens__ =
|
14733
|
+
func.__ember_listens__ = events;
|
14695
14734
|
return func;
|
14696
14735
|
};
|
14697
14736
|
exports.removeListener = removeListener;
|
@@ -14945,7 +14984,7 @@ enifed('ember-metal', ['exports', 'ember-environment', 'ember-utils', 'ember-deb
|
|
14945
14984
|
if (typeof value === 'object' && value !== null) {
|
14946
14985
|
meta$$1 = exports.peekMeta(value);
|
14947
14986
|
|
14948
|
-
return meta$$1
|
14987
|
+
return meta$$1 === undefined ? false : meta$$1.isProxy();
|
14949
14988
|
}
|
14950
14989
|
|
14951
14990
|
return false;
|
@@ -16509,17 +16548,20 @@ enifed('ember-utils', ['exports'], function (exports) {
|
|
16509
16548
|
`audioType` passed as an attribute:
|
16510
16549
|
|
16511
16550
|
```app/components/play-audio.js
|
16512
|
-
import
|
16513
|
-
|
16551
|
+
import Component from '@ember/component';
|
16552
|
+
import { computed } from '@ember/object';
|
16553
|
+
import { getOwner } from '@ember/application';
|
16554
|
+
|
16514
16555
|
// Usage:
|
16515
16556
|
//
|
16516
16557
|
// {{play-audio audioType=model.audioType audioFile=model.file}}
|
16517
16558
|
//
|
16518
|
-
export default
|
16519
|
-
audioService:
|
16520
|
-
let owner =
|
16559
|
+
export default Component.extend({
|
16560
|
+
audioService: computed('audioType', function() {
|
16561
|
+
let owner = getOwner(this);
|
16521
16562
|
return owner.lookup(`service:${this.get('audioType')}`);
|
16522
16563
|
}),
|
16564
|
+
|
16523
16565
|
click() {
|
16524
16566
|
let player = this.get('audioService');
|
16525
16567
|
player.play(this.get('audioFile'));
|
@@ -17025,7 +17067,7 @@ enifed('ember-utils', ['exports'], function (exports) {
|
|
17025
17067
|
exports.canInvoke = canInvoke;
|
17026
17068
|
exports.tryInvoke = function (obj, methodName, args) {
|
17027
17069
|
if (canInvoke(obj, methodName)) {
|
17028
|
-
return
|
17070
|
+
return applyStr(obj, methodName, args);
|
17029
17071
|
}
|
17030
17072
|
};
|
17031
17073
|
exports.makeArray = function (obj) {
|
@@ -17062,7 +17104,7 @@ enifed('ember/features', ['exports', 'ember-environment', 'ember-utils'], functi
|
|
17062
17104
|
enifed("ember/version", ["exports"], function (exports) {
|
17063
17105
|
"use strict";
|
17064
17106
|
|
17065
|
-
exports.default = "2.16.0-beta.
|
17107
|
+
exports.default = "2.16.0-beta.2";
|
17066
17108
|
});
|
17067
17109
|
enifed("handlebars", ["exports"], function (exports) {
|
17068
17110
|
"use strict";
|