function maintain_this_binding(parent, orig, val) {
        if (parent instanceof AST_UnaryPrefix && parent.operator == "delete"
            || parent instanceof AST_Call && parent.expression === orig
                && (val instanceof AST_PropAccess || val instanceof AST_SymbolRef && val.name == "eval")) {
            return make_sequence(orig, [ make_node(AST_Number, orig, { value: 0 }), val ]);
        }
        return val;
    }
// the func (becomes lexical instead of global).
the func (becomes lexical instead of global).
the func ( becomes lexical instead of global ) .
function maintain_this_binding(parent, orig, val) {
        if (parent instanceof AST_UnaryPrefix && parent.operator == "delete"
            || parent instanceof AST_Call && parent.expression === orig
                && (val instanceof AST_PropAccess || val instanceof AST_SymbolRef && val.name == "eval")) {
            return make_sequence(orig, [ make_node(AST_Number, orig, { value: 0 }), val ]);
        }
        return val;
    }
function maintain_this_binding ( parent , orig , val ) { if ( parent instanceof AST_UnaryPrefix && parent . operator == "delete" || parent instanceof AST_Call && parent . expression === orig && ( val instanceof AST_PropAccess || val instanceof AST_SymbolRef && val . name == "eval" ) ) { return make_sequence ( orig , [ make_node ( AST_Number , orig , { value : 0 } ) , val ] ) ; } return val ; }
the func (becomes lexical instead of global).
the func ( becomes lexical instead of global ) .