Record all calls to native functions (487134, r=gal, brendan).

This commit is contained in:
jorendorff
2009-05-05 14:26:06 -07:00
parent 309588eaaf
commit d0cf82fdba
14 changed files with 415 additions and 289 deletions

View File

@@ -2167,38 +2167,6 @@ js_Date(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
return JS_TRUE;
}
JS_STATIC_ASSERT(JSSLOT_PRIVATE == JSSLOT_UTC_TIME);
JS_STATIC_ASSERT(JSSLOT_UTC_TIME + 1 == JSSLOT_LOCAL_TIME);
#ifdef JS_TRACER
static JSObject* FASTCALL
Date_tn(JSContext* cx, JSObject* proto)
{
JS_ASSERT(JS_ON_TRACE(cx));
JSObject* obj = js_NewNativeObject(cx, &js_DateClass, proto, JSSLOT_LOCAL_TIME + 1);
if (!obj)
return NULL;
jsdouble* date = js_NewWeaklyRootedDouble(cx, 0.0);
if (!date)
return NULL;
*date = date_now_tn(cx);
obj->fslots[JSSLOT_UTC_TIME] = DOUBLE_TO_JSVAL(date);
obj->fslots[JSSLOT_LOCAL_TIME] = DOUBLE_TO_JSVAL(cx->runtime->jsNaN);
return obj;
}
JS_DEFINE_TRCINFO_1(js_Date,
(2, (static, CONSTRUCTOR_RETRY, Date_tn, CONTEXT, CALLEE_PROTOTYPE, 0, 0)))
#else /* !JS_TRACER */
# define js_Date_trcinfo NULL
#endif /* !JS_TRACER */
JSObject *
js_InitDateClass(JSContext *cx, JSObject *obj)
{
@@ -2208,8 +2176,7 @@ js_InitDateClass(JSContext *cx, JSObject *obj)
/* set static LocalTZA */
LocalTZA = -(PRMJ_LocalGMTDifference() * msPerSecond);
proto = js_InitClass(cx, obj, NULL, &js_DateClass, js_Date, MAXARGS,
NULL, date_methods, NULL, date_static_methods,
js_Date_trcinfo);
NULL, date_methods, NULL, date_static_methods);
if (!proto)
return NULL;