ember-source 1.9.0.alpha.2 → 1.9.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.
Potentially problematic release.
This version of ember-source might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/dist/ember-runtime.js +599 -600
- data/dist/ember-template-compiler.js +5 -0
- data/dist/ember-testing.js +1529 -0
- data/dist/ember-tests.js +2125 -1688
- data/dist/ember-tests.prod.js +2062 -1688
- data/dist/ember.js +1956 -1888
- data/dist/ember.min.js +12 -12
- data/dist/ember.prod.js +1881 -1847
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d1a01f22dd95285d1cda550257201f420a41c000
|
4
|
+
data.tar.gz: 27e8b7aa7dda99437965c82490584345828b7e95
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 337ad6c012a2d07ba5d2464ab1756c3b2945d56deae80fe2ab336b924068cff037337c7b3a2fa7030bfdae0e6b55515582e59664bcd575154e6aec9c0aedb9a3
|
7
|
+
data.tar.gz: 2e561489ba2c016276f4f65f619f2aabfecb01d34e914f2cfea26d97c9d70df3b6cc8d2136c80a675e23277bd755010b730d68983516249e12b5b3b6103c758d
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.9.0-
|
1
|
+
1.9.0-beta.1
|
data/dist/ember-runtime.js
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
* Portions Copyright 2008-2011 Apple Inc. All rights reserved.
|
6
6
|
* @license Licensed under MIT license
|
7
7
|
* See https://raw.github.com/emberjs/ember.js/master/LICENSE
|
8
|
-
* @version 1.9.0-
|
8
|
+
* @version 1.9.0-beta.1
|
9
9
|
*/
|
10
10
|
|
11
11
|
(function() {
|
@@ -640,10 +640,11 @@ define("backburner/deferred-action-queues",
|
|
640
640
|
function(__dependency1__, __dependency2__, __exports__) {
|
641
641
|
"use strict";
|
642
642
|
var each = __dependency1__.each;
|
643
|
+
var isString = __dependency1__.isString;
|
643
644
|
var Queue = __dependency2__["default"];
|
644
645
|
|
645
646
|
function DeferredActionQueues(queueNames, options) {
|
646
|
-
var queues = this.queues =
|
647
|
+
var queues = this.queues = {};
|
647
648
|
this.queueNames = queueNames = queueNames || [];
|
648
649
|
|
649
650
|
this.options = options;
|
@@ -662,9 +663,7 @@ define("backburner/deferred-action-queues",
|
|
662
663
|
var queues = this.queues;
|
663
664
|
var queue = queues[name];
|
664
665
|
|
665
|
-
if (!queue) {
|
666
|
-
noSuchQueue(name);
|
667
|
-
}
|
666
|
+
if (!queue) { noSuchQueue(name); }
|
668
667
|
|
669
668
|
if (onceFlag) {
|
670
669
|
return queue.pushUnique(target, method, args, stack);
|
@@ -673,6 +672,26 @@ define("backburner/deferred-action-queues",
|
|
673
672
|
}
|
674
673
|
},
|
675
674
|
|
675
|
+
invoke: function(target, method, args, _, _errorRecordedForStack) {
|
676
|
+
if (args && args.length > 0) {
|
677
|
+
method.apply(target, args);
|
678
|
+
} else {
|
679
|
+
method.call(target);
|
680
|
+
}
|
681
|
+
},
|
682
|
+
|
683
|
+
invokeWithOnError: function(target, method, args, onError, errorRecordedForStack) {
|
684
|
+
try {
|
685
|
+
if (args && args.length > 0) {
|
686
|
+
method.apply(target, args);
|
687
|
+
} else {
|
688
|
+
method.call(target);
|
689
|
+
}
|
690
|
+
} catch(error) {
|
691
|
+
onError(error, errorRecordedForStack);
|
692
|
+
}
|
693
|
+
},
|
694
|
+
|
676
695
|
flush: function() {
|
677
696
|
var queues = this.queues;
|
678
697
|
var queueNames = this.queueNames;
|
@@ -680,23 +699,85 @@ define("backburner/deferred-action-queues",
|
|
680
699
|
var queueNameIndex = 0;
|
681
700
|
var numberOfQueues = queueNames.length;
|
682
701
|
var options = this.options;
|
702
|
+
var onError = options.onError || (options.onErrorTarget && options.onErrorTarget[options.onErrorMethod]);
|
703
|
+
var invoke = onError ? this.invokeWithOnError : this.invoke;
|
683
704
|
|
684
705
|
while (queueNameIndex < numberOfQueues) {
|
685
706
|
queueName = queueNames[queueNameIndex];
|
686
707
|
queue = queues[queueName];
|
708
|
+
queueItems = queue._queueBeingFlushed = queue._queue.slice();
|
709
|
+
queue._queue = [];
|
710
|
+
queue.targetQueues = Object.create(null);
|
711
|
+
|
712
|
+
var queueOptions = queue.options; // TODO: write a test for this
|
713
|
+
var before = queueOptions && queueOptions.before;
|
714
|
+
var after = queueOptions && queueOptions.after;
|
715
|
+
var target, method, args, errorRecordedForStack;
|
716
|
+
var queueIndex = 0;
|
717
|
+
var numberOfQueueItems = queueItems.length;
|
718
|
+
|
719
|
+
if (numberOfQueueItems && before) {
|
720
|
+
before();
|
721
|
+
}
|
687
722
|
|
688
|
-
|
723
|
+
while (queueIndex < numberOfQueueItems) {
|
724
|
+
target = queueItems[queueIndex];
|
725
|
+
method = queueItems[queueIndex+1];
|
726
|
+
args = queueItems[queueIndex+2];
|
727
|
+
errorRecordedForStack = queueItems[queueIndex+3]; // Debugging assistance
|
689
728
|
|
690
|
-
|
691
|
-
|
729
|
+
//
|
730
|
+
|
731
|
+
if (isString(method)) {
|
732
|
+
method = target[method];
|
733
|
+
}
|
734
|
+
|
735
|
+
// method could have been nullified / canceled during flush
|
736
|
+
if (method) {
|
737
|
+
//
|
738
|
+
// ** Attention intrepid developer **
|
739
|
+
//
|
740
|
+
// To find out the stack of this task when it was scheduled onto
|
741
|
+
// the run loop, add the following to your app.js:
|
742
|
+
//
|
743
|
+
// Ember.run.backburner.DEBUG = true; // NOTE: This slows your app, don't leave it on in production.
|
744
|
+
//
|
745
|
+
// Once that is in place, when you are at a breakpoint and navigate
|
746
|
+
// here in the stack explorer, you can look at `errorRecordedForStack.stack`,
|
747
|
+
// which will be the captured stack when this job was scheduled.
|
748
|
+
//
|
749
|
+
invoke(target, method, args, onError, errorRecordedForStack);
|
750
|
+
}
|
751
|
+
|
752
|
+
queueIndex += 4;
|
753
|
+
}
|
754
|
+
|
755
|
+
queue._queueBeingFlushed = null;
|
756
|
+
if (numberOfQueueItems && after) {
|
757
|
+
after();
|
758
|
+
}
|
759
|
+
|
760
|
+
if ((priorQueueNameIndex = indexOfPriorQueueWithActions(this, queueNameIndex)) !== -1) {
|
761
|
+
queueNameIndex = priorQueueNameIndex;
|
692
762
|
} else {
|
693
|
-
|
694
|
-
queueNameIndex = 0;
|
763
|
+
queueNameIndex++;
|
695
764
|
}
|
696
765
|
}
|
697
766
|
}
|
698
767
|
};
|
699
768
|
|
769
|
+
function indexOfPriorQueueWithActions(daq, currentQueueIndex) {
|
770
|
+
var queueName, queue;
|
771
|
+
|
772
|
+
for (var i = 0, l = currentQueueIndex; i <= l; i++) {
|
773
|
+
queueName = daq.queueNames[i];
|
774
|
+
queue = daq.queues[queueName];
|
775
|
+
if (queue._queue.length) { return i; }
|
776
|
+
}
|
777
|
+
|
778
|
+
return -1;
|
779
|
+
}
|
780
|
+
|
700
781
|
__exports__["default"] = DeferredActionQueues;
|
701
782
|
});
|
702
783
|
define("backburner/platform",
|
@@ -714,11 +795,9 @@ define("backburner/platform",
|
|
714
795
|
__exports__.needsIETryCatchFix = needsIETryCatchFix;
|
715
796
|
});
|
716
797
|
define("backburner/queue",
|
717
|
-
["
|
718
|
-
function(
|
798
|
+
["exports"],
|
799
|
+
function(__exports__) {
|
719
800
|
"use strict";
|
720
|
-
var isString = __dependency1__.isString;
|
721
|
-
|
722
801
|
function Queue(name, options, globalOptions) {
|
723
802
|
this.name = name;
|
724
803
|
this.globalOptions = globalOptions || {};
|
@@ -816,89 +895,56 @@ define("backburner/queue",
|
|
816
895
|
};
|
817
896
|
},
|
818
897
|
|
819
|
-
|
820
|
-
|
821
|
-
method.apply(target, args);
|
822
|
-
} else {
|
823
|
-
method.call(target);
|
824
|
-
}
|
825
|
-
},
|
826
|
-
|
827
|
-
invokeWithOnError: function(target, method, args, onError, errorRecordedForStack) {
|
828
|
-
try {
|
829
|
-
if (args && args.length > 0) {
|
830
|
-
method.apply(target, args);
|
831
|
-
} else {
|
832
|
-
method.call(target);
|
833
|
-
}
|
834
|
-
} catch(error) {
|
835
|
-
onError(error, errorRecordedForStack);
|
836
|
-
}
|
837
|
-
},
|
838
|
-
|
839
|
-
flush: function(sync) {
|
898
|
+
// TODO: remove me, only being used for Ember.run.sync
|
899
|
+
flush: function() {
|
840
900
|
var queue = this._queue;
|
841
|
-
var length = queue.length;
|
842
|
-
|
843
|
-
if (length === 0) {
|
844
|
-
return;
|
845
|
-
}
|
846
|
-
|
847
901
|
var globalOptions = this.globalOptions;
|
848
902
|
var options = this.options;
|
849
903
|
var before = options && options.before;
|
850
904
|
var after = options && options.after;
|
851
|
-
var onError = globalOptions.onError || (globalOptions.onErrorTarget &&
|
852
|
-
|
853
|
-
var target, method, args, errorRecordedForStack;
|
854
|
-
var invoke = onError ? this.invokeWithOnError : this.invoke;
|
905
|
+
var onError = globalOptions.onError || (globalOptions.onErrorTarget && globalOptions.onErrorTarget[globalOptions.onErrorMethod]);
|
906
|
+
var target, method, args, stack, i, l = queue.length;
|
855
907
|
|
856
908
|
this.targetQueues = Object.create(null);
|
857
|
-
var queueItems = this._queueBeingFlushed = this._queue.slice();
|
858
|
-
this._queue = [];
|
859
|
-
|
860
|
-
if (before) {
|
861
|
-
before();
|
862
|
-
}
|
863
|
-
|
864
|
-
for (var i = 0; i < length; i += 4) {
|
865
|
-
target = queueItems[i];
|
866
|
-
method = queueItems[i+1];
|
867
|
-
args = queueItems[i+2];
|
868
|
-
errorRecordedForStack = queueItems[i+3]; // Debugging assistance
|
869
909
|
|
870
|
-
|
871
|
-
|
872
|
-
|
910
|
+
if (l && before) { before(); }
|
911
|
+
for (i = 0; i < l; i += 4) {
|
912
|
+
target = queue[i];
|
913
|
+
method = queue[i+1];
|
914
|
+
args = queue[i+2];
|
915
|
+
stack = queue[i+3]; // Debugging assistance
|
873
916
|
|
874
|
-
//
|
875
|
-
if (
|
876
|
-
|
877
|
-
|
878
|
-
|
879
|
-
|
880
|
-
|
881
|
-
|
882
|
-
|
883
|
-
|
884
|
-
|
885
|
-
|
886
|
-
|
887
|
-
|
888
|
-
|
917
|
+
// TODO: error handling
|
918
|
+
if (args && args.length > 0) {
|
919
|
+
if (onError) {
|
920
|
+
try {
|
921
|
+
method.apply(target, args);
|
922
|
+
} catch (e) {
|
923
|
+
onError(e);
|
924
|
+
}
|
925
|
+
} else {
|
926
|
+
method.apply(target, args);
|
927
|
+
}
|
928
|
+
} else {
|
929
|
+
if (onError) {
|
930
|
+
try {
|
931
|
+
method.call(target);
|
932
|
+
} catch(e) {
|
933
|
+
onError(e);
|
934
|
+
}
|
935
|
+
} else {
|
936
|
+
method.call(target);
|
937
|
+
}
|
889
938
|
}
|
890
939
|
}
|
940
|
+
if (l && after) { after(); }
|
891
941
|
|
892
|
-
if
|
893
|
-
|
894
|
-
|
895
|
-
|
896
|
-
|
897
|
-
|
898
|
-
if (sync !== false &&
|
899
|
-
this._queue.length > 0) {
|
900
|
-
// check if new items have been added
|
901
|
-
this.flush(true);
|
942
|
+
// check if new items have been added
|
943
|
+
if (queue.length > l) {
|
944
|
+
this._queue = queue.slice(l);
|
945
|
+
this.flush();
|
946
|
+
} else {
|
947
|
+
this._queue.length = 0;
|
902
948
|
}
|
903
949
|
},
|
904
950
|
|
@@ -934,11 +980,9 @@ define("backburner/queue",
|
|
934
980
|
// if not found in current queue
|
935
981
|
// could be in the queue that is being flushed
|
936
982
|
queue = this._queueBeingFlushed;
|
937
|
-
|
938
983
|
if (!queue) {
|
939
984
|
return;
|
940
985
|
}
|
941
|
-
|
942
986
|
for (i = 0, l = queue.length; i < l; i += 4) {
|
943
987
|
currentTarget = queue[i];
|
944
988
|
currentMethod = queue[i+1];
|
@@ -1862,20 +1906,18 @@ define("container/container",
|
|
1862
1906
|
return factoryInjections;
|
1863
1907
|
}
|
1864
1908
|
|
1865
|
-
|
1866
|
-
var
|
1867
|
-
var injections = [];
|
1909
|
+
function normalizeInjectionsHash(hash) {
|
1910
|
+
var injections = [];
|
1868
1911
|
|
1869
|
-
|
1870
|
-
|
1871
|
-
|
1912
|
+
for (var key in hash) {
|
1913
|
+
if (hash.hasOwnProperty(key)) {
|
1914
|
+
Ember.assert("Expected a proper full name, given '" + hash[key] + "'", validateFullName(hash[key]));
|
1872
1915
|
|
1873
|
-
|
1874
|
-
}
|
1916
|
+
addInjection(injections, key, hash[key]);
|
1875
1917
|
}
|
1918
|
+
}
|
1876
1919
|
|
1877
|
-
|
1878
|
-
};
|
1920
|
+
return injections;
|
1879
1921
|
}
|
1880
1922
|
|
1881
1923
|
function instantiate(container, fullName) {
|
@@ -1892,15 +1934,7 @@ define("container/container",
|
|
1892
1934
|
'Most likely an improperly defined class or an invalid module export.');
|
1893
1935
|
}
|
1894
1936
|
|
1895
|
-
|
1896
|
-
// Ensure that all lazy injections are valid at instantiation time
|
1897
|
-
if (typeof factory.lazyInjections === 'function') {
|
1898
|
-
lazyInjections = factory.lazyInjections();
|
1899
|
-
|
1900
|
-
validateInjections(container, normalizeInjectionsHash(lazyInjections));
|
1901
|
-
}
|
1902
|
-
}
|
1903
|
-
|
1937
|
+
|
1904
1938
|
if (typeof factory.extend === 'function') {
|
1905
1939
|
// assume the factory was extendable and is already injected
|
1906
1940
|
return factory.create();
|
@@ -2014,7 +2048,7 @@ define("ember-metal",
|
|
2014
2048
|
var EnumerableUtils = __dependency6__["default"];
|
2015
2049
|
var Cache = __dependency7__["default"];
|
2016
2050
|
var create = __dependency8__.create;
|
2017
|
-
var
|
2051
|
+
var hasPropertyAccessors = __dependency8__.hasPropertyAccessors;
|
2018
2052
|
var filter = __dependency9__.filter;
|
2019
2053
|
var forEach = __dependency9__.forEach;
|
2020
2054
|
var indexOf = __dependency9__.indexOf;
|
@@ -2101,10 +2135,8 @@ define("ember-metal",
|
|
2101
2135
|
var oneWay = __dependency29__.oneWay;
|
2102
2136
|
var run = __dependency30__["default"];
|
2103
2137
|
var libraries = __dependency31__["default"];
|
2104
|
-
var isNone = __dependency32__
|
2105
|
-
var
|
2106
|
-
var isEmpty = __dependency33__.isEmpty;
|
2107
|
-
var empty = __dependency33__.empty;
|
2138
|
+
var isNone = __dependency32__["default"];
|
2139
|
+
var isEmpty = __dependency33__["default"];
|
2108
2140
|
var isBlank = __dependency34__["default"];
|
2109
2141
|
var isPresent = __dependency35__["default"];
|
2110
2142
|
var keys = __dependency36__["default"];
|
@@ -2127,7 +2159,10 @@ define("ember-metal",
|
|
2127
2159
|
Ember.GUID_KEY = GUID_KEY;
|
2128
2160
|
Ember.create = create;
|
2129
2161
|
Ember.keys = keys;
|
2130
|
-
Ember.platform =
|
2162
|
+
Ember.platform = {
|
2163
|
+
defineProperty: defineProperty,
|
2164
|
+
hasPropertyAccessors: hasPropertyAccessors
|
2165
|
+
};
|
2131
2166
|
|
2132
2167
|
var EmberArrayPolyfills = Ember.ArrayPolyfills = {};
|
2133
2168
|
|
@@ -2254,11 +2289,7 @@ define("ember-metal",
|
|
2254
2289
|
Ember.libraries.registerCoreLibrary('Ember', Ember.VERSION);
|
2255
2290
|
|
2256
2291
|
Ember.isNone = isNone;
|
2257
|
-
Ember.none = none;
|
2258
|
-
|
2259
2292
|
Ember.isEmpty = isEmpty;
|
2260
|
-
Ember.empty = empty;
|
2261
|
-
|
2262
2293
|
Ember.isBlank = isBlank;
|
2263
2294
|
|
2264
2295
|
|
@@ -3422,21 +3453,20 @@ define("ember-metal/chains",
|
|
3422
3453
|
__exports__.ChainNode = ChainNode;
|
3423
3454
|
});
|
3424
3455
|
define("ember-metal/computed",
|
3425
|
-
["ember-metal/
|
3426
|
-
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__,
|
3456
|
+
["ember-metal/property_set","ember-metal/utils","ember-metal/expand_properties","ember-metal/error","ember-metal/properties","ember-metal/property_events","ember-metal/dependent_keys","exports"],
|
3457
|
+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __exports__) {
|
3427
3458
|
"use strict";
|
3428
|
-
var
|
3429
|
-
var
|
3430
|
-
var
|
3431
|
-
var
|
3432
|
-
var
|
3433
|
-
var
|
3434
|
-
var
|
3435
|
-
var
|
3436
|
-
var
|
3437
|
-
var
|
3438
|
-
var
|
3439
|
-
var removeDependentKeys = __dependency8__.removeDependentKeys;
|
3459
|
+
var set = __dependency1__.set;
|
3460
|
+
var meta = __dependency2__.meta;
|
3461
|
+
var inspect = __dependency2__.inspect;
|
3462
|
+
var expandProperties = __dependency3__["default"];
|
3463
|
+
var EmberError = __dependency4__["default"];
|
3464
|
+
var Descriptor = __dependency5__.Descriptor;
|
3465
|
+
var defineProperty = __dependency5__.defineProperty;
|
3466
|
+
var propertyWillChange = __dependency6__.propertyWillChange;
|
3467
|
+
var propertyDidChange = __dependency6__.propertyDidChange;
|
3468
|
+
var addDependentKeys = __dependency7__.addDependentKeys;
|
3469
|
+
var removeDependentKeys = __dependency7__.removeDependentKeys;
|
3440
3470
|
|
3441
3471
|
/**
|
3442
3472
|
@module ember-metal
|
@@ -4039,7 +4069,7 @@ define("ember-metal/computed_macros",
|
|
4039
4069
|
var set = __dependency3__.set;
|
4040
4070
|
var computed = __dependency4__.computed;
|
4041
4071
|
var isEmpty = __dependency5__["default"];
|
4042
|
-
var isNone = __dependency6__
|
4072
|
+
var isNone = __dependency6__["default"];
|
4043
4073
|
var alias = __dependency7__["default"];
|
4044
4074
|
|
4045
4075
|
/**
|
@@ -4763,7 +4793,7 @@ define("ember-metal/core",
|
|
4763
4793
|
|
4764
4794
|
@class Ember
|
4765
4795
|
@static
|
4766
|
-
@version 1.9.0-
|
4796
|
+
@version 1.9.0-beta.1
|
4767
4797
|
*/
|
4768
4798
|
|
4769
4799
|
if ('undefined' === typeof Ember) {
|
@@ -4790,10 +4820,10 @@ define("ember-metal/core",
|
|
4790
4820
|
/**
|
4791
4821
|
@property VERSION
|
4792
4822
|
@type String
|
4793
|
-
@default '1.9.0-
|
4823
|
+
@default '1.9.0-beta.1'
|
4794
4824
|
@static
|
4795
4825
|
*/
|
4796
|
-
Ember.VERSION = '1.9.0-
|
4826
|
+
Ember.VERSION = '1.9.0-beta.1';
|
4797
4827
|
|
4798
4828
|
/**
|
4799
4829
|
Standard environmental variables. You can define these in a global `EmberENV`
|
@@ -4932,10 +4962,10 @@ define("ember-metal/core",
|
|
4932
4962
|
@private
|
4933
4963
|
@return {Object}
|
4934
4964
|
*/
|
4935
|
-
|
4936
|
-
|
4937
|
-
|
4938
|
-
//TODO: ES6
|
4965
|
+
function K() { return this; }
|
4966
|
+
__exports__.K = K;
|
4967
|
+
Ember.K = K;
|
4968
|
+
//TODO: ES6 GLOBAL TODO
|
4939
4969
|
|
4940
4970
|
// Stub out the methods defined by the ember-debug package in case it's not loaded
|
4941
4971
|
|
@@ -4953,7 +4983,11 @@ define("ember-metal/core",
|
|
4953
4983
|
define("ember-metal/dependent_keys",
|
4954
4984
|
["ember-metal/platform","ember-metal/watching","exports"],
|
4955
4985
|
function(__dependency1__, __dependency2__, __exports__) {
|
4956
|
-
|
4986
|
+
// Remove "use strict"; from transpiled module until
|
4987
|
+
// https://bugs.webkit.org/show_bug.cgi?id=138038 is fixed
|
4988
|
+
//
|
4989
|
+
// REMOVE_USE_STRICT: true
|
4990
|
+
|
4957
4991
|
var o_create = __dependency1__.create;
|
4958
4992
|
var watch = __dependency2__.watch;
|
4959
4993
|
var unwatch = __dependency2__.unwatch;
|
@@ -5080,16 +5114,18 @@ define("ember-metal/deprecate_property",
|
|
5080
5114
|
__exports__.deprecateProperty = deprecateProperty;
|
5081
5115
|
});
|
5082
5116
|
define("ember-metal/dictionary",
|
5083
|
-
["exports"],
|
5084
|
-
function(__exports__) {
|
5117
|
+
["ember-metal/platform","exports"],
|
5118
|
+
function(__dependency1__, __exports__) {
|
5085
5119
|
"use strict";
|
5120
|
+
var create = __dependency1__.create;
|
5121
|
+
|
5086
5122
|
// the delete is meant to hint at runtimes that this object should remain in
|
5087
5123
|
// dictionary mode. This is clearly a runtime specific hack, but currently it
|
5088
5124
|
// appears worthwile in some usecases. Please note, these deletes do increase
|
5089
5125
|
// the cost of creation dramatically over a plain Object.create. And as this
|
5090
5126
|
// only makes sense for long-lived dictionaries that aren't instantiated often.
|
5091
5127
|
__exports__["default"] = function makeDictionary(parent) {
|
5092
|
-
var dict =
|
5128
|
+
var dict = create(parent);
|
5093
5129
|
dict['_dict'] = null;
|
5094
5130
|
delete dict['_dict'];
|
5095
5131
|
return dict;
|
@@ -5385,7 +5421,11 @@ define("ember-metal/error",
|
|
5385
5421
|
define("ember-metal/events",
|
5386
5422
|
["ember-metal/core","ember-metal/utils","ember-metal/platform","exports"],
|
5387
5423
|
function(__dependency1__, __dependency2__, __dependency3__, __exports__) {
|
5388
|
-
|
5424
|
+
// Remove "use strict"; from transpiled module until
|
5425
|
+
// https://bugs.webkit.org/show_bug.cgi?id=138038 is fixed
|
5426
|
+
//
|
5427
|
+
// REMOVE_USE_STRICT: true
|
5428
|
+
|
5389
5429
|
/**
|
5390
5430
|
@module ember-metal
|
5391
5431
|
*/
|
@@ -6261,19 +6301,17 @@ define("ember-metal/is_blank",
|
|
6261
6301
|
}
|
6262
6302
|
});
|
6263
6303
|
define("ember-metal/is_empty",
|
6264
|
-
["ember-metal/
|
6265
|
-
function(__dependency1__, __dependency2__,
|
6304
|
+
["ember-metal/property_get","ember-metal/is_none","exports"],
|
6305
|
+
function(__dependency1__, __dependency2__, __exports__) {
|
6266
6306
|
"use strict";
|
6267
|
-
var
|
6268
|
-
|
6269
|
-
var get = __dependency2__.get;
|
6270
|
-
var isNone = __dependency3__["default"];
|
6307
|
+
var get = __dependency1__.get;
|
6308
|
+
var isNone = __dependency2__["default"];
|
6271
6309
|
|
6272
6310
|
/**
|
6273
6311
|
Verifies that a value is `null` or an empty string, empty array,
|
6274
6312
|
or empty function.
|
6275
6313
|
|
6276
|
-
Constrains the rules on `Ember.isNone` by returning
|
6314
|
+
Constrains the rules on `Ember.isNone` by returning true for empty
|
6277
6315
|
string and empty arrays.
|
6278
6316
|
|
6279
6317
|
```javascript
|
@@ -6292,23 +6330,44 @@ define("ember-metal/is_empty",
|
|
6292
6330
|
@return {Boolean}
|
6293
6331
|
*/
|
6294
6332
|
function isEmpty(obj) {
|
6295
|
-
|
6296
|
-
|
6297
|
-
|
6333
|
+
var none = isNone(obj);
|
6334
|
+
if (none) {
|
6335
|
+
return none;
|
6336
|
+
}
|
6337
|
+
|
6338
|
+
if (typeof obj.size === 'number') {
|
6339
|
+
return !obj.size;
|
6340
|
+
}
|
6298
6341
|
|
6299
|
-
|
6342
|
+
var objectType = typeof obj;
|
6343
|
+
|
6344
|
+
if (objectType === 'object') {
|
6345
|
+
var size = get(obj, 'size');
|
6346
|
+
if (typeof size === 'number') {
|
6347
|
+
return !size;
|
6348
|
+
}
|
6349
|
+
}
|
6350
|
+
|
6351
|
+
if (typeof obj.length === 'number' && objectType !== 'function') {
|
6352
|
+
return !obj.length;
|
6353
|
+
}
|
6354
|
+
|
6355
|
+
if (objectType === 'object') {
|
6356
|
+
var length = get(obj, 'length');
|
6357
|
+
if (typeof length === 'number') {
|
6358
|
+
return !length;
|
6359
|
+
}
|
6360
|
+
}
|
6361
|
+
|
6362
|
+
return false;
|
6363
|
+
}
|
6300
6364
|
|
6301
6365
|
__exports__["default"] = isEmpty;
|
6302
|
-
__exports__.isEmpty = isEmpty;
|
6303
|
-
__exports__.empty = empty;
|
6304
6366
|
});
|
6305
6367
|
define("ember-metal/is_none",
|
6306
|
-
["
|
6307
|
-
function(
|
6368
|
+
["exports"],
|
6369
|
+
function(__exports__) {
|
6308
6370
|
"use strict";
|
6309
|
-
var Ember = __dependency1__["default"];
|
6310
|
-
// deprecateFunc
|
6311
|
-
|
6312
6371
|
/**
|
6313
6372
|
Returns true if the passed value is null or undefined. This avoids errors
|
6314
6373
|
from JSLint complaining about use of ==, which can be technically
|
@@ -6332,10 +6391,7 @@ define("ember-metal/is_none",
|
|
6332
6391
|
return obj === null || obj === undefined;
|
6333
6392
|
}
|
6334
6393
|
|
6335
|
-
var none = Ember.deprecateFunc("Ember.none is deprecated. Please use Ember.isNone instead.", isNone);
|
6336
|
-
__exports__.none = none;
|
6337
6394
|
__exports__["default"] = isNone;
|
6338
|
-
__exports__.isNone = isNone;
|
6339
6395
|
});
|
6340
6396
|
define("ember-metal/is_present",
|
6341
6397
|
["ember-metal/is_blank","exports"],
|
@@ -6675,7 +6731,7 @@ define("ember-metal/map",
|
|
6675
6731
|
}
|
6676
6732
|
|
6677
6733
|
function copyNull(obj) {
|
6678
|
-
var output =
|
6734
|
+
var output = create(null);
|
6679
6735
|
|
6680
6736
|
for (var prop in obj) {
|
6681
6737
|
// hasOwnPropery is not needed because obj is Object.create(null);
|
@@ -6733,7 +6789,7 @@ define("ember-metal/map",
|
|
6733
6789
|
@method clear
|
6734
6790
|
*/
|
6735
6791
|
clear: function() {
|
6736
|
-
this.presenceSet =
|
6792
|
+
this.presenceSet = create(null);
|
6737
6793
|
this.list = [];
|
6738
6794
|
this.size = 0;
|
6739
6795
|
},
|
@@ -6897,7 +6953,7 @@ define("ember-metal/map",
|
|
6897
6953
|
if (this instanceof this.constructor) {
|
6898
6954
|
this.keys = OrderedSet.create();
|
6899
6955
|
this.keys._silenceRemoveDeprecation = true;
|
6900
|
-
this.values =
|
6956
|
+
this.values = create(null);
|
6901
6957
|
this.size = 0;
|
6902
6958
|
} else {
|
6903
6959
|
missingNew("OrderedSet");
|
@@ -7059,7 +7115,7 @@ define("ember-metal/map",
|
|
7059
7115
|
*/
|
7060
7116
|
clear: function() {
|
7061
7117
|
this.keys.clear();
|
7062
|
-
this.values =
|
7118
|
+
this.values = create(null);
|
7063
7119
|
this.size = 0;
|
7064
7120
|
},
|
7065
7121
|
|
@@ -7186,7 +7242,11 @@ define("ember-metal/merge",
|
|
7186
7242
|
define("ember-metal/mixin",
|
7187
7243
|
["ember-metal/core","ember-metal/merge","ember-metal/array","ember-metal/platform","ember-metal/property_get","ember-metal/property_set","ember-metal/utils","ember-metal/expand_properties","ember-metal/properties","ember-metal/computed","ember-metal/binding","ember-metal/observer","ember-metal/events","exports"],
|
7188
7244
|
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__, __dependency13__, __exports__) {
|
7189
|
-
|
7245
|
+
// Remove "use strict"; from transpiled module until
|
7246
|
+
// https://bugs.webkit.org/show_bug.cgi?id=138038 is fixed
|
7247
|
+
//
|
7248
|
+
// REMOVE_USE_STRICT: true
|
7249
|
+
|
7190
7250
|
/**
|
7191
7251
|
@module ember
|
7192
7252
|
@submodule ember-metal
|
@@ -7207,6 +7267,7 @@ define("ember-metal/mixin",
|
|
7207
7267
|
var wrap = __dependency7__.wrap;
|
7208
7268
|
var makeArray = __dependency7__.makeArray;
|
7209
7269
|
var apply = __dependency7__.apply;
|
7270
|
+
var isArray = __dependency7__.isArray;
|
7210
7271
|
var expandProperties = __dependency8__["default"];
|
7211
7272
|
var Descriptor = __dependency9__.Descriptor;
|
7212
7273
|
var defineProperty = __dependency9__.defineProperty;
|
@@ -7389,6 +7450,9 @@ define("ember-metal/mixin",
|
|
7389
7450
|
function applyMergedProperties(obj, key, value, values) {
|
7390
7451
|
var baseValue = values[key] || obj[key];
|
7391
7452
|
|
7453
|
+
Ember.assert("You passed in `" + JSON.stringify(value) + "` as the value for `" + key +
|
7454
|
+
"` but `" + key + "` cannot be an Array", !isArray(value));
|
7455
|
+
|
7392
7456
|
if (!baseValue) { return value; }
|
7393
7457
|
|
7394
7458
|
var newBase = merge({}, baseValue);
|
@@ -7512,7 +7576,7 @@ define("ember-metal/mixin",
|
|
7512
7576
|
stream.subscribe(onNotify);
|
7513
7577
|
|
7514
7578
|
if (obj._streamBindingSubscriptions === undefined) {
|
7515
|
-
obj._streamBindingSubscriptions =
|
7579
|
+
obj._streamBindingSubscriptions = o_create(null);
|
7516
7580
|
}
|
7517
7581
|
|
7518
7582
|
obj._streamBindingSubscriptions[key] = onNotify;
|
@@ -8337,108 +8401,48 @@ define("ember-metal/path_cache",
|
|
8337
8401
|
__exports__.getTailPath = getTailPath;
|
8338
8402
|
});
|
8339
8403
|
define("ember-metal/platform",
|
8340
|
-
["exports"],
|
8341
|
-
function(__exports__) {
|
8404
|
+
["ember-metal/platform/define_property","ember-metal/platform/define_properties","ember-metal/platform/create","exports"],
|
8405
|
+
function(__dependency1__, __dependency2__, __dependency3__, __exports__) {
|
8342
8406
|
"use strict";
|
8343
|
-
|
8407
|
+
var hasES5CompliantDefineProperty = __dependency1__.hasES5CompliantDefineProperty;
|
8408
|
+
var defineProperty = __dependency1__.defineProperty;
|
8409
|
+
var defineProperties = __dependency2__["default"];
|
8410
|
+
var create = __dependency3__["default"];
|
8344
8411
|
|
8345
8412
|
/**
|
8346
8413
|
@module ember-metal
|
8347
8414
|
*/
|
8348
|
-
var defineProperty = (function checkCompliance(defineProperty) {
|
8349
|
-
if (!defineProperty) return;
|
8350
|
-
try {
|
8351
|
-
var a = 5;
|
8352
|
-
var obj = {};
|
8353
|
-
defineProperty(obj, 'a', {
|
8354
|
-
configurable: true,
|
8355
|
-
enumerable: true,
|
8356
|
-
get: function () {
|
8357
|
-
return a;
|
8358
|
-
},
|
8359
|
-
set: function (v) {
|
8360
|
-
a = v;
|
8361
|
-
}
|
8362
|
-
});
|
8363
|
-
if (obj.a !== 5) return;
|
8364
|
-
obj.a = 10;
|
8365
|
-
if (a !== 10) return;
|
8366
8415
|
|
8367
|
-
|
8368
|
-
|
8369
|
-
configurable: true,
|
8370
|
-
enumerable: false,
|
8371
|
-
writable: true,
|
8372
|
-
value: true
|
8373
|
-
});
|
8374
|
-
for (var key in obj) {
|
8375
|
-
if (key === 'a') return;
|
8376
|
-
}
|
8377
|
-
|
8378
|
-
// Detects a bug in Android <3.2 where you cannot redefine a property using
|
8379
|
-
// Object.defineProperty once accessors have already been set.
|
8380
|
-
if (obj.a !== true) return;
|
8381
|
-
|
8382
|
-
// defineProperty is compliant
|
8383
|
-
return defineProperty;
|
8384
|
-
} catch (e) {
|
8385
|
-
// IE8 defines Object.defineProperty but calling it on an Object throws
|
8386
|
-
return;
|
8387
|
-
}
|
8388
|
-
})(Object.defineProperty);
|
8389
|
-
|
8390
|
-
var hasES5CompliantDefineProperty = !!defineProperty;
|
8391
|
-
|
8392
|
-
if (hasES5CompliantDefineProperty && typeof document !== 'undefined') {
|
8393
|
-
// This is for Safari 5.0, which supports Object.defineProperty, but not
|
8394
|
-
// on DOM nodes.
|
8395
|
-
var canDefinePropertyOnDOM = (function() {
|
8396
|
-
try {
|
8397
|
-
defineProperty(document.createElement('div'), 'definePropertyOnDOM', {});
|
8398
|
-
return true;
|
8399
|
-
} catch(e) { }
|
8400
|
-
|
8401
|
-
return false;
|
8402
|
-
})();
|
8403
|
-
|
8404
|
-
if (!canDefinePropertyOnDOM) {
|
8405
|
-
defineProperty = function(obj, keyName, desc) {
|
8406
|
-
var isNode;
|
8416
|
+
var hasPropertyAccessors = hasES5CompliantDefineProperty;
|
8417
|
+
var canDefineNonEnumerableProperties = hasES5CompliantDefineProperty;
|
8407
8418
|
|
8408
|
-
|
8409
|
-
|
8410
|
-
} else {
|
8411
|
-
isNode = typeof obj === "object" && typeof obj.nodeType === "number" && typeof obj.nodeName === "string";
|
8412
|
-
}
|
8419
|
+
/**
|
8420
|
+
Platform specific methods and feature detectors needed by the framework.
|
8413
8421
|
|
8414
|
-
|
8415
|
-
|
8416
|
-
|
8417
|
-
|
8418
|
-
return Object.defineProperty(obj, keyName, desc);
|
8419
|
-
}
|
8420
|
-
};
|
8421
|
-
}
|
8422
|
-
}
|
8422
|
+
@class platform
|
8423
|
+
@namespace Ember
|
8424
|
+
@static
|
8425
|
+
*/
|
8423
8426
|
|
8424
|
-
|
8425
|
-
|
8426
|
-
|
8427
|
-
|
8428
|
-
|
8427
|
+
__exports__.create = create;
|
8428
|
+
__exports__.defineProperty = defineProperty;
|
8429
|
+
__exports__.defineProperties = defineProperties;
|
8430
|
+
__exports__.hasPropertyAccessors = hasPropertyAccessors;
|
8431
|
+
__exports__.canDefineNonEnumerableProperties = canDefineNonEnumerableProperties;
|
8432
|
+
});
|
8433
|
+
define("ember-metal/platform/create",
|
8434
|
+
["exports"],
|
8435
|
+
function(__exports__) {
|
8436
|
+
// Remove "use strict"; from transpiled module until
|
8437
|
+
// https://bugs.webkit.org/show_bug.cgi?id=138038 is fixed
|
8438
|
+
//
|
8439
|
+
// REMOVE_USE_STRICT: true
|
8429
8440
|
|
8430
|
-
|
8431
|
-
|
8432
|
-
|
8433
|
-
|
8434
|
-
|
8435
|
-
if (properties.hasOwnProperty(property) && property !== "__proto__") {
|
8436
|
-
defineProperty(object, property, properties[property]);
|
8437
|
-
}
|
8438
|
-
}
|
8439
|
-
return object;
|
8440
|
-
};
|
8441
|
-
}
|
8441
|
+
/**
|
8442
|
+
@class platform
|
8443
|
+
@namespace Ember
|
8444
|
+
@static
|
8445
|
+
*/
|
8442
8446
|
|
8443
8447
|
/**
|
8444
8448
|
Identical to `Object.create()`. Implements if not available natively.
|
@@ -8520,55 +8524,152 @@ define("ember-metal/platform",
|
|
8520
8524
|
Object.defineProperties(object, properties);
|
8521
8525
|
}
|
8522
8526
|
|
8523
|
-
return object;
|
8524
|
-
};
|
8525
|
-
} else {
|
8526
|
-
create = Object.create;
|
8527
|
-
}
|
8527
|
+
return object;
|
8528
|
+
};
|
8529
|
+
} else {
|
8530
|
+
create = Object.create;
|
8531
|
+
}
|
8532
|
+
|
8533
|
+
__exports__["default"] = create;
|
8534
|
+
});
|
8535
|
+
define("ember-metal/platform/define_properties",
|
8536
|
+
["ember-metal/platform/define_property","exports"],
|
8537
|
+
function(__dependency1__, __exports__) {
|
8538
|
+
"use strict";
|
8539
|
+
var defineProperty = __dependency1__.defineProperty;
|
8540
|
+
|
8541
|
+
var defineProperties = Object.defineProperties;
|
8542
|
+
|
8543
|
+
// ES5 15.2.3.7
|
8544
|
+
// http://es5.github.com/#x15.2.3.7
|
8545
|
+
if (!defineProperties) {
|
8546
|
+
defineProperties = function defineProperties(object, properties) {
|
8547
|
+
for (var property in properties) {
|
8548
|
+
if (properties.hasOwnProperty(property) && property !== "__proto__") {
|
8549
|
+
defineProperty(object, property, properties[property]);
|
8550
|
+
}
|
8551
|
+
}
|
8552
|
+
return object;
|
8553
|
+
};
|
8554
|
+
|
8555
|
+
Object.defineProperties = defineProperties;
|
8556
|
+
}
|
8557
|
+
|
8558
|
+
__exports__["default"] = defineProperties;
|
8559
|
+
});
|
8560
|
+
define("ember-metal/platform/define_property",
|
8561
|
+
["exports"],
|
8562
|
+
function(__exports__) {
|
8563
|
+
"use strict";
|
8564
|
+
/*globals Node */
|
8565
|
+
|
8566
|
+
/**
|
8567
|
+
@class platform
|
8568
|
+
@namespace Ember
|
8569
|
+
@static
|
8570
|
+
*/
|
8571
|
+
|
8572
|
+
/**
|
8573
|
+
Set to true if the platform supports native getters and setters.
|
8574
|
+
|
8575
|
+
@property hasPropertyAccessors
|
8576
|
+
@final
|
8577
|
+
*/
|
8578
|
+
|
8579
|
+
/**
|
8580
|
+
Identical to `Object.defineProperty()`. Implements as much functionality
|
8581
|
+
as possible if not available natively.
|
8582
|
+
|
8583
|
+
@method defineProperty
|
8584
|
+
@param {Object} obj The object to modify
|
8585
|
+
@param {String} keyName property name to modify
|
8586
|
+
@param {Object} desc descriptor hash
|
8587
|
+
@return {void}
|
8588
|
+
*/
|
8589
|
+
var defineProperty = (function checkCompliance(defineProperty) {
|
8590
|
+
if (!defineProperty) return;
|
8591
|
+
try {
|
8592
|
+
var a = 5;
|
8593
|
+
var obj = {};
|
8594
|
+
defineProperty(obj, 'a', {
|
8595
|
+
configurable: true,
|
8596
|
+
enumerable: true,
|
8597
|
+
get: function () {
|
8598
|
+
return a;
|
8599
|
+
},
|
8600
|
+
set: function (v) {
|
8601
|
+
a = v;
|
8602
|
+
}
|
8603
|
+
});
|
8604
|
+
if (obj.a !== 5) return;
|
8605
|
+
obj.a = 10;
|
8606
|
+
if (a !== 10) return;
|
8607
|
+
|
8608
|
+
// check non-enumerability
|
8609
|
+
defineProperty(obj, 'a', {
|
8610
|
+
configurable: true,
|
8611
|
+
enumerable: false,
|
8612
|
+
writable: true,
|
8613
|
+
value: true
|
8614
|
+
});
|
8615
|
+
for (var key in obj) {
|
8616
|
+
if (key === 'a') return;
|
8617
|
+
}
|
8618
|
+
|
8619
|
+
// Detects a bug in Android <3.2 where you cannot redefine a property using
|
8620
|
+
// Object.defineProperty once accessors have already been set.
|
8621
|
+
if (obj.a !== true) return;
|
8528
8622
|
|
8529
|
-
|
8530
|
-
|
8623
|
+
// defineProperty is compliant
|
8624
|
+
return defineProperty;
|
8625
|
+
} catch (e) {
|
8626
|
+
// IE8 defines Object.defineProperty but calling it on an Object throws
|
8627
|
+
return;
|
8628
|
+
}
|
8629
|
+
})(Object.defineProperty);
|
8531
8630
|
|
8532
|
-
|
8533
|
-
@class platform
|
8534
|
-
@namespace Ember
|
8535
|
-
*/
|
8631
|
+
var hasES5CompliantDefineProperty = !!defineProperty;
|
8536
8632
|
|
8537
|
-
|
8538
|
-
|
8633
|
+
if (hasES5CompliantDefineProperty && typeof document !== 'undefined') {
|
8634
|
+
// This is for Safari 5.0, which supports Object.defineProperty, but not
|
8635
|
+
// on DOM nodes.
|
8636
|
+
var canDefinePropertyOnDOM = (function() {
|
8637
|
+
try {
|
8638
|
+
defineProperty(document.createElement('div'), 'definePropertyOnDOM', {});
|
8639
|
+
return true;
|
8640
|
+
} catch(e) { }
|
8539
8641
|
|
8540
|
-
|
8541
|
-
|
8542
|
-
@static
|
8543
|
-
*/
|
8544
|
-
// TODO remove this
|
8545
|
-
var platform = {};
|
8642
|
+
return false;
|
8643
|
+
})();
|
8546
8644
|
|
8547
|
-
|
8548
|
-
|
8549
|
-
|
8645
|
+
if (!canDefinePropertyOnDOM) {
|
8646
|
+
defineProperty = function(obj, keyName, desc) {
|
8647
|
+
var isNode;
|
8550
8648
|
|
8551
|
-
|
8552
|
-
|
8553
|
-
|
8554
|
-
|
8555
|
-
|
8556
|
-
*/
|
8557
|
-
platform.defineProperty = defineProperty;
|
8649
|
+
if (typeof Node === "object") {
|
8650
|
+
isNode = obj instanceof Node;
|
8651
|
+
} else {
|
8652
|
+
isNode = typeof obj === "object" && typeof obj.nodeType === "number" && typeof obj.nodeName === "string";
|
8653
|
+
}
|
8558
8654
|
|
8559
|
-
|
8560
|
-
|
8655
|
+
if (isNode) {
|
8656
|
+
// TODO: Should we have a warning here?
|
8657
|
+
return (obj[keyName] = desc.value);
|
8658
|
+
} else {
|
8659
|
+
return Object.defineProperty(obj, keyName, desc);
|
8660
|
+
}
|
8661
|
+
};
|
8662
|
+
}
|
8663
|
+
}
|
8561
8664
|
|
8562
|
-
|
8563
|
-
|
8564
|
-
|
8565
|
-
|
8665
|
+
if (!hasES5CompliantDefineProperty) {
|
8666
|
+
defineProperty = function defineProperty(obj, keyName, desc) {
|
8667
|
+
if (!desc.get) { obj[keyName] = desc.value; }
|
8668
|
+
};
|
8669
|
+
}
|
8566
8670
|
|
8567
|
-
__exports__.
|
8671
|
+
__exports__.hasES5CompliantDefineProperty = hasES5CompliantDefineProperty;
|
8568
8672
|
__exports__.defineProperty = defineProperty;
|
8569
|
-
__exports__.hasPropertyAccessors = hasPropertyAccessors;
|
8570
|
-
__exports__.canDefineNonEnumerableProperties = canDefineNonEnumerableProperties;
|
8571
|
-
__exports__.platform = platform;
|
8572
8673
|
});
|
8573
8674
|
define("ember-metal/properties",
|
8574
8675
|
["ember-metal/core","ember-metal/utils","ember-metal/platform","ember-metal/property_events","exports"],
|
@@ -8604,8 +8705,10 @@ define("ember-metal/properties",
|
|
8604
8705
|
// DEFINING PROPERTIES API
|
8605
8706
|
//
|
8606
8707
|
|
8607
|
-
function MANDATORY_SETTER_FUNCTION(
|
8608
|
-
|
8708
|
+
function MANDATORY_SETTER_FUNCTION(name) {
|
8709
|
+
return function SETTER_FUNCTION(value) {
|
8710
|
+
Ember.assert("You must use Ember.set() to set the `" + name + "` property (of " + this + ") to `" + value + "`.", false);
|
8711
|
+
};
|
8609
8712
|
}
|
8610
8713
|
|
8611
8714
|
__exports__.MANDATORY_SETTER_FUNCTION = MANDATORY_SETTER_FUNCTION;function DEFAULT_GETTER_FUNCTION(name) {
|
@@ -8701,7 +8804,7 @@ define("ember-metal/properties",
|
|
8701
8804
|
objectDefineProperty(obj, keyName, {
|
8702
8805
|
configurable: true,
|
8703
8806
|
enumerable: true,
|
8704
|
-
set: MANDATORY_SETTER_FUNCTION,
|
8807
|
+
set: MANDATORY_SETTER_FUNCTION(keyName),
|
8705
8808
|
get: DEFAULT_GETTER_FUNCTION(keyName)
|
8706
8809
|
});
|
8707
8810
|
} else {
|
@@ -9251,7 +9354,10 @@ define("ember-metal/property_set",
|
|
9251
9354
|
propertyWillChange(obj, keyName);
|
9252
9355
|
|
9253
9356
|
if (hasPropertyAccessors) {
|
9254
|
-
if (
|
9357
|
+
if (
|
9358
|
+
(currentValue === undefined && !(keyName in obj)) ||
|
9359
|
+
!Object.prototype.propertyIsEnumerable.call(obj, keyName)
|
9360
|
+
) {
|
9255
9361
|
defineProperty(obj, keyName, null, value); // setup mandatory setter
|
9256
9362
|
} else {
|
9257
9363
|
meta.values[keyName] = value;
|
@@ -9980,22 +10086,23 @@ define("ember-metal/set_properties",
|
|
9980
10086
|
```
|
9981
10087
|
|
9982
10088
|
@method setProperties
|
9983
|
-
@param
|
9984
|
-
@param {Object}
|
9985
|
-
@return
|
10089
|
+
@param obj
|
10090
|
+
@param {Object} properties
|
10091
|
+
@return obj
|
9986
10092
|
*/
|
9987
|
-
__exports__["default"] = function setProperties(
|
10093
|
+
__exports__["default"] = function setProperties(obj, properties) {
|
10094
|
+
if (!properties || typeof properties !== "object") { return obj; }
|
9988
10095
|
changeProperties(function() {
|
9989
|
-
var props = keys(
|
9990
|
-
var
|
10096
|
+
var props = keys(properties);
|
10097
|
+
var propertyName;
|
9991
10098
|
|
9992
10099
|
for (var i = 0, l = props.length; i < l; i++) {
|
9993
|
-
|
10100
|
+
propertyName = props[i];
|
9994
10101
|
|
9995
|
-
set(
|
10102
|
+
set(obj, propertyName, properties[propertyName]);
|
9996
10103
|
}
|
9997
10104
|
});
|
9998
|
-
return
|
10105
|
+
return obj;
|
9999
10106
|
}
|
10000
10107
|
});
|
10001
10108
|
define("ember-metal/streams/read",
|
@@ -10094,11 +10201,12 @@ define("ember-metal/streams/simple",
|
|
10094
10201
|
__exports__["default"] = SimpleStream;
|
10095
10202
|
});
|
10096
10203
|
define("ember-metal/streams/stream",
|
10097
|
-
["ember-metal/path_cache","exports"],
|
10098
|
-
function(__dependency1__, __exports__) {
|
10204
|
+
["ember-metal/platform","ember-metal/path_cache","exports"],
|
10205
|
+
function(__dependency1__, __dependency2__, __exports__) {
|
10099
10206
|
"use strict";
|
10100
|
-
var
|
10101
|
-
var
|
10207
|
+
var create = __dependency1__.create;
|
10208
|
+
var getFirstKey = __dependency2__.getFirstKey;
|
10209
|
+
var getTailPath = __dependency2__.getTailPath;
|
10102
10210
|
|
10103
10211
|
var NIL = function NIL(){};
|
10104
10212
|
|
@@ -10120,7 +10228,7 @@ define("ember-metal/streams/stream",
|
|
10120
10228
|
var tailPath = getTailPath(path);
|
10121
10229
|
|
10122
10230
|
if (this.children === undefined) {
|
10123
|
-
this.children =
|
10231
|
+
this.children = create(null);
|
10124
10232
|
}
|
10125
10233
|
|
10126
10234
|
var keyStream = this.children[firstKey];
|
@@ -10310,7 +10418,11 @@ define("ember-metal/streams/stream_binding",
|
|
10310
10418
|
define("ember-metal/utils",
|
10311
10419
|
["ember-metal/core","ember-metal/platform","ember-metal/array","exports"],
|
10312
10420
|
function(__dependency1__, __dependency2__, __dependency3__, __exports__) {
|
10313
|
-
|
10421
|
+
// Remove "use strict"; from transpiled module until
|
10422
|
+
// https://bugs.webkit.org/show_bug.cgi?id=138038 is fixed
|
10423
|
+
//
|
10424
|
+
// REMOVE_USE_STRICT: true
|
10425
|
+
|
10314
10426
|
var Ember = __dependency1__["default"];
|
10315
10427
|
var o_defineProperty = __dependency2__.defineProperty;
|
10316
10428
|
var canDefineNonEnumerableProperties = __dependency2__.canDefineNonEnumerableProperties;
|
@@ -10781,8 +10893,8 @@ define("ember-metal/utils",
|
|
10781
10893
|
|
10782
10894
|
/**
|
10783
10895
|
Forces the passed object to be part of an array. If the object is already
|
10784
|
-
an array or array-like,
|
10785
|
-
an array. If obj is `null` or `undefined`,
|
10896
|
+
an array or array-like, it will return the object. Otherwise, it will add the object to
|
10897
|
+
an array. If obj is `null` or `undefined`, it will return an empty array.
|
10786
10898
|
|
10787
10899
|
```javascript
|
10788
10900
|
Ember.makeArray(); // []
|
@@ -11221,13 +11333,16 @@ define("ember-metal/watch_key",
|
|
11221
11333
|
__exports__.watchKey = watchKey;
|
11222
11334
|
|
11223
11335
|
var handleMandatorySetter = function handleMandatorySetter(m, obj, keyName) {
|
11336
|
+
var descriptor = Object.getOwnPropertyDescriptor && Object.getOwnPropertyDescriptor(obj, keyName);
|
11337
|
+
var configurable = descriptor ? descriptor.configurable : true;
|
11338
|
+
|
11224
11339
|
// this x in Y deopts, so keeping it in this function is better;
|
11225
|
-
if (keyName in obj) {
|
11340
|
+
if (configurable && keyName in obj) {
|
11226
11341
|
m.values[keyName] = obj[keyName];
|
11227
11342
|
o_defineProperty(obj, keyName, {
|
11228
11343
|
configurable: true,
|
11229
|
-
enumerable:
|
11230
|
-
set: MANDATORY_SETTER_FUNCTION,
|
11344
|
+
enumerable: Object.prototype.propertyIsEnumerable.call(obj, keyName),
|
11345
|
+
set: MANDATORY_SETTER_FUNCTION(keyName),
|
11231
11346
|
get: DEFAULT_GETTER_FUNCTION(keyName)
|
11232
11347
|
});
|
11233
11348
|
}
|
@@ -11251,7 +11366,7 @@ define("ember-metal/watch_key",
|
|
11251
11366
|
if (hasPropertyAccessors && keyName in obj) {
|
11252
11367
|
o_defineProperty(obj, keyName, {
|
11253
11368
|
configurable: true,
|
11254
|
-
enumerable:
|
11369
|
+
enumerable: Object.prototype.propertyIsEnumerable.call(obj, keyName),
|
11255
11370
|
set: function(val) {
|
11256
11371
|
// redefine to set as enumerable
|
11257
11372
|
o_defineProperty(obj, keyName, {
|
@@ -11332,9 +11447,7 @@ define("ember-metal/watching",
|
|
11332
11447
|
@module ember-metal
|
11333
11448
|
*/
|
11334
11449
|
|
11335
|
-
var GUID_KEY = __dependency1__.GUID_KEY;
|
11336
11450
|
var typeOf = __dependency1__.typeOf;
|
11337
|
-
var generateGuid = __dependency1__.generateGuid;
|
11338
11451
|
var removeChainWatcher = __dependency2__.removeChainWatcher;
|
11339
11452
|
var flushPendingChains = __dependency2__.flushPendingChains;
|
11340
11453
|
var watchKey = __dependency3__.watchKey;
|
@@ -11388,31 +11501,7 @@ define("ember-metal/watching",
|
|
11388
11501
|
}
|
11389
11502
|
}
|
11390
11503
|
|
11391
|
-
__exports__.unwatch = unwatch
|
11392
|
-
Call on an object when you first beget it from another object. This will
|
11393
|
-
setup any chained watchers on the object instance as needed. This method is
|
11394
|
-
safe to call multiple times.
|
11395
|
-
|
11396
|
-
@private
|
11397
|
-
@method rewatch
|
11398
|
-
@for Ember
|
11399
|
-
@param obj
|
11400
|
-
*/
|
11401
|
-
function rewatch(obj) {
|
11402
|
-
var m = obj['__ember_meta__'], chains = m && m.chains;
|
11403
|
-
|
11404
|
-
// make sure the object has its own guid.
|
11405
|
-
if (GUID_KEY in obj && !obj.hasOwnProperty(GUID_KEY)) {
|
11406
|
-
generateGuid(obj);
|
11407
|
-
}
|
11408
|
-
|
11409
|
-
// make sure any chained watchers update.
|
11410
|
-
if (chains && chains.value() !== obj) {
|
11411
|
-
m.chains = chains.copy(obj);
|
11412
|
-
}
|
11413
|
-
}
|
11414
|
-
|
11415
|
-
__exports__.rewatch = rewatch;var NODE_STACK = [];
|
11504
|
+
__exports__.unwatch = unwatch;var NODE_STACK = [];
|
11416
11505
|
|
11417
11506
|
/**
|
11418
11507
|
Tears down the meta on an object so that it can be garbage collected.
|
@@ -11550,10 +11639,7 @@ define("ember-runtime",
|
|
11550
11639
|
Ember.copy = copy;
|
11551
11640
|
Ember.isEqual = isEqual;
|
11552
11641
|
|
11553
|
-
|
11554
|
-
Ember.inject = inject;
|
11555
|
-
}
|
11556
|
-
|
11642
|
+
|
11557
11643
|
Ember.Array = EmberArray;
|
11558
11644
|
|
11559
11645
|
Ember.Comparable = Comparable;
|
@@ -11625,10 +11711,7 @@ define("ember-runtime",
|
|
11625
11711
|
Ember.Controller = Controller;
|
11626
11712
|
Ember.ControllerMixin = ControllerMixin;
|
11627
11713
|
|
11628
|
-
|
11629
|
-
Ember.Service = Service;
|
11630
|
-
}
|
11631
|
-
|
11714
|
+
|
11632
11715
|
Ember._ProxyMixin = _ProxyMixin;
|
11633
11716
|
|
11634
11717
|
Ember.RSVP = RSVP;
|
@@ -12218,6 +12301,7 @@ define("ember-runtime/computed/reduce_computed",
|
|
12218
12301
|
this.setValue(removedItem.call(
|
12219
12302
|
this.instanceMeta.context, this.getValue(), item, changeMeta, this.instanceMeta.sugarMeta));
|
12220
12303
|
}
|
12304
|
+
this.callbacks.flushedChanges.call(this.instanceMeta.context, this.getValue(), this.instanceMeta.sugarMeta);
|
12221
12305
|
},
|
12222
12306
|
|
12223
12307
|
dependentArrayDidChange: function (dependentArray, index, removedCount, addedCount) {
|
@@ -12249,7 +12333,7 @@ define("ember-runtime/computed/reduce_computed",
|
|
12249
12333
|
this.setValue(addedItem.call(
|
12250
12334
|
this.instanceMeta.context, this.getValue(), item, changeMeta, this.instanceMeta.sugarMeta));
|
12251
12335
|
}, this);
|
12252
|
-
|
12336
|
+
this.callbacks.flushedChanges.call(this.instanceMeta.context, this.getValue(), this.instanceMeta.sugarMeta);
|
12253
12337
|
this.trackAdd(dependentKey, normalizedIndex, observerContexts);
|
12254
12338
|
},
|
12255
12339
|
|
@@ -12293,6 +12377,7 @@ define("ember-runtime/computed/reduce_computed",
|
|
12293
12377
|
}
|
12294
12378
|
|
12295
12379
|
this.changedItems = {};
|
12380
|
+
this.callbacks.flushedChanges.call(this.instanceMeta.context, this.getValue(), this.instanceMeta.sugarMeta);
|
12296
12381
|
}
|
12297
12382
|
};
|
12298
12383
|
|
@@ -12329,6 +12414,7 @@ define("ember-runtime/computed/reduce_computed",
|
|
12329
12414
|
meta.setValue( callbacks.addedItem.call(
|
12330
12415
|
this, meta.getValue(), item, new ChangeMeta(dependentArray, item, index, propertyName, cp, dependentArray.length), meta.sugarMeta));
|
12331
12416
|
}, this);
|
12417
|
+
callbacks.flushedChanges.call(this, meta.getValue(), meta.sugarMeta);
|
12332
12418
|
}
|
12333
12419
|
|
12334
12420
|
function reset(cp, propertyName) {
|
@@ -12504,7 +12590,8 @@ define("ember-runtime/computed/reduce_computed",
|
|
12504
12590
|
|
12505
12591
|
this.callbacks = {
|
12506
12592
|
removedItem: options.removedItem || defaultCallback,
|
12507
|
-
addedItem: options.addedItem || defaultCallback
|
12593
|
+
addedItem: options.addedItem || defaultCallback,
|
12594
|
+
flushedChanges: options.flushedChanges || defaultCallback
|
12508
12595
|
};
|
12509
12596
|
}
|
12510
12597
|
|
@@ -12797,8 +12884,8 @@ define("ember-runtime/computed/reduce_computed",
|
|
12797
12884
|
__exports__.reduceComputed = reduceComputed;
|
12798
12885
|
});
|
12799
12886
|
define("ember-runtime/computed/reduce_computed_macros",
|
12800
|
-
["ember-metal/core","ember-metal/
|
12801
|
-
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__,
|
12887
|
+
["ember-metal/core","ember-metal/property_get","ember-metal/utils","ember-metal/error","ember-metal/enumerable_utils","ember-metal/run_loop","ember-metal/observer","ember-runtime/computed/array_computed","ember-runtime/computed/reduce_computed","ember-runtime/system/subarray","ember-metal/keys","ember-runtime/compare","exports"],
|
12888
|
+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__, __exports__) {
|
12802
12889
|
"use strict";
|
12803
12890
|
/**
|
12804
12891
|
@module ember
|
@@ -12807,20 +12894,18 @@ define("ember-runtime/computed/reduce_computed_macros",
|
|
12807
12894
|
|
12808
12895
|
var Ember = __dependency1__["default"];
|
12809
12896
|
// Ember.assert
|
12810
|
-
var
|
12811
|
-
var
|
12812
|
-
var
|
12813
|
-
var
|
12814
|
-
var
|
12815
|
-
var
|
12816
|
-
var
|
12817
|
-
var
|
12818
|
-
var
|
12819
|
-
var
|
12820
|
-
var
|
12821
|
-
var
|
12822
|
-
var keys = __dependency13__["default"];
|
12823
|
-
var compare = __dependency14__["default"];
|
12897
|
+
var get = __dependency2__.get;
|
12898
|
+
var isArray = __dependency3__.isArray;
|
12899
|
+
var guidFor = __dependency3__.guidFor;
|
12900
|
+
var EmberError = __dependency4__["default"];
|
12901
|
+
var forEach = __dependency5__.forEach;
|
12902
|
+
var run = __dependency6__["default"];
|
12903
|
+
var addObserver = __dependency7__.addObserver;
|
12904
|
+
var arrayComputed = __dependency8__.arrayComputed;
|
12905
|
+
var reduceComputed = __dependency9__.reduceComputed;
|
12906
|
+
var SubArray = __dependency10__["default"];
|
12907
|
+
var keys = __dependency11__["default"];
|
12908
|
+
var compare = __dependency12__["default"];
|
12824
12909
|
|
12825
12910
|
var a_slice = [].slice;
|
12826
12911
|
|
@@ -13399,8 +13484,8 @@ define("ember-runtime/computed/reduce_computed_macros",
|
|
13399
13484
|
mid = low + Math.floor((high - low) / 2);
|
13400
13485
|
midItem = array.objectAt(mid);
|
13401
13486
|
|
13402
|
-
guidMid =
|
13403
|
-
guidItem =
|
13487
|
+
guidMid = guidFor(midItem);
|
13488
|
+
guidItem = guidFor(item);
|
13404
13489
|
|
13405
13490
|
if (guidMid === guidItem) {
|
13406
13491
|
return mid;
|
@@ -13420,19 +13505,9 @@ define("ember-runtime/computed/reduce_computed_macros",
|
|
13420
13505
|
}
|
13421
13506
|
|
13422
13507
|
return mid;
|
13423
|
-
|
13424
|
-
function _guidFor(item) {
|
13425
|
-
if (SearchProxy.detectInstance(item)) {
|
13426
|
-
return guidFor(get(item, 'content'));
|
13427
|
-
}
|
13428
|
-
|
13429
|
-
return guidFor(item);
|
13430
|
-
}
|
13431
13508
|
}
|
13432
13509
|
|
13433
13510
|
|
13434
|
-
var SearchProxy = ObjectProxy.extend();
|
13435
|
-
|
13436
13511
|
/**
|
13437
13512
|
A computed property which returns a new array with all the
|
13438
13513
|
properties from the first dependent array sorted based on a property
|
@@ -13501,17 +13576,53 @@ define("ember-runtime/computed/reduce_computed_macros",
|
|
13501
13576
|
Ember.assert('Ember.computed.sort requires two arguments: an array key to sort and ' +
|
13502
13577
|
'either a sort properties key or sort function', arguments.length === 2);
|
13503
13578
|
|
13504
|
-
var initFn, sortPropertiesKey;
|
13505
|
-
|
13506
13579
|
if (typeof sortDefinition === 'function') {
|
13507
|
-
|
13508
|
-
instanceMeta.order = sortDefinition;
|
13509
|
-
instanceMeta.binarySearch = binarySearch;
|
13510
|
-
};
|
13580
|
+
return customSort(itemsKey, sortDefinition);
|
13511
13581
|
} else {
|
13512
|
-
|
13582
|
+
return propertySort(itemsKey, sortDefinition);
|
13583
|
+
}
|
13584
|
+
}
|
13585
|
+
|
13586
|
+
__exports__.sort = sort;function customSort(itemsKey, comparator) {
|
13587
|
+
return arrayComputed(itemsKey, {
|
13588
|
+
initialize: function (array, changeMeta, instanceMeta) {
|
13589
|
+
instanceMeta.order = comparator;
|
13590
|
+
instanceMeta.binarySearch = binarySearch;
|
13591
|
+
instanceMeta.waitingInsertions = [];
|
13592
|
+
instanceMeta.insertWaiting = function() {
|
13593
|
+
var index, item;
|
13594
|
+
var waiting = instanceMeta.waitingInsertions;
|
13595
|
+
instanceMeta.waitingInsertions = [];
|
13596
|
+
for (var i=0; i<waiting.length; i++) {
|
13597
|
+
item = waiting[i];
|
13598
|
+
index = instanceMeta.binarySearch(array, item);
|
13599
|
+
array.insertAt(index, item);
|
13600
|
+
}
|
13601
|
+
};
|
13602
|
+
instanceMeta.insertLater = function(item) {
|
13603
|
+
this.waitingInsertions.push(item);
|
13604
|
+
};
|
13605
|
+
},
|
13606
|
+
|
13607
|
+
addedItem: function (array, item, changeMeta, instanceMeta) {
|
13608
|
+
instanceMeta.insertLater(item);
|
13609
|
+
return array;
|
13610
|
+
},
|
13611
|
+
|
13612
|
+
removedItem: function (array, item, changeMeta, instanceMeta) {
|
13613
|
+
array.removeObject(item);
|
13614
|
+
return array;
|
13615
|
+
},
|
13616
|
+
|
13617
|
+
flushedChanges: function(array, instanceMeta) {
|
13618
|
+
instanceMeta.insertWaiting();
|
13619
|
+
}
|
13620
|
+
});
|
13621
|
+
}
|
13513
13622
|
|
13514
|
-
|
13623
|
+
function propertySort(itemsKey, sortPropertiesKey) {
|
13624
|
+
return arrayComputed(itemsKey, {
|
13625
|
+
initialize: function (array, changeMeta, instanceMeta) {
|
13515
13626
|
function setupSortProperties() {
|
13516
13627
|
var sortPropertyDefinitions = get(this, sortPropertiesKey);
|
13517
13628
|
var sortProperties = instanceMeta.sortProperties = [];
|
@@ -13519,7 +13630,7 @@ define("ember-runtime/computed/reduce_computed_macros",
|
|
13519
13630
|
var sortProperty, idx, asc;
|
13520
13631
|
|
13521
13632
|
Ember.assert('Cannot sort: \'' + sortPropertiesKey + '\' is not an array.',
|
13522
|
-
|
13633
|
+
isArray(sortPropertyDefinitions));
|
13523
13634
|
|
13524
13635
|
changeMeta.property.clearItemPropertyKeys(itemsKey);
|
13525
13636
|
|
@@ -13553,12 +13664,14 @@ define("ember-runtime/computed/reduce_computed_macros",
|
|
13553
13664
|
setupSortProperties.call(this);
|
13554
13665
|
|
13555
13666
|
instanceMeta.order = function (itemA, itemB) {
|
13556
|
-
var isProxy = itemB instanceof SearchProxy;
|
13557
13667
|
var sortProperty, result, asc;
|
13668
|
+
var keyA = this.keyFor(itemA);
|
13669
|
+
var keyB = this.keyFor(itemB);
|
13558
13670
|
|
13559
13671
|
for (var i = 0; i < this.sortProperties.length; ++i) {
|
13560
13672
|
sortProperty = this.sortProperties[i];
|
13561
|
-
|
13673
|
+
|
13674
|
+
result = compare(keyA[sortProperty], keyB[sortProperty]);
|
13562
13675
|
|
13563
13676
|
if (result !== 0) {
|
13564
13677
|
asc = this.sortPropertyAscending[sortProperty];
|
@@ -13570,39 +13683,46 @@ define("ember-runtime/computed/reduce_computed_macros",
|
|
13570
13683
|
};
|
13571
13684
|
|
13572
13685
|
instanceMeta.binarySearch = binarySearch;
|
13573
|
-
|
13574
|
-
|
13575
|
-
|
13576
|
-
return arrayComputed(itemsKey, {
|
13577
|
-
initialize: initFn,
|
13686
|
+
setupKeyCache(instanceMeta);
|
13687
|
+
},
|
13578
13688
|
|
13579
13689
|
addedItem: function (array, item, changeMeta, instanceMeta) {
|
13580
13690
|
var index = instanceMeta.binarySearch(array, item);
|
13581
13691
|
array.insertAt(index, item);
|
13582
|
-
|
13583
13692
|
return array;
|
13584
13693
|
},
|
13585
13694
|
|
13586
13695
|
removedItem: function (array, item, changeMeta, instanceMeta) {
|
13587
|
-
var
|
13588
|
-
|
13589
|
-
if (changeMeta.previousValues) {
|
13590
|
-
proxyProperties = merge({ content: item }, changeMeta.previousValues);
|
13591
|
-
|
13592
|
-
searchItem = SearchProxy.create(proxyProperties);
|
13593
|
-
} else {
|
13594
|
-
searchItem = item;
|
13595
|
-
}
|
13596
|
-
|
13597
|
-
index = instanceMeta.binarySearch(array, searchItem);
|
13696
|
+
var index = instanceMeta.binarySearch(array, item);
|
13598
13697
|
array.removeAt(index);
|
13599
|
-
|
13698
|
+
instanceMeta.dropKeyFor(item);
|
13600
13699
|
return array;
|
13601
13700
|
}
|
13602
13701
|
});
|
13603
13702
|
}
|
13604
13703
|
|
13605
|
-
|
13704
|
+
function setupKeyCache(instanceMeta) {
|
13705
|
+
instanceMeta.keyFor = function(item) {
|
13706
|
+
var guid = guidFor(item);
|
13707
|
+
if (this.keyCache[guid]) {
|
13708
|
+
return this.keyCache[guid];
|
13709
|
+
}
|
13710
|
+
var sortProperty;
|
13711
|
+
var key = {};
|
13712
|
+
for (var i = 0; i < this.sortProperties.length; ++i) {
|
13713
|
+
sortProperty = this.sortProperties[i];
|
13714
|
+
key[sortProperty] = get(item, sortProperty);
|
13715
|
+
}
|
13716
|
+
return this.keyCache[guid] = key;
|
13717
|
+
};
|
13718
|
+
|
13719
|
+
instanceMeta.dropKeyFor = function(item) {
|
13720
|
+
var guid = guidFor(item);
|
13721
|
+
this.keyCache[guid] = null;
|
13722
|
+
};
|
13723
|
+
|
13724
|
+
instanceMeta.keyCache = {};
|
13725
|
+
}
|
13606
13726
|
});
|
13607
13727
|
define("ember-runtime/controllers/array_controller",
|
13608
13728
|
["ember-metal/core","ember-metal/property_get","ember-metal/enumerable_utils","ember-runtime/system/array_proxy","ember-runtime/mixins/sortable","ember-runtime/mixins/controller","ember-metal/computed","ember-metal/error","exports"],
|
@@ -13848,28 +13968,7 @@ define("ember-runtime/controllers/array_controller",
|
|
13848
13968
|
parentController = this;
|
13849
13969
|
}
|
13850
13970
|
|
13851
|
-
|
13852
|
-
options = {
|
13853
|
-
target: parentController,
|
13854
|
-
parentController: parentController,
|
13855
|
-
model: object
|
13856
|
-
};
|
13857
|
-
|
13858
|
-
if (typeof controllerClass === 'string') {
|
13859
|
-
fullName = 'controller:' + controllerClass;
|
13860
|
-
|
13861
|
-
if (!container.has(fullName)) {
|
13862
|
-
throw new EmberError('Could not resolve itemController: "' + controllerClass + '"');
|
13863
|
-
}
|
13864
|
-
|
13865
|
-
subControllerFactory = container.lookupFactory(fullName);
|
13866
|
-
} else {
|
13867
|
-
subControllerFactory = controllerClass;
|
13868
|
-
options.container = container;
|
13869
|
-
}
|
13870
|
-
|
13871
|
-
subController = subControllerFactory.create(options);
|
13872
|
-
} else {
|
13971
|
+
|
13873
13972
|
fullName = 'controller:' + controllerClass;
|
13874
13973
|
|
13875
13974
|
if (!container.has(fullName)) {
|
@@ -13881,7 +13980,7 @@ define("ember-runtime/controllers/array_controller",
|
|
13881
13980
|
parentController: parentController,
|
13882
13981
|
model: object
|
13883
13982
|
});
|
13884
|
-
|
13983
|
+
|
13885
13984
|
|
13886
13985
|
subControllers[idx] = subController;
|
13887
13986
|
|
@@ -13936,42 +14035,12 @@ define("ember-runtime/controllers/controller",
|
|
13936
14035
|
*/
|
13937
14036
|
var Controller = EmberObject.extend(Mixin);
|
13938
14037
|
|
13939
|
-
|
13940
|
-
|
13941
|
-
|
13942
|
-
Can only be used when defining another controller.
|
13943
|
-
|
13944
|
-
Example:
|
13945
|
-
|
13946
|
-
```javascript
|
13947
|
-
App.PostController = Ember.Controller.extend({
|
13948
|
-
posts: Ember.inject.controller()
|
13949
|
-
});
|
13950
|
-
```
|
13951
|
-
|
13952
|
-
This example will create a `posts` property on the `post` controller that
|
13953
|
-
looks up the `posts` controller in the container, making it easy to
|
13954
|
-
reference other controllers. This is functionally equivalent to:
|
13955
|
-
|
13956
|
-
```javascript
|
13957
|
-
App.PostController = Ember.Controller.extend({
|
13958
|
-
needs: 'posts',
|
13959
|
-
posts: Ember.computed.alias('controllers.posts')
|
13960
|
-
});
|
13961
|
-
```
|
13962
|
-
|
13963
|
-
@method inject.controller
|
13964
|
-
@for Ember
|
13965
|
-
@param {String} name (optional) name of the controller to inject, defaults
|
13966
|
-
to the property's name
|
13967
|
-
@return {Ember.InjectedProperty} injection descriptor instance
|
13968
|
-
*/
|
13969
|
-
createInjectionHelper('controller', function(factory) {
|
13970
|
-
Ember.assert("Defining an injected controller property on a " +
|
13971
|
-
"non-controller is not allowed.", Controller.detect(factory));
|
13972
|
-
});
|
14038
|
+
function controllerInjectionHelper(factory) {
|
14039
|
+
Ember.assert("Defining an injected controller property on a " +
|
14040
|
+
"non-controller is not allowed.", Controller.detect(factory));
|
13973
14041
|
}
|
13974
14042
|
|
14043
|
+
|
13975
14044
|
__exports__["default"] = Controller;
|
13976
14045
|
});
|
13977
14046
|
define("ember-runtime/controllers/object_controller",
|
@@ -14405,7 +14474,7 @@ define("ember-runtime/ext/rsvp",
|
|
14405
14474
|
};
|
14406
14475
|
|
14407
14476
|
RSVP.onerrorDefault = function (error) {
|
14408
|
-
if (error
|
14477
|
+
if (error && error.name !== 'TransitionAborted') {
|
14409
14478
|
if (Ember.testing) {
|
14410
14479
|
// ES6TODO: remove when possible
|
14411
14480
|
if (!Test && Ember.__loader.registry[testModuleName]) {
|
@@ -14414,6 +14483,7 @@ define("ember-runtime/ext/rsvp",
|
|
14414
14483
|
|
14415
14484
|
if (Test && Test.adapter) {
|
14416
14485
|
Test.adapter.exception(error);
|
14486
|
+
Logger.error(error.stack);
|
14417
14487
|
} else {
|
14418
14488
|
throw error;
|
14419
14489
|
}
|
@@ -14888,12 +14958,7 @@ define("ember-runtime/mixins/action_handler",
|
|
14888
14958
|
@method willMergeMixin
|
14889
14959
|
*/
|
14890
14960
|
willMergeMixin: function(props) {
|
14891
|
-
|
14892
|
-
// Calling super is only OK here since we KNOW that there is another
|
14893
|
-
// Mixin loaded first (injection dependency verification)
|
14894
|
-
this._super.apply(this, arguments);
|
14895
|
-
}
|
14896
|
-
|
14961
|
+
|
14897
14962
|
var hashName;
|
14898
14963
|
|
14899
14964
|
if (!props._actions) {
|
@@ -14984,7 +15049,7 @@ define("ember-runtime/mixins/array",
|
|
14984
15049
|
var get = __dependency2__.get;
|
14985
15050
|
var computed = __dependency3__.computed;
|
14986
15051
|
var cacheFor = __dependency3__.cacheFor;
|
14987
|
-
var isNone = __dependency4__
|
15052
|
+
var isNone = __dependency4__["default"];
|
14988
15053
|
var Enumerable = __dependency5__["default"];
|
14989
15054
|
var map = __dependency6__.map;
|
14990
15055
|
var Mixin = __dependency7__.Mixin;
|
@@ -17733,7 +17798,7 @@ define("ember-runtime/mixins/observable",
|
|
17733
17798
|
var removeObserver = __dependency10__.removeObserver;
|
17734
17799
|
var observersFor = __dependency10__.observersFor;
|
17735
17800
|
var cacheFor = __dependency11__.cacheFor;
|
17736
|
-
var isNone = __dependency12__
|
17801
|
+
var isNone = __dependency12__["default"];
|
17737
17802
|
|
17738
17803
|
|
17739
17804
|
var slice = Array.prototype.slice;
|
@@ -18451,13 +18516,13 @@ define("ember-runtime/mixins/sortable",
|
|
18451
18516
|
var computed = __dependency8__.computed;
|
18452
18517
|
var beforeObserver = __dependency4__.beforeObserver;
|
18453
18518
|
var observer = __dependency4__.observer;
|
18454
|
-
//ES6TODO: should we access these directly from their package or from how
|
18519
|
+
//ES6TODO: should we access these directly from their package or from how their exposed in ember-metal?
|
18455
18520
|
|
18456
18521
|
/**
|
18457
18522
|
`Ember.SortableMixin` provides a standard interface for array proxies
|
18458
18523
|
to specify a sort order and maintain this sorting when objects are added,
|
18459
18524
|
removed, or updated without changing the implicit order of their underlying
|
18460
|
-
|
18525
|
+
model array:
|
18461
18526
|
|
18462
18527
|
```javascript
|
18463
18528
|
songs = [
|
@@ -18489,8 +18554,8 @@ define("ember-runtime/mixins/sortable",
|
|
18489
18554
|
songsController.get('firstObject'); // {trackNumber: 4, title: 'Ob-La-Di, Ob-La-Da'}
|
18490
18555
|
```
|
18491
18556
|
|
18492
|
-
SortableMixin works by sorting the arrangedContent array, which is the array that
|
18493
|
-
|
18557
|
+
`SortableMixin` works by sorting the `arrangedContent` array, which is the array that
|
18558
|
+
`ArrayProxy` displays. Due to the fact that the underlying 'content' array is not changed, that
|
18494
18559
|
array will not display the sorted list:
|
18495
18560
|
|
18496
18561
|
```javascript
|
@@ -18498,8 +18563,8 @@ define("ember-runtime/mixins/sortable",
|
|
18498
18563
|
songsController.get('firstObject'); // Returns the sorted content.
|
18499
18564
|
```
|
18500
18565
|
|
18501
|
-
Although the sorted content can also be accessed through the arrangedContent property,
|
18502
|
-
it is preferable to use the proxied class and not the arrangedContent array directly.
|
18566
|
+
Although the sorted content can also be accessed through the `arrangedContent` property,
|
18567
|
+
it is preferable to use the proxied class and not the `arrangedContent` array directly.
|
18503
18568
|
|
18504
18569
|
@class SortableMixin
|
18505
18570
|
@namespace Ember
|
@@ -18508,7 +18573,7 @@ define("ember-runtime/mixins/sortable",
|
|
18508
18573
|
__exports__["default"] = Mixin.create(MutableEnumerable, {
|
18509
18574
|
|
18510
18575
|
/**
|
18511
|
-
Specifies which properties dictate the arrangedContent's sort order.
|
18576
|
+
Specifies which properties dictate the `arrangedContent`'s sort order.
|
18512
18577
|
|
18513
18578
|
When specifying multiple properties the sorting will use properties
|
18514
18579
|
from the `sortProperties` array prioritized from first to last.
|
@@ -18518,7 +18583,7 @@ define("ember-runtime/mixins/sortable",
|
|
18518
18583
|
sortProperties: null,
|
18519
18584
|
|
18520
18585
|
/**
|
18521
|
-
Specifies the arrangedContent's sort direction.
|
18586
|
+
Specifies the `arrangedContent`'s sort direction.
|
18522
18587
|
Sorts the content in ascending order by default. Set to `false` to
|
18523
18588
|
use descending order.
|
18524
18589
|
|
@@ -18530,13 +18595,14 @@ define("ember-runtime/mixins/sortable",
|
|
18530
18595
|
/**
|
18531
18596
|
The function used to compare two values. You can override this if you
|
18532
18597
|
want to do custom comparisons. Functions must be of the type expected by
|
18533
|
-
Array#sort, i.e
|
18534
|
-
|
18535
|
-
|
18536
|
-
|
18598
|
+
Array#sort, i.e.,
|
18599
|
+
|
18600
|
+
* return 0 if the two parameters are equal,
|
18601
|
+
* return a negative value if the first parameter is smaller than the second or
|
18602
|
+
* return a positive value otherwise:
|
18537
18603
|
|
18538
18604
|
```javascript
|
18539
|
-
function(x,y) { // These are assumed to be integers
|
18605
|
+
function(x, y) { // These are assumed to be integers
|
18540
18606
|
if (x === y)
|
18541
18607
|
return 0;
|
18542
18608
|
return x < y ? -1 : 1;
|
@@ -18587,12 +18653,11 @@ define("ember-runtime/mixins/sortable",
|
|
18587
18653
|
isSorted: computed.notEmpty('sortProperties'),
|
18588
18654
|
|
18589
18655
|
/**
|
18590
|
-
Overrides the default arrangedContent from
|
18591
|
-
Also sets up observers for each sortProperty on each item in the content Array.
|
18656
|
+
Overrides the default `arrangedContent` from `ArrayProxy` in order to sort by `sortFunction`.
|
18657
|
+
Also sets up observers for each `sortProperty` on each item in the content Array.
|
18592
18658
|
|
18593
18659
|
@property arrangedContent
|
18594
18660
|
*/
|
18595
|
-
|
18596
18661
|
arrangedContent: computed('content', 'sortProperties.@each', function(key, value) {
|
18597
18662
|
var content = get(this, 'content');
|
18598
18663
|
var isSorted = get(this, 'isSorted');
|
@@ -19280,9 +19345,13 @@ define("ember-runtime/system/container",
|
|
19280
19345
|
__exports__["default"] = Container;
|
19281
19346
|
});
|
19282
19347
|
define("ember-runtime/system/core_object",
|
19283
|
-
["ember-metal/core","ember-metal/property_get","ember-metal/utils","ember-metal/platform","ember-metal/
|
19348
|
+
["ember-metal/core","ember-metal/property_get","ember-metal/utils","ember-metal/platform","ember-metal/chains","ember-metal/events","ember-metal/mixin","ember-metal/enumerable_utils","ember-metal/error","ember-metal/keys","ember-runtime/mixins/action_handler","ember-metal/properties","ember-metal/binding","ember-metal/computed","ember-metal/injected_property","ember-metal/run_loop","ember-metal/watching","exports"],
|
19284
19349
|
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__, __dependency13__, __dependency14__, __dependency15__, __dependency16__, __dependency17__, __exports__) {
|
19285
|
-
|
19350
|
+
// Remove "use strict"; from transpiled module until
|
19351
|
+
// https://bugs.webkit.org/show_bug.cgi?id=138038 is fixed
|
19352
|
+
//
|
19353
|
+
// REMOVE_USE_STRICT: true
|
19354
|
+
|
19286
19355
|
/**
|
19287
19356
|
@module ember
|
19288
19357
|
@submodule ember-runtime
|
@@ -19301,23 +19370,23 @@ define("ember-runtime/system/core_object",
|
|
19301
19370
|
var GUID_KEY = __dependency3__.GUID_KEY;
|
19302
19371
|
var meta = __dependency3__.meta;
|
19303
19372
|
var makeArray = __dependency3__.makeArray;
|
19304
|
-
var
|
19305
|
-
var
|
19306
|
-
var
|
19307
|
-
var
|
19308
|
-
var
|
19309
|
-
var
|
19310
|
-
var
|
19311
|
-
var EmberError = __dependency10__["default"];
|
19373
|
+
var finishChains = __dependency5__.finishChains;
|
19374
|
+
var sendEvent = __dependency6__.sendEvent;
|
19375
|
+
var IS_BINDING = __dependency7__.IS_BINDING;
|
19376
|
+
var Mixin = __dependency7__.Mixin;
|
19377
|
+
var required = __dependency7__.required;
|
19378
|
+
var indexOf = __dependency8__.indexOf;
|
19379
|
+
var EmberError = __dependency9__["default"];
|
19312
19380
|
var o_defineProperty = __dependency4__.defineProperty;
|
19313
|
-
var keys =
|
19314
|
-
var ActionHandler =
|
19315
|
-
var defineProperty =
|
19316
|
-
var Binding =
|
19317
|
-
var ComputedProperty =
|
19318
|
-
var
|
19319
|
-
var
|
19320
|
-
var
|
19381
|
+
var keys = __dependency10__["default"];
|
19382
|
+
var ActionHandler = __dependency11__["default"];
|
19383
|
+
var defineProperty = __dependency12__.defineProperty;
|
19384
|
+
var Binding = __dependency13__.Binding;
|
19385
|
+
var ComputedProperty = __dependency14__.ComputedProperty;
|
19386
|
+
var computed = __dependency14__.computed;
|
19387
|
+
var InjectedProperty = __dependency15__["default"];
|
19388
|
+
var run = __dependency16__["default"];
|
19389
|
+
var destroy = __dependency17__.destroy;
|
19321
19390
|
var K = __dependency1__.K;
|
19322
19391
|
var hasPropertyAccessors = __dependency4__.hasPropertyAccessors;
|
19323
19392
|
|
@@ -19470,7 +19539,6 @@ define("ember-runtime/system/core_object",
|
|
19470
19539
|
if (!wasApplied) {
|
19471
19540
|
wasApplied = true;
|
19472
19541
|
Class.PrototypeMixin.applyPartial(Class.prototype);
|
19473
|
-
rewatch(Class.prototype);
|
19474
19542
|
}
|
19475
19543
|
|
19476
19544
|
return this.prototype;
|
@@ -20068,7 +20136,7 @@ define("ember-runtime/system/core_object",
|
|
20068
20136
|
return desc._meta || {};
|
20069
20137
|
},
|
20070
20138
|
|
20071
|
-
_computedProperties:
|
20139
|
+
_computedProperties: computed(function() {
|
20072
20140
|
hasCachedComputedProperties = true;
|
20073
20141
|
var proto = this.proto();
|
20074
20142
|
var descs = meta(proto).descs;
|
@@ -20110,31 +20178,7 @@ define("ember-runtime/system/core_object",
|
|
20110
20178
|
}
|
20111
20179
|
};
|
20112
20180
|
|
20113
|
-
|
20114
|
-
/**
|
20115
|
-
Returns a hash of property names and container names that injected
|
20116
|
-
properties will lookup on the container lazily.
|
20117
|
-
|
20118
|
-
@method lazyInjections
|
20119
|
-
@return {Object} Hash of all lazy injected property keys to container names
|
20120
|
-
*/
|
20121
|
-
ClassMixinProps.lazyInjections = function() {
|
20122
|
-
var injections = {};
|
20123
|
-
var proto = this.proto();
|
20124
|
-
var descs = meta(proto).descs;
|
20125
|
-
var key, desc;
|
20126
|
-
|
20127
|
-
for (key in descs) {
|
20128
|
-
desc = descs[key];
|
20129
|
-
if (desc instanceof InjectedProperty) {
|
20130
|
-
injections[key] = desc.type + ':' + (desc.name || key);
|
20131
|
-
}
|
20132
|
-
}
|
20133
|
-
|
20134
|
-
return injections;
|
20135
|
-
};
|
20136
|
-
}
|
20137
|
-
|
20181
|
+
|
20138
20182
|
var ClassMixin = Mixin.create(ClassMixinProps);
|
20139
20183
|
|
20140
20184
|
ClassMixin.ownerConstructor = CoreObject;
|
@@ -20924,22 +20968,13 @@ define("ember-runtime/system/object",
|
|
20924
20968
|
return "Ember.Object";
|
20925
20969
|
};
|
20926
20970
|
|
20927
|
-
|
20928
|
-
|
20929
|
-
|
20930
|
-
|
20931
|
-
|
20932
|
-
@private
|
20933
|
-
@method willMergeMixin
|
20934
|
-
*/
|
20935
|
-
willMergeMixin: function(props) {
|
20936
|
-
// Injection validations are a debugging aid only, so ensure that they are
|
20937
|
-
// not performed in production builds by invoking from an assertion
|
20938
|
-
Ember.assert("Injected properties are invalid", validatePropertyInjections(this.constructor, props));
|
20939
|
-
}
|
20940
|
-
});
|
20971
|
+
function injectedPropertyAssertion(props) {
|
20972
|
+
// Injection validations are a debugging aid only, so ensure that they are
|
20973
|
+
// not performed in production builds by invoking from an assertion
|
20974
|
+
Ember.assert("Injected properties are invalid", validatePropertyInjections(this.constructor, props));
|
20941
20975
|
}
|
20942
20976
|
|
20977
|
+
|
20943
20978
|
__exports__["default"] = EmberObject;
|
20944
20979
|
});
|
20945
20980
|
define("ember-runtime/system/object_proxy",
|
@@ -21029,43 +21064,7 @@ define("ember-runtime/system/service",
|
|
21029
21064
|
|
21030
21065
|
var Service;
|
21031
21066
|
|
21032
|
-
|
21033
|
-
/**
|
21034
|
-
@class Service
|
21035
|
-
@namespace Ember
|
21036
|
-
@extends Ember.Object
|
21037
|
-
*/
|
21038
|
-
Service = Object.extend();
|
21039
|
-
|
21040
|
-
/**
|
21041
|
-
Creates a property that lazily looks up a service in the container. There
|
21042
|
-
are no restrictions as to what objects a service can be injected into.
|
21043
|
-
|
21044
|
-
Example:
|
21045
|
-
|
21046
|
-
```javascript
|
21047
|
-
App.ApplicationRoute = Ember.Route.extend({
|
21048
|
-
authManager: Ember.inject.service('auth'),
|
21049
|
-
|
21050
|
-
model: function() {
|
21051
|
-
return this.get('authManager').findCurrentUser();
|
21052
|
-
}
|
21053
|
-
});
|
21054
|
-
```
|
21055
|
-
|
21056
|
-
This example will create an `authManager` property on the application route
|
21057
|
-
that looks up the `auth` service in the container, making it easily
|
21058
|
-
accessible in the `model` hook.
|
21059
|
-
|
21060
|
-
@method inject.service
|
21061
|
-
@for Ember
|
21062
|
-
@param {String} name (optional) name of the service to inject, defaults to
|
21063
|
-
the property's name
|
21064
|
-
@return {Ember.InjectedProperty} injection descriptor instance
|
21065
|
-
*/
|
21066
|
-
createInjectionHelper('service');
|
21067
|
-
}
|
21068
|
-
|
21067
|
+
|
21069
21068
|
__exports__["default"] = Service;
|
21070
21069
|
});
|
21071
21070
|
define("ember-runtime/system/set",
|
@@ -21082,7 +21081,7 @@ define("ember-runtime/system/set",
|
|
21082
21081
|
var get = __dependency2__.get;
|
21083
21082
|
var set = __dependency3__.set;
|
21084
21083
|
var guidFor = __dependency4__.guidFor;
|
21085
|
-
var isNone = __dependency5__
|
21084
|
+
var isNone = __dependency5__["default"];
|
21086
21085
|
var fmt = __dependency6__.fmt;
|
21087
21086
|
var CoreObject = __dependency7__["default"];
|
21088
21087
|
var MutableEnumerable = __dependency8__["default"];
|