Closed Bug 582419 Opened 11 years ago Closed 11 years ago

JM: jsreftest failure on js1_8_1\regress\regress-479430-01.js

Categories

(Core :: JavaScript Engine, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: dmandelin, Assigned: adrake)

References

Details

Attachments

(1 file)

Also affects the -02 and -04 "subtests". I believe the issue is with triggering the operationCallback in the presence of infinite recursion. Here is a reduced test case:

  timeout(1);
  function f(n) {
    if (!n)
	return;
    f(n-1);
    f(n-1);
  }
  f(100);
  print('done')

This should terminate after one second, but it doesn't with -m. The timeout fires, but execution doesn't stop. We are probably missing operationCallback checks in function entry or exit that would catch this.
There should be callback checks on function calls. Patch forthcoming...
Assignee: general → adrake
Status: NEW → ASSIGNED
Attached patch Patch v0Splinter Review
Moves interrupt check into a helper function and calls it from the top of JSOP_CALL/NEW/etc in addition to its previous location of JSOP_TRACE.
Attachment #460704 - Flags: review?(dmandelin)
Comment on attachment 460704 [details] [diff] [review]
Patch v0

Looks great. Thanks!
Attachment #460704 - Flags: review?(dmandelin) → review+
http://hg.mozilla.org/users/danderson_mozilla.com/moo/rev/c893f830ff7e
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.