Revert flutter engine (#31143)
* Revert "Support opacity layers for platform-views using hybrid-composition" (#31002)
* Revert "Support opacity layers for platform-views using hybrid-composition (#30264)"
This reverts commit 730b469a55c8bf4a70516e4d13fcae663aa1cf61.
* Empty
* Revert "[fuchsia] Switch from core-jit to core snapshots. (#30744)" (#31065)
This reverts commit a193f08cd006fb5cbc6f22a93e6d8b1d23c5c2e5.
Co-authored-by: Zachary Anderson <zanderso@users.noreply.github.com>
Co-authored-by: David Worsham <dworsham@google.com>
diff --git a/shell/platform/android/io/flutter/embedding/engine/mutatorsstack/FlutterMutatorView.java b/shell/platform/android/io/flutter/embedding/engine/mutatorsstack/FlutterMutatorView.java
index fd9be7a..d46f534 100644
--- a/shell/platform/android/io/flutter/embedding/engine/mutatorsstack/FlutterMutatorView.java
+++ b/shell/platform/android/io/flutter/embedding/engine/mutatorsstack/FlutterMutatorView.java
@@ -6,7 +6,6 @@
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Matrix;
-import android.graphics.Paint;
import android.graphics.Path;
import android.view.MotionEvent;
import android.view.View;
@@ -29,7 +28,6 @@
private int top;
private int prevLeft;
private int prevTop;
- private Paint paint;
private final AndroidTouchProcessor androidTouchProcessor;
@@ -44,7 +42,6 @@
super(context, null);
this.screenDensity = screenDensity;
this.androidTouchProcessor = androidTouchProcessor;
- this.paint = new Paint();
}
/** Initialize the FlutterMutatorView. */
@@ -145,11 +142,6 @@
pathCopy.offset(-left, -top);
canvas.clipPath(pathCopy);
}
-
- // Apply the final opacity value on the parent canvas.
- paint.setAlpha((int) (mutatorsStack.getFinalOpacity() * 255));
- this.setLayerType(LAYER_TYPE_HARDWARE, paint);
-
super.draw(canvas);
canvas.restore();
}
diff --git a/shell/platform/android/io/flutter/embedding/engine/mutatorsstack/FlutterMutatorsStack.java b/shell/platform/android/io/flutter/embedding/engine/mutatorsstack/FlutterMutatorsStack.java
index 6fad699..f7c8b3e 100644
--- a/shell/platform/android/io/flutter/embedding/engine/mutatorsstack/FlutterMutatorsStack.java
+++ b/shell/platform/android/io/flutter/embedding/engine/mutatorsstack/FlutterMutatorsStack.java
@@ -47,7 +47,6 @@
@Nullable private Rect rect;
@Nullable private Path path;
@Nullable private float[] radiis;
- @Nullable private float opacity;
private FlutterMutatorType type;
@@ -95,16 +94,6 @@
}
/**
- * Initialize an opacity mutator.
- *
- * @param opacity the opacity to apply.
- */
- public FlutterMutator(float opacity) {
- this.type = FlutterMutatorType.OPACITY;
- this.opacity = opacity;
- }
-
- /**
* Get the mutator type.
*
* @return The type of the mutator.
@@ -139,29 +128,18 @@
public Matrix getMatrix() {
return matrix;
}
-
- /**
- * Get the opacity of the mutator if {@link #getType()} returns FlutterMutatorType.OPACITY.
- *
- * @return the opacity if the type is FlutterMutatorType.OPACITY; otherwise null.
- */
- public float getOpacity() {
- return opacity;
- }
}
private @NonNull List<FlutterMutator> mutators;
private List<Path> finalClippingPaths;
private Matrix finalMatrix;
- private float finalOpacity;
/** Initialize the mutator stack. */
public FlutterMutatorsStack() {
this.mutators = new ArrayList<FlutterMutator>();
finalMatrix = new Matrix();
finalClippingPaths = new ArrayList<Path>();
- finalOpacity = 1.f;
}
/**
@@ -210,17 +188,6 @@
}
/**
- * Push an opacity {@link FlutterMutatorsStack.FlutterMutator} to the stack.
- *
- * @param opacity the opacity value.
- */
- public void pushOpacity(float opacity) {
- FlutterMutator mutator = new FlutterMutator(opacity);
- mutators.add(mutator);
- finalOpacity *= opacity;
- }
-
- /**
* Get a list of all the raw mutators. The 0 index of the returned list is the top of the stack.
*/
public List<FlutterMutator> getMutators() {
@@ -247,9 +214,4 @@
public Matrix getFinalMatrix() {
return finalMatrix;
}
-
- /** Returns the final opacity value. Apply this value to the canvas of the view. */
- public float getFinalOpacity() {
- return finalOpacity;
- }
}
diff --git a/shell/platform/android/platform_view_android_jni_impl.cc b/shell/platform/android/platform_view_android_jni_impl.cc
index a7af39a..79bea73 100644
--- a/shell/platform/android/platform_view_android_jni_impl.cc
+++ b/shell/platform/android/platform_view_android_jni_impl.cc
@@ -121,7 +121,6 @@
static jmethodID g_mutators_stack_push_transform_method = nullptr;
static jmethodID g_mutators_stack_push_cliprect_method = nullptr;
static jmethodID g_mutators_stack_push_cliprrect_method = nullptr;
-static jmethodID g_mutators_stack_push_opacity_method = nullptr;
// Called By Java
static jlong AttachJNI(JNIEnv* env, jclass clazz, jobject flutterJNI) {
@@ -1020,14 +1019,6 @@
return false;
}
- g_mutators_stack_push_opacity_method =
- env->GetMethodID(g_mutators_stack_class->obj(), "pushOpacity", "(F)V");
- if (g_mutators_stack_push_opacity_method == nullptr) {
- FML_LOG(ERROR)
- << "Could not locate FlutterMutatorsStack.pushOpacity method";
- return false;
- }
-
g_on_display_platform_view_method =
env->GetMethodID(g_flutter_jni_class->obj(), "onDisplayPlatformView",
"(IIIIIIILio/flutter/embedding/engine/mutatorsstack/"
@@ -1462,15 +1453,10 @@
(int)rect.bottom(), radiisArray.obj());
break;
}
- case opacity: {
- float opacity = (*iter)->GetAlphaFloat();
- env->CallVoidMethod(mutatorsStack, g_mutators_stack_push_opacity_method,
- opacity);
- break;
- }
// TODO(cyanglaz): Implement other mutators.
// https://github.com/flutter/flutter/issues/58426
case clip_path:
+ case opacity:
break;
}
++iter;
diff --git a/shell/platform/android/test/io/flutter/FlutterTestSuite.java b/shell/platform/android/test/io/flutter/FlutterTestSuite.java
index eae516d..7f42093 100644
--- a/shell/platform/android/test/io/flutter/FlutterTestSuite.java
+++ b/shell/platform/android/test/io/flutter/FlutterTestSuite.java
@@ -24,7 +24,6 @@
import io.flutter.embedding.engine.loader.ApplicationInfoLoaderTest;
import io.flutter.embedding.engine.loader.FlutterLoaderTest;
import io.flutter.embedding.engine.mutatorsstack.FlutterMutatorViewTest;
-import io.flutter.embedding.engine.mutatorsstack.FlutterMutatorsStackTest;
import io.flutter.embedding.engine.plugins.shim.ShimPluginRegistryTest;
import io.flutter.embedding.engine.renderer.FlutterRendererTest;
import io.flutter.embedding.engine.systemchannels.DeferredComponentChannelTest;
@@ -74,7 +73,6 @@
FlutterJNITest.class,
FlutterLaunchTests.class,
FlutterLoaderTest.class,
- FlutterMutatorsStackTest.class,
FlutterMutatorViewTest.class,
FlutterShellArgsTest.class,
FlutterRendererTest.class,
diff --git a/shell/platform/android/test/io/flutter/embedding/engine/mutatorsstack/FlutterMutatorViewTest.java b/shell/platform/android/test/io/flutter/embedding/engine/mutatorsstack/FlutterMutatorViewTest.java
index 4c5bf1e..9a5e46b 100644
--- a/shell/platform/android/test/io/flutter/embedding/engine/mutatorsstack/FlutterMutatorViewTest.java
+++ b/shell/platform/android/test/io/flutter/embedding/engine/mutatorsstack/FlutterMutatorViewTest.java
@@ -1,13 +1,10 @@
package io.flutter.embedding.engine.mutatorsstack;
-import static android.view.View.LAYER_TYPE_HARDWARE;
import static android.view.View.OnFocusChangeListener;
import static junit.framework.TestCase.*;
import static org.mockito.Mockito.*;
-import android.graphics.Canvas;
import android.graphics.Matrix;
-import android.graphics.Paint;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
@@ -253,20 +250,4 @@
view.unsetOnDescendantFocusChangeListener();
verify(viewTreeObserver, times(1)).removeOnGlobalFocusChangeListener(activeFocusListener);
}
-
- @Test
- public void draw_opacityApplied() {
- final FlutterMutatorView view = new FlutterMutatorView(RuntimeEnvironment.systemContext);
- final FlutterMutatorView spy = spy(view);
-
- final FlutterMutatorsStack mutatorsStack = new FlutterMutatorsStack();
- mutatorsStack.pushOpacity(.3f);
-
- spy.readyToDisplay(mutatorsStack, /*left=*/ 1, /*top=*/ 2, /*width=*/ 0, /*height=*/ 0);
- spy.draw(new Canvas());
- verify(spy)
- .setLayerType(
- intThat((Integer layerType) -> layerType == LAYER_TYPE_HARDWARE),
- argThat((Paint paint) -> paint.getAlpha() == (int) (.3f * 255)));
- }
}
diff --git a/shell/platform/android/test/io/flutter/embedding/engine/mutatorsstack/FlutterMutatorsStackTest.java b/shell/platform/android/test/io/flutter/embedding/engine/mutatorsstack/FlutterMutatorsStackTest.java
deleted file mode 100644
index 9c8b5db..0000000
--- a/shell/platform/android/test/io/flutter/embedding/engine/mutatorsstack/FlutterMutatorsStackTest.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package io.flutter.embedding.engine.mutatorsstack;
-
-import static org.junit.Assert.assertEquals;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.annotation.Config;
-
-@Config(manifest = Config.NONE)
-@RunWith(RobolectricTestRunner.class)
-public class FlutterMutatorsStackTest {
-
- @Test
- public void pushOpacity() {
- final FlutterMutatorsStack mutatorsStack = new FlutterMutatorsStack();
- mutatorsStack.pushOpacity(.5f);
-
- assertEquals(mutatorsStack.getMutators().size(), 1);
- assertEquals(
- mutatorsStack.getMutators().get(0).getType(),
- FlutterMutatorsStack.FlutterMutatorType.OPACITY);
- assertEquals(mutatorsStack.getMutators().get(0).getOpacity(), .5f, 0f);
- }
-
- @Test
- public void defaultOpacity() {
- final FlutterMutatorsStack mutatorsStack = new FlutterMutatorsStack();
-
- assertEquals(1f, mutatorsStack.getFinalOpacity(), 0f);
- }
-
- @Test
- public void layeredOpacity() {
- final FlutterMutatorsStack mutatorsStack = new FlutterMutatorsStack();
- mutatorsStack.pushOpacity(.5f);
- mutatorsStack.pushOpacity(.6f);
- mutatorsStack.pushOpacity(1f);
-
- assertEquals(.3f, mutatorsStack.getFinalOpacity(), 1 / 255);
- }
-}
diff --git a/shell/platform/fuchsia/dart_runner/BUILD.gn b/shell/platform/fuchsia/dart_runner/BUILD.gn
index 63f41f6..3d3fad3 100644
--- a/shell/platform/fuchsia/dart_runner/BUILD.gn
+++ b/shell/platform/fuchsia/dart_runner/BUILD.gn
@@ -225,9 +225,19 @@
},
{
path = rebase_path(
+ "$target_gen_dir/kernel/vm_instructions${product_suffix}.bin")
+ dest = "vm_snapshot_instructions.bin"
+ },
+ {
+ path = rebase_path(
"$target_gen_dir/kernel/isolate_data${product_suffix}.bin")
dest = "isolate_core_snapshot_data.bin"
},
+ {
+ path = rebase_path(
+ "$target_gen_dir/kernel/isolate_instructions${product_suffix}.bin")
+ dest = "isolate_core_snapshot_instructions.bin"
+ },
]
if (!invoker.product) {
diff --git a/shell/platform/fuchsia/dart_runner/dart_component_controller.cc b/shell/platform/fuchsia/dart_runner/dart_component_controller.cc
index 2f29dc4..b3d7a4c 100644
--- a/shell/platform/fuchsia/dart_runner/dart_component_controller.cc
+++ b/shell/platform/fuchsia/dart_runner/dart_component_controller.cc
@@ -206,10 +206,14 @@
isolate_snapshot_data_)) {
return false;
}
+ if (!dart_utils::MappedResource::LoadFromNamespace(
+ nullptr, "/pkg/data/isolate_core_snapshot_instructions.bin",
+ isolate_snapshot_instructions_, true /* executable */)) {
+ return false;
+ }
- // The core snapshot does not separate instructions from data.
if (!CreateIsolate(isolate_snapshot_data_.address(),
- nullptr /* isolate_snapshot_instructions */)) {
+ isolate_snapshot_instructions_.address())) {
return false;
}
@@ -273,16 +277,16 @@
return false;
}
} else {
- // TODO(fxb/91200): This code path was broken for over a year and is
- // probably not used.
if (!dart_utils::MappedResource::LoadFromNamespace(
namespace_, data_path_ + "/isolate_snapshot_data.bin",
isolate_snapshot_data_)) {
return false;
}
- isolate_data = isolate_snapshot_data_.address();
- // We don't separate instructions from data in 'core' snapshots.
- isolate_instructions = nullptr;
+ if (!dart_utils::MappedResource::LoadFromNamespace(
+ namespace_, data_path_ + "/isolate_snapshot_instructions.bin",
+ isolate_snapshot_instructions_, true /* executable */)) {
+ return false;
+ }
}
return CreateIsolate(isolate_data, isolate_instructions);
#endif // defined(AOT_RUNTIME)
diff --git a/shell/platform/fuchsia/dart_runner/dart_component_controller_v2.cc b/shell/platform/fuchsia/dart_runner/dart_component_controller_v2.cc
index e7d1065..31bec7d 100644
--- a/shell/platform/fuchsia/dart_runner/dart_component_controller_v2.cc
+++ b/shell/platform/fuchsia/dart_runner/dart_component_controller_v2.cc
@@ -214,7 +214,6 @@
bool DartComponentControllerV2::SetUpFromKernel() {
dart_utils::MappedResource manifest;
-
if (!dart_utils::MappedResource::LoadFromNamespace(
namespace_, data_path_ + "/app.dilplist", manifest)) {
return false;
@@ -225,10 +224,14 @@
isolate_snapshot_data_)) {
return false;
}
+ if (!dart_utils::MappedResource::LoadFromNamespace(
+ nullptr, "/pkg/data/isolate_core_snapshot_instructions.bin",
+ isolate_snapshot_instructions_, true /* executable */)) {
+ return false;
+ }
- // The core snapshot does not separate instructions from data.
if (!CreateIsolate(isolate_snapshot_data_.address(),
- nullptr /* isolate_snapshot_instructions */)) {
+ isolate_snapshot_instructions_.address())) {
return false;
}
@@ -293,16 +296,16 @@
return false;
}
} else {
- // TODO(fxb/91200): This code path was broken for over a year and is
- // probably not used.
if (!dart_utils::MappedResource::LoadFromNamespace(
namespace_, data_path_ + "/isolate_snapshot_data.bin",
isolate_snapshot_data_)) {
return false;
}
- isolate_data = isolate_snapshot_data_.address();
- // We don't separate instructions from data in 'core' snapshots.
- isolate_instructions = nullptr;
+ if (!dart_utils::MappedResource::LoadFromNamespace(
+ namespace_, data_path_ + "/isolate_snapshot_instructions.bin",
+ isolate_snapshot_instructions_, true /* executable */)) {
+ return false;
+ }
}
return CreateIsolate(isolate_data, isolate_instructions);
#endif // defined(AOT_RUNTIME)
diff --git a/shell/platform/fuchsia/dart_runner/dart_runner.cc b/shell/platform/fuchsia/dart_runner/dart_runner.cc
index 17613db..fba5805 100644
--- a/shell/platform/fuchsia/dart_runner/dart_runner.cc
+++ b/shell/platform/fuchsia/dart_runner/dart_runner.cc
@@ -200,7 +200,13 @@
nullptr, "/pkg/data/vm_snapshot_data.bin", vm_snapshot_data_)) {
FX_LOG(FATAL, LOG_TAG, "Failed to load vm snapshot data");
}
+ if (!dart_utils::MappedResource::LoadFromNamespace(
+ nullptr, "/pkg/data/vm_snapshot_instructions.bin",
+ vm_snapshot_instructions_, true /* executable */)) {
+ FX_LOG(FATAL, LOG_TAG, "Failed to load vm snapshot instructions");
+ }
params.vm_snapshot_data = vm_snapshot_data_.address();
+ params.vm_snapshot_instructions = vm_snapshot_instructions_.address();
#endif
params.create_group = IsolateGroupCreateCallback;
params.shutdown_isolate = IsolateShutdownCallback;
diff --git a/shell/platform/fuchsia/dart_runner/kernel/BUILD.gn b/shell/platform/fuchsia/dart_runner/kernel/BUILD.gn
index 9228780..d831ccd 100644
--- a/shell/platform/fuchsia/dart_runner/kernel/BUILD.gn
+++ b/shell/platform/fuchsia/dart_runner/kernel/BUILD.gn
@@ -40,11 +40,17 @@
inputs = [ platform_dill ]
vm_snapshot_data = "$target_gen_dir/vm_data${product_suffix}.bin"
+ vm_snapshot_instructions =
+ "$target_gen_dir/vm_instructions${product_suffix}.bin"
isolate_snapshot_data = "$target_gen_dir/isolate_data${product_suffix}.bin"
+ isolate_snapshot_instructions =
+ "$target_gen_dir/isolate_instructions${product_suffix}.bin"
snapshot_profile = "$target_gen_dir/snapshot_profile${product_suffix}.json"
outputs = [
vm_snapshot_data,
+ vm_snapshot_instructions,
isolate_snapshot_data,
+ isolate_snapshot_instructions,
snapshot_profile,
]
@@ -59,10 +65,14 @@
"--lazy_async_stacks",
"--enable_mirrors=false",
"--deterministic",
- "--snapshot_kind=core",
+ "--snapshot_kind=core-jit",
"--vm_snapshot_data=" + rebase_path(vm_snapshot_data, root_build_dir),
+ "--vm_snapshot_instructions=" +
+ rebase_path(vm_snapshot_instructions, root_build_dir),
"--isolate_snapshot_data=" +
rebase_path(isolate_snapshot_data, root_build_dir),
+ "--isolate_snapshot_instructions=" +
+ rebase_path(isolate_snapshot_instructions, root_build_dir),
"--write_v8_snapshot_profile_to=" +
rebase_path(snapshot_profile, root_build_dir),
]
diff --git a/shell/platform/fuchsia/dart_runner/service_isolate.cc b/shell/platform/fuchsia/dart_runner/service_isolate.cc
index a43f338..6c7ca06 100644
--- a/shell/platform/fuchsia/dart_runner/service_isolate.cc
+++ b/shell/platform/fuchsia/dart_runner/service_isolate.cc
@@ -96,6 +96,12 @@
"/pkg/data/vmservice_isolate_snapshot_data.bin";
const char* snapshot_instructions_path =
"/pkg/data/vmservice_isolate_snapshot_instructions.bin";
+#else
+ // The VM service is embedded in the core snapshot.
+ const char* snapshot_data_path = "/pkg/data/isolate_core_snapshot_data.bin";
+ const char* snapshot_instructions_path =
+ "/pkg/data/isolate_core_snapshot_instructions.bin";
+#endif
if (!dart_utils::MappedResource::LoadFromNamespace(
nullptr, snapshot_data_path, mapped_isolate_snapshot_data)) {
@@ -113,21 +119,8 @@
vmservice_data = mapped_isolate_snapshot_data.address();
vmservice_instructions = mapped_isolate_snapshot_instructions.address();
+#if defined(AOT_RUNTIME)
}
-#else
- // The VM service is embedded in the core snapshot.
- // 'core' snapshot_kinds do not separate instructions from data, so we don't
- // load an instructions file.
- const char* snapshot_data_path = "/pkg/data/isolate_core_snapshot_data.bin";
- if (!dart_utils::MappedResource::LoadFromNamespace(
- nullptr, snapshot_data_path, mapped_isolate_snapshot_data)) {
- *error = strdup("Failed to load snapshot for service isolate");
- FX_LOG(ERROR, LOG_TAG, *error);
- return nullptr;
- }
-
- vmservice_data = mapped_isolate_snapshot_data.address();
- vmservice_instructions = nullptr;
#endif
bool is_null_safe =
diff --git a/shell/platform/fuchsia/flutter/BUILD.gn b/shell/platform/fuchsia/flutter/BUILD.gn
index 98669f0..de41ca3 100644
--- a/shell/platform/fuchsia/flutter/BUILD.gn
+++ b/shell/platform/fuchsia/flutter/BUILD.gn
@@ -348,9 +348,19 @@
},
{
path = rebase_path(
+ "$snapshot_gen_dir/vm_snapshot_instructions${product_suffix}.bin")
+ dest = "vm_snapshot_instructions.bin"
+ },
+ {
+ path = rebase_path(
"$snapshot_gen_dir/isolate_snapshot${product_suffix}.bin")
dest = "isolate_core_snapshot_data.bin"
},
+ {
+ path = rebase_path(
+ "$snapshot_gen_dir/isolate_snapshot_instructions${product_suffix}.bin")
+ dest = "isolate_core_snapshot_instructions.bin"
+ },
]
_vulkan_icds = []
diff --git a/shell/platform/fuchsia/flutter/component_v1.cc b/shell/platform/fuchsia/flutter/component_v1.cc
index 0872a2d..36e7159 100644
--- a/shell/platform/fuchsia/flutter/component_v1.cc
+++ b/shell/platform/fuchsia/flutter/component_v1.cc
@@ -348,13 +348,19 @@
return MakeFileMapping("/pkg/data/vm_snapshot_data.bin",
false /* executable */);
};
+ settings_.vm_snapshot_instr = []() {
+ return MakeFileMapping("/pkg/data/vm_snapshot_instructions.bin",
+ true /* executable */);
+ };
+
settings_.isolate_snapshot_data = []() {
return MakeFileMapping("/pkg/data/isolate_core_snapshot_data.bin",
false /* executable */);
};
-
- // 'core' snapshots do not separate instructions from data, so we
- // don't set isolate_snapshot_instr here.
+ settings_.isolate_snapshot_instr = [] {
+ return MakeFileMapping("/pkg/data/isolate_core_snapshot_instructions.bin",
+ true /* executable */);
+ };
}
#if defined(DART_PRODUCT)
diff --git a/shell/platform/fuchsia/flutter/component_v2.cc b/shell/platform/fuchsia/flutter/component_v2.cc
index 8d52908..b068369 100644
--- a/shell/platform/fuchsia/flutter/component_v2.cc
+++ b/shell/platform/fuchsia/flutter/component_v2.cc
@@ -412,13 +412,19 @@
return MakeFileMapping("/pkg/data/vm_snapshot_data.bin",
false /* executable */);
};
+ settings_.vm_snapshot_instr = []() {
+ return MakeFileMapping("/pkg/data/vm_snapshot_instructions.bin",
+ true /* executable */);
+ };
+
settings_.isolate_snapshot_data = []() {
return MakeFileMapping("/pkg/data/isolate_core_snapshot_data.bin",
false /* executable */);
};
-
- // 'core' snapshots do not separate instructions from data, so we
- // don't set isolate_snapshot_instr here.
+ settings_.isolate_snapshot_instr = [] {
+ return MakeFileMapping("/pkg/data/isolate_core_snapshot_instructions.bin",
+ true /* executable */);
+ };
}
#if defined(DART_PRODUCT)
diff --git a/shell/platform/fuchsia/flutter/kernel/BUILD.gn b/shell/platform/fuchsia/flutter/kernel/BUILD.gn
index 6086617..470f079 100644
--- a/shell/platform/fuchsia/flutter/kernel/BUILD.gn
+++ b/shell/platform/fuchsia/flutter/kernel/BUILD.gn
@@ -44,11 +44,17 @@
inputs = [ platform_dill ]
vm_snapshot_data = "$target_gen_dir/vm_isolate_snapshot${suffix}.bin"
+ vm_snapshot_instructions =
+ "$target_gen_dir/vm_snapshot_instructions${suffix}.bin"
isolate_snapshot_data = "$target_gen_dir/isolate_snapshot${suffix}.bin"
+ isolate_snapshot_instructions =
+ "$target_gen_dir/isolate_snapshot_instructions${suffix}.bin"
snapshot_profile = "$target_gen_dir/snapshot_profile${suffix}.json"
outputs = [
vm_snapshot_data,
+ vm_snapshot_instructions,
isolate_snapshot_data,
+ isolate_snapshot_instructions,
snapshot_profile,
]
@@ -63,10 +69,14 @@
"--lazy_async_stacks",
"--enable_mirrors=false",
"--deterministic",
- "--snapshot_kind=core",
+ "--snapshot_kind=core-jit",
"--vm_snapshot_data=" + rebase_path(vm_snapshot_data, root_build_dir),
+ "--vm_snapshot_instructions=" +
+ rebase_path(vm_snapshot_instructions, root_build_dir),
"--isolate_snapshot_data=" +
rebase_path(isolate_snapshot_data, root_build_dir),
+ "--isolate_snapshot_instructions=" +
+ rebase_path(isolate_snapshot_instructions, root_build_dir),
"--write_v8_snapshot_profile_to=" +
rebase_path(snapshot_profile, root_build_dir),
]