@@ -30,6 +30,7 @@ CHAKRA_API RunScriptWithParserStateCore(
3030 _In_ WCHAR *url,
3131 _In_ JsParseScriptAttributes parseAttributes,
3232 _In_ JsValueRef parserState,
33+ _In_ bool parseOnly,
3334 _Out_ JsValueRef *result
3435);
3536
@@ -5370,7 +5371,6 @@ CHAKRA_API JsSerializeParserState(
53705371 return errorCode;
53715372}
53725373
5373-
53745374static bool CHAKRA_CALLBACK DummyScriptLoadSourceCallbackForRunScriptWithParserState (
53755375 JsSourceContext sourceContext,
53765376 _Out_ JsValueRef *value,
@@ -5388,6 +5388,7 @@ CHAKRA_API RunScriptWithParserStateCore(
53885388 _In_ WCHAR *url,
53895389 _In_ JsParseScriptAttributes parseAttributes,
53905390 _In_ JsValueRef parserState,
5391+ _In_ bool parseOnly,
53915392 _Out_ JsValueRef *result
53925393)
53935394{
@@ -5480,7 +5481,7 @@ CHAKRA_API RunScriptWithParserStateCore(
54805481 return RunSerializedScriptCore (
54815482 dummy, DummyScriptUnloadCallback,
54825483 sourceContext, // use the same user provided sourceContext as scriptLoadSourceContext
5483- buffer, arrayBuffer, sourceContext, url, dwBgParseCookie, false , true , result, sourceIndex);
5484+ buffer, arrayBuffer, sourceContext, url, dwBgParseCookie, parseOnly , true , result, sourceIndex);
54845485}
54855486
54865487CHAKRA_API JsRunScriptWithParserState (
@@ -5495,14 +5496,33 @@ CHAKRA_API JsRunScriptWithParserState(
54955496 if (sourceUrl && Js::VarIs<Js::JavascriptString>(sourceUrl))
54965497 {
54975498 url = const_cast <WCHAR*>(((Js::JavascriptString*)(sourceUrl))->GetSz ());
5498- return RunScriptWithParserStateCore (0 , script, sourceContext, url, parseAttributes, parserState, result);
5499+ return RunScriptWithParserStateCore (0 , script, sourceContext, url, parseAttributes, parserState, false , result);
54995500 }
55005501 else
55015502 {
55025503 return JsErrorInvalidArgument;
55035504 }
55045505}
55055506
5507+ CHAKRA_API JsDeserializeParserState (
5508+ _In_ JsValueRef script,
5509+ _In_ JsSourceContext sourceContext,
5510+ _In_ JsValueRef sourceUrl,
5511+ _In_ JsParseScriptAttributes parseAttributes,
5512+ _In_ JsValueRef parserState,
5513+ _Out_ JsValueRef * result)
5514+ {
5515+ WCHAR *url = nullptr ;
5516+ if (sourceUrl && Js::VarIs<Js::JavascriptString>(sourceUrl))
5517+ {
5518+ url = const_cast <WCHAR*>(((Js::JavascriptString*)(sourceUrl))->GetSz ());
5519+ return RunScriptWithParserStateCore (0 , script, sourceContext, url, parseAttributes, parserState, true , result);
5520+ }
5521+ else
5522+ {
5523+ return JsErrorInvalidArgument;
5524+ }
5525+ }
55065526
55075527CHAKRA_API
55085528JsExecuteBackgroundParse_Experimental (
@@ -5524,6 +5544,7 @@ JsExecuteBackgroundParse_Experimental(
55245544 url,
55255545 parseAttributes,
55265546 parserState,
5547+ false ,
55275548 result
55285549 );
55295550 }
0 commit comments