diff --git a/js/public/CompileOptions.h b/js/public/CompileOptions.h index 39472705fb..cfc2118d5c 100644 --- a/js/public/CompileOptions.h +++ b/js/public/CompileOptions.h @@ -162,6 +162,8 @@ class JS_FRIEND_API(TransitiveCompileOptions) void operator=(const TransitiveCompileOptions&) = delete; }; +class JS_PUBLIC_API(CompileOptions); + /** * The class representing a full set of compile options. * diff --git a/js/src/NamespaceImports.h b/js/src/NamespaceImports.h index ed02054622..fee0284b1c 100644 --- a/js/src/NamespaceImports.h +++ b/js/src/NamespaceImports.h @@ -108,12 +108,8 @@ using JS::GCHashSet; using JS::CallArgs; using JS::CallNonGenericMethod; -using JS::CompileOptions; using JS::IsAcceptableThis; using JS::NativeImpl; -using JS::OwningCompileOptions; -using JS::ReadOnlyCompileOptions; -using JS::TransitiveCompileOptions; using JS::Rooted; using JS::RootedFunction; diff --git a/js/src/builtin/Eval.cpp b/js/src/builtin/Eval.cpp index 7be704d9bc..83ef32f8f6 100644 --- a/js/src/builtin/Eval.cpp +++ b/js/src/builtin/Eval.cpp @@ -26,6 +26,7 @@ using mozilla::HashString; using mozilla::RangedPtr; using JS::AutoCheckCannotGC; +using JS::CompileOptions; using JS::SourceBufferHolder; // We should be able to assert this for *any* fp->environmentChain(). diff --git a/js/src/builtin/ReflectParse.cpp b/js/src/builtin/ReflectParse.cpp index a8dd93aab2..9e16daa3f3 100644 --- a/js/src/builtin/ReflectParse.cpp +++ b/js/src/builtin/ReflectParse.cpp @@ -31,6 +31,7 @@ using namespace js; using namespace js::frontend; using JS::AutoValueArray; +using JS::CompileOptions; using mozilla::ArrayLength; using mozilla::DebugOnly; using mozilla::Forward; diff --git a/js/src/builtin/RegExp.cpp b/js/src/builtin/RegExp.cpp index 61382e6aac..ef5f629249 100644 --- a/js/src/builtin/RegExp.cpp +++ b/js/src/builtin/RegExp.cpp @@ -31,6 +31,7 @@ using mozilla::Maybe; using CapturesVector = GCVector; +using JS::CompileOptions; // Allocate an object for the |.groups| or |.indices.groups| property // of a regexp match result. diff --git a/js/src/frontend/BytecodeCompiler.cpp b/js/src/frontend/BytecodeCompiler.cpp index 2a2c8e0597..f986a4abb2 100644 --- a/js/src/frontend/BytecodeCompiler.cpp +++ b/js/src/frontend/BytecodeCompiler.cpp @@ -32,6 +32,8 @@ using namespace js::frontend; using mozilla::Maybe; using mozilla::Nothing; +using JS::CompileOptions; +using JS::ReadOnlyCompileOptions; using JS::SourceBufferHolder; class MOZ_STACK_CLASS AutoCompilationTraceLogger @@ -597,7 +599,7 @@ frontend::CompileEvalScript(ExclusiveContext* cx, LifoAlloc& alloc, } ModuleObject* -frontend::CompileModule(ExclusiveContext* cx, const ReadOnlyCompileOptions& optionsInput, +frontend::CompileModule(ExclusiveContext* cx, const JS::ReadOnlyCompileOptions& optionsInput, SourceBufferHolder& srcBuf, LifoAlloc& alloc, ScriptSourceObject** sourceObjectOut /* = nullptr */) { @@ -640,7 +642,7 @@ frontend::CompileLazyFunction(JSContext* cx, Handle lazy, const cha { MOZ_ASSERT(cx->compartment() == lazy->functionNonDelazifying()->compartment()); - CompileOptions options(cx, lazy->version()); + JS::CompileOptions options(cx, lazy->version()); options.setMutedErrors(lazy->mutedErrors()) .setFileAndLine(lazy->filename(), lazy->lineno()) .setColumn(lazy->column()) @@ -706,7 +708,7 @@ frontend::CompileLazyFunction(JSContext* cx, Handle lazy, const cha bool frontend::CompileStandaloneFunction(JSContext* cx, MutableHandleFunction fun, - const ReadOnlyCompileOptions& options, + const JS::ReadOnlyCompileOptions& options, JS::SourceBufferHolder& srcBuf, Maybe parameterListEnd, HandleScope enclosingScope /* = nullptr */) @@ -722,7 +724,7 @@ frontend::CompileStandaloneFunction(JSContext* cx, MutableHandleFunction fun, bool frontend::CompileStandaloneGenerator(JSContext* cx, MutableHandleFunction fun, - const ReadOnlyCompileOptions& options, + const JS::ReadOnlyCompileOptions& options, JS::SourceBufferHolder& srcBuf, Maybe parameterListEnd) { @@ -735,7 +737,7 @@ frontend::CompileStandaloneGenerator(JSContext* cx, MutableHandleFunction fun, bool frontend::CompileStandaloneAsyncFunction(JSContext* cx, MutableHandleFunction fun, - const ReadOnlyCompileOptions& options, + const JS::ReadOnlyCompileOptions& options, JS::SourceBufferHolder& srcBuf, Maybe parameterListEnd) { @@ -748,7 +750,7 @@ frontend::CompileStandaloneAsyncFunction(JSContext* cx, MutableHandleFunction fu bool frontend::CompileStandaloneAsyncGenerator(JSContext* cx, MutableHandleFunction fun, - const ReadOnlyCompileOptions& options, + const JS::ReadOnlyCompileOptions& options, JS::SourceBufferHolder& srcBuf, Maybe parameterListEnd) { diff --git a/js/src/frontend/BytecodeCompiler.h b/js/src/frontend/BytecodeCompiler.h index f87e260b1a..439a0175e4 100644 --- a/js/src/frontend/BytecodeCompiler.h +++ b/js/src/frontend/BytecodeCompiler.h @@ -10,6 +10,7 @@ #include "NamespaceImports.h" +#include "js/CompileOptions.h" #include "vm/Scope.h" #include "vm/String.h" @@ -27,7 +28,7 @@ namespace frontend { JSScript* CompileGlobalScript(ExclusiveContext* cx, LifoAlloc& alloc, ScopeKind scopeKind, - const ReadOnlyCompileOptions& options, + const JS::ReadOnlyCompileOptions& options, JS::SourceBufferHolder& srcBuf, SourceCompressionTask* extraSct = nullptr, ScriptSourceObject** sourceObjectOut = nullptr); @@ -35,17 +36,17 @@ CompileGlobalScript(ExclusiveContext* cx, LifoAlloc& alloc, ScopeKind scopeKind, JSScript* CompileEvalScript(ExclusiveContext* cx, LifoAlloc& alloc, HandleObject scopeChain, HandleScope enclosingScope, - const ReadOnlyCompileOptions& options, + const JS::ReadOnlyCompileOptions& options, JS::SourceBufferHolder& srcBuf, SourceCompressionTask* extraSct = nullptr, ScriptSourceObject** sourceObjectOut = nullptr); ModuleObject* -CompileModule(JSContext* cx, const ReadOnlyCompileOptions& options, +CompileModule(JSContext* cx, const JS::ReadOnlyCompileOptions& options, JS::SourceBufferHolder& srcBuf); ModuleObject* -CompileModule(ExclusiveContext* cx, const ReadOnlyCompileOptions& options, +CompileModule(ExclusiveContext* cx, const JS::ReadOnlyCompileOptions& options, JS::SourceBufferHolder& srcBuf, LifoAlloc& alloc, ScriptSourceObject** sourceObjectOut = nullptr); @@ -66,36 +67,36 @@ CompileLazyFunction(JSContext* cx, Handle lazy, const char16_t* cha // MOZ_MUST_USE bool CompileStandaloneFunction(JSContext* cx, MutableHandleFunction fun, - const ReadOnlyCompileOptions& options, + const JS::ReadOnlyCompileOptions& options, JS::SourceBufferHolder& srcBuf, mozilla::Maybe parameterListEnd, HandleScope enclosingScope = nullptr); MOZ_MUST_USE bool CompileStandaloneGenerator(JSContext* cx, MutableHandleFunction fun, - const ReadOnlyCompileOptions& options, + const JS::ReadOnlyCompileOptions& options, JS::SourceBufferHolder& srcBuf, mozilla::Maybe parameterListEnd); MOZ_MUST_USE bool CompileStandaloneAsyncFunction(JSContext* cx, MutableHandleFunction fun, - const ReadOnlyCompileOptions& options, + const JS::ReadOnlyCompileOptions& options, JS::SourceBufferHolder& srcBuf, mozilla::Maybe parameterListEnd); MOZ_MUST_USE bool CompileStandaloneAsyncGenerator(JSContext* cx, MutableHandleFunction fun, - const ReadOnlyCompileOptions& options, + const JS::ReadOnlyCompileOptions& options, JS::SourceBufferHolder& srcBuf, mozilla::Maybe parameterListEnd); MOZ_MUST_USE bool CompileAsyncFunctionBody(JSContext* cx, MutableHandleFunction fun, - const ReadOnlyCompileOptions& options, + const JS::ReadOnlyCompileOptions& options, Handle formals, JS::SourceBufferHolder& srcBuf); ScriptSourceObject* -CreateScriptSourceObject(ExclusiveContext* cx, const ReadOnlyCompileOptions& options, +CreateScriptSourceObject(ExclusiveContext* cx, const JS::ReadOnlyCompileOptions& options, mozilla::Maybe parameterListEnd = mozilla::Nothing()); /* diff --git a/js/src/frontend/BytecodeEmitter.cpp b/js/src/frontend/BytecodeEmitter.cpp index 7680411f07..27fbfec3a3 100644 --- a/js/src/frontend/BytecodeEmitter.cpp +++ b/js/src/frontend/BytecodeEmitter.cpp @@ -45,6 +45,7 @@ #include "frontend/TDZCheckCache.h" #include "frontend/TokenStream.h" #include "frontend/TryEmitter.h" +#include "js/CompileOptions.h" #include "vm/Debugger.h" #include "vm/GeneratorObject.h" #include "vm/Stack.h" @@ -5975,8 +5976,8 @@ BytecodeEmitter::emitFunction(FunctionNode* funNode, bool needsProto /* = false Rooted parent(cx, script); MOZ_ASSERT(parent->getVersion() == parser->options().version); MOZ_ASSERT(parent->mutedErrors() == parser->options().mutedErrors()); - const TransitiveCompileOptions& transitiveOptions = parser->options(); - CompileOptions options(cx, transitiveOptions); + const JS::TransitiveCompileOptions& transitiveOptions = parser->options(); + JS::CompileOptions options(cx, transitiveOptions); Rooted sourceObject(cx, script->sourceObject()); Rooted script(cx, JSScript::Create(cx, options, sourceObject, diff --git a/js/src/frontend/Parser.cpp b/js/src/frontend/Parser.cpp index 0deed9131e..52b7f298fc 100644 --- a/js/src/frontend/Parser.cpp +++ b/js/src/frontend/Parser.cpp @@ -56,6 +56,7 @@ using mozilla::PodZero; using mozilla::Some; using JS::AutoGCRooter; +using JS::ReadOnlyCompileOptions; namespace js { namespace frontend { diff --git a/js/src/frontend/Parser.h b/js/src/frontend/Parser.h index b1a9bf83c5..6a17f31a32 100644 --- a/js/src/frontend/Parser.h +++ b/js/src/frontend/Parser.h @@ -22,6 +22,7 @@ #include "frontend/SharedContext.h" #include "frontend/SyntaxParseHandler.h" #include "frontend/TokenStream.h" +#include "js/CompileOptions.h" namespace js { @@ -835,7 +836,7 @@ class ParserBase : public StrictModeGetter return pc->sc()->hasModuleGoal() ? ParseGoal::Module : ParseGoal::Script; } - ParserBase(ExclusiveContext* cx, LifoAlloc& alloc, const ReadOnlyCompileOptions& options, + ParserBase(ExclusiveContext* cx, LifoAlloc& alloc, const JS::ReadOnlyCompileOptions& options, const char16_t* chars, size_t length, bool foldConstants, UsedNameTracker& usedNames, Parser* syntaxParser, LazyScript* lazyOuterFunction); @@ -860,7 +861,7 @@ class ParserBase : public StrictModeGetter return pc->sc()->setLocalStrictMode(strict); } - const ReadOnlyCompileOptions& options() const { + const JS::ReadOnlyCompileOptions& options() const { return tokenStream.options(); } @@ -1081,7 +1082,7 @@ FOR_EACH_PARSENODE_SUBCLASS(DECLARE_TYPE) void freeTree(Node node) { handler.freeTree(node); } public: - Parser(ExclusiveContext* cx, LifoAlloc& alloc, const ReadOnlyCompileOptions& options, + Parser(ExclusiveContext* cx, LifoAlloc& alloc, const JS::ReadOnlyCompileOptions& options, const char16_t* chars, size_t length, bool foldConstants, UsedNameTracker& usedNames, Parser* syntaxParser, LazyScript* lazyOuterFunction); ~Parser(); diff --git a/js/src/frontend/TokenStream.cpp b/js/src/frontend/TokenStream.cpp index 5402727cc7..15215bdca1 100644 --- a/js/src/frontend/TokenStream.cpp +++ b/js/src/frontend/TokenStream.cpp @@ -469,7 +469,7 @@ TokenStream::SourceCoords::lineNumAndColumnIndex(uint32_t offset, uint32_t* line #pragma warning(disable:4351) #endif -TokenStream::TokenStream(ExclusiveContext* cx, const ReadOnlyCompileOptions& options, +TokenStream::TokenStream(ExclusiveContext* cx, const JS::ReadOnlyCompileOptions& options, const char16_t* base, size_t length, StrictModeGetter* smg) : srcCoords(cx, options.lineno), options_(options), diff --git a/js/src/frontend/TokenStream.h b/js/src/frontend/TokenStream.h index 3d4695fdea..6382c220ac 100644 --- a/js/src/frontend/TokenStream.h +++ b/js/src/frontend/TokenStream.h @@ -22,6 +22,7 @@ #include "jspubtd.h" #include "frontend/TokenKind.h" +#include "js/CompileOptions.h" #include "js/UniquePtr.h" #include "js/Vector.h" #include "vm/RegExpObject.h" @@ -323,7 +324,7 @@ class MOZ_STACK_CLASS TokenStream public: typedef Vector CharBuffer; - TokenStream(ExclusiveContext* cx, const ReadOnlyCompileOptions& options, + TokenStream(ExclusiveContext* cx, const JS::ReadOnlyCompileOptions& options, const char16_t* base, size_t length, StrictModeGetter* smg); ~TokenStream(); @@ -864,7 +865,7 @@ class MOZ_STACK_CLASS TokenStream return cx; } - const ReadOnlyCompileOptions& options() const { + const JS::ReadOnlyCompileOptions& options() const { return options_; } @@ -1041,7 +1042,7 @@ class MOZ_STACK_CLASS TokenStream bool hasLookahead() const { return lookahead > 0; } // Options used for parsing/tokenizing. - const ReadOnlyCompileOptions& options_; + const JS::ReadOnlyCompileOptions& options_; Token tokens[ntokens]; // circular token buffer unsigned cursor; // index of last parsed token diff --git a/js/src/gdb/tests/test-unwind.cpp b/js/src/gdb/tests/test-unwind.cpp index 6c8b7b86ab..9af66692be 100644 --- a/js/src/gdb/tests/test-unwind.cpp +++ b/js/src/gdb/tests/test-unwind.cpp @@ -1,13 +1,19 @@ #include "gdb-tests.h" -#include "jsapi.h" -#include "jit/JitOptions.h" +#include "jsapi.h" // sundry symbols not moved to more-specific headers yet -#include +#include "jit/JitOptions.h" // js::jit::JitOptions +#include "js/CallArgs.h" // JS::CallArgs, JS::CallArgsFromVp +#include "js/CompileOptions.h" // JS::CompileOptions +#include "js/RootingAPI.h" // JS::Rooted +#include "js/Value.h" // JS::Value + +#include // uint32_t +#include // strlen static bool Something(JSContext* cx, unsigned argc, JS::Value* vp) { - JS::CallArgs args = CallArgsFromVp(argc, vp); + JS::CallArgs args = JS::CallArgsFromVp(argc, vp); args.rval().setInt32(23); breakpoint(); return true; @@ -43,10 +49,10 @@ FRAGMENT(unwind, simple) { "\n" "unwindFunctionOuter();\n"; - CompileOptions opts(cx); + JS::CompileOptions opts(cx); opts.setFileAndLine(__FILE__, line0 + 1); - RootedValue rval(cx); - Evaluate(cx, opts, bytes, strlen(bytes), &rval); + JS::RootedValue rval(cx); + JS::Evaluate(cx, opts, bytes, strlen(bytes), &rval); js::jit::JitOptions.baselineWarmUpThreshold = saveThreshold; } diff --git a/js/src/jsapi-tests/testCloneScript.cpp b/js/src/jsapi-tests/testCloneScript.cpp index 9718814553..877294e9a3 100644 --- a/js/src/jsapi-tests/testCloneScript.cpp +++ b/js/src/jsapi-tests/testCloneScript.cpp @@ -6,7 +6,15 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +#include // strlen + +#include "jsapi.h" // sundry symbols not moved to more-specific headers yet #include "jsfriendapi.h" +#include "jspubtd.h" // JS::AutoObjectVector + +#include "js/CompileOptions.h" // JS::CompileOptions +#include "js/RootingAPI.h" // JS::Rooted +#include "js/TypeDecls.h" // JSFunction, JSObject #include "jsapi-tests/tests.h" BEGIN_TEST(test_cloneScript) diff --git a/js/src/jsapi.cpp b/js/src/jsapi.cpp index 2bea8b8be7..f1627e481e 100644 --- a/js/src/jsapi.cpp +++ b/js/src/jsapi.cpp @@ -58,6 +58,7 @@ #include "gc/Policy.h" #include "jit/JitCommon.h" #include "js/CharacterEncoding.h" +#include "js/CompileOptions.h" #include "js/Conversions.h" #include "js/Date.h" #include "js/Initialization.h" @@ -107,6 +108,8 @@ using mozilla::PodZero; using mozilla::Some; using JS::AutoGCRooter; +using JS::CompileOptions; +using JS::ReadOnlyCompileOptions; using JS::SourceBufferHolder; using JS::ToInt32; using JS::ToInteger; diff --git a/js/src/jsfun.cpp b/js/src/jsfun.cpp index 9d2a819ca6..d4a33549ab 100644 --- a/js/src/jsfun.cpp +++ b/js/src/jsfun.cpp @@ -38,6 +38,7 @@ #include "jit/Ion.h" #include "jit/JitFrameIterator.h" #include "js/CallNonGenericMethod.h" +#include "js/CompileOptions.h" #include "js/Proxy.h" #include "js/SourceBufferHolder.h" #include "vm/AsyncFunction.h" @@ -68,7 +69,9 @@ using mozilla::PodCopy; using mozilla::RangedPtr; using mozilla::Some; +using JS::CompileOptions; using JS::SourceBufferHolder; + static bool fun_enumerate(JSContext* cx, HandleObject obj) { diff --git a/js/src/jspubtd.h b/js/src/jspubtd.h index 21318af6c9..d956ae4bd9 100644 --- a/js/src/jspubtd.h +++ b/js/src/jspubtd.h @@ -34,10 +34,6 @@ class CallArgs; template class Rooted; -class JS_PUBLIC_API(CompileOptions); -class JS_PUBLIC_API(ReadOnlyCompileOptions); -class JS_PUBLIC_API(OwningCompileOptions); -class JS_PUBLIC_API(TransitiveCompileOptions); class JS_PUBLIC_API(CompartmentOptions); struct RootingContext; diff --git a/js/src/jsscript.cpp b/js/src/jsscript.cpp index 0fcdb57eb8..ca51bb1b19 100644 --- a/js/src/jsscript.cpp +++ b/js/src/jsscript.cpp @@ -69,6 +69,8 @@ using mozilla::PodCopy; using mozilla::PodZero; using mozilla::RotateLeft; +using JS::CompileOptions; +using JS::ReadOnlyCompileOptions; using JS::SourceBufferHolder; template diff --git a/js/src/jsscript.h b/js/src/jsscript.h index 41d8e18ee0..9cfebe68cb 100644 --- a/js/src/jsscript.h +++ b/js/src/jsscript.h @@ -22,6 +22,7 @@ #include "gc/Barrier.h" #include "gc/Rooting.h" #include "jit/IonCode.h" +#include "js/CompileOptions.h" #include "js/UbiNode.h" #include "js/UniquePtr.h" #include "vm/NativeObject.h" @@ -473,7 +474,7 @@ class ScriptSource if (--refs == 0) js_delete(this); } - bool initFromOptions(ExclusiveContext* cx, const ReadOnlyCompileOptions& options, + bool initFromOptions(ExclusiveContext* cx, const JS::ReadOnlyCompileOptions& options, mozilla::Maybe parameterListEnd = mozilla::Nothing()); bool setSourceCopy(ExclusiveContext* cx, JS::SourceBufferHolder& srcBuf, @@ -655,7 +656,7 @@ class ScriptSourceObject : public NativeObject // Initialize those properties of this ScriptSourceObject whose values // are provided by |options|, re-wrapping as necessary. static bool initFromOptions(JSContext* cx, HandleScriptSource source, - const ReadOnlyCompileOptions& options); + const JS::ReadOnlyCompileOptions& options); ScriptSource* source() const { return static_cast(getReservedSlot(SOURCE_SLOT).toPrivate()); diff --git a/js/src/shell/js.cpp b/js/src/shell/js.cpp index d4e0a5065e..387c78849f 100644 --- a/js/src/shell/js.cpp +++ b/js/src/shell/js.cpp @@ -70,6 +70,7 @@ #include "jit/Ion.h" #include "jit/JitcodeMap.h" #include "jit/OptimizationTracking.h" +#include "js/CompileOptions.h" #include "js/Debug.h" #include "js/Equality.h" // JS::SameValue #include "js/GCAPI.h" @@ -111,6 +112,8 @@ using namespace js; using namespace js::cli; using namespace js::shell; +using JS::CompileOptions; + using mozilla::ArrayLength; using mozilla::Atomic; using mozilla::MakeScopeExit; diff --git a/js/src/vm/Debugger.cpp b/js/src/vm/Debugger.cpp index e1416a8908..d76efe65c0 100644 --- a/js/src/vm/Debugger.cpp +++ b/js/src/vm/Debugger.cpp @@ -49,6 +49,7 @@ using namespace js; +using JS::CompileOptions; using JS::dbg::AutoEntryMonitor; using JS::dbg::Builder; using js::frontend::IsIdentifier; diff --git a/js/src/vm/HelperThreads.cpp b/js/src/vm/HelperThreads.cpp index 488522c987..b264b3bb9c 100644 --- a/js/src/vm/HelperThreads.cpp +++ b/js/src/vm/HelperThreads.cpp @@ -34,6 +34,8 @@ using mozilla::DebugOnly; using mozilla::Unused; using mozilla::TimeDuration; +using JS::CompileOptions; +using JS::ReadOnlyCompileOptions; using JS::SourceBufferHolder; namespace js { diff --git a/js/src/vm/HelperThreads.h b/js/src/vm/HelperThreads.h index 48c638e34e..ebd4c9b9cb 100644 --- a/js/src/vm/HelperThreads.h +++ b/js/src/vm/HelperThreads.h @@ -21,6 +21,7 @@ #include "frontend/TokenStream.h" #include "jit/Ion.h" +#include "js/CompileOptions.h" #include "js/SourceBufferHolder.h" #include "threading/ConditionVariable.h" #include "vm/MutexIDs.h" @@ -476,17 +477,17 @@ CancelOffThreadParses(JSRuntime* runtime); * alive until the compilation finishes. */ bool -StartOffThreadParseScript(JSContext* cx, const ReadOnlyCompileOptions& options, +StartOffThreadParseScript(JSContext* cx, const JS::ReadOnlyCompileOptions& options, const char16_t* chars, size_t length, JS::OffThreadCompileCallback callback, void* callbackData); bool -StartOffThreadParseModule(JSContext* cx, const ReadOnlyCompileOptions& options, +StartOffThreadParseModule(JSContext* cx, const JS::ReadOnlyCompileOptions& options, const char16_t* chars, size_t length, JS::OffThreadCompileCallback callback, void* callbackData); bool -StartOffThreadDecodeScript(JSContext* cx, const ReadOnlyCompileOptions& options, +StartOffThreadDecodeScript(JSContext* cx, const JS::ReadOnlyCompileOptions& options, JS::TranscodeBuffer& buffer, size_t cursor, JS::OffThreadCompileCallback callback, void* callbackData); @@ -541,7 +542,7 @@ struct ParseTask { ParseTaskKind kind; ExclusiveContext* cx; - OwningCompileOptions options; + JS::OwningCompileOptions options; // Anonymous union, the only correct interpretation is provided by the // ParseTaskKind value, or from the virtual parse function. union { @@ -586,7 +587,7 @@ struct ParseTask ParseTask(ParseTaskKind kind, ExclusiveContext* cx, JSObject* exclusiveContextGlobal, JSContext* initCx, JS::TranscodeBuffer& buffer, size_t cursor, JS::OffThreadCompileCallback callback, void* callbackData); - bool init(JSContext* cx, const ReadOnlyCompileOptions& options); + bool init(JSContext* cx, const JS::ReadOnlyCompileOptions& options); void activate(JSRuntime* rt); virtual void parse() = 0; diff --git a/js/src/vm/RegExpObject.cpp b/js/src/vm/RegExpObject.cpp index c4493de28e..cc5fc98593 100644 --- a/js/src/vm/RegExpObject.cpp +++ b/js/src/vm/RegExpObject.cpp @@ -42,6 +42,7 @@ using mozilla::DebugOnly; using mozilla::Maybe; using mozilla::PodCopy; using js::frontend::TokenStream; +using JS::CompileOptions; using JS::AutoCheckCannotGC; diff --git a/js/src/vm/SelfHosting.cpp b/js/src/vm/SelfHosting.cpp index e006846752..c9f290463e 100644 --- a/js/src/vm/SelfHosting.cpp +++ b/js/src/vm/SelfHosting.cpp @@ -69,6 +69,7 @@ using namespace js; using namespace js::selfhosted; using JS::AutoCheckCannotGC; +using JS::CompileOptions; using mozilla::IsInRange; using mozilla::Maybe; using mozilla::PodMove; diff --git a/js/src/vm/Xdr.h b/js/src/vm/Xdr.h index 483a9aeabc..e0fe0ced45 100644 --- a/js/src/vm/Xdr.h +++ b/js/src/vm/Xdr.h @@ -9,6 +9,7 @@ #include "mozilla/EndianUtils.h" #include "mozilla/TypeTraits.h" +#include "js/CompileOptions.h" #include "js/Transcoding.h" #include "jsatom.h" #include "jsfriendapi.h" @@ -143,7 +144,7 @@ class XDRState : public XDRCoderBase virtual LifoAlloc& lifoAlloc() const; virtual bool hasOptions() const { return false; } - virtual const ReadOnlyCompileOptions& options() { + virtual const JS::ReadOnlyCompileOptions& options() { MOZ_CRASH("does not have options"); } virtual bool hasScriptSourceObjectOut() const { return false; } @@ -307,7 +308,7 @@ using XDRDecoder = XDRState; class XDROffThreadDecoder : public XDRDecoder { - const ReadOnlyCompileOptions* options_; + const JS::ReadOnlyCompileOptions* options_; ScriptSourceObject** sourceObjectOut_; LifoAlloc& alloc_; @@ -321,7 +322,7 @@ class XDROffThreadDecoder : public XDRDecoder // When providing a sourceObjectOut pointer, you have to ensure that it is // marked by the GC to avoid dangling pointers. XDROffThreadDecoder(ExclusiveContext* cx, LifoAlloc& alloc, - const ReadOnlyCompileOptions* options, + const JS::ReadOnlyCompileOptions* options, ScriptSourceObject** sourceObjectOut, JS::TranscodeBuffer& buffer, size_t cursor = 0) : XDRDecoder(cx, buffer, cursor), @@ -339,7 +340,7 @@ class XDROffThreadDecoder : public XDRDecoder } bool hasOptions() const override { return true; } - const ReadOnlyCompileOptions& options() override { + const JS::ReadOnlyCompileOptions& options() override { return *options_; } bool hasScriptSourceObjectOut() const override { return true; } diff --git a/js/src/wasm/AsmJS.cpp b/js/src/wasm/AsmJS.cpp index e7c956d972..fc0584c327 100644 --- a/js/src/wasm/AsmJS.cpp +++ b/js/src/wasm/AsmJS.cpp @@ -6319,7 +6319,7 @@ HandleInstantiationFailure(JSContext* cx, CallArgs args, const AsmJSMetadata& me if (!fun) return false; - CompileOptions options(cx); + JS::CompileOptions options(cx); options.setMutedErrors(source->mutedErrors()) .setFile(source->filename()) .setNoScriptRval(false);