Closed Bug 656059 Opened 9 years ago Closed 8 years ago

Remove TraceRecorder::getClassPrototype(JSProtoKey, LIns*&), replace with TR::getObjectPrototype(LIns*&) and similar

Categories

(Core :: JavaScript Engine, defect)

defect
Not set

Tracking

()

RESOLVED FIXED
mozilla10

People

(Reporter: Waldo, Assigned: Waldo)

Details

Attachments

(2 files)

If you want a class prototype, you should ask for it specifically.  Asking specifically gives us more freedom in how we store prototypes (and constructors, for now) in the global object, and it's cleaner and more readable than having to know what a |key| variable could be when it's used in a centralized method.

There are a few different methods for getting an original prototype in use in jstracer.cpp; this bug will fix the one that accepts a JSProtoKey to determine what prototype to get.
It turns out that DebugOnly<T> isn't so hot when T is a pointer type right now.
Attachment #531374 - Flags: review?(jones.chris.g)
Attachment #531374 - Flags: review?(jones.chris.g) → review+
http://hg.mozilla.org/tracemonkey/rev/c2315c604e7c for DebugOnly<T>::operator->, but the main patch here still remains to be reviewed/committed.
cdleary-bot mozilla-central merge info:
http://hg.mozilla.org/mozilla-central/rev/c2315c604e7c
Note: not marking as fixed because fixed-in-tracemonkey is not present on the whiteboard.
Comment on attachment 531375 [details] [diff] [review]
Ask for specific prototypes, not for a prototype specified key-wise

Sure, ok.
Attachment #531375 - Flags: review?(jorendorff) → review+
And this, to fix compiler warnings that gcc 4.6.1 is apparently smart enough (or conservative enough) to not emit:

https://hg.mozilla.org/integration/mozilla-inbound/rev/e13c356c0a45
You need to log in before you can comment on or make changes to this bug.