function is_lhs(node, parent) {
if (parent instanceof AST_Assign) return parent.left === node && node;
+ if (parent instanceof AST_DefaultValue) return parent.name === node && node;
if (parent instanceof AST_Destructured) return node;
if (parent instanceof AST_DestructuredKeyVal) return node;
if (parent instanceof AST_Unary) return unary_side_effects[parent.operator] && parent.expression;
expect_stdout: "PASS"
node_version: ">=6"
}
+
+issue_4483: {
+ options = {
+ conditionals: true,
+ evaluate: true,
+ reduce_vars: true,
+ toplevel: true,
+ }
+ input: {
+ if (console)
+ var [ a = "FAIL" ] = [], b = a = "PASS";
+ console.log(b);
+ }
+ expect: {
+ var a, b;
+ console && ([ a = "FAIL" ] = [], b = "PASS");
+ console.log(b);
+ }
+ expect_stdout: "PASS"
+ node_version: ">=6"
+}
// ignore lvalues
if (parent instanceof U.AST_Assign && parent.left === node) return;
- if (parent instanceof U.AST_DestructuredArray) return;
if (parent instanceof U.AST_DestructuredKeyVal && parent.value === node) return;
if (parent instanceof U.AST_Unary && parent.expression === node) switch (parent.operator) {
case "++":