Closed Bug 656059 Opened 10 years ago Closed 9 years ago

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


(Core :: JavaScript Engine, defect)

Not set





(Reporter: Waldo, Assigned: Waldo)



(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+ for DebugOnly<T>::operator->, but the main patch here still remains to be reviewed/committed.
cdleary-bot mozilla-central merge info:
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:
You need to log in before you can comment on or make changes to this bug.