# 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 || $compiler == dart2dart ]
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
illegal_invocation_test/01: CompileTimeError # Issue 13630
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

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

external_test/10: Fail
external_test/20: Fail


# 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
double_to_string_as_exponential2_test: RuntimeError # Issue 12749
double_to_string_as_fixed2_test: RuntimeError # Issue 12749
double_to_string_as_precision2_test: RuntimeError # Issue 12749
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 16180
type_variable_conflict2_test/02: Crash # Issue 16180
type_variable_conflict2_test/06: Crash # Issue 16180
type_variable_conflict2_test/08: Crash # Issue 16180
type_variable_conflict2_test/10: Crash # Issue 16180

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

deferred_constant_list_test: RuntimeError # Issue 21293

# Compilation errors.
const_var_test: CompileTimeError # Issue 12793
map_literal3_test: CompileTimeError # Issue 12793
method_override5_test: RuntimeError # Issue 12809
external_test/13: 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 == ff || $runtime == jsshell || $runtime == safari || $runtime == safarimobilesim)]
round_test: Fail, OK # Common JavaScript engine Math.round bug.

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

[ $runtime == opera ]
null_access_error_test: Fail # Issue: 7413
string_interpolate_null_test: Fail # Issue: 7413
call_through_null_getter_test: Fail
closure3_test: Fail
execute_finally3_test: Fail
method_invocation_test: Fail
stack_overflow_test: Fail
stack_overflow_stacktrace_test: Fail
closure_call_wrong_argument_count_negative_test: Skip
label_test: Skip

[ $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 ]
type_variable_conflict2_test/02: MissingCompileTimeError # Issue 19725
type_variable_conflict2_test/06: MissingCompileTimeError # Issue 16180
type_variable_conflict2_test/08: MissingCompileTimeError # Issue 16180
type_variable_conflict2_test/10: MissingCompileTimeError # Issue 16180
regress_13494_test: Fail # Issue 13494
mixin_super_constructor_named_test: Fail # Issue 12631
mixin_super_constructor_positionals_test: Fail # Issue 12631

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

# Mixins fail on the VM.
mixin_forwarding_constructor2_test: Fail # Issue 13641

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
const_var_test: CompileTimeError # Issue 12794
map_literal3_test: Fail # Issue 12794
external_test/13: Fail # Issue 12888
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

# Minified mode failures.

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

[ $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.

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