ember-source 2.7.2 → 2.8.0.beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/dist/ember-runtime.js +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';
|