mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 810062 - Toggle JSOPTIONs before the compartment creation. r=bhackett
This commit is contained in:
parent
20e2c47dfb
commit
b4a74f1cc8
@ -377,7 +377,7 @@ interface nsIXPCComponents_Utils : nsISupports
|
|||||||
|
|
||||||
[implicit_jscontext]
|
[implicit_jscontext]
|
||||||
attribute boolean strict_mode;
|
attribute boolean strict_mode;
|
||||||
|
|
||||||
[implicit_jscontext]
|
[implicit_jscontext]
|
||||||
attribute boolean ion;
|
attribute boolean ion;
|
||||||
|
|
||||||
|
@ -1124,12 +1124,48 @@ static int
|
|||||||
usage(void)
|
usage(void)
|
||||||
{
|
{
|
||||||
fprintf(gErrFile, "%s\n", JS_GetImplementationVersion());
|
fprintf(gErrFile, "%s\n", JS_GetImplementationVersion());
|
||||||
fprintf(gErrFile, "usage: xpcshell [-g gredir] [-a appdir] [-r manifest]... [-PsSwWxCij] [-v version] [-f scriptfile] [-e script] [scriptfile] [scriptarg...]\n");
|
fprintf(gErrFile, "usage: xpcshell [-g gredir] [-a appdir] [-r manifest]... [-PsSwWxCijmIn] [-v version] [-f scriptfile] [-e script] [scriptfile] [scriptarg...]\n");
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern JSClass global_class;
|
extern JSClass global_class;
|
||||||
|
|
||||||
|
static void
|
||||||
|
ProcessArgsForCompartment(JSContext *cx, char **argv, int argc)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < argc; i++) {
|
||||||
|
if (argv[i][0] != '-' || argv[i][1] == '\0')
|
||||||
|
break;
|
||||||
|
|
||||||
|
switch (argv[i][1]) {
|
||||||
|
case 'v':
|
||||||
|
case 'f':
|
||||||
|
case 'e':
|
||||||
|
if (++i == argc)
|
||||||
|
return;
|
||||||
|
break;
|
||||||
|
case 'S':
|
||||||
|
JS_ToggleOptions(cx, JSOPTION_WERROR);
|
||||||
|
case 's':
|
||||||
|
JS_ToggleOptions(cx, JSOPTION_STRICT);
|
||||||
|
break;
|
||||||
|
case 'x':
|
||||||
|
JS_ToggleOptions(cx, JSOPTION_MOAR_XML);
|
||||||
|
break;
|
||||||
|
case 'm':
|
||||||
|
JS_ToggleOptions(cx, JSOPTION_METHODJIT);
|
||||||
|
break;
|
||||||
|
case 'I':
|
||||||
|
JS_ToggleOptions(cx, JSOPTION_COMPILE_N_GO);
|
||||||
|
JS_ToggleOptions(cx, JSOPTION_ION);
|
||||||
|
break;
|
||||||
|
case 'n':
|
||||||
|
JS_ToggleOptions(cx, JSOPTION_TYPE_INFERENCE);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
ProcessArgs(JSContext *cx, JSObject *obj, char **argv, int argc)
|
ProcessArgs(JSContext *cx, JSObject *obj, char **argv, int argc)
|
||||||
{
|
{
|
||||||
@ -1210,13 +1246,7 @@ ProcessArgs(JSContext *cx, JSObject *obj, char **argv, int argc)
|
|||||||
case 'w':
|
case 'w':
|
||||||
reportWarnings = true;
|
reportWarnings = true;
|
||||||
break;
|
break;
|
||||||
case 'S':
|
|
||||||
JS_ToggleOptions(cx, JSOPTION_WERROR);
|
|
||||||
case 's':
|
|
||||||
JS_ToggleOptions(cx, JSOPTION_STRICT);
|
|
||||||
break;
|
|
||||||
case 'x':
|
case 'x':
|
||||||
JS_ToggleOptions(cx, JSOPTION_MOAR_XML);
|
|
||||||
break;
|
break;
|
||||||
case 'd':
|
case 'd':
|
||||||
xpc_ActivateDebugMode();
|
xpc_ActivateDebugMode();
|
||||||
@ -1254,11 +1284,12 @@ ProcessArgs(JSContext *cx, JSObject *obj, char **argv, int argc)
|
|||||||
compileOnly = true;
|
compileOnly = true;
|
||||||
isInteractive = false;
|
isInteractive = false;
|
||||||
break;
|
break;
|
||||||
|
case 'S':
|
||||||
|
case 's':
|
||||||
case 'm':
|
case 'm':
|
||||||
JS_ToggleOptions(cx, JSOPTION_METHODJIT);
|
case 'I':
|
||||||
break;
|
|
||||||
case 'n':
|
case 'n':
|
||||||
JS_ToggleOptions(cx, JSOPTION_TYPE_INFERENCE);
|
// These options are processed in ProcessArgsForCompartment.
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return usage();
|
return usage();
|
||||||
@ -1775,6 +1806,10 @@ main(int argc, char **argv, char **envp)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
argc--;
|
||||||
|
argv++;
|
||||||
|
ProcessArgsForCompartment(cx, argv, argc);
|
||||||
|
|
||||||
JS_SetOptions(cx, JS_GetOptions(cx) | JSOPTION_ALLOW_XML);
|
JS_SetOptions(cx, JS_GetOptions(cx) | JSOPTION_ALLOW_XML);
|
||||||
xpc_LocalizeContext(cx);
|
xpc_LocalizeContext(cx);
|
||||||
|
|
||||||
@ -1887,9 +1922,6 @@ main(int argc, char **argv, char **envp)
|
|||||||
JS_DefineProperty(cx, glob, "__LOCATION__", JSVAL_VOID,
|
JS_DefineProperty(cx, glob, "__LOCATION__", JSVAL_VOID,
|
||||||
GetLocationProperty, NULL, 0);
|
GetLocationProperty, NULL, 0);
|
||||||
|
|
||||||
argc--;
|
|
||||||
argv++;
|
|
||||||
|
|
||||||
result = ProcessArgs(cx, glob, argv, argc);
|
result = ProcessArgs(cx, glob, argv, argc);
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user