From 5ddbf8a0de78d738f4e448865db1d7235bd0fc0b Mon Sep 17 00:00:00 2001 From: edison Date: Wed, 31 Mar 2021 01:30:16 +0000 Subject: [PATCH 1/6] perf(server-renderer): use every instead of for --- .../server-renderer/src/helpers/ssrRenderSlot.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/server-renderer/src/helpers/ssrRenderSlot.ts b/packages/server-renderer/src/helpers/ssrRenderSlot.ts index bcb393dea04..8312c762810 100644 --- a/packages/server-renderer/src/helpers/ssrRenderSlot.ts +++ b/packages/server-renderer/src/helpers/ssrRenderSlot.ts @@ -38,13 +38,13 @@ export function ssrRenderSlot( } else { // ssr slot. // check if the slot renders all comments, in which case use the fallback - let isEmptySlot = true - for (let i = 0; i < slotBuffer.length; i++) { - if (!isComment(slotBuffer[i])) { - isEmptySlot = false - break - } - } + let isEmptySlot = slotBuffer.every(s => isComment(s)) + // for (let i = 0; i < slotBuffer.length; i++) { + // if (!isComment(slotBuffer[i])) { + // isEmptySlot = false + // break + // } + // } if (isEmptySlot) { if (fallbackRenderFn) { fallbackRenderFn() From d03eaed0a4f9436afeb6a727c1a9435c27368007 Mon Sep 17 00:00:00 2001 From: edison Date: Wed, 31 Mar 2021 04:48:23 +0000 Subject: [PATCH 2/6] chore: clean --- packages/server-renderer/src/helpers/ssrRenderSlot.ts | 6 ------ 1 file changed, 6 deletions(-) diff --git a/packages/server-renderer/src/helpers/ssrRenderSlot.ts b/packages/server-renderer/src/helpers/ssrRenderSlot.ts index 8312c762810..0314176a720 100644 --- a/packages/server-renderer/src/helpers/ssrRenderSlot.ts +++ b/packages/server-renderer/src/helpers/ssrRenderSlot.ts @@ -39,12 +39,6 @@ export function ssrRenderSlot( // ssr slot. // check if the slot renders all comments, in which case use the fallback let isEmptySlot = slotBuffer.every(s => isComment(s)) - // for (let i = 0; i < slotBuffer.length; i++) { - // if (!isComment(slotBuffer[i])) { - // isEmptySlot = false - // break - // } - // } if (isEmptySlot) { if (fallbackRenderFn) { fallbackRenderFn() From 130456d2ce70d85b7a0e07e75ee7a306b718a2df Mon Sep 17 00:00:00 2001 From: edison Date: Wed, 31 Mar 2021 05:01:07 +0000 Subject: [PATCH 3/6] refactor(runtime-core): use some instead of for --- packages/runtime-core/src/componentRenderUtils.ts | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/packages/runtime-core/src/componentRenderUtils.ts b/packages/runtime-core/src/componentRenderUtils.ts index 1274f474e63..c69021750d1 100644 --- a/packages/runtime-core/src/componentRenderUtils.ts +++ b/packages/runtime-core/src/componentRenderUtils.ts @@ -369,16 +369,10 @@ function hasPropsChanged( if (nextKeys.length !== Object.keys(prevProps).length) { return true } - for (let i = 0; i < nextKeys.length; i++) { - const key = nextKeys[i] - if ( - nextProps[key] !== prevProps[key] && - !isEmitListener(emitsOptions, key) - ) { - return true - } - } - return false + return nextKeys.some( + key => + nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key) + ) } export function updateHOCHostEl( From f10400bbb5728a74b5b26f5b4f8f8c5d3c2e7c04 Mon Sep 17 00:00:00 2001 From: edison Date: Wed, 31 Mar 2021 05:04:59 +0000 Subject: [PATCH 4/6] refactor(runtime-core): use some instead of for --- packages/runtime-core/src/componentRenderUtils.ts | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/packages/runtime-core/src/componentRenderUtils.ts b/packages/runtime-core/src/componentRenderUtils.ts index c69021750d1..6dcabbd9a3b 100644 --- a/packages/runtime-core/src/componentRenderUtils.ts +++ b/packages/runtime-core/src/componentRenderUtils.ts @@ -327,15 +327,10 @@ export function shouldUpdateComponent( return hasPropsChanged(prevProps, nextProps!, emits) } else if (patchFlag & PatchFlags.PROPS) { const dynamicProps = nextVNode.dynamicProps! - for (let i = 0; i < dynamicProps.length; i++) { - const key = dynamicProps[i] - if ( - nextProps![key] !== prevProps![key] && - !isEmitListener(emits, key) - ) { - return true - } - } + return dynamicProps.some( + key => + nextProps![key] !== prevProps![key] && !isEmitListener(emits, key) + ) } } else { // this path is only taken by manually written render functions From e597e8a6a9ad40bb41baaf0d84378f45d1a53a92 Mon Sep 17 00:00:00 2001 From: edison Date: Wed, 31 Mar 2021 05:14:13 +0000 Subject: [PATCH 5/6] refactor(compiler-core): use find instead of for --- packages/compiler-core/src/utils.ts | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/packages/compiler-core/src/utils.ts b/packages/compiler-core/src/utils.ts index b65c812a6e4..c0c2e5b9ec3 100644 --- a/packages/compiler-core/src/utils.ts +++ b/packages/compiler-core/src/utils.ts @@ -137,16 +137,23 @@ export function findDir( name: string | RegExp, allowEmpty: boolean = false ): DirectiveNode | undefined { - for (let i = 0; i < node.props.length; i++) { - const p = node.props[i] - if ( + // for (let i = 0; i < node.props.length; i++) { + // const p = node.props[i] + // if ( + // p.type === NodeTypes.DIRECTIVE && + // (allowEmpty || p.exp) && + // (isString(name) ? p.name === name : name.test(p.name)) + // ) { + // return p + // } + // } + const prop = node.props.find( + p => p.type === NodeTypes.DIRECTIVE && (allowEmpty || p.exp) && (isString(name) ? p.name === name : name.test(p.name)) - ) { - return p - } - } + ) + return prop as DirectiveNode } export function findProp( From b1177e8edb4a21b7b057069ea880a05c5afdefd3 Mon Sep 17 00:00:00 2001 From: edison Date: Thu, 1 Apr 2021 03:34:51 +0000 Subject: [PATCH 6/6] chore: clean --- packages/compiler-core/src/utils.ts | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/packages/compiler-core/src/utils.ts b/packages/compiler-core/src/utils.ts index c0c2e5b9ec3..880845591bc 100644 --- a/packages/compiler-core/src/utils.ts +++ b/packages/compiler-core/src/utils.ts @@ -137,16 +137,6 @@ export function findDir( name: string | RegExp, allowEmpty: boolean = false ): DirectiveNode | undefined { - // for (let i = 0; i < node.props.length; i++) { - // const p = node.props[i] - // if ( - // p.type === NodeTypes.DIRECTIVE && - // (allowEmpty || p.exp) && - // (isString(name) ? p.name === name : name.test(p.name)) - // ) { - // return p - // } - // } const prop = node.props.find( p => p.type === NodeTypes.DIRECTIVE &&