From 621e66e9ac1038df5666e7922c65b6970a6b99d3 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Sun, 18 Jan 2015 02:35:08 +1100 Subject: [PATCH] add private declaration and comprehension expression support to scope tracking and id building --- lib/6to5/traverse/scope.js | 8 ++++++-- lib/6to5/types/alias-keys.json | 3 ++- lib/6to5/types/index.js | 5 ++++- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/6to5/traverse/scope.js b/lib/6to5/traverse/scope.js index 320728c059..c77c75dcb3 100644 --- a/lib/6to5/traverse/scope.js +++ b/lib/6to5/traverse/scope.js @@ -137,8 +137,6 @@ Scope.prototype.getInfo = function () { var node = block[key]; if (t.isLet(node)) add(node); }); - - block = block.body; } // Program, BlockStatement - let variables @@ -156,6 +154,12 @@ Scope.prototype.getInfo = function () { add(block.param); } + // ComprehensionExpression - blocks + + if (t.isComprehensionExpression(block)) { + add(block); + } + // Program, Function - var variables if (t.isProgram(block) || t.isFunction(block)) { diff --git a/lib/6to5/types/alias-keys.json b/lib/6to5/types/alias-keys.json index e07ecc429d..cc80d7290c 100644 --- a/lib/6to5/types/alias-keys.json +++ b/lib/6to5/types/alias-keys.json @@ -16,6 +16,7 @@ "VariableDeclaration": ["Statement", "Declaration"], "ExportDeclaration": ["Statement", "Declaration"], "ImportDeclaration": ["Statement", "Declaration"], + "PrivateDeclaration": ["Statement", "Declaration"], "ArrowFunctionExpression": ["Scope", "Function", "Expression"], "FunctionDeclaration": ["Statement", "Declaration", "Scope", "Function"], @@ -52,7 +53,7 @@ "BindFunctionExpression": ["Expression"], "BindMemberExpression": ["Expression"], "CallExpression": ["Expression"], - "ComprehensionExpression": ["Expression"], + "ComprehensionExpression": ["Expression", "Scope"], "ConditionalExpression": ["Expression"], "Identifier": ["Expression"], "Literal": ["Expression"], diff --git a/lib/6to5/types/index.js b/lib/6to5/types/index.js index fb56afd02d..85c89cb427 100644 --- a/lib/6to5/types/index.js +++ b/lib/6to5/types/index.js @@ -472,10 +472,13 @@ t.getIds.nodes = { ClassDeclaration: ["id"], MemeberExpression: ["object"], SpreadElement: ["argument"], - Property: ["value"] + Property: ["value"], + ComprehensionBlock: ["left"] }; t.getIds.arrays = { + PrivateDeclaration: ["declarations"], + ComprehensionExpression: ["blocks"], ExportDeclaration: ["specifiers", "declaration"], ImportDeclaration: ["specifiers"], VariableDeclaration: ["declarations"],