Bug 683361, part 4 - Handle transparent proxies correctly in non-generic methods (r=waldo)

This commit is contained in:
Luke Wagner
2011-09-08 21:18:23 -07:00
parent 4532ce0d7a
commit bedc73af5b
16 changed files with 585 additions and 382 deletions

View File

@@ -79,7 +79,6 @@
#include "jsatominlines.h"
#include "jsinferinlines.h"
#include "jsinterpinlines.h"
#include "jsnuminlines.h"
#include "jsobjinlines.h"
#include "jsstrinlines.h"
@@ -605,8 +604,9 @@ num_toSource(JSContext *cx, uintN argc, Value *vp)
CallArgs args = CallArgsFromVp(argc, vp);
double d;
if (!GetPrimitiveThis(cx, args, &d))
return false;
bool ok;
if (!BoxedPrimitiveMethodGuard(cx, args, &d, &ok))
return ok;
ToCStringBuf cbuf;
char *numStr = NumberToCString(cx, &cbuf, d);
@@ -718,8 +718,9 @@ num_toString(JSContext *cx, uintN argc, Value *vp)
CallArgs args = CallArgsFromVp(argc, vp);
double d;
if (!GetPrimitiveThis(cx, args, &d))
return false;
bool ok;
if (!BoxedPrimitiveMethodGuard(cx, args, &d, &ok))
return ok;
int32 base = 10;
if (args.length() != 0 && !args[0].isUndefined()) {
@@ -868,8 +869,9 @@ js_num_valueOf(JSContext *cx, uintN argc, Value *vp)
CallArgs args = CallArgsFromVp(argc, vp);
double d;
if (!GetPrimitiveThis(cx, args, &d))
return false;
bool ok;
if (!BoxedPrimitiveMethodGuard(cx, args, &d, &ok))
return ok;
args.rval().setNumber(d);
return true;
@@ -888,8 +890,9 @@ num_to(JSContext *cx, JSDToStrMode zeroArgMode, JSDToStrMode oneArgMode,
char *numStr;
double d;
if (!GetPrimitiveThis(cx, args, &d))
return false;
bool ok;
if (!BoxedPrimitiveMethodGuard(cx, args, &d, &ok))
return ok;
double precision;
if (args.length() == 0) {