As a security precaution, we have turned on the setting "Require API key authentication for API requests" for everyone. If this has broken something, please contact
Last Comment Bug 691593 - IonMonkey: Assertion failure: *pc == JSOP_CALL, at jsopcode.cpp:4143
: IonMonkey: Assertion failure: *pc == JSOP_CALL, at jsopcode.cpp:4143
: assertion, testcase
Product: Core
Classification: Components
Component: JavaScript Engine (show other bugs)
: Other Branch
: x86_64 Linux
: -- major (vote)
: ---
Assigned To: general
: Jason Orendorff [:jorendorff]
Depends on:
Blocks: langfuzz IonFuzz
  Show dependency treegraph
Reported: 2011-10-03 17:05 PDT by Christian Holler (:decoder)
Modified: 2013-02-07 05:16 PST (History)
4 users (show)
choller: in‑testsuite+
See Also:
Crash Signature:
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---

Assert that JSOP_NOTEARG occurs after |this| push. (935 bytes, patch)
2011-10-04 11:37 PDT, Sean Stangl [:sstangl]
dvander: review+
Details | Diff | Splinter Review

Description User image Christian Holler (:decoder) 2011-10-03 17:05:40 PDT
The following testcase asserts on ionmonkey revision acf3c1fb7c94 (run with --ion-eager), tested on 64 bit:

genexp = "x * x for (x in [])";
genexpParened = "(" + genexp + ")";
needParens(2, "if (1, xx) { }");
function needParens(section, pat, exp) {
  ft = pat.replace(/xx/, genexpParened);
  try {
    f = new Function(ft);
  } catch(e) {  } 
  overParenTest(section, f, exp);
function overParenTest(section, f, exp) {
  var uf = "" + f;
  if (uf.indexOf(genexpParened) != -1) {  }
Comment 1 User image Gary Kwong [:gkw] [:nth10sd] 2011-10-04 09:46:49 PDT
    (function() {
        ([] for (x in []))

asserts js debug shell on IM changeset 5602420006bb without any CLI flags at Assertion failure: *pc == JSOP_CALL, 32-bit js shell in 64-bit Windows 7.
Comment 2 User image Sean Stangl [:sstangl] 2011-10-04 11:37:12 PDT
Created attachment 564618 [details] [diff] [review]
Assert that JSOP_NOTEARG occurs after |this| push.

I remember this issue being posted in a bug before, but can't seem to find it now.

JSOP_PUSH for |this| is followed by JSOP_NOTEARG so IonBuilder can be single-pass with MPassArg at point-of-definition. In adding JSOP_NOTEARG, I missed a spot that asserts the next op after JSOP_PUSH is JSOP_CALL.
Comment 3 User image Sean Stangl [:sstangl] 2011-10-04 14:26:07 PDT
Comment 4 User image Christian Holler (:decoder) 2013-02-07 05:16:47 PST
Automatically extracted testcase for this bug was committed:

Note You need to log in before you can comment on or make changes to this bug.