mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 549971 - Add compile() function to JS shell. r=jorendorff.
This commit is contained in:
parent
bfaa2dc218
commit
82a9895df9
@ -3635,6 +3635,32 @@ MakeAbsolutePathname(JSContext *cx, const char *from, const char *leaf)
|
|||||||
|
|
||||||
#endif // XP_UNIX
|
#endif // XP_UNIX
|
||||||
|
|
||||||
|
static JSBool
|
||||||
|
Compile(JSContext *cx, uintN argc, jsval *vp)
|
||||||
|
{
|
||||||
|
if (argc < 1) {
|
||||||
|
JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL, JSMSG_MORE_ARGS_NEEDED,
|
||||||
|
"compile", "0", "s");
|
||||||
|
return JS_FALSE;
|
||||||
|
}
|
||||||
|
jsval arg0 = JS_ARGV(cx, vp)[0];
|
||||||
|
if (!JSVAL_IS_STRING(arg0)) {
|
||||||
|
const char *typeName = JS_GetTypeName(cx, JS_TypeOfValue(cx, arg0));
|
||||||
|
JS_ReportError(cx, "expected string to compile, got %s", typeName);
|
||||||
|
return JS_FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
JSString *scriptContents = JSVAL_TO_STRING(arg0);
|
||||||
|
JSScript *result = JS_CompileUCScript(cx, NULL, JS_GetStringCharsZ(cx, scriptContents),
|
||||||
|
JS_GetStringLength(scriptContents), "<string>", 0);
|
||||||
|
if (!result)
|
||||||
|
return JS_FALSE;
|
||||||
|
|
||||||
|
JS_DestroyScript(cx, result);
|
||||||
|
JS_SET_RVAL(cx, vp, JSVAL_VOID);
|
||||||
|
return JS_TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
static JSBool
|
static JSBool
|
||||||
Snarf(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
Snarf(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
||||||
{
|
{
|
||||||
@ -3786,6 +3812,7 @@ static JSFunctionSpec shell_functions[] = {
|
|||||||
JS_FN("scatter", Scatter, 1,0),
|
JS_FN("scatter", Scatter, 1,0),
|
||||||
#endif
|
#endif
|
||||||
JS_FS("snarf", Snarf, 0,0,0),
|
JS_FS("snarf", Snarf, 0,0,0),
|
||||||
|
JS_FN("compile", Compile, 1,0),
|
||||||
JS_FN("timeout", Timeout, 1,0),
|
JS_FN("timeout", Timeout, 1,0),
|
||||||
JS_FN("elapsed", Elapsed, 0,0),
|
JS_FN("elapsed", Elapsed, 0,0),
|
||||||
JS_FS_END
|
JS_FS_END
|
||||||
@ -3888,6 +3915,7 @@ static const char *const shell_help_messages[] = {
|
|||||||
"scatter(fns) Call functions concurrently (ignoring errors)",
|
"scatter(fns) Call functions concurrently (ignoring errors)",
|
||||||
#endif
|
#endif
|
||||||
"snarf(filename) Read filename into returned string",
|
"snarf(filename) Read filename into returned string",
|
||||||
|
"compile(code) Parses a string, potentially throwing",
|
||||||
"timeout([seconds])\n"
|
"timeout([seconds])\n"
|
||||||
" Get/Set the limit in seconds for the execution time for the current context.\n"
|
" Get/Set the limit in seconds for the execution time for the current context.\n"
|
||||||
" A negative value (default) means that the execution time is unlimited.",
|
" A negative value (default) means that the execution time is unlimited.",
|
||||||
|
Loading…
Reference in New Issue
Block a user