cleanup language_2 and corelib_2 tests that import dart:mirrors

Preserves tests that didn't really need mirrors, and moves tests for
mirror functionality into lib_2/mirrors tests.

Change-Id: Ie16dee1a4b508e3f14da53499f57c5dae2d1e513
Reviewed-on: https://dart-review.googlesource.com/49624
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
This commit is contained in:
Jenny Messerly 2018-05-07 23:50:56 +00:00
parent 4da831fd3a
commit 3002e47e36
39 changed files with 194 additions and 358 deletions

View file

@ -5,7 +5,6 @@
// Test [Function.apply] on user-defined classes that implement [noSuchMethod].
import "package:expect/expect.dart";
import 'dart:mirrors';
class F {
call([p1]) => "call";
@ -24,46 +23,12 @@ class H {
main() {
Expect.equals('call', Function.apply(new F(), []));
Expect.equals('call', Function.apply(new F(), [1]));
Expect.equals('NSM', Function.apply(new F(), [1, 2]));
Expect.equals('NSM', Function.apply(new F(), [1, 2, 3]));
Expect.throwsNoSuchMethodError(() => Function.apply(new F(), [1, 2]));
Expect.throwsNoSuchMethodError(() => Function.apply(new F(), [1, 2, 3]));
var symbol = const Symbol('a');
var requiredParameters = [1];
var optionalParameters = new Map<Symbol, int>()..[symbol] = 42;
Invocation i =
Function.apply(new G(), requiredParameters, optionalParameters);
Expect.equals(const Symbol('call'), i.memberName);
Expect.listEquals(requiredParameters, i.positionalArguments);
Expect.mapEquals(optionalParameters, i.namedArguments);
Expect.isTrue(i.isMethod);
Expect.isFalse(i.isGetter);
Expect.isFalse(i.isSetter);
Expect.isFalse(i.isAccessor);
// Check that changing the passed list and map for parameters does
// not affect [i].
requiredParameters[0] = 42;
optionalParameters[symbol] = 12;
Expect.listEquals([1], i.positionalArguments);
Expect.mapEquals(new Map()..[symbol] = 42, i.namedArguments);
// Check that using [i] for invocation yields the same [Invocation]
// object.
var mirror = reflect(new G());
Invocation other = mirror.delegate(i);
Expect.equals(i.memberName, other.memberName);
Expect.listEquals(i.positionalArguments, other.positionalArguments);
Expect.mapEquals(i.namedArguments, other.namedArguments);
Expect.equals(i.isMethod, other.isMethod);
Expect.equals(i.isGetter, other.isGetter);
Expect.equals(i.isSetter, other.isSetter);
Expect.equals(i.isAccessor, other.isAccessor);
Expect.throwsNoSuchMethodError(() => Function.apply(new G(), [1], {#a: 42}));
// Test that [i] can be used to hit an existing method.
Expect.equals(43, new H().call(1, a: 42));
Expect.equals(43, Function.apply(new H(), [1], new Map()..[symbol] = 42));
mirror = reflect(new H());
Expect.equals(43, mirror.delegate(i));
Expect.equals(43, mirror.delegate(other));
Expect.equals(43, Function.apply(new H(), [1], {#a: 42}));
}

View file

@ -22,7 +22,6 @@ apply_generic_function_test: RuntimeError # Issue 32691
error_stack_trace_test/static: MissingCompileTimeError
[ $compiler == dartdevk ]
apply3_test: RuntimeError
bigint_from_test: RuntimeError # Issue 32589
bool_from_environment2_test/03: Crash
int_modulo_arith_test/modPow: RuntimeError
@ -39,7 +38,7 @@ regexp/stack-overflow_test: RuntimeError, OK # Smaller limit with irregex interp
regexp/pcre_test: Pass, Slow # Issue 22008
[ $runtime == flutter ]
apply3_test: CompileTimeError # mirrors not supported
apply3_test: RuntimeError
bool_from_environment_test: Fail # Flutter Issue 9111
format_exception_test: RuntimeError # Flutter Issue 9111
from_environment_const_type_test/01: Fail # Flutter Issue 9111
@ -193,8 +192,8 @@ map_test: Crash # tests/corelib_2/map_test.dart:903:7: Internal problem: Unhandl
symbol_reserved_word_test/03: RuntimeError # Issue 19972, new Symbol('void') should be allowed.
[ $compiler == dart2js && $fast_startup ]
apply3_test: Fail # mirrors not supported
dynamic_nosuchmethod_test: Fail # mirrors not supported
apply3_test: RuntimeError
dynamic_nosuchmethod_test: RuntimeError
[ $compiler == dart2js && $fast_startup && $fasta && $strong ]
cast_test: RuntimeError
@ -246,7 +245,6 @@ uri_parameters_all_test: RuntimeError
uri_test: RuntimeError
[ $compiler == dart2js && $fasta && $minified && $strong ]
apply3_test: RuntimeError
cast_test: RuntimeError
dynamic_nosuchmethod_test: RuntimeError
error_stack_trace1_test: RuntimeError # Issue 12399
@ -314,7 +312,6 @@ bigint_test: Pass, Timeout # Please triage.
# ===== dartk + vm status lines =====
[ $compiler == dartk && $runtime == vm && $strong ]
apply3_test: RuntimeError
apply_generic_function_test: RuntimeError
iterable_fold_test/02: RuntimeError
iterable_reduce_test/01: CompileTimeError # Issue 31533
@ -413,7 +410,6 @@ regress_r21715_test: RuntimeError # Requires fixed-size int64 support.
typed_data_with_limited_ints_test: Skip # dart2js and dartdevc don't know about --limit-ints-to-64-bits
[ $runtime != none && ($compiler == dartdevc || $compiler == dartdevk) ]
apply3_test: RuntimeError # Issue 29921
bigint_test: Pass, Slow
compare_to2_test: RuntimeError # Issue 30170
date_time10_test: RuntimeError # Issue 29921
@ -594,13 +590,12 @@ from_environment_const_type_undefined_test/14: MissingCompileTimeError
from_environment_const_type_undefined_test/16: MissingCompileTimeError
iterable_to_set_test: RuntimeError # is-checks do not implement strong mode type system
[ $compiler == dartkp || $compiler == precompiler ]
apply3_test: SkipByDesign
dynamic_nosuchmethod_test: SkipByDesign
[ $compiler == precompiler || $runtime == vm && !$checked && !$strong ]
int_parse_radix_test/badTypes: RuntimeError # wrong exception returned
[ $compiler == precompiler || $runtime == vm && !$strong ]
apply3_test: RuntimeError
[ $runtime == dart_precompiled || $runtime == flutter || $runtime == vm ]
regexp/global_test: Skip # Issue 21709
regexp/pcre_test: Pass, Slow, Timeout

View file

@ -3,7 +3,6 @@
// BSD-style license that can be found in the LICENSE file.
import "package:expect/expect.dart";
import 'dart:mirrors';
// Test that noSuchMethod calls behave as expected for dynamic object invocations.
class BaseClass {
@ -19,7 +18,9 @@ class ReturnInvocationName extends BaseClass {
ReturnInvocationName(this._bar);
noSuchMethod(Invocation invocation) {
return MirrorSystem.getName(invocation.memberName);
var name = invocation.memberName.toString();
var match = new RegExp(r'Symbol\("([^"]+)"\)').matchAsPrefix(name);
return match != null ? match.group(1) : name;
}
bar() {

View file

@ -5,8 +5,6 @@
// Check that compile-time evaluation of constants is consistent with runtime
// evaluation.
import 'dart:mirrors';
import 'package:expect/expect.dart';
const top_const = identical(-0.0, 0);
@ -38,9 +36,6 @@ class C {
Expect.equals(instance_var, local_const);
Expect.equals(local_const, local_final);
Expect.equals(local_final, local_var);
var metadata = reflectClass(C).metadata[0].reflectee; //# 01: ok
Expect.equals(top_const, metadata); // //# 01: continued
Expect.equals(local_var, metadata); // //# 01: continued
}
}

View file

@ -4,7 +4,6 @@
// dart2js regression test for issue 8781.
import "dart:mirrors" show reflect;
import "package:expect/expect.dart";
class N {
@ -37,17 +36,17 @@ class A {
}
}
class L {
final list;
L(this.list);
// Use noSuchMethod to defeat type inferencing.
noSuchMethod(mirror) => reflect(list).delegate(mirror);
}
main() {
var o = new A(new N(new L([1]), new L([2])));
var o = new A(new N(confuse([1]), confuse([2])));
for (var i = 1; i <= 2; i++) Expect.equals(i, o.next());
Expect.equals(null, o.list);
}
// Use confuse to defeat type inferencing.
@NoInline()
@AssumeDynamic()
confuse(x) {
return x;
}

View file

@ -2,17 +2,10 @@
// 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.
import "dart:mirrors" show reflect;
import "package:expect/expect.dart";
class GetName {
set flif(_) => "flif=";
}
int getName(im) => reflect(new GetName()).delegate(im);
class C {
var im;
Invocation im;
noSuchMethod(im) => this.im = im;
flif() {}
}
@ -20,6 +13,6 @@ class C {
main() {
dynamic c = new C();
c.flif = 42;
Expect.equals(42, getName(c.im));
Expect.equals(const Symbol("flif="), c.im.memberName);
Expect.equals(42, c.im.positionalArguments[0]);
}

View file

@ -57,7 +57,6 @@ type_promotion_functions_test: CompileTimeError # Issue 30895: This test require
# errors aren't detected by fasta, but reported by back ends as compile-time
# errors.
[ $compiler != dart2js && $runtime != dart_precompiled && $runtime != vm && $fasta ]
deferred_constraints_constants_test/default_argument2: MissingCompileTimeError
function_type_parameter2_negative_test: Fail
function_type_parameter_negative_test: Fail
implicit_creation/implicit_const_not_default_values_test/e12: MissingCompileTimeError

View file

@ -1167,6 +1167,7 @@ string_unicode2_negative_test: CompileTimeError
string_unicode3_negative_test: CompileTimeError
string_unicode4_negative_test: CompileTimeError
super_bound_closure_test/none: CompileTimeError
super_call4_test/01: MissingCompileTimeError
super_setter_test: StaticWarning # Issue 28823
switch_case_test/none: CompileTimeError
syntax_test/60: MissingCompileTimeError

View file

@ -12,7 +12,6 @@ double_identical_test: RuntimeError # Negative and positive zero are distinct, b
issue23244_test: RuntimeError # Isolates - enum canonicalization - Issue 23244
library_env_test/has_mirror_support: RuntimeError, OK
library_env_test/has_no_html_support: RuntimeError, OK
null_test/mirrors: SkipByDesign # Uses mirrors.
vm/*: SkipByDesign # Tests for the VM.
[ $compiler != dart2js ]
@ -284,9 +283,6 @@ covariance_type_parameter_test/02: Crash # NoSuchMethodError: The method 'hasSub
covariant_override/runtime_check_test: RuntimeError
covariant_subtyping_test: RuntimeError
cyclic_constructor_test/01: Crash # Stack Overflow
deferred_constraints_constants_test/default_argument2: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
deferred_constraints_constants_test/none: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
deferred_constraints_constants_test/reference_after_load: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
deferred_constraints_type_annotation_test/as_operation: MissingCompileTimeError
deferred_constraints_type_annotation_test/catch_check: MissingCompileTimeError
deferred_constraints_type_annotation_test/is_check: MissingCompileTimeError
@ -469,8 +465,6 @@ not_enough_positional_arguments_test/03: MissingCompileTimeError
not_enough_positional_arguments_test/05: MissingCompileTimeError
not_enough_positional_arguments_test/06: MissingCompileTimeError
not_enough_positional_arguments_test/07: MissingCompileTimeError
null_test/mirrors: RuntimeError
null_test/none: RuntimeError
number_identity2_test: RuntimeError
numbers_test: RuntimeError, OK # non JS number semantics
override_field_method1_negative_test: Fail
@ -561,31 +555,8 @@ issue31596_super_test/05: RuntimeError
issue31596_test: RuntimeError
[ $compiler == dart2js && $fast_startup ]
const_evaluation_test/*: Fail # mirrors not supported
deferred_constraints_constants_test: Pass # mirrors not supported, passes for the wrong reason
deferred_constraints_constants_test/none: Fail # mirrors not supported
deferred_constraints_constants_test/reference_after_load: Fail # mirrors not supported
enum_mirror_test: Fail # mirrors not supported
field_increment_bailout_test: Fail # mirrors not supported
instance_creation_in_function_annotation_test: Fail # mirrors not supported
invocation_mirror2_test: Fail # mirrors not supported
invocation_mirror_invoke_on2_test: Fail # mirrors not supported
invocation_mirror_invoke_on_test: Fail # mirrors not supported
issue21079_test: Fail # mirrors not supported
library_env_test/has_mirror_support: Fail # mirrors not supported
library_env_test/has_no_mirror_support: Pass # fails for the wrong reason.
many_overridden_no_such_method_test: Fail # mirrors not supported
no_such_method_test: Fail # mirrors not supported
null_test/0*: Pass # mirrors not supported, fails for the wrong reason
null_test/none: Fail # mirrors not supported
overridden_no_such_method_test: Fail # mirrors not supported
redirecting_factory_reflection_test: Fail # mirrors not supported
regress_13462_0_test: Fail # mirrors not supported
regress_13462_1_test: Fail # mirrors not supported
regress_18535_test: Fail # mirrors not supported
regress_28255_test: Fail # mirrors not supported
super_call4_test: Fail # mirrors not supported
super_getter_setter_test: CompileTimeError
vm/reflect_core_vm_test: Fail # mirrors not supported
[ $compiler == dart2js && $fast_startup && $fasta && $strong ]
@ -649,9 +620,6 @@ cyclic_type_test/03: RuntimeError
cyclic_type_test/04: RuntimeError
cyclic_typedef_test/10: Crash # Crash when compiling file:///usr/local/google/home/sra/Dart/sdk/out/ReleaseX64/generated_tests/language_2/cyclic_typedef_test_10.dart,
cyclic_typedef_test/11: Crash # Crash when compiling file:///usr/local/google/home/sra/Dart/sdk/out/ReleaseX64/generated_tests/language_2/cyclic_typedef_test_11.dart,
deferred_constraints_constants_test/default_argument2: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
deferred_constraints_constants_test/none: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
deferred_constraints_constants_test/reference_after_load: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
deferred_inheritance_constraints_test/extends: MissingCompileTimeError
deferred_inheritance_constraints_test/implements: MissingCompileTimeError
deferred_inheritance_constraints_test/mixin: MissingCompileTimeError
@ -676,7 +644,6 @@ extract_type_arguments_test: RuntimeError
f_bounded_quantification4_test: RuntimeError
fauxverride_test/03: MissingCompileTimeError
fauxverride_test/05: MissingCompileTimeError
field_increment_bailout_test: RuntimeError
field_initialization_order_test/01: MissingCompileTimeError
field_initialization_order_test/none: RuntimeError
field_override3_test/00: MissingCompileTimeError
@ -851,8 +818,6 @@ nosuchmethod_forwarding/nosuchmethod_forwarding_arguments_test: RuntimeError
nosuchmethod_forwarding/nosuchmethod_forwarding_test/05: RuntimeError
nosuchmethod_forwarding/nosuchmethod_forwarding_test/06: RuntimeError
null_no_such_method_test: CompileTimeError
null_test/mirrors: RuntimeError
null_test/none: RuntimeError
number_identity2_test: RuntimeError
numbers_test: RuntimeError, OK # non JS number semantics
overridden_no_such_method_test: RuntimeError
@ -1073,8 +1038,6 @@ cyclic_typedef_test/10: Crash # Stack Overflow
cyclic_typedef_test/11: Crash # Stack Overflow
default_factory2_test/01: MissingCompileTimeError
default_factory_test/01: MissingCompileTimeError
deferred_constraints_constants_test/none: RuntimeError
deferred_constraints_constants_test/reference_after_load: RuntimeError
deferred_inheritance_constraints_test/extends: MissingCompileTimeError
deferred_inheritance_constraints_test/implements: MissingCompileTimeError
deferred_inheritance_constraints_test/mixin: MissingCompileTimeError
@ -1104,7 +1067,6 @@ factory4_test/00: MissingCompileTimeError
fauxverride_test/03: MissingCompileTimeError
fauxverride_test/05: MissingCompileTimeError
field3_test/01: MissingCompileTimeError
field_increment_bailout_test: RuntimeError
field_initialization_order_test/01: MissingCompileTimeError
field_initialization_order_test/none: RuntimeError
field_override3_test/00: MissingCompileTimeError
@ -1346,8 +1308,6 @@ nosuchmethod_forwarding/nosuchmethod_forwarding_arguments_test: RuntimeError
nosuchmethod_forwarding/nosuchmethod_forwarding_test/05: RuntimeError
nosuchmethod_forwarding/nosuchmethod_forwarding_test/06: RuntimeError
null_no_such_method_test: CompileTimeError
null_test/mirrors: RuntimeError
null_test/none: RuntimeError
number_identity2_test: RuntimeError
numbers_test: RuntimeError, OK # non JS number semantics
operator2_negative_test: Crash # 'file:*/pkg/compiler/lib/src/kernel/env.dart': Failed assertion: line 322 pos 16: '!name.contains('#')': is not true.
@ -1417,8 +1377,6 @@ string_interpolation_and_buffer_test: RuntimeError
string_split_test: CompileTimeError
string_supertype_checked_test: CompileTimeError
super_bound_closure_test/none: CompileTimeError
super_call4_test: CompileTimeError
super_getter_setter_test: CompileTimeError
super_no_such_method1_test: CompileTimeError
super_no_such_method2_test: CompileTimeError
super_no_such_method3_test: CompileTimeError
@ -1654,8 +1612,6 @@ cyclic_typedef_test/10: Crash # Stack Overflow
cyclic_typedef_test/11: Crash # Stack Overflow
default_factory2_test/01: MissingCompileTimeError
default_factory_test/01: MissingCompileTimeError
deferred_constraints_constants_test/none: RuntimeError
deferred_constraints_constants_test/reference_after_load: RuntimeError
deferred_inheritance_constraints_test/extends: MissingCompileTimeError
deferred_inheritance_constraints_test/implements: MissingCompileTimeError
deferred_inheritance_constraints_test/mixin: MissingCompileTimeError
@ -1685,7 +1641,6 @@ factory4_test/00: MissingCompileTimeError
fauxverride_test/03: MissingCompileTimeError
fauxverride_test/05: MissingCompileTimeError
field3_test/01: MissingCompileTimeError
field_increment_bailout_test: RuntimeError
field_initialization_order_test/01: MissingCompileTimeError
field_initialization_order_test/none: RuntimeError
field_override3_test/00: MissingCompileTimeError
@ -1929,8 +1884,6 @@ nosuchmethod_forwarding/nosuchmethod_forwarding_arguments_test: RuntimeError
nosuchmethod_forwarding/nosuchmethod_forwarding_test/05: RuntimeError
nosuchmethod_forwarding/nosuchmethod_forwarding_test/06: RuntimeError
null_no_such_method_test: CompileTimeError
null_test/mirrors: RuntimeError
null_test/none: RuntimeError
number_identity2_test: RuntimeError
numbers_test: RuntimeError, OK # non JS number semantics
overridden_no_such_method_test: RuntimeError
@ -1998,8 +1951,6 @@ string_interpolation_and_buffer_test: RuntimeError
string_split_test: CompileTimeError
string_supertype_checked_test: CompileTimeError
super_bound_closure_test/none: CompileTimeError
super_call4_test: CompileTimeError
super_getter_setter_test: CompileTimeError
super_no_such_method1_test: CompileTimeError
super_no_such_method2_test: CompileTimeError
super_no_such_method3_test: CompileTimeError

View file

@ -157,7 +157,7 @@ string_interpolate_test: CompileTimeError
string_split_test: CompileTimeError
string_supertype_checked_test: CompileTimeError
super_bound_closure_test/none: CompileTimeError
super_call4_test: RuntimeError
super_call4_test/01: MissingCompileTimeError
super_no_such_method1_test: RuntimeError
super_no_such_method2_test: RuntimeError
super_no_such_method3_test: RuntimeError
@ -580,8 +580,6 @@ string_optimizations_test: RuntimeError # Issue 32194
string_split_test: CompileTimeError # Issue 31616
string_supertype_checked_test: CompileTimeError # Issue 31616
super_bound_closure_test/none: CompileTimeError # Issue 31533
super_call4_test: CompileTimeError
super_getter_setter_test: CompileTimeError
super_no_such_method1_test: CompileTimeError
super_no_such_method2_test: CompileTimeError
super_no_such_method3_test: CompileTimeError
@ -683,7 +681,6 @@ exception_test: RuntimeError # DDC doesn't implement NullThrownError?; Expect.is
expect_test: RuntimeError # Issue 29920; Expect.identical did not fail
f_bounded_quantification3_test: RuntimeError # Issue 29920; Uncaught Error: type arguments should not be null: (F1, F2) => {
field3_test/01: MissingCompileTimeError
field_increment_bailout_test: RuntimeError # Issue 29920; UnimplementedError: JsInstanceMirror.delegate unimplemented
field_initialization_order_test/none: RuntimeError # Expect.equals(expected: <b.a.ai.bi.>, actual: <b.bi.a.ai.>) fails.
flatten_test/05: MissingRuntimeError # Issue 29920
flatten_test/08: MissingRuntimeError # Issue 29920
@ -704,7 +701,6 @@ instance_creation_in_function_annotation_test: RuntimeError # Issue 29920; Unimp
int64_literal_test/*: Skip # This is testing Dart 2.0 int64 semantics.
integer_division_by_zero_test: RuntimeError # Issue 29920; Expect.throws: Unexpected 'Unsupported operation: Infinity'
internal_library_test/02: Crash
invocation_mirror2_test: RuntimeError # UnimplementedError: JsInstanceMirror.delegate unimplemented
invocation_mirror_invoke_on2_test: RuntimeError # UnimplementedError: JsInstanceMirror.delegate unimplemented
invocation_mirror_invoke_on_test: RuntimeError # UnimplementedError: JsInstanceMirror.delegate unimplemented
invocation_mirror_test: RuntimeError # Type 'NativeJavaScriptObject' is not a subtype of type 'int' in strong mode
@ -717,7 +713,6 @@ library_env_test/has_no_html_support: RuntimeError, OK # Intended to fail, bool.
local_function2_test/none: RuntimeError # ReferenceError: TToNull is not defined
local_function3_test/none: RuntimeError # Expect.equals(expected: <true>, actual: <false>) fails.
local_function_test/none: RuntimeError # Expect.equals(expected: <true>, actual: <false>) fails.
many_overridden_no_such_method_test: RuntimeError # UnimplementedError: JsInstanceMirror.delegate unimplemented; UnimplementedError: JsInstanceMirror.delegate unimplemented
method_override7_test/03: MissingCompileTimeError # Issue 30514
mint_arithmetic_test: RuntimeError # Issue 29920; Expect.equals(expected: <4294967297>, actual: <1>) fails.
modulo_test: RuntimeError # Ints and doubles are unified.; Expect.throws fails: Did not throw
@ -728,11 +723,9 @@ multiline_newline_test/05r: MissingCompileTimeError
named_parameters_default_eq_test/none: RuntimeError # Expect.isTrue(false) fails.
nan_identical_test: RuntimeError # Issue 29920; Unsupported operation: Uint64 accessor not supported by dart2js.
nested_switch_label_test: RuntimeError # Issue 29920; UnimplementedError: node <ShadowContinueSwitchStatement> see https://github.com/dart-lang/sdk/issues/29352 `continue #L1;
no_such_method_test: RuntimeError # UnimplementedError: JsInstanceMirror.delegate unimplemented
null_test/mirrors: RuntimeError # Uses mirrors.; ReferenceError: GenericOfT is not defined
number_identity2_test: RuntimeError # Issue 29920; Expect.isTrue(false) fails.
numbers_test: RuntimeError # Issue 29920; Expect.equals(expected: <false>, actual: <true>) fails.
overridden_no_such_method_test: RuntimeError # UnimplementedError: JsInstanceMirror.delegate unimplemented; UnimplementedError: JsInstanceMirror.delegate unimplemented
override_field_test/03: MissingCompileTimeError
parser_quirks_test: CompileTimeError
regress_16640_test: RuntimeError # Issue 29920; Uncaught Error: type arguments should not be null: E => {

View file

@ -665,8 +665,6 @@ string_interpolation_and_buffer_test: RuntimeError # Issue 31402 (Return and yie
string_split_test: CompileTimeError # Issue 31616
string_supertype_checked_test: CompileTimeError # Issue 31616
super_bound_closure_test/none: CompileTimeError # Issue 31533
super_call4_test: CompileTimeError
super_getter_setter_test: CompileTimeError
super_no_such_method1_test: CompileTimeError
super_no_such_method2_test: CompileTimeError
super_no_such_method3_test: CompileTimeError
@ -894,10 +892,6 @@ cyclic_typedef_test/11: Crash # Issue 32416.
deep_nesting1_negative_test: Skip # Issue 31158
deep_nesting2_negative_test: Skip # Issue 31158
deferred_call_empty_before_load_test: RuntimeError # Fasta/KernelVM bug: Deferred loading kernel issue 30273.
deferred_constraints_constants_test: SkipByDesign
deferred_constraints_constants_test/default_argument2: Pass # Passes by mistake. KernelVM bug: Deferred loading kernel issue 30273.
deferred_constraints_constants_test/none: CompileTimeError # KernelVM bug: Deferred loading kernel issue 30273.
deferred_constraints_constants_test/reference_after_load: CompileTimeError # KernelVM bug: Deferred loading kernel issue 30273.
deferred_load_constants_test/none: RuntimeError # KernelVM bug: Deferred loading kernel issue 30273.
deferred_load_library_wrong_args_test/01: Pass # Passes by mistake. KernelVM bug: Deferred loading kernel issue 30273.
deferred_not_loaded_check_test: RuntimeError # Fasta/KernelVM bug: Deferred loading kernel issue 30273.
@ -1057,8 +1051,6 @@ string_interpolation_and_buffer_test: RuntimeError # Issue 31402 (Return and yie
string_split_test: CompileTimeError # Issue 31616
string_supertype_checked_test: CompileTimeError # Issue 31616
super_bound_closure_test/none: CompileTimeError # Issue 31533
super_call4_test: CompileTimeError
super_getter_setter_test: CompileTimeError
super_no_such_method1_test: CompileTimeError
super_no_such_method2_test: CompileTimeError
super_no_such_method3_test: CompileTimeError
@ -1257,8 +1249,6 @@ string_interpolate_test: CompileTimeError
string_split_test: CompileTimeError
string_supertype_checked_test: CompileTimeError
super_bound_closure_test/none: CompileTimeError
super_call4_test: CompileTimeError
super_getter_setter_test: CompileTimeError
super_no_such_method1_test: CompileTimeError
super_no_such_method2_test: CompileTimeError
super_no_such_method3_test: CompileTimeError
@ -2020,6 +2010,7 @@ string_test/01: MissingCompileTimeError
substring_test/01: MissingCompileTimeError
super_assign_test/01: MissingCompileTimeError
super_bound_closure_test/01: MissingCompileTimeError
super_call4_test/01: MissingCompileTimeError
super_operator_index_test/01: MissingCompileTimeError
super_operator_index_test/02: MissingCompileTimeError
super_operator_index_test/03: MissingCompileTimeError

View file

@ -911,8 +911,6 @@ string_test/01: MissingCompileTimeError
substring_test/01: MissingCompileTimeError
super_assign_test/01: MissingCompileTimeError
super_bound_closure_test/01: MissingCompileTimeError
super_call4_test: CompileTimeError
super_getter_setter_test: CompileTimeError
super_operator_index_test/01: MissingCompileTimeError
super_operator_index_test/02: MissingCompileTimeError
super_operator_index_test/03: MissingCompileTimeError

View file

@ -919,6 +919,7 @@ string_test/01: MissingCompileTimeError
substring_test/01: MissingCompileTimeError
super_assign_test/01: MissingCompileTimeError
super_bound_closure_test/01: MissingCompileTimeError
super_call4_test/01: MissingCompileTimeError
super_operator_index_test/01: MissingCompileTimeError
super_operator_index_test/02: MissingCompileTimeError
super_operator_index_test/03: MissingCompileTimeError

View file

@ -5,7 +5,6 @@
library OverriddenNoSuchMethodTest.dart;
import "dart:mirrors" show reflect;
import "package:expect/expect.dart";
part "overridden_no_such_method.dart";

View file

@ -3,34 +3,22 @@
// BSD-style license that can be found in the LICENSE file.
// Dart test program testing that NoSuchMethod is properly called.
import "dart:mirrors" show reflect;
import "package:expect/expect.dart";
class GetName {
foo({a, b}) => "foo";
moo({b}) => "moo";
}
String getName(im) => reflect(new GetName()).delegate(im);
class NoSuchMethodTest {
foo({a: 10, b: 20}) {
return (10 * a) + b;
}
noSuchMethod(Invocation im) {
Expect.equals("moo", getName(im));
Expect.equals(#moo, im.memberName);
Expect.equals(0, im.positionalArguments.length);
Expect.equals(1, im.namedArguments.length);
return foo(b: im.namedArguments[const Symbol("b")]);
}
static testMain() {
var obj = new NoSuchMethodTest() as dynamic;
Expect.equals(199, obj.moo(b: 99)); // obj.NoSuchMethod called here.
}
}
main() {
NoSuchMethodTest.testMain();
var obj = new NoSuchMethodTest() as dynamic;
Expect.equals(199, obj.moo(b: 99)); // obj.NoSuchMethod called here.
}

View file

@ -5,7 +5,6 @@
// VMOptions=--optimization-counter-threshold=5
import "dart:mirrors";
import "package:expect/expect.dart";
class BadInherit
@ -171,18 +170,6 @@ void test() {
Expect.isFalse(compareWithNull(val));
Expect.isTrue(compareWithNull(obj));
ClassMirror cm = reflectClass(Null);
InstanceMirror im1 = reflect(null);
Expect.equals(cm, im1.type);
Expect.isTrue(im1.invoke(const Symbol("=="), [null]).reflectee);//# mirrors: ok
Expect.isFalse(im1.invoke(const Symbol("=="), [42]).reflectee); //# mirrors: ok
InstanceMirror im2 = reflect(obj);
Expect.equals(cm, im2.type);
Expect.isTrue(im2.invoke(const Symbol("=="), [null]).reflectee);//# mirrors: ok
Expect.isFalse(im2.invoke(const Symbol("=="), [42]).reflectee); //# mirrors: ok
// Method/value extraction. The runtimeType was checked above, and operator==
// cannot be extracted.
// Currently fails in VM.

View file

@ -5,17 +5,11 @@
part of OverriddenNoSuchMethodTest.dart;
class GetName {
foo(a, b) => "foo";
}
String getName(im) => reflect(new GetName()).delegate(im);
class OverriddenNoSuchMethod {
OverriddenNoSuchMethod() {}
noSuchMethod(Invocation mirror) {
Expect.equals("foo", getName(mirror));
Expect.equals(#foo, mirror.memberName);
// 'foo' was called with two parameters (not counting receiver).
List args = mirror.positionalArguments;
Expect.equals(2, args.length);

View file

@ -5,7 +5,6 @@
library OverriddenNoSuchMethodTest.dart;
import "dart:mirrors" show reflect;
import "package:expect/expect.dart";
part "overridden_no_such_method.dart";

View file

@ -2,7 +2,6 @@
// 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.
import "dart:mirrors" show reflect;
import "package:expect/expect.dart";
// Checks that noSuchMethod is resolved in the super class and not in the
@ -16,50 +15,26 @@ class C {
bool baz({int b});
bool boz(int a, {int c});
bool noSuchMethod(Invocation im) {
if (im.memberName == const Symbol('foo')) {
return im.positionalArguments.isEmpty &&
im.namedArguments.isEmpty &&
reflect(e).delegate(im);
}
if (im.memberName == const Symbol('bar')) {
return im.positionalArguments.length == 1 &&
im.namedArguments.isEmpty &&
reflect(e).delegate(im);
}
if (im.memberName == const Symbol('baz')) {
return im.positionalArguments.isEmpty &&
im.namedArguments.length == 1 &&
reflect(e).delegate(im);
}
if (im.memberName == const Symbol('boz')) {
return im.positionalArguments.length == 1 &&
im.namedArguments.length == 1 &&
reflect(e).delegate(im);
}
return false;
}
bool noSuchMethod(Invocation im) => true;
}
class D extends C {
bool noSuchMethod(Invocation im) {
return false;
}
bool noSuchMethod(Invocation im) => false;
test1() {
return super.foo();
return super.foo(); //# 01: compile-time error
}
test2() {
return super.bar(1);
return super.bar(1); //# 01: compile-time error
}
test3() {
return super.baz(b: 2);
return super.baz(b: 2); //# 01: compile-time error
}
test4() {
return super.boz(1, c: 2);
return super.boz(1, c: 2); //# 01: compile-time error
}
}
@ -72,8 +47,8 @@ class E {
main() {
var d = new D();
Expect.isTrue(d.test1());
Expect.isTrue(d.test2());
Expect.isTrue(d.test3());
Expect.isTrue(d.test4());
Expect.isNull(d.test1());
Expect.isNull(d.test2());
Expect.isNull(d.test3());
Expect.isNull(d.test4());
}

View file

@ -1,126 +0,0 @@
// Copyright (c) 2013, 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.
import 'dart:mirrors';
import "package:expect/expect.dart";
class A {
var missingSetterField;
var missingGetterField;
var getterInSuperClassField;
var setterInSuperClassField;
var getterSetterField;
var missingAllField;
var indexField = new List(2);
set setterInSuperClass(a) {
setterInSuperClassField = a;
}
get getterInSuperClass => getterInSuperClassField;
}
class B extends A {
get missingSetter => missingSetterField;
get setterInSuperClass => setterInSuperClassField;
set missingGetter(a) {
missingGetterField = a;
}
set getterInSuperClass(a) {
getterInSuperClassField = a;
}
get getterSetter => getterSetterField;
set getterSetter(a) {
getterSetterField = a;
}
operator [](index) => indexField[index];
operator []=(index, value) {
indexField[index] = value;
}
set missingSetter(a);
get missingGetter;
set missingAll(a);
get missingAll;
noSuchMethod(Invocation im) {
String name = MirrorSystem.getName(im.memberName);
if (name.startsWith('missingSetter')) {
Expect.isTrue(im.isSetter);
missingSetterField = im.positionalArguments[0];
} else if (name.startsWith('missingGetter')) {
Expect.isTrue(im.isGetter);
return missingGetterField;
} else if (name.startsWith('missingAll') && im.isGetter) {
return missingAllField;
} else if (name.startsWith('missingAll') && im.isSetter) {
missingAllField = im.positionalArguments[0];
} else {
Expect.fail('Should not reach here');
}
}
}
class C extends B {
test() {
Expect.equals(42, super.missingSetter = 42);
Expect.equals(42, super.missingSetter);
Expect.equals(43, super.missingSetter += 1);
Expect.equals(43, super.missingSetter);
Expect.equals(43, super.missingSetter++);
Expect.equals(44, super.missingSetter);
Expect.equals(42, super.missingGetter = 42);
Expect.equals(42, super.missingGetter);
Expect.equals(43, super.missingGetter += 1);
Expect.equals(43, super.missingGetter);
Expect.equals(43, super.missingGetter++);
Expect.equals(44, super.missingGetter);
Expect.equals(42, super.setterInSuperClass = 42);
Expect.equals(42, super.setterInSuperClass);
Expect.equals(43, super.setterInSuperClass += 1);
Expect.equals(43, super.setterInSuperClass);
Expect.equals(43, super.setterInSuperClass++);
Expect.equals(44, super.setterInSuperClass);
Expect.equals(42, super.getterInSuperClass = 42);
Expect.equals(42, super.getterInSuperClass);
Expect.equals(43, super.getterInSuperClass += 1);
Expect.equals(43, super.getterInSuperClass);
Expect.equals(43, super.getterInSuperClass++);
Expect.equals(44, super.getterInSuperClass);
Expect.equals(42, super.missingAll = 42);
Expect.equals(42, super.missingAll);
Expect.equals(43, super.missingAll += 1);
Expect.equals(43, super.missingAll);
Expect.equals(43, super.missingAll++);
Expect.equals(44, super.missingAll);
Expect.equals(42, super[0] = 42);
Expect.equals(42, super[0]);
Expect.equals(43, super[0] += 1);
Expect.equals(43, super[0]);
Expect.equals(43, super[0]++);
Expect.equals(44, super[0]);
Expect.equals(2, super[0] = 2);
Expect.equals(2, super[0]);
Expect.equals(3, super[0] += 1);
Expect.equals(3, super[0]);
Expect.equals(3, super[0]++);
Expect.equals(4, super[0]);
}
}
main() {
new C().test();
}

View file

@ -1,6 +1,10 @@
// Copyright (c) 2015, 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.
// dartdevcOptions=--emit-metadata
// TODO(jmesserly): delete this test file once `dart:mirrors` is fully diabled
// in dart4web compilers.
@JS()
library tests.html.mirrors_js_typed_interop_test;

View file

@ -17,6 +17,7 @@ js/*: Skip # TODO(ahe): Make dart:js available.
[ $fasta ]
isolate/compile_time_error_test/01: MissingCompileTimeError
mirrors/deferred_constraints_constants_test/default_argument2: MissingCompileTimeError
mirrors/generic_bounded_by_type_parameter_test/02: MissingCompileTimeError
mirrors/generic_bounded_test/01: MissingCompileTimeError
mirrors/generic_bounded_test/02: MissingCompileTimeError
@ -95,6 +96,7 @@ isolate/spawn_function_custom_class_test: Pass, Crash, Timeout # Crashes with --
isolate/spawn_uri_nested_vm_test: Pass, Timeout
isolate/static_function_test: Skip # Times out. Issue 31855. CompileTimeError. Issue 31402
mirrors/abstract_class_test: RuntimeError
mirrors/apply3_test: RuntimeError
mirrors/class_declarations_test/01: RuntimeError # Issue 31402 (Invocation arguments)
mirrors/class_declarations_test/none: RuntimeError # Issue 31402 (Invocation arguments)
mirrors/class_mirror_location_test: RuntimeError
@ -218,6 +220,7 @@ isolate/request_reply_test: Pass, Timeout
isolate/stacktrace_message_test: RuntimeError
mirrors/constructor_optional_args_test: RuntimeError
mirrors/constructors_test: RuntimeError
mirrors/deferred_constraints_constants_test/default_argument2: Pass
mirrors/fake_function_with_call_test: RuntimeError
mirrors/generic_superclass_test/01: RuntimeError
mirrors/generic_superclass_test/none: RuntimeError
@ -235,6 +238,7 @@ mirrors/null_test: RuntimeError
mirrors/operator_test: RuntimeError
mirrors/redirecting_factory_different_type_test/02: MissingCompileTimeError
mirrors/redirecting_factory_different_type_test/none: RuntimeError
mirrors/redirecting_factory_reflection_test: RuntimeError
mirrors/regress_16321_test/none: Crash
mirrors/top_level_accessors_test/01: MissingCompileTimeError

View file

@ -0,0 +1,69 @@
// Copyright (c) 2013, 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.
// Test [Function.apply] on user-defined classes that implement [noSuchMethod].
import "package:expect/expect.dart";
import 'dart:mirrors';
class F {
call([p1]) => "call";
noSuchMethod(Invocation invocation) => "NSM";
}
class G {
call() => '42';
noSuchMethod(Invocation invocation) => invocation;
}
class H {
call(required, {a}) => required + a;
}
main() {
Expect.equals('call', Function.apply(new F(), []));
Expect.equals('call', Function.apply(new F(), [1]));
Expect.equals('NSM', Function.apply(new F(), [1, 2]));
Expect.equals('NSM', Function.apply(new F(), [1, 2, 3]));
var symbol = const Symbol('a');
var requiredParameters = [1];
var optionalParameters = new Map<Symbol, int>()..[symbol] = 42;
Invocation i =
Function.apply(new G(), requiredParameters, optionalParameters);
Expect.equals(const Symbol('call'), i.memberName);
Expect.listEquals(requiredParameters, i.positionalArguments);
Expect.mapEquals(optionalParameters, i.namedArguments);
Expect.isTrue(i.isMethod);
Expect.isFalse(i.isGetter);
Expect.isFalse(i.isSetter);
Expect.isFalse(i.isAccessor);
// Check that changing the passed list and map for parameters does
// not affect [i].
requiredParameters[0] = 42;
optionalParameters[symbol] = 12;
Expect.listEquals([1], i.positionalArguments);
Expect.mapEquals(new Map()..[symbol] = 42, i.namedArguments);
// Check that using [i] for invocation yields the same [Invocation]
// object.
var mirror = reflect(new G());
Invocation other = mirror.delegate(i);
Expect.equals(i.memberName, other.memberName);
Expect.listEquals(i.positionalArguments, other.positionalArguments);
Expect.mapEquals(i.namedArguments, other.namedArguments);
Expect.equals(i.isMethod, other.isMethod);
Expect.equals(i.isGetter, other.isGetter);
Expect.equals(i.isSetter, other.isSetter);
Expect.equals(i.isAccessor, other.isAccessor);
// Test that [i] can be used to hit an existing method.
Expect.equals(43, new H().call(1, a: 42));
Expect.equals(43, Function.apply(new H(), [1], new Map()..[symbol] = 42));
mirror = reflect(new H());
Expect.equals(43, mirror.delegate(i));
Expect.equals(43, mirror.delegate(other));
}

View file

@ -0,0 +1,21 @@
// Copyright (c) 2014, 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.
// Check that compile-time evaluation of constants is consistent with runtime
// evaluation.
import 'dart:mirrors';
import 'package:expect/expect.dart';
const top_const = identical(-0.0, 0);
@top_const
class C {}
void main() {
var local_var = identical(-0.0, 0);
var metadata = reflectClass(C).metadata[0].reflectee;
Expect.equals(top_const, metadata);
Expect.equals(local_var, metadata);
}

View file

@ -61,9 +61,9 @@ void main() {
var h3 = new H3();
// Need to access the metadata to trigger the expected compilation error.
reflectClass(H1).metadata; // metadata1: continued
reflectClass(H2).metadata; // metadata2: continued
reflectClass(H3).metadata; // metadata3: continued
reflectClass(H1).metadata; //# metadata1: continued
reflectClass(H2).metadata; //# metadata2: continued
reflectClass(H3).metadata; //# metadata3: continued
asyncEnd();
});

View file

@ -2,13 +2,31 @@
// 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.
library test.null_test;
// VMOptions=--optimization-counter-threshold=5
import 'dart:mirrors';
import "dart:mirrors";
import "package:expect/expect.dart";
import 'package:expect/expect.dart';
void main() {
for (int i = 0; i < 10; i++) {
test();
}
}
void test() {
ClassMirror cm = reflectClass(Null);
InstanceMirror im1 = reflect(null);
Expect.equals(cm, im1.type);
Expect.isTrue(im1.invoke(const Symbol("=="), [null]).reflectee);
Expect.isFalse(im1.invoke(const Symbol("=="), [42]).reflectee);
var obj = confuse(null); // Null value that isn't known at compile-time.
InstanceMirror im2 = reflect(obj);
Expect.equals(cm, im2.type);
Expect.isTrue(im2.invoke(const Symbol("=="), [null]).reflectee);
Expect.isFalse(im2.invoke(const Symbol("=="), [42]).reflectee);
main() {
InstanceMirror nullMirror = reflect(null);
Expect.isTrue(nullMirror.getField(#hashCode).reflectee is int);
Expect.equals(null.hashCode, nullMirror.getField(#hashCode).reflectee);
@ -16,8 +34,8 @@ main() {
Expect.isTrue(nullMirror.invoke(#==, [null]).reflectee);
Expect.isFalse(nullMirror.invoke(#==, [new Object()]).reflectee);
Expect.equals('null', nullMirror.invoke(#toString, []).reflectee);
Expect.throwsNoSuchMethodError(() => nullMirror.invoke(#notDefined, []),
'noSuchMethod');
Expect.throwsNoSuchMethodError(
() => nullMirror.invoke(#notDefined, []), 'noSuchMethod');
ClassMirror NullMirror = nullMirror.type;
Expect.equals(reflectClass(Null), NullMirror);
@ -38,3 +56,16 @@ main() {
}
Expect.equals(coreLibrary, NullMirror.owner);
}
// Magic incantation to avoid the compiler recognizing the constant values
// at compile time. If the result is computed at compile time, the dynamic code
// will not be tested.
confuse(x) {
try {
if (new DateTime.now().millisecondsSinceEpoch == 42) x = 42;
throw [x];
} on dynamic catch (e) {
return e[0];
}
return 42;
}

View file

@ -135,6 +135,7 @@ abstract class CompilerConfiguration {
List<String> vmOptions,
List<String> sharedOptions,
List<String> dart2jsOptions,
List<String> ddcOptions,
List<String> args) {
return sharedOptions.toList()..addAll(args);
}
@ -350,7 +351,7 @@ class ComposedCompilerConfiguration extends CompilerConfiguration {
}
List<String> computeCompilerArguments(
vmOptions, sharedOptions, dart2jsOptions, args) {
vmOptions, sharedOptions, dart2jsOptions, ddcOptions, args) {
// The result will be passed as an input to [extractArguments]
// (i.e. the arguments to the [PipelineCommand]).
return <String>[]..addAll(vmOptions)..addAll(sharedOptions)..addAll(args);
@ -446,6 +447,7 @@ class Dart2jsCompilerConfiguration extends Dart2xCompilerConfiguration {
List<String> vmOptions,
List<String> sharedOptions,
List<String> dart2jsOptions,
List<String> ddcOptions,
List<String> args) {
return <String>[]
..addAll(sharedOptions)
@ -493,8 +495,9 @@ class DevCompilerConfiguration extends CompilerConfiguration {
List<String> vmOptions,
List<String> sharedOptions,
List<String> dart2jsOptions,
List<String> ddcOptions,
List<String> args) {
var result = sharedOptions.toList();
var result = sharedOptions.toList()..addAll(ddcOptions);
// The file being compiled is the last argument.
result.add(args.last);
@ -580,8 +583,9 @@ class DevKernelCompilerConfiguration extends CompilerConfiguration {
List<String> vmOptions,
List<String> sharedOptions,
List<String> dart2jsOptions,
List<String> ddcOptions,
List<String> args) {
var result = sharedOptions.toList();
var result = sharedOptions.toList()..addAll(ddcOptions);
// The file being compiled is the last argument.
result.add(args.last);
@ -863,7 +867,7 @@ class PrecompilerCompilerConfiguration extends CompilerConfiguration
}
List<String> computeCompilerArguments(
vmOptions, sharedOptions, dart2jsOptions, originalArguments) {
vmOptions, sharedOptions, dart2jsOptions, ddcOptions, originalArguments) {
List<String> args = [];
if (_isChecked) {
args.add('--enable_asserts');
@ -939,7 +943,7 @@ class AppJitCompilerConfiguration extends CompilerConfiguration {
}
List<String> computeCompilerArguments(
vmOptions, sharedOptions, dart2jsOptions, originalArguments) {
vmOptions, sharedOptions, dart2jsOptions, ddcOptions, originalArguments) {
var args = <String>[];
if (_isChecked) {
args.add('--enable_asserts');
@ -1194,6 +1198,7 @@ class FastaCompilerConfiguration extends CompilerConfiguration {
List<String> vmOptions,
List<String> sharedOptions,
List<String> dart2jsOptions,
List<String> ddcOptions,
List<String> args) {
var arguments = <String>[];
for (var argument in args) {

View file

@ -883,12 +883,13 @@ class StandardTestSuite extends TestSuite {
var compilerConfiguration = configuration.compilerConfiguration;
var sharedOptions = info.optionsFromFile['sharedOptions'] as List<String>;
var dart2jsOptions = info.optionsFromFile['dart2jsOptions'] as List<String>;
var ddcOptions = info.optionsFromFile['ddcOptions'] as List<String>;
var compileTimeArguments = <String>[];
String tempDir;
if (compilerConfiguration.hasCompiler) {
compileTimeArguments = compilerConfiguration.computeCompilerArguments(
vmOptions, sharedOptions, dart2jsOptions, args);
vmOptions, sharedOptions, dart2jsOptions, ddcOptions, args);
// Avoid doing this for analyzer.
var path = info.filePath;
if (vmOptionsVariant != 0) {
@ -1460,6 +1461,7 @@ class StandardTestSuite extends TestSuite {
List<String> dartOptions;
List<String> sharedOptions;
List<String> dart2jsOptions;
List<String> ddcOptions;
Map<String, String> environment;
String packageRoot;
String packages;
@ -1489,6 +1491,7 @@ class StandardTestSuite extends TestSuite {
dartOptions = singleListOfOptions('DartOptions');
sharedOptions = singleListOfOptions('SharedOptions');
dart2jsOptions = singleListOfOptions('dart2jsOptions');
ddcOptions = singleListOfOptions('dartdevcOptions');
matches = environmentRegExp.allMatches(contents);
for (var match in matches) {
@ -1587,6 +1590,7 @@ class StandardTestSuite extends TestSuite {
"vmOptions": result,
"sharedOptions": sharedOptions ?? <String>[],
"dart2jsOptions": dart2jsOptions ?? <String>[],
"ddcOptions": ddcOptions ?? <String>[],
"dartOptions": dartOptions,
"environment": environment,
"packageRoot": packageRoot,