Closed
Bug 656810
Opened 13 years ago
Closed 13 years ago
Implement js::NumberObject
Categories
(Core :: JavaScript Engine, defect)
Core
JavaScript Engine
Tracking
()
RESOLVED
FIXED
mozilla9
People
(Reporter: Waldo, Assigned: Waldo)
Details
Attachments
(1 file)
8.50 KB,
patch
|
n.nethercote
:
review+
|
Details | Diff | Splinter Review |
As object subclasses go it's on the low end of the importance scale, but we should have it to get away from the getPrimitiveThis/setPrimitiveThis punning.
Attachment #532079 -
Flags: review?(nnethercote)
Comment 1•13 years ago
|
||
Comment on attachment 532079 [details] [diff] [review]
Patch
Review of attachment 532079 [details] [diff] [review]:
-----------------------------------------------------------------
r=me
::: js/src/vm/NumberObject.h
@@ +69,5 @@
> + }
> +
> + private:
> + inline void init(jsdouble d) {
> + setSlot(PRIMITIVE_THIS_SLOT, NumberValue(d));
Is PRIMITIVE_THIS_SLOT the best name now? Would something simpler like VALUE_SLOT be better? And if you make that change, would setValue() be a better name than init()?
@@ +78,5 @@
> + ::js_InitNumberClass(JSContext *cx, JSObject *global);
> +
> + private:
> + NumberObject();
> + NumberObject &operator=(const NumberObject &so);
Add a comment here, please, explaining these are declared private so they can't be used. (And maybe why you don't want them to be used.)
Attachment #532079 -
Flags: review?(nnethercote) → review+
Comment 2•13 years ago
|
||
5 out 5 JS engineers just surveyed agree that private cctor/op= is a basic C++ idiom and not deserving of comment.
Assignee | ||
Comment 3•13 years ago
|
||
(In reply to comment #1)
> Is PRIMITIVE_THIS_SLOT the best name now? Would something simpler
> like VALUE_SLOT be better? And if you make that change, would
> setValue() be a better name than init()?
I had thought I was mimicking the name of the spec internal property, but that was actually [[PrimitiveValue]], so I renamed to PRIMITIVE_VALUE_SLOT and setPrimitiveValue.
> @@ +78,5 @@
> > + ::js_InitNumberClass(JSContext *cx, JSObject *global);
> > +
> > + private:
> > + NumberObject();
> > + NumberObject &operator=(const NumberObject &so);
>
> Add a comment here, please, explaining these are declared private so
> they can't be used. (And maybe why you don't want them to be used.)
A poll of the office says private constructor/operator= are idiomatic for "don't do that", so I'm leaving this as-is. It doesn't seem important to clarify why, but anyone who's truly curious shouldn't have to think much past "this is GC-managed" to explain.
This is atop a bunch of other patches, so it'll be awhile before it lands, I think (but for 6, I believe).
Assignee | ||
Comment 4•13 years ago
|
||
...and four and a half months later, those other patches have made their way through reviews and such into the tree -- landed:
http://hg.mozilla.org/integration/mozilla-inbound/rev/66736ca9c8c3
Target Milestone: --- → mozilla9
Comment 5•13 years ago
|
||
Status: ASSIGNED → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•