ember-source 2.7.2 → 2.8.0.beta.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/dist/ember-runtime.js +690 -516
- data/dist/ember-template-compiler.js +802 -430
- data/dist/ember-testing.js +129 -130
- data/dist/ember.debug.js +2829 -3945
- data/dist/ember.js +2829 -3945
- data/dist/ember.min.js +14 -14
- data/dist/ember.prod.js +2668 -3770
- metadata +4 -6
- data/dist/ember-tests.js +0 -80794
- data/dist/ember-tests.prod.js +0 -80729
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ce9c9d778331b0fad53093b38c255df044a73634
|
4
|
+
data.tar.gz: 67ad6c615d1d46ca7c41e520c2347b6d93e0512b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 14bcf07fc942da57fe2d92d99fe25589e3f4791fb81febf23059f0ba6b7026d0878d2ce993d5fe71ef3992bccb1a60f06cbccc7ea21395714945f2bd84a717a9
|
7
|
+
data.tar.gz: d2fdc4dc023657db5d1ccf792317dd3ff353066287359f492a751faa9ba52baea04e78621e92d03884b154e75d9ec089003a8a993154e1f8204d4d694fab6fd7
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.8.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.8.0-beta.1
|
10
10
|
*/
|
11
11
|
|
12
12
|
var enifed, requireModule, require, Ember;
|
@@ -1156,6 +1156,8 @@ enifed('backburner/utils', ['exports'], function (exports) {
|
|
1156
1156
|
enifed('container/container', ['exports', 'ember-environment', 'ember-metal/debug', 'ember-metal/dictionary', 'container/owner', 'ember-runtime/mixins/container_proxy', 'ember-metal/symbol'], function (exports, _emberEnvironment, _emberMetalDebug, _emberMetalDictionary, _containerOwner, _emberRuntimeMixinsContainer_proxy, _emberMetalSymbol) {
|
1157
1157
|
'use strict';
|
1158
1158
|
|
1159
|
+
exports.default = Container;
|
1160
|
+
|
1159
1161
|
var CONTAINER_OVERRIDE = _emberMetalSymbol.default('CONTAINER_OVERRIDE');
|
1160
1162
|
|
1161
1163
|
/**
|
@@ -1171,6 +1173,7 @@ enifed('container/container', ['exports', 'ember-environment', 'ember-metal/debu
|
|
1171
1173
|
@private
|
1172
1174
|
@class Container
|
1173
1175
|
*/
|
1176
|
+
|
1174
1177
|
function Container(registry, options) {
|
1175
1178
|
this.registry = registry;
|
1176
1179
|
this.owner = options && options.owner ? options.owner : null;
|
@@ -1179,6 +1182,7 @@ enifed('container/container', ['exports', 'ember-environment', 'ember-metal/debu
|
|
1179
1182
|
this.validationCache = _emberMetalDictionary.default(options && options.validationCache ? options.validationCache : null);
|
1180
1183
|
this._fakeContainerToInject = _emberRuntimeMixinsContainer_proxy.buildFakeContainerWithDeprecations(this);
|
1181
1184
|
this[CONTAINER_OVERRIDE] = undefined;
|
1185
|
+
this.isDestroyed = false;
|
1182
1186
|
}
|
1183
1187
|
|
1184
1188
|
Container.prototype = {
|
@@ -1224,23 +1228,23 @@ enifed('container/container', ['exports', 'ember-environment', 'ember-metal/debu
|
|
1224
1228
|
The singleton is scoped to the container, allowing multiple containers
|
1225
1229
|
to all have their own locally scoped singletons.
|
1226
1230
|
```javascript
|
1227
|
-
|
1228
|
-
|
1231
|
+
let registry = new Registry();
|
1232
|
+
let container = registry.container();
|
1229
1233
|
registry.register('api:twitter', Twitter);
|
1230
|
-
|
1234
|
+
let twitter = container.lookup('api:twitter');
|
1231
1235
|
twitter instanceof Twitter; // => true
|
1232
1236
|
// by default the container will return singletons
|
1233
|
-
|
1237
|
+
let twitter2 = container.lookup('api:twitter');
|
1234
1238
|
twitter2 instanceof Twitter; // => true
|
1235
1239
|
twitter === twitter2; //=> true
|
1236
1240
|
```
|
1237
1241
|
If singletons are not wanted, an optional flag can be provided at lookup.
|
1238
1242
|
```javascript
|
1239
|
-
|
1240
|
-
|
1243
|
+
let registry = new Registry();
|
1244
|
+
let container = registry.container();
|
1241
1245
|
registry.register('api:twitter', Twitter);
|
1242
|
-
|
1243
|
-
|
1246
|
+
let twitter = container.lookup('api:twitter', { singleton: false });
|
1247
|
+
let twitter2 = container.lookup('api:twitter', { singleton: false });
|
1244
1248
|
twitter === twitter2; //=> false
|
1245
1249
|
```
|
1246
1250
|
@private
|
@@ -1360,7 +1364,7 @@ enifed('container/container', ['exports', 'ember-environment', 'ember-metal/debu
|
|
1360
1364
|
if (arguments.length > 1) {
|
1361
1365
|
var container = arguments[0];
|
1362
1366
|
var injections = [];
|
1363
|
-
var injection;
|
1367
|
+
var injection = undefined;
|
1364
1368
|
|
1365
1369
|
for (var i = 1; i < arguments.length; i++) {
|
1366
1370
|
if (arguments[i]) {
|
@@ -1370,7 +1374,7 @@ enifed('container/container', ['exports', 'ember-environment', 'ember-metal/debu
|
|
1370
1374
|
|
1371
1375
|
container.registry.validateInjections(injections);
|
1372
1376
|
|
1373
|
-
for (i = 0; i < injections.length; i++) {
|
1377
|
+
for (var i = 0; i < injections.length; i++) {
|
1374
1378
|
injection = injections[i];
|
1375
1379
|
hash[injection.property] = lookup(container, injection.fullName);
|
1376
1380
|
if (!isSingleton(container, injection.fullName)) {
|
@@ -1466,7 +1470,8 @@ enifed('container/container', ['exports', 'ember-environment', 'ember-metal/debu
|
|
1466
1470
|
|
1467
1471
|
function instantiate(container, fullName) {
|
1468
1472
|
var factory = factoryFor(container, fullName);
|
1469
|
-
var lazyInjections,
|
1473
|
+
var lazyInjections = undefined,
|
1474
|
+
validationCache = undefined;
|
1470
1475
|
|
1471
1476
|
if (container.registry.getOption(fullName, 'instantiate') === false) {
|
1472
1477
|
return factory;
|
@@ -1474,7 +1479,7 @@ enifed('container/container', ['exports', 'ember-environment', 'ember-metal/debu
|
|
1474
1479
|
|
1475
1480
|
if (factory) {
|
1476
1481
|
if (typeof factory.create !== 'function') {
|
1477
|
-
throw new Error('Failed to create an instance of \'' + fullName + '\'.
|
1482
|
+
throw new Error('Failed to create an instance of \'' + fullName + '\'. Most likely an improperly defined class or' + ' an invalid module export.');
|
1478
1483
|
}
|
1479
1484
|
|
1480
1485
|
validationCache = container.validationCache;
|
@@ -1542,11 +1547,10 @@ enifed('container/container', ['exports', 'ember-environment', 'ember-metal/debu
|
|
1542
1547
|
function eachDestroyable(container, callback) {
|
1543
1548
|
var cache = container.cache;
|
1544
1549
|
var keys = Object.keys(cache);
|
1545
|
-
var key, value;
|
1546
1550
|
|
1547
1551
|
for (var i = 0; i < keys.length; i++) {
|
1548
|
-
key = keys[i];
|
1549
|
-
value = cache[key];
|
1552
|
+
var key = keys[i];
|
1553
|
+
var value = cache[key];
|
1550
1554
|
|
1551
1555
|
if (container.registry.getOption(key, 'instantiate') !== false) {
|
1552
1556
|
callback(value);
|
@@ -1577,8 +1581,6 @@ enifed('container/container', ['exports', 'ember-environment', 'ember-metal/debu
|
|
1577
1581
|
}
|
1578
1582
|
}
|
1579
1583
|
}
|
1580
|
-
|
1581
|
-
exports.default = Container;
|
1582
1584
|
});
|
1583
1585
|
enifed('container/index', ['exports', 'container/registry', 'container/container', 'container/owner'], function (exports, _containerRegistry, _containerContainer, _containerOwner) {
|
1584
1586
|
/*
|
@@ -1642,9 +1644,10 @@ enifed('container/owner', ['exports', 'ember-metal/symbol'], function (exports,
|
|
1642
1644
|
```
|
1643
1645
|
|
1644
1646
|
@method getOwner
|
1647
|
+
@for Ember
|
1645
1648
|
@param {Object} object An object with an owner.
|
1646
1649
|
@return {Object} An owner object.
|
1647
|
-
@
|
1650
|
+
@since 2.3.0
|
1648
1651
|
@public
|
1649
1652
|
*/
|
1650
1653
|
|
@@ -1657,9 +1660,10 @@ enifed('container/owner', ['exports', 'ember-metal/symbol'], function (exports,
|
|
1657
1660
|
useful in some testing cases.
|
1658
1661
|
|
1659
1662
|
@method setOwner
|
1663
|
+
@for Ember
|
1660
1664
|
@param {Object} object An object with an owner.
|
1661
1665
|
@return {Object} An owner object.
|
1662
|
-
@
|
1666
|
+
@since 2.3.0
|
1663
1667
|
@public
|
1664
1668
|
*/
|
1665
1669
|
|
@@ -1670,6 +1674,7 @@ enifed('container/owner', ['exports', 'ember-metal/symbol'], function (exports,
|
|
1670
1674
|
enifed('container/registry', ['exports', 'ember-metal/debug', 'ember-metal/dictionary', 'ember-metal/empty_object', 'ember-metal/assign', 'container/container', 'ember-metal/utils'], function (exports, _emberMetalDebug, _emberMetalDictionary, _emberMetalEmpty_object, _emberMetalAssign, _containerContainer, _emberMetalUtils) {
|
1671
1675
|
'use strict';
|
1672
1676
|
|
1677
|
+
exports.default = Registry;
|
1673
1678
|
exports.privatize = privatize;
|
1674
1679
|
|
1675
1680
|
var VALID_FULL_NAME_REGEXP = /^[^:]+:[^:]+$/;
|
@@ -1687,6 +1692,7 @@ enifed('container/registry', ['exports', 'ember-metal/debug', 'ember-metal/dicti
|
|
1687
1692
|
@class Registry
|
1688
1693
|
@since 1.11.0
|
1689
1694
|
*/
|
1695
|
+
|
1690
1696
|
function Registry(options) {
|
1691
1697
|
this.fallback = options && options.fallback ? options.fallback : null;
|
1692
1698
|
|
@@ -1809,7 +1815,7 @@ enifed('container/registry', ['exports', 'ember-metal/debug', 'ember-metal/dicti
|
|
1809
1815
|
Registers a factory for later injection.
|
1810
1816
|
Example:
|
1811
1817
|
```javascript
|
1812
|
-
|
1818
|
+
let registry = new Registry();
|
1813
1819
|
registry.register('model:user', Person, {singleton: false });
|
1814
1820
|
registry.register('fruit:favorite', Orange);
|
1815
1821
|
registry.register('communication:main', Email, {singleton: false});
|
@@ -1826,13 +1832,13 @@ enifed('container/registry', ['exports', 'ember-metal/debug', 'ember-metal/dicti
|
|
1826
1832
|
_emberMetalDebug.assert('fullName must be a proper full name', this.validateFullName(fullName));
|
1827
1833
|
|
1828
1834
|
if (factory === undefined) {
|
1829
|
-
throw new TypeError('Attempting to register an unknown factory:
|
1835
|
+
throw new TypeError('Attempting to register an unknown factory: \'' + fullName + '\'');
|
1830
1836
|
}
|
1831
1837
|
|
1832
1838
|
var normalizedName = this.normalize(fullName);
|
1833
1839
|
|
1834
1840
|
if (this._resolveCache[normalizedName]) {
|
1835
|
-
throw new Error('Cannot re-register:
|
1841
|
+
throw new Error('Cannot re-register: \'' + fullName + '\', as it has already been resolved.');
|
1836
1842
|
}
|
1837
1843
|
|
1838
1844
|
delete this._failCache[normalizedName];
|
@@ -1843,7 +1849,7 @@ enifed('container/registry', ['exports', 'ember-metal/debug', 'ember-metal/dicti
|
|
1843
1849
|
/**
|
1844
1850
|
Unregister a fullName
|
1845
1851
|
```javascript
|
1846
|
-
|
1852
|
+
let registry = new Registry();
|
1847
1853
|
registry.register('model:user', User);
|
1848
1854
|
registry.resolve('model:user').create() instanceof User //=> true
|
1849
1855
|
registry.unregister('model:user')
|
@@ -1871,7 +1877,7 @@ enifed('container/registry', ['exports', 'ember-metal/debug', 'ember-metal/dicti
|
|
1871
1877
|
By default `resolve` will retrieve the factory from
|
1872
1878
|
the registry.
|
1873
1879
|
```javascript
|
1874
|
-
|
1880
|
+
let registry = new Registry();
|
1875
1881
|
registry.register('api:twitter', Twitter);
|
1876
1882
|
registry.resolve('api:twitter') // => Twitter
|
1877
1883
|
```
|
@@ -1880,7 +1886,7 @@ enifed('container/registry', ['exports', 'ember-metal/debug', 'ember-metal/dicti
|
|
1880
1886
|
the opportunity to resolve the fullName, otherwise it will fallback
|
1881
1887
|
to the registry.
|
1882
1888
|
```javascript
|
1883
|
-
|
1889
|
+
let registry = new Registry();
|
1884
1890
|
registry.resolver = function(fullName) {
|
1885
1891
|
// lookup via the module system of choice
|
1886
1892
|
};
|
@@ -1994,17 +2000,17 @@ enifed('container/registry', ['exports', 'ember-metal/debug', 'ember-metal/dicti
|
|
1994
2000
|
/**
|
1995
2001
|
Allow registering options for all factories of a type.
|
1996
2002
|
```javascript
|
1997
|
-
|
1998
|
-
|
2003
|
+
let registry = new Registry();
|
2004
|
+
let container = registry.container();
|
1999
2005
|
// if all of type `connection` must not be singletons
|
2000
2006
|
registry.optionsForType('connection', { singleton: false });
|
2001
2007
|
registry.register('connection:twitter', TwitterConnection);
|
2002
2008
|
registry.register('connection:facebook', FacebookConnection);
|
2003
|
-
|
2004
|
-
|
2009
|
+
let twitter = container.lookup('connection:twitter');
|
2010
|
+
let twitter2 = container.lookup('connection:twitter');
|
2005
2011
|
twitter === twitter2; // => false
|
2006
|
-
|
2007
|
-
|
2012
|
+
let facebook = container.lookup('connection:facebook');
|
2013
|
+
let facebook2 = container.lookup('connection:facebook');
|
2008
2014
|
facebook === facebook2; // => false
|
2009
2015
|
```
|
2010
2016
|
@private
|
@@ -2040,6 +2046,7 @@ enifed('container/registry', ['exports', 'ember-metal/debug', 'ember-metal/dicti
|
|
2040
2046
|
getOptions: function (fullName) {
|
2041
2047
|
var normalizedName = this.normalize(fullName);
|
2042
2048
|
var options = this._options[normalizedName];
|
2049
|
+
|
2043
2050
|
if (options === undefined && this.fallback) {
|
2044
2051
|
options = this.fallback.getOptions(fullName);
|
2045
2052
|
}
|
@@ -2071,14 +2078,14 @@ enifed('container/registry', ['exports', 'ember-metal/debug', 'ember-metal/dicti
|
|
2071
2078
|
For example, provided each object of type `controller` needed a `router`.
|
2072
2079
|
one would do the following:
|
2073
2080
|
```javascript
|
2074
|
-
|
2075
|
-
|
2081
|
+
let registry = new Registry();
|
2082
|
+
let container = registry.container();
|
2076
2083
|
registry.register('router:main', Router);
|
2077
2084
|
registry.register('controller:user', UserController);
|
2078
2085
|
registry.register('controller:post', PostController);
|
2079
2086
|
registry.typeInjection('controller', 'router', 'router:main');
|
2080
|
-
|
2081
|
-
|
2087
|
+
let user = container.lookup('controller:user');
|
2088
|
+
let post = container.lookup('controller:post');
|
2082
2089
|
user.router instanceof Router; //=> true
|
2083
2090
|
post.router instanceof Router; //=> true
|
2084
2091
|
// both controllers share the same router
|
@@ -2095,7 +2102,7 @@ enifed('container/registry', ['exports', 'ember-metal/debug', 'ember-metal/dicti
|
|
2095
2102
|
|
2096
2103
|
var fullNameType = fullName.split(':')[0];
|
2097
2104
|
if (fullNameType === type) {
|
2098
|
-
throw new Error('Cannot inject a
|
2105
|
+
throw new Error('Cannot inject a \'' + fullName + '\' on other ' + type + '(s).');
|
2099
2106
|
}
|
2100
2107
|
|
2101
2108
|
var injections = this._typeInjections[type] || (this._typeInjections[type] = []);
|
@@ -2115,8 +2122,8 @@ enifed('container/registry', ['exports', 'ember-metal/debug', 'ember-metal/dicti
|
|
2115
2122
|
* Injecting one fullName on a type
|
2116
2123
|
Example:
|
2117
2124
|
```javascript
|
2118
|
-
|
2119
|
-
|
2125
|
+
let registry = new Registry();
|
2126
|
+
let container = registry.container();
|
2120
2127
|
registry.register('source:main', Source);
|
2121
2128
|
registry.register('model:user', User);
|
2122
2129
|
registry.register('model:post', Post);
|
@@ -2125,8 +2132,8 @@ enifed('container/registry', ['exports', 'ember-metal/debug', 'ember-metal/dicti
|
|
2125
2132
|
registry.injection('model:user', 'post', 'model:post');
|
2126
2133
|
// injecting one fullName on another type
|
2127
2134
|
registry.injection('model', 'source', 'source:main');
|
2128
|
-
|
2129
|
-
|
2135
|
+
let user = container.lookup('model:user');
|
2136
|
+
let post = container.lookup('model:post');
|
2130
2137
|
user.source instanceof Source; //=> true
|
2131
2138
|
post.source instanceof Source; //=> true
|
2132
2139
|
user.post instanceof Post; //=> true
|
@@ -2166,11 +2173,11 @@ enifed('container/registry', ['exports', 'ember-metal/debug', 'ember-metal/dicti
|
|
2166
2173
|
For example, provided each factory of type `model` needed a `store`.
|
2167
2174
|
one would do the following:
|
2168
2175
|
```javascript
|
2169
|
-
|
2176
|
+
let registry = new Registry();
|
2170
2177
|
registry.register('store:main', SomeStore);
|
2171
2178
|
registry.factoryTypeInjection('model', 'store', 'store:main');
|
2172
|
-
|
2173
|
-
|
2179
|
+
let store = registry.lookup('store:main');
|
2180
|
+
let UserFactory = registry.lookupFactory('model:user');
|
2174
2181
|
UserFactory.store instanceof SomeStore; //=> true
|
2175
2182
|
```
|
2176
2183
|
@private
|
@@ -2199,8 +2206,8 @@ enifed('container/registry', ['exports', 'ember-metal/debug', 'ember-metal/dicti
|
|
2199
2206
|
* Injecting one fullName on a type
|
2200
2207
|
Example:
|
2201
2208
|
```javascript
|
2202
|
-
|
2203
|
-
|
2209
|
+
let registry = new Registry();
|
2210
|
+
let container = registry.container();
|
2204
2211
|
registry.register('store:main', Store);
|
2205
2212
|
registry.register('store:secondary', OtherStore);
|
2206
2213
|
registry.register('model:user', User);
|
@@ -2209,9 +2216,9 @@ enifed('container/registry', ['exports', 'ember-metal/debug', 'ember-metal/dicti
|
|
2209
2216
|
registry.factoryInjection('model', 'store', 'store:main');
|
2210
2217
|
// injecting one fullName on another fullName
|
2211
2218
|
registry.factoryInjection('model:post', 'secondaryStore', 'store:secondary');
|
2212
|
-
|
2213
|
-
|
2214
|
-
|
2219
|
+
let UserFactory = container.lookupFactory('model:user');
|
2220
|
+
let PostFactory = container.lookupFactory('model:post');
|
2221
|
+
let store = container.lookup('store:main');
|
2215
2222
|
UserFactory.store instanceof Store; //=> true
|
2216
2223
|
UserFactory.secondaryStore instanceof OtherStore; //=> false
|
2217
2224
|
PostFactory.store instanceof Store; //=> true
|
@@ -2276,7 +2283,7 @@ enifed('container/registry', ['exports', 'ember-metal/debug', 'ember-metal/dicti
|
|
2276
2283
|
|
2277
2284
|
validateFullName: function (fullName) {
|
2278
2285
|
if (!this.isValidFullName(fullName)) {
|
2279
|
-
throw new TypeError('Invalid Fullname, expected:
|
2286
|
+
throw new TypeError('Invalid Fullname, expected: \'type:name\' got: ' + fullName);
|
2280
2287
|
}
|
2281
2288
|
|
2282
2289
|
return true;
|
@@ -2291,13 +2298,13 @@ enifed('container/registry', ['exports', 'ember-metal/debug', 'ember-metal/dicti
|
|
2291
2298
|
return;
|
2292
2299
|
}
|
2293
2300
|
|
2294
|
-
var fullName;
|
2301
|
+
var fullName = undefined;
|
2295
2302
|
|
2296
2303
|
for (var i = 0; i < injections.length; i++) {
|
2297
2304
|
fullName = injections[i].fullName;
|
2298
2305
|
|
2299
2306
|
if (!this.has(fullName)) {
|
2300
|
-
throw new Error('Attempting to inject an unknown injection:
|
2307
|
+
throw new Error('Attempting to inject an unknown injection: \'' + fullName + '\'');
|
2301
2308
|
}
|
2302
2309
|
}
|
2303
2310
|
},
|
@@ -2364,7 +2371,7 @@ enifed('container/registry', ['exports', 'ember-metal/debug', 'ember-metal/dicti
|
|
2364
2371
|
fullName. Used to allow for local lookup.
|
2365
2372
|
|
2366
2373
|
```javascript
|
2367
|
-
|
2374
|
+
let registry = new Registry();
|
2368
2375
|
|
2369
2376
|
// the twitter factory is added to the module system
|
2370
2377
|
registry.expandLocalLookup('component:post-title', { source: 'template:post' }) // => component:post/post-title
|
@@ -2457,7 +2464,7 @@ enifed('container/registry', ['exports', 'ember-metal/debug', 'ember-metal/dicti
|
|
2457
2464
|
}
|
2458
2465
|
|
2459
2466
|
var privateNames = _emberMetalDictionary.default(null);
|
2460
|
-
var privateSuffix = Math.
|
2467
|
+
var privateSuffix = '' + Math.random() + Date.now();
|
2461
2468
|
|
2462
2469
|
function privatize(_ref) {
|
2463
2470
|
var fullName = _ref[0];
|
@@ -2474,8 +2481,6 @@ enifed('container/registry', ['exports', 'ember-metal/debug', 'ember-metal/dicti
|
|
2474
2481
|
|
2475
2482
|
return privateNames[fullName] = _emberMetalUtils.intern(type + ':' + rawName + '-' + privateSuffix);
|
2476
2483
|
}
|
2477
|
-
|
2478
|
-
exports.default = Registry;
|
2479
2484
|
});
|
2480
2485
|
enifed('ember-console/index', ['exports', 'ember-environment'], function (exports, _emberEnvironment) {
|
2481
2486
|
'use strict';
|
@@ -2866,10 +2871,10 @@ enifed("ember-metal/assign", ["exports"], function (exports) {
|
|
2866
2871
|
Copy properties from a source object to a target object.
|
2867
2872
|
|
2868
2873
|
```javascript
|
2869
|
-
var a = {first: 'Yehuda'};
|
2870
|
-
var b = {last: 'Katz'};
|
2871
|
-
var c = {company: 'Tilde Inc.'};
|
2872
|
-
Ember.assign(a, b, c); // a === {first: 'Yehuda', last: 'Katz', company: 'Tilde Inc.'}, b === {last: 'Katz'}, c === {company: 'Tilde Inc.'}
|
2874
|
+
var a = { first: 'Yehuda' };
|
2875
|
+
var b = { last: 'Katz' };
|
2876
|
+
var c = { company: 'Tilde Inc.' };
|
2877
|
+
Ember.assign(a, b, c); // a === { first: 'Yehuda', last: 'Katz', company: 'Tilde Inc.' }, b === { last: 'Katz' }, c === { company: 'Tilde Inc.' }
|
2873
2878
|
```
|
2874
2879
|
|
2875
2880
|
@method assign
|
@@ -3066,7 +3071,7 @@ enifed('ember-metal/binding', ['exports', 'ember-console', 'ember-environment',
|
|
3066
3071
|
|
3067
3072
|
_emberMetalEvents.addListener(obj, 'willDestroy', this, 'disconnect');
|
3068
3073
|
|
3069
|
-
fireDeprecations(
|
3074
|
+
fireDeprecations(possibleGlobal, this._oneWay, !possibleGlobal && !this._oneWay);
|
3070
3075
|
|
3071
3076
|
this._readyToSync = true;
|
3072
3077
|
this._fromObj = fromObj;
|
@@ -3175,23 +3180,22 @@ enifed('ember-metal/binding', ['exports', 'ember-console', 'ember-environment',
|
|
3175
3180
|
|
3176
3181
|
};
|
3177
3182
|
|
3178
|
-
function fireDeprecations(
|
3183
|
+
function fireDeprecations(deprecateGlobal, deprecateOneWay, deprecateAlias) {
|
3179
3184
|
var deprecateGlobalMessage = '`Ember.Binding` is deprecated. Since you' + ' are binding to a global consider using a service instead.';
|
3180
3185
|
var deprecateOneWayMessage = '`Ember.Binding` is deprecated. Since you' + ' are using a `oneWay` binding consider using a `readOnly` computed' + ' property instead.';
|
3181
3186
|
var deprecateAliasMessage = '`Ember.Binding` is deprecated. Consider' + ' using an `alias` computed property instead.';
|
3182
3187
|
|
3183
|
-
|
3184
|
-
_emberMetalDebug.deprecate(objectInfo + deprecateGlobalMessage, !deprecateGlobal, {
|
3188
|
+
_emberMetalDebug.deprecate(deprecateGlobalMessage, !deprecateGlobal, {
|
3185
3189
|
id: 'ember-metal.binding',
|
3186
3190
|
until: '3.0.0',
|
3187
3191
|
url: 'http://emberjs.com/deprecations/v2.x#toc_ember-binding'
|
3188
3192
|
});
|
3189
|
-
_emberMetalDebug.deprecate(
|
3193
|
+
_emberMetalDebug.deprecate(deprecateOneWayMessage, !deprecateOneWay, {
|
3190
3194
|
id: 'ember-metal.binding',
|
3191
3195
|
until: '3.0.0',
|
3192
3196
|
url: 'http://emberjs.com/deprecations/v2.x#toc_ember-binding'
|
3193
3197
|
});
|
3194
|
-
_emberMetalDebug.deprecate(
|
3198
|
+
_emberMetalDebug.deprecate(deprecateAliasMessage, !deprecateAlias, {
|
3195
3199
|
id: 'ember-metal.binding',
|
3196
3200
|
until: '3.0.0',
|
3197
3201
|
url: 'http://emberjs.com/deprecations/v2.x#toc_ember-binding'
|
@@ -3384,39 +3388,40 @@ enifed('ember-metal/binding', ['exports', 'ember-console', 'ember-environment',
|
|
3384
3388
|
enifed('ember-metal/cache', ['exports', 'ember-metal/empty_object'], function (exports, _emberMetalEmpty_object) {
|
3385
3389
|
'use strict';
|
3386
3390
|
|
3387
|
-
|
3391
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
|
3388
3392
|
|
3389
|
-
|
3390
|
-
|
3391
|
-
|
3392
|
-
this.misses = 0;
|
3393
|
-
this.hits = 0;
|
3394
|
-
this.limit = limit;
|
3395
|
-
this.func = func;
|
3396
|
-
}
|
3393
|
+
var Cache = (function () {
|
3394
|
+
function Cache(limit, func, key, store) {
|
3395
|
+
_classCallCheck(this, Cache);
|
3397
3396
|
|
3398
|
-
|
3397
|
+
this.size = 0;
|
3398
|
+
this.misses = 0;
|
3399
|
+
this.hits = 0;
|
3400
|
+
this.limit = limit;
|
3401
|
+
this.func = func;
|
3402
|
+
this.key = key;
|
3403
|
+
this.store = store || new DefaultStore();
|
3404
|
+
}
|
3399
3405
|
|
3400
|
-
|
3401
|
-
set: function (key, value) {
|
3406
|
+
Cache.prototype.set = function set(obj, value) {
|
3402
3407
|
if (this.limit > this.size) {
|
3408
|
+
var key = this.key === undefined ? obj : this.key(obj);
|
3403
3409
|
this.size++;
|
3404
3410
|
if (value === undefined) {
|
3405
|
-
this.store
|
3411
|
+
this.store.set(key, UNDEFINED);
|
3406
3412
|
} else {
|
3407
|
-
this.store
|
3413
|
+
this.store.set(key, value);
|
3408
3414
|
}
|
3409
3415
|
}
|
3410
|
-
|
3411
3416
|
return value;
|
3412
|
-
}
|
3413
|
-
|
3414
|
-
get: function (key) {
|
3415
|
-
var value = this.store[key];
|
3417
|
+
};
|
3416
3418
|
|
3419
|
+
Cache.prototype.get = function get(obj) {
|
3420
|
+
var key = this.key === undefined ? obj : this.key(obj);
|
3421
|
+
var value = this.store.get(key);
|
3417
3422
|
if (value === undefined) {
|
3418
3423
|
this.misses++;
|
3419
|
-
value = this.set(key, this.func(
|
3424
|
+
value = this.set(key, this.func(obj));
|
3420
3425
|
} else if (value === UNDEFINED) {
|
3421
3426
|
this.hits++;
|
3422
3427
|
value = undefined;
|
@@ -3426,15 +3431,43 @@ enifed('ember-metal/cache', ['exports', 'ember-metal/empty_object'], function (e
|
|
3426
3431
|
}
|
3427
3432
|
|
3428
3433
|
return value;
|
3429
|
-
}
|
3434
|
+
};
|
3430
3435
|
|
3431
|
-
purge
|
3432
|
-
this.store
|
3436
|
+
Cache.prototype.purge = function purge() {
|
3437
|
+
this.store.clear();
|
3433
3438
|
this.size = 0;
|
3434
3439
|
this.hits = 0;
|
3435
3440
|
this.misses = 0;
|
3441
|
+
};
|
3442
|
+
|
3443
|
+
return Cache;
|
3444
|
+
})();
|
3445
|
+
|
3446
|
+
exports.default = Cache;
|
3447
|
+
|
3448
|
+
function UNDEFINED() {}
|
3449
|
+
|
3450
|
+
var DefaultStore = (function () {
|
3451
|
+
function DefaultStore() {
|
3452
|
+
_classCallCheck(this, DefaultStore);
|
3453
|
+
|
3454
|
+
this.data = new _emberMetalEmpty_object.default();
|
3436
3455
|
}
|
3437
|
-
|
3456
|
+
|
3457
|
+
DefaultStore.prototype.get = function get(key) {
|
3458
|
+
return this.data[key];
|
3459
|
+
};
|
3460
|
+
|
3461
|
+
DefaultStore.prototype.set = function set(key, value) {
|
3462
|
+
this.data[key] = value;
|
3463
|
+
};
|
3464
|
+
|
3465
|
+
DefaultStore.prototype.clear = function clear() {
|
3466
|
+
this.data = new _emberMetalEmpty_object.default();
|
3467
|
+
};
|
3468
|
+
|
3469
|
+
return DefaultStore;
|
3470
|
+
})();
|
3438
3471
|
});
|
3439
3472
|
enifed('ember-metal/chains', ['exports', 'ember-metal/property_get', 'ember-metal/meta', 'ember-metal/watch_key', 'ember-metal/empty_object', 'ember-metal/watch_path'], function (exports, _emberMetalProperty_get, _emberMetalMeta, _emberMetalWatch_key, _emberMetalEmpty_object, _emberMetalWatch_path) {
|
3440
3473
|
'use strict';
|
@@ -3649,7 +3682,7 @@ enifed('ember-metal/chains', ['exports', 'ember-metal/property_get', 'ember-meta
|
|
3649
3682
|
copy: function (obj) {
|
3650
3683
|
var ret = new ChainNode(null, null, obj);
|
3651
3684
|
var paths = this._paths;
|
3652
|
-
var path;
|
3685
|
+
var path = undefined;
|
3653
3686
|
|
3654
3687
|
for (path in paths) {
|
3655
3688
|
// this check will also catch non-number vals.
|
@@ -3689,7 +3722,7 @@ enifed('ember-metal/chains', ['exports', 'ember-metal/property_get', 'ember-meta
|
|
3689
3722
|
|
3690
3723
|
chain: function (key, path) {
|
3691
3724
|
var chains = this._chains;
|
3692
|
-
var node;
|
3725
|
+
var node = undefined;
|
3693
3726
|
if (chains === undefined) {
|
3694
3727
|
chains = this._chains = new _emberMetalEmpty_object.default();
|
3695
3728
|
} else {
|
@@ -3742,7 +3775,7 @@ enifed('ember-metal/chains', ['exports', 'ember-metal/property_get', 'ember-meta
|
|
3742
3775
|
|
3743
3776
|
// then notify chains...
|
3744
3777
|
var chains = this._chains;
|
3745
|
-
var node;
|
3778
|
+
var node = undefined;
|
3746
3779
|
if (chains) {
|
3747
3780
|
for (var key in chains) {
|
3748
3781
|
node = chains[key];
|
@@ -3918,7 +3951,7 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/debug', 'ember-metal/pro
|
|
3918
3951
|
this._getter = config;
|
3919
3952
|
} else {
|
3920
3953
|
_emberMetalDebug.assert('Ember.computed expects a function or an object as last argument.', typeof config === 'object' && !Array.isArray(config));
|
3921
|
-
_emberMetalDebug.assert('Config object
|
3954
|
+
_emberMetalDebug.assert('Config object passed to an Ember.computed can only contain `get` or `set` keys.', (function () {
|
3922
3955
|
var keys = Object.keys(config);
|
3923
3956
|
for (var i = 0; i < keys.length; i++) {
|
3924
3957
|
if (keys[i] !== 'get' && keys[i] !== 'set') {
|
@@ -4027,14 +4060,13 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/debug', 'ember-metal/pro
|
|
4027
4060
|
@public
|
4028
4061
|
*/
|
4029
4062
|
ComputedPropertyPrototype.property = function () {
|
4030
|
-
var args;
|
4063
|
+
var args = [];
|
4031
4064
|
|
4032
|
-
|
4065
|
+
function addArg(property) {
|
4033
4066
|
_emberMetalDebug.warn('Dependent keys containing @each only work one level deep. ' + 'You cannot use nested forms like todos.@each.owner.name or todos.@each.owner.@each.name. ' + 'Please create an intermediary computed property.', DEEP_EACH_REGEX.test(property) === false, { id: 'ember-metal.computed-deep-each' });
|
4034
4067
|
args.push(property);
|
4035
|
-
}
|
4068
|
+
}
|
4036
4069
|
|
4037
|
-
args = [];
|
4038
4070
|
for (var i = 0; i < arguments.length; i++) {
|
4039
4071
|
_emberMetalExpand_properties.default(arguments[i], addArg);
|
4040
4072
|
}
|
@@ -4312,7 +4344,7 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/debug', 'ember-metal/pro
|
|
4312
4344
|
*/
|
4313
4345
|
|
4314
4346
|
function computed(func) {
|
4315
|
-
var args;
|
4347
|
+
var args = undefined;
|
4316
4348
|
|
4317
4349
|
if (arguments.length > 1) {
|
4318
4350
|
args = [].slice.call(arguments);
|
@@ -4507,7 +4539,8 @@ enifed('ember-metal/dependent_keys', ['exports', 'ember-metal/watching'], functi
|
|
4507
4539
|
function addDependentKeys(desc, obj, keyName, meta) {
|
4508
4540
|
// the descriptor has a list of dependent keys, so
|
4509
4541
|
// add all of its dependent keys.
|
4510
|
-
var idx,
|
4542
|
+
var idx = undefined,
|
4543
|
+
depKey = undefined;
|
4511
4544
|
var depKeys = desc._dependentKeys;
|
4512
4545
|
if (!depKeys) {
|
4513
4546
|
return;
|
@@ -4526,13 +4559,12 @@ enifed('ember-metal/dependent_keys', ['exports', 'ember-metal/watching'], functi
|
|
4526
4559
|
// the descriptor has a list of dependent keys, so
|
4527
4560
|
// remove all of its dependent keys.
|
4528
4561
|
var depKeys = desc._dependentKeys;
|
4529
|
-
var idx, depKey;
|
4530
4562
|
if (!depKeys) {
|
4531
4563
|
return;
|
4532
4564
|
}
|
4533
4565
|
|
4534
|
-
for (idx = 0; idx < depKeys.length; idx++) {
|
4535
|
-
depKey = depKeys[idx];
|
4566
|
+
for (var idx = 0; idx < depKeys.length; idx++) {
|
4567
|
+
var depKey = depKeys[idx];
|
4536
4568
|
// Decrement the number of times depKey depends on keyName.
|
4537
4569
|
meta.writeDeps(depKey, keyName, (meta.peekDeps(depKey, keyName) || 0) - 1);
|
4538
4570
|
// Unwatch the depKey
|
@@ -4593,7 +4625,7 @@ enifed('ember-metal/dictionary', ['exports', 'ember-metal/empty_object'], functi
|
|
4593
4625
|
// only makes sense for long-lived dictionaries that aren't instantiated often.
|
4594
4626
|
|
4595
4627
|
function makeDictionary(parent) {
|
4596
|
-
var dict;
|
4628
|
+
var dict = undefined;
|
4597
4629
|
if (parent === null) {
|
4598
4630
|
dict = new _emberMetalEmpty_object.default();
|
4599
4631
|
} else {
|
@@ -4672,6 +4704,18 @@ enifed('ember-metal/error_handler', ['exports', 'ember-console', 'ember-metal/te
|
|
4672
4704
|
exports.dispatchError = dispatchError;
|
4673
4705
|
exports.setDispatchOverride = setDispatchOverride;
|
4674
4706
|
|
4707
|
+
// To maintain stacktrace consistency across browsers
|
4708
|
+
var getStack = function (error) {
|
4709
|
+
var stack = error.stack;
|
4710
|
+
var message = error.message;
|
4711
|
+
|
4712
|
+
if (stack.indexOf(message) === -1) {
|
4713
|
+
stack = message + '\n' + stack;
|
4714
|
+
}
|
4715
|
+
|
4716
|
+
return stack;
|
4717
|
+
};
|
4718
|
+
|
4675
4719
|
var onerror = undefined;
|
4676
4720
|
// Ember.onerror getter
|
4677
4721
|
|
@@ -4709,7 +4753,7 @@ enifed('ember-metal/error_handler', ['exports', 'ember-console', 'ember-metal/te
|
|
4709
4753
|
if (onerror) {
|
4710
4754
|
onerror(error);
|
4711
4755
|
} else {
|
4712
|
-
_emberConsole.default.error(error
|
4756
|
+
_emberConsole.default.error(getStack(error));
|
4713
4757
|
}
|
4714
4758
|
}
|
4715
4759
|
});
|
@@ -5023,13 +5067,13 @@ enifed('ember-metal/events', ['exports', 'ember-metal/debug', 'ember-metal/utils
|
|
5023
5067
|
|
5024
5068
|
|
5025
5069
|
``` javascript
|
5026
|
-
|
5070
|
+
let Job = Ember.Object.extend({
|
5027
5071
|
logCompleted: Ember.on('completed', function() {
|
5028
5072
|
console.log('Job completed!');
|
5029
5073
|
})
|
5030
5074
|
});
|
5031
5075
|
|
5032
|
-
|
5076
|
+
let job = Job.create();
|
5033
5077
|
|
5034
5078
|
Ember.sendEvent(job, 'completed'); // Logs 'Job completed!'
|
5035
5079
|
```
|
@@ -5223,7 +5267,7 @@ enifed('ember-metal/get_properties', ['exports', 'ember-metal/property_get'], fu
|
|
5223
5267
|
return ret;
|
5224
5268
|
}
|
5225
5269
|
});
|
5226
|
-
enifed('ember-metal/index', ['exports', 'require', 'ember-environment', 'ember/version', 'ember-metal/core', 'ember-metal/debug', 'ember-metal/features', 'ember-metal/assign', 'ember-metal/merge', 'ember-metal/instrumentation', 'ember-metal/utils', 'ember-metal/meta', 'ember-metal/error', 'ember-metal/cache', 'ember-console', 'ember-metal/property_get', 'ember-metal/events', 'ember-metal/observer_set', 'ember-metal/property_events', 'ember-metal/properties', 'ember-metal/property_set', 'ember-metal/map', 'ember-metal/get_properties', 'ember-metal/set_properties', 'ember-metal/watch_key', 'ember-metal/chains', 'ember-metal/watch_path', 'ember-metal/watching', 'ember-metal/expand_properties', 'ember-metal/computed', 'ember-metal/alias', 'ember-metal/observer', 'ember-metal/mixin', 'ember-metal/binding', 'ember-metal/path_cache', 'ember-metal/testing', 'ember-metal/error_handler', 'ember-metal/run_loop', 'ember-metal/libraries', 'ember-metal/is_none', 'ember-metal/is_empty', 'ember-metal/is_blank', 'ember-metal/is_present', 'backburner'], function (exports, _require, _emberEnvironment, _emberVersion, _emberMetalCore, _emberMetalDebug, _emberMetalFeatures, _emberMetalAssign, _emberMetalMerge, _emberMetalInstrumentation, _emberMetalUtils, _emberMetalMeta, _emberMetalError, _emberMetalCache, _emberConsole, _emberMetalProperty_get, _emberMetalEvents, _emberMetalObserver_set, _emberMetalProperty_events, _emberMetalProperties, _emberMetalProperty_set, _emberMetalMap, _emberMetalGet_properties, _emberMetalSet_properties, _emberMetalWatch_key, _emberMetalChains, _emberMetalWatch_path, _emberMetalWatching, _emberMetalExpand_properties, _emberMetalComputed, _emberMetalAlias, _emberMetalObserver, _emberMetalMixin, _emberMetalBinding, _emberMetalPath_cache, _emberMetalTesting, _emberMetalError_handler, _emberMetalRun_loop, _emberMetalLibraries, _emberMetalIs_none, _emberMetalIs_empty, _emberMetalIs_blank, _emberMetalIs_present, _backburner) {
|
5270
|
+
enifed('ember-metal/index', ['exports', 'require', 'ember-environment', 'ember/version', 'ember-metal/core', 'ember-metal/debug', 'ember-metal/features', 'ember-metal/assign', 'ember-metal/merge', 'ember-metal/instrumentation', 'ember-metal/utils', 'ember-metal/meta', 'ember-metal/error', 'ember-metal/cache', 'ember-console', 'ember-metal/property_get', 'ember-metal/events', 'ember-metal/observer_set', 'ember-metal/property_events', 'ember-metal/properties', 'ember-metal/property_set', 'ember-metal/weak_map', 'ember-metal/map', 'ember-metal/get_properties', 'ember-metal/set_properties', 'ember-metal/watch_key', 'ember-metal/chains', 'ember-metal/watch_path', 'ember-metal/watching', 'ember-metal/expand_properties', 'ember-metal/computed', 'ember-metal/alias', 'ember-metal/observer', 'ember-metal/mixin', 'ember-metal/binding', 'ember-metal/path_cache', 'ember-metal/testing', 'ember-metal/error_handler', 'ember-metal/run_loop', 'ember-metal/libraries', 'ember-metal/is_none', 'ember-metal/is_empty', 'ember-metal/is_blank', 'ember-metal/is_present', 'backburner'], function (exports, _require, _emberEnvironment, _emberVersion, _emberMetalCore, _emberMetalDebug, _emberMetalFeatures, _emberMetalAssign, _emberMetalMerge, _emberMetalInstrumentation, _emberMetalUtils, _emberMetalMeta, _emberMetalError, _emberMetalCache, _emberConsole, _emberMetalProperty_get, _emberMetalEvents, _emberMetalObserver_set, _emberMetalProperty_events, _emberMetalProperties, _emberMetalProperty_set, _emberMetalWeak_map, _emberMetalMap, _emberMetalGet_properties, _emberMetalSet_properties, _emberMetalWatch_key, _emberMetalChains, _emberMetalWatch_path, _emberMetalWatching, _emberMetalExpand_properties, _emberMetalComputed, _emberMetalAlias, _emberMetalObserver, _emberMetalMixin, _emberMetalBinding, _emberMetalPath_cache, _emberMetalTesting, _emberMetalError_handler, _emberMetalRun_loop, _emberMetalLibraries, _emberMetalIs_none, _emberMetalIs_empty, _emberMetalIs_blank, _emberMetalIs_present, _backburner) {
|
5227
5271
|
/**
|
5228
5272
|
@module ember
|
5229
5273
|
@submodule ember-metal
|
@@ -5302,6 +5346,9 @@ enifed('ember-metal/index', ['exports', 'require', 'ember-environment', 'ember/v
|
|
5302
5346
|
_emberMetalCore.default.set = _emberMetalProperty_set.set;
|
5303
5347
|
_emberMetalCore.default.trySet = _emberMetalProperty_set.trySet;
|
5304
5348
|
|
5349
|
+
if (_emberMetalFeatures.default('ember-metal-weakmap')) {
|
5350
|
+
_emberMetalCore.default.WeakMap = _emberMetalWeak_map.default;
|
5351
|
+
}
|
5305
5352
|
_emberMetalCore.default.OrderedSet = _emberMetalMap.OrderedSet;
|
5306
5353
|
_emberMetalCore.default.Map = _emberMetalMap.Map;
|
5307
5354
|
_emberMetalCore.default.MapWithDefault = _emberMetalMap.MapWithDefault;
|
@@ -5337,7 +5384,6 @@ enifed('ember-metal/index', ['exports', 'require', 'ember-environment', 'ember/v
|
|
5337
5384
|
_emberMetalCore.default._suspendObserver = _emberMetalObserver._suspendObserver;
|
5338
5385
|
_emberMetalCore.default._suspendObservers = _emberMetalObserver._suspendObservers;
|
5339
5386
|
|
5340
|
-
_emberMetalCore.default.IS_BINDING = _emberMetalMixin.IS_BINDING;
|
5341
5387
|
_emberMetalCore.default.required = _emberMetalMixin.required;
|
5342
5388
|
_emberMetalCore.default.aliasMethod = _emberMetalMixin.aliasMethod;
|
5343
5389
|
_emberMetalCore.default.observer = _emberMetalMixin.observer;
|
@@ -5371,6 +5417,7 @@ enifed('ember-metal/index', ['exports', 'require', 'ember-environment', 'ember/v
|
|
5371
5417
|
|
5372
5418
|
return new BackburnerAlias(arguments);
|
5373
5419
|
};
|
5420
|
+
|
5374
5421
|
_emberMetalCore.default._Backburner = _backburner.default;
|
5375
5422
|
|
5376
5423
|
/**
|
@@ -5404,7 +5451,7 @@ enifed('ember-metal/index', ['exports', 'require', 'ember-environment', 'ember/v
|
|
5404
5451
|
return _emberEnvironment.ENV.LOG_STACKTRACE_ON_DEPRECATION;
|
5405
5452
|
},
|
5406
5453
|
set: function (value) {
|
5407
|
-
|
5454
|
+
_emberEnvironment.ENV.LOG_STACKTRACE_ON_DEPRECATION = !!value;
|
5408
5455
|
},
|
5409
5456
|
enumerable: false
|
5410
5457
|
});
|
@@ -5414,7 +5461,7 @@ enifed('ember-metal/index', ['exports', 'require', 'ember-environment', 'ember/v
|
|
5414
5461
|
return _emberEnvironment.ENV.LOG_VERSION;
|
5415
5462
|
},
|
5416
5463
|
set: function (value) {
|
5417
|
-
|
5464
|
+
_emberEnvironment.ENV.LOG_VERSION = !!value;
|
5418
5465
|
},
|
5419
5466
|
enumerable: false
|
5420
5467
|
});
|
@@ -5424,7 +5471,7 @@ enifed('ember-metal/index', ['exports', 'require', 'ember-environment', 'ember/v
|
|
5424
5471
|
return _emberEnvironment.ENV.MODEL_FACTORY_INJECTIONS;
|
5425
5472
|
},
|
5426
5473
|
set: function (value) {
|
5427
|
-
|
5474
|
+
_emberEnvironment.ENV.MODEL_FACTORY_INJECTIONS = !!value;
|
5428
5475
|
},
|
5429
5476
|
enumerable: false
|
5430
5477
|
});
|
@@ -5434,7 +5481,7 @@ enifed('ember-metal/index', ['exports', 'require', 'ember-environment', 'ember/v
|
|
5434
5481
|
return _emberEnvironment.ENV.LOG_BINDINGS;
|
5435
5482
|
},
|
5436
5483
|
set: function (value) {
|
5437
|
-
|
5484
|
+
_emberEnvironment.ENV.LOG_BINDINGS = !!value;
|
5438
5485
|
},
|
5439
5486
|
enumerable: false
|
5440
5487
|
});
|
@@ -5456,7 +5503,7 @@ enifed('ember-metal/index', ['exports', 'require', 'ember-environment', 'ember/v
|
|
5456
5503
|
return _emberEnvironment.context.lookup;
|
5457
5504
|
},
|
5458
5505
|
set: function (value) {
|
5459
|
-
|
5506
|
+
_emberEnvironment.context.lookup = value;
|
5460
5507
|
},
|
5461
5508
|
enumerable: false
|
5462
5509
|
});
|
@@ -5543,6 +5590,8 @@ enifed('ember-metal/index', ['exports', 'require', 'ember-environment', 'ember/v
|
|
5543
5590
|
enifed('ember-metal/injected_property', ['exports', 'ember-metal/debug', 'ember-metal/computed', 'ember-metal/alias', 'ember-metal/properties', 'container/owner'], function (exports, _emberMetalDebug, _emberMetalComputed, _emberMetalAlias, _emberMetalProperties, _containerOwner) {
|
5544
5591
|
'use strict';
|
5545
5592
|
|
5593
|
+
exports.default = InjectedProperty;
|
5594
|
+
|
5546
5595
|
/**
|
5547
5596
|
Read-only property that returns the result of a container lookup.
|
5548
5597
|
|
@@ -5554,6 +5603,7 @@ enifed('ember-metal/injected_property', ['exports', 'ember-metal/debug', 'ember-
|
|
5554
5603
|
to the property's name
|
5555
5604
|
@private
|
5556
5605
|
*/
|
5606
|
+
|
5557
5607
|
function InjectedProperty(type, name) {
|
5558
5608
|
this.type = type;
|
5559
5609
|
this.name = name;
|
@@ -5582,10 +5632,7 @@ enifed('ember-metal/injected_property', ['exports', 'ember-metal/debug', 'ember-
|
|
5582
5632
|
|
5583
5633
|
InjectedPropertyPrototype.get = ComputedPropertyPrototype.get;
|
5584
5634
|
InjectedPropertyPrototype.readOnly = ComputedPropertyPrototype.readOnly;
|
5585
|
-
|
5586
5635
|
InjectedPropertyPrototype.teardown = ComputedPropertyPrototype.teardown;
|
5587
|
-
|
5588
|
-
exports.default = InjectedProperty;
|
5589
5636
|
});
|
5590
5637
|
enifed('ember-metal/instrumentation', ['exports', 'ember-environment', 'ember-metal/features'], function (exports, _emberEnvironment, _emberMetalFeatures) {
|
5591
5638
|
'use strict';
|
@@ -5605,11 +5652,11 @@ enifed('ember-metal/instrumentation', ['exports', 'ember-environment', 'ember-me
|
|
5605
5652
|
|
5606
5653
|
```javascript
|
5607
5654
|
Ember.subscribe("render", {
|
5608
|
-
before
|
5655
|
+
before(name, timestamp, payload) {
|
5609
5656
|
|
5610
5657
|
},
|
5611
5658
|
|
5612
|
-
after
|
5659
|
+
after(name, timestamp, payload) {
|
5613
5660
|
|
5614
5661
|
}
|
5615
5662
|
});
|
@@ -5647,9 +5694,9 @@ enifed('ember-metal/instrumentation', ['exports', 'ember-environment', 'ember-me
|
|
5647
5694
|
exports.subscribers = subscribers;
|
5648
5695
|
var cache = {};
|
5649
5696
|
|
5650
|
-
|
5697
|
+
function populateListeners(name) {
|
5651
5698
|
var listeners = [];
|
5652
|
-
var subscriber;
|
5699
|
+
var subscriber = undefined;
|
5653
5700
|
|
5654
5701
|
for (var i = 0; i < subscribers.length; i++) {
|
5655
5702
|
subscriber = subscribers[i];
|
@@ -5660,7 +5707,7 @@ enifed('ember-metal/instrumentation', ['exports', 'ember-environment', 'ember-me
|
|
5660
5707
|
|
5661
5708
|
cache[name] = listeners;
|
5662
5709
|
return listeners;
|
5663
|
-
}
|
5710
|
+
}
|
5664
5711
|
|
5665
5712
|
var time = (function () {
|
5666
5713
|
var perf = 'undefined' !== typeof window ? window.performance || {} : {};
|
@@ -5705,7 +5752,7 @@ enifed('ember-metal/instrumentation', ['exports', 'ember-environment', 'ember-me
|
|
5705
5752
|
}
|
5706
5753
|
}
|
5707
5754
|
|
5708
|
-
var flaggedInstrument;
|
5755
|
+
var flaggedInstrument = undefined;
|
5709
5756
|
if (_emberMetalFeatures.default('ember-improved-instrumentation')) {
|
5710
5757
|
exports.flaggedInstrument = flaggedInstrument = instrument;
|
5711
5758
|
} else {
|
@@ -5744,14 +5791,15 @@ enifed('ember-metal/instrumentation', ['exports', 'ember-environment', 'ember-me
|
|
5744
5791
|
var payload = _payload();
|
5745
5792
|
|
5746
5793
|
var STRUCTURED_PROFILE = _emberEnvironment.ENV.STRUCTURED_PROFILE;
|
5747
|
-
var timeName;
|
5794
|
+
var timeName = undefined;
|
5748
5795
|
if (STRUCTURED_PROFILE) {
|
5749
5796
|
timeName = name + ': ' + payload.object;
|
5750
5797
|
console.time(timeName);
|
5751
5798
|
}
|
5752
5799
|
|
5753
5800
|
var beforeValues = new Array(listeners.length);
|
5754
|
-
var i,
|
5801
|
+
var i = undefined,
|
5802
|
+
listener = undefined;
|
5755
5803
|
var timestamp = time();
|
5756
5804
|
for (i = 0; i < listeners.length; i++) {
|
5757
5805
|
listener = listeners[i];
|
@@ -5759,7 +5807,8 @@ enifed('ember-metal/instrumentation', ['exports', 'ember-environment', 'ember-me
|
|
5759
5807
|
}
|
5760
5808
|
|
5761
5809
|
return function _instrumentEnd() {
|
5762
|
-
var i,
|
5810
|
+
var i = undefined,
|
5811
|
+
listener = undefined;
|
5763
5812
|
var timestamp = time();
|
5764
5813
|
for (i = 0; i < listeners.length; i++) {
|
5765
5814
|
listener = listeners[i];
|
@@ -5789,7 +5838,7 @@ enifed('ember-metal/instrumentation', ['exports', 'ember-environment', 'ember-me
|
|
5789
5838
|
|
5790
5839
|
function subscribe(pattern, object) {
|
5791
5840
|
var paths = pattern.split('.');
|
5792
|
-
var path;
|
5841
|
+
var path = undefined;
|
5793
5842
|
var regex = [];
|
5794
5843
|
|
5795
5844
|
for (var i = 0; i < paths.length; i++) {
|
@@ -5827,7 +5876,7 @@ enifed('ember-metal/instrumentation', ['exports', 'ember-environment', 'ember-me
|
|
5827
5876
|
*/
|
5828
5877
|
|
5829
5878
|
function unsubscribe(subscriber) {
|
5830
|
-
var index;
|
5879
|
+
var index = undefined;
|
5831
5880
|
|
5832
5881
|
for (var i = 0; i < subscribers.length; i++) {
|
5833
5882
|
if (subscribers[i] === subscriber) {
|
@@ -5889,6 +5938,8 @@ enifed('ember-metal/is_blank', ['exports', 'ember-metal/is_empty'], function (ex
|
|
5889
5938
|
enifed('ember-metal/is_empty', ['exports', 'ember-metal/property_get', 'ember-metal/is_none'], function (exports, _emberMetalProperty_get, _emberMetalIs_none) {
|
5890
5939
|
'use strict';
|
5891
5940
|
|
5941
|
+
exports.default = isEmpty;
|
5942
|
+
|
5892
5943
|
/**
|
5893
5944
|
Verifies that a value is `null` or an empty string, empty array,
|
5894
5945
|
or empty function.
|
@@ -5915,6 +5966,7 @@ enifed('ember-metal/is_empty', ['exports', 'ember-metal/property_get', 'ember-me
|
|
5915
5966
|
@return {Boolean}
|
5916
5967
|
@public
|
5917
5968
|
*/
|
5969
|
+
|
5918
5970
|
function isEmpty(obj) {
|
5919
5971
|
var none = _emberMetalIs_none.default(obj);
|
5920
5972
|
if (none) {
|
@@ -5939,16 +5991,14 @@ enifed('ember-metal/is_empty', ['exports', 'ember-metal/property_get', 'ember-me
|
|
5939
5991
|
}
|
5940
5992
|
|
5941
5993
|
if (objectType === 'object') {
|
5942
|
-
var
|
5943
|
-
if (typeof
|
5944
|
-
return !
|
5994
|
+
var _length = _emberMetalProperty_get.get(obj, 'length');
|
5995
|
+
if (typeof _length === 'number') {
|
5996
|
+
return !_length;
|
5945
5997
|
}
|
5946
5998
|
}
|
5947
5999
|
|
5948
6000
|
return false;
|
5949
6001
|
}
|
5950
|
-
|
5951
|
-
exports.default = isEmpty;
|
5952
6002
|
});
|
5953
6003
|
enifed("ember-metal/is_none", ["exports"], function (exports) {
|
5954
6004
|
/**
|
@@ -6072,7 +6122,7 @@ enifed('ember-metal/libraries', ['exports', 'ember-metal/debug', 'ember-metal/fe
|
|
6072
6122
|
|
6073
6123
|
deRegister: function (name) {
|
6074
6124
|
var lib = this._getLibraryByName(name);
|
6075
|
-
var index;
|
6125
|
+
var index = undefined;
|
6076
6126
|
|
6077
6127
|
if (lib) {
|
6078
6128
|
index = this._registry.indexOf(lib);
|
@@ -6275,14 +6325,13 @@ enifed('ember-metal/map', ['exports', 'ember-metal/utils', 'ember-metal/empty_ob
|
|
6275
6325
|
}
|
6276
6326
|
|
6277
6327
|
var list = this.list;
|
6278
|
-
var i;
|
6279
6328
|
|
6280
6329
|
if (arguments.length === 2) {
|
6281
|
-
for (i = 0; i < list.length; i++) {
|
6330
|
+
for (var i = 0; i < list.length; i++) {
|
6282
6331
|
fn.call(arguments[1], list[i]);
|
6283
6332
|
}
|
6284
6333
|
} else {
|
6285
|
-
for (i = 0; i < list.length; i++) {
|
6334
|
+
for (var i = 0; i < list.length; i++) {
|
6286
6335
|
fn(list[i]);
|
6287
6336
|
}
|
6288
6337
|
}
|
@@ -6472,16 +6521,17 @@ enifed('ember-metal/map', ['exports', 'ember-metal/utils', 'ember-metal/empty_ob
|
|
6472
6521
|
}
|
6473
6522
|
|
6474
6523
|
var map = this;
|
6475
|
-
var cb,
|
6524
|
+
var cb = undefined,
|
6525
|
+
thisArg = undefined;
|
6476
6526
|
|
6477
6527
|
if (arguments.length === 2) {
|
6478
6528
|
thisArg = arguments[1];
|
6479
6529
|
cb = function (key) {
|
6480
|
-
callback.call(thisArg, map.get(key), key, map);
|
6530
|
+
return callback.call(thisArg, map.get(key), key, map);
|
6481
6531
|
};
|
6482
6532
|
} else {
|
6483
6533
|
cb = function (key) {
|
6484
|
-
callback(map.get(key), key, map);
|
6534
|
+
return callback(map.get(key), key, map);
|
6485
6535
|
};
|
6486
6536
|
}
|
6487
6537
|
|
@@ -6586,10 +6636,10 @@ enifed('ember-metal/merge', ['exports'], function (exports) {
|
|
6586
6636
|
Merge the contents of two objects together into the first object.
|
6587
6637
|
|
6588
6638
|
```javascript
|
6589
|
-
Ember.merge({first: 'Tom'}, {last: 'Dale'}); // {first: 'Tom', last: 'Dale'}
|
6590
|
-
var a = {first: 'Yehuda'};
|
6591
|
-
var b = {last: 'Katz'};
|
6592
|
-
Ember.merge(a, b); // a == {first: 'Yehuda', last: 'Katz'}, b == {last: 'Katz'}
|
6639
|
+
Ember.merge({ first: 'Tom' }, { last: 'Dale' }); // { first: 'Tom', last: 'Dale' }
|
6640
|
+
var a = { first: 'Yehuda' };
|
6641
|
+
var b = { last: 'Katz' };
|
6642
|
+
Ember.merge(a, b); // a == { first: 'Yehuda', last: 'Katz' }, b == { last: 'Katz' }
|
6593
6643
|
```
|
6594
6644
|
|
6595
6645
|
@method merge
|
@@ -6609,7 +6659,7 @@ enifed('ember-metal/merge', ['exports'], function (exports) {
|
|
6609
6659
|
}
|
6610
6660
|
|
6611
6661
|
var props = Object.keys(updates);
|
6612
|
-
var prop;
|
6662
|
+
var prop = undefined;
|
6613
6663
|
|
6614
6664
|
for (var i = 0; i < props.length; i++) {
|
6615
6665
|
prop = props[i];
|
@@ -7216,6 +7266,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/error', 'ember-metal/debug'
|
|
7216
7266
|
@module ember
|
7217
7267
|
@submodule ember-metal
|
7218
7268
|
*/
|
7269
|
+
exports.detectBinding = detectBinding;
|
7219
7270
|
exports.mixin = mixin;
|
7220
7271
|
exports.default = Mixin;
|
7221
7272
|
exports.hasUnprocessedMixins = hasUnprocessedMixins;
|
@@ -7229,7 +7280,6 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/error', 'ember-metal/debug'
|
|
7229
7280
|
function ROOT() {}
|
7230
7281
|
ROOT.__hasSuper = false;
|
7231
7282
|
|
7232
|
-
var REQUIRED;
|
7233
7283
|
var a_slice = [].slice;
|
7234
7284
|
|
7235
7285
|
function isMethod(obj) {
|
@@ -7239,7 +7289,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/error', 'ember-metal/debug'
|
|
7239
7289
|
var CONTINUE = {};
|
7240
7290
|
|
7241
7291
|
function mixinProperties(mixinsMeta, mixin) {
|
7242
|
-
var guid;
|
7292
|
+
var guid = undefined;
|
7243
7293
|
|
7244
7294
|
if (mixin instanceof Mixin) {
|
7245
7295
|
guid = _emberMetalUtils.guidFor(mixin);
|
@@ -7254,7 +7304,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/error', 'ember-metal/debug'
|
|
7254
7304
|
}
|
7255
7305
|
|
7256
7306
|
function concatenatedMixinProperties(concatProp, props, values, base) {
|
7257
|
-
var concats;
|
7307
|
+
var concats = undefined;
|
7258
7308
|
|
7259
7309
|
// reset before adding each new mixin to pickup concats from previous
|
7260
7310
|
concats = values[concatProp] || base[concatProp];
|
@@ -7266,7 +7316,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/error', 'ember-metal/debug'
|
|
7266
7316
|
}
|
7267
7317
|
|
7268
7318
|
function giveDescriptorSuper(meta, key, property, values, descs, base) {
|
7269
|
-
var superProperty;
|
7319
|
+
var superProperty = undefined;
|
7270
7320
|
|
7271
7321
|
// Computed properties override methods, and do not call super to them
|
7272
7322
|
if (values[key] === undefined) {
|
@@ -7304,7 +7354,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/error', 'ember-metal/debug'
|
|
7304
7354
|
}
|
7305
7355
|
|
7306
7356
|
function giveMethodSuper(obj, key, method, values, descs) {
|
7307
|
-
var superMethod;
|
7357
|
+
var superMethod = undefined;
|
7308
7358
|
|
7309
7359
|
// Methods overwrite computed properties, and do not call super to them.
|
7310
7360
|
if (descs[key] === undefined) {
|
@@ -7410,7 +7460,12 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/error', 'ember-metal/debug'
|
|
7410
7460
|
}
|
7411
7461
|
|
7412
7462
|
function mergeMixins(mixins, m, descs, values, base, keys) {
|
7413
|
-
var currentMixin
|
7463
|
+
var currentMixin = undefined,
|
7464
|
+
props = undefined,
|
7465
|
+
key = undefined,
|
7466
|
+
concats = undefined,
|
7467
|
+
mergings = undefined,
|
7468
|
+
meta = undefined;
|
7414
7469
|
|
7415
7470
|
function removeKeys(keyName) {
|
7416
7471
|
delete descs[keyName];
|
@@ -7455,14 +7510,16 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/error', 'ember-metal/debug'
|
|
7455
7510
|
}
|
7456
7511
|
}
|
7457
7512
|
|
7458
|
-
|
7513
|
+
function detectBinding(key) {
|
7514
|
+
var length = key.length;
|
7459
7515
|
|
7460
|
-
|
7461
|
-
if (IS_BINDING.test(key)) {
|
7462
|
-
m.writeBindings(key, value);
|
7463
|
-
}
|
7516
|
+
return length > 7 && key.charCodeAt(length - 7) === 66 && key.indexOf('inding', length - 6) !== -1;
|
7464
7517
|
}
|
7465
7518
|
|
7519
|
+
// warm both paths of above function
|
7520
|
+
detectBinding('notbound');
|
7521
|
+
detectBinding('fooBinding');
|
7522
|
+
|
7466
7523
|
function connectBindings(obj, m) {
|
7467
7524
|
// TODO Mixin.apply(instance) should disconnect binding if exists
|
7468
7525
|
m.forEachBindings(function (key, binding) {
|
@@ -7490,8 +7547,8 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/error', 'ember-metal/debug'
|
|
7490
7547
|
|
7491
7548
|
function followAlias(obj, desc, m, descs, values) {
|
7492
7549
|
var altKey = desc.methodName;
|
7493
|
-
var value;
|
7494
|
-
var possibleDesc;
|
7550
|
+
var value = undefined;
|
7551
|
+
var possibleDesc = undefined;
|
7495
7552
|
if (descs[altKey] || values[altKey]) {
|
7496
7553
|
value = values[altKey];
|
7497
7554
|
desc = descs[altKey];
|
@@ -7537,7 +7594,9 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/error', 'ember-metal/debug'
|
|
7537
7594
|
var values = {};
|
7538
7595
|
var m = _emberMetalMeta.meta(obj);
|
7539
7596
|
var keys = [];
|
7540
|
-
var key
|
7597
|
+
var key = undefined,
|
7598
|
+
value = undefined,
|
7599
|
+
desc = undefined;
|
7541
7600
|
|
7542
7601
|
obj._super = ROOT;
|
7543
7602
|
|
@@ -7574,7 +7633,11 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/error', 'ember-metal/debug'
|
|
7574
7633
|
}
|
7575
7634
|
|
7576
7635
|
replaceObserversAndListeners(obj, key, value);
|
7577
|
-
|
7636
|
+
|
7637
|
+
if (detectBinding(key)) {
|
7638
|
+
m.writeBindings(key, value);
|
7639
|
+
}
|
7640
|
+
|
7578
7641
|
_emberMetalProperties.defineProperty(obj, key, desc, value, m);
|
7579
7642
|
}
|
7580
7643
|
|
@@ -7736,7 +7799,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/error', 'ember-metal/debug'
|
|
7736
7799
|
@private
|
7737
7800
|
*/
|
7738
7801
|
MixinPrototype.reopen = function () {
|
7739
|
-
var currentMixin;
|
7802
|
+
var currentMixin = undefined;
|
7740
7803
|
|
7741
7804
|
if (this.properties) {
|
7742
7805
|
currentMixin = new Mixin(undefined, this.properties);
|
@@ -7747,7 +7810,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/error', 'ember-metal/debug'
|
|
7747
7810
|
}
|
7748
7811
|
|
7749
7812
|
var mixins = this.mixins;
|
7750
|
-
var idx;
|
7813
|
+
var idx = undefined;
|
7751
7814
|
|
7752
7815
|
for (idx = 0; idx < arguments.length; idx++) {
|
7753
7816
|
currentMixin = arguments[idx];
|
@@ -7880,7 +7943,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/error', 'ember-metal/debug'
|
|
7880
7943
|
return ret;
|
7881
7944
|
};
|
7882
7945
|
|
7883
|
-
|
7946
|
+
var REQUIRED = new _emberMetalProperties.Descriptor();
|
7884
7947
|
REQUIRED.toString = function () {
|
7885
7948
|
return '(Required Property)';
|
7886
7949
|
};
|
@@ -7916,7 +7979,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/error', 'ember-metal/debug'
|
|
7916
7979
|
moniker: Ember.aliasMethod('name')
|
7917
7980
|
});
|
7918
7981
|
|
7919
|
-
|
7982
|
+
let goodGuy = App.Person.create();
|
7920
7983
|
|
7921
7984
|
goodGuy.name(); // 'Tomhuda Katzdale'
|
7922
7985
|
goodGuy.moniker(); // 'Tomhuda Katzdale'
|
@@ -7964,7 +8027,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/error', 'ember-metal/debug'
|
|
7964
8027
|
}
|
7965
8028
|
|
7966
8029
|
var func = args.slice(-1)[0];
|
7967
|
-
var paths;
|
8030
|
+
var paths = undefined;
|
7968
8031
|
|
7969
8032
|
var addWatchedProperty = function (path) {
|
7970
8033
|
paths.push(path);
|
@@ -8047,7 +8110,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/error', 'ember-metal/debug'
|
|
8047
8110
|
valueDidChange: Ember.observer('content.value', function(obj, keyName) {
|
8048
8111
|
// only run if updating a value already in the DOM
|
8049
8112
|
if (this.get('state') === 'inDOM') {
|
8050
|
-
|
8113
|
+
let color = obj.get(keyName) > this.changingFrom ? 'green' : 'red';
|
8051
8114
|
// logic
|
8052
8115
|
}
|
8053
8116
|
}),
|
@@ -8077,7 +8140,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/error', 'ember-metal/debug'
|
|
8077
8140
|
}
|
8078
8141
|
|
8079
8142
|
var func = args.slice(-1)[0];
|
8080
|
-
var paths;
|
8143
|
+
var paths = undefined;
|
8081
8144
|
|
8082
8145
|
var addWatchedProperty = function (path) {
|
8083
8146
|
paths.push(path);
|
@@ -8106,7 +8169,6 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/error', 'ember-metal/debug'
|
|
8106
8169
|
return func;
|
8107
8170
|
}
|
8108
8171
|
|
8109
|
-
exports.IS_BINDING = IS_BINDING;
|
8110
8172
|
exports.Mixin = Mixin;
|
8111
8173
|
exports.required = required;
|
8112
8174
|
exports.REQUIRED = REQUIRED;
|
@@ -8228,6 +8290,8 @@ enifed('ember-metal/observer', ['exports', 'ember-metal/watching', 'ember-metal/
|
|
8228
8290
|
enifed('ember-metal/observer_set', ['exports', 'ember-metal/utils', 'ember-metal/events'], function (exports, _emberMetalUtils, _emberMetalEvents) {
|
8229
8291
|
'use strict';
|
8230
8292
|
|
8293
|
+
exports.default = ObserverSet;
|
8294
|
+
|
8231
8295
|
/*
|
8232
8296
|
this.observerSet = {
|
8233
8297
|
[senderGuid]: { // variable name: `keySet`
|
@@ -8246,7 +8310,6 @@ enifed('ember-metal/observer_set', ['exports', 'ember-metal/utils', 'ember-metal
|
|
8246
8310
|
...
|
8247
8311
|
]
|
8248
8312
|
*/
|
8249
|
-
exports.default = ObserverSet;
|
8250
8313
|
|
8251
8314
|
function ObserverSet() {
|
8252
8315
|
this.clear();
|
@@ -8257,7 +8320,7 @@ enifed('ember-metal/observer_set', ['exports', 'ember-metal/utils', 'ember-metal
|
|
8257
8320
|
var observers = this.observers;
|
8258
8321
|
var senderGuid = _emberMetalUtils.guidFor(sender);
|
8259
8322
|
var keySet = observerSet[senderGuid];
|
8260
|
-
var index;
|
8323
|
+
var index = undefined;
|
8261
8324
|
|
8262
8325
|
if (!keySet) {
|
8263
8326
|
observerSet[senderGuid] = keySet = {};
|
@@ -8277,7 +8340,9 @@ enifed('ember-metal/observer_set', ['exports', 'ember-metal/utils', 'ember-metal
|
|
8277
8340
|
|
8278
8341
|
ObserverSet.prototype.flush = function () {
|
8279
8342
|
var observers = this.observers;
|
8280
|
-
var i
|
8343
|
+
var i = undefined,
|
8344
|
+
observer = undefined,
|
8345
|
+
sender = undefined;
|
8281
8346
|
this.clear();
|
8282
8347
|
for (i = 0; i < observers.length; ++i) {
|
8283
8348
|
observer = observers[i];
|
@@ -8311,15 +8376,12 @@ enifed('ember-metal/path_cache', ['exports', 'ember-metal/cache'], function (exp
|
|
8311
8376
|
var isGlobalCache = new _emberMetalCache.default(1000, function (key) {
|
8312
8377
|
return IS_GLOBAL.test(key);
|
8313
8378
|
});
|
8314
|
-
|
8315
8379
|
var isGlobalPathCache = new _emberMetalCache.default(1000, function (key) {
|
8316
8380
|
return IS_GLOBAL_PATH.test(key);
|
8317
8381
|
});
|
8318
|
-
|
8319
8382
|
var hasThisCache = new _emberMetalCache.default(1000, function (key) {
|
8320
8383
|
return key.lastIndexOf(HAS_THIS, 0) === 0;
|
8321
8384
|
});
|
8322
|
-
|
8323
8385
|
var firstDotIndexCache = new _emberMetalCache.default(1000, function (key) {
|
8324
8386
|
return key.indexOf('.');
|
8325
8387
|
});
|
@@ -8509,7 +8571,10 @@ enifed('ember-metal/properties', ['exports', 'ember-metal/debug', 'ember-metal/f
|
|
8509
8571
|
*/
|
8510
8572
|
|
8511
8573
|
function defineProperty(obj, keyName, desc, data, meta) {
|
8512
|
-
var possibleDesc
|
8574
|
+
var possibleDesc = undefined,
|
8575
|
+
existingDesc = undefined,
|
8576
|
+
watching = undefined,
|
8577
|
+
value = undefined;
|
8513
8578
|
|
8514
8579
|
if (!meta) {
|
8515
8580
|
meta = _emberMetalMeta.meta(obj);
|
@@ -8698,7 +8763,8 @@ enifed('ember-metal/property_events', ['exports', 'ember-metal/utils', 'ember-me
|
|
8698
8763
|
_emberMetalTags.markObjectAsDirty(m);
|
8699
8764
|
}
|
8700
8765
|
|
8701
|
-
var WILL_SEEN,
|
8766
|
+
var WILL_SEEN = undefined,
|
8767
|
+
DID_SEEN = undefined;
|
8702
8768
|
// called whenever a property is about to change to clear the cache of any dependent keys (and notify those properties of changes, etc...)
|
8703
8769
|
function dependentKeysWillChange(obj, depKey, meta) {
|
8704
8770
|
if (obj.isDestroying) {
|
@@ -8707,15 +8773,15 @@ enifed('ember-metal/property_events', ['exports', 'ember-metal/utils', 'ember-me
|
|
8707
8773
|
|
8708
8774
|
if (meta && meta.hasDeps(depKey)) {
|
8709
8775
|
var seen = WILL_SEEN;
|
8710
|
-
var
|
8776
|
+
var _top = !seen;
|
8711
8777
|
|
8712
|
-
if (
|
8778
|
+
if (_top) {
|
8713
8779
|
seen = WILL_SEEN = {};
|
8714
8780
|
}
|
8715
8781
|
|
8716
8782
|
iterDeps(propertyWillChange, obj, depKey, seen, meta);
|
8717
8783
|
|
8718
|
-
if (
|
8784
|
+
if (_top) {
|
8719
8785
|
WILL_SEEN = null;
|
8720
8786
|
}
|
8721
8787
|
}
|
@@ -8729,22 +8795,23 @@ enifed('ember-metal/property_events', ['exports', 'ember-metal/utils', 'ember-me
|
|
8729
8795
|
|
8730
8796
|
if (meta && meta.hasDeps(depKey)) {
|
8731
8797
|
var seen = DID_SEEN;
|
8732
|
-
var
|
8798
|
+
var _top2 = !seen;
|
8733
8799
|
|
8734
|
-
if (
|
8800
|
+
if (_top2) {
|
8735
8801
|
seen = DID_SEEN = {};
|
8736
8802
|
}
|
8737
8803
|
|
8738
8804
|
iterDeps(propertyDidChange, obj, depKey, seen, meta);
|
8739
8805
|
|
8740
|
-
if (
|
8806
|
+
if (_top2) {
|
8741
8807
|
DID_SEEN = null;
|
8742
8808
|
}
|
8743
8809
|
}
|
8744
8810
|
}
|
8745
8811
|
|
8746
8812
|
function iterDeps(method, obj, depKey, seen, meta) {
|
8747
|
-
var possibleDesc,
|
8813
|
+
var possibleDesc = undefined,
|
8814
|
+
desc = undefined;
|
8748
8815
|
var guid = _emberMetalUtils.guidFor(obj);
|
8749
8816
|
var current = seen[guid];
|
8750
8817
|
|
@@ -8847,7 +8914,8 @@ enifed('ember-metal/property_events', ['exports', 'ember-metal/utils', 'ember-me
|
|
8847
8914
|
}
|
8848
8915
|
|
8849
8916
|
var eventName = keyName + ':before';
|
8850
|
-
var listeners,
|
8917
|
+
var listeners = undefined,
|
8918
|
+
added = undefined;
|
8851
8919
|
if (deferred) {
|
8852
8920
|
listeners = beforeObserverSet.add(obj, keyName, eventName);
|
8853
8921
|
added = _emberMetalEvents.accumulateListeners(obj, eventName, listeners);
|
@@ -8863,7 +8931,7 @@ enifed('ember-metal/property_events', ['exports', 'ember-metal/utils', 'ember-me
|
|
8863
8931
|
}
|
8864
8932
|
|
8865
8933
|
var eventName = keyName + ':change';
|
8866
|
-
var listeners;
|
8934
|
+
var listeners = undefined;
|
8867
8935
|
if (deferred) {
|
8868
8936
|
listeners = observerSet.add(obj, keyName, eventName);
|
8869
8937
|
_emberMetalEvents.accumulateListeners(obj, eventName, listeners);
|
@@ -8942,7 +9010,7 @@ enifed('ember-metal/property_get', ['exports', 'ember-metal/debug', 'ember-metal
|
|
8942
9010
|
|
8943
9011
|
var value = obj[keyName];
|
8944
9012
|
var desc = value !== null && typeof value === 'object' && value.isDescriptor ? value : undefined;
|
8945
|
-
var ret;
|
9013
|
+
var ret = undefined;
|
8946
9014
|
|
8947
9015
|
if (desc === undefined && _emberMetalPath_cache.isPath(keyName)) {
|
8948
9016
|
return _getPath(obj, keyName);
|
@@ -9105,10 +9173,8 @@ enifed('ember-metal/property_set', ['exports', 'ember-metal/debug', 'ember-metal
|
|
9105
9173
|
}
|
9106
9174
|
|
9107
9175
|
function setPath(root, path, value, tolerant) {
|
9108
|
-
var keyName;
|
9109
|
-
|
9110
9176
|
// get the last part of the path
|
9111
|
-
keyName = path.slice(path.lastIndexOf('.') + 1);
|
9177
|
+
var keyName = path.slice(path.lastIndexOf('.') + 1);
|
9112
9178
|
|
9113
9179
|
// get the first part of the part
|
9114
9180
|
path = path === keyName ? keyName : path.slice(0, path.length - (keyName.length + 1));
|
@@ -9166,7 +9232,8 @@ enifed("ember-metal/replace", ["exports"], function (exports) {
|
|
9166
9232
|
var size = 60000;
|
9167
9233
|
var start = idx;
|
9168
9234
|
var ends = amt;
|
9169
|
-
var count,
|
9235
|
+
var count = undefined,
|
9236
|
+
chunk = undefined;
|
9170
9237
|
|
9171
9238
|
while (args.length) {
|
9172
9239
|
count = ends > size ? size : ends;
|
@@ -9682,43 +9749,43 @@ enifed('ember-metal/run_loop', ['exports', 'ember-metal/debug', 'ember-metal/tes
|
|
9682
9749
|
`run.throttle()`.
|
9683
9750
|
|
9684
9751
|
```javascript
|
9685
|
-
|
9752
|
+
let runNext = run.next(myContext, function() {
|
9686
9753
|
// will not be executed
|
9687
9754
|
});
|
9688
9755
|
|
9689
9756
|
run.cancel(runNext);
|
9690
9757
|
|
9691
|
-
|
9758
|
+
let runLater = run.later(myContext, function() {
|
9692
9759
|
// will not be executed
|
9693
9760
|
}, 500);
|
9694
9761
|
|
9695
9762
|
run.cancel(runLater);
|
9696
9763
|
|
9697
|
-
|
9764
|
+
let runScheduleOnce = run.scheduleOnce('afterRender', myContext, function() {
|
9698
9765
|
// will not be executed
|
9699
9766
|
});
|
9700
9767
|
|
9701
9768
|
run.cancel(runScheduleOnce);
|
9702
9769
|
|
9703
|
-
|
9770
|
+
let runOnce = run.once(myContext, function() {
|
9704
9771
|
// will not be executed
|
9705
9772
|
});
|
9706
9773
|
|
9707
9774
|
run.cancel(runOnce);
|
9708
9775
|
|
9709
|
-
|
9776
|
+
let throttle = run.throttle(myContext, function() {
|
9710
9777
|
// will not be executed
|
9711
9778
|
}, 1, false);
|
9712
9779
|
|
9713
9780
|
run.cancel(throttle);
|
9714
9781
|
|
9715
|
-
|
9782
|
+
let debounce = run.debounce(myContext, function() {
|
9716
9783
|
// will not be executed
|
9717
9784
|
}, 1);
|
9718
9785
|
|
9719
9786
|
run.cancel(debounce);
|
9720
9787
|
|
9721
|
-
|
9788
|
+
let debounceImmediate = run.debounce(myContext, function() {
|
9722
9789
|
// will be executed since we passed in true (immediate)
|
9723
9790
|
}, 100, true);
|
9724
9791
|
|
@@ -9751,7 +9818,7 @@ enifed('ember-metal/run_loop', ['exports', 'ember-metal/debug', 'ember-metal/tes
|
|
9751
9818
|
console.log(this.name + ' ran.');
|
9752
9819
|
}
|
9753
9820
|
|
9754
|
-
|
9821
|
+
let myContext = { name: 'debounce' };
|
9755
9822
|
|
9756
9823
|
run.debounce(myContext, whoRan, 150);
|
9757
9824
|
|
@@ -9774,7 +9841,7 @@ enifed('ember-metal/run_loop', ['exports', 'ember-metal/debug', 'ember-metal/tes
|
|
9774
9841
|
console.log(this.name + ' ran.');
|
9775
9842
|
}
|
9776
9843
|
|
9777
|
-
|
9844
|
+
let myContext = { name: 'debounce' };
|
9778
9845
|
|
9779
9846
|
run.debounce(myContext, whoRan, 150, true);
|
9780
9847
|
|
@@ -9817,7 +9884,7 @@ enifed('ember-metal/run_loop', ['exports', 'ember-metal/debug', 'ember-metal/tes
|
|
9817
9884
|
console.log(this.name + ' ran.');
|
9818
9885
|
}
|
9819
9886
|
|
9820
|
-
|
9887
|
+
let myContext = { name: 'throttle' };
|
9821
9888
|
|
9822
9889
|
run.throttle(myContext, whoRan, 150);
|
9823
9890
|
// whoRan is invoked with context myContext
|
@@ -9878,7 +9945,7 @@ enifed('ember-metal/set_properties', ['exports', 'ember-metal/property_events',
|
|
9878
9945
|
observers will be buffered.
|
9879
9946
|
|
9880
9947
|
```javascript
|
9881
|
-
|
9948
|
+
let anObject = Ember.Object.create();
|
9882
9949
|
|
9883
9950
|
anObject.setProperties({
|
9884
9951
|
firstName: 'Stanley',
|
@@ -9900,7 +9967,7 @@ enifed('ember-metal/set_properties', ['exports', 'ember-metal/property_events',
|
|
9900
9967
|
}
|
9901
9968
|
_emberMetalProperty_events.changeProperties(function () {
|
9902
9969
|
var props = Object.keys(properties);
|
9903
|
-
var propertyName;
|
9970
|
+
var propertyName = undefined;
|
9904
9971
|
|
9905
9972
|
for (var i = 0; i < props.length; i++) {
|
9906
9973
|
propertyName = props[i];
|
@@ -10220,7 +10287,7 @@ enifed('ember-metal/utils', ['exports'], function (exports) {
|
|
10220
10287
|
return '(null)';
|
10221
10288
|
}
|
10222
10289
|
|
10223
|
-
var ret;
|
10290
|
+
var ret = undefined;
|
10224
10291
|
var type = typeof obj;
|
10225
10292
|
|
10226
10293
|
// Don't allow prototype changes to String etc. to change the guidFor
|
@@ -10347,7 +10414,7 @@ enifed('ember-metal/utils', ['exports'], function (exports) {
|
|
10347
10414
|
Checks to see if the `methodName` exists on the `obj`.
|
10348
10415
|
|
10349
10416
|
```javascript
|
10350
|
-
|
10417
|
+
let foo = { bar: function() { return 'bar'; }, baz: null };
|
10351
10418
|
|
10352
10419
|
Ember.canInvoke(foo, 'bar'); // true
|
10353
10420
|
Ember.canInvoke(foo, 'baz'); // false
|
@@ -10370,7 +10437,7 @@ enifed('ember-metal/utils', ['exports'], function (exports) {
|
|
10370
10437
|
and if it does, invokes it with the arguments passed.
|
10371
10438
|
|
10372
10439
|
```javascript
|
10373
|
-
|
10440
|
+
let d = new Date('03/15/2013');
|
10374
10441
|
|
10375
10442
|
Ember.tryInvoke(d, 'getTime'); // 1363320000000
|
10376
10443
|
Ember.tryInvoke(d, 'setFullYear', [2014]); // 1394856000000
|
@@ -10410,7 +10477,7 @@ enifed('ember-metal/utils', ['exports'], function (exports) {
|
|
10410
10477
|
Ember.makeArray('lindsay'); // ['lindsay']
|
10411
10478
|
Ember.makeArray([1, 2, 42]); // [1, 2, 42]
|
10412
10479
|
|
10413
|
-
|
10480
|
+
let controller = Ember.ArrayProxy.create({ content: [] });
|
10414
10481
|
|
10415
10482
|
Ember.makeArray(controller) === controller; // true
|
10416
10483
|
```
|
@@ -10465,7 +10532,7 @@ enifed('ember-metal/utils', ['exports'], function (exports) {
|
|
10465
10532
|
}
|
10466
10533
|
|
10467
10534
|
// Object.prototype.toString === {}.toString
|
10468
|
-
var v;
|
10535
|
+
var v = undefined;
|
10469
10536
|
var ret = [];
|
10470
10537
|
for (var key in obj) {
|
10471
10538
|
if (obj.hasOwnProperty(key)) {
|
@@ -10789,7 +10856,10 @@ enifed('ember-metal/watching', ['exports', 'ember-metal/chains', 'ember-metal/wa
|
|
10789
10856
|
|
10790
10857
|
function destroy(obj) {
|
10791
10858
|
var meta = _emberMetalMeta.peekMeta(obj);
|
10792
|
-
var node
|
10859
|
+
var node = undefined,
|
10860
|
+
nodes = undefined,
|
10861
|
+
key = undefined,
|
10862
|
+
nodeObject = undefined;
|
10793
10863
|
|
10794
10864
|
if (meta) {
|
10795
10865
|
_emberMetalMeta.deleteMeta(obj);
|
@@ -10821,7 +10891,7 @@ enifed('ember-metal/watching', ['exports', 'ember-metal/chains', 'ember-metal/wa
|
|
10821
10891
|
}
|
10822
10892
|
}
|
10823
10893
|
});
|
10824
|
-
enifed('ember-metal/weak_map', ['exports', 'ember-metal/
|
10894
|
+
enifed('ember-metal/weak_map', ['exports', 'ember-metal/utils', 'ember-metal/meta'], function (exports, _emberMetalUtils, _emberMetalMeta) {
|
10825
10895
|
'use strict';
|
10826
10896
|
|
10827
10897
|
exports.default = WeakMap;
|
@@ -10829,9 +10899,15 @@ enifed('ember-metal/weak_map', ['exports', 'ember-metal/debug', 'ember-metal/uti
|
|
10829
10899
|
var id = 0;
|
10830
10900
|
function UNDEFINED() {}
|
10831
10901
|
|
10902
|
+
// Returns whether Type(value) is Object according to the terminology in the spec
|
10903
|
+
function isObject(value) {
|
10904
|
+
return typeof value === 'object' && value !== null || typeof value === 'function';
|
10905
|
+
}
|
10906
|
+
|
10832
10907
|
/*
|
10833
|
-
* @private
|
10834
10908
|
* @class Ember.WeakMap
|
10909
|
+
* @public
|
10910
|
+
* @category ember-metal-weakmap
|
10835
10911
|
*
|
10836
10912
|
* A partial polyfill for [WeakMap](http://www.ecma-international.org/ecma-262/6.0/#sec-weakmap-objects).
|
10837
10913
|
*
|
@@ -10842,10 +10918,26 @@ enifed('ember-metal/weak_map', ['exports', 'ember-metal/debug', 'ember-metal/uti
|
|
10842
10918
|
* in ember-metal.
|
10843
10919
|
*/
|
10844
10920
|
|
10845
|
-
function WeakMap() {
|
10846
|
-
|
10921
|
+
function WeakMap(iterable) {
|
10922
|
+
if (!(this instanceof WeakMap)) {
|
10923
|
+
throw new TypeError('Constructor WeakMap requires \'new\'');
|
10924
|
+
}
|
10847
10925
|
|
10848
10926
|
this._id = _emberMetalUtils.GUID_KEY + id++;
|
10927
|
+
|
10928
|
+
if (iterable === null || iterable === undefined) {
|
10929
|
+
return;
|
10930
|
+
} else if (Array.isArray(iterable)) {
|
10931
|
+
for (var i = 0; i < iterable.length; i++) {
|
10932
|
+
var _iterable$i = iterable[i];
|
10933
|
+
var key = _iterable$i[0];
|
10934
|
+
var value = _iterable$i[1];
|
10935
|
+
|
10936
|
+
this.set(key, value);
|
10937
|
+
}
|
10938
|
+
} else {
|
10939
|
+
throw new TypeError('The weak map constructor polyfill only supports an array argument');
|
10940
|
+
}
|
10849
10941
|
}
|
10850
10942
|
|
10851
10943
|
/*
|
@@ -10854,6 +10946,10 @@ enifed('ember-metal/weak_map', ['exports', 'ember-metal/debug', 'ember-metal/uti
|
|
10854
10946
|
* @return {Any} stored value
|
10855
10947
|
*/
|
10856
10948
|
WeakMap.prototype.get = function (obj) {
|
10949
|
+
if (!isObject(obj)) {
|
10950
|
+
return undefined;
|
10951
|
+
}
|
10952
|
+
|
10857
10953
|
var meta = _emberMetalMeta.peekMeta(obj);
|
10858
10954
|
if (meta) {
|
10859
10955
|
var map = meta.readableWeak();
|
@@ -10874,7 +10970,9 @@ enifed('ember-metal/weak_map', ['exports', 'ember-metal/debug', 'ember-metal/uti
|
|
10874
10970
|
* @return {WeakMap} the weak map
|
10875
10971
|
*/
|
10876
10972
|
WeakMap.prototype.set = function (obj, value) {
|
10877
|
-
|
10973
|
+
if (!isObject(obj)) {
|
10974
|
+
throw new TypeError('Invalid value used as weak map key');
|
10975
|
+
}
|
10878
10976
|
|
10879
10977
|
if (value === undefined) {
|
10880
10978
|
value = UNDEFINED;
|
@@ -10891,6 +10989,10 @@ enifed('ember-metal/weak_map', ['exports', 'ember-metal/debug', 'ember-metal/uti
|
|
10891
10989
|
* @return {boolean} if the key exists
|
10892
10990
|
*/
|
10893
10991
|
WeakMap.prototype.has = function (obj) {
|
10992
|
+
if (!isObject(obj)) {
|
10993
|
+
return false;
|
10994
|
+
}
|
10995
|
+
|
10894
10996
|
var meta = _emberMetalMeta.peekMeta(obj);
|
10895
10997
|
if (meta) {
|
10896
10998
|
var map = meta.readableWeak();
|
@@ -10915,6 +11017,14 @@ enifed('ember-metal/weak_map', ['exports', 'ember-metal/debug', 'ember-metal/uti
|
|
10915
11017
|
return false;
|
10916
11018
|
}
|
10917
11019
|
};
|
11020
|
+
|
11021
|
+
/*
|
11022
|
+
* @method toString
|
11023
|
+
* @return {String}
|
11024
|
+
*/
|
11025
|
+
WeakMap.prototype.toString = function () {
|
11026
|
+
return '[object WeakMap]';
|
11027
|
+
};
|
10918
11028
|
});
|
10919
11029
|
enifed('ember-runtime/compare', ['exports', 'ember-runtime/utils', 'ember-runtime/mixins/comparable'], function (exports, _emberRuntimeUtils, _emberRuntimeMixinsComparable) {
|
10920
11030
|
'use strict';
|
@@ -11134,11 +11244,11 @@ enifed('ember-runtime/computed/computed_macros', ['exports', 'ember-metal/debug'
|
|
11134
11244
|
Example
|
11135
11245
|
|
11136
11246
|
```javascript
|
11137
|
-
|
11247
|
+
let ToDoList = Ember.Object.extend({
|
11138
11248
|
isDone: Ember.computed.empty('todos')
|
11139
11249
|
});
|
11140
11250
|
|
11141
|
-
|
11251
|
+
let todoList = ToDoList.create({
|
11142
11252
|
todos: ['Unit Test', 'Documentation', 'Release']
|
11143
11253
|
});
|
11144
11254
|
|
@@ -11169,11 +11279,11 @@ enifed('ember-runtime/computed/computed_macros', ['exports', 'ember-metal/debug'
|
|
11169
11279
|
Example
|
11170
11280
|
|
11171
11281
|
```javascript
|
11172
|
-
|
11282
|
+
let Hamster = Ember.Object.extend({
|
11173
11283
|
hasStuff: Ember.computed.notEmpty('backpack')
|
11174
11284
|
});
|
11175
11285
|
|
11176
|
-
|
11286
|
+
let hamster = Hamster.create({ backpack: ['Food', 'Sleeping Bag', 'Tent'] });
|
11177
11287
|
|
11178
11288
|
hamster.get('hasStuff'); // true
|
11179
11289
|
hamster.get('backpack').clear(); // []
|
@@ -11202,11 +11312,11 @@ enifed('ember-runtime/computed/computed_macros', ['exports', 'ember-metal/debug'
|
|
11202
11312
|
Example
|
11203
11313
|
|
11204
11314
|
```javascript
|
11205
|
-
|
11315
|
+
let Hamster = Ember.Object.extend({
|
11206
11316
|
isHungry: Ember.computed.none('food')
|
11207
11317
|
});
|
11208
11318
|
|
11209
|
-
|
11319
|
+
let hamster = Hamster.create();
|
11210
11320
|
|
11211
11321
|
hamster.get('isHungry'); // true
|
11212
11322
|
hamster.set('food', 'Banana');
|
@@ -11236,11 +11346,11 @@ enifed('ember-runtime/computed/computed_macros', ['exports', 'ember-metal/debug'
|
|
11236
11346
|
Example
|
11237
11347
|
|
11238
11348
|
```javascript
|
11239
|
-
|
11349
|
+
let User = Ember.Object.extend({
|
11240
11350
|
isAnonymous: Ember.computed.not('loggedIn')
|
11241
11351
|
});
|
11242
11352
|
|
11243
|
-
|
11353
|
+
let user = User.create({loggedIn: false});
|
11244
11354
|
|
11245
11355
|
user.get('isAnonymous'); // true
|
11246
11356
|
user.set('loggedIn', true);
|
@@ -11266,11 +11376,11 @@ enifed('ember-runtime/computed/computed_macros', ['exports', 'ember-metal/debug'
|
|
11266
11376
|
into a boolean value.
|
11267
11377
|
|
11268
11378
|
```javascript
|
11269
|
-
|
11379
|
+
let Hamster = Ember.Object.extend({
|
11270
11380
|
hasBananas: Ember.computed.bool('numBananas')
|
11271
11381
|
});
|
11272
11382
|
|
11273
|
-
|
11383
|
+
let hamster = Hamster.create();
|
11274
11384
|
|
11275
11385
|
hamster.get('hasBananas'); // false
|
11276
11386
|
hamster.set('numBananas', 0);
|
@@ -11303,11 +11413,11 @@ enifed('ember-runtime/computed/computed_macros', ['exports', 'ember-metal/debug'
|
|
11303
11413
|
Example
|
11304
11414
|
|
11305
11415
|
```javascript
|
11306
|
-
|
11416
|
+
let User = Ember.Object.extend({
|
11307
11417
|
hasValidEmail: Ember.computed.match('email', /^.+@.+\..+$/)
|
11308
11418
|
});
|
11309
11419
|
|
11310
|
-
|
11420
|
+
let user = User.create({loggedIn: false});
|
11311
11421
|
|
11312
11422
|
user.get('hasValidEmail'); // false
|
11313
11423
|
user.set('email', '');
|
@@ -11340,11 +11450,11 @@ enifed('ember-runtime/computed/computed_macros', ['exports', 'ember-metal/debug'
|
|
11340
11450
|
Example
|
11341
11451
|
|
11342
11452
|
```javascript
|
11343
|
-
|
11453
|
+
let Hamster = Ember.Object.extend({
|
11344
11454
|
napTime: Ember.computed.equal('state', 'sleepy')
|
11345
11455
|
});
|
11346
11456
|
|
11347
|
-
|
11457
|
+
let hamster = Hamster.create();
|
11348
11458
|
|
11349
11459
|
hamster.get('napTime'); // false
|
11350
11460
|
hamster.set('state', 'sleepy');
|
@@ -11375,11 +11485,11 @@ enifed('ember-runtime/computed/computed_macros', ['exports', 'ember-metal/debug'
|
|
11375
11485
|
Example
|
11376
11486
|
|
11377
11487
|
```javascript
|
11378
|
-
|
11488
|
+
let Hamster = Ember.Object.extend({
|
11379
11489
|
hasTooManyBananas: Ember.computed.gt('numBananas', 10)
|
11380
11490
|
});
|
11381
11491
|
|
11382
|
-
|
11492
|
+
let hamster = Hamster.create();
|
11383
11493
|
|
11384
11494
|
hamster.get('hasTooManyBananas'); // false
|
11385
11495
|
hamster.set('numBananas', 3);
|
@@ -11410,11 +11520,11 @@ enifed('ember-runtime/computed/computed_macros', ['exports', 'ember-metal/debug'
|
|
11410
11520
|
Example
|
11411
11521
|
|
11412
11522
|
```javascript
|
11413
|
-
|
11523
|
+
let Hamster = Ember.Object.extend({
|
11414
11524
|
hasTooManyBananas: Ember.computed.gte('numBananas', 10)
|
11415
11525
|
});
|
11416
11526
|
|
11417
|
-
|
11527
|
+
let hamster = Hamster.create();
|
11418
11528
|
|
11419
11529
|
hamster.get('hasTooManyBananas'); // false
|
11420
11530
|
hamster.set('numBananas', 3);
|
@@ -11445,11 +11555,11 @@ enifed('ember-runtime/computed/computed_macros', ['exports', 'ember-metal/debug'
|
|
11445
11555
|
Example
|
11446
11556
|
|
11447
11557
|
```javascript
|
11448
|
-
|
11558
|
+
let Hamster = Ember.Object.extend({
|
11449
11559
|
needsMoreBananas: Ember.computed.lt('numBananas', 3)
|
11450
11560
|
});
|
11451
11561
|
|
11452
|
-
|
11562
|
+
let hamster = Hamster.create();
|
11453
11563
|
|
11454
11564
|
hamster.get('needsMoreBananas'); // true
|
11455
11565
|
hamster.set('numBananas', 3);
|
@@ -11480,11 +11590,11 @@ enifed('ember-runtime/computed/computed_macros', ['exports', 'ember-metal/debug'
|
|
11480
11590
|
Example
|
11481
11591
|
|
11482
11592
|
```javascript
|
11483
|
-
|
11593
|
+
let Hamster = Ember.Object.extend({
|
11484
11594
|
needsMoreBananas: Ember.computed.lte('numBananas', 3)
|
11485
11595
|
});
|
11486
11596
|
|
11487
|
-
|
11597
|
+
let hamster = Hamster.create();
|
11488
11598
|
|
11489
11599
|
hamster.get('needsMoreBananas'); // true
|
11490
11600
|
hamster.set('numBananas', 5);
|
@@ -11515,17 +11625,17 @@ enifed('ember-runtime/computed/computed_macros', ['exports', 'ember-metal/debug'
|
|
11515
11625
|
You may pass in more than two properties and even use
|
11516
11626
|
property brace expansion. The computed property will
|
11517
11627
|
return the first falsy value or last truthy value
|
11518
|
-
just like JavaScript's
|
11628
|
+
just like JavaScript's `&&` operator.
|
11519
11629
|
|
11520
11630
|
Example
|
11521
11631
|
|
11522
11632
|
```javascript
|
11523
|
-
|
11633
|
+
let Hamster = Ember.Object.extend({
|
11524
11634
|
readyForCamp: Ember.computed.and('hasTent', 'hasBackpack'),
|
11525
11635
|
readyForHike: Ember.computed.and('hasWalkingStick', 'hasBackpack')
|
11526
11636
|
});
|
11527
11637
|
|
11528
|
-
|
11638
|
+
let tomster = Hamster.create();
|
11529
11639
|
|
11530
11640
|
tomster.get('readyForCamp'); // false
|
11531
11641
|
tomster.set('hasTent', true);
|
@@ -11562,12 +11672,12 @@ enifed('ember-runtime/computed/computed_macros', ['exports', 'ember-metal/debug'
|
|
11562
11672
|
Example
|
11563
11673
|
|
11564
11674
|
```javascript
|
11565
|
-
|
11675
|
+
let Hamster = Ember.Object.extend({
|
11566
11676
|
readyForRain: Ember.computed.or('hasJacket', 'hasUmbrella'),
|
11567
11677
|
readyForBeach: Ember.computed.or('{hasSunscreen,hasUmbrella}')
|
11568
11678
|
});
|
11569
11679
|
|
11570
|
-
|
11680
|
+
let tomster = Hamster.create();
|
11571
11681
|
|
11572
11682
|
tomster.get('readyForRain'); // undefined
|
11573
11683
|
tomster.set('hasUmbrella', true);
|
@@ -11596,12 +11706,12 @@ enifed('ember-runtime/computed/computed_macros', ['exports', 'ember-metal/debug'
|
|
11596
11706
|
though they were called on the original property.
|
11597
11707
|
|
11598
11708
|
```javascript
|
11599
|
-
|
11709
|
+
let Person = Ember.Object.extend({
|
11600
11710
|
name: 'Alex Matchneer',
|
11601
11711
|
nomen: Ember.computed.alias('name')
|
11602
11712
|
});
|
11603
11713
|
|
11604
|
-
|
11714
|
+
let alex = Person.create();
|
11605
11715
|
|
11606
11716
|
alex.get('nomen'); // 'Alex Matchneer'
|
11607
11717
|
alex.get('name'); // 'Alex Matchneer'
|
@@ -11628,13 +11738,13 @@ enifed('ember-runtime/computed/computed_macros', ['exports', 'ember-metal/debug'
|
|
11628
11738
|
Example
|
11629
11739
|
|
11630
11740
|
```javascript
|
11631
|
-
|
11741
|
+
let User = Ember.Object.extend({
|
11632
11742
|
firstName: null,
|
11633
11743
|
lastName: null,
|
11634
11744
|
nickName: Ember.computed.oneWay('firstName')
|
11635
11745
|
});
|
11636
11746
|
|
11637
|
-
|
11747
|
+
let teddy = User.create({
|
11638
11748
|
firstName: 'Teddy',
|
11639
11749
|
lastName: 'Zeenny'
|
11640
11750
|
});
|
@@ -11678,13 +11788,13 @@ enifed('ember-runtime/computed/computed_macros', ['exports', 'ember-metal/debug'
|
|
11678
11788
|
Example
|
11679
11789
|
|
11680
11790
|
```javascript
|
11681
|
-
|
11791
|
+
let User = Ember.Object.extend({
|
11682
11792
|
firstName: null,
|
11683
11793
|
lastName: null,
|
11684
11794
|
nickName: Ember.computed.readOnly('firstName')
|
11685
11795
|
});
|
11686
11796
|
|
11687
|
-
|
11797
|
+
let teddy = User.create({
|
11688
11798
|
firstName: 'Teddy',
|
11689
11799
|
lastName: 'Zeenny'
|
11690
11800
|
});
|
@@ -11714,9 +11824,24 @@ enifed('ember-runtime/computed/computed_macros', ['exports', 'ember-metal/debug'
|
|
11714
11824
|
though they were called on the original property, but also
|
11715
11825
|
print a deprecation warning.
|
11716
11826
|
|
11827
|
+
```javascript
|
11828
|
+
let Hamster = Ember.Object.extend({
|
11829
|
+
bananaCount: Ember.computed.deprecatingAlias('cavendishCount', {
|
11830
|
+
id: 'hamster.deprecate-banana',
|
11831
|
+
until: '3.0.0'
|
11832
|
+
})
|
11833
|
+
});
|
11834
|
+
|
11835
|
+
let hamster = Hamster.create();
|
11836
|
+
|
11837
|
+
hamster.set('bananaCount', 5); // Prints a deprecation warning.
|
11838
|
+
hamster.get('cavendishCount'); // 5
|
11839
|
+
```
|
11840
|
+
|
11717
11841
|
@method deprecatingAlias
|
11718
11842
|
@for Ember.computed
|
11719
11843
|
@param {String} dependentKey
|
11844
|
+
@param {Object} options Options for `Ember.deprecate`.
|
11720
11845
|
@return {Ember.ComputedProperty} computed property which creates an
|
11721
11846
|
alias with a deprecation to the original value for property.
|
11722
11847
|
@since 1.7.0
|
@@ -11777,7 +11902,7 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-metal
|
|
11777
11902
|
|
11778
11903
|
function arrayMacro(dependentKey, callback) {
|
11779
11904
|
// This is a bit ugly
|
11780
|
-
var propertyName;
|
11905
|
+
var propertyName = undefined;
|
11781
11906
|
if (/@each/.test(dependentKey)) {
|
11782
11907
|
propertyName = dependentKey.replace(/\.@each.*$/, '');
|
11783
11908
|
} else {
|
@@ -11831,12 +11956,12 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-metal
|
|
11831
11956
|
array is empty.
|
11832
11957
|
|
11833
11958
|
```javascript
|
11834
|
-
|
11959
|
+
let Person = Ember.Object.extend({
|
11835
11960
|
childAges: Ember.computed.mapBy('children', 'age'),
|
11836
11961
|
maxChildAge: Ember.computed.max('childAges')
|
11837
11962
|
});
|
11838
11963
|
|
11839
|
-
|
11964
|
+
let lordByron = Person.create({ children: [] });
|
11840
11965
|
|
11841
11966
|
lordByron.get('maxChildAge'); // -Infinity
|
11842
11967
|
lordByron.get('children').pushObject({
|
@@ -11879,12 +12004,12 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-metal
|
|
11879
12004
|
array is empty.
|
11880
12005
|
|
11881
12006
|
```javascript
|
11882
|
-
|
12007
|
+
let Person = Ember.Object.extend({
|
11883
12008
|
childAges: Ember.computed.mapBy('children', 'age'),
|
11884
12009
|
minChildAge: Ember.computed.min('childAges')
|
11885
12010
|
});
|
11886
12011
|
|
11887
|
-
|
12012
|
+
let lordByron = Person.create({ children: [] });
|
11888
12013
|
|
11889
12014
|
lordByron.get('minChildAge'); // Infinity
|
11890
12015
|
lordByron.get('children').pushObject({
|
@@ -11935,13 +12060,13 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-metal
|
|
11935
12060
|
Example
|
11936
12061
|
|
11937
12062
|
```javascript
|
11938
|
-
|
12063
|
+
let Hamster = Ember.Object.extend({
|
11939
12064
|
excitingChores: Ember.computed.map('chores', function(chore, index) {
|
11940
12065
|
return chore.toUpperCase() + '!';
|
11941
12066
|
})
|
11942
12067
|
});
|
11943
12068
|
|
11944
|
-
|
12069
|
+
let hamster = Hamster.create({
|
11945
12070
|
chores: ['clean', 'write more unit tests']
|
11946
12071
|
});
|
11947
12072
|
|
@@ -11966,11 +12091,11 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-metal
|
|
11966
12091
|
Returns an array mapped to the specified key.
|
11967
12092
|
|
11968
12093
|
```javascript
|
11969
|
-
|
12094
|
+
let Person = Ember.Object.extend({
|
11970
12095
|
childAges: Ember.computed.mapBy('children', 'age')
|
11971
12096
|
});
|
11972
12097
|
|
11973
|
-
|
12098
|
+
let lordByron = Person.create({ children: [] });
|
11974
12099
|
|
11975
12100
|
lordByron.get('childAges'); // []
|
11976
12101
|
lordByron.get('children').pushObject({ name: 'Augusta Ada Byron', age: 7 });
|
@@ -12014,13 +12139,13 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-metal
|
|
12014
12139
|
```
|
12015
12140
|
|
12016
12141
|
```javascript
|
12017
|
-
|
12142
|
+
let Hamster = Ember.Object.extend({
|
12018
12143
|
remainingChores: Ember.computed.filter('chores', function(chore, index, array) {
|
12019
12144
|
return !chore.done;
|
12020
12145
|
})
|
12021
12146
|
});
|
12022
12147
|
|
12023
|
-
|
12148
|
+
let hamster = Hamster.create({
|
12024
12149
|
chores: [
|
12025
12150
|
{ name: 'cook', done: true },
|
12026
12151
|
{ name: 'clean', done: true },
|
@@ -12049,11 +12174,11 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-metal
|
|
12049
12174
|
Filters the array by the property and value
|
12050
12175
|
|
12051
12176
|
```javascript
|
12052
|
-
|
12177
|
+
let Hamster = Ember.Object.extend({
|
12053
12178
|
remainingChores: Ember.computed.filterBy('chores', 'done', false)
|
12054
12179
|
});
|
12055
12180
|
|
12056
|
-
|
12181
|
+
let hamster = Hamster.create({
|
12057
12182
|
chores: [
|
12058
12183
|
{ name: 'cook', done: true },
|
12059
12184
|
{ name: 'clean', done: true },
|
@@ -12074,7 +12199,7 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-metal
|
|
12074
12199
|
*/
|
12075
12200
|
|
12076
12201
|
function filterBy(dependentKey, propertyKey, value) {
|
12077
|
-
var callback;
|
12202
|
+
var callback = undefined;
|
12078
12203
|
|
12079
12204
|
if (arguments.length === 2) {
|
12080
12205
|
callback = function (item) {
|
@@ -12096,11 +12221,11 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-metal
|
|
12096
12221
|
Example
|
12097
12222
|
|
12098
12223
|
```javascript
|
12099
|
-
|
12224
|
+
let Hamster = Ember.Object.extend({
|
12100
12225
|
uniqueFruits: Ember.computed.uniq('fruits')
|
12101
12226
|
});
|
12102
12227
|
|
12103
|
-
|
12228
|
+
let hamster = Hamster.create({
|
12104
12229
|
fruits: [
|
12105
12230
|
'banana',
|
12106
12231
|
'grape',
|
@@ -12148,12 +12273,14 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-metal
|
|
12148
12273
|
/**
|
12149
12274
|
A computed property which returns a new array with all the unique
|
12150
12275
|
elements from an array, with uniqueness determined by specific key.
|
12276
|
+
|
12151
12277
|
Example
|
12278
|
+
|
12152
12279
|
```javascript
|
12153
|
-
|
12280
|
+
let Hamster = Ember.Object.extend({
|
12154
12281
|
uniqueFruits: Ember.computed.uniqBy('fruits', 'id')
|
12155
12282
|
});
|
12156
|
-
|
12283
|
+
let hamster = Hamster.create({
|
12157
12284
|
fruits: [
|
12158
12285
|
{ id: 1, 'banana' },
|
12159
12286
|
{ id: 2, 'grape' },
|
@@ -12163,6 +12290,7 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-metal
|
|
12163
12290
|
});
|
12164
12291
|
hamster.get('uniqueFruits'); // [ { id: 1, 'banana' }, { id: 2, 'grape' }, { id: 3, 'peach' }]
|
12165
12292
|
```
|
12293
|
+
|
12166
12294
|
@method uniqBy
|
12167
12295
|
@for Ember.computed
|
12168
12296
|
@param {String} dependentKey
|
@@ -12210,7 +12338,7 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-metal
|
|
12210
12338
|
Example
|
12211
12339
|
|
12212
12340
|
```javascript
|
12213
|
-
|
12341
|
+
let obj = Ember.Object.extend({
|
12214
12342
|
friendsInCommon: Ember.computed.intersect('adaFriends', 'charlesFriends')
|
12215
12343
|
}).create({
|
12216
12344
|
adaFriends: ['Charles Babbage', 'John Hobhouse', 'William King', 'Mary Somerville'],
|
@@ -12273,12 +12401,12 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-metal
|
|
12273
12401
|
Example
|
12274
12402
|
|
12275
12403
|
```javascript
|
12276
|
-
|
12404
|
+
let Hamster = Ember.Object.extend({
|
12277
12405
|
likes: ['banana', 'grape', 'kale'],
|
12278
12406
|
wants: Ember.computed.setDiff('likes', 'fruits')
|
12279
12407
|
});
|
12280
12408
|
|
12281
|
-
|
12409
|
+
let hamster = Hamster.create({
|
12282
12410
|
fruits: [
|
12283
12411
|
'grape',
|
12284
12412
|
'kale',
|
@@ -12327,11 +12455,11 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-metal
|
|
12327
12455
|
Example
|
12328
12456
|
|
12329
12457
|
```javascript
|
12330
|
-
|
12458
|
+
let Hamster = Ember.Object.extend({
|
12331
12459
|
clothes: Ember.computed.collect('hat', 'shirt')
|
12332
12460
|
});
|
12333
12461
|
|
12334
|
-
|
12462
|
+
let hamster = Hamster.create();
|
12335
12463
|
|
12336
12464
|
hamster.get('clothes'); // [null, null]
|
12337
12465
|
hamster.set('hat', 'Camp Hat');
|
@@ -12392,7 +12520,7 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-metal
|
|
12392
12520
|
Example
|
12393
12521
|
|
12394
12522
|
```javascript
|
12395
|
-
|
12523
|
+
let ToDoList = Ember.Object.extend({
|
12396
12524
|
// using standard ascending sort
|
12397
12525
|
todosSorting: ['name'],
|
12398
12526
|
sortedTodos: Ember.computed.sort('todos', 'todosSorting'),
|
@@ -12413,7 +12541,7 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-metal
|
|
12413
12541
|
})
|
12414
12542
|
});
|
12415
12543
|
|
12416
|
-
|
12544
|
+
let todoList = ToDoList.create({todos: [
|
12417
12545
|
{ name: 'Unit Test', priority: 2 },
|
12418
12546
|
{ name: 'Documentation', priority: 3 },
|
12419
12547
|
{ name: 'Release', priority: 1 }
|
@@ -12475,7 +12603,7 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-metal
|
|
12475
12603
|
|
12476
12604
|
if (activeObservers) {
|
12477
12605
|
activeObservers.forEach(function (args) {
|
12478
|
-
_emberMetalObserver.removeObserver.apply(null, args);
|
12606
|
+
return _emberMetalObserver.removeObserver.apply(null, args);
|
12479
12607
|
});
|
12480
12608
|
}
|
12481
12609
|
|
@@ -12603,7 +12731,9 @@ enifed('ember-runtime/copy', ['exports', 'ember-metal/debug', 'ember-runtime/sys
|
|
12603
12731
|
exports.default = copy;
|
12604
12732
|
|
12605
12733
|
function _copy(obj, deep, seen, copies) {
|
12606
|
-
var ret
|
12734
|
+
var ret = undefined,
|
12735
|
+
loc = undefined,
|
12736
|
+
key = undefined;
|
12607
12737
|
|
12608
12738
|
// primitive data types are immutable, just return them.
|
12609
12739
|
if (typeof obj !== 'object' || obj === null) {
|
@@ -12717,7 +12847,7 @@ enifed('ember-runtime/ext/function', ['exports', 'ember-environment', 'ember-met
|
|
12717
12847
|
return this.get('firstName') + ' ' + this.get('lastName');
|
12718
12848
|
}.property() // Call this flag to mark the function as a property
|
12719
12849
|
});
|
12720
|
-
|
12850
|
+
let president = MyApp.President.create({
|
12721
12851
|
firstName: 'Barack',
|
12722
12852
|
lastName: 'Obama'
|
12723
12853
|
});
|
@@ -13233,18 +13363,17 @@ enifed('ember-runtime/inject', ['exports', 'ember-metal/debug', 'ember-metal/inj
|
|
13233
13363
|
function validatePropertyInjections(factory) {
|
13234
13364
|
var proto = factory.proto();
|
13235
13365
|
var types = [];
|
13236
|
-
var key, desc, validator, i;
|
13237
13366
|
|
13238
|
-
for (key in proto) {
|
13239
|
-
desc = proto[key];
|
13367
|
+
for (var key in proto) {
|
13368
|
+
var desc = proto[key];
|
13240
13369
|
if (desc instanceof _emberMetalInjected_property.default && types.indexOf(desc.type) === -1) {
|
13241
13370
|
types.push(desc.type);
|
13242
13371
|
}
|
13243
13372
|
}
|
13244
13373
|
|
13245
13374
|
if (types.length) {
|
13246
|
-
for (i = 0; i < types.length; i++) {
|
13247
|
-
validator = typeValidators[types[i]];
|
13375
|
+
for (var i = 0; i < types.length; i++) {
|
13376
|
+
var validator = typeValidators[types[i]];
|
13248
13377
|
|
13249
13378
|
if (typeof validator === 'function') {
|
13250
13379
|
validator(factory);
|
@@ -13429,14 +13558,14 @@ enifed('ember-runtime/mixins/action_handler', ['exports', 'ember-metal/debug', '
|
|
13429
13558
|
```js
|
13430
13559
|
App.CanDisplayBanner = Ember.Mixin.create({
|
13431
13560
|
actions: {
|
13432
|
-
displayBanner
|
13561
|
+
displayBanner(msg) {
|
13433
13562
|
// ...
|
13434
13563
|
}
|
13435
13564
|
}
|
13436
13565
|
});
|
13437
13566
|
App.WelcomeRoute = Ember.Route.extend(App.CanDisplayBanner, {
|
13438
13567
|
actions: {
|
13439
|
-
playMusic
|
13568
|
+
playMusic() {
|
13440
13569
|
// ...
|
13441
13570
|
}
|
13442
13571
|
}
|
@@ -13453,7 +13582,7 @@ enifed('ember-runtime/mixins/action_handler', ['exports', 'ember-metal/debug', '
|
|
13453
13582
|
```js
|
13454
13583
|
App.SongRoute = Ember.Route.extend({
|
13455
13584
|
actions: {
|
13456
|
-
myAction
|
13585
|
+
myAction() {
|
13457
13586
|
this.controllerFor("song");
|
13458
13587
|
this.transitionTo("other.route");
|
13459
13588
|
...
|
@@ -13468,14 +13597,14 @@ enifed('ember-runtime/mixins/action_handler', ['exports', 'ember-metal/debug', '
|
|
13468
13597
|
```js
|
13469
13598
|
App.DebugRoute = Ember.Mixin.create({
|
13470
13599
|
actions: {
|
13471
|
-
debugRouteInformation
|
13600
|
+
debugRouteInformation() {
|
13472
13601
|
console.debug("trololo");
|
13473
13602
|
}
|
13474
13603
|
}
|
13475
13604
|
});
|
13476
13605
|
App.AnnoyingDebugRoute = Ember.Route.extend(App.DebugRoute, {
|
13477
13606
|
actions: {
|
13478
|
-
debugRouteInformation
|
13607
|
+
debugRouteInformation() {
|
13479
13608
|
// also call the debugRouteInformation of mixed in App.DebugRoute
|
13480
13609
|
this._super(...arguments);
|
13481
13610
|
// show additional annoyance
|
@@ -13502,7 +13631,7 @@ enifed('ember-runtime/mixins/action_handler', ['exports', 'ember-metal/debug', '
|
|
13502
13631
|
});
|
13503
13632
|
App.AlbumSongRoute = Ember.Route.extend({
|
13504
13633
|
actions: {
|
13505
|
-
startPlaying
|
13634
|
+
startPlaying() {
|
13506
13635
|
// ...
|
13507
13636
|
if (actionShouldAlsoBeTriggeredOnParentRoute) {
|
13508
13637
|
return true;
|
@@ -13529,10 +13658,10 @@ enifed('ember-runtime/mixins/action_handler', ['exports', 'ember-metal/debug', '
|
|
13529
13658
|
```js
|
13530
13659
|
App.WelcomeRoute = Ember.Route.extend({
|
13531
13660
|
actions: {
|
13532
|
-
playTheme
|
13661
|
+
playTheme() {
|
13533
13662
|
this.send('playMusic', 'theme.mp3');
|
13534
13663
|
},
|
13535
|
-
playMusic
|
13664
|
+
playMusic(track) {
|
13536
13665
|
// ...
|
13537
13666
|
}
|
13538
13667
|
}
|
@@ -13548,7 +13677,7 @@ enifed('ember-runtime/mixins/action_handler', ['exports', 'ember-metal/debug', '
|
|
13548
13677
|
args[_key - 1] = arguments[_key];
|
13549
13678
|
}
|
13550
13679
|
|
13551
|
-
var target;
|
13680
|
+
var target = undefined;
|
13552
13681
|
|
13553
13682
|
if (this.actions && this.actions[actionName]) {
|
13554
13683
|
var shouldBubble = this.actions[actionName].apply(this, args) === true;
|
@@ -13609,6 +13738,8 @@ enifed('ember-runtime/mixins/array', ['exports', 'ember-metal/core', 'ember-meta
|
|
13609
13738
|
exports.addArrayObserver = addArrayObserver;
|
13610
13739
|
exports.removeArrayObserver = removeArrayObserver;
|
13611
13740
|
exports.objectAt = objectAt;
|
13741
|
+
exports.arrayContentWillChange = arrayContentWillChange;
|
13742
|
+
exports.arrayContentDidChange = arrayContentDidChange;
|
13612
13743
|
exports.isEmberArray = isEmberArray;
|
13613
13744
|
|
13614
13745
|
function arrayObserversHelper(obj, target, opts, operation, notify) {
|
@@ -13646,6 +13777,100 @@ enifed('ember-runtime/mixins/array', ['exports', 'ember-metal/core', 'ember-meta
|
|
13646
13777
|
return content[idx];
|
13647
13778
|
}
|
13648
13779
|
|
13780
|
+
function arrayContentWillChange(array, startIdx, removeAmt, addAmt) {
|
13781
|
+
var removing = undefined,
|
13782
|
+
lim = undefined;
|
13783
|
+
|
13784
|
+
// if no args are passed assume everything changes
|
13785
|
+
if (startIdx === undefined) {
|
13786
|
+
startIdx = 0;
|
13787
|
+
removeAmt = addAmt = -1;
|
13788
|
+
} else {
|
13789
|
+
if (removeAmt === undefined) {
|
13790
|
+
removeAmt = -1;
|
13791
|
+
}
|
13792
|
+
|
13793
|
+
if (addAmt === undefined) {
|
13794
|
+
addAmt = -1;
|
13795
|
+
}
|
13796
|
+
}
|
13797
|
+
|
13798
|
+
if (array.__each) {
|
13799
|
+
array.__each.arrayWillChange(array, startIdx, removeAmt, addAmt);
|
13800
|
+
}
|
13801
|
+
|
13802
|
+
_emberMetalEvents.sendEvent(array, '@array:before', [array, startIdx, removeAmt, addAmt]);
|
13803
|
+
|
13804
|
+
if (startIdx >= 0 && removeAmt >= 0 && _emberMetalProperty_get.get(array, 'hasEnumerableObservers')) {
|
13805
|
+
removing = [];
|
13806
|
+
lim = startIdx + removeAmt;
|
13807
|
+
|
13808
|
+
for (var idx = startIdx; idx < lim; idx++) {
|
13809
|
+
removing.push(objectAt(array, idx));
|
13810
|
+
}
|
13811
|
+
} else {
|
13812
|
+
removing = removeAmt;
|
13813
|
+
}
|
13814
|
+
|
13815
|
+
array.enumerableContentWillChange(removing, addAmt);
|
13816
|
+
|
13817
|
+
return array;
|
13818
|
+
}
|
13819
|
+
|
13820
|
+
function arrayContentDidChange(array, startIdx, removeAmt, addAmt) {
|
13821
|
+
_emberMetalTags.markObjectAsDirty(_emberMetalMeta.meta(array));
|
13822
|
+
|
13823
|
+
// if no args are passed assume everything changes
|
13824
|
+
if (startIdx === undefined) {
|
13825
|
+
startIdx = 0;
|
13826
|
+
removeAmt = addAmt = -1;
|
13827
|
+
} else {
|
13828
|
+
if (removeAmt === undefined) {
|
13829
|
+
removeAmt = -1;
|
13830
|
+
}
|
13831
|
+
|
13832
|
+
if (addAmt === undefined) {
|
13833
|
+
addAmt = -1;
|
13834
|
+
}
|
13835
|
+
}
|
13836
|
+
|
13837
|
+
var adding = undefined;
|
13838
|
+
if (startIdx >= 0 && addAmt >= 0 && _emberMetalProperty_get.get(array, 'hasEnumerableObservers')) {
|
13839
|
+
adding = [];
|
13840
|
+
var lim = startIdx + addAmt;
|
13841
|
+
|
13842
|
+
for (var idx = startIdx; idx < lim; idx++) {
|
13843
|
+
adding.push(objectAt(array, idx));
|
13844
|
+
}
|
13845
|
+
} else {
|
13846
|
+
adding = addAmt;
|
13847
|
+
}
|
13848
|
+
|
13849
|
+
array.enumerableContentDidChange(removeAmt, adding);
|
13850
|
+
|
13851
|
+
if (array.__each) {
|
13852
|
+
array.__each.arrayDidChange(array, startIdx, removeAmt, addAmt);
|
13853
|
+
}
|
13854
|
+
|
13855
|
+
_emberMetalEvents.sendEvent(array, '@array:change', [array, startIdx, removeAmt, addAmt]);
|
13856
|
+
|
13857
|
+
var length = _emberMetalProperty_get.get(array, 'length');
|
13858
|
+
var cachedFirst = _emberMetalComputed.cacheFor(array, 'firstObject');
|
13859
|
+
var cachedLast = _emberMetalComputed.cacheFor(array, 'lastObject');
|
13860
|
+
|
13861
|
+
if (objectAt(array, 0) !== cachedFirst) {
|
13862
|
+
_emberMetalProperty_events.propertyWillChange(array, 'firstObject');
|
13863
|
+
_emberMetalProperty_events.propertyDidChange(array, 'firstObject');
|
13864
|
+
}
|
13865
|
+
|
13866
|
+
if (objectAt(array, length - 1) !== cachedLast) {
|
13867
|
+
_emberMetalProperty_events.propertyWillChange(array, 'lastObject');
|
13868
|
+
_emberMetalProperty_events.propertyDidChange(array, 'lastObject');
|
13869
|
+
}
|
13870
|
+
|
13871
|
+
return array;
|
13872
|
+
}
|
13873
|
+
|
13649
13874
|
var EMBER_ARRAY = _emberMetalSymbol.default('EMBER_ARRAY');
|
13650
13875
|
|
13651
13876
|
function isEmberArray(obj) {
|
@@ -13751,7 +13976,6 @@ enifed('ember-runtime/mixins/array', ['exports', 'ember-metal/core', 'ember-meta
|
|
13751
13976
|
return ret;
|
13752
13977
|
}, _Mixin$create.indexOf = function (object, startAt) {
|
13753
13978
|
var len = _emberMetalProperty_get.get(this, 'length');
|
13754
|
-
var idx;
|
13755
13979
|
|
13756
13980
|
if (startAt === undefined) {
|
13757
13981
|
startAt = 0;
|
@@ -13761,7 +13985,7 @@ enifed('ember-runtime/mixins/array', ['exports', 'ember-metal/core', 'ember-meta
|
|
13761
13985
|
startAt += len;
|
13762
13986
|
}
|
13763
13987
|
|
13764
|
-
for (idx = startAt; idx < len; idx++) {
|
13988
|
+
for (var idx = startAt; idx < len; idx++) {
|
13765
13989
|
if (objectAt(this, idx) === object) {
|
13766
13990
|
return idx;
|
13767
13991
|
}
|
@@ -13770,7 +13994,6 @@ enifed('ember-runtime/mixins/array', ['exports', 'ember-metal/core', 'ember-meta
|
|
13770
13994
|
return -1;
|
13771
13995
|
}, _Mixin$create.lastIndexOf = function (object, startAt) {
|
13772
13996
|
var len = _emberMetalProperty_get.get(this, 'length');
|
13773
|
-
var idx;
|
13774
13997
|
|
13775
13998
|
if (startAt === undefined || startAt >= len) {
|
13776
13999
|
startAt = len - 1;
|
@@ -13780,7 +14003,7 @@ enifed('ember-runtime/mixins/array', ['exports', 'ember-metal/core', 'ember-meta
|
|
13780
14003
|
startAt += len;
|
13781
14004
|
}
|
13782
14005
|
|
13783
|
-
for (idx = startAt; idx >= 0; idx--) {
|
14006
|
+
for (var idx = startAt; idx >= 0; idx--) {
|
13784
14007
|
if (objectAt(this, idx) === object) {
|
13785
14008
|
return idx;
|
13786
14009
|
}
|
@@ -13794,95 +14017,9 @@ enifed('ember-runtime/mixins/array', ['exports', 'ember-metal/core', 'ember-meta
|
|
13794
14017
|
}, _Mixin$create.hasArrayObservers = _emberMetalComputed.computed(function () {
|
13795
14018
|
return _emberMetalEvents.hasListeners(this, '@array:change') || _emberMetalEvents.hasListeners(this, '@array:before');
|
13796
14019
|
}), _Mixin$create.arrayContentWillChange = function (startIdx, removeAmt, addAmt) {
|
13797
|
-
|
13798
|
-
|
13799
|
-
// if no args are passed assume everything changes
|
13800
|
-
if (startIdx === undefined) {
|
13801
|
-
startIdx = 0;
|
13802
|
-
removeAmt = addAmt = -1;
|
13803
|
-
} else {
|
13804
|
-
if (removeAmt === undefined) {
|
13805
|
-
removeAmt = -1;
|
13806
|
-
}
|
13807
|
-
|
13808
|
-
if (addAmt === undefined) {
|
13809
|
-
addAmt = -1;
|
13810
|
-
}
|
13811
|
-
}
|
13812
|
-
|
13813
|
-
if (this.__each) {
|
13814
|
-
this.__each.arrayWillChange(this, startIdx, removeAmt, addAmt);
|
13815
|
-
}
|
13816
|
-
|
13817
|
-
_emberMetalEvents.sendEvent(this, '@array:before', [this, startIdx, removeAmt, addAmt]);
|
13818
|
-
|
13819
|
-
if (startIdx >= 0 && removeAmt >= 0 && _emberMetalProperty_get.get(this, 'hasEnumerableObservers')) {
|
13820
|
-
removing = [];
|
13821
|
-
lim = startIdx + removeAmt;
|
13822
|
-
|
13823
|
-
for (var idx = startIdx; idx < lim; idx++) {
|
13824
|
-
removing.push(objectAt(this, idx));
|
13825
|
-
}
|
13826
|
-
} else {
|
13827
|
-
removing = removeAmt;
|
13828
|
-
}
|
13829
|
-
|
13830
|
-
this.enumerableContentWillChange(removing, addAmt);
|
13831
|
-
|
13832
|
-
return this;
|
14020
|
+
return arrayContentWillChange(this, startIdx, removeAmt, addAmt);
|
13833
14021
|
}, _Mixin$create.arrayContentDidChange = function (startIdx, removeAmt, addAmt) {
|
13834
|
-
|
13835
|
-
|
13836
|
-
_emberMetalTags.markObjectAsDirty(_emberMetalMeta.meta(this));
|
13837
|
-
|
13838
|
-
// if no args are passed assume everything changes
|
13839
|
-
if (startIdx === undefined) {
|
13840
|
-
startIdx = 0;
|
13841
|
-
removeAmt = addAmt = -1;
|
13842
|
-
} else {
|
13843
|
-
if (removeAmt === undefined) {
|
13844
|
-
removeAmt = -1;
|
13845
|
-
}
|
13846
|
-
|
13847
|
-
if (addAmt === undefined) {
|
13848
|
-
addAmt = -1;
|
13849
|
-
}
|
13850
|
-
}
|
13851
|
-
|
13852
|
-
if (startIdx >= 0 && addAmt >= 0 && _emberMetalProperty_get.get(this, 'hasEnumerableObservers')) {
|
13853
|
-
adding = [];
|
13854
|
-
lim = startIdx + addAmt;
|
13855
|
-
|
13856
|
-
for (var idx = startIdx; idx < lim; idx++) {
|
13857
|
-
adding.push(objectAt(this, idx));
|
13858
|
-
}
|
13859
|
-
} else {
|
13860
|
-
adding = addAmt;
|
13861
|
-
}
|
13862
|
-
|
13863
|
-
this.enumerableContentDidChange(removeAmt, adding);
|
13864
|
-
|
13865
|
-
if (this.__each) {
|
13866
|
-
this.__each.arrayDidChange(this, startIdx, removeAmt, addAmt);
|
13867
|
-
}
|
13868
|
-
|
13869
|
-
_emberMetalEvents.sendEvent(this, '@array:change', [this, startIdx, removeAmt, addAmt]);
|
13870
|
-
|
13871
|
-
var length = _emberMetalProperty_get.get(this, 'length');
|
13872
|
-
var cachedFirst = _emberMetalComputed.cacheFor(this, 'firstObject');
|
13873
|
-
var cachedLast = _emberMetalComputed.cacheFor(this, 'lastObject');
|
13874
|
-
|
13875
|
-
if (objectAt(this, 0) !== cachedFirst) {
|
13876
|
-
_emberMetalProperty_events.propertyWillChange(this, 'firstObject');
|
13877
|
-
_emberMetalProperty_events.propertyDidChange(this, 'firstObject');
|
13878
|
-
}
|
13879
|
-
|
13880
|
-
if (objectAt(this, length - 1) !== cachedLast) {
|
13881
|
-
_emberMetalProperty_events.propertyWillChange(this, 'lastObject');
|
13882
|
-
_emberMetalProperty_events.propertyDidChange(this, 'lastObject');
|
13883
|
-
}
|
13884
|
-
|
13885
|
-
return this;
|
14022
|
+
return arrayContentDidChange(this, startIdx, removeAmt, addAmt);
|
13886
14023
|
}, _Mixin$create['@each'] = _emberMetalComputed.computed(function () {
|
13887
14024
|
// TODO use Symbol or add to meta
|
13888
14025
|
if (!this.__each) {
|
@@ -13918,7 +14055,6 @@ enifed('ember-runtime/mixins/array', ['exports', 'ember-metal/core', 'ember-meta
|
|
13918
14055
|
*/
|
13919
14056
|
includes: function (obj, startAt) {
|
13920
14057
|
var len = _emberMetalProperty_get.get(this, 'length');
|
13921
|
-
var idx, currentObj;
|
13922
14058
|
|
13923
14059
|
if (startAt === undefined) {
|
13924
14060
|
startAt = 0;
|
@@ -13928,8 +14064,8 @@ enifed('ember-runtime/mixins/array', ['exports', 'ember-metal/core', 'ember-meta
|
|
13928
14064
|
startAt += len;
|
13929
14065
|
}
|
13930
14066
|
|
13931
|
-
for (idx = startAt; idx < len; idx++) {
|
13932
|
-
currentObj = objectAt(this, idx);
|
14067
|
+
for (var idx = startAt; idx < len; idx++) {
|
14068
|
+
var currentObj = objectAt(this, idx);
|
13933
14069
|
|
13934
14070
|
// SameValueZero comparison (NaN !== NaN)
|
13935
14071
|
if (obj === currentObj || obj !== obj && currentObj !== currentObj) {
|
@@ -13962,7 +14098,7 @@ enifed('ember-runtime/mixins/array', ['exports', 'ember-metal/core', 'ember-meta
|
|
13962
14098
|
(i.e. `myArray.get(0)`), then you do not need to implement this method
|
13963
14099
|
yourself.
|
13964
14100
|
```javascript
|
13965
|
-
|
14101
|
+
let arr = ['a', 'b', 'c', 'd'];
|
13966
14102
|
arr.objectAt(0); // 'a'
|
13967
14103
|
arr.objectAt(3); // 'd'
|
13968
14104
|
arr.objectAt(-1); // undefined
|
@@ -13978,7 +14114,7 @@ enifed('ember-runtime/mixins/array', ['exports', 'ember-metal/core', 'ember-meta
|
|
13978
14114
|
/**
|
13979
14115
|
This returns the objects at the specified indexes, using `objectAt`.
|
13980
14116
|
```javascript
|
13981
|
-
|
14117
|
+
let arr = ['a', 'b', 'c', 'd'];
|
13982
14118
|
arr.objectsAt([0, 1, 2]); // ['a', 'b', 'c']
|
13983
14119
|
arr.objectsAt([2, 3, 4]); // ['c', 'd', undefined]
|
13984
14120
|
```
|
@@ -14008,7 +14144,7 @@ enifed('ember-runtime/mixins/array', ['exports', 'ember-metal/core', 'ember-meta
|
|
14008
14144
|
uses the observable array methods to retrieve the objects for the new
|
14009
14145
|
slice.
|
14010
14146
|
```javascript
|
14011
|
-
|
14147
|
+
let arr = ['red', 'green', 'blue'];
|
14012
14148
|
arr.slice(0); // ['red', 'green', 'blue']
|
14013
14149
|
arr.slice(0, 2); // ['red', 'green']
|
14014
14150
|
arr.slice(1, 100); // ['green', 'blue']
|
@@ -14026,7 +14162,7 @@ enifed('ember-runtime/mixins/array', ['exports', 'ember-metal/core', 'ember-meta
|
|
14026
14162
|
search is 0. If it's negative, will count backward from
|
14027
14163
|
the end of the array. Returns -1 if no match is found.
|
14028
14164
|
```javascript
|
14029
|
-
|
14165
|
+
let arr = ['a', 'b', 'c', 'd', 'a'];
|
14030
14166
|
arr.indexOf('a'); // 0
|
14031
14167
|
arr.indexOf('z'); // -1
|
14032
14168
|
arr.indexOf('a', 2); // 4
|
@@ -14047,7 +14183,7 @@ enifed('ember-runtime/mixins/array', ['exports', 'ember-metal/core', 'ember-meta
|
|
14047
14183
|
the last position. If it's negative, will count backward
|
14048
14184
|
from the end of the array. Returns -1 if no match is found.
|
14049
14185
|
```javascript
|
14050
|
-
|
14186
|
+
let arr = ['a', 'b', 'c', 'd', 'a'];
|
14051
14187
|
arr.lastIndexOf('a'); // 4
|
14052
14188
|
arr.lastIndexOf('z'); // -1
|
14053
14189
|
arr.lastIndexOf('a', 2); // 0
|
@@ -14245,23 +14381,23 @@ enifed('ember-runtime/mixins/container_proxy', ['exports', 'ember-metal/run_loop
|
|
14245
14381
|
The singleton is scoped to the container, allowing multiple containers
|
14246
14382
|
to all have their own locally scoped singletons.
|
14247
14383
|
```javascript
|
14248
|
-
|
14249
|
-
|
14384
|
+
let registry = new Registry();
|
14385
|
+
let container = registry.container();
|
14250
14386
|
registry.register('api:twitter', Twitter);
|
14251
|
-
|
14387
|
+
let twitter = container.lookup('api:twitter');
|
14252
14388
|
twitter instanceof Twitter; // => true
|
14253
14389
|
// by default the container will return singletons
|
14254
|
-
|
14390
|
+
let twitter2 = container.lookup('api:twitter');
|
14255
14391
|
twitter2 instanceof Twitter; // => true
|
14256
14392
|
twitter === twitter2; //=> true
|
14257
14393
|
```
|
14258
14394
|
If singletons are not wanted an optional flag can be provided at lookup.
|
14259
14395
|
```javascript
|
14260
|
-
|
14261
|
-
|
14396
|
+
let registry = new Registry();
|
14397
|
+
let container = registry.container();
|
14262
14398
|
registry.register('api:twitter', Twitter);
|
14263
|
-
|
14264
|
-
|
14399
|
+
let twitter = container.lookup('api:twitter', { singleton: false });
|
14400
|
+
let twitter2 = container.lookup('api:twitter', { singleton: false });
|
14265
14401
|
twitter === twitter2; //=> false
|
14266
14402
|
```
|
14267
14403
|
@public
|
@@ -14285,6 +14421,20 @@ enifed('ember-runtime/mixins/container_proxy', ['exports', 'ember-metal/run_loop
|
|
14285
14421
|
return this.__container__.lookupFactory(fullName, options);
|
14286
14422
|
},
|
14287
14423
|
|
14424
|
+
/**
|
14425
|
+
Given a name and a source path, resolve the fullName
|
14426
|
+
@private
|
14427
|
+
@method _resolveLocalLookupName
|
14428
|
+
@param {String} fullName
|
14429
|
+
@param {String} source
|
14430
|
+
@return {String}
|
14431
|
+
*/
|
14432
|
+
_resolveLocalLookupName: function (name, source) {
|
14433
|
+
return this.__container__.registry.expandLocalLookup('component:' + name, {
|
14434
|
+
source: source
|
14435
|
+
});
|
14436
|
+
},
|
14437
|
+
|
14288
14438
|
/**
|
14289
14439
|
@private
|
14290
14440
|
*/
|
@@ -14350,8 +14500,6 @@ enifed('ember-runtime/mixins/controller', ['exports', 'ember-metal/mixin', 'embe
|
|
14350
14500
|
*/
|
14351
14501
|
target: null,
|
14352
14502
|
|
14353
|
-
parentController: null,
|
14354
|
-
|
14355
14503
|
store: null,
|
14356
14504
|
|
14357
14505
|
/**
|
@@ -14591,9 +14739,9 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/property_get'
|
|
14591
14739
|
contains only one object, this method should always return that object.
|
14592
14740
|
If your enumerable is empty, this method should return `undefined`.
|
14593
14741
|
```javascript
|
14594
|
-
|
14742
|
+
let arr = ['a', 'b', 'c'];
|
14595
14743
|
arr.get('firstObject'); // 'a'
|
14596
|
-
|
14744
|
+
let arr = [];
|
14597
14745
|
arr.get('firstObject'); // undefined
|
14598
14746
|
```
|
14599
14747
|
@property firstObject
|
@@ -14620,9 +14768,9 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/property_get'
|
|
14620
14768
|
contains only one object, this method should always return that object.
|
14621
14769
|
If your enumerable is empty, this method should return `undefined`.
|
14622
14770
|
```javascript
|
14623
|
-
|
14771
|
+
let arr = ['a', 'b', 'c'];
|
14624
14772
|
arr.get('lastObject'); // 'c'
|
14625
|
-
|
14773
|
+
let arr = [];
|
14626
14774
|
arr.get('lastObject'); // undefined
|
14627
14775
|
```
|
14628
14776
|
@property lastObject
|
@@ -14640,7 +14788,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/property_get'
|
|
14640
14788
|
var context = popCtx();
|
14641
14789
|
var idx = 0;
|
14642
14790
|
var last = null;
|
14643
|
-
var cur;
|
14791
|
+
var cur = undefined;
|
14644
14792
|
|
14645
14793
|
do {
|
14646
14794
|
last = cur;
|
@@ -14657,11 +14805,12 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/property_get'
|
|
14657
14805
|
default version will iterate through the enumerable until the object
|
14658
14806
|
is found. You may want to override this with a more efficient version.
|
14659
14807
|
```javascript
|
14660
|
-
|
14808
|
+
let arr = ['a', 'b', 'c'];
|
14661
14809
|
arr.contains('a'); // true
|
14662
14810
|
arr.contains('z'); // false
|
14663
14811
|
```
|
14664
14812
|
@method contains
|
14813
|
+
@deprecated Use `Enumerable#includes` instead. See http://emberjs.com/deprecations/v2.x#toc_enumerable-contains
|
14665
14814
|
@param {Object} obj The object to search for.
|
14666
14815
|
@return {Boolean} `true` if object is found in enumerable.
|
14667
14816
|
@public
|
@@ -14735,7 +14884,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/property_get'
|
|
14735
14884
|
|
14736
14885
|
/**
|
14737
14886
|
Sets the value on the named property for each member. This is more
|
14738
|
-
|
14887
|
+
efficient than using other methods defined on this helper. If the object
|
14739
14888
|
implements Ember.Observable, the value will be changed to `set(),` otherwise
|
14740
14889
|
it will be set directly. `null` objects are skipped.
|
14741
14890
|
@method setEach
|
@@ -14746,7 +14895,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/property_get'
|
|
14746
14895
|
*/
|
14747
14896
|
setEach: function (key, value) {
|
14748
14897
|
return this.forEach(function (item) {
|
14749
|
-
_emberMetalProperty_set.set(item, key, value);
|
14898
|
+
return _emberMetalProperty_set.set(item, key, value);
|
14750
14899
|
});
|
14751
14900
|
},
|
14752
14901
|
|
@@ -14775,7 +14924,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/property_get'
|
|
14775
14924
|
var ret = emberA();
|
14776
14925
|
|
14777
14926
|
this.forEach(function (x, idx, i) {
|
14778
|
-
ret[idx] = callback.call(target, x, idx, i);
|
14927
|
+
return ret[idx] = callback.call(target, x, idx, i);
|
14779
14928
|
});
|
14780
14929
|
|
14781
14930
|
return ret;
|
@@ -14885,11 +15034,9 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/property_get'
|
|
14885
15034
|
var exactValue = function (item) {
|
14886
15035
|
return _emberMetalProperty_get.get(item, key) === value;
|
14887
15036
|
};
|
14888
|
-
|
14889
15037
|
var hasValue = function (item) {
|
14890
15038
|
return !!_emberMetalProperty_get.get(item, key);
|
14891
15039
|
};
|
14892
|
-
|
14893
15040
|
var use = arguments.length === 2 ? exactValue : hasValue;
|
14894
15041
|
|
14895
15042
|
return this.reject(use);
|
@@ -14928,7 +15075,8 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/property_get'
|
|
14928
15075
|
var context = popCtx();
|
14929
15076
|
var found = false;
|
14930
15077
|
var last = null;
|
14931
|
-
var next,
|
15078
|
+
var next = undefined,
|
15079
|
+
ret = undefined;
|
14932
15080
|
|
14933
15081
|
for (var idx = 0; idx < len && !found; idx++) {
|
14934
15082
|
next = this.nextObject(idx, last, context);
|
@@ -15042,13 +15190,13 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/property_get'
|
|
15042
15190
|
var context = popCtx();
|
15043
15191
|
var found = false;
|
15044
15192
|
var last = null;
|
15045
|
-
var next
|
15193
|
+
var next = undefined;
|
15046
15194
|
|
15047
15195
|
if (target === undefined) {
|
15048
15196
|
target = null;
|
15049
15197
|
}
|
15050
15198
|
|
15051
|
-
for (idx = 0; idx < len && !found; idx++) {
|
15199
|
+
for (var idx = 0; idx < len && !found; idx++) {
|
15052
15200
|
next = this.nextObject(idx, last, context);
|
15053
15201
|
found = callback.call(target, next, idx, this);
|
15054
15202
|
last = next;
|
@@ -15154,7 +15302,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/property_get'
|
|
15154
15302
|
var ret = emberA();
|
15155
15303
|
|
15156
15304
|
this.forEach(function (o, idx) {
|
15157
|
-
ret[idx] = o;
|
15305
|
+
return ret[idx] = o;
|
15158
15306
|
});
|
15159
15307
|
|
15160
15308
|
return ret;
|
@@ -15163,7 +15311,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/property_get'
|
|
15163
15311
|
/**
|
15164
15312
|
Returns a copy of the array with all `null` and `undefined` elements removed.
|
15165
15313
|
```javascript
|
15166
|
-
|
15314
|
+
let arr = ['a', null, 'c', undefined];
|
15167
15315
|
arr.compact(); // ['a', 'c']
|
15168
15316
|
```
|
15169
15317
|
@method compact
|
@@ -15181,7 +15329,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/property_get'
|
|
15181
15329
|
implementation returns an array regardless of the receiver type.
|
15182
15330
|
If the receiver does not contain the value it returns the original enumerable.
|
15183
15331
|
```javascript
|
15184
|
-
|
15332
|
+
let arr = ['a', 'b', 'a', 'c'];
|
15185
15333
|
arr.without('a'); // ['b', 'c']
|
15186
15334
|
```
|
15187
15335
|
@method without
|
@@ -15209,7 +15357,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/property_get'
|
|
15209
15357
|
Returns a new enumerable that contains only unique values. The default
|
15210
15358
|
implementation returns an array regardless of the receiver type.
|
15211
15359
|
```javascript
|
15212
|
-
|
15360
|
+
let arr = ['a', 'a', 'b', 'b'];
|
15213
15361
|
arr.uniq(); // ['a', 'b']
|
15214
15362
|
```
|
15215
15363
|
This only works on primitive data types, e.g. Strings, Numbers, etc.
|
@@ -15329,7 +15477,9 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/property_get'
|
|
15329
15477
|
@private
|
15330
15478
|
*/
|
15331
15479
|
enumerableContentWillChange: function (removing, adding) {
|
15332
|
-
var removeCnt
|
15480
|
+
var removeCnt = undefined,
|
15481
|
+
addCnt = undefined,
|
15482
|
+
hasDelta = undefined;
|
15333
15483
|
|
15334
15484
|
if ('number' === typeof removing) {
|
15335
15485
|
removeCnt = removing;
|
@@ -15383,7 +15533,9 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/property_get'
|
|
15383
15533
|
@private
|
15384
15534
|
*/
|
15385
15535
|
enumerableContentDidChange: function (removing, adding) {
|
15386
|
-
var removeCnt
|
15536
|
+
var removeCnt = undefined,
|
15537
|
+
addCnt = undefined,
|
15538
|
+
hasDelta = undefined;
|
15387
15539
|
|
15388
15540
|
if ('number' === typeof removing) {
|
15389
15541
|
removeCnt = removing;
|
@@ -15458,7 +15610,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/property_get'
|
|
15458
15610
|
Returns a new enumerable that contains only items containing a unique property value.
|
15459
15611
|
The default implementation returns an array regardless of the receiver type.
|
15460
15612
|
```javascript
|
15461
|
-
|
15613
|
+
let arr = [{ value: 'a' }, { value: 'a' }, { value: 'b' }, { value: 'b' }];
|
15462
15614
|
arr.uniqBy('value'); // [{ value: 'a' }, { value: 'b' }]
|
15463
15615
|
```
|
15464
15616
|
@method uniqBy
|
@@ -15503,7 +15655,8 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/property_get'
|
|
15503
15655
|
_emberMetalDebug.assert('Enumerable#includes cannot accept a second argument "startAt" as enumerable items are unordered.', arguments.length === 1);
|
15504
15656
|
|
15505
15657
|
var len = _emberMetalProperty_get.get(this, 'length');
|
15506
|
-
var idx,
|
15658
|
+
var idx = undefined,
|
15659
|
+
next = undefined;
|
15507
15660
|
var last = null;
|
15508
15661
|
var found = false;
|
15509
15662
|
|
@@ -15806,6 +15959,7 @@ enifed('ember-runtime/mixins/mutable_array', ['exports', 'ember-metal/property_g
|
|
15806
15959
|
|
15807
15960
|
'use strict';
|
15808
15961
|
|
15962
|
+
exports.removeAt = removeAt;
|
15809
15963
|
var OUT_OF_RANGE_EXCEPTION = 'Index out of range';
|
15810
15964
|
var EMPTY = [];
|
15811
15965
|
|
@@ -15813,6 +15967,23 @@ enifed('ember-runtime/mixins/mutable_array', ['exports', 'ember-metal/property_g
|
|
15813
15967
|
// HELPERS
|
15814
15968
|
//
|
15815
15969
|
|
15970
|
+
function removeAt(array, start, len) {
|
15971
|
+
if ('number' === typeof start) {
|
15972
|
+
if (start < 0 || start >= _emberMetalProperty_get.get(array, 'length')) {
|
15973
|
+
throw new _emberMetalError.default(OUT_OF_RANGE_EXCEPTION);
|
15974
|
+
}
|
15975
|
+
|
15976
|
+
// fast case
|
15977
|
+
if (len === undefined) {
|
15978
|
+
len = 1;
|
15979
|
+
}
|
15980
|
+
|
15981
|
+
array.replace(start, len, EMPTY);
|
15982
|
+
}
|
15983
|
+
|
15984
|
+
return array;
|
15985
|
+
}
|
15986
|
+
|
15816
15987
|
/**
|
15817
15988
|
This mixin defines the API for modifying array-like objects. These methods
|
15818
15989
|
can be applied only to a collection that keeps its items in an ordered set.
|
@@ -15856,7 +16027,7 @@ enifed('ember-runtime/mixins/mutable_array', ['exports', 'ember-metal/property_g
|
|
15856
16027
|
Remove all elements from the array. This is useful if you
|
15857
16028
|
want to reuse an existing array without having to recreate it.
|
15858
16029
|
```javascript
|
15859
|
-
|
16030
|
+
let colors = ['red', 'green', 'blue'];
|
15860
16031
|
color.length(); // 3
|
15861
16032
|
colors.clear(); // []
|
15862
16033
|
colors.length(); // 0
|
@@ -15879,7 +16050,7 @@ enifed('ember-runtime/mixins/mutable_array', ['exports', 'ember-metal/property_g
|
|
15879
16050
|
This will use the primitive `replace()` method to insert an object at the
|
15880
16051
|
specified index.
|
15881
16052
|
```javascript
|
15882
|
-
|
16053
|
+
let colors = ['red', 'green', 'blue'];
|
15883
16054
|
colors.insertAt(2, 'yellow'); // ['red', 'green', 'yellow', 'blue']
|
15884
16055
|
colors.insertAt(5, 'orange'); // Error: Index out of range
|
15885
16056
|
```
|
@@ -15904,7 +16075,7 @@ enifed('ember-runtime/mixins/mutable_array', ['exports', 'ember-metal/property_g
|
|
15904
16075
|
If you pass a start and length that is beyond the
|
15905
16076
|
length this method will throw an `OUT_OF_RANGE_EXCEPTION`.
|
15906
16077
|
```javascript
|
15907
|
-
|
16078
|
+
let colors = ['red', 'green', 'blue', 'yellow', 'orange'];
|
15908
16079
|
colors.removeAt(0); // ['green', 'blue', 'yellow', 'orange']
|
15909
16080
|
colors.removeAt(2, 2); // ['green', 'blue']
|
15910
16081
|
colors.removeAt(4, 2); // Error: Index out of range
|
@@ -15916,27 +16087,14 @@ enifed('ember-runtime/mixins/mutable_array', ['exports', 'ember-metal/property_g
|
|
15916
16087
|
@public
|
15917
16088
|
*/
|
15918
16089
|
removeAt: function (start, len) {
|
15919
|
-
|
15920
|
-
if (start < 0 || start >= _emberMetalProperty_get.get(this, 'length')) {
|
15921
|
-
throw new _emberMetalError.default(OUT_OF_RANGE_EXCEPTION);
|
15922
|
-
}
|
15923
|
-
|
15924
|
-
// fast case
|
15925
|
-
if (len === undefined) {
|
15926
|
-
len = 1;
|
15927
|
-
}
|
15928
|
-
|
15929
|
-
this.replace(start, len, EMPTY);
|
15930
|
-
}
|
15931
|
-
|
15932
|
-
return this;
|
16090
|
+
return removeAt(this, start, len);
|
15933
16091
|
},
|
15934
16092
|
|
15935
16093
|
/**
|
15936
16094
|
Push the object onto the end of the array. Works just like `push()` but it
|
15937
16095
|
is KVO-compliant.
|
15938
16096
|
```javascript
|
15939
|
-
|
16097
|
+
let colors = ['red', 'green'];
|
15940
16098
|
colors.pushObject('black'); // ['red', 'green', 'black']
|
15941
16099
|
colors.pushObject(['yellow']); // ['red', 'green', ['yellow']]
|
15942
16100
|
```
|
@@ -15954,7 +16112,7 @@ enifed('ember-runtime/mixins/mutable_array', ['exports', 'ember-metal/property_g
|
|
15954
16112
|
Add the objects in the passed numerable to the end of the array. Defers
|
15955
16113
|
notifying observers of the change until all objects are added.
|
15956
16114
|
```javascript
|
15957
|
-
|
16115
|
+
let colors = ['red'];
|
15958
16116
|
colors.pushObjects(['yellow', 'orange']); // ['red', 'yellow', 'orange']
|
15959
16117
|
```
|
15960
16118
|
@method pushObjects
|
@@ -15974,7 +16132,7 @@ enifed('ember-runtime/mixins/mutable_array', ['exports', 'ember-metal/property_g
|
|
15974
16132
|
Pop object from array or nil if none are left. Works just like `pop()` but
|
15975
16133
|
it is KVO-compliant.
|
15976
16134
|
```javascript
|
15977
|
-
|
16135
|
+
let colors = ['red', 'green', 'blue'];
|
15978
16136
|
colors.popObject(); // 'blue'
|
15979
16137
|
console.log(colors); // ['red', 'green']
|
15980
16138
|
```
|
@@ -15997,7 +16155,7 @@ enifed('ember-runtime/mixins/mutable_array', ['exports', 'ember-metal/property_g
|
|
15997
16155
|
Shift an object from start of array or nil if none are left. Works just
|
15998
16156
|
like `shift()` but it is KVO-compliant.
|
15999
16157
|
```javascript
|
16000
|
-
|
16158
|
+
let colors = ['red', 'green', 'blue'];
|
16001
16159
|
colors.shiftObject(); // 'red'
|
16002
16160
|
console.log(colors); // ['green', 'blue']
|
16003
16161
|
```
|
@@ -16019,7 +16177,7 @@ enifed('ember-runtime/mixins/mutable_array', ['exports', 'ember-metal/property_g
|
|
16019
16177
|
Unshift an object to start of array. Works just like `unshift()` but it is
|
16020
16178
|
KVO-compliant.
|
16021
16179
|
```javascript
|
16022
|
-
|
16180
|
+
let colors = ['red'];
|
16023
16181
|
colors.unshiftObject('yellow'); // ['yellow', 'red']
|
16024
16182
|
colors.unshiftObject(['black']); // [['black'], 'yellow', 'red']
|
16025
16183
|
```
|
@@ -16037,7 +16195,7 @@ enifed('ember-runtime/mixins/mutable_array', ['exports', 'ember-metal/property_g
|
|
16037
16195
|
Adds the named objects to the beginning of the array. Defers notifying
|
16038
16196
|
observers until all objects have been added.
|
16039
16197
|
```javascript
|
16040
|
-
|
16198
|
+
let colors = ['red'];
|
16041
16199
|
colors.unshiftObjects(['black', 'white']); // ['black', 'white', 'red']
|
16042
16200
|
colors.unshiftObjects('yellow'); // Type Error: 'undefined' is not a function
|
16043
16201
|
```
|
@@ -16073,7 +16231,7 @@ enifed('ember-runtime/mixins/mutable_array', ['exports', 'ember-metal/property_g
|
|
16073
16231
|
Replace all the receiver's content with content of the argument.
|
16074
16232
|
If argument is an empty array receiver will be cleared.
|
16075
16233
|
```javascript
|
16076
|
-
|
16234
|
+
let colors = ['red', 'green', 'blue'];
|
16077
16235
|
colors.setObjects(['black', 'white']); // ['black', 'white']
|
16078
16236
|
colors.setObjects([]); // []
|
16079
16237
|
```
|
@@ -16100,7 +16258,7 @@ enifed('ember-runtime/mixins/mutable_array', ['exports', 'ember-metal/property_g
|
|
16100
16258
|
/**
|
16101
16259
|
Remove all occurrences of an object in the array.
|
16102
16260
|
```javascript
|
16103
|
-
|
16261
|
+
let cities = ['Chicago', 'Berlin', 'Lima', 'Chicago'];
|
16104
16262
|
cities.removeObject('Chicago'); // ['Berlin', 'Lima']
|
16105
16263
|
cities.removeObject('Lima'); // ['Berlin']
|
16106
16264
|
cities.removeObject('Tokyo') // ['Berlin']
|
@@ -16126,7 +16284,7 @@ enifed('ember-runtime/mixins/mutable_array', ['exports', 'ember-metal/property_g
|
|
16126
16284
|
Push the object onto the end of the array if it is not already
|
16127
16285
|
present in the array.
|
16128
16286
|
```javascript
|
16129
|
-
|
16287
|
+
let cities = ['Chicago', 'Berlin'];
|
16130
16288
|
cities.addObject('Lima'); // ['Chicago', 'Berlin', 'Lima']
|
16131
16289
|
cities.addObject('Berlin'); // ['Chicago', 'Berlin', 'Lima']
|
16132
16290
|
```
|
@@ -16136,7 +16294,7 @@ enifed('ember-runtime/mixins/mutable_array', ['exports', 'ember-metal/property_g
|
|
16136
16294
|
@public
|
16137
16295
|
*/
|
16138
16296
|
addObject: function (obj) {
|
16139
|
-
var included;
|
16297
|
+
var included = undefined;
|
16140
16298
|
|
16141
16299
|
if (_emberMetalFeatures.default('ember-runtime-enumerable-includes')) {
|
16142
16300
|
included = this.includes(obj);
|
@@ -16738,10 +16896,10 @@ enifed('ember-runtime/mixins/promise_proxy', ['exports', 'ember-metal/property_g
|
|
16738
16896
|
A low level mixin making ObjectProxy promise-aware.
|
16739
16897
|
|
16740
16898
|
```javascript
|
16741
|
-
|
16899
|
+
let ObjectPromiseProxy = Ember.ObjectProxy.extend(Ember.PromiseProxyMixin);
|
16742
16900
|
|
16743
|
-
|
16744
|
-
promise: $.getJSON('/some/remote/data.json')
|
16901
|
+
let proxy = ObjectPromiseProxy.create({
|
16902
|
+
promise: Ember.RSVP.cast($.getJSON('/some/remote/data.json'))
|
16745
16903
|
});
|
16746
16904
|
|
16747
16905
|
proxy.then(function(json){
|
@@ -16763,6 +16921,9 @@ enifed('ember-runtime/mixins/promise_proxy', ['exports', 'ember-metal/property_g
|
|
16763
16921
|
|
16764
16922
|
When the $.getJSON completes, and the promise is fulfilled
|
16765
16923
|
with json, the life cycle attributes will update accordingly.
|
16924
|
+
Note that $.getJSON doesn't return an ECMA specified promise,
|
16925
|
+
it is useful to wrap this with an `RSVP.cast` so that it behaves
|
16926
|
+
as a spec compliant promise.
|
16766
16927
|
|
16767
16928
|
```javascript
|
16768
16929
|
proxy.get('isPending') //=> false
|
@@ -16929,7 +17090,7 @@ enifed('ember-runtime/mixins/registry_proxy', ['exports', 'ember-metal/debug', '
|
|
16929
17090
|
a full name including two parts: `type:name`.
|
16930
17091
|
A simple example:
|
16931
17092
|
```javascript
|
16932
|
-
|
17093
|
+
let App = Ember.Application.create();
|
16933
17094
|
App.Orange = Ember.Object.extend();
|
16934
17095
|
App.register('fruit:favorite', App.Orange);
|
16935
17096
|
```
|
@@ -16938,8 +17099,8 @@ enifed('ember-runtime/mixins/registry_proxy', ['exports', 'ember-metal/debug', '
|
|
16938
17099
|
an application requests `controller:cars`.
|
16939
17100
|
An example of registering a controller with a non-standard name:
|
16940
17101
|
```javascript
|
16941
|
-
|
16942
|
-
|
17102
|
+
let App = Ember.Application.create();
|
17103
|
+
let Session = Ember.Controller.extend();
|
16943
17104
|
App.register('controller:session', Session);
|
16944
17105
|
// The Session controller can now be treated like a normal controller,
|
16945
17106
|
// despite its non-standard name.
|
@@ -16952,7 +17113,7 @@ enifed('ember-runtime/mixins/registry_proxy', ['exports', 'ember-metal/debug', '
|
|
16952
17113
|
they are looked up they return the same instance.
|
16953
17114
|
Some examples modifying that default behavior:
|
16954
17115
|
```javascript
|
16955
|
-
|
17116
|
+
let App = Ember.Application.create();
|
16956
17117
|
App.Person = Ember.Object.extend();
|
16957
17118
|
App.Orange = Ember.Object.extend();
|
16958
17119
|
App.Email = Ember.Object.extend();
|
@@ -16973,8 +17134,8 @@ enifed('ember-runtime/mixins/registry_proxy', ['exports', 'ember-metal/debug', '
|
|
16973
17134
|
/**
|
16974
17135
|
Unregister a factory.
|
16975
17136
|
```javascript
|
16976
|
-
|
16977
|
-
|
17137
|
+
let App = Ember.Application.create();
|
17138
|
+
let User = Ember.Object.extend();
|
16978
17139
|
App.register('model:user', User);
|
16979
17140
|
App.resolveRegistration('model:user').create() instanceof User //=> true
|
16980
17141
|
App.unregister('model:user')
|
@@ -17036,17 +17197,17 @@ enifed('ember-runtime/mixins/registry_proxy', ['exports', 'ember-metal/debug', '
|
|
17036
17197
|
/**
|
17037
17198
|
Allow registering options for all factories of a type.
|
17038
17199
|
```javascript
|
17039
|
-
|
17040
|
-
|
17200
|
+
let App = Ember.Application.create();
|
17201
|
+
let appInstance = App.buildInstance();
|
17041
17202
|
// if all of type `connection` must not be singletons
|
17042
17203
|
appInstance.optionsForType('connection', { singleton: false });
|
17043
17204
|
appInstance.register('connection:twitter', TwitterConnection);
|
17044
17205
|
appInstance.register('connection:facebook', FacebookConnection);
|
17045
|
-
|
17046
|
-
|
17206
|
+
let twitter = appInstance.lookup('connection:twitter');
|
17207
|
+
let twitter2 = appInstance.lookup('connection:twitter');
|
17047
17208
|
twitter === twitter2; // => false
|
17048
|
-
|
17049
|
-
|
17209
|
+
let facebook = appInstance.lookup('connection:facebook');
|
17210
|
+
let facebook2 = appInstance.lookup('connection:facebook');
|
17050
17211
|
facebook === facebook2; // => false
|
17051
17212
|
```
|
17052
17213
|
@public
|
@@ -17073,8 +17234,8 @@ enifed('ember-runtime/mixins/registry_proxy', ['exports', 'ember-metal/debug', '
|
|
17073
17234
|
provide services to a set of framework components.
|
17074
17235
|
An example of providing a session object to all controllers:
|
17075
17236
|
```javascript
|
17076
|
-
|
17077
|
-
|
17237
|
+
let App = Ember.Application.create();
|
17238
|
+
let Session = Ember.Object.extend({ isAuthenticated: false });
|
17078
17239
|
// A factory must be registered before it can be injected
|
17079
17240
|
App.register('session:main', Session);
|
17080
17241
|
// Inject 'session:main' onto all factories of the type 'controller'
|
@@ -17171,31 +17332,12 @@ enifed('ember-runtime/mixins/target_action_support', ['exports', 'ember-environm
|
|
17171
17332
|
@extends Ember.Mixin
|
17172
17333
|
@private
|
17173
17334
|
*/
|
17174
|
-
|
17335
|
+
exports.default = _emberMetalMixin.Mixin.create({
|
17175
17336
|
target: null,
|
17176
17337
|
action: null,
|
17177
17338
|
actionContext: null,
|
17178
17339
|
|
17179
|
-
|
17180
|
-
if (this._targetObject) {
|
17181
|
-
return this._targetObject;
|
17182
|
-
}
|
17183
|
-
|
17184
|
-
var target = _emberMetalProperty_get.get(this, 'target');
|
17185
|
-
|
17186
|
-
if (typeof target === 'string') {
|
17187
|
-
var value = _emberMetalProperty_get.get(this, target);
|
17188
|
-
if (value === undefined) {
|
17189
|
-
value = _emberMetalProperty_get.get(_emberEnvironment.context.lookup, target);
|
17190
|
-
}
|
17191
|
-
|
17192
|
-
return value;
|
17193
|
-
} else {
|
17194
|
-
return target;
|
17195
|
-
}
|
17196
|
-
}),
|
17197
|
-
|
17198
|
-
actionContextObject: _emberMetalComputed.computed(function () {
|
17340
|
+
actionContextObject: _emberMetalComputed.computed('actionContext', function () {
|
17199
17341
|
var actionContext = _emberMetalProperty_get.get(this, 'actionContext');
|
17200
17342
|
|
17201
17343
|
if (typeof actionContext === 'string') {
|
@@ -17207,7 +17349,7 @@ enifed('ember-runtime/mixins/target_action_support', ['exports', 'ember-environm
|
|
17207
17349
|
} else {
|
17208
17350
|
return actionContext;
|
17209
17351
|
}
|
17210
|
-
})
|
17352
|
+
}),
|
17211
17353
|
|
17212
17354
|
/**
|
17213
17355
|
Send an `action` with an `actionContext` to a `target`. The action, actionContext
|
@@ -17217,7 +17359,7 @@ enifed('ember-runtime/mixins/target_action_support', ['exports', 'ember-environm
|
|
17217
17359
|
target: Ember.computed.alias('controller'),
|
17218
17360
|
action: 'save',
|
17219
17361
|
actionContext: Ember.computed.alias('context'),
|
17220
|
-
click
|
17362
|
+
click() {
|
17221
17363
|
this.triggerAction(); // Sends the `save` action, along with the current context
|
17222
17364
|
// to the current controller
|
17223
17365
|
}
|
@@ -17227,7 +17369,7 @@ enifed('ember-runtime/mixins/target_action_support', ['exports', 'ember-environm
|
|
17227
17369
|
an optional object argument to `triggerAction` as well.
|
17228
17370
|
```javascript
|
17229
17371
|
App.SaveButtonView = Ember.View.extend(Ember.TargetActionSupport, {
|
17230
|
-
click
|
17372
|
+
click() {
|
17231
17373
|
this.triggerAction({
|
17232
17374
|
action: 'save',
|
17233
17375
|
target: this.get('controller'),
|
@@ -17243,7 +17385,7 @@ enifed('ember-runtime/mixins/target_action_support', ['exports', 'ember-environm
|
|
17243
17385
|
```javascript
|
17244
17386
|
App.SaveButtonView = Ember.View.extend(Ember.TargetActionSupport, {
|
17245
17387
|
target: Ember.computed.alias('controller'),
|
17246
|
-
click
|
17388
|
+
click() {
|
17247
17389
|
this.triggerAction({
|
17248
17390
|
action: 'save'
|
17249
17391
|
}); // Sends the `save` action, along with a reference to `this`,
|
@@ -17260,7 +17402,12 @@ enifed('ember-runtime/mixins/target_action_support', ['exports', 'ember-environm
|
|
17260
17402
|
var opts = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
|
17261
17403
|
|
17262
17404
|
var action = opts.action || _emberMetalProperty_get.get(this, 'action');
|
17263
|
-
var target = opts.target
|
17405
|
+
var target = opts.target;
|
17406
|
+
|
17407
|
+
if (!target) {
|
17408
|
+
target = getTarget(this);
|
17409
|
+
}
|
17410
|
+
|
17264
17411
|
var actionContext = opts.actionContext;
|
17265
17412
|
|
17266
17413
|
function args(options, actionName) {
|
@@ -17277,7 +17424,7 @@ enifed('ember-runtime/mixins/target_action_support', ['exports', 'ember-environm
|
|
17277
17424
|
}
|
17278
17425
|
|
17279
17426
|
if (target && action) {
|
17280
|
-
var ret;
|
17427
|
+
var ret = undefined;
|
17281
17428
|
|
17282
17429
|
if (target.send) {
|
17283
17430
|
ret = target.send.apply(target, args(actionContext, action));
|
@@ -17297,7 +17444,36 @@ enifed('ember-runtime/mixins/target_action_support', ['exports', 'ember-environm
|
|
17297
17444
|
}
|
17298
17445
|
});
|
17299
17446
|
|
17300
|
-
|
17447
|
+
function getTarget(instance) {
|
17448
|
+
// TODO: Deprecate specifying `targetObject`
|
17449
|
+
var target = _emberMetalProperty_get.get(instance, 'targetObject');
|
17450
|
+
|
17451
|
+
// if a `targetObject` CP was provided, use it
|
17452
|
+
if (target) {
|
17453
|
+
return target;
|
17454
|
+
}
|
17455
|
+
|
17456
|
+
// if _targetObject use it
|
17457
|
+
if (instance._targetObject) {
|
17458
|
+
return instance._targetObject;
|
17459
|
+
}
|
17460
|
+
|
17461
|
+
target = _emberMetalProperty_get.get(instance, 'target');
|
17462
|
+
if (target) {
|
17463
|
+
if (typeof target === 'string') {
|
17464
|
+
var value = _emberMetalProperty_get.get(instance, target);
|
17465
|
+
if (value === undefined) {
|
17466
|
+
value = _emberMetalProperty_get.get(_emberEnvironment.context.lookup, target);
|
17467
|
+
}
|
17468
|
+
|
17469
|
+
return value;
|
17470
|
+
} else {
|
17471
|
+
return target;
|
17472
|
+
}
|
17473
|
+
}
|
17474
|
+
|
17475
|
+
return null;
|
17476
|
+
}
|
17301
17477
|
});
|
17302
17478
|
enifed("ember-runtime/string_registry", ["exports"], function (exports) {
|
17303
17479
|
// STATE within a module is frowned apon, this exists
|
@@ -17351,8 +17527,8 @@ enifed('ember-runtime/system/array_proxy', ['exports', 'ember-metal/debug', 'emb
|
|
17351
17527
|
A simple example of usage:
|
17352
17528
|
|
17353
17529
|
```javascript
|
17354
|
-
|
17355
|
-
|
17530
|
+
let pets = ['dog', 'cat', 'fish'];
|
17531
|
+
let ap = Ember.ArrayProxy.create({ content: Ember.A(pets) });
|
17356
17532
|
|
17357
17533
|
ap.get('firstObject'); // 'dog'
|
17358
17534
|
ap.set('content', ['amoeba', 'paramecium']);
|
@@ -17364,8 +17540,8 @@ enifed('ember-runtime/system/array_proxy', ['exports', 'ember-metal/debug', 'emb
|
|
17364
17540
|
`objectAtContent`:
|
17365
17541
|
|
17366
17542
|
```javascript
|
17367
|
-
|
17368
|
-
|
17543
|
+
let pets = ['dog', 'cat', 'fish'];
|
17544
|
+
let ap = Ember.ArrayProxy.create({
|
17369
17545
|
content: Ember.A(pets),
|
17370
17546
|
objectAtContent: function(idx) {
|
17371
17547
|
return this.get('content').objectAt(idx).toUpperCase();
|
@@ -17381,7 +17557,7 @@ enifed('ember-runtime/system/array_proxy', ['exports', 'ember-metal/debug', 'emb
|
|
17381
17557
|
@uses Ember.MutableArray
|
17382
17558
|
@public
|
17383
17559
|
*/
|
17384
|
-
|
17560
|
+
exports.default = _emberRuntimeSystemObject.default.extend(_emberRuntimeMixinsMutable_array.default, {
|
17385
17561
|
|
17386
17562
|
/**
|
17387
17563
|
The content array. Must be an object that implements `Ember.Array` and/or
|
@@ -17600,7 +17776,6 @@ enifed('ember-runtime/system/array_proxy', ['exports', 'ember-metal/debug', 'emb
|
|
17600
17776
|
var content = _emberMetalProperty_get.get(this, 'content');
|
17601
17777
|
var arrangedContent = _emberMetalProperty_get.get(this, 'arrangedContent');
|
17602
17778
|
var indices = [];
|
17603
|
-
var i;
|
17604
17779
|
|
17605
17780
|
if (start < 0 || start >= _emberMetalProperty_get.get(this, 'length')) {
|
17606
17781
|
throw new _emberMetalError.default(OUT_OF_RANGE_EXCEPTION);
|
@@ -17611,7 +17786,7 @@ enifed('ember-runtime/system/array_proxy', ['exports', 'ember-metal/debug', 'emb
|
|
17611
17786
|
}
|
17612
17787
|
|
17613
17788
|
// Get a list of indices in original content to remove
|
17614
|
-
for (i = start; i < start + len; i++) {
|
17789
|
+
for (var i = start; i < start + len; i++) {
|
17615
17790
|
// Use arrangedContent here so we avoid confusion with objects transformed by objectAtContent
|
17616
17791
|
indices.push(content.indexOf(_emberRuntimeMixinsArray.objectAt(arrangedContent, i)));
|
17617
17792
|
}
|
@@ -17622,7 +17797,7 @@ enifed('ember-runtime/system/array_proxy', ['exports', 'ember-metal/debug', 'emb
|
|
17622
17797
|
});
|
17623
17798
|
|
17624
17799
|
_emberMetalProperty_events.beginPropertyChanges();
|
17625
|
-
for (i = 0; i < indices.length; i++) {
|
17800
|
+
for (var i = 0; i < indices.length; i++) {
|
17626
17801
|
this._replace(indices[i], 1, EMPTY);
|
17627
17802
|
}
|
17628
17803
|
_emberMetalProperty_events.endPropertyChanges();
|
@@ -17670,11 +17845,11 @@ enifed('ember-runtime/system/array_proxy', ['exports', 'ember-metal/debug', 'emb
|
|
17670
17845
|
},
|
17671
17846
|
|
17672
17847
|
arrangedContentArrayWillChange: function (item, idx, removedCnt, addedCnt) {
|
17673
|
-
|
17848
|
+
_emberRuntimeMixinsArray.arrayContentWillChange(this, idx, removedCnt, addedCnt);
|
17674
17849
|
},
|
17675
17850
|
|
17676
17851
|
arrangedContentArrayDidChange: function (item, idx, removedCnt, addedCnt) {
|
17677
|
-
|
17852
|
+
_emberRuntimeMixinsArray.arrayContentDidChange(this, idx, removedCnt, addedCnt);
|
17678
17853
|
},
|
17679
17854
|
|
17680
17855
|
init: function () {
|
@@ -17688,8 +17863,6 @@ enifed('ember-runtime/system/array_proxy', ['exports', 'ember-metal/debug', 'emb
|
|
17688
17863
|
this._teardownContent();
|
17689
17864
|
}
|
17690
17865
|
});
|
17691
|
-
|
17692
|
-
exports.default = ArrayProxy;
|
17693
17866
|
});
|
17694
17867
|
enifed('ember-runtime/system/container', ['exports', 'ember-metal/property_set', 'container/registry', 'container/container', 'container/owner'], function (exports, _emberMetalProperty_set, _containerRegistry, _containerContainer, _containerOwner) {
|
17695
17868
|
'use strict';
|
@@ -17773,7 +17946,7 @@ enifed('ember-runtime/system/core_object', ['exports', 'ember-metal/debug', 'emb
|
|
17773
17946
|
var keyName = keyNames[j];
|
17774
17947
|
var value = properties[keyName];
|
17775
17948
|
|
17776
|
-
if (_emberMetalMixin.
|
17949
|
+
if (_emberMetalMixin.detectBinding(keyName)) {
|
17777
17950
|
m.writeBindings(keyName, value);
|
17778
17951
|
}
|
17779
17952
|
|
@@ -18524,6 +18697,8 @@ enifed('ember-runtime/system/core_object', ['exports', 'ember-metal/debug', 'emb
|
|
18524
18697
|
enifed('ember-runtime/system/each_proxy', ['exports', 'ember-metal/debug', 'ember-metal/property_get', 'ember-metal/observer', 'ember-metal/property_events', 'ember-metal/empty_object', 'ember-runtime/mixins/array'], function (exports, _emberMetalDebug, _emberMetalProperty_get, _emberMetalObserver, _emberMetalProperty_events, _emberMetalEmpty_object, _emberRuntimeMixinsArray) {
|
18525
18698
|
'use strict';
|
18526
18699
|
|
18700
|
+
exports.default = EachProxy;
|
18701
|
+
|
18527
18702
|
/**
|
18528
18703
|
This is the object instance returned when you get the `@each` property on an
|
18529
18704
|
array. It uses the unknownProperty handler to automatically create
|
@@ -18531,6 +18706,7 @@ enifed('ember-runtime/system/each_proxy', ['exports', 'ember-metal/debug', 'embe
|
|
18531
18706
|
@class EachProxy
|
18532
18707
|
@private
|
18533
18708
|
*/
|
18709
|
+
|
18534
18710
|
function EachProxy(content) {
|
18535
18711
|
this._content = content;
|
18536
18712
|
this._keys = undefined;
|
@@ -18640,8 +18816,6 @@ enifed('ember-runtime/system/each_proxy', ['exports', 'ember-metal/debug', 'embe
|
|
18640
18816
|
}
|
18641
18817
|
}
|
18642
18818
|
}
|
18643
|
-
|
18644
|
-
exports.default = EachProxy;
|
18645
18819
|
});
|
18646
18820
|
enifed('ember-runtime/system/lazy_load', ['exports', 'ember-environment'], function (exports, _emberEnvironment) {
|
18647
18821
|
/*globals CustomEvent */
|
@@ -18708,8 +18882,8 @@ enifed('ember-runtime/system/lazy_load', ['exports', 'ember-environment'], funct
|
|
18708
18882
|
var window = _emberEnvironment.environment.window;
|
18709
18883
|
|
18710
18884
|
if (window && typeof CustomEvent === 'function') {
|
18711
|
-
var
|
18712
|
-
window.dispatchEvent(
|
18885
|
+
var _event = new CustomEvent(name, { detail: object, name: name });
|
18886
|
+
window.dispatchEvent(_event);
|
18713
18887
|
}
|
18714
18888
|
|
18715
18889
|
if (loadHooks[name]) {
|
@@ -18901,7 +19075,7 @@ enifed('ember-runtime/system/namespace', ['exports', 'ember-metal/core', 'ember-
|
|
18901
19075
|
processAllNamespaces();
|
18902
19076
|
}
|
18903
19077
|
|
18904
|
-
var ret;
|
19078
|
+
var ret = undefined;
|
18905
19079
|
|
18906
19080
|
if (this[_emberMetalMixin.NAME_KEY]) {
|
18907
19081
|
ret = this[_emberMetalMixin.NAME_KEY];
|
@@ -18931,7 +19105,7 @@ enifed('ember-runtime/system/namespace', ['exports', 'ember-metal/core', 'ember-
|
|
18931
19105
|
|
18932
19106
|
if (unprocessedNamespaces || unprocessedMixins) {
|
18933
19107
|
var namespaces = Namespace.NAMESPACES;
|
18934
|
-
var namespace;
|
19108
|
+
var namespace = undefined;
|
18935
19109
|
|
18936
19110
|
for (var i = 0; i < namespaces.length; i++) {
|
18937
19111
|
namespace = namespaces[i];
|
@@ -19004,7 +19178,7 @@ enifed('ember-runtime/system/native_array', ['exports', 'ember-metal/core', 'emb
|
|
19004
19178
|
// replaced range. Otherwise, pass the full remaining array length
|
19005
19179
|
// since everything has shifted
|
19006
19180
|
var len = objects ? _emberMetalProperty_get.get(objects, 'length') : 0;
|
19007
|
-
|
19181
|
+
_emberRuntimeMixinsArray.arrayContentWillChange(this, idx, amt, len);
|
19008
19182
|
|
19009
19183
|
if (len === 0) {
|
19010
19184
|
this.splice(idx, amt);
|
@@ -19012,14 +19186,14 @@ enifed('ember-runtime/system/native_array', ['exports', 'ember-metal/core', 'emb
|
|
19012
19186
|
_emberMetalReplace.default(this, idx, amt, objects);
|
19013
19187
|
}
|
19014
19188
|
|
19015
|
-
|
19189
|
+
_emberRuntimeMixinsArray.arrayContentDidChange(this, idx, amt, len);
|
19016
19190
|
return this;
|
19017
19191
|
},
|
19018
19192
|
|
19019
19193
|
// If you ask for an unknown property, then try to collect the value
|
19020
19194
|
// from member items.
|
19021
19195
|
unknownProperty: function (key, value) {
|
19022
|
-
var ret; // = this.reducedProperty(key, value);
|
19196
|
+
var ret = undefined; // = this.reducedProperty(key, value);
|
19023
19197
|
if (value !== undefined && ret === undefined) {
|
19024
19198
|
ret = this[key] = value;
|
19025
19199
|
}
|
@@ -19081,7 +19255,7 @@ enifed('ember-runtime/system/native_array', ['exports', 'ember-metal/core', 'emb
|
|
19081
19255
|
@return {Ember.NativeArray}
|
19082
19256
|
@public
|
19083
19257
|
*/
|
19084
|
-
var A;
|
19258
|
+
var A = undefined;
|
19085
19259
|
|
19086
19260
|
if (_emberEnvironment.ENV.EXTEND_PROTOTYPES.Array) {
|
19087
19261
|
NativeArray.apply(Array.prototype);
|
@@ -19716,7 +19890,7 @@ enifed("ember/features", ["exports"], function (exports) {
|
|
19716
19890
|
enifed("ember/version", ["exports"], function (exports) {
|
19717
19891
|
"use strict";
|
19718
19892
|
|
19719
|
-
exports.default = "2.
|
19893
|
+
exports.default = "2.8.0-beta.1";
|
19720
19894
|
});
|
19721
19895
|
enifed('rsvp', ['exports', 'rsvp/promise', 'rsvp/events', 'rsvp/node', 'rsvp/all', 'rsvp/all-settled', 'rsvp/race', 'rsvp/hash', 'rsvp/hash-settled', 'rsvp/rethrow', 'rsvp/defer', 'rsvp/config', 'rsvp/map', 'rsvp/resolve', 'rsvp/reject', 'rsvp/filter', 'rsvp/asap'], function (exports, _rsvpPromise, _rsvpEvents, _rsvpNode, _rsvpAll, _rsvpAllSettled, _rsvpRace, _rsvpHash, _rsvpHashSettled, _rsvpRethrow, _rsvpDefer, _rsvpConfig, _rsvpMap, _rsvpResolve, _rsvpReject, _rsvpFilter, _rsvpAsap) {
|
19722
19896
|
'use strict';
|