Status: New
Owner: ----

New issue 4053 by [email protected]: setters-on-elements test bug.
https://code.google.com/p/v8/issues/detail?id=4053

The setters-on-elements test of mjsunit has a potential bug.

In part of setters-on-elements.js file..

-------------------------------------------------
  // Testcase: setter "deep" in prototype chain.
  clearFunctionTypeFeedback(foo);
  deoptimizeFunction(foo);
  clearFunctionTypeFeedback(foo);
  calls = 0;

  a = create_func();
  var ap2 = [];
  a.__proto__ = ap2;
  foo(a);
  foo(a);
foo(a); // --> if the foo function is entered to the OPTIMIZED code at this time,
  delete a[index];

  assertEquals(0, calls);

  ap2.__proto__ = ap;  // "sneak" in a callback.
  // The sneak case should be caught by unoptimized code too.
  assertUnoptimized(foo);  // --> ASSERT occurs here.
  foo(a);
  foo(a);
  foo(a);
  assertEquals(3, calls);
-------------------------------------------------

Please refer to the above comment in the code.
To resolve this situation,
"foo(a);" statement should be inserted before the "assertUnoptimized(foo);".
Isn't it?

  ap2.__proto__ = ap;  // "sneak" in a callback.
  // The sneak case should be caught by unoptimized code too.
  assertUnoptimized(foo);
  foo(a);
  foo(a);
  foo(a);
  assertEquals(3, calls);

  ---------->

   ap2.__proto__ = ap;  // "sneak" in a callback.
  // The sneak case should be caught by unoptimized code too.
  foo(a);  // <-------
  assertUnoptimized(foo);
  foo(a);
  foo(a);
  foo(a);
  assertEquals(4, calls); // <------- (3 -> 4)




--
You received this message because this project is configured to send all issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings

--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to