Files
sdk/tests/web/web.status
T
Stephen Adams 048c7b036b [js_runtime] Polyfill WeakReference and Finalizer for ancient browsers
Dart does not officially support browsers before the introduction of WeakRef and FinalizationRegistry but there are users of Dart that have a few customers still using these browsers.

As a result, both ACX and Flutter have ad-hoc polyfills for these classes. Adding the polyfill in js_runtime will allow the other polyfills to be removed. The polyfill is as small as possible (omitting checks, avoiding extra Dart classes, detecting as late as possible), so it should be a net code size improvement of a few bytes for ACX and Flutter use cases.

The polyfill leaks memory by retaining the weak reference target and never calls the finalization callbacks. This is permitted behaviour.

Change-Id: I4f0d08ee6322dab26728d95ca8c24a7fd59b3314
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/333304
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2023-11-03 22:15:38 +00:00

72 lines
2.9 KiB
Plaintext

# Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.
[ $compiler != dart2js ]
dummy_compiler_test: SkipByDesign # Issue 30773. Test should be migrated as a unit test of dart2js, is only intended to test self-hosting.
internal/deferred_url_test: SkipByDesign # test specific for the dart2js runtime
weak_reference_polyfill_test: SkipByDesign # test specific for the dart2js runtime
[ $compiler == dart2wasm ]
(?!wasm)*: SkipByDesign
[ $compiler != dart2wasm ]
wasm/*: SkipByDesign
[ $compiler == ddc ]
async_stacktrace_test: Skip # Issue 53555
[ $runtime == jsshell ]
deferred/load_in_correct_order_test: SkipByDesign # jsshell preamble does not support this test.
[ $browser ]
native/*: Skip
[ $compiler == dart2js && $mode == debug ]
operator_test: Skip
string_interpolation_test: Skip
[ $compiler == dart2js && $runtime == chrome && $system == windows ]
class_test: Slow, Pass # Issue 25940
closure_capture3_test: Slow, Pass # Issue 25940
closure_capture5_test: Slow, Pass # Issue 25940
conditional_test: Slow, Pass # Issue 25940
consistent_codeUnitAt_error_test: Slow, Pass # Issue 25940
constant_javascript_semantics2_test: Slow, Pass # Issue 25940
deferred_split_test: Slow, Pass # Issue 25940
[ $compiler == dart2js && $runtime == chrome && $csp ]
deferred/load_in_correct_order_test: SkipByDesign # Purposely uses `eval`
[ $compiler == dart2js && $runtime == d8 ]
internal/object_members_test: SkipByDesign # Browser test
[ $compiler == dart2js && $runtime == ff && $system == windows ]
consistent_index_error_string_test: Slow, Pass # Issue 25940
[ $compiler == dart2js && $csp ]
deferred_custom_loader_test: SkipByDesign # Issue 25683
deferred_fail_and_retry_test: SkipByDesign # Uses eval to simulate failed loading.
internal/object_members_test: SkipByDesign # Uses eval for interop
regress/issue/49129_test: SkipByDesign # Uses eval for interop
[ $compiler == dart2js && !$host_checked ]
deferred/many_parts/many_parts_test: Slow, Pass # Large stress test by design
dummy_compiler_test: Slow, Pass # Issue 32439. self-hosting doesn't work with CFE yet.
[ $compiler == dart2js && $minified ]
code_motion_exception_test: Skip # Requires unminified operator names.
[ $compiler == dart2js && ($runtime == ff || $runtime == jsshell || $runtime == safari) ]
code_motion_exception_test: Skip # Required V8 specific format of JavaScript errors.
[ $compiler == dart2js && ($browser || $host_checked) ]
dummy_compiler_test: SkipByDesign # Issue 30773. Test should be migrated as a unit test of dart2js, is only intended to test self-hosting.
[ $compiler == dartk && $runtime == vm ]
new_from_env_test: SkipByDesign # dart2js only test
unconditional_dartio_import_test: SkipByDesign # dart2js only test
[ $compiler == dartkp || $runtime == vm ]
weak_reference_test: SkipByDesign # Web only test