var uglify = require("../../");
describe("With", function() {
- it ("Should throw syntaxError when using with statement in strict mode", function() {
+ it("Should throw syntaxError when using with statement in strict mode", function() {
var code = '"use strict";\nthrow NotEarlyError;\nwith ({}) { }';
var test = function() {
uglify.parse(code);
}
assert.throws(test, error);
});
-});
\ No newline at end of file
+ it("Should set uses_with for scopes involving With statements", function() {
+ var ast = uglify.parse("with(e) {f(1, 2)}");
+ ast.figure_out_scope();
+ assert.equal(ast.uses_with, true);
+ assert.equal(ast.body[0].expression.scope.uses_with, true);
+ assert.equal(ast.body[0].body.body[0].body.expression.scope.uses_with, true);
+ });
+});