Version 3.0.0-2.0.dev
Merge 896675c462df4f2c9bd9dc66fca3442b203863cd into dev
diff --git a/runtime/tests/vm/dart/isolates/fast_object_copy2_test.dart b/runtime/tests/vm/dart/isolates/fast_object_copy2_test.dart
index 76e5679..8ec58da 100644
--- a/runtime/tests/vm/dart/isolates/fast_object_copy2_test.dart
+++ b/runtime/tests/vm/dart/isolates/fast_object_copy2_test.dart
@@ -7,9 +7,6 @@
// VMOptions=--no-enable-fast-object-copy --gc-on-foc-slow-path --force-evacuation
// VMOptions=--enable-fast-object-copy --gc-on-foc-slow-path --force-evacuation
-// The tests in this file will only succeed when isolate groups are enabled
-// (hence the VMOptions above).
-
import 'dart:async';
import 'dart:isolate';
import 'dart:typed_data';
@@ -75,6 +72,8 @@
const {1, 2, 3},
Isolate.current.pauseCapability,
Int32x4(1, 2, 3, 4),
+ Float32x4(1.0, 2.0, 3.0, 4.0),
+ Float64x2(1.0, 2.0),
StackTrace.current,
];
diff --git a/runtime/tests/vm/dart_2/isolates/fast_object_copy2_test.dart b/runtime/tests/vm/dart_2/isolates/fast_object_copy2_test.dart
index 0c48bc0..a52bd16 100644
--- a/runtime/tests/vm/dart_2/isolates/fast_object_copy2_test.dart
+++ b/runtime/tests/vm/dart_2/isolates/fast_object_copy2_test.dart
@@ -9,9 +9,6 @@
// VMOptions=--no-enable-fast-object-copy --gc-on-foc-slow-path --force-evacuation
// VMOptions=--enable-fast-object-copy --gc-on-foc-slow-path --force-evacuation
-// The tests in this file will only succeed when isolate groups are enabled
-// (hence the VMOptions above).
-
import 'dart:async';
import 'dart:isolate';
import 'dart:typed_data';
@@ -76,6 +73,8 @@
const {1, 2, 3},
Isolate.current.pauseCapability,
Int32x4(1, 2, 3, 4),
+ Float32x4(1.0, 2.0, 3.0, 4.0),
+ Float64x2(1.0, 2.0),
StackTrace.current,
];
diff --git a/runtime/vm/object_graph_copy.cc b/runtime/vm/object_graph_copy.cc
index b6e102d..2fc3446 100644
--- a/runtime/vm/object_graph_copy.cc
+++ b/runtime/vm/object_graph_copy.cc
@@ -159,15 +159,10 @@
if (cid == kNeverCid) return true;
if (cid == kSentinelCid) return true;
if (cid == kStackTraceCid) return true;
-#if defined(DART_PRECOMPILED_RUNTIME)
- // In JIT mode we have field guards enabled which means
- // double/float32x4/float64x2 boxes can be mutable and we therefore cannot
- // share them.
- if (cid == kDoubleCid || cid == kFloat32x4Cid || cid == kFloat64x2Cid) {
+ if (cid == kDoubleCid || cid == kFloat32x4Cid || cid == kFloat64x2Cid ||
+ cid == kInt32x4Cid) {
return true;
}
-#endif
- if (cid == kInt32x4Cid) return true; // No field guards here.
if (cid == kSendPortCid) return true;
if (cid == kCapabilityCid) return true;
@@ -227,13 +222,6 @@
#endif
if (cid == kInt32x4Cid) return false;
- // We copy those (instead of sharing them) - see [CanShareObjct]. They rely
- // on the default hashCode implementation which uses identity hash codes
- // (instead of structural hash code).
- if (cid == kFloat32x4Cid || cid == kFloat64x2Cid) {
- return !kDartPrecompiledRuntime;
- }
-
// If the [tags] indicates this is a canonical object we'll share it instead
// of copying it. That would suggest we don't have to re-hash maps/sets
// containing this object on the receiver side.
diff --git a/tools/VERSION b/tools/VERSION
index ff832e3..838416a 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 3
MINOR 0
PATCH 0
-PRERELEASE 1
+PRERELEASE 2
PRERELEASE_PATCH 0