ember-source 2.9.0.beta.4 → 2.9.0.beta.5
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 +329 -341
- data/dist/ember-template-compiler.js +38 -45
- data/dist/ember-testing.js +1 -1
- data/dist/ember.debug.js +449 -453
- data/dist/ember.js +449 -453
- data/dist/ember.min.js +15 -15
- data/dist/ember.prod.js +425 -442
- metadata +3 -4
- data/dist/test-template.js +0 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 24f7b5a3cd0a7ea7794bd2e33e276df9f9baf29d
|
4
|
+
data.tar.gz: 2e26ab524a5016db5414e7a46d407697c59d0229
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ef8e91d6d976a4f7b44563892d61afdaf0bd86611a06cc6ff2da443c0ce0c9efb31d7e34c5da7e648af2323f355a03c525a6c14ec9ea2d03d10a9b548e3bc95e
|
7
|
+
data.tar.gz: 3502263b7b8e722ed879f152adcb1bbfda1aac7f0f8f19fa342b175e683cfb000f7971e4898b3a57f486e96a6ae576697f719659deb059c7515204cf553b8bad
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.9.0-beta.
|
1
|
+
2.9.0-beta.5
|
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.0-beta.
|
9
|
+
* @version 2.9.0-beta.5
|
10
10
|
*/
|
11
11
|
|
12
12
|
var enifed, requireModule, require, Ember;
|
@@ -9726,19 +9726,12 @@ enifed('ember-metal/set_properties', ['exports', 'ember-metal/property_events',
|
|
9726
9726
|
return properties;
|
9727
9727
|
}
|
9728
9728
|
});
|
9729
|
-
enifed('ember-metal/tags', ['exports', 'ember-metal/meta', 'require'], function (exports, _emberMetalMeta,
|
9729
|
+
enifed('ember-metal/tags', ['exports', 'glimmer-reference', 'ember-metal/meta', 'require'], function (exports, _glimmerReference, _emberMetalMeta, _require) {
|
9730
9730
|
'use strict';
|
9731
9731
|
|
9732
9732
|
exports.setHasViews = setHasViews;
|
9733
9733
|
exports.tagFor = tagFor;
|
9734
|
-
|
9735
|
-
var hasGlimmer = _require2.has('glimmer-reference');
|
9736
|
-
|
9737
|
-
var CONSTANT_TAG = undefined,
|
9738
|
-
CURRENT_TAG = undefined,
|
9739
|
-
DirtyableTag = undefined,
|
9740
|
-
makeTag = undefined,
|
9741
|
-
run = undefined;
|
9734
|
+
exports.markObjectAsDirty = markObjectAsDirty;
|
9742
9735
|
|
9743
9736
|
var hasViews = function () {
|
9744
9737
|
return false;
|
@@ -9748,56 +9741,41 @@ enifed('ember-metal/tags', ['exports', 'ember-metal/meta', 'require'], function
|
|
9748
9741
|
hasViews = fn;
|
9749
9742
|
}
|
9750
9743
|
|
9751
|
-
|
9752
|
-
|
9753
|
-
|
9744
|
+
function makeTag() {
|
9745
|
+
return new _glimmerReference.DirtyableTag();
|
9746
|
+
}
|
9754
9747
|
|
9755
9748
|
function tagFor(object, _meta) {
|
9756
|
-
if (!hasGlimmer) {
|
9757
|
-
throw new Error('Cannot call tagFor without Glimmer');
|
9758
|
-
}
|
9759
|
-
|
9760
9749
|
if (typeof object === 'object' && object) {
|
9761
9750
|
var meta = _meta || _emberMetalMeta.meta(object);
|
9762
9751
|
return meta.writableTag(makeTag);
|
9763
9752
|
} else {
|
9764
|
-
return CONSTANT_TAG;
|
9753
|
+
return _glimmerReference.CONSTANT_TAG;
|
9765
9754
|
}
|
9766
9755
|
}
|
9767
9756
|
|
9757
|
+
function markObjectAsDirty(meta) {
|
9758
|
+
var tag = meta && meta.readableTag();
|
9759
|
+
|
9760
|
+
if (tag) {
|
9761
|
+
ensureRunloop();
|
9762
|
+
tag.dirty();
|
9763
|
+
}
|
9764
|
+
}
|
9765
|
+
|
9766
|
+
var run = undefined;
|
9767
|
+
|
9768
9768
|
function K() {}
|
9769
|
+
|
9769
9770
|
function ensureRunloop() {
|
9770
9771
|
if (!run) {
|
9771
|
-
run =
|
9772
|
+
run = _require.default('ember-metal/run_loop').default;
|
9772
9773
|
}
|
9773
9774
|
|
9774
9775
|
if (hasViews() && !run.backburner.currentInstance) {
|
9775
9776
|
run.schedule('actions', K);
|
9776
9777
|
}
|
9777
9778
|
}
|
9778
|
-
|
9779
|
-
if (hasGlimmer) {
|
9780
|
-
var _require = _require2.default('glimmer-reference');
|
9781
|
-
|
9782
|
-
DirtyableTag = _require.DirtyableTag;
|
9783
|
-
CONSTANT_TAG = _require.CONSTANT_TAG;
|
9784
|
-
CURRENT_TAG = _require.CURRENT_TAG;
|
9785
|
-
|
9786
|
-
makeTag = function () {
|
9787
|
-
return new DirtyableTag();
|
9788
|
-
};
|
9789
|
-
|
9790
|
-
exports.markObjectAsDirty = markObjectAsDirty = function (meta) {
|
9791
|
-
var tag = meta && meta.readableTag();
|
9792
|
-
|
9793
|
-
if (tag) {
|
9794
|
-
ensureRunloop();
|
9795
|
-
tag.dirty();
|
9796
|
-
}
|
9797
|
-
};
|
9798
|
-
} else {
|
9799
|
-
exports.markObjectAsDirty = markObjectAsDirty = function () {};
|
9800
|
-
}
|
9801
9779
|
});
|
9802
9780
|
enifed("ember-metal/testing", ["exports"], function (exports) {
|
9803
9781
|
"use strict";
|
@@ -9887,7 +9865,7 @@ enifed('ember-metal/transaction', ['exports', 'ember-metal/meta', 'ember-metal/d
|
|
9887
9865
|
label = 'the same value';
|
9888
9866
|
}
|
9889
9867
|
|
9890
|
-
return 'You modified ' + parts.join('.') + ' twice in a single render. This was unreliable and slow in Ember 1.x and ' + implication;
|
9868
|
+
return 'You modified ' + parts.join('.') + ' twice on ' + object + ' in a single render. This was unreliable and slow in Ember 1.x and ' + implication;
|
9891
9869
|
})(), false);
|
9892
9870
|
|
9893
9871
|
shouldReflush = true;
|
@@ -12457,6 +12435,7 @@ enifed('ember-runtime/index', ['exports', 'ember-runtime/ext/string', 'ember-run
|
|
12457
12435
|
'use strict';
|
12458
12436
|
|
12459
12437
|
exports.Object = _emberRuntimeSystemObject.default;
|
12438
|
+
exports.FrameworkObject = _emberRuntimeSystemObject.FrameworkObject;
|
12460
12439
|
exports.String = _emberRuntimeSystemString.default;
|
12461
12440
|
exports.RegistryProxyMixin = _emberRuntimeMixinsRegistry_proxy.default;
|
12462
12441
|
exports.buildFakeRegistryWithDeprecations = _emberRuntimeMixinsRegistry_proxy.buildFakeRegistryWithDeprecations;
|
@@ -12477,7 +12456,6 @@ enifed('ember-runtime/index', ['exports', 'ember-runtime/ext/string', 'ember-run
|
|
12477
12456
|
exports.ArrayProxy = _emberRuntimeSystemArray_proxy.default;
|
12478
12457
|
exports.ObjectProxy = _emberRuntimeSystemObject_proxy.default;
|
12479
12458
|
exports.CoreObject = _emberRuntimeSystemCore_object.default;
|
12480
|
-
exports.POST_INIT = _emberRuntimeSystemCore_object.POST_INIT;
|
12481
12459
|
exports.NativeArray = _emberRuntimeSystemNative_array.default;
|
12482
12460
|
exports.A = _emberRuntimeSystemNative_array.A;
|
12483
12461
|
exports.ActionHandler = _emberRuntimeMixinsAction_handler.default;
|
@@ -12675,7 +12653,7 @@ enifed('ember-runtime/is-equal', ['exports'], function (exports) {
|
|
12675
12653
|
return a === b;
|
12676
12654
|
}
|
12677
12655
|
});
|
12678
|
-
enifed('ember-runtime/mixins/-proxy', ['exports', '
|
12656
|
+
enifed('ember-runtime/mixins/-proxy', ['exports', 'glimmer-reference', 'ember-utils', 'ember-metal', 'ember-runtime/computed/computed_macros'], function (exports, _glimmerReference, _emberUtils, _emberMetal, _emberRuntimeComputedComputed_macros) {
|
12679
12657
|
/**
|
12680
12658
|
@module ember
|
12681
12659
|
@submodule ember-runtime
|
@@ -12683,12 +12661,10 @@ enifed('ember-runtime/mixins/-proxy', ['exports', 'ember-utils', 'ember-metal',
|
|
12683
12661
|
|
12684
12662
|
'use strict';
|
12685
12663
|
|
12686
|
-
var
|
12664
|
+
var _Mixin$create;
|
12687
12665
|
|
12688
12666
|
exports.isProxy = isProxy;
|
12689
12667
|
|
12690
|
-
var hasGlimmer = _require2.has('glimmer-reference');
|
12691
|
-
|
12692
12668
|
var IS_PROXY = _emberUtils.symbol('IS_PROXY');
|
12693
12669
|
|
12694
12670
|
function isProxy(value) {
|
@@ -12711,31 +12687,64 @@ enifed('ember-runtime/mixins/-proxy', ['exports', 'ember-utils', 'ember-metal',
|
|
12711
12687
|
_emberMetal.propertyDidChange(this, key);
|
12712
12688
|
}
|
12713
12689
|
|
12714
|
-
|
12715
|
-
|
12716
|
-
|
12717
|
-
|
12718
|
-
|
12719
|
-
|
12720
|
-
|
12721
|
-
|
12722
|
-
|
12690
|
+
var ProxyTag = (function (_CachedTag) {
|
12691
|
+
babelHelpers.inherits(ProxyTag, _CachedTag);
|
12692
|
+
|
12693
|
+
function ProxyTag(proxy) {
|
12694
|
+
_CachedTag.call(this);
|
12695
|
+
|
12696
|
+
var content = _emberMetal.get(proxy, 'content');
|
12697
|
+
|
12698
|
+
this.proxy = proxy;
|
12699
|
+
this.proxyWrapperTag = new _glimmerReference.DirtyableTag();
|
12700
|
+
this.proxyContentTag = new _glimmerReference.UpdatableTag(_emberMetal.tagFor(content));
|
12701
|
+
}
|
12702
|
+
|
12703
|
+
/**
|
12704
|
+
`Ember.ProxyMixin` forwards all properties not defined by the proxy itself
|
12705
|
+
to a proxied `content` object. See Ember.ObjectProxy for more details.
|
12706
|
+
|
12707
|
+
@class ProxyMixin
|
12708
|
+
@namespace Ember
|
12709
|
+
@private
|
12710
|
+
*/
|
12711
|
+
|
12712
|
+
ProxyTag.prototype.compute = function compute() {
|
12713
|
+
return Math.max(this.proxyWrapperTag.value(), this.proxyContentTag.value());
|
12714
|
+
};
|
12715
|
+
|
12716
|
+
ProxyTag.prototype.dirty = function dirty() {
|
12717
|
+
this.proxyWrapperTag.dirty();
|
12718
|
+
};
|
12719
|
+
|
12720
|
+
ProxyTag.prototype.contentDidChange = function contentDidChange() {
|
12721
|
+
var content = _emberMetal.get(this.proxy, 'content');
|
12722
|
+
this.proxyContentTag.update(_emberMetal.tagFor(content));
|
12723
|
+
};
|
12724
|
+
|
12725
|
+
return ProxyTag;
|
12726
|
+
})(_glimmerReference.CachedTag);
|
12727
|
+
|
12728
|
+
exports.default = _emberMetal.Mixin.create((_Mixin$create = {}, _Mixin$create[IS_PROXY] = true, _Mixin$create.content = null, _Mixin$create._initializeTag = _emberMetal.on('init', function () {
|
12729
|
+
_emberMetal.meta(this)._tag = new ProxyTag(this);
|
12730
|
+
}), _Mixin$create._contentDidChange = _emberMetal.observer('content', function () {
|
12723
12731
|
_emberMetal.assert('Can\'t set Proxy\'s content to itself', _emberMetal.get(this, 'content') !== this);
|
12724
|
-
|
12732
|
+
_emberMetal.tagFor(this).contentDidChange();
|
12733
|
+
}), _Mixin$create.isTruthy = _emberRuntimeComputedComputed_macros.bool('content'), _Mixin$create._debugContainerKey = null, _Mixin$create.willWatchProperty = function (key) {
|
12725
12734
|
var contentKey = 'content.' + key;
|
12726
12735
|
_emberMetal._addBeforeObserver(this, contentKey, null, contentPropertyWillChange);
|
12727
12736
|
_emberMetal.addObserver(this, contentKey, null, contentPropertyDidChange);
|
12728
|
-
},
|
12737
|
+
}, _Mixin$create.didUnwatchProperty = function (key) {
|
12729
12738
|
var contentKey = 'content.' + key;
|
12730
12739
|
_emberMetal._removeBeforeObserver(this, contentKey, null, contentPropertyWillChange);
|
12731
12740
|
_emberMetal.removeObserver(this, contentKey, null, contentPropertyDidChange);
|
12732
|
-
},
|
12741
|
+
}, _Mixin$create.unknownProperty = function (key) {
|
12733
12742
|
var content = _emberMetal.get(this, 'content');
|
12734
12743
|
if (content) {
|
12735
12744
|
_emberMetal.deprecate('You attempted to access `' + key + '` from `' + this + '`, but object proxying is deprecated. Please use `model.' + key + '` instead.', !this.isController, { id: 'ember-runtime.controller-proxy', until: '3.0.0' });
|
12736
12745
|
return _emberMetal.get(content, key);
|
12737
12746
|
}
|
12738
|
-
},
|
12747
|
+
}, _Mixin$create.setUnknownProperty = function (key, value) {
|
12739
12748
|
var m = _emberMetal.meta(this);
|
12740
12749
|
if (m.proto === this) {
|
12741
12750
|
// if marked as prototype then just defineProperty
|
@@ -12749,53 +12758,7 @@ enifed('ember-runtime/mixins/-proxy', ['exports', 'ember-utils', 'ember-metal',
|
|
12749
12758
|
|
12750
12759
|
_emberMetal.deprecate('You attempted to set `' + key + '` from `' + this + '`, but object proxying is deprecated. Please use `model.' + key + '` instead.', !this.isController, { id: 'ember-runtime.controller-proxy', until: '3.0.0' });
|
12751
12760
|
return _emberMetal.set(content, key, value);
|
12752
|
-
},
|
12753
|
-
|
12754
|
-
if (hasGlimmer) {
|
12755
|
-
(function () {
|
12756
|
-
var _require = _require2.default('glimmer-reference');
|
12757
|
-
|
12758
|
-
var CachedTag = _require.CachedTag;
|
12759
|
-
var DirtyableTag = _require.DirtyableTag;
|
12760
|
-
var UpdatableTag = _require.UpdatableTag;
|
12761
|
-
|
12762
|
-
var ProxyTag = (function (_CachedTag) {
|
12763
|
-
babelHelpers.inherits(ProxyTag, _CachedTag);
|
12764
|
-
|
12765
|
-
function ProxyTag(proxy, content) {
|
12766
|
-
_CachedTag.call(this);
|
12767
|
-
this.proxyWrapperTag = new DirtyableTag();
|
12768
|
-
this.proxyContentTag = new UpdatableTag(_emberMetal.tagFor(content));
|
12769
|
-
}
|
12770
|
-
|
12771
|
-
ProxyTag.prototype.compute = function compute() {
|
12772
|
-
return Math.max(this.proxyWrapperTag.value(), this.proxyContentTag.value());
|
12773
|
-
};
|
12774
|
-
|
12775
|
-
ProxyTag.prototype.dirty = function dirty() {
|
12776
|
-
this.proxyWrapperTag.dirty();
|
12777
|
-
};
|
12778
|
-
|
12779
|
-
ProxyTag.prototype.contentDidChange = function contentDidChange(content) {
|
12780
|
-
this.proxyContentTag.update(_emberMetal.tagFor(content));
|
12781
|
-
};
|
12782
|
-
|
12783
|
-
return ProxyTag;
|
12784
|
-
})(CachedTag);
|
12785
|
-
|
12786
|
-
PROXY_MIXIN_PROPS[_emberRuntimeSystemCore_object.POST_INIT] = function postInit() {
|
12787
|
-
this._super();
|
12788
|
-
_emberMetal.meta(this)._tag = new ProxyTag(this, _emberMetal.get(this, 'content'));
|
12789
|
-
};
|
12790
|
-
|
12791
|
-
PROXY_MIXIN_PROPS._contentDidChange = _emberMetal.observer('content', function () {
|
12792
|
-
_emberMetal.assert('Can\'t set Proxy\'s content to itself', _emberMetal.get(this, 'content') !== this);
|
12793
|
-
_emberMetal.meta(this)._tag.contentDidChange(_emberMetal.get(this, 'content'));
|
12794
|
-
});
|
12795
|
-
})();
|
12796
|
-
}
|
12797
|
-
|
12798
|
-
exports.default = _emberMetal.Mixin.create(PROXY_MIXIN_PROPS);
|
12761
|
+
}, _Mixin$create));
|
12799
12762
|
});
|
12800
12763
|
|
12801
12764
|
/**
|
@@ -17124,10 +17087,6 @@ enifed('ember-runtime/system/core_object', ['exports', 'ember-utils', 'ember-met
|
|
17124
17087
|
// using ember-metal/lib/main here to ensure that ember-debug is setup
|
17125
17088
|
// if present
|
17126
17089
|
|
17127
|
-
var _Mixin$create;
|
17128
|
-
|
17129
|
-
var POST_INIT = _emberUtils.symbol('POST_INIT');
|
17130
|
-
exports.POST_INIT = POST_INIT;
|
17131
17090
|
var schedule = _emberMetal.run.schedule;
|
17132
17091
|
var applyMixin = _emberMetal.Mixin._apply;
|
17133
17092
|
var finishPartial = _emberMetal.Mixin.finishPartial;
|
@@ -17234,8 +17193,6 @@ enifed('ember-runtime/system/core_object', ['exports', 'ember-utils', 'ember-met
|
|
17234
17193
|
|
17235
17194
|
this.init.apply(this, arguments);
|
17236
17195
|
|
17237
|
-
this[POST_INIT]();
|
17238
|
-
|
17239
17196
|
m.proto = proto;
|
17240
17197
|
_emberMetal.finishChains(this);
|
17241
17198
|
_emberMetal.sendEvent(this, 'init');
|
@@ -17280,7 +17237,7 @@ enifed('ember-runtime/system/core_object', ['exports', 'ember-utils', 'ember-met
|
|
17280
17237
|
CoreObject.toString = function () {
|
17281
17238
|
return 'Ember.CoreObject';
|
17282
17239
|
};
|
17283
|
-
CoreObject.PrototypeMixin = _emberMetal.Mixin.create(
|
17240
|
+
CoreObject.PrototypeMixin = _emberMetal.Mixin.create({
|
17284
17241
|
reopen: function () {
|
17285
17242
|
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
|
17286
17243
|
args[_key] = arguments[_key];
|
@@ -17313,39 +17270,244 @@ enifed('ember-runtime/system/core_object', ['exports', 'ember-utils', 'ember-met
|
|
17313
17270
|
@method init
|
17314
17271
|
@public
|
17315
17272
|
*/
|
17316
|
-
init: function () {}
|
17273
|
+
init: function () {},
|
17317
17274
|
|
17318
|
-
|
17319
|
-
|
17320
|
-
|
17321
|
-
|
17322
|
-
if (this.isDestroying) {
|
17323
|
-
return;
|
17324
|
-
}
|
17325
|
-
this.isDestroying = true;
|
17275
|
+
__defineNonEnumerable: function (property) {
|
17276
|
+
Object.defineProperty(this, property.name, property.descriptor);
|
17277
|
+
//this[property.name] = property.descriptor.value;
|
17278
|
+
},
|
17326
17279
|
|
17327
|
-
|
17328
|
-
|
17329
|
-
|
17330
|
-
|
17331
|
-
|
17332
|
-
|
17333
|
-
|
17334
|
-
|
17335
|
-
|
17336
|
-
|
17337
|
-
|
17338
|
-
|
17339
|
-
|
17340
|
-
|
17341
|
-
|
17342
|
-
|
17343
|
-
|
17344
|
-
|
17345
|
-
|
17280
|
+
/**
|
17281
|
+
Defines the properties that will be concatenated from the superclass
|
17282
|
+
(instead of overridden).
|
17283
|
+
By default, when you extend an Ember class a property defined in
|
17284
|
+
the subclass overrides a property with the same name that is defined
|
17285
|
+
in the superclass. However, there are some cases where it is preferable
|
17286
|
+
to build up a property's value by combining the superclass' property
|
17287
|
+
value with the subclass' value. An example of this in use within Ember
|
17288
|
+
is the `classNames` property of `Ember.View`.
|
17289
|
+
Here is some sample code showing the difference between a concatenated
|
17290
|
+
property and a normal one:
|
17291
|
+
```javascript
|
17292
|
+
const Bar = Ember.Object.extend({
|
17293
|
+
// Configure which properties to concatenate
|
17294
|
+
concatenatedProperties: ['concatenatedProperty'],
|
17295
|
+
someNonConcatenatedProperty: ['bar'],
|
17296
|
+
concatenatedProperty: ['bar']
|
17297
|
+
});
|
17298
|
+
const FooBar = Bar.extend({
|
17299
|
+
someNonConcatenatedProperty: ['foo'],
|
17300
|
+
concatenatedProperty: ['foo']
|
17301
|
+
});
|
17302
|
+
let fooBar = FooBar.create();
|
17303
|
+
fooBar.get('someNonConcatenatedProperty'); // ['foo']
|
17304
|
+
fooBar.get('concatenatedProperty'); // ['bar', 'foo']
|
17305
|
+
```
|
17306
|
+
This behavior extends to object creation as well. Continuing the
|
17307
|
+
above example:
|
17308
|
+
```javascript
|
17309
|
+
let fooBar = FooBar.create({
|
17310
|
+
someNonConcatenatedProperty: ['baz'],
|
17311
|
+
concatenatedProperty: ['baz']
|
17312
|
+
})
|
17313
|
+
fooBar.get('someNonConcatenatedProperty'); // ['baz']
|
17314
|
+
fooBar.get('concatenatedProperty'); // ['bar', 'foo', 'baz']
|
17315
|
+
```
|
17316
|
+
Adding a single property that is not an array will just add it in the array:
|
17317
|
+
```javascript
|
17318
|
+
let fooBar = FooBar.create({
|
17319
|
+
concatenatedProperty: 'baz'
|
17320
|
+
})
|
17321
|
+
view.get('concatenatedProperty'); // ['bar', 'foo', 'baz']
|
17322
|
+
```
|
17323
|
+
Using the `concatenatedProperties` property, we can tell Ember to mix the
|
17324
|
+
content of the properties.
|
17325
|
+
In `Ember.Component` the `classNames`, `classNameBindings` and
|
17326
|
+
`attributeBindings` properties are concatenated.
|
17327
|
+
This feature is available for you to use throughout the Ember object model,
|
17328
|
+
although typical app developers are likely to use it infrequently. Since
|
17329
|
+
it changes expectations about behavior of properties, you should properly
|
17330
|
+
document its usage in each individual concatenated property (to not
|
17331
|
+
mislead your users to think they can override the property in a subclass).
|
17332
|
+
@property concatenatedProperties
|
17333
|
+
@type Array
|
17334
|
+
@default null
|
17335
|
+
@public
|
17336
|
+
*/
|
17337
|
+
concatenatedProperties: null,
|
17346
17338
|
|
17347
|
-
|
17348
|
-
|
17339
|
+
/**
|
17340
|
+
Defines the properties that will be merged from the superclass
|
17341
|
+
(instead of overridden).
|
17342
|
+
By default, when you extend an Ember class a property defined in
|
17343
|
+
the subclass overrides a property with the same name that is defined
|
17344
|
+
in the superclass. However, there are some cases where it is preferable
|
17345
|
+
to build up a property's value by merging the superclass property value
|
17346
|
+
with the subclass property's value. An example of this in use within Ember
|
17347
|
+
is the `queryParams` property of routes.
|
17348
|
+
Here is some sample code showing the difference between a merged
|
17349
|
+
property and a normal one:
|
17350
|
+
```javascript
|
17351
|
+
const Bar = Ember.Object.extend({
|
17352
|
+
// Configure which properties are to be merged
|
17353
|
+
mergedProperties: ['mergedProperty'],
|
17354
|
+
someNonMergedProperty: {
|
17355
|
+
nonMerged: 'superclass value of nonMerged'
|
17356
|
+
},
|
17357
|
+
mergedProperty: {
|
17358
|
+
page: {replace: false},
|
17359
|
+
limit: {replace: true}
|
17360
|
+
}
|
17361
|
+
});
|
17362
|
+
const FooBar = Bar.extend({
|
17363
|
+
someNonMergedProperty: {
|
17364
|
+
completelyNonMerged: 'subclass value of nonMerged'
|
17365
|
+
},
|
17366
|
+
mergedProperty: {
|
17367
|
+
limit: {replace: false}
|
17368
|
+
}
|
17369
|
+
});
|
17370
|
+
let fooBar = FooBar.create();
|
17371
|
+
fooBar.get('someNonMergedProperty');
|
17372
|
+
// => { completelyNonMerged: 'subclass value of nonMerged' }
|
17373
|
+
//
|
17374
|
+
// Note the entire object, including the nonMerged property of
|
17375
|
+
// the superclass object, has been replaced
|
17376
|
+
fooBar.get('mergedProperty');
|
17377
|
+
// => {
|
17378
|
+
// page: {replace: false},
|
17379
|
+
// limit: {replace: false}
|
17380
|
+
// }
|
17381
|
+
//
|
17382
|
+
// Note the page remains from the superclass, and the
|
17383
|
+
// `limit` property's value of `false` has been merged from
|
17384
|
+
// the subclass.
|
17385
|
+
```
|
17386
|
+
This behavior is not available during object `create` calls. It is only
|
17387
|
+
available at `extend` time.
|
17388
|
+
In `Ember.Route` the `queryParams` property is merged.
|
17389
|
+
This feature is available for you to use throughout the Ember object model,
|
17390
|
+
although typical app developers are likely to use it infrequently. Since
|
17391
|
+
it changes expectations about behavior of properties, you should properly
|
17392
|
+
document its usage in each individual merged property (to not
|
17393
|
+
mislead your users to think they can override the property in a subclass).
|
17394
|
+
@property mergedProperties
|
17395
|
+
@type Array
|
17396
|
+
@default null
|
17397
|
+
@public
|
17398
|
+
*/
|
17399
|
+
mergedProperties: null,
|
17400
|
+
|
17401
|
+
/**
|
17402
|
+
Destroyed object property flag.
|
17403
|
+
if this property is `true` the observers and bindings were already
|
17404
|
+
removed by the effect of calling the `destroy()` method.
|
17405
|
+
@property isDestroyed
|
17406
|
+
@default false
|
17407
|
+
@public
|
17408
|
+
*/
|
17409
|
+
isDestroyed: false,
|
17410
|
+
|
17411
|
+
/**
|
17412
|
+
Destruction scheduled flag. The `destroy()` method has been called.
|
17413
|
+
The object stays intact until the end of the run loop at which point
|
17414
|
+
the `isDestroyed` flag is set.
|
17415
|
+
@property isDestroying
|
17416
|
+
@default false
|
17417
|
+
@public
|
17418
|
+
*/
|
17419
|
+
isDestroying: false,
|
17420
|
+
|
17421
|
+
/**
|
17422
|
+
Destroys an object by setting the `isDestroyed` flag and removing its
|
17423
|
+
metadata, which effectively destroys observers and bindings.
|
17424
|
+
If you try to set a property on a destroyed object, an exception will be
|
17425
|
+
raised.
|
17426
|
+
Note that destruction is scheduled for the end of the run loop and does not
|
17427
|
+
happen immediately. It will set an isDestroying flag immediately.
|
17428
|
+
@method destroy
|
17429
|
+
@return {Ember.Object} receiver
|
17430
|
+
@public
|
17431
|
+
*/
|
17432
|
+
destroy: function () {
|
17433
|
+
if (this.isDestroying) {
|
17434
|
+
return;
|
17435
|
+
}
|
17436
|
+
this.isDestroying = true;
|
17437
|
+
|
17438
|
+
schedule('actions', this, this.willDestroy);
|
17439
|
+
schedule('destroy', this, this._scheduledDestroy);
|
17440
|
+
return this;
|
17441
|
+
},
|
17442
|
+
|
17443
|
+
/**
|
17444
|
+
Override to implement teardown.
|
17445
|
+
@method willDestroy
|
17446
|
+
@public
|
17447
|
+
*/
|
17448
|
+
willDestroy: function () {},
|
17449
|
+
|
17450
|
+
/**
|
17451
|
+
Invoked by the run loop to actually destroy the object. This is
|
17452
|
+
scheduled for execution by the `destroy` method.
|
17453
|
+
@private
|
17454
|
+
@method _scheduledDestroy
|
17455
|
+
*/
|
17456
|
+
_scheduledDestroy: function () {
|
17457
|
+
if (this.isDestroyed) {
|
17458
|
+
return;
|
17459
|
+
}
|
17460
|
+
_emberMetal.destroy(this);
|
17461
|
+
this.isDestroyed = true;
|
17462
|
+
},
|
17463
|
+
|
17464
|
+
bind: function (to, from) {
|
17465
|
+
if (!(from instanceof _emberMetal.Binding)) {
|
17466
|
+
from = _emberMetal.Binding.from(from);
|
17467
|
+
}
|
17468
|
+
from.to(to).connect(this);
|
17469
|
+
return from;
|
17470
|
+
},
|
17471
|
+
|
17472
|
+
/**
|
17473
|
+
Returns a string representation which attempts to provide more information
|
17474
|
+
than Javascript's `toString` typically does, in a generic way for all Ember
|
17475
|
+
objects.
|
17476
|
+
```javascript
|
17477
|
+
const Person = Ember.Object.extend()
|
17478
|
+
person = Person.create()
|
17479
|
+
person.toString() //=> "<Person:ember1024>"
|
17480
|
+
```
|
17481
|
+
If the object's class is not defined on an Ember namespace, it will
|
17482
|
+
indicate it is a subclass of the registered superclass:
|
17483
|
+
```javascript
|
17484
|
+
const Student = Person.extend()
|
17485
|
+
let student = Student.create()
|
17486
|
+
student.toString() //=> "<(subclass of Person):ember1025>"
|
17487
|
+
```
|
17488
|
+
If the method `toStringExtension` is defined, its return value will be
|
17489
|
+
included in the output.
|
17490
|
+
```javascript
|
17491
|
+
const Teacher = Person.extend({
|
17492
|
+
toStringExtension() {
|
17493
|
+
return this.get('fullName');
|
17494
|
+
}
|
17495
|
+
});
|
17496
|
+
teacher = Teacher.create()
|
17497
|
+
teacher.toString(); //=> "<Teacher:ember1026:Tom Dale>"
|
17498
|
+
```
|
17499
|
+
@method toString
|
17500
|
+
@return {String} string representation
|
17501
|
+
@public
|
17502
|
+
*/
|
17503
|
+
toString: function () {
|
17504
|
+
var hasToStringExtension = typeof this.toStringExtension === 'function';
|
17505
|
+
var extension = hasToStringExtension ? ':' + this.toStringExtension() : '';
|
17506
|
+
var ret = '<' + this.constructor.toString() + ':' + _emberUtils.guidFor(this) + extension + '>';
|
17507
|
+
|
17508
|
+
return ret;
|
17509
|
+
}
|
17510
|
+
});
|
17349
17511
|
|
17350
17512
|
CoreObject.PrototypeMixin.ownerConstructor = CoreObject;
|
17351
17513
|
|
@@ -17726,200 +17888,6 @@ enifed('ember-runtime/system/core_object', ['exports', 'ember-utils', 'ember-met
|
|
17726
17888
|
|
17727
17889
|
exports.default = CoreObject;
|
17728
17890
|
});
|
17729
|
-
|
17730
|
-
/**
|
17731
|
-
Defines the properties that will be concatenated from the superclass
|
17732
|
-
(instead of overridden).
|
17733
|
-
By default, when you extend an Ember class a property defined in
|
17734
|
-
the subclass overrides a property with the same name that is defined
|
17735
|
-
in the superclass. However, there are some cases where it is preferable
|
17736
|
-
to build up a property's value by combining the superclass' property
|
17737
|
-
value with the subclass' value. An example of this in use within Ember
|
17738
|
-
is the `classNames` property of `Ember.View`.
|
17739
|
-
Here is some sample code showing the difference between a concatenated
|
17740
|
-
property and a normal one:
|
17741
|
-
```javascript
|
17742
|
-
const Bar = Ember.Object.extend({
|
17743
|
-
// Configure which properties to concatenate
|
17744
|
-
concatenatedProperties: ['concatenatedProperty'],
|
17745
|
-
someNonConcatenatedProperty: ['bar'],
|
17746
|
-
concatenatedProperty: ['bar']
|
17747
|
-
});
|
17748
|
-
const FooBar = Bar.extend({
|
17749
|
-
someNonConcatenatedProperty: ['foo'],
|
17750
|
-
concatenatedProperty: ['foo']
|
17751
|
-
});
|
17752
|
-
let fooBar = FooBar.create();
|
17753
|
-
fooBar.get('someNonConcatenatedProperty'); // ['foo']
|
17754
|
-
fooBar.get('concatenatedProperty'); // ['bar', 'foo']
|
17755
|
-
```
|
17756
|
-
This behavior extends to object creation as well. Continuing the
|
17757
|
-
above example:
|
17758
|
-
```javascript
|
17759
|
-
let fooBar = FooBar.create({
|
17760
|
-
someNonConcatenatedProperty: ['baz'],
|
17761
|
-
concatenatedProperty: ['baz']
|
17762
|
-
})
|
17763
|
-
fooBar.get('someNonConcatenatedProperty'); // ['baz']
|
17764
|
-
fooBar.get('concatenatedProperty'); // ['bar', 'foo', 'baz']
|
17765
|
-
```
|
17766
|
-
Adding a single property that is not an array will just add it in the array:
|
17767
|
-
```javascript
|
17768
|
-
let fooBar = FooBar.create({
|
17769
|
-
concatenatedProperty: 'baz'
|
17770
|
-
})
|
17771
|
-
view.get('concatenatedProperty'); // ['bar', 'foo', 'baz']
|
17772
|
-
```
|
17773
|
-
Using the `concatenatedProperties` property, we can tell Ember to mix the
|
17774
|
-
content of the properties.
|
17775
|
-
In `Ember.Component` the `classNames`, `classNameBindings` and
|
17776
|
-
`attributeBindings` properties are concatenated.
|
17777
|
-
This feature is available for you to use throughout the Ember object model,
|
17778
|
-
although typical app developers are likely to use it infrequently. Since
|
17779
|
-
it changes expectations about behavior of properties, you should properly
|
17780
|
-
document its usage in each individual concatenated property (to not
|
17781
|
-
mislead your users to think they can override the property in a subclass).
|
17782
|
-
@property concatenatedProperties
|
17783
|
-
@type Array
|
17784
|
-
@default null
|
17785
|
-
@public
|
17786
|
-
*/
|
17787
|
-
|
17788
|
-
/**
|
17789
|
-
Defines the properties that will be merged from the superclass
|
17790
|
-
(instead of overridden).
|
17791
|
-
By default, when you extend an Ember class a property defined in
|
17792
|
-
the subclass overrides a property with the same name that is defined
|
17793
|
-
in the superclass. However, there are some cases where it is preferable
|
17794
|
-
to build up a property's value by merging the superclass property value
|
17795
|
-
with the subclass property's value. An example of this in use within Ember
|
17796
|
-
is the `queryParams` property of routes.
|
17797
|
-
Here is some sample code showing the difference between a merged
|
17798
|
-
property and a normal one:
|
17799
|
-
```javascript
|
17800
|
-
const Bar = Ember.Object.extend({
|
17801
|
-
// Configure which properties are to be merged
|
17802
|
-
mergedProperties: ['mergedProperty'],
|
17803
|
-
someNonMergedProperty: {
|
17804
|
-
nonMerged: 'superclass value of nonMerged'
|
17805
|
-
},
|
17806
|
-
mergedProperty: {
|
17807
|
-
page: {replace: false},
|
17808
|
-
limit: {replace: true}
|
17809
|
-
}
|
17810
|
-
});
|
17811
|
-
const FooBar = Bar.extend({
|
17812
|
-
someNonMergedProperty: {
|
17813
|
-
completelyNonMerged: 'subclass value of nonMerged'
|
17814
|
-
},
|
17815
|
-
mergedProperty: {
|
17816
|
-
limit: {replace: false}
|
17817
|
-
}
|
17818
|
-
});
|
17819
|
-
let fooBar = FooBar.create();
|
17820
|
-
fooBar.get('someNonMergedProperty');
|
17821
|
-
// => { completelyNonMerged: 'subclass value of nonMerged' }
|
17822
|
-
//
|
17823
|
-
// Note the entire object, including the nonMerged property of
|
17824
|
-
// the superclass object, has been replaced
|
17825
|
-
fooBar.get('mergedProperty');
|
17826
|
-
// => {
|
17827
|
-
// page: {replace: false},
|
17828
|
-
// limit: {replace: false}
|
17829
|
-
// }
|
17830
|
-
//
|
17831
|
-
// Note the page remains from the superclass, and the
|
17832
|
-
// `limit` property's value of `false` has been merged from
|
17833
|
-
// the subclass.
|
17834
|
-
```
|
17835
|
-
This behavior is not available during object `create` calls. It is only
|
17836
|
-
available at `extend` time.
|
17837
|
-
In `Ember.Route` the `queryParams` property is merged.
|
17838
|
-
This feature is available for you to use throughout the Ember object model,
|
17839
|
-
although typical app developers are likely to use it infrequently. Since
|
17840
|
-
it changes expectations about behavior of properties, you should properly
|
17841
|
-
document its usage in each individual merged property (to not
|
17842
|
-
mislead your users to think they can override the property in a subclass).
|
17843
|
-
@property mergedProperties
|
17844
|
-
@type Array
|
17845
|
-
@default null
|
17846
|
-
@public
|
17847
|
-
*/
|
17848
|
-
|
17849
|
-
/**
|
17850
|
-
Destroyed object property flag.
|
17851
|
-
if this property is `true` the observers and bindings were already
|
17852
|
-
removed by the effect of calling the `destroy()` method.
|
17853
|
-
@property isDestroyed
|
17854
|
-
@default false
|
17855
|
-
@public
|
17856
|
-
*/
|
17857
|
-
|
17858
|
-
/**
|
17859
|
-
Destruction scheduled flag. The `destroy()` method has been called.
|
17860
|
-
The object stays intact until the end of the run loop at which point
|
17861
|
-
the `isDestroyed` flag is set.
|
17862
|
-
@property isDestroying
|
17863
|
-
@default false
|
17864
|
-
@public
|
17865
|
-
*/
|
17866
|
-
|
17867
|
-
/**
|
17868
|
-
Destroys an object by setting the `isDestroyed` flag and removing its
|
17869
|
-
metadata, which effectively destroys observers and bindings.
|
17870
|
-
If you try to set a property on a destroyed object, an exception will be
|
17871
|
-
raised.
|
17872
|
-
Note that destruction is scheduled for the end of the run loop and does not
|
17873
|
-
happen immediately. It will set an isDestroying flag immediately.
|
17874
|
-
@method destroy
|
17875
|
-
@return {Ember.Object} receiver
|
17876
|
-
@public
|
17877
|
-
*/
|
17878
|
-
|
17879
|
-
/**
|
17880
|
-
Override to implement teardown.
|
17881
|
-
@method willDestroy
|
17882
|
-
@public
|
17883
|
-
*/
|
17884
|
-
|
17885
|
-
/**
|
17886
|
-
Invoked by the run loop to actually destroy the object. This is
|
17887
|
-
scheduled for execution by the `destroy` method.
|
17888
|
-
@private
|
17889
|
-
@method _scheduledDestroy
|
17890
|
-
*/
|
17891
|
-
|
17892
|
-
/**
|
17893
|
-
Returns a string representation which attempts to provide more information
|
17894
|
-
than Javascript's `toString` typically does, in a generic way for all Ember
|
17895
|
-
objects.
|
17896
|
-
```javascript
|
17897
|
-
const Person = Ember.Object.extend()
|
17898
|
-
person = Person.create()
|
17899
|
-
person.toString() //=> "<Person:ember1024>"
|
17900
|
-
```
|
17901
|
-
If the object's class is not defined on an Ember namespace, it will
|
17902
|
-
indicate it is a subclass of the registered superclass:
|
17903
|
-
```javascript
|
17904
|
-
const Student = Person.extend()
|
17905
|
-
let student = Student.create()
|
17906
|
-
student.toString() //=> "<(subclass of Person):ember1025>"
|
17907
|
-
```
|
17908
|
-
If the method `toStringExtension` is defined, its return value will be
|
17909
|
-
included in the output.
|
17910
|
-
```javascript
|
17911
|
-
const Teacher = Person.extend({
|
17912
|
-
toStringExtension() {
|
17913
|
-
return this.get('fullName');
|
17914
|
-
}
|
17915
|
-
});
|
17916
|
-
teacher = Teacher.create()
|
17917
|
-
teacher.toString(); //=> "<Teacher:ember1026:Tom Dale>"
|
17918
|
-
```
|
17919
|
-
@method toString
|
17920
|
-
@return {String} string representation
|
17921
|
-
@public
|
17922
|
-
*/
|
17923
17891
|
enifed('ember-runtime/system/each_proxy', ['exports', 'ember-utils', 'ember-metal', 'ember-runtime/mixins/array'], function (exports, _emberUtils, _emberMetal, _emberRuntimeMixinsArray) {
|
17924
17892
|
'use strict';
|
17925
17893
|
|
@@ -18503,7 +18471,7 @@ enifed('ember-runtime/system/native_array', ['exports', 'ember-metal', 'ember-en
|
|
18503
18471
|
exports.default = NativeArray;
|
18504
18472
|
});
|
18505
18473
|
// Ember.A circular
|
18506
|
-
enifed('ember-runtime/system/object', ['exports', 'ember-runtime/system/core_object', 'ember-runtime/mixins/observable'], function (exports, _emberRuntimeSystemCore_object, _emberRuntimeMixinsObservable) {
|
18474
|
+
enifed('ember-runtime/system/object', ['exports', 'ember-utils', 'ember-metal', 'ember-runtime/system/core_object', 'ember-runtime/mixins/observable'], function (exports, _emberUtils, _emberMetal, _emberRuntimeSystemCore_object, _emberRuntimeMixinsObservable) {
|
18507
18475
|
/**
|
18508
18476
|
@module ember
|
18509
18477
|
@submodule ember-runtime
|
@@ -18527,6 +18495,26 @@ enifed('ember-runtime/system/object', ['exports', 'ember-runtime/system/core_obj
|
|
18527
18495
|
return 'Ember.Object';
|
18528
18496
|
};
|
18529
18497
|
|
18498
|
+
var FrameworkObject = EmberObject;
|
18499
|
+
|
18500
|
+
exports.FrameworkObject = FrameworkObject;
|
18501
|
+
_emberMetal.runInDebug(function () {
|
18502
|
+
var _EmberObject$extend;
|
18503
|
+
|
18504
|
+
var INIT_WAS_CALLED = _emberUtils.symbol('INIT_WAS_CALLED');
|
18505
|
+
var ASSERT_INIT_WAS_CALLED = _emberUtils.symbol('ASSERT_INIT_WAS_CALLED');
|
18506
|
+
|
18507
|
+
exports.FrameworkObject = FrameworkObject = EmberObject.extend((_EmberObject$extend = {
|
18508
|
+
init: function () {
|
18509
|
+
this._super.apply(this, arguments);
|
18510
|
+
this[INIT_WAS_CALLED] = true;
|
18511
|
+
}
|
18512
|
+
|
18513
|
+
}, _EmberObject$extend[ASSERT_INIT_WAS_CALLED] = _emberMetal.on('init', function () {
|
18514
|
+
_emberMetal.assert('You must call `this._super(...arguments);` when overriding `init` on a framework object. Please update ' + this + ' to call `this._super(...arguments);` from `init`.', this[INIT_WAS_CALLED]);
|
18515
|
+
}), _EmberObject$extend));
|
18516
|
+
});
|
18517
|
+
|
18530
18518
|
exports.default = EmberObject;
|
18531
18519
|
});
|
18532
18520
|
enifed('ember-runtime/system/object_proxy', ['exports', 'ember-runtime/system/object', 'ember-runtime/mixins/-proxy'], function (exports, _emberRuntimeSystemObject, _emberRuntimeMixinsProxy) {
|
@@ -19116,7 +19104,7 @@ enifed("ember/features", ["exports"], function (exports) {
|
|
19116
19104
|
enifed("ember/version", ["exports"], function (exports) {
|
19117
19105
|
"use strict";
|
19118
19106
|
|
19119
|
-
exports.default = "2.9.0-beta.
|
19107
|
+
exports.default = "2.9.0-beta.5";
|
19120
19108
|
});
|
19121
19109
|
/*!
|
19122
19110
|
* @overview RSVP - a tiny implementation of Promises/A+.
|