ember-source 1.9.0.alpha.2 → 1.9.0.beta.1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of ember-source might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/dist/ember-runtime.js +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"];
|