deps: V8: backport d59db06bf542
Original commit message:
[weakrefs] Remove --no-harmony-weak-refs flag
Bug: v8:8179
Change-Id: I7f699073807d1874d0c10a4f1641de6bfb0efe6f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2741582
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73871}
Refs: d59db06bf5
PR-URL: https://github.com/nodejs/node/pull/38162
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
parent
3da003cc1c
commit
2468e4ed3e
@ -36,7 +36,7 @@
|
|||||||
|
|
||||||
# Reset this number to 0 on major V8 upgrades.
|
# Reset this number to 0 on major V8 upgrades.
|
||||||
# Increment by one for each non-official patch applied to deps/v8.
|
# Increment by one for each non-official patch applied to deps/v8.
|
||||||
'v8_embedder_string': '-node.9',
|
'v8_embedder_string': '-node.10',
|
||||||
|
|
||||||
##### V8 defaults for Node.js #####
|
##### V8 defaults for Node.js #####
|
||||||
|
|
||||||
|
3
deps/v8/src/flags/flag-definitions.h
vendored
3
deps/v8/src/flags/flag-definitions.h
vendored
@ -246,8 +246,6 @@ DEFINE_BOOL(use_strict, false, "enforce strict mode")
|
|||||||
|
|
||||||
DEFINE_BOOL(harmony, false, "enable all completed harmony features")
|
DEFINE_BOOL(harmony, false, "enable all completed harmony features")
|
||||||
DEFINE_BOOL(harmony_shipping, true, "enable all shipped harmony features")
|
DEFINE_BOOL(harmony_shipping, true, "enable all shipped harmony features")
|
||||||
// Enabling FinalizationRegistry#cleanupSome also enables weak refs
|
|
||||||
DEFINE_IMPLICATION(harmony_weak_refs_with_cleanup_some, harmony_weak_refs)
|
|
||||||
|
|
||||||
// Update bootstrapper.cc whenever adding a new feature flag.
|
// Update bootstrapper.cc whenever adding a new feature flag.
|
||||||
|
|
||||||
@ -286,7 +284,6 @@ DEFINE_IMPLICATION(harmony_weak_refs_with_cleanup_some, harmony_weak_refs)
|
|||||||
#define HARMONY_SHIPPING_BASE(V) \
|
#define HARMONY_SHIPPING_BASE(V) \
|
||||||
V(harmony_sharedarraybuffer, "harmony sharedarraybuffer") \
|
V(harmony_sharedarraybuffer, "harmony sharedarraybuffer") \
|
||||||
V(harmony_atomics, "harmony atomics") \
|
V(harmony_atomics, "harmony atomics") \
|
||||||
V(harmony_weak_refs, "harmony weak references") \
|
|
||||||
V(harmony_string_replaceall, "harmony String.prototype.replaceAll") \
|
V(harmony_string_replaceall, "harmony String.prototype.replaceAll") \
|
||||||
V(harmony_logical_assignment, "harmony logical assignment") \
|
V(harmony_logical_assignment, "harmony logical assignment") \
|
||||||
V(harmony_atomics_waitasync, "harmony Atomics.waitAsync") \
|
V(harmony_atomics_waitasync, "harmony Atomics.waitAsync") \
|
||||||
|
3
deps/v8/src/heap/heap.cc
vendored
3
deps/v8/src/heap/heap.cc
vendored
@ -6228,8 +6228,6 @@ MaybeHandle<JSFinalizationRegistry> Heap::DequeueDirtyJSFinalizationRegistry() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Heap::RemoveDirtyFinalizationRegistriesOnContext(NativeContext context) {
|
void Heap::RemoveDirtyFinalizationRegistriesOnContext(NativeContext context) {
|
||||||
if (!FLAG_harmony_weak_refs) return;
|
|
||||||
|
|
||||||
DisallowGarbageCollection no_gc;
|
DisallowGarbageCollection no_gc;
|
||||||
|
|
||||||
Isolate* isolate = this->isolate();
|
Isolate* isolate = this->isolate();
|
||||||
@ -6259,7 +6257,6 @@ void Heap::RemoveDirtyFinalizationRegistriesOnContext(NativeContext context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Heap::KeepDuringJob(Handle<JSReceiver> target) {
|
void Heap::KeepDuringJob(Handle<JSReceiver> target) {
|
||||||
DCHECK(FLAG_harmony_weak_refs);
|
|
||||||
DCHECK(weak_refs_keep_during_job().IsUndefined() ||
|
DCHECK(weak_refs_keep_during_job().IsUndefined() ||
|
||||||
weak_refs_keep_during_job().IsOrderedHashSet());
|
weak_refs_keep_during_job().IsOrderedHashSet());
|
||||||
Handle<OrderedHashSet> table;
|
Handle<OrderedHashSet> table;
|
||||||
|
3
deps/v8/src/heap/mark-compact.cc
vendored
3
deps/v8/src/heap/mark-compact.cc
vendored
@ -2480,9 +2480,6 @@ void MarkCompactCollector::ClearWeakReferences() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void MarkCompactCollector::ClearJSWeakRefs() {
|
void MarkCompactCollector::ClearJSWeakRefs() {
|
||||||
if (!FLAG_harmony_weak_refs) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
JSWeakRef weak_ref;
|
JSWeakRef weak_ref;
|
||||||
while (weak_objects_.js_weak_refs.Pop(kMainThreadTask, &weak_ref)) {
|
while (weak_objects_.js_weak_refs.Pop(kMainThreadTask, &weak_ref)) {
|
||||||
HeapObject target = HeapObject::cast(weak_ref.target());
|
HeapObject target = HeapObject::cast(weak_ref.target());
|
||||||
|
2
deps/v8/src/heap/weak-object-worklists.cc
vendored
2
deps/v8/src/heap/weak-object-worklists.cc
vendored
@ -115,7 +115,6 @@ void WeakObjects::UpdateWeakObjectsInCode(
|
|||||||
|
|
||||||
void WeakObjects::UpdateJSWeakRefs(
|
void WeakObjects::UpdateJSWeakRefs(
|
||||||
WeakObjectWorklist<JSWeakRef>& js_weak_refs) {
|
WeakObjectWorklist<JSWeakRef>& js_weak_refs) {
|
||||||
if (FLAG_harmony_weak_refs) {
|
|
||||||
js_weak_refs.Update(
|
js_weak_refs.Update(
|
||||||
[](JSWeakRef js_weak_ref_in, JSWeakRef* js_weak_ref_out) -> bool {
|
[](JSWeakRef js_weak_ref_in, JSWeakRef* js_weak_ref_out) -> bool {
|
||||||
JSWeakRef forwarded = ForwardingAddress(js_weak_ref_in);
|
JSWeakRef forwarded = ForwardingAddress(js_weak_ref_in);
|
||||||
@ -127,7 +126,6 @@ void WeakObjects::UpdateJSWeakRefs(
|
|||||||
|
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void WeakObjects::UpdateWeakCells(WeakObjectWorklist<WeakCell>& weak_cells) {
|
void WeakObjects::UpdateWeakCells(WeakObjectWorklist<WeakCell>& weak_cells) {
|
||||||
|
122
deps/v8/src/init/bootstrapper.cc
vendored
122
deps/v8/src/init/bootstrapper.cc
vendored
@ -3854,6 +3854,61 @@ void Genesis::InitializeGlobal(Handle<JSGlobalObject> global_object,
|
|||||||
native_context()->set_bound_function_with_constructor_map(*map);
|
native_context()->set_bound_function_with_constructor_map(*map);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{ // -- F i n a l i z a t i o n R e g i s t r y
|
||||||
|
Handle<JSFunction> finalization_registry_fun = InstallFunction(
|
||||||
|
isolate_, global, factory->FinalizationRegistry_string(),
|
||||||
|
JS_FINALIZATION_REGISTRY_TYPE, JSFinalizationRegistry::kHeaderSize, 0,
|
||||||
|
factory->the_hole_value(), Builtins::kFinalizationRegistryConstructor);
|
||||||
|
InstallWithIntrinsicDefaultProto(
|
||||||
|
isolate_, finalization_registry_fun,
|
||||||
|
Context::JS_FINALIZATION_REGISTRY_FUNCTION_INDEX);
|
||||||
|
|
||||||
|
finalization_registry_fun->shared().DontAdaptArguments();
|
||||||
|
finalization_registry_fun->shared().set_length(1);
|
||||||
|
|
||||||
|
Handle<JSObject> finalization_registry_prototype(
|
||||||
|
JSObject::cast(finalization_registry_fun->instance_prototype()),
|
||||||
|
isolate());
|
||||||
|
|
||||||
|
InstallToStringTag(isolate_, finalization_registry_prototype,
|
||||||
|
factory->FinalizationRegistry_string());
|
||||||
|
|
||||||
|
SimpleInstallFunction(isolate_, finalization_registry_prototype, "register",
|
||||||
|
Builtins::kFinalizationRegistryRegister, 2, false);
|
||||||
|
|
||||||
|
SimpleInstallFunction(isolate_, finalization_registry_prototype,
|
||||||
|
"unregister",
|
||||||
|
Builtins::kFinalizationRegistryUnregister, 1, false);
|
||||||
|
|
||||||
|
// The cleanupSome function is created but not exposed, as it is used
|
||||||
|
// internally by InvokeFinalizationRegistryCleanupFromTask.
|
||||||
|
//
|
||||||
|
// It is exposed by FLAG_harmony_weak_refs_with_cleanup_some.
|
||||||
|
Handle<JSFunction> cleanup_some_fun = SimpleCreateFunction(
|
||||||
|
isolate_, factory->InternalizeUtf8String("cleanupSome"),
|
||||||
|
Builtins::kFinalizationRegistryPrototypeCleanupSome, 0, false);
|
||||||
|
native_context()->set_finalization_registry_cleanup_some(*cleanup_some_fun);
|
||||||
|
}
|
||||||
|
|
||||||
|
{ // -- W e a k R e f
|
||||||
|
Handle<JSFunction> weak_ref_fun = InstallFunction(
|
||||||
|
isolate_, global, "WeakRef", JS_WEAK_REF_TYPE, JSWeakRef::kHeaderSize,
|
||||||
|
0, factory->the_hole_value(), Builtins::kWeakRefConstructor);
|
||||||
|
InstallWithIntrinsicDefaultProto(isolate_, weak_ref_fun,
|
||||||
|
Context::JS_WEAK_REF_FUNCTION_INDEX);
|
||||||
|
|
||||||
|
weak_ref_fun->shared().DontAdaptArguments();
|
||||||
|
weak_ref_fun->shared().set_length(1);
|
||||||
|
|
||||||
|
Handle<JSObject> weak_ref_prototype(
|
||||||
|
JSObject::cast(weak_ref_fun->instance_prototype()), isolate());
|
||||||
|
|
||||||
|
InstallToStringTag(isolate_, weak_ref_prototype, factory->WeakRef_string());
|
||||||
|
|
||||||
|
SimpleInstallFunction(isolate_, weak_ref_prototype, "deref",
|
||||||
|
Builtins::kWeakRefDeref, 0, true);
|
||||||
|
}
|
||||||
|
|
||||||
{ // --- sloppy arguments map
|
{ // --- sloppy arguments map
|
||||||
Handle<String> arguments_string = factory->Arguments_string();
|
Handle<String> arguments_string = factory->Arguments_string();
|
||||||
Handle<JSFunction> function = CreateFunctionForBuiltinWithPrototype(
|
Handle<JSFunction> function = CreateFunctionForBuiltinWithPrototype(
|
||||||
@ -4351,75 +4406,8 @@ void Genesis::InitializeGlobal_harmony_atomics() {
|
|||||||
InstallToStringTag(isolate_, isolate()->atomics_object(), "Atomics");
|
InstallToStringTag(isolate_, isolate()->atomics_object(), "Atomics");
|
||||||
}
|
}
|
||||||
|
|
||||||
void Genesis::InitializeGlobal_harmony_weak_refs() {
|
|
||||||
if (!FLAG_harmony_weak_refs) return;
|
|
||||||
|
|
||||||
Factory* factory = isolate()->factory();
|
|
||||||
Handle<JSGlobalObject> global(native_context()->global_object(), isolate());
|
|
||||||
|
|
||||||
{
|
|
||||||
// Create %FinalizationRegistry%
|
|
||||||
Handle<JSFunction> finalization_registry_fun = InstallFunction(
|
|
||||||
isolate(), global, factory->FinalizationRegistry_string(),
|
|
||||||
JS_FINALIZATION_REGISTRY_TYPE, JSFinalizationRegistry::kHeaderSize, 0,
|
|
||||||
factory->the_hole_value(), Builtins::kFinalizationRegistryConstructor);
|
|
||||||
InstallWithIntrinsicDefaultProto(
|
|
||||||
isolate(), finalization_registry_fun,
|
|
||||||
Context::JS_FINALIZATION_REGISTRY_FUNCTION_INDEX);
|
|
||||||
|
|
||||||
finalization_registry_fun->shared().DontAdaptArguments();
|
|
||||||
finalization_registry_fun->shared().set_length(1);
|
|
||||||
|
|
||||||
Handle<JSObject> finalization_registry_prototype(
|
|
||||||
JSObject::cast(finalization_registry_fun->instance_prototype()),
|
|
||||||
isolate());
|
|
||||||
|
|
||||||
InstallToStringTag(isolate(), finalization_registry_prototype,
|
|
||||||
factory->FinalizationRegistry_string());
|
|
||||||
|
|
||||||
SimpleInstallFunction(isolate(), finalization_registry_prototype,
|
|
||||||
"register", Builtins::kFinalizationRegistryRegister,
|
|
||||||
2, false);
|
|
||||||
|
|
||||||
SimpleInstallFunction(isolate(), finalization_registry_prototype,
|
|
||||||
"unregister",
|
|
||||||
Builtins::kFinalizationRegistryUnregister, 1, false);
|
|
||||||
|
|
||||||
// The cleanupSome function is created but not exposed, as it is used
|
|
||||||
// internally by InvokeFinalizationRegistryCleanupFromTask.
|
|
||||||
//
|
|
||||||
// It is exposed by FLAG_harmony_weak_refs_with_cleanup_some.
|
|
||||||
Handle<JSFunction> cleanup_some_fun = SimpleCreateFunction(
|
|
||||||
isolate(), factory->InternalizeUtf8String("cleanupSome"),
|
|
||||||
Builtins::kFinalizationRegistryPrototypeCleanupSome, 0, false);
|
|
||||||
native_context()->set_finalization_registry_cleanup_some(*cleanup_some_fun);
|
|
||||||
}
|
|
||||||
{
|
|
||||||
// Create %WeakRef%
|
|
||||||
Handle<JSFunction> weak_ref_fun = InstallFunction(
|
|
||||||
isolate(), global, factory->WeakRef_string(), JS_WEAK_REF_TYPE,
|
|
||||||
JSWeakRef::kHeaderSize, 0, factory->the_hole_value(),
|
|
||||||
Builtins::kWeakRefConstructor);
|
|
||||||
InstallWithIntrinsicDefaultProto(isolate(), weak_ref_fun,
|
|
||||||
Context::JS_WEAK_REF_FUNCTION_INDEX);
|
|
||||||
|
|
||||||
weak_ref_fun->shared().DontAdaptArguments();
|
|
||||||
weak_ref_fun->shared().set_length(1);
|
|
||||||
|
|
||||||
Handle<JSObject> weak_ref_prototype(
|
|
||||||
JSObject::cast(weak_ref_fun->instance_prototype()), isolate());
|
|
||||||
|
|
||||||
InstallToStringTag(isolate(), weak_ref_prototype,
|
|
||||||
factory->WeakRef_string());
|
|
||||||
|
|
||||||
SimpleInstallFunction(isolate(), weak_ref_prototype, "deref",
|
|
||||||
Builtins::kWeakRefDeref, 0, true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void Genesis::InitializeGlobal_harmony_weak_refs_with_cleanup_some() {
|
void Genesis::InitializeGlobal_harmony_weak_refs_with_cleanup_some() {
|
||||||
if (!FLAG_harmony_weak_refs_with_cleanup_some) return;
|
if (!FLAG_harmony_weak_refs_with_cleanup_some) return;
|
||||||
DCHECK(FLAG_harmony_weak_refs);
|
|
||||||
|
|
||||||
Handle<JSFunction> finalization_registry_fun =
|
Handle<JSFunction> finalization_registry_fun =
|
||||||
isolate()->js_finalization_registry_fun();
|
isolate()->js_finalization_registry_fun();
|
||||||
|
19
deps/v8/test/cctest/test-js-weak-refs.cc
vendored
19
deps/v8/test/cctest/test-js-weak-refs.cc
vendored
@ -209,7 +209,6 @@ Handle<JSWeakRef> MakeWeakRefAndKeepDuringJob(Isolate* isolate) {
|
|||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
TEST(TestRegister) {
|
TEST(TestRegister) {
|
||||||
FLAG_harmony_weak_refs = true;
|
|
||||||
CcTest::InitializeVM();
|
CcTest::InitializeVM();
|
||||||
LocalContext context;
|
LocalContext context;
|
||||||
Isolate* isolate = CcTest::i_isolate();
|
Isolate* isolate = CcTest::i_isolate();
|
||||||
@ -247,7 +246,6 @@ TEST(TestRegister) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(TestRegisterWithKey) {
|
TEST(TestRegisterWithKey) {
|
||||||
FLAG_harmony_weak_refs = true;
|
|
||||||
CcTest::InitializeVM();
|
CcTest::InitializeVM();
|
||||||
LocalContext context;
|
LocalContext context;
|
||||||
Isolate* isolate = CcTest::i_isolate();
|
Isolate* isolate = CcTest::i_isolate();
|
||||||
@ -300,7 +298,6 @@ TEST(TestRegisterWithKey) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(TestWeakCellNullify1) {
|
TEST(TestWeakCellNullify1) {
|
||||||
FLAG_harmony_weak_refs = true;
|
|
||||||
CcTest::InitializeVM();
|
CcTest::InitializeVM();
|
||||||
LocalContext context;
|
LocalContext context;
|
||||||
Isolate* isolate = CcTest::i_isolate();
|
Isolate* isolate = CcTest::i_isolate();
|
||||||
@ -335,7 +332,6 @@ TEST(TestWeakCellNullify1) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(TestWeakCellNullify2) {
|
TEST(TestWeakCellNullify2) {
|
||||||
FLAG_harmony_weak_refs = true;
|
|
||||||
CcTest::InitializeVM();
|
CcTest::InitializeVM();
|
||||||
LocalContext context;
|
LocalContext context;
|
||||||
Isolate* isolate = CcTest::i_isolate();
|
Isolate* isolate = CcTest::i_isolate();
|
||||||
@ -369,7 +365,6 @@ TEST(TestWeakCellNullify2) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(TestJSFinalizationRegistryPopClearedCellHoldings1) {
|
TEST(TestJSFinalizationRegistryPopClearedCellHoldings1) {
|
||||||
FLAG_harmony_weak_refs = true;
|
|
||||||
CcTest::InitializeVM();
|
CcTest::InitializeVM();
|
||||||
LocalContext context;
|
LocalContext context;
|
||||||
Isolate* isolate = CcTest::i_isolate();
|
Isolate* isolate = CcTest::i_isolate();
|
||||||
@ -425,7 +420,6 @@ TEST(TestJSFinalizationRegistryPopClearedCellHoldings1) {
|
|||||||
TEST(TestJSFinalizationRegistryPopClearedCellHoldings2) {
|
TEST(TestJSFinalizationRegistryPopClearedCellHoldings2) {
|
||||||
// Test that when all WeakCells for a key are popped, the key is removed from
|
// Test that when all WeakCells for a key are popped, the key is removed from
|
||||||
// the key map.
|
// the key map.
|
||||||
FLAG_harmony_weak_refs = true;
|
|
||||||
CcTest::InitializeVM();
|
CcTest::InitializeVM();
|
||||||
LocalContext context;
|
LocalContext context;
|
||||||
Isolate* isolate = CcTest::i_isolate();
|
Isolate* isolate = CcTest::i_isolate();
|
||||||
@ -476,7 +470,6 @@ TEST(TestJSFinalizationRegistryPopClearedCellHoldings2) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(TestUnregisterActiveCells) {
|
TEST(TestUnregisterActiveCells) {
|
||||||
FLAG_harmony_weak_refs = true;
|
|
||||||
CcTest::InitializeVM();
|
CcTest::InitializeVM();
|
||||||
LocalContext context;
|
LocalContext context;
|
||||||
Isolate* isolate = CcTest::i_isolate();
|
Isolate* isolate = CcTest::i_isolate();
|
||||||
@ -529,7 +522,6 @@ TEST(TestUnregisterActiveCells) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(TestUnregisterActiveAndClearedCells) {
|
TEST(TestUnregisterActiveAndClearedCells) {
|
||||||
FLAG_harmony_weak_refs = true;
|
|
||||||
CcTest::InitializeVM();
|
CcTest::InitializeVM();
|
||||||
LocalContext context;
|
LocalContext context;
|
||||||
Isolate* isolate = CcTest::i_isolate();
|
Isolate* isolate = CcTest::i_isolate();
|
||||||
@ -585,7 +577,6 @@ TEST(TestUnregisterActiveAndClearedCells) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(TestWeakCellUnregisterTwice) {
|
TEST(TestWeakCellUnregisterTwice) {
|
||||||
FLAG_harmony_weak_refs = true;
|
|
||||||
CcTest::InitializeVM();
|
CcTest::InitializeVM();
|
||||||
LocalContext context;
|
LocalContext context;
|
||||||
Isolate* isolate = CcTest::i_isolate();
|
Isolate* isolate = CcTest::i_isolate();
|
||||||
@ -633,7 +624,6 @@ TEST(TestWeakCellUnregisterTwice) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(TestWeakCellUnregisterPopped) {
|
TEST(TestWeakCellUnregisterPopped) {
|
||||||
FLAG_harmony_weak_refs = true;
|
|
||||||
CcTest::InitializeVM();
|
CcTest::InitializeVM();
|
||||||
LocalContext context;
|
LocalContext context;
|
||||||
Isolate* isolate = CcTest::i_isolate();
|
Isolate* isolate = CcTest::i_isolate();
|
||||||
@ -674,7 +664,6 @@ TEST(TestWeakCellUnregisterPopped) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(TestWeakCellUnregisterNonexistentKey) {
|
TEST(TestWeakCellUnregisterNonexistentKey) {
|
||||||
FLAG_harmony_weak_refs = true;
|
|
||||||
CcTest::InitializeVM();
|
CcTest::InitializeVM();
|
||||||
LocalContext context;
|
LocalContext context;
|
||||||
Isolate* isolate = CcTest::i_isolate();
|
Isolate* isolate = CcTest::i_isolate();
|
||||||
@ -687,7 +676,6 @@ TEST(TestWeakCellUnregisterNonexistentKey) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(TestJSWeakRef) {
|
TEST(TestJSWeakRef) {
|
||||||
FLAG_harmony_weak_refs = true;
|
|
||||||
CcTest::InitializeVM();
|
CcTest::InitializeVM();
|
||||||
LocalContext context;
|
LocalContext context;
|
||||||
|
|
||||||
@ -716,7 +704,6 @@ TEST(TestJSWeakRef) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(TestJSWeakRefIncrementalMarking) {
|
TEST(TestJSWeakRefIncrementalMarking) {
|
||||||
FLAG_harmony_weak_refs = true;
|
|
||||||
if (!FLAG_incremental_marking) {
|
if (!FLAG_incremental_marking) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -752,7 +739,6 @@ TEST(TestJSWeakRefIncrementalMarking) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(TestJSWeakRefKeepDuringJob) {
|
TEST(TestJSWeakRefKeepDuringJob) {
|
||||||
FLAG_harmony_weak_refs = true;
|
|
||||||
CcTest::InitializeVM();
|
CcTest::InitializeVM();
|
||||||
LocalContext context;
|
LocalContext context;
|
||||||
|
|
||||||
@ -790,7 +776,6 @@ TEST(TestJSWeakRefKeepDuringJob) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(TestJSWeakRefKeepDuringJobIncrementalMarking) {
|
TEST(TestJSWeakRefKeepDuringJobIncrementalMarking) {
|
||||||
FLAG_harmony_weak_refs = true;
|
|
||||||
if (!FLAG_incremental_marking) {
|
if (!FLAG_incremental_marking) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -819,7 +804,6 @@ TEST(TestJSWeakRefKeepDuringJobIncrementalMarking) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(TestRemoveUnregisterToken) {
|
TEST(TestRemoveUnregisterToken) {
|
||||||
FLAG_harmony_weak_refs = true;
|
|
||||||
CcTest::InitializeVM();
|
CcTest::InitializeVM();
|
||||||
LocalContext context;
|
LocalContext context;
|
||||||
Isolate* isolate = CcTest::i_isolate();
|
Isolate* isolate = CcTest::i_isolate();
|
||||||
@ -883,7 +867,6 @@ TEST(TestRemoveUnregisterToken) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(JSWeakRefScavengedInWorklist) {
|
TEST(JSWeakRefScavengedInWorklist) {
|
||||||
FLAG_harmony_weak_refs = true;
|
|
||||||
if (!FLAG_incremental_marking || FLAG_single_generation) {
|
if (!FLAG_incremental_marking || FLAG_single_generation) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -928,7 +911,6 @@ TEST(JSWeakRefScavengedInWorklist) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(JSWeakRefTenuredInWorklist) {
|
TEST(JSWeakRefTenuredInWorklist) {
|
||||||
FLAG_harmony_weak_refs = true;
|
|
||||||
if (!FLAG_incremental_marking || FLAG_single_generation) {
|
if (!FLAG_incremental_marking || FLAG_single_generation) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -976,7 +958,6 @@ TEST(JSWeakRefTenuredInWorklist) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(UnregisterTokenHeapVerifier) {
|
TEST(UnregisterTokenHeapVerifier) {
|
||||||
FLAG_harmony_weak_refs = true;
|
|
||||||
if (!FLAG_incremental_marking) return;
|
if (!FLAG_incremental_marking) return;
|
||||||
ManualGCScope manual_gc_scope;
|
ManualGCScope manual_gc_scope;
|
||||||
#ifdef VERIFY_HEAP
|
#ifdef VERIFY_HEAP
|
||||||
|
@ -2,6 +2,4 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
// Flags: --harmony-weak-refs
|
|
||||||
|
|
||||||
let fg = new FinalizationRegistry();
|
let fg = new FinalizationRegistry();
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
*%(basename)s:7: TypeError: FinalizationRegistry: cleanup must be callable
|
*%(basename)s:*: TypeError: FinalizationRegistry: cleanup must be callable
|
||||||
let fg = new FinalizationRegistry();
|
let fg = new FinalizationRegistry();
|
||||||
^
|
^
|
||||||
TypeError: FinalizationRegistry: cleanup must be callable
|
TypeError: FinalizationRegistry: cleanup must be callable
|
||||||
at new FinalizationRegistry (<anonymous>)
|
at new FinalizationRegistry (<anonymous>)
|
||||||
at *%(basename)s:7:10
|
at *%(basename)s:*:10
|
||||||
|
@ -2,6 +2,4 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
// Flags: --harmony-weak-refs
|
|
||||||
|
|
||||||
let fg = new FinalizationRegistry({});
|
let fg = new FinalizationRegistry({});
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
*%(basename)s:7: TypeError: FinalizationRegistry: cleanup must be callable
|
*%(basename)s:*: TypeError: FinalizationRegistry: cleanup must be callable
|
||||||
let fg = new FinalizationRegistry({});
|
let fg = new FinalizationRegistry({});
|
||||||
^
|
^
|
||||||
TypeError: FinalizationRegistry: cleanup must be callable
|
TypeError: FinalizationRegistry: cleanup must be callable
|
||||||
at new FinalizationRegistry (<anonymous>)
|
at new FinalizationRegistry (<anonymous>)
|
||||||
at *%(basename)s:7:10
|
at *%(basename)s:*:10
|
||||||
|
@ -2,7 +2,5 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
// Flags: --harmony-weak-refs
|
|
||||||
|
|
||||||
let fg = new FinalizationRegistry(() => {});
|
let fg = new FinalizationRegistry(() => {});
|
||||||
fg.register(1);
|
fg.register(1);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
*%(basename)s:8: TypeError: FinalizationRegistry.prototype.register: target must be an object
|
*%(basename)s:*: TypeError: FinalizationRegistry.prototype.register: target must be an object
|
||||||
fg.register(1);
|
fg.register(1);
|
||||||
^
|
^
|
||||||
TypeError: FinalizationRegistry.prototype.register: target must be an object
|
TypeError: FinalizationRegistry.prototype.register: target must be an object
|
||||||
at FinalizationRegistry.register (<anonymous>)
|
at FinalizationRegistry.register (<anonymous>)
|
||||||
at *%(basename)s:8:4
|
at *%(basename)s:*:4
|
||||||
|
@ -2,8 +2,6 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
// Flags: --harmony-weak-refs
|
|
||||||
|
|
||||||
let fg = new FinalizationRegistry(() => {});
|
let fg = new FinalizationRegistry(() => {});
|
||||||
let o = {};
|
let o = {};
|
||||||
fg.register(o, o);
|
fg.register(o, o);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
*%(basename)s:9: TypeError: FinalizationRegistry.prototype.register: target and holdings must not be same
|
*%(basename)s:*: TypeError: FinalizationRegistry.prototype.register: target and holdings must not be same
|
||||||
fg.register(o, o);
|
fg.register(o, o);
|
||||||
^
|
^
|
||||||
TypeError: FinalizationRegistry.prototype.register: target and holdings must not be same
|
TypeError: FinalizationRegistry.prototype.register: target and holdings must not be same
|
||||||
at FinalizationRegistry.register (<anonymous>)
|
at FinalizationRegistry.register (<anonymous>)
|
||||||
at *%(basename)s:9:4
|
at *%(basename)s:*:4
|
||||||
|
@ -2,7 +2,5 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
// Flags: --harmony-weak-refs
|
|
||||||
|
|
||||||
let fg = new FinalizationRegistry(() => {});
|
let fg = new FinalizationRegistry(() => {});
|
||||||
fg.unregister(1);
|
fg.unregister(1);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
*%(basename)s:8: TypeError: unregisterToken ('1') must be an object
|
*%(basename)s:*: TypeError: unregisterToken ('1') must be an object
|
||||||
fg.unregister(1);
|
fg.unregister(1);
|
||||||
^
|
^
|
||||||
TypeError: unregisterToken ('1') must be an object
|
TypeError: unregisterToken ('1') must be an object
|
||||||
at FinalizationRegistry.unregister (<anonymous>)
|
at FinalizationRegistry.unregister (<anonymous>)
|
||||||
at *%(basename)s:8:4
|
at *%(basename)s:*:4
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
// Flags: --harmony-weak-refs --expose-gc --noincremental-marking
|
// Flags: --expose-gc --noincremental-marking
|
||||||
// Flags: --no-stress-opt
|
// Flags: --no-stress-opt
|
||||||
|
|
||||||
// Since cleanup tasks are top-level tasks, errors thrown from them don't stop
|
// Since cleanup tasks are top-level tasks, errors thrown from them don't stop
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
//
|
//
|
||||||
// Flags: --allow-natives-syntax --harmony-weak-refs --expose-gc
|
// Flags: --allow-natives-syntax --expose-gc
|
||||||
|
|
||||||
// Helper to convert setTimeout into an awaitable promise.
|
// Helper to convert setTimeout into an awaitable promise.
|
||||||
function asyncTimeout(timeout) {
|
function asyncTimeout(timeout) {
|
||||||
|
@ -2,8 +2,6 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
// Flags: --harmony-weak-refs
|
|
||||||
|
|
||||||
(function TestConstructFinalizationRegistry() {
|
(function TestConstructFinalizationRegistry() {
|
||||||
let fg = new FinalizationRegistry(() => {});
|
let fg = new FinalizationRegistry(() => {});
|
||||||
assertEquals(fg.toString(), "[object FinalizationRegistry]");
|
assertEquals(fg.toString(), "[object FinalizationRegistry]");
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
// Flags: --harmony-weak-refs --expose-gc --noincremental-marking
|
// Flags: --expose-gc --noincremental-marking
|
||||||
|
|
||||||
let r = Realm.create();
|
let r = Realm.create();
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
// Flags: --harmony-weak-refs --expose-gc --noincremental-marking --allow-natives-syntax
|
// Flags: --expose-gc --noincremental-marking --allow-natives-syntax
|
||||||
|
|
||||||
// This test asserts that the cleanup function call, scheduled by GC, is a
|
// This test asserts that the cleanup function call, scheduled by GC, is a
|
||||||
// microtask and not a normal task.
|
// microtask and not a normal task.
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
// Flags: --harmony-weak-refs --expose-gc --noincremental-marking
|
// Flags: --expose-gc --noincremental-marking
|
||||||
|
|
||||||
let cleanedUp = false;
|
let cleanedUp = false;
|
||||||
let r = Realm.create();
|
let r = Realm.create();
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
// Flags: --harmony-weak-refs --expose-gc --noincremental-marking
|
// Flags: --expose-gc --noincremental-marking
|
||||||
|
|
||||||
let r = Realm.create();
|
let r = Realm.create();
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
// Flags: --harmony-weak-refs --expose-gc --noincremental-marking
|
// Flags: --expose-gc --noincremental-marking
|
||||||
|
|
||||||
let cleanup_called = 0;
|
let cleanup_called = 0;
|
||||||
let holdings_list = [];
|
let holdings_list = [];
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
// Flags: --harmony-weak-refs
|
// Flags: --harmony-weak-refs
|
||||||
|
|
||||||
// FinalizationRegistry#cleanupSome is normative optional and has its own
|
// FinalizationRegistry#cleanupSome is normative optional and has its own
|
||||||
// flag. Test that it's not present with only --harmony-weak-refs.
|
// flag. Test that it's not present.
|
||||||
|
|
||||||
assertEquals(undefined, Object.getOwnPropertyDescriptor(
|
assertEquals(undefined, Object.getOwnPropertyDescriptor(
|
||||||
FinalizationRegistry.prototype, "cleanupSome"));
|
FinalizationRegistry.prototype, "cleanupSome"));
|
||||||
|
@ -2,8 +2,6 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
// Flags: --harmony-weak-refs
|
|
||||||
|
|
||||||
// A newly created WeakRef is kept alive until the end of the next microtask
|
// A newly created WeakRef is kept alive until the end of the next microtask
|
||||||
// checkpoint. V8 asserts that the kept objects list is cleared at the end of
|
// checkpoint. V8 asserts that the kept objects list is cleared at the end of
|
||||||
// microtask checkpoints when the microtask policy is auto. Test that d8, which
|
// microtask checkpoints when the microtask policy is auto. Test that d8, which
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
// Flags: --harmony-weak-refs --expose-gc --noincremental-marking
|
// Flags: --expose-gc --noincremental-marking
|
||||||
|
|
||||||
let cleanup_called = false;
|
let cleanup_called = false;
|
||||||
let cleanup = function(holdings) {
|
let cleanup = function(holdings) {
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
// Flags: --harmony-weak-refs --expose-gc --noincremental-marking
|
// Flags: --expose-gc --noincremental-marking
|
||||||
|
|
||||||
let cleanup_called = false;
|
let cleanup_called = false;
|
||||||
function cleanup(holdings) {
|
function cleanup(holdings) {
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
// Flags: --harmony-weak-refs --expose-gc --noincremental-marking
|
// Flags: --expose-gc --noincremental-marking
|
||||||
|
|
||||||
let cleanup_called = false;
|
let cleanup_called = false;
|
||||||
let holdings_list = [];
|
let holdings_list = [];
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
// Flags: --harmony-weak-refs --expose-gc --noincremental-marking
|
// Flags: --expose-gc --noincremental-marking
|
||||||
// Flags: --no-stress-flush-bytecode
|
// Flags: --no-stress-flush-bytecode
|
||||||
|
|
||||||
let cleanup0_call_count = 0;
|
let cleanup0_call_count = 0;
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
// Flags: --harmony-weak-refs --expose-gc --noincremental-marking
|
// Flags: --expose-gc --noincremental-marking
|
||||||
|
|
||||||
let cleanup_call_count = 0;
|
let cleanup_call_count = 0;
|
||||||
let cleanup_holdings_count = 0;
|
let cleanup_holdings_count = 0;
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
// Flags: --harmony-weak-refs --expose-gc --noincremental-marking
|
// Flags: --expose-gc --noincremental-marking
|
||||||
|
|
||||||
let call_count = 0;
|
let call_count = 0;
|
||||||
let reentrant_gc = function(holdings) {
|
let reentrant_gc = function(holdings) {
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
// Flags: --harmony-weak-refs --expose-gc --noincremental-marking
|
// Flags: --expose-gc --noincremental-marking
|
||||||
|
|
||||||
let o1 = {};
|
let o1 = {};
|
||||||
let o2 = {};
|
let o2 = {};
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
// Flags: --harmony-weak-refs --expose-gc --noincremental-marking
|
// Flags: --expose-gc --noincremental-marking
|
||||||
|
|
||||||
let cleanup_call_count = 0;
|
let cleanup_call_count = 0;
|
||||||
let cleanup_holdings_count = 0;
|
let cleanup_holdings_count = 0;
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
// Flags: --harmony-weak-refs --expose-gc --noincremental-marking
|
// Flags: --expose-gc --noincremental-marking
|
||||||
|
|
||||||
let cleanup_call_count = 0;
|
let cleanup_call_count = 0;
|
||||||
let cleanup_holdings_count = 0;
|
let cleanup_holdings_count = 0;
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
// Flags: --harmony-weak-refs --expose-gc --noincremental-marking --noincremental-marking
|
// Flags: --expose-gc --noincremental-marking --noincremental-marking
|
||||||
|
|
||||||
let cleanup_call_count = 0;
|
let cleanup_call_count = 0;
|
||||||
let cleanup = function(holdings) {
|
let cleanup = function(holdings) {
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
// Flags: --harmony-weak-refs --expose-gc --noincremental-marking
|
// Flags: --expose-gc --noincremental-marking
|
||||||
|
|
||||||
let cleanup_call_count = 0;
|
let cleanup_call_count = 0;
|
||||||
let cleanup = function(holdings) {
|
let cleanup = function(holdings) {
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
// Flags: --harmony-weak-refs --expose-gc --noincremental-marking
|
// Flags: --expose-gc --noincremental-marking
|
||||||
|
|
||||||
let cleanup_call_count = 0;
|
let cleanup_call_count = 0;
|
||||||
let cleanup_holdings_count = 0;
|
let cleanup_holdings_count = 0;
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
// Flags: --harmony-weak-refs --expose-gc --noincremental-marking
|
// Flags: --expose-gc --noincremental-marking
|
||||||
|
|
||||||
let cleanup_call_count = 0;
|
let cleanup_call_count = 0;
|
||||||
let cleanup_holdings_count = 0;
|
let cleanup_holdings_count = 0;
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
// Flags: --harmony-weak-refs --expose-gc --noincremental-marking
|
// Flags: --expose-gc --noincremental-marking
|
||||||
|
|
||||||
let cleanup_call_count = 0;
|
let cleanup_call_count = 0;
|
||||||
let cleanup_holdings_count = 0;
|
let cleanup_holdings_count = 0;
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
// Flags: --harmony-weak-refs --expose-gc --noincremental-marking
|
// Flags: --expose-gc --noincremental-marking
|
||||||
|
|
||||||
let cleanup_call_count = 0;
|
let cleanup_call_count = 0;
|
||||||
let cleanup_holdings_count = 0;
|
let cleanup_holdings_count = 0;
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
// Flags: --harmony-weak-refs --expose-gc --noincremental-marking
|
// Flags: --expose-gc --noincremental-marking
|
||||||
|
|
||||||
let cleanup_call_count = 0;
|
let cleanup_call_count = 0;
|
||||||
let cleanup = function(holdings) {
|
let cleanup = function(holdings) {
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
// Flags: --harmony-weak-refs --expose-gc --noincremental-marking
|
// Flags: --expose-gc --noincremental-marking
|
||||||
|
|
||||||
let cleanup_called = false;
|
let cleanup_called = false;
|
||||||
let cleanup = function(holdings_arg) {
|
let cleanup = function(holdings_arg) {
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
// Flags: --harmony-weak-refs --expose-gc --noincremental-marking
|
// Flags: --expose-gc --noincremental-marking
|
||||||
|
|
||||||
let wr;
|
let wr;
|
||||||
(function() {
|
(function() {
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
// Flags: --harmony-weak-refs --expose-gc --noincremental-marking
|
// Flags: --expose-gc --noincremental-marking
|
||||||
|
|
||||||
let wr;
|
let wr;
|
||||||
let wr_control; // control WeakRef for testing what happens without deref
|
let wr_control; // control WeakRef for testing what happens without deref
|
||||||
|
@ -41,7 +41,6 @@ class WithFinalizationRegistryMixin : public TMixin {
|
|||||||
static void SetUpTestCase() {
|
static void SetUpTestCase() {
|
||||||
CHECK_NULL(save_flags_);
|
CHECK_NULL(save_flags_);
|
||||||
save_flags_ = new SaveFlags();
|
save_flags_ = new SaveFlags();
|
||||||
FLAG_harmony_weak_refs = true;
|
|
||||||
FLAG_expose_gc = true;
|
FLAG_expose_gc = true;
|
||||||
FLAG_allow_natives_syntax = true;
|
FLAG_allow_natives_syntax = true;
|
||||||
TMixin::SetUpTestCase();
|
TMixin::SetUpTestCase();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user