ember-source 1.8.0.beta.1 → 1.8.0.beta.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/dist/ember-runtime.js +413 -284
- data/dist/ember-tests.js +216 -79
- data/dist/ember-tests.prod.js +59094 -0
- data/dist/ember.js +454 -322
- data/dist/ember.min.js +12 -12
- data/dist/ember.prod.js +367 -321
- metadata +3 -2
data/dist/ember.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.0-beta.
|
8
|
+
* @version 1.8.0-beta.2
|
9
9
|
*/
|
10
10
|
|
11
11
|
(function() {
|
@@ -704,7 +704,7 @@ define("backburner/deferred-action-queues",
|
|
704
704
|
queue = queues[queueName];
|
705
705
|
queueItems = queue._queueBeingFlushed = queue._queue.slice();
|
706
706
|
queue._queue = [];
|
707
|
-
queue.
|
707
|
+
queue.targetQueues = Object.create(null);
|
708
708
|
|
709
709
|
var queueOptions = queue.options; // TODO: write a test for this
|
710
710
|
var before = queueOptions && queueOptions.before;
|
@@ -1069,12 +1069,13 @@ define("container",
|
|
1069
1069
|
__exports__["default"] = Container;
|
1070
1070
|
});
|
1071
1071
|
define("container/container",
|
1072
|
-
["ember-metal/core","ember-metal/dictionary","exports"],
|
1073
|
-
function(__dependency1__, __dependency2__, __exports__) {
|
1072
|
+
["ember-metal/core","ember-metal/keys","ember-metal/dictionary","exports"],
|
1073
|
+
function(__dependency1__, __dependency2__, __dependency3__, __exports__) {
|
1074
1074
|
"use strict";
|
1075
1075
|
var Ember = __dependency1__["default"];
|
1076
1076
|
// Ember.assert
|
1077
|
-
var
|
1077
|
+
var emberKeys = __dependency2__["default"];
|
1078
|
+
var dictionary = __dependency3__["default"];
|
1078
1079
|
|
1079
1080
|
// A lightweight container that helps to assemble and decouple components.
|
1080
1081
|
// Public api for the container is still in flux.
|
@@ -1871,7 +1872,7 @@ define("container/container",
|
|
1871
1872
|
|
1872
1873
|
function eachDestroyable(container, callback) {
|
1873
1874
|
var cache = container.cache;
|
1874
|
-
var keys =
|
1875
|
+
var keys = emberKeys(cache);
|
1875
1876
|
var key, value;
|
1876
1877
|
|
1877
1878
|
for (var i = 0, l = keys.length; i < l; i++) {
|
@@ -3294,7 +3295,7 @@ define("ember-application/system/dag",
|
|
3294
3295
|
|
3295
3296
|
/**
|
3296
3297
|
* Connects the vertices with the given names, adding them to the graph if
|
3297
|
-
*
|
3298
|
+
* necessary, only if this does not produce is any circular dependency.
|
3298
3299
|
*
|
3299
3300
|
* @private
|
3300
3301
|
* @method addEdge
|
@@ -5329,14 +5330,16 @@ define("ember-handlebars/controls",
|
|
5329
5330
|
var inputType = _resolveOption(this, options, 'type');
|
5330
5331
|
var onEvent = hash.on;
|
5331
5332
|
|
5332
|
-
delete hash.type;
|
5333
|
-
delete hash.on;
|
5334
|
-
|
5335
5333
|
if (inputType === 'checkbox') {
|
5334
|
+
delete hash.type;
|
5335
|
+
delete types.type;
|
5336
|
+
|
5336
5337
|
Ember.assert("{{input type='checkbox'}} does not support setting `value=someBooleanValue`; you must use `checked=someBooleanValue` instead.", options.hashTypes.value !== 'ID');
|
5338
|
+
|
5337
5339
|
return helpers.view.call(this, Checkbox, options);
|
5338
5340
|
} else {
|
5339
|
-
|
5341
|
+
delete hash.on;
|
5342
|
+
|
5340
5343
|
hash.onEvent = onEvent || 'enter';
|
5341
5344
|
return helpers.view.call(this, TextField, options);
|
5342
5345
|
}
|
@@ -12602,81 +12605,124 @@ define("ember-metal/computed",
|
|
12602
12605
|
Generally speaking if you intend for your computed property to be set
|
12603
12606
|
your backing function should accept either two or three arguments.
|
12604
12607
|
|
12608
|
+
```javascript
|
12609
|
+
var Person = Ember.Object.extend({
|
12610
|
+
// these will be supplied by `create`
|
12611
|
+
firstName: null,
|
12612
|
+
lastName: null,
|
12613
|
+
|
12614
|
+
fullName: function(key, value, oldValue) {
|
12615
|
+
// getter
|
12616
|
+
if (arguments.length === 1) {
|
12617
|
+
var firstName = this.get('firstName');
|
12618
|
+
var lastName = this.get('lastName');
|
12619
|
+
|
12620
|
+
return firstName + ' ' + lastName;
|
12621
|
+
|
12622
|
+
// setter
|
12623
|
+
} else {
|
12624
|
+
var name = value.split(' ');
|
12625
|
+
|
12626
|
+
this.set('firstName', name[0]);
|
12627
|
+
this.set('lastName', name[1]);
|
12628
|
+
|
12629
|
+
return value;
|
12630
|
+
}
|
12631
|
+
}.property('firstName', 'lastName')
|
12632
|
+
});
|
12633
|
+
|
12634
|
+
var person = Person.create();
|
12635
|
+
|
12636
|
+
person.set('fullName', 'Peter Wagenet');
|
12637
|
+
person.get('firstName'); // 'Peter'
|
12638
|
+
person.get('lastName'); // 'Wagenet'
|
12639
|
+
```
|
12640
|
+
|
12605
12641
|
@method set
|
12606
12642
|
@param {String} keyName The key being accessed.
|
12607
12643
|
@param {Object} newValue The new value being assigned.
|
12608
12644
|
@param {String} oldValue The old value being replaced.
|
12609
12645
|
@return {Object} The return value of the function backing the CP.
|
12610
12646
|
*/
|
12611
|
-
ComputedPropertyPrototype.set = function(obj, keyName, value) {
|
12612
|
-
var cacheable = this._cacheable;
|
12613
|
-
var func = this.func;
|
12614
|
-
var meta = metaFor(obj, cacheable);
|
12647
|
+
ComputedPropertyPrototype.set = function computedPropertySetWithSuspend(obj, keyName, value) {
|
12615
12648
|
var oldSuspended = this._suspended;
|
12649
|
+
|
12650
|
+
this._suspended = obj;
|
12651
|
+
|
12652
|
+
try {
|
12653
|
+
this._set(obj, keyName, value);
|
12654
|
+
} finally {
|
12655
|
+
this._suspended = oldSuspended;
|
12656
|
+
}
|
12657
|
+
};
|
12658
|
+
|
12659
|
+
ComputedPropertyPrototype._set = function computedPropertySet(obj, keyName, value) {
|
12660
|
+
var cacheable = this._cacheable;
|
12661
|
+
var func = this.func;
|
12662
|
+
var meta = metaFor(obj, cacheable);
|
12663
|
+
var cache = meta.cache;
|
12616
12664
|
var hadCachedValue = false;
|
12617
|
-
|
12665
|
+
|
12618
12666
|
var funcArgLength, cachedValue, ret;
|
12619
12667
|
|
12620
12668
|
if (this._readOnly) {
|
12621
12669
|
throw new EmberError('Cannot set read-only property "' + keyName + '" on object: ' + inspect(obj));
|
12622
12670
|
}
|
12623
12671
|
|
12624
|
-
|
12625
|
-
|
12626
|
-
|
12672
|
+
if (cacheable && cache[keyName] !== undefined) {
|
12673
|
+
if(cache[keyName] !== UNDEFINED) {
|
12674
|
+
cachedValue = cache[keyName];
|
12675
|
+
}
|
12627
12676
|
|
12628
|
-
|
12629
|
-
|
12630
|
-
cachedValue = cache[keyName];
|
12631
|
-
}
|
12677
|
+
hadCachedValue = true;
|
12678
|
+
}
|
12632
12679
|
|
12633
|
-
|
12634
|
-
|
12680
|
+
// Check if the CP has been wrapped. If it has, use the
|
12681
|
+
// length from the wrapped function.
|
12635
12682
|
|
12636
|
-
|
12637
|
-
// length from the wrapped function.
|
12683
|
+
funcArgLength = func.wrappedFunction ? func.wrappedFunction.__ember_arity__ : func.__ember_arity__;
|
12638
12684
|
|
12639
|
-
|
12685
|
+
// For backwards-compatibility with computed properties
|
12686
|
+
// that check for arguments.length === 2 to determine if
|
12687
|
+
// they are being get or set, only pass the old cached
|
12688
|
+
// value if the computed property opts into a third
|
12689
|
+
// argument.
|
12690
|
+
if (funcArgLength === 3) {
|
12691
|
+
ret = func.call(obj, keyName, value, cachedValue);
|
12692
|
+
} else if (funcArgLength === 2) {
|
12693
|
+
ret = func.call(obj, keyName, value);
|
12694
|
+
} else {
|
12695
|
+
defineProperty(obj, keyName, null, cachedValue);
|
12696
|
+
set(obj, keyName, value);
|
12697
|
+
return;
|
12698
|
+
}
|
12640
12699
|
|
12641
|
-
|
12642
|
-
// that check for arguments.length === 2 to determine if
|
12643
|
-
// they are being get or set, only pass the old cached
|
12644
|
-
// value if the computed property opts into a third
|
12645
|
-
// argument.
|
12646
|
-
if (funcArgLength === 3) {
|
12647
|
-
ret = func.call(obj, keyName, value, cachedValue);
|
12648
|
-
} else if (funcArgLength === 2) {
|
12649
|
-
ret = func.call(obj, keyName, value);
|
12650
|
-
} else {
|
12651
|
-
defineProperty(obj, keyName, null, cachedValue);
|
12652
|
-
set(obj, keyName, value);
|
12653
|
-
return;
|
12654
|
-
}
|
12700
|
+
if (hadCachedValue && cachedValue === ret) { return; }
|
12655
12701
|
|
12656
|
-
|
12702
|
+
var watched = meta.watching[keyName];
|
12703
|
+
if (watched) {
|
12704
|
+
propertyWillChange(obj, keyName);
|
12705
|
+
}
|
12657
12706
|
|
12658
|
-
|
12659
|
-
|
12707
|
+
if (hadCachedValue) {
|
12708
|
+
cache[keyName] = undefined;
|
12709
|
+
}
|
12660
12710
|
|
12661
|
-
|
12662
|
-
|
12711
|
+
if (cacheable) {
|
12712
|
+
if (!hadCachedValue) {
|
12713
|
+
addDependentKeys(this, obj, keyName, meta);
|
12663
12714
|
}
|
12664
|
-
|
12665
|
-
|
12666
|
-
|
12667
|
-
|
12668
|
-
}
|
12669
|
-
if (ret === undefined) {
|
12670
|
-
cache[keyName] = UNDEFINED;
|
12671
|
-
} else {
|
12672
|
-
cache[keyName] = ret;
|
12673
|
-
}
|
12715
|
+
if (ret === undefined) {
|
12716
|
+
cache[keyName] = UNDEFINED;
|
12717
|
+
} else {
|
12718
|
+
cache[keyName] = ret;
|
12674
12719
|
}
|
12720
|
+
}
|
12675
12721
|
|
12676
|
-
|
12677
|
-
|
12678
|
-
this._suspended = oldSuspended;
|
12722
|
+
if (watched) {
|
12723
|
+
propertyDidChange(obj, keyName);
|
12679
12724
|
}
|
12725
|
+
|
12680
12726
|
return ret;
|
12681
12727
|
};
|
12682
12728
|
|
@@ -12703,9 +12749,45 @@ define("ember-metal/computed",
|
|
12703
12749
|
The function should accept two parameters, key and value. If value is not
|
12704
12750
|
undefined you should set the value first. In either case return the
|
12705
12751
|
current value of the property.
|
12752
|
+
|
12753
|
+
A computed property defined in this way might look like this:
|
12754
|
+
|
12755
|
+
```js
|
12756
|
+
var Person = Ember.Object.extend({
|
12757
|
+
firstName: 'Betty',
|
12758
|
+
lastName: 'Jones',
|
12759
|
+
|
12760
|
+
fullName: Ember.computed('firstName', 'lastName', function(key, value) {
|
12761
|
+
return this.get('firstName') + ' ' + this.get('lastName');
|
12762
|
+
})
|
12763
|
+
});
|
12764
|
+
|
12765
|
+
var client = Person.create();
|
12766
|
+
|
12767
|
+
client.get('fullName'); // 'Betty Jones'
|
12768
|
+
|
12769
|
+
client.set('lastName', 'Fuller');
|
12770
|
+
client.get('fullName'); // 'Betty Fuller'
|
12771
|
+
```
|
12772
|
+
|
12773
|
+
_Note: This is the prefered way to define computed properties when writing third-party
|
12774
|
+
libraries that depend on or use Ember, since there is no guarantee that the user
|
12775
|
+
will have prototype extensions enabled._
|
12776
|
+
|
12777
|
+
You might use this method if you disabled
|
12778
|
+
[Prototype Extensions](http://emberjs.com/guides/configuring-ember/disabling-prototype-extensions/).
|
12779
|
+
The alternative syntax might look like this
|
12780
|
+
(if prototype extensions are enabled, which is the default behavior):
|
12781
|
+
|
12782
|
+
```js
|
12783
|
+
fullName: function () {
|
12784
|
+
return this.get('firstName') + ' ' + this.get('lastName');
|
12785
|
+
}.property('firstName', 'lastName')
|
12786
|
+
```
|
12706
12787
|
|
12707
12788
|
@method computed
|
12708
12789
|
@for Ember
|
12790
|
+
@param {String} [dependentKeys*] Optional dependent keys that trigger this computed property.
|
12709
12791
|
@param {Function} func The computed property function.
|
12710
12792
|
@return {Ember.ComputedProperty} property descriptor instance
|
12711
12793
|
*/
|
@@ -13038,7 +13120,7 @@ define("ember-metal/computed_macros",
|
|
13038
13120
|
});
|
13039
13121
|
|
13040
13122
|
/**
|
13041
|
-
A computed property that returns true if the
|
13123
|
+
A computed property that returns true if the provided dependent property
|
13042
13124
|
is greater than the provided value.
|
13043
13125
|
|
13044
13126
|
Example
|
@@ -13062,7 +13144,7 @@ define("ember-metal/computed_macros",
|
|
13062
13144
|
@param {String} dependentKey
|
13063
13145
|
@param {Number} value
|
13064
13146
|
@return {Ember.ComputedProperty} computed property which returns true if
|
13065
|
-
the original value for property is greater
|
13147
|
+
the original value for property is greater than given value.
|
13066
13148
|
*/
|
13067
13149
|
registerComputed('gt', function(dependentKey, value) {
|
13068
13150
|
return get(this, dependentKey) > value;
|
@@ -13155,7 +13237,7 @@ define("ember-metal/computed_macros",
|
|
13155
13237
|
@param {String} dependentKey
|
13156
13238
|
@param {Number} value
|
13157
13239
|
@return {Ember.ComputedProperty} computed property which returns true if
|
13158
|
-
the original value for property is less or equal
|
13240
|
+
the original value for property is less or equal than given value.
|
13159
13241
|
*/
|
13160
13242
|
registerComputed('lte', function(dependentKey, value) {
|
13161
13243
|
return get(this, dependentKey) <= value;
|
@@ -13507,7 +13589,7 @@ define("ember-metal/core",
|
|
13507
13589
|
|
13508
13590
|
@class Ember
|
13509
13591
|
@static
|
13510
|
-
@version 1.8.0-beta.
|
13592
|
+
@version 1.8.0-beta.2
|
13511
13593
|
*/
|
13512
13594
|
|
13513
13595
|
if ('undefined' === typeof Ember) {
|
@@ -13534,10 +13616,10 @@ define("ember-metal/core",
|
|
13534
13616
|
/**
|
13535
13617
|
@property VERSION
|
13536
13618
|
@type String
|
13537
|
-
@default '1.8.0-beta.
|
13619
|
+
@default '1.8.0-beta.2'
|
13538
13620
|
@static
|
13539
13621
|
*/
|
13540
|
-
Ember.VERSION = '1.8.0-beta.
|
13622
|
+
Ember.VERSION = '1.8.0-beta.2';
|
13541
13623
|
|
13542
13624
|
/**
|
13543
13625
|
Standard environmental variables. You can define these in a global `EmberENV`
|
@@ -13781,6 +13863,50 @@ define("ember-metal/dependent_keys",
|
|
13781
13863
|
|
13782
13864
|
__exports__.removeDependentKeys = removeDependentKeys;
|
13783
13865
|
});
|
13866
|
+
define("ember-metal/deprecate_property",
|
13867
|
+
["ember-metal/core","ember-metal/platform","ember-metal/properties","ember-metal/property_get","ember-metal/property_set","exports"],
|
13868
|
+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __exports__) {
|
13869
|
+
"use strict";
|
13870
|
+
/**
|
13871
|
+
@module ember-metal
|
13872
|
+
*/
|
13873
|
+
|
13874
|
+
var Ember = __dependency1__["default"];
|
13875
|
+
var hasPropertyAccessors = __dependency2__.hasPropertyAccessors;
|
13876
|
+
var defineProperty = __dependency3__.defineProperty;
|
13877
|
+
var get = __dependency4__.get;
|
13878
|
+
var set = __dependency5__.set;
|
13879
|
+
|
13880
|
+
|
13881
|
+
/**
|
13882
|
+
Used internally to allow changing properties in a backwards compatible way, and print a helpful
|
13883
|
+
deprecation warning.
|
13884
|
+
|
13885
|
+
@method deprecateProperty
|
13886
|
+
@param {Object} object The object to add the deprecated property to.
|
13887
|
+
@param {String} deprecatedKey The property to add (and print deprecation warnings upon accessing).
|
13888
|
+
@param {String} newKey The property that will be aliased.
|
13889
|
+
@private
|
13890
|
+
@since 1.7.0
|
13891
|
+
*/
|
13892
|
+
|
13893
|
+
function deprecateProperty(object, deprecatedKey, newKey) {
|
13894
|
+
function deprecate() {
|
13895
|
+
Ember.deprecate('Usage of `' + deprecatedKey + '` is deprecated, use `' + newKey + '` instead.');
|
13896
|
+
}
|
13897
|
+
|
13898
|
+
if (hasPropertyAccessors) {
|
13899
|
+
defineProperty(object, deprecatedKey, {
|
13900
|
+
configurable: true,
|
13901
|
+
enumerable: false,
|
13902
|
+
set: function(value) { deprecate(); set(this, newKey, value); },
|
13903
|
+
get: function() { deprecate(); return get(this, newKey); }
|
13904
|
+
});
|
13905
|
+
}
|
13906
|
+
}
|
13907
|
+
|
13908
|
+
__exports__.deprecateProperty = deprecateProperty;
|
13909
|
+
});
|
13784
13910
|
define("ember-metal/dictionary",
|
13785
13911
|
["exports"],
|
13786
13912
|
function(__exports__) {
|
@@ -14734,7 +14860,7 @@ define("ember-metal/instrumentation",
|
|
14734
14860
|
*/
|
14735
14861
|
function instrument(name, _payload, callback, binding) {
|
14736
14862
|
if (subscribers.length === 0) {
|
14737
|
-
return;
|
14863
|
+
return callback.call(binding);
|
14738
14864
|
}
|
14739
14865
|
var payload = _payload || {};
|
14740
14866
|
var finalizer = _instrumentStart(name, function () {
|
@@ -14748,6 +14874,8 @@ define("ember-metal/instrumentation",
|
|
14748
14874
|
payload.exception = e;
|
14749
14875
|
};
|
14750
14876
|
return tryCatchFinally(tryable, catchable, finalizer);
|
14877
|
+
} else {
|
14878
|
+
return callback.call(binding);
|
14751
14879
|
}
|
14752
14880
|
}
|
14753
14881
|
|
@@ -15017,11 +15145,11 @@ define("ember-metal/is_present",
|
|
15017
15145
|
__exports__["default"] = isPresent;
|
15018
15146
|
});
|
15019
15147
|
define("ember-metal/keys",
|
15020
|
-
["ember-metal/
|
15148
|
+
["ember-metal/array","ember-metal/platform","exports"],
|
15021
15149
|
function(__dependency1__, __dependency2__, __exports__) {
|
15022
15150
|
"use strict";
|
15023
|
-
var
|
15024
|
-
var
|
15151
|
+
var indexOf = __dependency1__.indexOf;
|
15152
|
+
var canDefineNonEnumerableProperties = __dependency2__.canDefineNonEnumerableProperties;
|
15025
15153
|
|
15026
15154
|
/**
|
15027
15155
|
Returns all of the keys defined on an object or hash. This is useful
|
@@ -15035,7 +15163,7 @@ define("ember-metal/keys",
|
|
15035
15163
|
*/
|
15036
15164
|
var keys = Object.keys;
|
15037
15165
|
|
15038
|
-
if (!keys ||
|
15166
|
+
if (!keys || !canDefineNonEnumerableProperties) {
|
15039
15167
|
var prototypeProperties = [
|
15040
15168
|
'constructor',
|
15041
15169
|
'hasOwnProperty',
|
@@ -15056,7 +15184,7 @@ define("ember-metal/keys",
|
|
15056
15184
|
return;
|
15057
15185
|
}
|
15058
15186
|
|
15059
|
-
if (
|
15187
|
+
if (indexOf(array, key) >= 0) {
|
15060
15188
|
return;
|
15061
15189
|
}
|
15062
15190
|
|
@@ -16771,65 +16899,62 @@ define("ember-metal/path_cache",
|
|
16771
16899
|
__exports__.isPath = isPath;
|
16772
16900
|
});
|
16773
16901
|
define("ember-metal/platform",
|
16774
|
-
["
|
16775
|
-
function(
|
16902
|
+
["exports"],
|
16903
|
+
function(__exports__) {
|
16776
16904
|
"use strict";
|
16777
16905
|
/*globals Node */
|
16778
16906
|
|
16779
|
-
var Ember = __dependency1__["default"];
|
16780
|
-
|
16781
16907
|
/**
|
16782
16908
|
@module ember-metal
|
16783
16909
|
*/
|
16784
|
-
|
16785
|
-
|
16786
|
-
Platform specific methods and feature detectors needed by the framework.
|
16787
|
-
|
16788
|
-
@class platform
|
16789
|
-
@namespace Ember
|
16790
|
-
@static
|
16791
|
-
*/
|
16792
|
-
// TODO remove this
|
16793
|
-
var platform = {};
|
16794
|
-
|
16795
|
-
var defineProperty = Object.defineProperty;
|
16796
|
-
var canRedefineProperties, canDefinePropertyOnDOM;
|
16797
|
-
|
16798
|
-
// Catch IE8 where Object.defineProperty exists but only works on DOM elements
|
16799
|
-
if (defineProperty) {
|
16910
|
+
var defineProperty = (function checkCompliance(defineProperty) {
|
16911
|
+
if (!defineProperty) return;
|
16800
16912
|
try {
|
16801
|
-
|
16802
|
-
} catch (e) {
|
16803
|
-
defineProperty = null;
|
16804
|
-
}
|
16805
|
-
}
|
16806
|
-
|
16807
|
-
if (defineProperty) {
|
16808
|
-
// Detects a bug in Android <3.2 where you cannot redefine a property using
|
16809
|
-
// Object.defineProperty once accessors have already been set.
|
16810
|
-
canRedefineProperties = (function() {
|
16913
|
+
var a = 5;
|
16811
16914
|
var obj = {};
|
16812
|
-
|
16813
16915
|
defineProperty(obj, 'a', {
|
16814
16916
|
configurable: true,
|
16815
16917
|
enumerable: true,
|
16816
|
-
get: function() {
|
16817
|
-
|
16918
|
+
get: function () {
|
16919
|
+
return a;
|
16920
|
+
},
|
16921
|
+
set: function (v) {
|
16922
|
+
a = v;
|
16923
|
+
}
|
16818
16924
|
});
|
16925
|
+
if (obj.a !== 5) return;
|
16926
|
+
obj.a = 10;
|
16927
|
+
if (a !== 10) return;
|
16819
16928
|
|
16929
|
+
// check non-enumerability
|
16820
16930
|
defineProperty(obj, 'a', {
|
16821
16931
|
configurable: true,
|
16822
|
-
enumerable:
|
16932
|
+
enumerable: false,
|
16823
16933
|
writable: true,
|
16824
16934
|
value: true
|
16825
16935
|
});
|
16936
|
+
for (var key in obj) {
|
16937
|
+
if (key === 'a') return;
|
16938
|
+
}
|
16826
16939
|
|
16827
|
-
|
16828
|
-
|
16940
|
+
// Detects a bug in Android <3.2 where you cannot redefine a property using
|
16941
|
+
// Object.defineProperty once accessors have already been set.
|
16942
|
+
if (obj.a !== true) return;
|
16829
16943
|
|
16944
|
+
// defineProperty is compliant
|
16945
|
+
return defineProperty;
|
16946
|
+
} catch (e) {
|
16947
|
+
// IE8 defines Object.defineProperty but calling it on an Object throws
|
16948
|
+
return;
|
16949
|
+
}
|
16950
|
+
})(Object.defineProperty);
|
16951
|
+
|
16952
|
+
var hasES5CompliantDefineProperty = !!defineProperty;
|
16953
|
+
|
16954
|
+
if (hasES5CompliantDefineProperty && typeof document !== 'undefined') {
|
16830
16955
|
// This is for Safari 5.0, which supports Object.defineProperty, but not
|
16831
16956
|
// on DOM nodes.
|
16832
|
-
canDefinePropertyOnDOM = (function() {
|
16957
|
+
var canDefinePropertyOnDOM = (function() {
|
16833
16958
|
try {
|
16834
16959
|
defineProperty(document.createElement('div'), 'definePropertyOnDOM', {});
|
16835
16960
|
return true;
|
@@ -16838,9 +16963,7 @@ define("ember-metal/platform",
|
|
16838
16963
|
return false;
|
16839
16964
|
})();
|
16840
16965
|
|
16841
|
-
if (!
|
16842
|
-
defineProperty = null;
|
16843
|
-
} else if (!canDefinePropertyOnDOM) {
|
16966
|
+
if (!canDefinePropertyOnDOM) {
|
16844
16967
|
defineProperty = function(obj, keyName, desc) {
|
16845
16968
|
var isNode;
|
16846
16969
|
|
@@ -16860,6 +16983,12 @@ define("ember-metal/platform",
|
|
16860
16983
|
}
|
16861
16984
|
}
|
16862
16985
|
|
16986
|
+
if (!hasES5CompliantDefineProperty) {
|
16987
|
+
defineProperty = function defineProperty(obj, keyName, desc) {
|
16988
|
+
if (!desc.get) { obj[keyName] = desc.value; }
|
16989
|
+
};
|
16990
|
+
}
|
16991
|
+
|
16863
16992
|
// ES5 15.2.3.7
|
16864
16993
|
// http://es5.github.com/#x15.2.3.7
|
16865
16994
|
if (!Object.defineProperties) {
|
@@ -16955,17 +17084,28 @@ define("ember-metal/platform",
|
|
16955
17084
|
|
16956
17085
|
return object;
|
16957
17086
|
};
|
16958
|
-
create.isSimulated = true;
|
16959
17087
|
} else {
|
16960
17088
|
create = Object.create;
|
16961
17089
|
}
|
16962
17090
|
|
17091
|
+
var hasPropertyAccessors = hasES5CompliantDefineProperty;
|
17092
|
+
var canDefineNonEnumerableProperties = hasES5CompliantDefineProperty;
|
16963
17093
|
|
16964
17094
|
/**
|
16965
17095
|
@class platform
|
16966
17096
|
@namespace Ember
|
16967
17097
|
*/
|
16968
17098
|
|
17099
|
+
/**
|
17100
|
+
Platform specific methods and feature detectors needed by the framework.
|
17101
|
+
|
17102
|
+
@class platform
|
17103
|
+
@namespace Ember
|
17104
|
+
@static
|
17105
|
+
*/
|
17106
|
+
// TODO remove this
|
17107
|
+
var platform = {};
|
17108
|
+
|
16969
17109
|
/**
|
16970
17110
|
Identical to `Object.defineProperty()`. Implements as much functionality
|
16971
17111
|
as possible if not available natively.
|
@@ -16984,45 +17124,27 @@ define("ember-metal/platform",
|
|
16984
17124
|
@property hasPropertyAccessors
|
16985
17125
|
@final
|
16986
17126
|
*/
|
16987
|
-
platform.hasPropertyAccessors =
|
16988
|
-
|
16989
|
-
if (!platform.defineProperty) {
|
16990
|
-
platform.hasPropertyAccessors = false;
|
16991
|
-
|
16992
|
-
defineProperty = platform.defineProperty = function(obj, keyName, desc) {
|
16993
|
-
if (!desc.get) { obj[keyName] = desc.value; }
|
16994
|
-
};
|
16995
|
-
|
16996
|
-
platform.defineProperty.isSimulated = true;
|
16997
|
-
}
|
16998
|
-
|
16999
|
-
if (Ember.ENV.MANDATORY_SETTER && !platform.hasPropertyAccessors) {
|
17000
|
-
Ember.ENV.MANDATORY_SETTER = false;
|
17001
|
-
}
|
17127
|
+
platform.hasPropertyAccessors = hasPropertyAccessors;
|
17002
17128
|
|
17003
17129
|
__exports__.create = create;
|
17130
|
+
__exports__.defineProperty = defineProperty;
|
17131
|
+
__exports__.hasPropertyAccessors = hasPropertyAccessors;
|
17132
|
+
__exports__.canDefineNonEnumerableProperties = canDefineNonEnumerableProperties;
|
17004
17133
|
__exports__.platform = platform;
|
17005
17134
|
});
|
17006
17135
|
define("ember-metal/properties",
|
17007
|
-
["ember-metal/core","ember-metal/utils","ember-metal/platform","ember-metal/property_events","
|
17008
|
-
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__,
|
17136
|
+
["ember-metal/core","ember-metal/utils","ember-metal/platform","ember-metal/property_events","exports"],
|
17137
|
+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __exports__) {
|
17009
17138
|
"use strict";
|
17010
17139
|
/**
|
17011
17140
|
@module ember-metal
|
17012
17141
|
*/
|
17013
17142
|
|
17014
17143
|
var Ember = __dependency1__["default"];
|
17015
|
-
var
|
17016
|
-
var
|
17144
|
+
var metaFor = __dependency2__.meta;
|
17145
|
+
var objectDefineProperty = __dependency3__.defineProperty;
|
17146
|
+
var hasPropertyAccessors = __dependency3__.hasPropertyAccessors;
|
17017
17147
|
var overrideChains = __dependency4__.overrideChains;
|
17018
|
-
var get = __dependency5__.get;
|
17019
|
-
var set = __dependency6__.set;
|
17020
|
-
|
17021
|
-
var metaFor = meta;
|
17022
|
-
var objectDefineProperty = platform.defineProperty;
|
17023
|
-
|
17024
|
-
var MANDATORY_SETTER = Ember.ENV.MANDATORY_SETTER;
|
17025
|
-
|
17026
17148
|
// ..........................................................
|
17027
17149
|
// DESCRIPTOR
|
17028
17150
|
//
|
@@ -17044,18 +17166,18 @@ define("ember-metal/properties",
|
|
17044
17166
|
// DEFINING PROPERTIES API
|
17045
17167
|
//
|
17046
17168
|
|
17047
|
-
|
17169
|
+
function MANDATORY_SETTER_FUNCTION(value) {
|
17048
17170
|
Ember.assert("You must use Ember.set() to access this property (of " + this + ")", false);
|
17049
|
-
}
|
17171
|
+
}
|
17050
17172
|
|
17051
|
-
|
17052
|
-
return function() {
|
17173
|
+
__exports__.MANDATORY_SETTER_FUNCTION = MANDATORY_SETTER_FUNCTION;function DEFAULT_GETTER_FUNCTION(name) {
|
17174
|
+
return function GETTER_FUNCTION() {
|
17053
17175
|
var meta = this['__ember_meta__'];
|
17054
17176
|
return meta && meta.values[name];
|
17055
17177
|
};
|
17056
|
-
}
|
17178
|
+
}
|
17057
17179
|
|
17058
|
-
|
17180
|
+
__exports__.DEFAULT_GETTER_FUNCTION = DEFAULT_GETTER_FUNCTION;/**
|
17059
17181
|
NOTE: This is a low-level method used by other parts of the API. You almost
|
17060
17182
|
never want to call this method directly. Instead you should use
|
17061
17183
|
`Ember.mixin()` to define new properties.
|
@@ -17118,34 +17240,36 @@ define("ember-metal/properties",
|
|
17118
17240
|
value = desc;
|
17119
17241
|
|
17120
17242
|
descs[keyName] = desc;
|
17121
|
-
|
17122
|
-
|
17123
|
-
configurable: true,
|
17124
|
-
enumerable: true,
|
17125
|
-
writable: true,
|
17126
|
-
value: undefined // make enumerable
|
17127
|
-
});
|
17128
|
-
} else {
|
17129
|
-
obj[keyName] = undefined; // make enumerable
|
17130
|
-
}
|
17131
|
-
if (desc.setup) { desc.setup(obj, keyName); }
|
17132
|
-
} else {
|
17133
|
-
descs[keyName] = undefined; // shadow descriptor in proto
|
17134
|
-
if (desc == null) {
|
17135
|
-
value = data;
|
17136
|
-
|
17137
|
-
if (MANDATORY_SETTER && watching) {
|
17138
|
-
meta.values[keyName] = data;
|
17243
|
+
|
17244
|
+
if (watching && hasPropertyAccessors) {
|
17139
17245
|
objectDefineProperty(obj, keyName, {
|
17140
17246
|
configurable: true,
|
17141
17247
|
enumerable: true,
|
17142
|
-
|
17143
|
-
|
17248
|
+
writable: true,
|
17249
|
+
value: undefined // make enumerable
|
17144
17250
|
});
|
17145
17251
|
} else {
|
17146
|
-
obj[keyName] =
|
17252
|
+
obj[keyName] = undefined; // make enumerable
|
17147
17253
|
}
|
17148
|
-
|
17254
|
+
if (desc.setup) { desc.setup(obj, keyName); }
|
17255
|
+
} else {
|
17256
|
+
descs[keyName] = undefined; // shadow descriptor in proto
|
17257
|
+
if (desc == null) {
|
17258
|
+
value = data;
|
17259
|
+
|
17260
|
+
|
17261
|
+
if (watching && hasPropertyAccessors) {
|
17262
|
+
meta.values[keyName] = data;
|
17263
|
+
objectDefineProperty(obj, keyName, {
|
17264
|
+
configurable: true,
|
17265
|
+
enumerable: true,
|
17266
|
+
set: MANDATORY_SETTER_FUNCTION,
|
17267
|
+
get: DEFAULT_GETTER_FUNCTION(keyName)
|
17268
|
+
});
|
17269
|
+
} else {
|
17270
|
+
obj[keyName] = data;
|
17271
|
+
}
|
17272
|
+
} else {
|
17149
17273
|
value = desc;
|
17150
17274
|
|
17151
17275
|
// compatibility with ES5
|
@@ -17163,35 +17287,7 @@ define("ember-metal/properties",
|
|
17163
17287
|
|
17164
17288
|
return this;
|
17165
17289
|
}
|
17166
|
-
|
17167
|
-
__exports__.defineProperty = defineProperty;/**
|
17168
|
-
Used internally to allow changing properties in a backwards compatible way, and print a helpful
|
17169
|
-
deprecation warning.
|
17170
|
-
|
17171
|
-
@method deprecateProperty
|
17172
|
-
@param {Object} object The object to add the deprecated property to.
|
17173
|
-
@param {String} deprecatedKey The property to add (and print deprecation warnings upon accessing).
|
17174
|
-
@param {String} newKey The property that will be aliased.
|
17175
|
-
@private
|
17176
|
-
@since 1.7.0
|
17177
|
-
*/
|
17178
|
-
|
17179
|
-
function deprecateProperty(object, deprecatedKey, newKey) {
|
17180
|
-
function deprecate() {
|
17181
|
-
Ember.deprecate('Usage of `' + deprecatedKey + '` is deprecated, use `' + newKey + '` instead.');
|
17182
|
-
}
|
17183
|
-
|
17184
|
-
if (platform.hasPropertyAccessors) {
|
17185
|
-
defineProperty(object, deprecatedKey, {
|
17186
|
-
configurable: true,
|
17187
|
-
enumerable: false,
|
17188
|
-
set: function(value) { deprecate(); set(object, newKey, value); },
|
17189
|
-
get: function() { deprecate(); return get(object, newKey); }
|
17190
|
-
});
|
17191
|
-
}
|
17192
|
-
}
|
17193
|
-
|
17194
|
-
__exports__.deprecateProperty = deprecateProperty;
|
17290
|
+
__exports__.defineProperty = defineProperty;
|
17195
17291
|
});
|
17196
17292
|
define("ember-metal/property_events",
|
17197
17293
|
["ember-metal/utils","ember-metal/events","ember-metal/observer_set","exports"],
|
@@ -17453,8 +17549,8 @@ define("ember-metal/property_events",
|
|
17453
17549
|
__exports__.changeProperties = changeProperties;
|
17454
17550
|
});
|
17455
17551
|
define("ember-metal/property_get",
|
17456
|
-
["ember-metal/core","ember-metal/error","ember-metal/path_cache","exports"],
|
17457
|
-
function(__dependency1__, __dependency2__, __dependency3__, __exports__) {
|
17552
|
+
["ember-metal/core","ember-metal/error","ember-metal/path_cache","ember-metal/platform","exports"],
|
17553
|
+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __exports__) {
|
17458
17554
|
"use strict";
|
17459
17555
|
/**
|
17460
17556
|
@module ember-metal
|
@@ -17465,8 +17561,8 @@ define("ember-metal/property_get",
|
|
17465
17561
|
var isGlobalPath = __dependency3__.isGlobalPath;
|
17466
17562
|
var isPath = __dependency3__.isPath;
|
17467
17563
|
var pathHasThis = __dependency3__.hasThis;
|
17564
|
+
var hasPropertyAccessors = __dependency4__.hasPropertyAccessors;
|
17468
17565
|
|
17469
|
-
var MANDATORY_SETTER = Ember.ENV.MANDATORY_SETTER;
|
17470
17566
|
var FIRST_KEY = /^([^\.]+)/;
|
17471
17567
|
|
17472
17568
|
// ..........................................................
|
@@ -17534,12 +17630,13 @@ define("ember-metal/property_get",
|
|
17534
17630
|
if (desc) {
|
17535
17631
|
return desc.get(obj, keyName);
|
17536
17632
|
} else {
|
17537
|
-
|
17538
|
-
|
17539
|
-
|
17540
|
-
|
17541
|
-
|
17542
|
-
|
17633
|
+
|
17634
|
+
if (hasPropertyAccessors && meta && meta.watching[keyName] > 0) {
|
17635
|
+
ret = meta.values[keyName];
|
17636
|
+
} else {
|
17637
|
+
ret = obj[keyName];
|
17638
|
+
}
|
17639
|
+
|
17543
17640
|
if (ret === undefined &&
|
17544
17641
|
'object' === typeof obj && !(keyName in obj) && 'function' === typeof obj.unknownProperty) {
|
17545
17642
|
return obj.unknownProperty(keyName);
|
@@ -17636,8 +17733,8 @@ define("ember-metal/property_get",
|
|
17636
17733
|
__exports__._getPath = _getPath;
|
17637
17734
|
});
|
17638
17735
|
define("ember-metal/property_set",
|
17639
|
-
["ember-metal/core","ember-metal/property_get","ember-metal/property_events","ember-metal/properties","ember-metal/error","ember-metal/path_cache","exports"],
|
17640
|
-
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __exports__) {
|
17736
|
+
["ember-metal/core","ember-metal/property_get","ember-metal/property_events","ember-metal/properties","ember-metal/error","ember-metal/path_cache","ember-metal/platform","exports"],
|
17737
|
+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __exports__) {
|
17641
17738
|
"use strict";
|
17642
17739
|
var Ember = __dependency1__["default"];
|
17643
17740
|
var getPath = __dependency2__._getPath;
|
@@ -17646,9 +17743,8 @@ define("ember-metal/property_set",
|
|
17646
17743
|
var defineProperty = __dependency4__.defineProperty;
|
17647
17744
|
var EmberError = __dependency5__["default"];
|
17648
17745
|
var isPath = __dependency6__.isPath;
|
17746
|
+
var hasPropertyAccessors = __dependency7__.hasPropertyAccessors;
|
17649
17747
|
|
17650
|
-
|
17651
|
-
var MANDATORY_SETTER = Ember.ENV.MANDATORY_SETTER;
|
17652
17748
|
var IS_GLOBAL = /^([A-Z$]|([0-9][A-Z$]))/;
|
17653
17749
|
|
17654
17750
|
/**
|
@@ -17705,24 +17801,26 @@ define("ember-metal/property_set",
|
|
17705
17801
|
if (isUnknown && 'function' === typeof obj.setUnknownProperty) {
|
17706
17802
|
obj.setUnknownProperty(keyName, value);
|
17707
17803
|
} else if (meta && meta.watching[keyName] > 0) {
|
17708
|
-
|
17709
|
-
|
17710
|
-
|
17711
|
-
|
17712
|
-
|
17713
|
-
|
17804
|
+
|
17805
|
+
if (hasPropertyAccessors) {
|
17806
|
+
currentValue = meta.values[keyName];
|
17807
|
+
} else {
|
17808
|
+
currentValue = obj[keyName];
|
17809
|
+
}
|
17810
|
+
// only trigger a change if the value has changed
|
17714
17811
|
if (value !== currentValue) {
|
17715
17812
|
propertyWillChange(obj, keyName);
|
17716
|
-
|
17717
|
-
if (
|
17718
|
-
|
17813
|
+
|
17814
|
+
if (hasPropertyAccessors) {
|
17815
|
+
if ((currentValue === undefined && !(keyName in obj)) || !obj.propertyIsEnumerable(keyName)) {
|
17816
|
+
defineProperty(obj, keyName, null, value); // setup mandatory setter
|
17817
|
+
} else {
|
17818
|
+
meta.values[keyName] = value;
|
17819
|
+
}
|
17719
17820
|
} else {
|
17720
|
-
|
17821
|
+
obj[keyName] = value;
|
17721
17822
|
}
|
17722
|
-
|
17723
|
-
obj[keyName] = value;
|
17724
|
-
}
|
17725
|
-
propertyDidChange(obj, keyName);
|
17823
|
+
propertyDidChange(obj, keyName);
|
17726
17824
|
}
|
17727
17825
|
} else {
|
17728
17826
|
obj[keyName] = value;
|
@@ -18079,7 +18177,7 @@ define("ember-metal/run_loop",
|
|
18079
18177
|
|
18080
18178
|
/**
|
18081
18179
|
Invokes the passed target/method and optional arguments after a specified
|
18082
|
-
period
|
18180
|
+
period of time. The last parameter of this method must always be a number
|
18083
18181
|
of milliseconds.
|
18084
18182
|
|
18085
18183
|
You should use this method whenever you need to run some action after a
|
@@ -18453,16 +18551,17 @@ define("ember-metal/set_properties",
|
|
18453
18551
|
}
|
18454
18552
|
});
|
18455
18553
|
define("ember-metal/utils",
|
18456
|
-
["ember-metal/core","ember-metal/platform","ember-metal/array","
|
18457
|
-
function(__dependency1__, __dependency2__, __dependency3__,
|
18554
|
+
["ember-metal/core","ember-metal/platform","ember-metal/array","exports"],
|
18555
|
+
function(__dependency1__, __dependency2__, __dependency3__, __exports__) {
|
18458
18556
|
"use strict";
|
18459
18557
|
var Ember = __dependency1__["default"];
|
18460
|
-
var
|
18558
|
+
var o_defineProperty = __dependency2__.defineProperty;
|
18559
|
+
var canDefineNonEnumerableProperties = __dependency2__.canDefineNonEnumerableProperties;
|
18560
|
+
var hasPropertyAccessors = __dependency2__.hasPropertyAccessors;
|
18461
18561
|
var create = __dependency2__.create;
|
18462
18562
|
|
18463
18563
|
var forEach = __dependency3__.forEach;
|
18464
18564
|
|
18465
|
-
var keys = __dependency4__["default"];
|
18466
18565
|
/**
|
18467
18566
|
@module ember-metal
|
18468
18567
|
*/
|
@@ -18499,12 +18598,10 @@ define("ember-metal/utils",
|
|
18499
18598
|
*/
|
18500
18599
|
var GUID_PREFIX = 'ember';
|
18501
18600
|
|
18502
|
-
var o_defineProperty = platform.defineProperty;
|
18503
18601
|
var o_create = create;
|
18504
18602
|
// Used for guid generation...
|
18505
18603
|
var numberCache = [];
|
18506
18604
|
var stringCache = {};
|
18507
|
-
var MANDATORY_SETTER = Ember.ENV.MANDATORY_SETTER;
|
18508
18605
|
|
18509
18606
|
/**
|
18510
18607
|
Strongly hint runtimes to intern the provided string.
|
@@ -18545,10 +18642,13 @@ define("ember-metal/utils",
|
|
18545
18642
|
@private
|
18546
18643
|
@return {String} interned version of the provided string
|
18547
18644
|
*/
|
18548
|
-
function intern(
|
18549
|
-
var obj =
|
18550
|
-
obj[
|
18551
|
-
|
18645
|
+
function intern(str) {
|
18646
|
+
var obj = {};
|
18647
|
+
obj[str] = 1;
|
18648
|
+
for (var key in obj) {
|
18649
|
+
if (key === str) return key;
|
18650
|
+
}
|
18651
|
+
return str;
|
18552
18652
|
}
|
18553
18653
|
|
18554
18654
|
/**
|
@@ -18670,8 +18770,6 @@ define("ember-metal/utils",
|
|
18670
18770
|
value: null
|
18671
18771
|
};
|
18672
18772
|
|
18673
|
-
var isDefinePropertySimulated = platform.defineProperty.isSimulated;
|
18674
|
-
|
18675
18773
|
function Meta(obj) {
|
18676
18774
|
this.descs = {};
|
18677
18775
|
this.watching = {};
|
@@ -18696,7 +18794,7 @@ define("ember-metal/utils",
|
|
18696
18794
|
proto: null
|
18697
18795
|
};
|
18698
18796
|
|
18699
|
-
if (
|
18797
|
+
if (!canDefineNonEnumerableProperties) {
|
18700
18798
|
// on platforms that don't support enumerable false
|
18701
18799
|
// make meta fail jQuery.isPlainObject() to hide from
|
18702
18800
|
// jQuery.extend() by having a property that fails
|
@@ -18711,7 +18809,11 @@ define("ember-metal/utils",
|
|
18711
18809
|
// Placeholder for non-writable metas.
|
18712
18810
|
var EMPTY_META = new Meta(null);
|
18713
18811
|
|
18714
|
-
|
18812
|
+
|
18813
|
+
if (hasPropertyAccessors) {
|
18814
|
+
EMPTY_META.values = {};
|
18815
|
+
}
|
18816
|
+
|
18715
18817
|
|
18716
18818
|
/**
|
18717
18819
|
Retrieves the meta hash for an object. If `writable` is true ensures the
|
@@ -18737,11 +18839,15 @@ define("ember-metal/utils",
|
|
18737
18839
|
if (writable===false) return ret || EMPTY_META;
|
18738
18840
|
|
18739
18841
|
if (!ret) {
|
18740
|
-
if (
|
18842
|
+
if (canDefineNonEnumerableProperties) o_defineProperty(obj, '__ember_meta__', META_DESC);
|
18741
18843
|
|
18742
18844
|
ret = new Meta(obj);
|
18743
18845
|
|
18744
|
-
|
18846
|
+
|
18847
|
+
if (hasPropertyAccessors) {
|
18848
|
+
ret.values = {};
|
18849
|
+
}
|
18850
|
+
|
18745
18851
|
|
18746
18852
|
obj['__ember_meta__'] = ret;
|
18747
18853
|
|
@@ -18749,7 +18855,7 @@ define("ember-metal/utils",
|
|
18749
18855
|
ret.descs.constructor = null;
|
18750
18856
|
|
18751
18857
|
} else if (ret.source !== obj) {
|
18752
|
-
if (
|
18858
|
+
if (canDefineNonEnumerableProperties) o_defineProperty(obj, '__ember_meta__', META_DESC);
|
18753
18859
|
|
18754
18860
|
ret = o_create(ret);
|
18755
18861
|
ret.descs = o_create(ret.descs);
|
@@ -18758,7 +18864,11 @@ define("ember-metal/utils",
|
|
18758
18864
|
ret.cacheMeta = {};
|
18759
18865
|
ret.source = obj;
|
18760
18866
|
|
18761
|
-
|
18867
|
+
|
18868
|
+
if (hasPropertyAccessors) {
|
18869
|
+
ret.values = o_create(ret.values);
|
18870
|
+
}
|
18871
|
+
|
18762
18872
|
|
18763
18873
|
obj['__ember_meta__'] = ret;
|
18764
18874
|
}
|
@@ -19264,7 +19374,12 @@ define("ember-metal/utils",
|
|
19264
19374
|
v = obj[key];
|
19265
19375
|
if (v === 'toString') { continue; } // ignore useless items
|
19266
19376
|
if (typeOf(v) === 'function') { v = "function() { ... }"; }
|
19267
|
-
|
19377
|
+
|
19378
|
+
if (v && typeof v.toString !== 'function') {
|
19379
|
+
ret.push(key + ": " + toString.call(v));
|
19380
|
+
} else {
|
19381
|
+
ret.push(key + ": " + v);
|
19382
|
+
}
|
19268
19383
|
}
|
19269
19384
|
}
|
19270
19385
|
return "{" + ret.join(", ") + "}";
|
@@ -19310,17 +19425,19 @@ define("ember-metal/utils",
|
|
19310
19425
|
__exports__.tryFinally = tryFinally;
|
19311
19426
|
});
|
19312
19427
|
define("ember-metal/watch_key",
|
19313
|
-
["ember-metal/core","ember-metal/utils","ember-metal/platform","exports"],
|
19314
|
-
function(__dependency1__, __dependency2__, __dependency3__, __exports__) {
|
19428
|
+
["ember-metal/core","ember-metal/utils","ember-metal/platform","ember-metal/properties","exports"],
|
19429
|
+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __exports__) {
|
19315
19430
|
"use strict";
|
19316
19431
|
var Ember = __dependency1__["default"];
|
19317
19432
|
var meta = __dependency2__.meta;
|
19318
19433
|
var typeOf = __dependency2__.typeOf;
|
19319
|
-
var
|
19434
|
+
var o_defineProperty = __dependency3__.defineProperty;
|
19435
|
+
var hasPropertyAccessors = __dependency3__.hasPropertyAccessors;
|
19436
|
+
var MANDATORY_SETTER_FUNCTION = __dependency4__.MANDATORY_SETTER_FUNCTION;
|
19437
|
+
var DEFAULT_GETTER_FUNCTION = __dependency4__.DEFAULT_GETTER_FUNCTION;
|
19320
19438
|
|
19321
19439
|
var metaFor = meta; // utils.js
|
19322
|
-
|
19323
|
-
var o_defineProperty = platform.defineProperty;
|
19440
|
+
|
19324
19441
|
|
19325
19442
|
function watchKey(obj, keyName, meta) {
|
19326
19443
|
// can't watch length on Array - it is special...
|
@@ -19339,21 +19456,33 @@ define("ember-metal/watch_key",
|
|
19339
19456
|
obj.willWatchProperty(keyName);
|
19340
19457
|
}
|
19341
19458
|
|
19342
|
-
|
19459
|
+
|
19460
|
+
if (hasPropertyAccessors) {
|
19461
|
+
handleMandatorySetter(m, obj, keyName);
|
19462
|
+
}
|
19463
|
+
|
19464
|
+
} else {
|
19465
|
+
watching[keyName] = (watching[keyName] || 0) + 1;
|
19466
|
+
}
|
19467
|
+
}
|
19468
|
+
|
19469
|
+
__exports__.watchKey = watchKey;
|
19470
|
+
|
19471
|
+
var handleMandatorySetter = function handleMandatorySetter(m, obj, keyName) {
|
19472
|
+
// this x in Y deopts, so keeping it in this function is better;
|
19473
|
+
if (keyName in obj) {
|
19343
19474
|
m.values[keyName] = obj[keyName];
|
19344
19475
|
o_defineProperty(obj, keyName, {
|
19345
19476
|
configurable: true,
|
19346
19477
|
enumerable: obj.propertyIsEnumerable(keyName),
|
19347
|
-
set:
|
19348
|
-
get:
|
19478
|
+
set: MANDATORY_SETTER_FUNCTION,
|
19479
|
+
get: DEFAULT_GETTER_FUNCTION(keyName)
|
19349
19480
|
});
|
19350
19481
|
}
|
19351
|
-
}
|
19352
|
-
|
19353
|
-
}
|
19354
|
-
}
|
19482
|
+
};
|
19483
|
+
|
19355
19484
|
|
19356
|
-
|
19485
|
+
function unwatchKey(obj, keyName, meta) {
|
19357
19486
|
var m = meta || metaFor(obj), watching = m.watching;
|
19358
19487
|
|
19359
19488
|
if (watching[keyName] === 1) {
|
@@ -19366,23 +19495,25 @@ define("ember-metal/watch_key",
|
|
19366
19495
|
obj.didUnwatchProperty(keyName);
|
19367
19496
|
}
|
19368
19497
|
|
19369
|
-
|
19370
|
-
|
19371
|
-
|
19372
|
-
|
19373
|
-
|
19374
|
-
|
19375
|
-
|
19376
|
-
|
19377
|
-
|
19378
|
-
|
19379
|
-
|
19380
|
-
|
19381
|
-
|
19382
|
-
|
19383
|
-
|
19384
|
-
|
19385
|
-
|
19498
|
+
|
19499
|
+
if (hasPropertyAccessors && keyName in obj) {
|
19500
|
+
o_defineProperty(obj, keyName, {
|
19501
|
+
configurable: true,
|
19502
|
+
enumerable: obj.propertyIsEnumerable(keyName),
|
19503
|
+
set: function(val) {
|
19504
|
+
// redefine to set as enumerable
|
19505
|
+
o_defineProperty(obj, keyName, {
|
19506
|
+
configurable: true,
|
19507
|
+
writable: true,
|
19508
|
+
enumerable: true,
|
19509
|
+
value: val
|
19510
|
+
});
|
19511
|
+
delete m.values[keyName];
|
19512
|
+
},
|
19513
|
+
get: DEFAULT_GETTER_FUNCTION(keyName)
|
19514
|
+
});
|
19515
|
+
}
|
19516
|
+
|
19386
19517
|
} else if (watching[keyName] > 1) {
|
19387
19518
|
watching[keyName]--;
|
19388
19519
|
}
|
@@ -23334,8 +23465,7 @@ define("ember-routing/system/route",
|
|
23334
23465
|
*/
|
23335
23466
|
_qp: computed(function() {
|
23336
23467
|
var controllerName = this.controllerName || this.routeName;
|
23337
|
-
var
|
23338
|
-
var controllerClass = this.container.lookupFactory(fullName);
|
23468
|
+
var controllerClass = this.container.lookupFactory('controller:' + controllerName);
|
23339
23469
|
|
23340
23470
|
if (!controllerClass) {
|
23341
23471
|
return defaultQPMeta;
|
@@ -24484,7 +24614,7 @@ define("ember-routing/system/route",
|
|
24484
24614
|
|
24485
24615
|
if (!name && sawParams) { return copy(params); }
|
24486
24616
|
else if (!name) {
|
24487
|
-
if (transition.resolveIndex
|
24617
|
+
if (transition.resolveIndex < 1) { return; }
|
24488
24618
|
|
24489
24619
|
var parentModel = transition.state.handlerInfos[transition.resolveIndex-1].context;
|
24490
24620
|
|
@@ -25560,13 +25690,17 @@ define("ember-routing/system/router",
|
|
25560
25690
|
}
|
25561
25691
|
}
|
25562
25692
|
|
25563
|
-
if (
|
25564
|
-
|
25565
|
-
|
25693
|
+
if (location !== null && typeof location === 'object') {
|
25694
|
+
if (rootURL && typeof rootURL === 'string') {
|
25695
|
+
location.rootURL = rootURL;
|
25696
|
+
}
|
25566
25697
|
|
25567
|
-
|
25568
|
-
|
25569
|
-
|
25698
|
+
// ensure that initState is called AFTER the rootURL is set on
|
25699
|
+
// the location instance
|
25700
|
+
if (typeof location.initState === 'function') {
|
25701
|
+
location.initState();
|
25702
|
+
}
|
25703
|
+
}
|
25570
25704
|
},
|
25571
25705
|
|
25572
25706
|
_getHandlerFunction: function() {
|
@@ -30595,7 +30729,7 @@ define("ember-runtime/mixins/enumerable",
|
|
30595
30729
|
- `index` is the current index in the iteration.
|
30596
30730
|
- `enumerable` is the enumerable object itself.
|
30597
30731
|
|
30598
|
-
It should return
|
30732
|
+
It should return `true` to include the item in the results, `false`
|
30599
30733
|
otherwise.
|
30600
30734
|
|
30601
30735
|
Note that in addition to a callback, you can also pass an optional target
|
@@ -32156,7 +32290,7 @@ define("ember-runtime/mixins/observable",
|
|
32156
32290
|
},
|
32157
32291
|
|
32158
32292
|
/**
|
32159
|
-
To get multiple properties at once, call `getProperties`
|
32293
|
+
To get the values of multiple properties at once, call `getProperties`
|
32160
32294
|
with a list of strings or an array:
|
32161
32295
|
|
32162
32296
|
```javascript
|
@@ -33601,7 +33735,7 @@ define("ember-runtime/system/core_object",
|
|
33601
33735
|
*/
|
33602
33736
|
|
33603
33737
|
var Ember = __dependency1__["default"];
|
33604
|
-
// Ember.
|
33738
|
+
// Ember.assert, Ember.K, Ember.config
|
33605
33739
|
|
33606
33740
|
// NOTE: this object should never be included directly. Instead use `Ember.Object`.
|
33607
33741
|
// We only define this separately so that `Ember.Set` can depend on it.
|
@@ -33622,7 +33756,7 @@ define("ember-runtime/system/core_object",
|
|
33622
33756
|
var required = __dependency9__.required;
|
33623
33757
|
var indexOf = __dependency10__.indexOf;
|
33624
33758
|
var EmberError = __dependency11__["default"];
|
33625
|
-
var
|
33759
|
+
var o_defineProperty = __dependency5__.defineProperty;
|
33626
33760
|
var keys = __dependency12__["default"];
|
33627
33761
|
var ActionHandler = __dependency13__["default"];
|
33628
33762
|
var defineProperty = __dependency14__.defineProperty;
|
@@ -33630,14 +33764,13 @@ define("ember-runtime/system/core_object",
|
|
33630
33764
|
var ComputedProperty = __dependency16__.ComputedProperty;
|
33631
33765
|
var run = __dependency17__["default"];
|
33632
33766
|
var destroy = __dependency6__.destroy;
|
33633
|
-
|
33634
33767
|
var K = __dependency1__.K;
|
33635
|
-
var
|
33768
|
+
var hasPropertyAccessors = __dependency5__.hasPropertyAccessors;
|
33769
|
+
|
33636
33770
|
var schedule = run.schedule;
|
33637
33771
|
var applyMixin = Mixin._apply;
|
33638
33772
|
var finishPartial = Mixin.finishPartial;
|
33639
33773
|
var reopen = Mixin.prototype.reopen;
|
33640
|
-
var MANDATORY_SETTER = Ember.ENV.MANDATORY_SETTER;
|
33641
33774
|
var hasCachedComputedProperties = false;
|
33642
33775
|
|
33643
33776
|
var undefinedDescriptor = {
|
@@ -33741,11 +33874,14 @@ define("ember-runtime/system/core_object",
|
|
33741
33874
|
} else {
|
33742
33875
|
if (typeof this.setUnknownProperty === 'function' && !(keyName in this)) {
|
33743
33876
|
this.setUnknownProperty(keyName, value);
|
33744
|
-
} else if (MANDATORY_SETTER) {
|
33745
|
-
defineProperty(this, keyName, null, value); // setup mandatory setter
|
33746
33877
|
} else {
|
33747
|
-
|
33748
|
-
|
33878
|
+
|
33879
|
+
if (hasPropertyAccessors) {
|
33880
|
+
defineProperty(this, keyName, null, value); // setup mandatory setter
|
33881
|
+
} else {
|
33882
|
+
this[keyName] = value;
|
33883
|
+
}
|
33884
|
+
}
|
33749
33885
|
}
|
33750
33886
|
}
|
33751
33887
|
}
|
@@ -34440,12 +34576,9 @@ define("ember-runtime/system/core_object",
|
|
34440
34576
|
cache._computedProperties = undefined;
|
34441
34577
|
}
|
34442
34578
|
}
|
34443
|
-
|
34444
|
-
this._super();
|
34445
34579
|
}
|
34446
34580
|
});
|
34447
34581
|
|
34448
|
-
|
34449
34582
|
__exports__["default"] = CoreObject;
|
34450
34583
|
});
|
34451
34584
|
define("ember-runtime/system/deferred",
|
@@ -39313,7 +39446,7 @@ define("ember-views/views/collection_view",
|
|
39313
39446
|
```javascript
|
39314
39447
|
var App = Ember.Application.create();
|
39315
39448
|
App.ListWithNothing = Ember.CollectionView.create({
|
39316
|
-
classNames: ['nothing']
|
39449
|
+
classNames: ['nothing'],
|
39317
39450
|
content: null,
|
39318
39451
|
emptyView: Ember.View.extend({
|
39319
39452
|
template: Ember.Handlebars.compile("The collection is empty")
|
@@ -40319,8 +40452,8 @@ define("ember-views/views/container_view",
|
|
40319
40452
|
__exports__["default"] = ContainerView;
|
40320
40453
|
});
|
40321
40454
|
define("ember-views/views/core_view",
|
40322
|
-
["ember-views/system/renderer","ember-views/views/states","ember-runtime/system/object","ember-runtime/mixins/evented","ember-runtime/mixins/action_handler","ember-metal/
|
40323
|
-
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__,
|
40455
|
+
["ember-views/system/renderer","ember-views/views/states","ember-runtime/system/object","ember-runtime/mixins/evented","ember-runtime/mixins/action_handler","ember-metal/property_get","ember-metal/property_set","ember-metal/computed","ember-metal/utils","ember-metal/instrumentation","exports"],
|
40456
|
+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __exports__) {
|
40324
40457
|
"use strict";
|
40325
40458
|
var Rerender = __dependency1__["default"];
|
40326
40459
|
|
@@ -40330,14 +40463,13 @@ define("ember-views/views/core_view",
|
|
40330
40463
|
var Evented = __dependency4__["default"];
|
40331
40464
|
var ActionHandler = __dependency5__["default"];
|
40332
40465
|
|
40333
|
-
var
|
40334
|
-
var
|
40335
|
-
var
|
40336
|
-
var computed = __dependency9__.computed;
|
40466
|
+
var get = __dependency6__.get;
|
40467
|
+
var set = __dependency7__.set;
|
40468
|
+
var computed = __dependency8__.computed;
|
40337
40469
|
|
40338
|
-
var typeOf =
|
40470
|
+
var typeOf = __dependency9__.typeOf;
|
40339
40471
|
|
40340
|
-
var instrument =
|
40472
|
+
var instrument = __dependency10__.instrument;
|
40341
40473
|
|
40342
40474
|
/**
|
40343
40475
|
`Ember.CoreView` is an abstract class that exists to give view-like behavior
|
@@ -40365,9 +40497,6 @@ define("ember-views/views/core_view",
|
|
40365
40497
|
this._super();
|
40366
40498
|
this._transitionTo('preRender');
|
40367
40499
|
this._isVisible = get(this, 'isVisible');
|
40368
|
-
|
40369
|
-
deprecateProperty(this, 'states', '_states');
|
40370
|
-
deprecateProperty(this, 'state', '_state');
|
40371
40500
|
},
|
40372
40501
|
|
40373
40502
|
/**
|
@@ -40781,8 +40910,8 @@ define("ember-views/views/states/pre_render",
|
|
40781
40910
|
__exports__["default"] = preRender;
|
40782
40911
|
});
|
40783
40912
|
define("ember-views/views/view",
|
40784
|
-
["ember-metal/core","ember-runtime/mixins/evented","ember-runtime/system/object","ember-metal/error","ember-metal/property_get","ember-metal/property_set","ember-metal/set_properties","ember-metal/run_loop","ember-metal/observer","ember-metal/properties","ember-metal/utils","ember-metal/computed","ember-metal/mixin","ember-metal/is_none","ember-runtime/system/native_array","ember-runtime/system/string","ember-metal/enumerable_utils","ember-runtime/copy","ember-metal/binding","ember-metal/property_events","ember-views/system/jquery","ember-views/system/ext","ember-views/views/core_view","exports"],
|
40785
|
-
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__, __dependency13__, __dependency14__, __dependency15__, __dependency16__, __dependency17__, __dependency18__, __dependency19__, __dependency20__, __dependency21__, __dependency22__, __dependency23__, __exports__) {
|
40913
|
+
["ember-metal/core","ember-runtime/mixins/evented","ember-runtime/system/object","ember-metal/error","ember-metal/property_get","ember-metal/property_set","ember-metal/set_properties","ember-metal/run_loop","ember-metal/observer","ember-metal/properties","ember-metal/utils","ember-metal/computed","ember-metal/mixin","ember-metal/is_none","ember-metal/deprecate_property","ember-runtime/system/native_array","ember-runtime/system/string","ember-metal/enumerable_utils","ember-runtime/copy","ember-metal/binding","ember-metal/property_events","ember-views/system/jquery","ember-views/system/ext","ember-views/views/core_view","exports"],
|
40914
|
+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__, __dependency13__, __dependency14__, __dependency15__, __dependency16__, __dependency17__, __dependency18__, __dependency19__, __dependency20__, __dependency21__, __dependency22__, __dependency23__, __dependency24__, __exports__) {
|
40786
40915
|
"use strict";
|
40787
40916
|
// Ember.assert, Ember.deprecate, Ember.warn, Ember.TEMPLATES,
|
40788
40917
|
// Ember.K, jQuery, Ember.lookup,
|
@@ -40811,26 +40940,27 @@ define("ember-views/views/view",
|
|
40811
40940
|
var isArray = __dependency11__.isArray;
|
40812
40941
|
var isNone = __dependency14__.isNone;
|
40813
40942
|
var Mixin = __dependency13__.Mixin;
|
40814
|
-
var
|
40943
|
+
var deprecateProperty = __dependency15__.deprecateProperty;
|
40944
|
+
var emberA = __dependency16__.A;
|
40815
40945
|
|
40816
|
-
var dasherize =
|
40946
|
+
var dasherize = __dependency17__.dasherize;
|
40817
40947
|
|
40818
40948
|
// ES6TODO: functions on EnumerableUtils should get their own export
|
40819
|
-
var forEach =
|
40820
|
-
var addObject =
|
40821
|
-
var removeObject =
|
40949
|
+
var forEach = __dependency18__.forEach;
|
40950
|
+
var addObject = __dependency18__.addObject;
|
40951
|
+
var removeObject = __dependency18__.removeObject;
|
40822
40952
|
|
40823
40953
|
var beforeObserver = __dependency13__.beforeObserver;
|
40824
|
-
var copy =
|
40825
|
-
var isGlobalPath =
|
40954
|
+
var copy = __dependency19__["default"];
|
40955
|
+
var isGlobalPath = __dependency20__.isGlobalPath;
|
40826
40956
|
|
40827
|
-
var propertyWillChange =
|
40828
|
-
var propertyDidChange =
|
40957
|
+
var propertyWillChange = __dependency21__.propertyWillChange;
|
40958
|
+
var propertyDidChange = __dependency21__.propertyDidChange;
|
40829
40959
|
|
40830
|
-
var jQuery =
|
40960
|
+
var jQuery = __dependency22__["default"];
|
40831
40961
|
// for the side effect of extending Ember.run.queues
|
40832
40962
|
|
40833
|
-
var CoreView =
|
40963
|
+
var CoreView = __dependency24__["default"];
|
40834
40964
|
|
40835
40965
|
/**
|
40836
40966
|
@module ember
|
@@ -42757,6 +42887,8 @@ define("ember-views/views/view",
|
|
42757
42887
|
}
|
42758
42888
|
|
42759
42889
|
});
|
42890
|
+
deprecateProperty(View.prototype, 'state', '_state');
|
42891
|
+
deprecateProperty(View.prototype, 'states', '_states');
|
42760
42892
|
|
42761
42893
|
/*
|
42762
42894
|
Describe how the specified actions should behave in the various
|