Commit 657899b5 authored by Tooru Fujisawa's avatar Tooru Fujisawa
Browse files

Bug 1688791 - Part 2: Remove CompileOptions.useStencilXDR. r=tcampbell

parent c8ed1a18
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -142,9 +142,6 @@ class JS_PUBLIC_API TransitiveCompileOptions {

  bool classStaticBlocks = false;

  // True if transcoding to XDR should use Stencil instead of JSScripts.
  bool useStencilXDR = false;

  // True if off-thread parsing should use a parse GlobalObject in order to
  // directly allocate to the GC from a helper thread. If false, transfer the
  // CompilationStencil back to main thread before allocating GC objects.
+0 −9
Original line number Diff line number Diff line
@@ -2312,7 +2312,6 @@ void JS::TransitiveCompileOptions::copyPODTransitiveOptions(
  privateClassFields = rhs.privateClassFields;
  privateClassMethods = rhs.privateClassMethods;
  classStaticBlocks = rhs.classStaticBlocks;
  useStencilXDR = rhs.useStencilXDR;
  useOffThreadParseGlobal = rhs.useOffThreadParseGlobal;
  useFdlibmForSinCosTan = rhs.useFdlibmForSinCosTan;
};
@@ -2399,7 +2398,6 @@ JS::CompileOptions::CompileOptions(JSContext* cx) : ReadOnlyCompileOptions() {

  classStaticBlocks = cx->options().classStaticBlocks();

  useStencilXDR = !UseOffThreadParseGlobal();
  useOffThreadParseGlobal = UseOffThreadParseGlobal();

  useFdlibmForSinCosTan = math_use_fdlibm_for_sin_cos_tan();
@@ -4520,11 +4518,6 @@ JS_PUBLIC_API JS::TranscodeResult JS::DecodeScriptMaybeStencil(
    JSContext* cx, const ReadOnlyCompileOptions& options,
    TranscodeBuffer& buffer, JS::MutableHandleScript scriptp,
    size_t cursorIndex) {
  if (!options.useStencilXDR) {
    // The buffer contains JSScript.
    return JS::DecodeScript(cx, options, buffer, scriptp, cursorIndex);
  }

  MOZ_ASSERT(JS::IsTranscodingBytecodeAligned(buffer.begin()));
  MOZ_ASSERT(JS::IsTranscodingBytecodeOffsetAligned(cursorIndex));

@@ -4575,8 +4568,6 @@ JS_PUBLIC_API JS::TranscodeResult JS::DecodeScriptAndStartIncrementalEncoding(
    JSContext* cx, const ReadOnlyCompileOptions& options,
    TranscodeBuffer& buffer, JS::MutableHandleScript scriptp,
    size_t cursorIndex) {
  MOZ_DIAGNOSTIC_ASSERT(options.useStencilXDR);

  CompileOptions opts(cx, options);
  opts.borrowBuffer = true;

+0 −1
Original line number Diff line number Diff line
@@ -116,7 +116,6 @@ static JSScript* CompileSourceBufferAndStartIncrementalEncoding(
    }
  }

  MOZ_DIAGNOSTIC_ASSERT(options.useStencilXDR);
  if (!script->scriptSource()->startIncrementalEncoding(cx, options,
                                                        std::move(stencil))) {
    return nullptr;
+19 −50
Original line number Diff line number Diff line
@@ -840,9 +840,6 @@ void ScriptDecodeTask::parse(JSContext* cx) {
  RootedScript resultScript(cx);
  Rooted<ScriptSourceObject*> sourceObject(cx);

  if (options.useStencilXDR) {
    // The buffer contains stencil.

  stencilInput_ = cx->make_unique<frontend::CompilationInput>(options);
  if (!stencilInput_) {
    return;
@@ -872,29 +869,6 @@ void ScriptDecodeTask::parse(JSContext* cx) {
  if (options.useOffThreadParseGlobal) {
    (void)instantiateStencils(cx);
  }

    return;
  }

  // The buffer contains JSScript.
  auto decoder = js::MakeUnique<XDROffThreadDecoder>(
      cx, &options, XDROffThreadDecoder::Type::Single,
      /* sourceObjectOut = */ &sourceObject.get(), range);
  if (!decoder) {
    ReportOutOfMemory(cx);
    return;
  }

  mozilla::DebugOnly<XDRResult> res = decoder->codeScript(&resultScript);
  MOZ_ASSERT(bool(resultScript) == static_cast<const XDRResult&>(res).isOk());

  if (sourceObject) {
    sourceObjects.infallibleAppend(sourceObject);
  }

  if (resultScript) {
    scripts.infallibleAppend(resultScript);
  }
}

MultiStencilsDecodeTask::MultiStencilsDecodeTask(
@@ -1289,9 +1263,6 @@ JS::OffThreadToken* js::StartOffThreadDecodeScript(
    JSContext* cx, const ReadOnlyCompileOptions& options,
    const JS::TranscodeRange& range, JS::OffThreadCompileCallback callback,
    void* callbackData) {
  // XDR data must be Stencil format, or a parse-global must be available.
  MOZ_RELEASE_ASSERT(options.useStencilXDR || options.useOffThreadParseGlobal);

  auto task =
      cx->make_unique<ScriptDecodeTask>(cx, range, callback, callbackData);
  if (!task) {
@@ -2237,8 +2208,6 @@ JSScript* GlobalHelperThreadState::finishSingleParseTask(

  // Start the incremental-XDR encoder.
  if (startEncoding == StartEncoding::Yes) {
    MOZ_DIAGNOSTIC_ASSERT(parseTask->options.useStencilXDR);

    if (parseTask->stencil_) {
      auto initial = js::MakeUnique<frontend::ExtensibleCompilationStencil>(
          cx, *parseTask->stencilInput_);