bool js::RoundFloat32(JSContext *cx, HandleValue arg, MutableHandleValue res) { float f; if (!RoundFloat32(cx, arg, &f)) return false; res.setDouble(static_cast<double>(f)); return true; }
bool js::math_sqrt_handle(JSContext *cx, HandleValue number, MutableHandleValue result) { double x; if (!ToNumber(cx, number, &x)) return false; MathCache *mathCache = cx->runtime()->getMathCache(cx); if (!mathCache) return false; double z = mathCache->lookup(sqrt, x, MathCache::Sqrt); result.setDouble(z); return true; }
bool js::math_atan2_handle(JSContext *cx, HandleValue y, HandleValue x, MutableHandleValue res) { double dy; if (!ToNumber(cx, y, &dy)) return false; double dx; if (!ToNumber(cx, x, &dx)) return false; double z = ecmaAtan2(dy, dx); res.setDouble(z); return true; }
bool js::math_sin_handle(JSContext* cx, HandleValue val, MutableHandleValue res) { double in; if (!ToNumber(cx, val, &in)) return false; MathCache* mathCache = cx->runtime()->getMathCache(cx); if (!mathCache) return false; double out = math_sin_impl(mathCache, in); res.setDouble(out); return true; }