Closed Bug 758428 Opened 9 years ago Closed 9 years ago

shell swallows compiler bugs

Categories

(Core :: JavaScript Engine, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla15

People

(Reporter: Benjamin, Assigned: Benjamin)

Details

Attachments

(1 file, 2 obsolete files)

If frontend::CompileScript returns NULL because of OOM, Process() in js.cpp will continue merrily on its way and no one ever calls JS_ReportOutOfMemory().

Is it the responsibility of the JS API to call JS_ReportOutOfMemory() or the shell?
This is not as clear cut as a thought. Parts of the compiler that allocate things do call js_ReportOutOfMemory(). However, if you accidentally return NULL from the compiler with no error set, nothing gets spit out. It would be nice to have something fail when that happens. I'll try to devise a patch.
Summary: shell swallows OOM errors from the compiler → shell swallows compiler bugs
Attachment #627012 - Flags: review?(jorendorff)
Comment on attachment 627012 [details] [diff] [review]
complains when the compiler returns NULL and doesn't report an error

>+JSBool gGotError = JS_FALSE;

In new code, use C++ bool, false, and true.

(unless you have to match a function signature, or matching is the nicest way to avoid stupid C++ warnings, but that's not an issue here)


>+        if (!script)
>+            JS_ASSERT(gGotError);

        JS_ASSERT_IF(!script, gGotError);
Attachment #627012 - Flags: review?(jorendorff) → review+
Attached patch address review comments (obsolete) — Splinter Review
Assignee: general → bpeterson
Attachment #627012 - Attachment is obsolete: true
Attached patch use JS_ASSERT_IFSplinter Review
Attachment #628437 - Attachment is obsolete: true
Keywords: checkin-needed
https://hg.mozilla.org/mozilla-central/rev/2c7a1e5ac5bd
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla15
You need to log in before you can comment on or make changes to this bug.