# Copyright (c) 2017, 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 == dartdevc ]
html/custom/attribute_changed_callback_test: Skip # Issue 31577
html/custom/constructor_calls_created_synchronously_test: Skip # Issue 31577
html/custom/created_callback_test: Skip # Issue 31577
html/custom/document_register_basic_test: Skip # Issue 31577
html/custom/document_register_template_test: Skip # Issue 31577
html/custom/document_register_type_extensions_test/construction: Skip # Issue 31577
html/custom/document_register_type_extensions_test/constructors: Skip # Issue 31577
html/custom/document_register_type_extensions_test/createElement with type extension: Skip # Issue 31577
html/custom/document_register_type_extensions_test/functional: Skip # Issue 31577
html/custom/document_register_type_extensions_test/namespaces: Skip # Issue 31577
html/custom/document_register_type_extensions_test/parsing: Skip # Issue 31577
html/custom/document_register_type_extensions_test/registration: Skip # Issue 31577
html/custom/document_register_type_extensions_test/single-parameter createElement: Skip # Issue 31577
html/custom/element_upgrade_test: Skip # Issue 31577
html/custom/entered_left_view_test: Skip # Issue 31577
html/custom/js_custom_test: Crash # Issue 29922
html/custom/mirrors_2_test: Skip # Issue 31577
html/custom/mirrors_test: Crash # Issue 29922
html/custom/regress_194523002_test: Crash # Issue 29922
html/deferred_multi_app_htmltest: Skip # Issue 29919
html/fontface_loaded_test: RuntimeError
html/gamepad_test: RuntimeError # Issue 31029
html/no_linked_scripts_htmltest: Skip # Issue 29919
html/scripts_htmltest: Skip # Issue 29919
html/transferables_test: CompileTimeError # Issue 30975
html/two_scripts_htmltest: Skip # Issue 29919
isolate/*: SkipByDesign # No support for dart:isolate in dart4web (http://dartbug.com/30538)
js/null_test: RuntimeError # Issue 30652
math/double_pow_test: RuntimeError # Issue 29922
math/low_test: RuntimeError # Issue 29922
math/random_big_test: RuntimeError # Issue 29922
mirrors/*: SkipByDesign # Mirrors not supported on web in Dart 2.0.
profiler/metrics_num_test: Skip # Because of an int / double type test.

[ $compiler == dartdevk ]
async/zone_run_unary_test: CompileTimeError # Issue 31537

[ $compiler == dartdevc && $runtime == chrome ]
html/element_animate_test/timing_dict: RuntimeError # Issue 29922
html/element_types_keygen_test: RuntimeError # Issue 29055
html/js_dispatch_property_test: Skip # Timeout Issue 31030
html/touchevent_test: RuntimeError # Issue 29922

[ $compiler == dartdevc && $runtime == drt ]
html/svg_test: RuntimeError # Issue 29922
math/math2_test: RuntimeError # Issue 29922
math/math_test: RuntimeError # Issue 29922

[ $compiler == dartdevc && $runtime != none ]
async/async_await_sync_completer_test: RuntimeError # Issue 29922
async/async_await_zones_test: RuntimeError # Issue 29922
async/future_or_bad_type_test/implements: RuntimeError # Issue 29922
async/future_or_bad_type_test/none: RuntimeError # Issue 29922
async/future_test: RuntimeError # Issue 29922
async/futures_test: RuntimeError # Issue 29922
async/slow_consumer_test: Pass, Timeout # Issue 29922
async/stream_controller_async_test: RuntimeError
async/stream_distinct_test: RuntimeError # Issue 29922
async/stream_join_test: RuntimeError
async/stream_subscription_as_future_test: RuntimeError
async/timer_not_available_test: RuntimeError
convert/base64_test/01: Fail, OK # Uses bit-wise operations to detect invalid values. Some large invalid values accepted by DDC/dart2js.
convert/chunked_conversion_utf88_test: Slow, Pass
convert/json_utf8_chunk_test: Slow, Pass
convert/streamed_conversion_json_utf8_encode_test: Pass, Timeout # Issue 29922
convert/streamed_conversion_utf8_decode_test: Slow, Pass
convert/streamed_conversion_utf8_encode_test: Pass, Timeout # Issue 29922
convert/utf85_test: Slow, Pass
html/async_spawnuri_test: RuntimeError # Issue 29922
html/async_test: RuntimeError # Issue 29922
html/client_rect_test: RuntimeError # Issue 29922, seems to be a reified type problem with DOMClientRect
html/custom/created_callback_test: RuntimeError
html/custom_element_method_clash_test: Skip # Issue 29922
html/custom_element_name_clash_test: Skip # Issue 29922
html/custom_elements_23127_test: Skip # Issue 29922
html/custom_elements_test: Skip # Issue 29922
html/element_classes_svg_test: RuntimeError # Issue 29922
html/element_classes_test: RuntimeError # Issue 29922
html/indexeddb_1_test/functional: RuntimeError # Issue 29922, strong mode cast failure
html/indexeddb_2_test: RuntimeError, Skip # Times out. Issue 29922, strong mode cast failure
html/interactive_media_test: Skip # requests interactive permissions (camera, geolocation)
html/isolates_test: RuntimeError # Issue 29922
html/js_typed_interop_default_arg_test/default_value: MissingCompileTimeError # Issue 29922
html/js_typed_interop_side_cast_exp_test/01: RuntimeError # Requires --experimental-trust-js-interop-type-annotations flag.
html/js_typed_interop_type3_test/*: RuntimeError # Issue 30947
html/js_typed_interop_type_test: RuntimeError # Issue 30947
html/js_util_test: RuntimeError # Issue 29922
html/media_stream_test: RuntimeError # Issue 29922
html/mediasource_test: RuntimeError # Issue 29922
html/transition_event_test: Pass, RuntimeError, Timeout # Issue 29922, this test seems flaky
html/webgl_extensions_test: RuntimeError # Issue 31017
html/worker_api_test: RuntimeError # Issue 29922
html/xhr_cross_origin_test/functional: RuntimeError # Issue 29922
html/xhr_test/xhr: RuntimeError # Issue 29922, strong mode cast failure
math/random_big_test: RuntimeError # Issue 29922
mirrors/private_types_test: RuntimeError # Issue 29922
mirrors/reflect_runtime_type_test: RuntimeError # Issue 29922
mirrors/reflect_uninstantiated_class_test: RuntimeError # Issue 29922
mirrors/reflected_type_function_type_test: RuntimeError # Issue 29922
mirrors/reflected_type_special_types_test: RuntimeError # Issue 29922
mirrors/reflected_type_typedefs_test: RuntimeError # Issue 29922
mirrors/reflected_type_typevars_test: RuntimeError # Issue 29922
mirrors/regress_14304_test: RuntimeError # Issue 29922
typed_data/int32x4_arithmetic_test/int64: RuntimeError # Issue 29922
typed_data/int64_list_load_store_test: RuntimeError # Issue 29922
typed_data/typed_data_hierarchy_int64_test: RuntimeError # Issue 29922

[ $compiler == dartdevc && $runtime != none && $system == macos ]
html/client_rect_test: Pass, RuntimeError # Issue 31019
html/css_test: Pass, RuntimeError # Issue 31019

[ $compiler == dartdevc && $system == linux ]
html/interactive_geolocation_test: Skip # Requires allowing geo location.
html/interactive_media_test: RuntimeError

[ $compiler == dartdevc && $system == windows ]
html/xhr_test/xhr: Skip # Times out. Issue 21527

