ember-source 3.0.0.beta.1 → 3.0.0.beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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 3.0.0-beta.1
9
+ * @version 3.0.0-beta.2
10
10
  */
11
11
 
12
12
  /*globals process */
@@ -8802,74 +8802,6 @@ enifed('ember-glimmer/tests/integration/application/rendering-test', ['ember-bab
8802
8802
  return _class;
8803
8803
  }(_testCase.ApplicationTest));
8804
8804
  });
8805
- enifed('ember-glimmer/tests/integration/binding_integration_test', ['ember-babel', 'ember-glimmer/tests/utils/test-case', 'ember-glimmer/tests/utils/helpers', 'ember-metal'], function (_emberBabel, _testCase, _helpers, _emberMetal) {
8806
- 'use strict';
8807
-
8808
- (0, _testCase.moduleFor)('Binding integration tests', function (_RenderingTest) {
8809
- (0, _emberBabel.inherits)(_class, _RenderingTest);
8810
-
8811
- function _class() {
8812
- return (0, _emberBabel.possibleConstructorReturn)(this, _RenderingTest.apply(this, arguments));
8813
- }
8814
-
8815
- _class.prototype['@test should accept bindings as a string or an Ember.binding'] = function () {
8816
- var _this2 = this;
8817
-
8818
- var FooBarComponent = _helpers.Component.extend({
8819
- twoWayTestBinding: _emberMetal.Binding.from('direction'),
8820
- stringTestBinding: 'direction',
8821
- twoWayObjectTestBinding: _emberMetal.Binding.from('displacement.distance'),
8822
- stringObjectTestBinding: 'displacement.distance'
8823
- });
8824
-
8825
- this.registerComponent('foo-bar', {
8826
- ComponentClass: FooBarComponent,
8827
- template: 'two way: {{twoWayTest}}, string: {{stringTest}}, object: {{twoWayObjectTest}}, string object: {{stringObjectTest}}'
8828
- });
8829
-
8830
- expectDeprecation(function () {
8831
- _this2.render('{{foo-bar direction=direction displacement=displacement}}', {
8832
- direction: 'down',
8833
- displacement: {
8834
- distance: 10
8835
- }
8836
- });
8837
- }, /`Ember\.Binding` is deprecated/);
8838
-
8839
- this.assertText('two way: down, string: down, object: 10, string object: 10');
8840
-
8841
- this.assertStableRerender();
8842
-
8843
- this.runTask(function () {
8844
- return (0, _emberMetal.set)(_this2.context, 'direction', 'up');
8845
- });
8846
-
8847
- this.assertText('two way: up, string: up, object: 10, string object: 10');
8848
-
8849
- this.runTask(function () {
8850
- return (0, _emberMetal.set)(_this2.context, 'displacement.distance', 20);
8851
- });
8852
-
8853
- this.assertText('two way: up, string: up, object: 20, string object: 20');
8854
-
8855
- this.runTask(function () {
8856
- (0, _emberMetal.set)(_this2.context, 'direction', 'right');
8857
- (0, _emberMetal.set)(_this2.context, 'displacement.distance', 30);
8858
- });
8859
-
8860
- this.assertText('two way: right, string: right, object: 30, string object: 30');
8861
-
8862
- this.runTask(function () {
8863
- (0, _emberMetal.set)(_this2.context, 'direction', 'down');
8864
- (0, _emberMetal.set)(_this2.context, 'displacement', { distance: 10 });
8865
- });
8866
-
8867
- this.assertText('two way: down, string: down, object: 10, string object: 10');
8868
- };
8869
-
8870
- return _class;
8871
- }(_testCase.RenderingTest));
8872
- });
8873
8805
  enifed('ember-glimmer/tests/integration/components/append-test', ['ember-babel', 'ember-metal', 'ember-views', 'ember-glimmer/tests/utils/test-case', 'ember-glimmer/tests/utils/helpers', 'ember-glimmer/tests/utils/abstract-test-case'], function (_emberBabel, _emberMetal, _emberViews, _testCase, _helpers, _abstractTestCase) {
8874
8806
  'use strict';
8875
8807
 
@@ -32084,6 +32016,88 @@ enifed('ember-glimmer/tests/integration/refinements-test', ['ember-babel', 'embe
32084
32016
  return _class;
32085
32017
  }(_testCase.RenderingTest));
32086
32018
  });
