ember-source 2.13.0.beta.2 → 2.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/dist/ember-runtime.js +158 -73
- data/dist/ember-template-compiler.js +79 -30
- data/dist/ember-testing.js +6 -3
- data/dist/ember-tests.js +86 -10
- data/dist/ember-tests.prod.js +82 -10
- data/dist/ember.debug.js +199 -77
- data/dist/ember.js +199 -77
- data/dist/ember.min.js +95 -88
- data/dist/ember.prod.js +195 -73
- metadata +4 -4
@@ -6,7 +6,7 @@
|
|
6
6
|
* Portions Copyright 2008-2011 Apple Inc. All rights reserved.
|
7
7
|
* @license Licensed under MIT license
|
8
8
|
* See https://raw.github.com/emberjs/ember.js/master/LICENSE
|
9
|
-
* @version 2.13.0
|
9
|
+
* @version 2.13.0
|
10
10
|
*/
|
11
11
|
|
12
12
|
var enifed, requireModule, Ember;
|
@@ -7246,22 +7246,16 @@ enifed('ember-metal/chains', ['exports', 'ember-metal/property_get', 'ember-meta
|
|
7246
7246
|
}
|
7247
7247
|
}
|
7248
7248
|
|
7249
|
-
function finishChains(
|
7250
|
-
//
|
7251
|
-
var
|
7252
|
-
if (
|
7253
|
-
|
7254
|
-
|
7255
|
-
|
7256
|
-
|
7257
|
-
|
7258
|
-
|
7259
|
-
}
|
7260
|
-
// ensure that if we have inherited any chains they have been
|
7261
|
-
// copied onto our own meta.
|
7262
|
-
if (m.readableChains() !== undefined) {
|
7263
|
-
m.writableChains(_emberMetalWatch_path.makeChainNode);
|
7264
|
-
}
|
7249
|
+
function finishChains(meta) {
|
7250
|
+
// finish any current chains node watchers that reference obj
|
7251
|
+
var chainWatchers = meta.readableChainWatchers();
|
7252
|
+
if (chainWatchers !== undefined) {
|
7253
|
+
chainWatchers.revalidateAll();
|
7254
|
+
}
|
7255
|
+
// ensure that if we have inherited any chains they have been
|
7256
|
+
// copied onto our own meta.
|
7257
|
+
if (meta.readableChains() !== undefined) {
|
7258
|
+
meta.writableChains(_emberMetalWatch_path.makeChainNode);
|
7265
7259
|
}
|
7266
7260
|
}
|
7267
7261
|
|
@@ -8029,7 +8023,7 @@ enifed('ember-metal/error_handler', ['exports', 'ember-console', 'ember-debug'],
|
|
8029
8023
|
var stack = error.stack;
|
8030
8024
|
var message = error.message;
|
8031
8025
|
|
8032
|
-
if (stack &&
|
8026
|
+
if (stack && stack.indexOf(message) === -1) {
|
8033
8027
|
stack = message + '\n' + stack;
|
8034
8028
|
}
|
8035
8029
|
|
@@ -8622,6 +8616,7 @@ enifed('ember-metal/index', ['exports', 'ember-metal/core', 'ember-metal/compute
|
|
8622
8616
|
exports.PROPERTY_DID_CHANGE = _emberMetalProperty_events.PROPERTY_DID_CHANGE;
|
8623
8617
|
exports.defineProperty = _emberMetalProperties.defineProperty;
|
8624
8618
|
exports.Descriptor = _emberMetalProperties.Descriptor;
|
8619
|
+
exports._hasCachedComputedProperties = _emberMetalProperties._hasCachedComputedProperties;
|
8625
8620
|
exports.watchKey = _emberMetalWatch_key.watchKey;
|
8626
8621
|
exports.unwatchKey = _emberMetalWatch_key.unwatchKey;
|
8627
8622
|
exports.ChainNode = _emberMetalChains.ChainNode;
|
@@ -9882,6 +9877,7 @@ enifed('ember-metal/meta', ['exports', 'ember-utils', 'ember-metal/meta_listener
|
|
9882
9877
|
this._chains = undefined;
|
9883
9878
|
this._tag = undefined;
|
9884
9879
|
this._tags = undefined;
|
9880
|
+
this._factory = undefined;
|
9885
9881
|
|
9886
9882
|
// initial value for all flags right now is false
|
9887
9883
|
// see FLAGS const for detailed list of flags used
|
@@ -10130,6 +10126,15 @@ enifed('ember-metal/meta', ['exports', 'ember-utils', 'ember-metal/meta_listener
|
|
10130
10126
|
}
|
10131
10127
|
};
|
10132
10128
|
|
10129
|
+
babelHelpers.createClass(Meta, [{
|
10130
|
+
key: 'factory',
|
10131
|
+
set: function (factory) {
|
10132
|
+
this._factory = factory;
|
10133
|
+
},
|
10134
|
+
get: function () {
|
10135
|
+
return this._factory;
|
10136
|
+
}
|
10137
|
+
}]);
|
10133
10138
|
return Meta;
|
10134
10139
|
})();
|
10135
10140
|
|
@@ -11797,6 +11802,7 @@ enifed('ember-metal/properties', ['exports', 'ember-debug', 'ember-metal/meta',
|
|
11797
11802
|
exports.DEFAULT_GETTER_FUNCTION = DEFAULT_GETTER_FUNCTION;
|
11798
11803
|
exports.INHERITING_GETTER_FUNCTION = INHERITING_GETTER_FUNCTION;
|
11799
11804
|
exports.defineProperty = defineProperty;
|
11805
|
+
exports._hasCachedComputedProperties = _hasCachedComputedProperties;
|
11800
11806
|
|
11801
11807
|
// ..........................................................
|
11802
11808
|
// DESCRIPTOR
|
@@ -11919,24 +11925,20 @@ enifed('ember-metal/properties', ['exports', 'ember-debug', 'ember-metal/meta',
|
|
11919
11925
|
*/
|
11920
11926
|
|
11921
11927
|
function defineProperty(obj, keyName, desc, data, meta) {
|
11922
|
-
var possibleDesc = undefined,
|
11923
|
-
existingDesc = undefined,
|
11924
|
-
watching = undefined,
|
11925
|
-
value = undefined;
|
11926
|
-
|
11927
11928
|
if (!meta) {
|
11928
11929
|
meta = _emberMetalMeta.meta(obj);
|
11929
11930
|
}
|
11930
11931
|
var watchEntry = meta.peekWatching(keyName);
|
11931
|
-
possibleDesc = obj[keyName];
|
11932
|
-
existingDesc = possibleDesc !== null && typeof possibleDesc === 'object' && possibleDesc.isDescriptor ? possibleDesc : undefined;
|
11932
|
+
var possibleDesc = obj[keyName];
|
11933
|
+
var existingDesc = possibleDesc !== null && typeof possibleDesc === 'object' && possibleDesc.isDescriptor ? possibleDesc : undefined;
|
11933
11934
|
|
11934
|
-
watching = watchEntry !== undefined && watchEntry > 0;
|
11935
|
+
var watching = watchEntry !== undefined && watchEntry > 0;
|
11935
11936
|
|
11936
11937
|
if (existingDesc) {
|
11937
11938
|
existingDesc.teardown(obj, keyName);
|
11938
11939
|
}
|
11939
11940
|
|
11941
|
+
var value = undefined;
|
11940
11942
|
if (desc instanceof Descriptor) {
|
11941
11943
|
value = desc;
|
11942
11944
|
if (true) {
|
@@ -11953,7 +11955,10 @@ enifed('ember-metal/properties', ['exports', 'ember-debug', 'ember-metal/meta',
|
|
11953
11955
|
} else {
|
11954
11956
|
obj[keyName] = value;
|
11955
11957
|
}
|
11956
|
-
|
11958
|
+
|
11959
|
+
didDefineComputedProperty(obj.constructor);
|
11960
|
+
|
11961
|
+
if (typeof desc.setup === 'function') {
|
11957
11962
|
desc.setup(obj, keyName);
|
11958
11963
|
}
|
11959
11964
|
} else {
|
@@ -11998,13 +12003,30 @@ enifed('ember-metal/properties', ['exports', 'ember-debug', 'ember-metal/meta',
|
|
11998
12003
|
|
11999
12004
|
// The `value` passed to the `didDefineProperty` hook is
|
12000
12005
|
// either the descriptor or data, whichever was passed.
|
12001
|
-
if (obj.didDefineProperty) {
|
12006
|
+
if (typeof obj.didDefineProperty === 'function') {
|
12002
12007
|
obj.didDefineProperty(obj, keyName, value);
|
12003
12008
|
}
|
12004
12009
|
|
12005
12010
|
return this;
|
12006
12011
|
}
|
12007
12012
|
|
12013
|
+
var hasCachedComputedProperties = false;
|
12014
|
+
|
12015
|
+
function _hasCachedComputedProperties() {
|
12016
|
+
hasCachedComputedProperties = true;
|
12017
|
+
}
|
12018
|
+
|
12019
|
+
function didDefineComputedProperty(constructor) {
|
12020
|
+
if (hasCachedComputedProperties === false) {
|
12021
|
+
return;
|
12022
|
+
}
|
12023
|
+
var cache = _emberMetalMeta.meta(constructor).readableCache();
|
12024
|
+
|
12025
|
+
if (cache && cache._computedProperties !== undefined) {
|
12026
|
+
cache._computedProperties = undefined;
|
12027
|
+
}
|
12028
|
+
}
|
12029
|
+
|
12008
12030
|
function handleBrokenPhantomDefineProperty(obj, keyName, desc) {
|
12009
12031
|
// https://github.com/ariya/phantomjs/issues/11856
|
12010
12032
|
Object.defineProperty(obj, keyName, { configurable: true, writable: true, value: 'iCry' });
|
@@ -16113,13 +16135,40 @@ enifed('ember-utils/to-string', ['exports'], function (exports) {
|
|
16113
16135
|
exports.default = toString;
|
16114
16136
|
var objectToString = Object.prototype.toString;
|
16115
16137
|
|
16138
|
+
function isNone(obj) {
|
16139
|
+
return obj === null || obj === undefined;
|
16140
|
+
}
|
16141
|
+
|
16116
16142
|
/*
|
16117
16143
|
A `toString` util function that supports objects without a `toString`
|
16118
16144
|
method, e.g. an object created with `Object.create(null)`.
|
16119
16145
|
*/
|
16120
16146
|
|
16121
16147
|
function toString(obj) {
|
16122
|
-
|
16148
|
+
var type = typeof obj;
|
16149
|
+
if (type === "string") {
|
16150
|
+
return obj;
|
16151
|
+
}
|
16152
|
+
|
16153
|
+
if (Array.isArray(obj)) {
|
16154
|
+
// Reimplement Array.prototype.join according to spec (22.1.3.13)
|
16155
|
+
// Changing ToString(element) with this safe version of ToString.
|
16156
|
+
var len = obj.length;
|
16157
|
+
var sep = ',';
|
16158
|
+
var r = '';
|
16159
|
+
|
16160
|
+
for (var k = 0; k < len; k++) {
|
16161
|
+
if (k > 0) {
|
16162
|
+
r += ',';
|
16163
|
+
}
|
16164
|
+
|
16165
|
+
if (!isNone(obj[k])) {
|
16166
|
+
r += toString(obj[k]);
|
16167
|
+
}
|
16168
|
+
}
|
16169
|
+
|
16170
|
+
return r;
|
16171
|
+
} else if (obj != null && typeof obj.toString === 'function') {
|
16123
16172
|
return obj.toString();
|
16124
16173
|
} else {
|
16125
16174
|
return objectToString.call(obj);
|
@@ -16151,7 +16200,7 @@ enifed("ember/features", ["exports"], function (exports) {
|
|
16151
16200
|
enifed("ember/version", ["exports"], function (exports) {
|
16152
16201
|
"use strict";
|
16153
16202
|
|
16154
|
-
exports.default = "2.13.0
|
16203
|
+
exports.default = "2.13.0";
|
16155
16204
|
});
|
16156
16205
|
enifed("handlebars", ["exports"], function (exports) {
|
16157
16206
|
/* istanbul ignore next */
|
data/dist/ember-testing.js
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
* Portions Copyright 2008-2011 Apple Inc. All rights reserved.
|
7
7
|
* @license Licensed under MIT license
|
8
8
|
* See https://raw.github.com/emberjs/ember.js/master/LICENSE
|
9
|
-
* @version 2.13.0
|
9
|
+
* @version 2.13.0
|
10
10
|
*/
|
11
11
|
|
12
12
|
var enifed, requireModule, Ember;
|
@@ -1841,6 +1841,9 @@ enifed('ember-testing/test/waiters', ['exports', 'ember-debug'], function (expor
|
|
1841
1841
|
return array;
|
1842
1842
|
}
|
1843
1843
|
});
|
1844
|
-
requireModule(
|
1845
|
-
|
1844
|
+
var testing = requireModule('ember-testing');
|
1845
|
+
Ember.Test = testing.Test;
|
1846
|
+
Ember.Test.Adapter = testing.Adapter;
|
1847
|
+
Ember.Test.QUnitAdapter = testing.QUnitAdapter;
|
1848
|
+
Ember.setupForTesting = testing.setupForTesting;
|
1846
1849
|
}());
|
data/dist/ember-tests.js
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
* Portions Copyright 2008-2011 Apple Inc. All rights reserved.
|
7
7
|
* @license Licensed under MIT license
|
8
8
|
* See https://raw.github.com/emberjs/ember.js/master/LICENSE
|
9
|
-
* @version 2.13.0
|
9
|
+
* @version 2.13.0
|
10
10
|
*/
|
11
11
|
|
12
12
|
var enifed, requireModule, Ember;
|
@@ -279,7 +279,7 @@ enifed('container/tests/container_test', ['exports', 'ember-utils', 'ember-envir
|
|
279
279
|
equal(PostFactory._debugContainerKey, 'controller:post', 'factory instance receives _debugContainerKey');
|
280
280
|
});
|
281
281
|
|
282
|
-
QUnit.test('
|
282
|
+
QUnit.test('uses create time injections if factory has no extend', function () {
|
283
283
|
var registry = new _containerIndex.Registry();
|
284
284
|
var container = registry.container();
|
285
285
|
var AppleController = _internalTestHelpers.factory();
|
@@ -293,7 +293,6 @@ enifed('container/tests/container_test', ['exports', 'ember-utils', 'ember-envir
|
|
293
293
|
|
294
294
|
var postController = container.lookup('controller:post');
|
295
295
|
|
296
|
-
equal(postController._debugContainerKey, 'controller:post', 'instance receives _debugContainerKey');
|
297
296
|
ok(postController.apple instanceof AppleController, 'instance receives an apple of instance AppleController');
|
298
297
|
});
|
299
298
|
|
@@ -365,9 +364,6 @@ enifed('container/tests/container_test', ['exports', 'ember-utils', 'ember-envir
|
|
365
364
|
var postController = container.lookup('controller:post');
|
366
365
|
var store = container.lookup('store:main');
|
367
366
|
|
368
|
-
equal(store._debugContainerKey, 'store:main');
|
369
|
-
|
370
|
-
equal(postController._debugContainerKey, 'controller:post');
|
371
367
|
equal(postController.store, store, 'has the correct store injected');
|
372
368
|
});
|
373
369
|
|
@@ -766,8 +762,9 @@ enifed('container/tests/container_test', ['exports', 'ember-utils', 'ember-envir
|
|
766
762
|
});
|
767
763
|
|
768
764
|
QUnit.test('A deprecated `container` property is appended to every object instantiated from an extendable factory', function () {
|
765
|
+
var owner = {};
|
769
766
|
var registry = new _containerIndex.Registry();
|
770
|
-
var container = registry.container();
|
767
|
+
var container = owner.__container__ = registry.container({ owner: owner });
|
771
768
|
var PostController = _internalTestHelpers.factory();
|
772
769
|
registry.register('controller:post', PostController);
|
773
770
|
var postController = container.lookup('controller:post');
|
@@ -1010,11 +1007,78 @@ enifed('container/tests/container_test', ['exports', 'ember-utils', 'ember-envir
|
|
1010
1007
|
registry.injection('component:foo-bar', 'ajax', 'util:ajax');
|
1011
1008
|
|
1012
1009
|
var componentFactory = container.factoryFor('component:foo-bar');
|
1013
|
-
|
1014
1010
|
var instrance = componentFactory.create({ ajax: 'fetch' });
|
1015
1011
|
|
1016
1012
|
assert.equal(instrance.ajax, 'fetch');
|
1017
1013
|
});
|
1014
|
+
|
1015
|
+
QUnit.test('#factoryFor does not add properties to the object being instantiated when _initFactory is present', function (assert) {
|
1016
|
+
var owner = {};
|
1017
|
+
var registry = new _containerIndex.Registry();
|
1018
|
+
var container = registry.container();
|
1019
|
+
|
1020
|
+
var factory = undefined;
|
1021
|
+
|
1022
|
+
var Component = (function () {
|
1023
|
+
function Component() {
|
1024
|
+
babelHelpers.classCallCheck(this, Component);
|
1025
|
+
}
|
1026
|
+
|
1027
|
+
Component._initFactory = function _initFactory(_factory) {
|
1028
|
+
factory = _factory;
|
1029
|
+
};
|
1030
|
+
|
1031
|
+
Component.create = function create(options) {
|
1032
|
+
var instance = new this();
|
1033
|
+
_emberUtils.assign(instance, options);
|
1034
|
+
return instance;
|
1035
|
+
};
|
1036
|
+
|
1037
|
+
return Component;
|
1038
|
+
})();
|
1039
|
+
|
1040
|
+
registry.register('component:foo-bar', Component);
|
1041
|
+
|
1042
|
+
var componentFactory = container.factoryFor('component:foo-bar');
|
1043
|
+
var instance = componentFactory.create();
|
1044
|
+
|
1045
|
+
// note: _guid and isDestroyed are being set in the `factory` constructor
|
1046
|
+
// not via registry/container shenanigans
|
1047
|
+
assert.deepEqual(Object.keys(instance), []);
|
1048
|
+
});
|
1049
|
+
|
1050
|
+
// this is skipped until templates and the glimmer environment do not require `OWNER` to be
|
1051
|
+
// passed in as constructor args
|
1052
|
+
QUnit.skip('#factoryFor does not add properties to the object being instantiated', function (assert) {
|
1053
|
+
var owner = {};
|
1054
|
+
var registry = new _containerIndex.Registry();
|
1055
|
+
var container = registry.container();
|
1056
|
+
|
1057
|
+
var factory = undefined;
|
1058
|
+
|
1059
|
+
var Component = (function () {
|
1060
|
+
function Component() {
|
1061
|
+
babelHelpers.classCallCheck(this, Component);
|
1062
|
+
}
|
1063
|
+
|
1064
|
+
Component.create = function create(options) {
|
1065
|
+
var instance = new this();
|
1066
|
+
_emberUtils.assign(instance, options);
|
1067
|
+
return instance;
|
1068
|
+
};
|
1069
|
+
|
1070
|
+
return Component;
|
1071
|
+
})();
|
1072
|
+
|
1073
|
+
registry.register('component:foo-bar', Component);
|
1074
|
+
|
1075
|
+
var componentFactory = container.factoryFor('component:foo-bar');
|
1076
|
+
var instance = componentFactory.create();
|
1077
|
+
|
1078
|
+
// note: _guid and isDestroyed are being set in the `factory` constructor
|
1079
|
+
// not via registry/container shenanigans
|
1080
|
+
assert.deepEqual(Object.keys(instance), []);
|
1081
|
+
});
|
1018
1082
|
}
|
1019
1083
|
});
|
1020
1084
|
enifed('container/tests/container_test.lint-test', ['exports'], function (exports) {
|
@@ -39627,8 +39691,13 @@ enifed('ember-metal/tests/chains_test', ['exports', 'ember-metal/observer', 'emb
|
|
39627
39691
|
_emberMetalObserver.addObserver(obj, 'foo.bar', null, didChange);
|
39628
39692
|
|
39629
39693
|
var childObj = Object.create(obj);
|
39630
|
-
|
39631
|
-
|
39694
|
+
|
39695
|
+
var parentMeta = _emberMetalMeta.meta(obj);
|
39696
|
+
var childMeta = _emberMetalMeta.meta(childObj);
|
39697
|
+
|
39698
|
+
_emberMetalChains.finishChains(childMeta);
|
39699
|
+
|
39700
|
+
ok(parentMeta.readableChains() !== childMeta.readableChains(), 'The chains object is copied');
|
39632
39701
|
});
|
39633
39702
|
|
39634
39703
|
QUnit.test('does not observe primative values', function (assert) {
|
@@ -67782,6 +67851,13 @@ enifed('ember-utils/tests/to-string-test', ['exports', 'ember-utils/index'], fun
|
|
67782
67851
|
|
67783
67852
|
strictEqual(_emberUtilsIndex.toString(obj), ({}).toString());
|
67784
67853
|
});
|
67854
|
+
|
67855
|
+
QUnit.test('toString does not fail when called on Arrays with objects without toString method', function () {
|
67856
|
+
var obj = Object.create(null);
|
67857
|
+
var arr = [obj, 2];
|
67858
|
+
|
67859
|
+
strictEqual(_emberUtilsIndex.toString(arr), ({}).toString() + ',2');
|
67860
|
+
});
|
67785
67861
|
});
|
67786
67862
|
enifed('ember-utils/tests/to-string-test.lint-test', ['exports'], function (exports) {
|
67787
67863
|
'use strict';
|
data/dist/ember-tests.prod.js
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
* Portions Copyright 2008-2011 Apple Inc. All rights reserved.
|
7
7
|
* @license Licensed under MIT license
|
8
8
|
* See https://raw.github.com/emberjs/ember.js/master/LICENSE
|
9
|
-
* @version 2.13.0
|
9
|
+
* @version 2.13.0
|
10
10
|
*/
|
11
11
|
|
12
12
|
var enifed, requireModule, Ember;
|
@@ -268,7 +268,7 @@ enifed('container/tests/container_test', ['exports', 'ember-utils', 'ember-envir
|
|
268
268
|
equal(PostFactory._debugContainerKey, 'controller:post', 'factory instance receives _debugContainerKey');
|
269
269
|
});
|
270
270
|
|
271
|
-
QUnit.test('
|
271
|
+
QUnit.test('uses create time injections if factory has no extend', function () {
|
272
272
|
var registry = new _containerIndex.Registry();
|
273
273
|
var container = registry.container();
|
274
274
|
var AppleController = _internalTestHelpers.factory();
|
@@ -282,7 +282,6 @@ enifed('container/tests/container_test', ['exports', 'ember-utils', 'ember-envir
|
|
282
282
|
|
283
283
|
var postController = container.lookup('controller:post');
|
284
284
|
|
285
|
-
equal(postController._debugContainerKey, 'controller:post', 'instance receives _debugContainerKey');
|
286
285
|
ok(postController.apple instanceof AppleController, 'instance receives an apple of instance AppleController');
|
287
286
|
});
|
288
287
|
|
@@ -354,9 +353,6 @@ enifed('container/tests/container_test', ['exports', 'ember-utils', 'ember-envir
|
|
354
353
|
var postController = container.lookup('controller:post');
|
355
354
|
var store = container.lookup('store:main');
|
356
355
|
|
357
|
-
equal(store._debugContainerKey, 'store:main');
|
358
|
-
|
359
|
-
equal(postController._debugContainerKey, 'controller:post');
|
360
356
|
equal(postController.store, store, 'has the correct store injected');
|
361
357
|
});
|
362
358
|
|
@@ -755,8 +751,9 @@ enifed('container/tests/container_test', ['exports', 'ember-utils', 'ember-envir
|
|
755
751
|
});
|
756
752
|
|
757
753
|
QUnit.test('A deprecated `container` property is appended to every object instantiated from an extendable factory', function () {
|
754
|
+
var owner = {};
|
758
755
|
var registry = new _containerIndex.Registry();
|
759
|
-
var container = registry.container();
|
756
|
+
var container = owner.__container__ = registry.container({ owner: owner });
|
760
757
|
var PostController = _internalTestHelpers.factory();
|
761
758
|
registry.register('controller:post', PostController);
|
762
759
|
var postController = container.lookup('controller:post');
|
@@ -999,11 +996,74 @@ enifed('container/tests/container_test', ['exports', 'ember-utils', 'ember-envir
|
|
999
996
|
registry.injection('component:foo-bar', 'ajax', 'util:ajax');
|
1000
997
|
|
1001
998
|
var componentFactory = container.factoryFor('component:foo-bar');
|
1002
|
-
|
1003
999
|
var instrance = componentFactory.create({ ajax: 'fetch' });
|
1004
1000
|
|
1005
1001
|
assert.equal(instrance.ajax, 'fetch');
|
1006
1002
|
});
|
1003
|
+
|
1004
|
+
QUnit.test('#factoryFor does not add properties to the object being instantiated when _initFactory is present', function (assert) {
|
1005
|
+
var owner = {};
|
1006
|
+
var registry = new _containerIndex.Registry();
|
1007
|
+
var container = registry.container();
|
1008
|
+
|
1009
|
+
var factory = undefined;
|
1010
|
+
|
1011
|
+
var Component = (function () {
|
1012
|
+
function Component() {}
|
1013
|
+
|
1014
|
+
Component._initFactory = function _initFactory(_factory) {
|
1015
|
+
factory = _factory;
|
1016
|
+
};
|
1017
|
+
|
1018
|
+
Component.create = function create(options) {
|
1019
|
+
var instance = new this();
|
1020
|
+
_emberUtils.assign(instance, options);
|
1021
|
+
return instance;
|
1022
|
+
};
|
1023
|
+
|
1024
|
+
return Component;
|
1025
|
+
})();
|
1026
|
+
|
1027
|
+
registry.register('component:foo-bar', Component);
|
1028
|
+
|
1029
|
+
var componentFactory = container.factoryFor('component:foo-bar');
|
1030
|
+
var instance = componentFactory.create();
|
1031
|
+
|
1032
|
+
// note: _guid and isDestroyed are being set in the `factory` constructor
|
1033
|
+
// not via registry/container shenanigans
|
1034
|
+
assert.deepEqual(Object.keys(instance), []);
|
1035
|
+
});
|
1036
|
+
|
1037
|
+
// this is skipped until templates and the glimmer environment do not require `OWNER` to be
|
1038
|
+
// passed in as constructor args
|
1039
|
+
QUnit.skip('#factoryFor does not add properties to the object being instantiated', function (assert) {
|
1040
|
+
var owner = {};
|
1041
|
+
var registry = new _containerIndex.Registry();
|
1042
|
+
var container = registry.container();
|
1043
|
+
|
1044
|
+
var factory = undefined;
|
1045
|
+
|
1046
|
+
var Component = (function () {
|
1047
|
+
function Component() {}
|
1048
|
+
|
1049
|
+
Component.create = function create(options) {
|
1050
|
+
var instance = new this();
|
1051
|
+
_emberUtils.assign(instance, options);
|
1052
|
+
return instance;
|
1053
|
+
};
|
1054
|
+
|
1055
|
+
return Component;
|
1056
|
+
})();
|
1057
|
+
|
1058
|
+
registry.register('component:foo-bar', Component);
|
1059
|
+
|
1060
|
+
var componentFactory = container.factoryFor('component:foo-bar');
|
1061
|
+
var instance = componentFactory.create();
|
1062
|
+
|
1063
|
+
// note: _guid and isDestroyed are being set in the `factory` constructor
|
1064
|
+
// not via registry/container shenanigans
|
1065
|
+
assert.deepEqual(Object.keys(instance), []);
|
1066
|
+
});
|
1007
1067
|
}
|
1008
1068
|
});
|
1009
1069
|
enifed('container/tests/container_test.lint-test', ['exports'], function (exports) {
|
@@ -39261,8 +39321,13 @@ enifed('ember-metal/tests/chains_test', ['exports', 'ember-metal/observer', 'emb
|
|
39261
39321
|
_emberMetalObserver.addObserver(obj, 'foo.bar', null, didChange);
|
39262
39322
|
|
39263
39323
|
var childObj = Object.create(obj);
|
39264
|
-
|
39265
|
-
|
39324
|
+
|
39325
|
+
var parentMeta = _emberMetalMeta.meta(obj);
|
39326
|
+
var childMeta = _emberMetalMeta.meta(childObj);
|
39327
|
+
|
39328
|
+
_emberMetalChains.finishChains(childMeta);
|
39329
|
+
|
39330
|
+
ok(parentMeta.readableChains() !== childMeta.readableChains(), 'The chains object is copied');
|
39266
39331
|
});
|
39267
39332
|
|
39268
39333
|
QUnit.test('does not observe primative values', function (assert) {
|
@@ -67388,6 +67453,13 @@ enifed('ember-utils/tests/to-string-test', ['exports', 'ember-utils/index'], fun
|
|
67388
67453
|
|
67389
67454
|
strictEqual(_emberUtilsIndex.toString(obj), ({}).toString());
|
67390
67455
|
});
|
67456
|
+
|
67457
|
+
QUnit.test('toString does not fail when called on Arrays with objects without toString method', function () {
|
67458
|
+
var obj = Object.create(null);
|
67459
|
+
var arr = [obj, 2];
|
67460
|
+
|
67461
|
+
strictEqual(_emberUtilsIndex.toString(arr), ({}).toString() + ',2');
|
67462
|
+
});
|
67391
67463
|
});
|
67392
67464
|
enifed('ember-utils/tests/to-string-test.lint-test', ['exports'], function (exports) {
|
67393
67465
|
'use strict';
|