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