From 48fd387779dba1e1c1f9554966000edc9d5bbaaf Mon Sep 17 00:00:00 2001 From: Daniel Tschinder Date: Tue, 15 Jan 2019 12:56:24 -0800 Subject: [PATCH] perf: precalculate length --- packages/babel-parser/src/parser/lval.js | 10 +++++++--- packages/babel-parser/src/util/identifier.js | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/babel-parser/src/parser/lval.js b/packages/babel-parser/src/parser/lval.js index 76613bba31..1a9a690388 100644 --- a/packages/babel-parser/src/parser/lval.js +++ b/packages/babel-parser/src/parser/lval.js @@ -56,9 +56,13 @@ export default class LValParser extends NodeUtils { case "ObjectExpression": node.type = "ObjectPattern"; - for (let index = 0; index < node.properties.length; index++) { - const prop = node.properties[index]; - const isLast = index === node.properties.length - 1; + for ( + let i = 0, length = node.properties.length, last = length - 1; + i < length; + i++ + ) { + const prop = node.properties[i]; + const isLast = i === last; this.toAssignableObjectExpressionProp(prop, isBinding, isLast); } break; diff --git a/packages/babel-parser/src/util/identifier.js b/packages/babel-parser/src/util/identifier.js index 1c50fcaf27..a312c9ac8d 100644 --- a/packages/babel-parser/src/util/identifier.js +++ b/packages/babel-parser/src/util/identifier.js @@ -64,7 +64,7 @@ const astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,1 // rare. function isInAstralSet(code: number, set: $ReadOnlyArray): boolean { let pos = 0x10000; - for (let i = 0; i < set.length; i += 2) { + for (let i = 0, length = set.length; i < length; i += 2) { pos += set[i]; if (pos > code) return false;