From 1396becfc2f19045ae88b33888f46b102b3faf2f Mon Sep 17 00:00:00 2001 From: bekzod Date: Sun, 12 Nov 2017 01:32:29 +0500 Subject: [PATCH 1/2] [BUGFIX release] fix issue with unchaining ChainNodes --- packages/ember-metal/lib/chains.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/ember-metal/lib/chains.js b/packages/ember-metal/lib/chains.js index fc3c4c02c6f..db34d74561f 100644 --- a/packages/ember-metal/lib/chains.js +++ b/packages/ember-metal/lib/chains.js @@ -209,8 +209,11 @@ class ChainNode { remove(path) { let paths = this._paths; if (paths === undefined) { return; } + if (paths[path] > 0) { paths[path]--; + } else { + return; } let key = firstKey(path); From 250e10a85916c10d185a1533631afca593a4ffe2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Lu=C4=8Din?= Date: Fri, 10 Nov 2017 15:30:25 +0100 Subject: [PATCH 2/2] Add failing test for observer computed reads 2.16 regression --- .../tests/system/object/computed_test.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/packages/ember-runtime/tests/system/object/computed_test.js b/packages/ember-runtime/tests/system/object/computed_test.js index 23aeead7a5d..99f8ea6d4c8 100644 --- a/packages/ember-runtime/tests/system/object/computed_test.js +++ b/packages/ember-runtime/tests/system/object/computed_test.js @@ -266,3 +266,16 @@ QUnit.test('Calling _super in apply outside the immediate function of a CP gette ok(emberGet(SubClass.create(), 'foo'), 'FOO', 'super value is fetched'); }); + +QUnit.test('observing computed.reads prop and overriding it in create() works', function() { + let Obj = EmberObject.extend({ + name: computed.reads('model.name'), + nameDidChange: observer('name', function() {}) + }); + + let obj1 = Obj.create({name: '1'}); + let obj2 = Obj.create({name: '2'}); + + equal(obj1.get('name'), '1'); + equal(obj2.get('name'), '2'); +});