32019
+ enifed('ember-glimmer/tests/integration/render-settled-test', ['ember-babel', 'internal-test-helpers', 'ember-glimmer', 'rsvp', 'ember-metal'], function (_emberBabel, _internalTestHelpers, _emberGlimmer, _rsvp, _emberMetal) {
32020
+ 'use strict';
32021
+
32022
+ var _templateObject = (0, _emberBabel.taggedTemplateLiteralLoose)(['{{foo}}'], ['{{foo}}']);
32023
+
32024
+ (0, _internalTestHelpers.moduleFor)('renderSettled', function (_RenderingTestCase) {
32025
+ (0, _emberBabel.inherits)(_class, _RenderingTestCase);
32026
+
32027
+ function _class() {
32028
+ return (0, _emberBabel.possibleConstructorReturn)(this, _RenderingTestCase.apply(this, arguments));
32029
+ }
32030
+
32031
+ _class.prototype['@test resolves when no rendering is happening'] = function (assert) {
32032
+ return (0, _emberGlimmer.renderSettled)().then(function () {
32033
+ assert.ok(true, 'resolved even without rendering');
32034
+ });
32035
+ };
32036
+
32037
+ _class.prototype['@test resolves renderers exist but no runloops are triggered'] = function (assert) {
32038
+ this.render((0, _internalTestHelpers.strip)(_templateObject), { foo: 'bar' });
32039
+
32040
+ return (0, _emberGlimmer.renderSettled)().then(function () {
32041
+ assert.ok(true, 'resolved even without runloops');
32042
+ });
32043
+ };
32044
+
32045
+ _class.prototype['@test does not create extraneous promises'] = function (assert) {
32046
+ var first = (0, _emberGlimmer.renderSettled)();
32047
+ var second = (0, _emberGlimmer.renderSettled)();
32048
+
32049
+ assert.strictEqual(first, second);
32050
+
32051
+ return (0, _rsvp.all)([first, second]);
32052
+ };
32053
+
32054
+ _class.prototype['@test resolves when rendering has completed (after property update)'] = function () {
32055
+ var _this2 = this;
32056
+
32057
+ this.render((0, _internalTestHelpers.strip)(_templateObject), { foo: 'bar' });
32058
+
32059
+ this.assertText('bar');
32060
+ this.component.set('foo', 'baz');
32061
+ this.assertText('bar');
32062
+
32063
+ return (0, _emberGlimmer.renderSettled)().then(function () {
32064
+ _this2.assertText('baz');
32065
+ });
32066
+ };
32067
+
32068
+ _class.prototype['@test resolves in run loop when renderer has settled'] = function (assert) {
32069
+ var _this3 = this;
32070
+
32071
+ assert.expect(3);
32072
+
32073
+ this.render((0, _internalTestHelpers.strip)(_templateObject), { foo: 'bar' });
32074
+
32075
+ this.assertText('bar');
32076
+ var promise = void 0;
32077
+
32078
+ return (0, _emberMetal.run)(function () {
32079
+ _emberMetal.run.schedule('actions', null, function () {
32080
+ _this3.component.set('foo', 'set in actions');
32081
+
32082
+ promise = (0, _emberGlimmer.renderSettled)().then(function () {
32083
+ _this3.assertText('set in afterRender');
32084
+ });
32085
+
32086
+ _emberMetal.run.schedule('afterRender', null, function () {
32087
+ _this3.component.set('foo', 'set in afterRender');
32088
+ });
32089
+ });
32090
+
32091
+ // still not updated here
32092
+ _this3.assertText('bar');
32093
+
32094
+ return promise;
32095
+ });
32096
+ };
32097
+
32098
+ return _class;
32099
+ }(_internalTestHelpers.RenderingTestCase));
32100
+ });
32087
32101
  enifed('ember-glimmer/tests/integration/svg-test', ['ember-babel', 'ember-glimmer/tests/utils/test-case', 'ember-metal', 'ember-glimmer/tests/utils/abstract-test-case'], function (_emberBabel, _testCase, _emberMetal, _abstractTestCase) {
32088
32102
  'use strict';
32089
32103
 
@@ -37148,315 +37162,6 @@ enifed('ember-metal/tests/alias_test', ['ember-metal'], function (_emberMetal) {
37148
37162
  ok(!tag.validate(tagValue), label);
37149
37163
  }
37150
37164
  });
37151
- enifed('ember-metal/tests/binding/connect_test', ['ember-environment', 'internal-test-helpers', 'ember-metal'], function (_emberEnvironment, _internalTestHelpers, _emberMetal) {
37152
- 'use strict';
37153
-
37154
- function performTest(binding, a, b, get, set, connect) {
37155
- if (connect === undefined) {
37156
- connect = function () {
37157
- return binding.connect(a);
37158
- };
37159
- }
37160
-
37161
- ok(!_emberMetal.run.currentRunLoop, 'performTest should not have a currentRunLoop');
37162
-
37163
- equal(get(a, 'foo'), 'FOO', 'a should not have changed');
37164
- equal(get(b, 'bar'), 'BAR', 'b should not have changed');
37165
-
37166
- connect();
37167
-
37168
- equal(get(a, 'foo'), 'BAR', 'a should have changed');
37169
- equal(get(b, 'bar'), 'BAR', 'b should have changed');
37170
- //
37171
- // make sure changes sync both ways
37172
- (0, _emberMetal.run)(function () {
37173
- return set(b, 'bar', 'BAZZ');
37174
- });
37175
- equal(get(a, 'foo'), 'BAZZ', 'a should have changed');
37176
-
37177
- (0, _emberMetal.run)(function () {
37178
- return set(a, 'foo', 'BARF');
37179
- });
37180
- equal(get(b, 'bar'), 'BARF', 'a should have changed');
37181
- }
37182
-
37183
- var originalLookup = void 0,
37184
- lookup = void 0,
37185
- GlobalB = void 0;
37186
-
37187
- QUnit.module('Ember.Binding', {
37188
- setup: function () {
37189
- originalLookup = _emberEnvironment.context.lookup;
37190
- _emberEnvironment.context.lookup = lookup = {};
37191
- },
37192
- teardown: function () {
37193
- lookup = null;
37194
- _emberEnvironment.context.lookup = originalLookup;
37195
- }
37196
- });
37197
-
37198
- (0, _internalTestHelpers.testBoth)('Connecting a binding between two properties', function (get, set) {
37199
- var a = { foo: 'FOO', bar: 'BAR' };
37200
-
37201
- // a.bar -> a.foo
37202
- var binding = new _emberMetal.Binding('foo', 'bar');
37203
-
37204
- expectDeprecation(function () {
37205
- performTest(binding, a, a, get, set);
37206
- }, /`Ember\.Binding` is deprecated./);
37207
- });
37208
-
37209
- (0, _internalTestHelpers.testBoth)('Connecting a oneWay binding raises a deprecation', function () {
37210
- var a = { foo: 'FOO', bar: 'BAR', toString: function () {
37211
- return '<custom object ID here>';
37212
- }
37213
- };
37214
-
37215
- // a.bar -> a.foo
37216
- var binding = new _emberMetal.Binding('foo', 'bar').oneWay();
37217
-
37218
- expectDeprecation(function () {
37219
- binding.connect(a);
37220
- }, /`Ember.Binding` is deprecated/);
37221
- });
37222
-
37223
- (0, _internalTestHelpers.testBoth)('Connecting a binding between two objects', function (get, set) {
37224
- var b = { bar: 'BAR' };
37225
- var a = { foo: 'FOO', b: b };
37226
-
37227
- // b.bar -> a.foo
37228
- var binding = new _emberMetal.Binding('foo', 'b.bar');
37229
-
37230
- expectDeprecation(function () {
37231
- performTest(binding, a, b, get, set);
37232
- }, /`Ember\.Binding` is deprecated./);
37233
- });
37234
-
37235
- (0, _internalTestHelpers.testBoth)('Connecting a binding to path', function (get, set) {
37236
- var a = { foo: 'FOO' };
37237
- lookup['GlobalB'] = GlobalB = {
37238
- b: { bar: 'BAR' }
37239
- };
37240
-
37241
- var b = get(GlobalB, 'b');
37242
-
37243
- // globalB.b.bar -> a.foo
37244
- var binding = new _emberMetal.Binding('foo', 'GlobalB.b.bar');
37245
-
37246
- expectDeprecation(function () {
37247
- performTest(binding, a, b, get, set);
37248
- }, /`Ember\.Binding` is deprecated./);
37249
-
37250
- // make sure modifications update
37251
- b = { bar: 'BIFF' };
37252
-
37253
- (0, _emberMetal.run)(function () {
37254
- return set(GlobalB, 'b', b);
37255
- });
37256
-
37257
- equal(get(a, 'foo'), 'BIFF', 'a should have changed');
37258
- });
37259
-
37260
- (0, _internalTestHelpers.testBoth)('Calling connect more than once', function (get, set) {
37261
- var b = { bar: 'BAR' };
37262
- var a = { foo: 'FOO', b: b };
37263
-
37264
- // b.bar -> a.foo
37265
- var binding = new _emberMetal.Binding('foo', 'b.bar');
37266
-
37267
- expectDeprecation(function () {
37268
- performTest(binding, a, b, get, set, function () {
37269
- binding.connect(a);
37270
- binding.connect(a);
37271
- });
37272
- }, /`Ember\.Binding` is deprecated./);
37273
- });
37274
-
37275
- QUnit.test('inherited bindings should sync on create', function () {
37276
- var a = void 0;
37277
- (0, _emberMetal.run)(function () {
37278
- function A() {
37279
- (0, _emberMetal.bind)(this, 'foo', 'bar.baz');
37280
- }
37281
-
37282
- expectDeprecation(function () {
37283
- return a = new A();
37284
- }, /`Ember\.Binding` is deprecated/);
37285
-
37286
- (0, _emberMetal.set)(a, 'bar', { baz: 'BAZ' });
37287
- });
37288
-
37289
- equal((0, _emberMetal.get)(a, 'foo'), 'BAZ', 'should have synced binding on new obj');
37290
- });
37291
- });
37292
- enifed('ember-metal/tests/binding/sync_test', ['internal-test-helpers', 'ember-metal'], function (_internalTestHelpers, _emberMetal) {
37293
- 'use strict';
37294
-
37295
- QUnit.module('system/binding/sync_test.js');
37296
-
37297
- (0, _internalTestHelpers.testBoth)('bindings should not sync twice in a single run loop', function (get, set) {
37298
- var a = void 0,
37299
- b = void 0,
37300
- setValue = void 0;
37301
- var setCalled = 0;
37302
- var getCalled = 0;
37303
-
37304
- (0, _emberMetal.run)(function () {
37305
- a = {};
37306
-
37307
- (0, _emberMetal.defineProperty)(a, 'foo', (0, _emberMetal.computed)({
37308
- get: function () {
37309
- getCalled++;
37310
- return setValue;
37311
- },
37312
- set: function (key, value) {
37313
- setCalled++;
37314
- (0, _emberMetal.propertyWillChange)(this, key);
37315
- setValue = value;
37316
- (0, _emberMetal.propertyDidChange)(this, key);
37317
- return value;
37318
- }
37319
- }).volatile());
37320
-
37321
- b = {
37322
- a: a
37323
- };
37324
-
37325
- expectDeprecation(function () {
37326
- return (0, _emberMetal.bind)(b, 'foo', 'a.foo');
37327
- }, /`Ember.Binding` is deprecated/);
37328
- });
37329
-
37330
- // reset after initial binding synchronization
37331
- getCalled = 0;
37332
-
37333
- (0, _emberMetal.run)(function () {
37334
- set(a, 'foo', 'trollface');
37335
- });
37336
-
37337
- equal(get(b, 'foo'), 'trollface', 'the binding should sync');
37338
- equal(setCalled, 1, 'Set should only be called once');
37339
- equal(getCalled, 1, 'Get should only be called once');
37340
- });
37341
-
37342
- (0, _internalTestHelpers.testBoth)('bindings should not infinite loop if computed properties return objects', function (get) {
37343
- var a = void 0,
37344
- b = void 0;
37345
- var getCalled = 0;
37346
-
37347
- (0, _emberMetal.run)(function () {
37348
- a = {};
37349
-
37350
- (0, _emberMetal.defineProperty)(a, 'foo', (0, _emberMetal.computed)(function () {
37351
- getCalled++;
37352
- if (getCalled > 1000) {
37353
- throw 'infinite loop detected';
37354
- }
37355
- return ['foo', 'bar'];
37356
- }));
37357
-
37358
- b = {
37359
- a: a
37360
- };
37361
-
37362
- expectDeprecation(function () {
37363
- return (0, _emberMetal.bind)(b, 'foo', 'a.foo');
37364
- }, /`Ember.Binding` is deprecated/);
37365
- });
37366
-
37367
- deepEqual(get(b, 'foo'), ['foo', 'bar'], 'the binding should sync');
37368
- equal(getCalled, 1, 'Get should only be called once');
37369
- });
37370
-
37371
- (0, _internalTestHelpers.testBoth)('bindings should do the right thing when observers trigger bindings in the opposite direction', function (get, set) {
37372
- var a = void 0,
37373
- b = void 0,
37374
- c = void 0;
37375
-
37376
- (0, _emberMetal.run)(function () {
37377
- a = {
37378
- foo: 'trololol'
37379
- };
37380
-
37381
- b = {
37382
- a: a
37383
- };
37384
-
37385
- var deprecationMessage = /`Ember.Binding` is deprecated/;
37386
-
37387
- expectDeprecation(function () {
37388
- return (0, _emberMetal.bind)(b, 'foo', 'a.foo');
37389
- }, deprecationMessage);
37390
-
37391
- c = {
37392
- a: a
37393
- };
37394
-
37395
- expectDeprecation(function () {
37396
- (0, _emberMetal.bind)(c, 'foo', 'a.foo');
37397
- }, deprecationMessage);
37398
- });
37399
-
37400
- (0, _emberMetal.addObserver)(b, 'foo', function () {
37401
- return set(c, 'foo', 'what is going on');
37402
- });
37403
-
37404
- (0, _emberMetal.run)(function () {
37405
- return set(a, 'foo', 'trollface');
37406
- });
37407
-
37408
- equal(get(a, 'foo'), 'what is going on');
37409
- });
37410
-
37411
- (0, _internalTestHelpers.testBoth)('bindings should not try to sync destroyed objects', function (get, set) {
37412
- var a = void 0,
37413
- b = void 0;
37414
-
37415
- (0, _emberMetal.run)(function () {
37416
- a = {
37417
- foo: 'trololol'
37418
- };
37419
-
37420
- b = {
37421
- a: a
37422
- };
37423
-
37424
- var deprecationMessage = /`Ember.Binding` is deprecated/;
37425
-
37426
- expectDeprecation(function () {
37427
- return (0, _emberMetal.bind)(b, 'foo', 'a.foo');
37428
- }, deprecationMessage);
37429
- });
37430
-
37431
- (0, _emberMetal.run)(function () {
37432
- set(a, 'foo', 'trollface');
37433
- set(b, 'isDestroyed', true);
37434
- ok(true, 'should not raise');
37435
- });
37436
-
37437
- (0, _emberMetal.run)(function () {
37438
- a = {
37439
- foo: 'trololol'
37440
- };
37441
-
37442
- b = {
37443
- a: a
37444
- };
37445
-
37446
- var deprecationMessage = /`Ember.Binding` is deprecated/;
37447
-
37448
- expectDeprecation(function () {
37449
- return (0, _emberMetal.bind)(b, 'foo', 'a.foo');
37450
- }, deprecationMessage);
37451
- });
37452
-
37453
- (0, _emberMetal.run)(function () {
37454
- set(b, 'foo', 'trollface');
37455
- set(a, 'isDestroyed', true);
37456
- ok(true, 'should not raise');
37457
- });
37458
- });
37459
- });
37460
37165
  enifed('ember-metal/tests/cache_test', ['ember-metal'], function (_emberMetal) {
37461
37166
  'use strict';
37462
37167
 
@@ -48996,56 +48701,6 @@ enifed('ember-runtime/tests/ext/function_test', ['ember-environment', 'ember-met
48996
48701
  equal(get(obj, 'fullName'), 'Wilma ', 'should return the new computed value');
48997
48702
  });
48998
48703
  });
48999
- enifed('ember-runtime/tests/ext/mixin_test', ['ember-metal'], function (_emberMetal) {
49000
- 'use strict';
49001
-
49002
- QUnit.module('system/mixin/binding_test');
49003
-
49004
- QUnit.test('Defining a property ending in Binding should setup binding when applied', function () {
49005
- var MyMixin = _emberMetal.Mixin.create({
49006
- fooBinding: 'bar.baz'
49007
- });
49008
-
49009
- var obj = { bar: { baz: 'BIFF' } };
49010
-
49011
- (0, _emberMetal.run)(function () {
49012
- var deprecationMessage = /`Ember.Binding` is deprecated/;
49013
-
49014
- expectDeprecation(function () {
49015
- MyMixin.apply(obj);
49016
- }, deprecationMessage);
49017
- });
49018
-
49019
- ok((0, _emberMetal.get)(obj, 'fooBinding') instanceof _emberMetal.Binding, 'should be a binding object');
49020
- equal((0, _emberMetal.get)(obj, 'foo'), 'BIFF', 'binding should be created and synced');
49021
- });
49022
-
49023
- QUnit.test('Defining a property ending in Binding should apply to prototype children', function () {
49024
- var MyMixin = (0, _emberMetal.run)(function () {
49025
- return _emberMetal.Mixin.create({
49026
- fooBinding: 'bar.baz'
49027
- });
49028
- });
49029
-
49030
- var obj = { bar: { baz: 'BIFF' } };
49031
-
49032
- (0, _emberMetal.run)(function () {
49033
- var deprecationMessage = /`Ember.Binding` is deprecated/;
49034
-
49035
- expectDeprecation(function () {
49036
- MyMixin.apply(obj);
49037
- }, deprecationMessage);
49038
- });
49039
-
49040
- var obj2 = Object.create(obj);
49041
- (0, _emberMetal.run)(function () {
49042
- return (0, _emberMetal.set)((0, _emberMetal.get)(obj2, 'bar'), 'baz', 'BARG');
49043
- });
49044
-
49045
- ok((0, _emberMetal.get)(obj2, 'fooBinding') instanceof _emberMetal.Binding, 'should be a binding object');
49046
- equal((0, _emberMetal.get)(obj2, 'foo'), 'BARG', 'binding should be created and synced');
49047
- });
49048
- });
49049
48704
  enifed('ember-runtime/tests/ext/rsvp_test', ['ember-metal', 'ember-runtime/ext/rsvp', 'ember-debug'], function (_emberMetal, _rsvp, _emberDebug) {
49050
48705
  'use strict';
49051
48706
 
@@ -49437,7 +49092,6 @@ enifed('ember-runtime/tests/legacy_1x/mixins/observable/observable_test', ['embe
49437
49092
  rule on using capital letters for property paths.
49438
49093
  * Removed test passing context to addObserver. context param is no longer
49439
49094
  supported.
49440
- * Changed calls to Ember.Binding.flushPendingChanges() -> run.sync()
49441
49095
  * removed test in observer around line 862 that expected key/value to be
49442
49096
  the last item in the chained path. Should be root and chained path
49443
49097
 
@@ -49928,45 +49582,6 @@ enifed('ember-runtime/tests/legacy_1x/mixins/observable/observable_test', ['embe
49928
49582
  equal(depObj.get('menuPrice'), 6, 'cache is properly invalidated after nested property changes');
49929
49583
  });
49930
49584
 
49931
- QUnit.test('nested dependent keys should propagate after they update', function () {
49932
- var bindObj;
49933
- (0, _emberMetal.run)(function () {
49934
- lookup.DepObj = ObservableObject.extend({
49935
- price: (0, _emberMetal.computed)(function () {
49936
- return this.get('restaurant.menu.price');
49937
- }).property('restaurant.menu.price')
49938
- }).create({
49939
- restaurant: ObservableObject.create({
49940
- menu: ObservableObject.create({
49941
- price: 5
49942
- })
49943
- })
49944
- });
49945
-
49946
- expectDeprecation(function () {
49947
- bindObj = ObservableObject.extend({
49948
- priceBinding: 'DepObj.price'
49949
- }).create();
49950
- }, /`Ember.Binding` is deprecated/);
49951
- });
49952
-
49953
- equal(bindObj.get('price'), 5, 'precond - binding propagates');
49954
-
49955
- (0, _emberMetal.run)(function () {
49956
- lookup.DepObj.set('restaurant.menu.price', 10);
49957
- });
49958
-
49959
- equal(bindObj.get('price'), 10, 'binding propagates after a nested dependent keys updates');
49960
-
49961
- (0, _emberMetal.run)(function () {
49962
- lookup.DepObj.set('restaurant.menu', ObservableObject.create({
49963
- price: 15
49964
- }));
49965
- });
49966
-
49967
- equal(bindObj.get('price'), 15, 'binding propagates after a middle dependent keys updates');
49968
- });
49969
-
49970
49585
  QUnit.test('cacheable nested dependent keys should clear after their dependencies update', function () {
49971
49586
  ok(true);
49972
49587
 
@@ -50241,73 +49856,6 @@ enifed('ember-runtime/tests/legacy_1x/mixins/observable/observable_test', ['embe
50241
49856
  }
50242
49857
  equal(encounteredError, false);
50243
49858
  });
50244
-
50245
- QUnit.module('Bind function', {
50246
- setup: function () {
50247
- objectA = ObservableObject.create({
50248
- name: 'Sproutcore',
50249
- location: 'Timbaktu'
50250
- });
50251
-
50252
- objectB = ObservableObject.create({
50253
- normal: 'value',
50254
- computed: function () {
50255
- this.normal = 'newValue';
50256
- }
50257
- });
50258
-
50259
- lookup = _emberEnvironment.context.lookup = {
50260
- 'Namespace': {
50261
- objectA: objectA,
50262
- objectB: objectB
50263
- }
50264
- };
50265
- },
50266
- teardown: function () {
50267
- _emberEnvironment.context.lookup = originalLookup;
50268
- }
50269
- });
50270
-
50271
- QUnit.test('should bind property with method parameter as undefined', function () {
50272
- // creating binding
50273
- (0, _emberMetal.run)(function () {
50274
- expectDeprecation(function () {
50275
- objectA.bind('name', 'Namespace.objectB.normal', undefined);
50276
- }, /`Ember.Binding` is deprecated/);
50277
- });
50278
-
50279
- // now make a change to see if the binding triggers.
50280
- (0, _emberMetal.run)(function () {
50281
- objectB.set('normal', 'changedValue');
50282
- });
50283
-
50284
- // support new-style bindings if available
50285
- equal('changedValue', objectA.get('name'), 'objectA.name is bound');
50286
- });
50287
-
50288
- // ..........................................................
50289
- // SPECIAL CASES
50290
- //
50291
-
50292
- QUnit.test('changing chained observer object to null should not raise exception', function () {
50293
- var obj = ObservableObject.create({
50294
- foo: ObservableObject.create({
50295
- bar: ObservableObject.create({ bat: 'BAT' })
50296
- })
50297
- });
50298
-
50299
- var callCount = 0;
50300
- obj.foo.addObserver('bar.bat', obj, function () {
50301
- callCount++;
50302
- });
50303
-
50304
- (0, _emberMetal.run)(function () {
50305
- obj.foo.set('bar', null);
50306
- });
50307
-
50308
- equal(callCount, 1, 'changing bar should trigger observer');
50309
- expect(1);
50310
- });
50311
49859
  });
50312
49860
  enifed('ember-runtime/tests/legacy_1x/mixins/observable/observersForKey_test', ['ember-metal', 'ember-runtime/system/object', 'ember-runtime/mixins/observable'], function (_emberMetal, _object, _observable) {
50313
49861
  'use strict';
@@ -50492,313 +50040,6 @@ enifed('ember-runtime/tests/legacy_1x/mixins/observable/propertyChanges_test', [
50492
50040
  equal(a.get('b'), 'foo', 'should have invalidated the cache so that the newly set value is actually set');
50493
50041
  });
50494
50042
  });
50495
- enifed('ember-runtime/tests/legacy_1x/system/binding_test', ['ember-environment', 'ember-metal', 'ember-runtime/system/object'], function (_emberEnvironment, _emberMetal, _object) {
50496
- 'use strict';
50497
-
50498
- /*
50499
- NOTE: This test is adapted from the 1.x series of unit tests. The tests
50500
- are the same except for places where we intend to break the API we instead
50501
- validate that we warn the developer appropriately.
50502
-
50503
- CHANGES FROM 1.6:
50504
-
50505
- * All calls to run.sync() were changed to
50506
- run.sync()
50507
-
50508
- * Bindings no longer accept a root object as their second param. Instead
50509
- our test binding objects were put under a single object they could
50510
- originate from.
50511
-
50512
- * tests that inspected internal properties were removed.
50513
-
50514
- * converted foo.get/foo.set to use get/Ember.set
50515
-
50516
- * Removed tests for Binding.isConnected. Since binding instances are now
50517
- shared this property no longer makes sense.
50518
-
50519
- * Changed call calls for obj.bind(...) to bind(obj, ...);
50520
-
50521
- * Changed all calls to sc_super() to this._super(...arguments)
50522
-
50523
- * Changed all calls to disconnect() to pass the root object.
50524
-
50525
- * removed calls to Binding.destroy() as that method is no longer useful
50526
- (or defined)
50527
-
50528
- * changed use of T_STRING to 'string'
50529
- */
50530
-
50531
- // ========================================================================
50532
- // Binding Tests
50533
- // ========================================================================
50534
-
50535
- var TestNamespace = void 0,
50536
- fromObject = void 0,
50537
- toObject = void 0,
50538
- binding = void 0,
50539
- Bon1 = void 0,
50540
- bon2 = void 0,
50541
- root = void 0; // global variables
50542
- var originalLookup = _emberEnvironment.context.lookup;
50543
- var lookup = void 0;
50544
-
50545
- QUnit.module('basic object binding', {
50546
- setup: function () {
50547
- fromObject = _object.default.create({ value: 'start' });
50548
- toObject = _object.default.create({ value: 'end' });
50549
- root = { fromObject: fromObject, toObject: toObject };
50550
- (0, _emberMetal.run)(function () {
50551
- expectDeprecation(function () {
50552
- binding = (0, _emberMetal.bind)(root, 'toObject.value', 'fromObject.value');
50553
- }, /`Ember\.Binding` is deprecated./);
50554
- });
50555
- }
50556
- });
50557
-
50558
- QUnit.test('binding should have synced on connect', function () {
50559
- equal((0, _emberMetal.get)(toObject, 'value'), 'start', 'toObject.value should match fromObject.value');
50560
- });
50561
-
50562
- QUnit.test('fromObject change should propagate to toObject only after flush', function () {
50563
- (0, _emberMetal.run)(function () {
50564
- (0, _emberMetal.set)(fromObject, 'value', 'change');
50565
- equal((0, _emberMetal.get)(toObject, 'value'), 'start');
50566
- });
50567
- equal((0, _emberMetal.get)(toObject, 'value'), 'change');
50568
- });
50569
-
50570
- QUnit.test('toObject change should propagate to fromObject only after flush', function () {
50571
- (0, _emberMetal.run)(function () {
50572
- (0, _emberMetal.set)(toObject, 'value', 'change');
50573
- equal((0, _emberMetal.get)(fromObject, 'value'), 'start');
50574
- });
50575
- equal((0, _emberMetal.get)(fromObject, 'value'), 'change');
50576
- });
50577
-
50578
- QUnit.test('deferred observing during bindings', function () {
50579
- // setup special binding
50580
- fromObject = _object.default.create({
50581
- value1: 'value1',
50582
- value2: 'value2'
50583
- });
50584
-
50585
- toObject = _object.default.extend({
50586
- observer: (0, _emberMetal.observer)('value1', 'value2', function () {
50587
- equal((0, _emberMetal.get)(this, 'value1'), 'CHANGED', 'value1 when observer fires');
50588
- equal((0, _emberMetal.get)(this, 'value2'), 'CHANGED', 'value2 when observer fires');
50589
- this.callCount++;
50590
- })
50591
- }).create({
50592
- value1: 'value1',
50593
- value2: 'value2',
50594
-
50595
- callCount: 0
50596
- });
50597
-
50598
- var root = { fromObject: fromObject, toObject: toObject };
50599
- (0, _emberMetal.run)(function () {
50600
- expectDeprecation(function () {
50601
- (0, _emberMetal.bind)(root, 'toObject.value1', 'fromObject.value1');
50602
- }, /`Ember\.Binding` is deprecated./);
50603
-
50604
- expectDeprecation(function () {
50605
- (0, _emberMetal.bind)(root, 'toObject.value2', 'fromObject.value2');
50606
- }, /`Ember\.Binding` is deprecated./);
50607
-
50608
- // change both value1 + value2, then flush bindings. observer should only
50609
- // fire after bindings are done flushing.
50610
- (0, _emberMetal.set)(fromObject, 'value1', 'CHANGED');
50611
- (0, _emberMetal.set)(fromObject, 'value2', 'CHANGED');
50612
- });
50613
-
50614
- equal(toObject.callCount, 2, 'should call observer twice');
50615
- });
50616
-
50617
- QUnit.test('binding disconnection actually works', function () {
50618
- binding.disconnect(root);
50619
- (0, _emberMetal.run)(function () {
50620
- (0, _emberMetal.set)(fromObject, 'value', 'change');
50621
- });
50622
- equal((0, _emberMetal.get)(toObject, 'value'), 'start');
50623
- });
50624
-
50625
- var first = void 0,
50626
- second = void 0,
50627
- third = void 0; // global variables
50628
-
50629
- // ..........................................................
50630
- // chained binding
50631
- //
50632
-
50633
- QUnit.module('chained binding', {
50634
- setup: function () {
50635
- (0, _emberMetal.run)(function () {
50636
- first = _object.default.create({ output: 'first' });
50637
-
50638
- second = _object.default.extend({
50639
- inputDidChange: (0, _emberMetal.observer)('input', function () {
50640
- (0, _emberMetal.set)(this, 'output', (0, _emberMetal.get)(this, 'input'));
50641
- })
50642
- }).create({
50643
- input: 'second',
50644
- output: 'second'
50645
- });
50646
-
50647
- third = _object.default.create({ input: 'third' });
50648
-
50649
- root = { first: first, second: second, third: third };
50650
-
50651
- expectDeprecation(function () {
50652
- (0, _emberMetal.bind)(root, 'second.input', 'first.output');
50653
- }, /`Ember\.Binding` is deprecated./);
50654
-
50655
- expectDeprecation(function () {
50656
- (0, _emberMetal.bind)(root, 'second.output', 'third.input');
50657
- }, /`Ember\.Binding` is deprecated./);
50658
- });
50659
- },
50660
- teardown: function () {
50661
- _emberMetal.run.cancelTimers();
50662
- }
50663
- });
50664
-
50665
- QUnit.test('changing first output should propagate to third after flush', function () {
50666
- (0, _emberMetal.run)(function () {
50667
- (0, _emberMetal.set)(first, 'output', 'change');
50668
- equal('change', (0, _emberMetal.get)(first, 'output'), 'first.output');
50669
- ok('change' !== (0, _emberMetal.get)(third, 'input'), 'third.input');
50670
- });
50671
-
50672
- equal('change', (0, _emberMetal.get)(first, 'output'), 'first.output');
50673
- equal('change', (0, _emberMetal.get)(second, 'input'), 'second.input');
50674
- equal('change', (0, _emberMetal.get)(second, 'output'), 'second.output');
50675
- equal('change', (0, _emberMetal.get)(third, 'input'), 'third.input');
50676
- });
50677
-
50678
- // ..........................................................
50679
- // Custom Binding
50680
- //
50681
-
50682
- QUnit.module('Custom Binding', {
50683
- setup: function () {
50684
- _emberEnvironment.context.lookup = lookup = {};
50685
-
50686
- Bon1 = _object.default.extend({
50687
- value1: 'hi',
50688
- value2: 83,
50689
- array1: []
50690
- });
50691
-
50692
- bon2 = _object.default.create({
50693
- val1: 'hello',
50694
- val2: 25,
50695
- arr: [1, 2, 3, 4]
50696
- });
50697
-
50698
- _emberEnvironment.context.lookup['TestNamespace'] = TestNamespace = {
50699
- bon2: bon2,
50700
- Bon1: Bon1
50701
- };
50702
- },
50703
- teardown: function () {
50704
- _emberEnvironment.context.lookup = originalLookup;
50705
- Bon1 = bon2 = TestNamespace = null;
50706
- _emberMetal.run.cancelTimers();
50707
- }
50708
- });
50709
-
50710
- QUnit.test('two bindings to the same value should sync in the order they are initialized', function () {
50711
- _emberMetal.run.begin();
50712
-
50713
- var a = _object.default.create({
50714
- foo: 'bar'
50715
- });
50716
-
50717
- var b = _object.default.extend({
50718
- C: _object.default.extend({
50719
- foo: 'bee',
50720
- fooBinding: 'owner.foo'
50721
- }),
50722
-
50723
- init: function () {
50724
- this._super.apply(this, arguments);
50725
- (0, _emberMetal.set)(this, 'c', this.C.create({ owner: this }));
50726
- }
50727
- });
50728
-
50729
- expectDeprecation(function () {
50730
- b = b.create({
50731
- foo: 'baz',
50732
- fooBinding: 'a.foo',
50733
- a: a
50734
- });
50735
- }, /`Ember\.Binding` is deprecated./);
50736
-
50737
- _emberMetal.run.end();
50738
-
50739
- equal((0, _emberMetal.get)(a, 'foo'), 'bar', 'a.foo should not change');
50740
- equal((0, _emberMetal.get)(b, 'foo'), 'bar', 'a.foo should propagate up to b.foo');
50741
- equal((0, _emberMetal.get)(b.c, 'foo'), 'bar', 'a.foo should propagate up to b.c.foo');
50742
- });
50743
-
50744
- // ..........................................................
50745
- // propertyNameBinding with longhand
50746
- //
50747
-
50748
- QUnit.module('propertyNameBinding with longhand', {
50749
- setup: function () {
50750
- _emberEnvironment.context.lookup = lookup = {};
50751
-
50752
- lookup['TestNamespace'] = TestNamespace = {};
50753
- (0, _emberMetal.run)(function () {
50754
- TestNamespace.fromObject = _object.default.create({
50755
- value: 'originalValue'
50756
- });
50757
-
50758
- expectDeprecation(function () {
50759
- TestNamespace.toObject = _object.default.extend({
50760
- valueBinding: _emberMetal.Binding.from('TestNamespace.fromObject.value'),
50761
- relativeBinding: _emberMetal.Binding.from('localValue')
50762
- }).create({
50763
- localValue: 'originalLocal'
50764
- });
50765
- }, /`Ember\.Binding` is deprecated./);
50766
- });
50767
- },
50768
- teardown: function () {
50769
- TestNamespace = undefined;
50770
- _emberEnvironment.context.lookup = originalLookup;
50771
- }
50772
- });
50773
-
50774
- QUnit.test('works with full path', function () {
50775
- (0, _emberMetal.run)(function () {
50776
- return (0, _emberMetal.set)(TestNamespace.fromObject, 'value', 'updatedValue');
50777
- });
50778
-
50779
- equal((0, _emberMetal.get)(TestNamespace.toObject, 'value'), 'updatedValue');
50780
-
50781
- (0, _emberMetal.run)(function () {
50782
- return (0, _emberMetal.set)(TestNamespace.fromObject, 'value', 'newerValue');
50783
- });
50784
-
50785
- equal((0, _emberMetal.get)(TestNamespace.toObject, 'value'), 'newerValue');
50786
- });
50787
-
50788
- QUnit.test('works with local path', function () {
50789
- (0, _emberMetal.run)(function () {
50790
- return (0, _emberMetal.set)(TestNamespace.toObject, 'localValue', 'updatedValue');
50791
- });
50792
-
50793
- equal((0, _emberMetal.get)(TestNamespace.toObject, 'relative'), 'updatedValue');
50794
-
50795
- (0, _emberMetal.run)(function () {
50796
- return (0, _emberMetal.set)(TestNamespace.toObject, 'localValue', 'newerValue');
50797
- });
50798
-
50799
- equal((0, _emberMetal.get)(TestNamespace.toObject, 'relative'), 'newerValue');
50800
- });
50801
- });
50802
50043
  enifed('ember-runtime/tests/legacy_1x/system/object/base_test', ['ember-metal', 'ember-runtime/system/object'], function (_emberMetal, _object) {
50803
50044
  'use strict';
50804
50045
 
@@ -50890,173 +50131,6 @@ enifed('ember-runtime/tests/legacy_1x/system/object/base_test', ['ember-metal',
50890
50131
  ok(obj.detectInstance(obj.create()));
50891
50132
  });
50892
50133
  });
50893
- enifed('ember-runtime/tests/legacy_1x/system/object/bindings_test', ['ember-environment', 'ember-metal', 'ember-runtime/system/object'], function (_emberEnvironment, _emberMetal, _object) {
50894
- 'use strict';
50895
-
50896
- /*
50897
- NOTE: This test is adapted from the 1.x series of unit tests. The tests
50898
- are the same except for places where we intend to break the API we instead
50899
- validate that we warn the developer appropriately.
50900
-
50901
- CHANGES FROM 1.6:
50902
-
50903
- * changed Ember.Bending.flushPendingChanges() -> run.sync();
50904
- * changes obj.set() and obj.get() to Ember.set() and Ember.get()
50905
- * Fixed an actual bug in unit tests around line 133
50906
- * fixed 'bindings should disconnect on destroy' test to use destroy.
50907
- */
50908
-
50909
- // ========================================================================
50910
- // EmberObject bindings Tests
50911
- // ========================================================================
50912
-
50913
- var originalLookup = _emberEnvironment.context.lookup;
50914
- var testObject = void 0,
50915
- fromObject = void 0,
50916
- TestObject = void 0;
50917
- var TestNamespace = void 0,
50918
- lookup = void 0;
50919
-
50920
- QUnit.module('bind() method', {
50921
- setup: function () {
50922
- _emberEnvironment.context.lookup = lookup = {};
50923
-
50924
- testObject = _object.default.create({
50925
- foo: 'bar',
50926
- bar: 'foo',
50927
- extraObject: null
50928
- });
50929
-
50930
- fromObject = _object.default.create({
50931
- bar: 'foo',
50932
- extraObject: null
50933
- });
50934
-
50935
- lookup['TestNamespace'] = TestNamespace = {
50936
- fromObject: fromObject,
50937
- testObject: testObject
50938
- };
50939
- },
50940
- teardown: function () {
50941
- testObject = fromObject = null;
50942
- _emberEnvironment.context.lookup = originalLookup;
50943
- }
50944
- });
50945
-
50946
- QUnit.test('bind(TestNamespace.fromObject.bar) should follow absolute path', function () {
50947
- (0, _emberMetal.run)(function () {
50948
- expectDeprecation(function () {
50949
- // create binding
50950
- testObject.bind('foo', 'TestNamespace.fromObject.bar');
50951
- }, /`Ember.Binding` is deprecated/);
50952
-
50953
- // now make a change to see if the binding triggers.
50954
- (0, _emberMetal.set)(fromObject, 'bar', 'changedValue');
50955
- });
50956
-
50957
- equal('changedValue', (0, _emberMetal.get)(testObject, 'foo'), 'testObject.foo');
50958
- });
50959
-
50960
- QUnit.test('bind(.bar) should bind to relative path', function () {
50961
- (0, _emberMetal.run)(function () {
50962
- expectDeprecation(function () {
50963
- // create binding
50964
- testObject.bind('foo', 'bar');
50965
- }, /`Ember.Binding` is deprecated/);
50966
-
50967
- // now make a change to see if the binding triggers.
50968
- (0, _emberMetal.set)(testObject, 'bar', 'changedValue');
50969
- });
50970
-
50971
- equal('changedValue', (0, _emberMetal.get)(testObject, 'foo'), 'testObject.foo');
50972
- });
50973
-
50974
- QUnit.module('fooBinding method', {
50975
- setup: function () {
50976
- _emberEnvironment.context.lookup = lookup = {};
50977
-
50978
- TestObject = _object.default.extend({
50979
- foo: 'bar',
50980
- bar: 'foo',
50981
- extraObject: null
50982
- });
50983
-
50984
- fromObject = _object.default.create({
50985
- bar: 'foo',
50986
- extraObject: null
50987
- });
50988
-
50989
- lookup['TestNamespace'] = TestNamespace = {
50990
- fromObject: fromObject,
50991
- testObject: TestObject
50992
- };
50993
- },
50994
- teardown: function () {
50995
- _emberEnvironment.context.lookup = originalLookup;
50996
- TestObject = fromObject = null;
50997
- // delete TestNamespace;
50998
- }
50999
- });
51000
-
51001
- var deprecationMessage = /`Ember.Binding` is deprecated/;
51002
-
51003
- QUnit.test('fooBinding: TestNamespace.fromObject.bar should follow absolute path', function () {
51004
- (0, _emberMetal.run)(function () {
51005
- expectDeprecation(function () {
51006
- // create binding
51007
- testObject = TestObject.extend({
51008
- fooBinding: 'TestNamespace.fromObject.bar'
51009
- }).create();
51010
- }, deprecationMessage);
51011
-
51012
- // now make a change to see if the binding triggers.
51013
- (0, _emberMetal.set)(fromObject, 'bar', 'changedValue');
51014
- });
51015
-
51016
- equal('changedValue', (0, _emberMetal.get)(testObject, 'foo'), 'testObject.foo');
51017
- });
51018
-
51019
- QUnit.test('fooBinding: .bar should bind to relative path', function () {
51020
- (0, _emberMetal.run)(function () {
51021
- expectDeprecation(function () {
51022
- // create binding
51023
- testObject = TestObject.extend({
51024
- fooBinding: 'bar'
51025
- }).create();
51026
- }, deprecationMessage);
51027
-
51028
- // now make a change to see if the binding triggers.
51029
- (0, _emberMetal.set)(testObject, 'bar', 'changedValue');
51030
- });
51031
-
51032
- equal('changedValue', (0, _emberMetal.get)(testObject, 'foo'), 'testObject.foo');
51033
- });
51034
-
51035
- QUnit.test('fooBinding: should disconnect bindings when destroyed', function () {
51036
- (0, _emberMetal.run)(function () {
51037
- expectDeprecation(function () {
51038
- // create binding
51039
- testObject = TestObject.extend({
51040
- fooBinding: 'TestNamespace.fromObject.bar'
51041
- }).create();
51042
- }, deprecationMessage);
51043
-
51044
- (0, _emberMetal.set)(TestNamespace.fromObject, 'bar', 'BAZ');
51045
- });
51046
-
51047
- equal((0, _emberMetal.get)(testObject, 'foo'), 'BAZ', 'binding should have synced');
51048
-
51049
- (0, _emberMetal.run)(function () {
51050
- return testObject.destroy();
51051
- });
51052
-
51053
- (0, _emberMetal.run)(function () {
51054
- return (0, _emberMetal.set)(TestNamespace.fromObject, 'bar', 'BIFF');
51055
- });
51056
-
51057
- ok((0, _emberMetal.get)(testObject, 'foo') !== 'bar', 'binding should not have synced');
51058
- });
51059
- });
51060
50134
  enifed('ember-runtime/tests/legacy_1x/system/object/concatenated_test', ['ember-metal', 'ember-runtime/system/object'], function (_emberMetal, _object) {
51061
50135
  'use strict';
51062
50136
 
@@ -51160,114 +50234,6 @@ enifed('ember-runtime/tests/legacy_1x/system/object/concatenated_test', ['ember-
51160
50234
  deepEqual(values, expected, 'should concatenate functions property (expected: ' + expected + ', got: ' + values + ')');
51161
50235
  });
51162
50236
  });
51163
- enifed('ember-runtime/tests/legacy_1x/system/run_loop_test', ['ember-metal', 'ember-runtime/mixins/observable', 'ember-runtime/system/object'], function (_emberMetal, _observable, _object) {
51164
- 'use strict';
51165
-
51166
- /*
51167
- NOTE: This test is adapted from the 1.x series of unit tests. The tests
51168
- are the same except for places where we intend to break the API we instead
51169
- validate that we warn the developer appropriately.
51170
-
51171
- CHANGES FROM 1.6:
51172
-
51173
- * Updated the API usage for setting up and syncing Binding since these
51174
- are not the APIs this file is testing.
51175
-
51176
- * Disabled a call to invokeOnce() around line 127 because it appeared to be
51177
- broken anyway. I don't think it ever even worked.
51178
- */
51179
-
51180
- var MyApp = void 0;
51181
-
51182
- QUnit.module('System:run_loop() - chained binding', {
51183
- setup: function () {
51184
- MyApp = {};
51185
- MyApp.first = _object.default.extend(_observable.default).create({
51186
- output: 'MyApp.first'
51187
- });
51188
-
51189
- MyApp.second = _object.default.extend(_observable.default, {
51190
- inputDidChange: (0, _emberMetal.observer)('input', function () {
51191
- this.set('output', this.get('input'));
51192
- })
51193
- }).create({
51194
- input: 'MyApp.second',
51195
- output: 'MyApp.second'
51196
- });
51197
-
51198
- MyApp.third = _object.default.extend(_observable.default).create({
51199
- input: 'MyApp.third'
51200
- });
51201
- }
51202
- });
51203
-
51204
- var deprecationMessage = /`Ember.Binding` is deprecated/;
51205
-
51206
- QUnit.test('Should propagate bindings after the RunLoop completes (using Ember.RunLoop)', function () {
51207
- (0, _emberMetal.run)(function () {
51208
- //Binding of output of MyApp.first object to input of MyApp.second object
51209
- expectDeprecation(function () {
51210
- _emberMetal.Binding.from('first.output').to('second.input').connect(MyApp);
51211
- }, deprecationMessage);
51212
-
51213
- //Binding of output of MyApp.second object to input of MyApp.third object
51214
- expectDeprecation(function () {
51215
- _emberMetal.Binding.from('second.output').to('third.input').connect(MyApp);
51216
- }, deprecationMessage);
51217
- });
51218
-
51219
- (0, _emberMetal.run)(function () {
51220
- // Based on the above binding if you change the output of MyApp.first
51221
- // object it should change the all the variable of
51222
- // MyApp.first,MyApp.second and MyApp.third object
51223
- MyApp.first.set('output', 'change');
51224
-
51225
- //Changes the output of the MyApp.first object
51226
- equal(MyApp.first.get('output'), 'change');
51227
-
51228
- //since binding has not taken into effect the value still remains as change.
51229
- equal(MyApp.second.get('output'), 'MyApp.first');
51230
- }); // allows bindings to trigger...
51231
-
51232
- //Value of the output variable changed to 'change'
51233
- equal(MyApp.first.get('output'), 'change');
51234
-
51235
- //Since binding triggered after the end loop the value changed to 'change'.
51236
- equal(MyApp.second.get('output'), 'change');
51237
- });
51238
-
51239
- QUnit.test('Should propagate bindings after the RunLoop completes', function () {
51240
- (0, _emberMetal.run)(function () {
51241
- //Binding of output of MyApp.first object to input of MyApp.second object
51242
- expectDeprecation(function () {
51243
- _emberMetal.Binding.from('first.output').to('second.input').connect(MyApp);
51244
- }, deprecationMessage);
51245
-
51246
- //Binding of output of MyApp.second object to input of MyApp.third object
51247
- expectDeprecation(function () {
51248
- _emberMetal.Binding.from('second.output').to('third.input').connect(MyApp);
51249
- }, deprecationMessage);
51250
- });
51251
-
51252
- (0, _emberMetal.run)(function () {
51253
- //Based on the above binding if you change the output of MyApp.first object it should
51254
- //change the all the variable of MyApp.first,MyApp.second and MyApp.third object
51255
- MyApp.first.set('output', 'change');
51256
-
51257
- //Changes the output of the MyApp.first object
51258
- equal(MyApp.first.get('output'), 'change');
51259
-
51260
- //since binding has not taken into effect the value still remains as change.
51261
- equal(MyApp.second.get('output'), 'MyApp.first');
51262
- });
51263
-
51264
- //Value of the output variable changed to 'change'
51265
- equal(MyApp.first.get('output'), 'change');
51266
-
51267
- //Since binding triggered after the end loop the value changed to 'change'.
51268
- equal(MyApp.second.get('output'), 'change');
51269
- });
51270
- });
51271
50237
  enifed('ember-runtime/tests/main_test', ['ember-runtime/index'], function (_index) {
51272
50238
  'use strict';
51273
50239
 
@@ -57520,21 +56486,6 @@ enifed('ember-runtime/tests/system/object/create_test', ['ember-metal', 'ember-r
57520
56486
  equal(o.get('foo'), 'bar');
57521
56487
  });
57522
56488
 
57523
- QUnit.test('allows bindings to be defined', function () {
57524
- var obj = void 0;
57525
-
57526
- var deprecationMessage = /`Ember.Binding` is deprecated/;
57527
-
57528
- expectDeprecation(function () {
57529
- obj = _object.default.create({
57530
- foo: 'foo',
57531
- barBinding: 'foo'
57532
- });
57533
- }, deprecationMessage);
57534
-
57535
- equal(obj.get('bar'), 'foo', 'The binding value is correct');
57536
- });
57537
-
57538
56489
  QUnit.test('calls setUnknownProperty if defined', function () {
57539
56490
  var setUnknownPropertyCalled = false;
57540
56491
 
@@ -57601,12 +56552,6 @@ enifed('ember-runtime/tests/system/object/create_test', ['ember-metal', 'ember-r
57601
56552
  var o = _object.default.create(null);
57602
56553
  deepEqual(_object.default.create(), o);
57603
56554
  });
57604
-
57605
- QUnit.test('EmberObject.create avoids allocating a binding map when not necessary', function () {
57606
- var o = _object.default.create();
57607
- var m = (0, _emberMetal.meta)(o);
57608
- ok(!m.peekBindings(), 'A binding map is not allocated');
57609
- });
57610
56555
  });
57611
56556
  enifed('ember-runtime/tests/system/object/destroy_test', ['ember-metal', 'internal-test-helpers', 'ember-runtime/system/object'], function (_emberMetal, _internalTestHelpers, _object) {
57612
56557
  'use strict';
@@ -57728,36 +56673,6 @@ enifed('ember-runtime/tests/system/object/destroy_test', ['ember-metal', 'intern
57728
56673
  equal(shouldNotChange, 0, 'destroyed graph objs should not see change in willDestroy');
57729
56674
  equal(shouldChange, 1, 'long lived should see change in willDestroy');
57730
56675
  });
57731
-
57732
- QUnit.test('bindings should be synced when are updated in the willDestroy hook', function () {
57733
- var bar = _object.default.create({
57734
- value: false,
57735
- willDestroy: function () {
57736
- this.set('value', true);
57737
- }
57738
- });
57739
-
57740
- var foo = _object.default.create({
57741
- value: null,
57742
- bar: bar
57743
- });
57744
-
57745
- (0, _emberMetal.run)(function () {
57746
- var deprecationMessage = /`Ember.Binding` is deprecated/;
57747
-
57748
- expectDeprecation(function () {
57749
- (0, _emberMetal.bind)(foo, 'value', 'bar.value');
57750
- }, deprecationMessage);
57751
- });
57752
-
57753
- ok(bar.get('value') === false, 'the initial value has been bound');
57754
-
57755
- (0, _emberMetal.run)(function () {
57756
- return bar.destroy();
57757
- });
57758
-
57759
- ok(foo.get('value'), 'foo is synced when the binding is updated in the willDestroy hook');
57760
- });
57761
56676
  });
57762
56677
  enifed('ember-runtime/tests/system/object/detectInstance_test', ['ember-runtime/system/object'], function (_object) {
57763
56678
  'use strict';
@@ -58630,56 +57545,6 @@ enifed('ember-runtime/tests/system/object/strict-mode-test', ['ember-runtime/sys
58630
57545
  equal(bar.callBlah(), 'bar', 'can call local function without call/apply');
58631
57546
  });
58632
57547
  });
58633
- enifed('ember-runtime/tests/system/object/subclasses_test', ['ember-metal', 'ember-runtime/system/object'], function (_emberMetal, _object) {
58634
- 'use strict';
58635
-
58636
- QUnit.module('system/object/subclasses');
58637
-
58638
- QUnit.test('chains should copy forward to subclasses when prototype created', function () {
58639
- var ObjectWithChains = void 0,
58640
- objWithChains = void 0,
58641
- SubWithChains = void 0,
58642
- SubSub = void 0,
58643
- subSub = void 0;
58644
- (0, _emberMetal.run)(function () {
58645
- ObjectWithChains = _object.default.extend({
58646
- obj: {
58647
- a: 'a',
58648
- hi: 'hi'
58649
- },
58650
- aBinding: 'obj.a' // add chain
58651
- });
58652
-
58653
- var deprecationMessage = /`Ember.Binding` is deprecated/;
58654
-
58655
- expectDeprecation(function () {
58656
- // realize prototype
58657
- objWithChains = ObjectWithChains.create();
58658
- }, deprecationMessage);
58659
-
58660
- // should not copy chains from parent yet
58661
- SubWithChains = ObjectWithChains.extend({
58662
- hiBinding: 'obj.hi', // add chain
58663
- hello: (0, _emberMetal.computed)(function () {
58664
- return this.get('obj.hi') + ' world';
58665
- }).property('hi'), // observe chain
58666
- greetingBinding: 'hello'
58667
- });
58668
-
58669
- SubSub = SubWithChains.extend();
58670
-
58671
- expectDeprecation(function () {
58672
- // should realize prototypes and copy forward chains
58673
- subSub = SubSub.create();
58674
- }, deprecationMessage);
58675
- });
58676
- equal(subSub.get('greeting'), 'hi world');
58677
- (0, _emberMetal.run)(function () {
58678
- return objWithChains.set('obj.hi', 'hello');
58679
- });
58680
- equal(subSub.get('greeting'), 'hello world');
58681
- });
58682
- });
58683
57548
  enifed('ember-runtime/tests/system/object/toString_test', ['ember-utils', 'ember-environment', 'ember-runtime/system/object', 'ember-runtime/system/namespace'], function (_emberUtils, _emberEnvironment, _object, _namespace) {
58684
57549
  'use strict';
58685
57550
 
@@ -66816,7 +65681,7 @@ enifed('ember/tests/reexports_test', ['ember/index', 'ember-environment', 'inter
66816
65681
  ['computed', 'ember-metal'], ['computed.alias', 'ember-metal', 'alias'], ['ComputedProperty', 'ember-metal'], ['cacheFor', 'ember-metal'], ['merge', 'ember-metal'], ['instrument', 'ember-metal'], ['Instrumentation.instrument', 'ember-metal', 'instrument'], ['Instrumentation.subscribe', 'ember-metal', 'instrumentationSubscribe'], ['Instrumentation.unsubscribe', 'ember-metal', 'instrumentationUnsubscribe'], ['Instrumentation.reset', 'ember-metal', 'instrumentationReset'], ['testing', 'ember-debug', { get: 'isTesting', set: 'setTesting' }], ['onerror', 'ember-metal', { get: 'getOnerror', set: 'setOnerror' }],
66817
65682
  // ['create'], TODO: figure out what to do here
66818
65683
  // ['keys'], TODO: figure out what to do here
66819
- ['FEATURES', 'ember/features'], ['FEATURES.isEnabled', 'ember-debug', 'isFeatureEnabled'], ['Error', 'ember-debug'], ['meta', 'ember-metal'], ['get', 'ember-metal'], ['set', 'ember-metal'], ['_getPath', 'ember-metal'], ['getWithDefault', 'ember-metal'], ['trySet', 'ember-metal'], ['_Cache', 'ember-metal', 'Cache'], ['on', 'ember-metal'], ['addListener', 'ember-metal'], ['removeListener', 'ember-metal'], ['_suspendListener', 'ember-metal', 'suspendListener'], ['_suspendListeners', 'ember-metal', 'suspendListeners'], ['sendEvent', 'ember-metal'], ['hasListeners', 'ember-metal'], ['watchedEvents', 'ember-metal'], ['listenersFor', 'ember-metal'], ['isNone', 'ember-metal'], ['isEmpty', 'ember-metal'], ['isBlank', 'ember-metal'], ['isPresent', 'ember-metal'], ['_Backburner', 'backburner', 'default'], ['run', 'ember-metal'], ['_ObserverSet', 'ember-metal', 'ObserverSet'], ['propertyWillChange', 'ember-metal'], ['propertyDidChange', 'ember-metal'], ['overrideChains', 'ember-metal'], ['beginPropertyChanges', 'ember-metal'], ['beginPropertyChanges', 'ember-metal'], ['endPropertyChanges', 'ember-metal'], ['changeProperties', 'ember-metal'], ['defineProperty', 'ember-metal'], ['watchKey', 'ember-metal'], ['unwatchKey', 'ember-metal'], ['removeChainWatcher', 'ember-metal'], ['_ChainNode', 'ember-metal', 'ChainNode'], ['finishChains', 'ember-metal'], ['watchPath', 'ember-metal'], ['unwatchPath', 'ember-metal'], ['watch', 'ember-metal'], ['isWatching', 'ember-metal'], ['unwatch', 'ember-metal'], ['destroy', 'ember-metal', 'deleteMeta'], ['libraries', 'ember-metal'], ['OrderedSet', 'ember-metal'], ['Map', 'ember-metal'], ['MapWithDefault', 'ember-metal'], ['getProperties', 'ember-metal'], ['setProperties', 'ember-metal'], ['expandProperties', 'ember-metal'], ['NAME_KEY', 'ember-utils'], ['addObserver', 'ember-metal'], ['observersFor', 'ember-metal'], ['removeObserver', 'ember-metal'], ['_suspendObserver', 'ember-metal'], ['_suspendObservers', 'ember-metal'], ['aliasMethod', 'ember-metal'], ['observer', 'ember-metal'], ['mixin', 'ember-metal'], ['Mixin', 'ember-metal'], ['bind', 'ember-metal'], ['Binding', 'ember-metal'], ['isGlobalPath', 'ember-metal'],
65684
+ ['FEATURES', 'ember/features'], ['FEATURES.isEnabled', 'ember-debug', 'isFeatureEnabled'], ['Error', 'ember-debug'], ['meta', 'ember-metal'], ['get', 'ember-metal'], ['set', 'ember-metal'], ['_getPath', 'ember-metal'], ['getWithDefault', 'ember-metal'], ['trySet', 'ember-metal'], ['_Cache', 'ember-metal', 'Cache'], ['on', 'ember-metal'], ['addListener', 'ember-metal'], ['removeListener', 'ember-metal'], ['_suspendListener', 'ember-metal', 'suspendListener'], ['_suspendListeners', 'ember-metal', 'suspendListeners'], ['sendEvent', 'ember-metal'], ['hasListeners', 'ember-metal'], ['watchedEvents', 'ember-metal'], ['listenersFor', 'ember-metal'], ['isNone', 'ember-metal'], ['isEmpty', 'ember-metal'], ['isBlank', 'ember-metal'], ['isPresent', 'ember-metal'], ['_Backburner', 'backburner', 'default'], ['run', 'ember-metal'], ['_ObserverSet', 'ember-metal', 'ObserverSet'], ['propertyWillChange', 'ember-metal'], ['propertyDidChange', 'ember-metal'], ['overrideChains', 'ember-metal'], ['beginPropertyChanges', 'ember-metal'], ['beginPropertyChanges', 'ember-metal'], ['endPropertyChanges', 'ember-metal'], ['changeProperties', 'ember-metal'], ['defineProperty', 'ember-metal'], ['watchKey', 'ember-metal'], ['unwatchKey', 'ember-metal'], ['removeChainWatcher', 'ember-metal'], ['_ChainNode', 'ember-metal', 'ChainNode'], ['finishChains', 'ember-metal'], ['watchPath', 'ember-metal'], ['unwatchPath', 'ember-metal'], ['watch', 'ember-metal'], ['isWatching', 'ember-metal'], ['unwatch', 'ember-metal'], ['destroy', 'ember-metal', 'deleteMeta'], ['libraries', 'ember-metal'], ['OrderedSet', 'ember-metal'], ['Map', 'ember-metal'], ['MapWithDefault', 'ember-metal'], ['getProperties', 'ember-metal'], ['setProperties', 'ember-metal'], ['expandProperties', 'ember-metal'], ['NAME_KEY', 'ember-utils'], ['addObserver', 'ember-metal'], ['observersFor', 'ember-metal'], ['removeObserver', 'ember-metal'], ['_suspendObserver', 'ember-metal'], ['_suspendObservers', 'ember-metal'], ['aliasMethod', 'ember-metal'], ['observer', 'ember-metal'], ['mixin', 'ember-metal'], ['Mixin', 'ember-metal'], ['isGlobalPath', 'ember-metal'],
66820
65685
 
66821
65686
  // ember-views
66822
65687
  ['$', 'ember-views', 'jQuery'], ['ViewUtils.isSimpleClick', 'ember-views', 'isSimpleClick'], ['ViewUtils.getViewElement', 'ember-views', 'getViewElement'], ['ViewUtils.getViewBounds', 'ember-views', 'getViewBounds'], ['ViewUtils.getViewClientRects', 'ember-views', 'getViewClientRects'], ['ViewUtils.getViewBoundingClientRect', 'ember-views', 'getViewBoundingClientRect'], ['ViewUtils.getRootViews', 'ember-views', 'getRootViews'], ['ViewUtils.getChildViews', 'ember-views', 'getChildViews'], ['TextSupport', 'ember-views'], ['ComponentLookup', 'ember-views'], ['EventDispatcher', 'ember-views'],