_control87(MCW_EM, MCW_EM);
js_InitNumberClass(JSContext *cx, JSObject *obj){    JSRuntime *rt;    union dpun u;    JSObject *proto, *ctor;    rt = cx->runtime;    if (!rt->jsNaN) {#ifdef XP_PC#ifdef XP_OS2	/*DSR071597 - I have no idea what this really does other than mucking with the floating     */	/*point unit, but it does fix a "floating point underflow" exception I am getting, and there*/	/*is similar code in the Hursley java. Making sure we have the same code in Javascript      */	/*where Netscape was calling control87 on Windows...                                        */	_control87(MCW_EM+PC_53+RC_NEAR,MCW_EM+MCW_PC+MCW_RC);#else	_control87(MCW_EM, MCW_EM);#endif#endif	u.s.hi = JSDOUBLE_HI32_EXPMASK | JSDOUBLE_HI32_MANTMASK;	u.s.lo = 0xffffffff;	number_constants[NC_NaN].dval = NaN = u.d;	rt->jsNaN = js_NewDouble(cx, NaN);	if (!rt->jsNaN || !js_LockGCThing(cx, rt->jsNaN))	    return NULL;	u.s.hi = JSDOUBLE_HI32_EXPMASK;	u.s.lo = 0x00000000;	number_constants[NC_POSITIVE_INFINITY].dval = u.d;	rt->jsPositiveInfinity = js_NewDouble(cx, u.d);	if (!rt->jsPositiveInfinity ||	    !js_LockGCThing(cx, rt->jsPositiveInfinity)) {	    return NULL;	}	u.s.hi = JSDOUBLE_HI32_SIGNBIT | JSDOUBLE_HI32_EXPMASK;	u.s.lo = 0x00000000;	number_constants[NC_NEGATIVE_INFINITY].dval = u.d;	rt->jsNegativeInfinity = js_NewDouble(cx, u.d);	if (!rt->jsNegativeInfinity ||	    !js_LockGCThing(cx, rt->jsNegativeInfinity)) {	    return NULL;	}	u.s.hi = 0;	u.s.lo = 1;	number_constants[NC_MIN_VALUE].dval = u.d;    }    if (!JS_DefineFunctions(cx, obj, number_functions))	return NULL;    proto = JS_InitClass(cx, obj, NULL, &number_class, Number, 1,			 NULL, number_methods, NULL, NULL);    if (!proto || !(ctor = JS_GetConstructor(cx, proto)))	return NULL;    OBJ_SET_SLOT(cx, proto, JSSLOT_PRIVATE, JSVAL_ZERO);    if (!JS_DefineConstDoubles(cx, ctor, number_constants))	return NULL;    /* ECMA 15.1.1.1 */    if (!JS_DefineProperty(cx, obj, "NaN", DOUBLE_TO_JSVAL(rt->jsNaN),			   NULL, NULL, 0)) {	return NULL;    }    /* ECMA 15.1.1.2 */    if (!JS_DefineProperty(cx, obj, "Infinity",			   DOUBLE_TO_JSVAL(rt->jsPositiveInfinity),			   NULL, NULL, 0)) {	return NULL;    }    return proto;}