/js/src/jit-test/tests/debug/Frame-eval-08.js

http://github.com/zpao/v8monkey · JavaScript · 23 lines · 18 code · 3 blank · 2 comment · 0 complexity · 7bcd97be1e3303048d3d6bd6d3cd4cd3 MD5 · raw file

  1. // The arguments can escape from a function via a debugging hook.
  2. var g = newGlobal('new-compartment');
  3. var dbg = new Debugger(g);
  4. // capture arguments object and test function
  5. var args, testfn;
  6. dbg.onDebuggerStatement = function (frame) {
  7. args = frame.eval("arguments").return;
  8. testfn = frame.eval("test").return;
  9. };
  10. g.eval("function f() { debugger; }");
  11. g.eval("var test = " + function test(args) {
  12. assertEq(args.length, 3);
  13. assertEq(args[0], this);
  14. assertEq(args[1], f);
  15. assertEq(args[2].toString(), "[object Object]");
  16. return 42;
  17. } + ";");
  18. g.eval("f(this, f, {});");
  19. var cv = testfn.apply(null, [args]);
  20. assertEq(cv.return, 42);