# 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 ]
class_test: Fail
statements_test: Fail
typed_locals_test: Fail
no_such_method_test: Fail # Wrong Invocation.memberName.
constant_javascript_semantics4_test: Fail, OK
mirrors_used_closure_test: Fail # Issue 17939

[ $compiler == dart2js && $checked ]
variable_type_test/03: Fail, OK
variable_type_test/01: Fail, OK

[ $compiler == dart2js && $fast_startup ]
21666_test: Fail # mirrors not supported
23056_test: Fail # mirrors not supported
closure_type_reflection2_test: Fail # mirrors not supported
closure_type_reflection_test: Fail # mirrors not supported
deferred/deferred_mirrors1_lib: Fail # mirrors not supported
deferred/deferred_mirrors1_test: Fail # mirrors not supported
deferred/deferred_mirrors2_lazy: Fail # mirrors not supported
deferred/deferred_mirrors2_lib3: Fail # mirrors not supported
deferred/deferred_mirrors2_test: Fail # mirrors not supported
inference_nsm_mirrors_test: Fail # mirrors not supported
invalid_annotation2_test/none: Fail # mirrors not supported
invalid_annotation2_test/01: Pass # mirrors not supported, passes for the wrong reason
lookup_map/dead_entry_through_mirrors_test: Fail # mirrors not supported
lookup_map/live_entry_through_mirrors_test: Fail # mirrors not supported
lookup_map/live_entry_through_mirrors_used_test: Fail # mirrors not supported
mirror_enqueuer_regression_test: Fail # mirrors not supported
mirror_invalid_field_access2_test: Fail # mirrors not supported
mirror_invalid_field_access3_test: Fail # mirrors not supported
mirror_invalid_field_access4_test: Fail # mirrors not supported
mirror_invalid_field_access_test: Fail # mirrors not supported
mirror_invalid_invoke2_test: Fail # mirrors not supported
mirror_invalid_invoke3_test: Fail # mirrors not supported
mirror_invalid_invoke_test: Fail # mirrors not supported
mirror_printer_test: Fail # mirrors not supported
mirror_test: Fail # mirrors not supported
mirror_type_inference_field2_test: Fail # mirrors not supported
mirror_type_inference_field_test: Fail # mirrors not supported
mirror_type_inference_function_test: Fail # mirrors not supported
mirrors_declarations_filtering_test: Fail # mirrors not supported
mirrors_used_closure_test: Fail # mirrors not supported
mirrors_used_metatargets_test: Fail # mirrors not supported
mirrors_used_native_test: Fail # mirrors not supported
mirrors_used_warning2_test: Fail # mirrors not supported
mirrors_used_warning_test: Fail # mirrors not supported
no_such_method_mirrors_test: Fail # mirrors not supported
reflect_native_types_test: Fail # mirrors not supported

[ $compiler == dart2js && ($runtime == d8 || $runtime == chrome || $runtime == drt) ]
bound_closure_interceptor_type_test: Fail, Pass # v8 issue 3084. https://code.google.com/p/v8/issues/detail?id=3084

[ $compiler == dart2js && $mode == debug ]
operator_test: Skip
string_interpolation_test: Skip

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

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

[ $compiler == dart2js && $minified ]
to_string_test: Fail # Issue 7179.
runtime_type_test: Fail, OK # Tests extected output of Type.toString().
code_motion_exception_test: Skip  # Requires unminified operator names.
mirrors_used_warning_test/minif: Fail, OK # Tests warning that minified code will be broken.

[ $compiler == dart2js && $runtime == safari ]
deferred_fail_and_retry_worker_test: Timeout  # Issue 22106

[ $compiler == dart2js && ($runtime == drt || $runtime == ff || $runtime == safari || $runtime == jsshell) ]
code_motion_exception_test: Skip  # Required V8 specific format of JavaScript errors.

[ $compiler == dart2js && ($runtime == drt || $runtime == ff || $runtime == safari || $runtime == safarimobilesim || $runtime == chrome || $runtime == chromeOnAndroid) ]
isolate2_test/01: Fail # Issue 14458.

[ $runtime == jsshell ]
timer_test: Fail # Issue 7728.

[ $runtime == none ]
timer_negative_test: Fail, OK # A negative runtime test.
bailout8_test: Fail, OK # Mismatch in thrown exception.

[ $compiler == dart2js && $runtime == d8 && $system == windows ]
deferred/*: Pass,RuntimeError # Issue 17458

[ $compiler == dart2js && $csp ]
deferred_fail_and_retry_test: SkipByDesign # Uses eval to simulate failed loading.
deferred_fail_and_retry_worker_test: SkipByDesign # Uses eval to simulate failed loading.
deferred_custom_loader_test: SkipByDesign # Issue 25683

[ $compiler == none && $runtime == vm ]
invalid_annotation_test/01: MissingCompileTimeError, OK # vm is lazy
lookup_map/dead_entry_through_mirrors_test: SkipByDesign # Test for tree-shaking, vm never tree-shakes
unconditional_dartio_import_test: SkipByDesign # dart2js only test

[ $compiler == dart2js && $cps_ir == false ]
big_allocation_expression_test: Crash # Issue 24635

[ $compiler == dart2js && $cps_ir ]
async_stacktrace_test/asyncStar: Crash # (foo()async*{try {tr...  cannot handle sync*/async* functions

[ $compiler == dart2js && $cps_ir && $checked ]
*: Skip # `assert` not implemented, 75% of the tests fail.

[ $compiler == dart2js && $runtime == chrome && $system == windows ]
class_test: Pass, Slow # Issue 25940
consistent_codeUnitAt_error_test: Pass, Slow # Issue 25940
closure_capture3_test: Pass, Slow # Issue 25940
deferred_split_test: Pass, Slow # Issue 25940
closure_capture5_test: Pass, Slow # Issue 25940
conditional_test: Pass, Slow # Issue 25940
constant_javascript_semantics2_test: Pass, Slow # Issue 25940

[ $compiler == dart2js && $runtime == ff && $system == windows ]
consistent_index_error_string_test: Pass, Slow # Issue 25940

[ $compiler == dart2js ]
mirror_printer_test: Pass, Slow # Issue 25940, 16473
