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

Sign up to get free protection for your applications and to get access to all the features.
@@ -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'],