# Copyright (c) 2012, 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 ]
sync_generator2_test/07: MissingCompileTimeError # Issue 22324
sync_generator2_test/08: MissingCompileTimeError # Issue 22324
sync_generator2_test/10: MissingCompileTimeError # Issue 22324

async_star_test/02: RuntimeError # 22853
async_star_test/05: RuntimeError, Timeout

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

[ $compiler == dart2js || $compiler == dart2dart ]
regress_22700_test: CompileTimeError # Issue 22700
reify_typevar_static_test/01: CompileTimeError # Issue 22700
symbol_literal_test/*: Fail # Issue 21825
constructor_duplicate_final_test/01: Fail # Issue 13363
constructor_duplicate_final_test/02: Fail # Issue 13363
override_inheritance_mixed_test/08: Fail # Issue 18124
override_inheritance_mixed_test/09: Fail # Issue 18124
bad_constructor_test/05: CompileTimeError # Issue 13669
full_stacktrace1_test: Pass, RuntimeError # Issue 12698
full_stacktrace2_test: Pass, RuntimeError # Issue 12698
full_stacktrace3_test: Pass, RuntimeError # Issue 12698
stacktrace_test: Pass, RuntimeError # # Issue 12698
stacktrace_rethrow_nonerror_test: Pass, RuntimeError # Issue 12698
stacktrace_rethrow_error_test: Pass, RuntimeError # Issue 12698
instantiate_type_variable_test/01: CompileTimeError # Issue 13631
library_ambiguous_test/00: CompileTimeError # Issue 13632
library_ambiguous_test/01: CompileTimeError # Issue 13632
library_ambiguous_test/02: CompileTimeError # Issue 13632
library_ambiguous_test/03: CompileTimeError # Issue 13632
type_variable_conflict_test/01: Fail # Issue 13702
type_variable_conflict_test/02: Fail # Issue 13702
type_variable_conflict_test/03: Fail # Issue 13702
type_variable_conflict_test/04: Fail # Issue 13702
type_variable_conflict_test/05: Fail # Issue 13702
type_variable_conflict_test/06: Fail # Issue 13702
mixin_forwarding_constructor4_test/01: MissingCompileTimeError # Issue 15101
mixin_forwarding_constructor4_test/02: MissingCompileTimeError # Issue 15101
mixin_forwarding_constructor4_test/03: MissingCompileTimeError # Issue 15101
mixin_super_constructor_named_test/01: Fail # Issue 15101
mixin_super_constructor_positionals_test/01: Fail # Issue 15101

ref_before_declaration_test/00: MissingCompileTimeError
ref_before_declaration_test/01: MissingCompileTimeError
ref_before_declaration_test/02: MissingCompileTimeError
ref_before_declaration_test/03: MissingCompileTimeError
ref_before_declaration_test/04: MissingCompileTimeError
ref_before_declaration_test/05: MissingCompileTimeError
ref_before_declaration_test/06: MissingCompileTimeError


# VM specific tests that should not be run by dart2js.
vm/*: Skip # Issue 12699

[ $compiler == dart2js && $checked ]
type_variable_bounds_test/02: Fail # Issue 12702
type_variable_bounds2_test/01: Fail # Issue 12702
type_variable_bounds2_test/04: Fail # Issue 12702
type_variable_bounds2_test/06: Pass # Issue 12702 (pass for the wrong reasons).
type_variable_bounds3_test/00: Fail # Issue 12702
closure_type_test: Fail # Issue 12745
malbounded_redirecting_factory_test/02: Fail # Issue 12825
malbounded_redirecting_factory_test/03: Fail # Issue 12825
malbounded_redirecting_factory2_test/02: Fail # Issue 12825
malbounded_redirecting_factory2_test/03: Fail # Issue 12825
malbounded_instantiation_test/01: Fail # Issue 12702
malbounded_type_cast_test: Fail # Issue 14121
malbounded_type_cast2_test: Fail # Issue 14121
malbounded_type_test_test/03: Fail # Issue 14121
malbounded_type_test_test/04: Fail # Issue 14121
malbounded_type_test2_test: Fail # Issue 14121
default_factory2_test/01: Fail # Issue 14121

[ $compiler == dart2js && $unchecked ]
type_checks_in_factory_method_test: RuntimeError # Issue 12746
assertion_test: RuntimeError # Issue 12748
generic_test: RuntimeError, OK
map_literal4_test: RuntimeError, OK # Checked mode required.
named_parameters_type_test/01: MissingRuntimeError, OK
named_parameters_type_test/02: MissingRuntimeError, OK
named_parameters_type_test/03: MissingRuntimeError, OK
positional_parameters_type_test/01: MissingRuntimeError, OK
positional_parameters_type_test/02: MissingRuntimeError, OK
issue13474_test: RuntimeError, OK
generic_field_mixin3_test: Crash # Issue 18651

[ $compiler == dart2js && $minified ]
cyclic_type_test/0*: Fail # Issue 12605
cyclic_type2_test: Fail # Issue 12605
f_bounded_quantification4_test: Fail # Issue 12605
f_bounded_quantification5_test: Fail # Issue 12605
mixin_generic_test: Fail # Issue 12605
mixin_mixin2_test: Fail # Issue 12605
mixin_mixin3_test: Fail # Issue 12605
mixin_mixin4_test: Fail # Issue 12605
mixin_mixin5_test: Fail # Issue 12605
mixin_mixin6_test: Fail # Issue 12605
mixin_mixin_bound_test: RuntimeError # Issue 12605
mixin_mixin_bound2_test: RuntimeError # Issue 12605

[ $compiler == dart2js ]
malformed_test/none: Fail # Expect failure in lib/_internal/compiler/js_lib/preambles/d8.js
generic_field_mixin4_test: Crash # Issue 18651
generic_field_mixin5_test: Crash # Issue 18651

type_variable_conflict2_test/01: RuntimeError # Issue 19725

branch_canonicalization_test: RuntimeError # Issue 638.
identical_closure2_test: RuntimeError # Issue 1533, Issue 12596
integer_division_by_zero_test: RuntimeError # Issue 8301
built_in_identifier_prefix_test: CompileTimeError # Issue 6972
number_identity2_test: RuntimeError # Issue 12596
new_expression_type_args_test/00: CompileTimeError # Issue 5519
new_expression_type_args_test/01: CompileTimeError # Issue 5519
double_int_to_string_test: RuntimeError # Issue 1533
mint_arithmetic_test: RuntimeError # Issue 1533
left_shift_test: RuntimeError # Issue 1533
factory_redirection_test/01: CompileTimeError # Issue 12752
bad_override_test/01: CompileTimeError # Issue 11496
bad_override_test/02: CompileTimeError # Issue 11496
constructor_named_arguments_test/01: CompileTimeError # Issue 5519
not_enough_positional_arguments_test/01: CompileTimeError # Issue 12838
not_enough_positional_arguments_test/02: CompileTimeError # Issue 12838
not_enough_positional_arguments_test/05: CompileTimeError # Issue 12838
metadata_test: CompileTimeError # Issue 5841
infinity_test: RuntimeError # Issue 4984
mixin_mixin2_test: RuntimeError # Issue 13109.
mixin_mixin3_test: RuntimeError # Issue 13109.
mixin_mixin7_test: RuntimeError # Issue 13109.
mixin_regress_13688_test: RuntimeError # Issue 13109.
modulo_test: RuntimeError # Issue 15246
truncdiv_test: RuntimeError # Issue 15246
invocation_mirror2_test: RuntimeError # Issue 6490 (wrong retval).
generic_closure_test: RuntimeError # Issue 12605
const_switch_test/02: RuntimeError # Issue 17960
const_switch_test/04: RuntimeError # Issue 17960

enum_const_test/02: RuntimeError # Issue 21817

# Compilation errors.
method_override5_test: RuntimeError # Issue 12809
external_test/10: CompileTimeError # Issue 12887
external_test/13: CompileTimeError # Issue 12887
external_test/20: CompileTimeError # Issue 12887
list_literal4_test: RuntimeError # Issue 12890
built_in_identifier_test/01: CompileTimeError # Issue 13022

scope_variable_test/01: MissingCompileTimeError # Issue 13016

numbers_test: RuntimeError, OK # Issue 1533
canonical_const2_test: RuntimeError, OK # Issue 1533
bit_operations_test: RuntimeError, OK # Issue 1533
expect_test: RuntimeError, OK # Issue 13080

[ $compiler == dart2js && $runtime == none ]
*: Fail, Pass # TODO(ahe): Triage these tests.

[ $compiler == dart2js && $runtime == chrome && $system == macos ]
await_future_test: Pass, Timeout # Issue 22695.

[ $compiler == dart2js && ($runtime == jsshell || $runtime == safari || $runtime == safarimobilesim)]
round_test: Fail, OK # Common JavaScript engine Math.round bug.

[ $compiler == dart2js && $runtime == ff ]
round_test: Pass, Fail, OK # Fixed in ff 35. Common JavaScript engine Math.round bug.

[ $compiler == dart2js && ($runtime == safari || $runtime == safarimobilesim)]
# Safari codegen bug, fixed on some versions of Safari 7.1 (Version 7.1 (9537.85.10.17.1))
call_through_getter_test: Fail, OK

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

[ $compiler == dart2dart && $builder_tag == new_backend ]
async_await_syntax_test/a03a: CompileTimeError # Issue 21404
async_await_syntax_test/a03b: CompileTimeError # Issue 21404
async_await_syntax_test/a11d: CompileTimeError # Issue 21404
async_await_syntax_test/b03a: CompileTimeError # Issue 21404
async_await_syntax_test/b11d: CompileTimeError # Issue 21404
async_await_syntax_test/c03a: CompileTimeError # Issue 21404
async_await_syntax_test/d03a: CompileTimeError # Issue 21404
regress_13494_test: Pass # Issue 22370, passes for the wrong reason

[ $compiler == dart2dart && $builder_tag == new_backend && $minified == true ]
# This test fails in minified, because the type-argument is
# renamed, but the symbol naming it it is not.
type_variable_conflict2_test/01: RuntimeError # Issue 16180

[ $compiler == dart2dart && $builder_tag == new_backend && $minified == false ]
# This test happens not to fail in minified, because the type-argument is
# renamed, but the unresolved reference to it is not.
type_variable_conflict2_test/04: Fail # Issue 19725

[ $compiler == dart2dart && $minified && $builder_tag != new_backend ]
type_variable_conflict2_test/01: RuntimeError # Issue 16180

[ $compiler == dart2dart ]
sync_generator2_test/07: MissingCompileTimeError # Issue 22324
sync_generator2_test/08: MissingCompileTimeError # Issue 22324
sync_generator2_test/10: MissingCompileTimeError # Issue 22324
await_for_cancel_test: RuntimeError # Issue 21404

regress_13494_test: Fail # Issue 22370

enum_duplicate_test/01: CompileTimeError # Issue 22169

built_in_identifier_prefix_test: Fail # Issue 6972
constructor_initializer_test/none: Fail # Issue 12633

# Mixins fail on the VM.
mixin_with_two_implicit_constructors_test: Fail # Issue 11889

# Calling unresolved class constructor:
call_nonexistent_constructor_test/01: Fail # Issue 13082
call_nonexistent_constructor_test/02: Fail # Issue 13082

bad_override_test/01: Fail # Issue 11496
bad_override_test/02: Fail # Issue 11496

constructor_named_arguments_test/01: Fail # Issue 5519
not_enough_positional_arguments_test/01: Fail # Issue 12839
not_enough_positional_arguments_test/02: Fail # Issue 12839
not_enough_positional_arguments_test/05: Fail # Issue 12839

metadata_test: Fail # Issue 12762
const_evaluation_test/01: Fail # Issue 12762
built_in_identifier_test/01: Fail # Issue 13022
method_override4_test: Fail # Issue 12810
method_override5_test: Fail # Issue 12810
scope_variable_test/01: Fail # Issue 13016
factory_redirection_test/01: Fail # Issue 12753

# DartVM problem.
constructor5_test: Fail
constructor6_test: Fail
closure_in_initializer_test: Fail

new_expression_type_args_test/00: Fail # Wrongly reports compile-time error.
new_expression_type_args_test/01: Fail # Wrongly reports compile-time error.

deferred*: skip # Issue 17523
cha_deopt1_test: skip # Issue 17523
cha_deopt2_test: skip # Issue 17523
cha_deopt3_test: skip # Issue 17523
issue_1751477_test: skip # Issue 17523

external_test/21: MissingCompileTimeError # Issue 12888
external_test/24: MissingCompileTimeError # Issue 12888

function_propagation_test: RuntimeError # Issue 21673
function_subtype_call0_test: RuntimeError # Issue 21673
function_subtype_call1_test: RuntimeError # Issue 21673
function_subtype_call2_test: RuntimeError # Issue 21673

[ $compiler == dart2dart && $minified ]
cyclic_type_test/0*: Fail # Issue 12605.
cyclic_type2_test: Fail # Issue 12605.
super_getter_setter_test: Fail # Issue 11065.
f_bounded_quantification4_test: Fail # Issue 12605.
f_bounded_quantification5_test: Fail # Issue 12605.
type_variable_typedef_test: Fail # Issue 11467

invocation_mirror_test: Fail, OK # Issue 12706 (hardcoded names).
super_call4_test: Fail, OK # hardcoded names.

[ $minified ]
stack_trace_test: Fail, OK # Stack trace not preserved in minified code.
regress_21795_test: RuntimeError # Issue 12605

[ $compiler == dart2js && $runtime == d8 && $system == windows ]
*deferred*: Skip # Issue 17458
cha_deopt*: Skip # Issue 17458
