Files
UglifyJS/test/mocha/issue1702.js
Ondřej Španěl 5dea52266b [ES6] Implemented parse for export Name from Module variants. (#1701)
- add `AST_Export` new variants output
- add tests to `test/compress/`
- update `$propdoc` of `AST_Export` ("exported_names" & "module_name")
- add tests for `export ...  as ...` variants
2017-03-30 17:07:50 +08:00

35 lines
1.5 KiB
JavaScript

var uglify = require('../../');
var assert = require("assert");
describe("For statement", function() {
it("For variable should list enclosing scope in its references (issue #17022)", function() {
var ast = uglify.parse("function f() { for (var a = 0; a < 10; a++) {} }");
ast.figure_out_scope();
var checkWalker = new uglify.TreeWalker(function(node, descend) {
if (node instanceof uglify.AST_VarDef) {
console.log("AST_VarDef");
// one reference should be in the AST_Defun scope - search for it
var walkNode = function (r) {
console.log(r.CTOR.name);
var walker = new uglify.TreeWalker(function(node, descend){
// do not walk into any other scope, it should be listed if needed
console.log(" " + node.CTOR.name);
if (node instanceof uglify.AST_Scope && node != r.scope) return true;
if (node instanceof uglify.AST_For) {
console.log("Great - we found the for statement referencing the variable")
}
return false;
});
r.scope.walk(walker);
r.walk(walker);
};
node.name.thedef.orig.forEach(walkNode);
node.name.thedef.references.forEach(walkNode);
}
});
ast.walk(checkWalker);
});
});