mirror of
https://github.com/reactos/wine.git
synced 2024-11-25 04:39:45 +00:00
jscript: Call script_parse from compile_script, not the other way around.
This commit is contained in:
parent
825eb76321
commit
be29a73845
@ -1778,13 +1778,24 @@ static HRESULT compile_function(compiler_ctx_t *ctx, source_elements_t *source,
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT compile_script(parser_ctx_t *parser, BOOL from_eval)
|
||||
HRESULT compile_script(script_ctx_t *ctx, const WCHAR *code, const WCHAR *delimiter, BOOL from_eval,
|
||||
parser_ctx_t **ret)
|
||||
{
|
||||
parser_ctx_t *parser;
|
||||
HRESULT hres;
|
||||
|
||||
hres = init_compiler(parser);
|
||||
hres = script_parse(ctx, code, delimiter, from_eval, &parser);
|
||||
if(FAILED(hres))
|
||||
return hres;
|
||||
|
||||
return compile_function(parser->compiler, parser->source, from_eval);
|
||||
hres = init_compiler(parser);
|
||||
if(SUCCEEDED(hres))
|
||||
hres = compile_function(parser->compiler, parser->source, from_eval);
|
||||
if(FAILED(hres)) {
|
||||
parser_release(parser);
|
||||
return hres;
|
||||
}
|
||||
|
||||
*ret = parser;
|
||||
return S_OK;
|
||||
}
|
||||
|
@ -577,4 +577,4 @@ typedef struct {
|
||||
prop_val_t *property_list;
|
||||
} property_value_expression_t;
|
||||
|
||||
HRESULT compile_script(parser_ctx_t*,BOOL) DECLSPEC_HIDDEN;
|
||||
HRESULT compile_script(script_ctx_t*,const WCHAR*,const WCHAR*,BOOL,parser_ctx_t**) DECLSPEC_HIDDEN;
|
||||
|
@ -774,7 +774,7 @@ static HRESULT construct_function(script_ctx_t *ctx, DISPPARAMS *dp, jsexcept_t
|
||||
if(FAILED(hres))
|
||||
return hres;
|
||||
|
||||
hres = script_parse(ctx, str, NULL, FALSE, &parser);
|
||||
hres = compile_script(ctx, str, NULL, FALSE, &parser);
|
||||
heap_free(str);
|
||||
if(FAILED(hres))
|
||||
return hres;
|
||||
|
@ -371,7 +371,7 @@ static HRESULT JSGlobal_eval(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, DIS
|
||||
}
|
||||
|
||||
TRACE("parsing %s\n", debugstr_w(V_BSTR(arg)));
|
||||
hres = script_parse(ctx, V_BSTR(arg), NULL, TRUE, &parser_ctx);
|
||||
hres = compile_script(ctx, V_BSTR(arg), NULL, TRUE, &parser_ctx);
|
||||
if(FAILED(hres)) {
|
||||
WARN("parse (%s) failed: %08x\n", debugstr_w(V_BSTR(arg)), hres);
|
||||
return throw_syntax_error(ctx, ei, hres, NULL);
|
||||
|
@ -762,7 +762,7 @@ static HRESULT WINAPI JScriptParse_ParseScriptText(IActiveScriptParse *iface,
|
||||
if(This->thread_id != GetCurrentThreadId() || This->ctx->state == SCRIPTSTATE_CLOSED)
|
||||
return E_UNEXPECTED;
|
||||
|
||||
hres = script_parse(This->ctx, pstrCode, pstrDelimiter, FALSE, &parser_ctx);
|
||||
hres = compile_script(This->ctx, pstrCode, pstrDelimiter, FALSE, &parser_ctx);
|
||||
if(FAILED(hres))
|
||||
return hres;
|
||||
|
||||
@ -829,7 +829,7 @@ static HRESULT WINAPI JScriptParseProcedure_ParseProcedureText(IActiveScriptPars
|
||||
if(This->thread_id != GetCurrentThreadId() || This->ctx->state == SCRIPTSTATE_CLOSED)
|
||||
return E_UNEXPECTED;
|
||||
|
||||
hres = script_parse(This->ctx, pstrCode, pstrDelimiter, FALSE, &parser_ctx);
|
||||
hres = compile_script(This->ctx, pstrCode, pstrDelimiter, FALSE, &parser_ctx);
|
||||
if(FAILED(hres)) {
|
||||
WARN("Parse failed %08x\n", hres);
|
||||
return hres;
|
||||
|
@ -1582,8 +1582,6 @@ HRESULT script_parse(script_ctx_t *ctx, const WCHAR *code, const WCHAR *delimite
|
||||
parser_parse(parser_ctx);
|
||||
jsheap_clear(mark);
|
||||
hres = parser_ctx->hres;
|
||||
if(SUCCEEDED(hres))
|
||||
hres = compile_script(parser_ctx, from_eval);
|
||||
if(FAILED(hres)) {
|
||||
parser_release(parser_ctx);
|
||||
return hres;
|
||||
|
Loading…
Reference in New Issue
Block a user