ember-source 1.9.1 → 1.10.0.beta.1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of ember-source might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/dist/ember-runtime.js +510 -280
- data/dist/ember-testing.js +51 -16
- data/dist/ember-tests.js +11756 -9424
- data/dist/ember-tests.prod.js +32644 -30312
- data/dist/ember.debug.js +58254 -0
- data/dist/ember.js +38891 -31052
- data/dist/ember.min.js +15 -12
- data/dist/ember.prod.js +37650 -29890
- metadata +5 -5
- data/dist/ember-template-compiler.js +0 -295
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5e4c5359d10304310ca5519bd49ea188fc61bc82
|
4
|
+
data.tar.gz: 44f6da92b4b1b287c252f4f36e8bca279890c7bf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c26640239bfd200a8375239c098658b6f4f05ac15265872097c3010ca92b7dac2a1b1b8ccb23a509fd8ef1627a8e6bcb6f42d6c75483c48e2630279c23b17aea
|
7
|
+
data.tar.gz: 032900a90d19d5df14476814357441a8d64017fd40f1385c6e7219c829dac96451663819cb11c1beb984d42ac73a55592c6e8c95dc9dec8688f042e6f35c43a0
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.10.0-beta.1
|
data/dist/ember-runtime.js
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
* Portions Copyright 2008-2011 Apple Inc. All rights reserved.
|
6
6
|
* @license Licensed under MIT license
|
7
7
|
* See https://raw.github.com/emberjs/ember.js/master/LICENSE
|
8
|
-
* @version 1.
|
8
|
+
* @version 1.10.0-beta.1
|
9
9
|
*/
|
10
10
|
|
11
11
|
(function() {
|
@@ -32,7 +32,7 @@ var define, requireModule, require, requirejs, Ember;
|
|
32
32
|
seen[name] = {};
|
33
33
|
|
34
34
|
if (!registry[name]) {
|
35
|
-
throw new Error(
|
35
|
+
throw new Error('Could not find module ' + name);
|
36
36
|
}
|
37
37
|
|
38
38
|
var mod = registry[name];
|
@@ -56,9 +56,11 @@ var define, requireModule, require, requirejs, Ember;
|
|
56
56
|
};
|
57
57
|
|
58
58
|
function resolve(child, name) {
|
59
|
-
if (child.charAt(0) !== '.') {
|
60
|
-
|
61
|
-
|
59
|
+
if (child.charAt(0) !== '.') {
|
60
|
+
return child;
|
61
|
+
}
|
62
|
+
var parts = child.split('/');
|
63
|
+
var parentBase = name.split('/').slice(0, -1);
|
62
64
|
|
63
65
|
for (var i=0, l=parts.length; i<l; i++) {
|
64
66
|
var part = parts[i];
|
@@ -68,12 +70,16 @@ var define, requireModule, require, requirejs, Ember;
|
|
68
70
|
else { parentBase.push(part); }
|
69
71
|
}
|
70
72
|
|
71
|
-
return parentBase.join(
|
73
|
+
return parentBase.join('/');
|
72
74
|
}
|
73
75
|
|
74
76
|
requirejs._eak_seen = registry;
|
75
77
|
|
76
|
-
Ember.__loader = {
|
78
|
+
Ember.__loader = {
|
79
|
+
define: define,
|
80
|
+
require: require,
|
81
|
+
registry: registry
|
82
|
+
};
|
77
83
|
} else {
|
78
84
|
define = Ember.__loader.define;
|
79
85
|
requirejs = require = requireModule = Ember.__loader.require;
|
@@ -1118,6 +1124,9 @@ define("container/container",
|
|
1118
1124
|
this.typeInjections = dictionary(parent ? parent.typeInjections : null);
|
1119
1125
|
this.injections = dictionary(null);
|
1120
1126
|
this.normalizeCache = dictionary(null);
|
1127
|
+
|
1128
|
+
this.validationCache = dictionary(parent ? parent.validationCache : null);
|
1129
|
+
|
1121
1130
|
|
1122
1131
|
this.factoryTypeInjections = dictionary(parent ? parent.factoryTypeInjections : null);
|
1123
1132
|
this.factoryInjections = dictionary(null);
|
@@ -1264,6 +1273,9 @@ define("container/container",
|
|
1264
1273
|
delete this.factoryCache[normalizedName];
|
1265
1274
|
delete this.resolveCache[normalizedName];
|
1266
1275
|
delete this._options[normalizedName];
|
1276
|
+
|
1277
|
+
delete this.validationCache[normalizedName];
|
1278
|
+
|
1267
1279
|
},
|
1268
1280
|
|
1269
1281
|
/**
|
@@ -1827,6 +1839,10 @@ define("container/container",
|
|
1827
1839
|
|
1828
1840
|
var type = fullName.split(':')[0];
|
1829
1841
|
if (!factory || typeof factory.extend !== 'function' || (!Ember.MODEL_FACTORY_INJECTIONS && type === 'model')) {
|
1842
|
+
if (factory && typeof factory._onLookup === 'function') {
|
1843
|
+
factory._onLookup(fullName);
|
1844
|
+
}
|
1845
|
+
|
1830
1846
|
// TODO: think about a 'safe' merge style extension
|
1831
1847
|
// for now just fallback to create time injection
|
1832
1848
|
cache[fullName] = factory;
|
@@ -1840,6 +1856,10 @@ define("container/container",
|
|
1840
1856
|
var injectedFactory = factory.extend(injections);
|
1841
1857
|
injectedFactory.reopenClass(factoryInjections);
|
1842
1858
|
|
1859
|
+
if (factory && typeof factory._onLookup === 'function') {
|
1860
|
+
factory._onLookup(fullName);
|
1861
|
+
}
|
1862
|
+
|
1843
1863
|
cache[fullName] = injectedFactory;
|
1844
1864
|
|
1845
1865
|
return injectedFactory;
|
@@ -1891,7 +1911,7 @@ define("container/container",
|
|
1891
1911
|
|
1892
1912
|
function instantiate(container, fullName) {
|
1893
1913
|
var factory = factoryFor(container, fullName);
|
1894
|
-
var lazyInjections;
|
1914
|
+
var lazyInjections, validationCache;
|
1895
1915
|
|
1896
1916
|
if (option(container, fullName, 'instantiate') === false) {
|
1897
1917
|
return factory;
|
@@ -1904,6 +1924,18 @@ define("container/container",
|
|
1904
1924
|
}
|
1905
1925
|
|
1906
1926
|
|
1927
|
+
validationCache = container.validationCache;
|
1928
|
+
|
1929
|
+
// Ensure that all lazy injections are valid at instantiation time
|
1930
|
+
if (!validationCache[fullName] && typeof factory._lazyInjections === 'function') {
|
1931
|
+
lazyInjections = factory._lazyInjections();
|
1932
|
+
|
1933
|
+
validateInjections(container, normalizeInjectionsHash(lazyInjections));
|
1934
|
+
}
|
1935
|
+
|
1936
|
+
validationCache[fullName] = true;
|
1937
|
+
|
1938
|
+
|
1907
1939
|
if (typeof factory.extend === 'function') {
|
1908
1940
|
// assume the factory was extendable and is already injected
|
1909
1941
|
return factory.create();
|
@@ -2029,11 +2061,10 @@ define("ember-metal",
|
|
2029
2061
|
var getWithDefault = __dependency11__.getWithDefault;
|
2030
2062
|
var normalizeTuple = __dependency11__.normalizeTuple;
|
2031
2063
|
|
2064
|
+
var accumulateListeners = __dependency12__.accumulateListeners;
|
2032
2065
|
var addListener = __dependency12__.addListener;
|
2033
2066
|
var hasListeners = __dependency12__.hasListeners;
|
2034
|
-
var listenersDiff = __dependency12__.listenersDiff;
|
2035
2067
|
var listenersFor = __dependency12__.listenersFor;
|
2036
|
-
var listenersUnion = __dependency12__.listenersUnion;
|
2037
2068
|
var on = __dependency12__.on;
|
2038
2069
|
var removeListener = __dependency12__.removeListener;
|
2039
2070
|
var sendEvent = __dependency12__.sendEvent;
|
@@ -2103,7 +2134,7 @@ define("ember-metal",
|
|
2103
2134
|
var isGlobalPath = __dependency29__.isGlobalPath;
|
2104
2135
|
var oneWay = __dependency29__.oneWay;
|
2105
2136
|
var run = __dependency30__["default"];
|
2106
|
-
var
|
2137
|
+
var Libraries = __dependency31__["default"];
|
2107
2138
|
var isNone = __dependency32__["default"];
|
2108
2139
|
var isEmpty = __dependency33__["default"];
|
2109
2140
|
var isBlank = __dependency34__["default"];
|
@@ -2170,17 +2201,16 @@ define("ember-metal",
|
|
2170
2201
|
|
2171
2202
|
Ember.EnumerableUtils = EnumerableUtils;
|
2172
2203
|
|
2173
|
-
Ember.on
|
2174
|
-
Ember.addListener
|
2175
|
-
Ember.removeListener
|
2176
|
-
Ember._suspendListener
|
2177
|
-
Ember._suspendListeners
|
2178
|
-
Ember.sendEvent
|
2179
|
-
Ember.hasListeners
|
2180
|
-
Ember.watchedEvents
|
2181
|
-
Ember.listenersFor
|
2182
|
-
Ember.
|
2183
|
-
Ember.listenersUnion = listenersUnion;
|
2204
|
+
Ember.on = on;
|
2205
|
+
Ember.addListener = addListener;
|
2206
|
+
Ember.removeListener = removeListener;
|
2207
|
+
Ember._suspendListener = suspendListener;
|
2208
|
+
Ember._suspendListeners = suspendListeners;
|
2209
|
+
Ember.sendEvent = sendEvent;
|
2210
|
+
Ember.hasListeners = hasListeners;
|
2211
|
+
Ember.watchedEvents = watchedEvents;
|
2212
|
+
Ember.listenersFor = listenersFor;
|
2213
|
+
Ember.accumulateListeners = accumulateListeners;
|
2184
2214
|
|
2185
2215
|
Ember._ObserverSet = ObserverSet;
|
2186
2216
|
|
@@ -2254,7 +2284,7 @@ define("ember-metal",
|
|
2254
2284
|
|
2255
2285
|
Ember.run = run;
|
2256
2286
|
|
2257
|
-
Ember.libraries =
|
2287
|
+
Ember.libraries = new Libraries();
|
2258
2288
|
Ember.libraries.registerCoreLibrary('Ember', Ember.VERSION);
|
2259
2289
|
|
2260
2290
|
Ember.isNone = isNone;
|
@@ -3484,9 +3514,6 @@ define("ember-metal/computed",
|
|
3484
3514
|
@module ember-metal
|
3485
3515
|
*/
|
3486
3516
|
|
3487
|
-
Ember.warn("The CP_DEFAULT_CACHEABLE flag has been removed and computed properties" +
|
3488
|
-
"are always cached by default. Use `volatile` if you don't want caching.", Ember.ENV.CP_DEFAULT_CACHEABLE !== false);
|
3489
|
-
|
3490
3517
|
var metaFor = meta;
|
3491
3518
|
var a_slice = [].slice;
|
3492
3519
|
|
@@ -3585,9 +3612,11 @@ define("ember-metal/computed",
|
|
3585
3612
|
this._suspended = undefined;
|
3586
3613
|
this._meta = undefined;
|
3587
3614
|
|
3588
|
-
|
3615
|
+
Ember.deprecate("Passing opts.cacheable to the CP constructor is deprecated. Invoke `volatile()` on the CP instead.", !opts || !opts.hasOwnProperty('cacheable'));
|
3616
|
+
this._cacheable = (opts && opts.cacheable !== undefined) ? opts.cacheable : true; // TODO: Set always to `true` once this deprecation is gone.
|
3589
3617
|
this._dependentKeys = opts && opts.dependentKeys;
|
3590
|
-
|
3618
|
+
Ember.deprecate("Passing opts.readOnly to the CP constructor is deprecated. All CPs are writable by default. Yo can invoke `readOnly()` on the CP to change this.", !opts || !opts.hasOwnProperty('readOnly'));
|
3619
|
+
this._readOnly = opts && (opts.readOnly !== undefined || !!opts.readOnly) || false; // TODO: Set always to `false` once this deprecation is gone.
|
3591
3620
|
}
|
3592
3621
|
|
3593
3622
|
ComputedProperty.prototype = new Descriptor();
|
@@ -3608,8 +3637,10 @@ define("ember-metal/computed",
|
|
3608
3637
|
@param {Boolean} aFlag optional set to `false` to disable caching
|
3609
3638
|
@return {Ember.ComputedProperty} this
|
3610
3639
|
@chainable
|
3640
|
+
@deprecated All computed properties are cacheble by default. Use `volatile()` instead to opt-out to caching.
|
3611
3641
|
*/
|
3612
3642
|
ComputedPropertyPrototype.cacheable = function(aFlag) {
|
3643
|
+
Ember.deprecate('ComputedProperty.cacheable() is deprecated. All computed properties are cacheable by default.');
|
3613
3644
|
this._cacheable = aFlag !== false;
|
3614
3645
|
return this;
|
3615
3646
|
};
|
@@ -3631,7 +3662,8 @@ define("ember-metal/computed",
|
|
3631
3662
|
@chainable
|
3632
3663
|
*/
|
3633
3664
|
ComputedPropertyPrototype.volatile = function() {
|
3634
|
-
|
3665
|
+
this._cacheable = false;
|
3666
|
+
return this;
|
3635
3667
|
};
|
3636
3668
|
|
3637
3669
|
/**
|
@@ -3655,7 +3687,8 @@ define("ember-metal/computed",
|
|
3655
3687
|
@chainable
|
3656
3688
|
*/
|
3657
3689
|
ComputedPropertyPrototype.readOnly = function(readOnly) {
|
3658
|
-
|
3690
|
+
Ember.deprecate('Passing arguments to ComputedProperty.readOnly() is deprecated.', arguments.length === 0);
|
3691
|
+
this._readOnly = readOnly === undefined || !!readOnly; // Force to true once this deprecation is gone
|
3659
3692
|
return this;
|
3660
3693
|
};
|
3661
3694
|
|
@@ -3967,7 +4000,7 @@ define("ember-metal/computed",
|
|
3967
4000
|
The function should accept two parameters, key and value. If value is not
|
3968
4001
|
undefined you should set the value first. In either case return the
|
3969
4002
|
current value of the property.
|
3970
|
-
|
4003
|
+
|
3971
4004
|
A computed property defined in this way might look like this:
|
3972
4005
|
|
3973
4006
|
```js
|
@@ -3983,12 +4016,12 @@ define("ember-metal/computed",
|
|
3983
4016
|
var client = Person.create();
|
3984
4017
|
|
3985
4018
|
client.get('fullName'); // 'Betty Jones'
|
3986
|
-
|
4019
|
+
|
3987
4020
|
client.set('lastName', 'Fuller');
|
3988
4021
|
client.get('fullName'); // 'Betty Fuller'
|
3989
4022
|
```
|
3990
4023
|
|
3991
|
-
_Note: This is the
|
4024
|
+
_Note: This is the preferred way to define computed properties when writing third-party
|
3992
4025
|
libraries that depend on or use Ember, since there is no guarantee that the user
|
3993
4026
|
will have prototype extensions enabled._
|
3994
4027
|
|
@@ -4133,16 +4166,16 @@ define("ember-metal/computed_macros",
|
|
4133
4166
|
|
4134
4167
|
```javascript
|
4135
4168
|
var ToDoList = Ember.Object.extend({
|
4136
|
-
|
4169
|
+
isDone: Ember.computed.empty('todos')
|
4137
4170
|
});
|
4138
4171
|
|
4139
4172
|
var todoList = ToDoList.create({
|
4140
4173
|
todos: ['Unit Test', 'Documentation', 'Release']
|
4141
4174
|
});
|
4142
4175
|
|
4143
|
-
todoList.get('
|
4176
|
+
todoList.get('isDone'); // false
|
4144
4177
|
todoList.get('todos').clear();
|
4145
|
-
todoList.get('
|
4178
|
+
todoList.get('isDone'); // true
|
4146
4179
|
```
|
4147
4180
|
|
4148
4181
|
@since 1.6.0
|
@@ -4684,7 +4717,7 @@ define("ember-metal/computed_macros",
|
|
4684
4717
|
/**
|
4685
4718
|
Where `computed.oneWay` provides oneWay bindings, `computed.readOnly` provides
|
4686
4719
|
a readOnly one way binding. Very often when using `computed.oneWay` one does
|
4687
|
-
not also want changes to
|
4720
|
+
not also want changes to propagate back up, as they will replace the value.
|
4688
4721
|
|
4689
4722
|
This prevents the reverse flow, and also throws an exception when it occurs.
|
4690
4723
|
|
@@ -4811,7 +4844,7 @@ define("ember-metal/core",
|
|
4811
4844
|
|
4812
4845
|
@class Ember
|
4813
4846
|
@static
|
4814
|
-
@version 1.
|
4847
|
+
@version 1.10.0-beta.1
|
4815
4848
|
*/
|
4816
4849
|
|
4817
4850
|
if ('undefined' === typeof Ember) {
|
@@ -4838,10 +4871,10 @@ define("ember-metal/core",
|
|
4838
4871
|
/**
|
4839
4872
|
@property VERSION
|
4840
4873
|
@type String
|
4841
|
-
@default '1.
|
4874
|
+
@default '1.10.0-beta.1'
|
4842
4875
|
@static
|
4843
4876
|
*/
|
4844
|
-
Ember.VERSION = '1.
|
4877
|
+
Ember.VERSION = '1.10.0-beta.1';
|
4845
4878
|
|
4846
4879
|
/**
|
4847
4880
|
Standard environmental variables. You can define these in a global `EmberENV`
|
@@ -4987,11 +5020,11 @@ define("ember-metal/core",
|
|
4987
5020
|
|
4988
5021
|
// Stub out the methods defined by the ember-debug package in case it's not loaded
|
4989
5022
|
|
4990
|
-
if ('undefined' === typeof Ember.assert) { Ember.assert =
|
4991
|
-
if ('undefined' === typeof Ember.warn) { Ember.warn =
|
4992
|
-
if ('undefined' === typeof Ember.debug) { Ember.debug =
|
4993
|
-
if ('undefined' === typeof Ember.runInDebug) { Ember.runInDebug =
|
4994
|
-
if ('undefined' === typeof Ember.deprecate) { Ember.deprecate =
|
5023
|
+
if ('undefined' === typeof Ember.assert) { Ember.assert = K; }
|
5024
|
+
if ('undefined' === typeof Ember.warn) { Ember.warn = K; }
|
5025
|
+
if ('undefined' === typeof Ember.debug) { Ember.debug = K; }
|
5026
|
+
if ('undefined' === typeof Ember.runInDebug) { Ember.runInDebug = K; }
|
5027
|
+
if ('undefined' === typeof Ember.deprecate) { Ember.deprecate = K; }
|
4995
5028
|
if ('undefined' === typeof Ember.deprecateFunc) {
|
4996
5029
|
Ember.deprecateFunc = function(_, func) { return func; };
|
4997
5030
|
}
|
@@ -5520,11 +5553,14 @@ define("ember-metal/events",
|
|
5520
5553
|
return actions;
|
5521
5554
|
}
|
5522
5555
|
|
5523
|
-
function
|
5556
|
+
function accumulateListeners(obj, eventName, otherActions) {
|
5524
5557
|
var meta = obj['__ember_meta__'];
|
5525
5558
|
var actions = meta && meta.listeners && meta.listeners[eventName];
|
5526
5559
|
|
5527
5560
|
if (!actions) { return; }
|
5561
|
+
|
5562
|
+
var newActions = [];
|
5563
|
+
|
5528
5564
|
for (var i = actions.length - 3; i >= 0; i -= 3) {
|
5529
5565
|
var target = actions[i];
|
5530
5566
|
var method = actions[i+1];
|
@@ -5533,32 +5569,14 @@ define("ember-metal/events",
|
|
5533
5569
|
|
5534
5570
|
if (actionIndex === -1) {
|
5535
5571
|
otherActions.push(target, method, flags);
|
5572
|
+
newActions.push(target, method, flags);
|
5536
5573
|
}
|
5537
5574
|
}
|
5538
|
-
}
|
5539
|
-
|
5540
|
-
__exports__.listenersUnion = listenersUnion;function listenersDiff(obj, eventName, otherActions) {
|
5541
|
-
var meta = obj['__ember_meta__'];
|
5542
|
-
var actions = meta && meta.listeners && meta.listeners[eventName];
|
5543
|
-
var diffActions = [];
|
5544
|
-
|
5545
|
-
if (!actions) { return; }
|
5546
|
-
for (var i = actions.length - 3; i >= 0; i -= 3) {
|
5547
|
-
var target = actions[i];
|
5548
|
-
var method = actions[i+1];
|
5549
|
-
var flags = actions[i+2];
|
5550
|
-
var actionIndex = indexOf(otherActions, target, method);
|
5551
|
-
|
5552
|
-
if (actionIndex !== -1) { continue; }
|
5553
|
-
|
5554
|
-
otherActions.push(target, method, flags);
|
5555
|
-
diffActions.push(target, method, flags);
|
5556
|
-
}
|
5557
5575
|
|
5558
|
-
return
|
5576
|
+
return newActions;
|
5559
5577
|
}
|
5560
5578
|
|
5561
|
-
__exports__.
|
5579
|
+
__exports__.accumulateListeners = accumulateListeners;/**
|
5562
5580
|
Add an event listener
|
5563
5581
|
|
5564
5582
|
@method addListener
|
@@ -6015,6 +6033,7 @@ define("ember-metal/injected_property",
|
|
6015
6033
|
var ComputedProperty = __dependency2__.ComputedProperty;
|
6016
6034
|
var Descriptor = __dependency3__.Descriptor;
|
6017
6035
|
var create = __dependency4__.create;
|
6036
|
+
var meta = __dependency5__.meta;
|
6018
6037
|
var inspect = __dependency5__.inspect;
|
6019
6038
|
var EmberError = __dependency6__["default"];
|
6020
6039
|
|
@@ -6033,13 +6052,22 @@ define("ember-metal/injected_property",
|
|
6033
6052
|
this.type = type;
|
6034
6053
|
this.name = name;
|
6035
6054
|
|
6036
|
-
this._super$Constructor(
|
6037
|
-
|
6038
|
-
|
6039
|
-
|
6055
|
+
this._super$Constructor(injectedPropertyGet);
|
6056
|
+
this.readOnly();
|
6057
|
+
}
|
6058
|
+
|
6059
|
+
function injectedPropertyGet(keyName) {
|
6060
|
+
var desc = meta(this).descs[keyName];
|
6061
|
+
|
6062
|
+
Ember.assert("Attempting to lookup an injected property on an object " +
|
6063
|
+
"without a container, ensure that the object was " +
|
6064
|
+
"instantiated via a container.", this.container);
|
6065
|
+
|
6066
|
+
return this.container.lookup(desc.type + ':' + (desc.name || keyName));
|
6067
|
+
}
|
6040
6068
|
|
6041
|
-
|
6042
|
-
|
6069
|
+
function injectedPropertySet(obj, keyName) {
|
6070
|
+
throw new EmberError("Cannot set injected property '" + keyName + "' on object: " + inspect(obj));
|
6043
6071
|
}
|
6044
6072
|
|
6045
6073
|
InjectedProperty.prototype = create(Descriptor.prototype);
|
@@ -6050,10 +6078,9 @@ define("ember-metal/injected_property",
|
|
6050
6078
|
InjectedPropertyPrototype._super$Constructor = ComputedProperty;
|
6051
6079
|
|
6052
6080
|
InjectedPropertyPrototype.get = ComputedPropertyPrototype.get;
|
6081
|
+
InjectedPropertyPrototype.readOnly = ComputedPropertyPrototype.readOnly;
|
6053
6082
|
|
6054
|
-
InjectedPropertyPrototype.set =
|
6055
|
-
throw new EmberError("Cannot set injected property '" + keyName + "' on object: " + inspect(obj));
|
6056
|
-
};
|
6083
|
+
InjectedPropertyPrototype.set = injectedPropertySet;
|
6057
6084
|
|
6058
6085
|
InjectedPropertyPrototype.teardown = ComputedPropertyPrototype.teardown;
|
6059
6086
|
|
@@ -6516,60 +6543,88 @@ define("ember-metal/keys",
|
|
6516
6543
|
__exports__["default"] = keys;
|
6517
6544
|
});
|
6518
6545
|
define("ember-metal/libraries",
|
6519
|
-
["ember-metal/enumerable_utils","exports"],
|
6520
|
-
function(__dependency1__, __exports__) {
|
6546
|
+
["ember-metal/core","ember-metal/enumerable_utils","exports"],
|
6547
|
+
function(__dependency1__, __dependency2__, __exports__) {
|
6521
6548
|
"use strict";
|
6522
|
-
|
6523
|
-
var forEach =
|
6524
|
-
var indexOf =
|
6549
|
+
var Ember = __dependency1__["default"];
|
6550
|
+
var forEach = __dependency2__.forEach;
|
6551
|
+
var indexOf = __dependency2__.indexOf;
|
6552
|
+
|
6553
|
+
/**
|
6554
|
+
Helper class that allows you to register your library with Ember.
|
6555
|
+
|
6556
|
+
Singleton created at `Ember.libraries`.
|
6525
6557
|
|
6526
|
-
|
6527
|
-
|
6528
|
-
|
6558
|
+
@class Libraries
|
6559
|
+
@constructor
|
6560
|
+
@private
|
6561
|
+
*/
|
6562
|
+
function Libraries() {
|
6563
|
+
this._registry = [];
|
6564
|
+
this._coreLibIndex = 0;
|
6565
|
+
}
|
6566
|
+
|
6567
|
+
Libraries.prototype = {
|
6568
|
+
constructor: Libraries,
|
6529
6569
|
|
6530
|
-
|
6531
|
-
|
6532
|
-
|
6533
|
-
|
6570
|
+
_getLibraryByName: function(name) {
|
6571
|
+
var libs = this._registry;
|
6572
|
+
var count = libs.length;
|
6573
|
+
|
6574
|
+
for (var i = 0; i < count; i++) {
|
6575
|
+
if (libs[i].name === name) {
|
6576
|
+
return libs[i];
|
6534
6577
|
}
|
6535
6578
|
}
|
6536
|
-
}
|
6579
|
+
},
|
6537
6580
|
|
6538
|
-
|
6539
|
-
|
6540
|
-
_libraries.push({name: name, version: version});
|
6541
|
-
}
|
6542
|
-
};
|
6581
|
+
register: function(name, version, isCoreLibrary) {
|
6582
|
+
var index = this._registry.length;
|
6543
6583
|
|
6544
|
-
|
6545
|
-
|
6546
|
-
|
6584
|
+
if (!this._getLibraryByName(name)) {
|
6585
|
+
if (isCoreLibrary) {
|
6586
|
+
index = this._coreLibIndex++;
|
6587
|
+
}
|
6588
|
+
this._registry.splice(index, 0, { name: name, version: version });
|
6589
|
+
} else {
|
6590
|
+
Ember.warn('Library "' + name + '" is already registered with Ember.');
|
6547
6591
|
}
|
6548
|
-
}
|
6592
|
+
},
|
6549
6593
|
|
6550
|
-
|
6551
|
-
|
6552
|
-
|
6553
|
-
|
6594
|
+
registerCoreLibrary: function(name, version) {
|
6595
|
+
this.register(name, version, true);
|
6596
|
+
},
|
6597
|
+
|
6598
|
+
deRegister: function(name) {
|
6599
|
+
var lib = this._getLibraryByName(name);
|
6600
|
+
var index;
|
6601
|
+
|
6602
|
+
if (lib) {
|
6603
|
+
index = indexOf(this._registry, lib);
|
6604
|
+
this._registry.splice(index, 1);
|
6605
|
+
}
|
6606
|
+
},
|
6554
6607
|
|
6555
|
-
|
6556
|
-
|
6608
|
+
each: function(callback) {
|
6609
|
+
Ember.deprecate('Using Ember.libraries.each() is deprecated. Access to a list of registered libraries is currently a private API. If you are not knowingly accessing this method, your out-of-date Ember Inspector may be doing so.');
|
6610
|
+
forEach(this._registry, function(lib) {
|
6557
6611
|
callback(lib.name, lib.version);
|
6558
6612
|
});
|
6559
|
-
}
|
6560
|
-
|
6561
|
-
return _libraries;
|
6562
|
-
}();
|
6613
|
+
}
|
6614
|
+
};
|
6563
6615
|
|
6564
|
-
__exports__["default"] =
|
6616
|
+
__exports__["default"] = Libraries;
|
6565
6617
|
});
|
6566
6618
|
define("ember-metal/logger",
|
6567
6619
|
["ember-metal/core","ember-metal/error","exports"],
|
6568
6620
|
function(__dependency1__, __dependency2__, __exports__) {
|
6569
6621
|
"use strict";
|
6570
6622
|
var Ember = __dependency1__["default"];
|
6623
|
+
// Ember.imports
|
6571
6624
|
var EmberError = __dependency2__["default"];
|
6572
6625
|
|
6626
|
+
function K() { return this; }
|
6627
|
+
|
6573
6628
|
function consoleMethod(name) {
|
6574
6629
|
var consoleObj, logToConsole;
|
6575
6630
|
if (Ember.imports.console) {
|
@@ -6636,7 +6691,7 @@ define("ember-metal/logger",
|
|
6636
6691
|
@for Ember.Logger
|
6637
6692
|
@param {*} arguments
|
6638
6693
|
*/
|
6639
|
-
log: consoleMethod('log') ||
|
6694
|
+
log: consoleMethod('log') || K,
|
6640
6695
|
|
6641
6696
|
/**
|
6642
6697
|
Prints the arguments to the console with a warning icon.
|
@@ -6651,7 +6706,7 @@ define("ember-metal/logger",
|
|
6651
6706
|
@for Ember.Logger
|
6652
6707
|
@param {*} arguments
|
6653
6708
|
*/
|
6654
|
-
warn: consoleMethod('warn') ||
|
6709
|
+
warn: consoleMethod('warn') || K,
|
6655
6710
|
|
6656
6711
|
/**
|
6657
6712
|
Prints the arguments to the console with an error icon, red text and a stack trace.
|
@@ -6666,7 +6721,7 @@ define("ember-metal/logger",
|
|
6666
6721
|
@for Ember.Logger
|
6667
6722
|
@param {*} arguments
|
6668
6723
|
*/
|
6669
|
-
error: consoleMethod('error') ||
|
6724
|
+
error: consoleMethod('error') || K,
|
6670
6725
|
|
6671
6726
|
/**
|
6672
6727
|
Logs the arguments to the console.
|
@@ -6682,7 +6737,7 @@ define("ember-metal/logger",
|
|
6682
6737
|
@for Ember.Logger
|
6683
6738
|
@param {*} arguments
|
6684
6739
|
*/
|
6685
|
-
info: consoleMethod('info') ||
|
6740
|
+
info: consoleMethod('info') || K,
|
6686
6741
|
|
6687
6742
|
/**
|
6688
6743
|
Logs the arguments to the console in blue text.
|
@@ -6698,7 +6753,7 @@ define("ember-metal/logger",
|
|
6698
6753
|
@for Ember.Logger
|
6699
6754
|
@param {*} arguments
|
6700
6755
|
*/
|
6701
|
-
debug: consoleMethod('debug') || consoleMethod('info') ||
|
6756
|
+
debug: consoleMethod('debug') || consoleMethod('info') || K,
|
6702
6757
|
|
6703
6758
|
/**
|
6704
6759
|
If the value passed into `Ember.Logger.assert` is not truthy it will throw an error with a stack trace.
|
@@ -7290,7 +7345,6 @@ define("ember-metal/mixin",
|
|
7290
7345
|
var metaFor = __dependency7__.meta;
|
7291
7346
|
var wrap = __dependency7__.wrap;
|
7292
7347
|
var makeArray = __dependency7__.makeArray;
|
7293
|
-
var apply = __dependency7__.apply;
|
7294
7348
|
var isArray = __dependency7__.isArray;
|
7295
7349
|
var expandProperties = __dependency8__["default"];
|
7296
7350
|
var Descriptor = __dependency9__.Descriptor;
|
@@ -7311,18 +7365,35 @@ define("ember-metal/mixin",
|
|
7311
7365
|
function superFunction(){
|
7312
7366
|
var func = this.__nextSuper;
|
7313
7367
|
var ret;
|
7368
|
+
|
7314
7369
|
if (func) {
|
7315
|
-
var
|
7316
|
-
for (var i = 0, l = args.length; i < l; i++) {
|
7317
|
-
args[i] = arguments[i];
|
7318
|
-
}
|
7370
|
+
var length = arguments.length;
|
7319
7371
|
this.__nextSuper = null;
|
7320
|
-
|
7372
|
+
if (length === 0) {
|
7373
|
+
ret = func.call(this);
|
7374
|
+
} else if (length === 1) {
|
7375
|
+
ret = func.call(this, arguments[0]);
|
7376
|
+
} else if (length === 2) {
|
7377
|
+
ret = func.call(this, arguments[0], arguments[1]);
|
7378
|
+
} else {
|
7379
|
+
ret = func.apply(this, arguments);
|
7380
|
+
}
|
7321
7381
|
this.__nextSuper = func;
|
7382
|
+
return ret;
|
7322
7383
|
}
|
7323
|
-
return ret;
|
7324
7384
|
}
|
7325
7385
|
|
7386
|
+
// ensure we prime superFunction to mitigate
|
7387
|
+
// v8 bug potentially incorrectly deopts this function: https://code.google.com/p/v8/issues/detail?id=3709
|
7388
|
+
var primer = {
|
7389
|
+
__nextSuper: function(a,b,c,d ) { }
|
7390
|
+
};
|
7391
|
+
|
7392
|
+
superFunction.call(primer);
|
7393
|
+
superFunction.call(primer, 1);
|
7394
|
+
superFunction.call(primer, 1, 2);
|
7395
|
+
superFunction.call(primer, 1, 2, 3);
|
7396
|
+
|
7326
7397
|
function mixinsMeta(obj) {
|
7327
7398
|
var m = metaFor(obj, true);
|
7328
7399
|
var ret = m.mixins;
|
@@ -8867,8 +8938,7 @@ define("ember-metal/property_events",
|
|
8867
8938
|
var guidFor = __dependency1__.guidFor;
|
8868
8939
|
var tryFinally = __dependency1__.tryFinally;
|
8869
8940
|
var sendEvent = __dependency2__.sendEvent;
|
8870
|
-
var
|
8871
|
-
var listenersDiff = __dependency2__.listenersDiff;
|
8941
|
+
var accumulateListeners = __dependency2__.accumulateListeners;
|
8872
8942
|
var ObserverSet = __dependency3__["default"];
|
8873
8943
|
|
8874
8944
|
var beforeObserverSet = new ObserverSet();
|
@@ -9125,20 +9195,20 @@ define("ember-metal/property_events",
|
|
9125
9195
|
@param {Function} callback
|
9126
9196
|
@param [binding]
|
9127
9197
|
*/
|
9128
|
-
function changeProperties(
|
9198
|
+
function changeProperties(callback, binding) {
|
9129
9199
|
beginPropertyChanges();
|
9130
|
-
tryFinally(
|
9200
|
+
tryFinally(callback, endPropertyChanges, binding);
|
9131
9201
|
}
|
9132
9202
|
|
9133
9203
|
function notifyBeforeObservers(obj, keyName) {
|
9134
9204
|
if (obj.isDestroying) { return; }
|
9135
9205
|
|
9136
9206
|
var eventName = keyName + ':before';
|
9137
|
-
var listeners,
|
9207
|
+
var listeners, added;
|
9138
9208
|
if (deferred) {
|
9139
9209
|
listeners = beforeObserverSet.add(obj, keyName, eventName);
|
9140
|
-
|
9141
|
-
sendEvent(obj, eventName, [obj, keyName],
|
9210
|
+
added = accumulateListeners(obj, eventName, listeners);
|
9211
|
+
sendEvent(obj, eventName, [obj, keyName], added);
|
9142
9212
|
} else {
|
9143
9213
|
sendEvent(obj, eventName, [obj, keyName]);
|
9144
9214
|
}
|
@@ -9151,7 +9221,7 @@ define("ember-metal/property_events",
|
|
9151
9221
|
var listeners;
|
9152
9222
|
if (deferred) {
|
9153
9223
|
listeners = observerSet.add(obj, keyName, eventName);
|
9154
|
-
|
9224
|
+
accumulateListeners(obj, eventName, listeners);
|
9155
9225
|
} else {
|
9156
9226
|
sendEvent(obj, eventName, [obj, keyName]);
|
9157
9227
|
}
|
@@ -9262,17 +9332,10 @@ define("ember-metal/property_get",
|
|
9262
9332
|
}
|
9263
9333
|
};
|
9264
9334
|
|
9265
|
-
// Currently used only by Ember Data tests
|
9266
|
-
if (Ember.config.overrideAccessors) {
|
9267
|
-
Ember.get = get;
|
9268
|
-
Ember.config.overrideAccessors();
|
9269
|
-
get = Ember.get;
|
9270
|
-
}
|
9271
|
-
|
9272
9335
|
/**
|
9273
9336
|
Normalizes a target/path pair to reflect that actual target/path that should
|
9274
9337
|
be observed, etc. This takes into account passing in global property
|
9275
|
-
paths (i.e. a path beginning with a
|
9338
|
+
paths (i.e. a path beginning with a capital letter not defined on the
|
9276
9339
|
target).
|
9277
9340
|
|
9278
9341
|
@private
|
@@ -9448,14 +9511,6 @@ define("ember-metal/property_set",
|
|
9448
9511
|
return value;
|
9449
9512
|
};
|
9450
9513
|
|
9451
|
-
// Currently used only by Ember Data tests
|
9452
|
-
// ES6TODO: Verify still true
|
9453
|
-
if (Ember.config.overrideAccessors) {
|
9454
|
-
Ember.set = set;
|
9455
|
-
Ember.config.overrideAccessors();
|
9456
|
-
set = Ember.set;
|
9457
|
-
}
|
9458
|
-
|
9459
9514
|
function setPath(root, path, value, tolerant) {
|
9460
9515
|
var keyName;
|
9461
9516
|
|
@@ -10179,39 +10234,8 @@ define("ember-metal/set_properties",
|
|
10179
10234
|
return obj;
|
10180
10235
|
}
|
10181
10236
|
});
|
10182
|
-
define("ember-metal/streams/read",
|
10183
|
-
["exports"],
|
10184
|
-
function(__exports__) {
|
10185
|
-
"use strict";
|
10186
|
-
function read(object) {
|
10187
|
-
if (object && object.isStream) {
|
10188
|
-
return object.value();
|
10189
|
-
} else {
|
10190
|
-
return object;
|
10191
|
-
}
|
10192
|
-
}
|
10193
|
-
|
10194
|
-
__exports__.read = read;function readArray(array) {
|
10195
|
-
var length = array.length;
|
10196
|
-
var ret = new Array(length);
|
10197
|
-
for (var i = 0; i < length; i++) {
|
10198
|
-
ret[i] = read(array[i]);
|
10199
|
-
}
|
10200
|
-
return ret;
|
10201
|
-
}
|
10202
|
-
|
10203
|
-
__exports__.readArray = readArray;function readHash(object) {
|
10204
|
-
var ret = {};
|
10205
|
-
for (var key in object) {
|
10206
|
-
ret[key] = read(object[key]);
|
10207
|
-
}
|
10208
|
-
return ret;
|
10209
|
-
}
|
10210
|
-
|
10211
|
-
__exports__.readHash = readHash;
|
10212
|
-
});
|
10213
10237
|
define("ember-metal/streams/simple",
|
10214
|
-
["ember-metal/merge","ember-metal/streams/stream","ember-metal/platform","ember-metal/streams/
|
10238
|
+
["ember-metal/merge","ember-metal/streams/stream","ember-metal/platform","ember-metal/streams/utils","exports"],
|
10215
10239
|
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __exports__) {
|
10216
10240
|
"use strict";
|
10217
10241
|
var merge = __dependency1__["default"];
|
@@ -10220,6 +10244,7 @@ define("ember-metal/streams/simple",
|
|
10220
10244
|
var read = __dependency4__.read;
|
10221
10245
|
|
10222
10246
|
function SimpleStream(source) {
|
10247
|
+
this.init();
|
10223
10248
|
this.source = source;
|
10224
10249
|
|
10225
10250
|
if (source && source.isStream) {
|
@@ -10262,13 +10287,16 @@ define("ember-metal/streams/simple",
|
|
10262
10287
|
this.notify();
|
10263
10288
|
},
|
10264
10289
|
|
10290
|
+
_super$destroy: Stream.prototype.destroy,
|
10291
|
+
|
10265
10292
|
destroy: function() {
|
10266
|
-
if (this.
|
10267
|
-
this.source
|
10293
|
+
if (this._super$destroy()) {
|
10294
|
+
if (this.source && this.source.isStream) {
|
10295
|
+
this.source.unsubscribe(this._didChange, this);
|
10296
|
+
}
|
10297
|
+
this.source = undefined;
|
10298
|
+
return true;
|
10268
10299
|
}
|
10269
|
-
|
10270
|
-
this.source = undefined;
|
10271
|
-
Stream.prototype.destroy.call(this);
|
10272
10300
|
}
|
10273
10301
|
});
|
10274
10302
|
|
@@ -10282,20 +10310,21 @@ define("ember-metal/streams/stream",
|
|
10282
10310
|
var getFirstKey = __dependency2__.getFirstKey;
|
10283
10311
|
var getTailPath = __dependency2__.getTailPath;
|
10284
10312
|
|
10285
|
-
var NIL = function NIL(){};
|
10286
|
-
|
10287
10313
|
function Stream(fn) {
|
10314
|
+
this.init();
|
10288
10315
|
this.valueFn = fn;
|
10289
|
-
this.cache = NIL;
|
10290
|
-
this.subscribers = undefined;
|
10291
|
-
this.children = undefined;
|
10292
|
-
this.destroyed = false;
|
10293
10316
|
}
|
10294
10317
|
|
10295
10318
|
Stream.prototype = {
|
10296
10319
|
isStream: true,
|
10297
10320
|
|
10298
|
-
|
10321
|
+
init: function() {
|
10322
|
+
this.state = 'dirty';
|
10323
|
+
this.cache = undefined;
|
10324
|
+
this.subscribers = undefined;
|
10325
|
+
this.children = undefined;
|
10326
|
+
this._label = undefined;
|
10327
|
+
},
|
10299
10328
|
|
10300
10329
|
get: function(path) {
|
10301
10330
|
var firstKey = getFirstKey(path);
|
@@ -10320,11 +10349,20 @@ define("ember-metal/streams/stream",
|
|
10320
10349
|
},
|
10321
10350
|
|
10322
10351
|
value: function() {
|
10323
|
-
if (this.
|
10352
|
+
if (this.state === 'clean') {
|
10324
10353
|
return this.cache;
|
10325
|
-
} else {
|
10354
|
+
} else if (this.state === 'dirty') {
|
10355
|
+
this.state = 'clean';
|
10326
10356
|
return this.cache = this.valueFn();
|
10327
10357
|
}
|
10358
|
+
// TODO: Ensure value is never called on a destroyed stream
|
10359
|
+
// so that we can uncomment this assertion.
|
10360
|
+
//
|
10361
|
+
// Ember.assert("Stream error: value was called in an invalid state: " + this.state);
|
10362
|
+
},
|
10363
|
+
|
10364
|
+
valueFn: function() {
|
10365
|
+
throw new Error("Stream error: valueFn not implemented");
|
10328
10366
|
},
|
10329
10367
|
|
10330
10368
|
setValue: function() {
|
@@ -10336,9 +10374,9 @@ define("ember-metal/streams/stream",
|
|
10336
10374
|
},
|
10337
10375
|
|
10338
10376
|
notifyExcept: function(callbackToSkip, contextToSkip) {
|
10339
|
-
if (this.
|
10340
|
-
this.
|
10341
|
-
this.
|
10377
|
+
if (this.state === 'clean') {
|
10378
|
+
this.state = 'dirty';
|
10379
|
+
this._notifySubscribers(callbackToSkip, contextToSkip);
|
10342
10380
|
}
|
10343
10381
|
},
|
10344
10382
|
|
@@ -10363,7 +10401,7 @@ define("ember-metal/streams/stream",
|
|
10363
10401
|
}
|
10364
10402
|
},
|
10365
10403
|
|
10366
|
-
|
10404
|
+
_notifySubscribers: function(callbackToSkip, contextToSkip) {
|
10367
10405
|
var subscribers = this.subscribers;
|
10368
10406
|
|
10369
10407
|
if (subscribers !== undefined) {
|
@@ -10385,12 +10423,15 @@ define("ember-metal/streams/stream",
|
|
10385
10423
|
},
|
10386
10424
|
|
10387
10425
|
destroy: function() {
|
10388
|
-
if (this.destroyed)
|
10389
|
-
|
10426
|
+
if (this.state !== 'destroyed') {
|
10427
|
+
this.state = 'destroyed';
|
10390
10428
|
|
10391
|
-
|
10392
|
-
|
10393
|
-
|
10429
|
+
var children = this.children;
|
10430
|
+
for (var key in children) {
|
10431
|
+
children[key].destroy();
|
10432
|
+
}
|
10433
|
+
|
10434
|
+
return true;
|
10394
10435
|
}
|
10395
10436
|
},
|
10396
10437
|
|
@@ -10419,11 +10460,11 @@ define("ember-metal/streams/stream_binding",
|
|
10419
10460
|
function StreamBinding(stream) {
|
10420
10461
|
Ember.assert("StreamBinding error: tried to bind to object that is not a stream", stream && stream.isStream);
|
10421
10462
|
|
10463
|
+
this.init();
|
10422
10464
|
this.stream = stream;
|
10423
10465
|
this.senderCallback = undefined;
|
10424
10466
|
this.senderContext = undefined;
|
10425
10467
|
this.senderValue = undefined;
|
10426
|
-
this.destroyed = false;
|
10427
10468
|
|
10428
10469
|
stream.subscribe(this._onNotify, this);
|
10429
10470
|
}
|
@@ -10457,7 +10498,7 @@ define("ember-metal/streams/stream_binding",
|
|
10457
10498
|
},
|
10458
10499
|
|
10459
10500
|
_sync: function() {
|
10460
|
-
if (this.destroyed) {
|
10501
|
+
if (this.state === 'destroyed') {
|
10461
10502
|
return;
|
10462
10503
|
}
|
10463
10504
|
|
@@ -10472,23 +10513,70 @@ define("ember-metal/streams/stream_binding",
|
|
10472
10513
|
this.senderValue = undefined;
|
10473
10514
|
|
10474
10515
|
// Force StreamBindings to always notify
|
10475
|
-
this.
|
10516
|
+
this.state = 'clean';
|
10476
10517
|
|
10477
10518
|
this.notifyExcept(senderCallback, senderContext);
|
10478
10519
|
},
|
10479
10520
|
|
10521
|
+
_super$destroy: Stream.prototype.destroy,
|
10522
|
+
|
10480
10523
|
destroy: function() {
|
10481
|
-
if (this.
|
10482
|
-
|
10524
|
+
if (this._super$destroy()) {
|
10525
|
+
this.stream.unsubscribe(this._onNotify, this);
|
10526
|
+
return true;
|
10483
10527
|
}
|
10484
|
-
|
10485
|
-
this.destroyed = true;
|
10486
|
-
this.stream.unsubscribe(this._onNotify, this);
|
10487
10528
|
}
|
10488
10529
|
});
|
10489
10530
|
|
10490
10531
|
__exports__["default"] = StreamBinding;
|
10491
10532
|
});
|
10533
|
+
define("ember-metal/streams/utils",
|
10534
|
+
["exports"],
|
10535
|
+
function(__exports__) {
|
10536
|
+
"use strict";
|
10537
|
+
function isStream(object) {
|
10538
|
+
return object && object.isStream;
|
10539
|
+
}
|
10540
|
+
|
10541
|
+
__exports__.isStream = isStream;function subscribe(object, callback, context) {
|
10542
|
+
if (object && object.isStream) {
|
10543
|
+
object.subscribe(callback, context);
|
10544
|
+
}
|
10545
|
+
}
|
10546
|
+
|
10547
|
+
__exports__.subscribe = subscribe;function unsubscribe(object, callback, context) {
|
10548
|
+
if (object && object.isStream) {
|
10549
|
+
object.unsubscribe(callback, context);
|
10550
|
+
}
|
10551
|
+
}
|
10552
|
+
|
10553
|
+
__exports__.unsubscribe = unsubscribe;function read(object) {
|
10554
|
+
if (object && object.isStream) {
|
10555
|
+
return object.value();
|
10556
|
+
} else {
|
10557
|
+
return object;
|
10558
|
+
}
|
10559
|
+
}
|
10560
|
+
|
10561
|
+
__exports__.read = read;function readArray(array) {
|
10562
|
+
var length = array.length;
|
10563
|
+
var ret = new Array(length);
|
10564
|
+
for (var i = 0; i < length; i++) {
|
10565
|
+
ret[i] = read(array[i]);
|
10566
|
+
}
|
10567
|
+
return ret;
|
10568
|
+
}
|
10569
|
+
|
10570
|
+
__exports__.readArray = readArray;function readHash(object) {
|
10571
|
+
var ret = {};
|
10572
|
+
for (var key in object) {
|
10573
|
+
ret[key] = read(object[key]);
|
10574
|
+
}
|
10575
|
+
return ret;
|
10576
|
+
}
|
10577
|
+
|
10578
|
+
__exports__.readHash = readHash;
|
10579
|
+
});
|
10492
10580
|
define("ember-metal/utils",
|
10493
10581
|
["ember-metal/core","ember-metal/platform","ember-metal/array","exports"],
|
10494
10582
|
function(__dependency1__, __dependency2__, __dependency3__, __exports__) {
|
@@ -10566,13 +10654,13 @@ define("ember-metal/utils",
|
|
10566
10654
|
algorithims typically cost in proportion to the length of the string.
|
10567
10655
|
Luckily, this is where the Symbols (interned strings) shine. As Symbols are
|
10568
10656
|
unique by their string content, equality checks can be done by pointer
|
10569
|
-
|
10657
|
+
comparison.
|
10570
10658
|
|
10571
10659
|
How do I know if my string is a rope or symbol?
|
10572
10660
|
|
10573
10661
|
Typically (warning general sweeping statement, but truthy in runtimes at
|
10574
10662
|
present) static strings created as part of the JS source are interned.
|
10575
|
-
Strings often used for
|
10663
|
+
Strings often used for comparisons can be interned at runtime if some
|
10576
10664
|
criteria are met. One of these criteria can be the size of the entire rope.
|
10577
10665
|
For example, in chrome 38 a rope longer then 12 characters will not
|
10578
10666
|
intern, nor will segments of that rope.
|
@@ -10891,17 +10979,35 @@ define("ember-metal/utils",
|
|
10891
10979
|
@param {Function} superFunc The super function.
|
10892
10980
|
@return {Function} wrapped function.
|
10893
10981
|
*/
|
10982
|
+
|
10894
10983
|
function wrap(func, superFunc) {
|
10895
10984
|
function superWrapper() {
|
10896
10985
|
var ret;
|
10897
10986
|
var sup = this && this.__nextSuper;
|
10898
|
-
var
|
10899
|
-
|
10900
|
-
|
10987
|
+
var length = arguments.length;
|
10988
|
+
|
10989
|
+
if (this) {
|
10990
|
+
this.__nextSuper = superFunc;
|
10901
10991
|
}
|
10902
|
-
|
10903
|
-
|
10904
|
-
|
10992
|
+
|
10993
|
+
if (length === 0) {
|
10994
|
+
ret = func.call(this);
|
10995
|
+
} else if (length === 1) {
|
10996
|
+
ret = func.call(this, arguments[0]);
|
10997
|
+
} else if (length === 2) {
|
10998
|
+
ret = func.call(this, arguments[0], arguments[1]);
|
10999
|
+
} else {
|
11000
|
+
var args = new Array(length);
|
11001
|
+
for (var i = 0; i < length; i++) {
|
11002
|
+
args[i] = arguments[i];
|
11003
|
+
}
|
11004
|
+
ret = apply(this, func, args);
|
11005
|
+
}
|
11006
|
+
|
11007
|
+
if (this) {
|
11008
|
+
this.__nextSuper = sup;
|
11009
|
+
}
|
11010
|
+
|
10905
11011
|
return ret;
|
10906
11012
|
}
|
10907
11013
|
|
@@ -10991,7 +11097,7 @@ define("ember-metal/utils",
|
|
10991
11097
|
Checks to see if the `methodName` exists on the `obj`.
|
10992
11098
|
|
10993
11099
|
```javascript
|
10994
|
-
var foo = { bar:
|
11100
|
+
var foo = { bar: function() { return 'bar'; }, baz: null };
|
10995
11101
|
|
10996
11102
|
Ember.canInvoke(foo, 'bar'); // true
|
10997
11103
|
Ember.canInvoke(foo, 'baz'); // false
|
@@ -11710,6 +11816,9 @@ define("ember-runtime",
|
|
11710
11816
|
Ember.isEqual = isEqual;
|
11711
11817
|
|
11712
11818
|
|
11819
|
+
Ember.inject = inject;
|
11820
|
+
|
11821
|
+
|
11713
11822
|
Ember.Array = EmberArray;
|
11714
11823
|
|
11715
11824
|
Ember.Comparable = Comparable;
|
@@ -11782,6 +11891,9 @@ define("ember-runtime",
|
|
11782
11891
|
Ember.ControllerMixin = ControllerMixin;
|
11783
11892
|
|
11784
11893
|
|
11894
|
+
Ember.Service = Service;
|
11895
|
+
|
11896
|
+
|
11785
11897
|
Ember._ProxyMixin = _ProxyMixin;
|
11786
11898
|
|
11787
11899
|
Ember.RSVP = RSVP;
|
@@ -11850,16 +11962,17 @@ define("ember-runtime/compare",
|
|
11850
11962
|
var type2 = typeOf(w);
|
11851
11963
|
|
11852
11964
|
if (Comparable) {
|
11853
|
-
if (type1 ==='instance' && Comparable.detect(v.constructor)
|
11965
|
+
if (type1 === 'instance' && Comparable.detect(v) && v.constructor.compare) {
|
11854
11966
|
return v.constructor.compare(v, w);
|
11855
11967
|
}
|
11856
11968
|
|
11857
|
-
if (type2 === 'instance' && Comparable.detect(w.constructor)
|
11858
|
-
return
|
11969
|
+
if (type2 === 'instance' && Comparable.detect(w) && w.constructor.compare) {
|
11970
|
+
return w.constructor.compare(w, v) * -1;
|
11859
11971
|
}
|
11860
11972
|
}
|
11861
11973
|
|
11862
11974
|
var res = spaceship(TYPE_ORDER[type1], TYPE_ORDER[type2]);
|
11975
|
+
|
11863
11976
|
if (res !== 0) {
|
11864
11977
|
return res;
|
11865
11978
|
}
|
@@ -12571,13 +12684,13 @@ define("ember-runtime/computed/reduce_computed",
|
|
12571
12684
|
|
12572
12685
|
this.options = options;
|
12573
12686
|
this._dependentKeys = null;
|
12687
|
+
this._cacheable = true;
|
12574
12688
|
// A map of dependentKey -> [itemProperty, ...] that tracks what properties of
|
12575
12689
|
// items in the array we must track to update this property.
|
12576
12690
|
this._itemPropertyKeys = {};
|
12577
12691
|
this._previousItemPropertyKeys = {};
|
12578
12692
|
|
12579
12693
|
this.readOnly();
|
12580
|
-
this.cacheable();
|
12581
12694
|
|
12582
12695
|
this.recomputeOnce = function(propertyName) {
|
12583
12696
|
// What we really want to do is coalesce by <cp, propertyName>.
|
@@ -14111,6 +14224,38 @@ define("ember-runtime/controllers/controller",
|
|
14111
14224
|
}
|
14112
14225
|
|
14113
14226
|
|
14227
|
+
/**
|
14228
|
+
Creates a property that lazily looks up another controller in the container.
|
14229
|
+
Can only be used when defining another controller.
|
14230
|
+
|
14231
|
+
Example:
|
14232
|
+
|
14233
|
+
```javascript
|
14234
|
+
App.PostController = Ember.Controller.extend({
|
14235
|
+
posts: Ember.inject.controller()
|
14236
|
+
});
|
14237
|
+
```
|
14238
|
+
|
14239
|
+
This example will create a `posts` property on the `post` controller that
|
14240
|
+
looks up the `posts` controller in the container, making it easy to
|
14241
|
+
reference other controllers. This is functionally equivalent to:
|
14242
|
+
|
14243
|
+
```javascript
|
14244
|
+
App.PostController = Ember.Controller.extend({
|
14245
|
+
needs: 'posts',
|
14246
|
+
posts: Ember.computed.alias('controllers.posts')
|
14247
|
+
});
|
14248
|
+
```
|
14249
|
+
|
14250
|
+
@method inject.controller
|
14251
|
+
@for Ember
|
14252
|
+
@param {String} name (optional) name of the controller to inject, defaults
|
14253
|
+
to the property's name
|
14254
|
+
@return {Ember.InjectedProperty} injection descriptor instance
|
14255
|
+
*/
|
14256
|
+
createInjectionHelper('controller', controllerInjectionHelper);
|
14257
|
+
|
14258
|
+
|
14114
14259
|
__exports__["default"] = Controller;
|
14115
14260
|
});
|
14116
14261
|
define("ember-runtime/controllers/object_controller",
|
@@ -14421,11 +14566,15 @@ define("ember-runtime/ext/function",
|
|
14421
14566
|
@for Function
|
14422
14567
|
*/
|
14423
14568
|
FunctionPrototype.observesImmediately = function () {
|
14424
|
-
|
14425
|
-
|
14426
|
-
|
14427
|
-
|
14428
|
-
|
14569
|
+
Ember.assert('Immediate observers must observe internal properties only, ' +
|
14570
|
+
'not properties on other objects.', function checkIsInternalProperty() {
|
14571
|
+
for(var i = 0, l = arguments.length; i < l; i++) {
|
14572
|
+
if(arguments[i].indexOf('.') !== -1) {
|
14573
|
+
return false;
|
14574
|
+
}
|
14575
|
+
}
|
14576
|
+
return true;
|
14577
|
+
});
|
14429
14578
|
|
14430
14579
|
// observes handles property expansion
|
14431
14580
|
return this.observes.apply(this, arguments);
|
@@ -14544,7 +14693,17 @@ define("ember-runtime/ext/rsvp",
|
|
14544
14693
|
return this['catch'](callback, label);
|
14545
14694
|
};
|
14546
14695
|
|
14547
|
-
RSVP.onerrorDefault = function (
|
14696
|
+
RSVP.onerrorDefault = function (e) {
|
14697
|
+
var error;
|
14698
|
+
|
14699
|
+
if (e && e.errorThrown) {
|
14700
|
+
// jqXHR provides this
|
14701
|
+
error = e.errorThrown;
|
14702
|
+
error.__reason_with_error_thrown__ = e;
|
14703
|
+
} else {
|
14704
|
+
error = e;
|
14705
|
+
}
|
14706
|
+
|
14548
14707
|
if (error && error.name !== 'TransitionAborted') {
|
14549
14708
|
if (Ember.testing) {
|
14550
14709
|
// ES6TODO: remove when possible
|
@@ -14688,14 +14847,15 @@ define("ember-runtime/ext/string",
|
|
14688
14847
|
}
|
14689
14848
|
});
|
14690
14849
|
define("ember-runtime/inject",
|
14691
|
-
["ember-metal/core","ember-metal/enumerable_utils","ember-metal/injected_property","ember-metal/keys","exports"],
|
14692
|
-
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __exports__) {
|
14850
|
+
["ember-metal/core","ember-metal/enumerable_utils","ember-metal/utils","ember-metal/injected_property","ember-metal/keys","exports"],
|
14851
|
+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __exports__) {
|
14693
14852
|
"use strict";
|
14694
14853
|
var Ember = __dependency1__["default"];
|
14695
14854
|
// Ember.assert
|
14696
14855
|
var indexOf = __dependency2__.indexOf;
|
14697
|
-
var
|
14698
|
-
var
|
14856
|
+
var meta = __dependency3__.meta;
|
14857
|
+
var InjectedProperty = __dependency4__["default"];
|
14858
|
+
var keys = __dependency5__["default"];
|
14699
14859
|
|
14700
14860
|
/**
|
14701
14861
|
Namespace for injection helper methods.
|
@@ -14731,26 +14891,22 @@ define("ember-runtime/inject",
|
|
14731
14891
|
}
|
14732
14892
|
|
14733
14893
|
__exports__.createInjectionHelper = createInjectionHelper;/**
|
14734
|
-
Validation function
|
14735
|
-
injected
|
14736
|
-
type encountered.
|
14737
|
-
|
14738
|
-
Note that this currently modifies the mixin themselves, which is technically
|
14739
|
-
dubious but is practically of little consequence. This may change in the
|
14740
|
-
future.
|
14894
|
+
Validation function that runs per-type validation functions once for each
|
14895
|
+
injected type encountered.
|
14741
14896
|
|
14742
14897
|
@private
|
14743
14898
|
@method validatePropertyInjections
|
14744
14899
|
@namespace Ember
|
14745
|
-
@param {Object} factory The factory object
|
14746
|
-
@param {Object} props A hash of properties to be added to the factory
|
14900
|
+
@param {Object} factory The factory object
|
14747
14901
|
*/
|
14748
|
-
function validatePropertyInjections(factory
|
14902
|
+
function validatePropertyInjections(factory) {
|
14903
|
+
var proto = factory.proto();
|
14904
|
+
var descs = meta(proto).descs;
|
14749
14905
|
var types = [];
|
14750
14906
|
var key, desc, validator, i, l;
|
14751
14907
|
|
14752
|
-
for (key in
|
14753
|
-
desc =
|
14908
|
+
for (key in descs) {
|
14909
|
+
desc = descs[key];
|
14754
14910
|
if (desc instanceof InjectedProperty && indexOf(types, desc.type) === -1) {
|
14755
14911
|
types.push(desc.type);
|
14756
14912
|
}
|
@@ -15029,7 +15185,6 @@ define("ember-runtime/mixins/action_handler",
|
|
15029
15185
|
@method willMergeMixin
|
15030
15186
|
*/
|
15031
15187
|
willMergeMixin: function(props) {
|
15032
|
-
|
15033
15188
|
var hashName;
|
15034
15189
|
|
15035
15190
|
if (!props._actions) {
|
@@ -15747,7 +15902,7 @@ define("ember-runtime/mixins/controller_content_model_alias_deprecation",
|
|
15747
15902
|
|
15748
15903
|
This change reduces many caveats with model/content, and also sets a
|
15749
15904
|
simple ground rule: Never set a controllers content, rather always set
|
15750
|
-
|
15905
|
+
its model and ember will do the right thing.
|
15751
15906
|
|
15752
15907
|
|
15753
15908
|
`Ember.ControllerContentModelAliasDeprecation` is used internally by Ember in
|
@@ -17095,7 +17250,7 @@ define("ember-runtime/mixins/enumerable",
|
|
17095
17250
|
sortBy: function() {
|
17096
17251
|
var sortKeys = arguments;
|
17097
17252
|
|
17098
|
-
return this.toArray().sort(function(a, b){
|
17253
|
+
return this.toArray().sort(function(a, b) {
|
17099
17254
|
for(var i = 0; i < sortKeys.length; i++) {
|
17100
17255
|
var key = sortKeys[i];
|
17101
17256
|
var propA = get(a, key);
|
@@ -18175,6 +18330,7 @@ define("ember-runtime/mixins/observable",
|
|
18175
18330
|
},
|
18176
18331
|
|
18177
18332
|
addBeforeObserver: function(key, target, method) {
|
18333
|
+
Ember.deprecate('Before observers are deprecated and will be removed in a future release. If you want to keep track of previous values you have to implement it yourself. See http://emberjs.com/guides/deprecations#toc_deprecate-beforeobservers');
|
18178
18334
|
addBeforeObserver(this, key, target, method);
|
18179
18335
|
},
|
18180
18336
|
|
@@ -18315,7 +18471,7 @@ define("ember-runtime/mixins/observable",
|
|
18315
18471
|
},
|
18316
18472
|
|
18317
18473
|
/**
|
18318
|
-
Set the value of a boolean property to the opposite of
|
18474
|
+
Set the value of a boolean property to the opposite of its
|
18319
18475
|
current value.
|
18320
18476
|
|
18321
18477
|
```javascript
|
@@ -19032,7 +19188,7 @@ define("ember-runtime/system/array_proxy",
|
|
19032
19188
|
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__, __exports__) {
|
19033
19189
|
"use strict";
|
19034
19190
|
var Ember = __dependency1__["default"];
|
19035
|
-
// Ember.
|
19191
|
+
// Ember.assert
|
19036
19192
|
var get = __dependency2__.get;
|
19037
19193
|
var isArray = __dependency3__.isArray;
|
19038
19194
|
var apply = __dependency3__.apply;
|
@@ -19055,7 +19211,8 @@ define("ember-runtime/system/array_proxy",
|
|
19055
19211
|
|
19056
19212
|
var OUT_OF_RANGE_EXCEPTION = "Index out of range";
|
19057
19213
|
var EMPTY = [];
|
19058
|
-
|
19214
|
+
|
19215
|
+
function K() { return this; }
|
19059
19216
|
|
19060
19217
|
/**
|
19061
19218
|
An ArrayProxy wraps any other object that implements `Ember.Array` and/or
|
@@ -19416,8 +19573,8 @@ define("ember-runtime/system/container",
|
|
19416
19573
|
__exports__["default"] = Container;
|
19417
19574
|
});
|
19418
19575
|
define("ember-runtime/system/core_object",
|
19419
|
-
["ember-metal/core","ember-metal/property_get","ember-metal/utils","ember-metal/platform","ember-metal/chains","ember-metal/events","ember-metal/mixin","ember-metal/enumerable_utils","ember-metal/error","ember-metal/keys","ember-runtime/mixins/action_handler","ember-metal/properties","ember-metal/binding","ember-metal/computed","ember-metal/injected_property","ember-metal/run_loop","ember-metal/watching","exports"],
|
19420
|
-
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__, __dependency13__, __dependency14__, __dependency15__, __dependency16__, __dependency17__, __exports__) {
|
19576
|
+
["ember-metal/core","ember-metal/property_get","ember-metal/utils","ember-metal/platform","ember-metal/chains","ember-metal/events","ember-metal/mixin","ember-metal/enumerable_utils","ember-metal/error","ember-metal/keys","ember-runtime/mixins/action_handler","ember-metal/properties","ember-metal/binding","ember-metal/computed","ember-metal/injected_property","ember-metal/run_loop","ember-metal/watching","ember-runtime/inject","exports"],
|
19577
|
+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__, __dependency13__, __dependency14__, __dependency15__, __dependency16__, __dependency17__, __dependency18__, __exports__) {
|
19421
19578
|
// Remove "use strict"; from transpiled module until
|
19422
19579
|
// https://bugs.webkit.org/show_bug.cgi?id=138038 is fixed
|
19423
19580
|
//
|
@@ -19429,7 +19586,7 @@ define("ember-runtime/system/core_object",
|
|
19429
19586
|
*/
|
19430
19587
|
|
19431
19588
|
var Ember = __dependency1__["default"];
|
19432
|
-
// Ember.assert, Ember.
|
19589
|
+
// Ember.assert, Ember.config
|
19433
19590
|
|
19434
19591
|
// NOTE: this object should never be included directly. Instead use `Ember.Object`.
|
19435
19592
|
// We only define this separately so that `Ember.Set` can depend on it.
|
@@ -19460,6 +19617,7 @@ define("ember-runtime/system/core_object",
|
|
19460
19617
|
var destroy = __dependency17__.destroy;
|
19461
19618
|
var K = __dependency1__.K;
|
19462
19619
|
var hasPropertyAccessors = __dependency4__.hasPropertyAccessors;
|
19620
|
+
var validatePropertyInjections = __dependency18__.validatePropertyInjections;
|
19463
19621
|
|
19464
19622
|
var schedule = run.schedule;
|
19465
19623
|
var applyMixin = Mixin._apply;
|
@@ -19547,7 +19705,7 @@ define("ember-runtime/system/core_object",
|
|
19547
19705
|
"time, when Ember.ActionHandler is used (i.e. views, " +
|
19548
19706
|
"controllers & routes).", !((keyName === 'actions') && ActionHandler.detect(this)));
|
19549
19707
|
|
19550
|
-
if (concatenatedProperties &&
|
19708
|
+
if (concatenatedProperties &&
|
19551
19709
|
concatenatedProperties.length > 0 &&
|
19552
19710
|
indexOf(concatenatedProperties, keyName) >= 0) {
|
19553
19711
|
var baseValue = this[keyName];
|
@@ -19580,16 +19738,28 @@ define("ember-runtime/system/core_object",
|
|
19580
19738
|
}
|
19581
19739
|
}
|
19582
19740
|
}
|
19741
|
+
|
19583
19742
|
finishPartial(this, m);
|
19743
|
+
|
19584
19744
|
var length = arguments.length;
|
19585
|
-
|
19586
|
-
|
19587
|
-
|
19745
|
+
|
19746
|
+
if (length === 0) {
|
19747
|
+
this.init();
|
19748
|
+
} else if (length === 1) {
|
19749
|
+
this.init(arguments[0]);
|
19750
|
+
} else {
|
19751
|
+
// v8 bug potentially incorrectly deopts this function: https://code.google.com/p/v8/issues/detail?id=3709
|
19752
|
+
// we may want to keep this around till this ages out on mobile
|
19753
|
+
var args = new Array(length);
|
19754
|
+
for (var x = 0; x < length; x++) {
|
19755
|
+
args[x] = arguments[x];
|
19756
|
+
}
|
19757
|
+
this.init.apply(this, args);
|
19588
19758
|
}
|
19589
|
-
|
19759
|
+
|
19590
19760
|
m.proto = proto;
|
19591
19761
|
finishChains(this);
|
19592
|
-
sendEvent(this,
|
19762
|
+
sendEvent(this, 'init');
|
19593
19763
|
};
|
19594
19764
|
|
19595
19765
|
Class.toString = Mixin.prototype.toString;
|
@@ -19856,10 +20026,6 @@ define("ember-runtime/system/core_object",
|
|
19856
20026
|
return function() { return ret; };
|
19857
20027
|
}
|
19858
20028
|
|
19859
|
-
if (Ember.config.overridePrototypeMixin) {
|
19860
|
-
Ember.config.overridePrototypeMixin(CoreObject.PrototypeMixin);
|
19861
|
-
}
|
19862
|
-
|
19863
20029
|
CoreObject.__super__ = null;
|
19864
20030
|
|
19865
20031
|
var ClassMixinProps = {
|
@@ -20249,15 +20415,53 @@ define("ember-runtime/system/core_object",
|
|
20249
20415
|
}
|
20250
20416
|
};
|
20251
20417
|
|
20418
|
+
function injectedPropertyAssertion() {
|
20419
|
+
Ember.assert("Injected properties are invalid", validatePropertyInjections(this));
|
20420
|
+
}
|
20421
|
+
|
20422
|
+
function addOnLookupHandler() {
|
20423
|
+
Ember.runInDebug(function() {
|
20424
|
+
/**
|
20425
|
+
Provides lookup-time type validation for injected properties.
|
20426
|
+
|
20427
|
+
@private
|
20428
|
+
@method _onLookup
|
20429
|
+
*/
|
20430
|
+
ClassMixinProps._onLookup = injectedPropertyAssertion;
|
20431
|
+
});
|
20432
|
+
}
|
20433
|
+
|
20252
20434
|
|
20435
|
+
addOnLookupHandler();
|
20436
|
+
|
20437
|
+
/**
|
20438
|
+
Returns a hash of property names and container names that injected
|
20439
|
+
properties will lookup on the container lazily.
|
20440
|
+
|
20441
|
+
@method _lazyInjections
|
20442
|
+
@return {Object} Hash of all lazy injected property keys to container names
|
20443
|
+
*/
|
20444
|
+
ClassMixinProps._lazyInjections = function() {
|
20445
|
+
var injections = {};
|
20446
|
+
var proto = this.proto();
|
20447
|
+
var descs = meta(proto).descs;
|
20448
|
+
var key, desc;
|
20449
|
+
|
20450
|
+
for (key in descs) {
|
20451
|
+
desc = descs[key];
|
20452
|
+
if (desc instanceof InjectedProperty) {
|
20453
|
+
injections[key] = desc.type + ':' + (desc.name || key);
|
20454
|
+
}
|
20455
|
+
}
|
20456
|
+
|
20457
|
+
return injections;
|
20458
|
+
};
|
20459
|
+
|
20460
|
+
|
20253
20461
|
var ClassMixin = Mixin.create(ClassMixinProps);
|
20254
20462
|
|
20255
20463
|
ClassMixin.ownerConstructor = CoreObject;
|
20256
20464
|
|
20257
|
-
if (Ember.config.overrideClassMixin) {
|
20258
|
-
Ember.config.overrideClassMixin(ClassMixin);
|
20259
|
-
}
|
20260
|
-
|
20261
20465
|
CoreObject.ClassMixin = ClassMixin;
|
20262
20466
|
|
20263
20467
|
ClassMixin.apply(CoreObject);
|
@@ -21010,19 +21214,16 @@ define("ember-runtime/system/native_array",
|
|
21010
21214
|
__exports__["default"] = NativeArray;
|
21011
21215
|
});
|
21012
21216
|
define("ember-runtime/system/object",
|
21013
|
-
["ember-
|
21014
|
-
function(__dependency1__, __dependency2__,
|
21217
|
+
["ember-runtime/system/core_object","ember-runtime/mixins/observable","exports"],
|
21218
|
+
function(__dependency1__, __dependency2__, __exports__) {
|
21015
21219
|
"use strict";
|
21016
21220
|
/**
|
21017
21221
|
@module ember
|
21018
21222
|
@submodule ember-runtime
|
21019
21223
|
*/
|
21020
21224
|
|
21021
|
-
var
|
21022
|
-
|
21023
|
-
var CoreObject = __dependency2__["default"];
|
21024
|
-
var Observable = __dependency3__["default"];
|
21025
|
-
var validatePropertyInjections = __dependency4__.validatePropertyInjections;
|
21225
|
+
var CoreObject = __dependency1__["default"];
|
21226
|
+
var Observable = __dependency2__["default"];
|
21026
21227
|
|
21027
21228
|
/**
|
21028
21229
|
`Ember.Object` is the main base class for all Ember objects. It is a subclass
|
@@ -21039,13 +21240,6 @@ define("ember-runtime/system/object",
|
|
21039
21240
|
return "Ember.Object";
|
21040
21241
|
};
|
21041
21242
|
|
21042
|
-
function injectedPropertyAssertion(props) {
|
21043
|
-
// Injection validations are a debugging aid only, so ensure that they are
|
21044
|
-
// not performed in production builds by invoking from an assertion
|
21045
|
-
Ember.assert("Injected properties are invalid", validatePropertyInjections(this.constructor, props));
|
21046
|
-
}
|
21047
|
-
|
21048
|
-
|
21049
21243
|
__exports__["default"] = EmberObject;
|
21050
21244
|
});
|
21051
21245
|
define("ember-runtime/system/object_proxy",
|
@@ -21136,6 +21330,42 @@ define("ember-runtime/system/service",
|
|
21136
21330
|
var Service;
|
21137
21331
|
|
21138
21332
|
|
21333
|
+
/**
|
21334
|
+
@class Service
|
21335
|
+
@namespace Ember
|
21336
|
+
@extends Ember.Object
|
21337
|
+
*/
|
21338
|
+
Service = Object.extend();
|
21339
|
+
|
21340
|
+
/**
|
21341
|
+
Creates a property that lazily looks up a service in the container. There
|
21342
|
+
are no restrictions as to what objects a service can be injected into.
|
21343
|
+
|
21344
|
+
Example:
|
21345
|
+
|
21346
|
+
```javascript
|
21347
|
+
App.ApplicationRoute = Ember.Route.extend({
|
21348
|
+
authManager: Ember.inject.service('auth'),
|
21349
|
+
|
21350
|
+
model: function() {
|
21351
|
+
return this.get('authManager').findCurrentUser();
|
21352
|
+
}
|
21353
|
+
});
|
21354
|
+
```
|
21355
|
+
|
21356
|
+
This example will create an `authManager` property on the application route
|
21357
|
+
that looks up the `auth` service in the container, making it easily
|
21358
|
+
accessible in the `model` hook.
|
21359
|
+
|
21360
|
+
@method inject.service
|
21361
|
+
@for Ember
|
21362
|
+
@param {String} name (optional) name of the service to inject, defaults to
|
21363
|
+
the property's name
|
21364
|
+
@return {Ember.InjectedProperty} injection descriptor instance
|
21365
|
+
*/
|
21366
|
+
createInjectionHelper('service');
|
21367
|
+
|
21368
|
+
|
21139
21369
|
__exports__["default"] = Service;
|
21140
21370
|
});
|
21141
21371
|
define("ember-runtime/system/set",
|