From 46b7cc0a72e0d359a7cfcc0220bafaa8eae6f485 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 13 Apr 2015 21:56:37 -0700 Subject: [PATCH] assorted minor cleanup of variables --- src/babel/transformation/transformers/es6/block-scoping.js | 6 +++--- .../transformers/optimisation/react.constant-elements.js | 7 ++----- src/babel/traversal/path/hoister.js | 5 ++++- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/babel/transformation/transformers/es6/block-scoping.js b/src/babel/transformation/transformers/es6/block-scoping.js index 8186b4dd11..9f25517813 100644 --- a/src/babel/transformation/transformers/es6/block-scoping.js +++ b/src/babel/transformation/transformers/es6/block-scoping.js @@ -465,14 +465,14 @@ class BlockScoping { var declar; // - for (var i = 0; i < declarators.length; i++) { + for (let i = 0; i < declarators.length; i++) { declar = declarators[i]; extend(this.outsideLetReferences, t.getBindingIdentifiers(declar)); } // if (block.body) { - for (i = 0; i < block.body.length; i++) { + for (let i = 0; i < block.body.length; i++) { declar = block.body[i]; if (isLet(declar, block)) { declarators = declarators.concat(declar.declarations); @@ -481,7 +481,7 @@ class BlockScoping { } // - for (i = 0; i < declarators.length; i++) { + for (let i = 0; i < declarators.length; i++) { declar = declarators[i]; var keys = t.getBindingIdentifiers(declar); extend(this.letReferences, keys); diff --git a/src/babel/transformation/transformers/optimisation/react.constant-elements.js b/src/babel/transformation/transformers/optimisation/react.constant-elements.js index 03f1524194..bfaff5f29f 100644 --- a/src/babel/transformation/transformers/optimisation/react.constant-elements.js +++ b/src/babel/transformation/transformers/optimisation/react.constant-elements.js @@ -29,14 +29,11 @@ var immutabilityVisitor = { }; export function JSXElement(node, parent, scope, file) { - if (node._ignoreConstant) return; + if (node._hoisted) return; var state = { isImmutable: true }; this.traverse(immutabilityVisitor, state); this.skip(); - if (state.isImmutable) { - this.hoist(); - node._ignoreConstant = true; - } + if (state.isImmutable) this.hoist(); } diff --git a/src/babel/traversal/path/hoister.js b/src/babel/traversal/path/hoister.js index d4477bd1b2..a0210377a2 100644 --- a/src/babel/traversal/path/hoister.js +++ b/src/babel/traversal/path/hoister.js @@ -19,7 +19,6 @@ var referenceVisitor = { if (bindingInfo && bindingInfo.constant) { state.bindings[node.name] = bindingInfo; } else { - scope.dump(); state.foundIncompatible = true; this.stop(); } @@ -90,6 +89,10 @@ export default class PathHoister { } run() { + var node = this.path.node; + if (node._hoisted) return; + this.path._hoisted = true; + this.path.traverse(referenceVisitor, this); if (this.foundIncompatible) return;