rhino/src/main/java/org/mozilla/javascript/IRFactory.java [344:369]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            AstNode iter = acl.getIterator();
            astNodePos.push(iter);
            try {
                String name = null;
                if (iter.getType() == Token.NAME) {
                    name = iter.getString();
                } else {
                    // destructuring assignment
                    name = parser.currentScriptOrFn.getNextTempName();
                    parser.defineSymbol(Token.LP, name, false);
                    expr =
                            createBinary(
                                    Token.COMMA,
                                    createAssignment(Token.ASSIGN, iter, parser.createName(name)),
                                    expr);
                }
                Node init = parser.createName(name);
                // Define as a let since we want the scope of the variable to
                // be restricted to the array comprehension
                parser.defineSymbol(Token.LET, name, false);
                iterators[i] = init;
            } finally {
                astNodePos.pop();
            }

            iteratedObjs[i] = transform(acl.getIteratedObject());
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



rhino/src/main/java/org/mozilla/javascript/IRFactory.java [786:811]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            AstNode iter = acl.getIterator();
            astNodePos.push(iter);
            try {
                String name = null;
                if (iter.getType() == Token.NAME) {
                    name = iter.getString();
                } else {
                    // destructuring assignment
                    name = parser.currentScriptOrFn.getNextTempName();
                    parser.defineSymbol(Token.LP, name, false);
                    expr =
                            createBinary(
                                    Token.COMMA,
                                    createAssignment(Token.ASSIGN, iter, parser.createName(name)),
                                    expr);
                }
                Node init = parser.createName(name);
                // Define as a let since we want the scope of the variable to
                // be restricted to the array comprehension
                parser.defineSymbol(Token.LET, name, false);
                iterators[i] = init;
            } finally {
                astNodePos.pop();
            }

            iteratedObjs[i] = transform(acl.getIteratedObject());
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



