Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit b6756c5

Browse files
authored
Revert "[web] use callConstructor for FinalizationRegistry due to bug… (#40841)
… in dart2js (#40798)" This reverts commit d5a0b29. The original PR resulted in a silent failure.
1 parent c3c951c commit b6756c5

File tree

3 files changed

+6
-21
lines changed

3 files changed

+6
-21
lines changed

lib/web_ui/lib/src/engine/canvaskit/canvaskit_api.dart

+3-6
Original file line numberDiff line numberDiff line change
@@ -3569,12 +3569,9 @@ extension JsConstructorExtension on JsConstructor {
35693569
@JS('window.FinalizationRegistry')
35703570
@staticInterop
35713571
class SkObjectFinalizationRegistry {
3572-
factory SkObjectFinalizationRegistry(JSFunction cleanup) {
3573-
return js_util.callConstructor(
3574-
_finalizationRegistryConstructor!.toObjectShallow,
3575-
<Object>[cleanup],
3576-
);
3577-
}
3572+
// TODO(hterkelsen): Add a type for the `cleanup` function when
3573+
// native constructors support type parameters.
3574+
external factory SkObjectFinalizationRegistry(JSFunction cleanup);
35783575
}
35793576

35803577
extension SkObjectFinalizationRegistryExtension on SkObjectFinalizationRegistry {

lib/web_ui/lib/src/engine/canvaskit/native_memory.dart

+3-5
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,9 @@ import 'canvaskit_api.dart';
1111

1212
/// Collects native objects that weren't explicitly disposed of using
1313
/// [UniqueRef.dispose] or [CountedRef.unref].
14-
SkObjectFinalizationRegistry _finalizationRegistry = SkObjectFinalizationRegistry(
15-
(UniqueRef<Object> uniq) {
16-
uniq.collect();
17-
}.toJS
18-
);
14+
SkObjectFinalizationRegistry _finalizationRegistry = SkObjectFinalizationRegistry((UniqueRef<Object> uniq) {
15+
uniq.collect();
16+
}.toJS);
1917

2018
NativeMemoryFinalizationRegistry nativeMemoryFinalizationRegistry = NativeMemoryFinalizationRegistry();
2119

lib/web_ui/test/canvaskit/canvaskit_api_test.dart

-10
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
// Use of this source code is governed by a BSD-style license that can be
33
// found in the LICENSE file.
44

5-
import 'dart:js_interop';
65
import 'dart:math';
76
import 'dart:typed_data';
87

@@ -1894,15 +1893,6 @@ void _paragraphTests() {
18941893
'http://localhost:1234/foo/canvaskit.wasm',
18951894
);
18961895
});
1897-
1898-
test('SkObjectFinalizationRegistry', () {
1899-
// There's no reliable way to test the actual functionality of
1900-
// FinalizationRegistry because it depends on GC, which cannot be controlled,
1901-
// So the test simply tests that a FinalizationRegistry can be constructed
1902-
// and its `register` method can be called.
1903-
final SkObjectFinalizationRegistry registry = SkObjectFinalizationRegistry((String arg) {}.toJS);
1904-
registry.register('foo', 'bar');
1905-
});
19061896
}
19071897

19081898

0 commit comments

Comments
 (0)