From cd0ea0d479a276583fa181d8ecbc97fb0e4a9dce Mon Sep 17 00:00:00 2001 From: Evan You Date: Tue, 4 Jun 2024 20:09:54 +0800 Subject: [PATCH] fix(compiler-core): change node hoisting to caching per instance (#11067) close #5256 close #9219 close #10959 --- .../__snapshots__/parse.spec.ts.snap | 112 ++-- .../__snapshots__/scopeId.spec.ts.snap | 16 - .../compiler-core/__tests__/codegen.spec.ts | 6 +- .../compiler-core/__tests__/scopeId.spec.ts | 27 - ....spec.ts.snap => cacheStatic.spec.ts.snap} | 232 ++++---- ...oistStatic.spec.ts => cacheStatic.spec.ts} | 526 ++++++++++++------ .../__tests__/transforms/vModel.spec.ts | 6 +- .../__tests__/transforms/vOn.spec.ts | 22 +- .../__tests__/transforms/vOnce.spec.ts | 16 +- packages/compiler-core/src/ast.ts | 17 +- packages/compiler-core/src/codegen.ts | 41 +- packages/compiler-core/src/index.ts | 2 +- packages/compiler-core/src/options.ts | 2 +- packages/compiler-core/src/runtimeHelpers.ts | 7 + packages/compiler-core/src/transform.ts | 20 +- .../{hoistStatic.ts => cacheStatic.ts} | 150 +++-- .../src/transforms/transformElement.ts | 2 +- .../src/transforms/transformExpression.ts | 2 +- .../src/transforms/transformText.ts | 2 +- packages/compiler-core/src/transforms/vFor.ts | 4 +- packages/compiler-core/src/transforms/vIf.ts | 2 +- .../compiler-core/src/transforms/vMemo.ts | 4 +- .../compiler-core/src/transforms/vModel.ts | 2 +- packages/compiler-core/src/utils.ts | 9 +- .../stringifyStatic.spec.ts.snap | 124 +++-- .../transforms/stringifyStatic.spec.ts | 413 ++++++-------- .../__tests__/transforms/vOn.spec.ts | 2 +- .../src/transforms/stringifyStatic.ts | 90 +-- .../__snapshots__/compileScript.spec.ts.snap | 4 +- .../templateTransformAssetUrl.spec.ts.snap | 15 +- .../templateTransformSrcset.spec.ts.snap | 339 +++++------ .../runtime-core/__tests__/hydration.spec.ts | 2 +- packages/runtime-core/src/hydration.ts | 2 +- packages/runtime-core/src/vnode.ts | 6 +- packages/shared/src/patchFlags.ts | 6 +- 35 files changed, 1167 insertions(+), 1065 deletions(-) rename packages/compiler-core/__tests__/transforms/__snapshots__/{hoistStatic.spec.ts.snap => cacheStatic.spec.ts.snap} (67%) rename packages/compiler-core/__tests__/transforms/{hoistStatic.spec.ts => cacheStatic.spec.ts} (52%) rename packages/compiler-core/src/transforms/{hoistStatic.ts => cacheStatic.ts} (72%) diff --git a/packages/compiler-core/__tests__/__snapshots__/parse.spec.ts.snap b/packages/compiler-core/__tests__/__snapshots__/parse.spec.ts.snap index 678548e35b5..942eed4c4dc 100644 --- a/packages/compiler-core/__tests__/__snapshots__/parse.spec.ts.snap +++ b/packages/compiler-core/__tests__/__snapshots__/parse.spec.ts.snap @@ -2,7 +2,7 @@ exports[`compiler: parse > Edge Cases > invalid html 1`] = ` { - "cached": 0, + "cached": [], "children": [ { "children": [ @@ -86,7 +86,7 @@ exports[`compiler: parse > Edge Cases > invalid html 1`] = ` exports[`compiler: parse > Edge Cases > self closing multiple tag 1`] = ` { - "cached": 0, + "cached": [], "children": [ { "children": [], @@ -280,7 +280,7 @@ exports[`compiler: parse > Edge Cases > self closing multiple tag 1`] = ` exports[`compiler: parse > Edge Cases > valid html 1`] = ` { - "cached": 0, + "cached": [], "children": [ { "children": [ @@ -498,7 +498,7 @@ exports[`compiler: parse > Edge Cases > valid html 1`] = ` exports[`compiler: parse > Errors > CDATA_IN_HTML_CONTENT > 1`] = ` { - "cached": 0, + "cached": [], "children": [ { "children": [], @@ -550,7 +550,7 @@ exports[`compiler: parse > Errors > CDATA_IN_HTML_CONTENT >