# 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.
# Sections in this file should contain "$compiler == dart2js".

[ $compiler == dart2js ]
external_abstract_fields/external_fields_test: SkipByDesign # Non-JS-interop external members are not supported
mixin_method_override_test/G5: Skip # Issue 34354
number/int64_literal_runtime*_test: Skip # This is testing Dart 2.0 int64 semantics
vm/*: SkipByDesign # Tests for the VM.

[ $compiler != dart2js ]
closure/minify_closure_variable_collision_test: SkipByDesign # Regression test for dart2js

[ $builder_tag == dart2js_production && $compiler == dart2js ]
control_flow_collections/for_non_bool_condition_test: Crash # Issue 36442
regress/regress45428_test: SkipByDesign # No argument type checks in production mode, issue 45528

[ $compiler == dart2js && $runtime == chromeOnAndroid ]
override_field_test/02: Slow, Pass # TODO(kasperl): Please triage.

[ $compiler == dart2js && $runtime == d8 ]
import/conditional_string_test: SkipByDesign # No XHR in d8

[ $compiler == dart2js && $runtime == jsshell ]
await/for_test: Skip # Jsshell does not provide periodic timers, Issue 7728

[ $compiler == dart2js && $system == windows ]
canonicalize/hashing_memoize_array_test: Skip # Issue 37631
canonicalize/hashing_memoize_instance_test: Skip # Issue 37631
canonicalize/hashing_shallow_collision_array_test: Skip # Issue 37631
canonicalize/hashing_shallow_collision_instance_test: Skip # Issue 37631
