ember-source 2.4.6 → 2.5.0.beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/dist/ember-runtime.js +313 -329
- data/dist/ember-template-compiler.js +368 -532
- data/dist/ember-testing.js +150 -81
- data/dist/ember.debug.js +914 -1056
- data/dist/ember.js +914 -1056
- data/dist/ember.min.js +15 -15
- data/dist/ember.prod.js +746 -963
- metadata +6 -8
- data/dist/ember-tests.js +0 -61579
- data/dist/ember-tests.prod.js +0 -61003
- data/dist/ember.debug.cjs.js +0 -56324
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e65e7830106fb22c3868b6c3252bcca93d3f6c9b
|
4
|
+
data.tar.gz: bf0770226266774750fcebbba3e1e9979ccd4e6c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ce221eb6cc55a0adf13c8c27986c8f31a87b7be9ac2e1f7664839b1e96d4a1a0ce83257c8e72603661fcae358b24c6c71d5a88cfe61e7780796f36142acf5fd3
|
7
|
+
data.tar.gz: a44d91cbc6a7ae4afea36298af6dcb6f68a26eed7cca4471e1b358f632d7ab15892537b5c4e82979a60554181930943d8697788a08fdff250d35eebf9c47bc9c
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.5.0-beta.1
|
data/dist/ember-runtime.js
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
* Portions Copyright 2008-2011 Apple Inc. All rights reserved.
|
7
7
|
* @license Licensed under MIT license
|
8
8
|
* See https://raw.github.com/emberjs/ember.js/master/LICENSE
|
9
|
-
* @version 2.
|
9
|
+
* @version 2.5.0-beta.1
|
10
10
|
*/
|
11
11
|
|
12
12
|
var enifed, requireModule, require, requirejs, Ember;
|
@@ -1238,7 +1238,7 @@ enifed('container/container', ['exports', 'ember-metal/core', 'ember-metal/debug
|
|
1238
1238
|
twitter2 instanceof Twitter; // => true
|
1239
1239
|
twitter === twitter2; //=> true
|
1240
1240
|
```
|
1241
|
-
If singletons are not wanted an optional flag can be provided at lookup.
|
1241
|
+
If singletons are not wanted, an optional flag can be provided at lookup.
|
1242
1242
|
```javascript
|
1243
1243
|
var registry = new Registry();
|
1244
1244
|
var container = registry.container();
|
@@ -1260,7 +1260,7 @@ enifed('container/container', ['exports', 'ember-metal/core', 'ember-metal/debug
|
|
1260
1260
|
},
|
1261
1261
|
|
1262
1262
|
/**
|
1263
|
-
Given a fullName return the corresponding factory.
|
1263
|
+
Given a fullName, return the corresponding factory.
|
1264
1264
|
@private
|
1265
1265
|
@method lookupFactory
|
1266
1266
|
@param {String} fullName
|
@@ -1321,9 +1321,8 @@ enifed('container/container', ['exports', 'ember-metal/core', 'ember-metal/debug
|
|
1321
1321
|
return container.registry.getOption(fullName, 'singleton') !== false;
|
1322
1322
|
}
|
1323
1323
|
|
1324
|
-
function lookup(container,
|
1325
|
-
var options =
|
1326
|
-
var fullName = _fullName;
|
1324
|
+
function lookup(container, fullName) {
|
1325
|
+
var options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];
|
1327
1326
|
|
1328
1327
|
if (_emberMetalFeatures.default('ember-htmlbars-local-lookup')) {
|
1329
1328
|
if (options.source) {
|
@@ -1389,10 +1388,10 @@ enifed('container/container', ['exports', 'ember-metal/core', 'ember-metal/debug
|
|
1389
1388
|
return hash;
|
1390
1389
|
}
|
1391
1390
|
|
1392
|
-
function factoryFor(container,
|
1393
|
-
var options =
|
1391
|
+
function factoryFor(container, fullName) {
|
1392
|
+
var options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];
|
1393
|
+
|
1394
1394
|
var registry = container.registry;
|
1395
|
-
var fullName = _fullName;
|
1396
1395
|
|
1397
1396
|
if (_emberMetalFeatures.default('ember-htmlbars-local-lookup')) {
|
1398
1397
|
if (options.source) {
|
@@ -1603,14 +1602,14 @@ enifed('container/index', ['exports', 'ember-metal/core', 'container/registry',
|
|
1603
1602
|
'use strict';
|
1604
1603
|
|
1605
1604
|
/*
|
1606
|
-
Public
|
1607
|
-
The public
|
1605
|
+
Public API for the container is still in flux.
|
1606
|
+
The public API, specified on the application namespace should be considered the stable API.
|
1608
1607
|
// @module container
|
1609
1608
|
@private
|
1610
1609
|
*/
|
1611
1610
|
|
1612
1611
|
/*
|
1613
|
-
Flag to enable/disable model factory injections (disabled by default)
|
1612
|
+
Flag to enable/disable model factory injections (disabled by default).
|
1614
1613
|
If model factory injections are enabled, models should not be
|
1615
1614
|
accessed globally (only through `container.lookupFactory('model:modelName'))`);
|
1616
1615
|
*/
|
@@ -1672,8 +1671,8 @@ enifed('container/owner', ['exports', 'ember-metal/symbol'], function (exports,
|
|
1672
1671
|
```
|
1673
1672
|
|
1674
1673
|
@method getOwner
|
1675
|
-
@param {Object} object
|
1676
|
-
@return {Object}
|
1674
|
+
@param {Object} object An object with an owner.
|
1675
|
+
@return {Object} An owner object.
|
1677
1676
|
@for Ember
|
1678
1677
|
@public
|
1679
1678
|
*/
|
@@ -1687,8 +1686,8 @@ enifed('container/owner', ['exports', 'ember-metal/symbol'], function (exports,
|
|
1687
1686
|
useful in some testing cases.
|
1688
1687
|
|
1689
1688
|
@method setOwner
|
1690
|
-
@param {Object} object
|
1691
|
-
@return {Object}
|
1689
|
+
@param {Object} object An object with an owner.
|
1690
|
+
@return {Object} An owner object.
|
1692
1691
|
@for Ember
|
1693
1692
|
@public
|
1694
1693
|
*/
|
@@ -1848,7 +1847,9 @@ enifed('container/registry', ['exports', 'ember-metal/features', 'ember-metal/de
|
|
1848
1847
|
@param {Function} factory
|
1849
1848
|
@param {Object} options
|
1850
1849
|
*/
|
1851
|
-
register: function (fullName, factory
|
1850
|
+
register: function (fullName, factory) {
|
1851
|
+
var options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];
|
1852
|
+
|
1852
1853
|
_emberMetalDebug.assert('fullName must be a proper full name', this.validateFullName(fullName));
|
1853
1854
|
|
1854
1855
|
if (factory === undefined) {
|
@@ -1863,7 +1864,7 @@ enifed('container/registry', ['exports', 'ember-metal/features', 'ember-metal/de
|
|
1863
1864
|
|
1864
1865
|
delete this._failCache[normalizedName];
|
1865
1866
|
this.registrations[normalizedName] = factory;
|
1866
|
-
this._options[normalizedName] = options
|
1867
|
+
this._options[normalizedName] = options;
|
1867
1868
|
},
|
1868
1869
|
|
1869
1870
|
/**
|
@@ -2057,8 +2058,9 @@ enifed('container/registry', ['exports', 'ember-metal/features', 'ember-metal/de
|
|
2057
2058
|
@param {String} fullName
|
2058
2059
|
@param {Object} options
|
2059
2060
|
*/
|
2060
|
-
options: function (fullName
|
2061
|
-
var options =
|
2061
|
+
options: function (fullName) {
|
2062
|
+
var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
|
2063
|
+
|
2062
2064
|
var normalizedName = this.normalize(fullName);
|
2063
2065
|
this._options[normalizedName] = options;
|
2064
2066
|
},
|
@@ -2548,7 +2550,7 @@ enifed('ember-metal/alias', ['exports', 'ember-metal/debug', 'ember-metal/proper
|
|
2548
2550
|
return _emberMetalProperty_set.set(obj, keyName, value);
|
2549
2551
|
}
|
2550
2552
|
|
2551
|
-
// Backwards compatibility with Ember Data
|
2553
|
+
// Backwards compatibility with Ember Data.
|
2552
2554
|
AliasedProperty.prototype._meta = undefined;
|
2553
2555
|
AliasedProperty.prototype.meta = _emberMetalComputed.ComputedProperty.prototype.meta;
|
2554
2556
|
});
|
@@ -2596,7 +2598,7 @@ enifed("ember-metal/assign", ["exports"], function (exports) {
|
|
2596
2598
|
return original;
|
2597
2599
|
}
|
2598
2600
|
});
|
2599
|
-
enifed('ember-metal/binding', ['exports', 'ember-metal/core', 'ember-metal/logger', 'ember-metal/debug', 'ember-metal/property_get', 'ember-metal/property_set', 'ember-metal/utils', 'ember-metal/
|
2601
|
+
enifed('ember-metal/binding', ['exports', 'ember-metal/core', 'ember-metal/logger', 'ember-metal/run_loop', 'ember-metal/debug', 'ember-metal/property_get', 'ember-metal/property_set', 'ember-metal/utils', 'ember-metal/events', 'ember-metal/observer', 'ember-metal/path_cache'], function (exports, _emberMetalCore, _emberMetalLogger, _emberMetalRun_loop, _emberMetalDebug, _emberMetalProperty_get, _emberMetalProperty_set, _emberMetalUtils, _emberMetalEvents, _emberMetalObserver, _emberMetalPath_cache) {
|
2600
2602
|
'use strict';
|
2601
2603
|
|
2602
2604
|
exports.bind = bind;
|
@@ -2624,31 +2626,22 @@ enifed('ember-metal/binding', ['exports', 'ember-metal/core', 'ember-metal/logge
|
|
2624
2626
|
*/
|
2625
2627
|
_emberMetalCore.default.LOG_BINDINGS = false || !!_emberMetalCore.default.ENV.LOG_BINDINGS;
|
2626
2628
|
|
2627
|
-
/**
|
2628
|
-
Returns true if the provided path is global (e.g., `MyApp.fooController.bar`)
|
2629
|
-
instead of local (`foo.bar.baz`).
|
2630
|
-
|
2631
|
-
@method isGlobalPath
|
2632
|
-
@for Ember
|
2633
|
-
@private
|
2634
|
-
@param {String} path
|
2635
|
-
@return Boolean
|
2636
|
-
*/
|
2637
|
-
|
2638
|
-
function getWithGlobals(obj, path) {
|
2639
|
-
return _emberMetalProperty_get.get(_emberMetalPath_cache.isGlobal(path) ? _emberMetalCore.default.lookup : obj, path);
|
2640
|
-
}
|
2641
|
-
|
2642
2629
|
// ..........................................................
|
2643
2630
|
// BINDING
|
2644
2631
|
//
|
2645
2632
|
|
2646
2633
|
function Binding(toPath, fromPath) {
|
2647
|
-
|
2634
|
+
// Configuration
|
2648
2635
|
this._from = fromPath;
|
2649
2636
|
this._to = toPath;
|
2650
|
-
this._readyToSync = undefined;
|
2651
2637
|
this._oneWay = undefined;
|
2638
|
+
|
2639
|
+
// State
|
2640
|
+
this._direction = undefined;
|
2641
|
+
this._readyToSync = undefined;
|
2642
|
+
this._fromObj = undefined;
|
2643
|
+
this._fromPath = undefined;
|
2644
|
+
this._toObj = undefined;
|
2652
2645
|
}
|
2653
2646
|
|
2654
2647
|
/**
|
@@ -2684,7 +2677,7 @@ enifed('ember-metal/binding', ['exports', 'ember-metal/core', 'ember-metal/logge
|
|
2684
2677
|
you pass when you `connect()` the binding. It follows the same rules as
|
2685
2678
|
`get()` - see that method for more information.
|
2686
2679
|
@method from
|
2687
|
-
@param {String} path
|
2680
|
+
@param {String} path The property path to connect to.
|
2688
2681
|
@return {Ember.Binding} `this`
|
2689
2682
|
@public
|
2690
2683
|
*/
|
@@ -2701,7 +2694,7 @@ enifed('ember-metal/binding', ['exports', 'ember-metal/core', 'ember-metal/logge
|
|
2701
2694
|
you pass when you `connect()` the binding. It follows the same rules as
|
2702
2695
|
`get()` - see that method for more information.
|
2703
2696
|
@method to
|
2704
|
-
@param {String|Tuple} path A property path or tuple
|
2697
|
+
@param {String|Tuple} path A property path or tuple.
|
2705
2698
|
@return {Ember.Binding} `this`
|
2706
2699
|
@public
|
2707
2700
|
*/
|
@@ -2750,19 +2743,42 @@ enifed('ember-metal/binding', ['exports', 'ember-metal/core', 'ember-metal/logge
|
|
2750
2743
|
connect: function (obj) {
|
2751
2744
|
_emberMetalDebug.assert('Must pass a valid object to Ember.Binding.connect()', !!obj);
|
2752
2745
|
|
2753
|
-
var
|
2754
|
-
|
2755
|
-
|
2746
|
+
var fromObj = undefined,
|
2747
|
+
fromPath = undefined;
|
2748
|
+
|
2749
|
+
// If the binding's "from" path could be interpreted as a global, verify
|
2750
|
+
// whether the path refers to a global or not by consulting `Ember.lookup`.
|
2751
|
+
if (_emberMetalPath_cache.isGlobalPath(this._from)) {
|
2752
|
+
var _name = _emberMetalPath_cache.getFirstKey(this._from);
|
2753
|
+
var possibleGlobal = _emberMetalCore.default.lookup[_name];
|
2754
|
+
|
2755
|
+
if (possibleGlobal) {
|
2756
|
+
fromObj = possibleGlobal;
|
2757
|
+
fromPath = _emberMetalPath_cache.getTailPath(this._from);
|
2758
|
+
}
|
2759
|
+
}
|
2760
|
+
|
2761
|
+
if (fromObj === undefined) {
|
2762
|
+
fromObj = obj;
|
2763
|
+
fromPath = this._from;
|
2764
|
+
}
|
2765
|
+
|
2766
|
+
_emberMetalProperty_set.trySet(obj, this._to, _emberMetalProperty_get.get(fromObj, fromPath));
|
2756
2767
|
|
2757
|
-
//
|
2758
|
-
_emberMetalObserver.addObserver(
|
2768
|
+
// Add an observer on the object to be notified when the binding should be updated.
|
2769
|
+
_emberMetalObserver.addObserver(fromObj, fromPath, this, 'fromDidChange');
|
2759
2770
|
|
2760
|
-
//
|
2771
|
+
// If the binding is a two-way binding, also set up an observer on the target.
|
2761
2772
|
if (!this._oneWay) {
|
2762
|
-
_emberMetalObserver.addObserver(obj,
|
2773
|
+
_emberMetalObserver.addObserver(obj, this._to, this, 'toDidChange');
|
2763
2774
|
}
|
2764
2775
|
|
2776
|
+
_emberMetalEvents.addListener(obj, 'willDestroy', this, 'disconnect');
|
2777
|
+
|
2765
2778
|
this._readyToSync = true;
|
2779
|
+
this._fromObj = fromObj;
|
2780
|
+
this._fromPath = fromPath;
|
2781
|
+
this._toObj = obj;
|
2766
2782
|
|
2767
2783
|
return this;
|
2768
2784
|
},
|
@@ -2771,25 +2787,22 @@ enifed('ember-metal/binding', ['exports', 'ember-metal/core', 'ember-metal/logge
|
|
2771
2787
|
Disconnects the binding instance. Changes will no longer be relayed. You
|
2772
2788
|
will not usually need to call this method.
|
2773
2789
|
@method disconnect
|
2774
|
-
@param {Object} obj The root object you passed when connecting the binding.
|
2775
2790
|
@return {Ember.Binding} `this`
|
2776
2791
|
@public
|
2777
2792
|
*/
|
2778
|
-
disconnect: function (
|
2779
|
-
_emberMetalDebug.assert('Must pass a valid object to Ember.Binding.disconnect()', !!
|
2780
|
-
|
2781
|
-
var twoWay = !this._oneWay;
|
2793
|
+
disconnect: function () {
|
2794
|
+
_emberMetalDebug.assert('Must pass a valid object to Ember.Binding.disconnect()', !!this._toObj);
|
2782
2795
|
|
2783
|
-
//
|
2796
|
+
// Remove an observer on the object so we're no longer notified of
|
2784
2797
|
// changes that should update bindings.
|
2785
|
-
_emberMetalObserver.removeObserver(
|
2798
|
+
_emberMetalObserver.removeObserver(this._fromObj, this._fromPath, this, 'fromDidChange');
|
2786
2799
|
|
2787
|
-
//
|
2788
|
-
if (
|
2789
|
-
_emberMetalObserver.removeObserver(
|
2800
|
+
// If the binding is two-way, remove the observer from the target as well.
|
2801
|
+
if (!this._oneWay) {
|
2802
|
+
_emberMetalObserver.removeObserver(this._toObj, this._to, this, 'toDidChange');
|
2790
2803
|
}
|
2791
2804
|
|
2792
|
-
this._readyToSync = false; //
|
2805
|
+
this._readyToSync = false; // Disable scheduled syncs...
|
2793
2806
|
return this;
|
2794
2807
|
},
|
2795
2808
|
|
@@ -2797,22 +2810,22 @@ enifed('ember-metal/binding', ['exports', 'ember-metal/core', 'ember-metal/logge
|
|
2797
2810
|
// PRIVATE
|
2798
2811
|
//
|
2799
2812
|
|
2800
|
-
/*
|
2813
|
+
/* Called when the from side changes. */
|
2801
2814
|
fromDidChange: function (target) {
|
2802
|
-
this._scheduleSync(
|
2815
|
+
this._scheduleSync('fwd');
|
2803
2816
|
},
|
2804
2817
|
|
2805
|
-
/*
|
2818
|
+
/* Called when the to side changes. */
|
2806
2819
|
toDidChange: function (target) {
|
2807
|
-
this._scheduleSync(
|
2820
|
+
this._scheduleSync('back');
|
2808
2821
|
},
|
2809
2822
|
|
2810
|
-
_scheduleSync: function (
|
2823
|
+
_scheduleSync: function (dir) {
|
2811
2824
|
var existingDir = this._direction;
|
2812
2825
|
|
2813
|
-
//
|
2826
|
+
// If we haven't scheduled the binding yet, schedule it.
|
2814
2827
|
if (existingDir === undefined) {
|
2815
|
-
_emberMetalRun_loop.default.schedule('sync', this,
|
2828
|
+
_emberMetalRun_loop.default.schedule('sync', this, '_sync');
|
2816
2829
|
this._direction = dir;
|
2817
2830
|
}
|
2818
2831
|
|
@@ -2823,44 +2836,46 @@ enifed('ember-metal/binding', ['exports', 'ember-metal/core', 'ember-metal/logge
|
|
2823
2836
|
}
|
2824
2837
|
},
|
2825
2838
|
|
2826
|
-
_sync: function (
|
2839
|
+
_sync: function () {
|
2827
2840
|
var log = _emberMetalCore.default.LOG_BINDINGS;
|
2828
2841
|
|
2829
|
-
|
2830
|
-
|
2842
|
+
var toObj = this._toObj;
|
2843
|
+
|
2844
|
+
// Don't synchronize destroyed objects or disconnected bindings.
|
2845
|
+
if (toObj.isDestroyed || !this._readyToSync) {
|
2831
2846
|
return;
|
2832
2847
|
}
|
2833
2848
|
|
2834
|
-
//
|
2835
|
-
// synchronizing from
|
2849
|
+
// Get the direction of the binding for the object we are
|
2850
|
+
// synchronizing from.
|
2836
2851
|
var direction = this._direction;
|
2837
2852
|
|
2838
|
-
var
|
2839
|
-
var
|
2853
|
+
var fromObj = this._fromObj;
|
2854
|
+
var fromPath = this._fromPath;
|
2840
2855
|
|
2841
2856
|
this._direction = undefined;
|
2842
2857
|
|
2843
|
-
//
|
2858
|
+
// If we're synchronizing from the remote object...
|
2844
2859
|
if (direction === 'fwd') {
|
2845
|
-
var fromValue =
|
2860
|
+
var fromValue = _emberMetalProperty_get.get(fromObj, fromPath);
|
2846
2861
|
if (log) {
|
2847
|
-
_emberMetalLogger.default.log(' ', this.toString(), '->', fromValue,
|
2862
|
+
_emberMetalLogger.default.log(' ', this.toString(), '->', fromValue, fromObj);
|
2848
2863
|
}
|
2849
2864
|
if (this._oneWay) {
|
2850
|
-
_emberMetalProperty_set.trySet(
|
2865
|
+
_emberMetalProperty_set.trySet(toObj, this._to, fromValue);
|
2851
2866
|
} else {
|
2852
|
-
_emberMetalObserver._suspendObserver(
|
2853
|
-
_emberMetalProperty_set.trySet(
|
2867
|
+
_emberMetalObserver._suspendObserver(toObj, this._to, this, 'toDidChange', function () {
|
2868
|
+
_emberMetalProperty_set.trySet(toObj, this._to, fromValue);
|
2854
2869
|
});
|
2855
2870
|
}
|
2856
|
-
//
|
2871
|
+
// If we're synchronizing *to* the remote object.
|
2857
2872
|
} else if (direction === 'back') {
|
2858
|
-
var toValue = _emberMetalProperty_get.get(
|
2873
|
+
var toValue = _emberMetalProperty_get.get(toObj, this._to);
|
2859
2874
|
if (log) {
|
2860
|
-
_emberMetalLogger.default.log(' ', this.toString(), '<-', toValue,
|
2875
|
+
_emberMetalLogger.default.log(' ', this.toString(), '<-', toValue, toObj);
|
2861
2876
|
}
|
2862
|
-
_emberMetalObserver._suspendObserver(
|
2863
|
-
_emberMetalProperty_set.trySet(
|
2877
|
+
_emberMetalObserver._suspendObserver(fromObj, fromPath, this, 'fromDidChange', function () {
|
2878
|
+
_emberMetalProperty_set.trySet(fromObj, fromPath, toValue);
|
2864
2879
|
});
|
2865
2880
|
}
|
2866
2881
|
}
|
@@ -2901,7 +2916,7 @@ enifed('ember-metal/binding', ['exports', 'ember-metal/core', 'ember-metal/logge
|
|
2901
2916
|
An `Ember.Binding` connects the properties of two objects so that whenever
|
2902
2917
|
the value of one property changes, the other property will be changed also.
|
2903
2918
|
|
2904
|
-
## Automatic Creation of Bindings with `/^*Binding/`-named Properties
|
2919
|
+
## Automatic Creation of Bindings with `/^*Binding/`-named Properties.
|
2905
2920
|
|
2906
2921
|
You do not usually create Binding objects directly but instead describe
|
2907
2922
|
bindings in your class or object definition using automatic binding
|
@@ -2950,7 +2965,7 @@ enifed('ember-metal/binding', ['exports', 'ember-metal/core', 'ember-metal/logge
|
|
2950
2965
|
All of the examples above show you how to configure a custom binding, but the
|
2951
2966
|
result of these customizations will be a binding template, not a fully active
|
2952
2967
|
Binding instance. The binding will actually become active only when you
|
2953
|
-
instantiate the object the binding belongs to. It is useful however, to
|
2968
|
+
instantiate the object the binding belongs to. It is useful, however, to
|
2954
2969
|
understand what actually happens when the binding is activated.
|
2955
2970
|
|
2956
2971
|
For a binding to function it must have at least a `from` property and a `to`
|
@@ -3049,7 +3064,6 @@ enifed('ember-metal/binding', ['exports', 'ember-metal/core', 'ember-metal/logge
|
|
3049
3064
|
}
|
3050
3065
|
|
3051
3066
|
exports.Binding = Binding;
|
3052
|
-
exports.isGlobalPath = _emberMetalPath_cache.isGlobal;
|
3053
3067
|
});
|
3054
3068
|
// Ember.LOG_BINDINGS
|
3055
3069
|
enifed('ember-metal/cache', ['exports', 'ember-metal/empty_object'], function (exports, _emberMetalEmpty_object) {
|
@@ -3107,10 +3121,9 @@ enifed('ember-metal/cache', ['exports', 'ember-metal/empty_object'], function (e
|
|
3107
3121
|
}
|
3108
3122
|
};
|
3109
3123
|
});
|
3110
|
-
enifed('ember-metal/chains', ['exports', 'ember-metal/
|
3124
|
+
enifed('ember-metal/chains', ['exports', 'ember-metal/property_get', 'ember-metal/meta', 'ember-metal/watch_key', 'ember-metal/empty_object'], function (exports, _emberMetalProperty_get, _emberMetalMeta, _emberMetalWatch_key, _emberMetalEmpty_object) {
|
3111
3125
|
'use strict';
|
3112
3126
|
|
3113
|
-
exports.flushPendingChains = flushPendingChains;
|
3114
3127
|
exports.finishChains = finishChains;
|
3115
3128
|
|
3116
3129
|
var FIRST_KEY = /^([^\.]+)/;
|
@@ -3127,9 +3140,7 @@ enifed('ember-metal/chains', ['exports', 'ember-metal/debug', 'ember-metal/prope
|
|
3127
3140
|
return !(isObject(obj) && obj.isDescriptor && obj._volatile === false);
|
3128
3141
|
}
|
3129
3142
|
|
3130
|
-
function ChainWatchers(
|
3131
|
-
// this obj would be the referencing chain node's parent node's value
|
3132
|
-
this.obj = obj;
|
3143
|
+
function ChainWatchers() {
|
3133
3144
|
// chain nodes that reference a key in this obj by key
|
3134
3145
|
// we only create ChainWatchers when we are going to add them
|
3135
3146
|
// so create this upfront
|
@@ -3214,29 +3225,8 @@ enifed('ember-metal/chains', ['exports', 'ember-metal/debug', 'ember-metal/prope
|
|
3214
3225
|
}
|
3215
3226
|
};
|
3216
3227
|
|
3217
|
-
|
3218
|
-
|
3219
|
-
// attempts to add the pendingQueue chains again. If some of them end up
|
3220
|
-
// back in the queue and reschedule is true, schedules a timeout to try
|
3221
|
-
// again.
|
3222
|
-
|
3223
|
-
function flushPendingChains() {
|
3224
|
-
if (pendingQueue.length === 0) {
|
3225
|
-
return;
|
3226
|
-
}
|
3227
|
-
|
3228
|
-
var queue = pendingQueue;
|
3229
|
-
pendingQueue = [];
|
3230
|
-
|
3231
|
-
queue.forEach(function (q) {
|
3232
|
-
return q[0].add(q[1]);
|
3233
|
-
});
|
3234
|
-
|
3235
|
-
_emberMetalDebug.warn('Watching an undefined global, Ember expects watched globals to be ' + 'setup by the time the run loop is flushed, check for typos', pendingQueue.length === 0, { id: 'ember-metal.chains-flush-pending-chains' });
|
3236
|
-
}
|
3237
|
-
|
3238
|
-
function makeChainWatcher(obj) {
|
3239
|
-
return new ChainWatchers(obj);
|
3228
|
+
function makeChainWatcher() {
|
3229
|
+
return new ChainWatchers();
|
3240
3230
|
}
|
3241
3231
|
|
3242
3232
|
function addChainWatcher(obj, keyName, node) {
|
@@ -3359,65 +3349,30 @@ enifed('ember-metal/chains', ['exports', 'ember-metal/debug', 'ember-metal/prope
|
|
3359
3349
|
// called on the root node of a chain to setup watchers on the specified
|
3360
3350
|
// path.
|
3361
3351
|
add: function (path) {
|
3362
|
-
var
|
3363
|
-
|
3364
|
-
paths = this._paths;
|
3352
|
+
var paths = this._paths;
|
3365
3353
|
paths[path] = (paths[path] || 0) + 1;
|
3366
3354
|
|
3367
|
-
|
3368
|
-
|
3369
|
-
|
3370
|
-
// the path was a local path
|
3371
|
-
if (tuple[0] && tuple[0] === obj) {
|
3372
|
-
path = tuple[1];
|
3373
|
-
key = firstKey(path);
|
3374
|
-
path = path.slice(key.length + 1);
|
3355
|
+
var key = firstKey(path);
|
3356
|
+
var tail = path.slice(key.length + 1);
|
3375
3357
|
|
3376
|
-
|
3377
|
-
// put into a queue and try to connect later.
|
3378
|
-
} else if (!tuple[0]) {
|
3379
|
-
pendingQueue.push([this, path]);
|
3380
|
-
tuple.length = 0;
|
3381
|
-
return;
|
3382
|
-
|
3383
|
-
// global path, and object already exists
|
3384
|
-
} else {
|
3385
|
-
src = tuple[0];
|
3386
|
-
key = path.slice(0, 0 - (tuple[1].length + 1));
|
3387
|
-
path = tuple[1];
|
3388
|
-
}
|
3389
|
-
|
3390
|
-
tuple.length = 0;
|
3391
|
-
this.chain(key, path, src);
|
3358
|
+
this.chain(key, tail);
|
3392
3359
|
},
|
3393
3360
|
|
3394
3361
|
// called on the root node of a chain to teardown watcher on the specified
|
3395
3362
|
// path
|
3396
3363
|
remove: function (path) {
|
3397
|
-
var
|
3398
|
-
|
3399
|
-
paths = this._paths;
|
3364
|
+
var paths = this._paths;
|
3400
3365
|
if (paths[path] > 0) {
|
3401
3366
|
paths[path]--;
|
3402
3367
|
}
|
3403
3368
|
|
3404
|
-
|
3405
|
-
|
3406
|
-
if (tuple[0] === obj) {
|
3407
|
-
path = tuple[1];
|
3408
|
-
key = firstKey(path);
|
3409
|
-
path = path.slice(key.length + 1);
|
3410
|
-
} else {
|
3411
|
-
src = tuple[0];
|
3412
|
-
key = path.slice(0, 0 - (tuple[1].length + 1));
|
3413
|
-
path = tuple[1];
|
3414
|
-
}
|
3369
|
+
var key = firstKey(path);
|
3370
|
+
var tail = path.slice(key.length + 1);
|
3415
3371
|
|
3416
|
-
|
3417
|
-
this.unchain(key, path);
|
3372
|
+
this.unchain(key, tail);
|
3418
3373
|
},
|
3419
3374
|
|
3420
|
-
chain: function (key, path
|
3375
|
+
chain: function (key, path) {
|
3421
3376
|
var chains = this._chains;
|
3422
3377
|
var node;
|
3423
3378
|
if (chains === undefined) {
|
@@ -3427,7 +3382,7 @@ enifed('ember-metal/chains', ['exports', 'ember-metal/debug', 'ember-metal/prope
|
|
3427
3382
|
}
|
3428
3383
|
|
3429
3384
|
if (node === undefined) {
|
3430
|
-
node = chains[key] = new ChainNode(this, key,
|
3385
|
+
node = chains[key] = new ChainNode(this, key, undefined);
|
3431
3386
|
}
|
3432
3387
|
|
3433
3388
|
node.count++; // count chains...
|
@@ -3436,7 +3391,7 @@ enifed('ember-metal/chains', ['exports', 'ember-metal/debug', 'ember-metal/prope
|
|
3436
3391
|
if (path) {
|
3437
3392
|
key = firstKey(path);
|
3438
3393
|
path = path.slice(key.length + 1);
|
3439
|
-
node.chain(key, path);
|
3394
|
+
node.chain(key, path);
|
3440
3395
|
}
|
3441
3396
|
},
|
3442
3397
|
|
@@ -3483,25 +3438,21 @@ enifed('ember-metal/chains', ['exports', 'ember-metal/debug', 'ember-metal/prope
|
|
3483
3438
|
}
|
3484
3439
|
|
3485
3440
|
if (affected && this._parent) {
|
3486
|
-
this._parent.populateAffected(this
|
3441
|
+
this._parent.populateAffected(this._key, 1, affected);
|
3487
3442
|
}
|
3488
3443
|
},
|
3489
3444
|
|
3490
|
-
populateAffected: function (
|
3445
|
+
populateAffected: function (path, depth, affected) {
|
3491
3446
|
if (this._key) {
|
3492
3447
|
path = this._key + '.' + path;
|
3493
3448
|
}
|
3494
3449
|
|
3495
3450
|
if (this._parent) {
|
3496
|
-
this._parent.populateAffected(
|
3451
|
+
this._parent.populateAffected(path, depth + 1, affected);
|
3497
3452
|
} else {
|
3498
3453
|
if (depth > 1) {
|
3499
3454
|
affected.push(this.value(), path);
|
3500
3455
|
}
|
3501
|
-
path = 'this.' + path;
|
3502
|
-
if (this._paths[path] > 0) {
|
3503
|
-
affected.push(this.value(), path);
|
3504
|
-
}
|
3505
3456
|
}
|
3506
3457
|
}
|
3507
3458
|
};
|
@@ -3542,6 +3493,10 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/debug', 'ember-metal/pro
|
|
3542
3493
|
|
3543
3494
|
var DEEP_EACH_REGEX = /\.@each\.[^.]+\./;
|
3544
3495
|
|
3496
|
+
// ..........................................................
|
3497
|
+
// COMPUTED PROPERTY
|
3498
|
+
//
|
3499
|
+
|
3545
3500
|
/**
|
3546
3501
|
A computed property transforms an object literal with object's accessor function(s) into a property.
|
3547
3502
|
|
@@ -3644,6 +3599,7 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/debug', 'ember-metal/pro
|
|
3644
3599
|
|
3645
3600
|
@class ComputedProperty
|
3646
3601
|
@namespace Ember
|
3602
|
+
@constructor
|
3647
3603
|
@public
|
3648
3604
|
*/
|
3649
3605
|
function ComputedProperty(config, opts) {
|
@@ -3802,6 +3758,7 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/debug', 'ember-metal/pro
|
|
3802
3758
|
@chainable
|
3803
3759
|
@public
|
3804
3760
|
*/
|
3761
|
+
|
3805
3762
|
ComputedPropertyPrototype.meta = function (meta) {
|
3806
3763
|
if (arguments.length === 0) {
|
3807
3764
|
return this._meta || {};
|
@@ -3832,6 +3789,33 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/debug', 'ember-metal/pro
|
|
3832
3789
|
}
|
3833
3790
|
};
|
3834
3791
|
|
3792
|
+
/**
|
3793
|
+
Access the value of the function backing the computed property.
|
3794
|
+
If this property has already been cached, return the cached result.
|
3795
|
+
Otherwise, call the function passing the property name as an argument.
|
3796
|
+
|
3797
|
+
```javascript
|
3798
|
+
let Person = Ember.Object.extend({
|
3799
|
+
fullName: Ember.computed('firstName', 'lastName', function(keyName) {
|
3800
|
+
// the keyName parameter is 'fullName' in this case.
|
3801
|
+
return this.get('firstName') + ' ' + this.get('lastName');
|
3802
|
+
})
|
3803
|
+
});
|
3804
|
+
|
3805
|
+
|
3806
|
+
let tom = Person.create({
|
3807
|
+
firstName: 'Tom',
|
3808
|
+
lastName: 'Dale'
|
3809
|
+
});
|
3810
|
+
|
3811
|
+
tom.get('fullName') // 'Tom Dale'
|
3812
|
+
```
|
3813
|
+
|
3814
|
+
@method get
|
3815
|
+
@param {String} keyName The key being accessed.
|
3816
|
+
@return {Object} The return value of the function backing the CP.
|
3817
|
+
@public
|
3818
|
+
*/
|
3835
3819
|
ComputedPropertyPrototype.get = function (obj, keyName) {
|
3836
3820
|
if (this._volatile) {
|
3837
3821
|
return this._getter.call(obj, keyName);
|
@@ -3863,6 +3847,54 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/debug', 'ember-metal/pro
|
|
3863
3847
|
return ret;
|
3864
3848
|
};
|
3865
3849
|
|
3850
|
+
/**
|
3851
|
+
Set the value of a computed property. If the function that backs your
|
3852
|
+
computed property does not accept arguments then the default action for
|
3853
|
+
setting would be to define the property on the current object, and set
|
3854
|
+
the value of the property to the value being set.
|
3855
|
+
|
3856
|
+
Generally speaking if you intend for your computed property to be set
|
3857
|
+
you should pass `set(key, value)` function in hash as argument to `Ember.computed()` along with `get(key)` function.
|
3858
|
+
|
3859
|
+
```javascript
|
3860
|
+
let Person = Ember.Object.extend({
|
3861
|
+
// these will be supplied by `create`
|
3862
|
+
firstName: null,
|
3863
|
+
lastName: null,
|
3864
|
+
|
3865
|
+
fullName: Ember.computed('firstName', 'lastName', {
|
3866
|
+
// getter
|
3867
|
+
get() {
|
3868
|
+
let firstName = this.get('firstName');
|
3869
|
+
let lastName = this.get('lastName');
|
3870
|
+
|
3871
|
+
return firstName + ' ' + lastName;
|
3872
|
+
},
|
3873
|
+
// setter
|
3874
|
+
set(key, value) {
|
3875
|
+
let [firstName, lastName] = value.split(' ');
|
3876
|
+
|
3877
|
+
this.set('firstName', firstName);
|
3878
|
+
this.set('lastName', lastName);
|
3879
|
+
|
3880
|
+
return value;
|
3881
|
+
}
|
3882
|
+
})
|
3883
|
+
});
|
3884
|
+
|
3885
|
+
let person = Person.create();
|
3886
|
+
|
3887
|
+
person.set('fullName', 'Peter Wagenet');
|
3888
|
+
person.get('firstName'); // 'Peter'
|
3889
|
+
person.get('lastName'); // 'Wagenet'
|
3890
|
+
```
|
3891
|
+
|
3892
|
+
@method set
|
3893
|
+
@param {String} keyName The key being accessed.
|
3894
|
+
@param {Object} newValue The new value being assigned.
|
3895
|
+
@return {Object} The return value of the function backing the CP.
|
3896
|
+
@public
|
3897
|
+
*/
|
3866
3898
|
ComputedPropertyPrototype.set = function computedPropertySetEntry(obj, keyName, value) {
|
3867
3899
|
if (this._readOnly) {
|
3868
3900
|
this._throwReadOnlyError(obj, keyName);
|
@@ -4006,7 +4038,7 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/debug', 'ember-metal/pro
|
|
4006
4038
|
this.lastName = 'Jones';
|
4007
4039
|
},
|
4008
4040
|
|
4009
|
-
fullName: Ember.computed(
|
4041
|
+
fullName: Ember.computed({
|
4010
4042
|
get(key) {
|
4011
4043
|
return `${this.get('firstName')} ${this.get('lastName')}`;
|
4012
4044
|
},
|
@@ -4784,6 +4816,8 @@ enifed('ember-metal/core', ['exports', 'require'], function (exports, _require)
|
|
4784
4816
|
Ember may overwrite this namespace and therefore, you should avoid adding any
|
4785
4817
|
new properties.
|
4786
4818
|
|
4819
|
+
You can also use the shorthand `Em` instead of `Ember`.
|
4820
|
+
|
4787
4821
|
At the heart of Ember is Ember-Runtime, a set of core functions that provide
|
4788
4822
|
cross-platform compatibility and object property observing. Ember-Runtime is
|
4789
4823
|
small and performance-focused so you can use it alongside other
|
@@ -4792,7 +4826,7 @@ enifed('ember-metal/core', ['exports', 'require'], function (exports, _require)
|
|
4792
4826
|
|
4793
4827
|
@class Ember
|
4794
4828
|
@static
|
4795
|
-
@version 2.
|
4829
|
+
@version 2.5.0-beta.1
|
4796
4830
|
@public
|
4797
4831
|
*/
|
4798
4832
|
|
@@ -4834,11 +4868,11 @@ enifed('ember-metal/core', ['exports', 'require'], function (exports, _require)
|
|
4834
4868
|
|
4835
4869
|
@property VERSION
|
4836
4870
|
@type String
|
4837
|
-
@default '2.
|
4871
|
+
@default '2.5.0-beta.1'
|
4838
4872
|
@static
|
4839
4873
|
@public
|
4840
4874
|
*/
|
4841
|
-
Ember.VERSION = '2.
|
4875
|
+
Ember.VERSION = '2.5.0-beta.1';
|
4842
4876
|
|
4843
4877
|
/**
|
4844
4878
|
The hash of environment variables used to control various configuration
|
@@ -5569,7 +5603,7 @@ enifed('ember-metal/events', ['exports', 'ember-metal/debug', 'ember-metal/utils
|
|
5569
5603
|
return func;
|
5570
5604
|
}
|
5571
5605
|
});
|
5572
|
-
enifed('ember-metal/expand_properties', ['exports', 'ember-metal/
|
5606
|
+
enifed('ember-metal/expand_properties', ['exports', 'ember-metal/debug'], function (exports, _emberMetalDebug) {
|
5573
5607
|
'use strict';
|
5574
5608
|
|
5575
5609
|
exports.default = expandProperties;
|
@@ -5580,7 +5614,6 @@ enifed('ember-metal/expand_properties', ['exports', 'ember-metal/error'], functi
|
|
5580
5614
|
*/
|
5581
5615
|
|
5582
5616
|
var SPLIT_REGEX = /\{|\}/;
|
5583
|
-
|
5584
5617
|
var END_WITH_EACH_REGEX = /\.@each$/;
|
5585
5618
|
|
5586
5619
|
/**
|
@@ -5612,25 +5645,21 @@ enifed('ember-metal/expand_properties', ['exports', 'ember-metal/error'], functi
|
|
5612
5645
|
*/
|
5613
5646
|
|
5614
5647
|
function expandProperties(pattern, callback) {
|
5615
|
-
|
5616
|
-
|
5617
|
-
}
|
5648
|
+
_emberMetalDebug.assert('A computed property key must be a string', typeof pattern === 'string');
|
5649
|
+
_emberMetalDebug.assert('Brace expanded properties cannot contain spaces, e.g. "user.{firstName, lastName}" should be "user.{firstName,lastName}"', pattern.indexOf(' ') === -1);
|
5618
5650
|
|
5619
|
-
|
5620
|
-
|
5621
|
-
var properties = [parts];
|
5651
|
+
var parts = pattern.split(SPLIT_REGEX);
|
5652
|
+
var properties = [parts];
|
5622
5653
|
|
5623
|
-
|
5624
|
-
|
5625
|
-
|
5626
|
-
|
5627
|
-
}
|
5654
|
+
for (var i = 0; i < parts.length; i++) {
|
5655
|
+
var part = parts[i];
|
5656
|
+
if (part.indexOf(',') >= 0) {
|
5657
|
+
properties = duplicateAndReplace(properties, part.split(','), i);
|
5658
|
+
}
|
5659
|
+
}
|
5628
5660
|
|
5629
|
-
|
5630
|
-
|
5631
|
-
});
|
5632
|
-
} else {
|
5633
|
-
callback(pattern.replace(END_WITH_EACH_REGEX, '.[]'));
|
5661
|
+
for (var i = 0; i < properties.length; i++) {
|
5662
|
+
callback(properties[i].join('').replace(END_WITH_EACH_REGEX, '.[]'));
|
5634
5663
|
}
|
5635
5664
|
}
|
5636
5665
|
|
@@ -5666,11 +5695,9 @@ enifed('ember-metal/features', ['exports', 'ember-metal/core', 'ember-metal/assi
|
|
5666
5695
|
@since 1.1.0
|
5667
5696
|
@public
|
5668
5697
|
*/
|
5669
|
-
var
|
5698
|
+
var FEATURES = _emberMetalAssign.default({}, _emberMetalCore.default.ENV.FEATURES);exports.FEATURES = FEATURES;
|
5670
5699
|
// jshint ignore:line
|
5671
|
-
var FEATURES = _emberMetalAssign.default(KNOWN_FEATURES, _emberMetalCore.default.ENV.FEATURES);
|
5672
5700
|
|
5673
|
-
exports.FEATURES = FEATURES;
|
5674
5701
|
/**
|
5675
5702
|
Determine whether the specified `feature` is enabled. Used by Ember's
|
5676
5703
|
build tools to exclude experimental features from beta/stable builds.
|
@@ -5744,7 +5771,7 @@ enifed('ember-metal/get_properties', ['exports', 'ember-metal/property_get'], fu
|
|
5744
5771
|
return ret;
|
5745
5772
|
}
|
5746
5773
|
});
|
5747
|
-
enifed('ember-metal/index', ['exports', 'require', 'ember-metal/core', 'ember-metal/debug', 'ember-metal/features', 'ember-metal/assign', 'ember-metal/merge', 'ember-metal/instrumentation', 'ember-metal/utils', 'ember-metal/meta', 'ember-metal/error', 'ember-metal/cache', 'ember-metal/logger', 'ember-metal/property_get', 'ember-metal/events', 'ember-metal/observer_set', 'ember-metal/property_events', 'ember-metal/properties', 'ember-metal/property_set', 'ember-metal/map', 'ember-metal/get_properties', 'ember-metal/set_properties', 'ember-metal/watch_key', 'ember-metal/chains', 'ember-metal/watch_path', 'ember-metal/watching', 'ember-metal/expand_properties', 'ember-metal/computed', 'ember-metal/alias', 'ember-metal/computed_macros', 'ember-metal/observer', 'ember-metal/mixin', 'ember-metal/binding', 'ember-metal/run_loop', 'ember-metal/libraries', 'ember-metal/is_none', 'ember-metal/is_empty', 'ember-metal/is_blank', 'ember-metal/is_present', 'backburner'], function (exports, _require, _emberMetalCore, _emberMetalDebug, _emberMetalFeatures, _emberMetalAssign, _emberMetalMerge, _emberMetalInstrumentation, _emberMetalUtils, _emberMetalMeta, _emberMetalError, _emberMetalCache, _emberMetalLogger, _emberMetalProperty_get, _emberMetalEvents, _emberMetalObserver_set, _emberMetalProperty_events, _emberMetalProperties, _emberMetalProperty_set, _emberMetalMap, _emberMetalGet_properties, _emberMetalSet_properties, _emberMetalWatch_key, _emberMetalChains, _emberMetalWatch_path, _emberMetalWatching, _emberMetalExpand_properties, _emberMetalComputed, _emberMetalAlias, _emberMetalComputed_macros, _emberMetalObserver, _emberMetalMixin, _emberMetalBinding, _emberMetalRun_loop, _emberMetalLibraries, _emberMetalIs_none, _emberMetalIs_empty, _emberMetalIs_blank, _emberMetalIs_present, _backburner) {
|
5774
|
+
enifed('ember-metal/index', ['exports', 'require', 'ember-metal/core', 'ember-metal/debug', 'ember-metal/features', 'ember-metal/assign', 'ember-metal/merge', 'ember-metal/instrumentation', 'ember-metal/utils', 'ember-metal/meta', 'ember-metal/error', 'ember-metal/cache', 'ember-metal/logger', 'ember-metal/property_get', 'ember-metal/events', 'ember-metal/observer_set', 'ember-metal/property_events', 'ember-metal/properties', 'ember-metal/property_set', 'ember-metal/map', 'ember-metal/get_properties', 'ember-metal/set_properties', 'ember-metal/watch_key', 'ember-metal/chains', 'ember-metal/watch_path', 'ember-metal/watching', 'ember-metal/expand_properties', 'ember-metal/computed', 'ember-metal/alias', 'ember-metal/computed_macros', 'ember-metal/observer', 'ember-metal/mixin', 'ember-metal/binding', 'ember-metal/path_cache', 'ember-metal/run_loop', 'ember-metal/libraries', 'ember-metal/is_none', 'ember-metal/is_empty', 'ember-metal/is_blank', 'ember-metal/is_present', 'backburner'], function (exports, _require, _emberMetalCore, _emberMetalDebug, _emberMetalFeatures, _emberMetalAssign, _emberMetalMerge, _emberMetalInstrumentation, _emberMetalUtils, _emberMetalMeta, _emberMetalError, _emberMetalCache, _emberMetalLogger, _emberMetalProperty_get, _emberMetalEvents, _emberMetalObserver_set, _emberMetalProperty_events, _emberMetalProperties, _emberMetalProperty_set, _emberMetalMap, _emberMetalGet_properties, _emberMetalSet_properties, _emberMetalWatch_key, _emberMetalChains, _emberMetalWatch_path, _emberMetalWatching, _emberMetalExpand_properties, _emberMetalComputed, _emberMetalAlias, _emberMetalComputed_macros, _emberMetalObserver, _emberMetalMixin, _emberMetalBinding, _emberMetalPath_cache, _emberMetalRun_loop, _emberMetalLibraries, _emberMetalIs_none, _emberMetalIs_empty, _emberMetalIs_blank, _emberMetalIs_present, _backburner) {
|
5748
5775
|
/**
|
5749
5776
|
@module ember
|
5750
5777
|
@submodule ember-metal
|
@@ -5814,7 +5841,6 @@ enifed('ember-metal/index', ['exports', 'require', 'ember-metal/core', 'ember-me
|
|
5814
5841
|
|
5815
5842
|
_emberMetalCore.default.get = _emberMetalProperty_get.get;
|
5816
5843
|
_emberMetalCore.default.getWithDefault = _emberMetalProperty_get.getWithDefault;
|
5817
|
-
_emberMetalCore.default.normalizeTuple = _emberMetalProperty_get.normalizeTuple;
|
5818
5844
|
_emberMetalCore.default._getPath = _emberMetalProperty_get._getPath;
|
5819
5845
|
|
5820
5846
|
_emberMetalCore.default.on = _emberMetalEvents.on;
|
@@ -5852,7 +5878,6 @@ enifed('ember-metal/index', ['exports', 'require', 'ember-metal/core', 'ember-me
|
|
5852
5878
|
_emberMetalCore.default.watchKey = _emberMetalWatch_key.watchKey;
|
5853
5879
|
_emberMetalCore.default.unwatchKey = _emberMetalWatch_key.unwatchKey;
|
5854
5880
|
|
5855
|
-
_emberMetalCore.default.flushPendingChains = _emberMetalChains.flushPendingChains;
|
5856
5881
|
_emberMetalCore.default.removeChainWatcher = _emberMetalChains.removeChainWatcher;
|
5857
5882
|
_emberMetalCore.default._ChainNode = _emberMetalChains.ChainNode;
|
5858
5883
|
_emberMetalCore.default.finishChains = _emberMetalChains.finishChains;
|
@@ -5888,7 +5913,7 @@ enifed('ember-metal/index', ['exports', 'require', 'ember-metal/core', 'ember-me
|
|
5888
5913
|
|
5889
5914
|
_emberMetalCore.default.bind = _emberMetalBinding.bind;
|
5890
5915
|
_emberMetalCore.default.Binding = _emberMetalBinding.Binding;
|
5891
|
-
_emberMetalCore.default.isGlobalPath =
|
5916
|
+
_emberMetalCore.default.isGlobalPath = _emberMetalPath_cache.isGlobalPath;
|
5892
5917
|
|
5893
5918
|
_emberMetalCore.default.run = _emberMetalRun_loop.default;
|
5894
5919
|
|
@@ -5958,6 +5983,10 @@ enifed('ember-metal/index', ['exports', 'require', 'ember-metal/core', 'ember-me
|
|
5958
5983
|
}
|
5959
5984
|
}
|
5960
5985
|
|
5986
|
+
_emberMetalDebug.deprecate('Support for the `ember-legacy-views` addon will end soon, please remove it from your application.', !!_emberMetalCore.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT, { id: 'ember-legacy-views', until: '2.6.0', url: 'http://emberjs.com/deprecations/v1.x/#toc_ember-view' });
|
5987
|
+
|
5988
|
+
_emberMetalDebug.deprecate('Support for the `ember-legacy-controllers` addon will end soon, please remove it from your application.', !!_emberMetalCore.default.ENV._ENABLE_LEGACY_CONTROLLER_SUPPORT, { id: 'ember-legacy-controllers', until: '2.6.0', url: 'http://emberjs.com/deprecations/v1.x/#toc_objectcontroller' });
|
5989
|
+
|
5961
5990
|
_emberMetalCore.default.create = _emberMetalDebug.deprecateFunc('Ember.create is deprecated in favor of Object.create', { id: 'ember-metal.ember-create', until: '3.0.0' }, Object.create);
|
5962
5991
|
_emberMetalCore.default.keys = _emberMetalDebug.deprecateFunc('Ember.keys is deprecated in favor of Object.keys', { id: 'ember-metal.ember.keys', until: '3.0.0' }, Object.keys);
|
5963
5992
|
|
@@ -9023,9 +9052,9 @@ enifed('ember-metal/properties', ['exports', 'ember-metal/debug', 'ember-metal/f
|
|
9023
9052
|
Ember.defineProperty(contact, 'lastName', undefined, 'Jolley');
|
9024
9053
|
|
9025
9054
|
// define a computed property
|
9026
|
-
Ember.defineProperty(contact, 'fullName', Ember.computed(
|
9055
|
+
Ember.defineProperty(contact, 'fullName', Ember.computed(function() {
|
9027
9056
|
return this.firstName+' '+this.lastName;
|
9028
|
-
}));
|
9057
|
+
}).property('firstName', 'lastName'));
|
9029
9058
|
```
|
9030
9059
|
|
9031
9060
|
@private
|
@@ -9413,7 +9442,7 @@ enifed('ember-metal/property_events', ['exports', 'ember-metal/utils', 'ember-me
|
|
9413
9442
|
exports.endPropertyChanges = endPropertyChanges;
|
9414
9443
|
exports.changeProperties = changeProperties;
|
9415
9444
|
});
|
9416
|
-
enifed('ember-metal/property_get', ['exports', 'ember-metal/
|
9445
|
+
enifed('ember-metal/property_get', ['exports', 'ember-metal/debug', 'ember-metal/path_cache'], function (exports, _emberMetalDebug, _emberMetalPath_cache) {
|
9417
9446
|
/**
|
9418
9447
|
@module ember-metal
|
9419
9448
|
*/
|
@@ -9421,12 +9450,9 @@ enifed('ember-metal/property_get', ['exports', 'ember-metal/core', 'ember-metal/
|
|
9421
9450
|
'use strict';
|
9422
9451
|
|
9423
9452
|
exports.get = get;
|
9424
|
-
exports.normalizeTuple = normalizeTuple;
|
9425
9453
|
exports._getPath = _getPath;
|
9426
9454
|
exports.getWithDefault = getWithDefault;
|
9427
9455
|
|
9428
|
-
var FIRST_KEY = /^([^\.]+)/;
|
9429
|
-
|
9430
9456
|
// ..........................................................
|
9431
9457
|
// GET AND SET
|
9432
9458
|
//
|
@@ -9492,77 +9518,24 @@ enifed('ember-metal/property_get', ['exports', 'ember-metal/core', 'ember-metal/
|
|
9492
9518
|
}
|
9493
9519
|
}
|
9494
9520
|
|
9495
|
-
/**
|
9496
|
-
Normalizes a target/path pair to reflect that actual target/path that should
|
9497
|
-
be observed, etc. This takes into account passing in global property
|
9498
|
-
paths (i.e. a path beginning with a capital letter not defined on the
|
9499
|
-
target).
|
9500
|
-
|
9501
|
-
@private
|
9502
|
-
@method normalizeTuple
|
9503
|
-
@for Ember
|
9504
|
-
@param {Object} target The current target. May be `null`.
|
9505
|
-
@param {String} path A path on the target or a global property path.
|
9506
|
-
@return {Array} a temporary array with the normalized target/path pair.
|
9507
|
-
*/
|
9508
|
-
|
9509
|
-
function normalizeTuple(target, path) {
|
9510
|
-
var hasThis = _emberMetalPath_cache.hasThis(path);
|
9511
|
-
var isGlobal = !hasThis && _emberMetalPath_cache.isGlobal(path);
|
9512
|
-
var key;
|
9513
|
-
|
9514
|
-
if (!target && !isGlobal) {
|
9515
|
-
return [undefined, ''];
|
9516
|
-
}
|
9517
|
-
|
9518
|
-
if (hasThis) {
|
9519
|
-
path = path.slice(5);
|
9520
|
-
}
|
9521
|
-
|
9522
|
-
if (!target || isGlobal) {
|
9523
|
-
target = _emberMetalCore.default.lookup;
|
9524
|
-
}
|
9525
|
-
|
9526
|
-
if (isGlobal && _emberMetalPath_cache.isPath(path)) {
|
9527
|
-
key = path.match(FIRST_KEY)[0];
|
9528
|
-
target = get(target, key);
|
9529
|
-
path = path.slice(key.length + 1);
|
9530
|
-
}
|
9531
|
-
|
9532
|
-
// must return some kind of path to be valid else other things will break.
|
9533
|
-
validateIsPath(path);
|
9534
|
-
|
9535
|
-
return [target, path];
|
9536
|
-
}
|
9537
|
-
|
9538
|
-
function validateIsPath(path) {
|
9539
|
-
if (!path || path.length === 0) {
|
9540
|
-
throw new _emberMetalError.default('Object in path ' + path + ' could not be found or was destroyed.');
|
9541
|
-
}
|
9542
|
-
}
|
9543
|
-
|
9544
9521
|
function _getPath(root, path) {
|
9545
|
-
var
|
9522
|
+
var obj = root;
|
9523
|
+
var parts = path.split('.');
|
9524
|
+
var len = parts.length;
|
9546
9525
|
|
9547
|
-
|
9548
|
-
|
9526
|
+
for (var i = 0; i < len; i++) {
|
9527
|
+
if (obj == null) {
|
9528
|
+
return obj;
|
9529
|
+
}
|
9549
9530
|
|
9550
|
-
|
9551
|
-
tuple = normalizeTuple(root, path);
|
9552
|
-
root = tuple[0];
|
9553
|
-
path = tuple[1];
|
9554
|
-
tuple.length = 0;
|
9555
|
-
}
|
9531
|
+
obj = get(obj, parts[i]);
|
9556
9532
|
|
9557
|
-
|
9558
|
-
len = parts.length;
|
9559
|
-
for (idx = 0; root != null && idx < len; idx++) {
|
9560
|
-
root = get(root, parts[idx]);
|
9561
|
-
if (root && root.isDestroyed) {
|
9533
|
+
if (obj && obj.isDestroyed) {
|
9562
9534
|
return undefined;
|
9563
9535
|
}
|
9564
9536
|
}
|
9565
|
-
|
9537
|
+
|
9538
|
+
return obj;
|
9566
9539
|
}
|
9567
9540
|
|
9568
9541
|
/**
|
@@ -9632,7 +9605,7 @@ enifed('ember-metal/property_set', ['exports', 'ember-metal/debug', 'ember-metal
|
|
9632
9605
|
return setPath(obj, keyName, value, tolerant);
|
9633
9606
|
}
|
9634
9607
|
|
9635
|
-
_emberMetalDebug.assert('calling set on destroyed object', !obj.isDestroyed);
|
9608
|
+
_emberMetalDebug.assert('calling set on destroyed object: ' + _emberMetalUtils.toString(obj) + '.' + keyName + ' = ' + _emberMetalUtils.toString(value), !obj.isDestroyed);
|
9636
9609
|
|
9637
9610
|
if (desc) {
|
9638
9611
|
desc.set(obj, keyName, value);
|
@@ -11129,13 +11102,13 @@ enifed('ember-metal/streams/utils', ['exports', 'ember-metal/debug', 'ember-meta
|
|
11129
11102
|
exports.setValue = setValue;
|
11130
11103
|
|
11131
11104
|
/*
|
11132
|
-
Check whether an object is a stream or not
|
11105
|
+
Check whether an object is a stream or not.
|
11133
11106
|
|
11134
11107
|
@private
|
11135
11108
|
@for Ember.stream
|
11136
11109
|
@function isStream
|
11137
|
-
@param {Object|Stream} object
|
11138
|
-
@return {Boolean} `true` if the object is a stream, `false` otherwise
|
11110
|
+
@param {Object|Stream} object Object to check whether it is a stream.
|
11111
|
+
@return {Boolean} `true` if the object is a stream, `false` otherwise.
|
11139
11112
|
*/
|
11140
11113
|
|
11141
11114
|
function isStream(object) {
|
@@ -11149,10 +11122,10 @@ enifed('ember-metal/streams/utils', ['exports', 'ember-metal/debug', 'ember-meta
|
|
11149
11122
|
@public
|
11150
11123
|
@for Ember.stream
|
11151
11124
|
@function subscribe
|
11152
|
-
@param {Object|Stream} object
|
11153
|
-
@param {Function} callback
|
11125
|
+
@param {Object|Stream} object Object or stream to potentially subscribe to.
|
11126
|
+
@param {Function} callback Function to run when stream value changes.
|
11154
11127
|
@param {Object} [context] the callback will be executed with this context if it
|
11155
|
-
is provided
|
11128
|
+
is provided.
|
11156
11129
|
*/
|
11157
11130
|
|
11158
11131
|
function subscribe(object, callback, context) {
|
@@ -11168,9 +11141,9 @@ enifed('ember-metal/streams/utils', ['exports', 'ember-metal/debug', 'ember-meta
|
|
11168
11141
|
@private
|
11169
11142
|
@for Ember.stream
|
11170
11143
|
@function unsubscribe
|
11171
|
-
@param {Object|Stream} object
|
11172
|
-
@param {Function} callback
|
11173
|
-
@param {Object} [context]
|
11144
|
+
@param {Object|Stream} object Object or stream to potentially unsubscribe from.
|
11145
|
+
@param {Function} callback Function originally passed to `subscribe()`.
|
11146
|
+
@param {Object} [context] Object originally passed to `subscribe()`.
|
11174
11147
|
*/
|
11175
11148
|
|
11176
11149
|
function unsubscribe(object, callback, context) {
|
@@ -11180,14 +11153,14 @@ enifed('ember-metal/streams/utils', ['exports', 'ember-metal/debug', 'ember-meta
|
|
11180
11153
|
}
|
11181
11154
|
|
11182
11155
|
/*
|
11183
|
-
Retrieve the value of a stream, or in the case a non-stream object is passed,
|
11156
|
+
Retrieve the value of a stream, or in the case where a non-stream object is passed,
|
11184
11157
|
return the object itself.
|
11185
11158
|
|
11186
11159
|
@private
|
11187
11160
|
@for Ember.stream
|
11188
11161
|
@function read
|
11189
|
-
@param {Object|Stream} object
|
11190
|
-
@return
|
11162
|
+
@param {Object|Stream} object Object to return the value of.
|
11163
|
+
@return The stream's current value, or the non-stream object itself.
|
11191
11164
|
*/
|
11192
11165
|
|
11193
11166
|
function read(object) {
|
@@ -11205,7 +11178,7 @@ enifed('ember-metal/streams/utils', ['exports', 'ember-metal/debug', 'ember-meta
|
|
11205
11178
|
@for Ember.stream
|
11206
11179
|
@function readArray
|
11207
11180
|
@param {Array} array The array to read values from
|
11208
|
-
@return {Array}
|
11181
|
+
@return {Array} A new array of the same length with the values of non-stream
|
11209
11182
|
objects mapped from their original positions untouched, and
|
11210
11183
|
the values of stream objects retaining their original position
|
11211
11184
|
and replaced with the stream's current value.
|
@@ -11227,8 +11200,8 @@ enifed('ember-metal/streams/utils', ['exports', 'ember-metal/debug', 'ember-meta
|
|
11227
11200
|
@private
|
11228
11201
|
@for Ember.stream
|
11229
11202
|
@function readHash
|
11230
|
-
@param {Object} object The hash to read keys and values from
|
11231
|
-
@return {Object}
|
11203
|
+
@param {Object} object The hash to read keys and values from.
|
11204
|
+
@return {Object} A new object with the same keys as the passed object. The
|
11232
11205
|
property values in the new object are the original values in
|
11233
11206
|
the case of non-stream objects, and the streams' current
|
11234
11207
|
values in the case of stream objects.
|
@@ -11243,14 +11216,14 @@ enifed('ember-metal/streams/utils', ['exports', 'ember-metal/debug', 'ember-meta
|
|
11243
11216
|
}
|
11244
11217
|
|
11245
11218
|
/*
|
11246
|
-
Check whether an array contains any stream values
|
11219
|
+
Check whether an array contains any stream values.
|
11247
11220
|
|
11248
11221
|
@private
|
11249
11222
|
@for Ember.stream
|
11250
11223
|
@function scanArray
|
11251
|
-
@param {Array} array
|
11224
|
+
@param {Array} array Array given to a handlebars helper.
|
11252
11225
|
@return {Boolean} `true` if the array contains a stream/bound value, `false`
|
11253
|
-
otherwise
|
11226
|
+
otherwise.
|
11254
11227
|
*/
|
11255
11228
|
|
11256
11229
|
function scanArray(array) {
|
@@ -11268,14 +11241,14 @@ enifed('ember-metal/streams/utils', ['exports', 'ember-metal/debug', 'ember-meta
|
|
11268
11241
|
}
|
11269
11242
|
|
11270
11243
|
/*
|
11271
|
-
Check whether a hash has any stream property values
|
11244
|
+
Check whether a hash has any stream property values.
|
11272
11245
|
|
11273
11246
|
@private
|
11274
11247
|
@for Ember.stream
|
11275
11248
|
@function scanHash
|
11276
|
-
@param {Object} hash "hash" argument given to a handlebars helper
|
11249
|
+
@param {Object} hash "hash" argument given to a handlebars helper.
|
11277
11250
|
@return {Boolean} `true` if the object contains a stream/bound value, `false`
|
11278
|
-
otherwise
|
11251
|
+
otherwise.
|
11279
11252
|
*/
|
11280
11253
|
|
11281
11254
|
function scanHash(hash) {
|
@@ -11296,8 +11269,8 @@ enifed('ember-metal/streams/utils', ['exports', 'ember-metal/debug', 'ember-meta
|
|
11296
11269
|
this.array = array;
|
11297
11270
|
this.separator = separator;
|
11298
11271
|
|
11299
|
-
//
|
11300
|
-
// as a string literal
|
11272
|
+
// Used by angle bracket components to detect an attribute was provided
|
11273
|
+
// as a string literal.
|
11301
11274
|
this.isConcat = true;
|
11302
11275
|
},
|
11303
11276
|
|
@@ -11312,17 +11285,17 @@ enifed('ember-metal/streams/utils', ['exports', 'ember-metal/debug', 'ember-meta
|
|
11312
11285
|
});
|
11313
11286
|
|
11314
11287
|
/*
|
11315
|
-
Join an array, with any streams replaced by their current values
|
11288
|
+
Join an array, with any streams replaced by their current values.
|
11316
11289
|
|
11317
11290
|
@private
|
11318
11291
|
@for Ember.stream
|
11319
11292
|
@function concat
|
11320
11293
|
@param {Array} array An array containing zero or more stream objects and
|
11321
|
-
zero or more non-stream objects
|
11322
|
-
@param {String} separator
|
11294
|
+
zero or more non-stream objects.
|
11295
|
+
@param {String} separator String to be used to join array elements.
|
11323
11296
|
@return {String} String with array elements concatenated and joined by the
|
11324
11297
|
provided separator, and any stream array members having been
|
11325
|
-
replaced by the current value of the stream
|
11298
|
+
replaced by the current value of the stream.
|
11326
11299
|
*/
|
11327
11300
|
|
11328
11301
|
function concat(array, separator) {
|
@@ -11462,9 +11435,9 @@ enifed('ember-metal/streams/utils', ['exports', 'ember-metal/debug', 'ember-meta
|
|
11462
11435
|
@private
|
11463
11436
|
@for Ember.stream
|
11464
11437
|
@function chain
|
11465
|
-
@param {Object|Stream} value A stream or non-stream object
|
11466
|
-
@param {Function} fn
|
11467
|
-
be run once in the case of a non-stream object
|
11438
|
+
@param {Object|Stream} value A stream or non-stream object.
|
11439
|
+
@param {Function} fn Function to be run when the stream value changes, or to
|
11440
|
+
be run once in the case of a non-stream object.
|
11468
11441
|
@return {Object|Stream} In the case of a stream `value` parameter, a new
|
11469
11442
|
stream that will be updated with the return value of
|
11470
11443
|
the provided function `fn`. In the case of a
|
@@ -11531,6 +11504,7 @@ enifed('ember-metal/utils', ['exports'], function (exports) {
|
|
11531
11504
|
exports.apply = apply;
|
11532
11505
|
exports.applyStr = applyStr;
|
11533
11506
|
exports.lookupDescriptor = lookupDescriptor;
|
11507
|
+
exports.toString = toString;
|
11534
11508
|
var _uuid = 0;
|
11535
11509
|
|
11536
11510
|
/**
|
@@ -11915,7 +11889,7 @@ enifed('ember-metal/utils', ['exports'], function (exports) {
|
|
11915
11889
|
// TYPING & ARRAY MESSAGING
|
11916
11890
|
//
|
11917
11891
|
|
11918
|
-
var
|
11892
|
+
var objectToString = Object.prototype.toString;
|
11919
11893
|
|
11920
11894
|
/**
|
11921
11895
|
Forces the passed object to be part of an array. If the object is already
|
@@ -11979,7 +11953,7 @@ enifed('ember-metal/utils', ['exports'], function (exports) {
|
|
11979
11953
|
return '' + obj;
|
11980
11954
|
}
|
11981
11955
|
// overridden toString
|
11982
|
-
if (typeof obj.toString === 'function' && obj.toString !==
|
11956
|
+
if (typeof obj.toString === 'function' && obj.toString !== objectToString) {
|
11983
11957
|
return obj.toString();
|
11984
11958
|
}
|
11985
11959
|
|
@@ -11997,7 +11971,7 @@ enifed('ember-metal/utils', ['exports'], function (exports) {
|
|
11997
11971
|
}
|
11998
11972
|
|
11999
11973
|
if (v && typeof v.toString !== 'function') {
|
12000
|
-
ret.push(key + ': ' +
|
11974
|
+
ret.push(key + ': ' + objectToString.call(v));
|
12001
11975
|
} else {
|
12002
11976
|
ret.push(key + ': ' + v);
|
12003
11977
|
}
|
@@ -12079,6 +12053,17 @@ enifed('ember-metal/utils', ['exports'], function (exports) {
|
|
12079
12053
|
return null;
|
12080
12054
|
}
|
12081
12055
|
|
12056
|
+
// A `toString` util function that supports objects without a `toString`
|
12057
|
+
// method, e.g. an object created with `Object.create(null)`.
|
12058
|
+
|
12059
|
+
function toString(obj) {
|
12060
|
+
if (obj && obj.toString) {
|
12061
|
+
return obj.toString();
|
12062
|
+
} else {
|
12063
|
+
return objectToString.call(obj);
|
12064
|
+
}
|
12065
|
+
}
|
12066
|
+
|
12082
12067
|
exports.GUID_KEY = GUID_KEY;
|
12083
12068
|
exports.makeArray = makeArray;
|
12084
12069
|
exports.canInvoke = canInvoke;
|
@@ -12304,8 +12289,6 @@ enifed('ember-metal/watching', ['exports', 'ember-metal/chains', 'ember-metal/wa
|
|
12304
12289
|
return meta && meta.peekWatching(key) || 0;
|
12305
12290
|
}
|
12306
12291
|
|
12307
|
-
watch.flushPending = _emberMetalChains.flushPendingChains;
|
12308
|
-
|
12309
12292
|
function unwatch(obj, _keyPath, m) {
|
12310
12293
|
// can't watch length on Array - it is special...
|
12311
12294
|
if (_keyPath === 'length' && Array.isArray(obj)) {
|
@@ -12575,7 +12558,18 @@ enifed('ember-runtime/compare', ['exports', 'ember-runtime/utils', 'ember-runtim
|
|
12575
12558
|
return spaceship(v, w);
|
12576
12559
|
|
12577
12560
|
case 'string':
|
12578
|
-
|
12561
|
+
// We are comparing Strings using operators instead of `String#localeCompare`
|
12562
|
+
// because of unexpected behavior for certain edge cases.
|
12563
|
+
// For example `'Z'.localeCompare('a')` returns `1`.
|
12564
|
+
//
|
12565
|
+
// See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare#Description
|
12566
|
+
if (v < w) {
|
12567
|
+
return -1;
|
12568
|
+
} else if (v === w) {
|
12569
|
+
return 0;
|
12570
|
+
}
|
12571
|
+
|
12572
|
+
return 1;
|
12579
12573
|
|
12580
12574
|
case 'array':
|
12581
12575
|
var vLen = v.length;
|
@@ -14894,19 +14888,8 @@ enifed('ember-runtime/mixins/array', ['exports', 'ember-metal/core', 'ember-meta
|
|
14894
14888
|
on the array. Just get an equivalent property on this object and it will
|
14895
14889
|
return an enumerable that maps automatically to the named key on the
|
14896
14890
|
member objects.
|
14897
|
-
|
14898
|
-
|
14899
|
-
myMethod: computed('posts.@each.author', function(){
|
14900
|
-
...
|
14901
|
-
});
|
14902
|
-
```
|
14903
|
-
If you merely want to watch for the array being changed, like an object being
|
14904
|
-
replaced, added or removed, use `[]` instead of `@each`.
|
14905
|
-
```javascript
|
14906
|
-
myMethod: computed('posts.[]', function(){
|
14907
|
-
...
|
14908
|
-
});
|
14909
|
-
```
|
14891
|
+
If you merely want to watch for any items being added or removed to the array,
|
14892
|
+
use the `[]` property instead of `@each`.
|
14910
14893
|
@property @each
|
14911
14894
|
@public
|
14912
14895
|
*/
|
@@ -15363,7 +15346,6 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/property_get'
|
|
15363
15346
|
```
|
15364
15347
|
@property firstObject
|
15365
15348
|
@return {Object} the object or undefined
|
15366
|
-
@readOnly
|
15367
15349
|
@public
|
15368
15350
|
*/
|
15369
15351
|
firstObject: _emberMetalComputed.computed('[]', function () {
|
@@ -15392,7 +15374,6 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/property_get'
|
|
15392
15374
|
```
|
15393
15375
|
@property lastObject
|
15394
15376
|
@return {Object} the last object or undefined
|
15395
|
-
@readOnly
|
15396
15377
|
@public
|
15397
15378
|
*/
|
15398
15379
|
lastObject: _emberMetalComputed.computed('[]', function () {
|
@@ -17920,8 +17901,9 @@ enifed('ember-runtime/mixins/target_action_support', ['exports', 'ember-metal/co
|
|
17920
17901
|
@return {Boolean} true if the action was sent successfully and did not return false
|
17921
17902
|
@private
|
17922
17903
|
*/
|
17923
|
-
triggerAction: function (
|
17924
|
-
opts =
|
17904
|
+
triggerAction: function () {
|
17905
|
+
var opts = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
|
17906
|
+
|
17925
17907
|
var action = opts.action || _emberMetalProperty_get.get(this, 'action');
|
17926
17908
|
var target = opts.target || _emberMetalProperty_get.get(this, 'targetObject');
|
17927
17909
|
var actionContext = opts.actionContext;
|
@@ -18465,7 +18447,7 @@ enifed('ember-runtime/system/core_object', ['exports', 'ember-metal/debug', 'emb
|
|
18465
18447
|
if (mergedProperties && mergedProperties.length && mergedProperties.indexOf(keyName) >= 0) {
|
18466
18448
|
var originalValue = this[keyName];
|
18467
18449
|
|
18468
|
-
value = _emberMetalAssign.default(
|
18450
|
+
value = _emberMetalAssign.default(originalValue, value);
|
18469
18451
|
}
|
18470
18452
|
|
18471
18453
|
if (desc) {
|
@@ -19758,14 +19740,14 @@ enifed('ember-runtime/system/native_array', ['exports', 'ember-metal/core', 'emb
|
|
19758
19740
|
if (_emberMetalCore.default.EXTEND_PROTOTYPES === true || _emberMetalCore.default.EXTEND_PROTOTYPES.Array) {
|
19759
19741
|
NativeArray.apply(Array.prototype);
|
19760
19742
|
exports. // ES6TODO: Setting A onto the object returned by ember-metal/core to avoid circles
|
19761
|
-
A = A = function (
|
19762
|
-
|
19743
|
+
A = A = function () {
|
19744
|
+
var arr = arguments.length <= 0 || arguments[0] === undefined ? [] : arguments[0];
|
19745
|
+
return arr;
|
19763
19746
|
};
|
19764
19747
|
} else {
|
19765
|
-
exports.A = A = function (
|
19766
|
-
|
19767
|
-
|
19768
|
-
}
|
19748
|
+
exports.A = A = function () {
|
19749
|
+
var arr = arguments.length <= 0 || arguments[0] === undefined ? [] : arguments[0];
|
19750
|
+
|
19769
19751
|
return _emberRuntimeMixinsArray.default.detect(arr) ? arr : NativeArray.apply(arr);
|
19770
19752
|
};
|
19771
19753
|
}
|
@@ -21744,6 +21726,8 @@ enifed('rsvp/node', ['exports', 'rsvp/promise', 'rsvp/-internal', 'rsvp/utils'],
|
|
21744
21726
|
|
21745
21727
|
exports.default = denodeify;
|
21746
21728
|
|
21729
|
+
function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }
|
21730
|
+
|
21747
21731
|
function Result() {
|
21748
21732
|
this.value = undefined;
|
21749
21733
|
}
|
@@ -21974,7 +21958,7 @@ enifed('rsvp/node', ['exports', 'rsvp/promise', 'rsvp/-internal', 'rsvp/utils'],
|
|
21974
21958
|
}
|
21975
21959
|
};
|
21976
21960
|
|
21977
|
-
fn
|
21961
|
+
_defaults(fn, nodeFunc);
|
21978
21962
|
|
21979
21963
|
return fn;
|
21980
21964
|
}
|