Author: Stephan <step...@stzal.com> Branch: Changeset: r279:569359399701 Date: 2012-08-24 10:14 +0200 http://bitbucket.org/pypy/lang-js/changeset/569359399701/
Log: fixed implicit self for function calls diff --git a/js/execution_context.py b/js/execution_context.py --- a/js/execution_context.py +++ b/js/execution_context.py @@ -33,6 +33,9 @@ def this_binding(self): return self._this_binding_ + def implicit_this_binding(self): + return self.lexical_environment().environment_record.implicit_this_value() + def variable_environment(self): return self._variable_environment_ @@ -199,6 +202,9 @@ def stack_pop_n(self, n): return self._parent_context_.stack_pop_n(n) + def this_binding(self): + return self._parent_context_.this_binding() + class WithExecutionContext(SubExecutionContext): def __init__(self, code, expr_obj, parent_context): SubExecutionContext.__init__(self, parent_context) @@ -213,7 +219,6 @@ self._lexical_environment_ = local_env self._variable_environment_ = local_env - self._this_binding_ = local_env.environment_record.implicit_this_value() self.declaration_binding_initialization() @@ -233,6 +238,5 @@ self._lexical_environment_ = local_env self._variable_environment_ = local_env - self._this_binding_ = parent_context.this_binding() self.declaration_binding_initialization() diff --git a/js/opcodes.py b/js/opcodes.py --- a/js/opcodes.py +++ b/js/opcodes.py @@ -611,7 +611,7 @@ def eval(self, ctx): r1 = ctx.stack_pop() args = ctx.stack_pop() - this = ctx.this_binding() + this = ctx.implicit_this_binding() res = common_call(ctx, r1, args, this, r1) ctx.stack_append(res) _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit