diff --git a/src/generators/nodes/Attribute.ts b/src/generators/nodes/Attribute.ts index 3d4b5eb9a2..db0ef9c960 100644 --- a/src/generators/nodes/Attribute.ts +++ b/src/generators/nodes/Attribute.ts @@ -160,8 +160,8 @@ export default class Attribute extends Node { hasChangeableIndex = Array.from(indexes).some(index => block.changeableIndexes.get(index)); shouldCache = ( - expression.type !== 'Identifier' || - block.contexts.has(expression.name) || + expression.node.type !== 'Identifier' || + block.contexts.has(expression.node.name) || hasChangeableIndex ); } else { diff --git a/src/generators/nodes/Title.ts b/src/generators/nodes/Title.ts index ff4203c8bd..49efa9b6f0 100644 --- a/src/generators/nodes/Title.ts +++ b/src/generators/nodes/Title.ts @@ -43,7 +43,7 @@ export default class Title extends Node { block.contexts.has(expression.name) ); } else { - // '{{foo}} {{bar}}' — treat as string concatenation + // '{foo} {bar}' — treat as string concatenation value = (this.children[0].type === 'Text' ? '' : `"" + `) + this.children @@ -57,7 +57,7 @@ export default class Title extends Node { allDependencies.add(d); }); - return getExpressionPrecedence(chunk.node) <= 13 ? `(${snippet})` : snippet; + return getExpressionPrecedence(chunk.expression.node) <= 13 ? `(${snippet})` : snippet; } }) .join(' + '); diff --git a/test/js/samples/event-handlers-custom/expected-bundle.js b/test/js/samples/event-handlers-custom/expected-bundle.js index d6564452d8..9519d6def9 100644 --- a/test/js/samples/event-handlers-custom/expected-bundle.js +++ b/test/js/samples/event-handlers-custom/expected-bundle.js @@ -164,8 +164,9 @@ function create_main_fragment(component, ctx) { insertNode(button, target, anchor); }, - p: function(changed, _ctx) { + p: function update(changed, _ctx) { ctx = _ctx; + }, u: function unmount() { diff --git a/test/js/samples/event-handlers-custom/expected.js b/test/js/samples/event-handlers-custom/expected.js index 5c357c6e19..bc227c657d 100644 --- a/test/js/samples/event-handlers-custom/expected.js +++ b/test/js/samples/event-handlers-custom/expected.js @@ -1,5 +1,5 @@ /* generated by Svelte vX.Y.Z */ -import { assign, createElement, detachNode, init, insertNode, noop, proto } from "svelte/shared.js"; +import { assign, createElement, detachNode, init, insertNode, proto } from "svelte/shared.js"; function foo( node, callback ) { // code goes here @@ -33,6 +33,7 @@ function create_main_fragment(component, ctx) { p: function update(changed, _ctx) { ctx = _ctx; + }, u: function unmount() {