/js/src/jit-test/tests/jaeger/setPropTypeGuard.js

http://github.com/zpao/v8monkey · JavaScript · 23 lines · 15 code · 2 blank · 6 comment · 1 complexity · 56e7f9b5658cae7c6b23c836e3348048 MD5 · raw file

  1. /*
  2. * Get a SETPROP site which is monitored (unknown lhs) and is repeatedly
  3. * invoked on objects with the same shape but different types (and without
  4. * triggering a recompile of the function). The SETPROP PIC needs a type guard
  5. * when the object is being monitored.
  6. */
  7. var x = {g:0};
  8. var y = {g:0,f:"fubar"};
  9. x.f = 10;
  10. function foo(x) {
  11. for (var i = 0; i < 30; i++)
  12. x.f = 10;
  13. }
  14. function access(x) {
  15. return x.f + 10;
  16. }
  17. foo(Object.create({}));
  18. eval("foo(x)");
  19. assertEq(access(y), "fubar10");
  20. eval("foo(y)");
  21. assertEq(access(y), 20);