From 8cc93b64564ea0e7184dbab8db11b7c577973ac8 Mon Sep 17 00:00:00 2001 From: Godfrey Chan Date: Tue, 25 Oct 2016 11:24:09 -0700 Subject: [PATCH 1/2] [BUGFIX beta] Don't rely on non-cached reference This commit fixes a bug where `OutletComponentReference` inadvertently relied on broken behavior: it returned `null`, assuming that that would cause the reference to be rebuilt. But tildeio/glimmer#337 fixed the underlying bug, causing the reference to be properly cached. As a result, we need to remember that we rendered a `null` component, so that swapping back to the original component replaces the empty component with the rendered component. --- packages/ember-glimmer/lib/syntax/outlet.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/ember-glimmer/lib/syntax/outlet.js b/packages/ember-glimmer/lib/syntax/outlet.js index 88a2dbb3b85..323fb71f6bb 100644 --- a/packages/ember-glimmer/lib/syntax/outlet.js +++ b/packages/ember-glimmer/lib/syntax/outlet.js @@ -114,7 +114,6 @@ class OutletComponentReference { value() { let { outletNameRef, parentOutletStateRef, definition, lastState } = this; - let outletName = outletNameRef.value(); let outletStateRef = parentOutletStateRef.get('outlets').get(outletName); let newState = this.lastState = outletStateRef.value(); @@ -130,7 +129,7 @@ class OutletComponentReference { } else if (hasTemplate) { return this.definition = new OutletComponentDefinition(outletName, newState.render.template); } else { - return null; + return this.definition = null; } } } From 8c87e5074a12487a9a45b962c25da247a72fe971 Mon Sep 17 00:00:00 2001 From: Godfrey Chan Date: Wed, 26 Oct 2016 13:52:38 -0700 Subject: [PATCH 2/2] [BUGFIX beta] Bump Glimmer This pulls in two glimmer-engine bugfixes: - local variables (block params) should always win over helpers - stateful/class-based helpers used in `{{#if (my-helper ...)}}` and other block arguments position are destroyed when the block syntax switches from default to inverse (and vice versa) Fixes #14351, #14413 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 68fae1ace64..50482e18bc7 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "git-repo-info": "^1.1.4", "git-repo-version": "^0.3.1", "github": "^0.2.3", - "glimmer-engine": "^0.17.5", + "glimmer-engine": "^0.17.6", "glob": "^5.0.13", "html-differ": "^1.3.4", "mocha": "^2.4.5",