seems almost ok, but I'll need another pass after you fix the bug.


http://codereview.chromium.org/7618007/diff/1/src/full-codegen.cc
File src/full-codegen.cc (right):

http://codereview.chromium.org/7618007/diff/1/src/full-codegen.cc#newcode940
src/full-codegen.cc:940: }
Break should also patch context in the stack slot:

-------------------
var o = { x: function () { }, y: function () { print("bazinga!"); } };

function foo() {
  while (true) {
    with (o) {
      x();
      break;
    }
  }
  baz(); // esi fill be restored from stack after the call
  with ({}) y(); // bazinga
}

function baz() {}

foo();
-------------------

(add this test to mjsunit).

http://codereview.chromium.org/7618007/diff/1/src/full-codegen.h
File src/full-codegen.h (right):

http://codereview.chromium.org/7618007/diff/1/src/full-codegen.h#newcode150
src/full-codegen.h:150: // contains the value in case of a return).
Comment is out of date. Please update.

http://codereview.chromium.org/7618007/

--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to