Bug 1724236 - Get CompileOptions from function arguments instead of member r=arai
Differential Revision: https://phabricator.services.mozilla.com/D218442
This commit is contained in:
@@ -75,7 +75,6 @@ JSExecutionContext::JSExecutionContext(
|
|||||||
mRealm(aCx, aGlobal),
|
mRealm(aCx, aGlobal),
|
||||||
mRetValue(aCx),
|
mRetValue(aCx),
|
||||||
mScript(aCx),
|
mScript(aCx),
|
||||||
mCompileOptions(aCompileOptions),
|
|
||||||
mDebuggerPrivateValue(aCx, aDebuggerPrivateValue),
|
mDebuggerPrivateValue(aCx, aDebuggerPrivateValue),
|
||||||
mDebuggerIntroductionScript(aCx, aDebuggerIntroductionScript),
|
mDebuggerIntroductionScript(aCx, aDebuggerIntroductionScript),
|
||||||
mSkip(false),
|
mSkip(false),
|
||||||
@@ -100,7 +99,8 @@ JSExecutionContext::JSExecutionContext(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void JSExecutionContext::JoinOffThread(ScriptLoadContext* aContext,
|
void JSExecutionContext::JoinOffThread(JS::CompileOptions& aCompileOptions,
|
||||||
|
ScriptLoadContext* aContext,
|
||||||
ErrorResult& aRv) {
|
ErrorResult& aRv) {
|
||||||
MOZ_ASSERT(!mSkip);
|
MOZ_ASSERT(!mSkip);
|
||||||
|
|
||||||
@@ -124,22 +124,24 @@ void JSExecutionContext::JoinOffThread(ScriptLoadContext* aContext,
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool unused;
|
bool unused;
|
||||||
InstantiateStencil(std::move(stencil), unused, aRv, &storage);
|
InstantiateStencil(aCompileOptions, std::move(stencil), unused, aRv,
|
||||||
|
&storage);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename Unit>
|
template <typename Unit>
|
||||||
void JSExecutionContext::InternalCompile(JS::SourceText<Unit>& aSrcBuf,
|
void JSExecutionContext::InternalCompile(JS::CompileOptions& aCompileOptions,
|
||||||
|
JS::SourceText<Unit>& aSrcBuf,
|
||||||
ErrorResult& aRv) {
|
ErrorResult& aRv) {
|
||||||
MOZ_ASSERT(!mSkip);
|
MOZ_ASSERT(!mSkip);
|
||||||
|
|
||||||
MOZ_ASSERT(aSrcBuf.get());
|
MOZ_ASSERT(aSrcBuf.get());
|
||||||
MOZ_ASSERT(mRetValue.isUndefined());
|
MOZ_ASSERT(mRetValue.isUndefined());
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
mWantsReturnValue = !mCompileOptions.noScriptRval;
|
mWantsReturnValue = !aCompileOptions.noScriptRval;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
RefPtr<JS::Stencil> stencil =
|
RefPtr<JS::Stencil> stencil =
|
||||||
CompileGlobalScriptToStencil(mCx, mCompileOptions, aSrcBuf);
|
CompileGlobalScriptToStencil(mCx, aCompileOptions, aSrcBuf);
|
||||||
if (!stencil) {
|
if (!stencil) {
|
||||||
mSkip = true;
|
mSkip = true;
|
||||||
aRv.NoteJSContextException(mCx);
|
aRv.NoteJSContextException(mCx);
|
||||||
@@ -156,20 +158,23 @@ void JSExecutionContext::InternalCompile(JS::SourceText<Unit>& aSrcBuf,
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool unused;
|
bool unused;
|
||||||
InstantiateStencil(std::move(stencil), unused, aRv);
|
InstantiateStencil(aCompileOptions, std::move(stencil), unused, aRv);
|
||||||
}
|
}
|
||||||
|
|
||||||
void JSExecutionContext::Compile(JS::SourceText<char16_t>& aSrcBuf,
|
void JSExecutionContext::Compile(JS::CompileOptions& aCompileOptions,
|
||||||
|
JS::SourceText<char16_t>& aSrcBuf,
|
||||||
ErrorResult& aRv) {
|
ErrorResult& aRv) {
|
||||||
InternalCompile(aSrcBuf, aRv);
|
InternalCompile(aCompileOptions, aSrcBuf, aRv);
|
||||||
}
|
}
|
||||||
|
|
||||||
void JSExecutionContext::Compile(JS::SourceText<Utf8Unit>& aSrcBuf,
|
void JSExecutionContext::Compile(JS::CompileOptions& aCompileOptions,
|
||||||
|
JS::SourceText<Utf8Unit>& aSrcBuf,
|
||||||
ErrorResult& aRv) {
|
ErrorResult& aRv) {
|
||||||
InternalCompile(aSrcBuf, aRv);
|
InternalCompile(aCompileOptions, aSrcBuf, aRv);
|
||||||
}
|
}
|
||||||
|
|
||||||
void JSExecutionContext::Compile(const nsAString& aScript, ErrorResult& aRv) {
|
void JSExecutionContext::Compile(JS::CompileOptions& aCompileOptions,
|
||||||
|
const nsAString& aScript, ErrorResult& aRv) {
|
||||||
MOZ_ASSERT(!mSkip);
|
MOZ_ASSERT(!mSkip);
|
||||||
|
|
||||||
const nsPromiseFlatString& flatScript = PromiseFlatString(aScript);
|
const nsPromiseFlatString& flatScript = PromiseFlatString(aScript);
|
||||||
@@ -181,14 +186,15 @@ void JSExecutionContext::Compile(const nsAString& aScript, ErrorResult& aRv) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Compile(srcBuf, aRv);
|
Compile(aCompileOptions, srcBuf, aRv);
|
||||||
}
|
}
|
||||||
|
|
||||||
void JSExecutionContext::Decode(const JS::TranscodeRange& aBytecodeBuf,
|
void JSExecutionContext::Decode(JS::CompileOptions& aCompileOptions,
|
||||||
|
const JS::TranscodeRange& aBytecodeBuf,
|
||||||
ErrorResult& aRv) {
|
ErrorResult& aRv) {
|
||||||
MOZ_ASSERT(!mSkip);
|
MOZ_ASSERT(!mSkip);
|
||||||
|
|
||||||
JS::DecodeOptions decodeOptions(mCompileOptions);
|
JS::DecodeOptions decodeOptions(aCompileOptions);
|
||||||
decodeOptions.borrowBuffer = true;
|
decodeOptions.borrowBuffer = true;
|
||||||
|
|
||||||
MOZ_ASSERT(!mWantsReturnValue);
|
MOZ_ASSERT(!mWantsReturnValue);
|
||||||
@@ -215,13 +221,14 @@ void JSExecutionContext::Decode(const JS::TranscodeRange& aBytecodeBuf,
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool unused;
|
bool unused;
|
||||||
InstantiateStencil(std::move(stencil), unused, aRv);
|
InstantiateStencil(aCompileOptions, std::move(stencil), unused, aRv);
|
||||||
}
|
}
|
||||||
|
|
||||||
void JSExecutionContext::InstantiateStencil(
|
void JSExecutionContext::InstantiateStencil(
|
||||||
RefPtr<JS::Stencil>&& aStencil, bool& incrementalEncodingAlreadyStarted,
|
JS::CompileOptions& aCompileOptions, RefPtr<JS::Stencil>&& aStencil,
|
||||||
ErrorResult& aRv, JS::InstantiationStorage* aStorage) {
|
bool& incrementalEncodingAlreadyStarted, ErrorResult& aRv,
|
||||||
JS::InstantiateOptions instantiateOptions(mCompileOptions);
|
JS::InstantiationStorage* aStorage) {
|
||||||
|
JS::InstantiateOptions instantiateOptions(aCompileOptions);
|
||||||
JS::Rooted<JSScript*> script(
|
JS::Rooted<JSScript*> script(
|
||||||
mCx, JS::InstantiateGlobalStencil(mCx, instantiateOptions, aStencil,
|
mCx, JS::InstantiateGlobalStencil(mCx, instantiateOptions, aStencil,
|
||||||
aStorage));
|
aStorage));
|
||||||
|
|||||||
@@ -49,9 +49,6 @@ class MOZ_STACK_CLASS JSExecutionContext final {
|
|||||||
// The compiled script.
|
// The compiled script.
|
||||||
JS::Rooted<JSScript*> mScript;
|
JS::Rooted<JSScript*> mScript;
|
||||||
|
|
||||||
// The compilation options applied throughout
|
|
||||||
JS::CompileOptions& mCompileOptions;
|
|
||||||
|
|
||||||
// Debug Metadata: Values managed for the benefit of the debugger when
|
// Debug Metadata: Values managed for the benefit of the debugger when
|
||||||
// inspecting code.
|
// inspecting code.
|
||||||
//
|
//
|
||||||
@@ -84,7 +81,8 @@ class MOZ_STACK_CLASS JSExecutionContext final {
|
|||||||
private:
|
private:
|
||||||
// Compile a script contained in a SourceText.
|
// Compile a script contained in a SourceText.
|
||||||
template <typename Unit>
|
template <typename Unit>
|
||||||
void InternalCompile(JS::SourceText<Unit>& aSrcBuf, ErrorResult& aRv);
|
void InternalCompile(JS::CompileOptions& aCompileOptions,
|
||||||
|
JS::SourceText<Unit>& aSrcBuf, ErrorResult& aRv);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// Enter compartment in which the code would be executed. The JSContext
|
// Enter compartment in which the code would be executed. The JSContext
|
||||||
@@ -132,21 +130,27 @@ class MOZ_STACK_CLASS JSExecutionContext final {
|
|||||||
// After getting a notification that an off-thread compile/decode finished,
|
// After getting a notification that an off-thread compile/decode finished,
|
||||||
// this function will take the result of the off-thread operation and move it
|
// this function will take the result of the off-thread operation and move it
|
||||||
// to the main thread.
|
// to the main thread.
|
||||||
void JoinOffThread(ScriptLoadContext* aContext, ErrorResult& aRv);
|
void JoinOffThread(JS::CompileOptions& aCompileOptions,
|
||||||
|
ScriptLoadContext* aContext, ErrorResult& aRv);
|
||||||
|
|
||||||
// Compile a script contained in a SourceText.
|
// Compile a script contained in a SourceText.
|
||||||
void Compile(JS::SourceText<char16_t>& aSrcBuf, ErrorResult& aRv);
|
void Compile(JS::CompileOptions& aCompileOptions,
|
||||||
void Compile(JS::SourceText<mozilla::Utf8Unit>& aSrcBuf, ErrorResult& aRv);
|
JS::SourceText<char16_t>& aSrcBuf, ErrorResult& aRv);
|
||||||
|
void Compile(JS::CompileOptions& aCompileOptions,
|
||||||
|
JS::SourceText<mozilla::Utf8Unit>& aSrcBuf, ErrorResult& aRv);
|
||||||
|
|
||||||
// Compile a script contained in a string.
|
// Compile a script contained in a string.
|
||||||
void Compile(const nsAString& aScript, ErrorResult& aRv);
|
void Compile(JS::CompileOptions& aCompileOptions, const nsAString& aScript,
|
||||||
|
ErrorResult& aRv);
|
||||||
|
|
||||||
// Decode a script contained in a buffer.
|
// Decode a script contained in a buffer.
|
||||||
void Decode(const JS::TranscodeRange& aBytecodeBuf, ErrorResult& aRv);
|
void Decode(JS::CompileOptions& aCompileOptions,
|
||||||
|
const JS::TranscodeRange& aBytecodeBuf, ErrorResult& aRv);
|
||||||
|
|
||||||
// Instantiate (on main-thread) a JS::Stencil generated by off-thread or
|
// Instantiate (on main-thread) a JS::Stencil generated by off-thread or
|
||||||
// main-thread parsing or decoding.
|
// main-thread parsing or decoding.
|
||||||
void InstantiateStencil(RefPtr<JS::Stencil>&& aStencil,
|
void InstantiateStencil(JS::CompileOptions& aCompileOptions,
|
||||||
|
RefPtr<JS::Stencil>&& aStencil,
|
||||||
bool& incrementalEncodingAlreadyStarted,
|
bool& incrementalEncodingAlreadyStarted,
|
||||||
ErrorResult& aRv,
|
ErrorResult& aRv,
|
||||||
JS::InstantiationStorage* aStorage = nullptr);
|
JS::InstantiationStorage* aStorage = nullptr);
|
||||||
|
|||||||
@@ -6095,7 +6095,7 @@ bool WindowScriptTimeoutHandler::Call(const char* aExecutionReason) {
|
|||||||
IgnoredErrorResult erv;
|
IgnoredErrorResult erv;
|
||||||
JSExecutionContext exec(aes.cx(), global, options, erv);
|
JSExecutionContext exec(aes.cx(), global, options, erv);
|
||||||
if (!erv.Failed()) {
|
if (!erv.Failed()) {
|
||||||
exec.Compile(mExpr, erv);
|
exec.Compile(options, mExpr, erv);
|
||||||
|
|
||||||
JS::Rooted<JSScript*> script(aes.cx(), exec.MaybeGetScript());
|
JS::Rooted<JSScript*> script(aes.cx(), exec.MaybeGetScript());
|
||||||
if (script) {
|
if (script) {
|
||||||
|
|||||||
@@ -330,7 +330,7 @@ nsresult nsJSThunk::EvaluateScript(
|
|||||||
JSExecutionContext exec(cx, globalJSObject, options, erv);
|
JSExecutionContext exec(cx, globalJSObject, options, erv);
|
||||||
if (!erv.Failed()) {
|
if (!erv.Failed()) {
|
||||||
exec.SetCoerceToString(true);
|
exec.SetCoerceToString(true);
|
||||||
exec.Compile(NS_ConvertUTF8toUTF16(script), erv);
|
exec.Compile(options, NS_ConvertUTF8toUTF16(script), erv);
|
||||||
if (!erv.Failed()) {
|
if (!erv.Failed()) {
|
||||||
exec.ExecScript(&v, erv);
|
exec.ExecScript(&v, erv);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2722,7 +2722,8 @@ nsresult ScriptLoader::EvaluateScriptElement(ScriptLoadRequest* aRequest) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ScriptLoader::InstantiateClassicScriptFromMaybeEncodedSource(
|
void ScriptLoader::InstantiateClassicScriptFromMaybeEncodedSource(
|
||||||
JSContext* aCx, JSExecutionContext& aExec, ScriptLoadRequest* aRequest,
|
JSContext* aCx, JSExecutionContext& aExec,
|
||||||
|
JS::CompileOptions& aCompileOptions, ScriptLoadRequest* aRequest,
|
||||||
ErrorResult& aRv) {
|
ErrorResult& aRv) {
|
||||||
nsAutoCString profilerLabelString;
|
nsAutoCString profilerLabelString;
|
||||||
aRequest->GetScriptLoadContext()->GetProfilerLabel(profilerLabelString);
|
aRequest->GetScriptLoadContext()->GetProfilerLabel(profilerLabelString);
|
||||||
@@ -2731,14 +2732,15 @@ void ScriptLoader::InstantiateClassicScriptFromMaybeEncodedSource(
|
|||||||
if (aRequest->GetScriptLoadContext()->mCompileOrDecodeTask) {
|
if (aRequest->GetScriptLoadContext()->mCompileOrDecodeTask) {
|
||||||
LOG(("ScriptLoadRequest (%p): Decode Bytecode & instantiate and Execute",
|
LOG(("ScriptLoadRequest (%p): Decode Bytecode & instantiate and Execute",
|
||||||
aRequest));
|
aRequest));
|
||||||
aExec.JoinOffThread(aRequest->GetScriptLoadContext(), aRv);
|
aExec.JoinOffThread(aCompileOptions, aRequest->GetScriptLoadContext(),
|
||||||
|
aRv);
|
||||||
} else {
|
} else {
|
||||||
LOG(("ScriptLoadRequest (%p): Decode Bytecode and Execute", aRequest));
|
LOG(("ScriptLoadRequest (%p): Decode Bytecode and Execute", aRequest));
|
||||||
AUTO_PROFILER_MARKER_TEXT("BytecodeDecodeMainThread", JS,
|
AUTO_PROFILER_MARKER_TEXT("BytecodeDecodeMainThread", JS,
|
||||||
MarkerInnerWindowIdFromJSContext(aCx),
|
MarkerInnerWindowIdFromJSContext(aCx),
|
||||||
profilerLabelString);
|
profilerLabelString);
|
||||||
|
|
||||||
aExec.Decode(aRequest->Bytecode(), aRv);
|
aExec.Decode(aCompileOptions, aRequest->Bytecode(), aRv);
|
||||||
}
|
}
|
||||||
|
|
||||||
// We do not expect to be saving anything when we already have some
|
// We do not expect to be saving anything when we already have some
|
||||||
@@ -2758,7 +2760,7 @@ void ScriptLoader::InstantiateClassicScriptFromMaybeEncodedSource(
|
|||||||
"Execute",
|
"Execute",
|
||||||
aRequest));
|
aRequest));
|
||||||
MOZ_ASSERT(aRequest->IsTextSource());
|
MOZ_ASSERT(aRequest->IsTextSource());
|
||||||
aExec.JoinOffThread(aRequest->GetScriptLoadContext(), aRv);
|
aExec.JoinOffThread(aCompileOptions, aRequest->GetScriptLoadContext(), aRv);
|
||||||
} else {
|
} else {
|
||||||
// Main thread parsing (inline and small scripts)
|
// Main thread parsing (inline and small scripts)
|
||||||
LOG(("ScriptLoadRequest (%p): Compile And Exec", aRequest));
|
LOG(("ScriptLoadRequest (%p): Compile And Exec", aRequest));
|
||||||
@@ -2771,7 +2773,9 @@ void ScriptLoader::InstantiateClassicScriptFromMaybeEncodedSource(
|
|||||||
MarkerInnerWindowIdFromJSContext(aCx),
|
MarkerInnerWindowIdFromJSContext(aCx),
|
||||||
profilerLabelString);
|
profilerLabelString);
|
||||||
|
|
||||||
auto compile = [&](auto& source) { aExec.Compile(source, aRv); };
|
auto compile = [&](auto& source) {
|
||||||
|
aExec.Compile(aCompileOptions, source, aRv);
|
||||||
|
};
|
||||||
|
|
||||||
MOZ_ASSERT(!maybeSource.empty());
|
MOZ_ASSERT(!maybeSource.empty());
|
||||||
TimeStamp startTime = TimeStamp::Now();
|
TimeStamp startTime = TimeStamp::Now();
|
||||||
@@ -2782,7 +2786,8 @@ void ScriptLoader::InstantiateClassicScriptFromMaybeEncodedSource(
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ScriptLoader::InstantiateClassicScriptFromCachedStencil(
|
void ScriptLoader::InstantiateClassicScriptFromCachedStencil(
|
||||||
JSContext* aCx, JSExecutionContext& aExec, ScriptLoadRequest* aRequest,
|
JSContext* aCx, JSExecutionContext& aExec,
|
||||||
|
JS::CompileOptions& aCompileOptions, ScriptLoadRequest* aRequest,
|
||||||
JS::Stencil* aStencil, ErrorResult& aRv) {
|
JS::Stencil* aStencil, ErrorResult& aRv) {
|
||||||
RefPtr<JS::Stencil> stencil = JS::DuplicateStencil(aCx, aStencil);
|
RefPtr<JS::Stencil> stencil = JS::DuplicateStencil(aCx, aStencil);
|
||||||
if (!stencil) {
|
if (!stencil) {
|
||||||
@@ -2793,21 +2798,21 @@ void ScriptLoader::InstantiateClassicScriptFromCachedStencil(
|
|||||||
aExec.SetEncodeBytecode(true);
|
aExec.SetEncodeBytecode(true);
|
||||||
|
|
||||||
bool incrementalEncodingAlreadyStarted = false;
|
bool incrementalEncodingAlreadyStarted = false;
|
||||||
aExec.InstantiateStencil(std::move(stencil),
|
aExec.InstantiateStencil(aCompileOptions, std::move(stencil),
|
||||||
incrementalEncodingAlreadyStarted, aRv);
|
incrementalEncodingAlreadyStarted, aRv);
|
||||||
if (incrementalEncodingAlreadyStarted) {
|
if (incrementalEncodingAlreadyStarted) {
|
||||||
aRequest->MarkSkippedBytecodeEncoding();
|
aRequest->MarkSkippedBytecodeEncoding();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScriptLoader::InstantiateClassicScriptFromAny(JSContext* aCx,
|
void ScriptLoader::InstantiateClassicScriptFromAny(
|
||||||
JSExecutionContext& aExec,
|
JSContext* aCx, JSExecutionContext& aExec,
|
||||||
ScriptLoadRequest* aRequest,
|
JS::CompileOptions& aCompileOptions, ScriptLoadRequest* aRequest,
|
||||||
ErrorResult& aRv) {
|
ErrorResult& aRv) {
|
||||||
if (aRequest->IsStencil()) {
|
if (aRequest->IsStencil()) {
|
||||||
RefPtr<JS::Stencil> stencil = aRequest->GetStencil();
|
RefPtr<JS::Stencil> stencil = aRequest->GetStencil();
|
||||||
InstantiateClassicScriptFromCachedStencil(aCx, aExec, aRequest, stencil,
|
InstantiateClassicScriptFromCachedStencil(aCx, aExec, aCompileOptions,
|
||||||
aRv);
|
aRequest, stencil, aRv);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2828,7 +2833,8 @@ void ScriptLoader::InstantiateClassicScriptFromAny(JSContext* aCx,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
InstantiateClassicScriptFromMaybeEncodedSource(aCx, aExec, aRequest, aRv);
|
InstantiateClassicScriptFromMaybeEncodedSource(aCx, aExec, aCompileOptions,
|
||||||
|
aRequest, aRv);
|
||||||
if (!aRv.Failed()) {
|
if (!aRv.Failed()) {
|
||||||
if (createCache) {
|
if (createCache) {
|
||||||
MOZ_ASSERT(mCache);
|
MOZ_ASSERT(mCache);
|
||||||
@@ -3003,7 +3009,7 @@ nsresult ScriptLoader::EvaluateScript(nsIGlobalObject* aGlobalObject,
|
|||||||
if (erv.Failed()) {
|
if (erv.Failed()) {
|
||||||
return EvaluationExceptionToNSResult(erv);
|
return EvaluationExceptionToNSResult(erv);
|
||||||
}
|
}
|
||||||
InstantiateClassicScriptFromAny(cx, exec, aRequest, erv);
|
InstantiateClassicScriptFromAny(cx, exec, options, aRequest, erv);
|
||||||
|
|
||||||
if (!erv.Failed()) {
|
if (!erv.Failed()) {
|
||||||
JS::Rooted<JSScript*> script(cx, exec.GetScript());
|
JS::Rooted<JSScript*> script(cx, exec.GetScript());
|
||||||
|
|||||||
@@ -640,6 +640,7 @@ class ScriptLoader final : public JS::loader::ScriptLoaderInterface {
|
|||||||
// * cached stencil
|
// * cached stencil
|
||||||
void InstantiateClassicScriptFromAny(JSContext* aCx,
|
void InstantiateClassicScriptFromAny(JSContext* aCx,
|
||||||
JSExecutionContext& aExec,
|
JSExecutionContext& aExec,
|
||||||
|
JS::CompileOptions& aCompileOptions,
|
||||||
ScriptLoadRequest* aRequest,
|
ScriptLoadRequest* aRequest,
|
||||||
ErrorResult& aRv);
|
ErrorResult& aRv);
|
||||||
|
|
||||||
@@ -647,16 +648,16 @@ class ScriptLoader final : public JS::loader::ScriptLoaderInterface {
|
|||||||
// * text source
|
// * text source
|
||||||
// * encoded bytecode
|
// * encoded bytecode
|
||||||
void InstantiateClassicScriptFromMaybeEncodedSource(
|
void InstantiateClassicScriptFromMaybeEncodedSource(
|
||||||
JSContext* aCx, JSExecutionContext& aExec, ScriptLoadRequest* aRequest,
|
JSContext* aCx, JSExecutionContext& aExec,
|
||||||
|
JS::CompileOptions& aCompileOptions, ScriptLoadRequest* aRequest,
|
||||||
ErrorResult& aRv);
|
ErrorResult& aRv);
|
||||||
|
|
||||||
// Instantiate classic script from the following data:
|
// Instantiate classic script from the following data:
|
||||||
// * cached stencil
|
// * cached stencil
|
||||||
void InstantiateClassicScriptFromCachedStencil(JSContext* aCx,
|
void InstantiateClassicScriptFromCachedStencil(
|
||||||
JSExecutionContext& aExec,
|
JSContext* aCx, JSExecutionContext& aExec,
|
||||||
ScriptLoadRequest* aRequest,
|
JS::CompileOptions& aCompileOptions, ScriptLoadRequest* aRequest,
|
||||||
JS::Stencil* aStencil,
|
JS::Stencil* aStencil, ErrorResult& aRv);
|
||||||
ErrorResult& aRv);
|
|
||||||
|
|
||||||
static nsCString& BytecodeMimeTypeFor(ScriptLoadRequest* aRequest);
|
static nsCString& BytecodeMimeTypeFor(ScriptLoadRequest* aRequest);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user