Version 2.0.0-dev.12.0
Merge commit '8c38a415dead901d369d9c5826c52ef53a395f95' into dev
diff --git a/.packages b/.packages
index a2dd24e..d559cca 100644
--- a/.packages
+++ b/.packages
@@ -29,6 +29,7 @@
crypto:third_party/pkg/crypto/lib
csslib:third_party/pkg/csslib/lib
dart2js_info:third_party/pkg/dart2js_info/lib
+dart_internal:pkg/dart_internal/lib
dart_messages:pkg/dart_messages/lib
dart_style:third_party/pkg_tested/dart_style/lib
dartdoc:third_party/pkg/dartdoc/lib
diff --git a/DEPS b/DEPS
index 7b396d4..1c6c875 100644
--- a/DEPS
+++ b/DEPS
@@ -77,7 +77,7 @@
# For more details, see https://github.com/dart-lang/sdk/issues/30164
"dart_style_tag": "@1.0.7", # Please see the note above before updating.
- "dartdoc_tag" : "@v0.14.1",
+ "dartdoc_tag" : "@v0.15.0+1",
"fixnum_tag": "@0.10.5",
"func_rev": "@25eec48146a58967d75330075ab376b3838b18a8",
"glob_tag": "@1.1.5",
@@ -93,17 +93,17 @@
"json_rpc_2_tag": "@2.0.4",
"linter_tag": "@0.1.40",
"logging_tag": "@0.11.3+1",
- "markdown_tag": "@0.11.4",
+ "markdown_tag": "@1.0.0",
"matcher_tag": "@0.12.1+4",
"mime_tag": "@0.9.4",
"mockito_tag": "@2.0.2",
- "mustache4dart_tag" : "@v1.1.0",
+ "mustache4dart_tag" : "@v2.1.0",
"oauth2_tag": "@1.1.0",
"observatory_pub_packages_rev": "@4c282bb240b68f407c8c7779a65c68eeb0139dc6",
"package_config_tag": "@1.0.3",
"package_resolver_tag": "@1.0.2+1",
"path_tag": "@1.4.2",
- "plugin_tag": "@0.2.0",
+ "plugin_tag": "@0.2.0+2",
"ply_rev": "@604b32590ffad5cbb82e4afef1d305512d06ae93",
"pool_tag": "@1.3.3",
"protobuf_tag": "@0.5.4",
@@ -115,8 +115,8 @@
"scheduled_test_tag": "@0.12.11+1",
"shelf_static_tag": "@0.2.5",
"shelf_packages_handler_tag": "@1.0.3",
- "shelf_tag": "@0.6.8",
- "shelf_web_socket_tag": "@0.2.1",
+ "shelf_tag": "@0.7.1",
+ "shelf_web_socket_tag": "@0.2.2",
"source_map_stack_trace_tag": "@1.1.4",
"source_maps-0.9.4_rev": "@38524",
"source_maps_tag": "@0.10.4",
@@ -126,7 +126,7 @@
"string_scanner_tag": "@1.0.2",
"sunflower_rev": "@879b704933413414679396b129f5dfa96f7a0b1e",
"term_glyph_tag": "@1.0.0",
- "test_reflective_loader_tag": "@0.1.0",
+ "test_reflective_loader_tag": "@0.1.3",
"test_tag": "@0.12.24+6",
"tuple_tag": "@v1.0.1",
"typed_data_tag": "@1.1.3",
@@ -135,7 +135,7 @@
"watcher_tag": "@0.9.7+4",
"web_socket_channel_tag": "@1.0.6",
"WebCore_rev": "@3c45690813c112373757bbef53de1602a62af609",
- "yaml_tag": "@2.1.12",
+ "yaml_tag": "@2.1.13",
"zlib_rev": "@c3d0a6190f2f8c924a05ab6cc97b8f975bddd33f",
}
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index 52c6c4f..4e65f3e 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -15,6 +15,39 @@
import subprocess
import tempfile
+
+def _CheckFormat(input_api, identification, extension, windows,
+ hasFormatErrors):
+ local_root = input_api.change.RepositoryRoot()
+ upstream = input_api.change._upstream
+ unformatted_files = []
+ for git_file in input_api.AffectedTextFiles():
+ filename = git_file.AbsoluteLocalPath()
+ if filename.endswith(extension) and hasFormatErrors(filename=filename):
+ old_version_has_errors = False
+ try:
+ path = git_file.LocalPath()
+ if windows:
+ # Git expects a linux style path.
+ path = path.replace(os.sep, '/')
+ old_contents = scm.GIT.Capture(
+ ['show', upstream + ':' + path],
+ cwd=local_root,
+ strip_out=False)
+ if hasFormatErrors(contents=old_contents):
+ old_version_has_errors = True
+ except subprocess.CalledProcessError as e:
+ old_version_has_errors = False
+
+ if old_version_has_errors:
+ print("WARNING: %s has existing and possibly new %s issues" %
+ (git_file.LocalPath(), identification))
+ else:
+ unformatted_files.append(filename)
+
+ return unformatted_files
+
+
def _CheckBuildStatus(input_api, output_api):
results = []
status_check = input_api.canned_checks.CheckTreeIsOpen(
@@ -24,6 +57,7 @@
results.extend(status_check)
return results
+
def _CheckDartFormat(input_api, output_api):
local_root = input_api.change.RepositoryRoot()
upstream = input_api.change._upstream
@@ -57,33 +91,8 @@
# parsed and formatted. Don't treat those as errors.
return process.returncode == 1
- unformatted_files = []
- for git_file in input_api.AffectedTextFiles():
- filename = git_file.AbsoluteLocalPath()
- if filename.endswith('.dart'):
- if HasFormatErrors(filename=filename):
- old_version_has_errors = False
- try:
- path = git_file.LocalPath()
- if windows:
- # Git expects a linux style path.
- path = path.replace(os.sep, '/')
- old_contents = scm.GIT.Capture(
- ['show', upstream + ':' + path],
- cwd=local_root,
- strip_out=False)
- if HasFormatErrors(contents=old_contents):
- old_version_has_errors = True
- except subprocess.CalledProcessError as e:
- # TODO(jacobr): verify that the error really is that the file was
- # added for this CL.
- old_version_has_errors = False
-
- if old_version_has_errors:
- print("WARNING: %s has existing and possibly new dartfmt issues" %
- git_file.LocalPath())
- else:
- unformatted_files.append(filename)
+ unformatted_files = _CheckFormat(input_api, "dartfmt", ".dart", windows,
+ HasFormatErrors)
if unformatted_files:
lineSep = " \\\n"
@@ -97,6 +106,7 @@
return []
+
def _CheckNewTests(input_api, output_api):
testsDirectories = [
# Dart 1 tests Dart 2.0 tests
@@ -167,11 +177,62 @@
return result
+
+def _CheckStatusFiles(input_api, output_api):
+ local_root = input_api.change.RepositoryRoot()
+ upstream = input_api.change._upstream
+ utils = imp.load_source('utils',
+ os.path.join(local_root, 'tools', 'utils.py'))
+
+ dart = os.path.join(utils.CheckedInSdkPath(), 'bin', 'dart')
+ lint = os.path.join(local_root, 'pkg', 'status_file', 'bin', 'lint.dart')
+
+ windows = utils.GuessOS() == 'win32'
+ if windows:
+ dart += '.bat'
+
+ if not os.path.isfile(dart):
+ print('WARNING: dart not found: %s' % dart)
+ return []
+
+ if not os.path.isfile(lint):
+ print('WARNING: Status file linter not found: %s' % lint)
+ return []
+
+ def HasFormatErrors(filename=None, contents=None):
+ args = [dart, lint] + (['-t'] if contents else [filename])
+ process = subprocess.Popen(args,
+ stdout=subprocess.PIPE,
+ stdin=subprocess.PIPE)
+ process.communicate(input=contents)
+ return process.returncode != 0
+
+ unformatted_files = _CheckFormat(input_api, "status file", ".status",
+ windows, HasFormatErrors)
+
+ if unformatted_files:
+ normalize = os.path.join(local_root, 'pkg', 'status_file', 'bin',
+ 'normalize.dart')
+ lineSep = " \\\n"
+ if windows:
+ lineSep = " ^\n";
+ return [output_api.PresubmitError(
+ 'Status files are not normalized.\n'
+ 'Fix these issues with:\n'
+ '%s %s -w%s%s' % (dart, normalize, lineSep,
+ lineSep.join(unformatted_files)))]
+
+ return []
+
+
def CheckChangeOnCommit(input_api, output_api):
return (_CheckBuildStatus(input_api, output_api) +
_CheckNewTests(input_api, output_api) +
- _CheckDartFormat(input_api, output_api))
+ _CheckDartFormat(input_api, output_api) +
+ _CheckStatusFiles(input_api, output_api))
+
def CheckChangeOnUpload(input_api, output_api):
return (_CheckNewTests(input_api, output_api) +
- _CheckDartFormat(input_api, output_api))
+ _CheckDartFormat(input_api, output_api) +
+ _CheckStatusFiles(input_api, output_api))
diff --git a/docs/language/dartLangSpec.tex b/docs/language/dartLangSpec.tex
index 7203fd1..fb976cf 100644
--- a/docs/language/dartLangSpec.tex
+++ b/docs/language/dartLangSpec.tex
@@ -32,6 +32,7 @@
% - Constant `==` operations now also allowed if just one operand is null.
% - Make flatten not be recursive.
% - Disallow implementing two instantiations of the same generic interface.
+% - Update "FutureOr" specification for Dart 2.0.
%
% 1.15
% - Change how language specification describes control flow.
@@ -8399,28 +8400,47 @@
The built-in type declaration \code{FutureOr},
which is declared in the library \code{dart:async},
defines a generic type with one type parameter (\ref{generics}).
-If the \code{FutureOr} type, optionally followed by type arguments,
-is used as a type, it denotes the \DYNAMIC{} type.
-As such, the \code{FutureOr} type cannot be used where \DYNAMIC{} cannot be
-used as a type.
-If the type arguments applied to \code{FutureOr} would issue static warnings
+
+\LMHash{}
+The \code{FutureOr<$T$>} type is a non-class type with the following
+type relations:
+\begin{itemize}
+ \item{} $T$ <: \code{FutureOr<$T$>}.
+ \item{} \code{Future<$T$>} <: \code{FutureOr<$T$>}.
+ \item{} If $T$ <: $S$ and \code{Future<$T$>} <: $S$
+ then \code{FutureOr<$T$>} <: $S$.
+ \commentary{In particular, \code{FutureOr<$T$>} <: \code{Object}.}
+\end{itemize}.
+\commentary{The last point guarantees that generic type \code{FutureOr} is
+{\em covariant} in its type parameter, just like class types.
+That is, if $S$ <: $T$ then \code{FutureOr<$S$>} <: \code{FutureOr<$T$>}.}
+If the type arguments passed to \code{FutureOr} would issue static warnings
if applied to a normal generic class with one type parameter,
-the same warnings are issued for \code{FutureOr},
-even though the type arguments are otherwise ignored.
+the same warnings are issued for \code{FutureOr}.
The name \code{FutureOr} as an expression
-denotes the same \code{Type} object as \DYNAMIC{}.
+denotes a \code{Type} object representing the type \code{FutureOr<dynamic>}.
\rationale{
-The \code{FutureOr} type is reserved for future use,
-for cases where a value can be either an instance of the type \metavar{type}
+The \code{FutureOr<\metavar{type}>} type represents a case where a value can be
+either an instance of the type \metavar{type}
or the type \code{Future<\metavar{type}>}.
Such cases occur naturally in asynchronous code.
-Using \code{FutureOr} instead of \DYNAMIC{} will allow some tools
+Using \code{FutureOr} instead of \DYNAMIC{} allows some tools
to provide a more precise type analysis.
}
-%\rationale {
-%Type objects reify the run-time types of instances. No instance ever has type \DYNAMIC{}.
-%}
+
+\LMHash{}
+The type \code{FutureOr<$T$>} has an interface that is identical to that
+of \code{Object}.
+\commentary{The only members that can be invoked on a value with static type
+\code{FutureOr<$T$>} are members that are also on \code{Object}.}
+\rationale{We only want to allow invocations of members that are inherited from
+a common supertype of both $T$ and \code{Future<$T$>}.
+In most cases the only common supertype is \code{Object}. The exceptions, like
+\code{FutureOr<Future<Object>>} which has \code{Future<Object>} as common
+supertype, are few and not practically useful, so for now we choose to
+only allow invocations of members inherited from \code{Object}.
+}
\subsection{Type Void}
diff --git a/pkg/analysis_server/lib/src/services/completion/dart/arglist_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/arglist_contributor.dart
index 2de2296..0208901 100644
--- a/pkg/analysis_server/lib/src/services/completion/dart/arglist_contributor.dart
+++ b/pkg/analysis_server/lib/src/services/completion/dart/arglist_contributor.dart
@@ -312,7 +312,8 @@
Token token =
entity is AstNode ? entity.endToken : entity is Token ? entity : null;
return (token != containingNode?.endToken) &&
- token?.next?.type == TokenType.COMMA;
+ token?.next?.type == TokenType.COMMA &&
+ !token.next.isSynthetic;
}
bool _isInFlutterCreation(DartCompletionRequest request) {
diff --git a/pkg/analysis_server/test/integration/completion/get_suggestions_test.dart b/pkg/analysis_server/test/integration/completion/get_suggestions_test.dart
index 1efd154..f2b5bd3 100644
--- a/pkg/analysis_server/test/integration/completion/get_suggestions_test.dart
+++ b/pkg/analysis_server/test/integration/completion/get_suggestions_test.dart
@@ -2,6 +2,8 @@
// 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:async';
+
import 'package:analysis_server/protocol/protocol_generated.dart';
import 'package:analyzer_plugin/protocol/protocol_common.dart';
import 'package:test/test.dart';
@@ -12,6 +14,7 @@
main() {
defineReflectiveSuite(() {
defineReflectiveTests(GetSuggestionsTest);
+ defineReflectiveTests(GetSuggestionsTest_PreviewDart2);
});
}
@@ -116,3 +119,23 @@
});
}
}
+
+@reflectiveTest
+class GetSuggestionsTest_PreviewDart2 extends GetSuggestionsTest {
+ @override
+ bool get usePreviewDart2 => true;
+
+ @override
+ @failingTest
+ Future test_getSuggestions() => super.test_getSuggestions();
+
+ @override
+ @failingTest
+ Future test_getSuggestions_onlyOverlay() =>
+ super.test_getSuggestions_onlyOverlay();
+
+ @override
+ @failingTest
+ Future test_getSuggestions_onlyOverlay_noWait() =>
+ super.test_getSuggestions_onlyOverlay_noWait();
+}
diff --git a/pkg/analysis_server/test/integration/edit/format_test.dart b/pkg/analysis_server/test/integration/edit/format_test.dart
index 8906109..4380afd 100644
--- a/pkg/analysis_server/test/integration/edit/format_test.dart
+++ b/pkg/analysis_server/test/integration/edit/format_test.dart
@@ -11,6 +11,7 @@
main() {
defineReflectiveSuite(() {
defineReflectiveTests(FormatTest);
+ defineReflectiveTests(FormatTest_PreviewDart2);
});
}
@@ -78,3 +79,9 @@
}
}
}
+
+@reflectiveTest
+class FormatTest_PreviewDart2 extends FormatTest {
+ @override
+ bool get usePreviewDart2 => true;
+}
diff --git a/pkg/analysis_server/test/integration/edit/get_assists_test.dart b/pkg/analysis_server/test/integration/edit/get_assists_test.dart
index 69e10f0..0918d7b 100644
--- a/pkg/analysis_server/test/integration/edit/get_assists_test.dart
+++ b/pkg/analysis_server/test/integration/edit/get_assists_test.dart
@@ -2,6 +2,8 @@
// 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:async';
+
import 'package:analysis_server/protocol/protocol_generated.dart';
import 'package:analyzer_plugin/protocol/protocol_common.dart';
import 'package:test/test.dart';
@@ -12,6 +14,7 @@
main() {
defineReflectiveSuite(() {
defineReflectiveTests(GetAssistsTest);
+ defineReflectiveTests(GetAssistsTest_PreviewDart2);
});
}
@@ -48,3 +51,13 @@
expect(currentAnalysisErrors[pathname], isEmpty);
}
}
+
+@reflectiveTest
+class GetAssistsTest_PreviewDart2 extends GetAssistsTest {
+ @override
+ bool get usePreviewDart2 => true;
+
+ @override
+ @failingTest
+ Future test_has_assists() => test_has_assists();
+}
diff --git a/pkg/analysis_server/test/integration/edit/get_available_refactorings_test.dart b/pkg/analysis_server/test/integration/edit/get_available_refactorings_test.dart
index 820b586..0ae9808 100644
--- a/pkg/analysis_server/test/integration/edit/get_available_refactorings_test.dart
+++ b/pkg/analysis_server/test/integration/edit/get_available_refactorings_test.dart
@@ -11,6 +11,7 @@
main() {
defineReflectiveSuite(() {
defineReflectiveTests(GetAvailableRefactoringsTest);
+ defineReflectiveTests(GetAvailableRefactoringsTest_PreviewDart2);
});
}
@@ -35,3 +36,10 @@
expect(result.kinds, isNotEmpty);
}
}
+
+@reflectiveTest
+class GetAvailableRefactoringsTest_PreviewDart2
+ extends GetAvailableRefactoringsTest {
+ @override
+ bool get usePreviewDart2 => true;
+}
diff --git a/pkg/analysis_server/test/integration/edit/get_fixes_test.dart b/pkg/analysis_server/test/integration/edit/get_fixes_test.dart
index a76680d..fc111ae 100644
--- a/pkg/analysis_server/test/integration/edit/get_fixes_test.dart
+++ b/pkg/analysis_server/test/integration/edit/get_fixes_test.dart
@@ -2,6 +2,8 @@
// 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:async';
+
import 'package:analysis_server/protocol/protocol_generated.dart';
import 'package:analyzer_plugin/protocol/protocol_common.dart';
import 'package:test/test.dart';
@@ -12,6 +14,7 @@
main() {
defineReflectiveSuite(() {
defineReflectiveTests(GetFixesTest);
+ defineReflectiveTests(GetFixesTest_PreviewDart2);
});
}
@@ -58,3 +61,13 @@
expect(result.fixes, isEmpty);
}
}
+
+@reflectiveTest
+class GetFixesTest_PreviewDart2 extends GetFixesTest {
+ @override
+ bool get usePreviewDart2 => true;
+
+ @override
+ @failingTest
+ Future test_has_fixes() => super.test_has_fixes();
+}
diff --git a/pkg/analysis_server/test/integration/edit/get_postfix_completion_test.dart b/pkg/analysis_server/test/integration/edit/get_postfix_completion_test.dart
index b4b3cd4..69acbdf 100644
--- a/pkg/analysis_server/test/integration/edit/get_postfix_completion_test.dart
+++ b/pkg/analysis_server/test/integration/edit/get_postfix_completion_test.dart
@@ -2,6 +2,8 @@
// 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:async';
+
import 'package:analysis_server/protocol/protocol_generated.dart';
import 'package:analyzer_plugin/protocol/protocol_common.dart';
import 'package:test/test.dart';
@@ -12,6 +14,7 @@
main() {
defineReflectiveSuite(() {
defineReflectiveTests(GetPostfixCompletionTest);
+ defineReflectiveTests(GetPostfixCompletionTest_PreviewDart2);
});
}
@@ -50,3 +53,9 @@
expect(currentAnalysisErrors[pathname], isEmpty);
}
}
+
+@reflectiveTest
+class GetPostfixCompletionTest_PreviewDart2 extends GetPostfixCompletionTest {
+ @override
+ bool get usePreviewDart2 => true;
+}
diff --git a/pkg/analysis_server/test/integration/edit/get_refactoring_test.dart b/pkg/analysis_server/test/integration/edit/get_refactoring_test.dart
index c3e5553..59ac3a5 100644
--- a/pkg/analysis_server/test/integration/edit/get_refactoring_test.dart
+++ b/pkg/analysis_server/test/integration/edit/get_refactoring_test.dart
@@ -2,6 +2,8 @@
// 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:async';
+
import 'package:analysis_server/protocol/protocol_generated.dart';
import 'package:analyzer_plugin/protocol/protocol_common.dart';
import 'package:test/test.dart';
@@ -12,6 +14,7 @@
main() {
defineReflectiveSuite(() {
defineReflectiveTests(GetRefactoringTest);
+ defineReflectiveTests(GetRefactoringTest_PreviewDart2);
});
}
@@ -64,3 +67,13 @@
expect(currentAnalysisErrors[pathname], isEmpty);
}
}
+
+@reflectiveTest
+class GetRefactoringTest_PreviewDart2 extends GetRefactoringTest {
+ @override
+ bool get usePreviewDart2 => true;
+
+ @override
+ @failingTest
+ Future test_rename() => test_rename();
+}
diff --git a/pkg/analysis_server/test/integration/edit/get_statement_completion_test.dart b/pkg/analysis_server/test/integration/edit/get_statement_completion_test.dart
index 1adece6..3019f6e 100644
--- a/pkg/analysis_server/test/integration/edit/get_statement_completion_test.dart
+++ b/pkg/analysis_server/test/integration/edit/get_statement_completion_test.dart
@@ -2,6 +2,8 @@
// 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:async';
+
import 'package:analysis_server/protocol/protocol_generated.dart';
import 'package:analyzer_plugin/protocol/protocol_common.dart';
import 'package:test/test.dart';
@@ -12,6 +14,7 @@
main() {
defineReflectiveSuite(() {
defineReflectiveTests(GetStatementCompletionTest);
+ defineReflectiveTests(GetStatementCompletionTest_PreviewDart2);
});
}
@@ -45,3 +48,14 @@
expect(currentAnalysisErrors[pathname], isEmpty);
}
}
+
+@reflectiveTest
+class GetStatementCompletionTest_PreviewDart2
+ extends GetStatementCompletionTest {
+ @override
+ bool get usePreviewDart2 => true;
+
+ @override
+ @failingTest
+ Future test_statement_completion() => super.test_statement_completion();
+}
diff --git a/pkg/analysis_server/test/integration/edit/import_elements_test.dart b/pkg/analysis_server/test/integration/edit/import_elements_test.dart
index b22fa39..4f3d343 100644
--- a/pkg/analysis_server/test/integration/edit/import_elements_test.dart
+++ b/pkg/analysis_server/test/integration/edit/import_elements_test.dart
@@ -16,6 +16,8 @@
main() {
defineReflectiveSuite(() {
defineReflectiveTests(AnalysisGetImportElementsIntegrationTest);
+ defineReflectiveTests(
+ AnalysisGetImportElementsIntegrationTest_PreviewDart2);
});
}
@@ -137,3 +139,10 @@
], expectedFile: libName);
}
}
+
+@reflectiveTest
+class AnalysisGetImportElementsIntegrationTest_PreviewDart2
+ extends AnalysisGetImportElementsIntegrationTest {
+ @override
+ bool get usePreviewDart2 => true;
+}
diff --git a/pkg/analysis_server/test/integration/edit/is_postfix_completion_applicable_test.dart b/pkg/analysis_server/test/integration/edit/is_postfix_completion_applicable_test.dart
index be1ff11..afda363 100644
--- a/pkg/analysis_server/test/integration/edit/is_postfix_completion_applicable_test.dart
+++ b/pkg/analysis_server/test/integration/edit/is_postfix_completion_applicable_test.dart
@@ -11,6 +11,7 @@
main() {
defineReflectiveSuite(() {
defineReflectiveTests(IsPostfixCompletionApplicableTest);
+ defineReflectiveTests(IsPostfixCompletionApplicableTest_PreviewDart2);
});
}
@@ -39,3 +40,10 @@
expect(result.value, isTrue);
}
}
+
+@reflectiveTest
+class IsPostfixCompletionApplicableTest_PreviewDart2
+ extends IsPostfixCompletionApplicableTest {
+ @override
+ bool get usePreviewDart2 => true;
+}
diff --git a/pkg/analysis_server/test/integration/edit/list_postfix_completion_templates_test.dart b/pkg/analysis_server/test/integration/edit/list_postfix_completion_templates_test.dart
index f248e06..b5f52b7 100644
--- a/pkg/analysis_server/test/integration/edit/list_postfix_completion_templates_test.dart
+++ b/pkg/analysis_server/test/integration/edit/list_postfix_completion_templates_test.dart
@@ -11,6 +11,7 @@
main() {
defineReflectiveSuite(() {
defineReflectiveTests(ListPostfixCompletionTemplatesTest);
+ defineReflectiveTests(ListPostfixCompletionTemplatesTest_PreviewDart2);
});
}
@@ -39,3 +40,10 @@
expect(result.templates[0].runtimeType, PostfixTemplateDescriptor);
}
}
+
+@reflectiveTest
+class ListPostfixCompletionTemplatesTest_PreviewDart2
+ extends ListPostfixCompletionTemplatesTest {
+ @override
+ bool get usePreviewDart2 => true;
+}
diff --git a/pkg/analysis_server/test/integration/edit/organize_directives_test.dart b/pkg/analysis_server/test/integration/edit/organize_directives_test.dart
index 0e372f4..429c143 100644
--- a/pkg/analysis_server/test/integration/edit/organize_directives_test.dart
+++ b/pkg/analysis_server/test/integration/edit/organize_directives_test.dart
@@ -2,6 +2,8 @@
// 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:async';
+
import 'package:analysis_server/protocol/protocol_generated.dart';
import 'package:analyzer_plugin/protocol/protocol_common.dart';
import 'package:test/test.dart';
@@ -12,6 +14,7 @@
main() {
defineReflectiveSuite(() {
defineReflectiveTests(OrganizeDirectivesTest);
+ defineReflectiveTests(OrganizeDirectivesTest_PreviewDart2);
});
}
@@ -74,3 +77,9 @@
}
}
}
+
+@reflectiveTest
+class OrganizeDirectivesTest_PreviewDart2 extends OrganizeDirectivesTest {
+ @override
+ bool get usePreviewDart2 => true;
+}
diff --git a/pkg/analysis_server/test/integration/edit/sort_members_test.dart b/pkg/analysis_server/test/integration/edit/sort_members_test.dart
index 3ff78a7..277c168 100644
--- a/pkg/analysis_server/test/integration/edit/sort_members_test.dart
+++ b/pkg/analysis_server/test/integration/edit/sort_members_test.dart
@@ -12,6 +12,7 @@
main() {
defineReflectiveSuite(() {
defineReflectiveTests(SortMembersTest);
+ defineReflectiveTests(SortMembersTest_PreviewDart2);
});
}
@@ -62,3 +63,9 @@
}
}
}
+
+@reflectiveTest
+class SortMembersTest_PreviewDart2 extends SortMembersTest {
+ @override
+ bool get usePreviewDart2 => true;
+}
diff --git a/pkg/analysis_server/test/integration/search/find_element_references_test.dart b/pkg/analysis_server/test/integration/search/find_element_references_test.dart
index 10bfbfa..823e17f 100644
--- a/pkg/analysis_server/test/integration/search/find_element_references_test.dart
+++ b/pkg/analysis_server/test/integration/search/find_element_references_test.dart
@@ -13,6 +13,7 @@
main() {
defineReflectiveSuite(() {
defineReflectiveTests(FindElementReferencesTest);
+ defineReflectiveTests(FindElementReferencesTest_PreviewDart2);
});
}
@@ -70,3 +71,14 @@
return searchParams.results;
}
}
+
+@reflectiveTest
+class FindElementReferencesTest_PreviewDart2 extends FindElementReferencesTest {
+ @override
+ bool get usePreviewDart2 => true;
+
+ @override
+ @failingTest
+ // TODO(devoncarew): 'NoSuchMethodError: The getter 'source' was called on null'
+ Future test_findReferences() => new Future.error('failing test');
+}
diff --git a/pkg/analysis_server/test/integration/search/find_member_declarations_test.dart b/pkg/analysis_server/test/integration/search/find_member_declarations_test.dart
index 81148c0..babe602 100644
--- a/pkg/analysis_server/test/integration/search/find_member_declarations_test.dart
+++ b/pkg/analysis_server/test/integration/search/find_member_declarations_test.dart
@@ -11,6 +11,7 @@
main() {
defineReflectiveSuite(() {
defineReflectiveTests(FindMemberDeclarationsTest);
+ defineReflectiveTests(FindMemberDeclarationsTest_PreviewDart2);
});
}
@@ -49,3 +50,10 @@
expect(result.path.first.name, 'bar');
}
}
+
+@reflectiveTest
+class FindMemberDeclarationsTest_PreviewDart2
+ extends FindMemberDeclarationsTest {
+ @override
+ bool get usePreviewDart2 => true;
+}
diff --git a/pkg/analysis_server/test/integration/search/find_member_references_test.dart b/pkg/analysis_server/test/integration/search/find_member_references_test.dart
index 36fccbc..9c9cac3 100644
--- a/pkg/analysis_server/test/integration/search/find_member_references_test.dart
+++ b/pkg/analysis_server/test/integration/search/find_member_references_test.dart
@@ -2,6 +2,8 @@
// 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:async';
+
import 'package:analysis_server/protocol/protocol_generated.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -11,6 +13,7 @@
main() {
defineReflectiveSuite(() {
defineReflectiveTests(FindMemberReferencesTest);
+ defineReflectiveTests(FindMemberReferencesTest_PreviewDart2);
});
}
@@ -50,3 +53,14 @@
expect(result.path.first.name, 'baz');
}
}
+
+@reflectiveTest
+class FindMemberReferencesTest_PreviewDart2 extends FindMemberReferencesTest {
+ @override
+ bool get usePreviewDart2 => true;
+
+ @override
+ @failingTest
+ // TODO(devoncarew): 'NoSuchMethodError: The getter 'element' was called on null'
+ Future test_findMemberReferences() => new Future.error('failing test');
+}
diff --git a/pkg/analysis_server/test/integration/search/find_top_level_declarations_test.dart b/pkg/analysis_server/test/integration/search/find_top_level_declarations_test.dart
index 66352f8..a422c7a 100644
--- a/pkg/analysis_server/test/integration/search/find_top_level_declarations_test.dart
+++ b/pkg/analysis_server/test/integration/search/find_top_level_declarations_test.dart
@@ -11,6 +11,7 @@
main() {
defineReflectiveSuite(() {
defineReflectiveTests(FindTopLevelDeclarationsTest);
+ defineReflectiveTests(FindTopLevelDeclarationsTest_PreviewDart2);
});
}
@@ -54,3 +55,10 @@
fail('No result for $pathname');
}
}
+
+@reflectiveTest
+class FindTopLevelDeclarationsTest_PreviewDart2
+ extends FindTopLevelDeclarationsTest {
+ @override
+ bool get usePreviewDart2 => true;
+}
diff --git a/pkg/analysis_server/test/integration/search/get_type_hierarchy_test.dart b/pkg/analysis_server/test/integration/search/get_type_hierarchy_test.dart
index 0919aa2..2d9a0a2 100644
--- a/pkg/analysis_server/test/integration/search/get_type_hierarchy_test.dart
+++ b/pkg/analysis_server/test/integration/search/get_type_hierarchy_test.dart
@@ -14,6 +14,7 @@
main() {
defineReflectiveSuite(() {
defineReflectiveTests(GetTypeHierarchyTest);
+ defineReflectiveTests(GetTypeHierarchyTest_PreviewDart2);
});
}
@@ -273,3 +274,14 @@
}
}
}
+
+@reflectiveTest
+class GetTypeHierarchyTest_PreviewDart2 extends GetTypeHierarchyTest {
+ @override
+ bool get usePreviewDart2 => true;
+
+ @override
+ @failingTest
+ // TODO(devoncarew): 'NoSuchMethodError: The getter 'source' was called on null'
+ Future test_getTypeHierarchy() => new Future.error('failing test');
+}
diff --git a/pkg/analysis_server/test/integration/server/get_version_test.dart b/pkg/analysis_server/test/integration/server/get_version_test.dart
index c3dc407..485b771 100644
--- a/pkg/analysis_server/test/integration/server/get_version_test.dart
+++ b/pkg/analysis_server/test/integration/server/get_version_test.dart
@@ -9,6 +9,7 @@
main() {
defineReflectiveSuite(() {
defineReflectiveTests(GetVersionTest);
+ defineReflectiveTests(GetVersionTest_PreviewDart2);
});
}
@@ -18,3 +19,9 @@
return sendServerGetVersion();
}
}
+
+@reflectiveTest
+class GetVersionTest_PreviewDart2 extends GetVersionTest {
+ @override
+ bool get usePreviewDart2 => true;
+}
diff --git a/pkg/analysis_server/test/integration/server/set_subscriptions_invalid_service_test.dart b/pkg/analysis_server/test/integration/server/set_subscriptions_invalid_service_test.dart
index c95e046..d86e9a0 100644
--- a/pkg/analysis_server/test/integration/server/set_subscriptions_invalid_service_test.dart
+++ b/pkg/analysis_server/test/integration/server/set_subscriptions_invalid_service_test.dart
@@ -10,6 +10,7 @@
main() {
defineReflectiveSuite(() {
defineReflectiveTests(SetSubscriptionsInvalidTest);
+ defineReflectiveTests(SetSubscriptionsInvalidTest_PreviewDart2);
});
}
@@ -28,3 +29,10 @@
});
}
}
+
+@reflectiveTest
+class SetSubscriptionsInvalidTest_PreviewDart2
+ extends SetSubscriptionsInvalidTest {
+ @override
+ bool get usePreviewDart2 => true;
+}
diff --git a/pkg/analysis_server/test/integration/server/set_subscriptions_test.dart b/pkg/analysis_server/test/integration/server/set_subscriptions_test.dart
index 9cfd81c..c180f9a 100644
--- a/pkg/analysis_server/test/integration/server/set_subscriptions_test.dart
+++ b/pkg/analysis_server/test/integration/server/set_subscriptions_test.dart
@@ -13,6 +13,7 @@
main() {
defineReflectiveSuite(() {
defineReflectiveTests(SetSubscriptionsTest);
+ defineReflectiveTests(SetSubscriptionsTest_PreviewDart2);
});
}
@@ -62,3 +63,9 @@
});
}
}
+
+@reflectiveTest
+class SetSubscriptionsTest_PreviewDart2 extends SetSubscriptionsTest {
+ @override
+ bool get usePreviewDart2 => true;
+}
diff --git a/pkg/analysis_server/test/integration/server/shutdown_test.dart b/pkg/analysis_server/test/integration/server/shutdown_test.dart
index 8478d48..8f24bdb 100644
--- a/pkg/analysis_server/test/integration/server/shutdown_test.dart
+++ b/pkg/analysis_server/test/integration/server/shutdown_test.dart
@@ -12,6 +12,7 @@
main() {
defineReflectiveSuite(() {
defineReflectiveTests(ShutdownTest);
+ defineReflectiveTests(ShutdownTest_PreviewDart2);
});
}
@@ -29,3 +30,9 @@
});
}
}
+
+@reflectiveTest
+class ShutdownTest_PreviewDart2 extends ShutdownTest {
+ @override
+ bool get usePreviewDart2 => true;
+}
diff --git a/pkg/analysis_server/test/integration/server/status_test.dart b/pkg/analysis_server/test/integration/server/status_test.dart
index 72163c3..1ffa86a 100644
--- a/pkg/analysis_server/test/integration/server/status_test.dart
+++ b/pkg/analysis_server/test/integration/server/status_test.dart
@@ -13,6 +13,7 @@
main() {
defineReflectiveSuite(() {
defineReflectiveTests(StatusTest);
+ defineReflectiveTests(StatusTest_PreviewDart2);
});
}
@@ -48,3 +49,9 @@
});
}
}
+
+@reflectiveTest
+class StatusTest_PreviewDart2 extends StatusTest {
+ @override
+ bool get usePreviewDart2 => true;
+}
diff --git a/pkg/analyzer/lib/dart/element/element.dart b/pkg/analyzer/lib/dart/element/element.dart
index 28efaec..555f10d 100644
--- a/pkg/analyzer/lib/dart/element/element.dart
+++ b/pkg/analyzer/lib/dart/element/element.dart
@@ -609,6 +609,12 @@
int get id;
/**
+ * Return `true` if this element has an annotation of the form
+ * '@alwaysThrows'.
+ */
+ bool get isAlwaysThrows;
+
+ /**
* Return `true` if this element has an annotation of the form '@deprecated'
* or '@Deprecated('..')'.
*/
@@ -809,6 +815,12 @@
Element get element;
/**
+ * Return `true` if this annotation marks the associated function as always
+ * throwing.
+ */
+ bool get isAlwaysThrows;
+
+ /**
* Return `true` if this annotation marks the associated element as being
* deprecated.
*/
diff --git a/pkg/analyzer/lib/src/dart/analysis/frontend_resolution.dart b/pkg/analyzer/lib/src/dart/analysis/frontend_resolution.dart
index 09bf570..00dda37 100644
--- a/pkg/analyzer/lib/src/dart/analysis/frontend_resolution.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/frontend_resolution.dart
@@ -92,11 +92,11 @@
class CollectedResolution {
/// The list of local declarations stored by body builders while
/// compiling the library.
- final List<kernel.Statement> kernelDeclarations = [];
+ final List<kernel.TreeNode> kernelDeclarations = [];
/// The list of references to local or external stored by body builders
/// while compiling the library.
- final List<kernel.TreeNode> kernelReferences = [];
+ final List<kernel.Node> kernelReferences = [];
/// The list of types stored by body builders while compiling the library.
final List<kernel.DartType> kernelTypes = [];
diff --git a/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart b/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart
index 49ab5d7..e7a18bb 100644
--- a/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart
@@ -206,8 +206,7 @@
var resolutions = new _ResolutionProvider(analyzerTarget.resolutions);
units.forEach((file, unit) {
_resolveFile2(file, unit, resolutions);
- // TODO(scheglov) Restore.
-// _computePendingMissingRequiredParameters(file, unit);
+ _computePendingMissingRequiredParameters(file, unit);
});
_computeConstants();
@@ -219,27 +218,26 @@
// });
// });
- // TODO(scheglov) Restore.
-// if (_analysisOptions.hint) {
-// PerformanceStatistics.hints.makeCurrentWhile(() {
-// units.forEach((file, unit) {
-// {
-// var visitor = new GatherUsedLocalElementsVisitor(_libraryElement);
-// unit.accept(visitor);
-// _usedLocalElementsList.add(visitor.usedElements);
-// }
-// {
-// var visitor =
-// new GatherUsedImportedElementsVisitor(_libraryElement);
-// unit.accept(visitor);
-// _usedImportedElementsList.add(visitor.usedElements);
-// }
-// });
-// units.forEach((file, unit) {
-// _computeHints(file, unit);
-// });
-// });
-// }
+ if (_analysisOptions.hint) {
+ PerformanceStatistics.hints.makeCurrentWhile(() {
+ units.forEach((file, unit) {
+ {
+ var visitor = new GatherUsedLocalElementsVisitor(_libraryElement);
+ unit.accept(visitor);
+ _usedLocalElementsList.add(visitor.usedElements);
+ }
+ {
+ var visitor =
+ new GatherUsedImportedElementsVisitor(_libraryElement);
+ unit.accept(visitor);
+ _usedImportedElementsList.add(visitor.usedElements);
+ }
+ });
+ units.forEach((file, unit) {
+ _computeHints(file, unit);
+ });
+ });
+ }
if (_analysisOptions.lint) {
PerformanceStatistics.lints.makeCurrentWhile(() {
@@ -726,21 +724,24 @@
}
for (var member in declaration.members) {
if (member is ConstructorDeclaration) {
- // TODO(scheglov) Pass in the actual context element.
+ var context = member.element as ElementImpl;
var resolution = resolutions.next();
- var applier = _createResolutionApplier(null, resolution);
+ var applier = _createResolutionApplier(context, resolution);
+ member.initializers.accept(applier);
+ member.parameters.accept(applier);
member.body.accept(applier);
applier.applyToAnnotations(member);
applier.checkDone();
} else if (member is FieldDeclaration) {
- if (member.fields.variables.length != 1) {
+ List<VariableDeclaration> fields = member.fields.variables;
+ if (fields.length != 1) {
// TODO(scheglov) Handle this case.
throw new UnimplementedError('Multiple field');
}
- // TODO(scheglov) Pass in the actual context element.
+ var context = fields[0].element as ElementImpl;
var resolution = resolutions.next();
- var applier = _createResolutionApplier(null, resolution);
- member.fields.variables[0].initializer?.accept(applier);
+ var applier = _createResolutionApplier(context, resolution);
+ fields[0].initializer?.accept(applier);
applier.applyToAnnotations(member);
applier.checkDone();
} else if (member is MethodDeclaration) {
@@ -752,10 +753,13 @@
applier.applyToAnnotations(member);
applier.checkDone();
} else {
- // TODO(scheglov) Handle more cases.
- throw new UnimplementedError('${member.runtimeType}');
+ throw new StateError('(${declaration.runtimeType}) $declaration');
}
}
+ } else if (declaration is ClassTypeAlias) {
+ // No bodies to resolve.
+ } else if (declaration is EnumDeclaration) {
+ // No bodies to resolve.
} else if (declaration is FunctionDeclaration) {
var context = declaration.element as ExecutableElementImpl;
var resolution = resolutions.next();
@@ -764,20 +768,22 @@
declaration.functionExpression.body.accept(applier);
applier.applyToAnnotations(declaration);
applier.checkDone();
+ } else if (declaration is FunctionTypeAlias) {
+ // No bodies to resolve.
} else if (declaration is TopLevelVariableDeclaration) {
- if (declaration.variables.variables.length != 1) {
+ List<VariableDeclaration> variables = declaration.variables.variables;
+ if (variables.length != 1) {
// TODO(scheglov) Handle this case.
throw new UnimplementedError('Multiple variables');
}
- // TODO(scheglov) Pass in the actual context element.
+ var context = variables[0].element as ElementImpl;
var resolution = resolutions.next();
- var applier = _createResolutionApplier(null, resolution);
- declaration.variables.variables[0].initializer?.accept(applier);
+ var applier = _createResolutionApplier(context, resolution);
+ variables[0].initializer?.accept(applier);
applier.applyToAnnotations(declaration);
applier.checkDone();
} else {
- // TODO(scheglov) Handle more cases.
- throw new UnimplementedError('${declaration.runtimeType}');
+ throw new StateError('(${declaration.runtimeType}) $declaration');
}
}
@@ -993,9 +999,8 @@
ElementImpl context;
List<Element> declaredElements = [];
- Map<kernel.Statement, Element> declarationToElement = {};
- Map<FunctionElementImpl, kernel.VariableDeclaration>
- functionElementToDeclaration = {};
+ Map<kernel.TreeNode, Element> declarationToElement = {};
+ Map<FunctionElementImpl, kernel.TreeNode> functionElementToDeclaration = {};
Map<ParameterElementImpl, kernel.VariableDeclaration>
parameterElementToDeclaration = {};
@@ -1026,7 +1031,7 @@
if (parent is kernel.Statement) {
element = declarationToElement[referencedNode];
} else {
- assert(parent is kernel.FunctionNode);
+ assert(parent is kernel.FunctionNode || parent is kernel.Catch);
// Might be a parameter of a local function.
element = declarationToElement[referencedNode];
// If no element, then it is a parameter of the context executable.
@@ -1045,6 +1050,14 @@
element = resynthesizer
.getElementFromCanonicalName(referencedNode.canonicalName);
assert(element != null);
+ } else if (referencedNode is kernel.FunctionType) {
+ element = resynthesizer
+ .getElementFromCanonicalName(referencedNode.typedef.canonicalName);
+ assert(element != null);
+ } else if (referencedNode is kernel.InterfaceType) {
+ element = resynthesizer.getElementFromCanonicalName(
+ referencedNode.classNode.canonicalName);
+ assert(element != null);
} else if (referencedNode is kernel.MemberGetterNode) {
var memberElement = resynthesizer
.getElementFromCanonicalName(referencedNode.member.canonicalName);
@@ -1067,6 +1080,10 @@
}
} else if (referencedNode is kernel.NullNode) {
element = null;
+ } else if (referencedNode == null) {
+ // This will occur if an identifier could not be resolved, such as a
+ // reference to a member when the target has type `dynamic`.
+ element = null;
} else {
throw new UnimplementedError(
'Declaration: (${referencedNode.runtimeType}) $referencedNode');
@@ -1104,7 +1121,16 @@
context = element;
var declaration = functionElementToDeclaration[element];
- kernel.FunctionType kernelType = declaration.type;
+
+ // Get the declaration kernel type.
+ kernel.FunctionType kernelType;
+ if (declaration is kernel.VariableDeclaration) {
+ kernelType = declaration.type;
+ } else if (declaration is kernel.FunctionExpression) {
+ kernelType = declaration.function.functionType;
+ } else {
+ throw new StateError('(${declaration.runtimeType}) $declaration');
+ }
element.returnType = resynthesizer.getType(context, kernelType.returnType);
@@ -1123,123 +1149,17 @@
context = contextStack.removeLast();
}
- /// Given the [executable] element that corresponds to the [kernelNode],
- /// and the [kernelType] that is the instantiated type of [kernelNode],
- /// return the instantiated type of the [executable].
- FunctionType instantiateFunctionType(ExecutableElement executable,
- kernel.FunctionNode kernelNode, kernel.FunctionType kernelType) {
- // Prepare all kernel type parameters.
- var kernelTypeParameters = <kernel.TypeParameter>[];
- for (kernel.TreeNode node = kernelNode; node != null; node = node.parent) {
- if (node is kernel.Class) {
- kernelTypeParameters.addAll(node.typeParameters);
- } else if (node is kernel.FunctionNode) {
- kernelTypeParameters.addAll(node.typeParameters);
- }
- }
-
- // If no type parameters, the raw type of the element will do.
- FunctionTypeImpl rawType = executable.type;
- if (kernelTypeParameters.isEmpty) {
- return rawType;
- }
-
- // Compute type arguments for kernel type parameters.
- var kernelMap = kernel.unifyTypes(
- kernelNode.functionType.withoutTypeParameters,
- kernelType,
- kernelTypeParameters.toSet());
-
- // Prepare Analyzer type parameters, in the same order as kernel ones.
- var astTypeParameters = <TypeParameterElement>[];
- for (Element element = executable;
- element != null;
- element = element.enclosingElement) {
- if (element is TypeParameterizedElement) {
- astTypeParameters.addAll(element.typeParameters);
- }
- }
-
- // Convert kernel type arguments into Analyzer types.
- int length = astTypeParameters.length;
- var usedTypeParameters = <TypeParameterElement>[];
- var usedTypeArguments = <DartType>[];
- for (var i = 0; i < length; i++) {
- var kernelParameter = kernelTypeParameters[i];
- var kernelArgument = kernelMap[kernelParameter];
- if (kernelArgument != null) {
- DartType astArgument = resynthesizer.getType(null, kernelArgument);
- usedTypeParameters.add(astTypeParameters[i]);
- usedTypeArguments.add(astArgument);
- }
- }
-
- if (usedTypeParameters.isEmpty) {
- return rawType;
- }
-
- // Replace Analyzer type parameters with type arguments.
- return rawType.substitute4(usedTypeParameters, usedTypeArguments);
- }
-
/// Translate the given [declaration].
- void translateKernelDeclaration(kernel.Statement declaration) {
+ void translateKernelDeclaration(kernel.TreeNode declaration) {
if (declaration is kernel.VariableDeclaration) {
kernel.TreeNode functionDeclaration = declaration.parent;
if (functionDeclaration is kernel.FunctionDeclaration) {
- var kernelFunction = functionDeclaration.function;
-
var element =
new FunctionElementImpl(declaration.name, declaration.fileOffset);
functionElementToDeclaration[element] = declaration;
-
- // Set type parameters.
- {
- var astParameters = <TypeParameterElement>[];
- for (var kernelParameter in kernelFunction.typeParameters) {
- var astParameter = new TypeParameterElementImpl(
- kernelParameter.name, kernelParameter.fileOffset);
- astParameter.type = new TypeParameterTypeImpl(astParameter);
- // TODO(scheglov) remember mapping to set bounds later
- astParameters.add(astParameter);
- }
- element.typeParameters = astParameters;
- }
-
- // Set formal parameters.
- {
- var astParameters = <ParameterElement>[];
-
- // Add positional parameters
- var kernelPositionalParameters = kernelFunction.positionalParameters;
- for (var i = 0; i < kernelPositionalParameters.length; i++) {
- var kernelParameter = kernelPositionalParameters[i];
- var astParameter = new ParameterElementImpl(
- kernelParameter.name, kernelParameter.fileOffset);
- astParameter.parameterKind =
- i < kernelFunction.requiredParameterCount
- ? ParameterKind.REQUIRED
- : ParameterKind.POSITIONAL;
- astParameters.add(astParameter);
- declarationToElement[kernelParameter] = astParameter;
- parameterElementToDeclaration[astParameter] = kernelParameter;
- }
-
- // Add named parameters.
- for (var kernelParameter in kernelFunction.namedParameters) {
- var astParameter = new ParameterElementImpl(
- kernelParameter.name, kernelParameter.fileOffset);
- astParameter.parameterKind = ParameterKind.NAMED;
- astParameters.add(astParameter);
- declarationToElement[kernelParameter] = astParameter;
- parameterElementToDeclaration[astParameter] = kernelParameter;
- }
-
- element.parameters = astParameters;
-
- declaredElements.add(element);
- declarationToElement[declaration] = element;
- }
+ _addFormalParameters(element, functionDeclaration.function);
+ declaredElements.add(element);
+ declarationToElement[declaration] = element;
} else {
// TODO(scheglov) Do we need ConstLocalVariableElementImpl?
var element = new LocalVariableElementImpl(
@@ -1247,6 +1167,12 @@
declaredElements.add(element);
declarationToElement[declaration] = element;
}
+ } else if (declaration is kernel.FunctionExpression) {
+ var element = new FunctionElementImpl('', declaration.fileOffset);
+ functionElementToDeclaration[element] = declaration;
+ _addFormalParameters(element, declaration.function);
+ declaredElements.add(element);
+ declarationToElement[declaration] = element;
} else {
throw new UnimplementedError(
'Declaration: (${declaration.runtimeType}) $declaration');
@@ -1260,16 +1186,72 @@
FunctionElement element = declarationToElement[variable];
return element.type;
} else if (kernelType is kernel.MemberInvocationDartType) {
- ExecutableElementImpl element = resynthesizer
- .getElementFromCanonicalName(kernelType.member.canonicalName);
- return instantiateFunctionType(
- element, kernelType.member.function, kernelType.type);
+ kernel.Member member = kernelType.member;
+ if (member != null) {
+ ExecutableElementImpl element =
+ resynthesizer.getElementFromCanonicalName(member.canonicalName);
+ return resynthesizer.instantiateFunctionType(
+ context,
+ element,
+ member.function,
+ member.function.functionType.withoutTypeParameters,
+ kernelType.type);
+ }
+ return null;
} else if (kernelType is kernel.IndexAssignNullFunctionType) {
return null;
} else {
return resynthesizer.getType(context, kernelType);
}
}
+
+ /// Add formal parameters defined in the [kernelFunction] to the [element].
+ void _addFormalParameters(
+ FunctionElementImpl element, kernel.FunctionNode kernelFunction) {
+ // Set type parameters.
+ {
+ var astParameters = <TypeParameterElement>[];
+ for (var kernelParameter in kernelFunction.typeParameters) {
+ var astParameter = new TypeParameterElementImpl(
+ kernelParameter.name, kernelParameter.fileOffset);
+ astParameter.type = new TypeParameterTypeImpl(astParameter);
+ // TODO(scheglov) remember mapping to set bounds later
+ astParameters.add(astParameter);
+ }
+ element.typeParameters = astParameters;
+ }
+
+ // Set formal parameters.
+ {
+ var astParameters = <ParameterElement>[];
+
+ // Add positional parameters
+ var kernelPositionalParameters = kernelFunction.positionalParameters;
+ for (var i = 0; i < kernelPositionalParameters.length; i++) {
+ var kernelParameter = kernelPositionalParameters[i];
+ var astParameter = new ParameterElementImpl(
+ kernelParameter.name, kernelParameter.fileOffset);
+ astParameter.parameterKind = i < kernelFunction.requiredParameterCount
+ ? ParameterKind.REQUIRED
+ : ParameterKind.POSITIONAL;
+ astParameters.add(astParameter);
+ declarationToElement[kernelParameter] = astParameter;
+ parameterElementToDeclaration[astParameter] = kernelParameter;
+ }
+
+ // Add named parameters.
+ for (var kernelParameter in kernelFunction.namedParameters) {
+ var astParameter = new ParameterElementImpl(
+ kernelParameter.name, kernelParameter.fileOffset);
+ astParameter.parameterKind = ParameterKind.NAMED;
+ astParameters.add(astParameter);
+ declarationToElement[kernelParameter] = astParameter;
+ parameterElementToDeclaration[astParameter] = kernelParameter;
+ }
+
+ element.parameters = astParameters;
+ }
+ }
}
/// [Iterator] like object that provides [CollectedResolution]s.
diff --git a/pkg/analyzer/lib/src/dart/element/element.dart b/pkg/analyzer/lib/src/dart/element/element.dart
index 666c570..5c534f9 100644
--- a/pkg/analyzer/lib/src/dart/element/element.dart
+++ b/pkg/analyzer/lib/src/dart/element/element.dart
@@ -2790,6 +2790,12 @@
*/
class ElementAnnotationImpl implements ElementAnnotation {
/**
+ * The name of the top-level variable used to mark that a function always
+ * throws, for dead code purposes.
+ */
+ static String _ALWAYS_THROWS_VARIABLE_NAME = "alwaysThrows";
+
+ /**
* The name of the top-level variable used to mark a method parameter as
* covariant.
*/
@@ -2904,6 +2910,12 @@
@override
AnalysisContext get context => compilationUnit.library.context;
+ @override
+ bool get isAlwaysThrows =>
+ element is PropertyAccessorElement &&
+ element.name == _ALWAYS_THROWS_VARIABLE_NAME &&
+ element.library?.name == _META_LIB_NAME;
+
/**
* Return `true` if this annotation marks the associated parameter as being
* covariant, meaning it is allowed to have a narrower type in an override.
@@ -3157,6 +3169,10 @@
String get identifier => name;
@override
+ bool get isAlwaysThrows =>
+ metadata.any((ElementAnnotation annotation) => annotation.isAlwaysThrows);
+
+ @override
bool get isDeprecated {
for (ElementAnnotation annotation in metadata) {
if (annotation.isDeprecated) {
@@ -5341,11 +5357,8 @@
GenericFunctionTypeElementImpl get function {
if (_function == null) {
if (_kernel != null) {
- var context = enclosingUnit._kernelContext;
- var type = context.getType(this, _kernel.type);
- if (type is FunctionType) {
- _function = type.element;
- }
+ _function =
+ new GenericFunctionTypeElementImpl.forKernel(this, _kernel.type);
}
if (_unlinkedTypedef != null) {
if (_unlinkedTypedef.style == TypedefStyle.genericFunctionType) {
@@ -7416,6 +7429,9 @@
Element get enclosingElement => null;
@override
+ bool get isAlwaysThrows => false;
+
+ @override
bool get isDeprecated => false;
@override
diff --git a/pkg/analyzer/lib/src/dart/element/handle.dart b/pkg/analyzer/lib/src/dart/element/handle.dart
index 52ca616..f26e94e 100644
--- a/pkg/analyzer/lib/src/dart/element/handle.dart
+++ b/pkg/analyzer/lib/src/dart/element/handle.dart
@@ -348,6 +348,9 @@
int get hashCode => _location.hashCode;
@override
+ bool get isAlwaysThrows => actualElement.isAlwaysThrows;
+
+ @override
bool get isDeprecated => actualElement.isDeprecated;
@override
diff --git a/pkg/analyzer/lib/src/dart/element/member.dart b/pkg/analyzer/lib/src/dart/element/member.dart
index 08041dc..ef78722 100644
--- a/pkg/analyzer/lib/src/dart/element/member.dart
+++ b/pkg/analyzer/lib/src/dart/element/member.dart
@@ -394,6 +394,9 @@
int get id => _baseElement.id;
@override
+ bool get isAlwaysThrows => _baseElement.isAlwaysThrows;
+
+ @override
bool get isDeprecated => _baseElement.isDeprecated;
@override
diff --git a/pkg/analyzer/lib/src/fasta/ast_builder.dart b/pkg/analyzer/lib/src/fasta/ast_builder.dart
index 7c01ac3..463735d 100644
--- a/pkg/analyzer/lib/src/fasta/ast_builder.dart
+++ b/pkg/analyzer/lib/src/fasta/ast_builder.dart
@@ -2,11 +2,15 @@
// 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 'package:analyzer/analyzer.dart';
+import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/ast/ast_factory.dart' show AstFactory;
import 'package:analyzer/dart/ast/standard_ast_factory.dart' as standard;
import 'package:analyzer/dart/ast/token.dart' show Token, TokenType;
+import 'package:analyzer/error/listener.dart';
import 'package:analyzer/src/fasta/error_converter.dart';
+import 'package:analyzer/src/generated/java_core.dart';
+import 'package:analyzer/src/generated/java_engine.dart';
+import 'package:analyzer/src/generated/utilities_dart.dart';
import 'package:front_end/src/fasta/parser.dart'
show
Assert,
@@ -16,8 +20,14 @@
optional,
Parser;
import 'package:front_end/src/fasta/scanner/string_scanner.dart';
+import 'package:front_end/src/fasta/scanner.dart' hide StringToken;
import 'package:front_end/src/scanner/token.dart'
- show SyntheticBeginToken, SyntheticToken, CommentToken;
+ show
+ StringToken,
+ SyntheticBeginToken,
+ SyntheticStringToken,
+ SyntheticToken,
+ CommentToken;
import 'package:front_end/src/fasta/problems.dart' show unhandled;
import 'package:front_end/src/fasta/messages.dart'
@@ -1011,7 +1021,7 @@
_Modifiers modifiers = pop();
Token keyword = modifiers?.finalConstOrVarKeyword;
Token covariantKeyword = modifiers?.covariantKeyword;
- List<Annotation> metadata = pop(); // TODO(paulberry): Metadata.
+ List<Annotation> metadata = pop();
Comment comment = _findComment(metadata,
thisKeyword ?? typeOrFunctionTypedParameter?.beginToken ?? nameToken);
@@ -2294,10 +2304,310 @@
return null;
}
- /**
- * Parse a documentation comment. Return the documentation comment that was
- * parsed, or `null` if there was no comment.
- */
+ /// Search the given list of [ranges] for a range that contains the given
+ /// [index]. Return the range that was found, or `null` if none of the ranges
+ /// contain the index.
+ List<int> _findRange(List<List<int>> ranges, int index) {
+ int rangeCount = ranges.length;
+ for (int i = 0; i < rangeCount; i++) {
+ List<int> range = ranges[i];
+ if (range[0] <= index && index <= range[1]) {
+ return range;
+ } else if (index < range[0]) {
+ return null;
+ }
+ }
+ return null;
+ }
+
+ /// Return a list of the ranges of characters in the given [comment] that
+ /// should be treated as code blocks.
+ List<List<int>> _getCodeBlockRanges(String comment) {
+ List<List<int>> ranges = <List<int>>[];
+ int length = comment.length;
+ if (length < 3) {
+ return ranges;
+ }
+ int index = 0;
+ int firstChar = comment.codeUnitAt(0);
+ if (firstChar == 0x2F) {
+ int secondChar = comment.codeUnitAt(1);
+ int thirdChar = comment.codeUnitAt(2);
+ if ((secondChar == 0x2A && thirdChar == 0x2A) ||
+ (secondChar == 0x2F && thirdChar == 0x2F)) {
+ index = 3;
+ }
+ }
+ if (comment.startsWith(' ', index)) {
+ int end = index + 4;
+ while (end < length &&
+ comment.codeUnitAt(end) != 0xD &&
+ comment.codeUnitAt(end) != 0xA) {
+ end = end + 1;
+ }
+ ranges.add(<int>[index, end]);
+ index = end;
+ }
+ while (index < length) {
+ int currentChar = comment.codeUnitAt(index);
+ if (currentChar == 0xD || currentChar == 0xA) {
+ index = index + 1;
+ while (index < length &&
+ Character.isWhitespace(comment.codeUnitAt(index))) {
+ index = index + 1;
+ }
+ if (comment.startsWith(' ', index)) {
+ int end = index + 6;
+ while (end < length &&
+ comment.codeUnitAt(end) != 0xD &&
+ comment.codeUnitAt(end) != 0xA) {
+ end = end + 1;
+ }
+ ranges.add(<int>[index, end]);
+ index = end;
+ }
+ } else if (index + 1 < length &&
+ currentChar == 0x5B &&
+ comment.codeUnitAt(index + 1) == 0x3A) {
+ int end = comment.indexOf(':]', index + 2);
+ if (end < 0) {
+ end = length;
+ }
+ ranges.add(<int>[index, end]);
+ index = end + 1;
+ } else {
+ index = index + 1;
+ }
+ }
+ return ranges;
+ }
+
+ ///
+ /// Given that we have just found bracketed text within the given [comment],
+ /// look to see whether that text is (a) followed by a parenthesized link
+ /// address, (b) followed by a colon, or (c) followed by optional whitespace
+ /// and another square bracket. The [rightIndex] is the index of the right
+ /// bracket. Return `true` if the bracketed text is followed by a link
+ /// address.
+ ///
+ /// This method uses the syntax described by the
+ /// <a href="http://daringfireball.net/projects/markdown/syntax">markdown</a>
+ /// project.
+ bool _isLinkText(String comment, int rightIndex) {
+ int length = comment.length;
+ int index = rightIndex + 1;
+ if (index >= length) {
+ return false;
+ }
+ int nextChar = comment.codeUnitAt(index);
+ if (nextChar == 0x28 || nextChar == 0x3A) {
+ return true;
+ }
+ while (Character.isWhitespace(nextChar)) {
+ index = index + 1;
+ if (index >= length) {
+ return false;
+ }
+ nextChar = comment.codeUnitAt(index);
+ }
+ return nextChar == 0x5B;
+ }
+
+ /// Parse a comment reference from the source between square brackets. The
+ /// [referenceSource] is the source occurring between the square brackets
+ /// within a documentation comment. The [sourceOffset] is the offset of the
+ /// first character of the reference source. Return the comment reference that
+ /// was parsed, or `null` if no reference could be found.
+ /// ```
+ /// commentReference ::=
+ /// 'new'? prefixedIdentifier
+ /// ```
+ CommentReference _parseCommentReference(
+ String referenceSource, int sourceOffset) {
+ // TODO(brianwilkerson) The errors are not getting the right offset/length
+ // and are being duplicated.
+ void offsetTokens(Token token) {
+ while (token.type != TokenType.EOF) {
+ token.offset = token.offset + sourceOffset;
+ token = token.next;
+ }
+ }
+
+ try {
+ BooleanErrorListener listener = new BooleanErrorListener();
+ ScannerResult result = scanString(referenceSource);
+ Token firstToken = result.tokens;
+ offsetTokens(firstToken);
+ if (listener.errorReported) {
+ return null;
+ }
+ if (firstToken.type == TokenType.EOF) {
+ Token syntheticToken =
+ new SyntheticStringToken(TokenType.IDENTIFIER, "", sourceOffset);
+ syntheticToken.setNext(firstToken);
+ return ast.commentReference(null, ast.simpleIdentifier(syntheticToken));
+ }
+ Token newKeyword = null;
+ if (_tokenMatchesKeyword(firstToken, Keyword.NEW)) {
+ newKeyword = firstToken;
+ firstToken = firstToken.next;
+ }
+ if (firstToken.isUserDefinableOperator) {
+ if (firstToken.next.type != TokenType.EOF) {
+ return null;
+ }
+ Identifier identifier = ast.simpleIdentifier(firstToken);
+ return ast.commentReference(null, identifier);
+ } else if (_tokenMatchesKeyword(firstToken, Keyword.OPERATOR)) {
+ Token secondToken = firstToken.next;
+ if (secondToken.isUserDefinableOperator) {
+ if (secondToken.next.type != TokenType.EOF) {
+ return null;
+ }
+ Identifier identifier = ast.simpleIdentifier(secondToken);
+ return ast.commentReference(null, identifier);
+ }
+ return null;
+ } else if (_tokenMatchesIdentifier(firstToken)) {
+ Token secondToken = firstToken.next;
+ Token thirdToken = secondToken.next;
+ Token nextToken;
+ Identifier identifier;
+ if (_tokenMatches(secondToken, TokenType.PERIOD)) {
+ if (thirdToken.isUserDefinableOperator) {
+ identifier = ast.prefixedIdentifier(
+ ast.simpleIdentifier(firstToken),
+ secondToken,
+ ast.simpleIdentifier(thirdToken));
+ nextToken = thirdToken.next;
+ } else if (_tokenMatchesKeyword(thirdToken, Keyword.OPERATOR)) {
+ Token fourthToken = thirdToken.next;
+ if (fourthToken.isUserDefinableOperator) {
+ identifier = ast.prefixedIdentifier(
+ ast.simpleIdentifier(firstToken),
+ secondToken,
+ ast.simpleIdentifier(fourthToken));
+ nextToken = fourthToken.next;
+ } else {
+ return null;
+ }
+ } else if (_tokenMatchesIdentifier(thirdToken)) {
+ identifier = ast.prefixedIdentifier(
+ ast.simpleIdentifier(firstToken),
+ secondToken,
+ ast.simpleIdentifier(thirdToken));
+ nextToken = thirdToken.next;
+ }
+ } else {
+ identifier = ast.simpleIdentifier(firstToken);
+ nextToken = firstToken.next;
+ }
+ if (nextToken.type != TokenType.EOF) {
+ return null;
+ }
+ return ast.commentReference(newKeyword, identifier);
+ } else {
+ Keyword keyword = firstToken.keyword;
+ if (keyword == Keyword.THIS ||
+ keyword == Keyword.NULL ||
+ keyword == Keyword.TRUE ||
+ keyword == Keyword.FALSE) {
+ // TODO(brianwilkerson) If we want to support this we will need to
+ // extend the definition of CommentReference to take an expression
+ // rather than an identifier. For now we just ignore it to reduce the
+ // number of errors produced, but that's probably not a valid long
+ // term approach.
+ return null;
+ }
+ }
+ } catch (exception) {
+ // Ignored because we assume that it wasn't a real comment reference.
+ }
+ return null;
+ }
+
+ /// Parse all of the comment references occurring in the given array of
+ /// documentation comments. The [tokens] are the comment tokens representing
+ /// the documentation comments to be parsed. Return the comment references that
+ /// were parsed.
+ /// ```
+ /// commentReference ::=
+ /// '[' 'new'? qualified ']' libraryReference?
+ ///
+ /// libraryReference ::=
+ /// '(' stringLiteral ')'
+ /// ```
+ List<CommentReference> _parseCommentReferences(List<Token> tokens) {
+ List<CommentReference> references = <CommentReference>[];
+ bool isInGitHubCodeBlock = false;
+ for (Token token in tokens) {
+ String comment = token.lexeme;
+ // Skip GitHub code blocks.
+ // https://help.github.com/articles/creating-and-highlighting-code-blocks/
+ if (tokens.length != 1) {
+ if (comment.indexOf('```') != -1) {
+ isInGitHubCodeBlock = !isInGitHubCodeBlock;
+ }
+ if (isInGitHubCodeBlock) {
+ continue;
+ }
+ }
+ // Remove GitHub include code.
+ comment = _removeGitHubInlineCode(comment);
+ // Find references.
+ int length = comment.length;
+ List<List<int>> codeBlockRanges = _getCodeBlockRanges(comment);
+ int leftIndex = comment.indexOf('[');
+ while (leftIndex >= 0 && leftIndex + 1 < length) {
+ List<int> range = _findRange(codeBlockRanges, leftIndex);
+ if (range == null) {
+ int nameOffset = token.offset + leftIndex + 1;
+ int rightIndex = comment.indexOf(']', leftIndex);
+ if (rightIndex >= 0) {
+ int firstChar = comment.codeUnitAt(leftIndex + 1);
+ if (firstChar != 0x27 && firstChar != 0x22) {
+ if (_isLinkText(comment, rightIndex)) {
+ // TODO(brianwilkerson) Handle the case where there's a library
+ // URI in the link text.
+ } else {
+ CommentReference reference = _parseCommentReference(
+ comment.substring(leftIndex + 1, rightIndex), nameOffset);
+ if (reference != null) {
+ references.add(reference);
+ }
+ }
+ }
+ } else {
+ // terminating ']' is not typed yet
+ int charAfterLeft = comment.codeUnitAt(leftIndex + 1);
+ Token nameToken;
+ if (Character.isLetterOrDigit(charAfterLeft)) {
+ int nameEnd = StringUtilities.indexOfFirstNotLetterDigit(
+ comment, leftIndex + 1);
+ String name = comment.substring(leftIndex + 1, nameEnd);
+ nameToken =
+ new StringToken(TokenType.IDENTIFIER, name, nameOffset);
+ } else {
+ nameToken = new SyntheticStringToken(
+ TokenType.IDENTIFIER, '', nameOffset);
+ }
+ nameToken.setNext(new Token.eof(nameToken.end));
+ references.add(
+ ast.commentReference(null, ast.simpleIdentifier(nameToken)));
+ // next character
+ rightIndex = leftIndex + 1;
+ }
+ leftIndex = comment.indexOf('[', rightIndex);
+ } else {
+ leftIndex = comment.indexOf('[', range[1]);
+ }
+ }
+ }
+ return references;
+ }
+
+ /// Parse a documentation comment. Return the documentation comment that was
+ /// parsed, or `null` if there was no comment.
Comment _parseDocumentationCommentOpt(CommentToken commentToken) {
List<Token> tokens = <Token>[];
while (commentToken != null) {
@@ -2316,12 +2626,48 @@
}
commentToken = commentToken.next;
}
- // TODO(brianwilkerson) Use the code in analyzer's parser to parse the
- // references inside the comment.
- List<CommentReference> references = <CommentReference>[];
+ List<CommentReference> references = _parseCommentReferences(tokens);
return tokens.isEmpty ? null : ast.documentationComment(tokens, references);
}
+ /// Remove any substrings in the given [comment] that represent in-line code
+ /// in markdown.
+ String _removeGitHubInlineCode(String comment) {
+ int index = 0;
+ while (true) {
+ int beginIndex = comment.indexOf('`', index);
+ if (beginIndex == -1) {
+ break;
+ }
+ int endIndex = comment.indexOf('`', beginIndex + 1);
+ if (endIndex == -1) {
+ break;
+ }
+ comment = comment.substring(0, beginIndex + 1) +
+ ' ' * (endIndex - beginIndex - 1) +
+ comment.substring(endIndex);
+ index = endIndex + 1;
+ }
+ return comment;
+ }
+
+ /// Return `true` if the given [token] has the given [type].
+ bool _tokenMatches(Token token, TokenType type) => token.type == type;
+
+ /// Return `true` if the given [token] is a valid identifier. Valid
+ /// identifiers include built-in identifiers (pseudo-keywords).
+ bool _tokenMatchesIdentifier(Token token) =>
+ _tokenMatches(token, TokenType.IDENTIFIER) ||
+ _tokenMatchesPseudoKeyword(token);
+
+ /// Return `true` if the given [token] matches the given [keyword].
+ bool _tokenMatchesKeyword(Token token, Keyword keyword) =>
+ token.keyword == keyword;
+
+ /// Return `true` if the given [token] matches a pseudo keyword.
+ bool _tokenMatchesPseudoKeyword(Token token) =>
+ token.keyword?.isBuiltInOrPseudo ?? false;
+
@override
void debugEvent(String name) {
// printEvent('AstBuilder: $name');
diff --git a/pkg/analyzer/lib/src/fasta/error_converter.dart b/pkg/analyzer/lib/src/fasta/error_converter.dart
index 0b61844..f93c156 100644
--- a/pkg/analyzer/lib/src/fasta/error_converter.dart
+++ b/pkg/analyzer/lib/src/fasta/error_converter.dart
@@ -271,6 +271,30 @@
offset,
length);
return;
+ case "INVALID_CAST_FUNCTION":
+ errorReporter?.reportErrorForOffset(
+ StrongModeCode.INVALID_CAST_FUNCTION, offset, length);
+ return;
+ case "INVALID_CAST_FUNCTION_EXPR":
+ errorReporter?.reportErrorForOffset(
+ StrongModeCode.INVALID_CAST_FUNCTION_EXPR, offset, length);
+ return;
+ case "INVALID_CAST_LITERAL_LIST":
+ errorReporter?.reportErrorForOffset(
+ StrongModeCode.INVALID_CAST_LITERAL_LIST, offset, length);
+ return;
+ case "INVALID_CAST_LITERAL_MAP":
+ errorReporter?.reportErrorForOffset(
+ StrongModeCode.INVALID_CAST_LITERAL_MAP, offset, length);
+ return;
+ case "INVALID_CAST_METHOD":
+ errorReporter?.reportErrorForOffset(
+ StrongModeCode.INVALID_CAST_METHOD, offset, length);
+ return;
+ case "INVALID_CAST_NEW_EXPR":
+ errorReporter?.reportErrorForOffset(
+ StrongModeCode.INVALID_CAST_NEW_EXPR, offset, length);
+ return;
case "INVALID_MODIFIER_ON_SETTER":
errorReporter?.reportErrorForOffset(
CompileTimeErrorCode.INVALID_MODIFIER_ON_SETTER, offset, length);
diff --git a/pkg/analyzer/lib/src/fasta/resolution_applier.dart b/pkg/analyzer/lib/src/fasta/resolution_applier.dart
index a865cb1..80281aa 100644
--- a/pkg/analyzer/lib/src/fasta/resolution_applier.dart
+++ b/pkg/analyzer/lib/src/fasta/resolution_applier.dart
@@ -121,6 +121,40 @@
}
@override
+ void visitCascadeExpression(CascadeExpression node) {
+ visitNode(node);
+ node.staticType = node.target.staticType;
+ }
+
+ @override
+ void visitCatchClause(CatchClause node) {
+ DartType guardType = _getTypeFor(node.onKeyword ?? node.catchKeyword);
+ if (node.exceptionType != null) {
+ applyToTypeAnnotation(guardType, node.exceptionType);
+ }
+
+ SimpleIdentifier exception = node.exceptionParameter;
+ if (exception != null) {
+ LocalVariableElementImpl element = _getDeclarationFor(exception);
+ DartType type = _getTypeFor(exception);
+ element.type = type;
+ exception.staticElement = element;
+ exception.staticType = type;
+ }
+
+ SimpleIdentifier stackTrace = node.stackTraceParameter;
+ if (stackTrace != null) {
+ LocalVariableElementImpl element = _getDeclarationFor(stackTrace);
+ DartType type = _getTypeFor(stackTrace);
+ element.type = type;
+ stackTrace.staticElement = element;
+ stackTrace.staticType = type;
+ }
+
+ node.body.accept(this);
+ }
+
+ @override
void visitConditionalExpression(ConditionalExpression node) {
node.condition.accept(this);
node.thenExpression.accept(this);
@@ -129,6 +163,15 @@
}
@override
+ void visitConstructorFieldInitializer(ConstructorFieldInitializer node) {
+ FieldElement fieldElement = _getReferenceFor(node.equals);
+ node.fieldName.staticElement = fieldElement;
+ node.fieldName.staticType = fieldElement.type;
+
+ node.expression.accept(this);
+ }
+
+ @override
void visitExpression(Expression node) {
visitNode(node);
node.staticType = _getTypeFor(node);
@@ -216,6 +259,27 @@
}
@override
+ void visitFunctionExpression(FunctionExpression node) {
+ FormalParameterList parameterList = node.parameters;
+
+ FunctionElementImpl element = _getDeclarationFor(node);
+ _typeContext.enterLocalFunction(element);
+
+ // Associate the elements with the nodes.
+ if (element != null) {
+ node.element = element;
+ node.staticType = element.type;
+ _applyParameters(element.parameters, parameterList.parameters);
+ }
+
+ // Apply resolution to default values.
+ parameterList.accept(this);
+
+ node.body.accept(this);
+ _typeContext.exitLocalFunction(element);
+ }
+
+ @override
void visitFunctionExpressionInvocation(FunctionExpressionInvocation node) {
node.function.accept(this);
// TODO(brianwilkerson) Visit node.typeArguments.
@@ -246,8 +310,6 @@
@override
void visitInstanceCreationExpression(InstanceCreationExpression node) {
- node.argumentList?.accept(this);
-
ConstructorName constructorName = node.constructorName;
DartType type = _getTypeFor(constructorName);
@@ -277,6 +339,7 @@
constructorName.name.staticElement = element;
}
+ node.argumentList?.accept(this);
_associateArgumentsWithParameters(element?.parameters, node.argumentList);
}
@@ -300,7 +363,7 @@
@override
void visitMapLiteral(MapLiteral node) {
node.entries.accept(this);
- DartType type = _getTypeFor(node);
+ DartType type = _getTypeFor(node.constKeyword ?? node.leftBracket);
node.staticType = type;
if (node.typeArguments != null) {
_applyTypeArgumentsToList(type, node.typeArguments.arguments);
@@ -445,6 +508,22 @@
}
@override
+ void visitSuperConstructorInvocation(SuperConstructorInvocation node) {
+ SimpleIdentifier constructorName = node.constructorName;
+ var superElement = _typeContext.enclosingClassElement.supertype.element;
+ if (constructorName == null) {
+ node.staticElement = superElement.unnamedConstructor;
+ } else {
+ String name = constructorName.name;
+ var superConstructor = superElement.getNamedConstructor(name);
+ node.staticElement = superConstructor;
+ constructorName.staticElement = superConstructor;
+ }
+
+ node.argumentList.accept(this);
+ }
+
+ @override
void visitSuperExpression(SuperExpression node) {
node.staticType = _typeContext.enclosingClassElement?.type;
}
@@ -652,7 +731,14 @@
} else if (typeAnnotation is TypeNameImpl) {
typeAnnotation.type = type;
SimpleIdentifier name = nameForElement(typeAnnotation.name);
- name.staticElement = type.element;
+
+ Element typeElement = type.element;
+ if (typeElement is GenericFunctionTypeElement &&
+ typeElement.enclosingElement is GenericTypeAliasElement) {
+ typeElement = typeElement.enclosingElement;
+ }
+ name.staticElement = typeElement;
+
name.staticType = type;
}
if (typeAnnotation is NamedType) {
diff --git a/pkg/analyzer/lib/src/fasta/resolution_storer.dart b/pkg/analyzer/lib/src/fasta/resolution_storer.dart
index bcacf81..665f407 100644
--- a/pkg/analyzer/lib/src/fasta/resolution_storer.dart
+++ b/pkg/analyzer/lib/src/fasta/resolution_storer.dart
@@ -3,6 +3,8 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/src/fasta/resolution_applier.dart';
+import 'package:front_end/src/fasta/kernel/kernel_shadow_ast.dart';
+import 'package:front_end/src/fasta/type_inference/interface_resolver.dart';
import 'package:front_end/src/fasta/type_inference/type_inference_listener.dart';
import 'package:kernel/ast.dart';
import 'package:kernel/type_algebra.dart';
@@ -49,7 +51,7 @@
final List<int> _deferredTypeOffsets = [];
InstrumentedResolutionStorer(
- List<Statement> declarations,
+ List<TreeNode> declarations,
List<Node> references,
List<DartType> types,
this._declarationOffsets,
@@ -74,8 +76,7 @@
}
@override
- void _recordDeclaration(Statement declaration, int offset) {
- if (_inSynthetic) return;
+ void _recordDeclaration(TreeNode declaration, int offset) {
if (_debug) {
print('Recording declaration of $declaration for offset $offset');
}
@@ -85,7 +86,6 @@
@override
int _recordReference(Node target, int offset) {
- if (_inSynthetic) return -1;
if (_debug) {
print('Recording reference to $target for offset $offset');
}
@@ -95,7 +95,6 @@
@override
int _recordType(DartType type, int offset) {
- if (_inSynthetic) return -1;
if (_debug) {
print('Recording type $type for offset $offset');
}
@@ -106,7 +105,6 @@
@override
void _replaceReference(Node reference) {
- if (_inSynthetic) return;
if (_debug) {
int offset = _deferredReferenceOffsets.removeLast();
print('Replacing reference $reference for offset $offset');
@@ -116,7 +114,6 @@
@override
void _replaceType(DartType type, [int newOffset = -1]) {
- if (_inSynthetic) return;
if (newOffset != -1) {
_typeOffsets[_deferredTypeSlots.last] = newOffset;
}
@@ -194,7 +191,7 @@
/// Type inference listener that records inferred types for later use by
/// [ResolutionApplier].
class ResolutionStorer extends TypeInferenceListener {
- final List<Statement> _declarations;
+ final List<TreeNode> _declarations;
final List<Node> _references;
final List<DartType> _types;
@@ -204,11 +201,6 @@
/// Indices into [_types] which need to be filled in later.
final _deferredTypeSlots = <int>[];
- /// When `true`, we are visiting a synthetic structure, which is not
- /// present in AST, and not visible to Analyzer, so we should not record
- /// any resolution information for it.
- bool _inSynthetic = false;
-
ResolutionStorer(this._declarations, this._references, this._types);
@override
@@ -218,22 +210,54 @@
}
@override
+ void cascadeExpressionExit(Let expression, DartType inferredType) {
+ // Overridden so that the type of the expression will not be recorded. We
+ // don't need to record the type because the type is always the same as the
+ // type of the target, and we don't have the appropriate offset so we can't
+ // correctly apply the type even if we recorded it.
+ }
+
+ @override
+ void catchStatementEnter(Catch node) {
+ _recordType(node.guard, node.fileOffset);
+
+ VariableDeclaration exception = node.exception;
+ if (exception != null) {
+ _recordDeclaration(exception, exception.fileOffset);
+ _recordType(exception.type, exception.fileOffset);
+ }
+
+ VariableDeclaration stackTrace = node.stackTrace;
+ if (stackTrace != null) {
+ _recordDeclaration(stackTrace, stackTrace.fileOffset);
+ _recordType(stackTrace.type, stackTrace.fileOffset);
+ }
+ }
+
+ @override
bool constructorInvocationEnter(
InvocationExpression expression, DartType typeContext) {
- return super.constructorInvocationEnter(expression, typeContext);
+ _deferReference(expression.fileOffset);
+ _deferType(expression.fileOffset);
+ return true;
}
@override
void constructorInvocationExit(
InvocationExpression expression, DartType inferredType) {
+ _replaceType(inferredType);
if (expression is ConstructorInvocation) {
- _recordReference(expression.target, expression.fileOffset);
+ _replaceReference(expression.target);
} else if (expression is StaticInvocation) {
- _recordReference(expression.target, expression.fileOffset);
+ _replaceReference(expression.target);
} else {
throw new UnimplementedError('${expression.runtimeType}');
}
- super.constructorInvocationExit(expression, inferredType);
+ }
+
+ @override
+ void fieldInitializerEnter(FieldInitializer initializer) {
+ _recordReference(initializer.field, initializer.fileOffset);
}
/// Verifies that all deferred work has been completed.
@@ -279,6 +303,20 @@
}
@override
+ bool functionExpressionEnter(
+ FunctionExpression expression, DartType typeContext) {
+ _recordDeclaration(expression, expression.fileOffset);
+ return super.functionExpressionEnter(expression, typeContext);
+ }
+
+ @override
+ void functionExpressionExit(
+ FunctionExpression expression, DartType inferredType) {
+ // We don't need to record the inferred type.
+ // It is already set in the function declaration.
+ }
+
+ @override
bool genericExpressionEnter(
String expressionType, Expression expression, DartType typeContext) {
super.genericExpressionEnter(expressionType, expression, typeContext);
@@ -342,15 +380,6 @@
_replaceType(inferredType);
}
- void loopAssignmentStatementEnter(ExpressionStatement statement) {
- _inSynthetic = true;
- }
-
- @override
- void loopAssignmentStatementExit(ExpressionStatement statement) {
- _inSynthetic = false;
- }
-
@override
void methodInvocationBeforeArgs(Expression expression, bool isImplicitCall) {
if (!isImplicitCall) {
@@ -390,6 +419,9 @@
? arguments.fileOffset
: expression.fileOffset);
if (!isImplicitCall) {
+ if (interfaceMember is ForwardingStub) {
+ interfaceMember = ForwardingStub.getInterfaceTarget(interfaceMember);
+ }
_replaceReference(interfaceMember);
FunctionType invokeType = substitution == null
? calleeType
@@ -429,6 +461,9 @@
DartType writeContext,
Procedure combiner,
DartType inferredType) {
+ if (writeMember is ForwardingStub) {
+ writeMember = ForwardingStub.getInterfaceTarget(writeMember);
+ }
_replaceReference(new MemberSetterNode(writeMember));
_replaceType(writeContext);
_recordReference(
@@ -480,8 +515,13 @@
}
@override
- bool staticInvocationEnter(
- StaticInvocation expression, DartType typeContext) {
+ bool staticInvocationEnter(StaticInvocation expression, int targetOffset,
+ Class targetClass, DartType typeContext) {
+ // If the static target is explicit (and is a class), record it.
+ if (targetClass != null) {
+ _recordReference(targetClass, targetOffset);
+ _recordType(targetClass.rawType, targetOffset);
+ }
// When the invocation target is `VariableGet`, we record the target
// before arguments. To ensure this order for method invocations, we
// first record `null`, and then replace it on exit.
@@ -499,7 +539,8 @@
// type later.
_deferType(expression.fileOffset);
_deferType(expression.arguments.fileOffset);
- return super.staticInvocationEnter(expression, typeContext);
+ return super.staticInvocationEnter(
+ expression, targetOffset, targetClass, typeContext);
}
@override
@@ -554,6 +595,7 @@
@override
void variableDeclarationEnter(VariableDeclaration statement) {
+ _recordDeclaration(statement, statement.fileOffset);
_deferType(statement.fileOffset);
super.variableDeclarationEnter(statement);
}
@@ -561,14 +603,29 @@
@override
void variableDeclarationExit(
VariableDeclaration statement, DartType inferredType) {
- _recordDeclaration(statement, statement.fileOffset);
_replaceType(statement.type);
super.variableDeclarationExit(statement, inferredType);
}
@override
void variableGetExit(VariableGet expression, DartType inferredType) {
+ /// Return `true` if the given [variable] declaration occurs in a let
+ /// expression that is, or is part of, a cascade expression.
+ bool isInCascade(VariableDeclaration variable) {
+ TreeNode ancestor = variable.parent;
+ while (ancestor is Let) {
+ if (ancestor is ShadowCascadeExpression) {
+ return true;
+ }
+ ancestor = ancestor.parent;
+ }
+ return false;
+ }
+
VariableDeclaration variable = expression.variable;
+ if (isInCascade(variable)) {
+ return;
+ }
_recordReference(variable, expression.fileOffset);
TreeNode function = variable.parent;
@@ -594,33 +651,28 @@
_deferredTypeSlots.add(slot);
}
- void _recordDeclaration(Statement declaration, int offset) {
- if (_inSynthetic) return;
+ void _recordDeclaration(TreeNode declaration, int offset) {
_declarations.add(declaration);
}
int _recordReference(Node target, int offset) {
- if (_inSynthetic) return -1;
int slot = _references.length;
_references.add(target);
return slot;
}
int _recordType(DartType type, int offset) {
- if (_inSynthetic) return -1;
int slot = _types.length;
_types.add(type);
return slot;
}
void _replaceReference(Node reference) {
- if (_inSynthetic) return;
int slot = _deferredReferenceSlots.removeLast();
_references[slot] = reference;
}
void _replaceType(DartType type, [int newOffset = -1]) {
- if (_inSynthetic) return;
int slot = _deferredTypeSlots.removeLast();
_types[slot] = type;
}
diff --git a/pkg/analyzer/lib/src/generated/declaration_resolver.dart b/pkg/analyzer/lib/src/generated/declaration_resolver.dart
index 87cddaa..ae1db7e 100644
--- a/pkg/analyzer/lib/src/generated/declaration_resolver.dart
+++ b/pkg/analyzer/lib/src/generated/declaration_resolver.dart
@@ -106,6 +106,16 @@
ClassElement element = _match(node.name, _walker.getClass());
if (_applyKernelTypes) {
node.name.staticType = _typeProvider.typeType;
+ if (node.extendsClause != null) {
+ ResolutionApplier.applyToTypeAnnotation(
+ element.supertype, node.extendsClause.superclass);
+ }
+ if (node.withClause != null) {
+ _applyTypeList(node.withClause.mixinTypes, element.mixins);
+ }
+ if (node.implementsClause != null) {
+ _applyTypeList(node.implementsClause.interfaces, element.interfaces);
+ }
}
_walk(new ElementWalker.forClass(element), () {
super.visitClassDeclaration(node);
@@ -117,6 +127,17 @@
@override
Object visitClassTypeAlias(ClassTypeAlias node) {
ClassElement element = _match(node.name, _walker.getClass());
+ if (_applyKernelTypes) {
+ node.name.staticType = _typeProvider.typeType;
+ ResolutionApplier.applyToTypeAnnotation(
+ element.supertype, node.superclass);
+ if (node.withClause != null) {
+ _applyTypeList(node.withClause.mixinTypes, element.mixins);
+ }
+ if (node.implementsClause != null) {
+ _applyTypeList(node.implementsClause.interfaces, element.interfaces);
+ }
+ }
_walk(new ElementWalker.forClass(element), () {
super.visitClassTypeAlias(node);
});
@@ -190,6 +211,16 @@
@override
Object visitEnumDeclaration(EnumDeclaration node) {
ClassElement element = _match(node.name, _walker.getEnum());
+ if (_applyKernelTypes) {
+ node.name.staticType = _typeProvider.typeType;
+ for (var constant in node.constants) {
+ SimpleIdentifier name = constant.name;
+ FieldElement field = element.getField(name.name);
+ name.staticElement = field;
+ name.staticType = element.type;
+ }
+ return null;
+ }
_walk(new ElementWalker.forClass(element), () {
for (EnumConstantDeclaration constant in node.constants) {
_match(constant.name, _walker.getVariable());
@@ -231,7 +262,14 @@
@override
Object visitFieldDeclaration(FieldDeclaration node) {
super.visitFieldDeclaration(node);
- _resolveMetadata(node, node.metadata, node.fields.variables[0].element);
+ FieldElement firstFieldElement = node.fields.variables[0].element;
+ if (_applyKernelTypes) {
+ if (node.fields.type != null) {
+ ResolutionApplier.applyToTypeAnnotation(
+ firstFieldElement.type, node.fields.type);
+ }
+ }
+ _resolveMetadata(node, node.metadata, firstFieldElement);
return null;
}
@@ -306,6 +344,12 @@
@override
Object visitFunctionTypeAlias(FunctionTypeAlias node) {
FunctionTypeAliasElement element = _match(node.name, _walker.getTypedef());
+ if (_applyKernelTypes) {
+ if (node.returnType != null) {
+ ResolutionApplier.applyToTypeAnnotation(
+ element.returnType, node.returnType);
+ }
+ }
_walk(new ElementWalker.forTypedef(element), () {
super.visitFunctionTypeAlias(node);
});
@@ -501,7 +545,14 @@
@override
Object visitTopLevelVariableDeclaration(TopLevelVariableDeclaration node) {
super.visitTopLevelVariableDeclaration(node);
- _resolveMetadata(node, node.metadata, node.variables.variables[0].element);
+ VariableElement firstElement = node.variables.variables[0].element;
+ if (_applyKernelTypes) {
+ TypeAnnotation type = node.variables.type;
+ if (type != null) {
+ ResolutionApplier.applyToTypeAnnotation(firstElement.type, type);
+ }
+ }
+ _resolveMetadata(node, node.metadata, firstElement);
return null;
}
@@ -516,7 +567,13 @@
node.name?.staticElement = element;
return null;
}
- Element element = _match(node.name, _walker.getTypeParameter());
+ TypeParameterElement element =
+ _match(node.name, _walker.getTypeParameter());
+ if (_applyKernelTypes) {
+ if (node.bound != null) {
+ ResolutionApplier.applyToTypeAnnotation(element.bound, node.bound);
+ }
+ }
super.visitTypeParameter(node);
_resolveMetadata(node, node.metadata, element);
return null;
@@ -676,6 +733,19 @@
_walker = outerWalker;
}
+ /**
+ * Apply [types] to [nodes].
+ * Both lists must have the same length.
+ */
+ static void _applyTypeList(List<TypeName> nodes, List<InterfaceType> types) {
+ if (nodes.length != types.length) {
+ throw new StateError('$nodes != $types');
+ }
+ for (int i = 0; i < nodes.length; i++) {
+ ResolutionApplier.applyToTypeAnnotation(types[i], nodes[i]);
+ }
+ }
+
static bool _isBodyToCreateElementsFor(FunctionBody node) {
AstNode parent = node.parent;
return parent is ConstructorDeclaration ||
diff --git a/pkg/analyzer/lib/src/generated/parser.dart b/pkg/analyzer/lib/src/generated/parser.dart
index 80c7835..820bb38 100644
--- a/pkg/analyzer/lib/src/generated/parser.dart
+++ b/pkg/analyzer/lib/src/generated/parser.dart
@@ -280,7 +280,7 @@
factory Parser(Source source, AnalysisErrorListener errorListener,
{bool useFasta}) {
if ((useFasta ?? false) || Parser.useFasta) {
- return new _Parser2(source, errorListener);
+ return new _Parser2(source, errorListener, allowNativeClause: true);
} else {
return new Parser.withoutFasta(source, errorListener);
}
diff --git a/pkg/analyzer/lib/src/generated/parser_fasta.dart b/pkg/analyzer/lib/src/generated/parser_fasta.dart
index 75740fd..abb2e16 100644
--- a/pkg/analyzer/lib/src/generated/parser_fasta.dart
+++ b/pkg/analyzer/lib/src/generated/parser_fasta.dart
@@ -162,6 +162,18 @@
Expression parseConstExpression() => parseExpression2();
@override
+ CompilationUnit parseDirectives(Token token) {
+ currentToken = token;
+ return parseDirectives2();
+ }
+
+ @override
+ CompilationUnit parseDirectives2() {
+ currentToken = fastaParser.parseDirectives(currentToken);
+ return astBuilder.pop();
+ }
+
+ @override
DottedName parseDottedName() {
currentToken = fastaParser
.parseDottedName(fastaParser.syntheticPreviousToken(currentToken))
@@ -340,17 +352,21 @@
@override
bool enableNnbd = false;
- factory _Parser2(Source source, AnalysisErrorListener errorListener) {
+ factory _Parser2(Source source, AnalysisErrorListener errorListener,
+ {bool allowNativeClause: false}) {
var errorReporter = new ErrorReporter(errorListener, source);
var library = new _KernelLibraryBuilder(source.uri);
var member = new _Builder();
var scope = new Scope.top(isModifiable: true);
- return new _Parser2._(source, errorReporter, library, member, scope);
+ return new _Parser2._(source, errorReporter, library, member, scope,
+ allowNativeClause: allowNativeClause);
}
_Parser2._(this._source, ErrorReporter errorReporter,
- KernelLibraryBuilder library, Builder member, Scope scope)
- : super(null, errorReporter, library, member, scope);
+ KernelLibraryBuilder library, Builder member, Scope scope,
+ {bool allowNativeClause: false})
+ : super(null, errorReporter, library, member, scope,
+ allowNativeClause: allowNativeClause);
noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
}
diff --git a/pkg/analyzer/lib/src/generated/resolver.dart b/pkg/analyzer/lib/src/generated/resolver.dart
index 158711e..b524b43 100644
--- a/pkg/analyzer/lib/src/generated/resolver.dart
+++ b/pkg/analyzer/lib/src/generated/resolver.dart
@@ -633,7 +633,6 @@
*
* @param element some element to check for deprecated use of
* @param node the node use for the location of the error
- * @return `true` if and only if a hint code is generated on the passed node
* See [HintCode.DEPRECATED_MEMBER_USE].
*/
void _checkForDeprecatedMemberUse(Element element, AstNode node) {
@@ -3269,6 +3268,10 @@
return false;
}
}
+ Element element = node.methodName.staticElement;
+ if (element != null && element.isAlwaysThrows) {
+ return true;
+ }
return _nodeExits(node.argumentList);
}
diff --git a/pkg/analyzer/lib/src/kernel/resynthesize.dart b/pkg/analyzer/lib/src/kernel/resynthesize.dart
index 1914e12..0fec400 100644
--- a/pkg/analyzer/lib/src/kernel/resynthesize.dart
+++ b/pkg/analyzer/lib/src/kernel/resynthesize.dart
@@ -20,6 +20,7 @@
import 'package:front_end/src/fasta/kernel/kernel_shadow_ast.dart' as kernel;
import 'package:front_end/src/fasta/kernel/redirecting_factory_body.dart';
import 'package:kernel/kernel.dart' as kernel;
+import 'package:kernel/type_algebra.dart' as kernel;
import 'package:kernel/type_environment.dart' as kernel;
import 'package:path/path.dart' as pathos;
@@ -237,6 +238,15 @@
}
if (kernelType is kernel.FunctionType) {
+ var typedef = kernelType.typedef;
+ if (typedef != null) {
+ GenericTypeAliasElementImpl typedefElement =
+ getElementFromCanonicalName(typedef.canonicalName);
+ GenericFunctionTypeElementImpl functionElement =
+ typedefElement.function;
+ return instantiateFunctionType(
+ context, functionElement, typedef, typedef.type, kernelType);
+ }
var typeElement =
new GenericFunctionTypeElementImpl.forKernel(context, kernelType);
return typeElement.type;
@@ -246,6 +256,69 @@
throw new UnimplementedError('For ${kernelType.runtimeType}');
}
+ /// Given the [executable] element that corresponds to the [kernelNode],
+ /// and the [kernelType] that is the instantiated type of [kernelNode],
+ /// return the instantiated type of the [executable].
+ FunctionType instantiateFunctionType(
+ ElementImpl context,
+ FunctionTypedElement executable,
+ kernel.TreeNode kernelNode,
+ kernel.FunctionType kernelRawType,
+ kernel.FunctionType kernelType) {
+ // Prepare all kernel type parameters.
+ var kernelTypeParameters = <kernel.TypeParameter>[];
+ for (kernel.TreeNode node = kernelNode; node != null; node = node.parent) {
+ if (node is kernel.Class) {
+ kernelTypeParameters.addAll(node.typeParameters);
+ } else if (node is kernel.FunctionNode) {
+ kernelTypeParameters.addAll(node.typeParameters);
+ } else if (node is kernel.Typedef) {
+ kernelTypeParameters.addAll(node.typeParameters);
+ }
+ }
+
+ // If no type parameters, the raw type of the element will do.
+ FunctionTypeImpl rawType = executable.type;
+ if (kernelTypeParameters.isEmpty) {
+ return rawType;
+ }
+
+ // Compute type arguments for kernel type parameters.
+ var kernelMap = kernel.unifyTypes(
+ kernelRawType, kernelType, kernelTypeParameters.toSet());
+
+ // Prepare Analyzer type parameters, in the same order as kernel ones.
+ var astTypeParameters = <TypeParameterElement>[];
+ for (Element element = executable;
+ element != null;
+ element = element.enclosingElement) {
+ if (element is TypeParameterizedElement) {
+ astTypeParameters.addAll(element.typeParameters);
+ }
+ }
+
+ // Convert kernel type arguments into Analyzer types.
+ int length = astTypeParameters.length;
+ var usedTypeParameters = <TypeParameterElement>[];
+ var usedTypeArguments = <DartType>[];
+ for (var i = 0; i < length; i++) {
+ var kernelParameter = kernelTypeParameters[i];
+ var kernelArgument = kernelMap[kernelParameter];
+ if (kernelArgument != null) {
+ DartType astArgument = getType(context, kernelArgument);
+ usedTypeParameters.add(astTypeParameters[i]);
+ usedTypeArguments.add(astArgument);
+ }
+ }
+
+ if (usedTypeParameters.isEmpty) {
+ return rawType;
+ }
+
+ // Replace Analyzer type parameters with type arguments.
+ return rawType.substitute4(usedTypeParameters, usedTypeArguments);
+ }
+
void _buildTypeProvider() {
var coreLibrary = getLibrary('dart:core');
var asyncLibrary = getLibrary('dart:async');
diff --git a/pkg/analyzer/test/generated/all_the_rest_test.dart b/pkg/analyzer/test/generated/all_the_rest_test.dart
index ae3c506..23eb3b0 100644
--- a/pkg/analyzer/test/generated/all_the_rest_test.dart
+++ b/pkg/analyzer/test/generated/all_the_rest_test.dart
@@ -1526,7 +1526,8 @@
}
void _assertHasReturn(bool expectedResult, String source) {
- Statement statement = parseStatement(source, enableLazyAssignmentOperators);
+ Statement statement = parseStatement(source,
+ enableLazyAssignmentOperators: enableLazyAssignmentOperators);
expect(ExitDetector.exits(statement), expectedResult);
}
diff --git a/pkg/analyzer/test/generated/hint_code_test.dart b/pkg/analyzer/test/generated/hint_code_test.dart
index 0922af5..5f063e9 100644
--- a/pkg/analyzer/test/generated/hint_code_test.dart
+++ b/pkg/analyzer/test/generated/hint_code_test.dart
@@ -31,6 +31,7 @@
r'''
library meta;
+const _AlwaysThrows alwaysThrows = const _AlwaysThrows();
const _Factory factory = const _Factory();
const Immutable immutable = const Immutable();
const _Literal literal = const _Literal();
@@ -46,6 +47,9 @@
final String reason;
const Immutable([this.reason]);
}
+class _AlwaysThrows {
+ const _AlwaysThrows();
+}
class _Factory {
const _Factory();
}
@@ -719,6 +723,68 @@
verify([source]);
}
+ test_deadCode_statementAfterAlwaysThrowsFunction() async {
+ Source source = addSource(r'''
+import 'package:meta/meta.dart';
+
+@alwaysThrows
+void a() {
+ throw 'msg';
+}
+
+f() {
+ var one = 1;
+ a();
+ var two = 2;
+}''');
+ await computeAnalysisResult(source);
+ assertErrors(source, [HintCode.DEAD_CODE]);
+ verify([source]);
+ }
+
+ test_deadCode_statementAfterAlwaysThrowsMethod() async {
+ Source source = addSource(r'''
+import 'package:meta/meta.dart';
+
+class C {
+ @alwaysThrows
+ void a() {
+ throw 'msg';
+ }
+}
+
+f() {
+ var one = 1;
+ new C().a();
+ var two = 2;
+}''');
+ await computeAnalysisResult(source);
+ assertErrors(source, [HintCode.DEAD_CODE]);
+ verify([source]);
+ }
+
+ @failingTest
+ test_deadCode_statementAfterAlwaysThrowsGetter() async {
+ Source source = addSource(r'''
+import 'package:meta/meta.dart';
+
+class C {
+ @alwaysThrows
+ int get a {
+ throw 'msg';
+ }
+}
+
+f() {
+ var one = 1;
+ new C().a;
+ var two = 2;
+}''');
+ await computeAnalysisResult(source);
+ assertErrors(source, [HintCode.DEAD_CODE]);
+ verify([source]);
+ }
+
test_deprecatedAnnotationUse_assignment() async {
Source source = addSource(r'''
class A {
diff --git a/pkg/analyzer/test/generated/non_error_resolver_kernel_test.dart b/pkg/analyzer/test/generated/non_error_resolver_kernel_test.dart
index ea6d775..c10d1c1 100644
--- a/pkg/analyzer/test/generated/non_error_resolver_kernel_test.dart
+++ b/pkg/analyzer/test/generated/non_error_resolver_kernel_test.dart
@@ -2,6 +2,7 @@
// 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 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import 'non_error_resolver_driver_test.dart';
@@ -27,6 +28,170 @@
bool get enableKernelDriver => true;
@override
+ bool get previewDart2 => true;
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_abstractSuperMemberReference_superHasNoSuchMethod() async {
+ return super.test_abstractSuperMemberReference_superHasNoSuchMethod();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_ambiguousImport_showCombinator() async {
+ return super.test_ambiguousImport_showCombinator();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_assignmentToFinals_importWithPrefix() async {
+ return super.test_assignmentToFinals_importWithPrefix();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_async_flattened() async {
+ return super.test_async_flattened();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_commentReference_beforeConstructor() async {
+ return super.test_commentReference_beforeConstructor();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_commentReference_beforeEnum() async {
+ return super.test_commentReference_beforeEnum();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_commentReference_beforeFunction_blockBody() async {
+ return super.test_commentReference_beforeFunction_blockBody();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_commentReference_beforeFunction_expressionBody() async {
+ return super.test_commentReference_beforeFunction_expressionBody();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_commentReference_beforeFunctionTypeAlias() async {
+ return super.test_commentReference_beforeFunctionTypeAlias();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_commentReference_beforeGenericTypeAlias() async {
+ return super.test_commentReference_beforeGenericTypeAlias();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_commentReference_beforeGetter() async {
+ return super.test_commentReference_beforeGetter();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_commentReference_beforeMethod() async {
+ return super.test_commentReference_beforeMethod();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_commentReference_class() async {
+ return super.test_commentReference_class();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_commentReference_setter() async {
+ return super.test_commentReference_setter();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_const_constructor_with_named_generic_parameter() async {
+ return super.test_const_constructor_with_named_generic_parameter();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_const_dynamic() async {
+ return super.test_const_dynamic();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_constConstructorWithNonConstSuper_redirectingFactory() async {
+ return super.test_constConstructorWithNonConstSuper_redirectingFactory();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_constConstructorWithNonConstSuper_unresolved() async {
+ return super.test_constConstructorWithNonConstSuper_unresolved();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_constConstructorWithNonFinalField_mixin() async {
+ return super.test_constConstructorWithNonFinalField_mixin();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_constDeferredClass_new() async {
+ return super.test_constDeferredClass_new();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_constEval_propertyExtraction_fieldStatic_targetType() async {
+ return super.test_constEval_propertyExtraction_fieldStatic_targetType();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_constEval_propertyExtraction_methodStatic_targetType() async {
+ return super.test_constEval_propertyExtraction_methodStatic_targetType();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_constRedirectSkipsSupertype() async {
+ return super.test_constRedirectSkipsSupertype();
+ }
+
+ @override
@failingTest
@FastaProblem('https://github.com/dart-lang/sdk/issues/28434')
test_constructorDeclaration_scope_signature() async {
@@ -35,6 +200,55 @@
@override
@failingTest
+ @potentialAnalyzerProblem
+ test_dynamicIdentifier() async {
+ return super.test_dynamicIdentifier();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_fieldFormalParameter_functionTyped_named() async {
+ return super.test_fieldFormalParameter_functionTyped_named();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_fieldFormalParameter_genericFunctionTyped() async {
+ return super.test_fieldFormalParameter_genericFunctionTyped();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_fieldFormalParameter_genericFunctionTyped_named() async {
+ return super.test_fieldFormalParameter_genericFunctionTyped_named();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_finalNotInitialized_functionTypedFieldFormal() async {
+ return super.test_finalNotInitialized_functionTypedFieldFormal();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_finalNotInitialized_hasNativeClause_hasConstructor() async {
+ return super.test_finalNotInitialized_hasNativeClause_hasConstructor();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_finalNotInitialized_hasNativeClause_noConstructor() async {
+ return super.test_finalNotInitialized_hasNativeClause_noConstructor();
+ }
+
+ @override
+ @failingTest
@FastaProblem('https://github.com/dart-lang/sdk/issues/28434')
test_functionDeclaration_scope_signature() async {
return super.test_functionDeclaration_scope_signature();
@@ -49,6 +263,27 @@
@override
@failingTest
+ @potentialAnalyzerProblem
+ test_genericTypeAlias_castsAndTypeChecks_hasTypeParameters() async {
+ return super.test_genericTypeAlias_castsAndTypeChecks_hasTypeParameters();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_genericTypeAlias_castsAndTypeChecks_noTypeParameters() async {
+ return super.test_genericTypeAlias_castsAndTypeChecks_noTypeParameters();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_genericTypeAlias_fieldAndReturnType_noTypeParameters() async {
+ return super.test_genericTypeAlias_fieldAndReturnType_noTypeParameters();
+ }
+
+ @override
+ @failingTest
@FastaProblem('https://github.com/dart-lang/sdk/issues/30838')
test_genericTypeAlias_fieldAndReturnType_typeParameters_arguments() async {
return super
@@ -65,6 +300,104 @@
@override
@failingTest
+ @potentialAnalyzerProblem
+ test_genericTypeAlias_invalidGenericFunctionType() async {
+ return super.test_genericTypeAlias_invalidGenericFunctionType();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_genericTypeAlias_noTypeParameters() async {
+ return super.test_genericTypeAlias_noTypeParameters();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_genericTypeAlias_typeParameters() async {
+ return super.test_genericTypeAlias_typeParameters();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_importPrefixes_withFirstLetterDifference() async {
+ return super.test_importPrefixes_withFirstLetterDifference();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invalidAnnotation_constantVariable_field() async {
+ return super.test_invalidAnnotation_constantVariable_field();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invalidAnnotation_constantVariable_field_importWithPrefix() async {
+ return super
+ .test_invalidAnnotation_constantVariable_field_importWithPrefix();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invalidAnnotation_constantVariable_topLevel_importWithPrefix() async {
+ return super
+ .test_invalidAnnotation_constantVariable_topLevel_importWithPrefix();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invalidAnnotation_constConstructor_importWithPrefix() async {
+ return super.test_invalidAnnotation_constConstructor_importWithPrefix();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invalidAnnotation_constConstructor_named_importWithPrefix() async {
+ return super
+ .test_invalidAnnotation_constConstructor_named_importWithPrefix();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invocationOfNonFunction_dynamic() async {
+ // TODO(scheglov) This test fails only in checked mode.
+ fail('This test fails only in checked mode');
+ return super.test_invocationOfNonFunction_dynamic();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invocationOfNonFunction_functionTypeTypeParameter() async {
+ return super.test_invocationOfNonFunction_functionTypeTypeParameter();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invocationOfNonFunction_getter() async {
+ // TODO(scheglov) This test fails only in checked mode.
+ fail('This test fails only in checked mode');
+ return super.test_invocationOfNonFunction_getter();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_loadLibraryDefined() async {
+ return super.test_loadLibraryDefined();
+ }
+
+ @override
+ @failingTest
@FastaProblem('https://github.com/dart-lang/sdk/issues/30834')
test_memberWithClassName_setter() async {
return super.test_memberWithClassName_setter();
@@ -76,4 +409,186 @@
test_methodDeclaration_scope_signature() async {
return super.test_methodDeclaration_scope_signature();
}
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_nonConstantValueInInitializer_namedArgument() async {
+ return super.test_nonConstantValueInInitializer_namedArgument();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_nonConstCaseExpression_constField() async {
+ return super.test_nonConstCaseExpression_constField();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_nonConstMapKey_constField() async {
+ return super.test_nonConstMapKey_constField();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_nonConstValueInInitializer_binary_dynamic() async {
+ return super.test_nonConstValueInInitializer_binary_dynamic();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_nonConstValueInInitializer_redirecting() async {
+ return super.test_nonConstValueInInitializer_redirecting();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_null_callMethod() async {
+ return super.test_null_callMethod();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_prefixCollidesWithTopLevelMembers() async {
+ return super.test_prefixCollidesWithTopLevelMembers();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_recursiveConstructorRedirect() async {
+ return super.test_recursiveConstructorRedirect();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_recursiveFactoryRedirect() async {
+ return super.test_recursiveFactoryRedirect();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_redirectToInvalidFunctionType() async {
+ return super.test_redirectToInvalidFunctionType();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_redirectToNonConstConstructor() async {
+ return super.test_redirectToNonConstConstructor();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_referencedBeforeDeclaration_cascade() async {
+ return super.test_referencedBeforeDeclaration_cascade();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_returnOfInvalidType_typeParameter_18468() async {
+ return super.test_returnOfInvalidType_typeParameter_18468();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_sharedDeferredPrefix() async {
+ return super.test_sharedDeferredPrefix();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_staticAccessToInstanceMember_annotation() async {
+ return super.test_staticAccessToInstanceMember_annotation();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_staticAccessToInstanceMember_method() async {
+ return super.test_staticAccessToInstanceMember_method();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_typeType_class_prefixed() async {
+ return super.test_typeType_class_prefixed();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_typeType_functionTypeAlias_prefixed() async {
+ return super.test_typeType_functionTypeAlias_prefixed();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_undefinedConstructorInInitializer_redirecting() async {
+ return super.test_undefinedConstructorInInitializer_redirecting();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_undefinedGetter_static_conditionalAccess() async {
+ return super.test_undefinedGetter_static_conditionalAccess();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_undefinedIdentifier_synthetic_whenExpression() async {
+ return super.test_undefinedIdentifier_synthetic_whenExpression();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_undefinedIdentifier_synthetic_whenMethodName() async {
+ return super.test_undefinedIdentifier_synthetic_whenMethodName();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_undefinedMethod_functionExpression_callMethod() async {
+ return super.test_undefinedMethod_functionExpression_callMethod();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_undefinedMethod_functionExpression_directCall() async {
+ return super.test_undefinedMethod_functionExpression_directCall();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_undefinedSetter_importWithPrefix() async {
+ return super.test_undefinedSetter_importWithPrefix();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_undefinedSetter_static_conditionalAccess() async {
+ return super.test_undefinedSetter_static_conditionalAccess();
+ }
}
diff --git a/pkg/analyzer/test/generated/non_hint_code_test.dart b/pkg/analyzer/test/generated/non_hint_code_test.dart
index e5af360..40cc6b2 100644
--- a/pkg/analyzer/test/generated/non_hint_code_test.dart
+++ b/pkg/analyzer/test/generated/non_hint_code_test.dart
@@ -20,6 +20,24 @@
@reflectiveTest
class NonHintCodeTest extends ResolverTestCase {
+ @override
+ void reset() {
+ super.resetWith(packages: [
+ [
+ 'meta',
+ r'''
+library meta;
+
+const _AlwaysThrows alwaysThrows = const _AlwaysThrows();
+
+class _AlwaysThrows {
+ const _AlwaysThrows();
+}
+'''
+ ]
+ ]);
+ }
+
test_async_future_object_without_return() async {
Source source = addSource('''
import 'dart:async';
@@ -474,6 +492,23 @@
verify([source]);
}
+ test_missingReturn_alwaysThrows() async {
+ Source source = addSource(r'''
+import 'package:meta/meta.dart';
+
+@alwaysThrows
+void a() {
+ throw 'msg';
+}
+
+int f() {
+ a();
+}''');
+ await computeAnalysisResult(source);
+ assertNoErrors(source);
+ verify([source]);
+ }
+
test_nullAwareInCondition_for_noCondition() async {
Source source = addSource(r'''
m(x) {
diff --git a/pkg/analyzer/test/generated/parser_fasta_test.dart b/pkg/analyzer/test/generated/parser_fasta_test.dart
index 7b0feb7..929c31b 100644
--- a/pkg/analyzer/test/generated/parser_fasta_test.dart
+++ b/pkg/analyzer/test/generated/parser_fasta_test.dart
@@ -2027,12 +2027,13 @@
@override
CompilationUnit parseDirectives(String source,
[List<ErrorCode> errorCodes = const <ErrorCode>[]]) {
- // TODO(paulberry,ahe,danrubel): analyzer parser has the ability to
- // stop parsing as soon as the first non-directive is encountered; this is
- // useful for quickly traversing an import graph. Consider adding a similar
- // ability to Fasta's parser.
- throw 'fasta parser does not have a method that just parses directives'
- ' and stops when it finds the first declaration or EOF.';
+ createParser(source);
+ CompilationUnit unit =
+ _parserProxy.parseDirectives(_parserProxy.currentToken);
+ expect(unit, isNotNull);
+ expect(unit.declarations, hasLength(0));
+ listener.assertErrorsWithCodes(errorCodes);
+ return unit;
}
@override
@@ -2219,8 +2220,8 @@
@override
Statement parseStatement(String source,
- [bool enableLazyAssignmentOperators]) {
- createParser(source);
+ {bool enableLazyAssignmentOperators, int expectedEndOffset}) {
+ createParser(source, expectedEndOffset: expectedEndOffset);
Statement statement = _parserProxy.parseStatement2();
assertErrors(codes: NO_ERROR_COMPARISON);
return statement;
@@ -2720,13 +2721,6 @@
@override
@failingTest
- void test_incompleteLocalVariable_atTheEndOfBlock() {
- // TODO(brianwilkerson) reportUnrecoverableErrorWithToken
- super.test_incompleteLocalVariable_atTheEndOfBlock();
- }
-
- @override
- @failingTest
void test_incompleteLocalVariable_beforeIdentifier() {
// TODO(brianwilkerson) reportUnrecoverableErrorWithToken
super.test_incompleteLocalVariable_beforeIdentifier();
@@ -2741,20 +2735,6 @@
@override
@failingTest
- void test_incompleteLocalVariable_beforeNextBlock() {
- // TODO(brianwilkerson) reportUnrecoverableErrorWithToken
- super.test_incompleteLocalVariable_beforeNextBlock();
- }
-
- @override
- @failingTest
- void test_incompleteLocalVariable_parameterizedType() {
- // TODO(brianwilkerson) reportUnrecoverableErrorWithToken
- super.test_incompleteLocalVariable_parameterizedType();
- }
-
- @override
- @failingTest
void test_incompleteTypeArguments_field() {
// TODO(brianwilkerson) reportUnrecoverableErrorWithToken
super.test_incompleteTypeArguments_field();
@@ -2783,13 +2763,6 @@
@override
@failingTest
- void test_missingComma_beforeNamedArgument() {
- // TODO(brianwilkerson) reportUnrecoverableErrorWithToken
- super.test_missingComma_beforeNamedArgument();
- }
-
- @override
- @failingTest
void test_missingGet() {
// TODO(brianwilkerson) exception:
// NoSuchMethodError: Class '_KernelLibraryBuilder' has no instance method 'addCompileTimeError'.
@@ -2880,30 +2853,6 @@
with SimpleParserTestMixin {
@override
@failingTest
- void test_parseDocumentationComment_block() {
- // TODO(brianwilkerson) exception:
- // NoSuchMethodError: Class 'ParserProxy' has no instance method 'parseDocumentationCommentTokens'.
- super.test_parseDocumentationComment_block();
- }
-
- @override
- @failingTest
- void test_parseDocumentationComment_block_withReference() {
- // TODO(brianwilkerson) exception:
- // NoSuchMethodError: Class 'ParserProxy' has no instance method 'parseDocumentationCommentTokens'.
- super.test_parseDocumentationComment_block_withReference();
- }
-
- @override
- @failingTest
- void test_parseDocumentationComment_endOfLine() {
- // TODO(brianwilkerson) exception:
- // NoSuchMethodError: Class 'ParserProxy' has no instance method 'parseDocumentationCommentTokens'.
- super.test_parseDocumentationComment_endOfLine();
- }
-
- @override
- @failingTest
void test_parseTypeParameterList_single() {
// TODO(brianwilkerson) Does not use all tokens.
super.test_parseTypeParameterList_single();
diff --git a/pkg/analyzer/test/generated/parser_test.dart b/pkg/analyzer/test/generated/parser_test.dart
index 0520f0b..aec9b4c 100644
--- a/pkg/analyzer/test/generated/parser_test.dart
+++ b/pkg/analyzer/test/generated/parser_test.dart
@@ -220,7 +220,8 @@
SimpleIdentifier parseSimpleIdentifier(String code);
- Statement parseStatement(String source, [bool enableLazyAssignmentOperators]);
+ Statement parseStatement(String source,
+ {bool enableLazyAssignmentOperators, int expectedEndOffset});
Expression parseStringLiteral(String code);
@@ -9455,7 +9456,7 @@
* is `true`, then lazy assignment operators should be enabled.
*/
Statement parseStatement(String source,
- [bool enableLazyAssignmentOperators]) {
+ {bool enableLazyAssignmentOperators, int expectedEndOffset}) {
listener = new GatheringErrorListener();
Scanner scanner =
new Scanner(null, new CharSequenceReader(source), listener);
@@ -10349,15 +10350,26 @@
}
void test_incompleteLocalVariable_atTheEndOfBlock() {
- Statement statement = parseStatement('String v }');
+ Statement statement = parseStatement('String v }', expectedEndOffset: 9);
listener
.assertErrors([expectedError(ParserErrorCode.EXPECTED_TOKEN, 9, 1)]);
expect(statement, new isInstanceOf<VariableDeclarationStatement>());
expect(statement.toSource(), 'String v;');
}
+ void test_incompleteLocalVariable_atTheEndOfBlock_modifierOnly() {
+ Statement statement = parseStatement('final }', expectedEndOffset: 6);
+ listener.assertErrors([
+ expectedError(ParserErrorCode.MISSING_IDENTIFIER, 6, 1),
+ expectedError(ParserErrorCode.EXPECTED_TOKEN, 6, 1)
+ ]);
+ expect(statement, new isInstanceOf<VariableDeclarationStatement>());
+ expect(statement.toSource(), 'final ;');
+ }
+
void test_incompleteLocalVariable_beforeIdentifier() {
- Statement statement = parseStatement('String v String v2;');
+ Statement statement =
+ parseStatement('String v String v2;', expectedEndOffset: 9);
listener
.assertErrors([expectedError(ParserErrorCode.EXPECTED_TOKEN, 9, 6)]);
expect(statement, new isInstanceOf<VariableDeclarationStatement>());
@@ -10365,7 +10377,8 @@
}
void test_incompleteLocalVariable_beforeKeyword() {
- Statement statement = parseStatement('String v if (true) {}');
+ Statement statement =
+ parseStatement('String v if (true) {}', expectedEndOffset: 9);
listener
.assertErrors([expectedError(ParserErrorCode.EXPECTED_TOKEN, 9, 2)]);
expect(statement, new isInstanceOf<VariableDeclarationStatement>());
@@ -10373,7 +10386,7 @@
}
void test_incompleteLocalVariable_beforeNextBlock() {
- Statement statement = parseStatement('String v {}');
+ Statement statement = parseStatement('String v {}', expectedEndOffset: 9);
listener
.assertErrors([expectedError(ParserErrorCode.EXPECTED_TOKEN, 9, 1)]);
expect(statement, new isInstanceOf<VariableDeclarationStatement>());
@@ -10381,7 +10394,8 @@
}
void test_incompleteLocalVariable_parameterizedType() {
- Statement statement = parseStatement('List<String> v {}');
+ Statement statement =
+ parseStatement('List<String> v {}', expectedEndOffset: 15);
listener
.assertErrors([expectedError(ParserErrorCode.EXPECTED_TOKEN, 15, 1)]);
expect(statement, new isInstanceOf<VariableDeclarationStatement>());
@@ -10573,18 +10587,26 @@
}
void test_missing_commaInArgumentList() {
- parseExpression("f(x: 1 y: 2)",
+ MethodInvocation expression = parseExpression("f(x: 1 y: 2)",
codes: usingFastaParser
? [ParserErrorCode.UNEXPECTED_TOKEN]
: [ParserErrorCode.EXPECTED_TOKEN]);
+ NodeList<Expression> arguments = expression.argumentList.arguments;
+ expect(arguments, hasLength(2));
}
void test_missingComma_beforeNamedArgument() {
createParser('(a b: c)');
ArgumentList argumentList = parser.parseArgumentList();
expectNotNullIfNoErrors(argumentList);
- listener
- .assertErrors([expectedError(ParserErrorCode.EXPECTED_TOKEN, 3, 1)]);
+ listener.assertErrors([
+ expectedError(
+ usingFastaParser
+ ? ParserErrorCode.UNEXPECTED_TOKEN
+ : ParserErrorCode.EXPECTED_TOKEN,
+ 3,
+ 1)
+ ]);
expect(argumentList.arguments, hasLength(2));
}
@@ -12611,9 +12633,9 @@
}
void test_parseDocumentationComment_block() {
- createParser('/** */ class');
- Comment comment = parser
- .parseDocumentationComment(parser.parseDocumentationCommentTokens());
+ createParser('/** */ class C {}');
+ CompilationUnit unit = parser.parseCompilationUnit2();
+ Comment comment = unit.declarations[0].documentationComment;
expectNotNullIfNoErrors(comment);
listener.assertNoErrors();
expect(comment.isBlock, isFalse);
@@ -12622,9 +12644,9 @@
}
void test_parseDocumentationComment_block_withReference() {
- createParser('/** [a] */ class');
- Comment comment = parser
- .parseDocumentationComment(parser.parseDocumentationCommentTokens());
+ createParser('/** [a] */ class C {}');
+ CompilationUnit unit = parser.parseCompilationUnit2();
+ Comment comment = unit.declarations[0].documentationComment;
expectNotNullIfNoErrors(comment);
listener.assertNoErrors();
expect(comment.isBlock, isFalse);
@@ -12638,9 +12660,9 @@
}
void test_parseDocumentationComment_endOfLine() {
- createParser('/// \n/// \n class');
- Comment comment = parser
- .parseDocumentationComment(parser.parseDocumentationCommentTokens());
+ createParser('/// \n/// \n class C {}');
+ CompilationUnit unit = parser.parseCompilationUnit2();
+ Comment comment = unit.declarations[0].documentationComment;
expectNotNullIfNoErrors(comment);
listener.assertNoErrors();
expect(comment.isBlock, isFalse);
@@ -14455,51 +14477,7 @@
}
@reflectiveTest
-class TopLevelParserTest extends ParserTestCase with TopLevelParserTestMixin {
- void test_parseDirectives_complete() {
- CompilationUnit unit =
- parseDirectives("#! /bin/dart\nlibrary l;\nclass A {}");
- expect(unit.scriptTag, isNotNull);
- expect(unit.directives, hasLength(1));
- }
-
- void test_parseDirectives_empty() {
- CompilationUnit unit = parseDirectives("");
- expect(unit.scriptTag, isNull);
- expect(unit.directives, hasLength(0));
- }
-
- void test_parseDirectives_mixed() {
- CompilationUnit unit =
- parseDirectives("library l; class A {} part 'foo.dart';");
- expect(unit.scriptTag, isNull);
- expect(unit.directives, hasLength(1));
- }
-
- void test_parseDirectives_multiple() {
- CompilationUnit unit = parseDirectives("library l;\npart 'a.dart';");
- expect(unit.scriptTag, isNull);
- expect(unit.directives, hasLength(2));
- }
-
- void test_parseDirectives_script() {
- CompilationUnit unit = parseDirectives("#! /bin/dart");
- expect(unit.scriptTag, isNotNull);
- expect(unit.directives, hasLength(0));
- }
-
- void test_parseDirectives_single() {
- CompilationUnit unit = parseDirectives("library l;");
- expect(unit.scriptTag, isNull);
- expect(unit.directives, hasLength(1));
- }
-
- void test_parseDirectives_topLevelDeclaration() {
- CompilationUnit unit = parseDirectives("class A {}");
- expect(unit.scriptTag, isNull);
- expect(unit.directives, hasLength(0));
- }
-}
+class TopLevelParserTest extends ParserTestCase with TopLevelParserTestMixin {}
/**
* Tests which exercise the parser using a complete compilation unit or
@@ -15592,6 +15570,50 @@
expect(partOfDirective.semicolon, isNotNull);
}
+ void test_parseDirectives_complete() {
+ CompilationUnit unit =
+ parseDirectives("#! /bin/dart\nlibrary l;\nclass A {}");
+ expect(unit.scriptTag, isNotNull);
+ expect(unit.directives, hasLength(1));
+ }
+
+ void test_parseDirectives_empty() {
+ CompilationUnit unit = parseDirectives("");
+ expect(unit.scriptTag, isNull);
+ expect(unit.directives, hasLength(0));
+ }
+
+ void test_parseDirectives_mixed() {
+ CompilationUnit unit =
+ parseDirectives("library l; class A {} part 'foo.dart';");
+ expect(unit.scriptTag, isNull);
+ expect(unit.directives, hasLength(1));
+ }
+
+ void test_parseDirectives_multiple() {
+ CompilationUnit unit = parseDirectives("library l;\npart 'a.dart';");
+ expect(unit.scriptTag, isNull);
+ expect(unit.directives, hasLength(2));
+ }
+
+ void test_parseDirectives_script() {
+ CompilationUnit unit = parseDirectives("#! /bin/dart");
+ expect(unit.scriptTag, isNotNull);
+ expect(unit.directives, hasLength(0));
+ }
+
+ void test_parseDirectives_single() {
+ CompilationUnit unit = parseDirectives("library l;");
+ expect(unit.scriptTag, isNull);
+ expect(unit.directives, hasLength(1));
+ }
+
+ void test_parseDirectives_topLevelDeclaration() {
+ CompilationUnit unit = parseDirectives("class A {}");
+ expect(unit.scriptTag, isNull);
+ expect(unit.directives, hasLength(0));
+ }
+
void test_parseEnumDeclaration_one() {
createParser("enum E {ONE}");
EnumDeclaration declaration = parseFullCompilationUnitMember();
diff --git a/pkg/analyzer/test/generated/resolver_test_case.dart b/pkg/analyzer/test/generated/resolver_test_case.dart
index f040574..139df0c 100644
--- a/pkg/analyzer/test/generated/resolver_test_case.dart
+++ b/pkg/analyzer/test/generated/resolver_test_case.dart
@@ -350,6 +350,8 @@
bool get enableNewAnalysisDriver => false;
+ bool get previewDart2 => false;
+
/**
* Return a type provider that can be used to test the results of resolution.
*
@@ -664,6 +666,9 @@
}
options ??= defaultAnalysisOptions;
if (enableNewAnalysisDriver) {
+ if (previewDart2) {
+ (options as AnalysisOptionsImpl).useFastaParser = true;
+ }
DartSdk sdk = new MockSdk(resourceProvider: resourceProvider)
..context.analysisOptions = options;
diff --git a/pkg/analyzer/test/generated/static_warning_code_kernel_test.dart b/pkg/analyzer/test/generated/static_warning_code_kernel_test.dart
index 9d2129b..0875808 100644
--- a/pkg/analyzer/test/generated/static_warning_code_kernel_test.dart
+++ b/pkg/analyzer/test/generated/static_warning_code_kernel_test.dart
@@ -17,12 +17,17 @@
const FastaProblem(String issueUri);
}
+const potentialAnalyzerProblem = const Object();
+
@reflectiveTest
class StaticWarningCodeTest_Kernel extends StaticWarningCodeTest_Driver {
@override
bool get enableKernelDriver => true;
@override
+ bool get previewDart2 => true;
+
+ @override
@failingTest
@FastaProblem('https://github.com/dart-lang/sdk/issues/31073')
test_finalNotInitialized_inConstructor_1() async {
@@ -52,15 +57,1900 @@
@override
@failingTest
- @FastaProblem('https://github.com/dart-lang/sdk/issues/31073')
- test_invalidOverride_nonDefaultOverridesDefault() async {
- return super.test_invalidOverride_nonDefaultOverridesDefault();
+ @potentialAnalyzerProblem
+ test_ambiguousImport_as() async {
+ return super.test_ambiguousImport_as();
}
@override
@failingTest
- @FastaProblem('https://github.com/dart-lang/sdk/issues/31073')
- test_invalidOverride_nonDefaultOverridesDefault_named() async {
- return super.test_invalidOverride_nonDefaultOverridesDefault_named();
+ @potentialAnalyzerProblem
+ test_ambiguousImport_extends() async {
+ return super.test_ambiguousImport_extends();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_ambiguousImport_implements() async {
+ return super.test_ambiguousImport_implements();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_ambiguousImport_inPart() async {
+ return super.test_ambiguousImport_inPart();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_ambiguousImport_instanceCreation() async {
+ return super.test_ambiguousImport_instanceCreation();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_ambiguousImport_is() async {
+ return super.test_ambiguousImport_is();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_ambiguousImport_qualifier() async {
+ return super.test_ambiguousImport_qualifier();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_ambiguousImport_typeAnnotation() async {
+ return super.test_ambiguousImport_typeAnnotation();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_ambiguousImport_typeArgument_annotation() async {
+ return super.test_ambiguousImport_typeArgument_annotation();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_ambiguousImport_typeArgument_instanceCreation() async {
+ return super.test_ambiguousImport_typeArgument_instanceCreation();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_ambiguousImport_varRead() async {
+ return super.test_ambiguousImport_varRead();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_ambiguousImport_varWrite() async {
+ return super.test_ambiguousImport_varWrite();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_ambiguousImport_withPrefix() async {
+ return super.test_ambiguousImport_withPrefix();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_argumentTypeNotAssignable_ambiguousClassName() async {
+ return super.test_argumentTypeNotAssignable_ambiguousClassName();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_argumentTypeNotAssignable_annotation_namedConstructor() async {
+ return super.test_argumentTypeNotAssignable_annotation_namedConstructor();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_argumentTypeNotAssignable_annotation_unnamedConstructor() async {
+ return super.test_argumentTypeNotAssignable_annotation_unnamedConstructor();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_argumentTypeNotAssignable_binary() async {
+ return super.test_argumentTypeNotAssignable_binary();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_argumentTypeNotAssignable_cascadeSecond() async {
+ return super.test_argumentTypeNotAssignable_cascadeSecond();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_argumentTypeNotAssignable_const() async {
+ return super.test_argumentTypeNotAssignable_const();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_argumentTypeNotAssignable_const_super() async {
+ return super.test_argumentTypeNotAssignable_const_super();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_argumentTypeNotAssignable_functionExpressionInvocation_required() async {
+ return super
+ .test_argumentTypeNotAssignable_functionExpressionInvocation_required();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_argumentTypeNotAssignable_index() async {
+ return super.test_argumentTypeNotAssignable_index();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_argumentTypeNotAssignable_invocation_callParameter() async {
+ return super.test_argumentTypeNotAssignable_invocation_callParameter();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_argumentTypeNotAssignable_invocation_callVariable() async {
+ return super.test_argumentTypeNotAssignable_invocation_callVariable();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_argumentTypeNotAssignable_invocation_functionParameter() async {
+ return super.test_argumentTypeNotAssignable_invocation_functionParameter();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_argumentTypeNotAssignable_invocation_functionParameter_generic() async {
+ return super
+ .test_argumentTypeNotAssignable_invocation_functionParameter_generic();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_argumentTypeNotAssignable_invocation_functionTypes_optional() async {
+ return super
+ .test_argumentTypeNotAssignable_invocation_functionTypes_optional();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_argumentTypeNotAssignable_invocation_generic() async {
+ return super.test_argumentTypeNotAssignable_invocation_generic();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_argumentTypeNotAssignable_invocation_named() async {
+ return super.test_argumentTypeNotAssignable_invocation_named();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_argumentTypeNotAssignable_invocation_optional() async {
+ return super.test_argumentTypeNotAssignable_invocation_optional();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_argumentTypeNotAssignable_invocation_required() async {
+ return super.test_argumentTypeNotAssignable_invocation_required();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_argumentTypeNotAssignable_invocation_typedef_generic() async {
+ return super.test_argumentTypeNotAssignable_invocation_typedef_generic();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_argumentTypeNotAssignable_invocation_typedef_local() async {
+ return super.test_argumentTypeNotAssignable_invocation_typedef_local();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_argumentTypeNotAssignable_invocation_typedef_parameter() async {
+ return super.test_argumentTypeNotAssignable_invocation_typedef_parameter();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_argumentTypeNotAssignable_new_generic() async {
+ return super.test_argumentTypeNotAssignable_new_generic();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_argumentTypeNotAssignable_new_optional() async {
+ return super.test_argumentTypeNotAssignable_new_optional();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_argumentTypeNotAssignable_new_required() async {
+ return super.test_argumentTypeNotAssignable_new_required();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_assignmentToClass() async {
+ return super.test_assignmentToClass();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_assignmentToConst_instanceVariable() async {
+ return super.test_assignmentToConst_instanceVariable();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_assignmentToConst_instanceVariable_plusEq() async {
+ return super.test_assignmentToConst_instanceVariable_plusEq();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_assignmentToConst_localVariable() async {
+ return super.test_assignmentToConst_localVariable();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_assignmentToConst_localVariable_plusEq() async {
+ return super.test_assignmentToConst_localVariable_plusEq();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_assignmentToEnumType() async {
+ return super.test_assignmentToEnumType();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_assignmentToFinal_instanceVariable() async {
+ return super.test_assignmentToFinal_instanceVariable();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_assignmentToFinal_instanceVariable_plusEq() async {
+ return super.test_assignmentToFinal_instanceVariable_plusEq();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_assignmentToFinal_localVariable() async {
+ return super.test_assignmentToFinal_localVariable();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_assignmentToFinal_localVariable_plusEq() async {
+ return super.test_assignmentToFinal_localVariable_plusEq();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_assignmentToFinal_parameter() async {
+ return super.test_assignmentToFinal_parameter();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_assignmentToFinal_postfixMinusMinus() async {
+ return super.test_assignmentToFinal_postfixMinusMinus();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_assignmentToFinal_postfixPlusPlus() async {
+ return super.test_assignmentToFinal_postfixPlusPlus();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_assignmentToFinal_prefixMinusMinus() async {
+ return super.test_assignmentToFinal_prefixMinusMinus();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_assignmentToFinal_prefixPlusPlus() async {
+ return super.test_assignmentToFinal_prefixPlusPlus();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_assignmentToFinal_suffixMinusMinus() async {
+ return super.test_assignmentToFinal_suffixMinusMinus();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_assignmentToFinal_suffixPlusPlus() async {
+ return super.test_assignmentToFinal_suffixPlusPlus();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_assignmentToFinal_topLevelVariable() async {
+ return super.test_assignmentToFinal_topLevelVariable();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_assignmentToFinalNoSetter_prefixedIdentifier() async {
+ return super.test_assignmentToFinalNoSetter_prefixedIdentifier();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_assignmentToFinalNoSetter_propertyAccess() async {
+ return super.test_assignmentToFinalNoSetter_propertyAccess();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_assignmentToFunction() async {
+ return super.test_assignmentToFunction();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_assignmentToMethod() async {
+ return super.test_assignmentToMethod();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_assignmentToTypedef() async {
+ return super.test_assignmentToTypedef();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_assignmentToTypeParameter() async {
+ return super.test_assignmentToTypeParameter();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_caseBlockNotTerminated() async {
+ return super.test_caseBlockNotTerminated();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_castToNonType() async {
+ return super.test_castToNonType();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_concreteClassWithAbstractMember() async {
+ return super.test_concreteClassWithAbstractMember();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_concreteClassWithAbstractMember_noSuchMethod_interface() async {
+ return super.test_concreteClassWithAbstractMember_noSuchMethod_interface();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_conflictingDartImport() async {
+ return super.test_conflictingDartImport();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_conflictingInstanceGetterAndSuperclassMember_declField_direct_setter() async {
+ return super
+ .test_conflictingInstanceGetterAndSuperclassMember_declField_direct_setter();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_conflictingInstanceGetterAndSuperclassMember_declGetter_direct_getter() async {
+ return super
+ .test_conflictingInstanceGetterAndSuperclassMember_declGetter_direct_getter();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_conflictingInstanceGetterAndSuperclassMember_declGetter_direct_method() async {
+ return super
+ .test_conflictingInstanceGetterAndSuperclassMember_declGetter_direct_method();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_conflictingInstanceGetterAndSuperclassMember_declGetter_direct_setter() async {
+ return super
+ .test_conflictingInstanceGetterAndSuperclassMember_declGetter_direct_setter();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_conflictingInstanceGetterAndSuperclassMember_declGetter_indirect() async {
+ return super
+ .test_conflictingInstanceGetterAndSuperclassMember_declGetter_indirect();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_conflictingInstanceGetterAndSuperclassMember_declGetter_mixin() async {
+ return super
+ .test_conflictingInstanceGetterAndSuperclassMember_declGetter_mixin();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_conflictingInstanceGetterAndSuperclassMember_direct_field() async {
+ return super
+ .test_conflictingInstanceGetterAndSuperclassMember_direct_field();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_conflictingInstanceMethodSetter2() async {
+ return super.test_conflictingInstanceMethodSetter2();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_conflictingInstanceMethodSetter_sameClass() async {
+ return super.test_conflictingInstanceMethodSetter_sameClass();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_conflictingInstanceMethodSetter_setterInInterface() async {
+ return super.test_conflictingInstanceMethodSetter_setterInInterface();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_conflictingInstanceMethodSetter_setterInSuper() async {
+ return super.test_conflictingInstanceMethodSetter_setterInSuper();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_conflictingInstanceSetterAndSuperclassMember() async {
+ return super.test_conflictingInstanceSetterAndSuperclassMember();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_conflictingStaticGetterAndInstanceSetter_mixin() async {
+ return super.test_conflictingStaticGetterAndInstanceSetter_mixin();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_conflictingStaticGetterAndInstanceSetter_superClass() async {
+ return super.test_conflictingStaticGetterAndInstanceSetter_superClass();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_conflictingStaticGetterAndInstanceSetter_thisClass() async {
+ return super.test_conflictingStaticGetterAndInstanceSetter_thisClass();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_conflictingStaticSetterAndInstanceMember_thisClass_getter() async {
+ return super
+ .test_conflictingStaticSetterAndInstanceMember_thisClass_getter();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_conflictingStaticSetterAndInstanceMember_thisClass_method() async {
+ return super
+ .test_conflictingStaticSetterAndInstanceMember_thisClass_method();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_constWithAbstractClass() async {
+ return super.test_constWithAbstractClass();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_equalKeysInMap() async {
+ return super.test_equalKeysInMap();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_equalKeysInMap_withEqualTypeParams() async {
+ return super.test_equalKeysInMap_withEqualTypeParams();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_exportDuplicatedLibraryNamed() async {
+ return super.test_exportDuplicatedLibraryNamed();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_extraPositionalArguments() async {
+ return super.test_extraPositionalArguments();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_extraPositionalArguments_functionExpression() async {
+ return super.test_extraPositionalArguments_functionExpression();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_extraPositionalArgumentsCouldBeNamed() async {
+ return super.test_extraPositionalArgumentsCouldBeNamed();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_extraPositionalArgumentsCouldBeNamed_functionExpression() async {
+ return super.test_extraPositionalArgumentsCouldBeNamed_functionExpression();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_fieldInitializedInInitializerAndDeclaration_final() async {
+ return super.test_fieldInitializedInInitializerAndDeclaration_final();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_fieldInitializerNotAssignable() async {
+ return super.test_fieldInitializerNotAssignable();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_fieldInitializingFormalNotAssignable() async {
+ return super.test_fieldInitializingFormalNotAssignable();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_finalInitializedInDeclarationAndConstructor_initializers() async {
+ return super
+ .test_finalInitializedInDeclarationAndConstructor_initializers();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_finalInitializedInDeclarationAndConstructor_initializingFormal() async {
+ return super
+ .test_finalInitializedInDeclarationAndConstructor_initializingFormal();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_finalNotInitialized_instanceField_final() async {
+ return super.test_finalNotInitialized_instanceField_final();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_finalNotInitialized_instanceField_final_static() async {
+ return super.test_finalNotInitialized_instanceField_final_static();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_finalNotInitialized_local_final() async {
+ return super.test_finalNotInitialized_local_final();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_functionWithoutCall_direct() async {
+ return super.test_functionWithoutCall_direct();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_functionWithoutCall_direct_typeAlias() async {
+ return super.test_functionWithoutCall_direct_typeAlias();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_functionWithoutCall_indirect_extends() async {
+ return super.test_functionWithoutCall_indirect_extends();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_functionWithoutCall_indirect_extends_typeAlias() async {
+ return super.test_functionWithoutCall_indirect_extends_typeAlias();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_functionWithoutCall_indirect_implements() async {
+ return super.test_functionWithoutCall_indirect_implements();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_functionWithoutCall_indirect_implements_typeAlias() async {
+ return super.test_functionWithoutCall_indirect_implements_typeAlias();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_functionWithoutCall_mixin_implements() async {
+ return super.test_functionWithoutCall_mixin_implements();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_functionWithoutCall_mixin_implements_typeAlias() async {
+ return super.test_functionWithoutCall_mixin_implements_typeAlias();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_importDuplicatedLibraryNamed() async {
+ return super.test_importDuplicatedLibraryNamed();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_inconsistentMethodInheritanceGetterAndMethod() async {
+ return super.test_inconsistentMethodInheritanceGetterAndMethod();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_instanceMethodNameCollidesWithSuperclassStatic_field() async {
+ return super.test_instanceMethodNameCollidesWithSuperclassStatic_field();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_instanceMethodNameCollidesWithSuperclassStatic_field2() async {
+ return super.test_instanceMethodNameCollidesWithSuperclassStatic_field2();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_instanceMethodNameCollidesWithSuperclassStatic_getter() async {
+ return super.test_instanceMethodNameCollidesWithSuperclassStatic_getter();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_instanceMethodNameCollidesWithSuperclassStatic_getter2() async {
+ return super.test_instanceMethodNameCollidesWithSuperclassStatic_getter2();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_instanceMethodNameCollidesWithSuperclassStatic_interface() async {
+ return super
+ .test_instanceMethodNameCollidesWithSuperclassStatic_interface();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_instanceMethodNameCollidesWithSuperclassStatic_method() async {
+ return super.test_instanceMethodNameCollidesWithSuperclassStatic_method();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_instanceMethodNameCollidesWithSuperclassStatic_method2() async {
+ return super.test_instanceMethodNameCollidesWithSuperclassStatic_method2();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_instanceMethodNameCollidesWithSuperclassStatic_setter() async {
+ return super.test_instanceMethodNameCollidesWithSuperclassStatic_setter();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_instanceMethodNameCollidesWithSuperclassStatic_setter2() async {
+ return super.test_instanceMethodNameCollidesWithSuperclassStatic_setter2();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invalidGetterOverrideReturnType() async {
+ return super.test_invalidGetterOverrideReturnType();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invalidGetterOverrideReturnType_implicit() async {
+ return super.test_invalidGetterOverrideReturnType_implicit();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invalidGetterOverrideReturnType_twoInterfaces() async {
+ return super.test_invalidGetterOverrideReturnType_twoInterfaces();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invalidGetterOverrideReturnType_twoInterfaces_conflicting() async {
+ return super
+ .test_invalidGetterOverrideReturnType_twoInterfaces_conflicting();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invalidMethodOverrideNamedParamType() async {
+ return super.test_invalidMethodOverrideNamedParamType();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invalidMethodOverrideNormalParamType_interface() async {
+ return super.test_invalidMethodOverrideNormalParamType_interface();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invalidMethodOverrideNormalParamType_superclass() async {
+ return super.test_invalidMethodOverrideNormalParamType_superclass();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invalidMethodOverrideNormalParamType_superclass_interface() async {
+ return super
+ .test_invalidMethodOverrideNormalParamType_superclass_interface();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invalidMethodOverrideNormalParamType_twoInterfaces() async {
+ return super.test_invalidMethodOverrideNormalParamType_twoInterfaces();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invalidMethodOverrideNormalParamType_twoInterfaces_conflicting() async {
+ return super
+ .test_invalidMethodOverrideNormalParamType_twoInterfaces_conflicting();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invalidMethodOverrideOptionalParamType() async {
+ return super.test_invalidMethodOverrideOptionalParamType();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invalidMethodOverrideOptionalParamType_twoInterfaces() async {
+ return super.test_invalidMethodOverrideOptionalParamType_twoInterfaces();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invalidMethodOverrideReturnType_interface() async {
+ return super.test_invalidMethodOverrideReturnType_interface();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invalidMethodOverrideReturnType_interface_grandparent() async {
+ return super.test_invalidMethodOverrideReturnType_interface_grandparent();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invalidMethodOverrideReturnType_mixin() async {
+ return super.test_invalidMethodOverrideReturnType_mixin();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invalidMethodOverrideReturnType_superclass() async {
+ return super.test_invalidMethodOverrideReturnType_superclass();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invalidMethodOverrideReturnType_superclass_grandparent() async {
+ return super.test_invalidMethodOverrideReturnType_superclass_grandparent();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invalidMethodOverrideReturnType_twoInterfaces() async {
+ return super.test_invalidMethodOverrideReturnType_twoInterfaces();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invalidMethodOverrideReturnType_void() async {
+ return super.test_invalidMethodOverrideReturnType_void();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invalidOverride_defaultOverridesNonDefault() async {
+ return super.test_invalidOverride_defaultOverridesNonDefault();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invalidOverride_defaultOverridesNonDefault_named() async {
+ return super.test_invalidOverride_defaultOverridesNonDefault_named();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invalidOverrideDifferentDefaultValues_named() async {
+ return super.test_invalidOverrideDifferentDefaultValues_named();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invalidOverrideDifferentDefaultValues_positional() async {
+ return super.test_invalidOverrideDifferentDefaultValues_positional();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invalidOverrideNamed_fewerNamedParameters() async {
+ return super.test_invalidOverrideNamed_fewerNamedParameters();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invalidOverrideNamed_missingNamedParameter() async {
+ return super.test_invalidOverrideNamed_missingNamedParameter();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invalidOverridePositional_optional() async {
+ return super.test_invalidOverridePositional_optional();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invalidOverridePositional_optionalAndRequired() async {
+ return super.test_invalidOverridePositional_optionalAndRequired();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invalidOverridePositional_optionalAndRequired2() async {
+ return super.test_invalidOverridePositional_optionalAndRequired2();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invalidOverrideRequired() async {
+ return super.test_invalidOverrideRequired();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invalidSetterOverrideNormalParamType() async {
+ return super.test_invalidSetterOverrideNormalParamType();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invalidSetterOverrideNormalParamType_superclass_interface() async {
+ return super
+ .test_invalidSetterOverrideNormalParamType_superclass_interface();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invalidSetterOverrideNormalParamType_twoInterfaces() async {
+ return super.test_invalidSetterOverrideNormalParamType_twoInterfaces();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_invalidSetterOverrideNormalParamType_twoInterfaces_conflicting() async {
+ return super
+ .test_invalidSetterOverrideNormalParamType_twoInterfaces_conflicting();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_listElementTypeNotAssignable() async {
+ return super.test_listElementTypeNotAssignable();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_mapKeyTypeNotAssignable() async {
+ return super.test_mapKeyTypeNotAssignable();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_mapValueTypeNotAssignable() async {
+ return super.test_mapValueTypeNotAssignable();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_mismatchedAccessorTypes_class() async {
+ return super.test_mismatchedAccessorTypes_class();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_mismatchedAccessorTypes_getterAndSuperSetter() async {
+ return super.test_mismatchedAccessorTypes_getterAndSuperSetter();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_mismatchedAccessorTypes_setterAndSuperGetter() async {
+ return super.test_mismatchedAccessorTypes_setterAndSuperGetter();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_mismatchedAccessorTypes_topLevel() async {
+ return super.test_mismatchedAccessorTypes_topLevel();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_missingEnumConstantInSwitch() async {
+ return super.test_missingEnumConstantInSwitch();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_mixedReturnTypes_localFunction() async {
+ return super.test_mixedReturnTypes_localFunction();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_mixedReturnTypes_method() async {
+ return super.test_mixedReturnTypes_method();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_mixedReturnTypes_topLevelFunction() async {
+ return super.test_mixedReturnTypes_topLevelFunction();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_newWithAbstractClass() async {
+ return super.test_newWithAbstractClass();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_newWithInvalidTypeParameters() async {
+ return super.test_newWithInvalidTypeParameters();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_newWithInvalidTypeParameters_tooFew() async {
+ return super.test_newWithInvalidTypeParameters_tooFew();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_newWithInvalidTypeParameters_tooMany() async {
+ return super.test_newWithInvalidTypeParameters_tooMany();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_newWithNonType() async {
+ return super.test_newWithNonType();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_newWithNonType_fromLibrary() async {
+ return super.test_newWithNonType_fromLibrary();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_newWithUndefinedConstructor() async {
+ return super.test_newWithUndefinedConstructor();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_newWithUndefinedConstructorDefault() async {
+ return super.test_newWithUndefinedConstructorDefault();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_nonAbstractClassInheritsAbstractMemberFivePlus() async {
+ return super.test_nonAbstractClassInheritsAbstractMemberFivePlus();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_nonAbstractClassInheritsAbstractMemberFour() async {
+ return super.test_nonAbstractClassInheritsAbstractMemberFour();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_nonAbstractClassInheritsAbstractMemberOne_classTypeAlias_interface() async {
+ return super
+ .test_nonAbstractClassInheritsAbstractMemberOne_classTypeAlias_interface();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_nonAbstractClassInheritsAbstractMemberOne_classTypeAlias_mixin() async {
+ return super
+ .test_nonAbstractClassInheritsAbstractMemberOne_classTypeAlias_mixin();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_nonAbstractClassInheritsAbstractMemberOne_classTypeAlias_superclass() async {
+ return super
+ .test_nonAbstractClassInheritsAbstractMemberOne_classTypeAlias_superclass();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_nonAbstractClassInheritsAbstractMemberOne_ensureCorrectFunctionSubtypeIsUsedInImplementation() async {
+ return super
+ .test_nonAbstractClassInheritsAbstractMemberOne_ensureCorrectFunctionSubtypeIsUsedInImplementation();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_nonAbstractClassInheritsAbstractMemberOne_getter_fromInterface() async {
+ return super
+ .test_nonAbstractClassInheritsAbstractMemberOne_getter_fromInterface();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_nonAbstractClassInheritsAbstractMemberOne_getter_fromSuperclass() async {
+ return super
+ .test_nonAbstractClassInheritsAbstractMemberOne_getter_fromSuperclass();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_nonAbstractClassInheritsAbstractMemberOne_method_fromInterface() async {
+ return super
+ .test_nonAbstractClassInheritsAbstractMemberOne_method_fromInterface();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_nonAbstractClassInheritsAbstractMemberOne_method_fromSuperclass() async {
+ return super
+ .test_nonAbstractClassInheritsAbstractMemberOne_method_fromSuperclass();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_nonAbstractClassInheritsAbstractMemberOne_method_optionalParamCount() async {
+ return super
+ .test_nonAbstractClassInheritsAbstractMemberOne_method_optionalParamCount();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_nonAbstractClassInheritsAbstractMemberOne_mixinInherits_getter() async {
+ return super
+ .test_nonAbstractClassInheritsAbstractMemberOne_mixinInherits_getter();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_nonAbstractClassInheritsAbstractMemberOne_mixinInherits_method() async {
+ return super
+ .test_nonAbstractClassInheritsAbstractMemberOne_mixinInherits_method();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_nonAbstractClassInheritsAbstractMemberOne_mixinInherits_setter() async {
+ return super
+ .test_nonAbstractClassInheritsAbstractMemberOne_mixinInherits_setter();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_nonAbstractClassInheritsAbstractMemberOne_noSuchMethod_interface() async {
+ return super
+ .test_nonAbstractClassInheritsAbstractMemberOne_noSuchMethod_interface();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_nonAbstractClassInheritsAbstractMemberOne_setter_and_implicitSetter() async {
+ return super
+ .test_nonAbstractClassInheritsAbstractMemberOne_setter_and_implicitSetter();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_nonAbstractClassInheritsAbstractMemberOne_setter_fromInterface() async {
+ return super
+ .test_nonAbstractClassInheritsAbstractMemberOne_setter_fromInterface();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_nonAbstractClassInheritsAbstractMemberOne_setter_fromSuperclass() async {
+ return super
+ .test_nonAbstractClassInheritsAbstractMemberOne_setter_fromSuperclass();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_nonAbstractClassInheritsAbstractMemberOne_superclasses_interface() async {
+ return super
+ .test_nonAbstractClassInheritsAbstractMemberOne_superclasses_interface();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_nonAbstractClassInheritsAbstractMemberOne_variable_fromInterface_missingGetter() async {
+ return super
+ .test_nonAbstractClassInheritsAbstractMemberOne_variable_fromInterface_missingGetter();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_nonAbstractClassInheritsAbstractMemberOne_variable_fromInterface_missingSetter() async {
+ return super
+ .test_nonAbstractClassInheritsAbstractMemberOne_variable_fromInterface_missingSetter();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_nonAbstractClassInheritsAbstractMemberThree() async {
+ return super.test_nonAbstractClassInheritsAbstractMemberThree();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_nonAbstractClassInheritsAbstractMemberTwo() async {
+ return super.test_nonAbstractClassInheritsAbstractMemberTwo();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_nonAbstractClassInheritsAbstractMemberTwo_variable_fromInterface_missingBoth() async {
+ return super
+ .test_nonAbstractClassInheritsAbstractMemberTwo_variable_fromInterface_missingBoth();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_nonAbstractClassInheritsAbstractMemberTwo_variable_fromMixin_missingBoth() async {
+ return super
+ .test_nonAbstractClassInheritsAbstractMemberTwo_variable_fromMixin_missingBoth();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_nonTypeInCatchClause_noElement() async {
+ return super.test_nonTypeInCatchClause_noElement();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_nonTypeInCatchClause_notType() async {
+ return super.test_nonTypeInCatchClause_notType();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_nonVoidReturnForOperator() async {
+ return super.test_nonVoidReturnForOperator();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_nonVoidReturnForSetter_function() async {
+ return super.test_nonVoidReturnForSetter_function();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_nonVoidReturnForSetter_method() async {
+ return super.test_nonVoidReturnForSetter_method();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_notAType() async {
+ return super.test_notAType();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_notEnoughRequiredArguments() async {
+ return super.test_notEnoughRequiredArguments();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_notEnoughRequiredArguments_functionExpression() async {
+ return super.test_notEnoughRequiredArguments_functionExpression();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_notEnoughRequiredArguments_getterReturningFunction() async {
+ return super.test_notEnoughRequiredArguments_getterReturningFunction();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_redirectToInvalidFunctionType() async {
+ return super.test_redirectToInvalidFunctionType();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_redirectToInvalidReturnType() async {
+ return super.test_redirectToInvalidReturnType();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_redirectToMissingConstructor_named() async {
+ return super.test_redirectToMissingConstructor_named();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_redirectToMissingConstructor_unnamed() async {
+ return super.test_redirectToMissingConstructor_unnamed();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_redirectToNonClass_notAType() async {
+ return super.test_redirectToNonClass_notAType();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_redirectToNonClass_undefinedIdentifier() async {
+ return super.test_redirectToNonClass_undefinedIdentifier();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_returnWithoutValue_async() async {
+ return super.test_returnWithoutValue_async();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_returnWithoutValue_factoryConstructor() async {
+ return super.test_returnWithoutValue_factoryConstructor();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_returnWithoutValue_function() async {
+ return super.test_returnWithoutValue_function();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_returnWithoutValue_method() async {
+ return super.test_returnWithoutValue_method();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_returnWithoutValue_mixedReturnTypes_function() async {
+ return super.test_returnWithoutValue_mixedReturnTypes_function();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_returnWithoutValue_Null() async {
+ return super.test_returnWithoutValue_Null();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_staticAccessToInstanceMember_method_invocation() async {
+ return super.test_staticAccessToInstanceMember_method_invocation();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_staticAccessToInstanceMember_method_reference() async {
+ return super.test_staticAccessToInstanceMember_method_reference();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_staticAccessToInstanceMember_propertyAccess_field() async {
+ return super.test_staticAccessToInstanceMember_propertyAccess_field();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_staticAccessToInstanceMember_propertyAccess_getter() async {
+ return super.test_staticAccessToInstanceMember_propertyAccess_getter();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_staticAccessToInstanceMember_propertyAccess_setter() async {
+ return super.test_staticAccessToInstanceMember_propertyAccess_setter();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_switchExpressionNotAssignable() async {
+ return super.test_switchExpressionNotAssignable();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_typeAnnotationDeferredClass_asExpression() async {
+ return super.test_typeAnnotationDeferredClass_asExpression();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_typeAnnotationDeferredClass_catchClause() async {
+ return super.test_typeAnnotationDeferredClass_catchClause();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_typeAnnotationDeferredClass_fieldFormalParameter() async {
+ return super.test_typeAnnotationDeferredClass_fieldFormalParameter();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_typeAnnotationDeferredClass_functionDeclaration_returnType() async {
+ return super
+ .test_typeAnnotationDeferredClass_functionDeclaration_returnType();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_typeAnnotationDeferredClass_functionTypedFormalParameter_returnType() async {
+ return super
+ .test_typeAnnotationDeferredClass_functionTypedFormalParameter_returnType();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_typeAnnotationDeferredClass_isExpression() async {
+ return super.test_typeAnnotationDeferredClass_isExpression();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_typeAnnotationDeferredClass_methodDeclaration_returnType() async {
+ return super
+ .test_typeAnnotationDeferredClass_methodDeclaration_returnType();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_typeAnnotationDeferredClass_simpleFormalParameter() async {
+ return super.test_typeAnnotationDeferredClass_simpleFormalParameter();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_typeAnnotationDeferredClass_typeArgumentList() async {
+ return super.test_typeAnnotationDeferredClass_typeArgumentList();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_typeAnnotationDeferredClass_typeArgumentList2() async {
+ return super.test_typeAnnotationDeferredClass_typeArgumentList2();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_typeAnnotationDeferredClass_typeParameter_bound() async {
+ return super.test_typeAnnotationDeferredClass_typeParameter_bound();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_typeAnnotationDeferredClass_variableDeclarationList() async {
+ return super.test_typeAnnotationDeferredClass_variableDeclarationList();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_typeAnnotationGenericFunctionParameter_localFunction() async {
+ return super.test_typeAnnotationGenericFunctionParameter_localFunction();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_typeAnnotationGenericFunctionParameter_method() async {
+ return super.test_typeAnnotationGenericFunctionParameter_method();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_typeAnnotationGenericFunctionParameter_topLevelFunction() async {
+ return super.test_typeAnnotationGenericFunctionParameter_topLevelFunction();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_typeParameterReferencedByStatic_field() async {
+ return super.test_typeParameterReferencedByStatic_field();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_typeParameterReferencedByStatic_getter() async {
+ return super.test_typeParameterReferencedByStatic_getter();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_typeParameterReferencedByStatic_methodBodyReference() async {
+ return super.test_typeParameterReferencedByStatic_methodBodyReference();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_typeParameterReferencedByStatic_methodParameter() async {
+ return super.test_typeParameterReferencedByStatic_methodParameter();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_typeParameterReferencedByStatic_methodReturn() async {
+ return super.test_typeParameterReferencedByStatic_methodReturn();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_typeParameterReferencedByStatic_setter() async {
+ return super.test_typeParameterReferencedByStatic_setter();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_typePromotion_functionType_arg_InterToDyn() async {
+ return super.test_typePromotion_functionType_arg_InterToDyn();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_typeTestNonType() async {
+ return super.test_typeTestNonType();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_typeTestWithUndefinedName() async {
+ return super.test_typeTestWithUndefinedName();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_undefinedClass_instanceCreation() async {
+ return super.test_undefinedClass_instanceCreation();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_undefinedClass_variableDeclaration() async {
+ return super.test_undefinedClass_variableDeclaration();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_undefinedClassBoolean_variableDeclaration() async {
+ return super.test_undefinedClassBoolean_variableDeclaration();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_undefinedGetter_fromLibrary() async {
+ return super.test_undefinedGetter_fromLibrary();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_undefinedIdentifier_for() async {
+ return super.test_undefinedIdentifier_for();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_undefinedIdentifier_function() async {
+ return super.test_undefinedIdentifier_function();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_undefinedIdentifier_importCore_withShow() async {
+ return super.test_undefinedIdentifier_importCore_withShow();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_undefinedIdentifier_initializer() async {
+ return super.test_undefinedIdentifier_initializer();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_undefinedIdentifier_methodInvocation() async {
+ return super.test_undefinedIdentifier_methodInvocation();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_undefinedIdentifier_private_getter() async {
+ return super.test_undefinedIdentifier_private_getter();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_undefinedIdentifier_private_setter() async {
+ return super.test_undefinedIdentifier_private_setter();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_undefinedIdentifierAwait_function() async {
+ return super.test_undefinedIdentifierAwait_function();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_undefinedNamedParameter() async {
+ return super.test_undefinedNamedParameter();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_undefinedSetter() async {
+ return super.test_undefinedSetter();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_undefinedStaticMethodOrGetter_getter() async {
+ return super.test_undefinedStaticMethodOrGetter_getter();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_undefinedStaticMethodOrGetter_getter_inSuperclass() async {
+ return super.test_undefinedStaticMethodOrGetter_getter_inSuperclass();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_undefinedStaticMethodOrGetter_method() async {
+ return super.test_undefinedStaticMethodOrGetter_method();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_undefinedStaticMethodOrGetter_method_inSuperclass() async {
+ return super.test_undefinedStaticMethodOrGetter_method_inSuperclass();
+ }
+
+ @override
+ @failingTest
+ @potentialAnalyzerProblem
+ test_undefinedStaticMethodOrGetter_setter_inSuperclass() async {
+ return super.test_undefinedStaticMethodOrGetter_setter_inSuperclass();
}
}
diff --git a/pkg/analyzer/test/src/dart/analysis/driver_kernel_test.dart b/pkg/analyzer/test/src/dart/analysis/driver_kernel_test.dart
index bfda882..17ccb8b 100644
--- a/pkg/analyzer/test/src/dart/analysis/driver_kernel_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/driver_kernel_test.dart
@@ -22,6 +22,18 @@
class AnalysisDriverResolutionTest_Kernel extends AnalysisDriverResolutionTest {
@override
bool get previewDart2 => true;
+
+ @failingTest
+ @potentialAnalyzerProblem
+ @override
+ test_annotation_constructor_withNestedConstructorInvocation() async {
+ // This test is failing because analyzer and kernel disagree about how to
+ // resolve annotations and constructors. Kernel is consistent between
+ // annotations that invoke a constructor and other constructor invocations,
+ // while analyzer treats them differently. They also differ in terms of the
+ // resolution of the constructor name's element.
+ await super.test_annotation_constructor_withNestedConstructorInvocation();
+ }
}
@reflectiveTest
@@ -29,13 +41,6 @@
@override
bool get previewDart2 => true;
- @failingTest
- @potentialAnalyzerProblem
- @override
- test_addFile_shouldRefresh() async {
- await super.test_addFile_shouldRefresh();
- }
-
// @failingTest
// @potentialAnalyzerProblem
@override
@@ -134,20 +139,6 @@
await super.test_getErrors();
}
- @potentialAnalyzerProblem
- @override
- test_getIndex() async {
- // TODO(scheglov) This test fails even with @failingTest
-// await super.test_getIndex();
- }
-
- @failingTest
- @potentialAnalyzerProblem
- @override
- test_getResult_errors() async {
- await super.test_getResult_errors();
- }
-
@failingTest
@potentialAnalyzerProblem
@override
diff --git a/pkg/analyzer/test/src/dart/analysis/driver_test.dart b/pkg/analyzer/test/src/dart/analysis/driver_test.dart
index 84e174d..c2c3313 100644
--- a/pkg/analyzer/test/src/dart/analysis/driver_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/driver_test.dart
@@ -166,6 +166,34 @@
}
}
+ test_annotation_constructor_withNestedConstructorInvocation() async {
+ addTestFile('''
+class C {
+ const C();
+}
+class D {
+ final C c;
+ const D(this.c);
+}
+@D(const C())
+f() {}
+''');
+ var result = await driver.getResult(testFile);
+ var elementC = AstFinder.getClass(result.unit, 'C').element;
+ var constructorC = elementC.constructors[0];
+ var elementD = AstFinder.getClass(result.unit, 'D').element;
+ var constructorD = elementD.constructors[0];
+ var atD = AstFinder.getTopLevelFunction(result.unit, 'f').metadata[0];
+ InstanceCreationExpression constC = atD.arguments.arguments[0];
+
+ expect(atD.name.staticElement, elementD);
+ expect(atD.element, constructorD);
+
+ expect(constC.staticElement, constructorC);
+ expect(constC.staticType, elementC.type);
+ expect(constC.constructorName.staticElement, constructorC);
+ }
+
test_annotation_kind_reference() async {
String content = r'''
const annotation_1 = 1;
@@ -474,6 +502,51 @@
}
}
+ test_assignmentExpression_propertyAccess_forwardingStub() async {
+ String content = r'''
+class A {
+ int f;
+}
+abstract class I<T> {
+ T f;
+}
+class B extends A implements I<int> {}
+main() {
+ new B().f = 1;
+}
+''';
+ addTestFile(content);
+
+ AnalysisResult result = await driver.getResult(testFile);
+ CompilationUnit unit = result.unit;
+ var typeProvider = unit.element.context.typeProvider;
+
+ ClassDeclaration aNode = unit.declarations[0];
+ ClassElement aElement = aNode.element;
+ FieldElement fElement = aElement.getField('f');
+
+ ClassDeclaration bNode = unit.declarations[2];
+ ClassElement bElement = bNode.element;
+
+ List<Statement> mainStatements = _getMainStatements(result);
+ ExpressionStatement statement = mainStatements[0];
+
+ AssignmentExpression assignment = statement.expression;
+ expect(assignment.staticType, typeProvider.intType);
+
+ PropertyAccess left = assignment.leftHandSide;
+ expect(left.staticType, typeProvider.intType);
+
+ InstanceCreationExpression newB = left.target;
+ expect(newB.staticElement, bElement.unnamedConstructor);
+
+ expect(left.propertyName.staticElement, same(fElement.setter));
+ expect(left.propertyName.staticType, typeProvider.intType);
+
+ Expression right = assignment.rightHandSide;
+ expect(right.staticType, typeProvider.intType);
+ }
+
test_assignmentExpression_simple_indexExpression() async {
String content = r'''
main() {
@@ -1013,6 +1086,87 @@
expect(expression.staticType, typeProvider.boolType);
}
+ test_cascadeExpression() async {
+ String content = r'''
+void main() {
+ new A()..a()..b();
+}
+class A {
+ void a() {}
+ void b() {}
+}
+''';
+ addTestFile(content);
+ AnalysisResult result = await driver.getResult(testFile);
+
+ List<Statement> statements = _getMainStatements(result);
+
+ ExpressionStatement statement = statements[0];
+ CascadeExpression expression = statement.expression;
+ expect(expression.target.staticType, isNotNull);
+ NodeList<Expression> sections = expression.cascadeSections;
+
+ MethodInvocation a = sections[0];
+ expect(a.methodName.staticElement, isNotNull);
+ expect(a.staticType, isNotNull);
+
+ MethodInvocation b = sections[1];
+ expect(b.methodName.staticElement, isNotNull);
+ expect(b.staticType, isNotNull);
+ }
+
+ test_closure() async {
+ addTestFile(r'''
+main() {
+ var items = <int>[1, 2, 3];
+ items.forEach((item) {
+ item;
+ });
+}
+''');
+ AnalysisResult result = await driver.getResult(testFile);
+ var typeProvider = result.unit.element.context.typeProvider;
+
+ List<Statement> mainStatements = _getMainStatements(result);
+
+ VariableDeclarationStatement itemsStatement = mainStatements[0];
+ var itemsElement = itemsStatement.variables.variables[0].element;
+
+ ExpressionStatement forStatement = mainStatements[1];
+ MethodInvocation forInvocation = forStatement.expression;
+
+ SimpleIdentifier forTarget = forInvocation.target;
+ expect(forTarget.staticElement, itemsElement);
+
+ var closureTypeStr = '(int) → Null';
+ FunctionExpression closure = forInvocation.argumentList.arguments[0];
+ FunctionElement closureElement = closure.element;
+ ParameterElement itemElement = closureElement.parameters[0];
+
+ expect(closureElement.returnType, typeProvider.nullType);
+ expect(closureElement.type.element, same(closureElement));
+ expect(closureElement.type.toString(), closureTypeStr);
+ expect(closure.staticType, same(closureElement.type));
+
+ List<FormalParameter> closureParameters = closure.parameters.parameters;
+ expect(closureParameters, hasLength(1));
+
+ SimpleFormalParameter itemNode = closureParameters[0];
+ _assertSimpleParameter(itemNode, itemElement,
+ name: 'item',
+ offset: 56,
+ kind: ParameterKind.REQUIRED,
+ type: typeProvider.intType);
+
+ BlockFunctionBody closureBody = closure.body;
+ List<Statement> closureStatements = closureBody.block.statements;
+
+ ExpressionStatement itemStatement = closureStatements[0];
+ SimpleIdentifier itemIdentifier = itemStatement.expression;
+ expect(itemIdentifier.staticElement, itemElement);
+ expect(itemIdentifier.staticType, typeProvider.intType);
+ }
+
test_conditionalExpression() async {
String content = r'''
void main() {
@@ -1033,6 +1187,95 @@
expect(expression.elseExpression.staticType, typeProvider.doubleType);
}
+ test_constructor_context() async {
+ addTestFile(r'''
+class C {
+ C(int p) {
+ p;
+ }
+}
+''');
+ AnalysisResult result = await driver.getResult(testFile);
+ var typeProvider = result.unit.element.context.typeProvider;
+
+ ClassDeclaration cNode = result.unit.declarations[0];
+
+ ConstructorDeclaration constructorNode = cNode.members[0];
+ ParameterElement pElement = constructorNode.element.parameters[0];
+
+ BlockFunctionBody constructorBody = constructorNode.body;
+ ExpressionStatement pStatement = constructorBody.block.statements[0];
+
+ SimpleIdentifier pIdentifier = pStatement.expression;
+ expect(pIdentifier.staticElement, same(pElement));
+ expect(pIdentifier.staticType, typeProvider.intType);
+ }
+
+ test_constructor_initializer_field() async {
+ addTestFile(r'''
+class C {
+ int f;
+ C(int p) : f = p {
+ f;
+ }
+}
+''');
+ AnalysisResult result = await driver.getResult(testFile);
+
+ ClassDeclaration cNode = result.unit.declarations[0];
+ ClassElement cElement = cNode.element;
+ FieldElement fElement = cElement.getField('f');
+
+ ConstructorDeclaration constructorNode = cNode.members[1];
+ ParameterElement pParameterElement = constructorNode.element.parameters[0];
+
+ {
+ ConstructorFieldInitializer initializer = constructorNode.initializers[0];
+ expect(initializer.fieldName.staticElement, same(fElement));
+
+ SimpleIdentifier expression = initializer.expression;
+ expect(expression.staticElement, same(pParameterElement));
+ }
+ }
+
+ test_constructor_initializer_super() async {
+ addTestFile(r'''
+class A {
+ A(int a);
+ A.named(int a);
+}
+class B extends A {
+ B.one(int b) : super(b + 1);
+ B.two(int b) : super.named(b + 1);
+}
+''');
+ AnalysisResult result = await driver.getResult(testFile);
+
+ ClassDeclaration aNode = result.unit.declarations[0];
+ ClassElement aElement = aNode.element;
+
+ ClassDeclaration bNode = result.unit.declarations[1];
+
+ {
+ ConstructorDeclaration constructor = bNode.members[0];
+ SuperConstructorInvocation initializer = constructor.initializers[0];
+ expect(initializer.staticElement, same(aElement.unnamedConstructor));
+ expect(initializer.constructorName, isNull);
+ }
+
+ {
+ var namedConstructor = aElement.getNamedConstructor('named');
+
+ ConstructorDeclaration constructor = bNode.members[1];
+ SuperConstructorInvocation initializer = constructor.initializers[0];
+ expect(initializer.staticElement, same(namedConstructor));
+
+ var constructorName = initializer.constructorName;
+ expect(constructorName.staticElement, same(namedConstructor));
+ expect(constructorName.staticType, isNull);
+ }
+ }
+
test_error_unresolvedTypeAnnotation() async {
String content = r'''
main() {
@@ -1060,6 +1303,24 @@
expect(vNode.element.type, isUndefinedType);
}
+ test_field_context() async {
+ addTestFile(r'''
+class C<T> {
+ var f = <T>[];
+}
+''');
+ AnalysisResult result = await driver.getResult(testFile);
+ var typeProvider = result.unit.element.context.typeProvider;
+
+ ClassDeclaration cNode = result.unit.declarations[0];
+ var tElement = cNode.element.typeParameters[0];
+
+ FieldDeclaration fDeclaration = cNode.members[0];
+ VariableDeclaration fNode = fDeclaration.fields.variables[0];
+ FieldElement fElement = fNode.element;
+ expect(fElement.type, typeProvider.listType.instantiate([tElement.type]));
+ }
+
test_indexExpression() async {
String content = r'''
main() {
@@ -2097,6 +2358,37 @@
}
}
+ test_mapLiteral() async {
+ addTestFile(r'''
+void main() {
+ <int, double>{};
+ const <bool, String>{};
+}
+''');
+ AnalysisResult result = await driver.getResult(testFile);
+ var typeProvider = result.unit.element.context.typeProvider;
+
+ var statements = _getMainStatements(result);
+
+ {
+ ExpressionStatement statement = statements[0];
+ MapLiteral mapLiteral = statement.expression;
+ expect(
+ mapLiteral.staticType,
+ typeProvider.mapType
+ .instantiate([typeProvider.intType, typeProvider.doubleType]));
+ }
+
+ {
+ ExpressionStatement statement = statements[1];
+ MapLiteral mapLiteral = statement.expression;
+ expect(
+ mapLiteral.staticType,
+ typeProvider.mapType
+ .instantiate([typeProvider.boolType, typeProvider.stringType]));
+ }
+ }
+
test_method_namedParameters() async {
addTestFile(r'''
class C {
@@ -2175,6 +2467,35 @@
expect(cArgument.staticParameterElement, same(cElement));
}
+ test_methodInvocation_instanceMethod_forwardingStub() async {
+ addTestFile(r'''
+class A {
+ void foo(int x) {}
+}
+abstract class I<T> {
+ void foo(T x);
+}
+class B extends A implements I<int> {}
+main(B b) {
+ b.foo(1);
+}
+''');
+ AnalysisResult result = await driver.getResult(testFile);
+
+ ClassDeclaration aNode = result.unit.declarations[0];
+ MethodDeclaration fooNode = aNode.members[0];
+ MethodElement fooElement = fooNode.element;
+
+ List<Statement> mainStatements = _getMainStatements(result);
+ ExpressionStatement statement = mainStatements[0];
+ MethodInvocation invocation = statement.expression;
+ expect(invocation.methodName.staticElement, same(fooElement));
+
+ var invokeTypeStr = '(int) → void';
+ expect(invocation.staticType.toString(), 'void');
+ expect(invocation.staticInvokeType.toString(), invokeTypeStr);
+ }
+
test_methodInvocation_instanceMethod_genericClass() async {
addTestFile(r'''
main() {
@@ -2257,6 +2578,92 @@
}
}
+ test_methodInvocation_staticMethod() async {
+ addTestFile(r'''
+main() {
+ C.m(1);
+}
+class C {
+ static void m(int p) {}
+ void foo() {
+ m(2);
+ }
+}
+''');
+ AnalysisResult result = await driver.getResult(testFile);
+ List<Statement> mainStatements = _getMainStatements(result);
+
+ ClassDeclaration cNode = result.unit.declarations[1];
+ ClassElement cElement = cNode.element;
+ MethodDeclaration mNode = cNode.members[0];
+ MethodElement mElement = mNode.element;
+
+ {
+ ExpressionStatement statement = mainStatements[0];
+ MethodInvocation invocation = statement.expression;
+ List<Expression> arguments = invocation.argumentList.arguments;
+
+ SimpleIdentifier target = invocation.target;
+ expect(target.staticElement, same(cElement));
+ expect(target.staticType, same(cElement.type));
+
+ var invokeTypeStr = '(int) → void';
+ expect(invocation.staticType.toString(), 'void');
+ expect(invocation.staticInvokeType.toString(), invokeTypeStr);
+ expect(invocation.staticInvokeType.element, same(mElement));
+ expect(invocation.methodName.staticElement, same(mElement));
+ expect(invocation.methodName.staticType.toString(), invokeTypeStr);
+
+ Expression argument = arguments[0];
+ expect(argument.staticParameterElement, mElement.parameters[0]);
+ }
+
+ {
+ MethodDeclaration fooNode = cNode.members[1];
+ BlockFunctionBody fooBody = fooNode.body;
+ List<Statement> statements = fooBody.block.statements;
+
+ ExpressionStatement statement = statements[0];
+ MethodInvocation invocation = statement.expression;
+ List<Expression> arguments = invocation.argumentList.arguments;
+
+ expect(invocation.target, isNull);
+
+ var invokeTypeStr = '(int) → void';
+ expect(invocation.staticType.toString(), 'void');
+ expect(invocation.staticInvokeType.toString(), invokeTypeStr);
+ expect(invocation.staticInvokeType.element, same(mElement));
+ expect(invocation.methodName.staticElement, same(mElement));
+ expect(invocation.methodName.staticType.toString(), invokeTypeStr);
+
+ Expression argument = arguments[0];
+ expect(argument.staticParameterElement, mElement.parameters[0]);
+ }
+ }
+
+ test_methodInvocation_staticMethod_contextTypeParameter() async {
+ addTestFile(r'''
+class C<T> {
+ static E foo<E>(C<E> c) => null;
+ void bar() {
+ foo(this);
+ }
+}
+''');
+ AnalysisResult result = await driver.getResult(testFile);
+
+ ClassDeclaration cNode = result.unit.declarations[0];
+ TypeParameterElement tElement = cNode.element.typeParameters[0];
+
+ MethodDeclaration barNode = cNode.members[1];
+ BlockFunctionBody barBody = barNode.body;
+ ExpressionStatement fooStatement = barBody.block.statements[0];
+ MethodInvocation fooInvocation = fooStatement.expression;
+ expect(fooInvocation.staticInvokeType.toString(), '(C<T>) → T');
+ expect(fooInvocation.staticType.toString(), 'T');
+ expect(fooInvocation.staticType.element, same(tElement));
+ }
+
test_methodInvocation_topLevelFunction() async {
addTestFile(r'''
void main() {
@@ -3070,6 +3477,200 @@
}
}
+ test_top_class() async {
+ String content = r'''
+class A<T> {}
+class B<T> {}
+class C<T> {}
+class D extends A<bool> with B<int> implements C<double> {}
+''';
+ addTestFile(content);
+ AnalysisResult result = await driver.getResult(testFile);
+ var typeProvider = result.unit.element.context.typeProvider;
+
+ ClassDeclaration aNode = result.unit.declarations[0];
+ ClassElement aElement = aNode.element;
+
+ ClassDeclaration bNode = result.unit.declarations[1];
+ ClassElement bElement = bNode.element;
+
+ ClassDeclaration cNode = result.unit.declarations[2];
+ ClassElement cElement = cNode.element;
+
+ ClassDeclaration dNode = result.unit.declarations[3];
+ Element dElement = dNode.element;
+
+ SimpleIdentifier dName = dNode.name;
+ expect(dName.staticElement, same(dElement));
+ expect(dName.staticType, typeProvider.typeType);
+
+ {
+ var aRawType = aElement.type;
+ var expectedType = aRawType.instantiate([typeProvider.boolType]);
+
+ TypeName superClass = dNode.extendsClause.superclass;
+ expect(superClass.type, expectedType);
+
+ SimpleIdentifier identifier = superClass.name;
+ expect(identifier.staticElement, aElement);
+ expect(identifier.staticType, expectedType);
+ }
+
+ {
+ var bRawType = bElement.type;
+ var expectedType = bRawType.instantiate([typeProvider.intType]);
+
+ TypeName mixinType = dNode.withClause.mixinTypes[0];
+ expect(mixinType.type, expectedType);
+
+ SimpleIdentifier identifier = mixinType.name;
+ expect(identifier.staticElement, bElement);
+ expect(identifier.staticType, expectedType);
+ }
+
+ {
+ var cRawType = cElement.type;
+ var expectedType = cRawType.instantiate([typeProvider.doubleType]);
+
+ TypeName implementedType = dNode.implementsClause.interfaces[0];
+ expect(implementedType.type, expectedType);
+
+ SimpleIdentifier identifier = implementedType.name;
+ expect(identifier.staticElement, cElement);
+ expect(identifier.staticType, expectedType);
+ }
+ }
+
+ test_top_class_constructor_parameter_defaultValue() async {
+ String content = r'''
+class C {
+ double f;
+ C([int a: 1 + 2]) : f = 3.4;
+}
+''';
+ addTestFile(content);
+ AnalysisResult result = await driver.getResult(testFile);
+ var typeProvider = result.unit.element.context.typeProvider;
+
+ ClassDeclaration cNode = result.unit.declarations[0];
+ ClassElement cElement = cNode.element;
+
+ ConstructorDeclaration constructorNode = cNode.members[1];
+
+ DefaultFormalParameter aNode = constructorNode.parameters.parameters[0];
+ _assertDefaultParameter(aNode, cElement.unnamedConstructor.parameters[0],
+ name: 'a',
+ offset: 31,
+ kind: ParameterKind.POSITIONAL,
+ type: typeProvider.intType);
+
+ BinaryExpression binary = aNode.defaultValue;
+ expect(binary.staticElement, isNotNull);
+ expect(binary.staticType, typeProvider.intType);
+ expect(binary.leftOperand.staticType, typeProvider.intType);
+ expect(binary.rightOperand.staticType, typeProvider.intType);
+ }
+
+ test_top_classTypeAlias() async {
+ String content = r'''
+class A<T> {}
+class B<T> {}
+class C<T> {}
+class D = A<bool> with B<int> implements C<double>;
+''';
+ addTestFile(content);
+ AnalysisResult result = await driver.getResult(testFile);
+ var typeProvider = result.unit.element.context.typeProvider;
+
+ ClassDeclaration aNode = result.unit.declarations[0];
+ ClassElement aElement = aNode.element;
+
+ ClassDeclaration bNode = result.unit.declarations[1];
+ ClassElement bElement = bNode.element;
+
+ ClassDeclaration cNode = result.unit.declarations[2];
+ ClassElement cElement = cNode.element;
+
+ ClassTypeAlias dNode = result.unit.declarations[3];
+ Element dElement = dNode.element;
+
+ SimpleIdentifier dName = dNode.name;
+ expect(dName.staticElement, same(dElement));
+ expect(dName.staticType, typeProvider.typeType);
+
+ {
+ var aRawType = aElement.type;
+ var expectedType = aRawType.instantiate([typeProvider.boolType]);
+
+ TypeName superClass = dNode.superclass;
+ expect(superClass.type, expectedType);
+
+ SimpleIdentifier identifier = superClass.name;
+ expect(identifier.staticElement, same(aElement));
+ expect(identifier.staticType, expectedType);
+ }
+
+ {
+ var bRawType = bElement.type;
+ var expectedType = bRawType.instantiate([typeProvider.intType]);
+
+ TypeName mixinType = dNode.withClause.mixinTypes[0];
+ expect(mixinType.type, expectedType);
+
+ SimpleIdentifier identifier = mixinType.name;
+ expect(identifier.staticElement, same(bElement));
+ expect(identifier.staticType, expectedType);
+ }
+
+ {
+ var cRawType = cElement.type;
+ var expectedType = cRawType.instantiate([typeProvider.doubleType]);
+
+ TypeName interfaceType = dNode.implementsClause.interfaces[0];
+ expect(interfaceType.type, expectedType);
+
+ SimpleIdentifier identifier = interfaceType.name;
+ expect(identifier.staticElement, same(cElement));
+ expect(identifier.staticType, expectedType);
+ }
+ }
+
+ test_top_enum() async {
+ String content = r'''
+enum MyEnum {
+ A, B
+}
+''';
+ addTestFile(content);
+ AnalysisResult result = await driver.getResult(testFile);
+ var typeProvider = result.unit.element.context.typeProvider;
+
+ EnumDeclaration enumNode = result.unit.declarations[0];
+ ClassElement enumElement = enumNode.element;
+
+ SimpleIdentifier dName = enumNode.name;
+ expect(dName.staticElement, same(enumElement));
+ if (previewDart2) {
+ expect(dName.staticType, typeProvider.typeType);
+ }
+
+ {
+ var aElement = enumElement.getField('A');
+ var aNode = enumNode.constants[0];
+ expect(aNode.element, same(aElement));
+ expect(aNode.name.staticElement, same(aElement));
+ expect(aNode.name.staticType, same(enumElement.type));
+ }
+
+ {
+ var bElement = enumElement.getField('B');
+ var bNode = enumNode.constants[1];
+ expect(bNode.element, same(bElement));
+ expect(bNode.name.staticElement, same(bElement));
+ expect(bNode.name.staticType, same(enumElement.type));
+ }
+ }
+
test_top_executables_class() async {
String content = r'''
class C {
@@ -3308,8 +3909,9 @@
test_top_field_class() async {
String content = r'''
-class C {
+class C<T> {
var a = 1;
+ T b;
}
''';
addTestFile(content);
@@ -3321,23 +3923,43 @@
ClassDeclaration cNode = unit.declarations[0];
ClassElement cElement = cNode.element;
+ TypeParameterElement tElement = cElement.typeParameters[0];
expect(cElement, same(unitElement.types[0]));
- FieldDeclaration aDeclaration = cNode.members[0];
- VariableDeclaration aNode = aDeclaration.fields.variables[0];
- FieldElement aElement = aNode.element;
- expect(aElement, cElement.fields[0]);
- expect(aElement.type, typeProvider.intType);
- expect(aNode.name.staticElement, same(aElement));
- expect(aNode.name.staticType, same(aElement.type));
+ {
+ FieldElement aElement = cElement.getField('a');
+ FieldDeclaration aDeclaration = cNode.members[0];
+ VariableDeclaration aNode = aDeclaration.fields.variables[0];
+ expect(aNode.element, same(aElement));
+ expect(aElement.type, typeProvider.intType);
+ expect(aNode.name.staticElement, same(aElement));
+ expect(aNode.name.staticType, same(aElement.type));
- Expression aValue = aNode.initializer;
- expect(aValue.staticType, typeProvider.intType);
+ Expression aValue = aNode.initializer;
+ expect(aValue.staticType, typeProvider.intType);
+ }
+
+ {
+ FieldElement bElement = cElement.getField('b');
+ FieldDeclaration bDeclaration = cNode.members[1];
+
+ TypeName typeName = bDeclaration.fields.type;
+ SimpleIdentifier typeIdentifier = typeName.name;
+ expect(typeIdentifier.staticElement, same(tElement));
+ expect(typeIdentifier.staticType, same(tElement.type));
+
+ VariableDeclaration bNode = bDeclaration.fields.variables[0];
+ expect(bNode.element, same(bElement));
+ expect(bElement.type, tElement.type);
+ expect(bNode.name.staticElement, same(bElement));
+ expect(bNode.name.staticType, same(bElement.type));
+ }
}
test_top_field_top() async {
String content = r'''
var a = 1;
+double b = 2.3;
''';
addTestFile(content);
@@ -3346,16 +3968,36 @@
CompilationUnitElement unitElement = unit.element;
var typeProvider = unitElement.context.typeProvider;
- TopLevelVariableDeclaration aDeclaration = unit.declarations[0];
- VariableDeclaration aNode = aDeclaration.variables.variables[0];
- TopLevelVariableElement aElement = aNode.element;
- expect(aElement, same(unitElement.topLevelVariables[0]));
- expect(aElement.type, typeProvider.intType);
- expect(aNode.name.staticElement, same(aElement));
- expect(aNode.name.staticType, same(aElement.type));
+ {
+ TopLevelVariableDeclaration aDeclaration = unit.declarations[0];
+ VariableDeclaration aNode = aDeclaration.variables.variables[0];
+ TopLevelVariableElement aElement = aNode.element;
+ expect(aElement, same(unitElement.topLevelVariables[0]));
+ expect(aElement.type, typeProvider.intType);
+ expect(aNode.name.staticElement, same(aElement));
+ expect(aNode.name.staticType, same(aElement.type));
- Expression aValue = aNode.initializer;
- expect(aValue.staticType, typeProvider.intType);
+ Expression aValue = aNode.initializer;
+ expect(aValue.staticType, typeProvider.intType);
+ }
+
+ {
+ TopLevelVariableDeclaration bDeclaration = unit.declarations[1];
+
+ VariableDeclaration bNode = bDeclaration.variables.variables[0];
+ TopLevelVariableElement bElement = bNode.element;
+ expect(bElement, same(unitElement.topLevelVariables[1]));
+ expect(bElement.type, typeProvider.doubleType);
+
+ TypeName typeName = bDeclaration.variables.type;
+ _assertTypeNameSimple(typeName, typeProvider.doubleType);
+
+ expect(bNode.name.staticElement, same(bElement));
+ expect(bNode.name.staticType, same(bElement.type));
+
+ Expression aValue = bNode.initializer;
+ expect(aValue.staticType, typeProvider.doubleType);
+ }
}
test_top_function_namedParameters() async {
@@ -3443,6 +4085,280 @@
expect(cArgument.staticParameterElement, same(cElement));
}
+ test_top_functionTypeAlias() async {
+ String content = r'''
+typedef int F<T>(bool a, T b);
+''';
+ addTestFile(content);
+
+ AnalysisResult result = await driver.getResult(testFile);
+ CompilationUnit unit = result.unit;
+ CompilationUnitElement unitElement = unit.element;
+ var typeProvider = unitElement.context.typeProvider;
+
+ FunctionTypeAlias alias = unit.declarations[0];
+ FunctionTypeAliasElement aliasElement = alias.element;
+ expect(aliasElement, same(unitElement.functionTypeAliases[0]));
+ expect(aliasElement.returnType, typeProvider.intType);
+
+ _assertTypeNameSimple(alias.returnType, typeProvider.intType);
+
+ _assertSimpleParameter(
+ alias.parameters.parameters[0], aliasElement.parameters[0],
+ name: 'a',
+ offset: 22,
+ kind: ParameterKind.REQUIRED,
+ type: typeProvider.boolType);
+
+ _assertSimpleParameter(
+ alias.parameters.parameters[1], aliasElement.parameters[1],
+ name: 'b',
+ offset: 27,
+ kind: ParameterKind.REQUIRED,
+ type: aliasElement.typeParameters[0].type);
+ }
+
+ test_top_typeParameter() async {
+ String content = r'''
+class A {}
+class C<T extends A, U extends List<A>, V> {}
+''';
+ addTestFile(content);
+ AnalysisResult result = await driver.getResult(testFile);
+ CompilationUnit unit = result.unit;
+ CompilationUnitElement unitElement = unit.element;
+ var typeProvider = unitElement.context.typeProvider;
+
+ ClassDeclaration aNode = unit.declarations[0];
+ ClassElement aElement = aNode.element;
+ expect(aElement, same(unitElement.types[0]));
+
+ ClassDeclaration cNode = unit.declarations[1];
+ ClassElement cElement = cNode.element;
+ expect(cElement, same(unitElement.types[1]));
+
+ {
+ TypeParameter tNode = cNode.typeParameters.typeParameters[0];
+ expect(tNode.element, same(cElement.typeParameters[0]));
+
+ TypeName bound = tNode.bound;
+ expect(bound.type, aElement.type);
+
+ SimpleIdentifier boundIdentifier = bound.name;
+ expect(boundIdentifier.staticElement, same(aElement));
+ expect(boundIdentifier.staticType, aElement.type);
+ }
+
+ {
+ var listElement = typeProvider.listType.element;
+ var listOfA = typeProvider.listType.instantiate([aElement.type]);
+
+ TypeParameter uNode = cNode.typeParameters.typeParameters[1];
+ expect(uNode.element, same(cElement.typeParameters[1]));
+
+ TypeName bound = uNode.bound;
+ expect(bound.type, listOfA);
+
+ SimpleIdentifier listIdentifier = bound.name;
+ expect(listIdentifier.staticElement, same(listElement));
+ expect(listIdentifier.staticType, listOfA);
+
+ TypeName aTypeName = bound.typeArguments.arguments[0];
+ expect(aTypeName.type, aElement.type);
+
+ SimpleIdentifier aIdentifier = aTypeName.name;
+ expect(aIdentifier.staticElement, same(aElement));
+ expect(aIdentifier.staticType, aElement.type);
+ }
+
+ {
+ TypeParameter vNode = cNode.typeParameters.typeParameters[2];
+ expect(vNode.element, same(cElement.typeParameters[2]));
+ expect(vNode.bound, isNull);
+ }
+ }
+
+ test_tryCatch() async {
+ addTestFile(r'''
+void main() {
+ try {} catch (e, st) {
+ e;
+ st;
+ }
+ try {} on int catch (e, st) {
+ e;
+ st;
+ }
+ try {} catch (e) {
+ e;
+ }
+ try {} on int catch (e) {
+ e;
+ }
+ try {} on int {}
+}
+''');
+ AnalysisResult result = await driver.getResult(testFile);
+ CompilationUnit unit = result.unit;
+ var typeProvider = unit.element.context.typeProvider;
+
+ List<Statement> statements = _getMainStatements(result);
+
+ // catch (e, st)
+ {
+ TryStatement statement = statements[0];
+ CatchClause catchClause = statement.catchClauses[0];
+ expect(catchClause.exceptionType, isNull);
+
+ SimpleIdentifier exceptionNode = catchClause.exceptionParameter;
+ LocalVariableElement exceptionElement = exceptionNode.staticElement;
+ expect(exceptionElement.type, DynamicTypeImpl.instance);
+
+ SimpleIdentifier stackNode = catchClause.stackTraceParameter;
+ LocalVariableElement stackElement = stackNode.staticElement;
+ expect(stackElement.type, typeProvider.stackTraceType);
+
+ List<Statement> catchStatements = catchClause.body.statements;
+
+ ExpressionStatement exceptionStatement = catchStatements[0];
+ SimpleIdentifier exceptionIdentifier = exceptionStatement.expression;
+ expect(exceptionIdentifier.staticElement, same(exceptionElement));
+ expect(exceptionIdentifier.staticType, DynamicTypeImpl.instance);
+
+ ExpressionStatement stackStatement = catchStatements[1];
+ SimpleIdentifier stackIdentifier = stackStatement.expression;
+ expect(stackIdentifier.staticElement, same(stackElement));
+ expect(stackIdentifier.staticType, typeProvider.stackTraceType);
+ }
+
+ // on int catch (e, st)
+ {
+ TryStatement statement = statements[1];
+ CatchClause catchClause = statement.catchClauses[0];
+ _assertTypeNameSimple(catchClause.exceptionType, typeProvider.intType);
+
+ SimpleIdentifier exceptionNode = catchClause.exceptionParameter;
+ LocalVariableElement exceptionElement = exceptionNode.staticElement;
+ expect(exceptionElement.type, typeProvider.intType);
+
+ SimpleIdentifier stackNode = catchClause.stackTraceParameter;
+ LocalVariableElement stackElement = stackNode.staticElement;
+ expect(stackElement.type, typeProvider.stackTraceType);
+
+ List<Statement> catchStatements = catchClause.body.statements;
+
+ ExpressionStatement exceptionStatement = catchStatements[0];
+ SimpleIdentifier exceptionIdentifier = exceptionStatement.expression;
+ expect(exceptionIdentifier.staticElement, same(exceptionElement));
+ expect(exceptionIdentifier.staticType, typeProvider.intType);
+
+ ExpressionStatement stackStatement = catchStatements[1];
+ SimpleIdentifier stackIdentifier = stackStatement.expression;
+ expect(stackIdentifier.staticElement, same(stackElement));
+ expect(stackIdentifier.staticType, typeProvider.stackTraceType);
+ }
+
+ // catch (e)
+ {
+ TryStatement statement = statements[2];
+ CatchClause catchClause = statement.catchClauses[0];
+ expect(catchClause.exceptionType, isNull);
+ expect(catchClause.stackTraceParameter, isNull);
+
+ SimpleIdentifier exceptionNode = catchClause.exceptionParameter;
+ LocalVariableElement exceptionElement = exceptionNode.staticElement;
+ expect(exceptionElement.type, DynamicTypeImpl.instance);
+ }
+
+ // on int catch (e)
+ {
+ TryStatement statement = statements[3];
+ CatchClause catchClause = statement.catchClauses[0];
+ _assertTypeNameSimple(catchClause.exceptionType, typeProvider.intType);
+ expect(catchClause.stackTraceParameter, isNull);
+
+ SimpleIdentifier exceptionNode = catchClause.exceptionParameter;
+ LocalVariableElement exceptionElement = exceptionNode.staticElement;
+ expect(exceptionElement.type, typeProvider.intType);
+ }
+
+ // on int catch (e)
+ {
+ TryStatement statement = statements[4];
+ CatchClause catchClause = statement.catchClauses[0];
+ _assertTypeNameSimple(catchClause.exceptionType, typeProvider.intType);
+ expect(catchClause.exceptionParameter, isNull);
+ expect(catchClause.stackTraceParameter, isNull);
+ }
+ }
+
+ test_type_functionTypeAlias() async {
+ addTestFile(r'''
+typedef T F<T>(bool a);
+class C {
+ F<int> f;
+}
+''');
+
+ AnalysisResult result = await driver.getResult(testFile);
+ CompilationUnit unit = result.unit;
+ CompilationUnitElement unitElement = unit.element;
+ var typeProvider = unitElement.context.typeProvider;
+
+ FunctionTypeAlias alias = unit.declarations[0];
+ GenericTypeAliasElement aliasElement = alias.element;
+ FunctionType aliasType = aliasElement.type;
+
+ ClassDeclaration cNode = unit.declarations[1];
+
+ FieldDeclaration fDeclaration = cNode.members[0];
+ FunctionType instantiatedAliasType =
+ aliasType.instantiate([typeProvider.intType]);
+
+ TypeName typeName = fDeclaration.fields.type;
+ expect(typeName.type, instantiatedAliasType);
+
+ SimpleIdentifier typeIdentifier = typeName.name;
+ expect(typeIdentifier.staticElement, same(aliasElement));
+ expect(typeIdentifier.staticType, instantiatedAliasType);
+
+ List<TypeAnnotation> typeArguments = typeName.typeArguments.arguments;
+ expect(typeArguments, hasLength(1));
+ _assertTypeNameSimple(typeArguments[0], typeProvider.intType);
+ }
+
+ test_typeLiteral() async {
+ addTestFile(r'''
+void main() {
+ int;
+ F;
+}
+typedef void F(int p);
+''');
+ AnalysisResult result = await driver.getResult(testFile);
+ CompilationUnit unit = result.unit;
+ var typeProvider = unit.element.context.typeProvider;
+
+ FunctionTypeAlias fNode = unit.declarations[1];
+ FunctionTypeAliasElement fElement = fNode.element;
+
+ var statements = _getMainStatements(result);
+
+ {
+ ExpressionStatement statement = statements[0];
+ SimpleIdentifier identifier = statement.expression;
+ expect(identifier.staticElement, same(typeProvider.intType.element));
+ expect(identifier.staticType, typeProvider.typeType);
+ }
+
+ {
+ ExpressionStatement statement = statements[1];
+ SimpleIdentifier identifier = statement.expression;
+ expect(identifier.staticElement, same(fElement));
+ expect(identifier.staticType, typeProvider.typeType);
+ }
+ }
+
void _assertDefaultParameter(
DefaultFormalParameter node, ParameterElement element,
{String name, int offset, ParameterKind kind, DartType type}) {
@@ -3462,7 +4378,7 @@
expect(element.name, name);
expect(element.nameOffset, offset);
expect(element.parameterKind, kind);
- expect(element.type, same(type));
+ expect(element.type, type);
}
void _assertSimpleParameter(
@@ -3476,15 +4392,30 @@
expect(node.identifier.staticElement, same(element));
TypeName typeName = node.type;
- expect(typeName.type, same(type));
- expect(typeName.name.staticElement, same(type.element));
+ if (typeName != null) {
+ expect(typeName.type, same(type));
+ expect(typeName.name.staticElement, same(type.element));
+ }
+ }
+
+ void _assertTypeNameSimple(TypeName typeName, DartType type) {
+ expect(typeName.type, type);
+
+ SimpleIdentifier identifier = typeName.name;
+ expect(identifier.staticElement, same(type.element));
+ expect(identifier.staticType, type);
}
List<Statement> _getMainStatements(AnalysisResult result) {
- FunctionDeclaration main = result.unit.declarations[0];
- expect(main.name.name, 'main');
- BlockFunctionBody body = main.functionExpression.body;
- return body.block.statements;
+ for (var declaration in result.unit.declarations) {
+ if (declaration is FunctionDeclaration &&
+ declaration.name.name == 'main') {
+ BlockFunctionBody body = declaration.functionExpression.body;
+ return body.block.statements;
+ }
+ }
+ fail('Not found main() in ${result.unit}');
+ return null;
}
}
diff --git a/pkg/analyzer/test/src/fasta/recovery/partial_code/local_variable_test.dart b/pkg/analyzer/test/src/fasta/recovery/partial_code/local_variable_test.dart
index cdadb08..ff970df 100644
--- a/pkg/analyzer/test/src/fasta/recovery/partial_code/local_variable_test.dart
+++ b/pkg/analyzer/test/src/fasta/recovery/partial_code/local_variable_test.dart
@@ -43,10 +43,40 @@
allFailing: true),
new TestDescriptor('constName', 'const a',
[ParserErrorCode.EXPECTED_TOKEN], "const a;",
- allFailing: true),
+ failing: <String>[
+ 'assert',
+ 'break',
+ 'continue',
+ 'do',
+ 'if',
+ 'for',
+ 'labeled',
+ 'localFunctionNonVoid',
+ 'localFunctionVoid',
+ 'localVariable',
+ 'switch',
+ 'try',
+ 'return',
+ 'while'
+ ]),
new TestDescriptor('constTypeName', 'const int a',
[ParserErrorCode.EXPECTED_TOKEN], "const int a;",
- allFailing: true),
+ failing: <String>[
+ 'assert',
+ 'break',
+ 'continue',
+ 'do',
+ 'if',
+ 'for',
+ 'labeled',
+ 'localFunctionNonVoid',
+ 'localFunctionVoid',
+ 'localVariable',
+ 'switch',
+ 'try',
+ 'return',
+ 'while'
+ ]),
new TestDescriptor(
'constNameComma',
'const a,',
@@ -56,7 +86,6 @@
],
"const a, _s_;",
failing: <String>[
- 'eof',
'assert',
'block',
'break',
@@ -76,7 +105,6 @@
],
"const int a, _s_;",
failing: [
- 'eof',
'assert',
'block',
'break',
@@ -100,7 +128,6 @@
],
"final _s_;",
failing: [
- 'eof',
'assert',
'block',
'break',
@@ -131,7 +158,22 @@
allFailing: true),
new TestDescriptor(
'typeName', 'int a', [ParserErrorCode.EXPECTED_TOKEN], "int a;",
- allFailing: true),
+ failing: [
+ 'assert',
+ 'break',
+ 'continue',
+ 'do',
+ 'if',
+ 'for',
+ 'labeled',
+ 'localFunctionNonVoid',
+ 'localFunctionVoid',
+ 'localVariable',
+ 'switch',
+ 'try',
+ 'return',
+ 'while'
+ ]),
new TestDescriptor(
'var',
'var',
@@ -141,7 +183,6 @@
],
"var _s_;",
failing: [
- 'eof',
'assert',
'block',
'break',
diff --git a/pkg/analyzer/test/src/fasta/resolution_applier_test.dart b/pkg/analyzer/test/src/fasta/resolution_applier_test.dart
index 3b84c9e..a327082 100644
--- a/pkg/analyzer/test/src/fasta/resolution_applier_test.dart
+++ b/pkg/analyzer/test/src/fasta/resolution_applier_test.dart
@@ -310,7 +310,7 @@
38,
41,
47,
- 9
+ 22
]);
}
diff --git a/pkg/analyzer/test/src/task/strong/front_end_runtime_check_test.dart b/pkg/analyzer/test/src/task/strong/front_end_runtime_check_test.dart
deleted file mode 100644
index 54f9624..0000000
--- a/pkg/analyzer/test/src/task/strong/front_end_runtime_check_test.dart
+++ /dev/null
@@ -1,500 +0,0 @@
-// 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.
-
-import 'package:analyzer/dart/ast/ast.dart';
-import 'package:analyzer/dart/ast/visitor.dart';
-import 'package:analyzer/dart/element/element.dart';
-import 'package:analyzer/dart/element/type.dart';
-import 'package:analyzer/src/dart/element/type.dart';
-import 'package:analyzer/src/generated/resolver.dart';
-import 'package:analyzer/src/generated/type_system.dart';
-import 'package:analyzer/src/generated/utilities_dart.dart';
-import 'package:analyzer/src/task/strong/ast_properties.dart';
-import 'package:front_end/src/base/instrumentation.dart' as fasta;
-import 'package:front_end/src/fasta/compiler_context.dart' as fasta;
-import 'package:front_end/src/fasta/testing/validating_instrumentation.dart'
- as fasta;
-import 'package:kernel/kernel.dart' as fasta;
-import 'package:test/test.dart';
-import 'package:test_reflective_loader/test_reflective_loader.dart';
-
-import 'front_end_test_common.dart';
-
-main() {
- // Use a group() wrapper to specify the timeout.
- group('front_end_runtime_check_test', () {
- defineReflectiveSuite(() {
- defineReflectiveTests(RunFrontEndRuntimeCheckTest);
- });
- }, timeout: new Timeout(const Duration(seconds: 120)));
-}
-
-@reflectiveTest
-class RunFrontEndRuntimeCheckTest extends RunFrontEndTest {
- @override
- get testSubdir => 'runtime_checks';
-
- @override
- void visitUnit(TypeProvider typeProvider, CompilationUnit unit,
- fasta.ValidatingInstrumentation validation, Uri uri) {
- unit.accept(new _InstrumentationVisitor(
- new StrongTypeSystemImpl(typeProvider), validation, uri));
- }
-}
-
-/// Visitor for ASTs that reports instrumentation for strong mode runtime
-/// checks.
-///
-/// Note: this visitor doesn't attempt to report all runtime checks inserted by
-/// analyzer; just the ones necessary to validate the front end tests. This
-/// visitor might need to be updated as more front end tests are added.
-class _InstrumentationVisitor extends GeneralizingAstVisitor<Null> {
- final fasta.Instrumentation _instrumentation;
- final Uri uri;
- final StrongTypeSystemImpl _typeSystem;
- final _elementNamer = new ElementNamer(null);
-
- _InstrumentationVisitor(this._typeSystem, this._instrumentation, this.uri);
-
- @override
- visitAssignmentExpression(AssignmentExpression node) {
- super.visitAssignmentExpression(node);
- var leftHandSide = node.leftHandSide;
- if (leftHandSide is PrefixedIdentifier) {
- var staticElement = leftHandSide.identifier.staticElement;
- if (staticElement is PropertyAccessorElement && staticElement.isSetter) {
- var target = leftHandSide.prefix;
- _annotateCallKind(
- staticElement,
- target is ThisExpression,
- isDynamicInvoke(leftHandSide.identifier),
- target.staticType,
- null,
- leftHandSide.identifier.offset);
- }
- }
- }
-
- @override
- visitClassDeclaration(ClassDeclaration node) {
- super.visitClassDeclaration(node);
- _emitForwardingStubs(node, node.typeParameters, node.name.offset);
- }
-
- @override
- visitClassTypeAlias(ClassTypeAlias node) {
- super.visitClassTypeAlias(node);
- _emitForwardingStubs(node, node.typeParameters, node.name.offset);
- }
-
- @override
- visitFormalParameter(FormalParameter node) {
- super.visitFormalParameter(node);
- if (node is DefaultFormalParameter) {
- // Already handled via the contained parameter ast object
- return;
- }
- if (node.element.enclosingElement.enclosingElement is ClassElement) {
- _annotateFormalParameter(node.element, node.identifier.offset,
- node.getAncestor((n) => n is ClassDeclaration));
- }
- }
-
- @override
- visitMethodDeclaration(MethodDeclaration node) {
- super.visitMethodDeclaration(node);
- _annotateContravariant(node.element, node.name.offset, node.parent);
- }
-
- @override
- visitMethodInvocation(MethodInvocation node) {
- super.visitMethodInvocation(node);
- var staticElement = node.methodName.staticElement;
- var target = node.target;
- var isThis = target is ThisExpression || target == null;
- if (staticElement is PropertyAccessorElement) {
- // Method invocation resolves to a getter; treat it as a get followed by a
- // function invocation.
- _annotateCheckGetterReturn(
- getImplicitOperationCast(node), node.argumentList.offset);
- _annotateCallKind(null, isThis, isDynamicInvoke(node.methodName), null,
- null, node.argumentList.offset);
- } else {
- _annotateCheckReturn(getImplicitCast(node), node.argumentList.offset);
- _annotateCallKind(
- staticElement,
- isThis,
- isDynamicInvoke(node.methodName),
- target?.staticType,
- node.methodName.staticType,
- node.argumentList.offset);
- }
- }
-
- @override
- visitPrefixedIdentifier(PrefixedIdentifier node) {
- super.visitPrefixedIdentifier(node);
- _handlePropertyAccess(node, node.prefix, node.identifier);
- }
-
- @override
- visitPropertyAccess(PropertyAccess node) {
- super.visitPropertyAccess(node);
- _handlePropertyAccess(node, node.target, node.propertyName);
- }
-
- @override
- visitSimpleIdentifier(SimpleIdentifier node) {
- super.visitSimpleIdentifier(node);
- var staticElement = node.staticElement;
- var parent = node.parent;
- if (parent is! MethodInvocation &&
- parent is! PrefixedIdentifier &&
- parent is! PropertyAccess &&
- !node.inDeclarationContext() &&
- node.inGetterContext() &&
- staticElement is PropertyAccessorElement &&
- staticElement.isGetter) {
- _annotateCallKind(staticElement, true, false, null, null, node.offset);
- }
- }
-
- @override
- visitTypeParameter(TypeParameter node) {
- super.visitTypeParameter(node);
- if (node.parent.parent is MethodDeclaration) {
- _annotateFormalParameter(node.element, node.name.offset,
- node.getAncestor((n) => n is ClassDeclaration));
- }
- }
-
- @override
- visitVariableDeclaration(VariableDeclaration node) {
- super.visitVariableDeclaration(node);
- if (node.parent.parent is FieldDeclaration) {
- FieldElement element = node.element;
- var cls = node.getAncestor((n) => n is ClassDeclaration);
- var offset = node.name.offset;
- _annotateContravariant(element, offset, cls);
- if (!element.isFinal) {
- var setter = element.setter;
- _annotateFormalParameter(setter.parameters[0], offset, cls);
- }
- }
- }
-
- /// Generates the appropriate `@callKind` annotation (if any) for a call site.
- ///
- /// An annotation of `@callKind=dynamic` indicates that the call is dynamic
- /// (so it will have to be fully type checked). An annotation of
- /// `@callKind=closure` indicates that the receiver of the call is a function
- /// object (so any formals marked as "semiSafe" will have to be type checked).
- /// An annotation of `@callKind=this` indicates that the call goes through
- /// `super` or `this` (so formals marked as "semiSafe" don't need to be type
- /// checked). No annotation indicates that either the call is static, in
- /// which case no parameters need to be type checked, or it goes through an
- /// interface, in which case the set of arguments that have to be type checked
- /// depends on the `@checkInterface` annotations on the static target of the
- /// call.
- void _annotateCallKind(Element staticElement, bool isThis, bool isDynamic,
- DartType targetType, DartType methodType, int offset) {
- if (staticElement is FunctionElement &&
- staticElement.enclosingElement is CompilationUnitElement) {
- // Invocation of a top level function; no annotation needed.
- return;
- }
- if (isDynamic) {
- if (targetType == null &&
- staticElement != null &&
- staticElement is! MethodElement &&
- methodType is FunctionType) {
- // Sometimes analyzer annotates invocations of function objects as
- // dynamic (presumably due to "dynamic is bottom" behavior). Ignore
- // this.
- _recordCallKind(offset, 'closure');
- } else {
- _recordCallKind(offset, 'dynamic');
- return;
- }
- }
- if (staticElement is MethodElement && !staticElement.isStatic ||
- staticElement is PropertyAccessorElement && !staticElement.isStatic) {
- if (isThis) {
- _recordCallKind(offset, 'this');
- return;
- } else {
- // Interface call; no annotation needed
- return;
- }
- }
- _recordCallKind(offset, 'closure');
- }
-
- /// Generates the appropriate `@checkGetterReturn` annotation (if any) for a
- /// call site.
- ///
- /// An annotation of `@checkGetterReturn=type` indicates that a method call
- /// desugars to a getter invocation followed by a function invocation; the
- /// value returned by the getter will have to be checked to make sure it is an
- /// instance of the given type.
- void _annotateCheckGetterReturn(DartType castType, int offset) {
- if (castType != null) {
- _recordCheckGetterReturn(offset, castType);
- }
- }
-
- /// Generates the appropriate `@checkReturn` annotation (if any) for a call
- /// site.
- ///
- /// An annotation of `@checkReturn=type` indicates that the value returned by
- /// the call will have to be checked to make sure it is an instance of the
- /// given type.
- void _annotateCheckReturn(DartType castType, int offset) {
- if (castType != null) {
- _recordCheckReturn(offset, castType);
- }
- }
-
- /// Generates the appropriate `@genericContravariant=true` annotation (if needed)
- /// for a method or field declaration.
- void _annotateContravariant(
- Element element, int offset, ClassDeclaration cls) {
- bool isContravariant = false;
- if (cls?.typeParameters != null) {
- if (element is ExecutableElement) {
- if (_usesTypeParametersCovariantly(
- cls.typeParameters.typeParameters, element.returnType,
- flipVariance: true)) {
- isContravariant = true;
- }
- } else if (element is FieldElement) {
- if (_usesTypeParametersCovariantly(
- cls.typeParameters.typeParameters, element.type,
- flipVariance: true)) {
- isContravariant = true;
- }
- }
- }
- if (isContravariant) {
- _recordContravariance(offset);
- }
- }
-
- /// Generates the appropriate `@covariance` annotation (if any) for a method
- /// formal parameter, method type parameter, or field declaration.
- ///
- /// When these annotations are generated for a field declaration, they
- /// implicitly refer to the value parameter of the synthetic setter.
- ///
- /// An annotation of `@covariance=explicit` indicates that the parameter needs
- /// to be type checked regardless of the call site.
- ///
- /// An annotation of `@covariance=genericImpl` indicates that the parameter
- /// needs to be type checked when the call site is annotated
- /// `@callKind=dynamic` or `@callKind=closure`, or the call site is
- /// unannotated and the corresponding parameter in the interface target is
- /// annotated `@covariance=genericInterface`.
- ///
- /// No `@covariance` annotation indicates that the parameter only needs to be
- /// type checked if the call site is annotated `@callKind=dynamic`.
- void _annotateFormalParameter(
- Element element, int offset, ClassDeclaration cls) {
- bool isExplicit = false;
- bool isGenericImpl = false;
- if (element is ParameterElement && element.isCovariant) {
- isExplicit = true;
- } else if (cls != null) {
- var covariantParams = getClassCovariantParameters(cls);
- if (covariantParams != null && covariantParams.contains(element) ||
- cls?.typeParameters != null &&
- element is ParameterElement &&
- _usesTypeParametersCovariantly(
- cls.typeParameters.typeParameters, element.type)) {
- isGenericImpl = true;
- }
- }
- bool isGenericInterface = false;
- if (cls?.typeParameters != null) {
- if (element is ParameterElement) {
- if (_usesTypeParametersCovariantly(
- cls.typeParameters.typeParameters, element.type)) {
- isGenericInterface = true;
- }
- } else if (element is TypeParameterElement && element.bound != null) {
- if (_usesTypeParametersCovariantly(
- cls.typeParameters.typeParameters, element.bound)) {
- isGenericInterface = true;
- }
- }
- }
- var covariance = <String>[];
- if (isExplicit) covariance.add('explicit');
- if (isGenericInterface) covariance.add('genericInterface');
- if (isGenericImpl) covariance.add('genericImpl');
- if (covariance.isNotEmpty) {
- _recordCovariance(offset, covariance.join(', '));
- }
- }
-
- /// Generates the appropriate `@forwardingStub` annotation (if any) for a
- /// class declaration or mixin application.
- ///
- /// An annotation of `@forwardingStub=rettype name(args)` indicates that a
- /// forwarding stub must be inserted into the class having the given name and
- /// return type. Each argument is listed in `args` as
- /// `covariance=(...) type name`, where the words between the parentheses are
- /// the same as for the `@covariance=` annotation.
- void _emitForwardingStubs(
- Declaration node, TypeParameterList typeParameters, int offset) {
- var covariantParams = getSuperclassCovariantParameters(node);
- void emitStubFor(DartType returnType, String name,
- List<ParameterElement> parameters, String accessorType) {
- String closer = '';
- var previousParameterKind = ParameterKind.REQUIRED;
- var paramDescrs = <String>[];
- for (var param in parameters) {
- var covariances = <String>[];
- if (_usesTypeParametersCovariantly(
- typeParameters?.typeParameters, param.type)) {
- covariances.add('genericInterface');
- }
- if (covariantParams.contains(param)) {
- if (param.isCovariant) {
- covariances.add('explicit');
- } else {
- covariances.add('genericImpl');
- }
- }
- var covariance = 'covariance=(${covariances.join(', ')})';
- var typeDescr = _typeToString(param.type);
- var paramName = accessorType == 'set' ? '_' : param.name;
- var paramDescr = '$covariance $typeDescr $paramName';
- if (param.parameterKind != previousParameterKind) {
- String opener;
- if (param.parameterKind == ParameterKind.POSITIONAL) {
- opener = '[';
- closer = ']';
- } else {
- opener = '{';
- closer = '}';
- }
- paramDescr = opener + paramDescr;
- previousParameterKind = param.parameterKind;
- }
- paramDescrs.add(paramDescr);
- }
- if (closer.isNotEmpty) {
- paramDescrs[paramDescrs.length - 1] += closer;
- }
- var returnTypeDescr = _typeToString(returnType);
- var stubParts = <String>[];
- if (_usesTypeParametersCovariantly(
- typeParameters?.typeParameters, returnType)) {
- stubParts.add('genericContravariant');
- }
- stubParts.add(returnTypeDescr);
- if (accessorType != null) stubParts.add(accessorType);
- stubParts.add('$name(${paramDescrs.join(', ')})');
- _recordForwardingStub(offset, stubParts.join(' '));
- }
-
- if (covariantParams != null && covariantParams.isNotEmpty) {
- for (var member
- in covariantParams.map((p) => p.enclosingElement).toSet()) {
- var memberName = member.name;
- if (member is PropertyAccessorElement) {
- if (member.isSetter) {
- emitStubFor(
- member.returnType,
- memberName.substring(0, memberName.length - 1),
- member.parameters,
- 'set');
- } else {
- emitStubFor(
- member.returnType, memberName, member.parameters, 'get');
- }
- } else if (member is MethodElement) {
- emitStubFor(member.returnType, memberName, member.parameters, null);
- } else {
- throw new StateError('Unexpected covariant member $member');
- }
- }
- }
- }
-
- /// Generates the appropriate annotations for a property access, whether it
- /// arises from a [PrefixedIdentifier] or a [PropertyAccess].
- void _handlePropertyAccess(
- Expression node, Expression target, SimpleIdentifier propertyName) {
- var staticElement = propertyName.staticElement;
- if (propertyName.inGetterContext()) {
- var isThis = target is ThisExpression || target == null;
- _annotateCheckReturn(getImplicitCast(node), propertyName.offset);
- _annotateCallKind(
- staticElement,
- isThis,
- target.staticType is DynamicTypeImpl,
- target.staticType,
- null,
- propertyName.offset);
- }
- }
-
- void _recordCallKind(int offset, String kind) {
- _instrumentation.record(
- uri, offset, 'callKind', new fasta.InstrumentationValueLiteral(kind));
- }
-
- void _recordCheckGetterReturn(int offset, DartType castType) {
- _instrumentation.record(uri, offset, 'checkGetterReturn',
- new InstrumentationValueForType(castType, _elementNamer));
- }
-
- void _recordCheckReturn(int offset, DartType castType) {
- _instrumentation.record(uri, offset, 'checkReturn',
- new InstrumentationValueForType(castType, _elementNamer));
- }
-
- void _recordContravariance(int offset) {
- _instrumentation.record(uri, offset, 'genericContravariant',
- new fasta.InstrumentationValueLiteral('true'));
- }
-
- void _recordCovariance(int offset, String covariance) {
- _instrumentation.record(uri, offset, 'covariance',
- new fasta.InstrumentationValueLiteral(covariance));
- }
-
- void _recordForwardingStub(int offset, String descr) {
- _instrumentation.record(uri, offset, 'forwardingStub',
- new fasta.InstrumentationValueLiteral(descr));
- }
-
- String _typeToString(DartType type) {
- return new InstrumentationValueForType(type, _elementNamer).toString();
- }
-
- /// Determines whether the given type makes covariant use of type parameters.
- bool _usesTypeParametersCovariantly(
- List<TypeParameter> typeParameters, DartType formalType,
- {bool flipVariance: false}) {
- if (typeParameters == null) return false;
- // To see if this parameter needs to be semi-typed, we try substituting
- // bottom for all the active type parameters. If the resulting parameter
- // static type is a supertype of its current static type, then that means
- // that regardless of what we pass in, it won't fail a type check.
- var substitutedType = formalType.substitute2(
- new List<DartType>.filled(
- typeParameters.length, BottomTypeImpl.instance),
- typeParameters
- .map((p) => new TypeParameterTypeImpl(p.element))
- .toList());
- // To test contravariance, we flip the subtype check.
- if (flipVariance) {
- return !_typeSystem.isSubtypeOf(substitutedType, formalType);
- } else {
- return !_typeSystem.isSubtypeOf(formalType, substitutedType);
- }
- }
-}
diff --git a/pkg/analyzer/test/src/task/strong/front_end_test_common.dart b/pkg/analyzer/test/src/task/strong/front_end_test_common.dart
deleted file mode 100644
index 7bb563b..0000000
--- a/pkg/analyzer/test/src/task/strong/front_end_test_common.dart
+++ /dev/null
@@ -1,327 +0,0 @@
-// 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.
-
-import 'dart:async';
-import 'dart:convert';
-import 'dart:io';
-
-import 'package:analyzer/dart/ast/ast.dart';
-import 'package:analyzer/dart/element/element.dart';
-import 'package:analyzer/dart/element/type.dart';
-import 'package:analyzer/src/dart/analysis/driver.dart';
-import 'package:analyzer/src/dart/element/member.dart';
-import 'package:analyzer/src/dart/scanner/reader.dart';
-import 'package:analyzer/src/dart/scanner/scanner.dart';
-import 'package:analyzer/src/generated/engine.dart' show AnalysisOptionsImpl;
-import 'package:analyzer/src/generated/parser.dart';
-import 'package:analyzer/src/generated/resolver.dart';
-import 'package:analyzer/src/generated/source.dart';
-import 'package:analyzer/src/generated/utilities_dart.dart';
-import 'package:front_end/src/base/instrumentation.dart' as fasta;
-import 'package:front_end/src/fasta/compiler_context.dart' as fasta;
-import 'package:front_end/src/fasta/testing/validating_instrumentation.dart'
- as fasta;
-import 'package:front_end/src/testing/package_root.dart' as package_root;
-import 'package:kernel/kernel.dart' as fasta;
-import 'package:path/path.dart' as pathos;
-import 'package:test/test.dart';
-
-import '../../dart/analysis/base.dart';
-
-/// Set this to `true` to cause expectation comments to be updated.
-const bool fixProblems = false;
-
-class ElementNamer {
- final ConstructorElement currentFactoryConstructor;
-
- ElementNamer(this.currentFactoryConstructor);
-
- void appendElementName(StringBuffer buffer, Element element) {
- // Synthetic FunctionElement(s) don't have a name or enclosing library.
- if (element.isSynthetic && element is FunctionElement) {
- return;
- }
-
- var enclosing = element.enclosingElement;
- if (enclosing is CompilationUnitElement) {
- enclosing = enclosing.enclosingElement;
- } else if (enclosing is ClassElement &&
- currentFactoryConstructor != null &&
- identical(enclosing, currentFactoryConstructor.enclosingElement) &&
- element is TypeParameterElement) {
- enclosing = currentFactoryConstructor;
- }
- if (enclosing != null) {
- if (enclosing is LibraryElement &&
- (enclosing.name == 'dart.core' ||
- enclosing.name == 'dart.async' ||
- enclosing.name == 'test')) {
- // For brevity, omit library name
- } else {
- appendElementName(buffer, enclosing);
- buffer.write('::');
- }
- }
-
- String name = element.name ?? '';
- if (element is ConstructorElement && name == '') {
- name = '•';
- } else if (name.endsWith('=') &&
- element is PropertyAccessorElement &&
- element.isSetter) {
- name = name.substring(0, name.length - 1);
- }
- buffer.write(name);
- }
-}
-
-/// Instance of [InstrumentationValue] describing an [ExecutableElement].
-class InstrumentationValueForExecutableElement
- extends fasta.InstrumentationValue {
- final ExecutableElement element;
- final ElementNamer elementNamer;
-
- InstrumentationValueForExecutableElement(this.element, this.elementNamer);
-
- @override
- String toString() {
- StringBuffer buffer = new StringBuffer();
- elementNamer.appendElementName(buffer, element);
- return buffer.toString();
- }
-}
-
-/**
- * Instance of [InstrumentationValue] describing a [DartType].
- */
-class InstrumentationValueForType extends fasta.InstrumentationValue {
- final DartType type;
- final ElementNamer elementNamer;
-
- InstrumentationValueForType(this.type, this.elementNamer);
-
- @override
- String toString() {
- StringBuffer buffer = new StringBuffer();
- _appendType(buffer, type);
- return buffer.toString();
- }
-
- void _appendList<T>(StringBuffer buffer, String open, String close,
- List<T> items, String separator, writeItem(T item),
- {bool includeEmpty: false}) {
- if (!includeEmpty && items.isEmpty) {
- return;
- }
- buffer.write(open);
- bool first = true;
- for (T item in items) {
- if (!first) {
- buffer.write(separator);
- }
- writeItem(item);
- first = false;
- }
- buffer.write(close);
- }
-
- void _appendParameters(
- StringBuffer buffer, List<ParameterElement> parameters) {
- buffer.write('(');
- bool first = true;
- ParameterKind lastKind = ParameterKind.REQUIRED;
- for (var parameter in parameters) {
- if (!first) {
- buffer.write(', ');
- }
- if (lastKind != parameter.parameterKind) {
- if (parameter.parameterKind == ParameterKind.POSITIONAL) {
- buffer.write('[');
- } else if (parameter.parameterKind == ParameterKind.NAMED) {
- buffer.write('{');
- }
- }
- if (parameter.parameterKind == ParameterKind.NAMED) {
- buffer.write(parameter.name);
- buffer.write(': ');
- }
- _appendType(buffer, parameter.type);
- lastKind = parameter.parameterKind;
- first = false;
- }
- if (lastKind == ParameterKind.POSITIONAL) {
- buffer.write(']');
- } else if (lastKind == ParameterKind.NAMED) {
- buffer.write('}');
- }
- buffer.write(')');
- }
-
- void _appendType(StringBuffer buffer, DartType type) {
- if (type is FunctionType) {
- if (type.typeFormals.isNotEmpty) {
- _appendTypeFormals(buffer, type.typeFormals);
- }
- _appendParameters(buffer, type.parameters);
- buffer.write(' -> ');
- _appendType(buffer, type.returnType);
- } else if (type is InterfaceType) {
- ClassElement element = type.element;
- elementNamer.appendElementName(buffer, element);
- _appendTypeArguments(buffer, type.typeArguments);
- } else if (type.isBottom) {
- buffer.write('<BottomType>');
- } else if (type is TypeParameterType) {
- elementNamer.appendElementName(buffer, type.element);
- if (type.element is TypeParameterMember) {
- buffer.write(' extends ');
- _appendType(buffer, type.bound);
- }
- } else {
- buffer.write(type.toString());
- }
- }
-
- void _appendTypeArguments(StringBuffer buffer, List<DartType> typeArguments) {
- _appendList<DartType>(buffer, '<', '>', typeArguments, ', ',
- (type) => _appendType(buffer, type));
- }
-
- void _appendTypeFormals(
- StringBuffer buffer, List<TypeParameterElement> typeFormals) {
- _appendList<TypeParameterElement>(buffer, '<', '>', typeFormals, ', ',
- (formal) {
- buffer.write(formal.name);
- buffer.write(' extends ');
- if (formal.bound == null) {
- buffer.write('Object');
- } else {
- _appendType(buffer, formal.bound);
- }
- });
- }
-}
-
-/**
- * Instance of [InstrumentationValue] describing a list of [DartType]s.
- */
-class InstrumentationValueForTypeArgs extends fasta.InstrumentationValue {
- final List<DartType> types;
- final ElementNamer elementNamer;
-
- const InstrumentationValueForTypeArgs(this.types, this.elementNamer);
-
- @override
- String toString() => types
- .map((type) =>
- new InstrumentationValueForType(type, elementNamer).toString())
- .join(', ');
-}
-
-abstract class RunFrontEndTest {
- String get testSubdir;
-
- test_run() async {
- String pkgPath = package_root.packageRoot;
- String fePath = pathos.join(pkgPath, 'front_end', 'testcases', testSubdir);
- List<File> dartFiles = new Directory(fePath)
- .listSync()
- .where((entry) => entry is File && entry.path.endsWith('.dart'))
- .map((entry) => entry as File)
- .toList();
-
- var allProblems = new StringBuffer();
- for (File file in dartFiles) {
- var test = new _FrontEndInferenceTest(this);
- await test.setUp();
- try {
- String code = file.readAsStringSync();
- String problems = await test.runTest(file.path, code);
- if (problems != null) {
- allProblems.writeln(problems);
- }
- } finally {
- await test.tearDown();
- }
- }
- if (allProblems.isNotEmpty) {
- fail(allProblems.toString());
- }
- }
-
- void visitUnit(TypeProvider typeProvider, CompilationUnit unit,
- fasta.ValidatingInstrumentation validation, Uri uri);
-}
-
-class _FrontEndInferenceTest extends BaseAnalysisDriverTest {
- final RunFrontEndTest _frontEndTestRunner;
-
- _FrontEndInferenceTest(this._frontEndTestRunner);
-
- @override
- AnalysisOptionsImpl createAnalysisOptions() => super.createAnalysisOptions();
-
- Future<String> runTest(String path, String code) {
- return fasta.CompilerContext.runWithDefaultOptions((_) async {
- Uri uri = provider.pathContext.toUri(path);
-
- List<int> lineStarts = new LineInfo.fromContent(code).lineStarts;
- fasta.CompilerContext.current.uriToSource[uri] =
- new fasta.Source(lineStarts, UTF8.encode(code));
-
- var validation = new fasta.ValidatingInstrumentation();
- await validation.loadExpectations(uri);
-
- _addFileAndImports(path, code);
-
- AnalysisResult result = await driver.getResult(path);
- _frontEndTestRunner.visitUnit(
- result.typeProvider, result.unit, validation, uri);
-
- validation.finish();
-
- if (validation.hasProblems) {
- if (fixProblems) {
- validation.fixSource(uri, true);
- return null;
- } else {
- return validation.problemsAsString;
- }
- } else {
- return null;
- }
- });
- }
-
- void _addFileAndImports(String path, String code) {
- provider.newFile(path, code);
- var source = null;
- var analysisErrorListener = null;
- var scanner = new Scanner(
- source, new CharSequenceReader(code), analysisErrorListener);
- var token = scanner.tokenize();
- var compilationUnit =
- new Parser(source, analysisErrorListener).parseDirectives(token);
- for (var directive in compilationUnit.directives) {
- if (directive is UriBasedDirective) {
- Uri uri = Uri.parse(directive.uri.stringValue);
- if (uri.scheme == 'dart') {
- // Ignore these--they should be in the mock SDK.
- } else if (uri.scheme == '') {
- var pathSegments = uri.pathSegments;
- // For these tests we don't support any directory traversal; we just
- // assume the URI is the name of a file in the same directory as all
- // the other tests.
- if (pathSegments.length != 1) fail('URI too complex: $uri');
- var referencedPath =
- pathos.join(pathos.dirname(path), pathSegments[0]);
- if (!provider.getFile(referencedPath).exists) {
- var referencedCode = new File(referencedPath).readAsStringSync();
- _addFileAndImports(referencedPath, referencedCode);
- }
- }
- }
- }
- }
-}
diff --git a/pkg/analyzer/test/src/task/strong/test_all.dart b/pkg/analyzer/test/src/task/strong/test_all.dart
index 3798be4..28393b8 100644
--- a/pkg/analyzer/test/src/task/strong/test_all.dart
+++ b/pkg/analyzer/test/src/task/strong/test_all.dart
@@ -5,14 +5,12 @@
import 'package:test_reflective_loader/test_reflective_loader.dart';
import 'checker_test.dart' as checker_test;
-import 'front_end_runtime_check_test.dart' as front_end_runtime_check_test;
import 'inferred_type_test.dart' as inferred_type_test;
import 'non_null_checker_test.dart' as non_null_checker_test;
main() {
defineReflectiveSuite(() {
checker_test.main();
- front_end_runtime_check_test.main();
inferred_type_test.main();
non_null_checker_test.main();
}, name: 'strong');
diff --git a/pkg/analyzer/tool/fasta_migration_progress.sh b/pkg/analyzer/tool/fasta_migration_progress.sh
index 4011ce0..042e0db 100644
--- a/pkg/analyzer/tool/fasta_migration_progress.sh
+++ b/pkg/analyzer/tool/fasta_migration_progress.sh
@@ -9,16 +9,23 @@
# Run the suite to extract the total number of tests from the runner output.
# TODO(sigmund): don't require `dart` to be on the path.
-total=$(dart pkg/analyzer/test/generated/parser_fasta_test.dart | \
- tail -1 | \
- sed -e "s/.*+\([0-9]*\)[^0-9].*All tests passed.*$/\1/")
+total=$(find pkg/analyzer/test -name parser_fasta_test.dart -exec dart {} \; \
+ -or -name *_kernel_test.dart -exec dart {} \; 2>/dev/null | \
+ egrep '(All tests passed|Some tests failed)' | \
+ sed -e "s/.*+\([0-9]*\)[^0-9].*All tests passed.*$/\1/" | \
+ # For failures, parse +10 -1 into 10+1 so we can call bc
+ sed -e "s/.*+\([0-9]*\)[^0-9].*-\([0-9]*\)[^0-9].*Some tests failed.*$/\1+\2/" | \
+ # concatenate with + and call bc to add up failures
+ paste -sd+ | \
+ bc)
# Count tests marked with the @failingTest annotation.
-fail=$(cat pkg/analyzer/test/generated/parser_fasta_test.dart | \
+fail=$(cat pkg/analyzer/test/generated/parser_fasta_test.dart \
+ $(find pkg/analyzer/test -name *_kernel_test.dart) | \
grep failingTest | wc -l)
pass_rate=$(bc <<< "scale=1; 100*($total-$fail)/$total")
-echo "Parser-fasta tests: $(($total - $fail))/$total ($pass_rate%)"
+echo "CFE enabled tests: $(($total - $fail))/$total ($pass_rate%)"
# Metric 2: analyzer tests with fasta enabled.
@@ -26,7 +33,7 @@
# count the number of individual tests (a single test case in a test file) that
# are passing or failing.
-echo "Analyzer tests files:"
+echo "Analyzer tests files (with fasta enabled):"
logfile=$1
delete=0
@@ -39,8 +46,9 @@
# delete=1
python tools/test.py -m release --checked --use-sdk \
--vm-options="-DuseFastaParser=true" \
+ --print_passing_stdout \
pkg/analy > $logfile
-fi;
+fi
pass=$(tail -1 $logfile | sed -e "s/.*+\s*\([0-9]*\) |.*$/\1/")
fail=$(tail -1 $logfile | sed -e "s/.* -\s*\([0-9]*\)\].*$/\1/")
@@ -49,18 +57,35 @@
echo " Test files passing: $pass/$(($pass + $fail)) ($pass_rate%)"
# Tests use package:test, which contains a summary line saying how many tests
-# passed and failed. The line has this form:
+# passed and failed.
+#
+# Files in which all tests pass end in:
+#
+# MM:SS +pp: All tests passed
+#
+# with some extra crap for color highlighting. Count those tests up:
+passing_tests_temp=$(cat $logfile | \
+ grep "All tests passed" | \
+ sed -e "s/.*+\([0-9]*\).*All tests passed.*/\1/" |
+ paste -sd+ | # concatenate with +
+ bc) # sum
+
+# Test files which had at least one failure end in:
#
# MM:SS +pp -ff: Some tests failed
#
# but also contains some escape sequences for color highlighting. The code below
-# extracts the passing (pp) and failing (ff) numbers and tallies them up:
+# extracts the passing (pp) and failing (ff) numbers, plus the all-tests-passed
+# counts, and prints the results:
cat $logfile | \
grep "Some tests failed" | \
sed -e "s/.*+\([0-9]*\).* -\([0-9]*\).*/\1 \2/" | \
- awk '{
+ awk '
+ {
pass += $1
total += $1 + $2
+ } BEGIN {
+ total = pass = '$passing_tests_temp'
} END {
printf (" Individual tests passing: %d/%d (%.1f%)\n", \
pass/2, total/2,(100 * pass / total))
diff --git a/pkg/async_helper/lib/async_helper.dart b/pkg/async_helper/lib/async_helper.dart
index 965385e..1c9c10e 100644
--- a/pkg/async_helper/lib/async_helper.dart
+++ b/pkg/async_helper/lib/async_helper.dart
@@ -38,7 +38,10 @@
}
/// Call this method before an asynchronous test is created.
-void asyncStart() {
+///
+/// If [count] is provided, expect [count] [asyncEnd] calls instead of just one.
+void asyncStart([int count = 1]) {
+ if (count <= 0) return;
if (_initialized && _asyncLevel == 0) {
throw _buildException('asyncStart() was called even though we are done '
'with testing.');
@@ -48,7 +51,7 @@
_initialized = true;
_port = new ReceivePort();
}
- _asyncLevel++;
+ _asyncLevel += count;
}
/// Call this after an asynchronous test has ended successfully.
diff --git a/pkg/compiler/lib/src/compiler.dart b/pkg/compiler/lib/src/compiler.dart
index a88db74..853811c 100644
--- a/pkg/compiler/lib/src/compiler.dart
+++ b/pkg/compiler/lib/src/compiler.dart
@@ -184,23 +184,24 @@
this.environment: const _EmptyEnvironment(),
MakeReporterFunction makeReporter})
: this.options = options {
+ CompilerTask kernelFrontEndTask;
+ selfTask = new GenericTask('self', measurer);
_outputProvider = new _CompilerOutput(this, outputProvider);
if (makeReporter != null) {
_reporter = makeReporter(this, options);
} else {
_reporter = new CompilerDiagnosticReporter(this, options);
}
- frontendStrategy = options.useKernel
- ? new KernelFrontEndStrategy(options, reporter, environment,
- options.kernelInitializedCompilerState)
- : new ResolutionFrontEndStrategy(this);
- backendStrategy = options.useKernel
- ? new KernelBackendStrategy(this)
- : new ElementBackendStrategy(this);
if (options.useKernel) {
+ kernelFrontEndTask = new GenericTask('Front end', measurer);
+ frontendStrategy = new KernelFrontEndStrategy(kernelFrontEndTask, options,
+ reporter, environment, options.kernelInitializedCompilerState);
+ backendStrategy = new KernelBackendStrategy(this);
_impactCache = <Entity, WorldImpact>{};
_impactCacheDeleter = new _MapImpactCacheDeleter(_impactCache);
} else {
+ frontendStrategy = new ResolutionFrontEndStrategy(this);
+ backendStrategy = new ElementBackendStrategy(this);
_resolution = createResolution();
_impactCache = _resolution._worldImpactCache;
_impactCacheDeleter = _resolution;
@@ -242,8 +243,9 @@
// objects needed by other tasks.
enqueuer,
dumpInfoTask = new DumpInfoTask(this),
- selfTask = new GenericTask('self', measurer),
+ selfTask,
];
+ if (options.useKernel) tasks.add(kernelFrontEndTask);
if (options.resolveOnly) {
serialization.supportSerialization = true;
}
@@ -677,10 +679,10 @@
}
/// Compute the [WorldImpact] for accessing all elements in [library].
- WorldImpact computeImpactForLibrary(LibraryElement library) {
+ WorldImpact computeImpactForLibrary(LibraryEntity library) {
WorldImpactBuilderImpl impactBuilder = new WorldImpactBuilderImpl();
- void registerStaticUse(Element element) {
+ void registerStaticUse(Entity element) {
impactBuilder.registerStaticUse(new StaticUse.directUse(element));
}
@@ -698,33 +700,45 @@
}
}
- library.implementation.forEachLocalMember(registerElement);
+ if (library is LibraryElement) {
+ library.implementation.forEachLocalMember(registerElement);
- library.imports.forEach((ImportElement import) {
- if (import.isDeferred) {
- // `import.prefix` and `loadLibrary` may be `null` when the deferred
- // import has compile-time errors.
- GetterElement loadLibrary = import.prefix?.loadLibrary;
- if (loadLibrary != null) {
- registerStaticUse(loadLibrary);
+ library.imports.forEach((ImportElement import) {
+ if (import.isDeferred) {
+ // `import.prefix` and `loadLibrary` may be `null` when the deferred
+ // import has compile-time errors.
+ GetterElement loadLibrary = import.prefix?.loadLibrary;
+ if (loadLibrary != null) {
+ registerStaticUse(loadLibrary);
+ }
}
- }
- if (serialization.supportSerialization) {
- for (MetadataAnnotation metadata in import.metadata) {
- metadata.ensureResolved(resolution);
- }
- }
- });
- if (serialization.supportSerialization) {
- library.exports.forEach((ExportElement export) {
- for (MetadataAnnotation metadata in export.metadata) {
- metadata.ensureResolved(resolution);
+ if (serialization.supportSerialization) {
+ for (MetadataAnnotation metadata in import.metadata) {
+ metadata.ensureResolved(resolution);
+ }
}
});
- library.compilationUnits.forEach((CompilationUnitElement unit) {
- for (MetadataAnnotation metadata in unit.metadata) {
- metadata.ensureResolved(resolution);
- }
+ if (serialization.supportSerialization) {
+ library.exports.forEach((ExportElement export) {
+ for (MetadataAnnotation metadata in export.metadata) {
+ metadata.ensureResolved(resolution);
+ }
+ });
+ library.compilationUnits.forEach((CompilationUnitElement unit) {
+ for (MetadataAnnotation metadata in unit.metadata) {
+ metadata.ensureResolved(resolution);
+ }
+ });
+ }
+ } else {
+ ElementEnvironment elementEnvironment =
+ frontendStrategy.elementEnvironment;
+
+ elementEnvironment.forEachLibraryMember(library, registerStaticUse);
+ elementEnvironment.forEachClass(library, (ClassEntity cls) {
+ impactBuilder.registerTypeUse(
+ new TypeUse.instantiation(elementEnvironment.getRawType(cls)));
+ elementEnvironment.forEachLocalClassMember(cls, registerStaticUse);
});
}
return impactBuilder;
diff --git a/pkg/compiler/lib/src/deferred_load.dart b/pkg/compiler/lib/src/deferred_load.dart
index 5c49dbf..cbe47ff 100644
--- a/pkg/compiler/lib/src/deferred_load.dart
+++ b/pkg/compiler/lib/src/deferred_load.dart
@@ -211,14 +211,7 @@
collectConstantsInBody(analyzableElement, constants);
}
- // TODO(sigurdm): How is metadata on a patch-class handled?
- if (element is ClassEntity) {
- constants.addAll(elementEnvironment.getClassMetadata(element));
- } else if (element is MemberEntity) {
- constants.addAll(elementEnvironment.getMemberMetadata(element));
- } else if (element is TypedefEntity) {
- constants.addAll(elementEnvironment.getTypedefMetadata(element));
- }
+ collectConstantsFromMetadata(element, constants);
if (element is FunctionEntity) {
_collectTypeDependencies(
@@ -264,6 +257,13 @@
// they are processed as part of the class.
}
+ /// Extract the set of constants that are used in annotations of [element].
+ ///
+ /// If the underlying system doesn't support mirrors, then no constants are
+ /// added.
+ void collectConstantsFromMetadata(
+ Entity element, Set<ConstantValue> constants);
+
/// Extract the set of constants that are used in the body of [element].
void collectConstantsInBody(Entity element, Set<ConstantValue> constants);
@@ -688,10 +688,14 @@
_elementToSet = null;
_constantToSet = null;
+ cleanup();
return new OutputUnitData(this.isProgramSplit, this.mainOutputUnit,
entityMap, constantMap, importSets);
}
+ /// Frees up strategy-specific temporary data.
+ void cleanup() {}
+
void beforeResolution(LibraryEntity mainLibrary) {
if (mainLibrary == null) return;
for (LibraryEntity library in compiler.libraryLoader.libraries) {
diff --git a/pkg/compiler/lib/src/elements/common.dart b/pkg/compiler/lib/src/elements/common.dart
index f2ec630..6990e6a 100644
--- a/pkg/compiler/lib/src/elements/common.dart
+++ b/pkg/compiler/lib/src/elements/common.dart
@@ -572,7 +572,7 @@
positionalParameters = requiredParameters + optionalParameterCount;
}
_parameterStructure = new ParameterStructure(
- requiredParameters, positionalParameters, namedParameters);
+ requiredParameters, positionalParameters, namedParameters, 0);
}
return _parameterStructure;
}
diff --git a/pkg/compiler/lib/src/elements/entities.dart b/pkg/compiler/lib/src/elements/entities.dart
index ad76577..1e6207e 100644
--- a/pkg/compiler/lib/src/elements/entities.dart
+++ b/pkg/compiler/lib/src/elements/entities.dart
@@ -257,12 +257,15 @@
/// The named parameters sorted alphabetically.
final List<String> namedParameters;
- const ParameterStructure(
- this.requiredParameters, this.positionalParameters, this.namedParameters);
+ /// The number of type parameters.
+ final int typeParameters;
- const ParameterStructure.getter() : this(0, 0, const <String>[]);
+ const ParameterStructure(this.requiredParameters, this.positionalParameters,
+ this.namedParameters, this.typeParameters);
- const ParameterStructure.setter() : this(1, 1, const <String>[]);
+ const ParameterStructure.getter() : this(0, 0, const <String>[], 0);
+
+ const ParameterStructure.setter() : this(1, 1, const <String>[], 0);
/// The number of optional parameters (positional or named).
int get optionalParameters =>
@@ -274,20 +277,23 @@
/// Returns the [CallStructure] corresponding to a call site passing all
/// parameters both required and optional.
CallStructure get callStructure {
- return new CallStructure(
- positionalParameters + namedParameters.length, namedParameters);
+ return new CallStructure(positionalParameters + namedParameters.length,
+ namedParameters, typeParameters);
}
int get hashCode => Hashing.listHash(
namedParameters,
Hashing.objectHash(
- positionalParameters, Hashing.objectHash(requiredParameters)));
+ positionalParameters,
+ Hashing.objectHash(
+ requiredParameters, Hashing.objectHash(typeParameters))));
bool operator ==(other) {
if (identical(this, other)) return true;
if (other is! ParameterStructure) return false;
if (requiredParameters != other.requiredParameters ||
positionalParameters != other.positionalParameters ||
+ typeParameters != other.typeParameters ||
namedParameters.length != other.namedParameters.length) {
return false;
}
@@ -304,7 +310,8 @@
sb.write('ParameterStructure(');
sb.write('requiredParameters=$requiredParameters,');
sb.write('positionalParameters=$positionalParameters,');
- sb.write('namedParameters={${namedParameters.join(',')}})');
+ sb.write('namedParameters={${namedParameters.join(',')}},');
+ sb.write('typeParameters=$typeParameters)');
return sb.toString();
}
}
diff --git a/pkg/compiler/lib/src/elements/resolution_types.dart b/pkg/compiler/lib/src/elements/resolution_types.dart
index 9058e47..8df0252 100644
--- a/pkg/compiler/lib/src/elements/resolution_types.dart
+++ b/pkg/compiler/lib/src/elements/resolution_types.dart
@@ -129,6 +129,9 @@
/// Is [: true :] if this type is a type variable.
bool get isTypeVariable => kind == ResolutionTypeKind.TYPE_VARIABLE;
+ @override
+ bool get isFunctionTypeVariable => false;
+
/// Is [: true :] if this type is a malformed type.
bool get isMalformed => false;
@@ -690,6 +693,14 @@
assert(namedParameters.length == namedParameterTypes.length);
}
+ @override
+ final List<FunctionTypeVariable> typeVariables =
+ const <FunctionTypeVariable>[];
+
+ FunctionType instantiate(List<DartType> arguments) {
+ throw new UnsupportedError("ResolutionFunctionType.instantiate");
+ }
+
ResolutionTypeKind get kind => ResolutionTypeKind.FUNCTION;
ResolutionDartType getNamedParameterType(String name) {
diff --git a/pkg/compiler/lib/src/elements/types.dart b/pkg/compiler/lib/src/elements/types.dart
index 5deca06..d0d7896 100644
--- a/pkg/compiler/lib/src/elements/types.dart
+++ b/pkg/compiler/lib/src/elements/types.dart
@@ -58,6 +58,12 @@
/// Is `true` if this type is a type variable.
bool get isTypeVariable => false;
+ /// Is `true` if this type is a type variable declared on a function type
+ ///
+ /// For instance `T` in
+ /// void Function<T>(T t)
+ bool get isFunctionTypeVariable => false;
+
/// Is `true` if this type is a malformed type.
bool get isMalformed => false;
@@ -81,6 +87,39 @@
/// Calls the visit method on [visitor] corresponding to this type.
R accept<R, A>(DartTypeVisitor<R, A> visitor, A argument);
+
+ bool _equals(DartType other, _Assumptions assumptions);
+}
+
+/// Pairs of [FunctionTypeVariable]s that are currently assumed to be equivalent.
+///
+/// This is used to compute the equivalence relation on types coinductively.
+class _Assumptions {
+ Map<FunctionTypeVariable, Set<FunctionTypeVariable>> _assumptionMap =
+ <FunctionTypeVariable, Set<FunctionTypeVariable>>{};
+
+ /// Assume that [a] and [b] are equivalent.
+ void assume(FunctionTypeVariable a, FunctionTypeVariable b) {
+ _assumptionMap
+ .putIfAbsent(a, () => new Set<FunctionTypeVariable>.identity())
+ .add(b);
+ }
+
+ /// Remove the assumption that [a] and [b] are equivalent.
+ void forget(FunctionTypeVariable a, FunctionTypeVariable b) {
+ Set<FunctionTypeVariable> set = _assumptionMap[a];
+ if (set != null) {
+ set.remove(b);
+ if (set.isEmpty) {
+ _assumptionMap.remove(a);
+ }
+ }
+ }
+
+ /// Returns `true` if [a] and [b] are assumed to be equivalent.
+ bool isAssumed(FunctionTypeVariable a, FunctionTypeVariable b) {
+ return _assumptionMap[a].contains(b);
+ }
}
class InterfaceType extends DartType {
@@ -138,9 +177,20 @@
}
bool operator ==(other) {
+ if (identical(this, other)) return true;
if (other is! InterfaceType) return false;
+ return _equals(other, null);
+ }
+
+ bool _equals(DartType other, _Assumptions assumptions) {
+ if (identical(this, other)) return true;
+ if (other is! InterfaceType) return false;
+ return _equalsInternal(other, assumptions);
+ }
+
+ bool _equalsInternal(InterfaceType other, _Assumptions assumptions) {
return identical(element, other.element) &&
- equalElements(typeArguments, other.typeArguments);
+ _equalTypes(typeArguments, other.typeArguments, assumptions);
}
String toString() {
@@ -217,9 +267,20 @@
}
bool operator ==(other) {
+ if (identical(this, other)) return true;
if (other is! TypedefType) return false;
+ return _equalsInternal(other, null);
+ }
+
+ bool _equals(DartType other, _Assumptions assumptions) {
+ if (identical(this, other)) return true;
+ if (other is! TypedefType) return false;
+ return _equalsInternal(other, assumptions);
+ }
+
+ bool _equalsInternal(TypedefType other, _Assumptions assumptions) {
return identical(element, other.element) &&
- equalElements(typeArguments, other.typeArguments);
+ _equalTypes(typeArguments, other.typeArguments, assumptions);
}
String toString() {
@@ -293,9 +354,76 @@
return identical(other.element, element);
}
+ @override
+ bool _equals(DartType other, _Assumptions assumptions) {
+ if (other is TypeVariableType) {
+ return identical(other.element, element);
+ }
+ return false;
+ }
+
String toString() => '${element.typeDeclaration.name}.${element.name}';
}
+/// A type variable declared on a function type.
+///
+/// For instance `T` in
+/// void Function<T>(T t)
+///
+/// Such a type variable is different from a [TypeVariableType] because it
+/// doesn't have a unique identity; is is equal to any other
+/// [FunctionTypeVariable] used similarly in another structurally equivalent
+/// function type.
+class FunctionTypeVariable extends DartType {
+ /// The index of this type within the type variables of the declaring function
+ /// type.
+ final int index;
+
+ /// The bound of this existential type.
+ final DartType bound;
+
+ FunctionTypeVariable(this.index, this.bound);
+
+ @override
+ bool get isFunctionTypeVariable => true;
+
+ DartType subst(List<DartType> arguments, List<DartType> parameters) {
+ assert(arguments.length == parameters.length);
+ if (parameters.isEmpty) {
+ // Return fast on empty substitutions.
+ return this;
+ }
+ int index = parameters.indexOf(this);
+ if (index != -1) {
+ return arguments[index];
+ }
+ // The existential type was not substituted.
+ return this;
+ }
+
+ int get hashCode => index.hashCode * 19;
+
+ bool operator ==(other) {
+ if (identical(this, other)) return true;
+ if (other is! FunctionTypeVariable) return false;
+ return _equals(other, null);
+ }
+
+ @override
+ bool _equals(DartType other, _Assumptions assumptions) {
+ if (identical(this, other)) return true;
+ if (other is! FunctionTypeVariable) return false;
+ if (assumptions != null) return assumptions.isAssumed(this, other);
+ return false;
+ }
+
+ @override
+ R accept<R, A>(DartTypeVisitor<R, A> visitor, A argument) =>
+ visitor.visitFunctionTypeVariable(this, argument);
+
+ String toString() => '#${new String.fromCharCode(0x41 + index)}';
+}
+
class VoidType extends DartType {
const VoidType();
@@ -312,6 +440,11 @@
int get hashCode => 6007;
+ @override
+ bool _equals(DartType other, _Assumptions assumptions) {
+ return identical(this, other);
+ }
+
String toString() => 'void';
}
@@ -335,6 +468,11 @@
int get hashCode => 91;
+ @override
+ bool _equals(DartType other, _Assumptions assumptions) {
+ return identical(this, other);
+ }
+
String toString() => 'dynamic';
}
@@ -350,12 +488,15 @@
/// [namedParameters].
final List<DartType> namedParameterTypes;
+ final List<FunctionTypeVariable> typeVariables;
+
FunctionType(
this.returnType,
this.parameterTypes,
this.optionalParameterTypes,
this.namedParameters,
- this.namedParameterTypes);
+ this.namedParameterTypes,
+ this.typeVariables);
bool get containsTypeVariables {
return returnType.containsTypeVariables ||
@@ -393,14 +534,45 @@
!identical(namedParameterTypes, newNamedParameterTypes))) {
changed = true;
}
+ List<FunctionTypeVariable> newTypeVariables;
+ if (typeVariables.isNotEmpty) {
+ if (parameters == typeVariables) {
+ newTypeVariables = const <FunctionTypeVariable>[];
+ changed = true;
+ } else {
+ int index = 0;
+ for (FunctionTypeVariable typeVariable in typeVariables) {
+ DartType newBound = typeVariable.bound.subst(arguments, parameters);
+ if (!identical(typeVariable.bound, newBound)) {
+ newTypeVariables ??= typeVariables.sublist(0, index);
+ changed = true;
+ } else {
+ newTypeVariables?.add(typeVariable);
+ }
+ index++;
+ }
+ newTypeVariables ??= typeVariables;
+ }
+ } else {
+ newTypeVariables = typeVariables;
+ }
if (changed) {
// Create a new type only if necessary.
- return new FunctionType(newReturnType, newParameterTypes,
- newOptionalParameterTypes, namedParameters, newNamedParameterTypes);
+ return new FunctionType(
+ newReturnType,
+ newParameterTypes,
+ newOptionalParameterTypes,
+ namedParameters,
+ newNamedParameterTypes,
+ newTypeVariables);
}
return this;
}
+ FunctionType instantiate(List<DartType> arguments) {
+ return subst(arguments, typeVariables);
+ }
+
@override
R accept<R, A>(DartTypeVisitor<R, A> visitor, A argument) =>
visitor.visitFunctionType(this, argument);
@@ -423,18 +595,58 @@
}
bool operator ==(other) {
+ if (identical(this, other)) return true;
if (other is! FunctionType) return false;
- return returnType == other.returnType &&
- equalElements(parameterTypes, other.parameterTypes) &&
- equalElements(optionalParameterTypes, other.optionalParameterTypes) &&
+ return _equalsInternal(other, null);
+ }
+
+ bool _equals(DartType other, _Assumptions assumptions) {
+ if (identical(this, other)) return true;
+ if (other is! FunctionType) return false;
+ return _equalsInternal(other, assumptions);
+ }
+
+ bool _equalsInternal(FunctionType other, _Assumptions assumptions) {
+ if (typeVariables.isNotEmpty) {
+ if (typeVariables.length != other.typeVariables.length) return false;
+ assumptions ??= new _Assumptions();
+ for (int index = 0; index < typeVariables.length; index++) {
+ assumptions.assume(typeVariables[index], other.typeVariables[index]);
+ }
+ }
+ bool result = returnType == other.returnType &&
+ _equalTypes(parameterTypes, other.parameterTypes, assumptions) &&
+ _equalTypes(optionalParameterTypes, other.optionalParameterTypes,
+ assumptions) &&
equalElements(namedParameters, other.namedParameters) &&
- equalElements(namedParameterTypes, other.namedParameterTypes);
+ _equalTypes(
+ namedParameterTypes, other.namedParameterTypes, assumptions);
+ if (typeVariables.isNotEmpty) {
+ for (int index = 0; index < typeVariables.length; index++) {
+ assumptions.forget(typeVariables[index], other.typeVariables[index]);
+ }
+ }
+ return result;
}
String toString() {
StringBuffer sb = new StringBuffer();
sb.write(returnType);
- sb.write(' Function(');
+ sb.write(' Function');
+ if (typeVariables.isNotEmpty) {
+ sb.write('<');
+ bool needsComma = false;
+ // TODO(johnniwinther): Include bounds.
+ for (FunctionTypeVariable typeVariable in typeVariables) {
+ if (needsComma) {
+ sb.write(',');
+ }
+ sb.write(typeVariable);
+ needsComma = true;
+ }
+ sb.write('>');
+ }
+ sb.write('(');
bool needsComma = false;
for (DartType parameterType in parameterTypes) {
if (needsComma) {
@@ -501,6 +713,16 @@
return changed ? result : types;
}
+bool _equalTypes(List<DartType> a, List<DartType> b, _Assumptions assumptions) {
+ if (a.length != b.length) return false;
+ for (int index = 0; index < a.length; index++) {
+ if (!a[index]._equals(b[index], assumptions)) {
+ return false;
+ }
+ }
+ return true;
+}
+
abstract class DartTypeVisitor<R, A> {
const DartTypeVisitor();
@@ -510,6 +732,10 @@
R visitTypeVariableType(covariant TypeVariableType type, A argument) => null;
+ R visitFunctionTypeVariable(
+ covariant FunctionTypeVariable type, A argument) =>
+ null;
+
R visitFunctionType(covariant FunctionType type, A argument) => null;
R visitInterfaceType(covariant InterfaceType type, A argument) => null;
@@ -533,6 +759,11 @@
visitType(type, argument);
@override
+ R visitFunctionTypeVariable(
+ covariant FunctionTypeVariable type, A argument) =>
+ visitType(type, argument);
+
+ @override
R visitFunctionType(covariant FunctionType type, A argument) =>
visitType(type, argument);
@@ -862,7 +1093,7 @@
/// Returns [type] as an instance of [cls] or `null` if [type] is not a
/// subtype of [cls].
///
- /// For instance `asInstanceOf(List<String>, Iterable) = Iterable<String>`.
+ /// For example: `asInstanceOf(List<String>, Iterable) = Iterable<String>`.
InterfaceType asInstanceOf(InterfaceType type, ClassEntity cls);
/// Return [base] where the type variable of `context.element` are replaced
diff --git a/pkg/compiler/lib/src/js_backend/backend.dart b/pkg/compiler/lib/src/js_backend/backend.dart
index a901494..35913d3 100644
--- a/pkg/compiler/lib/src/js_backend/backend.dart
+++ b/pkg/compiler/lib/src/js_backend/backend.dart
@@ -324,8 +324,9 @@
FrontendStrategy get frontendStrategy => compiler.frontendStrategy;
- /// Returns true if the backend supports reflection.
- bool get supportsReflection => emitter.supportsReflection;
+ /// Returns true if the backend supports reflection and this isn't Dart 2.
+ bool get supportsReflection =>
+ emitter.supportsReflection && !compiler.options.useKernel;
FunctionCompiler functionCompiler;
diff --git a/pkg/compiler/lib/src/js_backend/runtime_types.dart b/pkg/compiler/lib/src/js_backend/runtime_types.dart
index 72d0a4f..5f1be34 100644
--- a/pkg/compiler/lib/src/js_backend/runtime_types.dart
+++ b/pkg/compiler/lib/src/js_backend/runtime_types.dart
@@ -1014,6 +1014,13 @@
return onVariable(type);
}
+ jsAst.Expression visitFunctionTypeVariable(
+ FunctionTypeVariable type, Emitter emitter) {
+ // TODO(johnniwinther): Create a runtime representation for existential
+ // types.
+ return getDynamicValue();
+ }
+
jsAst.Expression visitDynamicType(DynamicType type, Emitter emitter) {
return getDynamicValue();
}
diff --git a/pkg/compiler/lib/src/js_model/elements.dart b/pkg/compiler/lib/src/js_model/elements.dart
index 14d77cb..4229b83 100644
--- a/pkg/compiler/lib/src/js_model/elements.dart
+++ b/pkg/compiler/lib/src/js_model/elements.dart
@@ -261,7 +261,8 @@
visitList(type.parameterTypes, converter),
visitList(type.optionalParameterTypes, converter),
type.namedParameters,
- visitList(type.namedParameterTypes, converter));
+ visitList(type.namedParameterTypes, converter),
+ type.typeVariables);
}
@override
@@ -271,6 +272,12 @@
}
@override
+ DartType visitFunctionTypeVariable(
+ FunctionTypeVariable type, EntityConverter converter) {
+ return type;
+ }
+
+ @override
DartType visitVoidType(VoidType type, EntityConverter converter) {
return const VoidType();
}
diff --git a/pkg/compiler/lib/src/js_model/js_strategy.dart b/pkg/compiler/lib/src/js_model/js_strategy.dart
index 1eba154..4d56126 100644
--- a/pkg/compiler/lib/src/js_model/js_strategy.dart
+++ b/pkg/compiler/lib/src/js_model/js_strategy.dart
@@ -84,30 +84,42 @@
OutputUnitData convertOutputUnitData(OutputUnitData data) {
JsToFrontendMapImpl map = new JsToFrontendMapImpl(_elementMap);
- // TODO(sigmund): make this more flexible to support scenarios where we have
- // a 1-n mapping (a k-entity that maps to multiple j-entities).
Entity toBackendEntity(Entity entity) {
if (entity is ClassEntity) return map.toBackendClass(entity);
if (entity is MemberEntity) return map.toBackendMember(entity);
if (entity is TypeVariableEntity) {
return map.toBackendTypeVariable(entity);
}
- if (entity is Local) {
- // TODO(sigmund): ensure we don't store locals in OuputUnitData
- return entity;
- }
assert(
entity is LibraryEntity, 'unexpected entity ${entity.runtimeType}');
return map.toBackendLibrary(entity);
}
+ // Convert a front-end map containing K-entities keys to a backend map using
+ // J-entities as keys.
+ Map<Entity, OutputUnit> convertEntityMap(Map<Entity, OutputUnit> input) {
+ var result = <Entity, OutputUnit>{};
+ input.forEach((Entity entity, OutputUnit unit) {
+ // Closures have both a class and a call-method, we ensure both are
+ // included in the corresponding output unit.
+ if (entity is KLocalFunction) {
+ var closureInfo = _closureDataLookup.getClosureInfo(entity.node);
+ result[closureInfo.closureClassEntity] = unit;
+ result[closureInfo.callMethod] = unit;
+ } else {
+ result[toBackendEntity(entity)] = unit;
+ }
+ });
+ return result;
+ }
+
ConstantValue toBackendConstant(ConstantValue constant) {
return constant.accept(new ConstantConverter(toBackendEntity), null);
}
return new OutputUnitData.from(
data,
- (m) => convertMap<Entity, OutputUnit>(m, toBackendEntity, (v) => v),
+ convertEntityMap,
(m) => convertMap<ConstantValue, OutputUnit>(
m, toBackendConstant, (v) => v));
}
diff --git a/pkg/compiler/lib/src/kernel/deferred_load.dart b/pkg/compiler/lib/src/kernel/deferred_load.dart
index 3111172..5fc4f97 100644
--- a/pkg/compiler/lib/src/kernel/deferred_load.dart
+++ b/pkg/compiler/lib/src/kernel/deferred_load.dart
@@ -15,6 +15,8 @@
class KernelDeferredLoadTask extends DeferredLoadTask {
KernelToElementMapForImpact _elementMap;
+ Map<ir.Library, Set<ir.Member>> _additionalExportsSets =
+ <ir.Library, Set<ir.Member>>{};
KernelDeferredLoadTask(Compiler compiler, this._elementMap) : super(compiler);
@@ -28,8 +30,7 @@
if (dependency.isExport) continue;
if (!_isVisible(dependency.combinators, member.name.name)) continue;
if (member.enclosingLibrary == dependency.targetLibrary ||
- dependency.targetLibrary.additionalExports
- .any((ir.Reference ref) => ref.node == member)) {
+ additionalExports(dependency.targetLibrary).contains(member)) {
imports.add(_elementMap.getImport(dependency));
}
}
@@ -42,10 +43,30 @@
}
@override
+ void collectConstantsFromMetadata(
+ Entity element, Set<ConstantValue> constants) {
+ // Nothing to do. Kernel-pipeline doesn't support mirrors, so we don't need
+ // to track any constants from meta-data.
+ }
+
+ @override
void collectConstantsInBody(
covariant MemberEntity element, Set<ConstantValue> constants) {
ir.Member node = _elementMap.getMemberDefinition(element).node;
- node.accept(new ConstantCollector(_elementMap, constants));
+
+ // Fetch the internal node in order to skip annotations on the member.
+ // TODO(sigmund): replace this pattern when the kernel-ast provides a better
+ // way to skip annotations (issue 31565).
+ var visitor = new ConstantCollector(_elementMap, constants);
+ if (node is ir.Field) {
+ node.initializer?.accept(visitor);
+ return;
+ }
+
+ if (node is ir.Constructor) {
+ node.initializers.forEach((i) => i.accept(visitor));
+ }
+ node.function?.accept(visitor);
}
/// Adds extra dependencies coming from mirror usage.
@@ -63,6 +84,16 @@
throw new UnsupportedError(
"KernelDeferredLoadTask.addMirrorElementsForLibrary");
}
+
+ Set<ir.Member> additionalExports(ir.Library library) {
+ return _additionalExportsSets[library] ??= new Set<ir.Member>.from(
+ library.additionalExports.map((ir.Reference ref) => ref.node));
+ }
+
+ @override
+ void cleanup() {
+ _additionalExportsSets = null;
+ }
}
/// Returns whether [name] would be visible according to the given list of
diff --git a/pkg/compiler/lib/src/kernel/element_map_impl.dart b/pkg/compiler/lib/src/kernel/element_map_impl.dart
index 9088db4..951c0da 100644
--- a/pkg/compiler/lib/src/kernel/element_map_impl.dart
+++ b/pkg/compiler/lib/src/kernel/element_map_impl.dart
@@ -87,8 +87,8 @@
new EntityDataEnvMap<IndexedClass, ClassData, ClassEnv>();
final EntityDataMap<IndexedMember, MemberData> _members =
new EntityDataMap<IndexedMember, MemberData>();
- final EntityMap<IndexedTypeVariable> _typeVariables =
- new EntityMap<IndexedTypeVariable>();
+ final EntityDataMap<IndexedTypeVariable, TypeVariableData> _typeVariables =
+ new EntityDataMap<IndexedTypeVariable, TypeVariableData>();
final EntityDataMap<IndexedTypedef, TypedefData> _typedefs =
new EntityDataMap<IndexedTypedef, TypedefData>();
@@ -437,8 +437,32 @@
namedParameters.add(variable.name);
namedParameterTypes.add(getDartType(variable.type));
}
+ List<FunctionTypeVariable> typeVariables;
+ if (node.typeParameters.isNotEmpty &&
+ DartTypeConverter.enableFunctionTypeVariables) {
+ List<DartType> typeParameters = <DartType>[];
+ for (ir.TypeParameter typeParameter in node.typeParameters) {
+ typeParameters
+ .add(getDartType(new ir.TypeParameterType(typeParameter)));
+ }
+ // TODO(johnniwinther): Support bounds.
+ typeVariables = new List<FunctionTypeVariable>.generate(
+ node.typeParameters.length,
+ (int index) => new FunctionTypeVariable(index, const DynamicType()));
+
+ DartType subst(DartType type) {
+ return type.subst(typeVariables, typeParameters);
+ }
+
+ parameterTypes = parameterTypes.map(subst).toList();
+ optionalParameterTypes = optionalParameterTypes.map(subst).toList();
+ namedParameterTypes = namedParameterTypes.map(subst).toList();
+ } else {
+ typeVariables = const <FunctionTypeVariable>[];
+ }
+
return new FunctionType(returnType, parameterTypes, optionalParameterTypes,
- namedParameters, namedParameterTypes);
+ namedParameters, namedParameterTypes, typeVariables);
}
@override
@@ -569,7 +593,9 @@
List<DartType> namedParameterTypes =
new List.filled(namedParameters.length, dynamic);
data.callType = new FunctionType(dynamic, requiredParameterTypes,
- optionalParameterTypes, namedParameters, namedParameterTypes);
+ optionalParameterTypes, namedParameters, namedParameterTypes,
+ // TODO(johnniwinther): Generate existential types here.
+ const <FunctionTypeVariable>[]);
} else {
// The function type is not valid.
data.callType = const DynamicType();
@@ -620,6 +646,12 @@
return data.getFieldType(this);
}
+ DartType _getTypeVariableBound(IndexedTypeVariable typeVariable) {
+ assert(checkFamily(typeVariable));
+ TypeVariableData data = _typeVariables.getData(typeVariable);
+ return data.getBound(this);
+ }
+
ClassEntity _getAppliedMixin(IndexedClass cls) {
assert(checkFamily(cls));
ClassData data = _classes.getData(cls);
@@ -763,7 +795,7 @@
EntityDataEnvMap<IndexedLibrary, LibraryData, LibraryEnv> get _libraries;
EntityDataEnvMap<IndexedClass, ClassData, ClassEnv> get _classes;
EntityDataMap<IndexedMember, MemberData> get _members;
- EntityMap<IndexedTypeVariable> get _typeVariables;
+ EntityDataMap<IndexedTypeVariable, TypeVariableData> get _typeVariables;
EntityDataMap<IndexedTypedef, TypedefData> get _typedefs;
Map<ir.Library, IndexedLibrary> _libraryMap = <ir.Library, IndexedLibrary>{};
@@ -838,8 +870,9 @@
if (node.parent is ir.Class) {
ir.Class cls = node.parent;
int index = cls.typeParameters.indexOf(node);
- return _typeVariables
- .register(createTypeVariable(_getClass(cls), node.name, index));
+ return _typeVariables.register(
+ createTypeVariable(_getClass(cls), node.name, index),
+ new TypeVariableData(node));
}
if (node.parent is ir.FunctionNode) {
ir.FunctionNode func = node.parent;
@@ -856,7 +889,8 @@
return _getTypeVariable(cls.typeParameters[index]);
} else {
return _typeVariables.register(
- createTypeVariable(_getMethod(procedure), node.name, index));
+ createTypeVariable(_getMethod(procedure), node.name, index),
+ new TypeVariableData(node));
}
}
}
@@ -975,10 +1009,14 @@
// TODO(johnniwinther): Cache the computed function type.
int requiredParameters = node.requiredParameterCount;
int positionalParameters = node.positionalParameters.length;
+ int typeParameters = node.typeParameters.length;
List<String> namedParameters =
node.namedParameters.map((p) => p.name).toList()..sort();
return new ParameterStructure(
- requiredParameters, positionalParameters, namedParameters);
+ requiredParameters,
+ positionalParameters,
+ namedParameters,
+ DartTypeConverter.enableFunctionTypeVariables ? typeParameters : 0);
}
IndexedLibrary createLibrary(String name, Uri canonicalUri);
@@ -1277,8 +1315,7 @@
@override
DartType getTypeVariableBound(TypeVariableEntity typeVariable) {
- throw new UnimplementedError(
- 'KernelElementEnvironment.getTypeVariableBound');
+ return elementMap._getTypeVariableBound(typeVariable);
}
@override
@@ -1497,9 +1534,11 @@
/// Visitor that converts kernel dart types into [DartType].
class DartTypeConverter extends ir.DartTypeVisitor<DartType> {
+ static bool enableFunctionTypeVariables = false;
+
final KernelToElementMapBase elementMap;
- final Set<ir.TypeParameter> currentFunctionTypeParameters =
- new Set<ir.TypeParameter>();
+ final Map<ir.TypeParameter, DartType> currentFunctionTypeParameters =
+ <ir.TypeParameter, DartType>{};
bool topLevel = true;
DartTypeConverter(this.elementMap);
@@ -1528,10 +1567,9 @@
@override
DartType visitTypeParameterType(ir.TypeParameterType node) {
- if (currentFunctionTypeParameters.contains(node.parameter)) {
- // TODO(johnniwinther): Map function type parameters to a new
- // [FunctionTypeParameter] type.
- return const DynamicType();
+ DartType typeParameter = currentFunctionTypeParameters[node.parameter];
+ if (typeParameter != null) {
+ return typeParameter;
}
if (node.parameter.parent is ir.FunctionNode &&
node.parameter.parent.parent is ir.Procedure) {
@@ -1547,7 +1585,21 @@
@override
DartType visitFunctionType(ir.FunctionType node) {
- currentFunctionTypeParameters.addAll(node.typeParameters);
+ int index = 0;
+ List<FunctionTypeVariable> typeVariables;
+ for (ir.TypeParameter typeParameter in node.typeParameters) {
+ if (enableFunctionTypeVariables) {
+ // TODO(johnniwinther): Support bounds.
+ FunctionTypeVariable typeVariable =
+ new FunctionTypeVariable(index, const DynamicType());
+ currentFunctionTypeParameters[typeParameter] = typeVariable;
+ typeVariables ??= <FunctionTypeVariable>[];
+ typeVariables.add(typeVariable);
+ } else {
+ currentFunctionTypeParameters[typeParameter] = const DynamicType();
+ }
+ index++;
+ }
FunctionType type = new FunctionType(
visitType(node.returnType),
visitTypes(node.positionalParameters
@@ -1557,8 +1609,11 @@
.skip(node.requiredParameterCount)
.toList()),
node.namedParameters.map((n) => n.name).toList(),
- node.namedParameters.map((n) => visitType(n.type)).toList());
- currentFunctionTypeParameters.removeAll(node.typeParameters);
+ node.namedParameters.map((n) => visitType(n.type)).toList(),
+ typeVariables ?? const <FunctionTypeVariable>[]);
+ for (ir.TypeParameter typeParameter in node.typeParameters) {
+ currentFunctionTypeParameters.remove(typeParameter);
+ }
return type;
}
@@ -2046,6 +2101,8 @@
typeVariableIndex++) {
IndexedTypeVariable oldTypeVariable =
_elementMap._typeVariables.getEntity(typeVariableIndex);
+ TypeVariableData oldTypeVariableData =
+ _elementMap._typeVariables.getData(oldTypeVariable);
Entity newTypeDeclaration;
if (oldTypeVariable.typeDeclaration is ClassEntity) {
IndexedClass cls = oldTypeVariable.typeDeclaration;
@@ -2056,7 +2113,8 @@
}
IndexedTypeVariable newTypeVariable = createTypeVariable(
newTypeDeclaration, oldTypeVariable.name, oldTypeVariable.index);
- _typeVariables.register<IndexedTypeVariable>(newTypeVariable);
+ _typeVariables.register<IndexedTypeVariable, TypeVariableData>(
+ newTypeVariable, oldTypeVariableData.copy());
assert(newTypeVariable.typeVariableIndex ==
oldTypeVariable.typeVariableIndex);
}
diff --git a/pkg/compiler/lib/src/kernel/element_map_mixins.dart b/pkg/compiler/lib/src/kernel/element_map_mixins.dart
index 9954ca1..aa25d5e 100644
--- a/pkg/compiler/lib/src/kernel/element_map_mixins.dart
+++ b/pkg/compiler/lib/src/kernel/element_map_mixins.dart
@@ -23,6 +23,7 @@
import '../universe/call_structure.dart';
import '../universe/selector.dart';
import 'element_map.dart';
+import 'element_map_impl.dart';
import 'kernel_debug.dart';
abstract class KernelToElementMapBaseMixin implements KernelToElementMap {
@@ -43,7 +44,12 @@
CallStructure getCallStructure(ir.Arguments arguments) {
int argumentCount = arguments.positional.length + arguments.named.length;
List<String> namedArguments = arguments.named.map((e) => e.name).toList();
- return new CallStructure(argumentCount, namedArguments);
+ return new CallStructure(
+ argumentCount,
+ namedArguments,
+ DartTypeConverter.enableFunctionTypeVariables
+ ? arguments.types.length
+ : 0);
}
@override
diff --git a/pkg/compiler/lib/src/kernel/env.dart b/pkg/compiler/lib/src/kernel/env.dart
index cf03332..c987acc 100644
--- a/pkg/compiler/lib/src/kernel/env.dart
+++ b/pkg/compiler/lib/src/kernel/env.dart
@@ -751,3 +751,18 @@
TypedefData(this.node, this.element, this.rawType);
}
+
+class TypeVariableData {
+ final ir.TypeParameter node;
+ DartType _bound;
+
+ TypeVariableData(this.node);
+
+ DartType getBound(KernelToElementMap elementMap) {
+ return _bound ??= elementMap.getDartType(node.bound);
+ }
+
+ TypeVariableData copy() {
+ return new TypeVariableData(node);
+ }
+}
diff --git a/pkg/compiler/lib/src/kernel/kernel_strategy.dart b/pkg/compiler/lib/src/kernel/kernel_strategy.dart
index e18148c..76b19b4 100644
--- a/pkg/compiler/lib/src/kernel/kernel_strategy.dart
+++ b/pkg/compiler/lib/src/kernel/kernel_strategy.dart
@@ -49,6 +49,7 @@
/// model from kernel IR nodes.
class KernelFrontEndStrategy extends FrontendStrategyBase {
CompilerOptions _options;
+ CompilerTask _compilerTask;
KernelToElementMapForImpactImpl _elementMap;
KernelAnnotationProcessor _annotationProcesser;
@@ -58,8 +59,13 @@
fe.InitializedCompilerState initializedCompilerState;
- KernelFrontEndStrategy(this._options, DiagnosticReporter reporter,
- env.Environment environment, this.initializedCompilerState) {
+ KernelFrontEndStrategy(
+ this._compilerTask,
+ this._options,
+ DiagnosticReporter reporter,
+ env.Environment environment,
+ this.initializedCompilerState) {
+ assert(_compilerTask != null);
_elementMap = new KernelToElementMapForImpactImpl(
reporter, environment, this, _options);
}
@@ -163,7 +169,7 @@
NativeDataBuilder nativeDataBuilder,
ImpactTransformer impactTransformer,
Map<Entity, WorldImpact> impactCache) {
- return new KernelWorkItemBuilder(elementMap, nativeBasicData,
+ return new KernelWorkItemBuilder(_compilerTask, elementMap, nativeBasicData,
nativeDataBuilder, impactTransformer, closureModels, impactCache);
}
@@ -178,6 +184,7 @@
}
class KernelWorkItemBuilder implements WorkItemBuilder {
+ final CompilerTask _compilerTask;
final KernelToElementMapForImpactImpl _elementMap;
final ImpactTransformer _impactTransformer;
final NativeMemberResolver _nativeMemberResolver;
@@ -185,6 +192,7 @@
final Map<Entity, WorldImpact> impactCache;
KernelWorkItemBuilder(
+ this._compilerTask,
this._elementMap,
NativeBasicData nativeBasicData,
NativeDataBuilder nativeDataBuilder,
@@ -196,12 +204,13 @@
@override
WorkItem createWorkItem(MemberEntity entity) {
- return new KernelWorkItem(_elementMap, _impactTransformer,
+ return new KernelWorkItem(_compilerTask, _elementMap, _impactTransformer,
_nativeMemberResolver, entity, closureModels, impactCache);
}
}
class KernelWorkItem implements ResolutionWorkItem {
+ final CompilerTask _compilerTask;
final KernelToElementMapForImpactImpl _elementMap;
final ImpactTransformer _impactTransformer;
final NativeMemberResolver _nativeMemberResolver;
@@ -210,6 +219,7 @@
final Map<Entity, WorldImpact> impactCache;
KernelWorkItem(
+ this._compilerTask,
this._elementMap,
this._impactTransformer,
this._nativeMemberResolver,
@@ -219,18 +229,24 @@
@override
WorldImpact run() {
- _nativeMemberResolver.resolveNativeMember(element);
- ResolutionImpact impact = _elementMap.computeWorldImpact(element);
- ScopeModel closureModel = _elementMap.computeScopeModel(element);
- if (closureModel != null) {
- closureModels[element] = closureModel;
- }
- WorldImpact worldImpact =
- _impactTransformer.transformResolutionImpact(impact);
- if (impactCache != null) {
- impactCache[element] = impact;
- }
- return worldImpact;
+ return _compilerTask.measure(() {
+ _nativeMemberResolver.resolveNativeMember(element);
+ _compilerTask.measureSubtask('closures', () {
+ ScopeModel closureModel = _elementMap.computeScopeModel(element);
+ if (closureModel != null) {
+ closureModels[element] = closureModel;
+ }
+ });
+ return _compilerTask.measureSubtask('worldImpact', () {
+ ResolutionImpact impact = _elementMap.computeWorldImpact(element);
+ WorldImpact worldImpact =
+ _impactTransformer.transformResolutionImpact(impact);
+ if (impactCache != null) {
+ impactCache[element] = impact;
+ }
+ return worldImpact;
+ });
+ });
}
}
diff --git a/pkg/compiler/lib/src/kernel/types.dart b/pkg/compiler/lib/src/kernel/types.dart
index 8a46be3..d6ea085 100644
--- a/pkg/compiler/lib/src/kernel/types.dart
+++ b/pkg/compiler/lib/src/kernel/types.dart
@@ -68,10 +68,23 @@
@override
void checkTypeVariableBounds(
- InterfaceType type,
+ InterfaceType instantiatedType,
void checkTypeVariableBound(InterfaceType type, DartType typeArgument,
TypeVariableType typeVariable, DartType bound)) {
- throw new UnimplementedError('_KernelDartTypes.checkTypeVariableBounds');
+ InterfaceType declaredType = getThisType(instantiatedType.element);
+ List<DartType> typeArguments = instantiatedType.typeArguments;
+ List<DartType> typeVariables = declaredType.typeArguments;
+ assert(typeVariables.length == typeArguments.length);
+ for (int index = 0; index < typeArguments.length; index++) {
+ DartType typeArgument = typeArguments[index];
+ TypeVariableType typeVariable = typeVariables[index];
+ DartType bound = substByContext(
+ elementMap.elementEnvironment
+ .getTypeVariableBound(typeVariable.element),
+ instantiatedType);
+ checkTypeVariableBound(
+ instantiatedType, typeArgument, typeVariable, bound);
+ }
}
@override
@@ -112,13 +125,11 @@
@override
DartType getTypeVariableBound(TypeVariableEntity element) {
- // TODO(redemption): Compute the bound.
- return commonElements.objectType;
+ return elementMap.elementEnvironment.getTypeVariableBound(element);
}
@override
FunctionType getCallType(InterfaceType type) {
- // TODO(redemption): Compute the call type.
return elementMap._getCallType(type);
}
diff --git a/pkg/compiler/lib/src/resolution/deferred_load.dart b/pkg/compiler/lib/src/resolution/deferred_load.dart
index 86744d7..04e4fbf 100644
--- a/pkg/compiler/lib/src/resolution/deferred_load.dart
+++ b/pkg/compiler/lib/src/resolution/deferred_load.dart
@@ -127,6 +127,17 @@
}
}
+ @override
+ void collectConstantsFromMetadata(
+ covariant AstElement element, Set<ConstantValue> constants) {
+ for (MetadataAnnotation metadata in element.metadata) {
+ ConstantValue constant =
+ backend.constants.getConstantValueForMetadata(metadata);
+ if (constant != null) constants.add(constant);
+ }
+ }
+
+ @override
void collectConstantsInBody(
covariant AstElement element, Set<ConstantValue> constants) {
if (element.resolvedAst.kind != ResolvedAstKind.PARSED) return;
diff --git a/pkg/compiler/lib/src/resolution/resolution_strategy.dart b/pkg/compiler/lib/src/resolution/resolution_strategy.dart
index 910773f..b47e1c6 100644
--- a/pkg/compiler/lib/src/resolution/resolution_strategy.dart
+++ b/pkg/compiler/lib/src/resolution/resolution_strategy.dart
@@ -629,6 +629,9 @@
"${setter ? 'setter' : 'getter'}: '$name'.");
}
}
+ if (member is! MemberElement) {
+ member = null;
+ }
if (member == null && required) {
failedAt(
member,
@@ -652,7 +655,10 @@
@override
ClassElement lookupClass(covariant LibraryElement library, String name,
{bool required: false}) {
- ClassElement cls = library.implementation.findLocal(name);
+ Element cls = library.implementation.findLocal(name);
+ if (cls is! ClassElement) {
+ cls = null;
+ }
if (cls == null && required) {
failedAt(
library,
diff --git a/pkg/compiler/lib/src/serialization/equivalence.dart b/pkg/compiler/lib/src/serialization/equivalence.dart
index f30f7d9..bb7a800 100644
--- a/pkg/compiler/lib/src/serialization/equivalence.dart
+++ b/pkg/compiler/lib/src/serialization/equivalence.dart
@@ -717,6 +717,12 @@
covariant ResolutionTypedefType other) {
return visitGenericType(type, other);
}
+
+ @override
+ bool visitFunctionTypeVariable(
+ FunctionTypeVariable type, ResolutionDartType other) {
+ throw new UnsupportedError("Function type variables are not supported.");
+ }
}
/// Visitor that checks for structural equivalence of [ConstantExpression]s.
diff --git a/pkg/compiler/lib/src/ssa/builder.dart b/pkg/compiler/lib/src/ssa/builder.dart
index 4ac1aa3..559e4fb 100644
--- a/pkg/compiler/lib/src/ssa/builder.dart
+++ b/pkg/compiler/lib/src/ssa/builder.dart
@@ -584,7 +584,8 @@
}
void doInlining() {
- registry.registerStaticUse(new StaticUse.inlining(declaration));
+ registry
+ .registerStaticUse(new StaticUse.inlining(declaration, instanceType));
// Add an explicit null check on the receiver before doing the
// inlining. We use [element] to get the same name in the
@@ -6806,7 +6807,7 @@
static const INLINING_NODES_INSIDE_LOOP_ARG_FACTOR = 4;
bool seenReturn = false;
- bool tooDifficult = false;
+ String tooDifficultReason;
int nodeCount = 0;
final int maxInliningNodes; // `null` for unbounded.
final bool allowLoops;
@@ -6816,10 +6817,21 @@
InlineWeeder._(this.elements, this.maxInliningNodes, this.allowLoops,
this.enableUserAssertions);
+ bool get tooDifficult => tooDifficultReason != null;
+
static bool canBeInlined(ResolvedAst resolvedAst, int maxInliningNodes,
{bool allowLoops: false, bool enableUserAssertions: null}) {
+ return cannotBeInlinedReason(resolvedAst, maxInliningNodes,
+ allowLoops: allowLoops,
+ enableUserAssertions: enableUserAssertions) ==
+ null;
+ }
+
+ static String cannotBeInlinedReason(
+ ResolvedAst resolvedAst, int maxInliningNodes,
+ {bool allowLoops: false, bool enableUserAssertions: null}) {
assert(enableUserAssertions is bool); // Ensure we passed it.
- if (resolvedAst.elements.containsTryStatement) return false;
+ if (resolvedAst.elements.containsTryStatement) return 'try';
InlineWeeder weeder = new InlineWeeder._(resolvedAst.elements,
maxInliningNodes, allowLoops, enableUserAssertions);
@@ -6828,13 +6840,13 @@
weeder.visit(functionExpression.initializers);
weeder.visit(functionExpression.body);
weeder.visit(functionExpression.asyncModifier);
- return !weeder.tooDifficult;
+ return weeder.tooDifficultReason;
}
bool registerNode() {
if (maxInliningNodes == null) return true;
if (nodeCount++ > maxInliningNodes) {
- tooDifficult = true;
+ tooDifficultReason = 'too many nodes';
return false;
} else {
return true;
@@ -6848,7 +6860,7 @@
void visitNode(ast.Node node) {
if (!registerNode()) return;
if (seenReturn) {
- tooDifficult = true;
+ tooDifficultReason = 'code after return';
} else {
node.visitChildren(this);
}
@@ -6864,18 +6876,18 @@
@override
void visitAsyncModifier(ast.AsyncModifier node) {
if (node.isYielding || node.isAsynchronous) {
- tooDifficult = true;
+ tooDifficultReason = 'async/await';
}
}
void visitFunctionExpression(ast.Node node) {
if (!registerNode()) return;
- tooDifficult = true;
+ tooDifficultReason = 'closure';
}
void visitFunctionDeclaration(ast.Node node) {
if (!registerNode()) return;
- tooDifficult = true;
+ tooDifficultReason = 'closure';
}
void visitSend(ast.Send node) {
@@ -6896,12 +6908,14 @@
// It's actually not difficult to inline a method with a loop, but
// our measurements show that it's currently better to not inline a
// method that contains a loop.
- if (!allowLoops) tooDifficult = true;
+ if (!allowLoops) {
+ tooDifficultReason = 'loop';
+ }
}
void visitRedirectingFactoryBody(ast.RedirectingFactoryBody node) {
if (!registerNode()) return;
- tooDifficult = true;
+ tooDifficultReason = 'redirecting factory';
}
void visitConditional(ast.Conditional node) {
@@ -6934,13 +6948,13 @@
void visitRethrow(ast.Rethrow node) {
if (!registerNode()) return;
- tooDifficult = true;
+ tooDifficultReason = 'rethrow';
}
void visitReturn(ast.Return node) {
if (!registerNode()) return;
if (seenReturn || identical(node.beginToken.stringValue, 'native')) {
- tooDifficult = true;
+ tooDifficultReason = 'code after return';
return;
}
node.visitChildren(this);
@@ -6952,7 +6966,7 @@
// For now, we don't want to handle throw after a return even if
// it is in an "if".
if (seenReturn) {
- tooDifficult = true;
+ tooDifficultReason = 'code after return';
} else {
node.visitChildren(this);
}
diff --git a/pkg/compiler/lib/src/ssa/builder_kernel.dart b/pkg/compiler/lib/src/ssa/builder_kernel.dart
index 22975c1..8d4c2d4 100644
--- a/pkg/compiler/lib/src/ssa/builder_kernel.dart
+++ b/pkg/compiler/lib/src/ssa/builder_kernel.dart
@@ -402,8 +402,6 @@
_addClassTypeVariablesIfNeeded(constructor);
_potentiallyAddFunctionParameterTypeChecks(constructor.function);
- // TODO(sra): Type parameter constraint checks.
-
// [fieldValues] accumulates the field initializer values, which may be
// overwritten by initializer-list initializers.
Map<FieldEntity, HInstruction> fieldValues = <FieldEntity, HInstruction>{};
@@ -533,12 +531,19 @@
}
}
- // TODO(redemption): Try to inline [body].
- _invokeConstructorBody(
- body,
- bodyCallInputs,
- _sourceInformationBuilder
- .buildDeclaration(_elementMap.getMember(constructor)));
+ ConstructorBodyEntity constructorBody =
+ _elementMap.getConstructorBody(body);
+ if (!isCustomElement && // TODO(13836): Fix inlining.
+ _tryInlineMethod(constructorBody, null, null, bodyCallInputs,
+ constructor, sourceInformation)) {
+ pop();
+ } else {
+ _invokeConstructorBody(
+ body,
+ bodyCallInputs,
+ _sourceInformationBuilder
+ .buildDeclaration(_elementMap.getMember(constructor)));
+ }
});
}
@@ -2925,11 +2930,29 @@
isFixedList = isFixedListConstructorCall;
}
+ InterfaceType instanceType = _elementMap.createInterfaceType(
+ invocation.target.enclosingClass, invocation.arguments.types);
+ if (_checkAllTypeVariableBounds(
+ function, instanceType, sourceInformation)) {
+ return;
+ }
+
TypeMask resultType = typeMask;
bool isJSArrayTypedConstructor =
function == commonElements.jsArrayTypedConstructor;
+ _inferredTypeOfNewList(ir.StaticInvocation node) {
+ MemberEntity element = sourceElement is ConstructorBodyEntity
+ ? (sourceElement as ConstructorBodyEntity).constructor
+ : sourceElement;
+ ;
+ return globalInferenceResults
+ .resultOfMember(element)
+ .typeOfNewList(node) ??
+ commonMasks.dynamicType;
+ }
+
if (isFixedListConstructorCall) {
assert(arguments.length == 1);
HInstruction lengthInput = arguments.first;
@@ -2945,10 +2968,9 @@
}
js.Template code = js.js.parseForeignJS('new Array(#)');
var behavior = new native.NativeBehavior();
- // TODO(redemption): Find the full type being created here,
- // e.g. JSArray<Set<T>>, via 'computeEffectiveTargetType'.
- var expectedType = closedWorld.elementEnvironment
- .getRawType(_commonElements.jsArrayClass);
+
+ var expectedType =
+ _elementMap.getDartType(invocation.getStaticType(null));
behavior.typesInstantiated.add(expectedType);
behavior.typesReturned.add(expectedType);
@@ -2961,9 +2983,10 @@
canThrow = false;
}
- // TODO(redemption): Pick up site-specific type inference type, which
- // might be more precise, e.g. a container type.
- resultType = commonMasks.fixedListType;
+ var inferredType = _inferredTypeOfNewList(invocation);
+ resultType = inferredType.containsAll(closedWorld)
+ ? commonMasks.fixedListType
+ : inferredType;
HForeignCode foreign = new HForeignCode(code, resultType, arguments,
nativeBehavior: behavior,
throwBehavior: canThrow
@@ -2983,9 +3006,10 @@
}
} else if (isGrowableListConstructorCall) {
push(buildLiteralList(<HInstruction>[]));
- // TODO(sra): Pick up type inference type, which might be more precise,
- // e.g. a container type.
- resultType = commonMasks.growableListType;
+ var inferredType = _inferredTypeOfNewList(invocation);
+ resultType = inferredType.containsAll(closedWorld)
+ ? commonMasks.growableListType
+ : inferredType;
stack.last.instructionType = resultType;
} else if (isJSArrayTypedConstructor) {
// TODO(sra): Instead of calling the identity-like factory constructor,
@@ -3001,11 +3025,10 @@
if (closedWorld.rtiNeed.classNeedsRti(function.enclosingClass)) {
_addTypeArguments(arguments, invocation.arguments, sourceInformation);
}
- InterfaceType type = _elementMap.createInterfaceType(
- invocation.target.enclosingClass, invocation.arguments.types);
- addImplicitInstantiation(type);
+ instanceType = localsHandler.substInContext(instanceType);
+ addImplicitInstantiation(instanceType);
_pushStaticInvocation(function, arguments, typeMask,
- sourceInformation: sourceInformation);
+ sourceInformation: sourceInformation, instanceType: instanceType);
}
HInstruction newInstance = stack.last;
@@ -3027,9 +3050,6 @@
stack
.add(_setListRuntimeTypeInfoIfNeeded(pop(), type, sourceInformation));
}
-
- // TODO(redemption): For redirecting factory constructors, check or trust
- // the type.
}
void handleInvokeStaticForeign(
@@ -3510,9 +3530,7 @@
void _pushStaticInvocation(
MemberEntity target, List<HInstruction> arguments, TypeMask typeMask,
- {SourceInformation sourceInformation,
- // TODO(redemption): Pass instance type.
- InterfaceType instanceType}) {
+ {SourceInformation sourceInformation, InterfaceType instanceType}) {
// TODO(redemption): Pass current node if needed.
if (_tryInlineMethod(target, null, null, arguments, null, sourceInformation,
instanceType: instanceType)) {
@@ -3898,6 +3916,89 @@
sourceInformation);
}
+ /// In checked mode checks the [type] of [node] to be well-bounded.
+ /// Returns `true` if an error can be statically determined.
+ ///
+ /// We do this at the call site rather that in the constructor body so that we
+ /// can perform *static* analysis errors/warnings rather than only dynamic
+ /// ones from the type pararameters passed in to the constructors. This also
+ /// performs all checks for the instantiated class and all of its supertypes
+ /// (extended and inherited) at this single call site because interface type
+ /// variable constraints (when applicable) need to be checked but will not
+ /// have a constructor body that gets inlined to execute.
+ bool _checkAllTypeVariableBounds(ConstructorEntity constructor,
+ InterfaceType type, SourceInformation sourceInformation) {
+ if (!options.enableTypeAssertions) return false;
+
+ // This map keeps track of what checks we perform as we walk up the
+ // inheritance chain so that we don't check the same thing more than once.
+ Map<DartType, Set<DartType>> seenChecksMap =
+ new Map<DartType, Set<DartType>>();
+ bool knownInvalidBounds = false;
+
+ void _addTypeVariableBoundCheck(InterfaceType instance,
+ DartType typeArgument, TypeVariableType typeVariable, DartType bound) {
+ if (knownInvalidBounds) return;
+
+ int subtypeRelation = types.computeSubtypeRelation(typeArgument, bound);
+ if (subtypeRelation == DartTypes.IS_SUBTYPE) return;
+
+ String message = "Can't create an instance of malbounded type '$type': "
+ "'${typeArgument}' is not a subtype of bound '${bound}' for "
+ "type variable '${typeVariable}' of type "
+ "${type == instance
+ ? "'${types.getThisType(type.element)}'"
+ : "'${types.getThisType(instance.element)}' on the supertype "
+ "'${instance}' of '${type}'"
+ }.";
+ if (subtypeRelation == DartTypes.NOT_SUBTYPE) {
+ generateTypeError(message, sourceInformation);
+ knownInvalidBounds = true;
+ return;
+ } else if (subtypeRelation == DartTypes.MAYBE_SUBTYPE) {
+ Set<DartType> seenChecks =
+ seenChecksMap.putIfAbsent(typeArgument, () => new Set<DartType>());
+ if (!seenChecks.contains(bound)) {
+ seenChecks.add(bound);
+ _assertIsSubtype(typeArgument, bound, message);
+ }
+ }
+ }
+
+ types.checkTypeVariableBounds(type, _addTypeVariableBoundCheck);
+ if (knownInvalidBounds) {
+ return true;
+ }
+ for (InterfaceType supertype
+ in types.getSupertypes(constructor.enclosingClass)) {
+ InterfaceType instance = types.asInstanceOf(type, supertype.element);
+ types.checkTypeVariableBounds(instance, _addTypeVariableBoundCheck);
+ if (knownInvalidBounds) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ void _assertIsSubtype(DartType subtype, DartType supertype, String message) {
+ HInstruction subtypeInstruction = typeBuilder.analyzeTypeArgument(
+ localsHandler.substInContext(subtype), sourceElement);
+ HInstruction supertypeInstruction = typeBuilder.analyzeTypeArgument(
+ localsHandler.substInContext(supertype), sourceElement);
+ HInstruction messageInstruction =
+ graph.addConstantString(message, closedWorld);
+ FunctionEntity element = commonElements.assertIsSubtype;
+ var inputs = <HInstruction>[
+ subtypeInstruction,
+ supertypeInstruction,
+ messageInstruction
+ ];
+ HInstruction assertIsSubtype =
+ new HInvokeStatic(element, inputs, subtypeInstruction.instructionType);
+ registry?.registerTypeVariableBoundsSubtypeCheck(subtype, supertype);
+ add(assertIsSubtype);
+ }
+
@override
void visitConstructorInvocation(ir.ConstructorInvocation node) {
SourceInformation sourceInformation =
@@ -3911,6 +4012,15 @@
}
ConstructorEntity constructor = _elementMap.getConstructor(target);
+ ClassEntity cls = constructor.enclosingClass;
+ TypeMask typeMask = new TypeMask.nonNullExact(cls, closedWorld);
+ InterfaceType instanceType = _elementMap.createInterfaceType(
+ target.enclosingClass, node.arguments.types);
+
+ if (_checkAllTypeVariableBounds(
+ constructor, instanceType, sourceInformation)) {
+ return;
+ }
// TODO(sra): For JS-interop targets, process arguments differently.
List<HInstruction> arguments = <HInstruction>[];
@@ -3925,17 +4035,14 @@
if (commonElements.isSymbolConstructor(constructor)) {
constructor = commonElements.symbolValidatedConstructor;
}
- ClassEntity cls = constructor.enclosingClass;
if (closedWorld.rtiNeed.classNeedsRti(cls)) {
_addTypeArguments(arguments, node.arguments, sourceInformation);
}
- TypeMask typeMask = new TypeMask.nonNullExact(cls, closedWorld);
- InterfaceType type = _elementMap.createInterfaceType(
- target.enclosingClass, node.arguments.types);
- addImplicitInstantiation(type);
+ instanceType = localsHandler.substInContext(instanceType);
+ addImplicitInstantiation(instanceType);
_pushStaticInvocation(constructor, arguments, typeMask,
- sourceInformation: sourceInformation);
- removeImplicitInstantiation(type);
+ sourceInformation: sourceInformation, instanceType: instanceType);
+ removeImplicitInstantiation(instanceType);
}
@override
@@ -4325,7 +4432,8 @@
}
void doInlining() {
- registry.registerStaticUse(new StaticUse.inlining(function));
+ registry
+ .registerStaticUse(new StaticUse.inlining(function, instanceType));
// Add an explicit null check on the receiver before doing the
// inlining. We use [element] to get the same name in the
@@ -4415,7 +4523,7 @@
_worldBuilder.forEachParameter(function,
(DartType type, String name, ConstantValue defaultValue) {
if (index <= parameterStructure.positionalParameters) {
- if (index <= providedArguments.length) {
+ if (index < providedArguments.length) {
compiledArguments[index] = providedArguments[index];
} else {
assert(defaultValue != null,
@@ -4578,6 +4686,10 @@
case MemberKind.constructor:
buildConstructor(definition.node);
return;
+ case MemberKind.constructorBody:
+ ir.Constructor constructor = definition.node;
+ constructor.function.body.accept(this);
+ return;
case MemberKind.regular:
ir.Node node = definition.node;
if (node is ir.Constructor) {
@@ -4665,7 +4777,7 @@
class InlineWeeder extends ir.Visitor {
// Invariant: *INSIDE_LOOP* > *OUTSIDE_LOOP*
- static const INLINING_NODES_OUTSIDE_LOOP = 18;
+ static const INLINING_NODES_OUTSIDE_LOOP = 15;
static const INLINING_NODES_OUTSIDE_LOOP_ARG_FACTOR = 3;
static const INLINING_NODES_INSIDE_LOOP = 42;
static const INLINING_NODES_INSIDE_LOOP_ARG_FACTOR = 4;
@@ -4683,19 +4795,34 @@
FunctionEntity function, int maxInliningNodes,
{bool allowLoops: false, bool enableUserAssertions: null}) {
// TODO(redemption): Implement inlining heuristic.
- MemberDefinition memberDefinition =
- elementMap.getMemberDefinition(function);
- InlineWeeder visitor = new InlineWeeder();
- memberDefinition.node.accept(visitor);
+ InlineWeeder visitor = new InlineWeeder(maxInliningNodes, allowLoops);
+ ir.FunctionNode node = getFunctionNode(elementMap, function);
+ node.accept(visitor);
return visitor.tooDifficultReason;
}
+ final int maxInliningNodes; // `null` for unbounded.
+ final bool allowLoops;
+
bool seenReturn = false;
+ int nodeCount = 0;
String tooDifficultReason;
bool get tooDifficult => tooDifficultReason != null;
+ InlineWeeder(this.maxInliningNodes, this.allowLoops);
+
+ bool registerNode() {
+ if (maxInliningNodes == null) return true;
+ if (nodeCount++ > maxInliningNodes) {
+ tooDifficultReason = 'too many nodes';
+ return false;
+ }
+ return true;
+ }
+
defaultNode(ir.Node node) {
if (tooDifficult) return;
+ if (!registerNode()) return;
if (seenReturn) {
tooDifficultReason = 'code after return';
return;
@@ -4705,7 +4832,7 @@
visitReturnStatement(ir.ReturnStatement node) {
if (seenReturn) {
- tooDifficultReason = 'multiple returns';
+ tooDifficultReason = 'code after return';
} else {
seenReturn = true;
}
@@ -4713,20 +4840,61 @@
visitThrow(ir.Throw node) {
if (seenReturn) {
- tooDifficultReason = 'multiple returns';
- } else {
- seenReturn = true;
+ tooDifficultReason = 'code after return';
}
}
+ _handleLoop() {
+ // It's actually not difficult to inline a method with a loop, but
+ // our measurements show that it's currently better to not inline a
+ // method that contains a loop.
+ if (!allowLoops) tooDifficultReason = 'loop';
+ // TODO(johnniwinther): Shouldn't the loop body have been counted here? It
+ // isn't in the AST based inline weeder.
+ }
+
+ visitForStatement(ir.ForStatement node) {
+ _handleLoop();
+ }
+
+ visitForInStatement(ir.ForInStatement node) {
+ _handleLoop();
+ }
+
+ visitWhileStatement(ir.WhileStatement node) {
+ _handleLoop();
+ }
+
+ visitDoStatement(ir.DoStatement node) {
+ _handleLoop();
+ }
+
visitTryCatch(ir.TryCatch node) {
if (tooDifficult) return;
- tooDifficultReason = 'try/catch';
+ tooDifficultReason = 'try';
}
visitTryFinally(ir.TryFinally node) {
if (tooDifficult) return;
- tooDifficultReason = 'try/finally';
+ tooDifficultReason = 'try';
+ }
+
+ visitFunctionExpression(ir.FunctionExpression node) {
+ if (!registerNode()) return;
+ tooDifficultReason = 'closure';
+ }
+
+ visitFunctionDeclaration(ir.FunctionDeclaration node) {
+ if (!registerNode()) return;
+ tooDifficultReason = 'closure';
+ }
+
+ visitFunctionNode(ir.FunctionNode node) {
+ if (node.asyncMarker != ir.AsyncMarker.Sync) {
+ tooDifficultReason = 'async/await';
+ return;
+ }
+ node.visitChildren(this);
}
}
diff --git a/pkg/compiler/lib/src/ssa/optimize.dart b/pkg/compiler/lib/src/ssa/optimize.dart
index f122851..fdc4754 100644
--- a/pkg/compiler/lib/src/ssa/optimize.dart
+++ b/pkg/compiler/lib/src/ssa/optimize.dart
@@ -2668,6 +2668,7 @@
// Pure operations that do not escape their inputs.
void visitBinaryArithmetic(HBinaryArithmetic instruction) {}
+ void visitBoundsCheck(HBoundsCheck instruction) {}
void visitConstant(HConstant instruction) {}
void visitIf(HIf instruction) {}
void visitInterceptor(HInterceptor instruction) {}
@@ -2918,21 +2919,25 @@
// Don't always create phis for HGetLength. The phi confuses array bounds
// check elimination and the resulting variable-heavy code probably is
// confusing for JavaScript VMs. In practice, this mostly affects the
- // expansion of for-in loops on Arrays, so we partially match the
- // expression
+ // expansion of for-in loops on Arrays, so we match the expression
//
// checkConcurrentModificationError(array.length == _end, array)
//
- // starting with the HGetLength of the array.length.
+ // starting with the HGetLength of the `array.length`, in the case where
+ // `array.length` is not used elsewhere (i.e. not already optimized to use
+ // a previous use, in the loop condition).
//
// TODO(sra): Figure out a better way ensure 'nice' loop code.
// TODO(22407): The phi would not be so bad if it did not confuse bounds
// check elimination.
// TODO(25437): We could add a phi if we undid the harmful cases.
- for (var user in second.usedBy) {
+ if (second.usedBy.length == 1) {
+ var user = second.usedBy.single;
if (user is HIdentity && user.usedBy.length == 1) {
HInstruction user2 = user.usedBy.single;
- if (user2 is HInvokeStatic) {
+ if (user2 is HInvokeStatic &&
+ user2.element ==
+ closedWorld.commonElements.checkConcurrentModificationError) {
return null;
}
}
@@ -2976,12 +2981,31 @@
bool isNonEscapingUse(HInstruction use) {
if (use is HReturn) return true; // Escapes, but so does control.
if (use is HFieldGet) return true;
- if (use is HFieldSet &&
- use.receiver.nonCheck() == instruction &&
- use.value.nonCheck() != instruction) {
- return true;
+ if (use is HFieldSet) {
+ return use.value.nonCheck() != instruction;
}
if (use is HTypeInfoReadVariable) return true;
+ if (use is HGetLength) return true;
+ if (use is HBoundsCheck) return true;
+ if (use is HIndex) return true;
+ if (use is HIndexAssign) {
+ return use.value.nonCheck() != instruction;
+ }
+ if (use is HInterceptor) return true;
+ if (use is HInvokeDynamicMethod) {
+ MemberEntity element = use.element;
+ if (element != null) {
+ if (element == closedWorld.commonElements.jsArrayAdd) {
+ return use.inputs.last != instruction;
+ }
+ }
+ }
+ if (use is HInvokeStatic) {
+ if (use.element ==
+ closedWorld.commonElements.checkConcurrentModificationError)
+ return true;
+ }
+
return false;
}
diff --git a/pkg/compiler/lib/src/universe/call_structure.dart b/pkg/compiler/lib/src/universe/call_structure.dart
index e40ceab..b05f853 100644
--- a/pkg/compiler/lib/src/universe/call_structure.dart
+++ b/pkg/compiler/lib/src/universe/call_structure.dart
@@ -28,13 +28,18 @@
/// The number of positional argument of the call.
int get positionalArgumentCount => argumentCount;
- const CallStructure.unnamed(this.argumentCount);
+ /// The number of type argument of the call.
+ final int typeArgumentCount;
- factory CallStructure(int argumentCount, [List<String> namedArguments]) {
+ const CallStructure.unnamed(this.argumentCount, [this.typeArgumentCount = 0]);
+
+ factory CallStructure(int argumentCount,
+ [List<String> namedArguments, int typeArgumentCount = 0]) {
if (namedArguments == null || namedArguments.isEmpty) {
- return new CallStructure.unnamed(argumentCount);
+ return new CallStructure.unnamed(argumentCount, typeArgumentCount);
}
- return new NamedCallStructure(argumentCount, namedArguments);
+ return new NamedCallStructure(
+ argumentCount, namedArguments, typeArgumentCount);
}
/// `true` if this call has named arguments.
@@ -50,7 +55,14 @@
List<String> getOrderedNamedArguments() => const <String>[];
/// A description of the argument structure.
- String structureToString() => 'arity=$argumentCount';
+ String structureToString() {
+ StringBuffer sb = new StringBuffer();
+ sb.write('arity=$argumentCount');
+ if (typeArgumentCount != 0) {
+ sb.write(', types=$typeArgumentCount');
+ }
+ return sb.toString();
+ }
String toString() => 'CallStructure(${structureToString()})';
@@ -60,13 +72,16 @@
if (identical(this, other)) return true;
return this.argumentCount == other.argumentCount &&
this.namedArgumentCount == other.namedArgumentCount &&
+ this.typeArgumentCount == other.typeArgumentCount &&
sameNames(this.namedArguments, other.namedArguments);
}
// TODO(johnniwinther): Cache hash code?
int get hashCode {
- return Hashing.listHash(namedArguments,
- Hashing.objectHash(argumentCount, namedArguments.length));
+ return Hashing.listHash(
+ namedArguments,
+ Hashing.objectHash(argumentCount,
+ Hashing.objectHash(typeArgumentCount, namedArguments.length)));
}
bool operator ==(other) {
@@ -80,6 +95,9 @@
int parameterCount = requiredParameterCount + optionalParameterCount;
if (argumentCount > parameterCount) return false;
if (positionalArgumentCount < requiredParameterCount) return false;
+ if (typeArgumentCount != 0) {
+ if (typeArgumentCount != parameters.typeParameters) return false;
+ }
if (parameters.namedParameters.isEmpty) {
// We have already checked that the number of arguments are
@@ -124,8 +142,9 @@
final List<String> namedArguments;
final List<String> _orderedNamedArguments = <String>[];
- NamedCallStructure(int argumentCount, this.namedArguments)
- : super.unnamed(argumentCount) {
+ NamedCallStructure(
+ int argumentCount, this.namedArguments, int typeArgumentCount)
+ : super.unnamed(argumentCount, typeArgumentCount) {
assert(namedArguments.isNotEmpty);
}
@@ -154,6 +173,11 @@
@override
String structureToString() {
- return 'arity=$argumentCount, named=[${namedArguments.join(', ')}]';
+ StringBuffer sb = new StringBuffer();
+ sb.write('arity=$argumentCount, named=[${namedArguments.join(', ')}]');
+ if (typeArgumentCount != 0) {
+ sb.write(', types=$typeArgumentCount');
+ }
+ return sb.toString();
}
}
diff --git a/pkg/compiler/lib/src/universe/use.dart b/pkg/compiler/lib/src/universe/use.dart
index b1bb0d1..e172133 100644
--- a/pkg/compiler/lib/src/universe/use.dart
+++ b/pkg/compiler/lib/src/universe/use.dart
@@ -405,8 +405,10 @@
}
/// Inlining of [element].
- factory StaticUse.inlining(FunctionEntity element) {
- return new StaticUse.internal(element, StaticUseKind.INLINING);
+ factory StaticUse.inlining(
+ FunctionEntity element, InterfaceType instanceType) {
+ return new StaticUse.internal(
+ element, StaticUseKind.INLINING, instanceType);
}
bool operator ==(other) {
diff --git a/pkg/compiler/tool/status_files/update_from_log.dart b/pkg/compiler/tool/status_files/update_from_log.dart
index 9f875fa..c2fc283 100644
--- a/pkg/compiler/tool/status_files/update_from_log.dart
+++ b/pkg/compiler/tool/status_files/update_from_log.dart
@@ -21,7 +21,7 @@
///
/// and:
///
-/// [ $compiler == dart2js && $dart2js_with_kernel && $checked ]
+/// [ $compiler == dart2js && $checked && $dart2js_with_kernel ]
library compiler.status_files.update_from_log;
import 'dart:io';
@@ -36,7 +36,7 @@
'fast-startup':
r'[ $compiler == dart2js && $dart2js_with_kernel && $fast_startup ]',
'checked-mode':
- r'[ $compiler == dart2js && $dart2js_with_kernel && $checked ]',
+ r'[ $compiler == dart2js && $checked && $dart2js_with_kernel ]',
};
final dart2jsStatusFiles = {
diff --git a/pkg/dart_internal/LICENSE b/pkg/dart_internal/LICENSE
new file mode 100644
index 0000000..389ce98
--- /dev/null
+++ b/pkg/dart_internal/LICENSE
@@ -0,0 +1,26 @@
+Copyright 2017, the Dart project authors. All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/pkg/dart_internal/analysis_options.yaml b/pkg/dart_internal/analysis_options.yaml
new file mode 100644
index 0000000..1a46de2
--- /dev/null
+++ b/pkg/dart_internal/analysis_options.yaml
@@ -0,0 +1,3 @@
+analyzer:
+ strong-mode:
+ implicit-casts: false
diff --git a/pkg/dart_internal/lib/extract_type_arguments.dart b/pkg/dart_internal/lib/extract_type_arguments.dart
new file mode 100644
index 0000000..7c93e5f
--- /dev/null
+++ b/pkg/dart_internal/lib/extract_type_arguments.dart
@@ -0,0 +1,43 @@
+// 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.
+
+// The actual functionality exposed by this package is implemented in
+// "dart:_internal" since it is specific to each platform's runtime
+// implementation. This package exists as a shell to expose that internal API
+// to outside code.
+//
+// Only this exact special file is allowed to import "dart:_internal" without
+// causing a compile error.
+import 'dart:_internal' as internal;
+
+/// Given an [Iterable], invokes [extract], passing the [iterable]'s type
+/// argument as the type argument to the generic function.
+///
+/// Example:
+///
+/// ```dart
+/// Object iterable = <int>[];
+/// print(extractIterableTypeArgument(iterable, <T>() => new Set<T>());
+/// // Prints "Instance of 'Set<int>'".
+/// ```
+Object extractIterableTypeArgument(
+ Iterable iterable, Object Function<T>() extract) =>
+ internal.extractTypeArguments<Iterable>(iterable, extract);
+
+/// Given a [Map], invokes [extract], passing the [map]'s key and value type
+/// arguments as the type arguments to the generic function.
+///
+/// Example:
+///
+/// ```dart
+/// class Two<A, B> {}
+///
+/// main() {
+/// Object map = <String, int>{};
+/// print(extractMapTypeArguments(map, <K, V>() => new Two<K, V>());
+/// // Prints "Instance of 'Two<String, int>'".
+/// }
+/// ```
+Object extractMapTypeArguments(Map map, Object Function<K, V>() extract) =>
+ internal.extractTypeArguments<Map>(map, extract);
diff --git a/pkg/dart_internal/pubspec.yaml b/pkg/dart_internal/pubspec.yaml
new file mode 100644
index 0000000..49cb8dac
--- /dev/null
+++ b/pkg/dart_internal/pubspec.yaml
@@ -0,0 +1,18 @@
+name: dart_internal
+version: 0.1.0-dev
+author: "Dart Team <misc@dartlang.org>"
+homepage: http://www.dartlang.org
+description: >
+ This package is not intended for any external use. Basically, if you don't
+ personally know exactly what it's for, you're probably not the intended user.
+
+ It contains functionality to enable some internal Google code to transition
+ to strong mode before some anticipated language features are in place. In
+ particular, it provides an API to solve the problem: "Given an object some
+ generic type A, how do I construct an instance of generic type B with the
+ same type argument(s)?"
+publish_to:
+ # This package is not intended to be used externally (or, at least, not yet).
+ none
+environment:
+ sdk: ">=2.0.0 <2.0.0"
diff --git a/pkg/dev_compiler/bin/dartdevk.dart b/pkg/dev_compiler/bin/dartdevk.dart
index 5f5f86c..7a212de 100755
--- a/pkg/dev_compiler/bin/dartdevk.dart
+++ b/pkg/dev_compiler/bin/dartdevk.dart
@@ -33,7 +33,7 @@
String line;
fe.InitializedCompilerState compilerState;
- while ((line = stdin.readLineSync(encoding: UTF8)).isNotEmpty) {
+ while ((line = stdin.readLineSync(encoding: UTF8))?.isNotEmpty == true) {
tests++;
var args = batchArgs.toList()..addAll(line.split(new RegExp(r'\s+')));
diff --git a/pkg/dev_compiler/lib/src/analyzer/code_generator.dart b/pkg/dev_compiler/lib/src/analyzer/code_generator.dart
index 1b60aec..c9bd25e 100644
--- a/pkg/dev_compiler/lib/src/analyzer/code_generator.dart
+++ b/pkg/dev_compiler/lib/src/analyzer/code_generator.dart
@@ -423,7 +423,8 @@
// TODO(jacobr): we could specify a short library name instead of the
// full library uri if we wanted to save space.
properties.add(new JS.Property(
- js.string(jsLibraryDebuggerName(_libraryRoot, library)), value));
+ js.escapedString(jsLibraryDebuggerName(_libraryRoot, library)),
+ value));
});
// Track the module name for each library in the module.
diff --git a/pkg/dev_compiler/lib/src/kernel/command.dart b/pkg/dev_compiler/lib/src/kernel/command.dart
index ea92956..7c2f441 100644
--- a/pkg/dev_compiler/lib/src/kernel/command.dart
+++ b/pkg/dev_compiler/lib/src/kernel/command.dart
@@ -51,6 +51,20 @@
'Usage: $_binaryName [options...] <sources...>\n\n'
'${ddcArgParser.usage}';
+Uri stringToUri(String s, {bool windows}) {
+ windows ??= Platform.isWindows;
+ if (windows) {
+ s = s.replaceAll("\\", "/");
+ }
+
+ Uri result = Uri.base.resolve(s);
+ if (windows && result.scheme.length == 1) {
+ // Assume c: or similar --- interpret as file path.
+ return new Uri.file(s, windows: true);
+ }
+ return result;
+}
+
class CompilerResult {
final fe.InitializedCompilerState compilerState;
final bool result;
@@ -87,7 +101,7 @@
var ddcPath = path.dirname(path.dirname(path.fromUri(Platform.script)));
var summaryUris =
- (argResults['summary'] as List<String>).map(Uri.parse).toList();
+ (argResults['summary'] as List<String>).map(stringToUri).toList();
var sdkSummaryPath = argResults['dart-sdk-summary'] ??
path.absolute(ddcPath, 'gen', 'sdk', 'ddc_sdk.dill');
@@ -95,7 +109,7 @@
var packageFile =
argResults['packages'] ?? path.absolute(ddcPath, '..', '..', '.packages');
- var inputs = argResults.rest.map(Uri.base.resolve).toList();
+ var inputs = argResults.rest.map(stringToUri).toList();
var succeeded = true;
void errorHandler(fe.CompilationMessage error) {
diff --git a/pkg/dev_compiler/lib/src/kernel/source_map_printer.dart b/pkg/dev_compiler/lib/src/kernel/source_map_printer.dart
index 2a9c957..dafae50 100644
--- a/pkg/dev_compiler/lib/src/kernel/source_map_printer.dart
+++ b/pkg/dev_compiler/lib/src/kernel/source_map_printer.dart
@@ -112,7 +112,7 @@
FileUriNode fileParent = parentsStack.last;
Program p = fileParent.enclosingProgram;
- String fileUri = fileParent.fileUri;
+ Uri fileUri = fileParent.fileUri;
var loc = p.getLocation(fileUri, offset);
_previousLine = _line;
diff --git a/pkg/dev_compiler/test/codegen/async_helper.dart b/pkg/dev_compiler/test/codegen/async_helper.dart
index bfde1a4..49e33ca 100644
--- a/pkg/dev_compiler/test/codegen/async_helper.dart
+++ b/pkg/dev_compiler/test/codegen/async_helper.dart
@@ -35,7 +35,7 @@
}
/// Implementation method called from language_tests.js.
-/// Registers the callback that will be used complete the test.
+/// Registers the callback that will be used to complete the test.
void asyncTestInitialize(_Action0 callback) {
_asyncLevel = 0;
_initialized = false;
@@ -47,7 +47,10 @@
bool get asyncTestStarted => _initialized;
/// Call this method before an asynchronous test is created.
-void asyncStart() {
+///
+/// If [count] is provided, expect [count] [asyncEnd] calls instead of just one.
+void asyncStart([int count = 1]) {
+ if (count <= 0) return;
if (_initialized && _asyncLevel == 0) {
throw _buildException('asyncStart() was called even though we are done '
'with testing.');
@@ -61,7 +64,7 @@
print('unittest-suite-wait-for-done');
_initialized = true;
}
- _asyncLevel++;
+ _asyncLevel += count;
}
/// Call this after an asynchronous test has ended successfully.
diff --git a/pkg/dev_compiler/test/sourcemap/common.dart b/pkg/dev_compiler/test/sourcemap/common.dart
index 967c7ad..4945d20 100644
--- a/pkg/dev_compiler/test/sourcemap/common.dart
+++ b/pkg/dev_compiler/test/sourcemap/common.dart
@@ -64,10 +64,9 @@
String get name => "step";
Future<Result<Data>> run(Data data, ChainContext context) async {
- var outWrapperPathRelative =
- path.relative(path.join(data.outDir.path, "wrapper.js"));
- ProcessResult runResult = runD8AndStep(
- data.outDir.path, data.code, ['--module', outWrapperPathRelative]);
+ var outWrapperPath = path.join(data.outDir.path, "wrapper.js");
+ ProcessResult runResult =
+ runD8AndStep(data.outDir.path, data.code, ['--module', outWrapperPath]);
data.d8Output = runResult.stdout.split("\n");
return pass(data);
}
@@ -99,3 +98,7 @@
String get dartExecutable {
return Platform.resolvedExecutable;
}
+
+String uriPathForwardSlashed(Uri uri) {
+ return uri.toFilePath().replaceAll("\\", "/");
+}
diff --git a/pkg/dev_compiler/test/sourcemap/ddc_common.dart b/pkg/dev_compiler/test/sourcemap/ddc_common.dart
index aa14d54..6207547 100644
--- a/pkg/dev_compiler/test/sourcemap/ddc_common.dart
+++ b/pkg/dev_compiler/test/sourcemap/ddc_common.dart
@@ -8,12 +8,12 @@
import 'package:sourcemap_testing/src/annotated_code_helper.dart';
import 'package:sourcemap_testing/src/stacktrace_helper.dart';
import 'package:testing/testing.dart';
+import 'package:sourcemap_testing/src/stepping_helper.dart';
import 'common.dart';
abstract class DdcRunner {
- ProcessResult runDDC(String ddcDir, String inputFile, String outputFile,
- String outWrapperPath);
+ ProcessResult runDDC(Uri inputFile, Uri outputFile, Uri outWrapperPath);
}
class Compile extends Step<Data, Data, ChainContext> {
@@ -30,14 +30,14 @@
data.outDir = await Directory.systemTemp.createTemp("ddc_step_test");
data.code = new AnnotatedCode.fromText(
new File(inputFile).readAsStringSync(), commentStart, commentEnd);
- var testFile = "${data.outDir.path}/test.dart";
- new File(testFile).writeAsStringSync(data.code.sourceCode);
- var outputPath = data.outDir.path;
+ var outDirUri = data.outDir.uri;
+ var testFile = outDirUri.resolve("test.dart");
+ new File.fromUri(testFile).writeAsStringSync(data.code.sourceCode);
var outputFilename = "js.js";
- var outputFile = path.join(outputPath, outputFilename);
- var outWrapperPath = path.join(outputPath, "wrapper.js");
+ var outputFile = outDirUri.resolve(outputFilename);
+ var outWrapperPath = outDirUri.resolve("wrapper.js");
- ddcRunner.runDDC(getDdcDir().path, testFile, outputFile, outWrapperPath);
+ ddcRunner.runDDC(testFile, outputFile, outWrapperPath);
return pass(data);
}
@@ -65,17 +65,21 @@
}
Future<bool> _compile(String input, String output) async {
- var outWrapperPath = _getWrapperPathFromDirectoryFile(input);
- ddcRunner.runDDC(getDdcDir().path, input, output, outWrapperPath);
+ var outWrapperPath = _getWrapperPathFromDirectoryFile(new Uri.file(input));
+ ddcRunner.runDDC(new Uri.file(input), new Uri.file(output), outWrapperPath);
return true;
}
- List<String> _getPreambles(input, output) {
- return ['--module', _getWrapperPathFromDirectoryFile(input), '--'];
+ List<String> _getPreambles(String input, String output) {
+ return [
+ '--module',
+ _getWrapperPathFromDirectoryFile(new Uri.file(input)).toFilePath(),
+ '--'
+ ];
}
- String _getWrapperPathFromDirectoryFile(input) {
- return new File.fromUri(new File(input).uri.resolve("wrapper.js")).path;
+ Uri _getWrapperPathFromDirectoryFile(Uri input) {
+ return input.resolve("wrapper.js");
}
String _convertName(String name) {
@@ -111,13 +115,13 @@
return _cachedDdcDir ??= search();
}
-String getWrapperContent(Uri jsSdkPath, String inputFileName, Uri outputFile) {
- assert(!jsSdkPath.isAbsolute);
- assert(!outputFile.isAbsolute);
+String getWrapperContent(
+ Uri jsSdkPath, String inputFileNameNoExt, String outputFilename) {
+ assert(jsSdkPath.isAbsolute);
return """
- import { dart, _isolate_helper } from '$jsSdkPath';
- import { $inputFileName } from '$outputFile';
- let main = $inputFileName.main;
+ import { dart, _isolate_helper } from '${uriPathForwardSlashed(jsSdkPath)}';
+ import { $inputFileNameNoExt } from '$outputFilename';
+ let main = $inputFileNameNoExt.main;
dart.ignoreWhitelistedErrors(false);
try {
_isolate_helper.startRootIsolate(main, []);
@@ -127,24 +131,26 @@
""";
}
-void createHtmlWrapper(String ddcDir, File sdkJsFile, String outputFile,
- String jsContent, Uri outFileRelative, String outDir) {
+void createHtmlWrapper(File sdkJsFile, Uri outputFile, String jsContent,
+ String outputFilename, Uri outDir) {
// For debugging via HTML, Chrome and ./tools/testing/dart/http_server.dart.
- String sdkPath = new File(ddcDir).parent.parent.path;
+ Directory sdkPath = sdkRoot;
String jsRootDart =
- "/root_dart/${new File(path.relative(sdkJsFile.path, from: sdkPath))
+ "/root_dart/${new File(path.relative(sdkJsFile.path, from: sdkPath.path))
.uri}";
- new File(outputFile + ".html.js").writeAsStringSync(
- jsContent.replaceFirst("from 'dart_sdk'", "from '$jsRootDart'"));
- new File(outputFile + ".html.html").writeAsStringSync(getWrapperHtmlContent(
- jsRootDart, "/root_build/$outFileRelative.html.js"));
+ new File.fromUri(outputFile.resolve("$outputFilename.html.js"))
+ .writeAsStringSync(
+ jsContent.replaceFirst("from 'dart_sdk'", "from '$jsRootDart'"));
+ new File.fromUri(outputFile.resolve("$outputFilename.html.html"))
+ .writeAsStringSync(getWrapperHtmlContent(
+ jsRootDart, "/root_build/$outputFilename.html.js"));
print("You should now be able to run\n\n"
- "dart $sdkPath/tools/testing/dart/http_server.dart -p 39550 "
- "--network 127.0.0.1"
- "--build-directory=$outDir"
+ "dart ${sdkRoot.path}/tools/testing/dart/http_server.dart -p 39550 "
+ "--network 127.0.0.1 "
+ "--build-directory=${outDir.toFilePath()}"
"\n\nand go to\n\n"
- "http://127.0.0.1:39550/root_build/$outFileRelative.html.html"
+ "http://127.0.0.1:39550/root_build/$outputFilename.html.html"
"\n\nto step through via the browser.");
}
diff --git a/pkg/dev_compiler/test/sourcemap/sourcemaps_ddc_suite.dart b/pkg/dev_compiler/test/sourcemap/sourcemaps_ddc_suite.dart
index da81603..513b64b 100644
--- a/pkg/dev_compiler/test/sourcemap/sourcemaps_ddc_suite.dart
+++ b/pkg/dev_compiler/test/sourcemap/sourcemaps_ddc_suite.dart
@@ -4,7 +4,6 @@
import 'dart:io';
-import 'package:path/path.dart' as path;
import 'package:testing/testing.dart';
import 'common.dart';
@@ -38,30 +37,30 @@
const RunDdc([this.debugging = false]);
- ProcessResult runDDC(String ddcDir, String inputFile, String outputFile,
- String outWrapperPath) {
- var outDir = path.dirname(outWrapperPath);
- var outFileRelative = new File(path.relative(outputFile, from: outDir)).uri;
+ ProcessResult runDDC(Uri inputFile, Uri outputFile, Uri outWrapperFile) {
+ Uri outDir = outputFile.resolve(".");
+ String outputFilename = outputFile.pathSegments.last;
File sdkJsFile = findInOutDir("gen/utils/dartdevc/js/es6/dart_sdk.js");
- var jsSdkPath = new File(path.relative(sdkJsFile.path, from: outDir)).uri;
+ var jsSdkPath = sdkJsFile.uri;
File ddcSdkSummary = findInOutDir("gen/utils/dartdevc/ddc_sdk.sum");
- var ddc = path.join(ddcDir, "bin/dartdevc.dart");
- if (!new File(ddc).existsSync()) throw "Couldn't find 'bin/dartdevc.dart'";
+ var ddc = getDdcDir().uri.resolve("bin/dartdevc.dart");
+ if (!new File.fromUri(ddc).existsSync())
+ throw "Couldn't find 'bin/dartdevc.dart'";
- var args = [
- ddc,
+ List<String> args = <String>[
+ ddc.toFilePath(),
"--modules=es6",
"--dart-sdk-summary=${ddcSdkSummary.path}",
"--library-root",
- "$outDir",
+ outDir.toFilePath(),
"--module-root",
- "$outDir",
+ outDir.toFilePath(),
"-o",
- "$outputFile",
- "$inputFile"
+ outputFile.toFilePath(),
+ inputFile.toFilePath()
];
ProcessResult runResult = Process.runSync(dartExecutable, args);
if (runResult.exitCode != 0) {
@@ -72,18 +71,20 @@
"${args.reduce((value, element) => '$value "$element"')}";
}
- var jsContent = new File(outputFile).readAsStringSync();
- new File(outputFile).writeAsStringSync(
- jsContent.replaceFirst("from 'dart_sdk'", "from '$jsSdkPath'"));
+ var jsContent = new File.fromUri(outputFile).readAsStringSync();
+ new File.fromUri(outputFile).writeAsStringSync(jsContent.replaceFirst(
+ "from 'dart_sdk'", "from '${uriPathForwardSlashed(jsSdkPath)}'"));
if (debugging) {
createHtmlWrapper(
- ddcDir, sdkJsFile, outputFile, jsContent, outFileRelative, outDir);
+ sdkJsFile, outputFile, jsContent, outputFilename, outDir);
}
- var inputFileName = path.basenameWithoutExtension(inputFile);
- new File(outWrapperPath).writeAsStringSync(
- getWrapperContent(jsSdkPath, inputFileName, outFileRelative));
+ var inputFileName = inputFile.pathSegments.last;
+ var inputFileNameNoExt =
+ inputFileName.substring(0, inputFileName.lastIndexOf("."));
+ new File.fromUri(outWrapperFile).writeAsStringSync(
+ getWrapperContent(jsSdkPath, inputFileNameNoExt, outputFilename));
return runResult;
}
diff --git a/pkg/dev_compiler/test/sourcemap/sourcemaps_ddk_suite.dart b/pkg/dev_compiler/test/sourcemap/sourcemaps_ddk_suite.dart
index ae6d770..7bc4e79 100644
--- a/pkg/dev_compiler/test/sourcemap/sourcemaps_ddk_suite.dart
+++ b/pkg/dev_compiler/test/sourcemap/sourcemaps_ddk_suite.dart
@@ -4,7 +4,6 @@
import 'dart:io';
-import 'package:path/path.dart' as path;
import 'package:testing/testing.dart';
import 'common.dart';
@@ -38,26 +37,26 @@
const RunDdc([this.debugging = false]);
- ProcessResult runDDC(String ddcDir, String inputFile, String outputFile,
- String outWrapperPath) {
- var outDir = path.dirname(outWrapperPath);
- var outFileRelative = new File(path.relative(outputFile, from: outDir)).uri;
+ ProcessResult runDDC(Uri inputFile, Uri outputFile, Uri outWrapperFile) {
+ Uri outDir = outputFile.resolve(".");
+ String outputFilename = outputFile.pathSegments.last;
File sdkJsFile = findInOutDir("gen/utils/dartdevc/js/es6/dart_sdk.js");
- var jsSdkPath = new File(path.relative(sdkJsFile.path, from: outDir)).uri;
+ var jsSdkPath = sdkJsFile.uri;
File ddcSdkSummary = findInOutDir("gen/utils/dartdevc/ddc_sdk.dill");
- var ddc = path.join(ddcDir, "bin/dartdevk.dart");
- if (!new File(ddc).existsSync()) throw "Couldn't find 'bin/dartdevk.dart'";
+ var ddc = getDdcDir().uri.resolve("bin/dartdevk.dart");
+ if (!new File.fromUri(ddc).existsSync())
+ throw "Couldn't find 'bin/dartdevk.dart'";
- var args = [
- ddc,
+ List<String> args = <String>[
+ ddc.toFilePath(),
"--modules=es6",
"--dart-sdk-summary=${ddcSdkSummary.path}",
"-o",
- "$outputFile",
- "$inputFile"
+ outputFile.toFilePath(),
+ inputFile.toFilePath()
];
ProcessResult runResult = Process.runSync(dartExecutable, args);
if (runResult.exitCode != 0) {
@@ -68,18 +67,20 @@
"${args.reduce((value, element) => '$value "$element"')}";
}
- var jsContent = new File(outputFile).readAsStringSync();
- new File(outputFile).writeAsStringSync(
- jsContent.replaceFirst("from 'dart_sdk'", "from '$jsSdkPath'"));
+ var jsContent = new File.fromUri(outputFile).readAsStringSync();
+ new File.fromUri(outputFile).writeAsStringSync(jsContent.replaceFirst(
+ "from 'dart_sdk'", "from '${uriPathForwardSlashed(jsSdkPath)}'"));
if (debugging) {
createHtmlWrapper(
- ddcDir, sdkJsFile, outputFile, jsContent, outFileRelative, outDir);
+ sdkJsFile, outputFile, jsContent, outputFilename, outDir);
}
- var inputFileName = path.basenameWithoutExtension(inputFile);
- new File(outWrapperPath).writeAsStringSync(
- getWrapperContent(jsSdkPath, inputFileName, outFileRelative));
+ var inputFileName = inputFile.pathSegments.last;
+ var inputFileNameNoExt =
+ inputFileName.substring(0, inputFileName.lastIndexOf("."));
+ new File.fromUri(outWrapperFile).writeAsStringSync(
+ getWrapperContent(jsSdkPath, inputFileNameNoExt, outputFilename));
return runResult;
}
diff --git a/pkg/dev_compiler/test/sourcemap/testfiles/next_through_is_and_as_test.dart b/pkg/dev_compiler/test/sourcemap/testfiles/next_through_is_and_as_test.dart
index 2af352e..361e1f9 100644
--- a/pkg/dev_compiler/test/sourcemap/testfiles/next_through_is_and_as_test.dart
+++ b/pkg/dev_compiler/test/sourcemap/testfiles/next_through_is_and_as_test.dart
@@ -19,6 +19,7 @@
}
if (hex /*bc:9*/ is int) {
/*bc:10*/ print("hex is int");
+ // ignore: unnecessary_cast
int x = hex /*bc:11*/ as int;
if (x. /*bc:12*/ isEven) {
/*bc:13*/ print("it's even even!");
diff --git a/pkg/dev_compiler/test/sourcemap/testfiles/no_mapping_on_class_constructor_line.dart b/pkg/dev_compiler/test/sourcemap/testfiles/no_mapping_on_class_constructor_line.dart
index f262fe1..c06c0a5 100644
--- a/pkg/dev_compiler/test/sourcemap/testfiles/no_mapping_on_class_constructor_line.dart
+++ b/pkg/dev_compiler/test/sourcemap/testfiles/no_mapping_on_class_constructor_line.dart
@@ -3,6 +3,7 @@
// BSD-style license that can be found in the LICENSE file.
main() {
+ // ignore: unused_local_variable
Foo foo = new Foo();
}
diff --git a/pkg/dev_compiler/test/sourcemap/testfiles/no_mapping_on_class_named_constructor_line.dart b/pkg/dev_compiler/test/sourcemap/testfiles/no_mapping_on_class_named_constructor_line.dart
index a020110..1ee465e 100644
--- a/pkg/dev_compiler/test/sourcemap/testfiles/no_mapping_on_class_named_constructor_line.dart
+++ b/pkg/dev_compiler/test/sourcemap/testfiles/no_mapping_on_class_named_constructor_line.dart
@@ -3,6 +3,7 @@
// BSD-style license that can be found in the LICENSE file.
main() {
+ // ignore: unused_local_variable
Foo foo = new Foo.named();
}
diff --git a/pkg/dev_compiler/test/string_to_uri_test.dart b/pkg/dev_compiler/test/string_to_uri_test.dart
new file mode 100755
index 0000000..b27303f
--- /dev/null
+++ b/pkg/dev_compiler/test/string_to_uri_test.dart
@@ -0,0 +1,29 @@
+import 'dart:io';
+import 'package:expect/minitest.dart';
+import 'package:dev_compiler/src/kernel/command.dart';
+
+main(List<String> args) {
+ // Various URL schemes
+ expect(stringToUri("dart:io").toString(), "dart:io");
+ expect(stringToUri("package:expect/minitest.dart").toString(),
+ "package:expect/minitest.dart");
+ expect(stringToUri("foobar:whatnot").toString(), "foobar:whatnot");
+
+ // Full Windows path
+ expect(stringToUri("C:\\full\\windows\\path.foo", windows: true).toString(),
+ "file:///C:/full/windows/path.foo");
+ expect(stringToUri("C:/full/windows/path.foo", windows: true).toString(),
+ "file:///C:/full/windows/path.foo");
+
+ // Relative Windows path
+ expect(stringToUri("partial\\windows\\path.foo", windows: true).toString(),
+ "file://${Directory.current.path}/partial/windows/path.foo");
+
+ // Full Unix path
+ expect(stringToUri("/full/path/to/foo.bar", windows: false).toString(),
+ "file:///full/path/to/foo.bar");
+
+ // Relative Unix path
+ expect(stringToUri("partial/path/to/foo.bar", windows: false).toString(),
+ "file://${Directory.current.path}/partial/path/to/foo.bar");
+}
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/html/dart2js/html_dart2js.dart b/pkg/dev_compiler/tool/input_sdk/lib/html/dart2js/html_dart2js.dart
deleted file mode 100644
index 8f5a4f5..0000000
--- a/pkg/dev_compiler/tool/input_sdk/lib/html/dart2js/html_dart2js.dart
+++ /dev/null
@@ -1,46713 +0,0 @@
-/**
- * HTML elements and other resources for web-based applications that need to
- * interact with the browser and the DOM (Document Object Model).
- *
- * This library includes DOM element types, CSS styling, local storage,
- * media, speech, events, and more.
- * To get started,
- * check out the [Element] class, the base class for many of the HTML
- * DOM types.
- *
- * ## Other resources
- *
- * * If you've never written a web app before, try our
- * tutorials—[A Game of Darts](http://dartlang.org/docs/tutorials).
- *
- * * To see some web-based Dart apps in action and to play with the code,
- * download
- * [Dart Editor](http://www.dartlang.org/#get-started)
- * and run its built-in examples.
- *
- * * For even more examples, see
- * [Dart HTML5 Samples](https://github.com/dart-lang/dart-html5-samples)
- * on Github.
- */
-library dart.dom.html;
-
-import 'dart:async';
-import 'dart:collection';
-import 'dart:_internal' hide Symbol;
-import 'dart:html_common';
-import 'dart:indexed_db';
-import 'dart:isolate';
-import "dart:convert";
-import 'dart:math';
-import 'dart:_native_typed_data';
-import 'dart:typed_data';
-import 'dart:svg' as svg;
-import 'dart:svg' show Matrix;
-import 'dart:svg' show SvgSvgElement;
-import 'dart:web_audio' as web_audio;
-import 'dart:web_gl' as gl;
-import 'dart:web_gl' show RenderingContext, RenderingContext2;
-import 'dart:web_sql';
-import 'dart:_isolate_helper' show IsolateNatives;
-import 'dart:_foreign_helper' show JS, JS_INTERCEPTOR_CONSTANT;
-// 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.
-
-// DO NOT EDIT - unless you are editing documentation as per:
-// https://code.google.com/p/dart/wiki/ContributingHTMLDocumentation
-// Auto-generated dart:html library.
-
-// Not actually used, but imported since dart:html can generate these objects.
-import 'dart:_js_helper'
- show
- convertDartClosureToJS,
- Creates,
- JavaScriptIndexingBehavior,
- JSName,
- Native,
- Returns,
- ForceInline,
- findDispatchTagForInterceptorClass,
- setNativeSubclassDispatchRecord,
- makeLeafDispatchRecord,
- registerGlobalObject;
-import 'dart:_interceptors'
- show
- Interceptor,
- JSExtendableArray,
- JSUInt31,
- findInterceptorConstructorForType,
- findConstructorForNativeSubclassType,
- getNativeInterceptor,
- setDispatchProperty;
-
-export 'dart:math' show Rectangle, Point;
-
-/**
- * Top-level container for a web page, which is usually a browser tab or window.
- *
- * Each web page loaded in the browser has its own [Window], which is a
- * container for the web page.
- *
- * If the web page has any `<iframe>` elements, then each `<iframe>` has its own
- * [Window] object, which is accessible only to that `<iframe>`.
- *
- * See also:
- *
- * * [Window](https://developer.mozilla.org/en-US/docs/Web/API/window) from MDN.
- */
-Window get window => JS('Window', 'window');
-
-/**
- * Root node for all content in a web page.
- */
-HtmlDocument get document =>
- JS('returns:HtmlDocument;depends:none;effects:none;gvn:true', 'document');
-
-// Workaround for tags like <cite> that lack their own Element subclass --
-// Dart issue 1990.
-@Native("HTMLElement")
-class HtmlElement extends Element {
- factory HtmlElement() {
- throw new UnsupportedError("Not supported");
- }
-
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- HtmlElement.created() : super.created();
-}
-
-/**
- * Spawn a DOM isolate using the given URI in the same window.
- * This isolate is not concurrent. It runs on the browser thread
- * with full access to the DOM.
- * Note: this API is still evolving and may move to dart:isolate.
- */
-@Experimental()
-Future<Isolate> spawnDomUri(Uri uri, List<String> args, message) {
- // TODO(17738): Implement this.
- throw new UnimplementedError();
-}
-
-createCustomUpgrader(Type customElementClass, $this) => $this;
-
-/**
- * Emitted for any setlike IDL entry needs a callback signature.
- * Today there is only one.
- */
-@DomName('FontFaceSetForEachCallback')
-@Experimental() // untriaged
-typedef void FontFaceSetForEachCallback(
- FontFace fontFace, FontFace fontFaceAgain, FontFaceSet set);
-// 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.
-
-@DocsEditable()
-@DomName('AbstractWorker')
-abstract class AbstractWorker extends Interceptor implements EventTarget {
- // To suppress missing implicit constructor warnings.
- factory AbstractWorker._() {
- throw new UnsupportedError("Not supported");
- }
-
- /**
- * Static factory designed to expose `error` events to event
- * handlers that are not necessarily instances of [AbstractWorker].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('AbstractWorker.errorEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> errorEvent =
- const EventStreamProvider<Event>('error');
-
- /// Stream of `error` events handled by this [AbstractWorker].
- @DomName('AbstractWorker.onerror')
- @DocsEditable()
- Stream<Event> get onError => errorEvent.forTarget(this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLAnchorElement')
-@Native("HTMLAnchorElement")
-class AnchorElement extends HtmlElement implements UrlUtils {
- // To suppress missing implicit constructor warnings.
- factory AnchorElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLAnchorElement.HTMLAnchorElement')
- @DocsEditable()
- factory AnchorElement({String href}) {
- AnchorElement e = JS('returns:AnchorElement;creates:AnchorElement;new:true',
- '#.createElement(#)', document, "a");
- if (href != null) e.href = href;
- return e;
- }
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- AnchorElement.created() : super.created();
-
- @DomName('HTMLAnchorElement.download')
- @DocsEditable()
- String download;
-
- @DomName('HTMLAnchorElement.hreflang')
- @DocsEditable()
- String hreflang;
-
- @DomName('HTMLAnchorElement.referrerpolicy')
- @DocsEditable()
- @Experimental() // untriaged
- String referrerpolicy;
-
- @DomName('HTMLAnchorElement.rel')
- @DocsEditable()
- String rel;
-
- @DomName('HTMLAnchorElement.target')
- @DocsEditable()
- String target;
-
- @DomName('HTMLAnchorElement.type')
- @DocsEditable()
- String type;
-
- // From URLUtils
-
- @DomName('HTMLAnchorElement.hash')
- @DocsEditable()
- String hash;
-
- @DomName('HTMLAnchorElement.host')
- @DocsEditable()
- String host;
-
- @DomName('HTMLAnchorElement.hostname')
- @DocsEditable()
- String hostname;
-
- @DomName('HTMLAnchorElement.href')
- @DocsEditable()
- String href;
-
- @DomName('HTMLAnchorElement.origin')
- @DocsEditable()
- // WebKit only
- @Experimental() // non-standard
- final String origin;
-
- @DomName('HTMLAnchorElement.password')
- @DocsEditable()
- @Experimental() // untriaged
- String password;
-
- @DomName('HTMLAnchorElement.pathname')
- @DocsEditable()
- String pathname;
-
- @DomName('HTMLAnchorElement.port')
- @DocsEditable()
- String port;
-
- @DomName('HTMLAnchorElement.protocol')
- @DocsEditable()
- String protocol;
-
- @DomName('HTMLAnchorElement.search')
- @DocsEditable()
- String search;
-
- @DomName('HTMLAnchorElement.username')
- @DocsEditable()
- @Experimental() // untriaged
- String username;
-
- @DomName('HTMLAnchorElement.toString')
- @DocsEditable()
- String toString() => JS('String', 'String(#)', this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('Animation')
-@Experimental() // untriaged
-@Native("Animation")
-class Animation extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory Animation._() {
- throw new UnsupportedError("Not supported");
- }
-
- /// Checks if this type is supported on the current platform.
- static bool get supported => JS('bool', '!!(document.body.animate)');
-
- @DomName('Animation.currentTime')
- @DocsEditable()
- @Experimental() // untriaged
- num currentTime;
-
- @DomName('Animation.effect')
- @DocsEditable()
- @Experimental() // untriaged
- AnimationEffectReadOnly effect;
-
- @DomName('Animation.finished')
- @DocsEditable()
- @Experimental() // untriaged
- final Future finished;
-
- @DomName('Animation.id')
- @DocsEditable()
- @Experimental() // untriaged
- String id;
-
- @DomName('Animation.playState')
- @DocsEditable()
- @Experimental() // untriaged
- final String playState;
-
- @DomName('Animation.playbackRate')
- @DocsEditable()
- @Experimental() // untriaged
- num playbackRate;
-
- @DomName('Animation.ready')
- @DocsEditable()
- @Experimental() // untriaged
- final Future ready;
-
- @DomName('Animation.startTime')
- @DocsEditable()
- @Experimental() // untriaged
- num startTime;
-
- @DomName('Animation.cancel')
- @DocsEditable()
- @Experimental() // untriaged
- void cancel() native;
-
- @DomName('Animation.finish')
- @DocsEditable()
- @Experimental() // untriaged
- void finish() native;
-
- @DomName('Animation.pause')
- @DocsEditable()
- @Experimental() // untriaged
- void pause() native;
-
- @DomName('Animation.play')
- @DocsEditable()
- @Experimental() // untriaged
- void play() native;
-
- @DomName('Animation.reverse')
- @DocsEditable()
- @Experimental() // untriaged
- void reverse() native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('AnimationEffectReadOnly')
-@Experimental() // untriaged
-@Native("AnimationEffectReadOnly")
-class AnimationEffectReadOnly extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory AnimationEffectReadOnly._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('AnimationEffectReadOnly.computedTiming')
- @DocsEditable()
- @Experimental() // untriaged
- Map get computedTiming =>
- convertNativeToDart_Dictionary(this._get_computedTiming);
- @JSName('computedTiming')
- @DomName('AnimationEffectReadOnly.computedTiming')
- @DocsEditable()
- @Experimental() // untriaged
- final dynamic _get_computedTiming;
-
- @DomName('AnimationEffectReadOnly.timing')
- @DocsEditable()
- @Experimental() // untriaged
- final AnimationEffectTiming timing;
-}
-// 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.
-
-@DocsEditable()
-@DomName('AnimationEffectTiming')
-@Experimental() // untriaged
-@Native("AnimationEffectTiming")
-class AnimationEffectTiming extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory AnimationEffectTiming._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('AnimationEffectTiming.delay')
- @DocsEditable()
- @Experimental() // untriaged
- num delay;
-
- @DomName('AnimationEffectTiming.direction')
- @DocsEditable()
- @Experimental() // untriaged
- String direction;
-
- @DomName('AnimationEffectTiming.duration')
- @DocsEditable()
- @Experimental() // untriaged
- @Creates('Null')
- @Returns('num|String')
- Object duration;
-
- @DomName('AnimationEffectTiming.easing')
- @DocsEditable()
- @Experimental() // untriaged
- String easing;
-
- @DomName('AnimationEffectTiming.endDelay')
- @DocsEditable()
- @Experimental() // untriaged
- num endDelay;
-
- @DomName('AnimationEffectTiming.fill')
- @DocsEditable()
- @Experimental() // untriaged
- String fill;
-
- @DomName('AnimationEffectTiming.iterationStart')
- @DocsEditable()
- @Experimental() // untriaged
- num iterationStart;
-
- @DomName('AnimationEffectTiming.iterations')
- @DocsEditable()
- @Experimental() // untriaged
- num iterations;
-
- @DomName('AnimationEffectTiming.playbackRate')
- @DocsEditable()
- @Experimental() // untriaged
- num playbackRate;
-}
-// 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.
-
-@DocsEditable()
-@DomName('AnimationEvent')
-@Experimental() // untriaged
-@Native("AnimationEvent")
-class AnimationEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory AnimationEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('AnimationEvent.AnimationEvent')
- @DocsEditable()
- factory AnimationEvent(String type, [Map eventInitDict]) {
- if (eventInitDict != null) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return AnimationEvent._create_1(type, eventInitDict_1);
- }
- return AnimationEvent._create_2(type);
- }
- static AnimationEvent _create_1(type, eventInitDict) =>
- JS('AnimationEvent', 'new AnimationEvent(#,#)', type, eventInitDict);
- static AnimationEvent _create_2(type) =>
- JS('AnimationEvent', 'new AnimationEvent(#)', type);
-
- @DomName('AnimationEvent.animationName')
- @DocsEditable()
- @Experimental() // untriaged
- final String animationName;
-
- @DomName('AnimationEvent.elapsedTime')
- @DocsEditable()
- @Experimental() // untriaged
- final double elapsedTime;
-}
-// 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.
-
-@DocsEditable()
-@DomName('AnimationPlayerEvent')
-@Experimental() // untriaged
-@Native("AnimationPlayerEvent")
-class AnimationPlayerEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory AnimationPlayerEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('AnimationPlayerEvent.AnimationPlayerEvent')
- @DocsEditable()
- factory AnimationPlayerEvent(String type, [Map eventInitDict]) {
- if (eventInitDict != null) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return AnimationPlayerEvent._create_1(type, eventInitDict_1);
- }
- return AnimationPlayerEvent._create_2(type);
- }
- static AnimationPlayerEvent _create_1(type, eventInitDict) => JS(
- 'AnimationPlayerEvent',
- 'new AnimationPlayerEvent(#,#)',
- type,
- eventInitDict);
- static AnimationPlayerEvent _create_2(type) =>
- JS('AnimationPlayerEvent', 'new AnimationPlayerEvent(#)', type);
-
- @DomName('AnimationPlayerEvent.currentTime')
- @DocsEditable()
- @Experimental() // untriaged
- final double currentTime;
-
- @DomName('AnimationPlayerEvent.timelineTime')
- @DocsEditable()
- @Experimental() // untriaged
- final double timelineTime;
-}
-// 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.
-
-@DocsEditable()
-@DomName('AnimationTimeline')
-@Experimental() // untriaged
-@Native("AnimationTimeline")
-class AnimationTimeline extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory AnimationTimeline._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('AnimationTimeline.currentTime')
- @DocsEditable()
- @Experimental() // untriaged
- num currentTime;
-
- @DomName('AnimationTimeline.playbackRate')
- @DocsEditable()
- @Experimental() // untriaged
- num playbackRate;
-
- @DomName('AnimationTimeline.getAnimations')
- @DocsEditable()
- @Experimental() // untriaged
- List<Animation> getAnimations() native;
-
- @DomName('AnimationTimeline.play')
- @DocsEditable()
- @Experimental() // untriaged
- Animation play(AnimationEffectReadOnly source) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('AppBannerPromptResult')
-@Experimental() // untriaged
-@Native("AppBannerPromptResult")
-class AppBannerPromptResult extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory AppBannerPromptResult._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('AppBannerPromptResult.outcome')
- @DocsEditable()
- @Experimental() // untriaged
- final String outcome;
-
- @DomName('AppBannerPromptResult.platform')
- @DocsEditable()
- @Experimental() // untriaged
- final String platform;
-}
-// 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.
-
-@DocsEditable()
-/**
- * ApplicationCache is accessed via [Window.applicationCache].
- */
-@DomName('ApplicationCache')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.OPERA)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("ApplicationCache,DOMApplicationCache,OfflineResourceList")
-class ApplicationCache extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory ApplicationCache._() {
- throw new UnsupportedError("Not supported");
- }
-
- /**
- * Static factory designed to expose `cached` events to event
- * handlers that are not necessarily instances of [ApplicationCache].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('ApplicationCache.cachedEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> cachedEvent =
- const EventStreamProvider<Event>('cached');
-
- /**
- * Static factory designed to expose `checking` events to event
- * handlers that are not necessarily instances of [ApplicationCache].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('ApplicationCache.checkingEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> checkingEvent =
- const EventStreamProvider<Event>('checking');
-
- /**
- * Static factory designed to expose `downloading` events to event
- * handlers that are not necessarily instances of [ApplicationCache].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('ApplicationCache.downloadingEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> downloadingEvent =
- const EventStreamProvider<Event>('downloading');
-
- /**
- * Static factory designed to expose `error` events to event
- * handlers that are not necessarily instances of [ApplicationCache].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('ApplicationCache.errorEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> errorEvent =
- const EventStreamProvider<Event>('error');
-
- /**
- * Static factory designed to expose `noupdate` events to event
- * handlers that are not necessarily instances of [ApplicationCache].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('ApplicationCache.noupdateEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> noUpdateEvent =
- const EventStreamProvider<Event>('noupdate');
-
- /**
- * Static factory designed to expose `obsolete` events to event
- * handlers that are not necessarily instances of [ApplicationCache].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('ApplicationCache.obsoleteEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> obsoleteEvent =
- const EventStreamProvider<Event>('obsolete');
-
- /**
- * Static factory designed to expose `progress` events to event
- * handlers that are not necessarily instances of [ApplicationCache].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('ApplicationCache.progressEvent')
- @DocsEditable()
- static const EventStreamProvider<ProgressEvent> progressEvent =
- const EventStreamProvider<ProgressEvent>('progress');
-
- /**
- * Static factory designed to expose `updateready` events to event
- * handlers that are not necessarily instances of [ApplicationCache].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('ApplicationCache.updatereadyEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> updateReadyEvent =
- const EventStreamProvider<Event>('updateready');
-
- /// Checks if this type is supported on the current platform.
- static bool get supported => JS('bool', '!!(window.applicationCache)');
-
- @DomName('ApplicationCache.CHECKING')
- @DocsEditable()
- static const int CHECKING = 2;
-
- @DomName('ApplicationCache.DOWNLOADING')
- @DocsEditable()
- static const int DOWNLOADING = 3;
-
- @DomName('ApplicationCache.IDLE')
- @DocsEditable()
- static const int IDLE = 1;
-
- @DomName('ApplicationCache.OBSOLETE')
- @DocsEditable()
- static const int OBSOLETE = 5;
-
- @DomName('ApplicationCache.UNCACHED')
- @DocsEditable()
- static const int UNCACHED = 0;
-
- @DomName('ApplicationCache.UPDATEREADY')
- @DocsEditable()
- static const int UPDATEREADY = 4;
-
- @DomName('ApplicationCache.status')
- @DocsEditable()
- final int status;
-
- @DomName('ApplicationCache.abort')
- @DocsEditable()
- void abort() native;
-
- @DomName('ApplicationCache.swapCache')
- @DocsEditable()
- void swapCache() native;
-
- @DomName('ApplicationCache.update')
- @DocsEditable()
- void update() native;
-
- /// Stream of `cached` events handled by this [ApplicationCache].
- @DomName('ApplicationCache.oncached')
- @DocsEditable()
- Stream<Event> get onCached => cachedEvent.forTarget(this);
-
- /// Stream of `checking` events handled by this [ApplicationCache].
- @DomName('ApplicationCache.onchecking')
- @DocsEditable()
- Stream<Event> get onChecking => checkingEvent.forTarget(this);
-
- /// Stream of `downloading` events handled by this [ApplicationCache].
- @DomName('ApplicationCache.ondownloading')
- @DocsEditable()
- Stream<Event> get onDownloading => downloadingEvent.forTarget(this);
-
- /// Stream of `error` events handled by this [ApplicationCache].
- @DomName('ApplicationCache.onerror')
- @DocsEditable()
- Stream<Event> get onError => errorEvent.forTarget(this);
-
- /// Stream of `noupdate` events handled by this [ApplicationCache].
- @DomName('ApplicationCache.onnoupdate')
- @DocsEditable()
- Stream<Event> get onNoUpdate => noUpdateEvent.forTarget(this);
-
- /// Stream of `obsolete` events handled by this [ApplicationCache].
- @DomName('ApplicationCache.onobsolete')
- @DocsEditable()
- Stream<Event> get onObsolete => obsoleteEvent.forTarget(this);
-
- /// Stream of `progress` events handled by this [ApplicationCache].
- @DomName('ApplicationCache.onprogress')
- @DocsEditable()
- Stream<ProgressEvent> get onProgress => progressEvent.forTarget(this);
-
- /// Stream of `updateready` events handled by this [ApplicationCache].
- @DomName('ApplicationCache.onupdateready')
- @DocsEditable()
- Stream<Event> get onUpdateReady => updateReadyEvent.forTarget(this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('ApplicationCacheErrorEvent')
-@Experimental() // untriaged
-@Native("ApplicationCacheErrorEvent")
-class ApplicationCacheErrorEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory ApplicationCacheErrorEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('ApplicationCacheErrorEvent.ApplicationCacheErrorEvent')
- @DocsEditable()
- factory ApplicationCacheErrorEvent(String type, [Map eventInitDict]) {
- if (eventInitDict != null) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return ApplicationCacheErrorEvent._create_1(type, eventInitDict_1);
- }
- return ApplicationCacheErrorEvent._create_2(type);
- }
- static ApplicationCacheErrorEvent _create_1(type, eventInitDict) => JS(
- 'ApplicationCacheErrorEvent',
- 'new ApplicationCacheErrorEvent(#,#)',
- type,
- eventInitDict);
- static ApplicationCacheErrorEvent _create_2(type) => JS(
- 'ApplicationCacheErrorEvent', 'new ApplicationCacheErrorEvent(#)', type);
-
- @DomName('ApplicationCacheErrorEvent.message')
- @DocsEditable()
- @Experimental() // untriaged
- final String message;
-
- @DomName('ApplicationCacheErrorEvent.reason')
- @DocsEditable()
- @Experimental() // untriaged
- final String reason;
-
- @DomName('ApplicationCacheErrorEvent.status')
- @DocsEditable()
- @Experimental() // untriaged
- final int status;
-
- @DomName('ApplicationCacheErrorEvent.url')
- @DocsEditable()
- @Experimental() // untriaged
- final String url;
-}
-// 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.
-
-@DocsEditable()
-/**
- * DOM Area Element, which links regions of an image map with a hyperlink.
- *
- * The element can also define an uninteractive region of the map.
- *
- * See also:
- *
- * * [`<area>`](https://developer.mozilla.org/en-US/docs/HTML/Element/area)
- * on MDN.
- */
-@DomName('HTMLAreaElement')
-@Native("HTMLAreaElement")
-class AreaElement extends HtmlElement implements UrlUtils {
- // To suppress missing implicit constructor warnings.
- factory AreaElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLAreaElement.HTMLAreaElement')
- @DocsEditable()
- factory AreaElement() => JS(
- 'returns:AreaElement;creates:AreaElement;new:true',
- '#.createElement(#)',
- document,
- "area");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- AreaElement.created() : super.created();
-
- @DomName('HTMLAreaElement.alt')
- @DocsEditable()
- String alt;
-
- @DomName('HTMLAreaElement.coords')
- @DocsEditable()
- String coords;
-
- @DomName('HTMLAreaElement.referrerpolicy')
- @DocsEditable()
- @Experimental() // untriaged
- String referrerpolicy;
-
- @DomName('HTMLAreaElement.shape')
- @DocsEditable()
- String shape;
-
- @DomName('HTMLAreaElement.target')
- @DocsEditable()
- String target;
-
- // From URLUtils
-
- @DomName('HTMLAreaElement.hash')
- @DocsEditable()
- String hash;
-
- @DomName('HTMLAreaElement.host')
- @DocsEditable()
- String host;
-
- @DomName('HTMLAreaElement.hostname')
- @DocsEditable()
- String hostname;
-
- @DomName('HTMLAreaElement.href')
- @DocsEditable()
- String href;
-
- @DomName('HTMLAreaElement.origin')
- @DocsEditable()
- @Experimental() // untriaged
- final String origin;
-
- @DomName('HTMLAreaElement.password')
- @DocsEditable()
- @Experimental() // untriaged
- String password;
-
- @DomName('HTMLAreaElement.pathname')
- @DocsEditable()
- String pathname;
-
- @DomName('HTMLAreaElement.port')
- @DocsEditable()
- String port;
-
- @DomName('HTMLAreaElement.protocol')
- @DocsEditable()
- String protocol;
-
- @DomName('HTMLAreaElement.search')
- @DocsEditable()
- String search;
-
- @DomName('HTMLAreaElement.username')
- @DocsEditable()
- @Experimental() // untriaged
- String username;
-
- @DomName('HTMLAreaElement.toString')
- @DocsEditable()
- String toString() => JS('String', 'String(#)', this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLAudioElement')
-@Native("HTMLAudioElement")
-class AudioElement extends MediaElement {
- @DomName('HTMLAudioElement.HTMLAudioElement')
- @DocsEditable()
- factory AudioElement._([String src]) {
- if (src != null) {
- return AudioElement._create_1(src);
- }
- return AudioElement._create_2();
- }
- static AudioElement _create_1(src) => JS('AudioElement', 'new Audio(#)', src);
- static AudioElement _create_2() => JS('AudioElement', 'new Audio()');
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- AudioElement.created() : super.created();
-
- factory AudioElement([String src]) => new AudioElement._(src);
-}
-// 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.
-
-@DocsEditable()
-@DomName('AudioTrack')
-@Experimental() // untriaged
-@Native("AudioTrack")
-class AudioTrack extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory AudioTrack._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('AudioTrack.enabled')
- @DocsEditable()
- @Experimental() // untriaged
- bool enabled;
-
- @DomName('AudioTrack.id')
- @DocsEditable()
- @Experimental() // untriaged
- final String id;
-
- @DomName('AudioTrack.kind')
- @DocsEditable()
- @Experimental() // untriaged
- final String kind;
-
- @DomName('AudioTrack.label')
- @DocsEditable()
- @Experimental() // untriaged
- final String label;
-
- @DomName('AudioTrack.language')
- @DocsEditable()
- @Experimental() // untriaged
- final String language;
-}
-// 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.
-
-@DocsEditable()
-@DomName('AudioTrackList')
-@Experimental() // untriaged
-@Native("AudioTrackList")
-class AudioTrackList extends EventTarget
- with ListMixin<AudioTrack>, ImmutableListMixin<AudioTrack>
- implements JavaScriptIndexingBehavior<AudioTrack>, List<AudioTrack> {
- // To suppress missing implicit constructor warnings.
- factory AudioTrackList._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('AudioTrackList.changeEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> changeEvent =
- const EventStreamProvider<Event>('change');
-
- @DomName('AudioTrackList.length')
- @DocsEditable()
- @Experimental() // untriaged
- int get length => JS("int", "#.length", this);
-
- AudioTrack operator [](int index) {
- if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
- throw new RangeError.index(index, this);
- return JS("AudioTrack", "#[#]", this, index);
- }
-
- void operator []=(int index, AudioTrack value) {
- throw new UnsupportedError("Cannot assign element of immutable List.");
- }
- // -- start List<AudioTrack> mixins.
- // AudioTrack is the element type.
-
- set length(int value) {
- throw new UnsupportedError("Cannot resize immutable List.");
- }
-
- AudioTrack get first {
- if (this.length > 0) {
- return JS('AudioTrack', '#[0]', this);
- }
- throw new StateError("No elements");
- }
-
- AudioTrack get last {
- int len = this.length;
- if (len > 0) {
- return JS('AudioTrack', '#[#]', this, len - 1);
- }
- throw new StateError("No elements");
- }
-
- AudioTrack get single {
- int len = this.length;
- if (len == 1) {
- return JS('AudioTrack', '#[0]', this);
- }
- if (len == 0) throw new StateError("No elements");
- throw new StateError("More than one element");
- }
-
- AudioTrack elementAt(int index) => this[index];
- // -- end List<AudioTrack> mixins.
-
- @DomName('AudioTrackList.__getter__')
- @DocsEditable()
- @Experimental() // untriaged
- AudioTrack __getter__(int index) native;
-
- @DomName('AudioTrackList.getTrackById')
- @DocsEditable()
- @Experimental() // untriaged
- AudioTrack getTrackById(String id) native;
-
- @DomName('AudioTrackList.onchange')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onChange => changeEvent.forTarget(this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('AutocompleteErrorEvent')
-// http://wiki.whatwg.org/wiki/RequestAutocomplete
-@Experimental()
-@Native("AutocompleteErrorEvent")
-class AutocompleteErrorEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory AutocompleteErrorEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('AutocompleteErrorEvent.AutocompleteErrorEvent')
- @DocsEditable()
- factory AutocompleteErrorEvent(String type, [Map eventInitDict]) {
- if (eventInitDict != null) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return AutocompleteErrorEvent._create_1(type, eventInitDict_1);
- }
- return AutocompleteErrorEvent._create_2(type);
- }
- static AutocompleteErrorEvent _create_1(type, eventInitDict) => JS(
- 'AutocompleteErrorEvent',
- 'new AutocompleteErrorEvent(#,#)',
- type,
- eventInitDict);
- static AutocompleteErrorEvent _create_2(type) =>
- JS('AutocompleteErrorEvent', 'new AutocompleteErrorEvent(#)', type);
-
- @DomName('AutocompleteErrorEvent.reason')
- @DocsEditable()
- final String reason;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLBRElement')
-@Native("HTMLBRElement")
-class BRElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory BRElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLBRElement.HTMLBRElement')
- @DocsEditable()
- factory BRElement() => JS('returns:BRElement;creates:BRElement;new:true',
- '#.createElement(#)', document, "br");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- BRElement.created() : super.created();
-}
-// 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.
-
-@DocsEditable()
-@DomName('BarProp')
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/browsers.html#barprop
-@deprecated // standard
-@Native("BarProp")
-class BarProp extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory BarProp._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('BarProp.visible')
- @DocsEditable()
- final bool visible;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLBaseElement')
-@Native("HTMLBaseElement")
-class BaseElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory BaseElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLBaseElement.HTMLBaseElement')
- @DocsEditable()
- factory BaseElement() => JS(
- 'returns:BaseElement;creates:BaseElement;new:true',
- '#.createElement(#)',
- document,
- "base");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- BaseElement.created() : super.created();
-
- @DomName('HTMLBaseElement.href')
- @DocsEditable()
- String href;
-
- @DomName('HTMLBaseElement.target')
- @DocsEditable()
- String target;
-}
-// 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.
-
-@DocsEditable()
-@DomName('BatteryManager')
-// https://dvcs.w3.org/hg/dap/raw-file/default/battery/Overview.html#batterymanager-interface
-@Experimental() // stable
-@Native("BatteryManager")
-class BatteryManager extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory BatteryManager._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('BatteryManager.charging')
- @DocsEditable()
- final bool charging;
-
- @DomName('BatteryManager.chargingTime')
- @DocsEditable()
- final double chargingTime;
-
- @DomName('BatteryManager.dischargingTime')
- @DocsEditable()
- final double dischargingTime;
-
- @DomName('BatteryManager.level')
- @DocsEditable()
- final double level;
-}
-// 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.
-
-@DocsEditable()
-@DomName('BeforeInstallPromptEvent')
-@Experimental() // untriaged
-@Native("BeforeInstallPromptEvent")
-class BeforeInstallPromptEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory BeforeInstallPromptEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('BeforeInstallPromptEvent.BeforeInstallPromptEvent')
- @DocsEditable()
- factory BeforeInstallPromptEvent(String type, [Map eventInitDict]) {
- if (eventInitDict != null) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return BeforeInstallPromptEvent._create_1(type, eventInitDict_1);
- }
- return BeforeInstallPromptEvent._create_2(type);
- }
- static BeforeInstallPromptEvent _create_1(type, eventInitDict) => JS(
- 'BeforeInstallPromptEvent',
- 'new BeforeInstallPromptEvent(#,#)',
- type,
- eventInitDict);
- static BeforeInstallPromptEvent _create_2(type) =>
- JS('BeforeInstallPromptEvent', 'new BeforeInstallPromptEvent(#)', type);
-
- List<String> get platforms => JS("List<String>", "#.platforms", this);
-
- @DomName('BeforeInstallPromptEvent.userChoice')
- @DocsEditable()
- @Experimental() // untriaged
- final Future userChoice;
-
- @DomName('BeforeInstallPromptEvent.prompt')
- @DocsEditable()
- @Experimental() // untriaged
- Future prompt() native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('BeforeUnloadEvent')
-@Native("BeforeUnloadEvent")
-class BeforeUnloadEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory BeforeUnloadEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- // Shadowing definition.
- String get returnValue => JS("String", "#.returnValue", this);
-
- set returnValue(String value) {
- JS("void", "#.returnValue = #", this, value);
- }
-}
-// 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.
-
-@DomName('Blob')
-@Native("Blob")
-class Blob extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory Blob._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('Blob.size')
- @DocsEditable()
- final int size;
-
- @DomName('Blob.type')
- @DocsEditable()
- final String type;
-
- @DomName('Blob.close')
- @DocsEditable()
- @Experimental() // untriaged
- void close() native;
-
- @DomName('Blob.slice')
- @DocsEditable()
- Blob slice([int start, int end, String contentType]) native;
-
- factory Blob(List blobParts, [String type, String endings]) {
- // TODO: validate that blobParts is a JS Array and convert if not.
- // TODO: any coercions on the elements of blobParts, e.g. coerce a typed
- // array to ArrayBuffer if it is a total view.
- if (type == null && endings == null) {
- return _create_1(blobParts);
- }
- var bag = _create_bag();
- if (type != null) _bag_set(bag, 'type', type);
- if (endings != null) _bag_set(bag, 'endings', endings);
- return _create_2(blobParts, bag);
- }
-
- static _create_1(parts) => JS('Blob', 'new self.Blob(#)', parts);
- static _create_2(parts, bag) => JS('Blob', 'new self.Blob(#, #)', parts, bag);
-
- static _create_bag() => JS('var', '{}');
- static _bag_set(bag, key, value) {
- JS('void', '#[#] = #', bag, key, value);
- }
-}
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('BlobCallback')
-@Experimental() // untriaged
-typedef void BlobCallback(Blob blob);
-// 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.
-
-@DocsEditable()
-@DomName('BlobEvent')
-@Experimental() // untriaged
-@Native("BlobEvent")
-class BlobEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory BlobEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('BlobEvent.BlobEvent')
- @DocsEditable()
- factory BlobEvent(String type, Map eventInitDict) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return BlobEvent._create_1(type, eventInitDict_1);
- }
- static BlobEvent _create_1(type, eventInitDict) =>
- JS('BlobEvent', 'new BlobEvent(#,#)', type, eventInitDict);
-
- @DomName('BlobEvent.data')
- @DocsEditable()
- @Experimental() // untriaged
- final Blob data;
-}
-// 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.
-
-@DocsEditable()
-@DomName('Body')
-@Experimental() // untriaged
-@Native("Body")
-class Body extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory Body._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('Body.bodyUsed')
- @DocsEditable()
- @Experimental() // untriaged
- final bool bodyUsed;
-
- @DomName('Body.arrayBuffer')
- @DocsEditable()
- @Experimental() // untriaged
- Future arrayBuffer() native;
-
- @DomName('Body.blob')
- @DocsEditable()
- @Experimental() // untriaged
- Future blob() native;
-
- @DomName('Body.json')
- @DocsEditable()
- @Experimental() // untriaged
- Future json() native;
-
- @DomName('Body.text')
- @DocsEditable()
- @Experimental() // untriaged
- Future text() native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLBodyElement')
-@Native("HTMLBodyElement")
-class BodyElement extends HtmlElement implements WindowEventHandlers {
- // To suppress missing implicit constructor warnings.
- factory BodyElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- /**
- * Static factory designed to expose `blur` events to event
- * handlers that are not necessarily instances of [BodyElement].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('HTMLBodyElement.blurEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> blurEvent =
- const EventStreamProvider<Event>('blur');
-
- /**
- * Static factory designed to expose `error` events to event
- * handlers that are not necessarily instances of [BodyElement].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('HTMLBodyElement.errorEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> errorEvent =
- const EventStreamProvider<Event>('error');
-
- /**
- * Static factory designed to expose `focus` events to event
- * handlers that are not necessarily instances of [BodyElement].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('HTMLBodyElement.focusEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> focusEvent =
- const EventStreamProvider<Event>('focus');
-
- /**
- * Static factory designed to expose `hashchange` events to event
- * handlers that are not necessarily instances of [BodyElement].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('HTMLBodyElement.hashchangeEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> hashChangeEvent =
- const EventStreamProvider<Event>('hashchange');
-
- /**
- * Static factory designed to expose `load` events to event
- * handlers that are not necessarily instances of [BodyElement].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('HTMLBodyElement.loadEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> loadEvent =
- const EventStreamProvider<Event>('load');
-
- /**
- * Static factory designed to expose `message` events to event
- * handlers that are not necessarily instances of [BodyElement].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('HTMLBodyElement.messageEvent')
- @DocsEditable()
- static const EventStreamProvider<MessageEvent> messageEvent =
- const EventStreamProvider<MessageEvent>('message');
-
- /**
- * Static factory designed to expose `offline` events to event
- * handlers that are not necessarily instances of [BodyElement].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('HTMLBodyElement.offlineEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> offlineEvent =
- const EventStreamProvider<Event>('offline');
-
- /**
- * Static factory designed to expose `online` events to event
- * handlers that are not necessarily instances of [BodyElement].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('HTMLBodyElement.onlineEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> onlineEvent =
- const EventStreamProvider<Event>('online');
-
- /**
- * Static factory designed to expose `popstate` events to event
- * handlers that are not necessarily instances of [BodyElement].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('HTMLBodyElement.popstateEvent')
- @DocsEditable()
- static const EventStreamProvider<PopStateEvent> popStateEvent =
- const EventStreamProvider<PopStateEvent>('popstate');
-
- /**
- * Static factory designed to expose `resize` events to event
- * handlers that are not necessarily instances of [BodyElement].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('HTMLBodyElement.resizeEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> resizeEvent =
- const EventStreamProvider<Event>('resize');
-
- @DomName('HTMLBodyElement.scrollEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> scrollEvent =
- const EventStreamProvider<Event>('scroll');
-
- /**
- * Static factory designed to expose `storage` events to event
- * handlers that are not necessarily instances of [BodyElement].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('HTMLBodyElement.storageEvent')
- @DocsEditable()
- static const EventStreamProvider<StorageEvent> storageEvent =
- const EventStreamProvider<StorageEvent>('storage');
-
- /**
- * Static factory designed to expose `unload` events to event
- * handlers that are not necessarily instances of [BodyElement].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('HTMLBodyElement.unloadEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> unloadEvent =
- const EventStreamProvider<Event>('unload');
-
- @DomName('HTMLBodyElement.HTMLBodyElement')
- @DocsEditable()
- factory BodyElement() => JS(
- 'returns:BodyElement;creates:BodyElement;new:true',
- '#.createElement(#)',
- document,
- "body");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- BodyElement.created() : super.created();
-
- /// Stream of `blur` events handled by this [BodyElement].
- @DomName('HTMLBodyElement.onblur')
- @DocsEditable()
- ElementStream<Event> get onBlur => blurEvent.forElement(this);
-
- /// Stream of `error` events handled by this [BodyElement].
- @DomName('HTMLBodyElement.onerror')
- @DocsEditable()
- ElementStream<Event> get onError => errorEvent.forElement(this);
-
- /// Stream of `focus` events handled by this [BodyElement].
- @DomName('HTMLBodyElement.onfocus')
- @DocsEditable()
- ElementStream<Event> get onFocus => focusEvent.forElement(this);
-
- /// Stream of `hashchange` events handled by this [BodyElement].
- @DomName('HTMLBodyElement.onhashchange')
- @DocsEditable()
- ElementStream<Event> get onHashChange => hashChangeEvent.forElement(this);
-
- /// Stream of `load` events handled by this [BodyElement].
- @DomName('HTMLBodyElement.onload')
- @DocsEditable()
- ElementStream<Event> get onLoad => loadEvent.forElement(this);
-
- /// Stream of `message` events handled by this [BodyElement].
- @DomName('HTMLBodyElement.onmessage')
- @DocsEditable()
- ElementStream<MessageEvent> get onMessage => messageEvent.forElement(this);
-
- /// Stream of `offline` events handled by this [BodyElement].
- @DomName('HTMLBodyElement.onoffline')
- @DocsEditable()
- ElementStream<Event> get onOffline => offlineEvent.forElement(this);
-
- /// Stream of `online` events handled by this [BodyElement].
- @DomName('HTMLBodyElement.ononline')
- @DocsEditable()
- ElementStream<Event> get onOnline => onlineEvent.forElement(this);
-
- /// Stream of `popstate` events handled by this [BodyElement].
- @DomName('HTMLBodyElement.onpopstate')
- @DocsEditable()
- ElementStream<PopStateEvent> get onPopState => popStateEvent.forElement(this);
-
- /// Stream of `resize` events handled by this [BodyElement].
- @DomName('HTMLBodyElement.onresize')
- @DocsEditable()
- ElementStream<Event> get onResize => resizeEvent.forElement(this);
-
- @DomName('HTMLBodyElement.onscroll')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onScroll => scrollEvent.forElement(this);
-
- /// Stream of `storage` events handled by this [BodyElement].
- @DomName('HTMLBodyElement.onstorage')
- @DocsEditable()
- ElementStream<StorageEvent> get onStorage => storageEvent.forElement(this);
-
- /// Stream of `unload` events handled by this [BodyElement].
- @DomName('HTMLBodyElement.onunload')
- @DocsEditable()
- ElementStream<Event> get onUnload => unloadEvent.forElement(this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLButtonElement')
-@Native("HTMLButtonElement")
-class ButtonElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory ButtonElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLButtonElement.HTMLButtonElement')
- @DocsEditable()
- factory ButtonElement() => JS(
- 'returns:ButtonElement;creates:ButtonElement;new:true',
- '#.createElement(#)',
- document,
- "button");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- ButtonElement.created() : super.created();
-
- @DomName('HTMLButtonElement.autofocus')
- @DocsEditable()
- bool autofocus;
-
- @DomName('HTMLButtonElement.disabled')
- @DocsEditable()
- bool disabled;
-
- @DomName('HTMLButtonElement.form')
- @DocsEditable()
- final FormElement form;
-
- @DomName('HTMLButtonElement.formAction')
- @DocsEditable()
- String formAction;
-
- @DomName('HTMLButtonElement.formEnctype')
- @DocsEditable()
- String formEnctype;
-
- @DomName('HTMLButtonElement.formMethod')
- @DocsEditable()
- String formMethod;
-
- @DomName('HTMLButtonElement.formNoValidate')
- @DocsEditable()
- bool formNoValidate;
-
- @DomName('HTMLButtonElement.formTarget')
- @DocsEditable()
- String formTarget;
-
- @DomName('HTMLButtonElement.labels')
- @DocsEditable()
- @Unstable()
- @Returns('NodeList|Null')
- @Creates('NodeList')
- final List<Node> labels;
-
- @DomName('HTMLButtonElement.name')
- @DocsEditable()
- String name;
-
- @DomName('HTMLButtonElement.type')
- @DocsEditable()
- String type;
-
- @DomName('HTMLButtonElement.validationMessage')
- @DocsEditable()
- final String validationMessage;
-
- @DomName('HTMLButtonElement.validity')
- @DocsEditable()
- final ValidityState validity;
-
- @DomName('HTMLButtonElement.value')
- @DocsEditable()
- String value;
-
- @DomName('HTMLButtonElement.willValidate')
- @DocsEditable()
- final bool willValidate;
-
- @DomName('HTMLButtonElement.checkValidity')
- @DocsEditable()
- bool checkValidity() native;
-
- @DomName('HTMLButtonElement.reportValidity')
- @DocsEditable()
- @Experimental() // untriaged
- bool reportValidity() native;
-
- @DomName('HTMLButtonElement.setCustomValidity')
- @DocsEditable()
- void setCustomValidity(String error) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('CDATASection')
-// http://dom.spec.whatwg.org/#cdatasection
-@deprecated // deprecated
-@Native("CDATASection")
-class CDataSection extends Text {
- // To suppress missing implicit constructor warnings.
- factory CDataSection._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('CacheStorage')
-@Experimental() // untriaged
-@Native("CacheStorage")
-class CacheStorage extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory CacheStorage._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('CacheStorage.delete')
- @DocsEditable()
- @Experimental() // untriaged
- Future delete(String cacheName) native;
-
- @DomName('CacheStorage.has')
- @DocsEditable()
- @Experimental() // untriaged
- Future has(String cacheName) native;
-
- @DomName('CacheStorage.keys')
- @DocsEditable()
- @Experimental() // untriaged
- Future keys() native;
-
- @DomName('CacheStorage.match')
- @DocsEditable()
- @Experimental() // untriaged
- Future match(/*RequestInfo*/ request, [Map options]) {
- if (options != null) {
- var options_1 = convertDartToNative_Dictionary(options);
- return _match_1(request, options_1);
- }
- return _match_2(request);
- }
-
- @JSName('match')
- @DomName('CacheStorage.match')
- @DocsEditable()
- @Experimental() // untriaged
- Future _match_1(request, options) native;
- @JSName('match')
- @DomName('CacheStorage.match')
- @DocsEditable()
- @Experimental() // untriaged
- Future _match_2(request) native;
-
- @DomName('CacheStorage.open')
- @DocsEditable()
- @Experimental() // untriaged
- Future open(String cacheName) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('CalcLength')
-@Experimental() // untriaged
-@Native("CalcLength")
-class CalcLength extends LengthValue {
- // To suppress missing implicit constructor warnings.
- factory CalcLength._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('CalcLength.CalcLength')
- @DocsEditable()
- factory CalcLength(calcDictionary_OR_length) {
- if ((calcDictionary_OR_length is LengthValue)) {
- return CalcLength._create_1(calcDictionary_OR_length);
- }
- if ((calcDictionary_OR_length is Map)) {
- var calcDictionary_1 =
- convertDartToNative_Dictionary(calcDictionary_OR_length);
- return CalcLength._create_2(calcDictionary_1);
- }
- throw new ArgumentError("Incorrect number or type of arguments");
- }
- static CalcLength _create_1(calcDictionary_OR_length) =>
- JS('CalcLength', 'new CalcLength(#)', calcDictionary_OR_length);
- static CalcLength _create_2(calcDictionary_OR_length) =>
- JS('CalcLength', 'new CalcLength(#)', calcDictionary_OR_length);
-
- @DomName('CalcLength.ch')
- @DocsEditable()
- @Experimental() // untriaged
- final double ch;
-
- @DomName('CalcLength.cm')
- @DocsEditable()
- @Experimental() // untriaged
- final double cm;
-
- @DomName('CalcLength.em')
- @DocsEditable()
- @Experimental() // untriaged
- final double em;
-
- @DomName('CalcLength.ex')
- @DocsEditable()
- @Experimental() // untriaged
- final double ex;
-
- @JSName('in')
- @DomName('CalcLength.in')
- @DocsEditable()
- @Experimental() // untriaged
- final double inch;
-
- @DomName('CalcLength.mm')
- @DocsEditable()
- @Experimental() // untriaged
- final double mm;
-
- @DomName('CalcLength.pc')
- @DocsEditable()
- @Experimental() // untriaged
- final double pc;
-
- @DomName('CalcLength.percent')
- @DocsEditable()
- @Experimental() // untriaged
- final double percent;
-
- @DomName('CalcLength.pt')
- @DocsEditable()
- @Experimental() // untriaged
- final double pt;
-
- @DomName('CalcLength.px')
- @DocsEditable()
- @Experimental() // untriaged
- final double px;
-
- @DomName('CalcLength.rem')
- @DocsEditable()
- @Experimental() // untriaged
- final double rem;
-
- @DomName('CalcLength.vh')
- @DocsEditable()
- @Experimental() // untriaged
- final double vh;
-
- @DomName('CalcLength.vmax')
- @DocsEditable()
- @Experimental() // untriaged
- final double vmax;
-
- @DomName('CalcLength.vmin')
- @DocsEditable()
- @Experimental() // untriaged
- final double vmin;
-
- @DomName('CalcLength.vw')
- @DocsEditable()
- @Experimental() // untriaged
- final double vw;
-}
-// 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.
-
-@DocsEditable()
-@DomName('CanvasCaptureMediaStreamTrack')
-@Experimental() // untriaged
-@Native("CanvasCaptureMediaStreamTrack")
-class CanvasCaptureMediaStreamTrack extends MediaStreamTrack {
- // To suppress missing implicit constructor warnings.
- factory CanvasCaptureMediaStreamTrack._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('CanvasCaptureMediaStreamTrack.canvas')
- @DocsEditable()
- @Experimental() // untriaged
- final CanvasElement canvas;
-
- @DomName('CanvasCaptureMediaStreamTrack.requestFrame')
- @DocsEditable()
- @Experimental() // untriaged
- void requestFrame() native;
-}
-// 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.
-
-@DomName('HTMLCanvasElement')
-@Native("HTMLCanvasElement")
-class CanvasElement extends HtmlElement implements CanvasImageSource {
- // To suppress missing implicit constructor warnings.
- factory CanvasElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- /**
- * Static factory designed to expose `webglcontextlost` events to event
- * handlers that are not necessarily instances of [CanvasElement].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('HTMLCanvasElement.webglcontextlostEvent')
- @DocsEditable()
- static const EventStreamProvider<gl.ContextEvent> webGlContextLostEvent =
- const EventStreamProvider<gl.ContextEvent>('webglcontextlost');
-
- /**
- * Static factory designed to expose `webglcontextrestored` events to event
- * handlers that are not necessarily instances of [CanvasElement].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('HTMLCanvasElement.webglcontextrestoredEvent')
- @DocsEditable()
- static const EventStreamProvider<gl.ContextEvent> webGlContextRestoredEvent =
- const EventStreamProvider<gl.ContextEvent>('webglcontextrestored');
-
- @DomName('HTMLCanvasElement.HTMLCanvasElement')
- @DocsEditable()
- factory CanvasElement({int width, int height}) {
- CanvasElement e = JS('returns:CanvasElement;creates:CanvasElement;new:true',
- '#.createElement(#)', document, "canvas");
- if (width != null) e.width = width;
- if (height != null) e.height = height;
- return e;
- }
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- CanvasElement.created() : super.created();
-
- /// The height of this canvas element in CSS pixels.
- @DomName('HTMLCanvasElement.height')
- @DocsEditable()
- int height;
-
- /// The width of this canvas element in CSS pixels.
- @DomName('HTMLCanvasElement.width')
- @DocsEditable()
- int width;
-
- @DomName('HTMLCanvasElement.captureStream')
- @DocsEditable()
- @Experimental() // untriaged
- MediaStream captureStream([num frameRate]) native;
-
- @DomName('HTMLCanvasElement.getContext')
- @DocsEditable()
- @Creates('CanvasRenderingContext2D|RenderingContext|RenderingContext2')
- @Returns('CanvasRenderingContext2D|RenderingContext|RenderingContext2|Null')
- Object getContext(String contextId, [Map attributes]) {
- if (attributes != null) {
- var attributes_1 = convertDartToNative_Dictionary(attributes);
- return _getContext_1(contextId, attributes_1);
- }
- return _getContext_2(contextId);
- }
-
- @JSName('getContext')
- @DomName('HTMLCanvasElement.getContext')
- @DocsEditable()
- @Creates('CanvasRenderingContext2D|RenderingContext|RenderingContext2')
- @Returns('CanvasRenderingContext2D|RenderingContext|RenderingContext2|Null')
- Object _getContext_1(contextId, attributes) native;
- @JSName('getContext')
- @DomName('HTMLCanvasElement.getContext')
- @DocsEditable()
- @Creates('CanvasRenderingContext2D|RenderingContext|RenderingContext2')
- @Returns('CanvasRenderingContext2D|RenderingContext|RenderingContext2|Null')
- Object _getContext_2(contextId) native;
-
- @DomName('HTMLCanvasElement.toBlob')
- @DocsEditable()
- @Experimental() // untriaged
- void toBlob(BlobCallback callback, String type, [Object arguments]) native;
-
- @JSName('toDataURL')
- @DomName('HTMLCanvasElement.toDataURL')
- @DocsEditable()
- String _toDataUrl(String type, [arguments_OR_quality]) native;
-
- /// Stream of `webglcontextlost` events handled by this [CanvasElement].
- @DomName('HTMLCanvasElement.onwebglcontextlost')
- @DocsEditable()
- ElementStream<gl.ContextEvent> get onWebGlContextLost =>
- webGlContextLostEvent.forElement(this);
-
- /// Stream of `webglcontextrestored` events handled by this [CanvasElement].
- @DomName('HTMLCanvasElement.onwebglcontextrestored')
- @DocsEditable()
- ElementStream<gl.ContextEvent> get onWebGlContextRestored =>
- webGlContextRestoredEvent.forElement(this);
-
- /** An API for drawing on this canvas. */
- CanvasRenderingContext2D get context2D =>
- JS('Null|CanvasRenderingContext2D', '#.getContext(#)', this, '2d');
-
- /**
- * Returns a new Web GL context for this canvas.
- *
- * ## Other resources
- *
- * * [WebGL fundamentals](http://www.html5rocks.com/en/tutorials/webgl/webgl_fundamentals/)
- * from HTML5Rocks.
- * * [WebGL homepage](http://get.webgl.org/).
- */
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.FIREFOX)
- @Experimental()
- gl.RenderingContext getContext3d(
- {alpha: true,
- depth: true,
- stencil: false,
- antialias: true,
- premultipliedAlpha: true,
- preserveDrawingBuffer: false}) {
- var options = {
- 'alpha': alpha,
- 'depth': depth,
- 'stencil': stencil,
- 'antialias': antialias,
- 'premultipliedAlpha': premultipliedAlpha,
- 'preserveDrawingBuffer': preserveDrawingBuffer,
- };
- var context = getContext('webgl', options);
- if (context == null) {
- context = getContext('experimental-webgl', options);
- }
- return context;
- }
-
- /**
- * Returns a data URI containing a representation of the image in the
- * format specified by type (defaults to 'image/png').
- *
- * Data Uri format is as follow
- * `data:[<MIME-type>][;charset=<encoding>][;base64],<data>`
- *
- * Optional parameter [quality] in the range of 0.0 and 1.0 can be used when
- * requesting [type] 'image/jpeg' or 'image/webp'. If [quality] is not passed
- * the default value is used. Note: the default value varies by browser.
- *
- * If the height or width of this canvas element is 0, then 'data:' is
- * returned, representing no data.
- *
- * If the type requested is not 'image/png', and the returned value is
- * 'data:image/png', then the requested type is not supported.
- *
- * Example usage:
- *
- * CanvasElement canvas = new CanvasElement();
- * var ctx = canvas.context2D
- * ..fillStyle = "rgb(200,0,0)"
- * ..fillRect(10, 10, 55, 50);
- * var dataUrl = canvas.toDataUrl("image/jpeg", 0.95);
- * // The Data Uri would look similar to
- * // 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA
- * // AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
- * // 9TXL0Y4OHwAAAABJRU5ErkJggg=='
- * //Create a new image element from the data URI.
- * var img = new ImageElement();
- * img.src = dataUrl;
- * document.body.children.add(img);
- *
- * See also:
- *
- * * [Data URI Scheme](http://en.wikipedia.org/wiki/Data_URI_scheme) from Wikipedia.
- *
- * * [HTMLCanvasElement](https://developer.mozilla.org/en-US/docs/DOM/HTMLCanvasElement) from MDN.
- *
- * * [toDataUrl](http://dev.w3.org/html5/spec/the-canvas-element.html#dom-canvas-todataurl) from W3C.
- */
- String toDataUrl([String type = 'image/png', num quality]) =>
- _toDataUrl(type, quality);
-}
-// 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.
-
-@DocsEditable()
-/**
- * An opaque canvas object representing a gradient.
- *
- * Created by calling [createLinearGradient] or [createRadialGradient] on a
- * [CanvasRenderingContext2D] object.
- *
- * Example usage:
- *
- * var canvas = new CanvasElement(width: 600, height: 600);
- * var ctx = canvas.context2D;
- * ctx.clearRect(0, 0, 600, 600);
- * ctx.save();
- * // Create radial gradient.
- * CanvasGradient gradient = ctx.createRadialGradient(0, 0, 0, 0, 0, 600);
- * gradient.addColorStop(0, '#000');
- * gradient.addColorStop(1, 'rgb(255, 255, 255)');
- * // Assign gradients to fill.
- * ctx.fillStyle = gradient;
- * // Draw a rectangle with a gradient fill.
- * ctx.fillRect(0, 0, 600, 600);
- * ctx.save();
- * document.body.children.add(canvas);
- *
- * See also:
- *
- * * [CanvasGradient](https://developer.mozilla.org/en-US/docs/DOM/CanvasGradient) from MDN.
- * * [CanvasGradient](https://html.spec.whatwg.org/multipage/scripting.html#canvasgradient)
- * from WHATWG.
- * * [CanvasGradient](http://www.w3.org/TR/2010/WD-2dcontext-20100304/#canvasgradient) from W3C.
- */
-@DomName('CanvasGradient')
-@Native("CanvasGradient")
-class CanvasGradient extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory CanvasGradient._() {
- throw new UnsupportedError("Not supported");
- }
-
- /**
- * Adds a color stop to this gradient at the offset.
- *
- * The [offset] can range between 0.0 and 1.0.
- *
- * See also:
- *
- * * [Multiple Color Stops](https://developer.mozilla.org/en-US/docs/CSS/linear-gradient#Gradient_with_multiple_color_stops) from MDN.
- */
- @DomName('CanvasGradient.addColorStop')
- @DocsEditable()
- void addColorStop(num offset, String color) native;
-}
-// 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.
-
-@DocsEditable()
-/**
- * An opaque object representing a pattern of image, canvas, or video.
- *
- * Created by calling [createPattern] on a [CanvasRenderingContext2D] object.
- *
- * Example usage:
- *
- * var canvas = new CanvasElement(width: 600, height: 600);
- * var ctx = canvas.context2D;
- * var img = new ImageElement();
- * // Image src needs to be loaded before pattern is applied.
- * img.onLoad.listen((event) {
- * // When the image is loaded, create a pattern
- * // from the ImageElement.
- * CanvasPattern pattern = ctx.createPattern(img, 'repeat');
- * ctx.rect(0, 0, canvas.width, canvas.height);
- * ctx.fillStyle = pattern;
- * ctx.fill();
- * });
- * img.src = "images/foo.jpg";
- * document.body.children.add(canvas);
- *
- * See also:
- * * [CanvasPattern](https://developer.mozilla.org/en-US/docs/DOM/CanvasPattern) from MDN.
- * * [CanvasPattern](https://html.spec.whatwg.org/multipage/scripting.html#canvaspattern)
- * from WHATWG.
- * * [CanvasPattern](http://www.w3.org/TR/2010/WD-2dcontext-20100304/#canvaspattern) from W3C.
- */
-@DomName('CanvasPattern')
-@Native("CanvasPattern")
-class CanvasPattern extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory CanvasPattern._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('CanvasPattern.setTransform')
- @DocsEditable()
- @Experimental() // untriaged
- void setTransform(Matrix transform) native;
-}
-// 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.
-
-abstract class CanvasRenderingContext {
- CanvasElement get canvas;
-}
-
-@DomName('CanvasRenderingContext2D')
-@Native("CanvasRenderingContext2D")
-class CanvasRenderingContext2D extends Interceptor
- implements CanvasRenderingContext {
- // To suppress missing implicit constructor warnings.
- factory CanvasRenderingContext2D._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('CanvasRenderingContext2D.canvas')
- @DocsEditable()
- @Experimental() // untriaged
- final CanvasElement canvas;
-
- @DomName('CanvasRenderingContext2D.currentTransform')
- @DocsEditable()
- @Experimental() // untriaged
- Matrix currentTransform;
-
- @DomName('CanvasRenderingContext2D.direction')
- @DocsEditable()
- @Experimental() // untriaged
- String direction;
-
- @DomName('CanvasRenderingContext2D.fillStyle')
- @DocsEditable()
- @Creates('String|CanvasGradient|CanvasPattern')
- @Returns('String|CanvasGradient|CanvasPattern')
- Object fillStyle;
-
- @DomName('CanvasRenderingContext2D.filter')
- @DocsEditable()
- @Experimental() // untriaged
- String filter;
-
- @DomName('CanvasRenderingContext2D.font')
- @DocsEditable()
- String font;
-
- @DomName('CanvasRenderingContext2D.globalAlpha')
- @DocsEditable()
- num globalAlpha;
-
- @DomName('CanvasRenderingContext2D.globalCompositeOperation')
- @DocsEditable()
- String globalCompositeOperation;
-
- /**
- * Whether images and patterns on this canvas will be smoothed when this
- * canvas is scaled.
- *
- * ## Other resources
- *
- * * [Image
- * smoothing](https://html.spec.whatwg.org/multipage/scripting.html#image-smoothing)
- * from WHATWG.
- */
- @DomName('CanvasRenderingContext2D.imageSmoothingEnabled')
- @DocsEditable()
- @Experimental() // untriaged
- bool imageSmoothingEnabled;
-
- @DomName('CanvasRenderingContext2D.imageSmoothingQuality')
- @DocsEditable()
- @Experimental() // untriaged
- String imageSmoothingQuality;
-
- @DomName('CanvasRenderingContext2D.lineCap')
- @DocsEditable()
- String lineCap;
-
- @DomName('CanvasRenderingContext2D.lineJoin')
- @DocsEditable()
- String lineJoin;
-
- @DomName('CanvasRenderingContext2D.lineWidth')
- @DocsEditable()
- num lineWidth;
-
- @DomName('CanvasRenderingContext2D.miterLimit')
- @DocsEditable()
- num miterLimit;
-
- @DomName('CanvasRenderingContext2D.shadowBlur')
- @DocsEditable()
- num shadowBlur;
-
- @DomName('CanvasRenderingContext2D.shadowColor')
- @DocsEditable()
- String shadowColor;
-
- @DomName('CanvasRenderingContext2D.shadowOffsetX')
- @DocsEditable()
- num shadowOffsetX;
-
- @DomName('CanvasRenderingContext2D.shadowOffsetY')
- @DocsEditable()
- num shadowOffsetY;
-
- @DomName('CanvasRenderingContext2D.strokeStyle')
- @DocsEditable()
- @Creates('String|CanvasGradient|CanvasPattern')
- @Returns('String|CanvasGradient|CanvasPattern')
- Object strokeStyle;
-
- @DomName('CanvasRenderingContext2D.textAlign')
- @DocsEditable()
- String textAlign;
-
- @DomName('CanvasRenderingContext2D.textBaseline')
- @DocsEditable()
- String textBaseline;
-
- @DomName('CanvasRenderingContext2D.addHitRegion')
- @DocsEditable()
- @Experimental() // untriaged
- void addHitRegion([Map options]) {
- if (options != null) {
- var options_1 = convertDartToNative_Dictionary(options);
- _addHitRegion_1(options_1);
- return;
- }
- _addHitRegion_2();
- return;
- }
-
- @JSName('addHitRegion')
- @DomName('CanvasRenderingContext2D.addHitRegion')
- @DocsEditable()
- @Experimental() // untriaged
- void _addHitRegion_1(options) native;
- @JSName('addHitRegion')
- @DomName('CanvasRenderingContext2D.addHitRegion')
- @DocsEditable()
- @Experimental() // untriaged
- void _addHitRegion_2() native;
-
- @DomName('CanvasRenderingContext2D.beginPath')
- @DocsEditable()
- void beginPath() native;
-
- @DomName('CanvasRenderingContext2D.clearHitRegions')
- @DocsEditable()
- @Experimental() // untriaged
- void clearHitRegions() native;
-
- @DomName('CanvasRenderingContext2D.clearRect')
- @DocsEditable()
- void clearRect(num x, num y, num width, num height) native;
-
- @DomName('CanvasRenderingContext2D.clip')
- @DocsEditable()
- void clip([path_OR_winding, String winding]) native;
-
- @DomName('CanvasRenderingContext2D.createImageData')
- @DocsEditable()
- @Creates('ImageData|=Object')
- ImageData createImageData(imagedata_OR_sw, [num sh]) {
- if ((imagedata_OR_sw is ImageData) && sh == null) {
- var imagedata_1 = convertDartToNative_ImageData(imagedata_OR_sw);
- return convertNativeToDart_ImageData(_createImageData_1(imagedata_1));
- }
- if (sh != null && (imagedata_OR_sw is num)) {
- return convertNativeToDart_ImageData(
- _createImageData_2(imagedata_OR_sw, sh));
- }
- throw new ArgumentError("Incorrect number or type of arguments");
- }
-
- @JSName('createImageData')
- @DomName('CanvasRenderingContext2D.createImageData')
- @DocsEditable()
- @Creates('ImageData|=Object')
- _createImageData_1(imagedata) native;
- @JSName('createImageData')
- @DomName('CanvasRenderingContext2D.createImageData')
- @DocsEditable()
- @Creates('ImageData|=Object')
- _createImageData_2(num sw, sh) native;
-
- @DomName('CanvasRenderingContext2D.createLinearGradient')
- @DocsEditable()
- CanvasGradient createLinearGradient(num x0, num y0, num x1, num y1) native;
-
- @DomName('CanvasRenderingContext2D.createPattern')
- @DocsEditable()
- CanvasPattern createPattern(Object image, String repetitionType) native;
-
- @DomName('CanvasRenderingContext2D.createRadialGradient')
- @DocsEditable()
- CanvasGradient createRadialGradient(
- num x0, num y0, num r0, num x1, num y1, num r1) native;
-
- @DomName('CanvasRenderingContext2D.drawFocusIfNeeded')
- @DocsEditable()
- @Experimental() // untriaged
- void drawFocusIfNeeded(element_OR_path, [Element element]) native;
-
- @DomName('CanvasRenderingContext2D.fillRect')
- @DocsEditable()
- void fillRect(num x, num y, num width, num height) native;
-
- @DomName('CanvasRenderingContext2D.getContextAttributes')
- @DocsEditable()
- // http://wiki.whatwg.org/wiki/CanvasOpaque#Suggested_IDL
- @Experimental()
- Map getContextAttributes() {
- return convertNativeToDart_Dictionary(_getContextAttributes_1());
- }
-
- @JSName('getContextAttributes')
- @DomName('CanvasRenderingContext2D.getContextAttributes')
- @DocsEditable()
- // http://wiki.whatwg.org/wiki/CanvasOpaque#Suggested_IDL
- @Experimental()
- _getContextAttributes_1() native;
-
- @DomName('CanvasRenderingContext2D.getImageData')
- @DocsEditable()
- @Creates('ImageData|=Object')
- ImageData getImageData(num sx, num sy, num sw, num sh) {
- return convertNativeToDart_ImageData(_getImageData_1(sx, sy, sw, sh));
- }
-
- @JSName('getImageData')
- @DomName('CanvasRenderingContext2D.getImageData')
- @DocsEditable()
- @Creates('ImageData|=Object')
- _getImageData_1(sx, sy, sw, sh) native;
-
- @JSName('getLineDash')
- @DomName('CanvasRenderingContext2D.getLineDash')
- @DocsEditable()
- List<num> _getLineDash() native;
-
- @DomName('CanvasRenderingContext2D.isContextLost')
- @DocsEditable()
- @Experimental() // untriaged
- bool isContextLost() native;
-
- @DomName('CanvasRenderingContext2D.isPointInPath')
- @DocsEditable()
- bool isPointInPath(path_OR_x, num x_OR_y, [winding_OR_y, String winding])
- native;
-
- @DomName('CanvasRenderingContext2D.isPointInStroke')
- @DocsEditable()
- bool isPointInStroke(path_OR_x, num x_OR_y, [num y]) native;
-
- @DomName('CanvasRenderingContext2D.measureText')
- @DocsEditable()
- TextMetrics measureText(String text) native;
-
- @DomName('CanvasRenderingContext2D.putImageData')
- @DocsEditable()
- void putImageData(ImageData imagedata, num dx, num dy,
- [num dirtyX, num dirtyY, num dirtyWidth, num dirtyHeight]) {
- if (dirtyX == null &&
- dirtyY == null &&
- dirtyWidth == null &&
- dirtyHeight == null) {
- var imagedata_1 = convertDartToNative_ImageData(imagedata);
- _putImageData_1(imagedata_1, dx, dy);
- return;
- }
- if (dirtyHeight != null &&
- dirtyWidth != null &&
- dirtyY != null &&
- dirtyX != null) {
- var imagedata_1 = convertDartToNative_ImageData(imagedata);
- _putImageData_2(
- imagedata_1, dx, dy, dirtyX, dirtyY, dirtyWidth, dirtyHeight);
- return;
- }
- throw new ArgumentError("Incorrect number or type of arguments");
- }
-
- @JSName('putImageData')
- @DomName('CanvasRenderingContext2D.putImageData')
- @DocsEditable()
- void _putImageData_1(imagedata, dx, dy) native;
- @JSName('putImageData')
- @DomName('CanvasRenderingContext2D.putImageData')
- @DocsEditable()
- void _putImageData_2(
- imagedata, dx, dy, dirtyX, dirtyY, dirtyWidth, dirtyHeight) native;
-
- @DomName('CanvasRenderingContext2D.removeHitRegion')
- @DocsEditable()
- @Experimental() // untriaged
- void removeHitRegion(String id) native;
-
- @DomName('CanvasRenderingContext2D.resetTransform')
- @DocsEditable()
- @Experimental() // untriaged
- void resetTransform() native;
-
- @DomName('CanvasRenderingContext2D.restore')
- @DocsEditable()
- void restore() native;
-
- @DomName('CanvasRenderingContext2D.rotate')
- @DocsEditable()
- void rotate(num angle) native;
-
- @DomName('CanvasRenderingContext2D.save')
- @DocsEditable()
- void save() native;
-
- @DomName('CanvasRenderingContext2D.scale')
- @DocsEditable()
- void scale(num x, num y) native;
-
- @DomName('CanvasRenderingContext2D.scrollPathIntoView')
- @DocsEditable()
- @Experimental() // untriaged
- void scrollPathIntoView([Path2D path]) native;
-
- @DomName('CanvasRenderingContext2D.setTransform')
- @DocsEditable()
- void setTransform(num a, num b, num c, num d, num e, num f) native;
-
- @DomName('CanvasRenderingContext2D.stroke')
- @DocsEditable()
- void stroke([Path2D path]) native;
-
- @DomName('CanvasRenderingContext2D.strokeRect')
- @DocsEditable()
- void strokeRect(num x, num y, num width, num height) native;
-
- @DomName('CanvasRenderingContext2D.strokeText')
- @DocsEditable()
- void strokeText(String text, num x, num y, [num maxWidth]) native;
-
- @DomName('CanvasRenderingContext2D.transform')
- @DocsEditable()
- void transform(num a, num b, num c, num d, num e, num f) native;
-
- @DomName('CanvasRenderingContext2D.translate')
- @DocsEditable()
- void translate(num x, num y) native;
-
- // From CanvasPathMethods
-
- @JSName('arc')
- @DomName('CanvasRenderingContext2D.arc')
- @DocsEditable()
- void _arc(num x, num y, num radius, num startAngle, num endAngle,
- bool anticlockwise) native;
-
- @DomName('CanvasRenderingContext2D.arcTo')
- @DocsEditable()
- void arcTo(num x1, num y1, num x2, num y2, num radius) native;
-
- @DomName('CanvasRenderingContext2D.bezierCurveTo')
- @DocsEditable()
- void bezierCurveTo(num cp1x, num cp1y, num cp2x, num cp2y, num x, num y)
- native;
-
- @DomName('CanvasRenderingContext2D.closePath')
- @DocsEditable()
- void closePath() native;
-
- @DomName('CanvasRenderingContext2D.ellipse')
- @DocsEditable()
- @Experimental() // untriaged
- void ellipse(num x, num y, num radiusX, num radiusY, num rotation,
- num startAngle, num endAngle, bool anticlockwise) native;
-
- @DomName('CanvasRenderingContext2D.lineTo')
- @DocsEditable()
- void lineTo(num x, num y) native;
-
- @DomName('CanvasRenderingContext2D.moveTo')
- @DocsEditable()
- void moveTo(num x, num y) native;
-
- @DomName('CanvasRenderingContext2D.quadraticCurveTo')
- @DocsEditable()
- void quadraticCurveTo(num cpx, num cpy, num x, num y) native;
-
- @DomName('CanvasRenderingContext2D.rect')
- @DocsEditable()
- void rect(num x, num y, num width, num height) native;
-
- @DomName('CanvasRenderingContext2D.createImageDataFromImageData')
- @DocsEditable()
- ImageData createImageDataFromImageData(ImageData imagedata) =>
- JS('ImageData', '#.createImageData(#)', this, imagedata);
-
- /**
- * Sets the color used inside shapes.
- * [r], [g], [b] are 0-255, [a] is 0-1.
- */
- void setFillColorRgb(int r, int g, int b, [num a = 1]) {
- this.fillStyle = 'rgba($r, $g, $b, $a)';
- }
-
- /**
- * Sets the color used inside shapes.
- * [h] is in degrees, 0-360.
- * [s], [l] are in percent, 0-100.
- * [a] is 0-1.
- */
- void setFillColorHsl(int h, num s, num l, [num a = 1]) {
- this.fillStyle = 'hsla($h, $s%, $l%, $a)';
- }
-
- /**
- * Sets the color used for stroking shapes.
- * [r], [g], [b] are 0-255, [a] is 0-1.
- */
- void setStrokeColorRgb(int r, int g, int b, [num a = 1]) {
- this.strokeStyle = 'rgba($r, $g, $b, $a)';
- }
-
- /**
- * Sets the color used for stroking shapes.
- * [h] is in degrees, 0-360.
- * [s], [l] are in percent, 0-100.
- * [a] is 0-1.
- */
- void setStrokeColorHsl(int h, num s, num l, [num a = 1]) {
- this.strokeStyle = 'hsla($h, $s%, $l%, $a)';
- }
-
- @DomName('CanvasRenderingContext2D.arc')
- void arc(num x, num y, num radius, num startAngle, num endAngle,
- [bool anticlockwise = false]) {
- // TODO(terry): This should not be needed: dartbug.com/20939.
- JS('void', '#.arc(#, #, #, #, #, #)', this, x, y, radius, startAngle,
- endAngle, anticlockwise);
- }
-
- @DomName('CanvasRenderingContext2D.createPatternFromImage')
- CanvasPattern createPatternFromImage(
- ImageElement image, String repetitionType) =>
- JS('CanvasPattern', '#.createPattern(#, #)', this, image, repetitionType);
-
- /**
- * Draws an image from a CanvasImageSource to an area of this canvas.
- *
- * The image will be drawn to an area of this canvas defined by
- * [destRect]. [sourceRect] defines the region of the source image that is
- * drawn.
- * If [sourceRect] is not provided, then
- * the entire rectangular image from [source] will be drawn to this context.
- *
- * If the image is larger than canvas
- * will allow, the image will be clipped to fit the available space.
- *
- * CanvasElement canvas = new CanvasElement(width: 600, height: 600);
- * CanvasRenderingContext2D ctx = canvas.context2D;
- * ImageElement img = document.query('img');
- * img.width = 100;
- * img.height = 100;
- *
- * // Scale the image to 20x20.
- * ctx.drawImageToRect(img, new Rectangle(50, 50, 20, 20));
- *
- * VideoElement video = document.query('video');
- * video.width = 100;
- * video.height = 100;
- * // Take the middle 20x20 pixels from the video and stretch them.
- * ctx.drawImageToRect(video, new Rectangle(50, 50, 100, 100),
- * sourceRect: new Rectangle(40, 40, 20, 20));
- *
- * // Draw the top 100x20 pixels from the otherCanvas.
- * CanvasElement otherCanvas = document.query('canvas');
- * ctx.drawImageToRect(otherCanvas, new Rectangle(0, 0, 100, 20),
- * sourceRect: new Rectangle(0, 0, 100, 20));
- *
- * See also:
- *
- * * [CanvasImageSource] for more information on what data is retrieved
- * from [source].
- * * [drawImage](http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#dom-context-2d-drawimage)
- * from the WHATWG.
- */
- @DomName('CanvasRenderingContext2D.drawImage')
- void drawImageToRect(CanvasImageSource source, Rectangle destRect,
- {Rectangle sourceRect}) {
- if (sourceRect == null) {
- drawImageScaled(
- source, destRect.left, destRect.top, destRect.width, destRect.height);
- } else {
- drawImageScaledFromSource(
- source,
- sourceRect.left,
- sourceRect.top,
- sourceRect.width,
- sourceRect.height,
- destRect.left,
- destRect.top,
- destRect.width,
- destRect.height);
- }
- }
-
- /**
- * Draws an image from a CanvasImageSource to this canvas.
- *
- * The entire image from [source] will be drawn to this context with its top
- * left corner at the point ([destX], [destY]). If the image is
- * larger than canvas will allow, the image will be clipped to fit the
- * available space.
- *
- * CanvasElement canvas = new CanvasElement(width: 600, height: 600);
- * CanvasRenderingContext2D ctx = canvas.context2D;
- * ImageElement img = document.query('img');
- *
- * ctx.drawImage(img, 100, 100);
- *
- * VideoElement video = document.query('video');
- * ctx.drawImage(video, 0, 0);
- *
- * CanvasElement otherCanvas = document.query('canvas');
- * otherCanvas.width = 100;
- * otherCanvas.height = 100;
- * ctx.drawImage(otherCanvas, 590, 590); // will get clipped
- *
- * See also:
- *
- * * [CanvasImageSource] for more information on what data is retrieved
- * from [source].
- * * [drawImage](http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#dom-context-2d-drawimage)
- * from the WHATWG.
- */
- @DomName('CanvasRenderingContext2D.drawImage')
- @JSName('drawImage')
- void drawImage(CanvasImageSource source, num destX, num destY) native;
-
- /**
- * Draws an image from a CanvasImageSource to an area of this canvas.
- *
- * The image will be drawn to this context with its top left corner at the
- * point ([destX], [destY]) and will be scaled to be [destWidth] wide and
- * [destHeight] tall.
- *
- * If the image is larger than canvas
- * will allow, the image will be clipped to fit the available space.
- *
- * CanvasElement canvas = new CanvasElement(width: 600, height: 600);
- * CanvasRenderingContext2D ctx = canvas.context2D;
- * ImageElement img = document.query('img');
- * img.width = 100;
- * img.height = 100;
- *
- * // Scale the image to 300x50 at the point (20, 20)
- * ctx.drawImageScaled(img, 20, 20, 300, 50);
- *
- * See also:
- *
- * * [CanvasImageSource] for more information on what data is retrieved
- * from [source].
- * * [drawImage](http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#dom-context-2d-drawimage)
- * from the WHATWG.
- */
- @DomName('CanvasRenderingContext2D.drawImage')
- @JSName('drawImage')
- void drawImageScaled(CanvasImageSource source, num destX, num destY,
- num destWidth, num destHeight) native;
-
- /**
- * Draws an image from a CanvasImageSource to an area of this canvas.
- *
- * The image is a region of [source] that is [sourceWidth] wide and
- * [destHeight] tall with top left corner at ([sourceX], [sourceY]).
- * The image will be drawn to this context with its top left corner at the
- * point ([destX], [destY]) and will be scaled to be [destWidth] wide and
- * [destHeight] tall.
- *
- * If the image is larger than canvas
- * will allow, the image will be clipped to fit the available space.
- *
- * VideoElement video = document.query('video');
- * video.width = 100;
- * video.height = 100;
- * // Take the middle 20x20 pixels from the video and stretch them.
- * ctx.drawImageScaledFromSource(video, 40, 40, 20, 20, 50, 50, 100, 100);
- *
- * // Draw the top 100x20 pixels from the otherCanvas to this one.
- * CanvasElement otherCanvas = document.query('canvas');
- * ctx.drawImageScaledFromSource(otherCanvas, 0, 0, 100, 20, 0, 0, 100, 20);
- *
- * See also:
- *
- * * [CanvasImageSource] for more information on what data is retrieved
- * from [source].
- * * [drawImage](http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#dom-context-2d-drawimage)
- * from the WHATWG.
- */
- @DomName('CanvasRenderingContext2D.drawImage')
- @JSName('drawImage')
- void drawImageScaledFromSource(
- CanvasImageSource source,
- num sourceX,
- num sourceY,
- num sourceWidth,
- num sourceHeight,
- num destX,
- num destY,
- num destWidth,
- num destHeight) native;
-
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @SupportedBrowser(SupportedBrowser.IE, '11')
- @Unstable()
- @DomName('CanvasRenderingContext2D.lineDashOffset')
- // TODO(14316): Firefox has this functionality with mozDashOffset, but it
- // needs to be polyfilled.
- num get lineDashOffset =>
- JS('num', '#.lineDashOffset || #.webkitLineDashOffset', this, this);
-
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @SupportedBrowser(SupportedBrowser.IE, '11')
- @Unstable()
- @DomName('CanvasRenderingContext2D.lineDashOffset')
- // TODO(14316): Firefox has this functionality with mozDashOffset, but it
- // needs to be polyfilled.
- set lineDashOffset(num value) {
- JS(
- 'void',
- 'typeof #.lineDashOffset != "undefined" ? #.lineDashOffset = # : '
- '#.webkitLineDashOffset = #',
- this,
- this,
- value,
- this,
- value);
- }
-
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @SupportedBrowser(SupportedBrowser.IE, '11')
- @Unstable()
- @DomName('CanvasRenderingContext2D.getLineDash')
- List<num> getLineDash() {
- // TODO(14316): Firefox has this functionality with mozDash, but it's a bit
- // different.
- if (JS('bool', '!!#.getLineDash', this)) {
- return JS('List<num>', '#.getLineDash()', this);
- } else if (JS('bool', '!!#.webkitLineDash', this)) {
- return JS('List<num>', '#.webkitLineDash', this);
- }
- }
-
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @SupportedBrowser(SupportedBrowser.IE, '11')
- @Unstable()
- @DomName('CanvasRenderingContext2D.setLineDash')
- void setLineDash(List<num> dash) {
- // TODO(14316): Firefox has this functionality with mozDash, but it's a bit
- // different.
- if (JS('bool', '!!#.setLineDash', this)) {
- JS('void', '#.setLineDash(#)', this, dash);
- } else if (JS('bool', '!!#.webkitLineDash', this)) {
- JS('void', '#.webkitLineDash = #', this, dash);
- }
- }
-
- /**
- * Draws text to the canvas.
- *
- * The text is drawn starting at coordinates ([x], [y]).
- * If [maxWidth] is provided and the [text] is computed to be wider than
- * [maxWidth], then the drawn text is scaled down horizontally to fit.
- *
- * The text uses the current [CanvasRenderingContext2D.font] property for font
- * options, such as typeface and size, and the current
- * [CanvasRenderingContext2D.fillStyle] for style options such as color.
- * The current [CanvasRenderingContext2D.textAlign] and
- * [CanvasRenderingContext2D.textBaseLine] properties are also applied to the
- * drawn text.
- */
- @DomName('CanvasRenderingContext2D.fillText')
- void fillText(String text, num x, num y, [num maxWidth]) {
- if (maxWidth != null) {
- JS('void', '#.fillText(#, #, #, #)', this, text, x, y, maxWidth);
- } else {
- JS('void', '#.fillText(#, #, #)', this, text, x, y);
- }
- }
-
- @DomName('CanvasRenderingContext2D.fill')
- void fill([String winding = 'nonzero']) {
- JS('void', '#.fill(#)', this, winding);
- }
-
- /** Deprecated always returns 1.0 */
- @DomName('CanvasRenderingContext2D.webkitBackingStorePixelRation')
- @Experimental()
- @deprecated
- double get backingStorePixelRatio => 1.0;
-}
-// 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.
-
-@DocsEditable()
-@DomName('CharacterData')
-@Native("CharacterData")
-class CharacterData extends Node
- implements NonDocumentTypeChildNode, ChildNode {
- // To suppress missing implicit constructor warnings.
- factory CharacterData._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('CharacterData.data')
- @DocsEditable()
- String data;
-
- @DomName('CharacterData.length')
- @DocsEditable()
- final int length;
-
- @DomName('CharacterData.appendData')
- @DocsEditable()
- void appendData(String data) native;
-
- @DomName('CharacterData.deleteData')
- @DocsEditable()
- void deleteData(int offset, int count) native;
-
- @DomName('CharacterData.insertData')
- @DocsEditable()
- void insertData(int offset, String data) native;
-
- @DomName('CharacterData.replaceData')
- @DocsEditable()
- void replaceData(int offset, int count, String data) native;
-
- @DomName('CharacterData.substringData')
- @DocsEditable()
- String substringData(int offset, int count) native;
-
- // From ChildNode
-
- // From NonDocumentTypeChildNode
-
- @DomName('CharacterData.nextElementSibling')
- @DocsEditable()
- final Element nextElementSibling;
-
- @DomName('CharacterData.previousElementSibling')
- @DocsEditable()
- final Element previousElementSibling;
-}
-// 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.
-
-@DocsEditable()
-@DomName('ChildNode')
-@Experimental() // untriaged
-abstract class ChildNode extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory ChildNode._() {
- throw new UnsupportedError("Not supported");
- }
-
- void remove();
-}
-// 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.
-
-@DocsEditable()
-@DomName('CHROMIUMValuebuffer')
-@Experimental() // untriaged
-@Native("CHROMIUMValuebuffer")
-class ChromiumValuebuffer extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory ChromiumValuebuffer._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('CircularGeofencingRegion')
-@Experimental() // untriaged
-@Native("CircularGeofencingRegion")
-class CircularGeofencingRegion extends GeofencingRegion {
- // To suppress missing implicit constructor warnings.
- factory CircularGeofencingRegion._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('CircularGeofencingRegion.CircularGeofencingRegion')
- @DocsEditable()
- factory CircularGeofencingRegion(Map init) {
- var init_1 = convertDartToNative_Dictionary(init);
- return CircularGeofencingRegion._create_1(init_1);
- }
- static CircularGeofencingRegion _create_1(init) =>
- JS('CircularGeofencingRegion', 'new CircularGeofencingRegion(#)', init);
-
- @DomName('CircularGeofencingRegion.MAX_RADIUS')
- @DocsEditable()
- @Experimental() // untriaged
- static const num MAX_RADIUS = 100.0;
-
- @DomName('CircularGeofencingRegion.MIN_RADIUS')
- @DocsEditable()
- @Experimental() // untriaged
- static const num MIN_RADIUS = 1.0;
-
- @DomName('CircularGeofencingRegion.latitude')
- @DocsEditable()
- @Experimental() // untriaged
- final double latitude;
-
- @DomName('CircularGeofencingRegion.longitude')
- @DocsEditable()
- @Experimental() // untriaged
- final double longitude;
-
- @DomName('CircularGeofencingRegion.radius')
- @DocsEditable()
- @Experimental() // untriaged
- final double radius;
-}
-// 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.
-
-@DocsEditable()
-@DomName('Client')
-@Experimental() // untriaged
-@Native("Client")
-class Client extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory Client._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('Client.frameType')
- @DocsEditable()
- @Experimental() // untriaged
- final String frameType;
-
- @DomName('Client.id')
- @DocsEditable()
- @Experimental() // untriaged
- final String id;
-
- @DomName('Client.url')
- @DocsEditable()
- @Experimental() // untriaged
- final String url;
-
- @DomName('Client.postMessage')
- @DocsEditable()
- @Experimental() // untriaged
- void postMessage(/*SerializedScriptValue*/ message,
- [List<MessagePort> transfer]) {
- if (transfer != null) {
- var message_1 = convertDartToNative_SerializedScriptValue(message);
- _postMessage_1(message_1, transfer);
- return;
- }
- var message_1 = convertDartToNative_SerializedScriptValue(message);
- _postMessage_2(message_1);
- return;
- }
-
- @JSName('postMessage')
- @DomName('Client.postMessage')
- @DocsEditable()
- @Experimental() // untriaged
- void _postMessage_1(message, List<MessagePort> transfer) native;
- @JSName('postMessage')
- @DomName('Client.postMessage')
- @DocsEditable()
- @Experimental() // untriaged
- void _postMessage_2(message) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('Clients')
-@Experimental() // untriaged
-@Native("Clients")
-class Clients extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory Clients._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('Clients.claim')
- @DocsEditable()
- @Experimental() // untriaged
- Future claim() native;
-
- @DomName('Clients.get')
- @DocsEditable()
- @Experimental() // untriaged
- Future get(String id) native;
-
- @DomName('Clients.matchAll')
- @DocsEditable()
- @Experimental() // untriaged
- Future matchAll([Map options]) {
- if (options != null) {
- var options_1 = convertDartToNative_Dictionary(options);
- return _matchAll_1(options_1);
- }
- return _matchAll_2();
- }
-
- @JSName('matchAll')
- @DomName('Clients.matchAll')
- @DocsEditable()
- @Experimental() // untriaged
- Future _matchAll_1(options) native;
- @JSName('matchAll')
- @DomName('Clients.matchAll')
- @DocsEditable()
- @Experimental() // untriaged
- Future _matchAll_2() native;
-
- @DomName('Clients.openWindow')
- @DocsEditable()
- @Experimental() // untriaged
- Future openWindow(String url) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('ClipboardEvent')
-@Experimental() // untriaged
-@Native("ClipboardEvent")
-class ClipboardEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory ClipboardEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('ClipboardEvent.clipboardData')
- @DocsEditable()
- @Experimental() // untriaged
- final DataTransfer clipboardData;
-}
-// 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.
-
-@DocsEditable()
-@DomName('CloseEvent')
-@Native("CloseEvent")
-class CloseEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory CloseEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('CloseEvent.CloseEvent')
- @DocsEditable()
- factory CloseEvent(String type, [Map eventInitDict]) {
- if (eventInitDict != null) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return CloseEvent._create_1(type, eventInitDict_1);
- }
- return CloseEvent._create_2(type);
- }
- static CloseEvent _create_1(type, eventInitDict) =>
- JS('CloseEvent', 'new CloseEvent(#,#)', type, eventInitDict);
- static CloseEvent _create_2(type) =>
- JS('CloseEvent', 'new CloseEvent(#)', type);
-
- @DomName('CloseEvent.code')
- @DocsEditable()
- final int code;
-
- @DomName('CloseEvent.reason')
- @DocsEditable()
- final String reason;
-
- @DomName('CloseEvent.wasClean')
- @DocsEditable()
- final bool wasClean;
-}
-// 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.
-
-@DocsEditable()
-@DomName('Comment')
-@Native("Comment")
-class Comment extends CharacterData {
- factory Comment([String data]) {
- return JS('returns:Comment;depends:none;effects:none;new:true',
- '#.createComment(#)', document, data == null ? "" : data);
- }
- // To suppress missing implicit constructor warnings.
- factory Comment._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('CompositionEvent')
-@Native("CompositionEvent")
-class CompositionEvent extends UIEvent {
- factory CompositionEvent(String type,
- {bool canBubble: false,
- bool cancelable: false,
- Window view,
- String data,
- String locale}) {
- if (view == null) {
- view = window;
- }
- CompositionEvent e = document._createEvent("CompositionEvent");
-
- if (Device.isFirefox) {
- // Firefox requires the locale parameter that isn't supported elsewhere.
- JS('void', '#.initCompositionEvent(#, #, #, #, #, #)', e, type, canBubble,
- cancelable, view, data, locale);
- } else {
- e._initCompositionEvent(type, canBubble, cancelable, view, data);
- }
-
- return e;
- }
-
- @DomName('CompositionEvent.CompositionEvent')
- @DocsEditable()
- factory CompositionEvent._(String type, [Map eventInitDict]) {
- if (eventInitDict != null) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return CompositionEvent._create_1(type, eventInitDict_1);
- }
- return CompositionEvent._create_2(type);
- }
- static CompositionEvent _create_1(type, eventInitDict) =>
- JS('CompositionEvent', 'new CompositionEvent(#,#)', type, eventInitDict);
- static CompositionEvent _create_2(type) =>
- JS('CompositionEvent', 'new CompositionEvent(#)', type);
-
- @DomName('CompositionEvent.data')
- @DocsEditable()
- final String data;
-
- @JSName('initCompositionEvent')
- @DomName('CompositionEvent.initCompositionEvent')
- @DocsEditable()
- void _initCompositionEvent(String type, bool bubbles, bool cancelable,
- Window view, String data) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('CompositorProxy')
-@Experimental() // untriaged
-@Native("CompositorProxy")
-class CompositorProxy extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory CompositorProxy._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('CompositorProxy.CompositorProxy')
- @DocsEditable()
- factory CompositorProxy(Element element, List<String> attributeArray) {
- return CompositorProxy._create_1(element, attributeArray);
- }
- static CompositorProxy _create_1(element, attributeArray) => JS(
- 'CompositorProxy', 'new CompositorProxy(#,#)', element, attributeArray);
-
- @DomName('CompositorProxy.opacity')
- @DocsEditable()
- @Experimental() // untriaged
- num opacity;
-
- @DomName('CompositorProxy.scrollLeft')
- @DocsEditable()
- @Experimental() // untriaged
- num scrollLeft;
-
- @DomName('CompositorProxy.scrollTop')
- @DocsEditable()
- @Experimental() // untriaged
- num scrollTop;
-
- @DomName('CompositorProxy.transform')
- @DocsEditable()
- @Experimental() // untriaged
- DomMatrix transform;
-
- @DomName('CompositorProxy.disconnect')
- @DocsEditable()
- @Experimental() // untriaged
- void disconnect() native;
-
- @DomName('CompositorProxy.supports')
- @DocsEditable()
- @Experimental() // untriaged
- bool supports(String attribute) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('CompositorWorker')
-@Experimental() // untriaged
-@Native("CompositorWorker")
-class CompositorWorker extends EventTarget implements AbstractWorker {
- // To suppress missing implicit constructor warnings.
- factory CompositorWorker._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('CompositorWorker.errorEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> errorEvent =
- const EventStreamProvider<Event>('error');
-
- @DomName('CompositorWorker.messageEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MessageEvent> messageEvent =
- const EventStreamProvider<MessageEvent>('message');
-
- @DomName('CompositorWorker.CompositorWorker')
- @DocsEditable()
- factory CompositorWorker(String scriptUrl) {
- return CompositorWorker._create_1(scriptUrl);
- }
- static CompositorWorker _create_1(scriptUrl) =>
- JS('CompositorWorker', 'new CompositorWorker(#)', scriptUrl);
-
- @DomName('CompositorWorker.postMessage')
- @DocsEditable()
- @Experimental() // untriaged
- void postMessage(/*SerializedScriptValue*/ message,
- [List<MessagePort> transfer]) {
- if (transfer != null) {
- var message_1 = convertDartToNative_SerializedScriptValue(message);
- _postMessage_1(message_1, transfer);
- return;
- }
- var message_1 = convertDartToNative_SerializedScriptValue(message);
- _postMessage_2(message_1);
- return;
- }
-
- @JSName('postMessage')
- @DomName('CompositorWorker.postMessage')
- @DocsEditable()
- @Experimental() // untriaged
- void _postMessage_1(message, List<MessagePort> transfer) native;
- @JSName('postMessage')
- @DomName('CompositorWorker.postMessage')
- @DocsEditable()
- @Experimental() // untriaged
- void _postMessage_2(message) native;
-
- @DomName('CompositorWorker.terminate')
- @DocsEditable()
- @Experimental() // untriaged
- void terminate() native;
-
- @DomName('CompositorWorker.onerror')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onError => errorEvent.forTarget(this);
-
- @DomName('CompositorWorker.onmessage')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('CompositorWorkerGlobalScope')
-@Experimental() // untriaged
-@Native("CompositorWorkerGlobalScope")
-class CompositorWorkerGlobalScope extends WorkerGlobalScope {
- // To suppress missing implicit constructor warnings.
- factory CompositorWorkerGlobalScope._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('CompositorWorkerGlobalScope.messageEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MessageEvent> messageEvent =
- const EventStreamProvider<MessageEvent>('message');
-
- @DomName('CompositorWorkerGlobalScope.cancelAnimationFrame')
- @DocsEditable()
- @Experimental() // untriaged
- void cancelAnimationFrame(int handle) native;
-
- @DomName('CompositorWorkerGlobalScope.postMessage')
- @DocsEditable()
- @Experimental() // untriaged
- void postMessage(/*any*/ message, [List<MessagePort> transfer]) {
- if (transfer != null) {
- var message_1 = convertDartToNative_SerializedScriptValue(message);
- _postMessage_1(message_1, transfer);
- return;
- }
- var message_1 = convertDartToNative_SerializedScriptValue(message);
- _postMessage_2(message_1);
- return;
- }
-
- @JSName('postMessage')
- @DomName('CompositorWorkerGlobalScope.postMessage')
- @DocsEditable()
- @Experimental() // untriaged
- void _postMessage_1(message, List<MessagePort> transfer) native;
- @JSName('postMessage')
- @DomName('CompositorWorkerGlobalScope.postMessage')
- @DocsEditable()
- @Experimental() // untriaged
- void _postMessage_2(message) native;
-
- @DomName('CompositorWorkerGlobalScope.requestAnimationFrame')
- @DocsEditable()
- @Experimental() // untriaged
- int requestAnimationFrame(FrameRequestCallback callback) native;
-
- @DomName('CompositorWorkerGlobalScope.onmessage')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
-}
-// 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.
-
-@DomName('Console')
-class Console {
- const Console._safe();
-
- static const Console _safeConsole = const Console._safe();
-
- bool get _isConsoleDefined => JS('bool', 'typeof console != "undefined"');
-
- @DomName('Console.memory')
- MemoryInfo get memory =>
- _isConsoleDefined ? JS('MemoryInfo', 'console.memory') : null;
-
- @DomName('Console.assertCondition')
- void assertCondition(bool condition, Object arg) => _isConsoleDefined
- ? JS('void', 'console.assertCondition(#, #)', condition, arg)
- : null;
-
- @DomName('Console.clear')
- void clear(Object arg) =>
- _isConsoleDefined ? JS('void', 'console.clear(#)', arg) : null;
-
- @DomName('Console.count')
- void count(Object arg) =>
- _isConsoleDefined ? JS('void', 'console.count(#)', arg) : null;
-
- @DomName('Console.debug')
- void debug(Object arg) =>
- _isConsoleDefined ? JS('void', 'console.debug(#)', arg) : null;
-
- @DomName('Console.dir')
- void dir(Object arg) =>
- _isConsoleDefined ? JS('void', 'console.dir(#)', arg) : null;
-
- @DomName('Console.dirxml')
- void dirxml(Object arg) =>
- _isConsoleDefined ? JS('void', 'console.dirxml(#)', arg) : null;
-
- @DomName('Console.error')
- void error(Object arg) =>
- _isConsoleDefined ? JS('void', 'console.error(#)', arg) : null;
-
- @DomName('Console.group')
- void group(Object arg) =>
- _isConsoleDefined ? JS('void', 'console.group(#)', arg) : null;
-
- @DomName('Console.groupCollapsed')
- void groupCollapsed(Object arg) =>
- _isConsoleDefined ? JS('void', 'console.groupCollapsed(#)', arg) : null;
-
- @DomName('Console.groupEnd')
- void groupEnd() =>
- _isConsoleDefined ? JS('void', 'console.groupEnd()') : null;
-
- @DomName('Console.info')
- void info(Object arg) =>
- _isConsoleDefined ? JS('void', 'console.info(#)', arg) : null;
-
- @DomName('Console.log')
- void log(Object arg) =>
- _isConsoleDefined ? JS('void', 'console.log(#)', arg) : null;
-
- @DomName('Console.markTimeline')
- void markTimeline(Object arg) =>
- _isConsoleDefined ? JS('void', 'console.markTimeline(#)', arg) : null;
-
- @DomName('Console.profile')
- void profile(String title) =>
- _isConsoleDefined ? JS('void', 'console.profile(#)', title) : null;
-
- @DomName('Console.profileEnd')
- void profileEnd(String title) =>
- _isConsoleDefined ? JS('void', 'console.profileEnd(#)', title) : null;
-
- @DomName('Console.table')
- void table(Object arg) =>
- _isConsoleDefined ? JS('void', 'console.table(#)', arg) : null;
-
- @DomName('Console.time')
- void time(String title) =>
- _isConsoleDefined ? JS('void', 'console.time(#)', title) : null;
-
- @DomName('Console.timeEnd')
- void timeEnd(String title) =>
- _isConsoleDefined ? JS('void', 'console.timeEnd(#)', title) : null;
-
- @DomName('Console.timeStamp')
- void timeStamp(Object arg) =>
- _isConsoleDefined ? JS('void', 'console.timeStamp(#)', arg) : null;
-
- @DomName('Console.trace')
- void trace(Object arg) =>
- _isConsoleDefined ? JS('void', 'console.trace(#)', arg) : null;
-
- @DomName('Console.warn')
- void warn(Object arg) =>
- _isConsoleDefined ? JS('void', 'console.warn(#)', arg) : null;
- // To suppress missing implicit constructor warnings.
- factory Console._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('ConsoleBase')
-@Experimental() // untriaged
-@Native("ConsoleBase")
-class ConsoleBase extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory ConsoleBase._() {
- throw new UnsupportedError("Not supported");
- }
-
- @JSName('assert')
- @DomName('ConsoleBase.assert')
- @DocsEditable()
- @Experimental() // untriaged
- void assertCondition(bool condition, Object arg) native;
-
- @DomName('ConsoleBase.timeline')
- @DocsEditable()
- @Experimental() // untriaged
- void timeline(String title) native;
-
- @DomName('ConsoleBase.timelineEnd')
- @DocsEditable()
- @Experimental() // untriaged
- void timelineEnd(String title) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLContentElement')
-@SupportedBrowser(SupportedBrowser.CHROME, '26')
-@Experimental()
-// https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#content-element
-@Native("HTMLContentElement")
-class ContentElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory ContentElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLContentElement.HTMLContentElement')
- @DocsEditable()
- factory ContentElement() => document.createElement("content");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- ContentElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported => Element.isTagSupported('content');
-
- @DomName('HTMLContentElement.select')
- @DocsEditable()
- String select;
-
- @DomName('HTMLContentElement.getDistributedNodes')
- @DocsEditable()
- @Returns('NodeList|Null')
- @Creates('NodeList')
- List<Node> getDistributedNodes() native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('Coordinates')
-@Native("Coordinates")
-class Coordinates extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory Coordinates._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('Coordinates.accuracy')
- @DocsEditable()
- final double accuracy;
-
- @DomName('Coordinates.altitude')
- @DocsEditable()
- final double altitude;
-
- @DomName('Coordinates.altitudeAccuracy')
- @DocsEditable()
- final double altitudeAccuracy;
-
- @DomName('Coordinates.heading')
- @DocsEditable()
- final double heading;
-
- @DomName('Coordinates.latitude')
- @DocsEditable()
- final double latitude;
-
- @DomName('Coordinates.longitude')
- @DocsEditable()
- final double longitude;
-
- @DomName('Coordinates.speed')
- @DocsEditable()
- final double speed;
-}
-// 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.
-
-@DocsEditable()
-@DomName('Credential')
-@Experimental() // untriaged
-@Native("Credential")
-class Credential extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory Credential._() {
- throw new UnsupportedError("Not supported");
- }
-
- @JSName('iconURL')
- @DomName('Credential.iconURL')
- @DocsEditable()
- @Experimental() // untriaged
- final String iconUrl;
-
- @DomName('Credential.id')
- @DocsEditable()
- @Experimental() // untriaged
- final String id;
-
- @DomName('Credential.name')
- @DocsEditable()
- @Experimental() // untriaged
- final String name;
-
- @DomName('Credential.type')
- @DocsEditable()
- @Experimental() // untriaged
- final String type;
-}
-// 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.
-
-@DocsEditable()
-@DomName('CredentialsContainer')
-@Experimental() // untriaged
-@Native("CredentialsContainer")
-class CredentialsContainer extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory CredentialsContainer._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('CredentialsContainer.get')
- @DocsEditable()
- @Experimental() // untriaged
- Future get([Map options]) {
- if (options != null) {
- var options_1 = convertDartToNative_Dictionary(options);
- return _get_1(options_1);
- }
- return _get_2();
- }
-
- @JSName('get')
- @DomName('CredentialsContainer.get')
- @DocsEditable()
- @Experimental() // untriaged
- Future _get_1(options) native;
- @JSName('get')
- @DomName('CredentialsContainer.get')
- @DocsEditable()
- @Experimental() // untriaged
- Future _get_2() native;
-
- @DomName('CredentialsContainer.requireUserMediation')
- @DocsEditable()
- @Experimental() // untriaged
- Future requireUserMediation() native;
-
- @DomName('CredentialsContainer.store')
- @DocsEditable()
- @Experimental() // untriaged
- Future store(Credential credential) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('CrossOriginServiceWorkerClient')
-@Experimental() // untriaged
-@Native("CrossOriginServiceWorkerClient")
-class CrossOriginServiceWorkerClient extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory CrossOriginServiceWorkerClient._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('CrossOriginServiceWorkerClient.origin')
- @DocsEditable()
- @Experimental() // untriaged
- final String origin;
-
- @DomName('CrossOriginServiceWorkerClient.targetUrl')
- @DocsEditable()
- @Experimental() // untriaged
- final String targetUrl;
-
- @DomName('CrossOriginServiceWorkerClient.postMessage')
- @DocsEditable()
- @Experimental() // untriaged
- void postMessage(/*SerializedScriptValue*/ message,
- [List<MessagePort> transfer]) {
- if (transfer != null) {
- var message_1 = convertDartToNative_SerializedScriptValue(message);
- _postMessage_1(message_1, transfer);
- return;
- }
- var message_1 = convertDartToNative_SerializedScriptValue(message);
- _postMessage_2(message_1);
- return;
- }
-
- @JSName('postMessage')
- @DomName('CrossOriginServiceWorkerClient.postMessage')
- @DocsEditable()
- @Experimental() // untriaged
- void _postMessage_1(message, List<MessagePort> transfer) native;
- @JSName('postMessage')
- @DomName('CrossOriginServiceWorkerClient.postMessage')
- @DocsEditable()
- @Experimental() // untriaged
- void _postMessage_2(message) native;
-}
-// 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.
-
-@DomName('Crypto')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Experimental()
-// http://www.w3.org/TR/WebCryptoAPI/
-@Native("Crypto")
-class Crypto extends Interceptor {
- TypedData getRandomValues(TypedData array) {
- return _getRandomValues(array);
- }
-
- // To suppress missing implicit constructor warnings.
- factory Crypto._() {
- throw new UnsupportedError("Not supported");
- }
-
- /// Checks if this type is supported on the current platform.
- static bool get supported =>
- JS('bool', '!!(window.crypto && window.crypto.getRandomValues)');
-
- @DomName('Crypto.subtle')
- @DocsEditable()
- @Experimental() // untriaged
- final _SubtleCrypto subtle;
-
- @JSName('getRandomValues')
- @DomName('Crypto.getRandomValues')
- @DocsEditable()
- @Creates('TypedData')
- @Returns('TypedData|Null')
- TypedData _getRandomValues(TypedData array) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('CryptoKey')
-@Experimental() // untriaged
-@Native("CryptoKey")
-class CryptoKey extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory CryptoKey._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('CryptoKey.algorithm')
- @DocsEditable()
- @Experimental() // untriaged
- @Creates('Null')
- final Object algorithm;
-
- @DomName('CryptoKey.extractable')
- @DocsEditable()
- @Experimental() // untriaged
- final bool extractable;
-
- @DomName('CryptoKey.type')
- @DocsEditable()
- @Experimental() // untriaged
- final String type;
-
- @DomName('CryptoKey.usages')
- @DocsEditable()
- @Experimental() // untriaged
- final List<String> usages;
-}
-// 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.
-
-@DocsEditable()
-@DomName('CSS')
-// http://www.w3.org/TR/css3-conditional/#the-css-interface
-@Experimental() // None
-@Native("CSS")
-class Css extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory Css._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('CSS.escape')
- @DocsEditable()
- @Experimental() // untriaged
- static String escape(String ident) native;
-
- @DomName('CSS.supports')
- @DocsEditable()
- static bool supports(String property, String value) native;
-
- @JSName('supports')
- @DomName('CSS.supports')
- @DocsEditable()
- static bool supportsCondition(String conditionText) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('CSSCharsetRule')
-// http://dev.w3.org/csswg/cssom/#the-csscharsetrule-interface
-@Experimental()
-@Native("CSSCharsetRule")
-class CssCharsetRule extends CssRule {
- // To suppress missing implicit constructor warnings.
- factory CssCharsetRule._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('CSSCharsetRule.encoding')
- @DocsEditable()
- String encoding;
-}
-// 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.
-
-@DocsEditable()
-@DomName('CSSFontFaceRule')
-@Native("CSSFontFaceRule")
-class CssFontFaceRule extends CssRule {
- // To suppress missing implicit constructor warnings.
- factory CssFontFaceRule._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('CSSFontFaceRule.style')
- @DocsEditable()
- final CssStyleDeclaration style;
-}
-// 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.
-
-@DocsEditable()
-@DomName('CSSGroupingRule')
-@Experimental() // untriaged
-@Native("CSSGroupingRule")
-class CssGroupingRule extends CssRule {
- // To suppress missing implicit constructor warnings.
- factory CssGroupingRule._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('CSSGroupingRule.cssRules')
- @DocsEditable()
- @Experimental() // untriaged
- @Returns('_CssRuleList|Null')
- @Creates('_CssRuleList')
- final List<CssRule> cssRules;
-
- @DomName('CSSGroupingRule.deleteRule')
- @DocsEditable()
- @Experimental() // untriaged
- void deleteRule(int index) native;
-
- @DomName('CSSGroupingRule.insertRule')
- @DocsEditable()
- @Experimental() // untriaged
- int insertRule(String rule, int index) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('CSSImportRule')
-@Native("CSSImportRule")
-class CssImportRule extends CssRule {
- // To suppress missing implicit constructor warnings.
- factory CssImportRule._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('CSSImportRule.href')
- @DocsEditable()
- final String href;
-
- @DomName('CSSImportRule.media')
- @DocsEditable()
- final MediaList media;
-
- @DomName('CSSImportRule.styleSheet')
- @DocsEditable()
- final CssStyleSheet styleSheet;
-}
-// 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.
-
-@DocsEditable()
-@DomName('CSSKeyframeRule')
-@Experimental() // untriaged
-@Native("CSSKeyframeRule,MozCSSKeyframeRule,WebKitCSSKeyframeRule")
-class CssKeyframeRule extends CssRule {
- // To suppress missing implicit constructor warnings.
- factory CssKeyframeRule._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('CSSKeyframeRule.keyText')
- @DocsEditable()
- @Experimental() // untriaged
- String keyText;
-
- @DomName('CSSKeyframeRule.style')
- @DocsEditable()
- @Experimental() // untriaged
- final CssStyleDeclaration style;
-}
-// 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.
-
-@DocsEditable()
-@DomName('CSSKeyframesRule')
-@Experimental() // untriaged
-@Native("CSSKeyframesRule,MozCSSKeyframesRule,WebKitCSSKeyframesRule")
-class CssKeyframesRule extends CssRule {
- // To suppress missing implicit constructor warnings.
- factory CssKeyframesRule._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('CSSKeyframesRule.cssRules')
- @DocsEditable()
- @Experimental() // untriaged
- @Returns('_CssRuleList|Null')
- @Creates('_CssRuleList')
- final List<CssRule> cssRules;
-
- @DomName('CSSKeyframesRule.name')
- @DocsEditable()
- @Experimental() // untriaged
- String name;
-
- @DomName('CSSKeyframesRule.__getter__')
- @DocsEditable()
- @Experimental() // untriaged
- CssKeyframeRule __getter__(int index) native;
-
- @DomName('CSSKeyframesRule.appendRule')
- @DocsEditable()
- @Experimental() // untriaged
- void appendRule(String rule) native;
-
- @DomName('CSSKeyframesRule.deleteRule')
- @DocsEditable()
- @Experimental() // untriaged
- void deleteRule(String select) native;
-
- @DomName('CSSKeyframesRule.findRule')
- @DocsEditable()
- @Experimental() // untriaged
- CssKeyframeRule findRule(String select) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('CSSMediaRule')
-@Native("CSSMediaRule")
-class CssMediaRule extends CssGroupingRule {
- // To suppress missing implicit constructor warnings.
- factory CssMediaRule._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('CSSMediaRule.media')
- @DocsEditable()
- final MediaList media;
-}
-// 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.
-
-@DocsEditable()
-@DomName('CSSNamespaceRule')
-@Experimental() // untriaged
-@Native("CSSNamespaceRule")
-class CssNamespaceRule extends CssRule {
- // To suppress missing implicit constructor warnings.
- factory CssNamespaceRule._() {
- throw new UnsupportedError("Not supported");
- }
-
- @JSName('namespaceURI')
- @DomName('CSSNamespaceRule.namespaceURI')
- @DocsEditable()
- @Experimental() // untriaged
- final String namespaceUri;
-
- @DomName('CSSNamespaceRule.prefix')
- @DocsEditable()
- @Experimental() // untriaged
- final String prefix;
-}
-// 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.
-
-@DocsEditable()
-@DomName('CSSPageRule')
-@Native("CSSPageRule")
-class CssPageRule extends CssRule {
- // To suppress missing implicit constructor warnings.
- factory CssPageRule._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('CSSPageRule.selectorText')
- @DocsEditable()
- String selectorText;
-
- @DomName('CSSPageRule.style')
- @DocsEditable()
- final CssStyleDeclaration style;
-}
-// 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.
-
-@DocsEditable()
-@DomName('CSSRule')
-@Native("CSSRule")
-class CssRule extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory CssRule._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('CSSRule.CHARSET_RULE')
- @DocsEditable()
- static const int CHARSET_RULE = 2;
-
- @DomName('CSSRule.FONT_FACE_RULE')
- @DocsEditable()
- static const int FONT_FACE_RULE = 5;
-
- @DomName('CSSRule.IMPORT_RULE')
- @DocsEditable()
- static const int IMPORT_RULE = 3;
-
- @DomName('CSSRule.KEYFRAMES_RULE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int KEYFRAMES_RULE = 7;
-
- @DomName('CSSRule.KEYFRAME_RULE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int KEYFRAME_RULE = 8;
-
- @DomName('CSSRule.MEDIA_RULE')
- @DocsEditable()
- static const int MEDIA_RULE = 4;
-
- @DomName('CSSRule.NAMESPACE_RULE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int NAMESPACE_RULE = 10;
-
- @DomName('CSSRule.PAGE_RULE')
- @DocsEditable()
- static const int PAGE_RULE = 6;
-
- @DomName('CSSRule.STYLE_RULE')
- @DocsEditable()
- static const int STYLE_RULE = 1;
-
- @DomName('CSSRule.SUPPORTS_RULE')
- @DocsEditable()
- static const int SUPPORTS_RULE = 12;
-
- @DomName('CSSRule.VIEWPORT_RULE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int VIEWPORT_RULE = 15;
-
- @DomName('CSSRule.WEBKIT_KEYFRAMES_RULE')
- @DocsEditable()
- // http://www.w3.org/TR/css3-animations/#cssrule
- @Experimental()
- static const int WEBKIT_KEYFRAMES_RULE = 7;
-
- @DomName('CSSRule.WEBKIT_KEYFRAME_RULE')
- @DocsEditable()
- // http://www.w3.org/TR/css3-animations/#cssrule
- @Experimental()
- static const int WEBKIT_KEYFRAME_RULE = 8;
-
- @DomName('CSSRule.cssText')
- @DocsEditable()
- String cssText;
-
- @DomName('CSSRule.parentRule')
- @DocsEditable()
- final CssRule parentRule;
-
- @DomName('CSSRule.parentStyleSheet')
- @DocsEditable()
- final CssStyleSheet parentStyleSheet;
-
- @DomName('CSSRule.type')
- @DocsEditable()
- final int type;
-}
-
-// 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.
-
-// WARNING: DO NOT EDIT THIS TEMPLATE FILE.
-// The template file was generated by scripts/css_code_generator.py
-
-// Source of CSS properties:
-// CSSPropertyNames.in
-
-@DomName('CSSStyleDeclaration')
-@Native("CSSStyleDeclaration,MSStyleCSSProperties,CSS2Properties")
-class CssStyleDeclaration extends Interceptor with CssStyleDeclarationBase {
- factory CssStyleDeclaration() => new CssStyleDeclaration.css('');
-
- factory CssStyleDeclaration.css(String css) {
- final style = new DivElement().style;
- style.cssText = css;
- return style;
- }
-
- /// Returns the value of the property if the provided *CSS* property
- /// name is supported on this element and if the value is set. Otherwise
- /// returns an empty string.
- ///
- /// Please note the property name uses camelCase, not-hyphens.
- String getPropertyValue(String propertyName) {
- var propValue = _getPropertyValueHelper(propertyName);
- return propValue ?? '';
- }
-
- String _getPropertyValueHelper(String propertyName) {
- return _getPropertyValue(_browserPropertyName(propertyName));
- }
-
- /**
- * Returns true if the provided *CSS* property name is supported on this
- * element.
- *
- * Please note the property name camelCase, not-hyphens. This
- * method returns true if the property is accessible via an unprefixed _or_
- * prefixed property.
- */
- bool supportsProperty(String propertyName) {
- return _supportsProperty(propertyName) ||
- _supportsProperty(_camelCase("${Device.cssPrefix}$propertyName"));
- }
-
- bool _supportsProperty(String propertyName) {
- return JS('bool', '# in #', propertyName, this);
- }
-
- @DomName('CSSStyleDeclaration.setProperty')
- void setProperty(String propertyName, String value, [String priority]) {
- return _setPropertyHelper(
- _browserPropertyName(propertyName), value, priority);
- }
-
- String _browserPropertyName(String propertyName) {
- String name = _readCache(propertyName);
- if (name is String) return name;
- name = _supportedBrowserPropertyName(propertyName);
- _writeCache(propertyName, name);
- return name;
- }
-
- String _supportedBrowserPropertyName(String propertyName) {
- if (_supportsProperty(_camelCase(propertyName))) {
- return propertyName;
- }
- var prefixed = "${Device.cssPrefix}$propertyName";
- if (_supportsProperty(prefixed)) {
- return prefixed;
- }
- // May be a CSS variable, just use it as provided.
- return propertyName;
- }
-
- static final _propertyCache = JS('', '{}');
- static String _readCache(String key) =>
- JS('String|Null', '#[#]', _propertyCache, key);
- static void _writeCache(String key, String value) {
- JS('void', '#[#] = #', _propertyCache, key, value);
- }
-
- static String _camelCase(String hyphenated) {
- var replacedMs = JS('String', r'#.replace(/^-ms-/, "ms-")', hyphenated);
- return JS(
- 'String',
- r'#.replace(/-([\da-z])/ig,'
- r'function(_, letter) { return letter.toUpperCase();})',
- replacedMs);
- }
-
- void _setPropertyHelper(String propertyName, String value,
- [String priority]) {
- if (value == null) value = '';
- if (priority == null) priority = '';
- JS('void', '#.setProperty(#, #, #)', this, propertyName, value, priority);
- }
-
- /**
- * Checks to see if CSS Transitions are supported.
- */
- static bool get supportsTransitions {
- return document.body.style.supportsProperty('transition');
- }
-
- // To suppress missing implicit constructor warnings.
- factory CssStyleDeclaration._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('CSSStyleDeclaration.cssFloat')
- @DocsEditable()
- @Experimental() // untriaged
- String cssFloat;
-
- @DomName('CSSStyleDeclaration.cssText')
- @DocsEditable()
- String cssText;
-
- @DomName('CSSStyleDeclaration.length')
- @DocsEditable()
- final int length;
-
- @DomName('CSSStyleDeclaration.parentRule')
- @DocsEditable()
- final CssRule parentRule;
-
- @DomName('CSSStyleDeclaration.getPropertyPriority')
- @DocsEditable()
- String getPropertyPriority(String property) native;
-
- @JSName('getPropertyValue')
- @DomName('CSSStyleDeclaration.getPropertyValue')
- @DocsEditable()
- String _getPropertyValue(String property) native;
-
- @DomName('CSSStyleDeclaration.item')
- @DocsEditable()
- String item(int index) native;
-
- @DomName('CSSStyleDeclaration.removeProperty')
- @DocsEditable()
- String removeProperty(String property) native;
-
- /** Gets the value of "background" */
- String get background => this._background;
-
- /** Sets the value of "background" */
- set background(String value) {
- _background = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('background')
- String _background;
-
- /** Gets the value of "background-attachment" */
- String get backgroundAttachment => this._backgroundAttachment;
-
- /** Sets the value of "background-attachment" */
- set backgroundAttachment(String value) {
- _backgroundAttachment = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('backgroundAttachment')
- String _backgroundAttachment;
-
- /** Gets the value of "background-color" */
- String get backgroundColor => this._backgroundColor;
-
- /** Sets the value of "background-color" */
- set backgroundColor(String value) {
- _backgroundColor = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('backgroundColor')
- String _backgroundColor;
-
- /** Gets the value of "background-image" */
- String get backgroundImage => this._backgroundImage;
-
- /** Sets the value of "background-image" */
- set backgroundImage(String value) {
- _backgroundImage = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('backgroundImage')
- String _backgroundImage;
-
- /** Gets the value of "background-position" */
- String get backgroundPosition => this._backgroundPosition;
-
- /** Sets the value of "background-position" */
- set backgroundPosition(String value) {
- _backgroundPosition = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('backgroundPosition')
- String _backgroundPosition;
-
- /** Gets the value of "background-repeat" */
- String get backgroundRepeat => this._backgroundRepeat;
-
- /** Sets the value of "background-repeat" */
- set backgroundRepeat(String value) {
- _backgroundRepeat = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('backgroundRepeat')
- String _backgroundRepeat;
-
- /** Gets the value of "border" */
- String get border => this._border;
-
- /** Sets the value of "border" */
- set border(String value) {
- _border = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('border')
- String _border;
-
- /** Gets the value of "border-bottom" */
- String get borderBottom => this._borderBottom;
-
- /** Sets the value of "border-bottom" */
- set borderBottom(String value) {
- _borderBottom = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('borderBottom')
- String _borderBottom;
-
- /** Gets the value of "border-bottom-color" */
- String get borderBottomColor => this._borderBottomColor;
-
- /** Sets the value of "border-bottom-color" */
- set borderBottomColor(String value) {
- _borderBottomColor = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('borderBottomColor')
- String _borderBottomColor;
-
- /** Gets the value of "border-bottom-style" */
- String get borderBottomStyle => this._borderBottomStyle;
-
- /** Sets the value of "border-bottom-style" */
- set borderBottomStyle(String value) {
- _borderBottomStyle = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('borderBottomStyle')
- String _borderBottomStyle;
-
- /** Gets the value of "border-bottom-width" */
- String get borderBottomWidth => this._borderBottomWidth;
-
- /** Sets the value of "border-bottom-width" */
- set borderBottomWidth(String value) {
- _borderBottomWidth = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('borderBottomWidth')
- String _borderBottomWidth;
-
- /** Gets the value of "border-collapse" */
- String get borderCollapse => this._borderCollapse;
-
- /** Sets the value of "border-collapse" */
- set borderCollapse(String value) {
- _borderCollapse = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('borderCollapse')
- String _borderCollapse;
-
- /** Gets the value of "border-color" */
- String get borderColor => this._borderColor;
-
- /** Sets the value of "border-color" */
- set borderColor(String value) {
- _borderColor = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('borderColor')
- String _borderColor;
-
- /** Gets the value of "border-left" */
- String get borderLeft => this._borderLeft;
-
- /** Sets the value of "border-left" */
- set borderLeft(String value) {
- _borderLeft = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('borderLeft')
- String _borderLeft;
-
- /** Gets the value of "border-left-color" */
- String get borderLeftColor => this._borderLeftColor;
-
- /** Sets the value of "border-left-color" */
- set borderLeftColor(String value) {
- _borderLeftColor = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('borderLeftColor')
- String _borderLeftColor;
-
- /** Gets the value of "border-left-style" */
- String get borderLeftStyle => this._borderLeftStyle;
-
- /** Sets the value of "border-left-style" */
- set borderLeftStyle(String value) {
- _borderLeftStyle = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('borderLeftStyle')
- String _borderLeftStyle;
-
- /** Gets the value of "border-left-width" */
- String get borderLeftWidth => this._borderLeftWidth;
-
- /** Sets the value of "border-left-width" */
- set borderLeftWidth(String value) {
- _borderLeftWidth = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('borderLeftWidth')
- String _borderLeftWidth;
-
- /** Gets the value of "border-right" */
- String get borderRight => this._borderRight;
-
- /** Sets the value of "border-right" */
- set borderRight(String value) {
- _borderRight = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('borderRight')
- String _borderRight;
-
- /** Gets the value of "border-right-color" */
- String get borderRightColor => this._borderRightColor;
-
- /** Sets the value of "border-right-color" */
- set borderRightColor(String value) {
- _borderRightColor = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('borderRightColor')
- String _borderRightColor;
-
- /** Gets the value of "border-right-style" */
- String get borderRightStyle => this._borderRightStyle;
-
- /** Sets the value of "border-right-style" */
- set borderRightStyle(String value) {
- _borderRightStyle = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('borderRightStyle')
- String _borderRightStyle;
-
- /** Gets the value of "border-right-width" */
- String get borderRightWidth => this._borderRightWidth;
-
- /** Sets the value of "border-right-width" */
- set borderRightWidth(String value) {
- _borderRightWidth = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('borderRightWidth')
- String _borderRightWidth;
-
- /** Gets the value of "border-spacing" */
- String get borderSpacing => this._borderSpacing;
-
- /** Sets the value of "border-spacing" */
- set borderSpacing(String value) {
- _borderSpacing = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('borderSpacing')
- String _borderSpacing;
-
- /** Gets the value of "border-style" */
- String get borderStyle => this._borderStyle;
-
- /** Sets the value of "border-style" */
- set borderStyle(String value) {
- _borderStyle = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('borderStyle')
- String _borderStyle;
-
- /** Gets the value of "border-top" */
- String get borderTop => this._borderTop;
-
- /** Sets the value of "border-top" */
- set borderTop(String value) {
- _borderTop = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('borderTop')
- String _borderTop;
-
- /** Gets the value of "border-top-color" */
- String get borderTopColor => this._borderTopColor;
-
- /** Sets the value of "border-top-color" */
- set borderTopColor(String value) {
- _borderTopColor = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('borderTopColor')
- String _borderTopColor;
-
- /** Gets the value of "border-top-style" */
- String get borderTopStyle => this._borderTopStyle;
-
- /** Sets the value of "border-top-style" */
- set borderTopStyle(String value) {
- _borderTopStyle = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('borderTopStyle')
- String _borderTopStyle;
-
- /** Gets the value of "border-top-width" */
- String get borderTopWidth => this._borderTopWidth;
-
- /** Sets the value of "border-top-width" */
- set borderTopWidth(String value) {
- _borderTopWidth = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('borderTopWidth')
- String _borderTopWidth;
-
- /** Gets the value of "border-width" */
- String get borderWidth => this._borderWidth;
-
- /** Sets the value of "border-width" */
- set borderWidth(String value) {
- _borderWidth = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('borderWidth')
- String _borderWidth;
-
- /** Gets the value of "bottom" */
- String get bottom => this._bottom;
-
- /** Sets the value of "bottom" */
- set bottom(String value) {
- _bottom = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('bottom')
- String _bottom;
-
- /** Gets the value of "caption-side" */
- String get captionSide => this._captionSide;
-
- /** Sets the value of "caption-side" */
- set captionSide(String value) {
- _captionSide = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('captionSide')
- String _captionSide;
-
- /** Gets the value of "clear" */
- String get clear => this._clear;
-
- /** Sets the value of "clear" */
- set clear(String value) {
- _clear = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('clear')
- String _clear;
-
- /** Gets the value of "clip" */
- String get clip => this._clip;
-
- /** Sets the value of "clip" */
- set clip(String value) {
- _clip = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('clip')
- String _clip;
-
- /** Gets the value of "color" */
- String get color => this._color;
-
- /** Sets the value of "color" */
- set color(String value) {
- _color = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('color')
- String _color;
-
- /** Gets the value of "content" */
- String get content => this._content;
-
- /** Sets the value of "content" */
- set content(String value) {
- _content = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('content')
- String _content;
-
- /** Gets the value of "cursor" */
- String get cursor => this._cursor;
-
- /** Sets the value of "cursor" */
- set cursor(String value) {
- _cursor = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('cursor')
- String _cursor;
-
- /** Gets the value of "direction" */
- String get direction => this._direction;
-
- /** Sets the value of "direction" */
- set direction(String value) {
- _direction = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('direction')
- String _direction;
-
- /** Gets the value of "display" */
- String get display => this._display;
-
- /** Sets the value of "display" */
- set display(String value) {
- _display = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('display')
- String _display;
-
- /** Gets the value of "empty-cells" */
- String get emptyCells => this._emptyCells;
-
- /** Sets the value of "empty-cells" */
- set emptyCells(String value) {
- _emptyCells = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('emptyCells')
- String _emptyCells;
-
- /** Gets the value of "font" */
- String get font => this._font;
-
- /** Sets the value of "font" */
- set font(String value) {
- _font = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('font')
- String _font;
-
- /** Gets the value of "font-family" */
- String get fontFamily => this._fontFamily;
-
- /** Sets the value of "font-family" */
- set fontFamily(String value) {
- _fontFamily = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('fontFamily')
- String _fontFamily;
-
- /** Gets the value of "font-size" */
- String get fontSize => this._fontSize;
-
- /** Sets the value of "font-size" */
- set fontSize(String value) {
- _fontSize = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('fontSize')
- String _fontSize;
-
- /** Gets the value of "font-style" */
- String get fontStyle => this._fontStyle;
-
- /** Sets the value of "font-style" */
- set fontStyle(String value) {
- _fontStyle = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('fontStyle')
- String _fontStyle;
-
- /** Gets the value of "font-variant" */
- String get fontVariant => this._fontVariant;
-
- /** Sets the value of "font-variant" */
- set fontVariant(String value) {
- _fontVariant = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('fontVariant')
- String _fontVariant;
-
- /** Gets the value of "font-weight" */
- String get fontWeight => this._fontWeight;
-
- /** Sets the value of "font-weight" */
- set fontWeight(String value) {
- _fontWeight = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('fontWeight')
- String _fontWeight;
-
- /** Gets the value of "height" */
- String get height => this._height;
-
- /** Sets the value of "height" */
- set height(String value) {
- _height = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('height')
- String _height;
-
- /** Gets the value of "left" */
- String get left => this._left;
-
- /** Sets the value of "left" */
- set left(String value) {
- _left = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('left')
- String _left;
-
- /** Gets the value of "letter-spacing" */
- String get letterSpacing => this._letterSpacing;
-
- /** Sets the value of "letter-spacing" */
- set letterSpacing(String value) {
- _letterSpacing = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('letterSpacing')
- String _letterSpacing;
-
- /** Gets the value of "line-height" */
- String get lineHeight => this._lineHeight;
-
- /** Sets the value of "line-height" */
- set lineHeight(String value) {
- _lineHeight = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('lineHeight')
- String _lineHeight;
-
- /** Gets the value of "list-style" */
- String get listStyle => this._listStyle;
-
- /** Sets the value of "list-style" */
- set listStyle(String value) {
- _listStyle = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('listStyle')
- String _listStyle;
-
- /** Gets the value of "list-style-image" */
- String get listStyleImage => this._listStyleImage;
-
- /** Sets the value of "list-style-image" */
- set listStyleImage(String value) {
- _listStyleImage = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('listStyleImage')
- String _listStyleImage;
-
- /** Gets the value of "list-style-position" */
- String get listStylePosition => this._listStylePosition;
-
- /** Sets the value of "list-style-position" */
- set listStylePosition(String value) {
- _listStylePosition = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('listStylePosition')
- String _listStylePosition;
-
- /** Gets the value of "list-style-type" */
- String get listStyleType => this._listStyleType;
-
- /** Sets the value of "list-style-type" */
- set listStyleType(String value) {
- _listStyleType = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('listStyleType')
- String _listStyleType;
-
- /** Gets the value of "margin" */
- String get margin => this._margin;
-
- /** Sets the value of "margin" */
- set margin(String value) {
- _margin = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('margin')
- String _margin;
-
- /** Gets the value of "margin-bottom" */
- String get marginBottom => this._marginBottom;
-
- /** Sets the value of "margin-bottom" */
- set marginBottom(String value) {
- _marginBottom = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('marginBottom')
- String _marginBottom;
-
- /** Gets the value of "margin-left" */
- String get marginLeft => this._marginLeft;
-
- /** Sets the value of "margin-left" */
- set marginLeft(String value) {
- _marginLeft = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('marginLeft')
- String _marginLeft;
-
- /** Gets the value of "margin-right" */
- String get marginRight => this._marginRight;
-
- /** Sets the value of "margin-right" */
- set marginRight(String value) {
- _marginRight = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('marginRight')
- String _marginRight;
-
- /** Gets the value of "margin-top" */
- String get marginTop => this._marginTop;
-
- /** Sets the value of "margin-top" */
- set marginTop(String value) {
- _marginTop = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('marginTop')
- String _marginTop;
-
- /** Gets the value of "max-height" */
- String get maxHeight => this._maxHeight;
-
- /** Sets the value of "max-height" */
- set maxHeight(String value) {
- _maxHeight = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('maxHeight')
- String _maxHeight;
-
- /** Gets the value of "max-width" */
- String get maxWidth => this._maxWidth;
-
- /** Sets the value of "max-width" */
- set maxWidth(String value) {
- _maxWidth = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('maxWidth')
- String _maxWidth;
-
- /** Gets the value of "min-height" */
- String get minHeight => this._minHeight;
-
- /** Sets the value of "min-height" */
- set minHeight(String value) {
- _minHeight = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('minHeight')
- String _minHeight;
-
- /** Gets the value of "min-width" */
- String get minWidth => this._minWidth;
-
- /** Sets the value of "min-width" */
- set minWidth(String value) {
- _minWidth = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('minWidth')
- String _minWidth;
-
- /** Gets the value of "outline" */
- String get outline => this._outline;
-
- /** Sets the value of "outline" */
- set outline(String value) {
- _outline = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('outline')
- String _outline;
-
- /** Gets the value of "outline-color" */
- String get outlineColor => this._outlineColor;
-
- /** Sets the value of "outline-color" */
- set outlineColor(String value) {
- _outlineColor = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('outlineColor')
- String _outlineColor;
-
- /** Gets the value of "outline-style" */
- String get outlineStyle => this._outlineStyle;
-
- /** Sets the value of "outline-style" */
- set outlineStyle(String value) {
- _outlineStyle = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('outlineStyle')
- String _outlineStyle;
-
- /** Gets the value of "outline-width" */
- String get outlineWidth => this._outlineWidth;
-
- /** Sets the value of "outline-width" */
- set outlineWidth(String value) {
- _outlineWidth = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('outlineWidth')
- String _outlineWidth;
-
- /** Gets the value of "overflow" */
- String get overflow => this._overflow;
-
- /** Sets the value of "overflow" */
- set overflow(String value) {
- _overflow = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('overflow')
- String _overflow;
-
- /** Gets the value of "padding" */
- String get padding => this._padding;
-
- /** Sets the value of "padding" */
- set padding(String value) {
- _padding = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('padding')
- String _padding;
-
- /** Gets the value of "padding-bottom" */
- String get paddingBottom => this._paddingBottom;
-
- /** Sets the value of "padding-bottom" */
- set paddingBottom(String value) {
- _paddingBottom = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('paddingBottom')
- String _paddingBottom;
-
- /** Gets the value of "padding-left" */
- String get paddingLeft => this._paddingLeft;
-
- /** Sets the value of "padding-left" */
- set paddingLeft(String value) {
- _paddingLeft = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('paddingLeft')
- String _paddingLeft;
-
- /** Gets the value of "padding-right" */
- String get paddingRight => this._paddingRight;
-
- /** Sets the value of "padding-right" */
- set paddingRight(String value) {
- _paddingRight = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('paddingRight')
- String _paddingRight;
-
- /** Gets the value of "padding-top" */
- String get paddingTop => this._paddingTop;
-
- /** Sets the value of "padding-top" */
- set paddingTop(String value) {
- _paddingTop = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('paddingTop')
- String _paddingTop;
-
- /** Gets the value of "page-break-after" */
- String get pageBreakAfter => this._pageBreakAfter;
-
- /** Sets the value of "page-break-after" */
- set pageBreakAfter(String value) {
- _pageBreakAfter = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('pageBreakAfter')
- String _pageBreakAfter;
-
- /** Gets the value of "page-break-before" */
- String get pageBreakBefore => this._pageBreakBefore;
-
- /** Sets the value of "page-break-before" */
- set pageBreakBefore(String value) {
- _pageBreakBefore = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('pageBreakBefore')
- String _pageBreakBefore;
-
- /** Gets the value of "page-break-inside" */
- String get pageBreakInside => this._pageBreakInside;
-
- /** Sets the value of "page-break-inside" */
- set pageBreakInside(String value) {
- _pageBreakInside = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('pageBreakInside')
- String _pageBreakInside;
-
- /** Gets the value of "position" */
- String get position => this._position;
-
- /** Sets the value of "position" */
- set position(String value) {
- _position = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('position')
- String _position;
-
- /** Gets the value of "quotes" */
- String get quotes => this._quotes;
-
- /** Sets the value of "quotes" */
- set quotes(String value) {
- _quotes = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('quotes')
- String _quotes;
-
- /** Gets the value of "right" */
- String get right => this._right;
-
- /** Sets the value of "right" */
- set right(String value) {
- _right = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('right')
- String _right;
-
- /** Gets the value of "table-layout" */
- String get tableLayout => this._tableLayout;
-
- /** Sets the value of "table-layout" */
- set tableLayout(String value) {
- _tableLayout = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('tableLayout')
- String _tableLayout;
-
- /** Gets the value of "text-align" */
- String get textAlign => this._textAlign;
-
- /** Sets the value of "text-align" */
- set textAlign(String value) {
- _textAlign = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('textAlign')
- String _textAlign;
-
- /** Gets the value of "text-decoration" */
- String get textDecoration => this._textDecoration;
-
- /** Sets the value of "text-decoration" */
- set textDecoration(String value) {
- _textDecoration = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('textDecoration')
- String _textDecoration;
-
- /** Gets the value of "text-indent" */
- String get textIndent => this._textIndent;
-
- /** Sets the value of "text-indent" */
- set textIndent(String value) {
- _textIndent = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('textIndent')
- String _textIndent;
-
- /** Gets the value of "text-transform" */
- String get textTransform => this._textTransform;
-
- /** Sets the value of "text-transform" */
- set textTransform(String value) {
- _textTransform = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('textTransform')
- String _textTransform;
-
- /** Gets the value of "top" */
- String get top => this._top;
-
- /** Sets the value of "top" */
- set top(String value) {
- _top = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('top')
- String _top;
-
- /** Gets the value of "unicode-bidi" */
- String get unicodeBidi => this._unicodeBidi;
-
- /** Sets the value of "unicode-bidi" */
- set unicodeBidi(String value) {
- _unicodeBidi = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('unicodeBidi')
- String _unicodeBidi;
-
- /** Gets the value of "vertical-align" */
- String get verticalAlign => this._verticalAlign;
-
- /** Sets the value of "vertical-align" */
- set verticalAlign(String value) {
- _verticalAlign = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('verticalAlign')
- String _verticalAlign;
-
- /** Gets the value of "visibility" */
- String get visibility => this._visibility;
-
- /** Sets the value of "visibility" */
- set visibility(String value) {
- _visibility = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('visibility')
- String _visibility;
-
- /** Gets the value of "white-space" */
- String get whiteSpace => this._whiteSpace;
-
- /** Sets the value of "white-space" */
- set whiteSpace(String value) {
- _whiteSpace = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('whiteSpace')
- String _whiteSpace;
-
- /** Gets the value of "width" */
- String get width => this._width;
-
- /** Sets the value of "width" */
- set width(String value) {
- _width = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('width')
- String _width;
-
- /** Gets the value of "word-spacing" */
- String get wordSpacing => this._wordSpacing;
-
- /** Sets the value of "word-spacing" */
- set wordSpacing(String value) {
- _wordSpacing = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('wordSpacing')
- String _wordSpacing;
-
- /** Gets the value of "z-index" */
- String get zIndex => this._zIndex;
-
- /** Sets the value of "z-index" */
- set zIndex(String value) {
- _zIndex = value == null ? '' : value;
- }
-
- @Returns('String')
- @JSName('zIndex')
- String _zIndex;
-}
-
-class _CssStyleDeclarationSet extends Object with CssStyleDeclarationBase {
- final Iterable<Element> _elementIterable;
- Iterable<CssStyleDeclaration> _elementCssStyleDeclarationSetIterable;
-
- _CssStyleDeclarationSet(this._elementIterable) {
- _elementCssStyleDeclarationSetIterable =
- new List.from(_elementIterable).map((e) => e.style);
- }
-
- String getPropertyValue(String propertyName) =>
- _elementCssStyleDeclarationSetIterable.first
- .getPropertyValue(propertyName);
-
- void setProperty(String propertyName, String value, [String priority]) {
- _elementCssStyleDeclarationSetIterable
- .forEach((e) => e.setProperty(propertyName, value, priority));
- }
-
- void _setAll(String propertyName, String value) {
- value = value == null ? '' : value;
- for (Element element in _elementIterable) {
- JS('void', '#.style[#] = #', element, propertyName, value);
- }
- }
-
- /** Sets the value of "background" */
- set background(String value) {
- _setAll('background', value);
- }
-
- /** Sets the value of "background-attachment" */
- set backgroundAttachment(String value) {
- _setAll('backgroundAttachment', value);
- }
-
- /** Sets the value of "background-color" */
- set backgroundColor(String value) {
- _setAll('backgroundColor', value);
- }
-
- /** Sets the value of "background-image" */
- set backgroundImage(String value) {
- _setAll('backgroundImage', value);
- }
-
- /** Sets the value of "background-position" */
- set backgroundPosition(String value) {
- _setAll('backgroundPosition', value);
- }
-
- /** Sets the value of "background-repeat" */
- set backgroundRepeat(String value) {
- _setAll('backgroundRepeat', value);
- }
-
- /** Sets the value of "border" */
- set border(String value) {
- _setAll('border', value);
- }
-
- /** Sets the value of "border-bottom" */
- set borderBottom(String value) {
- _setAll('borderBottom', value);
- }
-
- /** Sets the value of "border-bottom-color" */
- set borderBottomColor(String value) {
- _setAll('borderBottomColor', value);
- }
-
- /** Sets the value of "border-bottom-style" */
- set borderBottomStyle(String value) {
- _setAll('borderBottomStyle', value);
- }
-
- /** Sets the value of "border-bottom-width" */
- set borderBottomWidth(String value) {
- _setAll('borderBottomWidth', value);
- }
-
- /** Sets the value of "border-collapse" */
- set borderCollapse(String value) {
- _setAll('borderCollapse', value);
- }
-
- /** Sets the value of "border-color" */
- set borderColor(String value) {
- _setAll('borderColor', value);
- }
-
- /** Sets the value of "border-left" */
- set borderLeft(String value) {
- _setAll('borderLeft', value);
- }
-
- /** Sets the value of "border-left-color" */
- set borderLeftColor(String value) {
- _setAll('borderLeftColor', value);
- }
-
- /** Sets the value of "border-left-style" */
- set borderLeftStyle(String value) {
- _setAll('borderLeftStyle', value);
- }
-
- /** Sets the value of "border-left-width" */
- set borderLeftWidth(String value) {
- _setAll('borderLeftWidth', value);
- }
-
- /** Sets the value of "border-right" */
- set borderRight(String value) {
- _setAll('borderRight', value);
- }
-
- /** Sets the value of "border-right-color" */
- set borderRightColor(String value) {
- _setAll('borderRightColor', value);
- }
-
- /** Sets the value of "border-right-style" */
- set borderRightStyle(String value) {
- _setAll('borderRightStyle', value);
- }
-
- /** Sets the value of "border-right-width" */
- set borderRightWidth(String value) {
- _setAll('borderRightWidth', value);
- }
-
- /** Sets the value of "border-spacing" */
- set borderSpacing(String value) {
- _setAll('borderSpacing', value);
- }
-
- /** Sets the value of "border-style" */
- set borderStyle(String value) {
- _setAll('borderStyle', value);
- }
-
- /** Sets the value of "border-top" */
- set borderTop(String value) {
- _setAll('borderTop', value);
- }
-
- /** Sets the value of "border-top-color" */
- set borderTopColor(String value) {
- _setAll('borderTopColor', value);
- }
-
- /** Sets the value of "border-top-style" */
- set borderTopStyle(String value) {
- _setAll('borderTopStyle', value);
- }
-
- /** Sets the value of "border-top-width" */
- set borderTopWidth(String value) {
- _setAll('borderTopWidth', value);
- }
-
- /** Sets the value of "border-width" */
- set borderWidth(String value) {
- _setAll('borderWidth', value);
- }
-
- /** Sets the value of "bottom" */
- set bottom(String value) {
- _setAll('bottom', value);
- }
-
- /** Sets the value of "caption-side" */
- set captionSide(String value) {
- _setAll('captionSide', value);
- }
-
- /** Sets the value of "clear" */
- set clear(String value) {
- _setAll('clear', value);
- }
-
- /** Sets the value of "clip" */
- set clip(String value) {
- _setAll('clip', value);
- }
-
- /** Sets the value of "color" */
- set color(String value) {
- _setAll('color', value);
- }
-
- /** Sets the value of "content" */
- set content(String value) {
- _setAll('content', value);
- }
-
- /** Sets the value of "cursor" */
- set cursor(String value) {
- _setAll('cursor', value);
- }
-
- /** Sets the value of "direction" */
- set direction(String value) {
- _setAll('direction', value);
- }
-
- /** Sets the value of "display" */
- set display(String value) {
- _setAll('display', value);
- }
-
- /** Sets the value of "empty-cells" */
- set emptyCells(String value) {
- _setAll('emptyCells', value);
- }
-
- /** Sets the value of "font" */
- set font(String value) {
- _setAll('font', value);
- }
-
- /** Sets the value of "font-family" */
- set fontFamily(String value) {
- _setAll('fontFamily', value);
- }
-
- /** Sets the value of "font-size" */
- set fontSize(String value) {
- _setAll('fontSize', value);
- }
-
- /** Sets the value of "font-style" */
- set fontStyle(String value) {
- _setAll('fontStyle', value);
- }
-
- /** Sets the value of "font-variant" */
- set fontVariant(String value) {
- _setAll('fontVariant', value);
- }
-
- /** Sets the value of "font-weight" */
- set fontWeight(String value) {
- _setAll('fontWeight', value);
- }
-
- /** Sets the value of "height" */
- set height(String value) {
- _setAll('height', value);
- }
-
- /** Sets the value of "left" */
- set left(String value) {
- _setAll('left', value);
- }
-
- /** Sets the value of "letter-spacing" */
- set letterSpacing(String value) {
- _setAll('letterSpacing', value);
- }
-
- /** Sets the value of "line-height" */
- set lineHeight(String value) {
- _setAll('lineHeight', value);
- }
-
- /** Sets the value of "list-style" */
- set listStyle(String value) {
- _setAll('listStyle', value);
- }
-
- /** Sets the value of "list-style-image" */
- set listStyleImage(String value) {
- _setAll('listStyleImage', value);
- }
-
- /** Sets the value of "list-style-position" */
- set listStylePosition(String value) {
- _setAll('listStylePosition', value);
- }
-
- /** Sets the value of "list-style-type" */
- set listStyleType(String value) {
- _setAll('listStyleType', value);
- }
-
- /** Sets the value of "margin" */
- set margin(String value) {
- _setAll('margin', value);
- }
-
- /** Sets the value of "margin-bottom" */
- set marginBottom(String value) {
- _setAll('marginBottom', value);
- }
-
- /** Sets the value of "margin-left" */
- set marginLeft(String value) {
- _setAll('marginLeft', value);
- }
-
- /** Sets the value of "margin-right" */
- set marginRight(String value) {
- _setAll('marginRight', value);
- }
-
- /** Sets the value of "margin-top" */
- set marginTop(String value) {
- _setAll('marginTop', value);
- }
-
- /** Sets the value of "max-height" */
- set maxHeight(String value) {
- _setAll('maxHeight', value);
- }
-
- /** Sets the value of "max-width" */
- set maxWidth(String value) {
- _setAll('maxWidth', value);
- }
-
- /** Sets the value of "min-height" */
- set minHeight(String value) {
- _setAll('minHeight', value);
- }
-
- /** Sets the value of "min-width" */
- set minWidth(String value) {
- _setAll('minWidth', value);
- }
-
- /** Sets the value of "outline" */
- set outline(String value) {
- _setAll('outline', value);
- }
-
- /** Sets the value of "outline-color" */
- set outlineColor(String value) {
- _setAll('outlineColor', value);
- }
-
- /** Sets the value of "outline-style" */
- set outlineStyle(String value) {
- _setAll('outlineStyle', value);
- }
-
- /** Sets the value of "outline-width" */
- set outlineWidth(String value) {
- _setAll('outlineWidth', value);
- }
-
- /** Sets the value of "overflow" */
- set overflow(String value) {
- _setAll('overflow', value);
- }
-
- /** Sets the value of "padding" */
- set padding(String value) {
- _setAll('padding', value);
- }
-
- /** Sets the value of "padding-bottom" */
- set paddingBottom(String value) {
- _setAll('paddingBottom', value);
- }
-
- /** Sets the value of "padding-left" */
- set paddingLeft(String value) {
- _setAll('paddingLeft', value);
- }
-
- /** Sets the value of "padding-right" */
- set paddingRight(String value) {
- _setAll('paddingRight', value);
- }
-
- /** Sets the value of "padding-top" */
- set paddingTop(String value) {
- _setAll('paddingTop', value);
- }
-
- /** Sets the value of "page-break-after" */
- set pageBreakAfter(String value) {
- _setAll('pageBreakAfter', value);
- }
-
- /** Sets the value of "page-break-before" */
- set pageBreakBefore(String value) {
- _setAll('pageBreakBefore', value);
- }
-
- /** Sets the value of "page-break-inside" */
- set pageBreakInside(String value) {
- _setAll('pageBreakInside', value);
- }
-
- /** Sets the value of "position" */
- set position(String value) {
- _setAll('position', value);
- }
-
- /** Sets the value of "quotes" */
- set quotes(String value) {
- _setAll('quotes', value);
- }
-
- /** Sets the value of "right" */
- set right(String value) {
- _setAll('right', value);
- }
-
- /** Sets the value of "table-layout" */
- set tableLayout(String value) {
- _setAll('tableLayout', value);
- }
-
- /** Sets the value of "text-align" */
- set textAlign(String value) {
- _setAll('textAlign', value);
- }
-
- /** Sets the value of "text-decoration" */
- set textDecoration(String value) {
- _setAll('textDecoration', value);
- }
-
- /** Sets the value of "text-indent" */
- set textIndent(String value) {
- _setAll('textIndent', value);
- }
-
- /** Sets the value of "text-transform" */
- set textTransform(String value) {
- _setAll('textTransform', value);
- }
-
- /** Sets the value of "top" */
- set top(String value) {
- _setAll('top', value);
- }
-
- /** Sets the value of "unicode-bidi" */
- set unicodeBidi(String value) {
- _setAll('unicodeBidi', value);
- }
-
- /** Sets the value of "vertical-align" */
- set verticalAlign(String value) {
- _setAll('verticalAlign', value);
- }
-
- /** Sets the value of "visibility" */
- set visibility(String value) {
- _setAll('visibility', value);
- }
-
- /** Sets the value of "white-space" */
- set whiteSpace(String value) {
- _setAll('whiteSpace', value);
- }
-
- /** Sets the value of "width" */
- set width(String value) {
- _setAll('width', value);
- }
-
- /** Sets the value of "word-spacing" */
- set wordSpacing(String value) {
- _setAll('wordSpacing', value);
- }
-
- /** Sets the value of "z-index" */
- set zIndex(String value) {
- _setAll('zIndex', value);
- }
-
- // Important note: CssStyleDeclarationSet does NOT implement every method
- // available in CssStyleDeclaration. Some of the methods don't make so much
- // sense in terms of having a resonable value to return when you're
- // considering a list of Elements. You will need to manually add any of the
- // items in the MEMBERS set if you want that functionality.
-}
-
-abstract class CssStyleDeclarationBase {
- String getPropertyValue(String propertyName);
- void setProperty(String propertyName, String value, [String priority]);
-
- /** Gets the value of "align-content" */
- String get alignContent => getPropertyValue('align-content');
-
- /** Sets the value of "align-content" */
- set alignContent(String value) {
- setProperty('align-content', value, '');
- }
-
- /** Gets the value of "align-items" */
- String get alignItems => getPropertyValue('align-items');
-
- /** Sets the value of "align-items" */
- set alignItems(String value) {
- setProperty('align-items', value, '');
- }
-
- /** Gets the value of "align-self" */
- String get alignSelf => getPropertyValue('align-self');
-
- /** Sets the value of "align-self" */
- set alignSelf(String value) {
- setProperty('align-self', value, '');
- }
-
- /** Gets the value of "animation" */
- String get animation => getPropertyValue('animation');
-
- /** Sets the value of "animation" */
- set animation(String value) {
- setProperty('animation', value, '');
- }
-
- /** Gets the value of "animation-delay" */
- String get animationDelay => getPropertyValue('animation-delay');
-
- /** Sets the value of "animation-delay" */
- set animationDelay(String value) {
- setProperty('animation-delay', value, '');
- }
-
- /** Gets the value of "animation-direction" */
- String get animationDirection => getPropertyValue('animation-direction');
-
- /** Sets the value of "animation-direction" */
- set animationDirection(String value) {
- setProperty('animation-direction', value, '');
- }
-
- /** Gets the value of "animation-duration" */
- String get animationDuration => getPropertyValue('animation-duration');
-
- /** Sets the value of "animation-duration" */
- set animationDuration(String value) {
- setProperty('animation-duration', value, '');
- }
-
- /** Gets the value of "animation-fill-mode" */
- String get animationFillMode => getPropertyValue('animation-fill-mode');
-
- /** Sets the value of "animation-fill-mode" */
- set animationFillMode(String value) {
- setProperty('animation-fill-mode', value, '');
- }
-
- /** Gets the value of "animation-iteration-count" */
- String get animationIterationCount =>
- getPropertyValue('animation-iteration-count');
-
- /** Sets the value of "animation-iteration-count" */
- set animationIterationCount(String value) {
- setProperty('animation-iteration-count', value, '');
- }
-
- /** Gets the value of "animation-name" */
- String get animationName => getPropertyValue('animation-name');
-
- /** Sets the value of "animation-name" */
- set animationName(String value) {
- setProperty('animation-name', value, '');
- }
-
- /** Gets the value of "animation-play-state" */
- String get animationPlayState => getPropertyValue('animation-play-state');
-
- /** Sets the value of "animation-play-state" */
- set animationPlayState(String value) {
- setProperty('animation-play-state', value, '');
- }
-
- /** Gets the value of "animation-timing-function" */
- String get animationTimingFunction =>
- getPropertyValue('animation-timing-function');
-
- /** Sets the value of "animation-timing-function" */
- set animationTimingFunction(String value) {
- setProperty('animation-timing-function', value, '');
- }
-
- /** Gets the value of "app-region" */
- String get appRegion => getPropertyValue('app-region');
-
- /** Sets the value of "app-region" */
- set appRegion(String value) {
- setProperty('app-region', value, '');
- }
-
- /** Gets the value of "appearance" */
- String get appearance => getPropertyValue('appearance');
-
- /** Sets the value of "appearance" */
- set appearance(String value) {
- setProperty('appearance', value, '');
- }
-
- /** Gets the value of "aspect-ratio" */
- String get aspectRatio => getPropertyValue('aspect-ratio');
-
- /** Sets the value of "aspect-ratio" */
- set aspectRatio(String value) {
- setProperty('aspect-ratio', value, '');
- }
-
- /** Gets the value of "backface-visibility" */
- String get backfaceVisibility => getPropertyValue('backface-visibility');
-
- /** Sets the value of "backface-visibility" */
- set backfaceVisibility(String value) {
- setProperty('backface-visibility', value, '');
- }
-
- /** Gets the value of "background" */
- String get background => getPropertyValue('background');
-
- /** Sets the value of "background" */
- set background(String value) {
- setProperty('background', value, '');
- }
-
- /** Gets the value of "background-attachment" */
- String get backgroundAttachment => getPropertyValue('background-attachment');
-
- /** Sets the value of "background-attachment" */
- set backgroundAttachment(String value) {
- setProperty('background-attachment', value, '');
- }
-
- /** Gets the value of "background-blend-mode" */
- String get backgroundBlendMode => getPropertyValue('background-blend-mode');
-
- /** Sets the value of "background-blend-mode" */
- set backgroundBlendMode(String value) {
- setProperty('background-blend-mode', value, '');
- }
-
- /** Gets the value of "background-clip" */
- String get backgroundClip => getPropertyValue('background-clip');
-
- /** Sets the value of "background-clip" */
- set backgroundClip(String value) {
- setProperty('background-clip', value, '');
- }
-
- /** Gets the value of "background-color" */
- String get backgroundColor => getPropertyValue('background-color');
-
- /** Sets the value of "background-color" */
- set backgroundColor(String value) {
- setProperty('background-color', value, '');
- }
-
- /** Gets the value of "background-composite" */
- String get backgroundComposite => getPropertyValue('background-composite');
-
- /** Sets the value of "background-composite" */
- set backgroundComposite(String value) {
- setProperty('background-composite', value, '');
- }
-
- /** Gets the value of "background-image" */
- String get backgroundImage => getPropertyValue('background-image');
-
- /** Sets the value of "background-image" */
- set backgroundImage(String value) {
- setProperty('background-image', value, '');
- }
-
- /** Gets the value of "background-origin" */
- String get backgroundOrigin => getPropertyValue('background-origin');
-
- /** Sets the value of "background-origin" */
- set backgroundOrigin(String value) {
- setProperty('background-origin', value, '');
- }
-
- /** Gets the value of "background-position" */
- String get backgroundPosition => getPropertyValue('background-position');
-
- /** Sets the value of "background-position" */
- set backgroundPosition(String value) {
- setProperty('background-position', value, '');
- }
-
- /** Gets the value of "background-position-x" */
- String get backgroundPositionX => getPropertyValue('background-position-x');
-
- /** Sets the value of "background-position-x" */
- set backgroundPositionX(String value) {
- setProperty('background-position-x', value, '');
- }
-
- /** Gets the value of "background-position-y" */
- String get backgroundPositionY => getPropertyValue('background-position-y');
-
- /** Sets the value of "background-position-y" */
- set backgroundPositionY(String value) {
- setProperty('background-position-y', value, '');
- }
-
- /** Gets the value of "background-repeat" */
- String get backgroundRepeat => getPropertyValue('background-repeat');
-
- /** Sets the value of "background-repeat" */
- set backgroundRepeat(String value) {
- setProperty('background-repeat', value, '');
- }
-
- /** Gets the value of "background-repeat-x" */
- String get backgroundRepeatX => getPropertyValue('background-repeat-x');
-
- /** Sets the value of "background-repeat-x" */
- set backgroundRepeatX(String value) {
- setProperty('background-repeat-x', value, '');
- }
-
- /** Gets the value of "background-repeat-y" */
- String get backgroundRepeatY => getPropertyValue('background-repeat-y');
-
- /** Sets the value of "background-repeat-y" */
- set backgroundRepeatY(String value) {
- setProperty('background-repeat-y', value, '');
- }
-
- /** Gets the value of "background-size" */
- String get backgroundSize => getPropertyValue('background-size');
-
- /** Sets the value of "background-size" */
- set backgroundSize(String value) {
- setProperty('background-size', value, '');
- }
-
- /** Gets the value of "border" */
- String get border => getPropertyValue('border');
-
- /** Sets the value of "border" */
- set border(String value) {
- setProperty('border', value, '');
- }
-
- /** Gets the value of "border-after" */
- String get borderAfter => getPropertyValue('border-after');
-
- /** Sets the value of "border-after" */
- set borderAfter(String value) {
- setProperty('border-after', value, '');
- }
-
- /** Gets the value of "border-after-color" */
- String get borderAfterColor => getPropertyValue('border-after-color');
-
- /** Sets the value of "border-after-color" */
- set borderAfterColor(String value) {
- setProperty('border-after-color', value, '');
- }
-
- /** Gets the value of "border-after-style" */
- String get borderAfterStyle => getPropertyValue('border-after-style');
-
- /** Sets the value of "border-after-style" */
- set borderAfterStyle(String value) {
- setProperty('border-after-style', value, '');
- }
-
- /** Gets the value of "border-after-width" */
- String get borderAfterWidth => getPropertyValue('border-after-width');
-
- /** Sets the value of "border-after-width" */
- set borderAfterWidth(String value) {
- setProperty('border-after-width', value, '');
- }
-
- /** Gets the value of "border-before" */
- String get borderBefore => getPropertyValue('border-before');
-
- /** Sets the value of "border-before" */
- set borderBefore(String value) {
- setProperty('border-before', value, '');
- }
-
- /** Gets the value of "border-before-color" */
- String get borderBeforeColor => getPropertyValue('border-before-color');
-
- /** Sets the value of "border-before-color" */
- set borderBeforeColor(String value) {
- setProperty('border-before-color', value, '');
- }
-
- /** Gets the value of "border-before-style" */
- String get borderBeforeStyle => getPropertyValue('border-before-style');
-
- /** Sets the value of "border-before-style" */
- set borderBeforeStyle(String value) {
- setProperty('border-before-style', value, '');
- }
-
- /** Gets the value of "border-before-width" */
- String get borderBeforeWidth => getPropertyValue('border-before-width');
-
- /** Sets the value of "border-before-width" */
- set borderBeforeWidth(String value) {
- setProperty('border-before-width', value, '');
- }
-
- /** Gets the value of "border-bottom" */
- String get borderBottom => getPropertyValue('border-bottom');
-
- /** Sets the value of "border-bottom" */
- set borderBottom(String value) {
- setProperty('border-bottom', value, '');
- }
-
- /** Gets the value of "border-bottom-color" */
- String get borderBottomColor => getPropertyValue('border-bottom-color');
-
- /** Sets the value of "border-bottom-color" */
- set borderBottomColor(String value) {
- setProperty('border-bottom-color', value, '');
- }
-
- /** Gets the value of "border-bottom-left-radius" */
- String get borderBottomLeftRadius =>
- getPropertyValue('border-bottom-left-radius');
-
- /** Sets the value of "border-bottom-left-radius" */
- set borderBottomLeftRadius(String value) {
- setProperty('border-bottom-left-radius', value, '');
- }
-
- /** Gets the value of "border-bottom-right-radius" */
- String get borderBottomRightRadius =>
- getPropertyValue('border-bottom-right-radius');
-
- /** Sets the value of "border-bottom-right-radius" */
- set borderBottomRightRadius(String value) {
- setProperty('border-bottom-right-radius', value, '');
- }
-
- /** Gets the value of "border-bottom-style" */
- String get borderBottomStyle => getPropertyValue('border-bottom-style');
-
- /** Sets the value of "border-bottom-style" */
- set borderBottomStyle(String value) {
- setProperty('border-bottom-style', value, '');
- }
-
- /** Gets the value of "border-bottom-width" */
- String get borderBottomWidth => getPropertyValue('border-bottom-width');
-
- /** Sets the value of "border-bottom-width" */
- set borderBottomWidth(String value) {
- setProperty('border-bottom-width', value, '');
- }
-
- /** Gets the value of "border-collapse" */
- String get borderCollapse => getPropertyValue('border-collapse');
-
- /** Sets the value of "border-collapse" */
- set borderCollapse(String value) {
- setProperty('border-collapse', value, '');
- }
-
- /** Gets the value of "border-color" */
- String get borderColor => getPropertyValue('border-color');
-
- /** Sets the value of "border-color" */
- set borderColor(String value) {
- setProperty('border-color', value, '');
- }
-
- /** Gets the value of "border-end" */
- String get borderEnd => getPropertyValue('border-end');
-
- /** Sets the value of "border-end" */
- set borderEnd(String value) {
- setProperty('border-end', value, '');
- }
-
- /** Gets the value of "border-end-color" */
- String get borderEndColor => getPropertyValue('border-end-color');
-
- /** Sets the value of "border-end-color" */
- set borderEndColor(String value) {
- setProperty('border-end-color', value, '');
- }
-
- /** Gets the value of "border-end-style" */
- String get borderEndStyle => getPropertyValue('border-end-style');
-
- /** Sets the value of "border-end-style" */
- set borderEndStyle(String value) {
- setProperty('border-end-style', value, '');
- }
-
- /** Gets the value of "border-end-width" */
- String get borderEndWidth => getPropertyValue('border-end-width');
-
- /** Sets the value of "border-end-width" */
- set borderEndWidth(String value) {
- setProperty('border-end-width', value, '');
- }
-
- /** Gets the value of "border-fit" */
- String get borderFit => getPropertyValue('border-fit');
-
- /** Sets the value of "border-fit" */
- set borderFit(String value) {
- setProperty('border-fit', value, '');
- }
-
- /** Gets the value of "border-horizontal-spacing" */
- String get borderHorizontalSpacing =>
- getPropertyValue('border-horizontal-spacing');
-
- /** Sets the value of "border-horizontal-spacing" */
- set borderHorizontalSpacing(String value) {
- setProperty('border-horizontal-spacing', value, '');
- }
-
- /** Gets the value of "border-image" */
- String get borderImage => getPropertyValue('border-image');
-
- /** Sets the value of "border-image" */
- set borderImage(String value) {
- setProperty('border-image', value, '');
- }
-
- /** Gets the value of "border-image-outset" */
- String get borderImageOutset => getPropertyValue('border-image-outset');
-
- /** Sets the value of "border-image-outset" */
- set borderImageOutset(String value) {
- setProperty('border-image-outset', value, '');
- }
-
- /** Gets the value of "border-image-repeat" */
- String get borderImageRepeat => getPropertyValue('border-image-repeat');
-
- /** Sets the value of "border-image-repeat" */
- set borderImageRepeat(String value) {
- setProperty('border-image-repeat', value, '');
- }
-
- /** Gets the value of "border-image-slice" */
- String get borderImageSlice => getPropertyValue('border-image-slice');
-
- /** Sets the value of "border-image-slice" */
- set borderImageSlice(String value) {
- setProperty('border-image-slice', value, '');
- }
-
- /** Gets the value of "border-image-source" */
- String get borderImageSource => getPropertyValue('border-image-source');
-
- /** Sets the value of "border-image-source" */
- set borderImageSource(String value) {
- setProperty('border-image-source', value, '');
- }
-
- /** Gets the value of "border-image-width" */
- String get borderImageWidth => getPropertyValue('border-image-width');
-
- /** Sets the value of "border-image-width" */
- set borderImageWidth(String value) {
- setProperty('border-image-width', value, '');
- }
-
- /** Gets the value of "border-left" */
- String get borderLeft => getPropertyValue('border-left');
-
- /** Sets the value of "border-left" */
- set borderLeft(String value) {
- setProperty('border-left', value, '');
- }
-
- /** Gets the value of "border-left-color" */
- String get borderLeftColor => getPropertyValue('border-left-color');
-
- /** Sets the value of "border-left-color" */
- set borderLeftColor(String value) {
- setProperty('border-left-color', value, '');
- }
-
- /** Gets the value of "border-left-style" */
- String get borderLeftStyle => getPropertyValue('border-left-style');
-
- /** Sets the value of "border-left-style" */
- set borderLeftStyle(String value) {
- setProperty('border-left-style', value, '');
- }
-
- /** Gets the value of "border-left-width" */
- String get borderLeftWidth => getPropertyValue('border-left-width');
-
- /** Sets the value of "border-left-width" */
- set borderLeftWidth(String value) {
- setProperty('border-left-width', value, '');
- }
-
- /** Gets the value of "border-radius" */
- String get borderRadius => getPropertyValue('border-radius');
-
- /** Sets the value of "border-radius" */
- set borderRadius(String value) {
- setProperty('border-radius', value, '');
- }
-
- /** Gets the value of "border-right" */
- String get borderRight => getPropertyValue('border-right');
-
- /** Sets the value of "border-right" */
- set borderRight(String value) {
- setProperty('border-right', value, '');
- }
-
- /** Gets the value of "border-right-color" */
- String get borderRightColor => getPropertyValue('border-right-color');
-
- /** Sets the value of "border-right-color" */
- set borderRightColor(String value) {
- setProperty('border-right-color', value, '');
- }
-
- /** Gets the value of "border-right-style" */
- String get borderRightStyle => getPropertyValue('border-right-style');
-
- /** Sets the value of "border-right-style" */
- set borderRightStyle(String value) {
- setProperty('border-right-style', value, '');
- }
-
- /** Gets the value of "border-right-width" */
- String get borderRightWidth => getPropertyValue('border-right-width');
-
- /** Sets the value of "border-right-width" */
- set borderRightWidth(String value) {
- setProperty('border-right-width', value, '');
- }
-
- /** Gets the value of "border-spacing" */
- String get borderSpacing => getPropertyValue('border-spacing');
-
- /** Sets the value of "border-spacing" */
- set borderSpacing(String value) {
- setProperty('border-spacing', value, '');
- }
-
- /** Gets the value of "border-start" */
- String get borderStart => getPropertyValue('border-start');
-
- /** Sets the value of "border-start" */
- set borderStart(String value) {
- setProperty('border-start', value, '');
- }
-
- /** Gets the value of "border-start-color" */
- String get borderStartColor => getPropertyValue('border-start-color');
-
- /** Sets the value of "border-start-color" */
- set borderStartColor(String value) {
- setProperty('border-start-color', value, '');
- }
-
- /** Gets the value of "border-start-style" */
- String get borderStartStyle => getPropertyValue('border-start-style');
-
- /** Sets the value of "border-start-style" */
- set borderStartStyle(String value) {
- setProperty('border-start-style', value, '');
- }
-
- /** Gets the value of "border-start-width" */
- String get borderStartWidth => getPropertyValue('border-start-width');
-
- /** Sets the value of "border-start-width" */
- set borderStartWidth(String value) {
- setProperty('border-start-width', value, '');
- }
-
- /** Gets the value of "border-style" */
- String get borderStyle => getPropertyValue('border-style');
-
- /** Sets the value of "border-style" */
- set borderStyle(String value) {
- setProperty('border-style', value, '');
- }
-
- /** Gets the value of "border-top" */
- String get borderTop => getPropertyValue('border-top');
-
- /** Sets the value of "border-top" */
- set borderTop(String value) {
- setProperty('border-top', value, '');
- }
-
- /** Gets the value of "border-top-color" */
- String get borderTopColor => getPropertyValue('border-top-color');
-
- /** Sets the value of "border-top-color" */
- set borderTopColor(String value) {
- setProperty('border-top-color', value, '');
- }
-
- /** Gets the value of "border-top-left-radius" */
- String get borderTopLeftRadius => getPropertyValue('border-top-left-radius');
-
- /** Sets the value of "border-top-left-radius" */
- set borderTopLeftRadius(String value) {
- setProperty('border-top-left-radius', value, '');
- }
-
- /** Gets the value of "border-top-right-radius" */
- String get borderTopRightRadius =>
- getPropertyValue('border-top-right-radius');
-
- /** Sets the value of "border-top-right-radius" */
- set borderTopRightRadius(String value) {
- setProperty('border-top-right-radius', value, '');
- }
-
- /** Gets the value of "border-top-style" */
- String get borderTopStyle => getPropertyValue('border-top-style');
-
- /** Sets the value of "border-top-style" */
- set borderTopStyle(String value) {
- setProperty('border-top-style', value, '');
- }
-
- /** Gets the value of "border-top-width" */
- String get borderTopWidth => getPropertyValue('border-top-width');
-
- /** Sets the value of "border-top-width" */
- set borderTopWidth(String value) {
- setProperty('border-top-width', value, '');
- }
-
- /** Gets the value of "border-vertical-spacing" */
- String get borderVerticalSpacing =>
- getPropertyValue('border-vertical-spacing');
-
- /** Sets the value of "border-vertical-spacing" */
- set borderVerticalSpacing(String value) {
- setProperty('border-vertical-spacing', value, '');
- }
-
- /** Gets the value of "border-width" */
- String get borderWidth => getPropertyValue('border-width');
-
- /** Sets the value of "border-width" */
- set borderWidth(String value) {
- setProperty('border-width', value, '');
- }
-
- /** Gets the value of "bottom" */
- String get bottom => getPropertyValue('bottom');
-
- /** Sets the value of "bottom" */
- set bottom(String value) {
- setProperty('bottom', value, '');
- }
-
- /** Gets the value of "box-align" */
- String get boxAlign => getPropertyValue('box-align');
-
- /** Sets the value of "box-align" */
- set boxAlign(String value) {
- setProperty('box-align', value, '');
- }
-
- /** Gets the value of "box-decoration-break" */
- String get boxDecorationBreak => getPropertyValue('box-decoration-break');
-
- /** Sets the value of "box-decoration-break" */
- set boxDecorationBreak(String value) {
- setProperty('box-decoration-break', value, '');
- }
-
- /** Gets the value of "box-direction" */
- String get boxDirection => getPropertyValue('box-direction');
-
- /** Sets the value of "box-direction" */
- set boxDirection(String value) {
- setProperty('box-direction', value, '');
- }
-
- /** Gets the value of "box-flex" */
- String get boxFlex => getPropertyValue('box-flex');
-
- /** Sets the value of "box-flex" */
- set boxFlex(String value) {
- setProperty('box-flex', value, '');
- }
-
- /** Gets the value of "box-flex-group" */
- String get boxFlexGroup => getPropertyValue('box-flex-group');
-
- /** Sets the value of "box-flex-group" */
- set boxFlexGroup(String value) {
- setProperty('box-flex-group', value, '');
- }
-
- /** Gets the value of "box-lines" */
- String get boxLines => getPropertyValue('box-lines');
-
- /** Sets the value of "box-lines" */
- set boxLines(String value) {
- setProperty('box-lines', value, '');
- }
-
- /** Gets the value of "box-ordinal-group" */
- String get boxOrdinalGroup => getPropertyValue('box-ordinal-group');
-
- /** Sets the value of "box-ordinal-group" */
- set boxOrdinalGroup(String value) {
- setProperty('box-ordinal-group', value, '');
- }
-
- /** Gets the value of "box-orient" */
- String get boxOrient => getPropertyValue('box-orient');
-
- /** Sets the value of "box-orient" */
- set boxOrient(String value) {
- setProperty('box-orient', value, '');
- }
-
- /** Gets the value of "box-pack" */
- String get boxPack => getPropertyValue('box-pack');
-
- /** Sets the value of "box-pack" */
- set boxPack(String value) {
- setProperty('box-pack', value, '');
- }
-
- /** Gets the value of "box-reflect" */
- String get boxReflect => getPropertyValue('box-reflect');
-
- /** Sets the value of "box-reflect" */
- set boxReflect(String value) {
- setProperty('box-reflect', value, '');
- }
-
- /** Gets the value of "box-shadow" */
- String get boxShadow => getPropertyValue('box-shadow');
-
- /** Sets the value of "box-shadow" */
- set boxShadow(String value) {
- setProperty('box-shadow', value, '');
- }
-
- /** Gets the value of "box-sizing" */
- String get boxSizing => getPropertyValue('box-sizing');
-
- /** Sets the value of "box-sizing" */
- set boxSizing(String value) {
- setProperty('box-sizing', value, '');
- }
-
- /** Gets the value of "caption-side" */
- String get captionSide => getPropertyValue('caption-side');
-
- /** Sets the value of "caption-side" */
- set captionSide(String value) {
- setProperty('caption-side', value, '');
- }
-
- /** Gets the value of "clear" */
- String get clear => getPropertyValue('clear');
-
- /** Sets the value of "clear" */
- set clear(String value) {
- setProperty('clear', value, '');
- }
-
- /** Gets the value of "clip" */
- String get clip => getPropertyValue('clip');
-
- /** Sets the value of "clip" */
- set clip(String value) {
- setProperty('clip', value, '');
- }
-
- /** Gets the value of "clip-path" */
- String get clipPath => getPropertyValue('clip-path');
-
- /** Sets the value of "clip-path" */
- set clipPath(String value) {
- setProperty('clip-path', value, '');
- }
-
- /** Gets the value of "color" */
- String get color => getPropertyValue('color');
-
- /** Sets the value of "color" */
- set color(String value) {
- setProperty('color', value, '');
- }
-
- /** Gets the value of "column-break-after" */
- String get columnBreakAfter => getPropertyValue('column-break-after');
-
- /** Sets the value of "column-break-after" */
- set columnBreakAfter(String value) {
- setProperty('column-break-after', value, '');
- }
-
- /** Gets the value of "column-break-before" */
- String get columnBreakBefore => getPropertyValue('column-break-before');
-
- /** Sets the value of "column-break-before" */
- set columnBreakBefore(String value) {
- setProperty('column-break-before', value, '');
- }
-
- /** Gets the value of "column-break-inside" */
- String get columnBreakInside => getPropertyValue('column-break-inside');
-
- /** Sets the value of "column-break-inside" */
- set columnBreakInside(String value) {
- setProperty('column-break-inside', value, '');
- }
-
- /** Gets the value of "column-count" */
- String get columnCount => getPropertyValue('column-count');
-
- /** Sets the value of "column-count" */
- set columnCount(String value) {
- setProperty('column-count', value, '');
- }
-
- /** Gets the value of "column-fill" */
- String get columnFill => getPropertyValue('column-fill');
-
- /** Sets the value of "column-fill" */
- set columnFill(String value) {
- setProperty('column-fill', value, '');
- }
-
- /** Gets the value of "column-gap" */
- String get columnGap => getPropertyValue('column-gap');
-
- /** Sets the value of "column-gap" */
- set columnGap(String value) {
- setProperty('column-gap', value, '');
- }
-
- /** Gets the value of "column-rule" */
- String get columnRule => getPropertyValue('column-rule');
-
- /** Sets the value of "column-rule" */
- set columnRule(String value) {
- setProperty('column-rule', value, '');
- }
-
- /** Gets the value of "column-rule-color" */
- String get columnRuleColor => getPropertyValue('column-rule-color');
-
- /** Sets the value of "column-rule-color" */
- set columnRuleColor(String value) {
- setProperty('column-rule-color', value, '');
- }
-
- /** Gets the value of "column-rule-style" */
- String get columnRuleStyle => getPropertyValue('column-rule-style');
-
- /** Sets the value of "column-rule-style" */
- set columnRuleStyle(String value) {
- setProperty('column-rule-style', value, '');
- }
-
- /** Gets the value of "column-rule-width" */
- String get columnRuleWidth => getPropertyValue('column-rule-width');
-
- /** Sets the value of "column-rule-width" */
- set columnRuleWidth(String value) {
- setProperty('column-rule-width', value, '');
- }
-
- /** Gets the value of "column-span" */
- String get columnSpan => getPropertyValue('column-span');
-
- /** Sets the value of "column-span" */
- set columnSpan(String value) {
- setProperty('column-span', value, '');
- }
-
- /** Gets the value of "column-width" */
- String get columnWidth => getPropertyValue('column-width');
-
- /** Sets the value of "column-width" */
- set columnWidth(String value) {
- setProperty('column-width', value, '');
- }
-
- /** Gets the value of "columns" */
- String get columns => getPropertyValue('columns');
-
- /** Sets the value of "columns" */
- set columns(String value) {
- setProperty('columns', value, '');
- }
-
- /** Gets the value of "content" */
- String get content => getPropertyValue('content');
-
- /** Sets the value of "content" */
- set content(String value) {
- setProperty('content', value, '');
- }
-
- /** Gets the value of "counter-increment" */
- String get counterIncrement => getPropertyValue('counter-increment');
-
- /** Sets the value of "counter-increment" */
- set counterIncrement(String value) {
- setProperty('counter-increment', value, '');
- }
-
- /** Gets the value of "counter-reset" */
- String get counterReset => getPropertyValue('counter-reset');
-
- /** Sets the value of "counter-reset" */
- set counterReset(String value) {
- setProperty('counter-reset', value, '');
- }
-
- /** Gets the value of "cursor" */
- String get cursor => getPropertyValue('cursor');
-
- /** Sets the value of "cursor" */
- set cursor(String value) {
- setProperty('cursor', value, '');
- }
-
- /** Gets the value of "direction" */
- String get direction => getPropertyValue('direction');
-
- /** Sets the value of "direction" */
- set direction(String value) {
- setProperty('direction', value, '');
- }
-
- /** Gets the value of "display" */
- String get display => getPropertyValue('display');
-
- /** Sets the value of "display" */
- set display(String value) {
- setProperty('display', value, '');
- }
-
- /** Gets the value of "empty-cells" */
- String get emptyCells => getPropertyValue('empty-cells');
-
- /** Sets the value of "empty-cells" */
- set emptyCells(String value) {
- setProperty('empty-cells', value, '');
- }
-
- /** Gets the value of "filter" */
- String get filter => getPropertyValue('filter');
-
- /** Sets the value of "filter" */
- set filter(String value) {
- setProperty('filter', value, '');
- }
-
- /** Gets the value of "flex" */
- String get flex => getPropertyValue('flex');
-
- /** Sets the value of "flex" */
- set flex(String value) {
- setProperty('flex', value, '');
- }
-
- /** Gets the value of "flex-basis" */
- String get flexBasis => getPropertyValue('flex-basis');
-
- /** Sets the value of "flex-basis" */
- set flexBasis(String value) {
- setProperty('flex-basis', value, '');
- }
-
- /** Gets the value of "flex-direction" */
- String get flexDirection => getPropertyValue('flex-direction');
-
- /** Sets the value of "flex-direction" */
- set flexDirection(String value) {
- setProperty('flex-direction', value, '');
- }
-
- /** Gets the value of "flex-flow" */
- String get flexFlow => getPropertyValue('flex-flow');
-
- /** Sets the value of "flex-flow" */
- set flexFlow(String value) {
- setProperty('flex-flow', value, '');
- }
-
- /** Gets the value of "flex-grow" */
- String get flexGrow => getPropertyValue('flex-grow');
-
- /** Sets the value of "flex-grow" */
- set flexGrow(String value) {
- setProperty('flex-grow', value, '');
- }
-
- /** Gets the value of "flex-shrink" */
- String get flexShrink => getPropertyValue('flex-shrink');
-
- /** Sets the value of "flex-shrink" */
- set flexShrink(String value) {
- setProperty('flex-shrink', value, '');
- }
-
- /** Gets the value of "flex-wrap" */
- String get flexWrap => getPropertyValue('flex-wrap');
-
- /** Sets the value of "flex-wrap" */
- set flexWrap(String value) {
- setProperty('flex-wrap', value, '');
- }
-
- /** Gets the value of "float" */
- String get float => getPropertyValue('float');
-
- /** Sets the value of "float" */
- set float(String value) {
- setProperty('float', value, '');
- }
-
- /** Gets the value of "font" */
- String get font => getPropertyValue('font');
-
- /** Sets the value of "font" */
- set font(String value) {
- setProperty('font', value, '');
- }
-
- /** Gets the value of "font-family" */
- String get fontFamily => getPropertyValue('font-family');
-
- /** Sets the value of "font-family" */
- set fontFamily(String value) {
- setProperty('font-family', value, '');
- }
-
- /** Gets the value of "font-feature-settings" */
- String get fontFeatureSettings => getPropertyValue('font-feature-settings');
-
- /** Sets the value of "font-feature-settings" */
- set fontFeatureSettings(String value) {
- setProperty('font-feature-settings', value, '');
- }
-
- /** Gets the value of "font-kerning" */
- String get fontKerning => getPropertyValue('font-kerning');
-
- /** Sets the value of "font-kerning" */
- set fontKerning(String value) {
- setProperty('font-kerning', value, '');
- }
-
- /** Gets the value of "font-size" */
- String get fontSize => getPropertyValue('font-size');
-
- /** Sets the value of "font-size" */
- set fontSize(String value) {
- setProperty('font-size', value, '');
- }
-
- /** Gets the value of "font-size-delta" */
- String get fontSizeDelta => getPropertyValue('font-size-delta');
-
- /** Sets the value of "font-size-delta" */
- set fontSizeDelta(String value) {
- setProperty('font-size-delta', value, '');
- }
-
- /** Gets the value of "font-smoothing" */
- String get fontSmoothing => getPropertyValue('font-smoothing');
-
- /** Sets the value of "font-smoothing" */
- set fontSmoothing(String value) {
- setProperty('font-smoothing', value, '');
- }
-
- /** Gets the value of "font-stretch" */
- String get fontStretch => getPropertyValue('font-stretch');
-
- /** Sets the value of "font-stretch" */
- set fontStretch(String value) {
- setProperty('font-stretch', value, '');
- }
-
- /** Gets the value of "font-style" */
- String get fontStyle => getPropertyValue('font-style');
-
- /** Sets the value of "font-style" */
- set fontStyle(String value) {
- setProperty('font-style', value, '');
- }
-
- /** Gets the value of "font-variant" */
- String get fontVariant => getPropertyValue('font-variant');
-
- /** Sets the value of "font-variant" */
- set fontVariant(String value) {
- setProperty('font-variant', value, '');
- }
-
- /** Gets the value of "font-variant-ligatures" */
- String get fontVariantLigatures => getPropertyValue('font-variant-ligatures');
-
- /** Sets the value of "font-variant-ligatures" */
- set fontVariantLigatures(String value) {
- setProperty('font-variant-ligatures', value, '');
- }
-
- /** Gets the value of "font-weight" */
- String get fontWeight => getPropertyValue('font-weight');
-
- /** Sets the value of "font-weight" */
- set fontWeight(String value) {
- setProperty('font-weight', value, '');
- }
-
- /** Gets the value of "grid" */
- String get grid => getPropertyValue('grid');
-
- /** Sets the value of "grid" */
- set grid(String value) {
- setProperty('grid', value, '');
- }
-
- /** Gets the value of "grid-area" */
- String get gridArea => getPropertyValue('grid-area');
-
- /** Sets the value of "grid-area" */
- set gridArea(String value) {
- setProperty('grid-area', value, '');
- }
-
- /** Gets the value of "grid-auto-columns" */
- String get gridAutoColumns => getPropertyValue('grid-auto-columns');
-
- /** Sets the value of "grid-auto-columns" */
- set gridAutoColumns(String value) {
- setProperty('grid-auto-columns', value, '');
- }
-
- /** Gets the value of "grid-auto-flow" */
- String get gridAutoFlow => getPropertyValue('grid-auto-flow');
-
- /** Sets the value of "grid-auto-flow" */
- set gridAutoFlow(String value) {
- setProperty('grid-auto-flow', value, '');
- }
-
- /** Gets the value of "grid-auto-rows" */
- String get gridAutoRows => getPropertyValue('grid-auto-rows');
-
- /** Sets the value of "grid-auto-rows" */
- set gridAutoRows(String value) {
- setProperty('grid-auto-rows', value, '');
- }
-
- /** Gets the value of "grid-column" */
- String get gridColumn => getPropertyValue('grid-column');
-
- /** Sets the value of "grid-column" */
- set gridColumn(String value) {
- setProperty('grid-column', value, '');
- }
-
- /** Gets the value of "grid-column-end" */
- String get gridColumnEnd => getPropertyValue('grid-column-end');
-
- /** Sets the value of "grid-column-end" */
- set gridColumnEnd(String value) {
- setProperty('grid-column-end', value, '');
- }
-
- /** Gets the value of "grid-column-start" */
- String get gridColumnStart => getPropertyValue('grid-column-start');
-
- /** Sets the value of "grid-column-start" */
- set gridColumnStart(String value) {
- setProperty('grid-column-start', value, '');
- }
-
- /** Gets the value of "grid-row" */
- String get gridRow => getPropertyValue('grid-row');
-
- /** Sets the value of "grid-row" */
- set gridRow(String value) {
- setProperty('grid-row', value, '');
- }
-
- /** Gets the value of "grid-row-end" */
- String get gridRowEnd => getPropertyValue('grid-row-end');
-
- /** Sets the value of "grid-row-end" */
- set gridRowEnd(String value) {
- setProperty('grid-row-end', value, '');
- }
-
- /** Gets the value of "grid-row-start" */
- String get gridRowStart => getPropertyValue('grid-row-start');
-
- /** Sets the value of "grid-row-start" */
- set gridRowStart(String value) {
- setProperty('grid-row-start', value, '');
- }
-
- /** Gets the value of "grid-template" */
- String get gridTemplate => getPropertyValue('grid-template');
-
- /** Sets the value of "grid-template" */
- set gridTemplate(String value) {
- setProperty('grid-template', value, '');
- }
-
- /** Gets the value of "grid-template-areas" */
- String get gridTemplateAreas => getPropertyValue('grid-template-areas');
-
- /** Sets the value of "grid-template-areas" */
- set gridTemplateAreas(String value) {
- setProperty('grid-template-areas', value, '');
- }
-
- /** Gets the value of "grid-template-columns" */
- String get gridTemplateColumns => getPropertyValue('grid-template-columns');
-
- /** Sets the value of "grid-template-columns" */
- set gridTemplateColumns(String value) {
- setProperty('grid-template-columns', value, '');
- }
-
- /** Gets the value of "grid-template-rows" */
- String get gridTemplateRows => getPropertyValue('grid-template-rows');
-
- /** Sets the value of "grid-template-rows" */
- set gridTemplateRows(String value) {
- setProperty('grid-template-rows', value, '');
- }
-
- /** Gets the value of "height" */
- String get height => getPropertyValue('height');
-
- /** Sets the value of "height" */
- set height(String value) {
- setProperty('height', value, '');
- }
-
- /** Gets the value of "highlight" */
- String get highlight => getPropertyValue('highlight');
-
- /** Sets the value of "highlight" */
- set highlight(String value) {
- setProperty('highlight', value, '');
- }
-
- /** Gets the value of "hyphenate-character" */
- String get hyphenateCharacter => getPropertyValue('hyphenate-character');
-
- /** Sets the value of "hyphenate-character" */
- set hyphenateCharacter(String value) {
- setProperty('hyphenate-character', value, '');
- }
-
- /** Gets the value of "image-rendering" */
- String get imageRendering => getPropertyValue('image-rendering');
-
- /** Sets the value of "image-rendering" */
- set imageRendering(String value) {
- setProperty('image-rendering', value, '');
- }
-
- /** Gets the value of "isolation" */
- String get isolation => getPropertyValue('isolation');
-
- /** Sets the value of "isolation" */
- set isolation(String value) {
- setProperty('isolation', value, '');
- }
-
- /** Gets the value of "justify-content" */
- String get justifyContent => getPropertyValue('justify-content');
-
- /** Sets the value of "justify-content" */
- set justifyContent(String value) {
- setProperty('justify-content', value, '');
- }
-
- /** Gets the value of "justify-self" */
- String get justifySelf => getPropertyValue('justify-self');
-
- /** Sets the value of "justify-self" */
- set justifySelf(String value) {
- setProperty('justify-self', value, '');
- }
-
- /** Gets the value of "left" */
- String get left => getPropertyValue('left');
-
- /** Sets the value of "left" */
- set left(String value) {
- setProperty('left', value, '');
- }
-
- /** Gets the value of "letter-spacing" */
- String get letterSpacing => getPropertyValue('letter-spacing');
-
- /** Sets the value of "letter-spacing" */
- set letterSpacing(String value) {
- setProperty('letter-spacing', value, '');
- }
-
- /** Gets the value of "line-box-contain" */
- String get lineBoxContain => getPropertyValue('line-box-contain');
-
- /** Sets the value of "line-box-contain" */
- set lineBoxContain(String value) {
- setProperty('line-box-contain', value, '');
- }
-
- /** Gets the value of "line-break" */
- String get lineBreak => getPropertyValue('line-break');
-
- /** Sets the value of "line-break" */
- set lineBreak(String value) {
- setProperty('line-break', value, '');
- }
-
- /** Gets the value of "line-clamp" */
- String get lineClamp => getPropertyValue('line-clamp');
-
- /** Sets the value of "line-clamp" */
- set lineClamp(String value) {
- setProperty('line-clamp', value, '');
- }
-
- /** Gets the value of "line-height" */
- String get lineHeight => getPropertyValue('line-height');
-
- /** Sets the value of "line-height" */
- set lineHeight(String value) {
- setProperty('line-height', value, '');
- }
-
- /** Gets the value of "list-style" */
- String get listStyle => getPropertyValue('list-style');
-
- /** Sets the value of "list-style" */
- set listStyle(String value) {
- setProperty('list-style', value, '');
- }
-
- /** Gets the value of "list-style-image" */
- String get listStyleImage => getPropertyValue('list-style-image');
-
- /** Sets the value of "list-style-image" */
- set listStyleImage(String value) {
- setProperty('list-style-image', value, '');
- }
-
- /** Gets the value of "list-style-position" */
- String get listStylePosition => getPropertyValue('list-style-position');
-
- /** Sets the value of "list-style-position" */
- set listStylePosition(String value) {
- setProperty('list-style-position', value, '');
- }
-
- /** Gets the value of "list-style-type" */
- String get listStyleType => getPropertyValue('list-style-type');
-
- /** Sets the value of "list-style-type" */
- set listStyleType(String value) {
- setProperty('list-style-type', value, '');
- }
-
- /** Gets the value of "locale" */
- String get locale => getPropertyValue('locale');
-
- /** Sets the value of "locale" */
- set locale(String value) {
- setProperty('locale', value, '');
- }
-
- /** Gets the value of "logical-height" */
- String get logicalHeight => getPropertyValue('logical-height');
-
- /** Sets the value of "logical-height" */
- set logicalHeight(String value) {
- setProperty('logical-height', value, '');
- }
-
- /** Gets the value of "logical-width" */
- String get logicalWidth => getPropertyValue('logical-width');
-
- /** Sets the value of "logical-width" */
- set logicalWidth(String value) {
- setProperty('logical-width', value, '');
- }
-
- /** Gets the value of "margin" */
- String get margin => getPropertyValue('margin');
-
- /** Sets the value of "margin" */
- set margin(String value) {
- setProperty('margin', value, '');
- }
-
- /** Gets the value of "margin-after" */
- String get marginAfter => getPropertyValue('margin-after');
-
- /** Sets the value of "margin-after" */
- set marginAfter(String value) {
- setProperty('margin-after', value, '');
- }
-
- /** Gets the value of "margin-after-collapse" */
- String get marginAfterCollapse => getPropertyValue('margin-after-collapse');
-
- /** Sets the value of "margin-after-collapse" */
- set marginAfterCollapse(String value) {
- setProperty('margin-after-collapse', value, '');
- }
-
- /** Gets the value of "margin-before" */
- String get marginBefore => getPropertyValue('margin-before');
-
- /** Sets the value of "margin-before" */
- set marginBefore(String value) {
- setProperty('margin-before', value, '');
- }
-
- /** Gets the value of "margin-before-collapse" */
- String get marginBeforeCollapse => getPropertyValue('margin-before-collapse');
-
- /** Sets the value of "margin-before-collapse" */
- set marginBeforeCollapse(String value) {
- setProperty('margin-before-collapse', value, '');
- }
-
- /** Gets the value of "margin-bottom" */
- String get marginBottom => getPropertyValue('margin-bottom');
-
- /** Sets the value of "margin-bottom" */
- set marginBottom(String value) {
- setProperty('margin-bottom', value, '');
- }
-
- /** Gets the value of "margin-bottom-collapse" */
- String get marginBottomCollapse => getPropertyValue('margin-bottom-collapse');
-
- /** Sets the value of "margin-bottom-collapse" */
- set marginBottomCollapse(String value) {
- setProperty('margin-bottom-collapse', value, '');
- }
-
- /** Gets the value of "margin-collapse" */
- String get marginCollapse => getPropertyValue('margin-collapse');
-
- /** Sets the value of "margin-collapse" */
- set marginCollapse(String value) {
- setProperty('margin-collapse', value, '');
- }
-
- /** Gets the value of "margin-end" */
- String get marginEnd => getPropertyValue('margin-end');
-
- /** Sets the value of "margin-end" */
- set marginEnd(String value) {
- setProperty('margin-end', value, '');
- }
-
- /** Gets the value of "margin-left" */
- String get marginLeft => getPropertyValue('margin-left');
-
- /** Sets the value of "margin-left" */
- set marginLeft(String value) {
- setProperty('margin-left', value, '');
- }
-
- /** Gets the value of "margin-right" */
- String get marginRight => getPropertyValue('margin-right');
-
- /** Sets the value of "margin-right" */
- set marginRight(String value) {
- setProperty('margin-right', value, '');
- }
-
- /** Gets the value of "margin-start" */
- String get marginStart => getPropertyValue('margin-start');
-
- /** Sets the value of "margin-start" */
- set marginStart(String value) {
- setProperty('margin-start', value, '');
- }
-
- /** Gets the value of "margin-top" */
- String get marginTop => getPropertyValue('margin-top');
-
- /** Sets the value of "margin-top" */
- set marginTop(String value) {
- setProperty('margin-top', value, '');
- }
-
- /** Gets the value of "margin-top-collapse" */
- String get marginTopCollapse => getPropertyValue('margin-top-collapse');
-
- /** Sets the value of "margin-top-collapse" */
- set marginTopCollapse(String value) {
- setProperty('margin-top-collapse', value, '');
- }
-
- /** Gets the value of "mask" */
- String get mask => getPropertyValue('mask');
-
- /** Sets the value of "mask" */
- set mask(String value) {
- setProperty('mask', value, '');
- }
-
- /** Gets the value of "mask-box-image" */
- String get maskBoxImage => getPropertyValue('mask-box-image');
-
- /** Sets the value of "mask-box-image" */
- set maskBoxImage(String value) {
- setProperty('mask-box-image', value, '');
- }
-
- /** Gets the value of "mask-box-image-outset" */
- String get maskBoxImageOutset => getPropertyValue('mask-box-image-outset');
-
- /** Sets the value of "mask-box-image-outset" */
- set maskBoxImageOutset(String value) {
- setProperty('mask-box-image-outset', value, '');
- }
-
- /** Gets the value of "mask-box-image-repeat" */
- String get maskBoxImageRepeat => getPropertyValue('mask-box-image-repeat');
-
- /** Sets the value of "mask-box-image-repeat" */
- set maskBoxImageRepeat(String value) {
- setProperty('mask-box-image-repeat', value, '');
- }
-
- /** Gets the value of "mask-box-image-slice" */
- String get maskBoxImageSlice => getPropertyValue('mask-box-image-slice');
-
- /** Sets the value of "mask-box-image-slice" */
- set maskBoxImageSlice(String value) {
- setProperty('mask-box-image-slice', value, '');
- }
-
- /** Gets the value of "mask-box-image-source" */
- String get maskBoxImageSource => getPropertyValue('mask-box-image-source');
-
- /** Sets the value of "mask-box-image-source" */
- set maskBoxImageSource(String value) {
- setProperty('mask-box-image-source', value, '');
- }
-
- /** Gets the value of "mask-box-image-width" */
- String get maskBoxImageWidth => getPropertyValue('mask-box-image-width');
-
- /** Sets the value of "mask-box-image-width" */
- set maskBoxImageWidth(String value) {
- setProperty('mask-box-image-width', value, '');
- }
-
- /** Gets the value of "mask-clip" */
- String get maskClip => getPropertyValue('mask-clip');
-
- /** Sets the value of "mask-clip" */
- set maskClip(String value) {
- setProperty('mask-clip', value, '');
- }
-
- /** Gets the value of "mask-composite" */
- String get maskComposite => getPropertyValue('mask-composite');
-
- /** Sets the value of "mask-composite" */
- set maskComposite(String value) {
- setProperty('mask-composite', value, '');
- }
-
- /** Gets the value of "mask-image" */
- String get maskImage => getPropertyValue('mask-image');
-
- /** Sets the value of "mask-image" */
- set maskImage(String value) {
- setProperty('mask-image', value, '');
- }
-
- /** Gets the value of "mask-origin" */
- String get maskOrigin => getPropertyValue('mask-origin');
-
- /** Sets the value of "mask-origin" */
- set maskOrigin(String value) {
- setProperty('mask-origin', value, '');
- }
-
- /** Gets the value of "mask-position" */
- String get maskPosition => getPropertyValue('mask-position');
-
- /** Sets the value of "mask-position" */
- set maskPosition(String value) {
- setProperty('mask-position', value, '');
- }
-
- /** Gets the value of "mask-position-x" */
- String get maskPositionX => getPropertyValue('mask-position-x');
-
- /** Sets the value of "mask-position-x" */
- set maskPositionX(String value) {
- setProperty('mask-position-x', value, '');
- }
-
- /** Gets the value of "mask-position-y" */
- String get maskPositionY => getPropertyValue('mask-position-y');
-
- /** Sets the value of "mask-position-y" */
- set maskPositionY(String value) {
- setProperty('mask-position-y', value, '');
- }
-
- /** Gets the value of "mask-repeat" */
- String get maskRepeat => getPropertyValue('mask-repeat');
-
- /** Sets the value of "mask-repeat" */
- set maskRepeat(String value) {
- setProperty('mask-repeat', value, '');
- }
-
- /** Gets the value of "mask-repeat-x" */
- String get maskRepeatX => getPropertyValue('mask-repeat-x');
-
- /** Sets the value of "mask-repeat-x" */
- set maskRepeatX(String value) {
- setProperty('mask-repeat-x', value, '');
- }
-
- /** Gets the value of "mask-repeat-y" */
- String get maskRepeatY => getPropertyValue('mask-repeat-y');
-
- /** Sets the value of "mask-repeat-y" */
- set maskRepeatY(String value) {
- setProperty('mask-repeat-y', value, '');
- }
-
- /** Gets the value of "mask-size" */
- String get maskSize => getPropertyValue('mask-size');
-
- /** Sets the value of "mask-size" */
- set maskSize(String value) {
- setProperty('mask-size', value, '');
- }
-
- /** Gets the value of "mask-source-type" */
- String get maskSourceType => getPropertyValue('mask-source-type');
-
- /** Sets the value of "mask-source-type" */
- set maskSourceType(String value) {
- setProperty('mask-source-type', value, '');
- }
-
- /** Gets the value of "max-height" */
- String get maxHeight => getPropertyValue('max-height');
-
- /** Sets the value of "max-height" */
- set maxHeight(String value) {
- setProperty('max-height', value, '');
- }
-
- /** Gets the value of "max-logical-height" */
- String get maxLogicalHeight => getPropertyValue('max-logical-height');
-
- /** Sets the value of "max-logical-height" */
- set maxLogicalHeight(String value) {
- setProperty('max-logical-height', value, '');
- }
-
- /** Gets the value of "max-logical-width" */
- String get maxLogicalWidth => getPropertyValue('max-logical-width');
-
- /** Sets the value of "max-logical-width" */
- set maxLogicalWidth(String value) {
- setProperty('max-logical-width', value, '');
- }
-
- /** Gets the value of "max-width" */
- String get maxWidth => getPropertyValue('max-width');
-
- /** Sets the value of "max-width" */
- set maxWidth(String value) {
- setProperty('max-width', value, '');
- }
-
- /** Gets the value of "max-zoom" */
- String get maxZoom => getPropertyValue('max-zoom');
-
- /** Sets the value of "max-zoom" */
- set maxZoom(String value) {
- setProperty('max-zoom', value, '');
- }
-
- /** Gets the value of "min-height" */
- String get minHeight => getPropertyValue('min-height');
-
- /** Sets the value of "min-height" */
- set minHeight(String value) {
- setProperty('min-height', value, '');
- }
-
- /** Gets the value of "min-logical-height" */
- String get minLogicalHeight => getPropertyValue('min-logical-height');
-
- /** Sets the value of "min-logical-height" */
- set minLogicalHeight(String value) {
- setProperty('min-logical-height', value, '');
- }
-
- /** Gets the value of "min-logical-width" */
- String get minLogicalWidth => getPropertyValue('min-logical-width');
-
- /** Sets the value of "min-logical-width" */
- set minLogicalWidth(String value) {
- setProperty('min-logical-width', value, '');
- }
-
- /** Gets the value of "min-width" */
- String get minWidth => getPropertyValue('min-width');
-
- /** Sets the value of "min-width" */
- set minWidth(String value) {
- setProperty('min-width', value, '');
- }
-
- /** Gets the value of "min-zoom" */
- String get minZoom => getPropertyValue('min-zoom');
-
- /** Sets the value of "min-zoom" */
- set minZoom(String value) {
- setProperty('min-zoom', value, '');
- }
-
- /** Gets the value of "mix-blend-mode" */
- String get mixBlendMode => getPropertyValue('mix-blend-mode');
-
- /** Sets the value of "mix-blend-mode" */
- set mixBlendMode(String value) {
- setProperty('mix-blend-mode', value, '');
- }
-
- /** Gets the value of "object-fit" */
- String get objectFit => getPropertyValue('object-fit');
-
- /** Sets the value of "object-fit" */
- set objectFit(String value) {
- setProperty('object-fit', value, '');
- }
-
- /** Gets the value of "object-position" */
- String get objectPosition => getPropertyValue('object-position');
-
- /** Sets the value of "object-position" */
- set objectPosition(String value) {
- setProperty('object-position', value, '');
- }
-
- /** Gets the value of "opacity" */
- String get opacity => getPropertyValue('opacity');
-
- /** Sets the value of "opacity" */
- set opacity(String value) {
- setProperty('opacity', value, '');
- }
-
- /** Gets the value of "order" */
- String get order => getPropertyValue('order');
-
- /** Sets the value of "order" */
- set order(String value) {
- setProperty('order', value, '');
- }
-
- /** Gets the value of "orientation" */
- String get orientation => getPropertyValue('orientation');
-
- /** Sets the value of "orientation" */
- set orientation(String value) {
- setProperty('orientation', value, '');
- }
-
- /** Gets the value of "orphans" */
- String get orphans => getPropertyValue('orphans');
-
- /** Sets the value of "orphans" */
- set orphans(String value) {
- setProperty('orphans', value, '');
- }
-
- /** Gets the value of "outline" */
- String get outline => getPropertyValue('outline');
-
- /** Sets the value of "outline" */
- set outline(String value) {
- setProperty('outline', value, '');
- }
-
- /** Gets the value of "outline-color" */
- String get outlineColor => getPropertyValue('outline-color');
-
- /** Sets the value of "outline-color" */
- set outlineColor(String value) {
- setProperty('outline-color', value, '');
- }
-
- /** Gets the value of "outline-offset" */
- String get outlineOffset => getPropertyValue('outline-offset');
-
- /** Sets the value of "outline-offset" */
- set outlineOffset(String value) {
- setProperty('outline-offset', value, '');
- }
-
- /** Gets the value of "outline-style" */
- String get outlineStyle => getPropertyValue('outline-style');
-
- /** Sets the value of "outline-style" */
- set outlineStyle(String value) {
- setProperty('outline-style', value, '');
- }
-
- /** Gets the value of "outline-width" */
- String get outlineWidth => getPropertyValue('outline-width');
-
- /** Sets the value of "outline-width" */
- set outlineWidth(String value) {
- setProperty('outline-width', value, '');
- }
-
- /** Gets the value of "overflow" */
- String get overflow => getPropertyValue('overflow');
-
- /** Sets the value of "overflow" */
- set overflow(String value) {
- setProperty('overflow', value, '');
- }
-
- /** Gets the value of "overflow-wrap" */
- String get overflowWrap => getPropertyValue('overflow-wrap');
-
- /** Sets the value of "overflow-wrap" */
- set overflowWrap(String value) {
- setProperty('overflow-wrap', value, '');
- }
-
- /** Gets the value of "overflow-x" */
- String get overflowX => getPropertyValue('overflow-x');
-
- /** Sets the value of "overflow-x" */
- set overflowX(String value) {
- setProperty('overflow-x', value, '');
- }
-
- /** Gets the value of "overflow-y" */
- String get overflowY => getPropertyValue('overflow-y');
-
- /** Sets the value of "overflow-y" */
- set overflowY(String value) {
- setProperty('overflow-y', value, '');
- }
-
- /** Gets the value of "padding" */
- String get padding => getPropertyValue('padding');
-
- /** Sets the value of "padding" */
- set padding(String value) {
- setProperty('padding', value, '');
- }
-
- /** Gets the value of "padding-after" */
- String get paddingAfter => getPropertyValue('padding-after');
-
- /** Sets the value of "padding-after" */
- set paddingAfter(String value) {
- setProperty('padding-after', value, '');
- }
-
- /** Gets the value of "padding-before" */
- String get paddingBefore => getPropertyValue('padding-before');
-
- /** Sets the value of "padding-before" */
- set paddingBefore(String value) {
- setProperty('padding-before', value, '');
- }
-
- /** Gets the value of "padding-bottom" */
- String get paddingBottom => getPropertyValue('padding-bottom');
-
- /** Sets the value of "padding-bottom" */
- set paddingBottom(String value) {
- setProperty('padding-bottom', value, '');
- }
-
- /** Gets the value of "padding-end" */
- String get paddingEnd => getPropertyValue('padding-end');
-
- /** Sets the value of "padding-end" */
- set paddingEnd(String value) {
- setProperty('padding-end', value, '');
- }
-
- /** Gets the value of "padding-left" */
- String get paddingLeft => getPropertyValue('padding-left');
-
- /** Sets the value of "padding-left" */
- set paddingLeft(String value) {
- setProperty('padding-left', value, '');
- }
-
- /** Gets the value of "padding-right" */
- String get paddingRight => getPropertyValue('padding-right');
-
- /** Sets the value of "padding-right" */
- set paddingRight(String value) {
- setProperty('padding-right', value, '');
- }
-
- /** Gets the value of "padding-start" */
- String get paddingStart => getPropertyValue('padding-start');
-
- /** Sets the value of "padding-start" */
- set paddingStart(String value) {
- setProperty('padding-start', value, '');
- }
-
- /** Gets the value of "padding-top" */
- String get paddingTop => getPropertyValue('padding-top');
-
- /** Sets the value of "padding-top" */
- set paddingTop(String value) {
- setProperty('padding-top', value, '');
- }
-
- /** Gets the value of "page" */
- String get page => getPropertyValue('page');
-
- /** Sets the value of "page" */
- set page(String value) {
- setProperty('page', value, '');
- }
-
- /** Gets the value of "page-break-after" */
- String get pageBreakAfter => getPropertyValue('page-break-after');
-
- /** Sets the value of "page-break-after" */
- set pageBreakAfter(String value) {
- setProperty('page-break-after', value, '');
- }
-
- /** Gets the value of "page-break-before" */
- String get pageBreakBefore => getPropertyValue('page-break-before');
-
- /** Sets the value of "page-break-before" */
- set pageBreakBefore(String value) {
- setProperty('page-break-before', value, '');
- }
-
- /** Gets the value of "page-break-inside" */
- String get pageBreakInside => getPropertyValue('page-break-inside');
-
- /** Sets the value of "page-break-inside" */
- set pageBreakInside(String value) {
- setProperty('page-break-inside', value, '');
- }
-
- /** Gets the value of "perspective" */
- String get perspective => getPropertyValue('perspective');
-
- /** Sets the value of "perspective" */
- set perspective(String value) {
- setProperty('perspective', value, '');
- }
-
- /** Gets the value of "perspective-origin" */
- String get perspectiveOrigin => getPropertyValue('perspective-origin');
-
- /** Sets the value of "perspective-origin" */
- set perspectiveOrigin(String value) {
- setProperty('perspective-origin', value, '');
- }
-
- /** Gets the value of "perspective-origin-x" */
- String get perspectiveOriginX => getPropertyValue('perspective-origin-x');
-
- /** Sets the value of "perspective-origin-x" */
- set perspectiveOriginX(String value) {
- setProperty('perspective-origin-x', value, '');
- }
-
- /** Gets the value of "perspective-origin-y" */
- String get perspectiveOriginY => getPropertyValue('perspective-origin-y');
-
- /** Sets the value of "perspective-origin-y" */
- set perspectiveOriginY(String value) {
- setProperty('perspective-origin-y', value, '');
- }
-
- /** Gets the value of "pointer-events" */
- String get pointerEvents => getPropertyValue('pointer-events');
-
- /** Sets the value of "pointer-events" */
- set pointerEvents(String value) {
- setProperty('pointer-events', value, '');
- }
-
- /** Gets the value of "position" */
- String get position => getPropertyValue('position');
-
- /** Sets the value of "position" */
- set position(String value) {
- setProperty('position', value, '');
- }
-
- /** Gets the value of "print-color-adjust" */
- String get printColorAdjust => getPropertyValue('print-color-adjust');
-
- /** Sets the value of "print-color-adjust" */
- set printColorAdjust(String value) {
- setProperty('print-color-adjust', value, '');
- }
-
- /** Gets the value of "quotes" */
- String get quotes => getPropertyValue('quotes');
-
- /** Sets the value of "quotes" */
- set quotes(String value) {
- setProperty('quotes', value, '');
- }
-
- /** Gets the value of "resize" */
- String get resize => getPropertyValue('resize');
-
- /** Sets the value of "resize" */
- set resize(String value) {
- setProperty('resize', value, '');
- }
-
- /** Gets the value of "right" */
- String get right => getPropertyValue('right');
-
- /** Sets the value of "right" */
- set right(String value) {
- setProperty('right', value, '');
- }
-
- /** Gets the value of "rtl-ordering" */
- String get rtlOrdering => getPropertyValue('rtl-ordering');
-
- /** Sets the value of "rtl-ordering" */
- set rtlOrdering(String value) {
- setProperty('rtl-ordering', value, '');
- }
-
- /** Gets the value of "ruby-position" */
- String get rubyPosition => getPropertyValue('ruby-position');
-
- /** Sets the value of "ruby-position" */
- set rubyPosition(String value) {
- setProperty('ruby-position', value, '');
- }
-
- /** Gets the value of "scroll-behavior" */
- String get scrollBehavior => getPropertyValue('scroll-behavior');
-
- /** Sets the value of "scroll-behavior" */
- set scrollBehavior(String value) {
- setProperty('scroll-behavior', value, '');
- }
-
- /** Gets the value of "shape-image-threshold" */
- String get shapeImageThreshold => getPropertyValue('shape-image-threshold');
-
- /** Sets the value of "shape-image-threshold" */
- set shapeImageThreshold(String value) {
- setProperty('shape-image-threshold', value, '');
- }
-
- /** Gets the value of "shape-margin" */
- String get shapeMargin => getPropertyValue('shape-margin');
-
- /** Sets the value of "shape-margin" */
- set shapeMargin(String value) {
- setProperty('shape-margin', value, '');
- }
-
- /** Gets the value of "shape-outside" */
- String get shapeOutside => getPropertyValue('shape-outside');
-
- /** Sets the value of "shape-outside" */
- set shapeOutside(String value) {
- setProperty('shape-outside', value, '');
- }
-
- /** Gets the value of "size" */
- String get size => getPropertyValue('size');
-
- /** Sets the value of "size" */
- set size(String value) {
- setProperty('size', value, '');
- }
-
- /** Gets the value of "speak" */
- String get speak => getPropertyValue('speak');
-
- /** Sets the value of "speak" */
- set speak(String value) {
- setProperty('speak', value, '');
- }
-
- /** Gets the value of "src" */
- String get src => getPropertyValue('src');
-
- /** Sets the value of "src" */
- set src(String value) {
- setProperty('src', value, '');
- }
-
- /** Gets the value of "tab-size" */
- String get tabSize => getPropertyValue('tab-size');
-
- /** Sets the value of "tab-size" */
- set tabSize(String value) {
- setProperty('tab-size', value, '');
- }
-
- /** Gets the value of "table-layout" */
- String get tableLayout => getPropertyValue('table-layout');
-
- /** Sets the value of "table-layout" */
- set tableLayout(String value) {
- setProperty('table-layout', value, '');
- }
-
- /** Gets the value of "tap-highlight-color" */
- String get tapHighlightColor => getPropertyValue('tap-highlight-color');
-
- /** Sets the value of "tap-highlight-color" */
- set tapHighlightColor(String value) {
- setProperty('tap-highlight-color', value, '');
- }
-
- /** Gets the value of "text-align" */
- String get textAlign => getPropertyValue('text-align');
-
- /** Sets the value of "text-align" */
- set textAlign(String value) {
- setProperty('text-align', value, '');
- }
-
- /** Gets the value of "text-align-last" */
- String get textAlignLast => getPropertyValue('text-align-last');
-
- /** Sets the value of "text-align-last" */
- set textAlignLast(String value) {
- setProperty('text-align-last', value, '');
- }
-
- /** Gets the value of "text-combine" */
- String get textCombine => getPropertyValue('text-combine');
-
- /** Sets the value of "text-combine" */
- set textCombine(String value) {
- setProperty('text-combine', value, '');
- }
-
- /** Gets the value of "text-decoration" */
- String get textDecoration => getPropertyValue('text-decoration');
-
- /** Sets the value of "text-decoration" */
- set textDecoration(String value) {
- setProperty('text-decoration', value, '');
- }
-
- /** Gets the value of "text-decoration-color" */
- String get textDecorationColor => getPropertyValue('text-decoration-color');
-
- /** Sets the value of "text-decoration-color" */
- set textDecorationColor(String value) {
- setProperty('text-decoration-color', value, '');
- }
-
- /** Gets the value of "text-decoration-line" */
- String get textDecorationLine => getPropertyValue('text-decoration-line');
-
- /** Sets the value of "text-decoration-line" */
- set textDecorationLine(String value) {
- setProperty('text-decoration-line', value, '');
- }
-
- /** Gets the value of "text-decoration-style" */
- String get textDecorationStyle => getPropertyValue('text-decoration-style');
-
- /** Sets the value of "text-decoration-style" */
- set textDecorationStyle(String value) {
- setProperty('text-decoration-style', value, '');
- }
-
- /** Gets the value of "text-decorations-in-effect" */
- String get textDecorationsInEffect =>
- getPropertyValue('text-decorations-in-effect');
-
- /** Sets the value of "text-decorations-in-effect" */
- set textDecorationsInEffect(String value) {
- setProperty('text-decorations-in-effect', value, '');
- }
-
- /** Gets the value of "text-emphasis" */
- String get textEmphasis => getPropertyValue('text-emphasis');
-
- /** Sets the value of "text-emphasis" */
- set textEmphasis(String value) {
- setProperty('text-emphasis', value, '');
- }
-
- /** Gets the value of "text-emphasis-color" */
- String get textEmphasisColor => getPropertyValue('text-emphasis-color');
-
- /** Sets the value of "text-emphasis-color" */
- set textEmphasisColor(String value) {
- setProperty('text-emphasis-color', value, '');
- }
-
- /** Gets the value of "text-emphasis-position" */
- String get textEmphasisPosition => getPropertyValue('text-emphasis-position');
-
- /** Sets the value of "text-emphasis-position" */
- set textEmphasisPosition(String value) {
- setProperty('text-emphasis-position', value, '');
- }
-
- /** Gets the value of "text-emphasis-style" */
- String get textEmphasisStyle => getPropertyValue('text-emphasis-style');
-
- /** Sets the value of "text-emphasis-style" */
- set textEmphasisStyle(String value) {
- setProperty('text-emphasis-style', value, '');
- }
-
- /** Gets the value of "text-fill-color" */
- String get textFillColor => getPropertyValue('text-fill-color');
-
- /** Sets the value of "text-fill-color" */
- set textFillColor(String value) {
- setProperty('text-fill-color', value, '');
- }
-
- /** Gets the value of "text-indent" */
- String get textIndent => getPropertyValue('text-indent');
-
- /** Sets the value of "text-indent" */
- set textIndent(String value) {
- setProperty('text-indent', value, '');
- }
-
- /** Gets the value of "text-justify" */
- String get textJustify => getPropertyValue('text-justify');
-
- /** Sets the value of "text-justify" */
- set textJustify(String value) {
- setProperty('text-justify', value, '');
- }
-
- /** Gets the value of "text-line-through-color" */
- String get textLineThroughColor =>
- getPropertyValue('text-line-through-color');
-
- /** Sets the value of "text-line-through-color" */
- set textLineThroughColor(String value) {
- setProperty('text-line-through-color', value, '');
- }
-
- /** Gets the value of "text-line-through-mode" */
- String get textLineThroughMode => getPropertyValue('text-line-through-mode');
-
- /** Sets the value of "text-line-through-mode" */
- set textLineThroughMode(String value) {
- setProperty('text-line-through-mode', value, '');
- }
-
- /** Gets the value of "text-line-through-style" */
- String get textLineThroughStyle =>
- getPropertyValue('text-line-through-style');
-
- /** Sets the value of "text-line-through-style" */
- set textLineThroughStyle(String value) {
- setProperty('text-line-through-style', value, '');
- }
-
- /** Gets the value of "text-line-through-width" */
- String get textLineThroughWidth =>
- getPropertyValue('text-line-through-width');
-
- /** Sets the value of "text-line-through-width" */
- set textLineThroughWidth(String value) {
- setProperty('text-line-through-width', value, '');
- }
-
- /** Gets the value of "text-orientation" */
- String get textOrientation => getPropertyValue('text-orientation');
-
- /** Sets the value of "text-orientation" */
- set textOrientation(String value) {
- setProperty('text-orientation', value, '');
- }
-
- /** Gets the value of "text-overflow" */
- String get textOverflow => getPropertyValue('text-overflow');
-
- /** Sets the value of "text-overflow" */
- set textOverflow(String value) {
- setProperty('text-overflow', value, '');
- }
-
- /** Gets the value of "text-overline-color" */
- String get textOverlineColor => getPropertyValue('text-overline-color');
-
- /** Sets the value of "text-overline-color" */
- set textOverlineColor(String value) {
- setProperty('text-overline-color', value, '');
- }
-
- /** Gets the value of "text-overline-mode" */
- String get textOverlineMode => getPropertyValue('text-overline-mode');
-
- /** Sets the value of "text-overline-mode" */
- set textOverlineMode(String value) {
- setProperty('text-overline-mode', value, '');
- }
-
- /** Gets the value of "text-overline-style" */
- String get textOverlineStyle => getPropertyValue('text-overline-style');
-
- /** Sets the value of "text-overline-style" */
- set textOverlineStyle(String value) {
- setProperty('text-overline-style', value, '');
- }
-
- /** Gets the value of "text-overline-width" */
- String get textOverlineWidth => getPropertyValue('text-overline-width');
-
- /** Sets the value of "text-overline-width" */
- set textOverlineWidth(String value) {
- setProperty('text-overline-width', value, '');
- }
-
- /** Gets the value of "text-rendering" */
- String get textRendering => getPropertyValue('text-rendering');
-
- /** Sets the value of "text-rendering" */
- set textRendering(String value) {
- setProperty('text-rendering', value, '');
- }
-
- /** Gets the value of "text-security" */
- String get textSecurity => getPropertyValue('text-security');
-
- /** Sets the value of "text-security" */
- set textSecurity(String value) {
- setProperty('text-security', value, '');
- }
-
- /** Gets the value of "text-shadow" */
- String get textShadow => getPropertyValue('text-shadow');
-
- /** Sets the value of "text-shadow" */
- set textShadow(String value) {
- setProperty('text-shadow', value, '');
- }
-
- /** Gets the value of "text-stroke" */
- String get textStroke => getPropertyValue('text-stroke');
-
- /** Sets the value of "text-stroke" */
- set textStroke(String value) {
- setProperty('text-stroke', value, '');
- }
-
- /** Gets the value of "text-stroke-color" */
- String get textStrokeColor => getPropertyValue('text-stroke-color');
-
- /** Sets the value of "text-stroke-color" */
- set textStrokeColor(String value) {
- setProperty('text-stroke-color', value, '');
- }
-
- /** Gets the value of "text-stroke-width" */
- String get textStrokeWidth => getPropertyValue('text-stroke-width');
-
- /** Sets the value of "text-stroke-width" */
- set textStrokeWidth(String value) {
- setProperty('text-stroke-width', value, '');
- }
-
- /** Gets the value of "text-transform" */
- String get textTransform => getPropertyValue('text-transform');
-
- /** Sets the value of "text-transform" */
- set textTransform(String value) {
- setProperty('text-transform', value, '');
- }
-
- /** Gets the value of "text-underline-color" */
- String get textUnderlineColor => getPropertyValue('text-underline-color');
-
- /** Sets the value of "text-underline-color" */
- set textUnderlineColor(String value) {
- setProperty('text-underline-color', value, '');
- }
-
- /** Gets the value of "text-underline-mode" */
- String get textUnderlineMode => getPropertyValue('text-underline-mode');
-
- /** Sets the value of "text-underline-mode" */
- set textUnderlineMode(String value) {
- setProperty('text-underline-mode', value, '');
- }
-
- /** Gets the value of "text-underline-position" */
- String get textUnderlinePosition =>
- getPropertyValue('text-underline-position');
-
- /** Sets the value of "text-underline-position" */
- set textUnderlinePosition(String value) {
- setProperty('text-underline-position', value, '');
- }
-
- /** Gets the value of "text-underline-style" */
- String get textUnderlineStyle => getPropertyValue('text-underline-style');
-
- /** Sets the value of "text-underline-style" */
- set textUnderlineStyle(String value) {
- setProperty('text-underline-style', value, '');
- }
-
- /** Gets the value of "text-underline-width" */
- String get textUnderlineWidth => getPropertyValue('text-underline-width');
-
- /** Sets the value of "text-underline-width" */
- set textUnderlineWidth(String value) {
- setProperty('text-underline-width', value, '');
- }
-
- /** Gets the value of "top" */
- String get top => getPropertyValue('top');
-
- /** Sets the value of "top" */
- set top(String value) {
- setProperty('top', value, '');
- }
-
- /** Gets the value of "touch-action" */
- String get touchAction => getPropertyValue('touch-action');
-
- /** Sets the value of "touch-action" */
- set touchAction(String value) {
- setProperty('touch-action', value, '');
- }
-
- /** Gets the value of "touch-action-delay" */
- String get touchActionDelay => getPropertyValue('touch-action-delay');
-
- /** Sets the value of "touch-action-delay" */
- set touchActionDelay(String value) {
- setProperty('touch-action-delay', value, '');
- }
-
- /** Gets the value of "transform" */
- String get transform => getPropertyValue('transform');
-
- /** Sets the value of "transform" */
- set transform(String value) {
- setProperty('transform', value, '');
- }
-
- /** Gets the value of "transform-origin" */
- String get transformOrigin => getPropertyValue('transform-origin');
-
- /** Sets the value of "transform-origin" */
- set transformOrigin(String value) {
- setProperty('transform-origin', value, '');
- }
-
- /** Gets the value of "transform-origin-x" */
- String get transformOriginX => getPropertyValue('transform-origin-x');
-
- /** Sets the value of "transform-origin-x" */
- set transformOriginX(String value) {
- setProperty('transform-origin-x', value, '');
- }
-
- /** Gets the value of "transform-origin-y" */
- String get transformOriginY => getPropertyValue('transform-origin-y');
-
- /** Sets the value of "transform-origin-y" */
- set transformOriginY(String value) {
- setProperty('transform-origin-y', value, '');
- }
-
- /** Gets the value of "transform-origin-z" */
- String get transformOriginZ => getPropertyValue('transform-origin-z');
-
- /** Sets the value of "transform-origin-z" */
- set transformOriginZ(String value) {
- setProperty('transform-origin-z', value, '');
- }
-
- /** Gets the value of "transform-style" */
- String get transformStyle => getPropertyValue('transform-style');
-
- /** Sets the value of "transform-style" */
- set transformStyle(String value) {
- setProperty('transform-style', value, '');
- }
-
- /** Gets the value of "transition" */ @SupportedBrowser(
- SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.FIREFOX)
- @SupportedBrowser(SupportedBrowser.IE, '10')
- @SupportedBrowser(SupportedBrowser.SAFARI)
- String get transition => getPropertyValue('transition');
-
- /** Sets the value of "transition" */ @SupportedBrowser(
- SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.FIREFOX)
- @SupportedBrowser(SupportedBrowser.IE, '10')
- @SupportedBrowser(SupportedBrowser.SAFARI)
- set transition(String value) {
- setProperty('transition', value, '');
- }
-
- /** Gets the value of "transition-delay" */
- String get transitionDelay => getPropertyValue('transition-delay');
-
- /** Sets the value of "transition-delay" */
- set transitionDelay(String value) {
- setProperty('transition-delay', value, '');
- }
-
- /** Gets the value of "transition-duration" */
- String get transitionDuration => getPropertyValue('transition-duration');
-
- /** Sets the value of "transition-duration" */
- set transitionDuration(String value) {
- setProperty('transition-duration', value, '');
- }
-
- /** Gets the value of "transition-property" */
- String get transitionProperty => getPropertyValue('transition-property');
-
- /** Sets the value of "transition-property" */
- set transitionProperty(String value) {
- setProperty('transition-property', value, '');
- }
-
- /** Gets the value of "transition-timing-function" */
- String get transitionTimingFunction =>
- getPropertyValue('transition-timing-function');
-
- /** Sets the value of "transition-timing-function" */
- set transitionTimingFunction(String value) {
- setProperty('transition-timing-function', value, '');
- }
-
- /** Gets the value of "unicode-bidi" */
- String get unicodeBidi => getPropertyValue('unicode-bidi');
-
- /** Sets the value of "unicode-bidi" */
- set unicodeBidi(String value) {
- setProperty('unicode-bidi', value, '');
- }
-
- /** Gets the value of "unicode-range" */
- String get unicodeRange => getPropertyValue('unicode-range');
-
- /** Sets the value of "unicode-range" */
- set unicodeRange(String value) {
- setProperty('unicode-range', value, '');
- }
-
- /** Gets the value of "user-drag" */
- String get userDrag => getPropertyValue('user-drag');
-
- /** Sets the value of "user-drag" */
- set userDrag(String value) {
- setProperty('user-drag', value, '');
- }
-
- /** Gets the value of "user-modify" */
- String get userModify => getPropertyValue('user-modify');
-
- /** Sets the value of "user-modify" */
- set userModify(String value) {
- setProperty('user-modify', value, '');
- }
-
- /** Gets the value of "user-select" */
- String get userSelect => getPropertyValue('user-select');
-
- /** Sets the value of "user-select" */
- set userSelect(String value) {
- setProperty('user-select', value, '');
- }
-
- /** Gets the value of "user-zoom" */
- String get userZoom => getPropertyValue('user-zoom');
-
- /** Sets the value of "user-zoom" */
- set userZoom(String value) {
- setProperty('user-zoom', value, '');
- }
-
- /** Gets the value of "vertical-align" */
- String get verticalAlign => getPropertyValue('vertical-align');
-
- /** Sets the value of "vertical-align" */
- set verticalAlign(String value) {
- setProperty('vertical-align', value, '');
- }
-
- /** Gets the value of "visibility" */
- String get visibility => getPropertyValue('visibility');
-
- /** Sets the value of "visibility" */
- set visibility(String value) {
- setProperty('visibility', value, '');
- }
-
- /** Gets the value of "white-space" */
- String get whiteSpace => getPropertyValue('white-space');
-
- /** Sets the value of "white-space" */
- set whiteSpace(String value) {
- setProperty('white-space', value, '');
- }
-
- /** Gets the value of "widows" */
- String get widows => getPropertyValue('widows');
-
- /** Sets the value of "widows" */
- set widows(String value) {
- setProperty('widows', value, '');
- }
-
- /** Gets the value of "width" */
- String get width => getPropertyValue('width');
-
- /** Sets the value of "width" */
- set width(String value) {
- setProperty('width', value, '');
- }
-
- /** Gets the value of "will-change" */
- String get willChange => getPropertyValue('will-change');
-
- /** Sets the value of "will-change" */
- set willChange(String value) {
- setProperty('will-change', value, '');
- }
-
- /** Gets the value of "word-break" */
- String get wordBreak => getPropertyValue('word-break');
-
- /** Sets the value of "word-break" */
- set wordBreak(String value) {
- setProperty('word-break', value, '');
- }
-
- /** Gets the value of "word-spacing" */
- String get wordSpacing => getPropertyValue('word-spacing');
-
- /** Sets the value of "word-spacing" */
- set wordSpacing(String value) {
- setProperty('word-spacing', value, '');
- }
-
- /** Gets the value of "word-wrap" */
- String get wordWrap => getPropertyValue('word-wrap');
-
- /** Sets the value of "word-wrap" */
- set wordWrap(String value) {
- setProperty('word-wrap', value, '');
- }
-
- /** Gets the value of "wrap-flow" */
- String get wrapFlow => getPropertyValue('wrap-flow');
-
- /** Sets the value of "wrap-flow" */
- set wrapFlow(String value) {
- setProperty('wrap-flow', value, '');
- }
-
- /** Gets the value of "wrap-through" */
- String get wrapThrough => getPropertyValue('wrap-through');
-
- /** Sets the value of "wrap-through" */
- set wrapThrough(String value) {
- setProperty('wrap-through', value, '');
- }
-
- /** Gets the value of "writing-mode" */
- String get writingMode => getPropertyValue('writing-mode');
-
- /** Sets the value of "writing-mode" */
- set writingMode(String value) {
- setProperty('writing-mode', value, '');
- }
-
- /** Gets the value of "z-index" */
- String get zIndex => getPropertyValue('z-index');
-
- /** Sets the value of "z-index" */
- set zIndex(String value) {
- setProperty('z-index', value, '');
- }
-
- /** Gets the value of "zoom" */
- String get zoom => getPropertyValue('zoom');
-
- /** Sets the value of "zoom" */
- set zoom(String value) {
- setProperty('zoom', value, '');
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('CSSStyleRule')
-@Native("CSSStyleRule")
-class CssStyleRule extends CssRule {
- // To suppress missing implicit constructor warnings.
- factory CssStyleRule._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('CSSStyleRule.selectorText')
- @DocsEditable()
- String selectorText;
-
- @DomName('CSSStyleRule.style')
- @DocsEditable()
- final CssStyleDeclaration style;
-}
-// 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.
-
-@DocsEditable()
-@DomName('CSSStyleSheet')
-@Native("CSSStyleSheet")
-class CssStyleSheet extends StyleSheet {
- // To suppress missing implicit constructor warnings.
- factory CssStyleSheet._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('CSSStyleSheet.cssRules')
- @DocsEditable()
- @Returns('_CssRuleList|Null')
- @Creates('_CssRuleList')
- final List<CssRule> cssRules;
-
- @DomName('CSSStyleSheet.ownerRule')
- @DocsEditable()
- final CssRule ownerRule;
-
- @DomName('CSSStyleSheet.rules')
- @DocsEditable()
- @Experimental() // non-standard
- @Returns('_CssRuleList|Null')
- @Creates('_CssRuleList')
- final List<CssRule> rules;
-
- @DomName('CSSStyleSheet.addRule')
- @DocsEditable()
- @Experimental() // non-standard
- int addRule(String selector, String style, [int index]) native;
-
- @DomName('CSSStyleSheet.deleteRule')
- @DocsEditable()
- void deleteRule(int index) native;
-
- @DomName('CSSStyleSheet.insertRule')
- @DocsEditable()
- int insertRule(String rule, [int index]) native;
-
- @DomName('CSSStyleSheet.removeRule')
- @DocsEditable()
- @Experimental() // non-standard
- void removeRule(int index) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('CSSSupportsRule')
-@Native("CSSSupportsRule")
-class CssSupportsRule extends CssRule {
- // To suppress missing implicit constructor warnings.
- factory CssSupportsRule._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('CSSSupportsRule.conditionText')
- @DocsEditable()
- final String conditionText;
-
- @DomName('CSSSupportsRule.cssRules')
- @DocsEditable()
- @Returns('_CssRuleList|Null')
- @Creates('_CssRuleList')
- final List<CssRule> cssRules;
-
- @DomName('CSSSupportsRule.deleteRule')
- @DocsEditable()
- void deleteRule(int index) native;
-
- @DomName('CSSSupportsRule.insertRule')
- @DocsEditable()
- int insertRule(String rule, int index) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('CSSViewportRule')
-@Experimental() // untriaged
-@Native("CSSViewportRule")
-class CssViewportRule extends CssRule {
- // To suppress missing implicit constructor warnings.
- factory CssViewportRule._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('CSSViewportRule.style')
- @DocsEditable()
- @Experimental() // untriaged
- final CssStyleDeclaration style;
-}
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('CustomEvent')
-@Native("CustomEvent")
-class CustomEvent extends Event {
- @Creates('Null') // Set from Dart code; does not instantiate a native type.
- var _dartDetail;
-
- factory CustomEvent(String type,
- {bool canBubble: true, bool cancelable: true, Object detail}) {
- final CustomEvent e = document._createEvent('CustomEvent');
-
- e._dartDetail = detail;
-
- // Only try setting the detail if it's one of these types to avoid
- // first-chance exceptions. Can expand this list in the future as needed.
- if (detail is List || detail is Map || detail is String || detail is num) {
- try {
- detail = convertDartToNative_SerializedScriptValue(detail);
- e._initCustomEvent(type, canBubble, cancelable, detail);
- } catch (_) {
- e._initCustomEvent(type, canBubble, cancelable, null);
- }
- } else {
- e._initCustomEvent(type, canBubble, cancelable, null);
- }
-
- return e;
- }
-
- @DomName('CustomEvent.detail')
- get detail {
- if (_dartDetail != null) {
- return _dartDetail;
- }
- return _detail;
- }
-
- @DomName('CustomEvent._detail')
- @DocsEditable()
- @Experimental() // untriaged
- dynamic get _detail =>
- convertNativeToDart_SerializedScriptValue(this._get__detail);
- @JSName('detail')
- @DomName('CustomEvent._detail')
- @DocsEditable()
- @Experimental() // untriaged
- @Creates('Null')
- final dynamic _get__detail;
-
- @JSName('initCustomEvent')
- @DomName('CustomEvent.initCustomEvent')
- @DocsEditable()
- void _initCustomEvent(
- String type, bool bubbles, bool cancelable, Object detail) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLDListElement')
-@Native("HTMLDListElement")
-class DListElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory DListElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLDListElement.HTMLDListElement')
- @DocsEditable()
- factory DListElement() => JS(
- 'returns:DListElement;creates:DListElement;new:true',
- '#.createElement(#)',
- document,
- "dl");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- DListElement.created() : super.created();
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLDataListElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Native("HTMLDataListElement")
-class DataListElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory DataListElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLDataListElement.HTMLDataListElement')
- @DocsEditable()
- factory DataListElement() => document.createElement("datalist");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- DataListElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported => Element.isTagSupported('datalist');
-
- @DomName('HTMLDataListElement.options')
- @DocsEditable()
- @Returns('HtmlCollection|Null')
- @Creates('HtmlCollection')
- final List<Node> options;
-}
-// 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.
-
-@DocsEditable()
-@DomName('DataTransfer')
-@Experimental() // untriaged
-@Native("DataTransfer")
-class DataTransfer extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory DataTransfer._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('DataTransfer.dropEffect')
- @DocsEditable()
- @Experimental() // untriaged
- String dropEffect;
-
- @DomName('DataTransfer.effectAllowed')
- @DocsEditable()
- @Experimental() // untriaged
- String effectAllowed;
-
- @DomName('DataTransfer.files')
- @DocsEditable()
- @Experimental() // untriaged
- @Returns('FileList|Null')
- @Creates('FileList')
- final List<File> files;
-
- @DomName('DataTransfer.items')
- @DocsEditable()
- @Experimental() // untriaged
- final DataTransferItemList items;
-
- @DomName('DataTransfer.types')
- @DocsEditable()
- @Experimental() // untriaged
- final List<String> types;
-
- @DomName('DataTransfer.clearData')
- @DocsEditable()
- @Experimental() // untriaged
- void clearData([String format]) native;
-
- @DomName('DataTransfer.getData')
- @DocsEditable()
- @Experimental() // untriaged
- String getData(String format) native;
-
- @DomName('DataTransfer.setData')
- @DocsEditable()
- @Experimental() // untriaged
- void setData(String format, String data) native;
-
- @DomName('DataTransfer.setDragImage')
- @DocsEditable()
- @Experimental() // untriaged
- void setDragImage(Element image, int x, int y) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('DataTransferItem')
-// http://www.w3.org/TR/2011/WD-html5-20110113/dnd.html#the-datatransferitem-interface
-@Experimental()
-@Native("DataTransferItem")
-class DataTransferItem extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory DataTransferItem._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('DataTransferItem.kind')
- @DocsEditable()
- final String kind;
-
- @DomName('DataTransferItem.type')
- @DocsEditable()
- final String type;
-
- @DomName('DataTransferItem.getAsFile')
- @DocsEditable()
- Blob getAsFile() native;
-
- @JSName('getAsString')
- @DomName('DataTransferItem.getAsString')
- @DocsEditable()
- void _getAsString(_StringCallback callback) native;
-
- @JSName('getAsString')
- @DomName('DataTransferItem.getAsString')
- @DocsEditable()
- Future<String> getAsString() {
- var completer = new Completer<String>();
- _getAsString((value) {
- completer.complete(value);
- });
- return completer.future;
- }
-
- @JSName('webkitGetAsEntry')
- @DomName('DataTransferItem.webkitGetAsEntry')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- Entry getAsEntry() native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('DataTransferItemList')
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#the-datatransferitemlist-interface
-@Experimental()
-@Native("DataTransferItemList")
-class DataTransferItemList extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory DataTransferItemList._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('DataTransferItemList.length')
- @DocsEditable()
- final int length;
-
- @DomName('DataTransferItemList.add')
- @DocsEditable()
- DataTransferItem add(data_OR_file, [String type]) native;
-
- @JSName('add')
- @DomName('DataTransferItemList.add')
- @DocsEditable()
- DataTransferItem addData(String data, String type) native;
-
- @JSName('add')
- @DomName('DataTransferItemList.add')
- @DocsEditable()
- DataTransferItem addFile(File file) native;
-
- @DomName('DataTransferItemList.clear')
- @DocsEditable()
- void clear() native;
-
- @DomName('DataTransferItemList.item')
- @DocsEditable()
- DataTransferItem item(int index) native;
-
- @DomName('DataTransferItemList.remove')
- @DocsEditable()
- @Experimental() // untriaged
- void remove(int index) native;
-
- DataTransferItem operator [](int index) {
- return JS('DataTransferItem', '#[#]', this, index);
- }
-}
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('DatabaseCallback')
-// http://www.w3.org/TR/webdatabase/#databasecallback
-@Experimental() // deprecated
-typedef void DatabaseCallback(SqlDatabase database);
-// 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.
-
-@DocsEditable()
-@DomName('DedicatedWorkerGlobalScope')
-@Experimental() // untriaged
-@Native("DedicatedWorkerGlobalScope")
-class DedicatedWorkerGlobalScope extends WorkerGlobalScope {
- // To suppress missing implicit constructor warnings.
- factory DedicatedWorkerGlobalScope._() {
- throw new UnsupportedError("Not supported");
- }
-
- /**
- * Static factory designed to expose `message` events to event
- * handlers that are not necessarily instances of [DedicatedWorkerGlobalScope].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('DedicatedWorkerGlobalScope.messageEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MessageEvent> messageEvent =
- const EventStreamProvider<MessageEvent>('message');
-
- @DomName('DedicatedWorkerGlobalScope.PERSISTENT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int PERSISTENT = 1;
-
- @DomName('DedicatedWorkerGlobalScope.TEMPORARY')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEMPORARY = 0;
-
- @DomName('DedicatedWorkerGlobalScope.postMessage')
- @DocsEditable()
- @Experimental() // untriaged
- void postMessage(/*any*/ message, [List<MessagePort> transfer]) {
- if (transfer != null) {
- var message_1 = convertDartToNative_SerializedScriptValue(message);
- _postMessage_1(message_1, transfer);
- return;
- }
- var message_1 = convertDartToNative_SerializedScriptValue(message);
- _postMessage_2(message_1);
- return;
- }
-
- @JSName('postMessage')
- @DomName('DedicatedWorkerGlobalScope.postMessage')
- @DocsEditable()
- @Experimental() // untriaged
- void _postMessage_1(message, List<MessagePort> transfer) native;
- @JSName('postMessage')
- @DomName('DedicatedWorkerGlobalScope.postMessage')
- @DocsEditable()
- @Experimental() // untriaged
- void _postMessage_2(message) native;
-
- @JSName('webkitRequestFileSystem')
- @DomName('DedicatedWorkerGlobalScope.webkitRequestFileSystem')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- @Experimental() // untriaged
- void _webkitRequestFileSystem(int type, int size,
- [_FileSystemCallback successCallback,
- _ErrorCallback errorCallback]) native;
-
- @JSName('webkitRequestFileSystemSync')
- @DomName('DedicatedWorkerGlobalScope.webkitRequestFileSystemSync')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- @Experimental() // untriaged
- _DOMFileSystemSync requestFileSystemSync(int type, int size) native;
-
- @JSName('webkitResolveLocalFileSystemSyncURL')
- @DomName('DedicatedWorkerGlobalScope.webkitResolveLocalFileSystemSyncURL')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- @Experimental() // untriaged
- _EntrySync resolveLocalFileSystemSyncUrl(String url) native;
-
- @JSName('webkitResolveLocalFileSystemURL')
- @DomName('DedicatedWorkerGlobalScope.webkitResolveLocalFileSystemURL')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- @Experimental() // untriaged
- void _webkitResolveLocalFileSystemUrl(
- String url, _EntryCallback successCallback,
- [_ErrorCallback errorCallback]) native;
-
- /// Stream of `message` events handled by this [DedicatedWorkerGlobalScope].
- @DomName('DedicatedWorkerGlobalScope.onmessage')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('DeprecatedStorageInfo')
-@Experimental() // untriaged
-@Native("DeprecatedStorageInfo")
-class DeprecatedStorageInfo extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory DeprecatedStorageInfo._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('DeprecatedStorageInfo.PERSISTENT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int PERSISTENT = 1;
-
- @DomName('DeprecatedStorageInfo.TEMPORARY')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEMPORARY = 0;
-
- @DomName('DeprecatedStorageInfo.queryUsageAndQuota')
- @DocsEditable()
- @Experimental() // untriaged
- void queryUsageAndQuota(int storageType,
- [StorageUsageCallback usageCallback,
- StorageErrorCallback errorCallback]) native;
-
- @DomName('DeprecatedStorageInfo.requestQuota')
- @DocsEditable()
- @Experimental() // untriaged
- void requestQuota(int storageType, int newQuotaInBytes,
- [StorageQuotaCallback quotaCallback,
- StorageErrorCallback errorCallback]) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('DeprecatedStorageQuota')
-@Experimental() // untriaged
-@Native("DeprecatedStorageQuota")
-class DeprecatedStorageQuota extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory DeprecatedStorageQuota._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('DeprecatedStorageQuota.queryUsageAndQuota')
- @DocsEditable()
- @Experimental() // untriaged
- void queryUsageAndQuota(StorageUsageCallback usageCallback,
- [StorageErrorCallback errorCallback]) native;
-
- @DomName('DeprecatedStorageQuota.requestQuota')
- @DocsEditable()
- @Experimental() // untriaged
- void requestQuota(int newQuotaInBytes,
- [StorageQuotaCallback quotaCallback,
- StorageErrorCallback errorCallback]) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLDetailsElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Experimental()
-@Native("HTMLDetailsElement")
-class DetailsElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory DetailsElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLDetailsElement.HTMLDetailsElement')
- @DocsEditable()
- factory DetailsElement() => document.createElement("details");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- DetailsElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported => Element.isTagSupported('details');
-
- @DomName('HTMLDetailsElement.open')
- @DocsEditable()
- bool open;
-}
-// 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.
-
-@DocsEditable()
-@DomName('DeviceAcceleration')
-// http://dev.w3.org/geo/api/spec-source-orientation.html#devicemotion
-@Experimental()
-@Native("DeviceAcceleration")
-class DeviceAcceleration extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory DeviceAcceleration._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('DeviceAcceleration.x')
- @DocsEditable()
- final double x;
-
- @DomName('DeviceAcceleration.y')
- @DocsEditable()
- final double y;
-
- @DomName('DeviceAcceleration.z')
- @DocsEditable()
- final double z;
-}
-// 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.
-
-@DocsEditable()
-@DomName('DeviceLightEvent')
-@Experimental() // untriaged
-@Native("DeviceLightEvent")
-class DeviceLightEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory DeviceLightEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('DeviceLightEvent.DeviceLightEvent')
- @DocsEditable()
- factory DeviceLightEvent(String type, [Map eventInitDict]) {
- if (eventInitDict != null) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return DeviceLightEvent._create_1(type, eventInitDict_1);
- }
- return DeviceLightEvent._create_2(type);
- }
- static DeviceLightEvent _create_1(type, eventInitDict) =>
- JS('DeviceLightEvent', 'new DeviceLightEvent(#,#)', type, eventInitDict);
- static DeviceLightEvent _create_2(type) =>
- JS('DeviceLightEvent', 'new DeviceLightEvent(#)', type);
-
- @DomName('DeviceLightEvent.value')
- @DocsEditable()
- @Experimental() // untriaged
- final double value;
-}
-// 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.
-
-@DocsEditable()
-@DomName('DeviceMotionEvent')
-// http://dev.w3.org/geo/api/spec-source-orientation.html#devicemotion
-@Experimental()
-@Native("DeviceMotionEvent")
-class DeviceMotionEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory DeviceMotionEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('DeviceMotionEvent.acceleration')
- @DocsEditable()
- final DeviceAcceleration acceleration;
-
- @DomName('DeviceMotionEvent.accelerationIncludingGravity')
- @DocsEditable()
- final DeviceAcceleration accelerationIncludingGravity;
-
- @DomName('DeviceMotionEvent.interval')
- @DocsEditable()
- final double interval;
-
- @DomName('DeviceMotionEvent.rotationRate')
- @DocsEditable()
- final DeviceRotationRate rotationRate;
-
- @DomName('DeviceMotionEvent.initDeviceMotionEvent')
- @DocsEditable()
- @Experimental() // untriaged
- void initDeviceMotionEvent(
- String type,
- bool bubbles,
- bool cancelable,
- DeviceAcceleration acceleration,
- DeviceAcceleration accelerationIncludingGravity,
- DeviceRotationRate rotationRate,
- num interval) native;
-}
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('DeviceOrientationEvent')
-// http://dev.w3.org/geo/api/spec-source-orientation.html#devicemotion
-@Experimental()
-@Native("DeviceOrientationEvent")
-class DeviceOrientationEvent extends Event {
- factory DeviceOrientationEvent(String type,
- {bool canBubble: true,
- bool cancelable: true,
- num alpha: 0,
- num beta: 0,
- num gamma: 0,
- bool absolute: false}) {
- DeviceOrientationEvent e = document._createEvent("DeviceOrientationEvent");
- e._initDeviceOrientationEvent(
- type, canBubble, cancelable, alpha, beta, gamma, absolute);
- return e;
- }
- // To suppress missing implicit constructor warnings.
- factory DeviceOrientationEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('DeviceOrientationEvent.absolute')
- @DocsEditable()
- final bool absolute;
-
- @DomName('DeviceOrientationEvent.alpha')
- @DocsEditable()
- final double alpha;
-
- @DomName('DeviceOrientationEvent.beta')
- @DocsEditable()
- final double beta;
-
- @DomName('DeviceOrientationEvent.gamma')
- @DocsEditable()
- final double gamma;
-
- @JSName('initDeviceOrientationEvent')
- @DomName('DeviceOrientationEvent.initDeviceOrientationEvent')
- @DocsEditable()
- void _initDeviceOrientationEvent(String type, bool bubbles, bool cancelable,
- num alpha, num beta, num gamma, bool absolute) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('DeviceRotationRate')
-// http://dev.w3.org/geo/api/spec-source-orientation.html#devicemotion
-@Experimental()
-@Native("DeviceRotationRate")
-class DeviceRotationRate extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory DeviceRotationRate._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('DeviceRotationRate.alpha')
- @DocsEditable()
- final double alpha;
-
- @DomName('DeviceRotationRate.beta')
- @DocsEditable()
- final double beta;
-
- @DomName('DeviceRotationRate.gamma')
- @DocsEditable()
- final double gamma;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLDialogElement')
-@Unstable()
-@Native("HTMLDialogElement")
-class DialogElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory DialogElement._() {
- throw new UnsupportedError("Not supported");
- }
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- DialogElement.created() : super.created();
-
- @DomName('HTMLDialogElement.open')
- @DocsEditable()
- bool open;
-
- @DomName('HTMLDialogElement.returnValue')
- @DocsEditable()
- @Experimental() // untriaged
- String returnValue;
-
- @DomName('HTMLDialogElement.close')
- @DocsEditable()
- void close(String returnValue) native;
-
- @DomName('HTMLDialogElement.show')
- @DocsEditable()
- void show() native;
-
- @DomName('HTMLDialogElement.showModal')
- @DocsEditable()
- void showModal() native;
-}
-// 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.
-
-@DomName('DirectoryEntry')
-// http://www.w3.org/TR/file-system-api/#the-directoryentry-interface
-@Experimental()
-@Native("DirectoryEntry")
-class DirectoryEntry extends Entry {
- /**
- * Create a new directory with the specified `path`. If `exclusive` is true,
- * the returned Future will complete with an error if a directory already
- * exists with the specified `path`.
- */
- Future<Entry> createDirectory(String path, {bool exclusive: false}) {
- return _getDirectory(path,
- options: {'create': true, 'exclusive': exclusive});
- }
-
- /**
- * Retrieve an already existing directory entry. The returned future will
- * result in an error if a directory at `path` does not exist or if the item
- * at `path` is not a directory.
- */
- Future<Entry> getDirectory(String path) {
- return _getDirectory(path);
- }
-
- /**
- * Create a new file with the specified `path`. If `exclusive` is true,
- * the returned Future will complete with an error if a file already
- * exists at the specified `path`.
- */
- Future<Entry> createFile(String path, {bool exclusive: false}) {
- return _getFile(path, options: {'create': true, 'exclusive': exclusive});
- }
-
- /**
- * Retrieve an already existing file entry. The returned future will
- * result in an error if a file at `path` does not exist or if the item at
- * `path` is not a file.
- */
- Future<Entry> getFile(String path) {
- return _getFile(path);
- }
-
- // To suppress missing implicit constructor warnings.
- factory DirectoryEntry._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('DirectoryEntry.createReader')
- @DocsEditable()
- DirectoryReader createReader() native;
-
- @DomName('DirectoryEntry.getDirectory')
- @DocsEditable()
- void __getDirectory(String path,
- {Map options,
- _EntryCallback successCallback,
- _ErrorCallback errorCallback}) {
- if (errorCallback != null) {
- var options_1 = convertDartToNative_Dictionary(options);
- __getDirectory_1(path, options_1, successCallback, errorCallback);
- return;
- }
- if (successCallback != null) {
- var options_1 = convertDartToNative_Dictionary(options);
- __getDirectory_2(path, options_1, successCallback);
- return;
- }
- if (options != null) {
- var options_1 = convertDartToNative_Dictionary(options);
- __getDirectory_3(path, options_1);
- return;
- }
- __getDirectory_4(path);
- return;
- }
-
- @JSName('getDirectory')
- @DomName('DirectoryEntry.getDirectory')
- @DocsEditable()
- void __getDirectory_1(path, options, _EntryCallback successCallback,
- _ErrorCallback errorCallback) native;
- @JSName('getDirectory')
- @DomName('DirectoryEntry.getDirectory')
- @DocsEditable()
- void __getDirectory_2(path, options, _EntryCallback successCallback) native;
- @JSName('getDirectory')
- @DomName('DirectoryEntry.getDirectory')
- @DocsEditable()
- void __getDirectory_3(path, options) native;
- @JSName('getDirectory')
- @DomName('DirectoryEntry.getDirectory')
- @DocsEditable()
- void __getDirectory_4(path) native;
-
- @JSName('getDirectory')
- @DomName('DirectoryEntry.getDirectory')
- @DocsEditable()
- Future<Entry> _getDirectory(String path, {Map options}) {
- var completer = new Completer<Entry>();
- __getDirectory(path, options: options, successCallback: (value) {
- completer.complete(value);
- }, errorCallback: (error) {
- completer.completeError(error);
- });
- return completer.future;
- }
-
- @DomName('DirectoryEntry.getFile')
- @DocsEditable()
- void __getFile(String path,
- {Map options,
- _EntryCallback successCallback,
- _ErrorCallback errorCallback}) {
- if (errorCallback != null) {
- var options_1 = convertDartToNative_Dictionary(options);
- __getFile_1(path, options_1, successCallback, errorCallback);
- return;
- }
- if (successCallback != null) {
- var options_1 = convertDartToNative_Dictionary(options);
- __getFile_2(path, options_1, successCallback);
- return;
- }
- if (options != null) {
- var options_1 = convertDartToNative_Dictionary(options);
- __getFile_3(path, options_1);
- return;
- }
- __getFile_4(path);
- return;
- }
-
- @JSName('getFile')
- @DomName('DirectoryEntry.getFile')
- @DocsEditable()
- void __getFile_1(path, options, _EntryCallback successCallback,
- _ErrorCallback errorCallback) native;
- @JSName('getFile')
- @DomName('DirectoryEntry.getFile')
- @DocsEditable()
- void __getFile_2(path, options, _EntryCallback successCallback) native;
- @JSName('getFile')
- @DomName('DirectoryEntry.getFile')
- @DocsEditable()
- void __getFile_3(path, options) native;
- @JSName('getFile')
- @DomName('DirectoryEntry.getFile')
- @DocsEditable()
- void __getFile_4(path) native;
-
- @JSName('getFile')
- @DomName('DirectoryEntry.getFile')
- @DocsEditable()
- Future<Entry> _getFile(String path, {Map options}) {
- var completer = new Completer<Entry>();
- __getFile(path, options: options, successCallback: (value) {
- completer.complete(value);
- }, errorCallback: (error) {
- completer.completeError(error);
- });
- return completer.future;
- }
-
- @JSName('removeRecursively')
- @DomName('DirectoryEntry.removeRecursively')
- @DocsEditable()
- void _removeRecursively(VoidCallback successCallback,
- [_ErrorCallback errorCallback]) native;
-
- @JSName('removeRecursively')
- @DomName('DirectoryEntry.removeRecursively')
- @DocsEditable()
- Future removeRecursively() {
- var completer = new Completer();
- _removeRecursively(() {
- completer.complete();
- }, (error) {
- completer.completeError(error);
- });
- return completer.future;
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('DirectoryReader')
-// http://www.w3.org/TR/file-system-api/#the-directoryreader-interface
-@Experimental()
-@Native("DirectoryReader")
-class DirectoryReader extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory DirectoryReader._() {
- throw new UnsupportedError("Not supported");
- }
-
- @JSName('readEntries')
- @DomName('DirectoryReader.readEntries')
- @DocsEditable()
- void _readEntries(_EntriesCallback successCallback,
- [_ErrorCallback errorCallback]) native;
-
- @JSName('readEntries')
- @DomName('DirectoryReader.readEntries')
- @DocsEditable()
- Future<List<Entry>> readEntries() {
- var completer = new Completer<List<Entry>>();
- _readEntries((value) {
- completer.complete(value);
- }, (error) {
- completer.completeError(error);
- });
- return completer.future;
- }
-}
-// 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.
-
-@DocsEditable()
-/**
- * A generic container for content on an HTML page;
- * corresponds to the <div> tag.
- *
- * The [DivElement] is a generic container and does not have any semantic
- * significance. It is functionally similar to [SpanElement].
- *
- * The [DivElement] is a block-level element, as opposed to [SpanElement],
- * which is an inline-level element.
- *
- * Example usage:
- *
- * DivElement div = new DivElement();
- * div.text = 'Here's my new DivElem
- * document.body.elements.add(elem);
- *
- * See also:
- *
- * * [HTML `<div>` element](http://www.w3.org/TR/html-markup/div.html) from W3C.
- * * [Block-level element](http://www.w3.org/TR/CSS2/visuren.html#block-boxes) from W3C.
- * * [Inline-level element](http://www.w3.org/TR/CSS2/visuren.html#inline-boxes) from W3C.
- */
-@DomName('HTMLDivElement')
-@Native("HTMLDivElement")
-class DivElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory DivElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLDivElement.HTMLDivElement')
- @DocsEditable()
- factory DivElement() => JS('returns:DivElement;creates:DivElement;new:true',
- '#.createElement(#)', document, "div");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- DivElement.created() : super.created();
-}
-// 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.
-
-@DocsEditable()
-/**
- * The base class for all documents.
- *
- * Each web page loaded in the browser has its own [Document] object, which is
- * typically an [HtmlDocument].
- *
- * If you aren't comfortable with DOM concepts, see the Dart tutorial
- * [Target 2: Connect Dart & HTML](http://www.dartlang.org/docs/tutorials/connect-dart-html/).
- */
-@DomName('Document')
-@Native("Document")
-class Document extends Node {
- // To suppress missing implicit constructor warnings.
- factory Document._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('Document.pointerlockchangeEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> pointerLockChangeEvent =
- const EventStreamProvider<Event>('pointerlockchange');
-
- @DomName('Document.pointerlockerrorEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> pointerLockErrorEvent =
- const EventStreamProvider<Event>('pointerlockerror');
-
- /**
- * Static factory designed to expose `readystatechange` events to event
- * handlers that are not necessarily instances of [Document].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Document.readystatechangeEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> readyStateChangeEvent =
- const EventStreamProvider<Event>('readystatechange');
-
- /**
- * Static factory designed to expose `securitypolicyviolation` events to event
- * handlers that are not necessarily instances of [Document].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Document.securitypolicyviolationEvent')
- @DocsEditable()
- // https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#widl-Document-onsecuritypolicyviolation
- @Experimental()
- static const EventStreamProvider<SecurityPolicyViolationEvent>
- securityPolicyViolationEvent =
- const EventStreamProvider<SecurityPolicyViolationEvent>(
- 'securitypolicyviolation');
-
- /**
- * Static factory designed to expose `selectionchange` events to event
- * handlers that are not necessarily instances of [Document].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Document.selectionchangeEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> selectionChangeEvent =
- const EventStreamProvider<Event>('selectionchange');
-
- @DomName('Document.activeElement')
- @DocsEditable()
- @Experimental() // untriaged
- final Element activeElement;
-
- @JSName('body')
- @DomName('Document.body')
- @DocsEditable()
- HtmlElement _body;
-
- @DomName('Document.contentType')
- @DocsEditable()
- @Experimental() // untriaged
- final String contentType;
-
- @DomName('Document.cookie')
- @DocsEditable()
- String cookie;
-
- @DomName('Document.currentScript')
- @DocsEditable()
- @Experimental() // untriaged
- final ScriptElement currentScript;
-
- @DomName('Document.window')
- @DocsEditable()
- @Experimental() // untriaged
- WindowBase get window => _convertNativeToDart_Window(this._get_window);
- @JSName('defaultView')
- @DomName('Document.window')
- @DocsEditable()
- @Experimental() // untriaged
- @Creates('Window|=Object')
- @Returns('Window|=Object')
- @Creates('Window|=Object|Null')
- @Returns('Window|=Object|Null')
- final dynamic _get_window;
-
- @DomName('Document.documentElement')
- @DocsEditable()
- final Element documentElement;
-
- @DomName('Document.domain')
- @DocsEditable()
- final String domain;
-
- @DomName('Document.fonts')
- @DocsEditable()
- @Experimental() // untriaged
- final FontFaceSet fonts;
-
- @DomName('Document.fullscreenElement')
- @DocsEditable()
- @Experimental() // untriaged
- final Element fullscreenElement;
-
- @DomName('Document.fullscreenEnabled')
- @DocsEditable()
- @Experimental() // untriaged
- final bool fullscreenEnabled;
-
- @JSName('head')
- @DomName('Document.head')
- @DocsEditable()
- final HeadElement _head;
-
- @DomName('Document.hidden')
- @DocsEditable()
- @Experimental() // untriaged
- final bool hidden;
-
- @DomName('Document.implementation')
- @DocsEditable()
- final DomImplementation implementation;
-
- @JSName('lastModified')
- @DomName('Document.lastModified')
- @DocsEditable()
- final String _lastModified;
-
- @DomName('Document.origin')
- @DocsEditable()
- @Experimental() // untriaged
- final String origin;
-
- @DomName('Document.pointerLockElement')
- @DocsEditable()
- @Experimental() // untriaged
- final Element pointerLockElement;
-
- @JSName('preferredStylesheetSet')
- @DomName('Document.preferredStylesheetSet')
- @DocsEditable()
- final String _preferredStylesheetSet;
-
- @DomName('Document.readyState')
- @DocsEditable()
- final String readyState;
-
- @JSName('referrer')
- @DomName('Document.referrer')
- @DocsEditable()
- final String _referrer;
-
- @DomName('Document.rootElement')
- @DocsEditable()
- @Experimental() // untriaged
- final SvgSvgElement rootElement;
-
- @DomName('Document.scrollingElement')
- @DocsEditable()
- @Experimental() // untriaged
- final Element scrollingElement;
-
- @JSName('selectedStylesheetSet')
- @DomName('Document.selectedStylesheetSet')
- @DocsEditable()
- String _selectedStylesheetSet;
-
- @JSName('styleSheets')
- @DomName('Document.styleSheets')
- @DocsEditable()
- @Returns('_StyleSheetList|Null')
- @Creates('_StyleSheetList')
- final List<StyleSheet> _styleSheets;
-
- @DomName('Document.suborigin')
- @DocsEditable()
- @Experimental() // untriaged
- final String suborigin;
-
- @DomName('Document.timeline')
- @DocsEditable()
- @Experimental() // untriaged
- final AnimationTimeline timeline;
-
- @JSName('title')
- @DomName('Document.title')
- @DocsEditable()
- String _title;
-
- @JSName('visibilityState')
- @DomName('Document.visibilityState')
- @DocsEditable()
- @Experimental() // untriaged
- final String _visibilityState;
-
- @JSName('webkitFullscreenElement')
- @DomName('Document.webkitFullscreenElement')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- // https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html#dom-document-fullscreenelement
- final Element _webkitFullscreenElement;
-
- @JSName('webkitFullscreenEnabled')
- @DomName('Document.webkitFullscreenEnabled')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- // https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html#dom-document-fullscreenenabled
- final bool _webkitFullscreenEnabled;
-
- @JSName('webkitHidden')
- @DomName('Document.webkitHidden')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- // https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/PageVisibility/Overview.html#document
- final bool _webkitHidden;
-
- @JSName('webkitVisibilityState')
- @DomName('Document.webkitVisibilityState')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- // https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/PageVisibility/Overview.html#dom-document-visibilitystate
- final String _webkitVisibilityState;
-
- @DomName('Document.adoptNode')
- @DocsEditable()
- Node adoptNode(Node node) native;
-
- @JSName('caretRangeFromPoint')
- @DomName('Document.caretRangeFromPoint')
- @DocsEditable()
- // http://www.w3.org/TR/2009/WD-cssom-view-20090804/#dom-documentview-caretrangefrompoint
- @Experimental()
- Range _caretRangeFromPoint(int x, int y) native;
-
- @DomName('Document.createDocumentFragment')
- @DocsEditable()
- DocumentFragment createDocumentFragment() native;
-
- @JSName('createElement')
- @DomName('Document.createElement')
- @DocsEditable()
- Element _createElement(String localName_OR_tagName, [String typeExtension])
- native;
-
- @JSName('createElementNS')
- @DomName('Document.createElementNS')
- @DocsEditable()
- Element _createElementNS(String namespaceURI, String qualifiedName,
- [String typeExtension]) native;
-
- @JSName('createEvent')
- @DomName('Document.createEvent')
- @DocsEditable()
- Event _createEvent(String eventType) native;
-
- @DomName('Document.createRange')
- @DocsEditable()
- Range createRange() native;
-
- @JSName('createTextNode')
- @DomName('Document.createTextNode')
- @DocsEditable()
- Text _createTextNode(String data) native;
-
- @DomName('Document.createTouch')
- @DocsEditable()
- // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
- @Experimental()
- Touch _createTouch(
- Window window,
- EventTarget target,
- int identifier,
- num pageX,
- num pageY,
- num screenX,
- num screenY,
- num radiusX,
- num radiusY,
- num rotationAngle,
- num force) {
- var target_1 = _convertDartToNative_EventTarget(target);
- return _createTouch_1(window, target_1, identifier, pageX, pageY, screenX,
- screenY, radiusX, radiusY, rotationAngle, force);
- }
-
- @JSName('createTouch')
- @DomName('Document.createTouch')
- @DocsEditable()
- // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
- @Experimental()
- Touch _createTouch_1(Window window, target, identifier, pageX, pageY, screenX,
- screenY, radiusX, radiusY, rotationAngle, force) native;
-
- @JSName('createTouchList')
- @DomName('Document.createTouchList')
- @DocsEditable()
- // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
- @Experimental()
- TouchList _createTouchList(Touch touches) native;
-
- @JSName('elementFromPoint')
- @DomName('Document.elementFromPoint')
- @DocsEditable()
- Element _elementFromPoint(int x, int y) native;
-
- @DomName('Document.elementsFromPoint')
- @DocsEditable()
- @Experimental() // untriaged
- List<Element> elementsFromPoint(int x, int y) native;
-
- @DomName('Document.execCommand')
- @DocsEditable()
- bool execCommand(String commandId, [bool showUI, String value]) native;
-
- @DomName('Document.exitFullscreen')
- @DocsEditable()
- @Experimental() // untriaged
- void exitFullscreen() native;
-
- @DomName('Document.exitPointerLock')
- @DocsEditable()
- @Experimental() // untriaged
- void exitPointerLock() native;
-
- @DomName('Document.getElementsByClassName')
- @DocsEditable()
- @Creates('NodeList|HtmlCollection')
- @Returns('NodeList|HtmlCollection')
- List<Node> getElementsByClassName(String classNames) native;
-
- @DomName('Document.getElementsByName')
- @DocsEditable()
- @Creates('NodeList|HtmlCollection')
- @Returns('NodeList|HtmlCollection')
- List<Node> getElementsByName(String elementName) native;
-
- @DomName('Document.getElementsByTagName')
- @DocsEditable()
- @Creates('NodeList|HtmlCollection')
- @Returns('NodeList|HtmlCollection')
- List<Node> getElementsByTagName(String localName) native;
-
- @DomName('Document.importNode')
- @DocsEditable()
- Node importNode(Node node, [bool deep]) native;
-
- @DomName('Document.queryCommandEnabled')
- @DocsEditable()
- bool queryCommandEnabled(String commandId) native;
-
- @DomName('Document.queryCommandIndeterm')
- @DocsEditable()
- bool queryCommandIndeterm(String commandId) native;
-
- @DomName('Document.queryCommandState')
- @DocsEditable()
- bool queryCommandState(String commandId) native;
-
- @DomName('Document.queryCommandSupported')
- @DocsEditable()
- bool queryCommandSupported(String commandId) native;
-
- @DomName('Document.queryCommandValue')
- @DocsEditable()
- String queryCommandValue(String commandId) native;
-
- @DomName('Document.transformDocumentToTreeView')
- @DocsEditable()
- @Experimental() // untriaged
- void transformDocumentToTreeView(String noStyleMessage) native;
-
- @JSName('webkitExitFullscreen')
- @DomName('Document.webkitExitFullscreen')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- // https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html#dom-document-exitfullscreen
- void _webkitExitFullscreen() native;
-
- // From NonElementParentNode
-
- @DomName('Document.getElementById')
- @DocsEditable()
- Element getElementById(String elementId) native;
-
- // From ParentNode
-
- @JSName('childElementCount')
- @DomName('Document.childElementCount')
- @DocsEditable()
- final int _childElementCount;
-
- @JSName('children')
- @DomName('Document.children')
- @DocsEditable()
- @Returns('HtmlCollection|Null')
- @Creates('HtmlCollection')
- final List<Node> _children;
-
- @JSName('firstElementChild')
- @DomName('Document.firstElementChild')
- @DocsEditable()
- final Element _firstElementChild;
-
- @JSName('lastElementChild')
- @DomName('Document.lastElementChild')
- @DocsEditable()
- final Element _lastElementChild;
-
- /**
- * Finds the first descendant element of this document that matches the
- * specified group of selectors.
- *
- * Unless your webpage contains multiple documents, the top-level
- * [querySelector]
- * method behaves the same as this method, so you should use it instead to
- * save typing a few characters.
- *
- * [selectors] should be a string using CSS selector syntax.
- *
- * var element1 = document.querySelector('.className');
- * var element2 = document.querySelector('#id');
- *
- * For details about CSS selector syntax, see the
- * [CSS selector specification](http://www.w3.org/TR/css3-selectors/).
- */
- @DomName('Document.querySelector')
- @DocsEditable()
- Element querySelector(String selectors) native;
-
- @JSName('querySelectorAll')
- @DomName('Document.querySelectorAll')
- @DocsEditable()
- @Creates('NodeList')
- @Returns('NodeList')
- List<Node> _querySelectorAll(String selectors) native;
-
- /// Stream of `abort` events handled by this [Document].
- @DomName('Document.onabort')
- @DocsEditable()
- Stream<Event> get onAbort => Element.abortEvent.forTarget(this);
-
- /// Stream of `beforecopy` events handled by this [Document].
- @DomName('Document.onbeforecopy')
- @DocsEditable()
- Stream<Event> get onBeforeCopy => Element.beforeCopyEvent.forTarget(this);
-
- /// Stream of `beforecut` events handled by this [Document].
- @DomName('Document.onbeforecut')
- @DocsEditable()
- Stream<Event> get onBeforeCut => Element.beforeCutEvent.forTarget(this);
-
- /// Stream of `beforepaste` events handled by this [Document].
- @DomName('Document.onbeforepaste')
- @DocsEditable()
- Stream<Event> get onBeforePaste => Element.beforePasteEvent.forTarget(this);
-
- /// Stream of `blur` events handled by this [Document].
- @DomName('Document.onblur')
- @DocsEditable()
- Stream<Event> get onBlur => Element.blurEvent.forTarget(this);
-
- @DomName('Document.oncanplay')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onCanPlay => Element.canPlayEvent.forTarget(this);
-
- @DomName('Document.oncanplaythrough')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onCanPlayThrough =>
- Element.canPlayThroughEvent.forTarget(this);
-
- /// Stream of `change` events handled by this [Document].
- @DomName('Document.onchange')
- @DocsEditable()
- Stream<Event> get onChange => Element.changeEvent.forTarget(this);
-
- /// Stream of `click` events handled by this [Document].
- @DomName('Document.onclick')
- @DocsEditable()
- Stream<MouseEvent> get onClick => Element.clickEvent.forTarget(this);
-
- /// Stream of `contextmenu` events handled by this [Document].
- @DomName('Document.oncontextmenu')
- @DocsEditable()
- Stream<MouseEvent> get onContextMenu =>
- Element.contextMenuEvent.forTarget(this);
-
- /// Stream of `copy` events handled by this [Document].
- @DomName('Document.oncopy')
- @DocsEditable()
- Stream<ClipboardEvent> get onCopy => Element.copyEvent.forTarget(this);
-
- /// Stream of `cut` events handled by this [Document].
- @DomName('Document.oncut')
- @DocsEditable()
- Stream<ClipboardEvent> get onCut => Element.cutEvent.forTarget(this);
-
- /// Stream of `doubleclick` events handled by this [Document].
- @DomName('Document.ondblclick')
- @DocsEditable()
- Stream<Event> get onDoubleClick => Element.doubleClickEvent.forTarget(this);
-
- /// Stream of `drag` events handled by this [Document].
- @DomName('Document.ondrag')
- @DocsEditable()
- Stream<MouseEvent> get onDrag => Element.dragEvent.forTarget(this);
-
- /// Stream of `dragend` events handled by this [Document].
- @DomName('Document.ondragend')
- @DocsEditable()
- Stream<MouseEvent> get onDragEnd => Element.dragEndEvent.forTarget(this);
-
- /// Stream of `dragenter` events handled by this [Document].
- @DomName('Document.ondragenter')
- @DocsEditable()
- Stream<MouseEvent> get onDragEnter => Element.dragEnterEvent.forTarget(this);
-
- /// Stream of `dragleave` events handled by this [Document].
- @DomName('Document.ondragleave')
- @DocsEditable()
- Stream<MouseEvent> get onDragLeave => Element.dragLeaveEvent.forTarget(this);
-
- /// Stream of `dragover` events handled by this [Document].
- @DomName('Document.ondragover')
- @DocsEditable()
- Stream<MouseEvent> get onDragOver => Element.dragOverEvent.forTarget(this);
-
- /// Stream of `dragstart` events handled by this [Document].
- @DomName('Document.ondragstart')
- @DocsEditable()
- Stream<MouseEvent> get onDragStart => Element.dragStartEvent.forTarget(this);
-
- /// Stream of `drop` events handled by this [Document].
- @DomName('Document.ondrop')
- @DocsEditable()
- Stream<MouseEvent> get onDrop => Element.dropEvent.forTarget(this);
-
- @DomName('Document.ondurationchange')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onDurationChange =>
- Element.durationChangeEvent.forTarget(this);
-
- @DomName('Document.onemptied')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onEmptied => Element.emptiedEvent.forTarget(this);
-
- @DomName('Document.onended')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onEnded => Element.endedEvent.forTarget(this);
-
- /// Stream of `error` events handled by this [Document].
- @DomName('Document.onerror')
- @DocsEditable()
- Stream<Event> get onError => Element.errorEvent.forTarget(this);
-
- /// Stream of `focus` events handled by this [Document].
- @DomName('Document.onfocus')
- @DocsEditable()
- Stream<Event> get onFocus => Element.focusEvent.forTarget(this);
-
- /// Stream of `input` events handled by this [Document].
- @DomName('Document.oninput')
- @DocsEditable()
- Stream<Event> get onInput => Element.inputEvent.forTarget(this);
-
- /// Stream of `invalid` events handled by this [Document].
- @DomName('Document.oninvalid')
- @DocsEditable()
- Stream<Event> get onInvalid => Element.invalidEvent.forTarget(this);
-
- /// Stream of `keydown` events handled by this [Document].
- @DomName('Document.onkeydown')
- @DocsEditable()
- Stream<KeyboardEvent> get onKeyDown => Element.keyDownEvent.forTarget(this);
-
- /// Stream of `keypress` events handled by this [Document].
- @DomName('Document.onkeypress')
- @DocsEditable()
- Stream<KeyboardEvent> get onKeyPress => Element.keyPressEvent.forTarget(this);
-
- /// Stream of `keyup` events handled by this [Document].
- @DomName('Document.onkeyup')
- @DocsEditable()
- Stream<KeyboardEvent> get onKeyUp => Element.keyUpEvent.forTarget(this);
-
- /// Stream of `load` events handled by this [Document].
- @DomName('Document.onload')
- @DocsEditable()
- Stream<Event> get onLoad => Element.loadEvent.forTarget(this);
-
- @DomName('Document.onloadeddata')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onLoadedData => Element.loadedDataEvent.forTarget(this);
-
- @DomName('Document.onloadedmetadata')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onLoadedMetadata =>
- Element.loadedMetadataEvent.forTarget(this);
-
- /// Stream of `mousedown` events handled by this [Document].
- @DomName('Document.onmousedown')
- @DocsEditable()
- Stream<MouseEvent> get onMouseDown => Element.mouseDownEvent.forTarget(this);
-
- /// Stream of `mouseenter` events handled by this [Document].
- @DomName('Document.onmouseenter')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<MouseEvent> get onMouseEnter =>
- Element.mouseEnterEvent.forTarget(this);
-
- /// Stream of `mouseleave` events handled by this [Document].
- @DomName('Document.onmouseleave')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<MouseEvent> get onMouseLeave =>
- Element.mouseLeaveEvent.forTarget(this);
-
- /// Stream of `mousemove` events handled by this [Document].
- @DomName('Document.onmousemove')
- @DocsEditable()
- Stream<MouseEvent> get onMouseMove => Element.mouseMoveEvent.forTarget(this);
-
- /// Stream of `mouseout` events handled by this [Document].
- @DomName('Document.onmouseout')
- @DocsEditable()
- Stream<MouseEvent> get onMouseOut => Element.mouseOutEvent.forTarget(this);
-
- /// Stream of `mouseover` events handled by this [Document].
- @DomName('Document.onmouseover')
- @DocsEditable()
- Stream<MouseEvent> get onMouseOver => Element.mouseOverEvent.forTarget(this);
-
- /// Stream of `mouseup` events handled by this [Document].
- @DomName('Document.onmouseup')
- @DocsEditable()
- Stream<MouseEvent> get onMouseUp => Element.mouseUpEvent.forTarget(this);
-
- /// Stream of `mousewheel` events handled by this [Document].
- @DomName('Document.onmousewheel')
- @DocsEditable()
- Stream<WheelEvent> get onMouseWheel =>
- Element.mouseWheelEvent.forTarget(this);
-
- /// Stream of `paste` events handled by this [Document].
- @DomName('Document.onpaste')
- @DocsEditable()
- Stream<ClipboardEvent> get onPaste => Element.pasteEvent.forTarget(this);
-
- @DomName('Document.onpause')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onPause => Element.pauseEvent.forTarget(this);
-
- @DomName('Document.onplay')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onPlay => Element.playEvent.forTarget(this);
-
- @DomName('Document.onplaying')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onPlaying => Element.playingEvent.forTarget(this);
-
- @DomName('Document.onpointerlockchange')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onPointerLockChange =>
- pointerLockChangeEvent.forTarget(this);
-
- @DomName('Document.onpointerlockerror')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onPointerLockError => pointerLockErrorEvent.forTarget(this);
-
- @DomName('Document.onratechange')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onRateChange => Element.rateChangeEvent.forTarget(this);
-
- /// Stream of `readystatechange` events handled by this [Document].
- @DomName('Document.onreadystatechange')
- @DocsEditable()
- Stream<Event> get onReadyStateChange => readyStateChangeEvent.forTarget(this);
-
- /// Stream of `reset` events handled by this [Document].
- @DomName('Document.onreset')
- @DocsEditable()
- Stream<Event> get onReset => Element.resetEvent.forTarget(this);
-
- @DomName('Document.onresize')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onResize => Element.resizeEvent.forTarget(this);
-
- /// Stream of `scroll` events handled by this [Document].
- @DomName('Document.onscroll')
- @DocsEditable()
- Stream<Event> get onScroll => Element.scrollEvent.forTarget(this);
-
- /// Stream of `search` events handled by this [Document].
- @DomName('Document.onsearch')
- @DocsEditable()
- // http://www.w3.org/TR/html-markup/input.search.html
- @Experimental()
- Stream<Event> get onSearch => Element.searchEvent.forTarget(this);
-
- /// Stream of `securitypolicyviolation` events handled by this [Document].
- @DomName('Document.onsecuritypolicyviolation')
- @DocsEditable()
- // https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#widl-Document-onsecuritypolicyviolation
- @Experimental()
- Stream<SecurityPolicyViolationEvent> get onSecurityPolicyViolation =>
- securityPolicyViolationEvent.forTarget(this);
-
- @DomName('Document.onseeked')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onSeeked => Element.seekedEvent.forTarget(this);
-
- @DomName('Document.onseeking')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onSeeking => Element.seekingEvent.forTarget(this);
-
- /// Stream of `select` events handled by this [Document].
- @DomName('Document.onselect')
- @DocsEditable()
- Stream<Event> get onSelect => Element.selectEvent.forTarget(this);
-
- /// Stream of `selectionchange` events handled by this [Document].
- @DomName('Document.onselectionchange')
- @DocsEditable()
- Stream<Event> get onSelectionChange => selectionChangeEvent.forTarget(this);
-
- /// Stream of `selectstart` events handled by this [Document].
- @DomName('Document.onselectstart')
- @DocsEditable()
- Stream<Event> get onSelectStart => Element.selectStartEvent.forTarget(this);
-
- @DomName('Document.onstalled')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onStalled => Element.stalledEvent.forTarget(this);
-
- /// Stream of `submit` events handled by this [Document].
- @DomName('Document.onsubmit')
- @DocsEditable()
- Stream<Event> get onSubmit => Element.submitEvent.forTarget(this);
-
- @DomName('Document.onsuspend')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onSuspend => Element.suspendEvent.forTarget(this);
-
- @DomName('Document.ontimeupdate')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onTimeUpdate => Element.timeUpdateEvent.forTarget(this);
-
- /// Stream of `touchcancel` events handled by this [Document].
- @DomName('Document.ontouchcancel')
- @DocsEditable()
- // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
- @Experimental()
- Stream<TouchEvent> get onTouchCancel =>
- Element.touchCancelEvent.forTarget(this);
-
- /// Stream of `touchend` events handled by this [Document].
- @DomName('Document.ontouchend')
- @DocsEditable()
- // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
- @Experimental()
- Stream<TouchEvent> get onTouchEnd => Element.touchEndEvent.forTarget(this);
-
- /// Stream of `touchmove` events handled by this [Document].
- @DomName('Document.ontouchmove')
- @DocsEditable()
- // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
- @Experimental()
- Stream<TouchEvent> get onTouchMove => Element.touchMoveEvent.forTarget(this);
-
- /// Stream of `touchstart` events handled by this [Document].
- @DomName('Document.ontouchstart')
- @DocsEditable()
- // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
- @Experimental()
- Stream<TouchEvent> get onTouchStart =>
- Element.touchStartEvent.forTarget(this);
-
- @DomName('Document.onvolumechange')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onVolumeChange => Element.volumeChangeEvent.forTarget(this);
-
- @DomName('Document.onwaiting')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onWaiting => Element.waitingEvent.forTarget(this);
-
- /// Stream of `fullscreenchange` events handled by this [Document].
- @DomName('Document.onwebkitfullscreenchange')
- @DocsEditable()
- // https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html
- @Experimental()
- Stream<Event> get onFullscreenChange =>
- Element.fullscreenChangeEvent.forTarget(this);
-
- /// Stream of `fullscreenerror` events handled by this [Document].
- @DomName('Document.onwebkitfullscreenerror')
- @DocsEditable()
- // https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html
- @Experimental()
- Stream<Event> get onFullscreenError =>
- Element.fullscreenErrorEvent.forTarget(this);
-
- /**
- * Finds all descendant elements of this document that match the specified
- * group of selectors.
- *
- * Unless your webpage contains multiple documents, the top-level
- * [querySelectorAll]
- * method behaves the same as this method, so you should use it instead to
- * save typing a few characters.
- *
- * [selectors] should be a string using CSS selector syntax.
- *
- * var items = document.querySelectorAll('.itemClassName');
- *
- * For details about CSS selector syntax, see the
- * [CSS selector specification](http://www.w3.org/TR/css3-selectors/).
- */
- ElementList<Element/*=T*/ > querySelectorAll/*<T extends Element>*/(
- String selectors) =>
- new _FrozenElementList/*<T>*/ ._wrap(_querySelectorAll(selectors));
-
- /**
- * Alias for [querySelector]. Note this function is deprecated because its
- * semantics will be changing in the future.
- */
- @deprecated
- @Experimental()
- @DomName('Document.querySelector')
- Element query(String relativeSelectors) => querySelector(relativeSelectors);
-
- /**
- * Alias for [querySelectorAll]. Note this function is deprecated because its
- * semantics will be changing in the future.
- */
- @deprecated
- @Experimental()
- @DomName('Document.querySelectorAll')
- ElementList<Element/*=T*/ > queryAll/*<T extends Element>*/(
- String relativeSelectors) =>
- querySelectorAll(relativeSelectors);
-
- /// Checks if [registerElement] is supported on the current platform.
- bool get supportsRegisterElement {
- return JS('bool', '("registerElement" in #)', this);
- }
-
- /// *Deprecated*: use [supportsRegisterElement] instead.
- @deprecated
- bool get supportsRegister => supportsRegisterElement;
-
- @DomName('Document.createElement')
- Element createElement(String tagName, [String typeExtension]) {
- return (typeExtension == null)
- ? _createElement_2(tagName)
- : _createElement(tagName, typeExtension);
- }
-
- // The two-argument version of this is automatically generated, but we need to
- // omit the typeExtension if it's null on Firefox or we get an is="null" attribute.
- @DomName('Document.createElement')
- _createElement_2(String tagName) =>
- JS('Element', '#.createElement(#)', this, tagName);
-
- // The three-argument version of this is automatically generated, but we need to
- // omit the typeExtension if it's null on Firefox or we get an is="null" attribute.
- @DomName('Document.createElementNS')
- _createElementNS_2(String namespaceURI, String qualifiedName) => JS(
- 'Element', '#.createElementNS(#, #)', this, namespaceURI, qualifiedName);
-
- @DomName('Document.createElementNS')
- @DocsEditable()
- Element createElementNS(String namespaceURI, String qualifiedName,
- [String typeExtension]) {
- return (typeExtension == null)
- ? _createElementNS_2(namespaceURI, qualifiedName)
- : _createElementNS(namespaceURI, qualifiedName, typeExtension);
- }
-
- @DomName('Document.createNodeIterator')
- NodeIterator _createNodeIterator(Node root,
- [int whatToShow, NodeFilter filter]) =>
- JS('NodeIterator', '#.createNodeIterator(#, #, #, false)', this, root,
- whatToShow, filter);
-
- @DomName('Document.createTreeWalker')
- TreeWalker _createTreeWalker(Node root,
- [int whatToShow, NodeFilter filter]) =>
- JS('TreeWalker', '#.createTreeWalker(#, #, #, false)', this, root,
- whatToShow, filter);
-
- @DomName('Document.visibilityState')
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.FIREFOX)
- @SupportedBrowser(SupportedBrowser.IE, '10')
- @Experimental()
- String get visibilityState => JS(
- 'String',
- '(#.visibilityState || #.mozVisibilityState || #.msVisibilityState ||'
- '#.webkitVisibilityState)',
- this,
- this,
- this,
- this);
-}
-// Copyright (c) 2011, 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.
-
-@DomName('DocumentFragment')
-@Native("DocumentFragment")
-class DocumentFragment extends Node
- implements NonElementParentNode, ParentNode {
- factory DocumentFragment() => document.createDocumentFragment();
-
- factory DocumentFragment.html(String html,
- {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {
- return document.body.createFragment(html,
- validator: validator, treeSanitizer: treeSanitizer);
- }
-
- factory DocumentFragment.svg(String svgContent,
- {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {
- return new svg.SvgSvgElement().createFragment(svgContent,
- validator: validator, treeSanitizer: treeSanitizer);
- }
-
- HtmlCollection get _children =>
- throw new UnimplementedError('Use _docChildren instead');
-
- // Native field is used only by Dart code so does not lead to instantiation
- // of native classes
- @Creates('Null')
- List<Element> _docChildren;
-
- List<Element> get children {
- if (_docChildren == null) {
- _docChildren = new FilteredElementList(this);
- }
- return _docChildren;
- }
-
- set children(List<Element> value) {
- // Copy list first since we don't want liveness during iteration.
- var copy = value.toList();
- var children = this.children;
- children.clear();
- children.addAll(copy);
- }
-
- /**
- * Finds all descendant elements of this document fragment that match the
- * specified group of selectors.
- *
- * [selectors] should be a string using CSS selector syntax.
- *
- * var items = document.querySelectorAll('.itemClassName');
- *
- * For details about CSS selector syntax, see the
- * [CSS selector specification](http://www.w3.org/TR/css3-selectors/).
- */
- ElementList<Element/*=T*/ > querySelectorAll/*<T extends Element>*/(
- String selectors) =>
- new _FrozenElementList/*<T>*/ ._wrap(_querySelectorAll(selectors));
-
- String get innerHtml {
- final e = new DivElement();
- e.append(this.clone(true));
- return e.innerHtml;
- }
-
- set innerHtml(String value) {
- this.setInnerHtml(value);
- }
-
- void setInnerHtml(String html,
- {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {
- this.nodes.clear();
- append(document.body.createFragment(html,
- validator: validator, treeSanitizer: treeSanitizer));
- }
-
- /**
- * Adds the specified text as a text node after the last child of this
- * document fragment.
- */
- void appendText(String text) {
- this.append(new Text(text));
- }
-
- /**
- * Parses the specified text as HTML and adds the resulting node after the
- * last child of this document fragment.
- */
- void appendHtml(String text,
- {NodeValidator validator, NodeTreeSanitizer, treeSanitizer}) {
- this.append(new DocumentFragment.html(text,
- validator: validator, treeSanitizer: treeSanitizer));
- }
-
- /**
- * Alias for [querySelector]. Note this function is deprecated because its
- * semantics will be changing in the future.
- */
- @deprecated
- @Experimental()
- @DomName('DocumentFragment.querySelector')
- Element query(String relativeSelectors) {
- return querySelector(relativeSelectors);
- }
-
- /**
- * Alias for [querySelectorAll]. Note this function is deprecated because its
- * semantics will be changing in the future.
- */
- @deprecated
- @Experimental()
- @DomName('DocumentFragment.querySelectorAll')
- ElementList<Element/*=T*/ > queryAll/*<T extends Element>*/(
- String relativeSelectors) =>
- querySelectorAll(relativeSelectors);
- // To suppress missing implicit constructor warnings.
- factory DocumentFragment._() {
- throw new UnsupportedError("Not supported");
- }
-
- // From NonElementParentNode
-
- @DomName('DocumentFragment.getElementById')
- @DocsEditable()
- @Experimental() // untriaged
- Element getElementById(String elementId) native;
-
- // From ParentNode
-
- @JSName('childElementCount')
- @DomName('DocumentFragment.childElementCount')
- @DocsEditable()
- final int _childElementCount;
-
- @JSName('firstElementChild')
- @DomName('DocumentFragment.firstElementChild')
- @DocsEditable()
- final Element _firstElementChild;
-
- @JSName('lastElementChild')
- @DomName('DocumentFragment.lastElementChild')
- @DocsEditable()
- final Element _lastElementChild;
-
- /**
- * Finds the first descendant element of this document fragment that matches
- * the specified group of selectors.
- *
- * [selectors] should be a string using CSS selector syntax.
- *
- * var element1 = fragment.querySelector('.className');
- * var element2 = fragment.querySelector('#id');
- *
- * For details about CSS selector syntax, see the
- * [CSS selector specification](http://www.w3.org/TR/css3-selectors/).
- */
- @DomName('DocumentFragment.querySelector')
- @DocsEditable()
- Element querySelector(String selectors) native;
-
- @JSName('querySelectorAll')
- @DomName('DocumentFragment.querySelectorAll')
- @DocsEditable()
- @Creates('NodeList')
- @Returns('NodeList')
- List<Node> _querySelectorAll(String selectors) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('DOMError')
-@Native("DOMError")
-class DomError extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory DomError._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('DOMError.DOMError')
- @DocsEditable()
- factory DomError(String name, [String message]) {
- if (message != null) {
- return DomError._create_1(name, message);
- }
- return DomError._create_2(name);
- }
- static DomError _create_1(name, message) =>
- JS('DomError', 'new DOMError(#,#)', name, message);
- static DomError _create_2(name) => JS('DomError', 'new DOMError(#)', name);
-
- @DomName('DOMError.message')
- @DocsEditable()
- @Experimental() // untriaged
- final String message;
-
- @DomName('DOMError.name')
- @DocsEditable()
- final String name;
-}
-// 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.
-
-@DomName('DOMException')
-@Unstable()
-@Native("DOMException")
-class DomException extends Interceptor {
- static const String INDEX_SIZE = 'IndexSizeError';
- static const String HIERARCHY_REQUEST = 'HierarchyRequestError';
- static const String WRONG_DOCUMENT = 'WrongDocumentError';
- static const String INVALID_CHARACTER = 'InvalidCharacterError';
- static const String NO_MODIFICATION_ALLOWED = 'NoModificationAllowedError';
- static const String NOT_FOUND = 'NotFoundError';
- static const String NOT_SUPPORTED = 'NotSupportedError';
- static const String INVALID_STATE = 'InvalidStateError';
- static const String SYNTAX = 'SyntaxError';
- static const String INVALID_MODIFICATION = 'InvalidModificationError';
- static const String NAMESPACE = 'NamespaceError';
- static const String INVALID_ACCESS = 'InvalidAccessError';
- static const String TYPE_MISMATCH = 'TypeMismatchError';
- static const String SECURITY = 'SecurityError';
- static const String NETWORK = 'NetworkError';
- static const String ABORT = 'AbortError';
- static const String URL_MISMATCH = 'URLMismatchError';
- static const String QUOTA_EXCEEDED = 'QuotaExceededError';
- static const String TIMEOUT = 'TimeoutError';
- static const String INVALID_NODE_TYPE = 'InvalidNodeTypeError';
- static const String DATA_CLONE = 'DataCloneError';
- // Is TypeError class derived from DomException but name is 'TypeError'
- static const String TYPE_ERROR = 'TypeError';
-
- String get name {
- var errorName = JS('String', '#.name', this);
- // Although Safari nightly has updated the name to SecurityError, Safari 5
- // and 6 still return SECURITY_ERR.
- if (Device.isWebKit && errorName == 'SECURITY_ERR') return 'SecurityError';
- // Chrome release still uses old string, remove this line when Chrome stable
- // also prints out SyntaxError.
- if (Device.isWebKit && errorName == 'SYNTAX_ERR') return 'SyntaxError';
- return errorName;
- }
-
- // To suppress missing implicit constructor warnings.
- factory DomException._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('DOMException.message')
- @DocsEditable()
- final String message;
-
- @DomName('DOMException.toString')
- @DocsEditable()
- String toString() => JS('String', 'String(#)', this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('DOMImplementation')
-@Native("DOMImplementation")
-class DomImplementation extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory DomImplementation._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('DOMImplementation.createDocument')
- @DocsEditable()
- XmlDocument createDocument(
- String namespaceURI, String qualifiedName, _DocumentType doctype) native;
-
- @DomName('DOMImplementation.createDocumentType')
- @DocsEditable()
- _DocumentType createDocumentType(
- String qualifiedName, String publicId, String systemId) native;
-
- @JSName('createHTMLDocument')
- @DomName('DOMImplementation.createHTMLDocument')
- @DocsEditable()
- HtmlDocument createHtmlDocument(String title) native;
-
- @DomName('DOMImplementation.hasFeature')
- @DocsEditable()
- bool hasFeature() native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('Iterator')
-@Experimental() // untriaged
-@Native("Iterator")
-class DomIterator extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory DomIterator._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('Iterator.next')
- @DocsEditable()
- @Experimental() // untriaged
- Object next([Object value]) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('DOMMatrix')
-@Experimental() // untriaged
-@Native("DOMMatrix")
-class DomMatrix extends DomMatrixReadOnly {
- // To suppress missing implicit constructor warnings.
- factory DomMatrix._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('DOMMatrix.DOMMatrix')
- @DocsEditable()
- factory DomMatrix([DomMatrixReadOnly other]) {
- if (other == null) {
- return DomMatrix._create_1();
- }
- if ((other is DomMatrixReadOnly)) {
- return DomMatrix._create_2(other);
- }
- throw new ArgumentError("Incorrect number or type of arguments");
- }
- static DomMatrix _create_1() => JS('DomMatrix', 'new DOMMatrix()');
- static DomMatrix _create_2(other) =>
- JS('DomMatrix', 'new DOMMatrix(#)', other);
-
- // Shadowing definition.
- num get a => JS("num", "#.a", this);
-
- set a(num value) {
- JS("void", "#.a = #", this, value);
- }
-
- // Shadowing definition.
- num get b => JS("num", "#.b", this);
-
- set b(num value) {
- JS("void", "#.b = #", this, value);
- }
-
- // Shadowing definition.
- num get c => JS("num", "#.c", this);
-
- set c(num value) {
- JS("void", "#.c = #", this, value);
- }
-
- // Shadowing definition.
- num get d => JS("num", "#.d", this);
-
- set d(num value) {
- JS("void", "#.d = #", this, value);
- }
-
- // Shadowing definition.
- num get e => JS("num", "#.e", this);
-
- set e(num value) {
- JS("void", "#.e = #", this, value);
- }
-
- // Shadowing definition.
- num get f => JS("num", "#.f", this);
-
- set f(num value) {
- JS("void", "#.f = #", this, value);
- }
-
- // Shadowing definition.
- num get m11 => JS("num", "#.m11", this);
-
- set m11(num value) {
- JS("void", "#.m11 = #", this, value);
- }
-
- // Shadowing definition.
- num get m12 => JS("num", "#.m12", this);
-
- set m12(num value) {
- JS("void", "#.m12 = #", this, value);
- }
-
- // Shadowing definition.
- num get m13 => JS("num", "#.m13", this);
-
- set m13(num value) {
- JS("void", "#.m13 = #", this, value);
- }
-
- // Shadowing definition.
- num get m14 => JS("num", "#.m14", this);
-
- set m14(num value) {
- JS("void", "#.m14 = #", this, value);
- }
-
- // Shadowing definition.
- num get m21 => JS("num", "#.m21", this);
-
- set m21(num value) {
- JS("void", "#.m21 = #", this, value);
- }
-
- // Shadowing definition.
- num get m22 => JS("num", "#.m22", this);
-
- set m22(num value) {
- JS("void", "#.m22 = #", this, value);
- }
-
- // Shadowing definition.
- num get m23 => JS("num", "#.m23", this);
-
- set m23(num value) {
- JS("void", "#.m23 = #", this, value);
- }
-
- // Shadowing definition.
- num get m24 => JS("num", "#.m24", this);
-
- set m24(num value) {
- JS("void", "#.m24 = #", this, value);
- }
-
- // Shadowing definition.
- num get m31 => JS("num", "#.m31", this);
-
- set m31(num value) {
- JS("void", "#.m31 = #", this, value);
- }
-
- // Shadowing definition.
- num get m32 => JS("num", "#.m32", this);
-
- set m32(num value) {
- JS("void", "#.m32 = #", this, value);
- }
-
- // Shadowing definition.
- num get m33 => JS("num", "#.m33", this);
-
- set m33(num value) {
- JS("void", "#.m33 = #", this, value);
- }
-
- // Shadowing definition.
- num get m34 => JS("num", "#.m34", this);
-
- set m34(num value) {
- JS("void", "#.m34 = #", this, value);
- }
-
- // Shadowing definition.
- num get m41 => JS("num", "#.m41", this);
-
- set m41(num value) {
- JS("void", "#.m41 = #", this, value);
- }
-
- // Shadowing definition.
- num get m42 => JS("num", "#.m42", this);
-
- set m42(num value) {
- JS("void", "#.m42 = #", this, value);
- }
-
- // Shadowing definition.
- num get m43 => JS("num", "#.m43", this);
-
- set m43(num value) {
- JS("void", "#.m43 = #", this, value);
- }
-
- // Shadowing definition.
- num get m44 => JS("num", "#.m44", this);
-
- set m44(num value) {
- JS("void", "#.m44 = #", this, value);
- }
-
- @DomName('DOMMatrix.multiplySelf')
- @DocsEditable()
- @Experimental() // untriaged
- DomMatrix multiplySelf(DomMatrix other) native;
-
- @DomName('DOMMatrix.preMultiplySelf')
- @DocsEditable()
- @Experimental() // untriaged
- DomMatrix preMultiplySelf(DomMatrix other) native;
-
- @DomName('DOMMatrix.scale3dSelf')
- @DocsEditable()
- @Experimental() // untriaged
- DomMatrix scale3dSelf(num scale, [num originX, num originY, num originZ])
- native;
-
- @DomName('DOMMatrix.scaleNonUniformSelf')
- @DocsEditable()
- @Experimental() // untriaged
- DomMatrix scaleNonUniformSelf(num scaleX,
- [num scaleY, num scaleZ, num originX, num originY, num originZ]) native;
-
- @DomName('DOMMatrix.scaleSelf')
- @DocsEditable()
- @Experimental() // untriaged
- DomMatrix scaleSelf(num scale, [num originX, num originY]) native;
-
- @DomName('DOMMatrix.translateSelf')
- @DocsEditable()
- @Experimental() // untriaged
- DomMatrix translateSelf(num tx, num ty, [num tz]) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('DOMMatrixReadOnly')
-@Experimental() // untriaged
-@Native("DOMMatrixReadOnly")
-class DomMatrixReadOnly extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory DomMatrixReadOnly._() {
- throw new UnsupportedError("Not supported");
- }
-
- num get a => JS("num", "#.a", this);
-
- num get b => JS("num", "#.b", this);
-
- num get c => JS("num", "#.c", this);
-
- num get d => JS("num", "#.d", this);
-
- num get e => JS("num", "#.e", this);
-
- num get f => JS("num", "#.f", this);
-
- bool get is2D => JS("bool", "#.is2D", this);
-
- bool get isIdentity => JS("bool", "#.isIdentity", this);
-
- num get m11 => JS("num", "#.m11", this);
-
- num get m12 => JS("num", "#.m12", this);
-
- num get m13 => JS("num", "#.m13", this);
-
- num get m14 => JS("num", "#.m14", this);
-
- num get m21 => JS("num", "#.m21", this);
-
- num get m22 => JS("num", "#.m22", this);
-
- num get m23 => JS("num", "#.m23", this);
-
- num get m24 => JS("num", "#.m24", this);
-
- num get m31 => JS("num", "#.m31", this);
-
- num get m32 => JS("num", "#.m32", this);
-
- num get m33 => JS("num", "#.m33", this);
-
- num get m34 => JS("num", "#.m34", this);
-
- num get m41 => JS("num", "#.m41", this);
-
- num get m42 => JS("num", "#.m42", this);
-
- num get m43 => JS("num", "#.m43", this);
-
- num get m44 => JS("num", "#.m44", this);
-
- @DomName('DOMMatrixReadOnly.multiply')
- @DocsEditable()
- @Experimental() // untriaged
- DomMatrix multiply(DomMatrix other) native;
-
- @DomName('DOMMatrixReadOnly.scale')
- @DocsEditable()
- @Experimental() // untriaged
- DomMatrix scale(num scale, [num originX, num originY]) native;
-
- @DomName('DOMMatrixReadOnly.scale3d')
- @DocsEditable()
- @Experimental() // untriaged
- DomMatrix scale3d(num scale, [num originX, num originY, num originZ]) native;
-
- @DomName('DOMMatrixReadOnly.scaleNonUniform')
- @DocsEditable()
- @Experimental() // untriaged
- DomMatrix scaleNonUniform(num scaleX,
- [num scaleY, num scaleZn, num originX, num originY, num originZ]) native;
-
- @DomName('DOMMatrixReadOnly.toFloat32Array')
- @DocsEditable()
- @Experimental() // untriaged
- Float32List toFloat32Array() native;
-
- @DomName('DOMMatrixReadOnly.toFloat64Array')
- @DocsEditable()
- @Experimental() // untriaged
- Float64List toFloat64Array() native;
-
- @DomName('DOMMatrixReadOnly.translate')
- @DocsEditable()
- @Experimental() // untriaged
- DomMatrix translate(num tx, num ty, [num tz]) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('DOMParser')
-@Native("DOMParser")
-class DomParser extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory DomParser._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('DOMParser.DOMParser')
- @DocsEditable()
- factory DomParser() {
- return DomParser._create_1();
- }
- static DomParser _create_1() => JS('DomParser', 'new DOMParser()');
-
- @DomName('DOMParser.parseFromString')
- @DocsEditable()
- Document parseFromString(String str, String type) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('DOMPoint')
-@Experimental() // untriaged
-@Native("DOMPoint")
-class DomPoint extends DomPointReadOnly {
- // To suppress missing implicit constructor warnings.
- factory DomPoint._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('DOMPoint.DOMPoint')
- @DocsEditable()
- factory DomPoint([point_OR_x, num y, num z, num w]) {
- if ((point_OR_x is Map) && y == null && z == null && w == null) {
- var point_1 = convertDartToNative_Dictionary(point_OR_x);
- return DomPoint._create_1(point_1);
- }
- if (point_OR_x == null && y == null && z == null && w == null) {
- return DomPoint._create_2();
- }
- if ((point_OR_x is num || point_OR_x == null) &&
- y == null &&
- z == null &&
- w == null) {
- return DomPoint._create_3(point_OR_x);
- }
- if ((y is num || y == null) &&
- (point_OR_x is num || point_OR_x == null) &&
- z == null &&
- w == null) {
- return DomPoint._create_4(point_OR_x, y);
- }
- if ((z is num || z == null) &&
- (y is num || y == null) &&
- (point_OR_x is num || point_OR_x == null) &&
- w == null) {
- return DomPoint._create_5(point_OR_x, y, z);
- }
- if ((w is num || w == null) &&
- (z is num || z == null) &&
- (y is num || y == null) &&
- (point_OR_x is num || point_OR_x == null)) {
- return DomPoint._create_6(point_OR_x, y, z, w);
- }
- throw new ArgumentError("Incorrect number or type of arguments");
- }
- static DomPoint _create_1(point_OR_x) =>
- JS('DomPoint', 'new DOMPoint(#)', point_OR_x);
- static DomPoint _create_2() => JS('DomPoint', 'new DOMPoint()');
- static DomPoint _create_3(point_OR_x) =>
- JS('DomPoint', 'new DOMPoint(#)', point_OR_x);
- static DomPoint _create_4(point_OR_x, y) =>
- JS('DomPoint', 'new DOMPoint(#,#)', point_OR_x, y);
- static DomPoint _create_5(point_OR_x, y, z) =>
- JS('DomPoint', 'new DOMPoint(#,#,#)', point_OR_x, y, z);
- static DomPoint _create_6(point_OR_x, y, z, w) =>
- JS('DomPoint', 'new DOMPoint(#,#,#,#)', point_OR_x, y, z, w);
-
- /// Checks if this type is supported on the current platform.
- static bool get supported =>
- JS('bool', '!!(window.DOMPoint) || !!(window.WebKitPoint)');
-
- // Shadowing definition.
- num get w => JS("num", "#.w", this);
-
- set w(num value) {
- JS("void", "#.w = #", this, value);
- }
-
- // Shadowing definition.
- num get x => JS("num", "#.x", this);
-
- set x(num value) {
- JS("void", "#.x = #", this, value);
- }
-
- // Shadowing definition.
- num get y => JS("num", "#.y", this);
-
- set y(num value) {
- JS("void", "#.y = #", this, value);
- }
-
- // Shadowing definition.
- num get z => JS("num", "#.z", this);
-
- set z(num value) {
- JS("void", "#.z = #", this, value);
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('DOMPointReadOnly')
-@Experimental() // untriaged
-@Native("DOMPointReadOnly")
-class DomPointReadOnly extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory DomPointReadOnly._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('DOMPointReadOnly.DOMPointReadOnly')
- @DocsEditable()
- factory DomPointReadOnly(num x, num y, num z, num w) {
- return DomPointReadOnly._create_1(x, y, z, w);
- }
- static DomPointReadOnly _create_1(x, y, z, w) =>
- JS('DomPointReadOnly', 'new DOMPointReadOnly(#,#,#,#)', x, y, z, w);
-
- num get w => JS("num", "#.w", this);
-
- num get x => JS("num", "#.x", this);
-
- num get y => JS("num", "#.y", this);
-
- num get z => JS("num", "#.z", this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('DOMRectReadOnly')
-@Experimental() // untriaged
-@Native("DOMRectReadOnly")
-class DomRectReadOnly extends Interceptor implements Rectangle {
- // NOTE! All code below should be common with RectangleBase.
- String toString() {
- return 'Rectangle ($left, $top) $width x $height';
- }
-
- bool operator ==(other) {
- if (other is! Rectangle) return false;
- return left == other.left &&
- top == other.top &&
- width == other.width &&
- height == other.height;
- }
-
- int get hashCode => _JenkinsSmiHash.hash4(
- left.hashCode, top.hashCode, width.hashCode, height.hashCode);
-
- /**
- * Computes the intersection of `this` and [other].
- *
- * The intersection of two axis-aligned rectangles, if any, is always another
- * axis-aligned rectangle.
- *
- * Returns the intersection of this and `other`, or null if they don't
- * intersect.
- */
- Rectangle intersection(Rectangle other) {
- var x0 = max(left, other.left);
- var x1 = min(left + width, other.left + other.width);
-
- if (x0 <= x1) {
- var y0 = max(top, other.top);
- var y1 = min(top + height, other.top + other.height);
-
- if (y0 <= y1) {
- return new Rectangle(x0, y0, x1 - x0, y1 - y0);
- }
- }
- return null;
- }
-
- /**
- * Returns true if `this` intersects [other].
- */
- bool intersects(Rectangle<num> other) {
- return (left <= other.left + other.width &&
- other.left <= left + width &&
- top <= other.top + other.height &&
- other.top <= top + height);
- }
-
- /**
- * Returns a new rectangle which completely contains `this` and [other].
- */
- Rectangle boundingBox(Rectangle other) {
- var right = max(this.left + this.width, other.left + other.width);
- var bottom = max(this.top + this.height, other.top + other.height);
-
- var left = min(this.left, other.left);
- var top = min(this.top, other.top);
-
- return new Rectangle(left, top, right - left, bottom - top);
- }
-
- /**
- * Tests whether `this` entirely contains [another].
- */
- bool containsRectangle(Rectangle<num> another) {
- return left <= another.left &&
- left + width >= another.left + another.width &&
- top <= another.top &&
- top + height >= another.top + another.height;
- }
-
- /**
- * Tests whether [another] is inside or along the edges of `this`.
- */
- bool containsPoint(Point<num> another) {
- return another.x >= left &&
- another.x <= left + width &&
- another.y >= top &&
- another.y <= top + height;
- }
-
- Point get topLeft => new Point/*<num>*/(this.left, this.top);
- Point get topRight => new Point/*<num>*/(this.left + this.width, this.top);
- Point get bottomRight =>
- new Point/*<num>*/(this.left + this.width, this.top + this.height);
- Point get bottomLeft => new Point/*<num>*/(this.left, this.top + this.height);
-
- // To suppress missing implicit constructor warnings.
- factory DomRectReadOnly._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('DOMRectReadOnly.DOMRectReadOnly')
- @DocsEditable()
- factory DomRectReadOnly(num x, num y, num width, num height) {
- return DomRectReadOnly._create_1(x, y, width, height);
- }
- static DomRectReadOnly _create_1(x, y, width, height) => JS(
- 'DomRectReadOnly', 'new DOMRectReadOnly(#,#,#,#)', x, y, width, height);
-
- num get bottom => JS("num", "#.bottom", this);
-
- num get height => JS("num", "#.height", this);
-
- num get left => JS("num", "#.left", this);
-
- num get right => JS("num", "#.right", this);
-
- num get top => JS("num", "#.top", this);
-
- num get width => JS("num", "#.width", this);
-
- num get x => JS("num", "#.x", this);
-
- num get y => JS("num", "#.y", this);
-}
-
-// 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.
-
-@DocsEditable()
-@DomName('DOMStringList')
-@Native("DOMStringList")
-class DomStringList extends Interceptor
- with ListMixin<String>, ImmutableListMixin<String>
- implements JavaScriptIndexingBehavior<String>, List<String> {
- // To suppress missing implicit constructor warnings.
- factory DomStringList._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('DOMStringList.length')
- @DocsEditable()
- int get length => JS("int", "#.length", this);
-
- String operator [](int index) {
- if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
- throw new RangeError.index(index, this);
- return JS("String", "#[#]", this, index);
- }
-
- void operator []=(int index, String value) {
- throw new UnsupportedError("Cannot assign element of immutable List.");
- }
- // -- start List<String> mixins.
- // String is the element type.
-
- set length(int value) {
- throw new UnsupportedError("Cannot resize immutable List.");
- }
-
- String get first {
- if (this.length > 0) {
- return JS('String', '#[0]', this);
- }
- throw new StateError("No elements");
- }
-
- String get last {
- int len = this.length;
- if (len > 0) {
- return JS('String', '#[#]', this, len - 1);
- }
- throw new StateError("No elements");
- }
-
- String get single {
- int len = this.length;
- if (len == 1) {
- return JS('String', '#[0]', this);
- }
- if (len == 0) throw new StateError("No elements");
- throw new StateError("More than one element");
- }
-
- String elementAt(int index) => this[index];
- // -- end List<String> mixins.
-
- @DomName('DOMStringList.__getter__')
- @DocsEditable()
- @Experimental() // untriaged
- String __getter__(int index) native;
-
- @DomName('DOMStringList.item')
- @DocsEditable()
- String item(int index) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('DOMStringMap')
-@Native("DOMStringMap")
-class DomStringMap extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory DomStringMap._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('DOMStringMap.__delete__')
- @DocsEditable()
- void __delete__(index_OR_name) native;
-
- @DomName('DOMStringMap.__getter__')
- @DocsEditable()
- String __getter__(int index) native;
-
- @DomName('DOMStringMap.__setter__')
- @DocsEditable()
- void __setter__(index_OR_name, String value) native;
-
- @DomName('DOMStringMap.item')
- @DocsEditable()
- @Experimental() // untriaged
- String item(String name) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('DOMTokenList')
-@Native("DOMTokenList")
-class DomTokenList extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory DomTokenList._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('DOMTokenList.length')
- @DocsEditable()
- final int length;
-
- @DomName('DOMTokenList.value')
- @DocsEditable()
- @Experimental() // untriaged
- String value;
-
- @DomName('DOMTokenList.add')
- @DocsEditable()
- @Experimental() // untriaged
- void add(String tokens) native;
-
- @DomName('DOMTokenList.contains')
- @DocsEditable()
- bool contains(String token) native;
-
- @DomName('DOMTokenList.item')
- @DocsEditable()
- String item(int index) native;
-
- @DomName('DOMTokenList.remove')
- @DocsEditable()
- @Experimental() // untriaged
- void remove(String tokens) native;
-
- @DomName('DOMTokenList.supports')
- @DocsEditable()
- @Experimental() // untriaged
- bool supports(String token) native;
-
- @DomName('DOMTokenList.toggle')
- @DocsEditable()
- bool toggle(String token, [bool force]) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('EffectModel')
-@Experimental() // untriaged
-@Native("EffectModel")
-class EffectModel extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory EffectModel._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-class _ChildrenElementList extends ListBase<Element>
- implements NodeListWrapper {
- // Raw Element.
- final Element _element;
- final HtmlCollection _childElements;
-
- _ChildrenElementList._wrap(Element element)
- : _childElements = element._children,
- _element = element;
-
- bool contains(Object element) => _childElements.contains(element);
-
- bool get isEmpty {
- return _element._firstElementChild == null;
- }
-
- int get length {
- return _childElements.length;
- }
-
- Element operator [](int index) {
- return _childElements[index];
- }
-
- void operator []=(int index, Element value) {
- _element._replaceChild(value, _childElements[index]);
- }
-
- set length(int newLength) {
- // TODO(jacobr): remove children when length is reduced.
- throw new UnsupportedError('Cannot resize element lists');
- }
-
- Element add(Element value) {
- _element.append(value);
- return value;
- }
-
- Iterator<Element> get iterator => toList().iterator;
-
- void addAll(Iterable<Element> iterable) {
- if (iterable is _ChildNodeListLazy) {
- iterable = new List.from(iterable);
- }
-
- for (Element element in iterable) {
- _element.append(element);
- }
- }
-
- void sort([int compare(Element a, Element b)]) {
- throw new UnsupportedError('Cannot sort element lists');
- }
-
- void shuffle([Random random]) {
- throw new UnsupportedError('Cannot shuffle element lists');
- }
-
- void removeWhere(bool test(Element element)) {
- _filter(test, false);
- }
-
- void retainWhere(bool test(Element element)) {
- _filter(test, true);
- }
-
- void _filter(bool test(Element element), bool retainMatching) {
- var removed;
- if (retainMatching) {
- removed = _element.children.where((e) => !test(e));
- } else {
- removed = _element.children.where(test);
- }
- for (var e in removed) e.remove();
- }
-
- void fillRange(int start, int end, [Element fillValue]) {
- throw new UnimplementedError();
- }
-
- void replaceRange(int start, int end, Iterable<Element> iterable) {
- throw new UnimplementedError();
- }
-
- void removeRange(int start, int end) {
- throw new UnimplementedError();
- }
-
- void setRange(int start, int end, Iterable<Element> iterable,
- [int skipCount = 0]) {
- throw new UnimplementedError();
- }
-
- bool remove(Object object) {
- if (object is Element) {
- Element element = object;
- if (identical(element.parentNode, _element)) {
- _element._removeChild(element);
- return true;
- }
- }
- return false;
- }
-
- void insert(int index, Element element) {
- if (index < 0 || index > length) {
- throw new RangeError.range(index, 0, length);
- }
- if (index == length) {
- _element.append(element);
- } else {
- _element.insertBefore(element, this[index]);
- }
- }
-
- void setAll(int index, Iterable<Element> iterable) {
- throw new UnimplementedError();
- }
-
- void clear() {
- _element._clearChildren();
- }
-
- Element removeAt(int index) {
- final result = this[index];
- if (result != null) {
- _element._removeChild(result);
- }
- return result;
- }
-
- Element removeLast() {
- final result = this.last;
- if (result != null) {
- _element._removeChild(result);
- }
- return result;
- }
-
- Element get first {
- Element result = _element._firstElementChild;
- if (result == null) throw new StateError("No elements");
- return result;
- }
-
- Element get last {
- Element result = _element._lastElementChild;
- if (result == null) throw new StateError("No elements");
- return result;
- }
-
- Element get single {
- if (length > 1) throw new StateError("More than one element");
- return first;
- }
-
- List<Node> get rawList => _childElements;
-}
-
-/**
- * An immutable list containing HTML elements. This list contains some
- * additional methods when compared to regular lists for ease of CSS
- * manipulation on a group of elements.
- */
-abstract class ElementList<T extends Element> extends ListBase<T> {
- /**
- * The union of all CSS classes applied to the elements in this list.
- *
- * This set makes it easy to add, remove or toggle (add if not present, remove
- * if present) the classes applied to a collection of elements.
- *
- * htmlList.classes.add('selected');
- * htmlList.classes.toggle('isOnline');
- * htmlList.classes.remove('selected');
- */
- CssClassSet get classes;
-
- /** Replace the classes with `value` for every element in this list. */
- set classes(Iterable<String> value);
-
- /**
- * Access the union of all [CssStyleDeclaration]s that are associated with an
- * [ElementList].
- *
- * Grouping the style objects all together provides easy editing of specific
- * properties of a collection of elements. Setting a specific property value
- * will set that property in all [Element]s in the [ElementList]. Getting a
- * specific property value will return the value of the property of the first
- * element in the [ElementList].
- */
- CssStyleDeclarationBase get style;
-
- /**
- * Access dimensions and position of the Elements in this list.
- *
- * Setting the height or width properties will set the height or width
- * property for all elements in the list. This returns a rectangle with the
- * dimensions actually available for content
- * in this element, in pixels, regardless of this element's box-sizing
- * property. Getting the height or width returns the height or width of the
- * first Element in this list.
- *
- * Unlike [getBoundingClientRect], the dimensions of this rectangle
- * will return the same numerical height if the element is hidden or not.
- */
- @Experimental()
- CssRect get contentEdge;
-
- /**
- * Access dimensions and position of the first Element's content + padding box
- * in this list.
- *
- * This returns a rectangle with the dimensions actually available for content
- * in this element, in pixels, regardless of this element's box-sizing
- * property. Unlike [getBoundingClientRect], the dimensions of this rectangle
- * will return the same numerical height if the element is hidden or not. This
- * can be used to retrieve jQuery's `innerHeight` value for an element. This
- * is also a rectangle equalling the dimensions of clientHeight and
- * clientWidth.
- */
- @Experimental()
- CssRect get paddingEdge;
-
- /**
- * Access dimensions and position of the first Element's content + padding +
- * border box in this list.
- *
- * This returns a rectangle with the dimensions actually available for content
- * in this element, in pixels, regardless of this element's box-sizing
- * property. Unlike [getBoundingClientRect], the dimensions of this rectangle
- * will return the same numerical height if the element is hidden or not. This
- * can be used to retrieve jQuery's `outerHeight` value for an element.
- */
- @Experimental()
- CssRect get borderEdge;
-
- /**
- * Access dimensions and position of the first Element's content + padding +
- * border + margin box in this list.
- *
- * This returns a rectangle with the dimensions actually available for content
- * in this element, in pixels, regardless of this element's box-sizing
- * property. Unlike [getBoundingClientRect], the dimensions of this rectangle
- * will return the same numerical height if the element is hidden or not. This
- * can be used to retrieve jQuery's `outerHeight` value for an element.
- */
- @Experimental()
- CssRect get marginEdge;
-
- /// Stream of `abort` events handled by this [Element].
- @DomName('Element.onabort')
- @DocsEditable()
- ElementStream<Event> get onAbort;
-
- /// Stream of `beforecopy` events handled by this [Element].
- @DomName('Element.onbeforecopy')
- @DocsEditable()
- ElementStream<Event> get onBeforeCopy;
-
- /// Stream of `beforecut` events handled by this [Element].
- @DomName('Element.onbeforecut')
- @DocsEditable()
- ElementStream<Event> get onBeforeCut;
-
- /// Stream of `beforepaste` events handled by this [Element].
- @DomName('Element.onbeforepaste')
- @DocsEditable()
- ElementStream<Event> get onBeforePaste;
-
- /// Stream of `blur` events handled by this [Element].
- @DomName('Element.onblur')
- @DocsEditable()
- ElementStream<Event> get onBlur;
-
- @DomName('Element.oncanplay')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onCanPlay;
-
- @DomName('Element.oncanplaythrough')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onCanPlayThrough;
-
- /// Stream of `change` events handled by this [Element].
- @DomName('Element.onchange')
- @DocsEditable()
- ElementStream<Event> get onChange;
-
- /// Stream of `click` events handled by this [Element].
- @DomName('Element.onclick')
- @DocsEditable()
- ElementStream<MouseEvent> get onClick;
-
- /// Stream of `contextmenu` events handled by this [Element].
- @DomName('Element.oncontextmenu')
- @DocsEditable()
- ElementStream<MouseEvent> get onContextMenu;
-
- /// Stream of `copy` events handled by this [Element].
- @DomName('Element.oncopy')
- @DocsEditable()
- ElementStream<ClipboardEvent> get onCopy;
-
- /// Stream of `cut` events handled by this [Element].
- @DomName('Element.oncut')
- @DocsEditable()
- ElementStream<ClipboardEvent> get onCut;
-
- /// Stream of `doubleclick` events handled by this [Element].
- @DomName('Element.ondblclick')
- @DocsEditable()
- ElementStream<Event> get onDoubleClick;
-
- /**
- * A stream of `drag` events fired when this element currently being dragged.
- *
- * A `drag` event is added to this stream as soon as the drag begins.
- * A `drag` event is also added to this stream at intervals while the drag
- * operation is still ongoing.
- *
- * ## Other resources
- *
- * * [Drag and drop
- * sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
- * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
- * from HTML5Rocks.
- * * [Drag and drop
- * specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
- * from WHATWG.
- */
- @DomName('Element.ondrag')
- @DocsEditable()
- ElementStream<MouseEvent> get onDrag;
-
- /**
- * A stream of `dragend` events fired when this element completes a drag
- * operation.
- *
- * ## Other resources
- *
- * * [Drag and drop
- * sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
- * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
- * from HTML5Rocks.
- * * [Drag and drop
- * specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
- * from WHATWG.
- */
- @DomName('Element.ondragend')
- @DocsEditable()
- ElementStream<MouseEvent> get onDragEnd;
-
- /**
- * A stream of `dragenter` events fired when a dragged object is first dragged
- * over this element.
- *
- * ## Other resources
- *
- * * [Drag and drop
- * sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
- * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
- * from HTML5Rocks.
- * * [Drag and drop
- * specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
- * from WHATWG.
- */
- @DomName('Element.ondragenter')
- @DocsEditable()
- ElementStream<MouseEvent> get onDragEnter;
-
- /**
- * A stream of `dragleave` events fired when an object being dragged over this
- * element leaves this element's target area.
- *
- * ## Other resources
- *
- * * [Drag and drop
- * sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
- * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
- * from HTML5Rocks.
- * * [Drag and drop
- * specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
- * from WHATWG.
- */
- @DomName('Element.ondragleave')
- @DocsEditable()
- ElementStream<MouseEvent> get onDragLeave;
-
- /**
- * A stream of `dragover` events fired when a dragged object is currently
- * being dragged over this element.
- *
- * ## Other resources
- *
- * * [Drag and drop
- * sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
- * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
- * from HTML5Rocks.
- * * [Drag and drop
- * specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
- * from WHATWG.
- */
- @DomName('Element.ondragover')
- @DocsEditable()
- ElementStream<MouseEvent> get onDragOver;
-
- /**
- * A stream of `dragstart` events fired when this element starts being
- * dragged.
- *
- * ## Other resources
- *
- * * [Drag and drop
- * sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
- * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
- * from HTML5Rocks.
- * * [Drag and drop
- * specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
- * from WHATWG.
- */
- @DomName('Element.ondragstart')
- @DocsEditable()
- ElementStream<MouseEvent> get onDragStart;
-
- /**
- * A stream of `drop` events fired when a dragged object is dropped on this
- * element.
- *
- * ## Other resources
- *
- * * [Drag and drop
- * sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
- * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
- * from HTML5Rocks.
- * * [Drag and drop
- * specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
- * from WHATWG.
- */
- @DomName('Element.ondrop')
- @DocsEditable()
- ElementStream<MouseEvent> get onDrop;
-
- @DomName('Element.ondurationchange')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onDurationChange;
-
- @DomName('Element.onemptied')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onEmptied;
-
- @DomName('Element.onended')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onEnded;
-
- /// Stream of `error` events handled by this [Element].
- @DomName('Element.onerror')
- @DocsEditable()
- ElementStream<Event> get onError;
-
- /// Stream of `focus` events handled by this [Element].
- @DomName('Element.onfocus')
- @DocsEditable()
- ElementStream<Event> get onFocus;
-
- /// Stream of `input` events handled by this [Element].
- @DomName('Element.oninput')
- @DocsEditable()
- ElementStream<Event> get onInput;
-
- /// Stream of `invalid` events handled by this [Element].
- @DomName('Element.oninvalid')
- @DocsEditable()
- ElementStream<Event> get onInvalid;
-
- /// Stream of `keydown` events handled by this [Element].
- @DomName('Element.onkeydown')
- @DocsEditable()
- ElementStream<KeyboardEvent> get onKeyDown;
-
- /// Stream of `keypress` events handled by this [Element].
- @DomName('Element.onkeypress')
- @DocsEditable()
- ElementStream<KeyboardEvent> get onKeyPress;
-
- /// Stream of `keyup` events handled by this [Element].
- @DomName('Element.onkeyup')
- @DocsEditable()
- ElementStream<KeyboardEvent> get onKeyUp;
-
- /// Stream of `load` events handled by this [Element].
- @DomName('Element.onload')
- @DocsEditable()
- ElementStream<Event> get onLoad;
-
- @DomName('Element.onloadeddata')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onLoadedData;
-
- @DomName('Element.onloadedmetadata')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onLoadedMetadata;
-
- /// Stream of `mousedown` events handled by this [Element].
- @DomName('Element.onmousedown')
- @DocsEditable()
- ElementStream<MouseEvent> get onMouseDown;
-
- /// Stream of `mouseenter` events handled by this [Element].
- @DomName('Element.onmouseenter')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<MouseEvent> get onMouseEnter;
-
- /// Stream of `mouseleave` events handled by this [Element].
- @DomName('Element.onmouseleave')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<MouseEvent> get onMouseLeave;
-
- /// Stream of `mousemove` events handled by this [Element].
- @DomName('Element.onmousemove')
- @DocsEditable()
- ElementStream<MouseEvent> get onMouseMove;
-
- /// Stream of `mouseout` events handled by this [Element].
- @DomName('Element.onmouseout')
- @DocsEditable()
- ElementStream<MouseEvent> get onMouseOut;
-
- /// Stream of `mouseover` events handled by this [Element].
- @DomName('Element.onmouseover')
- @DocsEditable()
- ElementStream<MouseEvent> get onMouseOver;
-
- /// Stream of `mouseup` events handled by this [Element].
- @DomName('Element.onmouseup')
- @DocsEditable()
- ElementStream<MouseEvent> get onMouseUp;
-
- /// Stream of `mousewheel` events handled by this [Element].
- @DomName('Element.onmousewheel')
- @DocsEditable()
- // http://www.w3.org/TR/DOM-Level-3-Events/#events-wheelevents
- @Experimental() // non-standard
- ElementStream<WheelEvent> get onMouseWheel;
-
- /// Stream of `paste` events handled by this [Element].
- @DomName('Element.onpaste')
- @DocsEditable()
- ElementStream<ClipboardEvent> get onPaste;
-
- @DomName('Element.onpause')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onPause;
-
- @DomName('Element.onplay')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onPlay;
-
- @DomName('Element.onplaying')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onPlaying;
-
- @DomName('Element.onratechange')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onRateChange;
-
- /// Stream of `reset` events handled by this [Element].
- @DomName('Element.onreset')
- @DocsEditable()
- ElementStream<Event> get onReset;
-
- @DomName('Element.onresize')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onResize;
-
- /// Stream of `scroll` events handled by this [Element].
- @DomName('Element.onscroll')
- @DocsEditable()
- ElementStream<Event> get onScroll;
-
- /// Stream of `search` events handled by this [Element].
- @DomName('Element.onsearch')
- @DocsEditable()
- // http://www.w3.org/TR/html-markup/input.search.html
- @Experimental()
- ElementStream<Event> get onSearch;
-
- @DomName('Element.onseeked')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onSeeked;
-
- @DomName('Element.onseeking')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onSeeking;
-
- /// Stream of `select` events handled by this [Element].
- @DomName('Element.onselect')
- @DocsEditable()
- ElementStream<Event> get onSelect;
-
- /// Stream of `selectstart` events handled by this [Element].
- @DomName('Element.onselectstart')
- @DocsEditable()
- @Experimental() // nonstandard
- ElementStream<Event> get onSelectStart;
-
- @DomName('Element.onstalled')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onStalled;
-
- /// Stream of `submit` events handled by this [Element].
- @DomName('Element.onsubmit')
- @DocsEditable()
- ElementStream<Event> get onSubmit;
-
- @DomName('Element.onsuspend')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onSuspend;
-
- @DomName('Element.ontimeupdate')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onTimeUpdate;
-
- /// Stream of `touchcancel` events handled by this [Element].
- @DomName('Element.ontouchcancel')
- @DocsEditable()
- // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
- @Experimental()
- ElementStream<TouchEvent> get onTouchCancel;
-
- /// Stream of `touchend` events handled by this [Element].
- @DomName('Element.ontouchend')
- @DocsEditable()
- // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
- @Experimental()
- ElementStream<TouchEvent> get onTouchEnd;
-
- /// Stream of `touchenter` events handled by this [Element].
- @DomName('Element.ontouchenter')
- @DocsEditable()
- // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
- @Experimental()
- ElementStream<TouchEvent> get onTouchEnter;
-
- /// Stream of `touchleave` events handled by this [Element].
- @DomName('Element.ontouchleave')
- @DocsEditable()
- // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
- @Experimental()
- ElementStream<TouchEvent> get onTouchLeave;
-
- /// Stream of `touchmove` events handled by this [Element].
- @DomName('Element.ontouchmove')
- @DocsEditable()
- // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
- @Experimental()
- ElementStream<TouchEvent> get onTouchMove;
-
- /// Stream of `touchstart` events handled by this [Element].
- @DomName('Element.ontouchstart')
- @DocsEditable()
- // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
- @Experimental()
- ElementStream<TouchEvent> get onTouchStart;
-
- /// Stream of `transitionend` events handled by this [Element].
- @DomName('Element.ontransitionend')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.FIREFOX)
- @SupportedBrowser(SupportedBrowser.IE, '10')
- @SupportedBrowser(SupportedBrowser.SAFARI)
- ElementStream<TransitionEvent> get onTransitionEnd;
-
- @DomName('Element.onvolumechange')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onVolumeChange;
-
- @DomName('Element.onwaiting')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onWaiting;
-
- /// Stream of `fullscreenchange` events handled by this [Element].
- @DomName('Element.onwebkitfullscreenchange')
- @DocsEditable()
- // https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html
- @Experimental()
- ElementStream<Event> get onFullscreenChange;
-
- /// Stream of `fullscreenerror` events handled by this [Element].
- @DomName('Element.onwebkitfullscreenerror')
- @DocsEditable()
- // https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html
- @Experimental()
- ElementStream<Event> get onFullscreenError;
-}
-
-// Wrapper over an immutable NodeList to make it implement ElementList.
-//
-// Clients are {`Document`, `DocumentFragment`}.`querySelectorAll` which are
-// declared to return `ElementList`. This provides all the static analysis
-// benefit so there is no need for this class have a constrained type parameter.
-//
-class _FrozenElementList<E extends Element> extends ListBase<E>
- implements ElementList<E>, NodeListWrapper {
- final List<Node> _nodeList;
-
- _FrozenElementList._wrap(this._nodeList);
-
- int get length => _nodeList.length;
-
- E operator [](int index) => _downcast/*<Node, E>*/(_nodeList[index]);
-
- void operator []=(int index, E value) {
- throw new UnsupportedError('Cannot modify list');
- }
-
- set length(int newLength) {
- throw new UnsupportedError('Cannot modify list');
- }
-
- void sort([Comparator<E> compare]) {
- throw new UnsupportedError('Cannot sort list');
- }
-
- void shuffle([Random random]) {
- throw new UnsupportedError('Cannot shuffle list');
- }
-
- E get first => _downcast/*<Node, E>*/(_nodeList.first);
-
- E get last => _downcast/*<Node, E>*/(_nodeList.last);
-
- E get single => _downcast/*<Node, E>*/(_nodeList.single);
-
- CssClassSet get classes => new _MultiElementCssClassSet(this);
-
- CssStyleDeclarationBase get style => new _CssStyleDeclarationSet(this);
-
- set classes(Iterable<String> value) {
- // TODO(sra): This might be faster for Sets:
- //
- // new _MultiElementCssClassSet(this).writeClasses(value)
- //
- // as the code below converts the Iterable[value] to a string multiple
- // times. Maybe compute the string and set className here.
- forEach((e) => e.classes = value);
- }
-
- CssRect get contentEdge => new _ContentCssListRect(this);
-
- CssRect get paddingEdge => this.first.paddingEdge;
-
- CssRect get borderEdge => this.first.borderEdge;
-
- CssRect get marginEdge => this.first.marginEdge;
-
- List<Node> get rawList => _nodeList;
-
- /// Stream of `abort` events handled by this [Element].
- @DomName('Element.onabort')
- @DocsEditable()
- ElementStream<Event> get onAbort => Element.abortEvent._forElementList(this);
-
- /// Stream of `beforecopy` events handled by this [Element].
- @DomName('Element.onbeforecopy')
- @DocsEditable()
- ElementStream<Event> get onBeforeCopy =>
- Element.beforeCopyEvent._forElementList(this);
-
- /// Stream of `beforecut` events handled by this [Element].
- @DomName('Element.onbeforecut')
- @DocsEditable()
- ElementStream<Event> get onBeforeCut =>
- Element.beforeCutEvent._forElementList(this);
-
- /// Stream of `beforepaste` events handled by this [Element].
- @DomName('Element.onbeforepaste')
- @DocsEditable()
- ElementStream<Event> get onBeforePaste =>
- Element.beforePasteEvent._forElementList(this);
-
- /// Stream of `blur` events handled by this [Element].
- @DomName('Element.onblur')
- @DocsEditable()
- ElementStream<Event> get onBlur => Element.blurEvent._forElementList(this);
-
- @DomName('Element.oncanplay')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onCanPlay =>
- Element.canPlayEvent._forElementList(this);
-
- @DomName('Element.oncanplaythrough')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onCanPlayThrough =>
- Element.canPlayThroughEvent._forElementList(this);
-
- /// Stream of `change` events handled by this [Element].
- @DomName('Element.onchange')
- @DocsEditable()
- ElementStream<Event> get onChange =>
- Element.changeEvent._forElementList(this);
-
- /// Stream of `click` events handled by this [Element].
- @DomName('Element.onclick')
- @DocsEditable()
- ElementStream<MouseEvent> get onClick =>
- Element.clickEvent._forElementList(this);
-
- /// Stream of `contextmenu` events handled by this [Element].
- @DomName('Element.oncontextmenu')
- @DocsEditable()
- ElementStream<MouseEvent> get onContextMenu =>
- Element.contextMenuEvent._forElementList(this);
-
- /// Stream of `copy` events handled by this [Element].
- @DomName('Element.oncopy')
- @DocsEditable()
- ElementStream<ClipboardEvent> get onCopy =>
- Element.copyEvent._forElementList(this);
-
- /// Stream of `cut` events handled by this [Element].
- @DomName('Element.oncut')
- @DocsEditable()
- ElementStream<ClipboardEvent> get onCut =>
- Element.cutEvent._forElementList(this);
-
- /// Stream of `doubleclick` events handled by this [Element].
- @DomName('Element.ondblclick')
- @DocsEditable()
- ElementStream<Event> get onDoubleClick =>
- Element.doubleClickEvent._forElementList(this);
-
- /**
- * A stream of `drag` events fired when this element currently being dragged.
- *
- * A `drag` event is added to this stream as soon as the drag begins.
- * A `drag` event is also added to this stream at intervals while the drag
- * operation is still ongoing.
- *
- * ## Other resources
- *
- * * [Drag and drop
- * sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
- * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
- * from HTML5Rocks.
- * * [Drag and drop
- * specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
- * from WHATWG.
- */
- @DomName('Element.ondrag')
- @DocsEditable()
- ElementStream<MouseEvent> get onDrag =>
- Element.dragEvent._forElementList(this);
-
- /**
- * A stream of `dragend` events fired when this element completes a drag
- * operation.
- *
- * ## Other resources
- *
- * * [Drag and drop
- * sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
- * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
- * from HTML5Rocks.
- * * [Drag and drop
- * specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
- * from WHATWG.
- */
- @DomName('Element.ondragend')
- @DocsEditable()
- ElementStream<MouseEvent> get onDragEnd =>
- Element.dragEndEvent._forElementList(this);
-
- /**
- * A stream of `dragenter` events fired when a dragged object is first dragged
- * over this element.
- *
- * ## Other resources
- *
- * * [Drag and drop
- * sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
- * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
- * from HTML5Rocks.
- * * [Drag and drop
- * specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
- * from WHATWG.
- */
- @DomName('Element.ondragenter')
- @DocsEditable()
- ElementStream<MouseEvent> get onDragEnter =>
- Element.dragEnterEvent._forElementList(this);
-
- /**
- * A stream of `dragleave` events fired when an object being dragged over this
- * element leaves this element's target area.
- *
- * ## Other resources
- *
- * * [Drag and drop
- * sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
- * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
- * from HTML5Rocks.
- * * [Drag and drop
- * specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
- * from WHATWG.
- */
- @DomName('Element.ondragleave')
- @DocsEditable()
- ElementStream<MouseEvent> get onDragLeave =>
- Element.dragLeaveEvent._forElementList(this);
-
- /**
- * A stream of `dragover` events fired when a dragged object is currently
- * being dragged over this element.
- *
- * ## Other resources
- *
- * * [Drag and drop
- * sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
- * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
- * from HTML5Rocks.
- * * [Drag and drop
- * specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
- * from WHATWG.
- */
- @DomName('Element.ondragover')
- @DocsEditable()
- ElementStream<MouseEvent> get onDragOver =>
- Element.dragOverEvent._forElementList(this);
-
- /**
- * A stream of `dragstart` events fired when this element starts being
- * dragged.
- *
- * ## Other resources
- *
- * * [Drag and drop
- * sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
- * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
- * from HTML5Rocks.
- * * [Drag and drop
- * specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
- * from WHATWG.
- */
- @DomName('Element.ondragstart')
- @DocsEditable()
- ElementStream<MouseEvent> get onDragStart =>
- Element.dragStartEvent._forElementList(this);
-
- /**
- * A stream of `drop` events fired when a dragged object is dropped on this
- * element.
- *
- * ## Other resources
- *
- * * [Drag and drop
- * sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
- * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
- * from HTML5Rocks.
- * * [Drag and drop
- * specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
- * from WHATWG.
- */
- @DomName('Element.ondrop')
- @DocsEditable()
- ElementStream<MouseEvent> get onDrop =>
- Element.dropEvent._forElementList(this);
-
- @DomName('Element.ondurationchange')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onDurationChange =>
- Element.durationChangeEvent._forElementList(this);
-
- @DomName('Element.onemptied')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onEmptied =>
- Element.emptiedEvent._forElementList(this);
-
- @DomName('Element.onended')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onEnded => Element.endedEvent._forElementList(this);
-
- /// Stream of `error` events handled by this [Element].
- @DomName('Element.onerror')
- @DocsEditable()
- ElementStream<Event> get onError => Element.errorEvent._forElementList(this);
-
- /// Stream of `focus` events handled by this [Element].
- @DomName('Element.onfocus')
- @DocsEditable()
- ElementStream<Event> get onFocus => Element.focusEvent._forElementList(this);
-
- /// Stream of `input` events handled by this [Element].
- @DomName('Element.oninput')
- @DocsEditable()
- ElementStream<Event> get onInput => Element.inputEvent._forElementList(this);
-
- /// Stream of `invalid` events handled by this [Element].
- @DomName('Element.oninvalid')
- @DocsEditable()
- ElementStream<Event> get onInvalid =>
- Element.invalidEvent._forElementList(this);
-
- /// Stream of `keydown` events handled by this [Element].
- @DomName('Element.onkeydown')
- @DocsEditable()
- ElementStream<KeyboardEvent> get onKeyDown =>
- Element.keyDownEvent._forElementList(this);
-
- /// Stream of `keypress` events handled by this [Element].
- @DomName('Element.onkeypress')
- @DocsEditable()
- ElementStream<KeyboardEvent> get onKeyPress =>
- Element.keyPressEvent._forElementList(this);
-
- /// Stream of `keyup` events handled by this [Element].
- @DomName('Element.onkeyup')
- @DocsEditable()
- ElementStream<KeyboardEvent> get onKeyUp =>
- Element.keyUpEvent._forElementList(this);
-
- /// Stream of `load` events handled by this [Element].
- @DomName('Element.onload')
- @DocsEditable()
- ElementStream<Event> get onLoad => Element.loadEvent._forElementList(this);
-
- @DomName('Element.onloadeddata')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onLoadedData =>
- Element.loadedDataEvent._forElementList(this);
-
- @DomName('Element.onloadedmetadata')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onLoadedMetadata =>
- Element.loadedMetadataEvent._forElementList(this);
-
- /// Stream of `mousedown` events handled by this [Element].
- @DomName('Element.onmousedown')
- @DocsEditable()
- ElementStream<MouseEvent> get onMouseDown =>
- Element.mouseDownEvent._forElementList(this);
-
- /// Stream of `mouseenter` events handled by this [Element].
- @DomName('Element.onmouseenter')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<MouseEvent> get onMouseEnter =>
- Element.mouseEnterEvent._forElementList(this);
-
- /// Stream of `mouseleave` events handled by this [Element].
- @DomName('Element.onmouseleave')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<MouseEvent> get onMouseLeave =>
- Element.mouseLeaveEvent._forElementList(this);
-
- /// Stream of `mousemove` events handled by this [Element].
- @DomName('Element.onmousemove')
- @DocsEditable()
- ElementStream<MouseEvent> get onMouseMove =>
- Element.mouseMoveEvent._forElementList(this);
-
- /// Stream of `mouseout` events handled by this [Element].
- @DomName('Element.onmouseout')
- @DocsEditable()
- ElementStream<MouseEvent> get onMouseOut =>
- Element.mouseOutEvent._forElementList(this);
-
- /// Stream of `mouseover` events handled by this [Element].
- @DomName('Element.onmouseover')
- @DocsEditable()
- ElementStream<MouseEvent> get onMouseOver =>
- Element.mouseOverEvent._forElementList(this);
-
- /// Stream of `mouseup` events handled by this [Element].
- @DomName('Element.onmouseup')
- @DocsEditable()
- ElementStream<MouseEvent> get onMouseUp =>
- Element.mouseUpEvent._forElementList(this);
-
- /// Stream of `mousewheel` events handled by this [Element].
- @DomName('Element.onmousewheel')
- @DocsEditable()
- // http://www.w3.org/TR/DOM-Level-3-Events/#events-wheelevents
- @Experimental() // non-standard
- ElementStream<WheelEvent> get onMouseWheel =>
- Element.mouseWheelEvent._forElementList(this);
-
- /// Stream of `paste` events handled by this [Element].
- @DomName('Element.onpaste')
- @DocsEditable()
- ElementStream<ClipboardEvent> get onPaste =>
- Element.pasteEvent._forElementList(this);
-
- @DomName('Element.onpause')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onPause => Element.pauseEvent._forElementList(this);
-
- @DomName('Element.onplay')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onPlay => Element.playEvent._forElementList(this);
-
- @DomName('Element.onplaying')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onPlaying =>
- Element.playingEvent._forElementList(this);
-
- @DomName('Element.onratechange')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onRateChange =>
- Element.rateChangeEvent._forElementList(this);
-
- /// Stream of `reset` events handled by this [Element].
- @DomName('Element.onreset')
- @DocsEditable()
- ElementStream<Event> get onReset => Element.resetEvent._forElementList(this);
-
- @DomName('Element.onresize')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onResize =>
- Element.resizeEvent._forElementList(this);
-
- /// Stream of `scroll` events handled by this [Element].
- @DomName('Element.onscroll')
- @DocsEditable()
- ElementStream<Event> get onScroll =>
- Element.scrollEvent._forElementList(this);
-
- /// Stream of `search` events handled by this [Element].
- @DomName('Element.onsearch')
- @DocsEditable()
- // http://www.w3.org/TR/html-markup/input.search.html
- @Experimental()
- ElementStream<Event> get onSearch =>
- Element.searchEvent._forElementList(this);
-
- @DomName('Element.onseeked')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onSeeked =>
- Element.seekedEvent._forElementList(this);
-
- @DomName('Element.onseeking')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onSeeking =>
- Element.seekingEvent._forElementList(this);
-
- /// Stream of `select` events handled by this [Element].
- @DomName('Element.onselect')
- @DocsEditable()
- ElementStream<Event> get onSelect =>
- Element.selectEvent._forElementList(this);
-
- /// Stream of `selectstart` events handled by this [Element].
- @DomName('Element.onselectstart')
- @DocsEditable()
- @Experimental() // nonstandard
- ElementStream<Event> get onSelectStart =>
- Element.selectStartEvent._forElementList(this);
-
- @DomName('Element.onstalled')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onStalled =>
- Element.stalledEvent._forElementList(this);
-
- /// Stream of `submit` events handled by this [Element].
- @DomName('Element.onsubmit')
- @DocsEditable()
- ElementStream<Event> get onSubmit =>
- Element.submitEvent._forElementList(this);
-
- @DomName('Element.onsuspend')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onSuspend =>
- Element.suspendEvent._forElementList(this);
-
- @DomName('Element.ontimeupdate')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onTimeUpdate =>
- Element.timeUpdateEvent._forElementList(this);
-
- /// Stream of `touchcancel` events handled by this [Element].
- @DomName('Element.ontouchcancel')
- @DocsEditable()
- // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
- @Experimental()
- ElementStream<TouchEvent> get onTouchCancel =>
- Element.touchCancelEvent._forElementList(this);
-
- /// Stream of `touchend` events handled by this [Element].
- @DomName('Element.ontouchend')
- @DocsEditable()
- // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
- @Experimental()
- ElementStream<TouchEvent> get onTouchEnd =>
- Element.touchEndEvent._forElementList(this);
-
- /// Stream of `touchenter` events handled by this [Element].
- @DomName('Element.ontouchenter')
- @DocsEditable()
- // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
- @Experimental()
- ElementStream<TouchEvent> get onTouchEnter =>
- Element.touchEnterEvent._forElementList(this);
-
- /// Stream of `touchleave` events handled by this [Element].
- @DomName('Element.ontouchleave')
- @DocsEditable()
- // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
- @Experimental()
- ElementStream<TouchEvent> get onTouchLeave =>
- Element.touchLeaveEvent._forElementList(this);
-
- /// Stream of `touchmove` events handled by this [Element].
- @DomName('Element.ontouchmove')
- @DocsEditable()
- // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
- @Experimental()
- ElementStream<TouchEvent> get onTouchMove =>
- Element.touchMoveEvent._forElementList(this);
-
- /// Stream of `touchstart` events handled by this [Element].
- @DomName('Element.ontouchstart')
- @DocsEditable()
- // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
- @Experimental()
- ElementStream<TouchEvent> get onTouchStart =>
- Element.touchStartEvent._forElementList(this);
-
- /// Stream of `transitionend` events handled by this [Element].
- @DomName('Element.ontransitionend')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.FIREFOX)
- @SupportedBrowser(SupportedBrowser.IE, '10')
- @SupportedBrowser(SupportedBrowser.SAFARI)
- ElementStream<TransitionEvent> get onTransitionEnd =>
- Element.transitionEndEvent._forElementList(this);
-
- @DomName('Element.onvolumechange')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onVolumeChange =>
- Element.volumeChangeEvent._forElementList(this);
-
- @DomName('Element.onwaiting')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onWaiting =>
- Element.waitingEvent._forElementList(this);
-
- /// Stream of `fullscreenchange` events handled by this [Element].
- @DomName('Element.onwebkitfullscreenchange')
- @DocsEditable()
- // https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html
- @Experimental()
- ElementStream<Event> get onFullscreenChange =>
- Element.fullscreenChangeEvent._forElementList(this);
-
- /// Stream of `fullscreenerror` events handled by this [Element].
- @DomName('Element.onwebkitfullscreenerror')
- @DocsEditable()
- // https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html
- @Experimental()
- ElementStream<Event> get onFullscreenError =>
- Element.fullscreenErrorEvent._forElementList(this);
-}
-
-@DocsEditable()
-/**
- * An abstract class, which all HTML elements extend.
- */
-@DomName('Element')
-@Native("Element")
-class Element extends Node
- implements
- NonDocumentTypeChildNode,
- GlobalEventHandlers,
- ParentNode,
- ChildNode {
- /**
- * Creates an HTML element from a valid fragment of HTML.
- *
- * var element = new Element.html('<div class="foo">content</div>');
- *
- * The HTML fragment should contain only one single root element, any
- * leading or trailing text nodes will be removed.
- *
- * The HTML fragment is parsed as if it occurred within the context of a
- * `<body>` tag, this means that special elements such as `<caption>` which
- * must be parsed within the scope of a `<table>` element will be dropped. Use
- * [createFragment] to parse contextual HTML fragments.
- *
- * Unless a validator is provided this will perform the default validation
- * and remove all scriptable elements and attributes.
- *
- * See also:
- *
- * * [NodeValidator]
- *
- */
- factory Element.html(String html,
- {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {
- var fragment = document.body.createFragment(html,
- validator: validator, treeSanitizer: treeSanitizer);
-
- return fragment.nodes.where((e) => e is Element).single;
- }
-
- /**
- * Custom element creation constructor.
- *
- * This constructor is used by the DOM when a custom element has been
- * created. It can only be invoked by subclasses of Element from
- * that classes created constructor.
- *
- * class CustomElement extends Element {
- * factory CustomElement() => new Element.tag('x-custom');
- *
- * CustomElement.created() : super.created() {
- * // Perform any element initialization.
- * }
- * }
- * document.registerElement('x-custom', CustomElement);
- */
- Element.created() : super._created();
-
- /**
- * Creates the HTML element specified by the tag name.
- *
- * This is similar to [Document.createElement].
- * [tag] should be a valid HTML tag name. If [tag] is an unknown tag then
- * this will create an [UnknownElement].
- *
- * var divElement = new Element.tag('div');
- * print(divElement is DivElement); // 'true'
- * var myElement = new Element.tag('unknownTag');
- * print(myElement is UnknownElement); // 'true'
- *
- * For standard elements it is better to use the element type constructors:
- *
- * var element = new DivElement();
- *
- * It is better to use e.g `new CanvasElement()` because the type of the
- * expression is `CanvasElement`, whereas the type of `Element.tag` is the
- * less specific `Element`.
- *
- * See also:
- *
- * * [isTagSupported]
- */
- factory Element.tag(String tag, [String typeExtention]) =>
- _ElementFactoryProvider.createElement_tag(tag, typeExtention);
-
- /// Creates a new `<a>` element.
- ///
- /// This is equivalent to calling `new Element.tag('a')`.
- factory Element.a() => new AnchorElement();
-
- /// Creates a new `<article>` element.
- ///
- /// This is equivalent to calling `new Element.tag('article')`.
- factory Element.article() => new Element.tag('article');
-
- /// Creates a new `<aside>` element.
- ///
- /// This is equivalent to calling `new Element.tag('aside')`.
- factory Element.aside() => new Element.tag('aside');
-
- /// Creates a new `<audio>` element.
- ///
- /// This is equivalent to calling `new Element.tag('audio')`.
- factory Element.audio() => new Element.tag('audio');
-
- /// Creates a new `<br>` element.
- ///
- /// This is equivalent to calling `new Element.tag('br')`.
- factory Element.br() => new BRElement();
-
- /// Creates a new `<canvas>` element.
- ///
- /// This is equivalent to calling `new Element.tag('canvas')`.
- factory Element.canvas() => new CanvasElement();
-
- /// Creates a new `<div>` element.
- ///
- /// This is equivalent to calling `new Element.tag('div')`.
- factory Element.div() => new DivElement();
-
- /// Creates a new `<footer>` element.
- ///
- /// This is equivalent to calling `new Element.tag('footer')`.
- factory Element.footer() => new Element.tag('footer');
-
- /// Creates a new `<header>` element.
- ///
- /// This is equivalent to calling `new Element.tag('header')`.
- factory Element.header() => new Element.tag('header');
-
- /// Creates a new `<hr>` element.
- ///
- /// This is equivalent to calling `new Element.tag('hr')`.
- factory Element.hr() => new Element.tag('hr');
-
- /// Creates a new `<iframe>` element.
- ///
- /// This is equivalent to calling `new Element.tag('iframe')`.
- factory Element.iframe() => new Element.tag('iframe');
-
- /// Creates a new `<img>` element.
- ///
- /// This is equivalent to calling `new Element.tag('img')`.
- factory Element.img() => new Element.tag('img');
-
- /// Creates a new `<li>` element.
- ///
- /// This is equivalent to calling `new Element.tag('li')`.
- factory Element.li() => new Element.tag('li');
-
- /// Creates a new `<nav>` element.
- ///
- /// This is equivalent to calling `new Element.tag('nav')`.
- factory Element.nav() => new Element.tag('nav');
-
- /// Creates a new `<ol>` element.
- ///
- /// This is equivalent to calling `new Element.tag('ol')`.
- factory Element.ol() => new Element.tag('ol');
-
- /// Creates a new `<option>` element.
- ///
- /// This is equivalent to calling `new Element.tag('option')`.
- factory Element.option() => new Element.tag('option');
-
- /// Creates a new `<p>` element.
- ///
- /// This is equivalent to calling `new Element.tag('p')`.
- factory Element.p() => new Element.tag('p');
-
- /// Creates a new `<pre>` element.
- ///
- /// This is equivalent to calling `new Element.tag('pre')`.
- factory Element.pre() => new Element.tag('pre');
-
- /// Creates a new `<section>` element.
- ///
- /// This is equivalent to calling `new Element.tag('section')`.
- factory Element.section() => new Element.tag('section');
-
- /// Creates a new `<select>` element.
- ///
- /// This is equivalent to calling `new Element.tag('select')`.
- factory Element.select() => new Element.tag('select');
-
- /// Creates a new `<span>` element.
- ///
- /// This is equivalent to calling `new Element.tag('span')`.
- factory Element.span() => new Element.tag('span');
-
- /// Creates a new `<svg>` element.
- ///
- /// This is equivalent to calling `new Element.tag('svg')`.
- factory Element.svg() => new Element.tag('svg');
-
- /// Creates a new `<table>` element.
- ///
- /// This is equivalent to calling `new Element.tag('table')`.
- factory Element.table() => new Element.tag('table');
-
- /// Creates a new `<td>` element.
- ///
- /// This is equivalent to calling `new Element.tag('td')`.
- factory Element.td() => new Element.tag('td');
-
- /// Creates a new `<textarea>` element.
- ///
- /// This is equivalent to calling `new Element.tag('textarea')`.
- factory Element.textarea() => new Element.tag('textarea');
-
- /// Creates a new `<th>` element.
- ///
- /// This is equivalent to calling `new Element.tag('th')`.
- factory Element.th() => new Element.tag('th');
-
- /// Creates a new `<tr>` element.
- ///
- /// This is equivalent to calling `new Element.tag('tr')`.
- factory Element.tr() => new Element.tag('tr');
-
- /// Creates a new `<ul>` element.
- ///
- /// This is equivalent to calling `new Element.tag('ul')`.
- factory Element.ul() => new Element.tag('ul');
-
- /// Creates a new `<video>` element.
- ///
- /// This is equivalent to calling `new Element.tag('video')`.
- factory Element.video() => new Element.tag('video');
-
- /**
- * All attributes on this element.
- *
- * Any modifications to the attribute map will automatically be applied to
- * this element.
- *
- * This only includes attributes which are not in a namespace
- * (such as 'xlink:href'), additional attributes can be accessed via
- * [getNamespacedAttributes].
- */
- Map<String, String> get attributes => new _ElementAttributeMap(this);
-
- set attributes(Map<String, String> value) {
- Map<String, String> attributes = this.attributes;
- attributes.clear();
- for (String key in value.keys) {
- attributes[key] = value[key];
- }
- }
-
- /**
- * List of the direct children of this element.
- *
- * This collection can be used to add and remove elements from the document.
- *
- * var item = new DivElement();
- * item.text = 'Something';
- * document.body.children.add(item) // Item is now displayed on the page.
- * for (var element in document.body.children) {
- * element.style.background = 'red'; // Turns every child of body red.
- * }
- */
- List<Element> get children => new _ChildrenElementList._wrap(this);
-
- set children(List<Element> value) {
- // Copy list first since we don't want liveness during iteration.
- var copy = value.toList();
- var children = this.children;
- children.clear();
- children.addAll(copy);
- }
-
- /**
- * Finds all descendent elements of this element that match the specified
- * group of selectors.
- *
- * [selectors] should be a string using CSS selector syntax.
- *
- * var items = element.querySelectorAll('.itemClassName');
- *
- * For details about CSS selector syntax, see the
- * [CSS selector specification](http://www.w3.org/TR/css3-selectors/).
- */
- @DomName('Element.querySelectorAll')
- ElementList<Element/*=T*/ > querySelectorAll/*<T extends Element>*/(
- String selectors) =>
- new _FrozenElementList/*<T>*/ ._wrap(_querySelectorAll(selectors));
-
- /**
- * Alias for [querySelector]. Note this function is deprecated because its
- * semantics will be changing in the future.
- */
- @deprecated
- @DomName('Element.querySelector')
- @Experimental()
- Element query(String relativeSelectors) => querySelector(relativeSelectors);
-
- /**
- * Alias for [querySelectorAll]. Note this function is deprecated because its
- * semantics will be changing in the future.
- */
- @deprecated
- @DomName('Element.querySelectorAll')
- @Experimental()
- ElementList<Element/*=T*/ > queryAll/*<T extends Element>*/(
- String relativeSelectors) =>
- querySelectorAll(relativeSelectors);
-
- /**
- * The set of CSS classes applied to this element.
- *
- * This set makes it easy to add, remove or toggle the classes applied to
- * this element.
- *
- * element.classes.add('selected');
- * element.classes.toggle('isOnline');
- * element.classes.remove('selected');
- */
- CssClassSet get classes => new _ElementCssClassSet(this);
-
- set classes(Iterable<String> value) {
- // TODO(sra): Do this without reading the classes in clear() and addAll(),
- // or writing the classes in clear().
- CssClassSet classSet = classes;
- classSet.clear();
- classSet.addAll(value);
- }
-
- /**
- * Allows access to all custom data attributes (data-*) set on this element.
- *
- * The keys for the map must follow these rules:
- *
- * * The name must not begin with 'xml'.
- * * The name cannot contain a semi-colon (';').
- * * The name cannot contain any capital letters.
- *
- * Any keys from markup will be converted to camel-cased keys in the map.
- *
- * For example, HTML specified as:
- *
- * <div data-my-random-value='value'></div>
- *
- * Would be accessed in Dart as:
- *
- * var value = element.dataset['myRandomValue'];
- *
- * See also:
- *
- * * [Custom data
- * attributes](http://dev.w3.org/html5/spec-preview/global-attributes.html#custom-data-attribute)
- */
- Map<String, String> get dataset => new _DataAttributeMap(attributes);
-
- set dataset(Map<String, String> value) {
- final data = this.dataset;
- data.clear();
- for (String key in value.keys) {
- data[key] = value[key];
- }
- }
-
- /**
- * Gets a map for manipulating the attributes of a particular namespace.
- *
- * This is primarily useful for SVG attributes such as xref:link.
- */
- Map<String, String> getNamespacedAttributes(String namespace) {
- return new _NamespacedAttributeMap(this, namespace);
- }
-
- /**
- * The set of all CSS values applied to this element, including inherited
- * and default values.
- *
- * The computedStyle contains values that are inherited from other
- * sources, such as parent elements or stylesheets. This differs from the
- * [style] property, which contains only the values specified directly on this
- * element.
- *
- * PseudoElement can be values such as `::after`, `::before`, `::marker`,
- * `::line-marker`.
- *
- * See also:
- *
- * * [CSS Inheritance and Cascade](http://docs.webplatform.org/wiki/tutorials/inheritance_and_cascade)
- * * [Pseudo-elements](http://docs.webplatform.org/wiki/css/selectors/pseudo-elements)
- */
- CssStyleDeclaration getComputedStyle([String pseudoElement]) {
- if (pseudoElement == null) {
- pseudoElement = '';
- }
- // TODO(jacobr): last param should be null, see b/5045788
- return window._getComputedStyle(this, pseudoElement);
- }
-
- /**
- * Gets the position of this element relative to the client area of the page.
- */
- Rectangle get client =>
- new Rectangle(clientLeft, clientTop, clientWidth, clientHeight);
-
- /**
- * Gets the offset of this element relative to its offsetParent.
- */
- Rectangle get offset =>
- new Rectangle(offsetLeft, offsetTop, offsetWidth, offsetHeight);
-
- /**
- * Adds the specified text after the last child of this element.
- */
- void appendText(String text) {
- this.append(new Text(text));
- }
-
- /**
- * Parses the specified text as HTML and adds the resulting node after the
- * last child of this element.
- */
- void appendHtml(String text,
- {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {
- this.insertAdjacentHtml('beforeend', text,
- validator: validator, treeSanitizer: treeSanitizer);
- }
-
- /**
- * Checks to see if the tag name is supported by the current platform.
- *
- * The tag should be a valid HTML tag name.
- */
- static bool isTagSupported(String tag) {
- var e = _ElementFactoryProvider.createElement_tag(tag, null);
- return e is Element && !(e is UnknownElement);
- }
-
- /**
- * Called by the DOM when this element has been inserted into the live
- * document.
- *
- * More information can be found in the
- * [Custom Elements](http://w3c.github.io/webcomponents/spec/custom/#dfn-attached-callback)
- * draft specification.
- */
- @Experimental()
- void attached() {
- // For the deprecation period, call the old callback.
- enteredView();
- }
-
- /**
- * Called by the DOM when this element has been removed from the live
- * document.
- *
- * More information can be found in the
- * [Custom Elements](http://w3c.github.io/webcomponents/spec/custom/#dfn-detached-callback)
- * draft specification.
- */
- @Experimental()
- void detached() {
- // For the deprecation period, call the old callback.
- leftView();
- }
-
- /** *Deprecated*: override [attached] instead. */
- @Experimental()
- @deprecated
- void enteredView() {}
-
- /** *Deprecated*: override [detached] instead. */
- @Experimental()
- @deprecated
- void leftView() {}
-
- /**
- * Creates a new AnimationEffect object whose target element is the object
- * on which the method is called, and calls the play() method of the
- * AnimationTimeline object of the document timeline of the node document
- * of the element, passing the newly created AnimationEffect as the argument
- * to the method. Returns an Animation for the effect.
- *
- * Examples
- *
- * var animation = elem.animate([{"opacity": 75}, {"opacity": 0}], 200);
- *
- * var animation = elem.animate([
- * {"transform": "translate(100px, -100%)"},
- * {"transform" : "translate(400px, 500px)"}
- * ], 1500);
- *
- * The [frames] parameter is an Iterable<Map>, where the
- * map entries specify CSS animation effects. The
- * [timing] paramter can be a double, representing the number of milliseconds
- * for the transition, or a Map with fields corresponding to those
- * of the [Timing] object.
- **/
- @Experimental()
- @SupportedBrowser(SupportedBrowser.CHROME, '36')
- Animation animate(Iterable<Map<String, dynamic>> frames, [timing]) {
- if (frames is! Iterable || !(frames.every((x) => x is Map))) {
- throw new ArgumentError("The frames parameter should be a List of Maps "
- "with frame information");
- }
- var convertedFrames;
- if (frames is Iterable) {
- convertedFrames = frames.map(convertDartToNative_Dictionary).toList();
- } else {
- convertedFrames = frames;
- }
- var convertedTiming =
- timing is Map ? convertDartToNative_Dictionary(timing) : timing;
- return convertedTiming == null
- ? _animate(convertedFrames)
- : _animate(convertedFrames, convertedTiming);
- }
-
- @DomName('Element.animate')
- @JSName('animate')
- @Experimental() // untriaged
- Animation _animate(Object effect, [timing]) native;
- /**
- * Called by the DOM whenever an attribute on this has been changed.
- */
- void attributeChanged(String name, String oldValue, String newValue) {}
-
- // Hooks to support custom WebComponents.
-
- @Creates('Null') // Set from Dart code; does not instantiate a native type.
- Element _xtag;
-
- /**
- * Experimental support for [web components][wc]. This field stores a
- * reference to the component implementation. It was inspired by Mozilla's
- * [x-tags][] project. Please note: in the future it may be possible to
- * `extend Element` from your class, in which case this field will be
- * deprecated.
- *
- * If xtag has not been set, it will simply return `this` [Element].
- *
- * [wc]: http://dvcs.w3.org/hg/webcomponents/raw-file/tip/explainer/index.html
- * [x-tags]: http://x-tags.org/
- */
- // Note: return type is `dynamic` for convenience to suppress warnings when
- // members of the component are used. The actual type is a subtype of Element.
- get xtag => _xtag != null ? _xtag : this;
-
- set xtag(Element value) {
- _xtag = value;
- }
-
- @DomName('Element.localName')
- @DocsEditable()
- @Returns('String')
- // Non-null for Elements.
- String get localName => JS('String', '#', _localName);
-
- /**
- * A URI that identifies the XML namespace of this element.
- *
- * `null` if no namespace URI is specified.
- *
- * ## Other resources
- *
- * * [Node.namespaceURI](http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-NodeNSname)
- * from W3C.
- */
- @DomName('Element.namespaceUri')
- String get namespaceUri => _namespaceUri;
-
- /**
- * The string representation of this element.
- *
- * This is equivalent to reading the [localName] property.
- */
- String toString() => localName;
-
- /**
- * Scrolls this element into view.
- *
- * Only one of of the alignment options may be specified at a time.
- *
- * If no options are specified then this will attempt to scroll the minimum
- * amount needed to bring the element into view.
- *
- * Note that alignCenter is currently only supported on WebKit platforms. If
- * alignCenter is specified but not supported then this will fall back to
- * alignTop.
- *
- * See also:
- *
- * * [scrollIntoView](http://docs.webplatform.org/wiki/dom/methods/scrollIntoView)
- * * [scrollIntoViewIfNeeded](http://docs.webplatform.org/wiki/dom/methods/scrollIntoViewIfNeeded)
- */
- void scrollIntoView([ScrollAlignment alignment]) {
- var hasScrollIntoViewIfNeeded = true;
- hasScrollIntoViewIfNeeded =
- JS('bool', '!!(#.scrollIntoViewIfNeeded)', this);
- if (alignment == ScrollAlignment.TOP) {
- this._scrollIntoView(true);
- } else if (alignment == ScrollAlignment.BOTTOM) {
- this._scrollIntoView(false);
- } else if (hasScrollIntoViewIfNeeded) {
- if (alignment == ScrollAlignment.CENTER) {
- this._scrollIntoViewIfNeeded(true);
- } else {
- this._scrollIntoViewIfNeeded();
- }
- } else {
- this._scrollIntoView();
- }
- }
-
- /**
- * Static factory designed to expose `mousewheel` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.mouseWheelEvent')
- static const EventStreamProvider<WheelEvent> mouseWheelEvent =
- const _CustomEventStreamProvider<WheelEvent>(
- Element._determineMouseWheelEventType);
-
- static String _determineMouseWheelEventType(EventTarget e) => 'wheel';
-
- /**
- * Static factory designed to expose `transitionend` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.transitionEndEvent')
- static const EventStreamProvider<TransitionEvent> transitionEndEvent =
- const _CustomEventStreamProvider<TransitionEvent>(
- Element._determineTransitionEventType);
-
- static String _determineTransitionEventType(EventTarget e) {
- // Unfortunately the normal 'ontransitionend' style checks don't work here.
- if (Device.isWebKit) {
- return 'webkitTransitionEnd';
- } else if (Device.isOpera) {
- return 'oTransitionEnd';
- }
- return 'transitionend';
- }
-
- /**
- * Inserts text into the DOM at the specified location.
- *
- * To see the possible values for [where], read the doc for
- * [insertAdjacentHtml].
- *
- * See also:
- *
- * * [insertAdjacentHtml]
- */
- void insertAdjacentText(String where, String text) {
- if (JS('bool', '!!#.insertAdjacentText', this)) {
- _insertAdjacentText(where, text);
- } else {
- _insertAdjacentNode(where, new Text(text));
- }
- }
-
- @JSName('insertAdjacentText')
- void _insertAdjacentText(String where, String text) native;
-
- /**
- * Parses text as an HTML fragment and inserts it into the DOM at the
- * specified location.
- *
- * The [where] parameter indicates where to insert the HTML fragment:
- *
- * * 'beforeBegin': Immediately before this element.
- * * 'afterBegin': As the first child of this element.
- * * 'beforeEnd': As the last child of this element.
- * * 'afterEnd': Immediately after this element.
- *
- * var html = '<div class="something">content</div>';
- * // Inserts as the first child
- * document.body.insertAdjacentHtml('afterBegin', html);
- * var createdElement = document.body.children[0];
- * print(createdElement.classes[0]); // Prints 'something'
- *
- * See also:
- *
- * * [insertAdjacentText]
- * * [insertAdjacentElement]
- */
- void insertAdjacentHtml(String where, String html,
- {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {
- if (treeSanitizer is _TrustedHtmlTreeSanitizer) {
- _insertAdjacentHtml(where, html);
- } else {
- _insertAdjacentNode(
- where,
- createFragment(html,
- validator: validator, treeSanitizer: treeSanitizer));
- }
- }
-
- @JSName('insertAdjacentHTML')
- void _insertAdjacentHtml(String where, String text) native;
-
- /**
- * Inserts [element] into the DOM at the specified location.
- *
- * To see the possible values for [where], read the doc for
- * [insertAdjacentHtml].
- *
- * See also:
- *
- * * [insertAdjacentHtml]
- */
- Element insertAdjacentElement(String where, Element element) {
- if (JS('bool', '!!#.insertAdjacentElement', this)) {
- _insertAdjacentElement(where, element);
- } else {
- _insertAdjacentNode(where, element);
- }
- return element;
- }
-
- @JSName('insertAdjacentElement')
- void _insertAdjacentElement(String where, Element element) native;
-
- void _insertAdjacentNode(String where, Node node) {
- switch (where.toLowerCase()) {
- case 'beforebegin':
- this.parentNode.insertBefore(node, this);
- break;
- case 'afterbegin':
- var first = this.nodes.length > 0 ? this.nodes[0] : null;
- this.insertBefore(node, first);
- break;
- case 'beforeend':
- this.append(node);
- break;
- case 'afterend':
- this.parentNode.insertBefore(node, this.nextNode);
- break;
- default:
- throw new ArgumentError("Invalid position ${where}");
- }
- }
-
- /**
- * Checks if this element matches the CSS selectors.
- */
- @Experimental()
- bool matches(String selectors) {
- if (JS('bool', '!!#.matches', this)) {
- return JS('bool', '#.matches(#)', this, selectors);
- } else if (JS('bool', '!!#.webkitMatchesSelector', this)) {
- return JS('bool', '#.webkitMatchesSelector(#)', this, selectors);
- } else if (JS('bool', '!!#.mozMatchesSelector', this)) {
- return JS('bool', '#.mozMatchesSelector(#)', this, selectors);
- } else if (JS('bool', '!!#.msMatchesSelector', this)) {
- return JS('bool', '#.msMatchesSelector(#)', this, selectors);
- } else if (JS('bool', '!!#.oMatchesSelector', this)) {
- return JS('bool', '#.oMatchesSelector(#)', this, selectors);
- } else {
- throw new UnsupportedError("Not supported on this platform");
- }
- }
-
- /** Checks if this element or any of its parents match the CSS selectors. */
- @Experimental()
- bool matchesWithAncestors(String selectors) {
- var elem = this;
- do {
- if (elem.matches(selectors)) return true;
- elem = elem.parent;
- } while (elem != null);
- return false;
- }
-
- /**
- * Creates a new shadow root for this shadow host.
- *
- * ## Other resources
- *
- * * [Shadow DOM 101](http://www.html5rocks.com/en/tutorials/webcomponents/shadowdom/)
- * from HTML5Rocks.
- * * [Shadow DOM specification](http://www.w3.org/TR/shadow-dom/) from W3C.
- */
- @DomName('Element.createShadowRoot')
- @SupportedBrowser(SupportedBrowser.CHROME, '25')
- @Experimental()
- ShadowRoot createShadowRoot() {
- return JS(
- 'ShadowRoot',
- '(#.createShadowRoot || #.webkitCreateShadowRoot).call(#)',
- this,
- this,
- this);
- }
-
- /**
- * The shadow root of this shadow host.
- *
- * ## Other resources
- *
- * * [Shadow DOM 101](http://www.html5rocks.com/en/tutorials/webcomponents/shadowdom/)
- * from HTML5Rocks.
- * * [Shadow DOM specification](http://www.w3.org/TR/shadow-dom/)
- * from W3C.
- */
- @DomName('Element.shadowRoot')
- @SupportedBrowser(SupportedBrowser.CHROME, '25')
- @Experimental()
- ShadowRoot get shadowRoot =>
- JS('ShadowRoot|Null', '#.shadowRoot || #.webkitShadowRoot', this, this);
-
- /**
- * Access this element's content position.
- *
- * This returns a rectangle with the dimensions actually available for content
- * in this element, in pixels, regardless of this element's box-sizing
- * property. Unlike [getBoundingClientRect], the dimensions of this rectangle
- * will return the same numerical height if the element is hidden or not.
- *
- * _Important_ _note_: use of this method _will_ perform CSS calculations that
- * can trigger a browser reflow. Therefore, use of this property _during_ an
- * animation frame is discouraged. See also:
- * [Browser Reflow](https://developers.google.com/speed/articles/reflow)
- */
- @Experimental()
- CssRect get contentEdge => new _ContentCssRect(this);
-
- /**
- * Access the dimensions and position of this element's content + padding box.
- *
- * This returns a rectangle with the dimensions actually available for content
- * in this element, in pixels, regardless of this element's box-sizing
- * property. Unlike [getBoundingClientRect], the dimensions of this rectangle
- * will return the same numerical height if the element is hidden or not. This
- * can be used to retrieve jQuery's
- * [innerHeight](http://api.jquery.com/innerHeight/) value for an element.
- * This is also a rectangle equalling the dimensions of clientHeight and
- * clientWidth.
- *
- * _Important_ _note_: use of this method _will_ perform CSS calculations that
- * can trigger a browser reflow. Therefore, use of this property _during_ an
- * animation frame is discouraged. See also:
- * [Browser Reflow](https://developers.google.com/speed/articles/reflow)
- */
- @Experimental()
- CssRect get paddingEdge => new _PaddingCssRect(this);
-
- /**
- * Access the dimensions and position of this element's content + padding +
- * border box.
- *
- * This returns a rectangle with the dimensions actually available for content
- * in this element, in pixels, regardless of this element's box-sizing
- * property. Unlike [getBoundingClientRect], the dimensions of this rectangle
- * will return the same numerical height if the element is hidden or not. This
- * can be used to retrieve jQuery's
- * [outerHeight](http://api.jquery.com/outerHeight/) value for an element.
- *
- * _Important_ _note_: use of this method _will_ perform CSS calculations that
- * can trigger a browser reflow. Therefore, use of this property _during_ an
- * animation frame is discouraged. See also:
- * [Browser Reflow](https://developers.google.com/speed/articles/reflow)
- */
- @Experimental()
- CssRect get borderEdge => new _BorderCssRect(this);
-
- /**
- * Access the dimensions and position of this element's content + padding +
- * border + margin box.
- *
- * This returns a rectangle with the dimensions actually available for content
- * in this element, in pixels, regardless of this element's box-sizing
- * property. Unlike [getBoundingClientRect], the dimensions of this rectangle
- * will return the same numerical height if the element is hidden or not. This
- * can be used to retrieve jQuery's
- * [outerHeight](http://api.jquery.com/outerHeight/) value for an element.
- *
- * _Important_ _note_: use of this method will perform CSS calculations that
- * can trigger a browser reflow. Therefore, use of this property _during_ an
- * animation frame is discouraged. See also:
- * [Browser Reflow](https://developers.google.com/speed/articles/reflow)
- */
- @Experimental()
- CssRect get marginEdge => new _MarginCssRect(this);
-
- /**
- * Provides the coordinates of the element relative to the top of the
- * document.
- *
- * This method is the Dart equivalent to jQuery's
- * [offset](http://api.jquery.com/offset/) method.
- */
- @Experimental()
- Point get documentOffset => offsetTo(document.documentElement);
-
- /**
- * Provides the offset of this element's [borderEdge] relative to the
- * specified [parent].
- *
- * This is the Dart equivalent of jQuery's
- * [position](http://api.jquery.com/position/) method. Unlike jQuery's
- * position, however, [parent] can be any parent element of `this`,
- * rather than only `this`'s immediate [offsetParent]. If the specified
- * element is _not_ an offset parent or transitive offset parent to this
- * element, an [ArgumentError] is thrown.
- */
- @Experimental()
- Point offsetTo(Element parent) {
- return Element._offsetToHelper(this, parent);
- }
-
- static Point _offsetToHelper(Element current, Element parent) {
- // We're hopping from _offsetParent_ to offsetParent (not just parent), so
- // offsetParent, "tops out" at BODY. But people could conceivably pass in
- // the document.documentElement and I want it to return an absolute offset,
- // so we have the special case checking for HTML.
- bool sameAsParent = identical(current, parent);
- bool foundAsParent = sameAsParent || parent.tagName == 'HTML';
- if (current == null || sameAsParent) {
- if (foundAsParent) return new Point/*<num>*/(0, 0);
- throw new ArgumentError("Specified element is not a transitive offset "
- "parent of this element.");
- }
- Element parentOffset = current.offsetParent;
- Point p = Element._offsetToHelper(parentOffset, parent);
- return new Point/*<num>*/(
- p.x + current.offsetLeft, p.y + current.offsetTop);
- }
-
- static HtmlDocument _parseDocument;
- static Range _parseRange;
- static NodeValidatorBuilder _defaultValidator;
- static _ValidatingTreeSanitizer _defaultSanitizer;
-
- /**
- * Create a DocumentFragment from the HTML fragment and ensure that it follows
- * the sanitization rules specified by the validator or treeSanitizer.
- *
- * If the default validation behavior is too restrictive then a new
- * NodeValidator should be created, either extending or wrapping a default
- * validator and overriding the validation APIs.
- *
- * The treeSanitizer is used to walk the generated node tree and sanitize it.
- * A custom treeSanitizer can also be provided to perform special validation
- * rules but since the API is more complex to implement this is discouraged.
- *
- * The returned tree is guaranteed to only contain nodes and attributes which
- * are allowed by the provided validator.
- *
- * See also:
- *
- * * [NodeValidator]
- * * [NodeTreeSanitizer]
- */
- DocumentFragment createFragment(String html,
- {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {
- if (treeSanitizer == null) {
- if (validator == null) {
- if (_defaultValidator == null) {
- _defaultValidator = new NodeValidatorBuilder.common();
- }
- validator = _defaultValidator;
- }
- if (_defaultSanitizer == null) {
- _defaultSanitizer = new _ValidatingTreeSanitizer(validator);
- } else {
- _defaultSanitizer.validator = validator;
- }
- treeSanitizer = _defaultSanitizer;
- } else if (validator != null) {
- throw new ArgumentError(
- 'validator can only be passed if treeSanitizer is null');
- }
-
- if (_parseDocument == null) {
- _parseDocument = document.implementation.createHtmlDocument('');
- _parseRange = _parseDocument.createRange();
-
- // Workaround for Safari bug. Was also previously Chrome bug 229142
- // - URIs are not resolved in new doc.
- BaseElement base = _parseDocument.createElement('base');
- base.href = document.baseUri;
- _parseDocument.head.append(base);
- }
-
- // TODO(terry): Fixes Chromium 50 change no body after createHtmlDocument()
- if (_parseDocument.body == null) {
- _parseDocument.body = _parseDocument.createElement("body");
- }
-
- var contextElement;
- if (this is BodyElement) {
- contextElement = _parseDocument.body;
- } else {
- contextElement = _parseDocument.createElement(tagName);
- _parseDocument.body.append(contextElement);
- }
- var fragment;
- if (Range.supportsCreateContextualFragment &&
- _canBeUsedToCreateContextualFragment) {
- _parseRange.selectNodeContents(contextElement);
- fragment = _parseRange.createContextualFragment(html);
- } else {
- contextElement._innerHtml = html;
-
- fragment = _parseDocument.createDocumentFragment();
- while (contextElement.firstChild != null) {
- fragment.append(contextElement.firstChild);
- }
- }
- if (contextElement != _parseDocument.body) {
- contextElement.remove();
- }
-
- treeSanitizer.sanitizeTree(fragment);
- // Copy the fragment over to the main document (fix for 14184)
- document.adoptNode(fragment);
-
- return fragment;
- }
-
- /** Test if createContextualFragment is supported for this element type */
- bool get _canBeUsedToCreateContextualFragment =>
- !_cannotBeUsedToCreateContextualFragment;
-
- /** Test if createContextualFragment is NOT supported for this element type */
- bool get _cannotBeUsedToCreateContextualFragment =>
- _tagsForWhichCreateContextualFragmentIsNotSupported.contains(tagName);
-
- /**
- * A hard-coded list of the tag names for which createContextualFragment
- * isn't supported.
- */
- static const _tagsForWhichCreateContextualFragmentIsNotSupported = const [
- 'HEAD',
- 'AREA',
- 'BASE',
- 'BASEFONT',
- 'BR',
- 'COL',
- 'COLGROUP',
- 'EMBED',
- 'FRAME',
- 'FRAMESET',
- 'HR',
- 'IMAGE',
- 'IMG',
- 'INPUT',
- 'ISINDEX',
- 'LINK',
- 'META',
- 'PARAM',
- 'SOURCE',
- 'STYLE',
- 'TITLE',
- 'WBR'
- ];
-
- /**
- * Parses the HTML fragment and sets it as the contents of this element.
- *
- * This uses the default sanitization behavior to sanitize the HTML fragment,
- * use [setInnerHtml] to override the default behavior.
- */
- set innerHtml(String html) {
- this.setInnerHtml(html);
- }
-
- /**
- * Parses the HTML fragment and sets it as the contents of this element.
- * This ensures that the generated content follows the sanitization rules
- * specified by the validator or treeSanitizer.
- *
- * If the default validation behavior is too restrictive then a new
- * NodeValidator should be created, either extending or wrapping a default
- * validator and overriding the validation APIs.
- *
- * The treeSanitizer is used to walk the generated node tree and sanitize it.
- * A custom treeSanitizer can also be provided to perform special validation
- * rules but since the API is more complex to implement this is discouraged.
- *
- * The resulting tree is guaranteed to only contain nodes and attributes which
- * are allowed by the provided validator.
- *
- * See also:
- *
- * * [NodeValidator]
- * * [NodeTreeSanitizer]
- */
- void setInnerHtml(String html,
- {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {
- text = null;
- if (treeSanitizer is _TrustedHtmlTreeSanitizer) {
- _innerHtml = html;
- } else {
- append(createFragment(html,
- validator: validator, treeSanitizer: treeSanitizer));
- }
- }
-
- String get innerHtml => _innerHtml;
-
- /**
- * This is an ease-of-use accessor for event streams which should only be
- * used when an explicit accessor is not available.
- */
- ElementEvents get on => new ElementEvents(this);
-
- /**
- * Verify if any of the attributes that we use in the sanitizer look unexpected,
- * possibly indicating DOM clobbering attacks.
- *
- * Those attributes are: attributes, lastChild, children, previousNode and tagName.
- */
- static bool _hasCorruptedAttributes(Element element) {
- return JS(
- 'bool',
- r'''
- (function(element) {
- if (!(element.attributes instanceof NamedNodeMap)) {
- return true;
- }
- var childNodes = element.childNodes;
- if (element.lastChild &&
- element.lastChild !== childNodes[childNodes.length -1]) {
- return true;
- }
- if (element.children) { // On Safari, children can apparently be null.
- if (!((element.children instanceof HTMLCollection) ||
- (element.children instanceof NodeList))) {
- return true;
- }
- }
- var length = 0;
- if (element.children) {
- length = element.children.length;
- }
- for (var i = 0; i < length; i++) {
- var child = element.children[i];
- // On IE it seems like we sometimes don't see the clobbered attribute,
- // perhaps as a result of an over-optimization. Also use another route
- // to check of attributes, children, or lastChild are clobbered. It may
- // seem silly to check children as we rely on children to do this iteration,
- // but it seems possible that the access to children might see the real thing,
- // allowing us to check for clobbering that may show up in other accesses.
- if (child["id"] == 'attributes' || child["name"] == 'attributes' ||
- child["id"] == 'lastChild' || child["name"] == 'lastChild' ||
- child["id"] == 'children' || child["name"] == 'children') {
- return true;
- }
- }
- return false;
- })(#)''',
- element);
- }
-
- /// A secondary check for corruption, needed on IE
- static bool _hasCorruptedAttributesAdditionalCheck(Element element) {
- return JS('bool', r'!(#.attributes instanceof NamedNodeMap)', element);
- }
-
- static String _safeTagName(element) {
- String result = 'element tag unavailable';
- try {
- if (element.tagName is String) {
- result = element.tagName;
- }
- } catch (e) {}
- return result;
- }
-
- @DomName('Element.offsetParent')
- @DocsEditable()
- final Element offsetParent;
-
- @DomName('Element.offsetHeight')
- @DocsEditable()
- int get offsetHeight => JS('num', '#.offsetHeight', this).round();
-
- @DomName('Element.offsetLeft')
- @DocsEditable()
- int get offsetLeft => JS('num', '#.offsetLeft', this).round();
-
- @DomName('Element.offsetTop')
- @DocsEditable()
- int get offsetTop => JS('num', '#.offsetTop', this).round();
-
- @DomName('Element.offsetWidth')
- @DocsEditable()
- int get offsetWidth => JS('num', '#.offsetWidth', this).round();
-
- @DomName('Element.scrollHeight')
- @DocsEditable()
- int get scrollHeight => JS('num', '#.scrollHeight', this).round();
-
- @DomName('Element.scrollLeft')
- @DocsEditable()
- int get scrollLeft => JS('num', '#.scrollLeft', this).round();
-
- @DomName('Element.scrollLeft')
- @DocsEditable()
- set scrollLeft(int value) {
- JS("void", "#.scrollLeft = #", this, value.round());
- }
-
- @DomName('Element.scrollTop')
- @DocsEditable()
- int get scrollTop => JS('num', '#.scrollTop', this).round();
-
- @DomName('Element.scrollTop')
- @DocsEditable()
- set scrollTop(int value) {
- JS("void", "#.scrollTop = #", this, value.round());
- }
-
- @DomName('Element.scrollWidth')
- @DocsEditable()
- int get scrollWidth => JS('num', '#.scrollWidth', this).round();
-
- // To suppress missing implicit constructor warnings.
- factory Element._() {
- throw new UnsupportedError("Not supported");
- }
-
- /**
- * Static factory designed to expose `abort` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.abortEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> abortEvent =
- const EventStreamProvider<Event>('abort');
-
- /**
- * Static factory designed to expose `beforecopy` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.beforecopyEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> beforeCopyEvent =
- const EventStreamProvider<Event>('beforecopy');
-
- /**
- * Static factory designed to expose `beforecut` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.beforecutEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> beforeCutEvent =
- const EventStreamProvider<Event>('beforecut');
-
- /**
- * Static factory designed to expose `beforepaste` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.beforepasteEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> beforePasteEvent =
- const EventStreamProvider<Event>('beforepaste');
-
- /**
- * Static factory designed to expose `blur` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.blurEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> blurEvent =
- const EventStreamProvider<Event>('blur');
-
- @DomName('Element.canplayEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> canPlayEvent =
- const EventStreamProvider<Event>('canplay');
-
- @DomName('Element.canplaythroughEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> canPlayThroughEvent =
- const EventStreamProvider<Event>('canplaythrough');
-
- /**
- * Static factory designed to expose `change` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.changeEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> changeEvent =
- const EventStreamProvider<Event>('change');
-
- /**
- * Static factory designed to expose `click` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.clickEvent')
- @DocsEditable()
- static const EventStreamProvider<MouseEvent> clickEvent =
- const EventStreamProvider<MouseEvent>('click');
-
- /**
- * Static factory designed to expose `contextmenu` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.contextmenuEvent')
- @DocsEditable()
- static const EventStreamProvider<MouseEvent> contextMenuEvent =
- const EventStreamProvider<MouseEvent>('contextmenu');
-
- /**
- * Static factory designed to expose `copy` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.copyEvent')
- @DocsEditable()
- static const EventStreamProvider<ClipboardEvent> copyEvent =
- const EventStreamProvider<ClipboardEvent>('copy');
-
- /**
- * Static factory designed to expose `cut` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.cutEvent')
- @DocsEditable()
- static const EventStreamProvider<ClipboardEvent> cutEvent =
- const EventStreamProvider<ClipboardEvent>('cut');
-
- /**
- * Static factory designed to expose `doubleclick` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.dblclickEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> doubleClickEvent =
- const EventStreamProvider<Event>('dblclick');
-
- /**
- * A stream of `drag` events fired when an element is currently being dragged.
- *
- * A `drag` event is added to this stream as soon as the drag begins.
- * A `drag` event is also added to this stream at intervals while the drag
- * operation is still ongoing.
- *
- * ## Other resources
- *
- * * [Drag and drop
- * sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
- * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
- * from HTML5Rocks.
- * * [Drag and drop
- * specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
- * from WHATWG.
- */
- @DomName('Element.dragEvent')
- @DocsEditable()
- static const EventStreamProvider<MouseEvent> dragEvent =
- const EventStreamProvider<MouseEvent>('drag');
-
- /**
- * A stream of `dragend` events fired when an element completes a drag
- * operation.
- *
- * ## Other resources
- *
- * * [Drag and drop
- * sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
- * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
- * from HTML5Rocks.
- * * [Drag and drop
- * specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
- * from WHATWG.
- */
- @DomName('Element.dragendEvent')
- @DocsEditable()
- static const EventStreamProvider<MouseEvent> dragEndEvent =
- const EventStreamProvider<MouseEvent>('dragend');
-
- /**
- * A stream of `dragenter` events fired when a dragged object is first dragged
- * over an element.
- *
- * ## Other resources
- *
- * * [Drag and drop
- * sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
- * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
- * from HTML5Rocks.
- * * [Drag and drop
- * specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
- * from WHATWG.
- */
- @DomName('Element.dragenterEvent')
- @DocsEditable()
- static const EventStreamProvider<MouseEvent> dragEnterEvent =
- const EventStreamProvider<MouseEvent>('dragenter');
-
- /**
- * A stream of `dragleave` events fired when an object being dragged over an
- * element leaves the element's target area.
- *
- * ## Other resources
- *
- * * [Drag and drop
- * sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
- * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
- * from HTML5Rocks.
- * * [Drag and drop
- * specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
- * from WHATWG.
- */
- @DomName('Element.dragleaveEvent')
- @DocsEditable()
- static const EventStreamProvider<MouseEvent> dragLeaveEvent =
- const EventStreamProvider<MouseEvent>('dragleave');
-
- /**
- * A stream of `dragover` events fired when a dragged object is currently
- * being dragged over an element.
- *
- * ## Other resources
- *
- * * [Drag and drop
- * sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
- * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
- * from HTML5Rocks.
- * * [Drag and drop
- * specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
- * from WHATWG.
- */
- @DomName('Element.dragoverEvent')
- @DocsEditable()
- static const EventStreamProvider<MouseEvent> dragOverEvent =
- const EventStreamProvider<MouseEvent>('dragover');
-
- /**
- * A stream of `dragstart` events for a dragged element whose drag has begun.
- *
- * ## Other resources
- *
- * * [Drag and drop
- * sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
- * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
- * from HTML5Rocks.
- * * [Drag and drop
- * specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
- * from WHATWG.
- */
- @DomName('Element.dragstartEvent')
- @DocsEditable()
- static const EventStreamProvider<MouseEvent> dragStartEvent =
- const EventStreamProvider<MouseEvent>('dragstart');
-
- /**
- * A stream of `drop` events fired when a dragged object is dropped on an
- * element.
- *
- * ## Other resources
- *
- * * [Drag and drop
- * sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
- * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
- * from HTML5Rocks.
- * * [Drag and drop
- * specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
- * from WHATWG.
- */
- @DomName('Element.dropEvent')
- @DocsEditable()
- static const EventStreamProvider<MouseEvent> dropEvent =
- const EventStreamProvider<MouseEvent>('drop');
-
- @DomName('Element.durationchangeEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> durationChangeEvent =
- const EventStreamProvider<Event>('durationchange');
-
- @DomName('Element.emptiedEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> emptiedEvent =
- const EventStreamProvider<Event>('emptied');
-
- @DomName('Element.endedEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> endedEvent =
- const EventStreamProvider<Event>('ended');
-
- /**
- * Static factory designed to expose `error` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.errorEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> errorEvent =
- const EventStreamProvider<Event>('error');
-
- /**
- * Static factory designed to expose `focus` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.focusEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> focusEvent =
- const EventStreamProvider<Event>('focus');
-
- /**
- * Static factory designed to expose `input` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.inputEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> inputEvent =
- const EventStreamProvider<Event>('input');
-
- /**
- * Static factory designed to expose `invalid` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.invalidEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> invalidEvent =
- const EventStreamProvider<Event>('invalid');
-
- /**
- * Static factory designed to expose `keydown` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.keydownEvent')
- @DocsEditable()
- static const EventStreamProvider<KeyboardEvent> keyDownEvent =
- const EventStreamProvider<KeyboardEvent>('keydown');
-
- /**
- * Static factory designed to expose `keypress` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.keypressEvent')
- @DocsEditable()
- static const EventStreamProvider<KeyboardEvent> keyPressEvent =
- const EventStreamProvider<KeyboardEvent>('keypress');
-
- /**
- * Static factory designed to expose `keyup` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.keyupEvent')
- @DocsEditable()
- static const EventStreamProvider<KeyboardEvent> keyUpEvent =
- const EventStreamProvider<KeyboardEvent>('keyup');
-
- /**
- * Static factory designed to expose `load` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.loadEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> loadEvent =
- const EventStreamProvider<Event>('load');
-
- @DomName('Element.loadeddataEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> loadedDataEvent =
- const EventStreamProvider<Event>('loadeddata');
-
- @DomName('Element.loadedmetadataEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> loadedMetadataEvent =
- const EventStreamProvider<Event>('loadedmetadata');
-
- /**
- * Static factory designed to expose `mousedown` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.mousedownEvent')
- @DocsEditable()
- static const EventStreamProvider<MouseEvent> mouseDownEvent =
- const EventStreamProvider<MouseEvent>('mousedown');
-
- /**
- * Static factory designed to expose `mouseenter` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.mouseenterEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MouseEvent> mouseEnterEvent =
- const EventStreamProvider<MouseEvent>('mouseenter');
-
- /**
- * Static factory designed to expose `mouseleave` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.mouseleaveEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MouseEvent> mouseLeaveEvent =
- const EventStreamProvider<MouseEvent>('mouseleave');
-
- /**
- * Static factory designed to expose `mousemove` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.mousemoveEvent')
- @DocsEditable()
- static const EventStreamProvider<MouseEvent> mouseMoveEvent =
- const EventStreamProvider<MouseEvent>('mousemove');
-
- /**
- * Static factory designed to expose `mouseout` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.mouseoutEvent')
- @DocsEditable()
- static const EventStreamProvider<MouseEvent> mouseOutEvent =
- const EventStreamProvider<MouseEvent>('mouseout');
-
- /**
- * Static factory designed to expose `mouseover` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.mouseoverEvent')
- @DocsEditable()
- static const EventStreamProvider<MouseEvent> mouseOverEvent =
- const EventStreamProvider<MouseEvent>('mouseover');
-
- /**
- * Static factory designed to expose `mouseup` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.mouseupEvent')
- @DocsEditable()
- static const EventStreamProvider<MouseEvent> mouseUpEvent =
- const EventStreamProvider<MouseEvent>('mouseup');
-
- /**
- * Static factory designed to expose `paste` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.pasteEvent')
- @DocsEditable()
- static const EventStreamProvider<ClipboardEvent> pasteEvent =
- const EventStreamProvider<ClipboardEvent>('paste');
-
- @DomName('Element.pauseEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> pauseEvent =
- const EventStreamProvider<Event>('pause');
-
- @DomName('Element.playEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> playEvent =
- const EventStreamProvider<Event>('play');
-
- @DomName('Element.playingEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> playingEvent =
- const EventStreamProvider<Event>('playing');
-
- @DomName('Element.ratechangeEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> rateChangeEvent =
- const EventStreamProvider<Event>('ratechange');
-
- /**
- * Static factory designed to expose `reset` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.resetEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> resetEvent =
- const EventStreamProvider<Event>('reset');
-
- @DomName('Element.resizeEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> resizeEvent =
- const EventStreamProvider<Event>('resize');
-
- /**
- * Static factory designed to expose `scroll` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.scrollEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> scrollEvent =
- const EventStreamProvider<Event>('scroll');
-
- /**
- * Static factory designed to expose `search` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.searchEvent')
- @DocsEditable()
- // http://www.w3.org/TR/html-markup/input.search.html
- @Experimental()
- static const EventStreamProvider<Event> searchEvent =
- const EventStreamProvider<Event>('search');
-
- @DomName('Element.seekedEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> seekedEvent =
- const EventStreamProvider<Event>('seeked');
-
- @DomName('Element.seekingEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> seekingEvent =
- const EventStreamProvider<Event>('seeking');
-
- /**
- * Static factory designed to expose `select` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.selectEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> selectEvent =
- const EventStreamProvider<Event>('select');
-
- /**
- * Static factory designed to expose `selectstart` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.selectstartEvent')
- @DocsEditable()
- @Experimental() // nonstandard
- static const EventStreamProvider<Event> selectStartEvent =
- const EventStreamProvider<Event>('selectstart');
-
- @DomName('Element.stalledEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> stalledEvent =
- const EventStreamProvider<Event>('stalled');
-
- /**
- * Static factory designed to expose `submit` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.submitEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> submitEvent =
- const EventStreamProvider<Event>('submit');
-
- @DomName('Element.suspendEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> suspendEvent =
- const EventStreamProvider<Event>('suspend');
-
- @DomName('Element.timeupdateEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> timeUpdateEvent =
- const EventStreamProvider<Event>('timeupdate');
-
- /**
- * Static factory designed to expose `touchcancel` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.touchcancelEvent')
- @DocsEditable()
- // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
- @Experimental()
- static const EventStreamProvider<TouchEvent> touchCancelEvent =
- const EventStreamProvider<TouchEvent>('touchcancel');
-
- /**
- * Static factory designed to expose `touchend` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.touchendEvent')
- @DocsEditable()
- // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
- @Experimental()
- static const EventStreamProvider<TouchEvent> touchEndEvent =
- const EventStreamProvider<TouchEvent>('touchend');
-
- /**
- * Static factory designed to expose `touchenter` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.touchenterEvent')
- @DocsEditable()
- // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
- @Experimental()
- static const EventStreamProvider<TouchEvent> touchEnterEvent =
- const EventStreamProvider<TouchEvent>('touchenter');
-
- /**
- * Static factory designed to expose `touchleave` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.touchleaveEvent')
- @DocsEditable()
- // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
- @Experimental()
- static const EventStreamProvider<TouchEvent> touchLeaveEvent =
- const EventStreamProvider<TouchEvent>('touchleave');
-
- /**
- * Static factory designed to expose `touchmove` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.touchmoveEvent')
- @DocsEditable()
- // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
- @Experimental()
- static const EventStreamProvider<TouchEvent> touchMoveEvent =
- const EventStreamProvider<TouchEvent>('touchmove');
-
- /**
- * Static factory designed to expose `touchstart` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.touchstartEvent')
- @DocsEditable()
- // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
- @Experimental()
- static const EventStreamProvider<TouchEvent> touchStartEvent =
- const EventStreamProvider<TouchEvent>('touchstart');
-
- @DomName('Element.volumechangeEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> volumeChangeEvent =
- const EventStreamProvider<Event>('volumechange');
-
- @DomName('Element.waitingEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> waitingEvent =
- const EventStreamProvider<Event>('waiting');
-
- /**
- * Static factory designed to expose `fullscreenchange` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.webkitfullscreenchangeEvent')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- // https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html
- static const EventStreamProvider<Event> fullscreenChangeEvent =
- const EventStreamProvider<Event>('webkitfullscreenchange');
-
- /**
- * Static factory designed to expose `fullscreenerror` events to event
- * handlers that are not necessarily instances of [Element].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Element.webkitfullscreenerrorEvent')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- // https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html
- static const EventStreamProvider<Event> fullscreenErrorEvent =
- const EventStreamProvider<Event>('webkitfullscreenerror');
-
- @DomName('Element.contentEditable')
- @DocsEditable()
- String contentEditable;
-
- @DomName('Element.contextMenu')
- @DocsEditable()
- @Experimental() // untriaged
- MenuElement contextMenu;
-
- @DomName('Element.dir')
- @DocsEditable()
- String dir;
-
- /**
- * Indicates whether the element can be dragged and dropped.
- *
- * ## Other resources
- *
- * * [Drag and drop
- * sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
- * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
- * from HTML5Rocks.
- * * [Drag and drop
- * specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
- * from WHATWG.
- */
- @DomName('Element.draggable')
- @DocsEditable()
- bool draggable;
-
- /**
- * Indicates whether the element is not relevant to the page's current state.
- *
- * ## Other resources
- *
- * * [Hidden attribute
- * specification](https://html.spec.whatwg.org/multipage/interaction.html#the-hidden-attribute)
- * from WHATWG.
- */
- @DomName('Element.hidden')
- @DocsEditable()
- bool hidden;
-
- // Using property as subclass shadows.
- bool get isContentEditable => JS("bool", "#.isContentEditable", this);
-
- @DomName('Element.lang')
- @DocsEditable()
- String lang;
-
- @DomName('Element.spellcheck')
- @DocsEditable()
- // http://blog.whatwg.org/the-road-to-html-5-spellchecking
- @Experimental() // nonstandard
- bool spellcheck;
-
- @DomName('Element.style')
- @DocsEditable()
- final CssStyleDeclaration style;
-
- @DomName('Element.tabIndex')
- @DocsEditable()
- int tabIndex;
-
- @DomName('Element.title')
- @DocsEditable()
- String title;
-
- /**
- * Specifies whether this element's text content changes when the page is
- * localized.
- *
- * ## Other resources
- *
- * * [The translate
- * attribute](https://html.spec.whatwg.org/multipage/dom.html#the-translate-attribute)
- * from WHATWG.
- */
- @DomName('Element.translate')
- @DocsEditable()
- // http://www.whatwg.org/specs/web-apps/current-work/multipage/elements.html#the-translate-attribute
- @Experimental()
- bool translate;
-
- @JSName('webkitdropzone')
- /**
- * A set of space-separated keywords that specify what kind of data this
- * Element accepts on drop and what to do with that data.
- *
- * ## Other resources
- *
- * * [Drag and drop
- * sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
- * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
- * from HTML5Rocks.
- * * [Drag and drop
- * specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
- * from WHATWG.
- */
- @DomName('Element.webkitdropzone')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- // http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#the-dropzone-attribute
- String dropzone;
-
- @DomName('Element.blur')
- @DocsEditable()
- void blur() native;
-
- @DomName('Element.click')
- @DocsEditable()
- void click() native;
-
- @DomName('Element.focus')
- @DocsEditable()
- void focus() native;
-
- @DomName('Element.assignedSlot')
- @DocsEditable()
- @Experimental() // untriaged
- final SlotElement assignedSlot;
-
- @JSName('attributes')
- @DomName('Element.attributes')
- @DocsEditable()
- final _NamedNodeMap _attributes;
-
- @DomName('Element.className')
- @DocsEditable()
- String className;
-
- @DomName('Element.clientHeight')
- @DocsEditable()
- final int clientHeight;
-
- @DomName('Element.clientLeft')
- @DocsEditable()
- final int clientLeft;
-
- @DomName('Element.clientTop')
- @DocsEditable()
- final int clientTop;
-
- @DomName('Element.clientWidth')
- @DocsEditable()
- final int clientWidth;
-
- @DomName('Element.computedName')
- @DocsEditable()
- @Experimental() // untriaged
- final String computedName;
-
- @DomName('Element.computedRole')
- @DocsEditable()
- @Experimental() // untriaged
- final String computedRole;
-
- @DomName('Element.id')
- @DocsEditable()
- String id;
-
- @JSName('innerHTML')
- @DomName('Element.innerHTML')
- @DocsEditable()
- String _innerHtml;
-
- @JSName('localName')
- @DomName('Element.localName')
- @DocsEditable()
- @Experimental() // untriaged
- final String _localName;
-
- @JSName('namespaceURI')
- @DomName('Element.namespaceURI')
- @DocsEditable()
- @Experimental() // untriaged
- final String _namespaceUri;
-
- // Using property as subclass shadows.
- String get outerHtml => JS("String", "#.outerHTML", this);
-
- @JSName('scrollHeight')
- @DomName('Element.scrollHeight')
- @DocsEditable()
- final int _scrollHeight;
-
- @JSName('scrollLeft')
- @DomName('Element.scrollLeft')
- @DocsEditable()
- num _scrollLeft;
-
- @JSName('scrollTop')
- @DomName('Element.scrollTop')
- @DocsEditable()
- num _scrollTop;
-
- @JSName('scrollWidth')
- @DomName('Element.scrollWidth')
- @DocsEditable()
- final int _scrollWidth;
-
- @DomName('Element.slot')
- @DocsEditable()
- @Experimental() // untriaged
- String slot;
-
- @DomName('Element.tagName')
- @DocsEditable()
- final String tagName;
-
- @DomName('Element.attachShadow')
- @DocsEditable()
- @Experimental() // untriaged
- ShadowRoot attachShadow(Map shadowRootInitDict) {
- var shadowRootInitDict_1 =
- convertDartToNative_Dictionary(shadowRootInitDict);
- return _attachShadow_1(shadowRootInitDict_1);
- }
-
- @JSName('attachShadow')
- @DomName('Element.attachShadow')
- @DocsEditable()
- @Experimental() // untriaged
- ShadowRoot _attachShadow_1(shadowRootInitDict) native;
-
- @DomName('Element.closest')
- @DocsEditable()
- @Experimental() // untriaged
- Element closest(String selectors) native;
-
- @DomName('Element.getAnimations')
- @DocsEditable()
- @Experimental() // untriaged
- List<Animation> getAnimations() native;
-
- @DomName('Element.getAttribute')
- @DocsEditable()
- @Experimental() // untriaged
- String getAttribute(String name) native;
-
- @DomName('Element.getAttributeNS')
- @DocsEditable()
- @Experimental() // untriaged
- String getAttributeNS(String namespaceURI, String localName) native;
-
- /**
- * Returns the smallest bounding rectangle that encompasses this element's
- * padding, scrollbar, and border.
- *
- * ## Other resources
- *
- * * [Element.getBoundingClientRect](https://developer.mozilla.org/en-US/docs/Web/API/Element.getBoundingClientRect)
- * from MDN.
- * * [The getBoundingClientRect()
- * method](http://www.w3.org/TR/cssom-view/#the-getclientrects()-and-getboundingclientrect()-methods)
- * from W3C.
- */
- @DomName('Element.getBoundingClientRect')
- @DocsEditable()
- @Creates('_ClientRect')
- @Returns('_ClientRect|Null')
- Rectangle getBoundingClientRect() native;
-
- /**
- * Returns a list of bounding rectangles for each box associated with this
- * element.
- *
- * ## Other resources
- *
- * * [Element.getClientRects](https://developer.mozilla.org/en-US/docs/Web/API/Element.getClientRects)
- * from MDN.
- * * [The getClientRects()
- * method](http://www.w3.org/TR/cssom-view/#the-getclientrects()-and-getboundingclientrect()-methods)
- * from W3C.
- */
- @DomName('Element.getClientRects')
- @DocsEditable()
- @Returns('_ClientRectList|Null')
- @Creates('_ClientRectList')
- List<Rectangle> getClientRects() native;
-
- /**
- * Returns a list of shadow DOM insertion points to which this element is
- * distributed.
- *
- * ## Other resources
- *
- * * [Shadow DOM
- * specification](https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html)
- * from W3C.
- */
- @DomName('Element.getDestinationInsertionPoints')
- @DocsEditable()
- @Experimental() // untriaged
- @Returns('NodeList|Null')
- @Creates('NodeList')
- List<Node> getDestinationInsertionPoints() native;
-
- /**
- * Returns a list of nodes with the given class name inside this element.
- *
- * ## Other resources
- *
- * * [getElementsByClassName](https://developer.mozilla.org/en-US/docs/Web/API/document.getElementsByClassName)
- * from MDN.
- * * [DOM specification](http://www.w3.org/TR/domcore/) from W3C.
- */
- @DomName('Element.getElementsByClassName')
- @DocsEditable()
- @Creates('NodeList|HtmlCollection')
- @Returns('NodeList|HtmlCollection')
- List<Node> getElementsByClassName(String classNames) native;
-
- @JSName('getElementsByTagName')
- @DomName('Element.getElementsByTagName')
- @DocsEditable()
- @Creates('NodeList|HtmlCollection')
- @Returns('NodeList|HtmlCollection')
- List<Node> _getElementsByTagName(String localName) native;
-
- @JSName('hasAttribute')
- @DomName('Element.hasAttribute')
- @DocsEditable()
- bool _hasAttribute(String name) native;
-
- @JSName('hasAttributeNS')
- @DomName('Element.hasAttributeNS')
- @DocsEditable()
- bool _hasAttributeNS(String namespaceURI, String localName) native;
-
- @JSName('removeAttribute')
- @DomName('Element.removeAttribute')
- @DocsEditable()
- void _removeAttribute(String name) native;
-
- @JSName('removeAttributeNS')
- @DomName('Element.removeAttributeNS')
- @DocsEditable()
- void _removeAttributeNS(String namespaceURI, String localName) native;
-
- @DomName('Element.requestFullscreen')
- @DocsEditable()
- @Experimental() // untriaged
- void requestFullscreen() native;
-
- @DomName('Element.requestPointerLock')
- @DocsEditable()
- @Experimental() // untriaged
- void requestPointerLock() native;
-
- @DomName('Element.scroll')
- @DocsEditable()
- @Experimental() // untriaged
- void scroll([options_OR_x, num y]) {
- if (options_OR_x == null && y == null) {
- _scroll_1();
- return;
- }
- if ((options_OR_x is Map) && y == null) {
- var options_1 = convertDartToNative_Dictionary(options_OR_x);
- _scroll_2(options_1);
- return;
- }
- if (y != null && (options_OR_x is num)) {
- _scroll_3(options_OR_x, y);
- return;
- }
- throw new ArgumentError("Incorrect number or type of arguments");
- }
-
- @JSName('scroll')
- @DomName('Element.scroll')
- @DocsEditable()
- @Experimental() // untriaged
- void _scroll_1() native;
- @JSName('scroll')
- @DomName('Element.scroll')
- @DocsEditable()
- @Experimental() // untriaged
- void _scroll_2(options) native;
- @JSName('scroll')
- @DomName('Element.scroll')
- @DocsEditable()
- @Experimental() // untriaged
- void _scroll_3(num x, y) native;
-
- @DomName('Element.scrollBy')
- @DocsEditable()
- @Experimental() // untriaged
- void scrollBy([options_OR_x, num y]) {
- if (options_OR_x == null && y == null) {
- _scrollBy_1();
- return;
- }
- if ((options_OR_x is Map) && y == null) {
- var options_1 = convertDartToNative_Dictionary(options_OR_x);
- _scrollBy_2(options_1);
- return;
- }
- if (y != null && (options_OR_x is num)) {
- _scrollBy_3(options_OR_x, y);
- return;
- }
- throw new ArgumentError("Incorrect number or type of arguments");
- }
-
- @JSName('scrollBy')
- @DomName('Element.scrollBy')
- @DocsEditable()
- @Experimental() // untriaged
- void _scrollBy_1() native;
- @JSName('scrollBy')
- @DomName('Element.scrollBy')
- @DocsEditable()
- @Experimental() // untriaged
- void _scrollBy_2(options) native;
- @JSName('scrollBy')
- @DomName('Element.scrollBy')
- @DocsEditable()
- @Experimental() // untriaged
- void _scrollBy_3(num x, y) native;
-
- @JSName('scrollIntoView')
- @DomName('Element.scrollIntoView')
- @DocsEditable()
- void _scrollIntoView([bool alignWithTop]) native;
-
- @JSName('scrollIntoViewIfNeeded')
- @DomName('Element.scrollIntoViewIfNeeded')
- @DocsEditable()
- // http://docs.webplatform.org/wiki/dom/methods/scrollIntoViewIfNeeded
- @Experimental() // non-standard
- void _scrollIntoViewIfNeeded([bool centerIfNeeded]) native;
-
- @DomName('Element.scrollTo')
- @DocsEditable()
- @Experimental() // untriaged
- void scrollTo([options_OR_x, num y]) {
- if (options_OR_x == null && y == null) {
- _scrollTo_1();
- return;
- }
- if ((options_OR_x is Map) && y == null) {
- var options_1 = convertDartToNative_Dictionary(options_OR_x);
- _scrollTo_2(options_1);
- return;
- }
- if (y != null && (options_OR_x is num)) {
- _scrollTo_3(options_OR_x, y);
- return;
- }
- throw new ArgumentError("Incorrect number or type of arguments");
- }
-
- @JSName('scrollTo')
- @DomName('Element.scrollTo')
- @DocsEditable()
- @Experimental() // untriaged
- void _scrollTo_1() native;
- @JSName('scrollTo')
- @DomName('Element.scrollTo')
- @DocsEditable()
- @Experimental() // untriaged
- void _scrollTo_2(options) native;
- @JSName('scrollTo')
- @DomName('Element.scrollTo')
- @DocsEditable()
- @Experimental() // untriaged
- void _scrollTo_3(num x, y) native;
-
- @DomName('Element.setApplyScroll')
- @DocsEditable()
- @Experimental() // untriaged
- void setApplyScroll(ScrollStateCallback scrollStateCallback,
- String nativeScrollBehavior) native;
-
- @DomName('Element.setAttribute')
- @DocsEditable()
- void setAttribute(String name, String value) native;
-
- @DomName('Element.setAttributeNS')
- @DocsEditable()
- void setAttributeNS(String namespaceURI, String name, String value) native;
-
- @DomName('Element.setDistributeScroll')
- @DocsEditable()
- @Experimental() // untriaged
- void setDistributeScroll(ScrollStateCallback scrollStateCallback,
- String nativeScrollBehavior) native;
-
- // From ChildNode
-
- // From NonDocumentTypeChildNode
-
- @DomName('Element.nextElementSibling')
- @DocsEditable()
- final Element nextElementSibling;
-
- @DomName('Element.previousElementSibling')
- @DocsEditable()
- final Element previousElementSibling;
-
- // From ParentNode
-
- @JSName('childElementCount')
- @DomName('Element.childElementCount')
- @DocsEditable()
- final int _childElementCount;
-
- @JSName('children')
- @DomName('Element.children')
- @DocsEditable()
- @Returns('HtmlCollection|Null')
- @Creates('HtmlCollection')
- final List<Node> _children;
-
- @JSName('firstElementChild')
- @DomName('Element.firstElementChild')
- @DocsEditable()
- final Element _firstElementChild;
-
- @JSName('lastElementChild')
- @DomName('Element.lastElementChild')
- @DocsEditable()
- final Element _lastElementChild;
-
- /**
- * Finds the first descendant element of this element that matches the
- * specified group of selectors.
- *
- * [selectors] should be a string using CSS selector syntax.
- *
- * // Gets the first descendant with the class 'classname'
- * var element = element.querySelector('.className');
- * // Gets the element with id 'id'
- * var element = element.querySelector('#id');
- * // Gets the first descendant [ImageElement]
- * var img = element.querySelector('img');
- *
- * For details about CSS selector syntax, see the
- * [CSS selector specification](http://www.w3.org/TR/css3-selectors/).
- */
- @DomName('Element.querySelector')
- @DocsEditable()
- Element querySelector(String selectors) native;
-
- @JSName('querySelectorAll')
- @DomName('Element.querySelectorAll')
- @DocsEditable()
- @Creates('NodeList')
- @Returns('NodeList')
- List<Node> _querySelectorAll(String selectors) native;
-
- /// Stream of `abort` events handled by this [Element].
- @DomName('Element.onabort')
- @DocsEditable()
- ElementStream<Event> get onAbort => abortEvent.forElement(this);
-
- /// Stream of `beforecopy` events handled by this [Element].
- @DomName('Element.onbeforecopy')
- @DocsEditable()
- ElementStream<Event> get onBeforeCopy => beforeCopyEvent.forElement(this);
-
- /// Stream of `beforecut` events handled by this [Element].
- @DomName('Element.onbeforecut')
- @DocsEditable()
- ElementStream<Event> get onBeforeCut => beforeCutEvent.forElement(this);
-
- /// Stream of `beforepaste` events handled by this [Element].
- @DomName('Element.onbeforepaste')
- @DocsEditable()
- ElementStream<Event> get onBeforePaste => beforePasteEvent.forElement(this);
-
- /// Stream of `blur` events handled by this [Element].
- @DomName('Element.onblur')
- @DocsEditable()
- ElementStream<Event> get onBlur => blurEvent.forElement(this);
-
- @DomName('Element.oncanplay')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onCanPlay => canPlayEvent.forElement(this);
-
- @DomName('Element.oncanplaythrough')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onCanPlayThrough =>
- canPlayThroughEvent.forElement(this);
-
- /// Stream of `change` events handled by this [Element].
- @DomName('Element.onchange')
- @DocsEditable()
- ElementStream<Event> get onChange => changeEvent.forElement(this);
-
- /// Stream of `click` events handled by this [Element].
- @DomName('Element.onclick')
- @DocsEditable()
- ElementStream<MouseEvent> get onClick => clickEvent.forElement(this);
-
- /// Stream of `contextmenu` events handled by this [Element].
- @DomName('Element.oncontextmenu')
- @DocsEditable()
- ElementStream<MouseEvent> get onContextMenu =>
- contextMenuEvent.forElement(this);
-
- /// Stream of `copy` events handled by this [Element].
- @DomName('Element.oncopy')
- @DocsEditable()
- ElementStream<ClipboardEvent> get onCopy => copyEvent.forElement(this);
-
- /// Stream of `cut` events handled by this [Element].
- @DomName('Element.oncut')
- @DocsEditable()
- ElementStream<ClipboardEvent> get onCut => cutEvent.forElement(this);
-
- /// Stream of `doubleclick` events handled by this [Element].
- @DomName('Element.ondblclick')
- @DocsEditable()
- ElementStream<Event> get onDoubleClick => doubleClickEvent.forElement(this);
-
- /**
- * A stream of `drag` events fired when this element currently being dragged.
- *
- * A `drag` event is added to this stream as soon as the drag begins.
- * A `drag` event is also added to this stream at intervals while the drag
- * operation is still ongoing.
- *
- * ## Other resources
- *
- * * [Drag and drop
- * sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
- * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
- * from HTML5Rocks.
- * * [Drag and drop
- * specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
- * from WHATWG.
- */
- @DomName('Element.ondrag')
- @DocsEditable()
- ElementStream<MouseEvent> get onDrag => dragEvent.forElement(this);
-
- /**
- * A stream of `dragend` events fired when this element completes a drag
- * operation.
- *
- * ## Other resources
- *
- * * [Drag and drop
- * sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
- * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
- * from HTML5Rocks.
- * * [Drag and drop
- * specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
- * from WHATWG.
- */
- @DomName('Element.ondragend')
- @DocsEditable()
- ElementStream<MouseEvent> get onDragEnd => dragEndEvent.forElement(this);
-
- /**
- * A stream of `dragenter` events fired when a dragged object is first dragged
- * over this element.
- *
- * ## Other resources
- *
- * * [Drag and drop
- * sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
- * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
- * from HTML5Rocks.
- * * [Drag and drop
- * specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
- * from WHATWG.
- */
- @DomName('Element.ondragenter')
- @DocsEditable()
- ElementStream<MouseEvent> get onDragEnter => dragEnterEvent.forElement(this);
-
- /**
- * A stream of `dragleave` events fired when an object being dragged over this
- * element leaves this element's target area.
- *
- * ## Other resources
- *
- * * [Drag and drop
- * sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
- * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
- * from HTML5Rocks.
- * * [Drag and drop
- * specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
- * from WHATWG.
- */
- @DomName('Element.ondragleave')
- @DocsEditable()
- ElementStream<MouseEvent> get onDragLeave => dragLeaveEvent.forElement(this);
-
- /**
- * A stream of `dragover` events fired when a dragged object is currently
- * being dragged over this element.
- *
- * ## Other resources
- *
- * * [Drag and drop
- * sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
- * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
- * from HTML5Rocks.
- * * [Drag and drop
- * specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
- * from WHATWG.
- */
- @DomName('Element.ondragover')
- @DocsEditable()
- ElementStream<MouseEvent> get onDragOver => dragOverEvent.forElement(this);
-
- /**
- * A stream of `dragstart` events fired when this element starts being
- * dragged.
- *
- * ## Other resources
- *
- * * [Drag and drop
- * sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
- * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
- * from HTML5Rocks.
- * * [Drag and drop
- * specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
- * from WHATWG.
- */
- @DomName('Element.ondragstart')
- @DocsEditable()
- ElementStream<MouseEvent> get onDragStart => dragStartEvent.forElement(this);
-
- /**
- * A stream of `drop` events fired when a dragged object is dropped on this
- * element.
- *
- * ## Other resources
- *
- * * [Drag and drop
- * sample](https://github.com/dart-lang/dart-samples/tree/master/html5/web/dnd/basics)
- * based on [the tutorial](http://www.html5rocks.com/en/tutorials/dnd/basics/)
- * from HTML5Rocks.
- * * [Drag and drop
- * specification](https://html.spec.whatwg.org/multipage/interaction.html#dnd)
- * from WHATWG.
- */
- @DomName('Element.ondrop')
- @DocsEditable()
- ElementStream<MouseEvent> get onDrop => dropEvent.forElement(this);
-
- @DomName('Element.ondurationchange')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onDurationChange =>
- durationChangeEvent.forElement(this);
-
- @DomName('Element.onemptied')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onEmptied => emptiedEvent.forElement(this);
-
- @DomName('Element.onended')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onEnded => endedEvent.forElement(this);
-
- /// Stream of `error` events handled by this [Element].
- @DomName('Element.onerror')
- @DocsEditable()
- ElementStream<Event> get onError => errorEvent.forElement(this);
-
- /// Stream of `focus` events handled by this [Element].
- @DomName('Element.onfocus')
- @DocsEditable()
- ElementStream<Event> get onFocus => focusEvent.forElement(this);
-
- /// Stream of `input` events handled by this [Element].
- @DomName('Element.oninput')
- @DocsEditable()
- ElementStream<Event> get onInput => inputEvent.forElement(this);
-
- /// Stream of `invalid` events handled by this [Element].
- @DomName('Element.oninvalid')
- @DocsEditable()
- ElementStream<Event> get onInvalid => invalidEvent.forElement(this);
-
- /// Stream of `keydown` events handled by this [Element].
- @DomName('Element.onkeydown')
- @DocsEditable()
- ElementStream<KeyboardEvent> get onKeyDown => keyDownEvent.forElement(this);
-
- /// Stream of `keypress` events handled by this [Element].
- @DomName('Element.onkeypress')
- @DocsEditable()
- ElementStream<KeyboardEvent> get onKeyPress => keyPressEvent.forElement(this);
-
- /// Stream of `keyup` events handled by this [Element].
- @DomName('Element.onkeyup')
- @DocsEditable()
- ElementStream<KeyboardEvent> get onKeyUp => keyUpEvent.forElement(this);
-
- /// Stream of `load` events handled by this [Element].
- @DomName('Element.onload')
- @DocsEditable()
- ElementStream<Event> get onLoad => loadEvent.forElement(this);
-
- @DomName('Element.onloadeddata')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onLoadedData => loadedDataEvent.forElement(this);
-
- @DomName('Element.onloadedmetadata')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onLoadedMetadata =>
- loadedMetadataEvent.forElement(this);
-
- /// Stream of `mousedown` events handled by this [Element].
- @DomName('Element.onmousedown')
- @DocsEditable()
- ElementStream<MouseEvent> get onMouseDown => mouseDownEvent.forElement(this);
-
- /// Stream of `mouseenter` events handled by this [Element].
- @DomName('Element.onmouseenter')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<MouseEvent> get onMouseEnter =>
- mouseEnterEvent.forElement(this);
-
- /// Stream of `mouseleave` events handled by this [Element].
- @DomName('Element.onmouseleave')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<MouseEvent> get onMouseLeave =>
- mouseLeaveEvent.forElement(this);
-
- /// Stream of `mousemove` events handled by this [Element].
- @DomName('Element.onmousemove')
- @DocsEditable()
- ElementStream<MouseEvent> get onMouseMove => mouseMoveEvent.forElement(this);
-
- /// Stream of `mouseout` events handled by this [Element].
- @DomName('Element.onmouseout')
- @DocsEditable()
- ElementStream<MouseEvent> get onMouseOut => mouseOutEvent.forElement(this);
-
- /// Stream of `mouseover` events handled by this [Element].
- @DomName('Element.onmouseover')
- @DocsEditable()
- ElementStream<MouseEvent> get onMouseOver => mouseOverEvent.forElement(this);
-
- /// Stream of `mouseup` events handled by this [Element].
- @DomName('Element.onmouseup')
- @DocsEditable()
- ElementStream<MouseEvent> get onMouseUp => mouseUpEvent.forElement(this);
-
- /// Stream of `mousewheel` events handled by this [Element].
- @DomName('Element.onmousewheel')
- @DocsEditable()
- // http://www.w3.org/TR/DOM-Level-3-Events/#events-wheelevents
- @Experimental() // non-standard
- ElementStream<WheelEvent> get onMouseWheel =>
- mouseWheelEvent.forElement(this);
-
- /// Stream of `paste` events handled by this [Element].
- @DomName('Element.onpaste')
- @DocsEditable()
- ElementStream<ClipboardEvent> get onPaste => pasteEvent.forElement(this);
-
- @DomName('Element.onpause')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onPause => pauseEvent.forElement(this);
-
- @DomName('Element.onplay')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onPlay => playEvent.forElement(this);
-
- @DomName('Element.onplaying')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onPlaying => playingEvent.forElement(this);
-
- @DomName('Element.onratechange')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onRateChange => rateChangeEvent.forElement(this);
-
- /// Stream of `reset` events handled by this [Element].
- @DomName('Element.onreset')
- @DocsEditable()
- ElementStream<Event> get onReset => resetEvent.forElement(this);
-
- @DomName('Element.onresize')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onResize => resizeEvent.forElement(this);
-
- /// Stream of `scroll` events handled by this [Element].
- @DomName('Element.onscroll')
- @DocsEditable()
- ElementStream<Event> get onScroll => scrollEvent.forElement(this);
-
- /// Stream of `search` events handled by this [Element].
- @DomName('Element.onsearch')
- @DocsEditable()
- // http://www.w3.org/TR/html-markup/input.search.html
- @Experimental()
- ElementStream<Event> get onSearch => searchEvent.forElement(this);
-
- @DomName('Element.onseeked')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onSeeked => seekedEvent.forElement(this);
-
- @DomName('Element.onseeking')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onSeeking => seekingEvent.forElement(this);
-
- /// Stream of `select` events handled by this [Element].
- @DomName('Element.onselect')
- @DocsEditable()
- ElementStream<Event> get onSelect => selectEvent.forElement(this);
-
- /// Stream of `selectstart` events handled by this [Element].
- @DomName('Element.onselectstart')
- @DocsEditable()
- @Experimental() // nonstandard
- ElementStream<Event> get onSelectStart => selectStartEvent.forElement(this);
-
- @DomName('Element.onstalled')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onStalled => stalledEvent.forElement(this);
-
- /// Stream of `submit` events handled by this [Element].
- @DomName('Element.onsubmit')
- @DocsEditable()
- ElementStream<Event> get onSubmit => submitEvent.forElement(this);
-
- @DomName('Element.onsuspend')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onSuspend => suspendEvent.forElement(this);
-
- @DomName('Element.ontimeupdate')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onTimeUpdate => timeUpdateEvent.forElement(this);
-
- /// Stream of `touchcancel` events handled by this [Element].
- @DomName('Element.ontouchcancel')
- @DocsEditable()
- // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
- @Experimental()
- ElementStream<TouchEvent> get onTouchCancel =>
- touchCancelEvent.forElement(this);
-
- /// Stream of `touchend` events handled by this [Element].
- @DomName('Element.ontouchend')
- @DocsEditable()
- // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
- @Experimental()
- ElementStream<TouchEvent> get onTouchEnd => touchEndEvent.forElement(this);
-
- /// Stream of `touchenter` events handled by this [Element].
- @DomName('Element.ontouchenter')
- @DocsEditable()
- // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
- @Experimental()
- ElementStream<TouchEvent> get onTouchEnter =>
- touchEnterEvent.forElement(this);
-
- /// Stream of `touchleave` events handled by this [Element].
- @DomName('Element.ontouchleave')
- @DocsEditable()
- // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
- @Experimental()
- ElementStream<TouchEvent> get onTouchLeave =>
- touchLeaveEvent.forElement(this);
-
- /// Stream of `touchmove` events handled by this [Element].
- @DomName('Element.ontouchmove')
- @DocsEditable()
- // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
- @Experimental()
- ElementStream<TouchEvent> get onTouchMove => touchMoveEvent.forElement(this);
-
- /// Stream of `touchstart` events handled by this [Element].
- @DomName('Element.ontouchstart')
- @DocsEditable()
- // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
- @Experimental()
- ElementStream<TouchEvent> get onTouchStart =>
- touchStartEvent.forElement(this);
-
- /// Stream of `transitionend` events handled by this [Element].
- @DomName('Element.ontransitionend')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.FIREFOX)
- @SupportedBrowser(SupportedBrowser.IE, '10')
- @SupportedBrowser(SupportedBrowser.SAFARI)
- ElementStream<TransitionEvent> get onTransitionEnd =>
- transitionEndEvent.forElement(this);
-
- @DomName('Element.onvolumechange')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onVolumeChange => volumeChangeEvent.forElement(this);
-
- @DomName('Element.onwaiting')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onWaiting => waitingEvent.forElement(this);
-
- /// Stream of `fullscreenchange` events handled by this [Element].
- @DomName('Element.onwebkitfullscreenchange')
- @DocsEditable()
- // https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html
- @Experimental()
- ElementStream<Event> get onFullscreenChange =>
- fullscreenChangeEvent.forElement(this);
-
- /// Stream of `fullscreenerror` events handled by this [Element].
- @DomName('Element.onwebkitfullscreenerror')
- @DocsEditable()
- // https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html
- @Experimental()
- ElementStream<Event> get onFullscreenError =>
- fullscreenErrorEvent.forElement(this);
-}
-
-class _ElementFactoryProvider {
- @DomName('Document.createElement')
- // Optimization to improve performance until the dart2js compiler inlines this
- // method.
- static dynamic createElement_tag(String tag, String typeExtension) {
- // Firefox may return a JS function for some types (Embed, Object).
- if (typeExtension != null) {
- return JS('Element|=Object', 'document.createElement(#, #)', tag,
- typeExtension);
- }
- // Should be able to eliminate this and just call the two-arg version above
- // with null typeExtension, but Chrome treats the tag as case-sensitive if
- // typeExtension is null.
- // https://code.google.com/p/chromium/issues/detail?id=282467
- return JS('Element|=Object', 'document.createElement(#)', tag);
- }
-}
-
-/**
- * Options for Element.scrollIntoView.
- */
-class ScrollAlignment {
- final _value;
- const ScrollAlignment._internal(this._value);
- toString() => 'ScrollAlignment.$_value';
-
- /// Attempt to align the element to the top of the scrollable area.
- static const TOP = const ScrollAlignment._internal('TOP');
-
- /// Attempt to center the element in the scrollable area.
- static const CENTER = const ScrollAlignment._internal('CENTER');
-
- /// Attempt to align the element to the bottom of the scrollable area.
- static const BOTTOM = const ScrollAlignment._internal('BOTTOM');
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLEmbedElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.IE)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("HTMLEmbedElement")
-class EmbedElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory EmbedElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLEmbedElement.HTMLEmbedElement')
- @DocsEditable()
- factory EmbedElement() => document.createElement("embed");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- EmbedElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported => Element.isTagSupported('embed');
-
- @DomName('HTMLEmbedElement.height')
- @DocsEditable()
- String height;
-
- @DomName('HTMLEmbedElement.name')
- @DocsEditable()
- String name;
-
- @DomName('HTMLEmbedElement.src')
- @DocsEditable()
- String src;
-
- @DomName('HTMLEmbedElement.type')
- @DocsEditable()
- String type;
-
- @DomName('HTMLEmbedElement.width')
- @DocsEditable()
- String width;
-
- @DomName('HTMLEmbedElement.__getter__')
- @DocsEditable()
- bool __getter__(index_OR_name) native;
-
- @DomName('HTMLEmbedElement.__setter__')
- @DocsEditable()
- void __setter__(index_OR_name, Node value) native;
-}
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('EntriesCallback')
-// http://www.w3.org/TR/file-system-api/#the-entriescallback-interface
-@Experimental()
-typedef void _EntriesCallback(List<Entry> entries);
-// 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.
-
-@DocsEditable()
-@DomName('Entry')
-// http://www.w3.org/TR/file-system-api/#the-entry-interface
-@Experimental()
-@Native("Entry")
-class Entry extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory Entry._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('Entry.filesystem')
- @DocsEditable()
- final FileSystem filesystem;
-
- @DomName('Entry.fullPath')
- @DocsEditable()
- final String fullPath;
-
- @DomName('Entry.isDirectory')
- @DocsEditable()
- final bool isDirectory;
-
- @DomName('Entry.isFile')
- @DocsEditable()
- final bool isFile;
-
- @DomName('Entry.name')
- @DocsEditable()
- final String name;
-
- @JSName('copyTo')
- @DomName('Entry.copyTo')
- @DocsEditable()
- void _copyTo(DirectoryEntry parent,
- {String name,
- _EntryCallback successCallback,
- _ErrorCallback errorCallback}) native;
-
- @JSName('copyTo')
- @DomName('Entry.copyTo')
- @DocsEditable()
- Future<Entry> copyTo(DirectoryEntry parent, {String name}) {
- var completer = new Completer<Entry>();
- _copyTo(parent, name: name, successCallback: (value) {
- completer.complete(value);
- }, errorCallback: (error) {
- completer.completeError(error);
- });
- return completer.future;
- }
-
- @JSName('getMetadata')
- @DomName('Entry.getMetadata')
- @DocsEditable()
- void _getMetadata(MetadataCallback successCallback,
- [_ErrorCallback errorCallback]) native;
-
- @JSName('getMetadata')
- @DomName('Entry.getMetadata')
- @DocsEditable()
- Future<Metadata> getMetadata() {
- var completer = new Completer<Metadata>();
- _getMetadata((value) {
- completer.complete(value);
- }, (error) {
- completer.completeError(error);
- });
- return completer.future;
- }
-
- @JSName('getParent')
- @DomName('Entry.getParent')
- @DocsEditable()
- void _getParent(
- [_EntryCallback successCallback, _ErrorCallback errorCallback]) native;
-
- @JSName('getParent')
- @DomName('Entry.getParent')
- @DocsEditable()
- Future<Entry> getParent() {
- var completer = new Completer<Entry>();
- _getParent((value) {
- completer.complete(value);
- }, (error) {
- completer.completeError(error);
- });
- return completer.future;
- }
-
- @JSName('moveTo')
- @DomName('Entry.moveTo')
- @DocsEditable()
- void _moveTo(DirectoryEntry parent,
- {String name,
- _EntryCallback successCallback,
- _ErrorCallback errorCallback}) native;
-
- @JSName('moveTo')
- @DomName('Entry.moveTo')
- @DocsEditable()
- Future<Entry> moveTo(DirectoryEntry parent, {String name}) {
- var completer = new Completer<Entry>();
- _moveTo(parent, name: name, successCallback: (value) {
- completer.complete(value);
- }, errorCallback: (error) {
- completer.completeError(error);
- });
- return completer.future;
- }
-
- @JSName('remove')
- @DomName('Entry.remove')
- @DocsEditable()
- void _remove(VoidCallback successCallback, [_ErrorCallback errorCallback])
- native;
-
- @JSName('remove')
- @DomName('Entry.remove')
- @DocsEditable()
- Future remove() {
- var completer = new Completer();
- _remove(() {
- completer.complete();
- }, (error) {
- completer.completeError(error);
- });
- return completer.future;
- }
-
- @JSName('toURL')
- @DomName('Entry.toURL')
- @DocsEditable()
- String toUrl() native;
-}
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('EntryCallback')
-// http://www.w3.org/TR/file-system-api/#the-entrycallback-interface
-@Experimental()
-typedef void _EntryCallback(Entry entry);
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('ErrorCallback')
-// http://www.w3.org/TR/file-system-api/#the-errorcallback-interface
-@Experimental()
-typedef void _ErrorCallback(FileError error);
-// 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.
-
-@DocsEditable()
-@DomName('ErrorEvent')
-@Unstable()
-@Native("ErrorEvent")
-class ErrorEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory ErrorEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('ErrorEvent.ErrorEvent')
- @DocsEditable()
- factory ErrorEvent(String type, [Map eventInitDict]) {
- if (eventInitDict != null) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return ErrorEvent._create_1(type, eventInitDict_1);
- }
- return ErrorEvent._create_2(type);
- }
- static ErrorEvent _create_1(type, eventInitDict) =>
- JS('ErrorEvent', 'new ErrorEvent(#,#)', type, eventInitDict);
- static ErrorEvent _create_2(type) =>
- JS('ErrorEvent', 'new ErrorEvent(#)', type);
-
- @DomName('ErrorEvent.colno')
- @DocsEditable()
- @Experimental() // untriaged
- final int colno;
-
- @DomName('ErrorEvent.error')
- @DocsEditable()
- @Experimental() // untriaged
- @Creates('Null')
- final Object error;
-
- @DomName('ErrorEvent.filename')
- @DocsEditable()
- final String filename;
-
- @DomName('ErrorEvent.lineno')
- @DocsEditable()
- final int lineno;
-
- @DomName('ErrorEvent.message')
- @DocsEditable()
- final String message;
-}
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('Event')
-@Native("Event,InputEvent")
-class Event extends Interceptor {
- // In JS, canBubble and cancelable are technically required parameters to
- // init*Event. In practice, though, if they aren't provided they simply
- // default to false (since that's Boolean(undefined)).
- //
- // Contrary to JS, we default canBubble and cancelable to true, since that's
- // what people want most of the time anyway.
- factory Event(String type, {bool canBubble: true, bool cancelable: true}) {
- return new Event.eventType('Event', type,
- canBubble: canBubble, cancelable: cancelable);
- }
-
- /**
- * Creates a new Event object of the specified type.
- *
- * This is analogous to document.createEvent.
- * Normally events should be created via their constructors, if available.
- *
- * var e = new Event.type('MouseEvent', 'mousedown', true, true);
- */
- factory Event.eventType(String type, String name,
- {bool canBubble: true, bool cancelable: true}) {
- final Event e = document._createEvent(type);
- e._initEvent(name, canBubble, cancelable);
- return e;
- }
-
- /** The CSS selector involved with event delegation. */
- String _selector;
-
- /**
- * A pointer to the element whose CSS selector matched within which an event
- * was fired. If this Event was not associated with any Event delegation,
- * accessing this value will throw an [UnsupportedError].
- */
- Element get matchingTarget {
- if (_selector == null) {
- throw new UnsupportedError('Cannot call matchingTarget if this Event did'
- ' not arise as a result of event delegation.');
- }
- Element currentTarget = this.currentTarget;
- Element target = this.target;
- var matchedTarget;
- do {
- if (target.matches(_selector)) return target;
- target = target.parent;
- } while (target != null && target != currentTarget.parent);
- throw new StateError('No selector matched for populating matchedTarget.');
- }
-
- @DomName('Event.Event')
- @DocsEditable()
- factory Event._(String type, [Map eventInitDict]) {
- if (eventInitDict != null) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return Event._create_1(type, eventInitDict_1);
- }
- return Event._create_2(type);
- }
- static Event _create_1(type, eventInitDict) =>
- JS('Event', 'new Event(#,#)', type, eventInitDict);
- static Event _create_2(type) => JS('Event', 'new Event(#)', type);
-
- /**
- * This event is being handled by the event target.
- *
- * ## Other resources
- *
- * * [Target phase](http://www.w3.org/TR/DOM-Level-3-Events/#target-phase)
- * from W3C.
- */
- @DomName('Event.AT_TARGET')
- @DocsEditable()
- static const int AT_TARGET = 2;
-
- /**
- * This event is bubbling up through the target's ancestors.
- *
- * ## Other resources
- *
- * * [Bubble phase](http://www.w3.org/TR/DOM-Level-3-Events/#bubble-phase)
- * from W3C.
- */
- @DomName('Event.BUBBLING_PHASE')
- @DocsEditable()
- static const int BUBBLING_PHASE = 3;
-
- /**
- * This event is propagating through the target's ancestors, starting from the
- * document.
- *
- * ## Other resources
- *
- * * [Bubble phase](http://www.w3.org/TR/DOM-Level-3-Events/#bubble-phase)
- * from W3C.
- */
- @DomName('Event.CAPTURING_PHASE')
- @DocsEditable()
- static const int CAPTURING_PHASE = 1;
-
- @DomName('Event.bubbles')
- @DocsEditable()
- final bool bubbles;
-
- @DomName('Event.cancelable')
- @DocsEditable()
- final bool cancelable;
-
- @DomName('Event.currentTarget')
- @DocsEditable()
- EventTarget get currentTarget =>
- _convertNativeToDart_EventTarget(this._get_currentTarget);
- @JSName('currentTarget')
- @DomName('Event.currentTarget')
- @DocsEditable()
- @Creates('Null')
- @Returns('EventTarget|=Object')
- final dynamic _get_currentTarget;
-
- @DomName('Event.defaultPrevented')
- @DocsEditable()
- final bool defaultPrevented;
-
- @DomName('Event.eventPhase')
- @DocsEditable()
- final int eventPhase;
-
- @DomName('Event.isTrusted')
- @DocsEditable()
- @Experimental() // untriaged
- final bool isTrusted;
-
- /**
- * This event's path, taking into account shadow DOM.
- *
- * ## Other resources
- *
- * * [Shadow DOM extensions to
- * Event](http://w3c.github.io/webcomponents/spec/shadow/#extensions-to-event)
- * from W3C.
- */
- @DomName('Event.path')
- @DocsEditable()
- // https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#extensions-to-event
- @Experimental()
- final List<EventTarget> path;
-
- @DomName('Event.scoped')
- @DocsEditable()
- @Experimental() // untriaged
- final bool scoped;
-
- @DomName('Event.target')
- @DocsEditable()
- EventTarget get target => _convertNativeToDart_EventTarget(this._get_target);
- @JSName('target')
- @DomName('Event.target')
- @DocsEditable()
- @Creates('Node')
- @Returns('EventTarget|=Object')
- final dynamic _get_target;
-
- @DomName('Event.timeStamp')
- @DocsEditable()
- final double timeStamp;
-
- @DomName('Event.type')
- @DocsEditable()
- final String type;
-
- @DomName('Event.deepPath')
- @DocsEditable()
- @Experimental() // untriaged
- List<EventTarget> deepPath() native;
-
- @JSName('initEvent')
- @DomName('Event.initEvent')
- @DocsEditable()
- void _initEvent(String type, bool bubbles, bool cancelable) native;
-
- @DomName('Event.preventDefault')
- @DocsEditable()
- void preventDefault() native;
-
- @DomName('Event.stopImmediatePropagation')
- @DocsEditable()
- void stopImmediatePropagation() native;
-
- @DomName('Event.stopPropagation')
- @DocsEditable()
- void stopPropagation() native;
-}
-// 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.
-
-@DomName('EventSource')
-// http://www.w3.org/TR/eventsource/#the-eventsource-interface
-@Experimental() // stable
-@Native("EventSource")
-class EventSource extends EventTarget {
- factory EventSource(String url, {withCredentials: false}) {
- var parsedOptions = {
- 'withCredentials': withCredentials,
- };
- return EventSource._factoryEventSource(url, parsedOptions);
- }
- // To suppress missing implicit constructor warnings.
- factory EventSource._() {
- throw new UnsupportedError("Not supported");
- }
-
- /**
- * Static factory designed to expose `error` events to event
- * handlers that are not necessarily instances of [EventSource].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('EventSource.errorEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> errorEvent =
- const EventStreamProvider<Event>('error');
-
- /**
- * Static factory designed to expose `message` events to event
- * handlers that are not necessarily instances of [EventSource].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('EventSource.messageEvent')
- @DocsEditable()
- static const EventStreamProvider<MessageEvent> messageEvent =
- const EventStreamProvider<MessageEvent>('message');
-
- /**
- * Static factory designed to expose `open` events to event
- * handlers that are not necessarily instances of [EventSource].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('EventSource.openEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> openEvent =
- const EventStreamProvider<Event>('open');
-
- @DomName('EventSource.EventSource')
- @DocsEditable()
- static EventSource _factoryEventSource(String url,
- [Map eventSourceInitDict]) {
- if (eventSourceInitDict != null) {
- var eventSourceInitDict_1 =
- convertDartToNative_Dictionary(eventSourceInitDict);
- return EventSource._create_1(url, eventSourceInitDict_1);
- }
- return EventSource._create_2(url);
- }
-
- static EventSource _create_1(url, eventSourceInitDict) =>
- JS('EventSource', 'new EventSource(#,#)', url, eventSourceInitDict);
- static EventSource _create_2(url) =>
- JS('EventSource', 'new EventSource(#)', url);
-
- @DomName('EventSource.CLOSED')
- @DocsEditable()
- static const int CLOSED = 2;
-
- @DomName('EventSource.CONNECTING')
- @DocsEditable()
- static const int CONNECTING = 0;
-
- @DomName('EventSource.OPEN')
- @DocsEditable()
- static const int OPEN = 1;
-
- @DomName('EventSource.readyState')
- @DocsEditable()
- final int readyState;
-
- @DomName('EventSource.url')
- @DocsEditable()
- final String url;
-
- @DomName('EventSource.withCredentials')
- @DocsEditable()
- final bool withCredentials;
-
- @DomName('EventSource.close')
- @DocsEditable()
- void close() native;
-
- /// Stream of `error` events handled by this [EventSource].
- @DomName('EventSource.onerror')
- @DocsEditable()
- Stream<Event> get onError => errorEvent.forTarget(this);
-
- /// Stream of `message` events handled by this [EventSource].
- @DomName('EventSource.onmessage')
- @DocsEditable()
- Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
-
- /// Stream of `open` events handled by this [EventSource].
- @DomName('EventSource.onopen')
- @DocsEditable()
- Stream<Event> get onOpen => openEvent.forTarget(this);
-}
-// 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.
-
-/**
- * Base class that supports listening for and dispatching browser events.
- *
- * Normally events are accessed via the Stream getter:
- *
- * element.onMouseOver.listen((e) => print('Mouse over!'));
- *
- * To access bubbling events which are declared on one element, but may bubble
- * up to another element type (common for MediaElement events):
- *
- * MediaElement.pauseEvent.forTarget(document.body).listen(...);
- *
- * To useCapture on events:
- *
- * Element.keyDownEvent.forTarget(element, useCapture: true).listen(...);
- *
- * Custom events can be declared as:
- *
- * class DataGenerator {
- * static EventStreamProvider<Event> dataEvent =
- * new EventStreamProvider('data');
- * }
- *
- * Then listeners should access the event with:
- *
- * DataGenerator.dataEvent.forTarget(element).listen(...);
- *
- * Custom events can also be accessed as:
- *
- * element.on['some_event'].listen(...);
- *
- * This approach is generally discouraged as it loses the event typing and
- * some DOM events may have multiple platform-dependent event names under the
- * covers. By using the standard Stream getters you will get the platform
- * specific event name automatically.
- */
-class Events {
- /* Raw event target. */
- final EventTarget _ptr;
-
- Events(this._ptr);
-
- Stream<Event> operator [](String type) {
- return new _EventStream(_ptr, type, false);
- }
-}
-
-class ElementEvents extends Events {
- static final webkitEvents = {
- 'animationend': 'webkitAnimationEnd',
- 'animationiteration': 'webkitAnimationIteration',
- 'animationstart': 'webkitAnimationStart',
- 'fullscreenchange': 'webkitfullscreenchange',
- 'fullscreenerror': 'webkitfullscreenerror',
- 'keyadded': 'webkitkeyadded',
- 'keyerror': 'webkitkeyerror',
- 'keymessage': 'webkitkeymessage',
- 'needkey': 'webkitneedkey',
- 'pointerlockchange': 'webkitpointerlockchange',
- 'pointerlockerror': 'webkitpointerlockerror',
- 'resourcetimingbufferfull': 'webkitresourcetimingbufferfull',
- 'transitionend': 'webkitTransitionEnd',
- 'speechchange': 'webkitSpeechChange'
- };
-
- ElementEvents(Element ptr) : super(ptr);
-
- Stream<Event> operator [](String type) {
- if (webkitEvents.keys.contains(type.toLowerCase())) {
- if (Device.isWebKit) {
- return new _ElementEventStreamImpl(
- _ptr, webkitEvents[type.toLowerCase()], false);
- }
- }
- return new _ElementEventStreamImpl(_ptr, type, false);
- }
-}
-
-/**
- * Base class for all browser objects that support events.
- *
- * Use the [on] property to add, and remove events
- * for compile-time type checks and a more concise API.
- */
-@DomName('EventTarget')
-@Native("EventTarget")
-class EventTarget extends Interceptor {
- // Custom element created callback.
- EventTarget._created();
-
- /**
- * This is an ease-of-use accessor for event streams which should only be
- * used when an explicit accessor is not available.
- */
- Events get on => new Events(this);
-
- void addEventListener(String type, EventListener listener,
- [bool useCapture]) {
- // TODO(leafp): This check is avoid a bug in our dispatch code when
- // listener is null. The browser treats this call as a no-op in this
- // case, so it's fine to short-circuit it, but we should not have to.
- if (listener != null) {
- _addEventListener(type, listener, useCapture);
- }
- }
-
- void removeEventListener(String type, EventListener listener,
- [bool useCapture]) {
- // TODO(leafp): This check is avoid a bug in our dispatch code when
- // listener is null. The browser treats this call as a no-op in this
- // case, so it's fine to short-circuit it, but we should not have to.
- if (listener != null) {
- _removeEventListener(type, listener, useCapture);
- }
- }
-
- // To suppress missing implicit constructor warnings.
- factory EventTarget._() {
- throw new UnsupportedError("Not supported");
- }
-
- @JSName('addEventListener')
- @DomName('EventTarget.addEventListener')
- @DocsEditable()
- void _addEventListener(String type, EventListener listener, [bool options])
- native;
-
- @DomName('EventTarget.dispatchEvent')
- @DocsEditable()
- bool dispatchEvent(Event event) native;
-
- @JSName('removeEventListener')
- @DomName('EventTarget.removeEventListener')
- @DocsEditable()
- void _removeEventListener(String type, EventListener listener, [bool options])
- native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('ExtendableEvent')
-@Experimental() // untriaged
-@Native("ExtendableEvent")
-class ExtendableEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory ExtendableEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('ExtendableEvent.ExtendableEvent')
- @DocsEditable()
- factory ExtendableEvent(String type, [Map eventInitDict]) {
- if (eventInitDict != null) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return ExtendableEvent._create_1(type, eventInitDict_1);
- }
- return ExtendableEvent._create_2(type);
- }
- static ExtendableEvent _create_1(type, eventInitDict) =>
- JS('ExtendableEvent', 'new ExtendableEvent(#,#)', type, eventInitDict);
- static ExtendableEvent _create_2(type) =>
- JS('ExtendableEvent', 'new ExtendableEvent(#)', type);
-
- @DomName('ExtendableEvent.waitUntil')
- @DocsEditable()
- @Experimental() // untriaged
- void waitUntil(Future f) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('ExtendableMessageEvent')
-@Experimental() // untriaged
-@Native("ExtendableMessageEvent")
-class ExtendableMessageEvent extends ExtendableEvent {
- // To suppress missing implicit constructor warnings.
- factory ExtendableMessageEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('ExtendableMessageEvent.data')
- @DocsEditable()
- @Experimental() // untriaged
- @annotation_Creates_SerializedScriptValue
- @annotation_Returns_SerializedScriptValue
- final Object data;
-
- @DomName('ExtendableMessageEvent.lastEventId')
- @DocsEditable()
- @Experimental() // untriaged
- final String lastEventId;
-
- @DomName('ExtendableMessageEvent.origin')
- @DocsEditable()
- @Experimental() // untriaged
- final String origin;
-
- @DomName('ExtendableMessageEvent.ports')
- @DocsEditable()
- @Experimental() // untriaged
- final List<MessagePort> ports;
-
- @DomName('ExtendableMessageEvent.source')
- @DocsEditable()
- @Experimental() // untriaged
- @Creates('Client|_ServiceWorker|MessagePort')
- @Returns('Client|_ServiceWorker|MessagePort|Null')
- final Object source;
-}
-// 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.
-
-@DocsEditable()
-@DomName('FederatedCredential')
-@Experimental() // untriaged
-@Native("FederatedCredential")
-class FederatedCredential extends Credential {
- // To suppress missing implicit constructor warnings.
- factory FederatedCredential._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('FederatedCredential.FederatedCredential')
- @DocsEditable()
- factory FederatedCredential(Map data) {
- var data_1 = convertDartToNative_Dictionary(data);
- return FederatedCredential._create_1(data_1);
- }
- static FederatedCredential _create_1(data) =>
- JS('FederatedCredential', 'new FederatedCredential(#)', data);
-
- @DomName('FederatedCredential.protocol')
- @DocsEditable()
- @Experimental() // untriaged
- final String protocol;
-
- @DomName('FederatedCredential.provider')
- @DocsEditable()
- @Experimental() // untriaged
- final String provider;
-}
-// 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.
-
-@DocsEditable()
-@DomName('FetchEvent')
-@Experimental() // untriaged
-@Native("FetchEvent")
-class FetchEvent extends ExtendableEvent {
- // To suppress missing implicit constructor warnings.
- factory FetchEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('FetchEvent.FetchEvent')
- @DocsEditable()
- factory FetchEvent(String type, Map eventInitDict) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return FetchEvent._create_1(type, eventInitDict_1);
- }
- static FetchEvent _create_1(type, eventInitDict) =>
- JS('FetchEvent', 'new FetchEvent(#,#)', type, eventInitDict);
-
- @DomName('FetchEvent.clientId')
- @DocsEditable()
- @Experimental() // untriaged
- final String clientId;
-
- @DomName('FetchEvent.isReload')
- @DocsEditable()
- @Experimental() // untriaged
- final bool isReload;
-
- @DomName('FetchEvent.request')
- @DocsEditable()
- @Experimental() // untriaged
- final _Request request;
-
- @DomName('FetchEvent.respondWith')
- @DocsEditable()
- @Experimental() // untriaged
- void respondWith(Future r) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLFieldSetElement')
-@Unstable()
-@Native("HTMLFieldSetElement")
-class FieldSetElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory FieldSetElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLFieldSetElement.HTMLFieldSetElement')
- @DocsEditable()
- factory FieldSetElement() => JS(
- 'returns:FieldSetElement;creates:FieldSetElement;new:true',
- '#.createElement(#)',
- document,
- "fieldset");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- FieldSetElement.created() : super.created();
-
- @DomName('HTMLFieldSetElement.disabled')
- @DocsEditable()
- bool disabled;
-
- @DomName('HTMLFieldSetElement.elements')
- @DocsEditable()
- final HtmlFormControlsCollection elements;
-
- @DomName('HTMLFieldSetElement.form')
- @DocsEditable()
- final FormElement form;
-
- @DomName('HTMLFieldSetElement.name')
- @DocsEditable()
- String name;
-
- @DomName('HTMLFieldSetElement.type')
- @DocsEditable()
- final String type;
-
- @DomName('HTMLFieldSetElement.validationMessage')
- @DocsEditable()
- final String validationMessage;
-
- @DomName('HTMLFieldSetElement.validity')
- @DocsEditable()
- final ValidityState validity;
-
- @DomName('HTMLFieldSetElement.willValidate')
- @DocsEditable()
- final bool willValidate;
-
- @DomName('HTMLFieldSetElement.checkValidity')
- @DocsEditable()
- bool checkValidity() native;
-
- @DomName('HTMLFieldSetElement.reportValidity')
- @DocsEditable()
- @Experimental() // untriaged
- bool reportValidity() native;
-
- @DomName('HTMLFieldSetElement.setCustomValidity')
- @DocsEditable()
- void setCustomValidity(String error) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('File')
-@Native("File")
-class File extends Blob {
- // To suppress missing implicit constructor warnings.
- factory File._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('File.File')
- @DocsEditable()
- factory File(List<Object> fileBits, String fileName, [Map options]) {
- if (options != null) {
- var options_1 = convertDartToNative_Dictionary(options);
- return File._create_1(fileBits, fileName, options_1);
- }
- return File._create_2(fileBits, fileName);
- }
- static File _create_1(fileBits, fileName, options) =>
- JS('File', 'new File(#,#,#)', fileBits, fileName, options);
- static File _create_2(fileBits, fileName) =>
- JS('File', 'new File(#,#)', fileBits, fileName);
-
- @DomName('File.lastModified')
- @DocsEditable()
- @Experimental() // untriaged
- final int lastModified;
-
- @DomName('File.lastModifiedDate')
- @DocsEditable()
- DateTime get lastModifiedDate =>
- convertNativeToDart_DateTime(this._get_lastModifiedDate);
- @JSName('lastModifiedDate')
- @DomName('File.lastModifiedDate')
- @DocsEditable()
- @Creates('Null')
- final dynamic _get_lastModifiedDate;
-
- @DomName('File.name')
- @DocsEditable()
- final String name;
-
- @JSName('webkitRelativePath')
- @DomName('File.webkitRelativePath')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- // https://plus.sandbox.google.com/+AddyOsmani/posts/Dk5UhZ6zfF3
- final String relativePath;
-}
-// 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.
-
-@DocsEditable()
-@DomName('FileEntry')
-// http://www.w3.org/TR/file-system-api/#the-fileentry-interface
-@Experimental()
-@Native("FileEntry")
-class FileEntry extends Entry {
- // To suppress missing implicit constructor warnings.
- factory FileEntry._() {
- throw new UnsupportedError("Not supported");
- }
-
- @JSName('createWriter')
- @DomName('FileEntry.createWriter')
- @DocsEditable()
- void _createWriter(_FileWriterCallback successCallback,
- [_ErrorCallback errorCallback]) native;
-
- @JSName('createWriter')
- @DomName('FileEntry.createWriter')
- @DocsEditable()
- Future<FileWriter> createWriter() {
- var completer = new Completer<FileWriter>();
- _createWriter((value) {
- completer.complete(value);
- }, (error) {
- completer.completeError(error);
- });
- return completer.future;
- }
-
- @JSName('file')
- @DomName('FileEntry.file')
- @DocsEditable()
- void _file(BlobCallback successCallback, [_ErrorCallback errorCallback])
- native;
-
- @JSName('file')
- @DomName('FileEntry.file')
- @DocsEditable()
- Future<Blob> file() {
- var completer = new Completer<Blob>();
- _file((value) {
- completer.complete(value);
- }, (error) {
- completer.completeError(error);
- });
- return completer.future;
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('FileError')
-// http://dev.w3.org/2009/dap/file-system/pub/FileSystem/
-@Experimental()
-@Native("FileError")
-class FileError extends DomError {
- // To suppress missing implicit constructor warnings.
- factory FileError._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('FileError.ABORT_ERR')
- @DocsEditable()
- static const int ABORT_ERR = 3;
-
- @DomName('FileError.ENCODING_ERR')
- @DocsEditable()
- static const int ENCODING_ERR = 5;
-
- @DomName('FileError.INVALID_MODIFICATION_ERR')
- @DocsEditable()
- static const int INVALID_MODIFICATION_ERR = 9;
-
- @DomName('FileError.INVALID_STATE_ERR')
- @DocsEditable()
- static const int INVALID_STATE_ERR = 7;
-
- @DomName('FileError.NOT_FOUND_ERR')
- @DocsEditable()
- static const int NOT_FOUND_ERR = 1;
-
- @DomName('FileError.NOT_READABLE_ERR')
- @DocsEditable()
- static const int NOT_READABLE_ERR = 4;
-
- @DomName('FileError.NO_MODIFICATION_ALLOWED_ERR')
- @DocsEditable()
- static const int NO_MODIFICATION_ALLOWED_ERR = 6;
-
- @DomName('FileError.PATH_EXISTS_ERR')
- @DocsEditable()
- static const int PATH_EXISTS_ERR = 12;
-
- @DomName('FileError.QUOTA_EXCEEDED_ERR')
- @DocsEditable()
- static const int QUOTA_EXCEEDED_ERR = 10;
-
- @DomName('FileError.SECURITY_ERR')
- @DocsEditable()
- static const int SECURITY_ERR = 2;
-
- @DomName('FileError.SYNTAX_ERR')
- @DocsEditable()
- static const int SYNTAX_ERR = 8;
-
- @DomName('FileError.TYPE_MISMATCH_ERR')
- @DocsEditable()
- static const int TYPE_MISMATCH_ERR = 11;
-
- @DomName('FileError.code')
- @DocsEditable()
- final int code;
-}
-// 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.
-
-@DocsEditable()
-@DomName('FileList')
-@Native("FileList")
-class FileList extends Interceptor
- with ListMixin<File>, ImmutableListMixin<File>
- implements List<File>, JavaScriptIndexingBehavior<File> {
- // To suppress missing implicit constructor warnings.
- factory FileList._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('FileList.length')
- @DocsEditable()
- int get length => JS("int", "#.length", this);
-
- File operator [](int index) {
- if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
- throw new RangeError.index(index, this);
- return JS("File", "#[#]", this, index);
- }
-
- void operator []=(int index, File value) {
- throw new UnsupportedError("Cannot assign element of immutable List.");
- }
- // -- start List<File> mixins.
- // File is the element type.
-
- set length(int value) {
- throw new UnsupportedError("Cannot resize immutable List.");
- }
-
- File get first {
- if (this.length > 0) {
- return JS('File', '#[0]', this);
- }
- throw new StateError("No elements");
- }
-
- File get last {
- int len = this.length;
- if (len > 0) {
- return JS('File', '#[#]', this, len - 1);
- }
- throw new StateError("No elements");
- }
-
- File get single {
- int len = this.length;
- if (len == 1) {
- return JS('File', '#[0]', this);
- }
- if (len == 0) throw new StateError("No elements");
- throw new StateError("More than one element");
- }
-
- File elementAt(int index) => this[index];
- // -- end List<File> mixins.
-
- @DomName('FileList.item')
- @DocsEditable()
- File item(int index) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('FileReader')
-@Native("FileReader")
-class FileReader extends EventTarget {
- @DomName('FileReader.result')
- @DocsEditable()
- Object get result {
- var res = JS('Null|String|NativeByteBuffer', '#.result', this);
- if (res is ByteBuffer) {
- return new Uint8List.view(res);
- }
- return res;
- }
-
- // To suppress missing implicit constructor warnings.
- factory FileReader._() {
- throw new UnsupportedError("Not supported");
- }
-
- /**
- * Static factory designed to expose `abort` events to event
- * handlers that are not necessarily instances of [FileReader].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('FileReader.abortEvent')
- @DocsEditable()
- static const EventStreamProvider<ProgressEvent> abortEvent =
- const EventStreamProvider<ProgressEvent>('abort');
-
- /**
- * Static factory designed to expose `error` events to event
- * handlers that are not necessarily instances of [FileReader].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('FileReader.errorEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> errorEvent =
- const EventStreamProvider<Event>('error');
-
- /**
- * Static factory designed to expose `load` events to event
- * handlers that are not necessarily instances of [FileReader].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('FileReader.loadEvent')
- @DocsEditable()
- static const EventStreamProvider<ProgressEvent> loadEvent =
- const EventStreamProvider<ProgressEvent>('load');
-
- /**
- * Static factory designed to expose `loadend` events to event
- * handlers that are not necessarily instances of [FileReader].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('FileReader.loadendEvent')
- @DocsEditable()
- static const EventStreamProvider<ProgressEvent> loadEndEvent =
- const EventStreamProvider<ProgressEvent>('loadend');
-
- /**
- * Static factory designed to expose `loadstart` events to event
- * handlers that are not necessarily instances of [FileReader].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('FileReader.loadstartEvent')
- @DocsEditable()
- static const EventStreamProvider<ProgressEvent> loadStartEvent =
- const EventStreamProvider<ProgressEvent>('loadstart');
-
- /**
- * Static factory designed to expose `progress` events to event
- * handlers that are not necessarily instances of [FileReader].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('FileReader.progressEvent')
- @DocsEditable()
- static const EventStreamProvider<ProgressEvent> progressEvent =
- const EventStreamProvider<ProgressEvent>('progress');
-
- @DomName('FileReader.FileReader')
- @DocsEditable()
- factory FileReader() {
- return FileReader._create_1();
- }
- static FileReader _create_1() => JS('FileReader', 'new FileReader()');
-
- @DomName('FileReader.DONE')
- @DocsEditable()
- static const int DONE = 2;
-
- @DomName('FileReader.EMPTY')
- @DocsEditable()
- static const int EMPTY = 0;
-
- @DomName('FileReader.LOADING')
- @DocsEditable()
- static const int LOADING = 1;
-
- @DomName('FileReader.error')
- @DocsEditable()
- final FileError error;
-
- @DomName('FileReader.readyState')
- @DocsEditable()
- final int readyState;
-
- @DomName('FileReader.abort')
- @DocsEditable()
- void abort() native;
-
- @DomName('FileReader.readAsArrayBuffer')
- @DocsEditable()
- void readAsArrayBuffer(Blob blob) native;
-
- @JSName('readAsDataURL')
- @DomName('FileReader.readAsDataURL')
- @DocsEditable()
- void readAsDataUrl(Blob blob) native;
-
- @DomName('FileReader.readAsText')
- @DocsEditable()
- void readAsText(Blob blob, [String label]) native;
-
- /// Stream of `abort` events handled by this [FileReader].
- @DomName('FileReader.onabort')
- @DocsEditable()
- Stream<ProgressEvent> get onAbort => abortEvent.forTarget(this);
-
- /// Stream of `error` events handled by this [FileReader].
- @DomName('FileReader.onerror')
- @DocsEditable()
- Stream<Event> get onError => errorEvent.forTarget(this);
-
- /// Stream of `load` events handled by this [FileReader].
- @DomName('FileReader.onload')
- @DocsEditable()
- Stream<ProgressEvent> get onLoad => loadEvent.forTarget(this);
-
- /// Stream of `loadend` events handled by this [FileReader].
- @DomName('FileReader.onloadend')
- @DocsEditable()
- Stream<ProgressEvent> get onLoadEnd => loadEndEvent.forTarget(this);
-
- /// Stream of `loadstart` events handled by this [FileReader].
- @DomName('FileReader.onloadstart')
- @DocsEditable()
- Stream<ProgressEvent> get onLoadStart => loadStartEvent.forTarget(this);
-
- /// Stream of `progress` events handled by this [FileReader].
- @DomName('FileReader.onprogress')
- @DocsEditable()
- Stream<ProgressEvent> get onProgress => progressEvent.forTarget(this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('Stream')
-@Experimental() // untriaged
-@Native("Stream")
-class FileStream extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory FileStream._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('Stream.type')
- @DocsEditable()
- @Experimental() // untriaged
- final String type;
-}
-// 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.
-
-@DocsEditable()
-@DomName('DOMFileSystem')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@Experimental()
-// http://www.w3.org/TR/file-system-api/
-@Native("DOMFileSystem")
-class FileSystem extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory FileSystem._() {
- throw new UnsupportedError("Not supported");
- }
-
- /// Checks if this type is supported on the current platform.
- static bool get supported => JS('bool', '!!(window.webkitRequestFileSystem)');
-
- @DomName('DOMFileSystem.name')
- @DocsEditable()
- final String name;
-
- @DomName('DOMFileSystem.root')
- @DocsEditable()
- final DirectoryEntry root;
-}
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('FileSystemCallback')
-// http://www.w3.org/TR/file-system-api/#the-filesystemcallback-interface
-@Experimental()
-typedef void _FileSystemCallback(FileSystem fileSystem);
-// 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.
-
-@DocsEditable()
-@DomName('FileWriter')
-// http://www.w3.org/TR/file-writer-api/#the-filewriter-interface
-@Experimental()
-@Native("FileWriter")
-class FileWriter extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory FileWriter._() {
- throw new UnsupportedError("Not supported");
- }
-
- /**
- * Static factory designed to expose `abort` events to event
- * handlers that are not necessarily instances of [FileWriter].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('FileWriter.abortEvent')
- @DocsEditable()
- static const EventStreamProvider<ProgressEvent> abortEvent =
- const EventStreamProvider<ProgressEvent>('abort');
-
- /**
- * Static factory designed to expose `error` events to event
- * handlers that are not necessarily instances of [FileWriter].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('FileWriter.errorEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> errorEvent =
- const EventStreamProvider<Event>('error');
-
- /**
- * Static factory designed to expose `progress` events to event
- * handlers that are not necessarily instances of [FileWriter].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('FileWriter.progressEvent')
- @DocsEditable()
- static const EventStreamProvider<ProgressEvent> progressEvent =
- const EventStreamProvider<ProgressEvent>('progress');
-
- /**
- * Static factory designed to expose `write` events to event
- * handlers that are not necessarily instances of [FileWriter].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('FileWriter.writeEvent')
- @DocsEditable()
- static const EventStreamProvider<ProgressEvent> writeEvent =
- const EventStreamProvider<ProgressEvent>('write');
-
- /**
- * Static factory designed to expose `writeend` events to event
- * handlers that are not necessarily instances of [FileWriter].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('FileWriter.writeendEvent')
- @DocsEditable()
- static const EventStreamProvider<ProgressEvent> writeEndEvent =
- const EventStreamProvider<ProgressEvent>('writeend');
-
- /**
- * Static factory designed to expose `writestart` events to event
- * handlers that are not necessarily instances of [FileWriter].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('FileWriter.writestartEvent')
- @DocsEditable()
- static const EventStreamProvider<ProgressEvent> writeStartEvent =
- const EventStreamProvider<ProgressEvent>('writestart');
-
- @DomName('FileWriter.DONE')
- @DocsEditable()
- static const int DONE = 2;
-
- @DomName('FileWriter.INIT')
- @DocsEditable()
- static const int INIT = 0;
-
- @DomName('FileWriter.WRITING')
- @DocsEditable()
- static const int WRITING = 1;
-
- @DomName('FileWriter.error')
- @DocsEditable()
- final FileError error;
-
- @DomName('FileWriter.length')
- @DocsEditable()
- final int length;
-
- @DomName('FileWriter.position')
- @DocsEditable()
- final int position;
-
- @DomName('FileWriter.readyState')
- @DocsEditable()
- final int readyState;
-
- @DomName('FileWriter.abort')
- @DocsEditable()
- void abort() native;
-
- @DomName('FileWriter.seek')
- @DocsEditable()
- void seek(int position) native;
-
- @DomName('FileWriter.truncate')
- @DocsEditable()
- void truncate(int size) native;
-
- @DomName('FileWriter.write')
- @DocsEditable()
- void write(Blob data) native;
-
- /// Stream of `abort` events handled by this [FileWriter].
- @DomName('FileWriter.onabort')
- @DocsEditable()
- Stream<ProgressEvent> get onAbort => abortEvent.forTarget(this);
-
- /// Stream of `error` events handled by this [FileWriter].
- @DomName('FileWriter.onerror')
- @DocsEditable()
- Stream<Event> get onError => errorEvent.forTarget(this);
-
- /// Stream of `progress` events handled by this [FileWriter].
- @DomName('FileWriter.onprogress')
- @DocsEditable()
- Stream<ProgressEvent> get onProgress => progressEvent.forTarget(this);
-
- /// Stream of `write` events handled by this [FileWriter].
- @DomName('FileWriter.onwrite')
- @DocsEditable()
- Stream<ProgressEvent> get onWrite => writeEvent.forTarget(this);
-
- /// Stream of `writeend` events handled by this [FileWriter].
- @DomName('FileWriter.onwriteend')
- @DocsEditable()
- Stream<ProgressEvent> get onWriteEnd => writeEndEvent.forTarget(this);
-
- /// Stream of `writestart` events handled by this [FileWriter].
- @DomName('FileWriter.onwritestart')
- @DocsEditable()
- Stream<ProgressEvent> get onWriteStart => writeStartEvent.forTarget(this);
-}
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('FileWriterCallback')
-// http://www.w3.org/TR/file-writer-api/#idl-def-FileWriter
-@Experimental()
-typedef void _FileWriterCallback(FileWriter fileWriter);
-// 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.
-
-@DocsEditable()
-@DomName('FocusEvent')
-@Native("FocusEvent")
-class FocusEvent extends UIEvent {
- // To suppress missing implicit constructor warnings.
- factory FocusEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('FocusEvent.FocusEvent')
- @DocsEditable()
- factory FocusEvent(String type, [Map eventInitDict]) {
- if (eventInitDict != null) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return FocusEvent._create_1(type, eventInitDict_1);
- }
- return FocusEvent._create_2(type);
- }
- static FocusEvent _create_1(type, eventInitDict) =>
- JS('FocusEvent', 'new FocusEvent(#,#)', type, eventInitDict);
- static FocusEvent _create_2(type) =>
- JS('FocusEvent', 'new FocusEvent(#)', type);
-
- @DomName('FocusEvent.relatedTarget')
- @DocsEditable()
- EventTarget get relatedTarget =>
- _convertNativeToDart_EventTarget(this._get_relatedTarget);
- @JSName('relatedTarget')
- @DomName('FocusEvent.relatedTarget')
- @DocsEditable()
- @Creates('Null')
- final dynamic _get_relatedTarget;
-}
-// 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.
-
-@DocsEditable()
-@DomName('FontFace')
-@Experimental() // untriaged
-@Native("FontFace")
-class FontFace extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory FontFace._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('FontFace.FontFace')
- @DocsEditable()
- factory FontFace(String family, Object source, [Map descriptors]) {
- if (descriptors != null) {
- var descriptors_1 = convertDartToNative_Dictionary(descriptors);
- return FontFace._create_1(family, source, descriptors_1);
- }
- return FontFace._create_2(family, source);
- }
- static FontFace _create_1(family, source, descriptors) =>
- JS('FontFace', 'new FontFace(#,#,#)', family, source, descriptors);
- static FontFace _create_2(family, source) =>
- JS('FontFace', 'new FontFace(#,#)', family, source);
-
- @DomName('FontFace.family')
- @DocsEditable()
- @Experimental() // untriaged
- String family;
-
- @DomName('FontFace.featureSettings')
- @DocsEditable()
- @Experimental() // untriaged
- String featureSettings;
-
- @DomName('FontFace.loaded')
- @DocsEditable()
- @Experimental() // untriaged
- final Future loaded;
-
- @DomName('FontFace.status')
- @DocsEditable()
- @Experimental() // untriaged
- final String status;
-
- @DomName('FontFace.stretch')
- @DocsEditable()
- @Experimental() // untriaged
- String stretch;
-
- @DomName('FontFace.style')
- @DocsEditable()
- @Experimental() // untriaged
- String style;
-
- @DomName('FontFace.unicodeRange')
- @DocsEditable()
- @Experimental() // untriaged
- String unicodeRange;
-
- @DomName('FontFace.variant')
- @DocsEditable()
- @Experimental() // untriaged
- String variant;
-
- @DomName('FontFace.weight')
- @DocsEditable()
- @Experimental() // untriaged
- String weight;
-
- @DomName('FontFace.load')
- @DocsEditable()
- @Experimental() // untriaged
- Future load() native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('FontFaceSet')
-@Experimental() // untriaged
-@Native("FontFaceSet")
-class FontFaceSet extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory FontFaceSet._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('FontFaceSet.size')
- @DocsEditable()
- @Experimental() // untriaged
- final int size;
-
- @DomName('FontFaceSet.status')
- @DocsEditable()
- @Experimental() // untriaged
- final String status;
-
- @DomName('FontFaceSet.add')
- @DocsEditable()
- @Experimental() // untriaged
- FontFaceSet add(FontFace arg) native;
-
- @DomName('FontFaceSet.check')
- @DocsEditable()
- @Experimental() // untriaged
- bool check(String font, [String text]) native;
-
- @DomName('FontFaceSet.clear')
- @DocsEditable()
- @Experimental() // untriaged
- void clear() native;
-
- @DomName('FontFaceSet.delete')
- @DocsEditable()
- @Experimental() // untriaged
- bool delete(FontFace arg) native;
-
- @DomName('FontFaceSet.forEach')
- @DocsEditable()
- @Experimental() // untriaged
- void forEach(FontFaceSetForEachCallback callback, [Object thisArg]) native;
-
- @DomName('FontFaceSet.has')
- @DocsEditable()
- @Experimental() // untriaged
- bool has(FontFace arg) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('FontFaceSetLoadEvent')
-@Experimental() // untriaged
-@Native("FontFaceSetLoadEvent")
-class FontFaceSetLoadEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory FontFaceSetLoadEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('FontFaceSetLoadEvent.fontfaces')
- @DocsEditable()
- @Experimental() // untriaged
- final List<FontFace> fontfaces;
-}
-// 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.
-
-@DocsEditable()
-@DomName('FormData')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Native("FormData")
-class FormData extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory FormData._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('FormData.FormData')
- @DocsEditable()
- factory FormData([FormElement form]) {
- if (form != null) {
- return FormData._create_1(form);
- }
- return FormData._create_2();
- }
- static FormData _create_1(form) => JS('FormData', 'new FormData(#)', form);
- static FormData _create_2() => JS('FormData', 'new FormData()');
-
- /// Checks if this type is supported on the current platform.
- static bool get supported => JS('bool', '!!(window.FormData)');
-
- @DomName('FormData.append')
- @DocsEditable()
- void append(String name, String value) native;
-
- @JSName('append')
- @DomName('FormData.append')
- @DocsEditable()
- void appendBlob(String name, Blob value, [String filename]) native;
-
- @DomName('FormData.delete')
- @DocsEditable()
- @Experimental() // untriaged
- void delete(String name) native;
-
- @DomName('FormData.get')
- @DocsEditable()
- @Experimental() // untriaged
- Object get(String name) native;
-
- @DomName('FormData.getAll')
- @DocsEditable()
- @Experimental() // untriaged
- List<Object> getAll(String name) native;
-
- @DomName('FormData.has')
- @DocsEditable()
- @Experimental() // untriaged
- bool has(String name) native;
-
- @DomName('FormData.set')
- @DocsEditable()
- @Experimental() // untriaged
- void set(String name, value, [String filename]) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLFormElement')
-@Native("HTMLFormElement")
-class FormElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory FormElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLFormElement.HTMLFormElement')
- @DocsEditable()
- factory FormElement() => JS(
- 'returns:FormElement;creates:FormElement;new:true',
- '#.createElement(#)',
- document,
- "form");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- FormElement.created() : super.created();
-
- @DomName('HTMLFormElement.acceptCharset')
- @DocsEditable()
- String acceptCharset;
-
- @DomName('HTMLFormElement.action')
- @DocsEditable()
- String action;
-
- @DomName('HTMLFormElement.autocomplete')
- @DocsEditable()
- // http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#autofilling-form-controls:-the-autocomplete-attribute
- @Experimental()
- String autocomplete;
-
- @DomName('HTMLFormElement.encoding')
- @DocsEditable()
- String encoding;
-
- @DomName('HTMLFormElement.enctype')
- @DocsEditable()
- String enctype;
-
- @DomName('HTMLFormElement.length')
- @DocsEditable()
- final int length;
-
- @DomName('HTMLFormElement.method')
- @DocsEditable()
- String method;
-
- @DomName('HTMLFormElement.name')
- @DocsEditable()
- String name;
-
- @DomName('HTMLFormElement.noValidate')
- @DocsEditable()
- bool noValidate;
-
- @DomName('HTMLFormElement.target')
- @DocsEditable()
- String target;
-
- @DomName('HTMLFormElement.__getter__')
- @DocsEditable()
- Object __getter__(String name) native;
-
- @DomName('HTMLFormElement.checkValidity')
- @DocsEditable()
- bool checkValidity() native;
-
- @DomName('HTMLFormElement.item')
- @DocsEditable()
- @Experimental() // untriaged
- Element item(int index) native;
-
- @DomName('HTMLFormElement.reportValidity')
- @DocsEditable()
- @Experimental() // untriaged
- bool reportValidity() native;
-
- @DomName('HTMLFormElement.requestAutocomplete')
- @DocsEditable()
- // http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-October/037711.html
- @Experimental()
- void requestAutocomplete(Map details) {
- var details_1 = convertDartToNative_Dictionary(details);
- _requestAutocomplete_1(details_1);
- return;
- }
-
- @JSName('requestAutocomplete')
- @DomName('HTMLFormElement.requestAutocomplete')
- @DocsEditable()
- // http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-October/037711.html
- @Experimental()
- void _requestAutocomplete_1(details) native;
-
- @DomName('HTMLFormElement.reset')
- @DocsEditable()
- void reset() native;
-
- @DomName('HTMLFormElement.submit')
- @DocsEditable()
- void submit() native;
-}
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('FrameRequestCallback')
-@Experimental() // untriaged
-typedef void FrameRequestCallback(num highResTime);
-// 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.
-
-@DocsEditable()
-@DomName('Gamepad')
-// https://dvcs.w3.org/hg/gamepad/raw-file/default/gamepad.html#gamepad-interface
-@Experimental()
-@Native("Gamepad")
-class Gamepad extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory Gamepad._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('Gamepad.axes')
- @DocsEditable()
- final List<num> axes;
-
- @DomName('Gamepad.buttons')
- @DocsEditable()
- @Creates('JSExtendableArray|GamepadButton')
- @Returns('JSExtendableArray')
- final List<GamepadButton> buttons;
-
- @DomName('Gamepad.connected')
- @DocsEditable()
- @Experimental() // untriaged
- final bool connected;
-
- @DomName('Gamepad.id')
- @DocsEditable()
- final String id;
-
- @DomName('Gamepad.index')
- @DocsEditable()
- final int index;
-
- @DomName('Gamepad.mapping')
- @DocsEditable()
- @Experimental() // untriaged
- final String mapping;
-
- @DomName('Gamepad.timestamp')
- @DocsEditable()
- final int timestamp;
-}
-// 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.
-
-@DocsEditable()
-@DomName('GamepadButton')
-@Experimental() // untriaged
-@Native("GamepadButton")
-class GamepadButton extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory GamepadButton._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('GamepadButton.pressed')
- @DocsEditable()
- @Experimental() // untriaged
- final bool pressed;
-
- @DomName('GamepadButton.value')
- @DocsEditable()
- @Experimental() // untriaged
- final double value;
-}
-// 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.
-
-@DocsEditable()
-@DomName('GamepadEvent')
-@Experimental() // untriaged
-@Native("GamepadEvent")
-class GamepadEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory GamepadEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('GamepadEvent.GamepadEvent')
- @DocsEditable()
- factory GamepadEvent(String type, [Map eventInitDict]) {
- if (eventInitDict != null) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return GamepadEvent._create_1(type, eventInitDict_1);
- }
- return GamepadEvent._create_2(type);
- }
- static GamepadEvent _create_1(type, eventInitDict) =>
- JS('GamepadEvent', 'new GamepadEvent(#,#)', type, eventInitDict);
- static GamepadEvent _create_2(type) =>
- JS('GamepadEvent', 'new GamepadEvent(#)', type);
-
- @DomName('GamepadEvent.gamepad')
- @DocsEditable()
- @Experimental() // untriaged
- final Gamepad gamepad;
-}
-// 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.
-
-@DocsEditable()
-@DomName('Geofencing')
-@Experimental() // untriaged
-@Native("Geofencing")
-class Geofencing extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory Geofencing._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('Geofencing.getRegisteredRegions')
- @DocsEditable()
- @Experimental() // untriaged
- Future getRegisteredRegions() native;
-
- @DomName('Geofencing.registerRegion')
- @DocsEditable()
- @Experimental() // untriaged
- Future registerRegion(GeofencingRegion region) native;
-
- @DomName('Geofencing.unregisterRegion')
- @DocsEditable()
- @Experimental() // untriaged
- Future unregisterRegion(String regionId) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('GeofencingEvent')
-@Experimental() // untriaged
-@Native("GeofencingEvent")
-class GeofencingEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory GeofencingEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('GeofencingEvent.id')
- @DocsEditable()
- @Experimental() // untriaged
- final String id;
-
- @DomName('GeofencingEvent.region')
- @DocsEditable()
- @Experimental() // untriaged
- final GeofencingRegion region;
-}
-// 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.
-
-@DocsEditable()
-@DomName('GeofencingRegion')
-@Experimental() // untriaged
-@Native("GeofencingRegion")
-class GeofencingRegion extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory GeofencingRegion._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('GeofencingRegion.id')
- @DocsEditable()
- @Experimental() // untriaged
- final String id;
-}
-// 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.
-
-@DocsEditable()
-@DomName('Geolocation')
-@Unstable()
-@Native("Geolocation")
-class Geolocation extends Interceptor {
- @DomName('Geolocation.getCurrentPosition')
- Future<Geoposition> getCurrentPosition(
- {bool enableHighAccuracy, Duration timeout, Duration maximumAge}) {
- var options = {};
- if (enableHighAccuracy != null) {
- options['enableHighAccuracy'] = enableHighAccuracy;
- }
- if (timeout != null) {
- options['timeout'] = timeout.inMilliseconds;
- }
- if (maximumAge != null) {
- options['maximumAge'] = maximumAge.inMilliseconds;
- }
- var completer = new Completer<Geoposition>();
- try {
- _getCurrentPosition((position) {
- completer.complete(_ensurePosition(position));
- }, (error) {
- completer.completeError(error);
- }, options);
- } catch (e, stacktrace) {
- completer.completeError(e, stacktrace);
- }
- return completer.future;
- }
-
- @DomName('Geolocation.watchPosition')
- Stream<Geoposition> watchPosition(
- {bool enableHighAccuracy, Duration timeout, Duration maximumAge}) {
- var options = {};
- if (enableHighAccuracy != null) {
- options['enableHighAccuracy'] = enableHighAccuracy;
- }
- if (timeout != null) {
- options['timeout'] = timeout.inMilliseconds;
- }
- if (maximumAge != null) {
- options['maximumAge'] = maximumAge.inMilliseconds;
- }
-
- int watchId;
- // TODO(jacobr): it seems like a bug that we have to specifiy the static
- // type here for controller.stream to have the right type.
- // dartbug.com/26278
- StreamController<Geoposition> controller;
- controller = new StreamController<Geoposition>(
- sync: true,
- onListen: () {
- assert(watchId == null);
- watchId = _watchPosition((position) {
- controller.add(_ensurePosition(position));
- }, (error) {
- controller.addError(error);
- }, options);
- },
- onCancel: () {
- assert(watchId != null);
- _clearWatch(watchId);
- });
-
- return controller.stream;
- }
-
- Geoposition _ensurePosition(domPosition) {
- try {
- // Firefox may throw on this.
- if (domPosition is Geoposition) {
- return domPosition;
- }
- } catch (e) {}
- return new _GeopositionWrapper(domPosition);
- }
-
- // To suppress missing implicit constructor warnings.
- factory Geolocation._() {
- throw new UnsupportedError("Not supported");
- }
-
- @JSName('clearWatch')
- @DomName('Geolocation.clearWatch')
- @DocsEditable()
- void _clearWatch(int watchID) native;
-
- @DomName('Geolocation.getCurrentPosition')
- @DocsEditable()
- void _getCurrentPosition(_PositionCallback successCallback,
- [_PositionErrorCallback errorCallback, Map options]) {
- if (options != null) {
- var options_1 = convertDartToNative_Dictionary(options);
- _getCurrentPosition_1(successCallback, errorCallback, options_1);
- return;
- }
- if (errorCallback != null) {
- _getCurrentPosition_2(successCallback, errorCallback);
- return;
- }
- _getCurrentPosition_3(successCallback);
- return;
- }
-
- @JSName('getCurrentPosition')
- @DomName('Geolocation.getCurrentPosition')
- @DocsEditable()
- void _getCurrentPosition_1(_PositionCallback successCallback,
- _PositionErrorCallback errorCallback, options) native;
- @JSName('getCurrentPosition')
- @DomName('Geolocation.getCurrentPosition')
- @DocsEditable()
- void _getCurrentPosition_2(_PositionCallback successCallback,
- _PositionErrorCallback errorCallback) native;
- @JSName('getCurrentPosition')
- @DomName('Geolocation.getCurrentPosition')
- @DocsEditable()
- void _getCurrentPosition_3(_PositionCallback successCallback) native;
-
- @DomName('Geolocation.watchPosition')
- @DocsEditable()
- int _watchPosition(_PositionCallback successCallback,
- [_PositionErrorCallback errorCallback, Map options]) {
- if (options != null) {
- var options_1 = convertDartToNative_Dictionary(options);
- return _watchPosition_1(successCallback, errorCallback, options_1);
- }
- if (errorCallback != null) {
- return _watchPosition_2(successCallback, errorCallback);
- }
- return _watchPosition_3(successCallback);
- }
-
- @JSName('watchPosition')
- @DomName('Geolocation.watchPosition')
- @DocsEditable()
- int _watchPosition_1(_PositionCallback successCallback,
- _PositionErrorCallback errorCallback, options) native;
- @JSName('watchPosition')
- @DomName('Geolocation.watchPosition')
- @DocsEditable()
- int _watchPosition_2(_PositionCallback successCallback,
- _PositionErrorCallback errorCallback) native;
- @JSName('watchPosition')
- @DomName('Geolocation.watchPosition')
- @DocsEditable()
- int _watchPosition_3(_PositionCallback successCallback) native;
-}
-
-/**
- * Wrapper for Firefox- it returns an object which we cannot map correctly.
- * Basically Firefox was returning a [xpconnect wrapped nsIDOMGeoPosition] but
- * which has further oddities.
- */
-class _GeopositionWrapper implements Geoposition {
- var _ptr;
- _GeopositionWrapper(this._ptr);
-
- Coordinates get coords => JS('Coordinates', '#.coords', _ptr);
- int get timestamp => JS('int', '#.timestamp', _ptr);
-}
-// 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.
-
-@DocsEditable()
-@DomName('Geoposition')
-@Unstable()
-@Native("Geoposition")
-class Geoposition extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory Geoposition._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('Geoposition.coords')
- @DocsEditable()
- final Coordinates coords;
-
- @DomName('Geoposition.timestamp')
- @DocsEditable()
- final int timestamp;
-}
-// 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.
-
-// We implement EventTarget and have stubs for its methods because it's tricky to
-// convince the scripts to make our instance methods abstract, and the bodies that
-// get generated require `this` to be an EventTarget.
-@DocsEditable()
-@DomName('GlobalEventHandlers')
-@Experimental() // untriaged
-abstract class GlobalEventHandlers implements EventTarget {
- void addEventListener(String type, dynamic listener(Event event),
- [bool useCapture]);
- bool dispatchEvent(Event event);
- void removeEventListener(String type, dynamic listener(Event event),
- [bool useCapture]);
- Events get on;
-
- // To suppress missing implicit constructor warnings.
- factory GlobalEventHandlers._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('GlobalEventHandlers.abortEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> abortEvent =
- const EventStreamProvider<Event>('abort');
-
- @DomName('GlobalEventHandlers.blurEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> blurEvent =
- const EventStreamProvider<Event>('blur');
-
- @DomName('GlobalEventHandlers.canplayEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> canPlayEvent =
- const EventStreamProvider<Event>('canplay');
-
- @DomName('GlobalEventHandlers.canplaythroughEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> canPlayThroughEvent =
- const EventStreamProvider<Event>('canplaythrough');
-
- @DomName('GlobalEventHandlers.changeEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> changeEvent =
- const EventStreamProvider<Event>('change');
-
- @DomName('GlobalEventHandlers.clickEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MouseEvent> clickEvent =
- const EventStreamProvider<MouseEvent>('click');
-
- @DomName('GlobalEventHandlers.contextmenuEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MouseEvent> contextMenuEvent =
- const EventStreamProvider<MouseEvent>('contextmenu');
-
- @DomName('GlobalEventHandlers.dblclickEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> doubleClickEvent =
- const EventStreamProvider<Event>('dblclick');
-
- @DomName('GlobalEventHandlers.dragEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MouseEvent> dragEvent =
- const EventStreamProvider<MouseEvent>('drag');
-
- @DomName('GlobalEventHandlers.dragendEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MouseEvent> dragEndEvent =
- const EventStreamProvider<MouseEvent>('dragend');
-
- @DomName('GlobalEventHandlers.dragenterEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MouseEvent> dragEnterEvent =
- const EventStreamProvider<MouseEvent>('dragenter');
-
- @DomName('GlobalEventHandlers.dragleaveEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MouseEvent> dragLeaveEvent =
- const EventStreamProvider<MouseEvent>('dragleave');
-
- @DomName('GlobalEventHandlers.dragoverEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MouseEvent> dragOverEvent =
- const EventStreamProvider<MouseEvent>('dragover');
-
- @DomName('GlobalEventHandlers.dragstartEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MouseEvent> dragStartEvent =
- const EventStreamProvider<MouseEvent>('dragstart');
-
- @DomName('GlobalEventHandlers.dropEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MouseEvent> dropEvent =
- const EventStreamProvider<MouseEvent>('drop');
-
- @DomName('GlobalEventHandlers.durationchangeEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> durationChangeEvent =
- const EventStreamProvider<Event>('durationchange');
-
- @DomName('GlobalEventHandlers.emptiedEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> emptiedEvent =
- const EventStreamProvider<Event>('emptied');
-
- @DomName('GlobalEventHandlers.endedEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> endedEvent =
- const EventStreamProvider<Event>('ended');
-
- @DomName('GlobalEventHandlers.errorEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> errorEvent =
- const EventStreamProvider<Event>('error');
-
- @DomName('GlobalEventHandlers.focusEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> focusEvent =
- const EventStreamProvider<Event>('focus');
-
- @DomName('GlobalEventHandlers.inputEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> inputEvent =
- const EventStreamProvider<Event>('input');
-
- @DomName('GlobalEventHandlers.invalidEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> invalidEvent =
- const EventStreamProvider<Event>('invalid');
-
- @DomName('GlobalEventHandlers.keydownEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<KeyboardEvent> keyDownEvent =
- const EventStreamProvider<KeyboardEvent>('keydown');
-
- @DomName('GlobalEventHandlers.keypressEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<KeyboardEvent> keyPressEvent =
- const EventStreamProvider<KeyboardEvent>('keypress');
-
- @DomName('GlobalEventHandlers.keyupEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<KeyboardEvent> keyUpEvent =
- const EventStreamProvider<KeyboardEvent>('keyup');
-
- @DomName('GlobalEventHandlers.loadEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> loadEvent =
- const EventStreamProvider<Event>('load');
-
- @DomName('GlobalEventHandlers.loadeddataEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> loadedDataEvent =
- const EventStreamProvider<Event>('loadeddata');
-
- @DomName('GlobalEventHandlers.loadedmetadataEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> loadedMetadataEvent =
- const EventStreamProvider<Event>('loadedmetadata');
-
- @DomName('GlobalEventHandlers.mousedownEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MouseEvent> mouseDownEvent =
- const EventStreamProvider<MouseEvent>('mousedown');
-
- @DomName('GlobalEventHandlers.mouseenterEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MouseEvent> mouseEnterEvent =
- const EventStreamProvider<MouseEvent>('mouseenter');
-
- @DomName('GlobalEventHandlers.mouseleaveEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MouseEvent> mouseLeaveEvent =
- const EventStreamProvider<MouseEvent>('mouseleave');
-
- @DomName('GlobalEventHandlers.mousemoveEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MouseEvent> mouseMoveEvent =
- const EventStreamProvider<MouseEvent>('mousemove');
-
- @DomName('GlobalEventHandlers.mouseoutEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MouseEvent> mouseOutEvent =
- const EventStreamProvider<MouseEvent>('mouseout');
-
- @DomName('GlobalEventHandlers.mouseoverEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MouseEvent> mouseOverEvent =
- const EventStreamProvider<MouseEvent>('mouseover');
-
- @DomName('GlobalEventHandlers.mouseupEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MouseEvent> mouseUpEvent =
- const EventStreamProvider<MouseEvent>('mouseup');
-
- @DomName('GlobalEventHandlers.mousewheelEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<WheelEvent> mouseWheelEvent =
- const EventStreamProvider<WheelEvent>('mousewheel');
-
- @DomName('GlobalEventHandlers.pauseEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> pauseEvent =
- const EventStreamProvider<Event>('pause');
-
- @DomName('GlobalEventHandlers.playEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> playEvent =
- const EventStreamProvider<Event>('play');
-
- @DomName('GlobalEventHandlers.playingEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> playingEvent =
- const EventStreamProvider<Event>('playing');
-
- @DomName('GlobalEventHandlers.ratechangeEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> rateChangeEvent =
- const EventStreamProvider<Event>('ratechange');
-
- @DomName('GlobalEventHandlers.resetEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> resetEvent =
- const EventStreamProvider<Event>('reset');
-
- @DomName('GlobalEventHandlers.resizeEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> resizeEvent =
- const EventStreamProvider<Event>('resize');
-
- @DomName('GlobalEventHandlers.scrollEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> scrollEvent =
- const EventStreamProvider<Event>('scroll');
-
- @DomName('GlobalEventHandlers.seekedEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> seekedEvent =
- const EventStreamProvider<Event>('seeked');
-
- @DomName('GlobalEventHandlers.seekingEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> seekingEvent =
- const EventStreamProvider<Event>('seeking');
-
- @DomName('GlobalEventHandlers.selectEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> selectEvent =
- const EventStreamProvider<Event>('select');
-
- @DomName('GlobalEventHandlers.stalledEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> stalledEvent =
- const EventStreamProvider<Event>('stalled');
-
- @DomName('GlobalEventHandlers.submitEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> submitEvent =
- const EventStreamProvider<Event>('submit');
-
- @DomName('GlobalEventHandlers.suspendEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> suspendEvent =
- const EventStreamProvider<Event>('suspend');
-
- @DomName('GlobalEventHandlers.timeupdateEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> timeUpdateEvent =
- const EventStreamProvider<Event>('timeupdate');
-
- @DomName('GlobalEventHandlers.touchcancelEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<TouchEvent> touchCancelEvent =
- const EventStreamProvider<TouchEvent>('touchcancel');
-
- @DomName('GlobalEventHandlers.touchendEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<TouchEvent> touchEndEvent =
- const EventStreamProvider<TouchEvent>('touchend');
-
- @DomName('GlobalEventHandlers.touchmoveEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<TouchEvent> touchMoveEvent =
- const EventStreamProvider<TouchEvent>('touchmove');
-
- @DomName('GlobalEventHandlers.touchstartEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<TouchEvent> touchStartEvent =
- const EventStreamProvider<TouchEvent>('touchstart');
-
- @DomName('GlobalEventHandlers.volumechangeEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> volumeChangeEvent =
- const EventStreamProvider<Event>('volumechange');
-
- @DomName('GlobalEventHandlers.waitingEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> waitingEvent =
- const EventStreamProvider<Event>('waiting');
-
- @DomName('GlobalEventHandlers.onabort')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onAbort => abortEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.onblur')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onBlur => blurEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.oncanplay')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onCanPlay => canPlayEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.oncanplaythrough')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onCanPlayThrough => canPlayThroughEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.onchange')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onChange => changeEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.onclick')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<MouseEvent> get onClick => clickEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.oncontextmenu')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<MouseEvent> get onContextMenu => contextMenuEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.ondblclick')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onDoubleClick => doubleClickEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.ondrag')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<MouseEvent> get onDrag => dragEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.ondragend')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<MouseEvent> get onDragEnd => dragEndEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.ondragenter')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<MouseEvent> get onDragEnter => dragEnterEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.ondragleave')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<MouseEvent> get onDragLeave => dragLeaveEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.ondragover')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<MouseEvent> get onDragOver => dragOverEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.ondragstart')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<MouseEvent> get onDragStart => dragStartEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.ondrop')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<MouseEvent> get onDrop => dropEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.ondurationchange')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onDurationChange => durationChangeEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.onemptied')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onEmptied => emptiedEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.onended')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onEnded => endedEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.onerror')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onError => errorEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.onfocus')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onFocus => focusEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.oninput')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onInput => inputEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.oninvalid')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onInvalid => invalidEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.onkeydown')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<KeyboardEvent> get onKeyDown => keyDownEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.onkeypress')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<KeyboardEvent> get onKeyPress => keyPressEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.onkeyup')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<KeyboardEvent> get onKeyUp => keyUpEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.onload')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onLoad => loadEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.onloadeddata')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onLoadedData => loadedDataEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.onloadedmetadata')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onLoadedMetadata => loadedMetadataEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.onmousedown')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<MouseEvent> get onMouseDown => mouseDownEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.onmouseenter')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<MouseEvent> get onMouseEnter => mouseEnterEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.onmouseleave')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<MouseEvent> get onMouseLeave => mouseLeaveEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.onmousemove')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<MouseEvent> get onMouseMove => mouseMoveEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.onmouseout')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<MouseEvent> get onMouseOut => mouseOutEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.onmouseover')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<MouseEvent> get onMouseOver => mouseOverEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.onmouseup')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<MouseEvent> get onMouseUp => mouseUpEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.onmousewheel')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<WheelEvent> get onMouseWheel => mouseWheelEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.onpause')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onPause => pauseEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.onplay')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onPlay => playEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.onplaying')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onPlaying => playingEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.onratechange')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onRateChange => rateChangeEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.onreset')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onReset => resetEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.onresize')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onResize => resizeEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.onscroll')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onScroll => scrollEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.onseeked')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onSeeked => seekedEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.onseeking')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onSeeking => seekingEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.onselect')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onSelect => selectEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.onstalled')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onStalled => stalledEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.onsubmit')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onSubmit => submitEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.onsuspend')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onSuspend => suspendEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.ontimeupdate')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onTimeUpdate => timeUpdateEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.ontouchcancel')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<TouchEvent> get onTouchCancel => touchCancelEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.ontouchend')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<TouchEvent> get onTouchEnd => touchEndEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.ontouchmove')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<TouchEvent> get onTouchMove => touchMoveEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.ontouchstart')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<TouchEvent> get onTouchStart => touchStartEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.onvolumechange')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onVolumeChange => volumeChangeEvent.forTarget(this);
-
- @DomName('GlobalEventHandlers.onwaiting')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onWaiting => waitingEvent.forTarget(this);
-}
-// 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.
-
-@DocsEditable()
-/**
- * An `<hr>` tag.
- */
-@DomName('HTMLHRElement')
-@Native("HTMLHRElement")
-class HRElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory HRElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLHRElement.HTMLHRElement')
- @DocsEditable()
- factory HRElement() => JS('returns:HRElement;creates:HRElement;new:true',
- '#.createElement(#)', document, "hr");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- HRElement.created() : super.created();
-
- @DomName('HTMLHRElement.color')
- @DocsEditable()
- @Experimental() // untriaged
- String color;
-}
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('HashChangeEvent')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("HashChangeEvent")
-class HashChangeEvent extends Event {
- factory HashChangeEvent(String type,
- {bool canBubble: true,
- bool cancelable: true,
- String oldUrl,
- String newUrl}) {
- var options = {
- 'canBubble': canBubble,
- 'cancelable': cancelable,
- 'oldURL': oldUrl,
- 'newURL': newUrl,
- };
- return JS('HashChangeEvent', 'new HashChangeEvent(#, #)', type,
- convertDartToNative_Dictionary(options));
- }
-
- @DomName('HashChangeEvent.HashChangeEvent')
- @DocsEditable()
- factory HashChangeEvent._(String type, [Map eventInitDict]) {
- if (eventInitDict != null) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return HashChangeEvent._create_1(type, eventInitDict_1);
- }
- return HashChangeEvent._create_2(type);
- }
- static HashChangeEvent _create_1(type, eventInitDict) =>
- JS('HashChangeEvent', 'new HashChangeEvent(#,#)', type, eventInitDict);
- static HashChangeEvent _create_2(type) =>
- JS('HashChangeEvent', 'new HashChangeEvent(#)', type);
-
- /// Checks if this type is supported on the current platform.
- static bool get supported => Device.isEventTypeSupported('HashChangeEvent');
-
- @JSName('newURL')
- @DomName('HashChangeEvent.newURL')
- @DocsEditable()
- final String newUrl;
-
- @JSName('oldURL')
- @DomName('HashChangeEvent.oldURL')
- @DocsEditable()
- final String oldUrl;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLHeadElement')
-@Native("HTMLHeadElement")
-class HeadElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory HeadElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLHeadElement.HTMLHeadElement')
- @DocsEditable()
- factory HeadElement() => JS(
- 'returns:HeadElement;creates:HeadElement;new:true',
- '#.createElement(#)',
- document,
- "head");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- HeadElement.created() : super.created();
-}
-// 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.
-
-@DocsEditable()
-@DomName('Headers')
-@Experimental() // untriaged
-@Native("Headers")
-class Headers extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory Headers._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('Headers.Headers')
- @DocsEditable()
- factory Headers([input]) {
- if (input == null) {
- return Headers._create_1();
- }
- if ((input is Headers)) {
- return Headers._create_2(input);
- }
- if ((input is Map)) {
- var input_1 = convertDartToNative_Dictionary(input);
- return Headers._create_3(input_1);
- }
- if ((input is List<Object>)) {
- return Headers._create_4(input);
- }
- throw new ArgumentError("Incorrect number or type of arguments");
- }
- static Headers _create_1() => JS('Headers', 'new Headers()');
- static Headers _create_2(input) => JS('Headers', 'new Headers(#)', input);
- static Headers _create_3(input) => JS('Headers', 'new Headers(#)', input);
- static Headers _create_4(input) => JS('Headers', 'new Headers(#)', input);
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLHeadingElement')
-@Native("HTMLHeadingElement")
-class HeadingElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory HeadingElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLHeadingElement.HTMLHeadingElement')
- @DocsEditable()
- factory HeadingElement.h1() => JS(
- 'returns:HeadingElement;creates:HeadingElement;new:true',
- '#.createElement(#)',
- document,
- "h1");
-
- @DomName('HTMLHeadingElement.HTMLHeadingElement')
- @DocsEditable()
- factory HeadingElement.h2() => JS(
- 'returns:HeadingElement;creates:HeadingElement;new:true',
- '#.createElement(#)',
- document,
- "h2");
-
- @DomName('HTMLHeadingElement.HTMLHeadingElement')
- @DocsEditable()
- factory HeadingElement.h3() => JS(
- 'returns:HeadingElement;creates:HeadingElement;new:true',
- '#.createElement(#)',
- document,
- "h3");
-
- @DomName('HTMLHeadingElement.HTMLHeadingElement')
- @DocsEditable()
- factory HeadingElement.h4() => JS(
- 'returns:HeadingElement;creates:HeadingElement;new:true',
- '#.createElement(#)',
- document,
- "h4");
-
- @DomName('HTMLHeadingElement.HTMLHeadingElement')
- @DocsEditable()
- factory HeadingElement.h5() => JS(
- 'returns:HeadingElement;creates:HeadingElement;new:true',
- '#.createElement(#)',
- document,
- "h5");
-
- @DomName('HTMLHeadingElement.HTMLHeadingElement')
- @DocsEditable()
- factory HeadingElement.h6() => JS(
- 'returns:HeadingElement;creates:HeadingElement;new:true',
- '#.createElement(#)',
- document,
- "h6");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- HeadingElement.created() : super.created();
-}
-// 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.
-
-@DomName('History')
-@Native("History")
-class History extends Interceptor implements HistoryBase {
- /**
- * Checks if the State APIs are supported on the current platform.
- *
- * See also:
- *
- * * [pushState]
- * * [replaceState]
- * * [state]
- */
- static bool get supportsState => JS('bool', '!!window.history.pushState');
- // To suppress missing implicit constructor warnings.
- factory History._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('History.length')
- @DocsEditable()
- final int length;
-
- @DomName('History.scrollRestoration')
- @DocsEditable()
- @Experimental() // untriaged
- String scrollRestoration;
-
- @DomName('History.state')
- @DocsEditable()
- dynamic get state =>
- convertNativeToDart_SerializedScriptValue(this._get_state);
- @JSName('state')
- @DomName('History.state')
- @DocsEditable()
- @annotation_Creates_SerializedScriptValue
- @annotation_Returns_SerializedScriptValue
- final dynamic _get_state;
-
- @DomName('History.back')
- @DocsEditable()
- void back() native;
-
- @DomName('History.forward')
- @DocsEditable()
- void forward() native;
-
- @DomName('History.go')
- @DocsEditable()
- void go([int delta]) native;
-
- @DomName('History.pushState')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.FIREFOX)
- @SupportedBrowser(SupportedBrowser.IE, '10')
- @SupportedBrowser(SupportedBrowser.SAFARI)
- void pushState(/*SerializedScriptValue*/ data, String title, String url) {
- var data_1 = convertDartToNative_SerializedScriptValue(data);
- _pushState_1(data_1, title, url);
- return;
- }
-
- @JSName('pushState')
- @DomName('History.pushState')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.FIREFOX)
- @SupportedBrowser(SupportedBrowser.IE, '10')
- @SupportedBrowser(SupportedBrowser.SAFARI)
- void _pushState_1(data, title, url) native;
-
- @DomName('History.replaceState')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.FIREFOX)
- @SupportedBrowser(SupportedBrowser.IE, '10')
- @SupportedBrowser(SupportedBrowser.SAFARI)
- void replaceState(/*SerializedScriptValue*/ data, String title, String url) {
- var data_1 = convertDartToNative_SerializedScriptValue(data);
- _replaceState_1(data_1, title, url);
- return;
- }
-
- @JSName('replaceState')
- @DomName('History.replaceState')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.FIREFOX)
- @SupportedBrowser(SupportedBrowser.IE, '10')
- @SupportedBrowser(SupportedBrowser.SAFARI)
- void _replaceState_1(data, title, url) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HMDVRDevice')
-@Experimental() // untriaged
-@Native("HMDVRDevice")
-class HmdvrDevice extends VRDevice {
- // To suppress missing implicit constructor warnings.
- factory HmdvrDevice._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HMDVRDevice.getEyeParameters')
- @DocsEditable()
- @Experimental() // untriaged
- VREyeParameters getEyeParameters(String whichEye) native;
-
- @DomName('HMDVRDevice.setFieldOfView')
- @DocsEditable()
- @Experimental() // untriaged
- void setFieldOfView([VRFieldOfView leftFov, VRFieldOfView rightFov]) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLCollection')
-@Native("HTMLCollection")
-class HtmlCollection extends Interceptor
- with ListMixin<Node>, ImmutableListMixin<Node>
- implements JavaScriptIndexingBehavior<Node>, List<Node> {
- // To suppress missing implicit constructor warnings.
- factory HtmlCollection._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLCollection.length')
- @DocsEditable()
- int get length => JS("int", "#.length", this);
-
- Node operator [](int index) {
- if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
- throw new RangeError.index(index, this);
- return JS("Node", "#[#]", this, index);
- }
-
- void operator []=(int index, Node value) {
- throw new UnsupportedError("Cannot assign element of immutable List.");
- }
- // -- start List<Node> mixins.
- // Node is the element type.
-
- set length(int value) {
- throw new UnsupportedError("Cannot resize immutable List.");
- }
-
- Node get first {
- if (this.length > 0) {
- return JS('Node', '#[0]', this);
- }
- throw new StateError("No elements");
- }
-
- Node get last {
- int len = this.length;
- if (len > 0) {
- return JS('Node', '#[#]', this, len - 1);
- }
- throw new StateError("No elements");
- }
-
- Node get single {
- int len = this.length;
- if (len == 1) {
- return JS('Node', '#[0]', this);
- }
- if (len == 0) throw new StateError("No elements");
- throw new StateError("More than one element");
- }
-
- Node elementAt(int index) => this[index];
- // -- end List<Node> mixins.
-
- @DomName('HTMLCollection.item')
- @DocsEditable()
- Node item(int index) native;
-
- @DomName('HTMLCollection.namedItem')
- @DocsEditable()
- Object namedItem(String name) native;
-}
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('HTMLDocument')
-@Native("HTMLDocument")
-class HtmlDocument extends Document {
- // To suppress missing implicit constructor warnings.
- factory HtmlDocument._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('Document.body')
- BodyElement body;
-
- /// UNSTABLE: Chrome-only - create a Range from the given point.
- @DomName('Document.caretRangeFromPoint')
- @Unstable()
- Range caretRangeFromPoint(int x, int y) {
- return _caretRangeFromPoint(x, y);
- }
-
- @DomName('Document.elementFromPoint')
- Element elementFromPoint(int x, int y) {
- return _elementFromPoint(x, y);
- }
-
- /**
- * Checks if the getCssCanvasContext API is supported on the current platform.
- *
- * See also:
- *
- * * [getCssCanvasContext]
- */
- static bool get supportsCssCanvasContext =>
- JS('bool', '!!(document.getCSSCanvasContext)');
-
- /**
- * Gets a CanvasRenderingContext which can be used as the CSS background of an
- * element.
- *
- * CSS:
- *
- * background: -webkit-canvas(backgroundCanvas)
- *
- * Generate the canvas:
- *
- * var context = document.getCssCanvasContext('2d', 'backgroundCanvas',
- * 100, 100);
- * context.fillStyle = 'red';
- * context.fillRect(0, 0, 100, 100);
- *
- * See also:
- *
- * * [supportsCssCanvasContext]
- * * [CanvasElement.getContext]
- */
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- @DomName('Document.getCSSCanvasContext')
- CanvasRenderingContext getCssCanvasContext(
- String contextId, String name, int width, int height) {
- if (HtmlDocument.supportsCssCanvasContext)
- return JS('CanvasRenderingContext', '#.getCSSCanvasContext(#, #, #, #)',
- this, contextId, name, width, height);
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('Document.head')
- HeadElement get head => _head;
-
- @DomName('Document.lastModified')
- String get lastModified => _lastModified;
-
- @DomName('Document.preferredStylesheetSet')
- String get preferredStylesheetSet => _preferredStylesheetSet;
-
- @DomName('Document.referrer')
- String get referrer => _referrer;
-
- @DomName('Document.selectedStylesheetSet')
- String get selectedStylesheetSet => _selectedStylesheetSet;
- set selectedStylesheetSet(String value) {
- _selectedStylesheetSet = value;
- }
-
- @DomName('Document.styleSheets')
- List<StyleSheet> get styleSheets => _styleSheets;
-
- @DomName('Document.title')
- String get title => _title;
-
- @DomName('Document.title')
- set title(String value) {
- _title = value;
- }
-
- /**
- * Returns page to standard layout.
- *
- * Has no effect if the page is not in fullscreen mode.
- *
- * ## Other resources
- *
- * * [Using the fullscreen
- * API](http://docs.webplatform.org/wiki/tutorials/using_the_full-screen_api)
- * from WebPlatform.org.
- * * [Fullscreen specification](http://www.w3.org/TR/fullscreen/) from W3C.
- */
- @DomName('Document.webkitExitFullscreen')
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- void exitFullscreen() {
- _webkitExitFullscreen();
- }
-
- @Experimental()
- /**
- * Register a custom subclass of Element to be instantiatable by the DOM.
- *
- * This is necessary to allow the construction of any custom elements.
- *
- * The class being registered must either subclass HtmlElement or SvgElement.
- * If they subclass these directly then they can be used as:
- *
- * class FooElement extends HtmlElement{
- * void created() {
- * print('FooElement created!');
- * }
- * }
- *
- * main() {
- * document.registerElement('x-foo', FooElement);
- * var myFoo = new Element.tag('x-foo');
- * // prints 'FooElement created!' to the console.
- * }
- *
- * The custom element can also be instantiated via HTML using the syntax
- * `<x-foo></x-foo>`
- *
- * Other elements can be subclassed as well:
- *
- * class BarElement extends InputElement{
- * void created() {
- * print('BarElement created!');
- * }
- * }
- *
- * main() {
- * document.registerElement('x-bar', BarElement);
- * var myBar = new Element.tag('input', 'x-bar');
- * // prints 'BarElement created!' to the console.
- * }
- *
- * This custom element can also be instantiated via HTML using the syntax
- * `<input is="x-bar"></input>`
- *
- */
- void registerElement(String tag, Type customElementClass,
- {String extendsTag}) {
- _registerCustomElement(
- JS('', 'window'), this, tag, customElementClass, extendsTag);
- }
-
- /** *Deprecated*: use [registerElement] instead. */
- @deprecated
- @Experimental()
- void register(String tag, Type customElementClass, {String extendsTag}) {
- return registerElement(tag, customElementClass, extendsTag: extendsTag);
- }
-
- /**
- * Static factory designed to expose `visibilitychange` events to event
- * handlers that are not necessarily instances of [Document].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Document.visibilityChange')
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.FIREFOX)
- @SupportedBrowser(SupportedBrowser.IE, '10')
- @Experimental()
- static const EventStreamProvider<Event> visibilityChangeEvent =
- const _CustomEventStreamProvider<Event>(
- _determineVisibilityChangeEventType);
-
- static String _determineVisibilityChangeEventType(EventTarget e) {
- if (JS('bool', '(typeof #.hidden !== "undefined")', e)) {
- // Opera 12.10 and Firefox 18 and later support
- return 'visibilitychange';
- } else if (JS('bool', '(typeof #.mozHidden !== "undefined")', e)) {
- return 'mozvisibilitychange';
- } else if (JS('bool', '(typeof #.msHidden !== "undefined")', e)) {
- return 'msvisibilitychange';
- } else if (JS('bool', '(typeof #.webkitHidden !== "undefined")', e)) {
- return 'webkitvisibilitychange';
- }
- return 'visibilitychange';
- }
-
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.FIREFOX)
- @SupportedBrowser(SupportedBrowser.IE, '10')
- @Experimental()
- Stream<Event> get onVisibilityChange => visibilityChangeEvent.forTarget(this);
-
- /// Creates an element upgrader which can be used to change the Dart wrapper
- /// type for elements.
- ///
- /// The type specified must be a subclass of HtmlElement, when an element is
- /// upgraded then the created constructor will be invoked on that element.
- ///
- /// If the type is not a direct subclass of HtmlElement then the extendsTag
- /// parameter must be provided.
- @Experimental()
- ElementUpgrader createElementUpgrader(Type type, {String extendsTag}) {
- return new _JSElementUpgrader(this, type, extendsTag);
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLFormControlsCollection')
-@Native("HTMLFormControlsCollection")
-class HtmlFormControlsCollection extends HtmlCollection {
- // To suppress missing implicit constructor warnings.
- factory HtmlFormControlsCollection._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLFormControlsCollection.item')
- @DocsEditable()
- @Experimental() // untriaged
- Node item(int index) native;
-
- @DomName('HTMLFormControlsCollection.namedItem')
- @DocsEditable()
- Object namedItem(String name) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLHtmlElement')
-@Native("HTMLHtmlElement")
-class HtmlHtmlElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory HtmlHtmlElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLHtmlElement.HTMLHtmlElement')
- @DocsEditable()
- factory HtmlHtmlElement() => JS(
- 'returns:HtmlHtmlElement;creates:HtmlHtmlElement;new:true',
- '#.createElement(#)',
- document,
- "html");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- HtmlHtmlElement.created() : super.created();
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLOptionsCollection')
-@Native("HTMLOptionsCollection")
-class HtmlOptionsCollection extends HtmlCollection {
- // To suppress missing implicit constructor warnings.
- factory HtmlOptionsCollection._() {
- throw new UnsupportedError("Not supported");
- }
-
- @JSName('item')
- @DomName('HTMLOptionsCollection.item')
- @DocsEditable()
- @Experimental() // untriaged
- Node _item(int index) native;
-}
-// 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.
-
-/**
- * A client-side XHR request for getting data from a URL,
- * formally known as XMLHttpRequest.
- *
- * HttpRequest can be used to obtain data from HTTP and FTP protocols,
- * and is useful for AJAX-style page updates.
- *
- * The simplest way to get the contents of a text file, such as a
- * JSON-formatted file, is with [getString].
- * For example, the following code gets the contents of a JSON file
- * and prints its length:
- *
- * var path = 'myData.json';
- * HttpRequest.getString(path)
- * .then((String fileContents) {
- * print(fileContents.length);
- * })
- * .catchError((Error error) {
- * print(error.toString());
- * });
- *
- * ## Fetching data from other servers
- *
- * For security reasons, browsers impose restrictions on requests
- * made by embedded apps.
- * With the default behavior of this class,
- * the code making the request must be served from the same origin
- * (domain name, port, and application layer protocol)
- * as the requested resource.
- * In the example above, the myData.json file must be co-located with the
- * app that uses it.
- * You might be able to
- * [get around this restriction](http://www.dartlang.org/articles/json-web-service/#a-note-on-cors-and-httprequest)
- * by using CORS headers or JSONP.
- *
- * ## Other resources
- *
- * * [Fetch Data Dynamically](https://www.dartlang.org/docs/tutorials/fetchdata/),
- * a tutorial from _A Game of Darts_,
- * shows two different ways to use HttpRequest to get a JSON file.
- * * [Get Input from a Form](https://www.dartlang.org/docs/tutorials/forms/),
- * another tutorial from _A Game of Darts_,
- * shows using HttpRequest with a custom server.
- * * [Dart article on using HttpRequests](http://www.dartlang.org/articles/json-web-service/#getting-data)
- * * [JS XMLHttpRequest](https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest)
- * * [Using XMLHttpRequest](https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest/Using_XMLHttpRequest)
- */
-@DomName('XMLHttpRequest')
-@Native("XMLHttpRequest")
-class HttpRequest extends HttpRequestEventTarget {
- /**
- * Creates a GET request for the specified [url].
- *
- * The server response must be a `text/` mime type for this request to
- * succeed.
- *
- * This is similar to [request] but specialized for HTTP GET requests which
- * return text content.
- *
- * To add query parameters, append them to the [url] following a `?`,
- * joining each key to its value with `=` and separating key-value pairs with
- * `&`.
- *
- * var name = Uri.encodeQueryComponent('John');
- * var id = Uri.encodeQueryComponent('42');
- * HttpRequest.getString('users.json?name=$name&id=$id')
- * .then((HttpRequest resp) {
- * // Do something with the response.
- * });
- *
- * See also:
- *
- * * [request]
- */
- static Future<String> getString(String url,
- {bool withCredentials, void onProgress(ProgressEvent e)}) {
- return request(url,
- withCredentials: withCredentials, onProgress: onProgress)
- .then((HttpRequest xhr) => xhr.responseText);
- }
-
- /**
- * Makes a server POST request with the specified data encoded as form data.
- *
- * This is roughly the POST equivalent of getString. This method is similar
- * to sending a FormData object with broader browser support but limited to
- * String values.
- *
- * If [data] is supplied, the key/value pairs are URI encoded with
- * [Uri.encodeQueryComponent] and converted into an HTTP query string.
- *
- * Unless otherwise specified, this method appends the following header:
- *
- * Content-Type: application/x-www-form-urlencoded; charset=UTF-8
- *
- * Here's an example of using this method:
- *
- * var data = { 'firstName' : 'John', 'lastName' : 'Doe' };
- * HttpRequest.postFormData('/send', data).then((HttpRequest resp) {
- * // Do something with the response.
- * });
- *
- * See also:
- *
- * * [request]
- */
- static Future<HttpRequest> postFormData(String url, Map<String, String> data,
- {bool withCredentials,
- String responseType,
- Map<String, String> requestHeaders,
- void onProgress(ProgressEvent e)}) {
- var parts = [];
- data.forEach((key, value) {
- parts.add('${Uri.encodeQueryComponent(key)}='
- '${Uri.encodeQueryComponent(value)}');
- });
- var formData = parts.join('&');
-
- if (requestHeaders == null) {
- requestHeaders = <String, String>{};
- }
- requestHeaders.putIfAbsent('Content-Type',
- () => 'application/x-www-form-urlencoded; charset=UTF-8');
-
- return request(url,
- method: 'POST',
- withCredentials: withCredentials,
- responseType: responseType,
- requestHeaders: requestHeaders,
- sendData: formData,
- onProgress: onProgress);
- }
-
- /**
- * Creates and sends a URL request for the specified [url].
- *
- * By default `request` will perform an HTTP GET request, but a different
- * method (`POST`, `PUT`, `DELETE`, etc) can be used by specifying the
- * [method] parameter. (See also [HttpRequest.postFormData] for `POST`
- * requests only.
- *
- * The Future is completed when the response is available.
- *
- * If specified, `sendData` will send data in the form of a [ByteBuffer],
- * [Blob], [Document], [String], or [FormData] along with the HttpRequest.
- *
- * If specified, [responseType] sets the desired response format for the
- * request. By default it is [String], but can also be 'arraybuffer', 'blob',
- * 'document', 'json', or 'text'. See also [HttpRequest.responseType]
- * for more information.
- *
- * The [withCredentials] parameter specified that credentials such as a cookie
- * (already) set in the header or
- * [authorization headers](http://tools.ietf.org/html/rfc1945#section-10.2)
- * should be specified for the request. Details to keep in mind when using
- * credentials:
- *
- * * Using credentials is only useful for cross-origin requests.
- * * The `Access-Control-Allow-Origin` header of `url` cannot contain a wildcard (*).
- * * The `Access-Control-Allow-Credentials` header of `url` must be set to true.
- * * If `Access-Control-Expose-Headers` has not been set to true, only a subset of all the response headers will be returned when calling [getAllRequestHeaders].
- *
- * The following is equivalent to the [getString] sample above:
- *
- * var name = Uri.encodeQueryComponent('John');
- * var id = Uri.encodeQueryComponent('42');
- * HttpRequest.request('users.json?name=$name&id=$id')
- * .then((HttpRequest resp) {
- * // Do something with the response.
- * });
- *
- * Here's an example of submitting an entire form with [FormData].
- *
- * var myForm = querySelector('form#myForm');
- * var data = new FormData(myForm);
- * HttpRequest.request('/submit', method: 'POST', sendData: data)
- * .then((HttpRequest resp) {
- * // Do something with the response.
- * });
- *
- * Note that requests for file:// URIs are only supported by Chrome extensions
- * with appropriate permissions in their manifest. Requests to file:// URIs
- * will also never fail- the Future will always complete successfully, even
- * when the file cannot be found.
- *
- * See also: [authorization headers](http://en.wikipedia.org/wiki/Basic_access_authentication).
- */
- static Future<HttpRequest> request(String url,
- {String method,
- bool withCredentials,
- String responseType,
- String mimeType,
- Map<String, String> requestHeaders,
- sendData,
- void onProgress(ProgressEvent e)}) {
- var completer = new Completer<HttpRequest>();
-
- var xhr = new HttpRequest();
- if (method == null) {
- method = 'GET';
- }
- xhr.open(method, url, async: true);
-
- if (withCredentials != null) {
- xhr.withCredentials = withCredentials;
- }
-
- if (responseType != null) {
- xhr.responseType = responseType;
- }
-
- if (mimeType != null) {
- xhr.overrideMimeType(mimeType);
- }
-
- if (requestHeaders != null) {
- requestHeaders.forEach((header, value) {
- xhr.setRequestHeader(header, value);
- });
- }
-
- if (onProgress != null) {
- xhr.onProgress.listen(onProgress);
- }
-
- xhr.onLoad.listen((e) {
- var accepted = xhr.status >= 200 && xhr.status < 300;
- var fileUri = xhr.status == 0; // file:// URIs have status of 0.
- var notModified = xhr.status == 304;
- // Redirect status is specified up to 307, but others have been used in
- // practice. Notably Google Drive uses 308 Resume Incomplete for
- // resumable uploads, and it's also been used as a redirect. The
- // redirect case will be handled by the browser before it gets to us,
- // so if we see it we should pass it through to the user.
- var unknownRedirect = xhr.status > 307 && xhr.status < 400;
-
- if (accepted || fileUri || notModified || unknownRedirect) {
- completer.complete(xhr);
- } else {
- completer.completeError(e);
- }
- });
-
- xhr.onError.listen(completer.completeError);
-
- if (sendData != null) {
- xhr.send(sendData);
- } else {
- xhr.send();
- }
-
- return completer.future;
- }
-
- /**
- * Checks to see if the Progress event is supported on the current platform.
- */
- static bool get supportsProgressEvent {
- var xhr = new HttpRequest();
- return JS('bool', '("onprogress" in #)', xhr);
- }
-
- /**
- * Checks to see if the current platform supports making cross origin
- * requests.
- *
- * Note that even if cross origin requests are supported, they still may fail
- * if the destination server does not support CORS requests.
- */
- static bool get supportsCrossOrigin {
- var xhr = new HttpRequest();
- return JS('bool', '("withCredentials" in #)', xhr);
- }
-
- /**
- * Checks to see if the LoadEnd event is supported on the current platform.
- */
- static bool get supportsLoadEndEvent {
- var xhr = new HttpRequest();
- return JS('bool', '("onloadend" in #)', xhr);
- }
-
- /**
- * Checks to see if the overrideMimeType method is supported on the current
- * platform.
- */
- static bool get supportsOverrideMimeType {
- var xhr = new HttpRequest();
- return JS('bool', '("overrideMimeType" in #)', xhr);
- }
-
- /**
- * Makes a cross-origin request to the specified URL.
- *
- * This API provides a subset of [request] which works on IE9. If IE9
- * cross-origin support is not required then [request] should be used instead.
- */
- @Experimental()
- static Future<String> requestCrossOrigin(String url,
- {String method, String sendData}) {
- if (supportsCrossOrigin) {
- return request(url, method: method, sendData: sendData).then((xhr) {
- return xhr.responseText;
- });
- }
- var completer = new Completer<String>();
- if (method == null) {
- method = 'GET';
- }
- var xhr = JS('var', 'new XDomainRequest()');
- JS('', '#.open(#, #)', xhr, method, url);
- JS(
- '',
- '#.onload = #',
- xhr,
- convertDartClosureToJS((e) {
- var response = JS('String', '#.responseText', xhr);
- completer.complete(response);
- }, 1));
- JS(
- '',
- '#.onerror = #',
- xhr,
- convertDartClosureToJS((e) {
- completer.completeError(e);
- }, 1));
-
- // IE9 RTM - XDomainRequest issued requests may abort if all event handlers
- // not specified
- // http://social.msdn.microsoft.com/Forums/ie/en-US/30ef3add-767c-4436-b8a9-f1ca19b4812e/ie9-rtm-xdomainrequest-issued-requests-may-abort-if-all-event-handlers-not-specified
- JS('', '#.onprogress = {}', xhr);
- JS('', '#.ontimeout = {}', xhr);
- JS('', '#.timeout = Number.MAX_VALUE', xhr);
-
- if (sendData != null) {
- JS('', '#.send(#)', xhr, sendData);
- } else {
- JS('', '#.send()', xhr);
- }
-
- return completer.future;
- }
-
- /**
- * Returns all response headers as a key-value map.
- *
- * Multiple values for the same header key can be combined into one,
- * separated by a comma and a space.
- *
- * See: http://www.w3.org/TR/XMLHttpRequest/#the-getresponseheader()-method
- */
- Map<String, String> get responseHeaders {
- // from Closure's goog.net.Xhrio.getResponseHeaders.
- var headers = <String, String>{};
- var headersString = this.getAllResponseHeaders();
- if (headersString == null) {
- return headers;
- }
- var headersList = headersString.split('\r\n');
- for (var header in headersList) {
- if (header.isEmpty) {
- continue;
- }
-
- var splitIdx = header.indexOf(': ');
- if (splitIdx == -1) {
- continue;
- }
- var key = header.substring(0, splitIdx).toLowerCase();
- var value = header.substring(splitIdx + 2);
- if (headers.containsKey(key)) {
- headers[key] = '${headers[key]}, $value';
- } else {
- headers[key] = value;
- }
- }
- return headers;
- }
-
- /**
- * Specify the desired `url`, and `method` to use in making the request.
- *
- * By default the request is done asyncronously, with no user or password
- * authentication information. If `async` is false, the request will be send
- * synchronously.
- *
- * Calling `open` again on a currently active request is equivalent to
- * calling `abort`.
- *
- * Note: Most simple HTTP requests can be accomplished using the [getString],
- * [request], [requestCrossOrigin], or [postFormData] methods. Use of this
- * `open` method is intended only for more complex HTTP requests where
- * finer-grained control is needed.
- */
- @DomName('XMLHttpRequest.open')
- @DocsEditable()
- void open(String method, String url,
- {bool async, String user, String password}) native;
-
- // To suppress missing implicit constructor warnings.
- factory HttpRequest._() {
- throw new UnsupportedError("Not supported");
- }
-
- /**
- * Static factory designed to expose `readystatechange` events to event
- * handlers that are not necessarily instances of [HttpRequest].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('XMLHttpRequest.readystatechangeEvent')
- @DocsEditable()
- static const EventStreamProvider<ProgressEvent> readyStateChangeEvent =
- const EventStreamProvider<ProgressEvent>('readystatechange');
-
- /**
- * General constructor for any type of request (GET, POST, etc).
- *
- * This call is used in conjunction with [open]:
- *
- * var request = new HttpRequest();
- * request.open('GET', 'http://dartlang.org');
- * request.onLoad.listen((event) => print(
- * 'Request complete ${event.target.reponseText}'));
- * request.send();
- *
- * is the (more verbose) equivalent of
- *
- * HttpRequest.getString('http://dartlang.org').then(
- * (result) => print('Request complete: $result'));
- */
- @DomName('XMLHttpRequest.XMLHttpRequest')
- @DocsEditable()
- factory HttpRequest() {
- return HttpRequest._create_1();
- }
- static HttpRequest _create_1() => JS('HttpRequest', 'new XMLHttpRequest()');
-
- @DomName('XMLHttpRequest.DONE')
- @DocsEditable()
- static const int DONE = 4;
-
- @DomName('XMLHttpRequest.HEADERS_RECEIVED')
- @DocsEditable()
- static const int HEADERS_RECEIVED = 2;
-
- @DomName('XMLHttpRequest.LOADING')
- @DocsEditable()
- static const int LOADING = 3;
-
- @DomName('XMLHttpRequest.OPENED')
- @DocsEditable()
- static const int OPENED = 1;
-
- @DomName('XMLHttpRequest.UNSENT')
- @DocsEditable()
- static const int UNSENT = 0;
-
- /**
- * Indicator of the current state of the request:
- *
- * <table>
- * <tr>
- * <td>Value</td>
- * <td>State</td>
- * <td>Meaning</td>
- * </tr>
- * <tr>
- * <td>0</td>
- * <td>unsent</td>
- * <td><code>open()</code> has not yet been called</td>
- * </tr>
- * <tr>
- * <td>1</td>
- * <td>opened</td>
- * <td><code>send()</code> has not yet been called</td>
- * </tr>
- * <tr>
- * <td>2</td>
- * <td>headers received</td>
- * <td><code>sent()</code> has been called; response headers and <code>status</code> are available</td>
- * </tr>
- * <tr>
- * <td>3</td> <td>loading</td> <td><code>responseText</code> holds some data</td>
- * </tr>
- * <tr>
- * <td>4</td> <td>done</td> <td>request is complete</td>
- * </tr>
- * </table>
- */
- @DomName('XMLHttpRequest.readyState')
- @DocsEditable()
- final int readyState;
-
- /**
- * The data received as a reponse from the request.
- *
- * The data could be in the
- * form of a [String], [ByteBuffer], [Document], [Blob], or json (also a
- * [String]). `null` indicates request failure.
- */
- @DomName('XMLHttpRequest.response')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.FIREFOX)
- @SupportedBrowser(SupportedBrowser.IE, '10')
- @SupportedBrowser(SupportedBrowser.SAFARI)
- dynamic get response => _convertNativeToDart_XHR_Response(this._get_response);
- @JSName('response')
- /**
- * The data received as a reponse from the request.
- *
- * The data could be in the
- * form of a [String], [ByteBuffer], [Document], [Blob], or json (also a
- * [String]). `null` indicates request failure.
- */
- @DomName('XMLHttpRequest.response')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.FIREFOX)
- @SupportedBrowser(SupportedBrowser.IE, '10')
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Creates(
- 'NativeByteBuffer|Blob|Document|=Object|JSExtendableArray|String|num')
- final dynamic _get_response;
-
- /**
- * The response in String form or empty String on failure.
- */
- @DomName('XMLHttpRequest.responseText')
- @DocsEditable()
- final String responseText;
-
- /**
- * [String] telling the server the desired response format.
- *
- * Default is `String`.
- * Other options are one of 'arraybuffer', 'blob', 'document', 'json',
- * 'text'. Some newer browsers will throw NS_ERROR_DOM_INVALID_ACCESS_ERR if
- * `responseType` is set while performing a synchronous request.
- *
- * See also: [MDN
- * responseType](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest#xmlhttprequest-responsetype)
- */
- @DomName('XMLHttpRequest.responseType')
- @DocsEditable()
- String responseType;
-
- @JSName('responseURL')
- @DomName('XMLHttpRequest.responseURL')
- @DocsEditable()
- @Experimental() // untriaged
- final String responseUrl;
-
- @JSName('responseXML')
- /**
- * The request response, or null on failure.
- *
- * The response is processed as
- * `text/xml` stream, unless responseType = 'document' and the request is
- * synchronous.
- */
- @DomName('XMLHttpRequest.responseXML')
- @DocsEditable()
- final Document responseXml;
-
- /**
- * The HTTP result code from the request (200, 404, etc).
- * See also: [HTTP Status Codes](http://en.wikipedia.org/wiki/List_of_HTTP_status_codes)
- */
- @DomName('XMLHttpRequest.status')
- @DocsEditable()
- final int status;
-
- /**
- * The request response string (such as \"200 OK\").
- * See also: [HTTP Status Codes](http://en.wikipedia.org/wiki/List_of_HTTP_status_codes)
- */
- @DomName('XMLHttpRequest.statusText')
- @DocsEditable()
- final String statusText;
-
- /**
- * Length of time in milliseconds before a request is automatically
- * terminated.
- *
- * When the time has passed, a [TimeoutEvent] is dispatched.
- *
- * If [timeout] is set to 0, then the request will not time out.
- *
- * ## Other resources
- *
- * * [XMLHttpRequest.timeout](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest#xmlhttprequest-timeout)
- * from MDN.
- * * [The timeout attribute](http://www.w3.org/TR/XMLHttpRequest/#the-timeout-attribute)
- * from W3C.
- */
- @DomName('XMLHttpRequest.timeout')
- @DocsEditable()
- @Experimental() // untriaged
- int timeout;
-
- /**
- * [EventTarget] that can hold listeners to track the progress of the request.
- * The events fired will be members of [HttpRequestUploadEvents].
- */
- @DomName('XMLHttpRequest.upload')
- @DocsEditable()
- @Unstable()
- final HttpRequestUpload upload;
-
- /**
- * True if cross-site requests should use credentials such as cookies
- * or authorization headers; false otherwise.
- *
- * This value is ignored for same-site requests.
- */
- @DomName('XMLHttpRequest.withCredentials')
- @DocsEditable()
- bool withCredentials;
-
- /**
- * Stop the current request.
- *
- * The request can only be stopped if readyState is `HEADERS_RECEIVED` or
- * `LOADING`. If this method is not in the process of being sent, the method
- * has no effect.
- */
- @DomName('XMLHttpRequest.abort')
- @DocsEditable()
- void abort() native;
-
- /**
- * Retrieve all the response headers from a request.
- *
- * `null` if no headers have been received. For multipart requests,
- * `getAllResponseHeaders` will return the response headers for the current
- * part of the request.
- *
- * See also [HTTP response
- * headers](https://en.wikipedia.org/wiki/List_of_HTTP_header_fields#Response_fields)
- * for a list of common response headers.
- */
- @DomName('XMLHttpRequest.getAllResponseHeaders')
- @DocsEditable()
- @Unstable()
- String getAllResponseHeaders() native;
-
- /**
- * Return the response header named `header`, or null if not found.
- *
- * See also [HTTP response
- * headers](https://en.wikipedia.org/wiki/List_of_HTTP_header_fields#Response_fields)
- * for a list of common response headers.
- */
- @DomName('XMLHttpRequest.getResponseHeader')
- @DocsEditable()
- @Unstable()
- String getResponseHeader(String name) native;
-
- /**
- * Specify a particular MIME type (such as `text/xml`) desired for the
- * response.
- *
- * This value must be set before the request has been sent. See also the list
- * of [IANA Official MIME types](https://www.iana.org/assignments/media-types/media-types.xhtml)
- */
- @DomName('XMLHttpRequest.overrideMimeType')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.FIREFOX)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- void overrideMimeType(String mime) native;
-
- /**
- * Send the request with any given `data`.
- *
- * Note: Most simple HTTP requests can be accomplished using the [getString],
- * [request], [requestCrossOrigin], or [postFormData] methods. Use of this
- * `send` method is intended only for more complex HTTP requests where
- * finer-grained control is needed.
- *
- * ## Other resources
- *
- * * [XMLHttpRequest.send](https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#send%28%29)
- * from MDN.
- */
- @DomName('XMLHttpRequest.send')
- @DocsEditable()
- void send([body_OR_data]) native;
-
- /**
- * Sets the value of an HTTP request header.
- *
- * This method should be called after the request is opened, but before
- * the request is sent.
- *
- * Multiple calls with the same header will combine all their values into a
- * single header.
- *
- * ## Other resources
- *
- * * [XMLHttpRequest.setRequestHeader](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest#setRequestHeader())
- * from MDN.
- * * [The setRequestHeader()
- * method](http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader()-method)
- * from W3C.
- */
- @DomName('XMLHttpRequest.setRequestHeader')
- @DocsEditable()
- void setRequestHeader(String name, String value) native;
-
- /// Stream of `readystatechange` events handled by this [HttpRequest].
-/**
- * Event listeners to be notified every time the [HttpRequest]
- * object's `readyState` changes values.
- */
- @DomName('XMLHttpRequest.onreadystatechange')
- @DocsEditable()
- Stream<ProgressEvent> get onReadyStateChange =>
- readyStateChangeEvent.forTarget(this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('XMLHttpRequestEventTarget')
-@Experimental() // untriaged
-@Native("XMLHttpRequestEventTarget")
-class HttpRequestEventTarget extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory HttpRequestEventTarget._() {
- throw new UnsupportedError("Not supported");
- }
-
- /**
- * Static factory designed to expose `abort` events to event
- * handlers that are not necessarily instances of [HttpRequestEventTarget].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('XMLHttpRequestEventTarget.abortEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<ProgressEvent> abortEvent =
- const EventStreamProvider<ProgressEvent>('abort');
-
- /**
- * Static factory designed to expose `error` events to event
- * handlers that are not necessarily instances of [HttpRequestEventTarget].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('XMLHttpRequestEventTarget.errorEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<ProgressEvent> errorEvent =
- const EventStreamProvider<ProgressEvent>('error');
-
- /**
- * Static factory designed to expose `load` events to event
- * handlers that are not necessarily instances of [HttpRequestEventTarget].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('XMLHttpRequestEventTarget.loadEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<ProgressEvent> loadEvent =
- const EventStreamProvider<ProgressEvent>('load');
-
- /**
- * Static factory designed to expose `loadend` events to event
- * handlers that are not necessarily instances of [HttpRequestEventTarget].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('XMLHttpRequestEventTarget.loadendEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<ProgressEvent> loadEndEvent =
- const EventStreamProvider<ProgressEvent>('loadend');
-
- /**
- * Static factory designed to expose `loadstart` events to event
- * handlers that are not necessarily instances of [HttpRequestEventTarget].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('XMLHttpRequestEventTarget.loadstartEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<ProgressEvent> loadStartEvent =
- const EventStreamProvider<ProgressEvent>('loadstart');
-
- /**
- * Static factory designed to expose `progress` events to event
- * handlers that are not necessarily instances of [HttpRequestEventTarget].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('XMLHttpRequestEventTarget.progressEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<ProgressEvent> progressEvent =
- const EventStreamProvider<ProgressEvent>('progress');
-
- /**
- * Static factory designed to expose `timeout` events to event
- * handlers that are not necessarily instances of [HttpRequestEventTarget].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('XMLHttpRequestEventTarget.timeoutEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<ProgressEvent> timeoutEvent =
- const EventStreamProvider<ProgressEvent>('timeout');
-
- /// Stream of `abort` events handled by this [HttpRequestEventTarget].
- @DomName('XMLHttpRequestEventTarget.onabort')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<ProgressEvent> get onAbort => abortEvent.forTarget(this);
-
- /// Stream of `error` events handled by this [HttpRequestEventTarget].
- @DomName('XMLHttpRequestEventTarget.onerror')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<ProgressEvent> get onError => errorEvent.forTarget(this);
-
- /// Stream of `load` events handled by this [HttpRequestEventTarget].
- @DomName('XMLHttpRequestEventTarget.onload')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<ProgressEvent> get onLoad => loadEvent.forTarget(this);
-
- /// Stream of `loadend` events handled by this [HttpRequestEventTarget].
- @DomName('XMLHttpRequestEventTarget.onloadend')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.FIREFOX)
- @SupportedBrowser(SupportedBrowser.IE, '10')
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental() // untriaged
- Stream<ProgressEvent> get onLoadEnd => loadEndEvent.forTarget(this);
-
- /// Stream of `loadstart` events handled by this [HttpRequestEventTarget].
- @DomName('XMLHttpRequestEventTarget.onloadstart')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<ProgressEvent> get onLoadStart => loadStartEvent.forTarget(this);
-
- /// Stream of `progress` events handled by this [HttpRequestEventTarget].
- @DomName('XMLHttpRequestEventTarget.onprogress')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.FIREFOX)
- @SupportedBrowser(SupportedBrowser.IE, '10')
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental() // untriaged
- Stream<ProgressEvent> get onProgress => progressEvent.forTarget(this);
-
- /// Stream of `timeout` events handled by this [HttpRequestEventTarget].
- @DomName('XMLHttpRequestEventTarget.ontimeout')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<ProgressEvent> get onTimeout => timeoutEvent.forTarget(this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('XMLHttpRequestUpload')
-// http://xhr.spec.whatwg.org/#xmlhttprequestupload
-@Experimental()
-@Native("XMLHttpRequestUpload")
-class HttpRequestUpload extends HttpRequestEventTarget {
- // To suppress missing implicit constructor warnings.
- factory HttpRequestUpload._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLIFrameElement')
-@Native("HTMLIFrameElement")
-class IFrameElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory IFrameElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLIFrameElement.HTMLIFrameElement')
- @DocsEditable()
- factory IFrameElement() => JS(
- 'returns:IFrameElement;creates:IFrameElement;new:true',
- '#.createElement(#)',
- document,
- "iframe");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- IFrameElement.created() : super.created();
-
- @DomName('HTMLIFrameElement.allowFullscreen')
- @DocsEditable()
- @Experimental() // untriaged
- bool allowFullscreen;
-
- @DomName('HTMLIFrameElement.contentWindow')
- @DocsEditable()
- WindowBase get contentWindow =>
- _convertNativeToDart_Window(this._get_contentWindow);
- @JSName('contentWindow')
- @DomName('HTMLIFrameElement.contentWindow')
- @DocsEditable()
- @Creates('Window|=Object')
- @Returns('Window|=Object')
- final dynamic _get_contentWindow;
-
- @DomName('HTMLIFrameElement.height')
- @DocsEditable()
- String height;
-
- @DomName('HTMLIFrameElement.name')
- @DocsEditable()
- String name;
-
- @DomName('HTMLIFrameElement.referrerpolicy')
- @DocsEditable()
- @Experimental() // untriaged
- String referrerpolicy;
-
- @DomName('HTMLIFrameElement.sandbox')
- @DocsEditable()
- final DomTokenList sandbox;
-
- @DomName('HTMLIFrameElement.src')
- @DocsEditable()
- String src;
-
- @DomName('HTMLIFrameElement.srcdoc')
- @DocsEditable()
- String srcdoc;
-
- @DomName('HTMLIFrameElement.width')
- @DocsEditable()
- String width;
-}
-// 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.
-
-@DocsEditable()
-@DomName('IdleDeadline')
-@Experimental() // untriaged
-@Native("IdleDeadline")
-class IdleDeadline extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory IdleDeadline._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('IdleDeadline.didTimeout')
- @DocsEditable()
- @Experimental() // untriaged
- final bool didTimeout;
-
- @DomName('IdleDeadline.timeRemaining')
- @DocsEditable()
- @Experimental() // untriaged
- double timeRemaining() native;
-}
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('IdleRequestCallback')
-@Experimental() // untriaged
-typedef void IdleRequestCallback(IdleDeadline deadline);
-// 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.
-
-@DocsEditable()
-@DomName('ImageBitmap')
-@Experimental() // untriaged
-@Native("ImageBitmap")
-class ImageBitmap extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory ImageBitmap._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('ImageBitmap.height')
- @DocsEditable()
- @Experimental() // untriaged
- final int height;
-
- @DomName('ImageBitmap.width')
- @DocsEditable()
- @Experimental() // untriaged
- final int width;
-
- @DomName('ImageBitmap.close')
- @DocsEditable()
- @Experimental() // untriaged
- void close() native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('ImageBitmapRenderingContext')
-@Experimental() // untriaged
-@Native("ImageBitmapRenderingContext")
-class ImageBitmapRenderingContext extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory ImageBitmapRenderingContext._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('ImageBitmapRenderingContext.canvas')
- @DocsEditable()
- @Experimental() // untriaged
- final CanvasElement canvas;
-
- @DomName('ImageBitmapRenderingContext.transferImageBitmap')
- @DocsEditable()
- @Experimental() // untriaged
- void transferImageBitmap(ImageBitmap bitmap) native;
-}
-// 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.
-
-@DomName('ImageData')
-@Native("ImageData")
-class ImageData extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory ImageData._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('ImageData.ImageData')
- @DocsEditable()
- factory ImageData(data_OR_sw, int sh_OR_sw, [int sh]) {
- if ((sh_OR_sw is int) && (data_OR_sw is int) && sh == null) {
- return ImageData._create_1(data_OR_sw, sh_OR_sw);
- }
- if ((sh_OR_sw is int) && (data_OR_sw is Uint8ClampedList) && sh == null) {
- return ImageData._create_2(data_OR_sw, sh_OR_sw);
- }
- if ((sh is int) && (sh_OR_sw is int) && (data_OR_sw is Uint8ClampedList)) {
- return ImageData._create_3(data_OR_sw, sh_OR_sw, sh);
- }
- throw new ArgumentError("Incorrect number or type of arguments");
- }
- static ImageData _create_1(data_OR_sw, sh_OR_sw) =>
- JS('ImageData', 'new ImageData(#,#)', data_OR_sw, sh_OR_sw);
- static ImageData _create_2(data_OR_sw, sh_OR_sw) =>
- JS('ImageData', 'new ImageData(#,#)', data_OR_sw, sh_OR_sw);
- static ImageData _create_3(data_OR_sw, sh_OR_sw, sh) =>
- JS('ImageData', 'new ImageData(#,#,#)', data_OR_sw, sh_OR_sw, sh);
-
- @DomName('ImageData.data')
- @DocsEditable()
- @Creates('NativeUint8ClampedList')
- @Returns('NativeUint8ClampedList')
- final Uint8ClampedList data;
-
- @DomName('ImageData.height')
- @DocsEditable()
- final int height;
-
- @DomName('ImageData.width')
- @DocsEditable()
- final int width;
-}
-// 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.
-
-@DomName('HTMLImageElement')
-@Native("HTMLImageElement")
-class ImageElement extends HtmlElement implements CanvasImageSource {
- // To suppress missing implicit constructor warnings.
- factory ImageElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLImageElement.HTMLImageElement')
- @DocsEditable()
- factory ImageElement({String src, int width, int height}) {
- ImageElement e = JS('returns:ImageElement;creates:ImageElement;new:true',
- '#.createElement(#)', document, "img");
- if (src != null) e.src = src;
- if (width != null) e.width = width;
- if (height != null) e.height = height;
- return e;
- }
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- ImageElement.created() : super.created();
-
- @DomName('HTMLImageElement.alt')
- @DocsEditable()
- String alt;
-
- @DomName('HTMLImageElement.complete')
- @DocsEditable()
- final bool complete;
-
- @DomName('HTMLImageElement.crossOrigin')
- @DocsEditable()
- String crossOrigin;
-
- @DomName('HTMLImageElement.currentSrc')
- @DocsEditable()
- @Experimental() // untriaged
- final String currentSrc;
-
- @DomName('HTMLImageElement.height')
- @DocsEditable()
- int height;
-
- @DomName('HTMLImageElement.isMap')
- @DocsEditable()
- bool isMap;
-
- @DomName('HTMLImageElement.naturalHeight')
- @DocsEditable()
- final int naturalHeight;
-
- @DomName('HTMLImageElement.naturalWidth')
- @DocsEditable()
- final int naturalWidth;
-
- @DomName('HTMLImageElement.referrerpolicy')
- @DocsEditable()
- @Experimental() // untriaged
- String referrerpolicy;
-
- @DomName('HTMLImageElement.sizes')
- @DocsEditable()
- @Experimental() // untriaged
- String sizes;
-
- @DomName('HTMLImageElement.src')
- @DocsEditable()
- String src;
-
- @DomName('HTMLImageElement.srcset')
- @DocsEditable()
- @Experimental() // untriaged
- String srcset;
-
- @DomName('HTMLImageElement.useMap')
- @DocsEditable()
- String useMap;
-
- @DomName('HTMLImageElement.width')
- @DocsEditable()
- int width;
-}
-// 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.
-
-@DocsEditable()
-@DomName('InjectedScriptHost')
-@Experimental() // untriaged
-@Native("InjectedScriptHost")
-class InjectedScriptHost extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory InjectedScriptHost._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('InjectedScriptHost.inspect')
- @DocsEditable()
- @Experimental() // untriaged
- void inspect(Object objectId, Object hints) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('InputDeviceCapabilities')
-@Experimental() // untriaged
-@Native("InputDeviceCapabilities")
-class InputDeviceCapabilities extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory InputDeviceCapabilities._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('InputDeviceCapabilities.InputDeviceCapabilities')
- @DocsEditable()
- factory InputDeviceCapabilities([Map deviceInitDict]) {
- if (deviceInitDict != null) {
- var deviceInitDict_1 = convertDartToNative_Dictionary(deviceInitDict);
- return InputDeviceCapabilities._create_1(deviceInitDict_1);
- }
- return InputDeviceCapabilities._create_2();
- }
- static InputDeviceCapabilities _create_1(deviceInitDict) => JS(
- 'InputDeviceCapabilities',
- 'new InputDeviceCapabilities(#)',
- deviceInitDict);
- static InputDeviceCapabilities _create_2() =>
- JS('InputDeviceCapabilities', 'new InputDeviceCapabilities()');
-
- @DomName('InputDeviceCapabilities.firesTouchEvents')
- @DocsEditable()
- @Experimental() // untriaged
- final bool firesTouchEvents;
-}
-// 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.
-
-@DomName('HTMLInputElement')
-@Native("HTMLInputElement")
-class InputElement extends HtmlElement
- implements
- HiddenInputElement,
- SearchInputElement,
- TextInputElement,
- UrlInputElement,
- TelephoneInputElement,
- EmailInputElement,
- PasswordInputElement,
- DateInputElement,
- MonthInputElement,
- WeekInputElement,
- TimeInputElement,
- LocalDateTimeInputElement,
- NumberInputElement,
- RangeInputElement,
- CheckboxInputElement,
- RadioButtonInputElement,
- FileUploadInputElement,
- SubmitButtonInputElement,
- ImageButtonInputElement,
- ResetButtonInputElement,
- ButtonInputElement {
- factory InputElement({String type}) {
- InputElement e = document.createElement("input");
- if (type != null) {
- try {
- // IE throws an exception for unknown types.
- e.type = type;
- } catch (_) {}
- }
- return e;
- }
-
- // To suppress missing implicit constructor warnings.
- factory InputElement._() {
- throw new UnsupportedError("Not supported");
- }
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- InputElement.created() : super.created();
-
- @DomName('HTMLInputElement.accept')
- @DocsEditable()
- String accept;
-
- @DomName('HTMLInputElement.alt')
- @DocsEditable()
- String alt;
-
- @DomName('HTMLInputElement.autocapitalize')
- @DocsEditable()
- @Experimental() // untriaged
- String autocapitalize;
-
- @DomName('HTMLInputElement.autocomplete')
- @DocsEditable()
- String autocomplete;
-
- @DomName('HTMLInputElement.autofocus')
- @DocsEditable()
- bool autofocus;
-
- @DomName('HTMLInputElement.capture')
- @DocsEditable()
- @Experimental() // untriaged
- bool capture;
-
- @DomName('HTMLInputElement.checked')
- @DocsEditable()
- bool checked;
-
- @DomName('HTMLInputElement.defaultChecked')
- @DocsEditable()
- bool defaultChecked;
-
- @DomName('HTMLInputElement.defaultValue')
- @DocsEditable()
- String defaultValue;
-
- @DomName('HTMLInputElement.dirName')
- @DocsEditable()
- String dirName;
-
- @DomName('HTMLInputElement.disabled')
- @DocsEditable()
- bool disabled;
-
- @DomName('HTMLInputElement.files')
- @DocsEditable()
- @Returns('FileList|Null')
- @Creates('FileList')
- List<File> files;
-
- @DomName('HTMLInputElement.form')
- @DocsEditable()
- final FormElement form;
-
- @DomName('HTMLInputElement.formAction')
- @DocsEditable()
- String formAction;
-
- @DomName('HTMLInputElement.formEnctype')
- @DocsEditable()
- String formEnctype;
-
- @DomName('HTMLInputElement.formMethod')
- @DocsEditable()
- String formMethod;
-
- @DomName('HTMLInputElement.formNoValidate')
- @DocsEditable()
- bool formNoValidate;
-
- @DomName('HTMLInputElement.formTarget')
- @DocsEditable()
- String formTarget;
-
- @DomName('HTMLInputElement.height')
- @DocsEditable()
- int height;
-
- @DomName('HTMLInputElement.incremental')
- @DocsEditable()
- // http://www.w3.org/TR/html-markup/input.search.html
- @Experimental()
- bool incremental;
-
- @DomName('HTMLInputElement.indeterminate')
- @DocsEditable()
- bool indeterminate;
-
- @DomName('HTMLInputElement.inputMode')
- @DocsEditable()
- @Experimental() // untriaged
- String inputMode;
-
- @DomName('HTMLInputElement.labels')
- @DocsEditable()
- @Returns('NodeList|Null')
- @Creates('NodeList')
- final List<Node> labels;
-
- @DomName('HTMLInputElement.list')
- @DocsEditable()
- final HtmlElement list;
-
- @DomName('HTMLInputElement.max')
- @DocsEditable()
- String max;
-
- @DomName('HTMLInputElement.maxLength')
- @DocsEditable()
- int maxLength;
-
- @DomName('HTMLInputElement.min')
- @DocsEditable()
- String min;
-
- @DomName('HTMLInputElement.minLength')
- @DocsEditable()
- @Experimental() // untriaged
- int minLength;
-
- @DomName('HTMLInputElement.multiple')
- @DocsEditable()
- bool multiple;
-
- @DomName('HTMLInputElement.name')
- @DocsEditable()
- String name;
-
- @DomName('HTMLInputElement.pattern')
- @DocsEditable()
- String pattern;
-
- @DomName('HTMLInputElement.placeholder')
- @DocsEditable()
- String placeholder;
-
- @DomName('HTMLInputElement.readOnly')
- @DocsEditable()
- bool readOnly;
-
- @DomName('HTMLInputElement.required')
- @DocsEditable()
- bool required;
-
- @DomName('HTMLInputElement.selectionDirection')
- @DocsEditable()
- String selectionDirection;
-
- @DomName('HTMLInputElement.selectionEnd')
- @DocsEditable()
- int selectionEnd;
-
- @DomName('HTMLInputElement.selectionStart')
- @DocsEditable()
- int selectionStart;
-
- @DomName('HTMLInputElement.size')
- @DocsEditable()
- int size;
-
- @DomName('HTMLInputElement.src')
- @DocsEditable()
- String src;
-
- @DomName('HTMLInputElement.step')
- @DocsEditable()
- String step;
-
- @DomName('HTMLInputElement.type')
- @DocsEditable()
- String type;
-
- @DomName('HTMLInputElement.validationMessage')
- @DocsEditable()
- final String validationMessage;
-
- @DomName('HTMLInputElement.validity')
- @DocsEditable()
- final ValidityState validity;
-
- @DomName('HTMLInputElement.value')
- @DocsEditable()
- String value;
-
- @DomName('HTMLInputElement.valueAsDate')
- @DocsEditable()
- DateTime get valueAsDate =>
- convertNativeToDart_DateTime(this._get_valueAsDate);
- @JSName('valueAsDate')
- @DomName('HTMLInputElement.valueAsDate')
- @DocsEditable()
- @Creates('Null')
- final dynamic _get_valueAsDate;
-
- set valueAsDate(DateTime value) {
- this._set_valueAsDate = convertDartToNative_DateTime(value);
- }
-
- set _set_valueAsDate(/*dynamic*/ value) {
- JS("void", "#.valueAsDate = #", this, value);
- }
-
- @DomName('HTMLInputElement.valueAsNumber')
- @DocsEditable()
- num valueAsNumber;
-
- @JSName('webkitEntries')
- @DomName('HTMLInputElement.webkitEntries')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- // http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#concept-input-type-file-selected
- final List<Entry> entries;
-
- @JSName('webkitdirectory')
- @DomName('HTMLInputElement.webkitdirectory')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- // https://plus.sandbox.google.com/+AddyOsmani/posts/Dk5UhZ6zfF3
- bool directory;
-
- @DomName('HTMLInputElement.width')
- @DocsEditable()
- int width;
-
- @DomName('HTMLInputElement.willValidate')
- @DocsEditable()
- final bool willValidate;
-
- @DomName('HTMLInputElement.checkValidity')
- @DocsEditable()
- bool checkValidity() native;
-
- @DomName('HTMLInputElement.reportValidity')
- @DocsEditable()
- @Experimental() // untriaged
- bool reportValidity() native;
-
- @DomName('HTMLInputElement.select')
- @DocsEditable()
- void select() native;
-
- @DomName('HTMLInputElement.setCustomValidity')
- @DocsEditable()
- void setCustomValidity(String error) native;
-
- @DomName('HTMLInputElement.setRangeText')
- @DocsEditable()
- // http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#dom-textarea/input-setrangetext
- @Experimental() // experimental
- void setRangeText(String replacement,
- {int start, int end, String selectionMode}) native;
-
- @DomName('HTMLInputElement.setSelectionRange')
- @DocsEditable()
- void setSelectionRange(int start, int end, [String direction]) native;
-
- @DomName('HTMLInputElement.stepDown')
- @DocsEditable()
- void stepDown([int n]) native;
-
- @DomName('HTMLInputElement.stepUp')
- @DocsEditable()
- void stepUp([int n]) native;
-}
-
-// Interfaces representing the InputElement APIs which are supported
-// for the various types of InputElement. From:
-// http://www.w3.org/html/wg/drafts/html/master/forms.html#the-input-element.
-
-/**
- * Exposes the functionality common between all InputElement types.
- */
-abstract class InputElementBase implements Element {
- @DomName('HTMLInputElement.autofocus')
- bool autofocus;
-
- @DomName('HTMLInputElement.disabled')
- bool disabled;
-
- @DomName('HTMLInputElement.incremental')
- bool incremental;
-
- @DomName('HTMLInputElement.indeterminate')
- bool indeterminate;
-
- @DomName('HTMLInputElement.labels')
- List<Node> get labels;
-
- @DomName('HTMLInputElement.name')
- String name;
-
- @DomName('HTMLInputElement.validationMessage')
- String get validationMessage;
-
- @DomName('HTMLInputElement.validity')
- ValidityState get validity;
-
- @DomName('HTMLInputElement.value')
- String value;
-
- @DomName('HTMLInputElement.willValidate')
- bool get willValidate;
-
- @DomName('HTMLInputElement.checkValidity')
- bool checkValidity();
-
- @DomName('HTMLInputElement.setCustomValidity')
- void setCustomValidity(String error);
-}
-
-/**
- * Hidden input which is not intended to be seen or edited by the user.
- */
-abstract class HiddenInputElement implements InputElementBase {
- factory HiddenInputElement() => new InputElement(type: 'hidden');
-}
-
-/**
- * Base interface for all inputs which involve text editing.
- */
-abstract class TextInputElementBase implements InputElementBase {
- @DomName('HTMLInputElement.autocomplete')
- String autocomplete;
-
- @DomName('HTMLInputElement.maxLength')
- int maxLength;
-
- @DomName('HTMLInputElement.pattern')
- String pattern;
-
- @DomName('HTMLInputElement.placeholder')
- String placeholder;
-
- @DomName('HTMLInputElement.readOnly')
- bool readOnly;
-
- @DomName('HTMLInputElement.required')
- bool required;
-
- @DomName('HTMLInputElement.size')
- int size;
-
- @DomName('HTMLInputElement.select')
- void select();
-
- @DomName('HTMLInputElement.selectionDirection')
- String selectionDirection;
-
- @DomName('HTMLInputElement.selectionEnd')
- int selectionEnd;
-
- @DomName('HTMLInputElement.selectionStart')
- int selectionStart;
-
- @DomName('HTMLInputElement.setSelectionRange')
- void setSelectionRange(int start, int end, [String direction]);
-}
-
-/**
- * Similar to [TextInputElement], but on platforms where search is styled
- * differently this will get the search style.
- *
- * Use [supported] to check if this is supported on the current platform.
- */
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-abstract class SearchInputElement implements TextInputElementBase {
- factory SearchInputElement() => new InputElement(type: 'search');
-
- @DomName('HTMLInputElement.dirName')
- String dirName;
-
- @DomName('HTMLInputElement.list')
- Element get list;
-
- /// Returns true if this input type is supported on the current platform.
- static bool get supported {
- return (new InputElement(type: 'search')).type == 'search';
- }
-}
-
-/**
- * A basic text input editor control.
- */
-abstract class TextInputElement implements TextInputElementBase {
- factory TextInputElement() => new InputElement(type: 'text');
-
- @DomName('HTMLInputElement.dirName')
- String dirName;
-
- @DomName('HTMLInputElement.list')
- Element get list;
-}
-
-/**
- * A control for editing an absolute URL.
- *
- * Use [supported] to check if this is supported on the current platform.
- */
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-abstract class UrlInputElement implements TextInputElementBase {
- factory UrlInputElement() => new InputElement(type: 'url');
-
- @DomName('HTMLInputElement.list')
- Element get list;
-
- /// Returns true if this input type is supported on the current platform.
- static bool get supported {
- return (new InputElement(type: 'url')).type == 'url';
- }
-}
-
-/**
- * Represents a control for editing a telephone number.
- *
- * This provides a single line of text with minimal formatting help since
- * there is a wide variety of telephone numbers.
- *
- * Use [supported] to check if this is supported on the current platform.
- */
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-abstract class TelephoneInputElement implements TextInputElementBase {
- factory TelephoneInputElement() => new InputElement(type: 'tel');
-
- @DomName('HTMLInputElement.list')
- Element get list;
-
- /// Returns true if this input type is supported on the current platform.
- static bool get supported {
- return (new InputElement(type: 'tel')).type == 'tel';
- }
-}
-
-/**
- * An e-mail address or list of e-mail addresses.
- *
- * Use [supported] to check if this is supported on the current platform.
- */
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-abstract class EmailInputElement implements TextInputElementBase {
- factory EmailInputElement() => new InputElement(type: 'email');
-
- @DomName('HTMLInputElement.autocomplete')
- String autocomplete;
-
- @DomName('HTMLInputElement.autofocus')
- bool autofocus;
-
- @DomName('HTMLInputElement.list')
- Element get list;
-
- @DomName('HTMLInputElement.maxLength')
- int maxLength;
-
- @DomName('HTMLInputElement.multiple')
- bool multiple;
-
- @DomName('HTMLInputElement.pattern')
- String pattern;
-
- @DomName('HTMLInputElement.placeholder')
- String placeholder;
-
- @DomName('HTMLInputElement.readOnly')
- bool readOnly;
-
- @DomName('HTMLInputElement.required')
- bool required;
-
- @DomName('HTMLInputElement.size')
- int size;
-
- /// Returns true if this input type is supported on the current platform.
- static bool get supported {
- return (new InputElement(type: 'email')).type == 'email';
- }
-}
-
-/**
- * Text with no line breaks (sensitive information).
- */
-abstract class PasswordInputElement implements TextInputElementBase {
- factory PasswordInputElement() => new InputElement(type: 'password');
-}
-
-/**
- * Base interface for all input element types which involve ranges.
- */
-abstract class RangeInputElementBase implements InputElementBase {
- @DomName('HTMLInputElement.list')
- Element get list;
-
- @DomName('HTMLInputElement.max')
- String max;
-
- @DomName('HTMLInputElement.min')
- String min;
-
- @DomName('HTMLInputElement.step')
- String step;
-
- @DomName('HTMLInputElement.valueAsNumber')
- num valueAsNumber;
-
- @DomName('HTMLInputElement.stepDown')
- void stepDown([int n]);
-
- @DomName('HTMLInputElement.stepUp')
- void stepUp([int n]);
-}
-
-/**
- * A date (year, month, day) with no time zone.
- *
- * Use [supported] to check if this is supported on the current platform.
- */
-@SupportedBrowser(SupportedBrowser.CHROME, '25')
-@Experimental()
-abstract class DateInputElement implements RangeInputElementBase {
- factory DateInputElement() => new InputElement(type: 'date');
-
- @DomName('HTMLInputElement.valueAsDate')
- DateTime valueAsDate;
-
- @DomName('HTMLInputElement.readOnly')
- bool readOnly;
-
- @DomName('HTMLInputElement.required')
- bool required;
-
- /// Returns true if this input type is supported on the current platform.
- static bool get supported {
- return (new InputElement(type: 'date')).type == 'date';
- }
-}
-
-/**
- * A date consisting of a year and a month with no time zone.
- *
- * Use [supported] to check if this is supported on the current platform.
- */
-@SupportedBrowser(SupportedBrowser.CHROME, '25')
-@Experimental()
-abstract class MonthInputElement implements RangeInputElementBase {
- factory MonthInputElement() => new InputElement(type: 'month');
-
- @DomName('HTMLInputElement.valueAsDate')
- DateTime valueAsDate;
-
- @DomName('HTMLInputElement.readOnly')
- bool readOnly;
-
- @DomName('HTMLInputElement.required')
- bool required;
-
- /// Returns true if this input type is supported on the current platform.
- static bool get supported {
- return (new InputElement(type: 'month')).type == 'month';
- }
-}
-
-/**
- * A date consisting of a week-year number and a week number with no time zone.
- *
- * Use [supported] to check if this is supported on the current platform.
- */
-@SupportedBrowser(SupportedBrowser.CHROME, '25')
-@Experimental()
-abstract class WeekInputElement implements RangeInputElementBase {
- factory WeekInputElement() => new InputElement(type: 'week');
-
- @DomName('HTMLInputElement.valueAsDate')
- DateTime valueAsDate;
-
- @DomName('HTMLInputElement.readOnly')
- bool readOnly;
-
- @DomName('HTMLInputElement.required')
- bool required;
-
- /// Returns true if this input type is supported on the current platform.
- static bool get supported {
- return (new InputElement(type: 'week')).type == 'week';
- }
-}
-
-/**
- * A time (hour, minute, seconds, fractional seconds) with no time zone.
- *
- * Use [supported] to check if this is supported on the current platform.
- */
-@SupportedBrowser(SupportedBrowser.CHROME)
-@Experimental()
-abstract class TimeInputElement implements RangeInputElementBase {
- factory TimeInputElement() => new InputElement(type: 'time');
-
- @DomName('HTMLInputElement.valueAsDate')
- DateTime valueAsDate;
-
- @DomName('HTMLInputElement.readOnly')
- bool readOnly;
-
- @DomName('HTMLInputElement.required')
- bool required;
-
- /// Returns true if this input type is supported on the current platform.
- static bool get supported {
- return (new InputElement(type: 'time')).type == 'time';
- }
-}
-
-/**
- * A date and time (year, month, day, hour, minute, second, fraction of a
- * second) with no time zone.
- *
- * Use [supported] to check if this is supported on the current platform.
- */
-@SupportedBrowser(SupportedBrowser.CHROME, '25')
-@Experimental()
-abstract class LocalDateTimeInputElement implements RangeInputElementBase {
- factory LocalDateTimeInputElement() =>
- new InputElement(type: 'datetime-local');
-
- @DomName('HTMLInputElement.readOnly')
- bool readOnly;
-
- @DomName('HTMLInputElement.required')
- bool required;
-
- /// Returns true if this input type is supported on the current platform.
- static bool get supported {
- return (new InputElement(type: 'datetime-local')).type == 'datetime-local';
- }
-}
-
-/**
- * A numeric editor control.
- */
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.IE)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Experimental()
-abstract class NumberInputElement implements RangeInputElementBase {
- factory NumberInputElement() => new InputElement(type: 'number');
-
- @DomName('HTMLInputElement.placeholder')
- String placeholder;
-
- @DomName('HTMLInputElement.readOnly')
- bool readOnly;
-
- @DomName('HTMLInputElement.required')
- bool required;
-
- /// Returns true if this input type is supported on the current platform.
- static bool get supported {
- return (new InputElement(type: 'number')).type == 'number';
- }
-}
-
-/**
- * Similar to [NumberInputElement] but the browser may provide more optimal
- * styling (such as a slider control).
- *
- * Use [supported] to check if this is supported on the current platform.
- */
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@Experimental()
-abstract class RangeInputElement implements RangeInputElementBase {
- factory RangeInputElement() => new InputElement(type: 'range');
-
- /// Returns true if this input type is supported on the current platform.
- static bool get supported {
- return (new InputElement(type: 'range')).type == 'range';
- }
-}
-
-/**
- * A boolean editor control.
- *
- * Note that if [indeterminate] is set then this control is in a third
- * indeterminate state.
- */
-abstract class CheckboxInputElement implements InputElementBase {
- factory CheckboxInputElement() => new InputElement(type: 'checkbox');
-
- @DomName('HTMLInputElement.checked')
- bool checked;
-
- @DomName('HTMLInputElement.required')
- bool required;
-}
-
-/**
- * A control that when used with other [ReadioButtonInputElement] controls
- * forms a radio button group in which only one control can be checked at a
- * time.
- *
- * Radio buttons are considered to be in the same radio button group if:
- *
- * * They are all of type 'radio'.
- * * They all have either the same [FormElement] owner, or no owner.
- * * Their name attributes contain the same name.
- */
-abstract class RadioButtonInputElement implements InputElementBase {
- factory RadioButtonInputElement() => new InputElement(type: 'radio');
-
- @DomName('HTMLInputElement.checked')
- bool checked;
-
- @DomName('HTMLInputElement.required')
- bool required;
-}
-
-/**
- * A control for picking files from the user's computer.
- */
-abstract class FileUploadInputElement implements InputElementBase {
- factory FileUploadInputElement() => new InputElement(type: 'file');
-
- @DomName('HTMLInputElement.accept')
- String accept;
-
- @DomName('HTMLInputElement.multiple')
- bool multiple;
-
- @DomName('HTMLInputElement.required')
- bool required;
-
- @DomName('HTMLInputElement.files')
- List<File> files;
-}
-
-/**
- * A button, which when clicked, submits the form.
- */
-abstract class SubmitButtonInputElement implements InputElementBase {
- factory SubmitButtonInputElement() => new InputElement(type: 'submit');
-
- @DomName('HTMLInputElement.formAction')
- String formAction;
-
- @DomName('HTMLInputElement.formEnctype')
- String formEnctype;
-
- @DomName('HTMLInputElement.formMethod')
- String formMethod;
-
- @DomName('HTMLInputElement.formNoValidate')
- bool formNoValidate;
-
- @DomName('HTMLInputElement.formTarget')
- String formTarget;
-}
-
-/**
- * Either an image which the user can select a coordinate to or a form
- * submit button.
- */
-abstract class ImageButtonInputElement implements InputElementBase {
- factory ImageButtonInputElement() => new InputElement(type: 'image');
-
- @DomName('HTMLInputElement.alt')
- String alt;
-
- @DomName('HTMLInputElement.formAction')
- String formAction;
-
- @DomName('HTMLInputElement.formEnctype')
- String formEnctype;
-
- @DomName('HTMLInputElement.formMethod')
- String formMethod;
-
- @DomName('HTMLInputElement.formNoValidate')
- bool formNoValidate;
-
- @DomName('HTMLInputElement.formTarget')
- String formTarget;
-
- @DomName('HTMLInputElement.height')
- int height;
-
- @DomName('HTMLInputElement.src')
- String src;
-
- @DomName('HTMLInputElement.width')
- int width;
-}
-
-/**
- * A button, which when clicked, resets the form.
- */
-abstract class ResetButtonInputElement implements InputElementBase {
- factory ResetButtonInputElement() => new InputElement(type: 'reset');
-}
-
-/**
- * A button, with no default behavior.
- */
-abstract class ButtonInputElement implements InputElementBase {
- factory ButtonInputElement() => new InputElement(type: 'button');
-}
-// 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.
-
-@DocsEditable()
-@DomName('InstallEvent')
-@Experimental() // untriaged
-@Native("InstallEvent")
-class InstallEvent extends ExtendableEvent {
- // To suppress missing implicit constructor warnings.
- factory InstallEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('InstallEvent.InstallEvent')
- @DocsEditable()
- factory InstallEvent(String type, [Map eventInitDict]) {
- if (eventInitDict != null) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return InstallEvent._create_1(type, eventInitDict_1);
- }
- return InstallEvent._create_2(type);
- }
- static InstallEvent _create_1(type, eventInitDict) =>
- JS('InstallEvent', 'new InstallEvent(#,#)', type, eventInitDict);
- static InstallEvent _create_2(type) =>
- JS('InstallEvent', 'new InstallEvent(#)', type);
-
- @DomName('InstallEvent.registerForeignFetchScopes')
- @DocsEditable()
- @Experimental() // untriaged
- void registerForeignFetchScopes(List<String> subScopes, Object origins) {
- List subScopes_1 = convertDartToNative_StringArray(subScopes);
- _registerForeignFetchScopes_1(subScopes_1, origins);
- return;
- }
-
- @JSName('registerForeignFetchScopes')
- @DomName('InstallEvent.registerForeignFetchScopes')
- @DocsEditable()
- @Experimental() // untriaged
- void _registerForeignFetchScopes_1(List subScopes, origins) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('IntersectionObserver')
-@Experimental() // untriaged
-@Native("IntersectionObserver")
-class IntersectionObserver extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory IntersectionObserver._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('IntersectionObserver.root')
- @DocsEditable()
- @Experimental() // untriaged
- final Element root;
-
- @DomName('IntersectionObserver.rootMargin')
- @DocsEditable()
- @Experimental() // untriaged
- final String rootMargin;
-
- @DomName('IntersectionObserver.thresholds')
- @DocsEditable()
- @Experimental() // untriaged
- final List<num> thresholds;
-
- @DomName('IntersectionObserver.disconnect')
- @DocsEditable()
- @Experimental() // untriaged
- void disconnect() native;
-
- @DomName('IntersectionObserver.observe')
- @DocsEditable()
- @Experimental() // untriaged
- void observe(Element target) native;
-
- @DomName('IntersectionObserver.takeRecords')
- @DocsEditable()
- @Experimental() // untriaged
- List<IntersectionObserverEntry> takeRecords() native;
-
- @DomName('IntersectionObserver.unobserve')
- @DocsEditable()
- @Experimental() // untriaged
- void unobserve(Element target) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('IntersectionObserverEntry')
-@Experimental() // untriaged
-@Native("IntersectionObserverEntry")
-class IntersectionObserverEntry extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory IntersectionObserverEntry._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('IntersectionObserverEntry.boundingClientRect')
- @DocsEditable()
- @Experimental() // untriaged
- final Rectangle boundingClientRect;
-
- @DomName('IntersectionObserverEntry.intersectionRect')
- @DocsEditable()
- @Experimental() // untriaged
- final Rectangle intersectionRect;
-
- @DomName('IntersectionObserverEntry.rootBounds')
- @DocsEditable()
- @Experimental() // untriaged
- final Rectangle rootBounds;
-
- @DomName('IntersectionObserverEntry.target')
- @DocsEditable()
- @Experimental() // untriaged
- final Element target;
-
- @DomName('IntersectionObserverEntry.time')
- @DocsEditable()
- @Experimental() // untriaged
- final double time;
-}
-// 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.
-
-/**
- * An event that describes user interaction with the keyboard.
- *
- * The [type] of the event identifies what kind of interaction occurred.
- *
- * See also:
- *
- * * [KeyboardEvent](https://developer.mozilla.org/en/DOM/KeyboardEvent) at MDN.
- */
-@DomName('KeyboardEvent')
-@Native("KeyboardEvent")
-class KeyboardEvent extends UIEvent {
- /**
- * Programmatically create a KeyboardEvent.
- *
- * Due to browser differences, keyCode, charCode, or keyIdentifier values
- * cannot be specified in this base level constructor. This constructor
- * enables the user to programmatically create and dispatch a [KeyboardEvent],
- * but it will not contain any particular key content. For programmatically
- * creating keyboard events with specific key value contents, see the custom
- * Event [KeyEvent].
- */
- factory KeyboardEvent(String type,
- {Window view,
- bool canBubble: true,
- bool cancelable: true,
- int location,
- int keyLocation, // Legacy alias for location
- bool ctrlKey: false,
- bool altKey: false,
- bool shiftKey: false,
- bool metaKey: false}) {
- if (view == null) {
- view = window;
- }
- location ??= keyLocation ?? 1;
- KeyboardEvent e = document._createEvent("KeyboardEvent");
- e._initKeyboardEvent(type, canBubble, cancelable, view, "", location,
- ctrlKey, altKey, shiftKey, metaKey);
- return e;
- }
-
- @DomName('KeyboardEvent.initKeyboardEvent')
- void _initKeyboardEvent(
- String type,
- bool canBubble,
- bool cancelable,
- Window view,
- String keyIdentifier,
- int location,
- bool ctrlKey,
- bool altKey,
- bool shiftKey,
- bool metaKey) {
- if (JS('bool', 'typeof(#.initKeyEvent) == "function"', this)) {
- // initKeyEvent is only in Firefox (instead of initKeyboardEvent). It has
- // a slightly different signature, and allows you to specify keyCode and
- // charCode as the last two arguments, but we just set them as the default
- // since they can't be specified in other browsers.
- JS('void', '#.initKeyEvent(#, #, #, #, #, #, #, #, 0, 0)', this, type,
- canBubble, cancelable, view, ctrlKey, altKey, shiftKey, metaKey);
- } else {
- // initKeyboardEvent is for all other browsers.
- JS(
- 'void',
- '#.initKeyboardEvent(#, #, #, #, #, #, #, #, #, #)',
- this,
- type,
- canBubble,
- cancelable,
- view,
- keyIdentifier,
- location,
- ctrlKey,
- altKey,
- shiftKey,
- metaKey);
- }
- }
-
- @DomName('KeyboardEvent.keyCode')
- final int keyCode;
-
- @DomName('KeyboardEvent.charCode')
- final int charCode;
-
- @DomName('KeyboardEvent.which')
- int get which => _which;
-
- @DomName('KeyboardEvent.KeyboardEvent')
- @DocsEditable()
- factory KeyboardEvent._(String type, [Map eventInitDict]) {
- if (eventInitDict != null) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return KeyboardEvent._create_1(type, eventInitDict_1);
- }
- return KeyboardEvent._create_2(type);
- }
- static KeyboardEvent _create_1(type, eventInitDict) =>
- JS('KeyboardEvent', 'new KeyboardEvent(#,#)', type, eventInitDict);
- static KeyboardEvent _create_2(type) =>
- JS('KeyboardEvent', 'new KeyboardEvent(#)', type);
-
- @DomName('KeyboardEvent.DOM_KEY_LOCATION_LEFT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int DOM_KEY_LOCATION_LEFT = 0x01;
-
- @DomName('KeyboardEvent.DOM_KEY_LOCATION_NUMPAD')
- @DocsEditable()
- @Experimental() // untriaged
- static const int DOM_KEY_LOCATION_NUMPAD = 0x03;
-
- @DomName('KeyboardEvent.DOM_KEY_LOCATION_RIGHT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int DOM_KEY_LOCATION_RIGHT = 0x02;
-
- @DomName('KeyboardEvent.DOM_KEY_LOCATION_STANDARD')
- @DocsEditable()
- @Experimental() // untriaged
- static const int DOM_KEY_LOCATION_STANDARD = 0x00;
-
- @DomName('KeyboardEvent.altKey')
- @DocsEditable()
- final bool altKey;
-
- @JSName('charCode')
- @DomName('KeyboardEvent.charCode')
- @DocsEditable()
- @Experimental() // untriaged
- final int _charCode;
-
- @DomName('KeyboardEvent.code')
- @DocsEditable()
- @Experimental() // untriaged
- final String code;
-
- @DomName('KeyboardEvent.ctrlKey')
- @DocsEditable()
- final bool ctrlKey;
-
- @DomName('KeyboardEvent.key')
- @DocsEditable()
- @Experimental() // untriaged
- final String key;
-
- @JSName('keyCode')
- @DomName('KeyboardEvent.keyCode')
- @DocsEditable()
- @Experimental() // untriaged
- final int _keyCode;
-
- @JSName('keyIdentifier')
- @DomName('KeyboardEvent.keyIdentifier')
- @DocsEditable()
- @Experimental() // nonstandard
- final String _keyIdentifier;
-
- @DomName('KeyboardEvent.location')
- @DocsEditable()
- @Experimental() // untriaged
- final int location;
-
- @DomName('KeyboardEvent.metaKey')
- @DocsEditable()
- final bool metaKey;
-
- @DomName('KeyboardEvent.repeat')
- @DocsEditable()
- @Experimental() // untriaged
- final bool repeat;
-
- @DomName('KeyboardEvent.shiftKey')
- @DocsEditable()
- final bool shiftKey;
-
- // Use implementation from UIEvent.
- // final int _which;
-
- @DomName('KeyboardEvent.getModifierState')
- @DocsEditable()
- @Experimental() // untriaged
- bool getModifierState(String keyArg) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('KeyframeEffect')
-@Experimental() // untriaged
-@Native("KeyframeEffect")
-class KeyframeEffect extends AnimationEffectReadOnly {
- // To suppress missing implicit constructor warnings.
- factory KeyframeEffect._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('KeyframeEffect.KeyframeEffect')
- @DocsEditable()
- factory KeyframeEffect(Element target, Object effect, [timing]) {
- if (effect != null &&
- (target is Element || target == null) &&
- timing == null) {
- return KeyframeEffect._create_1(target, effect);
- }
- if ((timing is num) &&
- effect != null &&
- (target is Element || target == null)) {
- return KeyframeEffect._create_2(target, effect, timing);
- }
- if ((timing is Map) &&
- effect != null &&
- (target is Element || target == null)) {
- var timing_1 = convertDartToNative_Dictionary(timing);
- return KeyframeEffect._create_3(target, effect, timing_1);
- }
- throw new ArgumentError("Incorrect number or type of arguments");
- }
- static KeyframeEffect _create_1(target, effect) =>
- JS('KeyframeEffect', 'new KeyframeEffect(#,#)', target, effect);
- static KeyframeEffect _create_2(target, effect, timing) =>
- JS('KeyframeEffect', 'new KeyframeEffect(#,#,#)', target, effect, timing);
- static KeyframeEffect _create_3(target, effect, timing) =>
- JS('KeyframeEffect', 'new KeyframeEffect(#,#,#)', target, effect, timing);
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLKeygenElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Experimental()
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/the-button-element.html#the-keygen-element
-@Native("HTMLKeygenElement")
-class KeygenElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory KeygenElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLKeygenElement.HTMLKeygenElement')
- @DocsEditable()
- factory KeygenElement() => document.createElement("keygen");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- KeygenElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported =>
- Element.isTagSupported('keygen') &&
- (new Element.tag('keygen') is KeygenElement);
-
- @DomName('HTMLKeygenElement.autofocus')
- @DocsEditable()
- bool autofocus;
-
- @DomName('HTMLKeygenElement.challenge')
- @DocsEditable()
- String challenge;
-
- @DomName('HTMLKeygenElement.disabled')
- @DocsEditable()
- bool disabled;
-
- @DomName('HTMLKeygenElement.form')
- @DocsEditable()
- final FormElement form;
-
- @DomName('HTMLKeygenElement.keytype')
- @DocsEditable()
- String keytype;
-
- @DomName('HTMLKeygenElement.labels')
- @DocsEditable()
- @Unstable()
- @Returns('NodeList|Null')
- @Creates('NodeList')
- final List<Node> labels;
-
- @DomName('HTMLKeygenElement.name')
- @DocsEditable()
- String name;
-
- @DomName('HTMLKeygenElement.type')
- @DocsEditable()
- final String type;
-
- @DomName('HTMLKeygenElement.validationMessage')
- @DocsEditable()
- final String validationMessage;
-
- @DomName('HTMLKeygenElement.validity')
- @DocsEditable()
- final ValidityState validity;
-
- @DomName('HTMLKeygenElement.willValidate')
- @DocsEditable()
- final bool willValidate;
-
- @DomName('HTMLKeygenElement.checkValidity')
- @DocsEditable()
- bool checkValidity() native;
-
- @DomName('HTMLKeygenElement.reportValidity')
- @DocsEditable()
- @Experimental() // untriaged
- bool reportValidity() native;
-
- @DomName('HTMLKeygenElement.setCustomValidity')
- @DocsEditable()
- void setCustomValidity(String error) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('KeywordValue')
-@Experimental() // untriaged
-@Native("KeywordValue")
-class KeywordValue extends StyleValue {
- // To suppress missing implicit constructor warnings.
- factory KeywordValue._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('KeywordValue.KeywordValue')
- @DocsEditable()
- factory KeywordValue(String keyword) {
- return KeywordValue._create_1(keyword);
- }
- static KeywordValue _create_1(keyword) =>
- JS('KeywordValue', 'new KeywordValue(#)', keyword);
-
- @DomName('KeywordValue.keywordValue')
- @DocsEditable()
- @Experimental() // untriaged
- final String keywordValue;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLLIElement')
-@Native("HTMLLIElement")
-class LIElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory LIElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLLIElement.HTMLLIElement')
- @DocsEditable()
- factory LIElement() => JS('returns:LIElement;creates:LIElement;new:true',
- '#.createElement(#)', document, "li");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- LIElement.created() : super.created();
-
- @DomName('HTMLLIElement.value')
- @DocsEditable()
- int value;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLLabelElement')
-@Native("HTMLLabelElement")
-class LabelElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory LabelElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLLabelElement.HTMLLabelElement')
- @DocsEditable()
- factory LabelElement() => JS(
- 'returns:LabelElement;creates:LabelElement;new:true',
- '#.createElement(#)',
- document,
- "label");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- LabelElement.created() : super.created();
-
- @DomName('HTMLLabelElement.control')
- @DocsEditable()
- final HtmlElement control;
-
- @DomName('HTMLLabelElement.form')
- @DocsEditable()
- final FormElement form;
-
- @DomName('HTMLLabelElement.htmlFor')
- @DocsEditable()
- String htmlFor;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLLegendElement')
-@Native("HTMLLegendElement")
-class LegendElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory LegendElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLLegendElement.HTMLLegendElement')
- @DocsEditable()
- factory LegendElement() => JS(
- 'returns:LegendElement;creates:LegendElement;new:true',
- '#.createElement(#)',
- document,
- "legend");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- LegendElement.created() : super.created();
-
- @DomName('HTMLLegendElement.form')
- @DocsEditable()
- final FormElement form;
-}
-// 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.
-
-@DocsEditable()
-@DomName('LengthValue')
-@Experimental() // untriaged
-@Native("LengthValue")
-class LengthValue extends StyleValue {
- // To suppress missing implicit constructor warnings.
- factory LengthValue._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('LengthValue.add')
- @DocsEditable()
- @Experimental() // untriaged
- LengthValue add(LengthValue other) native;
-
- @DomName('LengthValue.divide')
- @DocsEditable()
- @Experimental() // untriaged
- LengthValue divide(num value) native;
-
- @DomName('LengthValue.fromDictionary')
- @DocsEditable()
- @Experimental() // untriaged
- static LengthValue fromDictionary(Map dictionary) {
- var dictionary_1 = convertDartToNative_Dictionary(dictionary);
- return _fromDictionary_1(dictionary_1);
- }
-
- @JSName('fromDictionary')
- @DomName('LengthValue.fromDictionary')
- @DocsEditable()
- @Experimental() // untriaged
- static LengthValue _fromDictionary_1(dictionary) native;
-
- @DomName('LengthValue.fromValue')
- @DocsEditable()
- @Experimental() // untriaged
- static LengthValue fromValue(num value, String type) native;
-
- @DomName('LengthValue.multiply')
- @DocsEditable()
- @Experimental() // untriaged
- LengthValue multiply(num value) native;
-
- @DomName('LengthValue.parse')
- @DocsEditable()
- @Experimental() // untriaged
- static LengthValue parse(String cssString) native;
-
- @DomName('LengthValue.subtract')
- @DocsEditable()
- @Experimental() // untriaged
- LengthValue subtract(LengthValue other) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLLinkElement')
-@Native("HTMLLinkElement")
-class LinkElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory LinkElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLLinkElement.HTMLLinkElement')
- @DocsEditable()
- factory LinkElement() => JS(
- 'returns:LinkElement;creates:LinkElement;new:true',
- '#.createElement(#)',
- document,
- "link");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- LinkElement.created() : super.created();
-
- @DomName('HTMLLinkElement.as')
- @DocsEditable()
- @Experimental() // untriaged
- String as;
-
- @DomName('HTMLLinkElement.crossOrigin')
- @DocsEditable()
- @Experimental() // untriaged
- String crossOrigin;
-
- @DomName('HTMLLinkElement.disabled')
- @DocsEditable()
- bool disabled;
-
- @DomName('HTMLLinkElement.href')
- @DocsEditable()
- String href;
-
- @DomName('HTMLLinkElement.hreflang')
- @DocsEditable()
- String hreflang;
-
- @DomName('HTMLLinkElement.import')
- @DocsEditable()
- // https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/imports/index.html#interface-import
- @Experimental()
- final Document import;
-
- @DomName('HTMLLinkElement.integrity')
- @DocsEditable()
- @Experimental() // untriaged
- String integrity;
-
- @DomName('HTMLLinkElement.media')
- @DocsEditable()
- String media;
-
- @DomName('HTMLLinkElement.rel')
- @DocsEditable()
- String rel;
-
- @DomName('HTMLLinkElement.relList')
- @DocsEditable()
- @Experimental() // untriaged
- final DomTokenList relList;
-
- @DomName('HTMLLinkElement.sheet')
- @DocsEditable()
- final StyleSheet sheet;
-
- @DomName('HTMLLinkElement.sizes')
- @DocsEditable()
- final DomTokenList sizes;
-
- @DomName('HTMLLinkElement.type')
- @DocsEditable()
- String type;
-
- /// Checks if HTML imports are supported on the current platform.
- bool get supportsImport {
- return JS('bool', '("import" in #)', this);
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('Location')
-@Native("Location")
-class Location extends Interceptor implements LocationBase {
- // To suppress missing implicit constructor warnings.
- factory Location._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('Location.ancestorOrigins')
- @DocsEditable()
- @Experimental() // nonstandard
- @Returns('DomStringList|Null')
- @Creates('DomStringList')
- final List<String> ancestorOrigins;
-
- @DomName('Location.hash')
- @DocsEditable()
- String hash;
-
- @DomName('Location.host')
- @DocsEditable()
- String host;
-
- @DomName('Location.hostname')
- @DocsEditable()
- String hostname;
-
- @DomName('Location.href')
- @DocsEditable()
- String href;
-
- @DomName('Location.pathname')
- @DocsEditable()
- String pathname;
-
- @DomName('Location.port')
- @DocsEditable()
- String port;
-
- @DomName('Location.protocol')
- @DocsEditable()
- String protocol;
-
- @DomName('Location.search')
- @DocsEditable()
- String search;
-
- @DomName('Location.assign')
- @DocsEditable()
- void assign([String url]) native;
-
- @DomName('Location.reload')
- @DocsEditable()
- void reload() native;
-
- @DomName('Location.replace')
- @DocsEditable()
- void replace(String url) native;
-
- @DomName('Location.origin')
- String get origin {
- if (JS('bool', '("origin" in #)', this)) {
- return JS('String', '#.origin', this);
- }
- return '${this.protocol}//${this.host}';
- }
-
- @DomName('Location.toString')
- @DocsEditable()
- String toString() => JS('String', 'String(#)', this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLMapElement')
-@Native("HTMLMapElement")
-class MapElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory MapElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLMapElement.HTMLMapElement')
- @DocsEditable()
- factory MapElement() => JS('returns:MapElement;creates:MapElement;new:true',
- '#.createElement(#)', document, "map");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- MapElement.created() : super.created();
-
- @DomName('HTMLMapElement.areas')
- @DocsEditable()
- @Returns('HtmlCollection|Null')
- @Creates('HtmlCollection')
- final List<Node> areas;
-
- @DomName('HTMLMapElement.name')
- @DocsEditable()
- String name;
-}
-// 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.
-
-@DocsEditable()
-@DomName('Matrix')
-@Experimental() // untriaged
-@Native("Matrix")
-class Matrix extends TransformComponent {
- // To suppress missing implicit constructor warnings.
- factory Matrix._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('Matrix.Matrix')
- @DocsEditable()
- factory Matrix(num a_OR_m11, num b_OR_m12, num c_OR_m13, num d_OR_m14,
- num e_OR_m21, num f_OR_m22,
- [num m23,
- num m24,
- num m31,
- num m32,
- num m33,
- num m34,
- num m41,
- num m42,
- num m43,
- num m44]) {
- if ((f_OR_m22 is num) &&
- (e_OR_m21 is num) &&
- (d_OR_m14 is num) &&
- (c_OR_m13 is num) &&
- (b_OR_m12 is num) &&
- (a_OR_m11 is num) &&
- m23 == null &&
- m24 == null &&
- m31 == null &&
- m32 == null &&
- m33 == null &&
- m34 == null &&
- m41 == null &&
- m42 == null &&
- m43 == null &&
- m44 == null) {
- return Matrix._create_1(
- a_OR_m11, b_OR_m12, c_OR_m13, d_OR_m14, e_OR_m21, f_OR_m22);
- }
- if ((m44 is num) &&
- (m43 is num) &&
- (m42 is num) &&
- (m41 is num) &&
- (m34 is num) &&
- (m33 is num) &&
- (m32 is num) &&
- (m31 is num) &&
- (m24 is num) &&
- (m23 is num) &&
- (f_OR_m22 is num) &&
- (e_OR_m21 is num) &&
- (d_OR_m14 is num) &&
- (c_OR_m13 is num) &&
- (b_OR_m12 is num) &&
- (a_OR_m11 is num)) {
- return Matrix._create_2(a_OR_m11, b_OR_m12, c_OR_m13, d_OR_m14, e_OR_m21,
- f_OR_m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44);
- }
- throw new ArgumentError("Incorrect number or type of arguments");
- }
- static Matrix _create_1(
- a_OR_m11, b_OR_m12, c_OR_m13, d_OR_m14, e_OR_m21, f_OR_m22) =>
- JS('Matrix', 'new Matrix(#,#,#,#,#,#)', a_OR_m11, b_OR_m12, c_OR_m13,
- d_OR_m14, e_OR_m21, f_OR_m22);
- static Matrix _create_2(a_OR_m11, b_OR_m12, c_OR_m13, d_OR_m14, e_OR_m21,
- f_OR_m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44) =>
- JS(
- 'Matrix',
- 'new Matrix(#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#)',
- a_OR_m11,
- b_OR_m12,
- c_OR_m13,
- d_OR_m14,
- e_OR_m21,
- f_OR_m22,
- m23,
- m24,
- m31,
- m32,
- m33,
- m34,
- m41,
- m42,
- m43,
- m44);
-
- @DomName('Matrix.a')
- @DocsEditable()
- @Experimental() // untriaged
- final double a;
-
- @DomName('Matrix.b')
- @DocsEditable()
- @Experimental() // untriaged
- final double b;
-
- @DomName('Matrix.c')
- @DocsEditable()
- @Experimental() // untriaged
- final double c;
-
- @DomName('Matrix.d')
- @DocsEditable()
- @Experimental() // untriaged
- final double d;
-
- @DomName('Matrix.e')
- @DocsEditable()
- @Experimental() // untriaged
- final double e;
-
- @DomName('Matrix.f')
- @DocsEditable()
- @Experimental() // untriaged
- final double f;
-
- @DomName('Matrix.m11')
- @DocsEditable()
- @Experimental() // untriaged
- final double m11;
-
- @DomName('Matrix.m12')
- @DocsEditable()
- @Experimental() // untriaged
- final double m12;
-
- @DomName('Matrix.m13')
- @DocsEditable()
- @Experimental() // untriaged
- final double m13;
-
- @DomName('Matrix.m14')
- @DocsEditable()
- @Experimental() // untriaged
- final double m14;
-
- @DomName('Matrix.m21')
- @DocsEditable()
- @Experimental() // untriaged
- final double m21;
-
- @DomName('Matrix.m22')
- @DocsEditable()
- @Experimental() // untriaged
- final double m22;
-
- @DomName('Matrix.m23')
- @DocsEditable()
- @Experimental() // untriaged
- final double m23;
-
- @DomName('Matrix.m24')
- @DocsEditable()
- @Experimental() // untriaged
- final double m24;
-
- @DomName('Matrix.m31')
- @DocsEditable()
- @Experimental() // untriaged
- final double m31;
-
- @DomName('Matrix.m32')
- @DocsEditable()
- @Experimental() // untriaged
- final double m32;
-
- @DomName('Matrix.m33')
- @DocsEditable()
- @Experimental() // untriaged
- final double m33;
-
- @DomName('Matrix.m34')
- @DocsEditable()
- @Experimental() // untriaged
- final double m34;
-
- @DomName('Matrix.m41')
- @DocsEditable()
- @Experimental() // untriaged
- final double m41;
-
- @DomName('Matrix.m42')
- @DocsEditable()
- @Experimental() // untriaged
- final double m42;
-
- @DomName('Matrix.m43')
- @DocsEditable()
- @Experimental() // untriaged
- final double m43;
-
- @DomName('Matrix.m44')
- @DocsEditable()
- @Experimental() // untriaged
- final double m44;
-}
-// 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.
-
-@DocsEditable()
-@DomName('MediaDeviceInfo')
-@Experimental() // untriaged
-@Native("MediaDeviceInfo")
-class MediaDeviceInfo extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory MediaDeviceInfo._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('MediaDeviceInfo.deviceId')
- @DocsEditable()
- @Experimental() // untriaged
- final String deviceId;
-
- @DomName('MediaDeviceInfo.groupId')
- @DocsEditable()
- @Experimental() // untriaged
- final String groupId;
-
- @DomName('MediaDeviceInfo.kind')
- @DocsEditable()
- @Experimental() // untriaged
- final String kind;
-
- @DomName('MediaDeviceInfo.label')
- @DocsEditable()
- @Experimental() // untriaged
- final String label;
-}
-// 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.
-
-@DocsEditable()
-@DomName('MediaDevices')
-@Experimental() // untriaged
-@Native("MediaDevices")
-class MediaDevices extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory MediaDevices._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('MediaDevices.enumerateDevices')
- @DocsEditable()
- @Experimental() // untriaged
- Future enumerateDevices() native;
-
- @DomName('MediaDevices.getUserMedia')
- @DocsEditable()
- @Experimental() // untriaged
- Future getUserMedia(Map options) {
- var options_1 = convertDartToNative_Dictionary(options);
- return _getUserMedia_1(options_1);
- }
-
- @JSName('getUserMedia')
- @DomName('MediaDevices.getUserMedia')
- @DocsEditable()
- @Experimental() // untriaged
- Future _getUserMedia_1(options) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLMediaElement')
-@Unstable()
-@Native("HTMLMediaElement")
-class MediaElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory MediaElement._() {
- throw new UnsupportedError("Not supported");
- }
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- MediaElement.created() : super.created();
-
- @DomName('HTMLMediaElement.HAVE_CURRENT_DATA')
- @DocsEditable()
- static const int HAVE_CURRENT_DATA = 2;
-
- @DomName('HTMLMediaElement.HAVE_ENOUGH_DATA')
- @DocsEditable()
- static const int HAVE_ENOUGH_DATA = 4;
-
- @DomName('HTMLMediaElement.HAVE_FUTURE_DATA')
- @DocsEditable()
- static const int HAVE_FUTURE_DATA = 3;
-
- @DomName('HTMLMediaElement.HAVE_METADATA')
- @DocsEditable()
- static const int HAVE_METADATA = 1;
-
- @DomName('HTMLMediaElement.HAVE_NOTHING')
- @DocsEditable()
- static const int HAVE_NOTHING = 0;
-
- @DomName('HTMLMediaElement.NETWORK_EMPTY')
- @DocsEditable()
- static const int NETWORK_EMPTY = 0;
-
- @DomName('HTMLMediaElement.NETWORK_IDLE')
- @DocsEditable()
- static const int NETWORK_IDLE = 1;
-
- @DomName('HTMLMediaElement.NETWORK_LOADING')
- @DocsEditable()
- static const int NETWORK_LOADING = 2;
-
- @DomName('HTMLMediaElement.NETWORK_NO_SOURCE')
- @DocsEditable()
- static const int NETWORK_NO_SOURCE = 3;
-
- @DomName('HTMLMediaElement.audioTracks')
- @DocsEditable()
- @Experimental() // untriaged
- @Returns('AudioTrackList|Null')
- @Creates('AudioTrackList')
- final List<AudioTrack> audioTracks;
-
- @DomName('HTMLMediaElement.autoplay')
- @DocsEditable()
- bool autoplay;
-
- @DomName('HTMLMediaElement.buffered')
- @DocsEditable()
- final TimeRanges buffered;
-
- @DomName('HTMLMediaElement.controls')
- @DocsEditable()
- bool controls;
-
- @DomName('HTMLMediaElement.crossOrigin')
- @DocsEditable()
- @Experimental() // untriaged
- String crossOrigin;
-
- @DomName('HTMLMediaElement.currentSrc')
- @DocsEditable()
- final String currentSrc;
-
- @DomName('HTMLMediaElement.currentTime')
- @DocsEditable()
- num currentTime;
-
- @DomName('HTMLMediaElement.defaultMuted')
- @DocsEditable()
- bool defaultMuted;
-
- @DomName('HTMLMediaElement.defaultPlaybackRate')
- @DocsEditable()
- num defaultPlaybackRate;
-
- @DomName('HTMLMediaElement.disableRemotePlayback')
- @DocsEditable()
- @Experimental() // untriaged
- bool disableRemotePlayback;
-
- @DomName('HTMLMediaElement.duration')
- @DocsEditable()
- final double duration;
-
- @DomName('HTMLMediaElement.ended')
- @DocsEditable()
- final bool ended;
-
- @DomName('HTMLMediaElement.error')
- @DocsEditable()
- final MediaError error;
-
- @DomName('HTMLMediaElement.loop')
- @DocsEditable()
- bool loop;
-
- @DomName('HTMLMediaElement.mediaKeys')
- @DocsEditable()
- // https://dvcs.w3.org/hg/html-media/raw-file/eme-v0.1/encrypted-media/encrypted-media.html
- @Experimental()
- final MediaKeys mediaKeys;
-
- @DomName('HTMLMediaElement.muted')
- @DocsEditable()
- bool muted;
-
- @DomName('HTMLMediaElement.networkState')
- @DocsEditable()
- final int networkState;
-
- @DomName('HTMLMediaElement.paused')
- @DocsEditable()
- final bool paused;
-
- @DomName('HTMLMediaElement.playbackRate')
- @DocsEditable()
- num playbackRate;
-
- @DomName('HTMLMediaElement.played')
- @DocsEditable()
- final TimeRanges played;
-
- @DomName('HTMLMediaElement.preload')
- @DocsEditable()
- String preload;
-
- @DomName('HTMLMediaElement.readyState')
- @DocsEditable()
- final int readyState;
-
- @DomName('HTMLMediaElement.seekable')
- @DocsEditable()
- final TimeRanges seekable;
-
- @DomName('HTMLMediaElement.seeking')
- @DocsEditable()
- final bool seeking;
-
- @DomName('HTMLMediaElement.session')
- @DocsEditable()
- @Experimental() // untriaged
- MediaSession session;
-
- @DomName('HTMLMediaElement.sinkId')
- @DocsEditable()
- @Experimental() // untriaged
- final String sinkId;
-
- @DomName('HTMLMediaElement.src')
- @DocsEditable()
- String src;
-
- @DomName('HTMLMediaElement.textTracks')
- @DocsEditable()
- // http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#dom-media-texttracks
- @Experimental()
- final TextTrackList textTracks;
-
- @DomName('HTMLMediaElement.videoTracks')
- @DocsEditable()
- @Experimental() // untriaged
- final VideoTrackList videoTracks;
-
- @DomName('HTMLMediaElement.volume')
- @DocsEditable()
- num volume;
-
- @JSName('webkitAudioDecodedByteCount')
- @DomName('HTMLMediaElement.webkitAudioDecodedByteCount')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- @Experimental() // nonstandard
- final int audioDecodedByteCount;
-
- @JSName('webkitVideoDecodedByteCount')
- @DomName('HTMLMediaElement.webkitVideoDecodedByteCount')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- @Experimental() // nonstandard
- final int videoDecodedByteCount;
-
- @DomName('HTMLMediaElement.addTextTrack')
- @DocsEditable()
- // http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#dom-media-addtexttrack
- @Experimental()
- TextTrack addTextTrack(String kind, [String label, String language]) native;
-
- @DomName('HTMLMediaElement.canPlayType')
- @DocsEditable()
- @Unstable()
- String canPlayType(String type, [String keySystem]) native;
-
- @DomName('HTMLMediaElement.captureStream')
- @DocsEditable()
- @Experimental() // untriaged
- MediaStream captureStream() native;
-
- @DomName('HTMLMediaElement.load')
- @DocsEditable()
- void load() native;
-
- @DomName('HTMLMediaElement.pause')
- @DocsEditable()
- void pause() native;
-
- @DomName('HTMLMediaElement.play')
- @DocsEditable()
- Future play() native;
-
- @DomName('HTMLMediaElement.setMediaKeys')
- @DocsEditable()
- @Experimental() // untriaged
- Future setMediaKeys(MediaKeys mediaKeys) native;
-
- @DomName('HTMLMediaElement.setSinkId')
- @DocsEditable()
- @Experimental() // untriaged
- Future setSinkId(String sinkId) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('MediaEncryptedEvent')
-@Experimental() // untriaged
-@Native("MediaEncryptedEvent")
-class MediaEncryptedEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory MediaEncryptedEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('MediaEncryptedEvent.MediaEncryptedEvent')
- @DocsEditable()
- factory MediaEncryptedEvent(String type, [Map eventInitDict]) {
- if (eventInitDict != null) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return MediaEncryptedEvent._create_1(type, eventInitDict_1);
- }
- return MediaEncryptedEvent._create_2(type);
- }
- static MediaEncryptedEvent _create_1(type, eventInitDict) => JS(
- 'MediaEncryptedEvent',
- 'new MediaEncryptedEvent(#,#)',
- type,
- eventInitDict);
- static MediaEncryptedEvent _create_2(type) =>
- JS('MediaEncryptedEvent', 'new MediaEncryptedEvent(#)', type);
-
- @DomName('MediaEncryptedEvent.initData')
- @DocsEditable()
- @Experimental() // untriaged
- final ByteBuffer initData;
-
- @DomName('MediaEncryptedEvent.initDataType')
- @DocsEditable()
- @Experimental() // untriaged
- final String initDataType;
-}
-// 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.
-
-@DocsEditable()
-@DomName('MediaError')
-@Unstable()
-@Native("MediaError")
-class MediaError extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory MediaError._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('MediaError.MEDIA_ERR_ABORTED')
- @DocsEditable()
- static const int MEDIA_ERR_ABORTED = 1;
-
- @DomName('MediaError.MEDIA_ERR_DECODE')
- @DocsEditable()
- static const int MEDIA_ERR_DECODE = 3;
-
- @DomName('MediaError.MEDIA_ERR_NETWORK')
- @DocsEditable()
- static const int MEDIA_ERR_NETWORK = 2;
-
- @DomName('MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED')
- @DocsEditable()
- static const int MEDIA_ERR_SRC_NOT_SUPPORTED = 4;
-
- @DomName('MediaError.code')
- @DocsEditable()
- final int code;
-}
-// 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.
-
-@DocsEditable()
-@DomName('MediaKeyMessageEvent')
-// https://dvcs.w3.org/hg/html-media/raw-file/eme-v0.1/encrypted-media/encrypted-media.html#dom-mediakeymessageevent
-@Experimental()
-@Native("MediaKeyMessageEvent")
-class MediaKeyMessageEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory MediaKeyMessageEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('MediaKeyMessageEvent.MediaKeyMessageEvent')
- @DocsEditable()
- factory MediaKeyMessageEvent(String type, [Map eventInitDict]) {
- if (eventInitDict != null) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return MediaKeyMessageEvent._create_1(type, eventInitDict_1);
- }
- return MediaKeyMessageEvent._create_2(type);
- }
- static MediaKeyMessageEvent _create_1(type, eventInitDict) => JS(
- 'MediaKeyMessageEvent',
- 'new MediaKeyMessageEvent(#,#)',
- type,
- eventInitDict);
- static MediaKeyMessageEvent _create_2(type) =>
- JS('MediaKeyMessageEvent', 'new MediaKeyMessageEvent(#)', type);
-
- @DomName('MediaKeyMessageEvent.message')
- @DocsEditable()
- final ByteBuffer message;
-
- @DomName('MediaKeyMessageEvent.messageType')
- @DocsEditable()
- @Experimental() // untriaged
- final String messageType;
-}
-// 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.
-
-@DocsEditable()
-@DomName('MediaKeySession')
-// https://dvcs.w3.org/hg/html-media/raw-file/eme-v0.1/encrypted-media/encrypted-media.html#dom-mediakeysession
-@Experimental()
-@Native("MediaKeySession")
-class MediaKeySession extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory MediaKeySession._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('MediaKeySession.closed')
- @DocsEditable()
- @Experimental() // untriaged
- final Future closed;
-
- @DomName('MediaKeySession.expiration')
- @DocsEditable()
- @Experimental() // untriaged
- final double expiration;
-
- @DomName('MediaKeySession.keyStatuses')
- @DocsEditable()
- @Experimental() // untriaged
- final MediaKeyStatusMap keyStatuses;
-
- @DomName('MediaKeySession.sessionId')
- @DocsEditable()
- final String sessionId;
-
- @DomName('MediaKeySession.close')
- @DocsEditable()
- Future close() native;
-
- @DomName('MediaKeySession.generateRequest')
- @DocsEditable()
- @Experimental() // untriaged
- Future generateRequest(String initDataType, /*BufferSource*/ initData) native;
-
- @DomName('MediaKeySession.load')
- @DocsEditable()
- @Experimental() // untriaged
- Future load(String sessionId) native;
-
- @DomName('MediaKeySession.remove')
- @DocsEditable()
- @Experimental() // untriaged
- Future remove() native;
-
- @JSName('update')
- @DomName('MediaKeySession.update')
- @DocsEditable()
- Future _update(/*BufferSource*/ response) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('MediaKeyStatusMap')
-@Experimental() // untriaged
-@Native("MediaKeyStatusMap")
-class MediaKeyStatusMap extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory MediaKeyStatusMap._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('MediaKeyStatusMap.size')
- @DocsEditable()
- @Experimental() // untriaged
- final int size;
-}
-// 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.
-
-@DocsEditable()
-@DomName('MediaKeySystemAccess')
-@Experimental() // untriaged
-@Native("MediaKeySystemAccess")
-class MediaKeySystemAccess extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory MediaKeySystemAccess._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('MediaKeySystemAccess.keySystem')
- @DocsEditable()
- @Experimental() // untriaged
- final String keySystem;
-
- @DomName('MediaKeySystemAccess.createMediaKeys')
- @DocsEditable()
- @Experimental() // untriaged
- Future createMediaKeys() native;
-
- @DomName('MediaKeySystemAccess.getConfiguration')
- @DocsEditable()
- @Experimental() // untriaged
- Map getConfiguration() {
- return convertNativeToDart_Dictionary(_getConfiguration_1());
- }
-
- @JSName('getConfiguration')
- @DomName('MediaKeySystemAccess.getConfiguration')
- @DocsEditable()
- @Experimental() // untriaged
- _getConfiguration_1() native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('MediaKeys')
-// https://dvcs.w3.org/hg/html-media/raw-file/eme-v0.1/encrypted-media/encrypted-media.html
-@Experimental()
-@Native("MediaKeys")
-class MediaKeys extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory MediaKeys._() {
- throw new UnsupportedError("Not supported");
- }
-
- @JSName('createSession')
- @DomName('MediaKeys.createSession')
- @DocsEditable()
- MediaKeySession _createSession([String sessionType]) native;
-
- @DomName('MediaKeys.setServerCertificate')
- @DocsEditable()
- @Experimental() // untriaged
- Future setServerCertificate(/*BufferSource*/ serverCertificate) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('MediaList')
-@Unstable()
-@Native("MediaList")
-class MediaList extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory MediaList._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('MediaList.length')
- @DocsEditable()
- final int length;
-
- @DomName('MediaList.mediaText')
- @DocsEditable()
- String mediaText;
-
- @DomName('MediaList.appendMedium')
- @DocsEditable()
- void appendMedium(String medium) native;
-
- @DomName('MediaList.deleteMedium')
- @DocsEditable()
- void deleteMedium(String medium) native;
-
- @DomName('MediaList.item')
- @DocsEditable()
- String item(int index) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('MediaMetadata')
-@Experimental() // untriaged
-@Native("MediaMetadata")
-class MediaMetadata extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory MediaMetadata._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('MediaMetadata.MediaMetadata')
- @DocsEditable()
- factory MediaMetadata(Map metadata) {
- var metadata_1 = convertDartToNative_Dictionary(metadata);
- return MediaMetadata._create_1(metadata_1);
- }
- static MediaMetadata _create_1(metadata) =>
- JS('MediaMetadata', 'new MediaMetadata(#)', metadata);
-
- @DomName('MediaMetadata.album')
- @DocsEditable()
- @Experimental() // untriaged
- final String album;
-
- @DomName('MediaMetadata.artist')
- @DocsEditable()
- @Experimental() // untriaged
- final String artist;
-
- @DomName('MediaMetadata.title')
- @DocsEditable()
- @Experimental() // untriaged
- final String title;
-}
-// 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.
-
-@DocsEditable()
-@DomName('MediaQueryList')
-@Unstable()
-@Native("MediaQueryList")
-class MediaQueryList extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory MediaQueryList._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('MediaQueryList.changeEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> changeEvent =
- const EventStreamProvider<Event>('change');
-
- @DomName('MediaQueryList.matches')
- @DocsEditable()
- final bool matches;
-
- @DomName('MediaQueryList.media')
- @DocsEditable()
- final String media;
-
- @DomName('MediaQueryList.addListener')
- @DocsEditable()
- void addListener(EventListener listener) native;
-
- @DomName('MediaQueryList.removeListener')
- @DocsEditable()
- void removeListener(EventListener listener) native;
-
- @DomName('MediaQueryList.onchange')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onChange => changeEvent.forTarget(this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('MediaQueryListEvent')
-@Experimental() // untriaged
-@Native("MediaQueryListEvent")
-class MediaQueryListEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory MediaQueryListEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('MediaQueryListEvent.MediaQueryListEvent')
- @DocsEditable()
- factory MediaQueryListEvent(String type, [Map eventInitDict]) {
- if (eventInitDict != null) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return MediaQueryListEvent._create_1(type, eventInitDict_1);
- }
- return MediaQueryListEvent._create_2(type);
- }
- static MediaQueryListEvent _create_1(type, eventInitDict) => JS(
- 'MediaQueryListEvent',
- 'new MediaQueryListEvent(#,#)',
- type,
- eventInitDict);
- static MediaQueryListEvent _create_2(type) =>
- JS('MediaQueryListEvent', 'new MediaQueryListEvent(#)', type);
-
- @DomName('MediaQueryListEvent.matches')
- @DocsEditable()
- @Experimental() // untriaged
- final bool matches;
-
- @DomName('MediaQueryListEvent.media')
- @DocsEditable()
- @Experimental() // untriaged
- final String media;
-}
-// 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.
-
-@DocsEditable()
-@DomName('MediaRecorder')
-@Experimental() // untriaged
-@Native("MediaRecorder")
-class MediaRecorder extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory MediaRecorder._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('MediaRecorder.errorEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> errorEvent =
- const EventStreamProvider<Event>('error');
-
- @DomName('MediaRecorder.pauseEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> pauseEvent =
- const EventStreamProvider<Event>('pause');
-
- @DomName('MediaRecorder.MediaRecorder')
- @DocsEditable()
- factory MediaRecorder(MediaStream stream, [Map options]) {
- if (options != null) {
- var options_1 = convertDartToNative_Dictionary(options);
- return MediaRecorder._create_1(stream, options_1);
- }
- return MediaRecorder._create_2(stream);
- }
- static MediaRecorder _create_1(stream, options) =>
- JS('MediaRecorder', 'new MediaRecorder(#,#)', stream, options);
- static MediaRecorder _create_2(stream) =>
- JS('MediaRecorder', 'new MediaRecorder(#)', stream);
-
- @DomName('MediaRecorder.audioBitsPerSecond')
- @DocsEditable()
- @Experimental() // untriaged
- final int audioBitsPerSecond;
-
- @DomName('MediaRecorder.ignoreMutedMedia')
- @DocsEditable()
- @Experimental() // untriaged
- bool ignoreMutedMedia;
-
- @DomName('MediaRecorder.mimeType')
- @DocsEditable()
- @Experimental() // untriaged
- final String mimeType;
-
- @DomName('MediaRecorder.state')
- @DocsEditable()
- @Experimental() // untriaged
- final String state;
-
- @DomName('MediaRecorder.stream')
- @DocsEditable()
- @Experimental() // untriaged
- final MediaStream stream;
-
- @DomName('MediaRecorder.videoBitsPerSecond')
- @DocsEditable()
- @Experimental() // untriaged
- final int videoBitsPerSecond;
-
- @DomName('MediaRecorder.isTypeSupported')
- @DocsEditable()
- @Experimental() // untriaged
- static bool isTypeSupported(String type) native;
-
- @DomName('MediaRecorder.pause')
- @DocsEditable()
- @Experimental() // untriaged
- void pause() native;
-
- @DomName('MediaRecorder.requestData')
- @DocsEditable()
- @Experimental() // untriaged
- void requestData() native;
-
- @DomName('MediaRecorder.resume')
- @DocsEditable()
- @Experimental() // untriaged
- void resume() native;
-
- @DomName('MediaRecorder.start')
- @DocsEditable()
- @Experimental() // untriaged
- void start([int timeslice]) native;
-
- @DomName('MediaRecorder.stop')
- @DocsEditable()
- @Experimental() // untriaged
- void stop() native;
-
- @DomName('MediaRecorder.onerror')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onError => errorEvent.forTarget(this);
-
- @DomName('MediaRecorder.onpause')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onPause => pauseEvent.forTarget(this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('MediaSession')
-@Experimental() // untriaged
-@Native("MediaSession")
-class MediaSession extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory MediaSession._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('MediaSession.MediaSession')
- @DocsEditable()
- factory MediaSession() {
- return MediaSession._create_1();
- }
- static MediaSession _create_1() => JS('MediaSession', 'new MediaSession()');
-
- @DomName('MediaSession.metadata')
- @DocsEditable()
- @Experimental() // untriaged
- MediaMetadata metadata;
-
- @DomName('MediaSession.activate')
- @DocsEditable()
- @Experimental() // untriaged
- Future activate() native;
-
- @DomName('MediaSession.deactivate')
- @DocsEditable()
- @Experimental() // untriaged
- Future deactivate() native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('MediaSource')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.IE, '11')
-// https://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html#mediasource
-@Experimental()
-@Native("MediaSource")
-class MediaSource extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory MediaSource._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('MediaSource.MediaSource')
- @DocsEditable()
- factory MediaSource() {
- return MediaSource._create_1();
- }
- static MediaSource _create_1() => JS('MediaSource', 'new MediaSource()');
-
- /// Checks if this type is supported on the current platform.
- static bool get supported => JS('bool', '!!(window.MediaSource)');
-
- @DomName('MediaSource.activeSourceBuffers')
- @DocsEditable()
- final SourceBufferList activeSourceBuffers;
-
- @DomName('MediaSource.duration')
- @DocsEditable()
- num duration;
-
- @DomName('MediaSource.readyState')
- @DocsEditable()
- final String readyState;
-
- @DomName('MediaSource.sourceBuffers')
- @DocsEditable()
- final SourceBufferList sourceBuffers;
-
- @DomName('MediaSource.addSourceBuffer')
- @DocsEditable()
- SourceBuffer addSourceBuffer(String type) native;
-
- @DomName('MediaSource.endOfStream')
- @DocsEditable()
- void endOfStream([String error]) native;
-
- @DomName('MediaSource.isTypeSupported')
- @DocsEditable()
- static bool isTypeSupported(String type) native;
-
- @DomName('MediaSource.removeSourceBuffer')
- @DocsEditable()
- void removeSourceBuffer(SourceBuffer buffer) native;
-}
-// 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.
-
-@DomName('MediaStream')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@Experimental()
-// http://dev.w3.org/2011/webrtc/editor/getusermedia.html#mediastream
-@Native("MediaStream")
-class MediaStream extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory MediaStream._() {
- throw new UnsupportedError("Not supported");
- }
-
- /**
- * Static factory designed to expose `addtrack` events to event
- * handlers that are not necessarily instances of [MediaStream].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('MediaStream.addtrackEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> addTrackEvent =
- const EventStreamProvider<Event>('addtrack');
-
- /**
- * Static factory designed to expose `ended` events to event
- * handlers that are not necessarily instances of [MediaStream].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('MediaStream.endedEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> endedEvent =
- const EventStreamProvider<Event>('ended');
-
- /**
- * Static factory designed to expose `removetrack` events to event
- * handlers that are not necessarily instances of [MediaStream].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('MediaStream.removetrackEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> removeTrackEvent =
- const EventStreamProvider<Event>('removetrack');
-
- @DomName('MediaStream.MediaStream')
- @DocsEditable()
- factory MediaStream([stream_OR_tracks]) {
- if (stream_OR_tracks == null) {
- return MediaStream._create_1();
- }
- if ((stream_OR_tracks is MediaStream)) {
- return MediaStream._create_2(stream_OR_tracks);
- }
- if ((stream_OR_tracks is List<MediaStreamTrack>)) {
- return MediaStream._create_3(stream_OR_tracks);
- }
- throw new ArgumentError("Incorrect number or type of arguments");
- }
- static MediaStream _create_1() => JS('MediaStream', 'new MediaStream()');
- static MediaStream _create_2(stream_OR_tracks) =>
- JS('MediaStream', 'new MediaStream(#)', stream_OR_tracks);
- static MediaStream _create_3(stream_OR_tracks) =>
- JS('MediaStream', 'new MediaStream(#)', stream_OR_tracks);
-
- @DomName('MediaStream.active')
- @DocsEditable()
- @Experimental() // untriaged
- final bool active;
-
- @DomName('MediaStream.id')
- @DocsEditable()
- final String id;
-
- @DomName('MediaStream.addTrack')
- @DocsEditable()
- void addTrack(MediaStreamTrack track) native;
-
- @DomName('MediaStream.clone')
- @DocsEditable()
- @Experimental() // untriaged
- MediaStream clone() native;
-
- @DomName('MediaStream.getAudioTracks')
- @DocsEditable()
- @Creates('JSExtendableArray|MediaStreamTrack')
- @Returns('JSExtendableArray')
- List<MediaStreamTrack> getAudioTracks() native;
-
- @DomName('MediaStream.getTrackById')
- @DocsEditable()
- MediaStreamTrack getTrackById(String trackId) native;
-
- @DomName('MediaStream.getTracks')
- @DocsEditable()
- @Experimental() // untriaged
- List<MediaStreamTrack> getTracks() native;
-
- @DomName('MediaStream.getVideoTracks')
- @DocsEditable()
- @Creates('JSExtendableArray|MediaStreamTrack')
- @Returns('JSExtendableArray')
- List<MediaStreamTrack> getVideoTracks() native;
-
- @DomName('MediaStream.removeTrack')
- @DocsEditable()
- void removeTrack(MediaStreamTrack track) native;
-
- /// Stream of `addtrack` events handled by this [MediaStream].
- @DomName('MediaStream.onaddtrack')
- @DocsEditable()
- Stream<Event> get onAddTrack => addTrackEvent.forTarget(this);
-
- /// Stream of `ended` events handled by this [MediaStream].
- @DomName('MediaStream.onended')
- @DocsEditable()
- Stream<Event> get onEnded => endedEvent.forTarget(this);
-
- /// Stream of `removetrack` events handled by this [MediaStream].
- @DomName('MediaStream.onremovetrack')
- @DocsEditable()
- Stream<Event> get onRemoveTrack => removeTrackEvent.forTarget(this);
-
- /**
- * Checks if the MediaStream APIs are supported on the current platform.
- *
- * See also:
- *
- * * [Navigator.getUserMedia]
- */
- static bool get supported => JS(
- 'bool',
- '''!!(#.getUserMedia || #.webkitGetUserMedia ||
- #.mozGetUserMedia || #.msGetUserMedia)''',
- window.navigator,
- window.navigator,
- window.navigator,
- window.navigator);
-}
-// 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.
-
-@DocsEditable()
-@DomName('MediaStreamEvent')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@Experimental()
-// http://dev.w3.org/2011/webrtc/editor/getusermedia.html
-@Native("MediaStreamEvent")
-class MediaStreamEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory MediaStreamEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('MediaStreamEvent.MediaStreamEvent')
- @DocsEditable()
- factory MediaStreamEvent(String type, [Map eventInitDict]) {
- if (eventInitDict != null) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return MediaStreamEvent._create_1(type, eventInitDict_1);
- }
- return MediaStreamEvent._create_2(type);
- }
- static MediaStreamEvent _create_1(type, eventInitDict) =>
- JS('MediaStreamEvent', 'new MediaStreamEvent(#,#)', type, eventInitDict);
- static MediaStreamEvent _create_2(type) =>
- JS('MediaStreamEvent', 'new MediaStreamEvent(#)', type);
-
- /// Checks if this type is supported on the current platform.
- static bool get supported => Device.isEventTypeSupported('MediaStreamEvent');
-
- @DomName('MediaStreamEvent.stream')
- @DocsEditable()
- final MediaStream stream;
-}
-// 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.
-
-@DocsEditable()
-@DomName('MediaStreamTrack')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@Experimental()
-// http://dev.w3.org/2011/webrtc/editor/getusermedia.html#mediastreamtrack
-@Native("MediaStreamTrack")
-class MediaStreamTrack extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory MediaStreamTrack._() {
- throw new UnsupportedError("Not supported");
- }
-
- /**
- * Static factory designed to expose `ended` events to event
- * handlers that are not necessarily instances of [MediaStreamTrack].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('MediaStreamTrack.endedEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> endedEvent =
- const EventStreamProvider<Event>('ended');
-
- /**
- * Static factory designed to expose `mute` events to event
- * handlers that are not necessarily instances of [MediaStreamTrack].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('MediaStreamTrack.muteEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> muteEvent =
- const EventStreamProvider<Event>('mute');
-
- /**
- * Static factory designed to expose `unmute` events to event
- * handlers that are not necessarily instances of [MediaStreamTrack].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('MediaStreamTrack.unmuteEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> unmuteEvent =
- const EventStreamProvider<Event>('unmute');
-
- @DomName('MediaStreamTrack.enabled')
- @DocsEditable()
- bool enabled;
-
- @DomName('MediaStreamTrack.id')
- @DocsEditable()
- final String id;
-
- @DomName('MediaStreamTrack.kind')
- @DocsEditable()
- final String kind;
-
- @DomName('MediaStreamTrack.label')
- @DocsEditable()
- final String label;
-
- @DomName('MediaStreamTrack.muted')
- @DocsEditable()
- @Experimental() // untriaged
- final bool muted;
-
- @DomName('MediaStreamTrack.readyState')
- @DocsEditable()
- final String readyState;
-
- @DomName('MediaStreamTrack.remote')
- @DocsEditable()
- @Experimental() // untriaged
- final bool remote;
-
- @DomName('MediaStreamTrack.clone')
- @DocsEditable()
- @Experimental() // untriaged
- MediaStreamTrack clone() native;
-
- @JSName('getSources')
- @DomName('MediaStreamTrack.getSources')
- @DocsEditable()
- @Experimental() // untriaged
- static void _getSources(MediaStreamTrackSourcesCallback callback) native;
-
- @JSName('getSources')
- @DomName('MediaStreamTrack.getSources')
- @DocsEditable()
- @Experimental() // untriaged
- static Future<List<SourceInfo>> getSources() {
- var completer = new Completer<List<SourceInfo>>();
- _getSources((value) {
- completer.complete(value);
- });
- return completer.future;
- }
-
- @DomName('MediaStreamTrack.stop')
- @DocsEditable()
- @Experimental() // untriaged
- void stop() native;
-
- /// Stream of `ended` events handled by this [MediaStreamTrack].
- @DomName('MediaStreamTrack.onended')
- @DocsEditable()
- Stream<Event> get onEnded => endedEvent.forTarget(this);
-
- /// Stream of `mute` events handled by this [MediaStreamTrack].
- @DomName('MediaStreamTrack.onmute')
- @DocsEditable()
- Stream<Event> get onMute => muteEvent.forTarget(this);
-
- /// Stream of `unmute` events handled by this [MediaStreamTrack].
- @DomName('MediaStreamTrack.onunmute')
- @DocsEditable()
- Stream<Event> get onUnmute => unmuteEvent.forTarget(this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('MediaStreamTrackEvent')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@Experimental()
-// http://dev.w3.org/2011/webrtc/editor/getusermedia.html
-@Native("MediaStreamTrackEvent")
-class MediaStreamTrackEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory MediaStreamTrackEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- /// Checks if this type is supported on the current platform.
- static bool get supported =>
- Device.isEventTypeSupported('MediaStreamTrackEvent');
-
- @DomName('MediaStreamTrackEvent.track')
- @DocsEditable()
- final MediaStreamTrack track;
-}
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('MediaStreamTrackSourcesCallback')
-@Experimental() // untriaged
-typedef void MediaStreamTrackSourcesCallback(List<SourceInfo> sources);
-// 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.
-
-@DocsEditable()
-@DomName('MemoryInfo')
-@Experimental() // nonstandard
-@Native("MemoryInfo")
-class MemoryInfo extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory MemoryInfo._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('MemoryInfo.jsHeapSizeLimit')
- @DocsEditable()
- final int jsHeapSizeLimit;
-
- @DomName('MemoryInfo.totalJSHeapSize')
- @DocsEditable()
- final int totalJSHeapSize;
-
- @DomName('MemoryInfo.usedJSHeapSize')
- @DocsEditable()
- final int usedJSHeapSize;
-}
-// 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.
-
-@DocsEditable()
-/**
- * An HTML <menu> element.
- *
- * A <menu> element represents an unordered list of menu commands.
- *
- * See also:
- *
- * * [Menu Element](https://developer.mozilla.org/en-US/docs/HTML/Element/menu) from MDN.
- * * [Menu Element](http://www.w3.org/TR/html5/the-menu-element.html#the-menu-element) from the W3C.
- */
-@DomName('HTMLMenuElement')
-@Native("HTMLMenuElement")
-class MenuElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory MenuElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLMenuElement.HTMLMenuElement')
- @DocsEditable()
- factory MenuElement() => JS(
- 'returns:MenuElement;creates:MenuElement;new:true',
- '#.createElement(#)',
- document,
- "menu");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- MenuElement.created() : super.created();
-
- @DomName('HTMLMenuElement.label')
- @DocsEditable()
- @Experimental() // untriaged
- String label;
-
- @DomName('HTMLMenuElement.type')
- @DocsEditable()
- @Experimental() // untriaged
- String type;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLMenuItemElement')
-@Experimental() // untriaged
-@Native("HTMLMenuItemElement")
-class MenuItemElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory MenuItemElement._() {
- throw new UnsupportedError("Not supported");
- }
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- MenuItemElement.created() : super.created();
-
- @DomName('HTMLMenuItemElement.checked')
- @DocsEditable()
- @Experimental() // untriaged
- bool checked;
-
- @JSName('default')
- @DomName('HTMLMenuItemElement.default')
- @DocsEditable()
- @Experimental() // untriaged
- bool defaultValue;
-
- @DomName('HTMLMenuItemElement.disabled')
- @DocsEditable()
- @Experimental() // untriaged
- bool disabled;
-
- @DomName('HTMLMenuItemElement.icon')
- @DocsEditable()
- @Experimental() // untriaged
- String icon;
-
- @DomName('HTMLMenuItemElement.label')
- @DocsEditable()
- @Experimental() // untriaged
- String label;
-
- @DomName('HTMLMenuItemElement.radiogroup')
- @DocsEditable()
- @Experimental() // untriaged
- String radiogroup;
-
- @DomName('HTMLMenuItemElement.type')
- @DocsEditable()
- @Experimental() // untriaged
- String type;
-}
-// 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.
-
-@DocsEditable()
-@DomName('MessageChannel')
-@Unstable()
-@Native("MessageChannel")
-class MessageChannel extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory MessageChannel._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('MessageChannel.port1')
- @DocsEditable()
- final MessagePort port1;
-
- @DomName('MessageChannel.port2')
- @DocsEditable()
- final MessagePort port2;
-}
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('MessageEvent')
-@Native("MessageEvent")
-class MessageEvent extends Event {
- factory MessageEvent(String type,
- {bool canBubble: false,
- bool cancelable: false,
- Object data,
- String origin,
- String lastEventId,
- Window source,
- List<MessagePort> messagePorts}) {
- if (source == null) {
- source = window;
- }
- if (!Device.isIE) {
- // TODO: This if check should be removed once IE
- // implements the constructor.
- return JS(
- 'MessageEvent',
- 'new MessageEvent(#, {bubbles: #, cancelable: #, data: #, origin: #, lastEventId: #, source: #, ports: #})',
- type,
- canBubble,
- cancelable,
- data,
- origin,
- lastEventId,
- source,
- messagePorts);
- }
- MessageEvent event = document._createEvent("MessageEvent");
- event._initMessageEvent(type, canBubble, cancelable, data, origin,
- lastEventId, source, messagePorts);
- return event;
- }
-
- // TODO(alanknight): This really should be generated by the
- // _OutputConversion in the systemnative.py script, but that doesn't
- // use those conversions right now, so do this as a one-off.
- @DomName('MessageEvent.data')
- @DocsEditable()
- dynamic get data => convertNativeToDart_SerializedScriptValue(this._get_data);
-
- @JSName('data')
- @DomName('MessageEvent.data')
- @DocsEditable()
- @annotation_Creates_SerializedScriptValue
- @annotation_Returns_SerializedScriptValue
- final dynamic _get_data;
-
- @DomName('MessageEvent.MessageEvent')
- @DocsEditable()
- factory MessageEvent._(String type, [Map eventInitDict]) {
- if (eventInitDict != null) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return MessageEvent._create_1(type, eventInitDict_1);
- }
- return MessageEvent._create_2(type);
- }
- static MessageEvent _create_1(type, eventInitDict) =>
- JS('MessageEvent', 'new MessageEvent(#,#)', type, eventInitDict);
- static MessageEvent _create_2(type) =>
- JS('MessageEvent', 'new MessageEvent(#)', type);
-
- @DomName('MessageEvent.lastEventId')
- @DocsEditable()
- @Unstable()
- final String lastEventId;
-
- @DomName('MessageEvent.origin')
- @DocsEditable()
- final String origin;
-
- @DomName('MessageEvent.source')
- @DocsEditable()
- EventTarget get source => _convertNativeToDart_EventTarget(this._get_source);
- @JSName('source')
- @DomName('MessageEvent.source')
- @DocsEditable()
- @Creates('Null')
- @Returns('EventTarget|=Object')
- final dynamic _get_source;
-
- @DomName('MessageEvent.suborigin')
- @DocsEditable()
- @Experimental() // untriaged
- final String suborigin;
-
- @JSName('initMessageEvent')
- @DomName('MessageEvent.initMessageEvent')
- @DocsEditable()
- void _initMessageEvent(
- String typeArg,
- bool canBubbleArg,
- bool cancelableArg,
- Object dataArg,
- String originArg,
- String lastEventIdArg,
- Window sourceArg,
- List<MessagePort> portsArg) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('MessagePort')
-@Unstable()
-@Native("MessagePort")
-class MessagePort extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory MessagePort._() {
- throw new UnsupportedError("Not supported");
- }
-
- /**
- * Static factory designed to expose `message` events to event
- * handlers that are not necessarily instances of [MessagePort].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('MessagePort.messageEvent')
- @DocsEditable()
- static const EventStreamProvider<MessageEvent> messageEvent =
- const EventStreamProvider<MessageEvent>('message');
-
- @DomName('MessagePort.close')
- @DocsEditable()
- void close() native;
-
- @DomName('MessagePort.postMessage')
- @DocsEditable()
- void postMessage(/*any*/ message, [List<MessagePort> transfer]) {
- if (transfer != null) {
- var message_1 = convertDartToNative_SerializedScriptValue(message);
- _postMessage_1(message_1, transfer);
- return;
- }
- var message_1 = convertDartToNative_SerializedScriptValue(message);
- _postMessage_2(message_1);
- return;
- }
-
- @JSName('postMessage')
- @DomName('MessagePort.postMessage')
- @DocsEditable()
- void _postMessage_1(message, List<MessagePort> transfer) native;
- @JSName('postMessage')
- @DomName('MessagePort.postMessage')
- @DocsEditable()
- void _postMessage_2(message) native;
-
- @DomName('MessagePort.start')
- @DocsEditable()
- void start() native;
-
- /// Stream of `message` events handled by this [MessagePort].
- @DomName('MessagePort.onmessage')
- @DocsEditable()
- Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLMetaElement')
-@Native("HTMLMetaElement")
-class MetaElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory MetaElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLMetaElement.HTMLMetaElement')
- @DocsEditable()
- factory MetaElement() => JS(
- 'returns:MetaElement;creates:MetaElement;new:true',
- '#.createElement(#)',
- document,
- "meta");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- MetaElement.created() : super.created();
-
- @DomName('HTMLMetaElement.content')
- @DocsEditable()
- String content;
-
- @DomName('HTMLMetaElement.httpEquiv')
- @DocsEditable()
- String httpEquiv;
-
- @DomName('HTMLMetaElement.name')
- @DocsEditable()
- String name;
-}
-// 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.
-
-@DocsEditable()
-@DomName('Metadata')
-// http://www.w3.org/TR/file-system-api/#the-metadata-interface
-@Experimental()
-@Native("Metadata")
-class Metadata extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory Metadata._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('Metadata.modificationTime')
- @DocsEditable()
- DateTime get modificationTime =>
- convertNativeToDart_DateTime(this._get_modificationTime);
- @JSName('modificationTime')
- @DomName('Metadata.modificationTime')
- @DocsEditable()
- @Creates('Null')
- final dynamic _get_modificationTime;
-
- @DomName('Metadata.size')
- @DocsEditable()
- final int size;
-}
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('MetadataCallback')
-// http://www.w3.org/TR/file-system-api/#idl-def-MetadataCallback
-@Experimental()
-typedef void MetadataCallback(Metadata metadata);
-// 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.
-
-@DocsEditable()
-@DomName('HTMLMeterElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("HTMLMeterElement")
-class MeterElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory MeterElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLMeterElement.HTMLMeterElement')
- @DocsEditable()
- factory MeterElement() => document.createElement("meter");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- MeterElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported => Element.isTagSupported('meter');
-
- @DomName('HTMLMeterElement.high')
- @DocsEditable()
- num high;
-
- @DomName('HTMLMeterElement.labels')
- @DocsEditable()
- @Unstable()
- @Returns('NodeList|Null')
- @Creates('NodeList')
- final List<Node> labels;
-
- @DomName('HTMLMeterElement.low')
- @DocsEditable()
- num low;
-
- @DomName('HTMLMeterElement.max')
- @DocsEditable()
- num max;
-
- @DomName('HTMLMeterElement.min')
- @DocsEditable()
- num min;
-
- @DomName('HTMLMeterElement.optimum')
- @DocsEditable()
- num optimum;
-
- @DomName('HTMLMeterElement.value')
- @DocsEditable()
- num value;
-}
-// 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.
-
-@DocsEditable()
-@DomName('MIDIAccess')
-// http://webaudio.github.io/web-midi-api/#midiaccess-interface
-@Experimental()
-@Native("MIDIAccess")
-class MidiAccess extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory MidiAccess._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('MIDIAccess.inputs')
- @DocsEditable()
- final MidiInputMap inputs;
-
- @DomName('MIDIAccess.outputs')
- @DocsEditable()
- final MidiOutputMap outputs;
-
- @DomName('MIDIAccess.sysexEnabled')
- @DocsEditable()
- @Experimental() // untriaged
- final bool sysexEnabled;
-}
-// 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.
-
-@DocsEditable()
-@DomName('MIDIConnectionEvent')
-// http://webaudio.github.io/web-midi-api/#midiconnectionevent-interface
-@Experimental()
-@Native("MIDIConnectionEvent")
-class MidiConnectionEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory MidiConnectionEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('MIDIConnectionEvent.MIDIConnectionEvent')
- @DocsEditable()
- factory MidiConnectionEvent(String type, [Map eventInitDict]) {
- if (eventInitDict != null) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return MidiConnectionEvent._create_1(type, eventInitDict_1);
- }
- return MidiConnectionEvent._create_2(type);
- }
- static MidiConnectionEvent _create_1(type, eventInitDict) => JS(
- 'MidiConnectionEvent',
- 'new MIDIConnectionEvent(#,#)',
- type,
- eventInitDict);
- static MidiConnectionEvent _create_2(type) =>
- JS('MidiConnectionEvent', 'new MIDIConnectionEvent(#)', type);
-
- @DomName('MIDIConnectionEvent.port')
- @DocsEditable()
- final MidiPort port;
-}
-// 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.
-
-@DocsEditable()
-@DomName('MIDIInput')
-// http://webaudio.github.io/web-midi-api/#idl-def-MIDIInput
-@Experimental()
-@Native("MIDIInput")
-class MidiInput extends MidiPort {
- // To suppress missing implicit constructor warnings.
- factory MidiInput._() {
- throw new UnsupportedError("Not supported");
- }
-
- /**
- * Static factory designed to expose `midimessage` events to event
- * handlers that are not necessarily instances of [MidiInput].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('MIDIInput.midimessageEvent')
- @DocsEditable()
- static const EventStreamProvider<MidiMessageEvent> midiMessageEvent =
- const EventStreamProvider<MidiMessageEvent>('midimessage');
-
- /// Stream of `midimessage` events handled by this [MidiInput].
- @DomName('MIDIInput.onmidimessage')
- @DocsEditable()
- Stream<MidiMessageEvent> get onMidiMessage =>
- midiMessageEvent.forTarget(this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('MIDIInputMap')
-@Experimental() // untriaged
-@Native("MIDIInputMap")
-class MidiInputMap extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory MidiInputMap._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('MIDIInputMap.size')
- @DocsEditable()
- @Experimental() // untriaged
- final int size;
-}
-// 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.
-
-@DocsEditable()
-@DomName('MIDIMessageEvent')
-// http://webaudio.github.io/web-midi-api/#midimessageevent-interface
-@Experimental()
-@Native("MIDIMessageEvent")
-class MidiMessageEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory MidiMessageEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('MIDIMessageEvent.MIDIMessageEvent')
- @DocsEditable()
- factory MidiMessageEvent(String type, [Map eventInitDict]) {
- if (eventInitDict != null) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return MidiMessageEvent._create_1(type, eventInitDict_1);
- }
- return MidiMessageEvent._create_2(type);
- }
- static MidiMessageEvent _create_1(type, eventInitDict) =>
- JS('MidiMessageEvent', 'new MIDIMessageEvent(#,#)', type, eventInitDict);
- static MidiMessageEvent _create_2(type) =>
- JS('MidiMessageEvent', 'new MIDIMessageEvent(#)', type);
-
- @DomName('MIDIMessageEvent.data')
- @DocsEditable()
- final Uint8List data;
-
- @DomName('MIDIMessageEvent.receivedTime')
- @DocsEditable()
- final double receivedTime;
-}
-// 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.
-
-@DocsEditable()
-@DomName('MIDIOutput')
-// http://webaudio.github.io/web-midi-api/#midioutput-interface
-@Experimental()
-@Native("MIDIOutput")
-class MidiOutput extends MidiPort {
- // To suppress missing implicit constructor warnings.
- factory MidiOutput._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('MIDIOutput.send')
- @DocsEditable()
- void send(Uint8List data, [num timestamp]) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('MIDIOutputMap')
-@Experimental() // untriaged
-@Native("MIDIOutputMap")
-class MidiOutputMap extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory MidiOutputMap._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('MIDIOutputMap.size')
- @DocsEditable()
- @Experimental() // untriaged
- final int size;
-}
-// 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.
-
-@DocsEditable()
-@DomName('MIDIPort')
-// http://webaudio.github.io/web-midi-api/#idl-def-MIDIPort
-@Experimental()
-@Native("MIDIPort")
-class MidiPort extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory MidiPort._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('MIDIPort.connection')
- @DocsEditable()
- @Experimental() // untriaged
- final String connection;
-
- @DomName('MIDIPort.id')
- @DocsEditable()
- final String id;
-
- @DomName('MIDIPort.manufacturer')
- @DocsEditable()
- final String manufacturer;
-
- @DomName('MIDIPort.name')
- @DocsEditable()
- final String name;
-
- @DomName('MIDIPort.state')
- @DocsEditable()
- @Experimental() // untriaged
- final String state;
-
- @DomName('MIDIPort.type')
- @DocsEditable()
- final String type;
-
- @DomName('MIDIPort.version')
- @DocsEditable()
- final String version;
-
- @DomName('MIDIPort.close')
- @DocsEditable()
- @Experimental() // untriaged
- Future close() native;
-
- @DomName('MIDIPort.open')
- @DocsEditable()
- @Experimental() // untriaged
- Future open() native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('MimeType')
-@Experimental() // non-standard
-@Native("MimeType")
-class MimeType extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory MimeType._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('MimeType.description')
- @DocsEditable()
- final String description;
-
- @DomName('MimeType.enabledPlugin')
- @DocsEditable()
- final Plugin enabledPlugin;
-
- @DomName('MimeType.suffixes')
- @DocsEditable()
- final String suffixes;
-
- @DomName('MimeType.type')
- @DocsEditable()
- final String type;
-}
-// 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.
-
-@DocsEditable()
-@DomName('MimeTypeArray')
-@Experimental() // non-standard
-@Native("MimeTypeArray")
-class MimeTypeArray extends Interceptor
- with ListMixin<MimeType>, ImmutableListMixin<MimeType>
- implements List<MimeType>, JavaScriptIndexingBehavior<MimeType> {
- // To suppress missing implicit constructor warnings.
- factory MimeTypeArray._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('MimeTypeArray.length')
- @DocsEditable()
- int get length => JS("int", "#.length", this);
-
- MimeType operator [](int index) {
- if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
- throw new RangeError.index(index, this);
- return JS("MimeType", "#[#]", this, index);
- }
-
- void operator []=(int index, MimeType value) {
- throw new UnsupportedError("Cannot assign element of immutable List.");
- }
- // -- start List<MimeType> mixins.
- // MimeType is the element type.
-
- set length(int value) {
- throw new UnsupportedError("Cannot resize immutable List.");
- }
-
- MimeType get first {
- if (this.length > 0) {
- return JS('MimeType', '#[0]', this);
- }
- throw new StateError("No elements");
- }
-
- MimeType get last {
- int len = this.length;
- if (len > 0) {
- return JS('MimeType', '#[#]', this, len - 1);
- }
- throw new StateError("No elements");
- }
-
- MimeType get single {
- int len = this.length;
- if (len == 1) {
- return JS('MimeType', '#[0]', this);
- }
- if (len == 0) throw new StateError("No elements");
- throw new StateError("More than one element");
- }
-
- MimeType elementAt(int index) => this[index];
- // -- end List<MimeType> mixins.
-
- @DomName('MimeTypeArray.item')
- @DocsEditable()
- MimeType item(int index) native;
-
- @DomName('MimeTypeArray.namedItem')
- @DocsEditable()
- MimeType namedItem(String name) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLModElement')
-@Unstable()
-@Native("HTMLModElement")
-class ModElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory ModElement._() {
- throw new UnsupportedError("Not supported");
- }
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- ModElement.created() : super.created();
-
- @DomName('HTMLModElement.cite')
- @DocsEditable()
- String cite;
-
- @DomName('HTMLModElement.dateTime')
- @DocsEditable()
- String dateTime;
-}
-// 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.
-
-@DomName('MouseEvent')
-@Native("MouseEvent,DragEvent")
-class MouseEvent extends UIEvent {
- factory MouseEvent(String type,
- {Window view,
- int detail: 0,
- int screenX: 0,
- int screenY: 0,
- int clientX: 0,
- int clientY: 0,
- int button: 0,
- bool canBubble: true,
- bool cancelable: true,
- bool ctrlKey: false,
- bool altKey: false,
- bool shiftKey: false,
- bool metaKey: false,
- EventTarget relatedTarget}) {
- if (view == null) {
- view = window;
- }
- MouseEvent event = document._createEvent('MouseEvent');
- event._initMouseEvent(
- type,
- canBubble,
- cancelable,
- view,
- detail,
- screenX,
- screenY,
- clientX,
- clientY,
- ctrlKey,
- altKey,
- shiftKey,
- metaKey,
- button,
- relatedTarget);
- return event;
- }
-
- @DomName('MouseEvent.MouseEvent')
- @DocsEditable()
- factory MouseEvent._(String type, [Map eventInitDict]) {
- if (eventInitDict != null) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return MouseEvent._create_1(type, eventInitDict_1);
- }
- return MouseEvent._create_2(type);
- }
- static MouseEvent _create_1(type, eventInitDict) =>
- JS('MouseEvent', 'new MouseEvent(#,#)', type, eventInitDict);
- static MouseEvent _create_2(type) =>
- JS('MouseEvent', 'new MouseEvent(#)', type);
-
- @DomName('MouseEvent.altKey')
- @DocsEditable()
- final bool altKey;
-
- @DomName('MouseEvent.button')
- @DocsEditable()
- final int button;
-
- @DomName('MouseEvent.buttons')
- @DocsEditable()
- @Experimental() // untriaged
- final int buttons;
-
- @JSName('clientX')
- @DomName('MouseEvent.clientX')
- @DocsEditable()
- final int _clientX;
-
- @JSName('clientY')
- @DomName('MouseEvent.clientY')
- @DocsEditable()
- final int _clientY;
-
- @DomName('MouseEvent.ctrlKey')
- @DocsEditable()
- final bool ctrlKey;
-
- /**
- * The nonstandard way to access the element that the mouse comes
- * from in the case of a `mouseover` event.
- *
- * This member is deprecated and not cross-browser compatible; use
- * relatedTarget to get the same information in the standard way.
- */
- @DomName('MouseEvent.fromElement')
- @DocsEditable()
- @deprecated
- final Node fromElement;
-
- @JSName('layerX')
- @DomName('MouseEvent.layerX')
- @DocsEditable()
- @Experimental() // untriaged
- final int _layerX;
-
- @JSName('layerY')
- @DomName('MouseEvent.layerY')
- @DocsEditable()
- @Experimental() // untriaged
- final int _layerY;
-
- @DomName('MouseEvent.metaKey')
- @DocsEditable()
- final bool metaKey;
-
- @JSName('movementX')
- @DomName('MouseEvent.movementX')
- @DocsEditable()
- @Experimental() // untriaged
- final int _movementX;
-
- @JSName('movementY')
- @DomName('MouseEvent.movementY')
- @DocsEditable()
- @Experimental() // untriaged
- final int _movementY;
-
- @JSName('pageX')
- @DomName('MouseEvent.pageX')
- @DocsEditable()
- @Experimental() // untriaged
- final int _pageX;
-
- @JSName('pageY')
- @DomName('MouseEvent.pageY')
- @DocsEditable()
- @Experimental() // untriaged
- final int _pageY;
-
- @DomName('MouseEvent.region')
- @DocsEditable()
- @Experimental() // untriaged
- final String region;
-
- @DomName('MouseEvent.relatedTarget')
- @DocsEditable()
- EventTarget get relatedTarget =>
- _convertNativeToDart_EventTarget(this._get_relatedTarget);
- @JSName('relatedTarget')
- @DomName('MouseEvent.relatedTarget')
- @DocsEditable()
- @Creates('Node')
- @Returns('EventTarget|=Object')
- final dynamic _get_relatedTarget;
-
- @JSName('screenX')
- @DomName('MouseEvent.screenX')
- @DocsEditable()
- final int _screenX;
-
- @JSName('screenY')
- @DomName('MouseEvent.screenY')
- @DocsEditable()
- final int _screenY;
-
- @DomName('MouseEvent.shiftKey')
- @DocsEditable()
- final bool shiftKey;
-
- /**
- * The nonstandard way to access the element that the mouse goes
- * to in the case of a `mouseout` event.
- *
- * This member is deprecated and not cross-browser compatible; use
- * relatedTarget to get the same information in the standard way.
- */
- @DomName('MouseEvent.toElement')
- @DocsEditable()
- @deprecated
- final Node toElement;
-
- // Use implementation from UIEvent.
- // final int _which;
-
- @DomName('MouseEvent.getModifierState')
- @DocsEditable()
- @Experimental() // untriaged
- bool getModifierState(String keyArg) native;
-
- @DomName('MouseEvent.initMouseEvent')
- @DocsEditable()
- void _initMouseEvent(
- String type,
- bool bubbles,
- bool cancelable,
- Window view,
- int detail,
- int screenX,
- int screenY,
- int clientX,
- int clientY,
- bool ctrlKey,
- bool altKey,
- bool shiftKey,
- bool metaKey,
- int button,
- EventTarget relatedTarget) {
- var relatedTarget_1 = _convertDartToNative_EventTarget(relatedTarget);
- _initMouseEvent_1(
- type,
- bubbles,
- cancelable,
- view,
- detail,
- screenX,
- screenY,
- clientX,
- clientY,
- ctrlKey,
- altKey,
- shiftKey,
- metaKey,
- button,
- relatedTarget_1);
- return;
- }
-
- @JSName('initMouseEvent')
- @DomName('MouseEvent.initMouseEvent')
- @DocsEditable()
- void _initMouseEvent_1(
- type,
- bubbles,
- cancelable,
- Window view,
- detail,
- screenX,
- screenY,
- clientX,
- clientY,
- ctrlKey,
- altKey,
- shiftKey,
- metaKey,
- button,
- relatedTarget) native;
-
- @DomName('MouseEvent.clientX')
- @DomName('MouseEvent.clientY')
- Point get client => new Point/*<num>*/(_clientX, _clientY);
-
- @DomName('MouseEvent.movementX')
- @DomName('MouseEvent.movementY')
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.FIREFOX)
- @Experimental()
- Point get movement => new Point/*<num>*/(_movementX, _movementY);
-
- /**
- * The coordinates of the mouse pointer in target node coordinates.
- *
- * This value may vary between platforms if the target node moves
- * after the event has fired or if the element has CSS transforms affecting
- * it.
- */
- Point get offset {
- if (JS('bool', '!!#.offsetX', this)) {
- var x = JS('int', '#.offsetX', this);
- var y = JS('int', '#.offsetY', this);
- return new Point/*<num>*/(x, y);
- } else {
- // Firefox does not support offsetX.
- if (!(this.target is Element)) {
- throw new UnsupportedError('offsetX is only supported on elements');
- }
- Element target = this.target;
- var point = (this.client - target.getBoundingClientRect().topLeft);
- return new Point/*<num>*/(point.x.toInt(), point.y.toInt());
- }
- }
-
- @DomName('MouseEvent.screenX')
- @DomName('MouseEvent.screenY')
- Point get screen => new Point/*<num>*/(_screenX, _screenY);
-
- @DomName('MouseEvent.layerX')
- @DomName('MouseEvent.layerY')
- Point get layer => new Point/*<num>*/(_layerX, _layerY);
-
- @DomName('MouseEvent.pageX')
- @DomName('MouseEvent.pageY')
- Point get page => new Point/*<num>*/(_pageX, _pageY);
-
- @DomName('MouseEvent.dataTransfer')
- DataTransfer get dataTransfer =>
- JS('DataTransfer', "#['dataTransfer']", this);
-}
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('MutationCallback')
-typedef void MutationCallback(
- List<MutationRecord> mutations, MutationObserver observer);
-// 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.
-
-@DomName('MutationObserver')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Experimental()
-@Native("MutationObserver,WebKitMutationObserver")
-class MutationObserver extends Interceptor {
- @DomName('MutationObserver.disconnect')
- @DocsEditable()
- void disconnect() native;
-
- @DomName('MutationObserver.observe')
- @DocsEditable()
- void _observe(Node target, Map options) {
- var options_1 = convertDartToNative_Dictionary(options);
- _observe_1(target, options_1);
- return;
- }
-
- @JSName('observe')
- @DomName('MutationObserver.observe')
- @DocsEditable()
- void _observe_1(Node target, options) native;
-
- @DomName('MutationObserver.takeRecords')
- @DocsEditable()
- List<MutationRecord> takeRecords() native;
-
- /**
- * Checks to see if the mutation observer API is supported on the current
- * platform.
- */
- static bool get supported {
- return JS(
- 'bool', '!!(window.MutationObserver || window.WebKitMutationObserver)');
- }
-
- /**
- * Observes the target for the specified changes.
- *
- * Some requirements for the optional parameters:
- *
- * * Either childList, attributes or characterData must be true.
- * * If attributeOldValue is true then attributes must also be true.
- * * If attributeFilter is specified then attributes must be true.
- * * If characterDataOldValue is true then characterData must be true.
- */
- void observe(Node target,
- {bool childList,
- bool attributes,
- bool characterData,
- bool subtree,
- bool attributeOldValue,
- bool characterDataOldValue,
- List<String> attributeFilter}) {
- // Parse options into map of known type.
- var parsedOptions = _createDict();
-
- // Override options passed in the map with named optional arguments.
- override(key, value) {
- if (value != null) _add(parsedOptions, key, value);
- }
-
- override('childList', childList);
- override('attributes', attributes);
- override('characterData', characterData);
- override('subtree', subtree);
- override('attributeOldValue', attributeOldValue);
- override('characterDataOldValue', characterDataOldValue);
- if (attributeFilter != null) {
- override('attributeFilter', _fixupList(attributeFilter));
- }
-
- _call(target, parsedOptions);
- }
-
- // TODO: Change to a set when const Sets are available.
- static final _boolKeys = const {
- 'childList': true,
- 'attributes': true,
- 'characterData': true,
- 'subtree': true,
- 'attributeOldValue': true,
- 'characterDataOldValue': true
- };
-
- static _createDict() => JS('var', '{}');
- static _add(m, String key, value) {
- JS('void', '#[#] = #', m, key, value);
- }
-
- static _fixupList(list) => list; // TODO: Ensure is a JavaScript Array.
-
- // Call native function with no conversions.
- @JSName('observe')
- void _call(target, options) native;
-
- factory MutationObserver(MutationCallback callback) {
- // Dummy statement to mark types as instantiated.
- JS('MutationObserver|MutationRecord', '0');
-
- return JS(
- 'MutationObserver',
- 'new(window.MutationObserver||window.WebKitMutationObserver||'
- 'window.MozMutationObserver)(#)',
- convertDartClosureToJS(_wrapBinaryZone(callback), 2));
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('MutationRecord')
-@Native("MutationRecord")
-class MutationRecord extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory MutationRecord._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('MutationRecord.addedNodes')
- @DocsEditable()
- @Returns('NodeList|Null')
- @Creates('NodeList')
- final List<Node> addedNodes;
-
- @DomName('MutationRecord.attributeName')
- @DocsEditable()
- final String attributeName;
-
- @DomName('MutationRecord.attributeNamespace')
- @DocsEditable()
- final String attributeNamespace;
-
- @DomName('MutationRecord.nextSibling')
- @DocsEditable()
- final Node nextSibling;
-
- @DomName('MutationRecord.oldValue')
- @DocsEditable()
- final String oldValue;
-
- @DomName('MutationRecord.previousSibling')
- @DocsEditable()
- final Node previousSibling;
-
- @DomName('MutationRecord.removedNodes')
- @DocsEditable()
- @Returns('NodeList|Null')
- @Creates('NodeList')
- final List<Node> removedNodes;
-
- @DomName('MutationRecord.target')
- @DocsEditable()
- final Node target;
-
- @DomName('MutationRecord.type')
- @DocsEditable()
- final String type;
-}
-// 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.
-
-@DomName('Navigator')
-@Native("Navigator")
-class Navigator extends Interceptor
- implements
- NavigatorStorageUtils,
- NavigatorCpu,
- NavigatorLanguage,
- NavigatorOnLine,
- NavigatorID {
- @DomName('Navigator.language')
- String get language =>
- JS('String', '#.language || #.userLanguage', this, this);
-
- /**
- * Gets a stream (video and or audio) from the local computer.
- *
- * Use [MediaStream.supported] to check if this is supported by the current
- * platform. The arguments `audio` and `video` default to `false` (stream does
- * not use audio or video, respectively).
- *
- * Simple example usage:
- *
- * window.navigator.getUserMedia(audio: true, video: true).then((stream) {
- * var video = new VideoElement()
- * ..autoplay = true
- * ..src = Url.createObjectUrlFromStream(stream);
- * document.body.append(video);
- * });
- *
- * The user can also pass in Maps to the audio or video parameters to specify
- * mandatory and optional constraints for the media stream. Not passing in a
- * map, but passing in `true` will provide a MediaStream with audio or
- * video capabilities, but without any additional constraints. The particular
- * constraint names for audio and video are still in flux, but as of this
- * writing, here is an example providing more constraints.
- *
- * window.navigator.getUserMedia(
- * audio: true,
- * video: {'mandatory':
- * { 'minAspectRatio': 1.333, 'maxAspectRatio': 1.334 },
- * 'optional':
- * [{ 'minFrameRate': 60 },
- * { 'maxWidth': 640 }]
- * });
- *
- * See also:
- * * [MediaStream.supported]
- */
- @DomName('Navigator.webkitGetUserMedia')
- @SupportedBrowser(SupportedBrowser.CHROME)
- @Experimental()
- Future<MediaStream> getUserMedia({audio: false, video: false}) {
- var completer = new Completer<MediaStream>();
- var options = {'audio': audio, 'video': video};
- _ensureGetUserMedia();
- this._getUserMedia(convertDartToNative_SerializedScriptValue(options),
- (stream) {
- completer.complete(stream);
- }, (error) {
- completer.completeError(error);
- });
- return completer.future;
- }
-
- _ensureGetUserMedia() {
- if (JS('bool', '!(#.getUserMedia)', this)) {
- JS(
- 'void',
- '#.getUserMedia = '
- '(#.getUserMedia || #.webkitGetUserMedia || #.mozGetUserMedia ||'
- '#.msGetUserMedia)',
- this,
- this,
- this,
- this,
- this);
- }
- }
-
- @JSName('getUserMedia')
- void _getUserMedia(options, _NavigatorUserMediaSuccessCallback success,
- _NavigatorUserMediaErrorCallback error) native;
-
- // To suppress missing implicit constructor warnings.
- factory Navigator._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('Navigator.connection')
- @DocsEditable()
- @Experimental() // untriaged
- final NetworkInformation connection;
-
- @DomName('Navigator.credentials')
- @DocsEditable()
- @Experimental() // untriaged
- final CredentialsContainer credentials;
-
- @DomName('Navigator.doNotTrack')
- @DocsEditable()
- // http://www.w3.org/2011/tracking-protection/drafts/tracking-dnt.html#js-dom
- @Experimental() // experimental
- final String doNotTrack;
-
- @DomName('Navigator.geolocation')
- @DocsEditable()
- @Unstable()
- final Geolocation geolocation;
-
- @DomName('Navigator.maxTouchPoints')
- @DocsEditable()
- @Experimental() // untriaged
- final int maxTouchPoints;
-
- @DomName('Navigator.mediaDevices')
- @DocsEditable()
- @Experimental() // untriaged
- final MediaDevices mediaDevices;
-
- @DomName('Navigator.mimeTypes')
- @DocsEditable()
- @Experimental() // nonstandard
- final MimeTypeArray mimeTypes;
-
- @DomName('Navigator.nfc')
- @DocsEditable()
- @Experimental() // untriaged
- final _NFC nfc;
-
- @DomName('Navigator.permissions')
- @DocsEditable()
- @Experimental() // untriaged
- final Permissions permissions;
-
- @DomName('Navigator.presentation')
- @DocsEditable()
- @Experimental() // untriaged
- final Presentation presentation;
-
- @DomName('Navigator.productSub')
- @DocsEditable()
- @Unstable()
- final String productSub;
-
- @DomName('Navigator.serviceWorker')
- @DocsEditable()
- @Experimental() // untriaged
- final ServiceWorkerContainer serviceWorker;
-
- @DomName('Navigator.services')
- @DocsEditable()
- @Experimental() // untriaged
- final ServicePortCollection services;
-
- @DomName('Navigator.storage')
- @DocsEditable()
- @Experimental() // untriaged
- final StorageManager storage;
-
- @DomName('Navigator.storageQuota')
- @DocsEditable()
- @Experimental() // untriaged
- final StorageQuota storageQuota;
-
- @DomName('Navigator.vendor')
- @DocsEditable()
- @Unstable()
- final String vendor;
-
- @DomName('Navigator.vendorSub')
- @DocsEditable()
- @Unstable()
- final String vendorSub;
-
- @JSName('webkitPersistentStorage')
- @DomName('Navigator.webkitPersistentStorage')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- // http://www.w3.org/TR/quota-api/#accessing-storagequota
- final DeprecatedStorageQuota persistentStorage;
-
- @JSName('webkitTemporaryStorage')
- @DomName('Navigator.webkitTemporaryStorage')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- // http://www.w3.org/TR/quota-api/#accessing-storagequota
- final DeprecatedStorageQuota temporaryStorage;
-
- @DomName('Navigator.getBattery')
- @DocsEditable()
- @Experimental() // untriaged
- Future getBattery() native;
-
- @DomName('Navigator.getGamepads')
- @DocsEditable()
- @Experimental() // untriaged
- @Returns('_GamepadList|Null')
- @Creates('_GamepadList')
- List<Gamepad> getGamepads() native;
-
- @DomName('Navigator.getVRDevices')
- @DocsEditable()
- @Experimental() // untriaged
- Future getVRDevices() native;
-
- @DomName('Navigator.registerProtocolHandler')
- @DocsEditable()
- @Unstable()
- void registerProtocolHandler(String scheme, String url, String title) native;
-
- @DomName('Navigator.requestMIDIAccess')
- @DocsEditable()
- @Experimental() // untriaged
- Future requestMidiAccess([Map options]) {
- if (options != null) {
- var options_1 = convertDartToNative_Dictionary(options);
- return _requestMidiAccess_1(options_1);
- }
- return _requestMidiAccess_2();
- }
-
- @JSName('requestMIDIAccess')
- @DomName('Navigator.requestMIDIAccess')
- @DocsEditable()
- @Experimental() // untriaged
- Future _requestMidiAccess_1(options) native;
- @JSName('requestMIDIAccess')
- @DomName('Navigator.requestMIDIAccess')
- @DocsEditable()
- @Experimental() // untriaged
- Future _requestMidiAccess_2() native;
-
- @DomName('Navigator.requestMediaKeySystemAccess')
- @DocsEditable()
- @Experimental() // untriaged
- Future requestMediaKeySystemAccess(
- String keySystem, List<Map> supportedConfigurations) native;
-
- @DomName('Navigator.sendBeacon')
- @DocsEditable()
- @Experimental() // untriaged
- bool sendBeacon(String url, Object data) native;
-
- // From NavigatorCPU
-
- @DomName('Navigator.hardwareConcurrency')
- @DocsEditable()
- @Experimental() // untriaged
- final int hardwareConcurrency;
-
- // From NavigatorID
-
- @DomName('Navigator.appCodeName')
- @DocsEditable()
- @Experimental() // non-standard
- final String appCodeName;
-
- @DomName('Navigator.appName')
- @DocsEditable()
- final String appName;
-
- @DomName('Navigator.appVersion')
- @DocsEditable()
- final String appVersion;
-
- @DomName('Navigator.dartEnabled')
- @DocsEditable()
- @Experimental() // untriaged
- final bool dartEnabled;
-
- @DomName('Navigator.platform')
- @DocsEditable()
- final String platform;
-
- @DomName('Navigator.product')
- @DocsEditable()
- @Unstable()
- final String product;
-
- @DomName('Navigator.userAgent')
- @DocsEditable()
- final String userAgent;
-
- // From NavigatorLanguage
-
- @DomName('Navigator.languages')
- @DocsEditable()
- @Experimental() // untriaged
- final List<String> languages;
-
- // From NavigatorOnLine
-
- @DomName('Navigator.onLine')
- @DocsEditable()
- @Unstable()
- final bool onLine;
-
- // From NavigatorStorageUtils
-
- @DomName('Navigator.cookieEnabled')
- @DocsEditable()
- @Unstable()
- final bool cookieEnabled;
-}
-// 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.
-
-@DocsEditable()
-@DomName('NavigatorCPU')
-@Experimental() // untriaged
-abstract class NavigatorCpu extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory NavigatorCpu._() {
- throw new UnsupportedError("Not supported");
- }
-
- final int hardwareConcurrency;
-}
-// 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.
-
-@DocsEditable()
-@DomName('NavigatorID')
-@Experimental() // untriaged
-abstract class NavigatorID extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory NavigatorID._() {
- throw new UnsupportedError("Not supported");
- }
-
- final String appCodeName;
-
- final String appName;
-
- final String appVersion;
-
- final bool dartEnabled;
-
- final String platform;
-
- final String product;
-
- final String userAgent;
-}
-// 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.
-
-@DocsEditable()
-@DomName('NavigatorLanguage')
-@Experimental() // untriaged
-abstract class NavigatorLanguage extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory NavigatorLanguage._() {
- throw new UnsupportedError("Not supported");
- }
-
- final String language;
-
- final List<String> languages;
-}
-// 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.
-
-@DocsEditable()
-@DomName('NavigatorOnLine')
-@Experimental() // untriaged
-abstract class NavigatorOnLine extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory NavigatorOnLine._() {
- throw new UnsupportedError("Not supported");
- }
-
- final bool onLine;
-}
-// 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.
-
-@DocsEditable()
-@DomName('NavigatorStorageUtils')
-@Experimental() // untriaged
-@Native("NavigatorStorageUtils")
-class NavigatorStorageUtils extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory NavigatorStorageUtils._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('NavigatorStorageUtils.cookieEnabled')
- @DocsEditable()
- @Experimental() // untriaged
- final bool cookieEnabled;
-}
-// 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.
-
-@DocsEditable()
-@DomName('NavigatorUserMediaError')
-// http://dev.w3.org/2011/webrtc/editor/getusermedia.html#idl-def-NavigatorUserMediaError
-@Experimental()
-@Native("NavigatorUserMediaError")
-class NavigatorUserMediaError extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory NavigatorUserMediaError._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('NavigatorUserMediaError.constraintName')
- @DocsEditable()
- final String constraintName;
-
- @DomName('NavigatorUserMediaError.message')
- @DocsEditable()
- final String message;
-
- @DomName('NavigatorUserMediaError.name')
- @DocsEditable()
- final String name;
-}
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('NavigatorUserMediaErrorCallback')
-// http://dev.w3.org/2011/webrtc/editor/getusermedia.html#idl-def-NavigatorUserMediaErrorCallback
-@Experimental()
-typedef void _NavigatorUserMediaErrorCallback(NavigatorUserMediaError error);
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('NavigatorUserMediaSuccessCallback')
-// http://dev.w3.org/2011/webrtc/editor/getusermedia.html#idl-def-NavigatorUserMediaSuccessCallback
-@Experimental()
-typedef void _NavigatorUserMediaSuccessCallback(MediaStream stream);
-// 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.
-
-@DocsEditable()
-@DomName('NetworkInformation')
-@Experimental() // untriaged
-@Native("NetworkInformation")
-class NetworkInformation extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory NetworkInformation._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('NetworkInformation.changeEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> changeEvent =
- const EventStreamProvider<Event>('change');
-
- @DomName('NetworkInformation.downlinkMax')
- @DocsEditable()
- @Experimental() // untriaged
- final double downlinkMax;
-
- @DomName('NetworkInformation.type')
- @DocsEditable()
- @Experimental() // untriaged
- final String type;
-
- @DomName('NetworkInformation.onchange')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onChange => changeEvent.forTarget(this);
-}
-// 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.
-
-/**
- * Lazy implementation of the child nodes of an element that does not request
- * the actual child nodes of an element until strictly necessary greatly
- * improving performance for the typical cases where it is not required.
- */
-class _ChildNodeListLazy extends ListBase<Node> implements NodeListWrapper {
- final Node _this;
-
- _ChildNodeListLazy(this._this);
-
- Node get first {
- Node result = JS('Node|Null', '#.firstChild', _this);
- if (result == null) throw new StateError("No elements");
- return result;
- }
-
- Node get last {
- Node result = JS('Node|Null', '#.lastChild', _this);
- if (result == null) throw new StateError("No elements");
- return result;
- }
-
- Node get single {
- int l = this.length;
- if (l == 0) throw new StateError("No elements");
- if (l > 1) throw new StateError("More than one element");
- return JS('Node|Null', '#.firstChild', _this);
- }
-
- void add(Node value) {
- _this.append(value);
- }
-
- void addAll(Iterable<Node> iterable) {
- if (iterable is _ChildNodeListLazy) {
- _ChildNodeListLazy otherList = iterable;
- if (!identical(otherList._this, _this)) {
- // Optimized route for copying between nodes.
- for (var i = 0, len = otherList.length; i < len; ++i) {
- _this.append(otherList._this.firstChild);
- }
- }
- return;
- }
- for (Node node in iterable) {
- _this.append(node);
- }
- }
-
- void insert(int index, Node node) {
- if (index < 0 || index > length) {
- throw new RangeError.range(index, 0, length);
- }
- if (index == length) {
- _this.append(node);
- } else {
- _this.insertBefore(node, this[index]);
- }
- }
-
- void insertAll(int index, Iterable<Node> iterable) {
- if (index == length) {
- addAll(iterable);
- } else {
- var item = this[index];
- _this.insertAllBefore(iterable, item);
- }
- }
-
- void setAll(int index, Iterable<Node> iterable) {
- throw new UnsupportedError("Cannot setAll on Node list");
- }
-
- Node removeLast() {
- final result = last;
- if (result != null) {
- _this._removeChild(result);
- }
- return result;
- }
-
- Node removeAt(int index) {
- var result = this[index];
- if (result != null) {
- _this._removeChild(result);
- }
- return result;
- }
-
- bool remove(Object object) {
- if (object is! Node) return false;
- Node node = object;
- if (!identical(_this, node.parentNode)) return false;
- _this._removeChild(node);
- return true;
- }
-
- void _filter(bool test(Node node), bool removeMatching) {
- // This implementation of removeWhere/retainWhere is more efficient
- // than the default in ListBase. Child nodes can be removed in constant
- // time.
- Node child = _this.firstChild;
- while (child != null) {
- Node nextChild = child.nextNode;
- if (test(child) == removeMatching) {
- _this._removeChild(child);
- }
- child = nextChild;
- }
- }
-
- void removeWhere(bool test(Node node)) {
- _filter(test, true);
- }
-
- void retainWhere(bool test(Node node)) {
- _filter(test, false);
- }
-
- void clear() {
- _this._clearChildren();
- }
-
- void operator []=(int index, Node value) {
- _this._replaceChild(value, this[index]);
- }
-
- Iterator<Node> get iterator => _this.childNodes.iterator;
-
- // From List<Node>:
-
- // TODO(jacobr): this could be implemented for child node lists.
- // The exception we throw here is misleading.
- void sort([Comparator<Node> compare]) {
- throw new UnsupportedError("Cannot sort Node list");
- }
-
- void shuffle([Random random]) {
- throw new UnsupportedError("Cannot shuffle Node list");
- }
-
- // FIXME: implement these.
- void setRange(int start, int end, Iterable<Node> iterable,
- [int skipCount = 0]) {
- throw new UnsupportedError("Cannot setRange on Node list");
- }
-
- void fillRange(int start, int end, [Node fill]) {
- throw new UnsupportedError("Cannot fillRange on Node list");
- }
-
- void removeRange(int start, int end) {
- throw new UnsupportedError("Cannot removeRange on Node list");
- }
- // -- end List<Node> mixins.
-
- // TODO(jacobr): benchmark whether this is more efficient or whether caching
- // a local copy of childNodes is more efficient.
- int get length => _this.childNodes.length;
-
- set length(int value) {
- throw new UnsupportedError("Cannot set length on immutable List.");
- }
-
- Node operator [](int index) => _this.childNodes[index];
-
- List<Node> get rawList => _this.childNodes;
-}
-
-@DomName('Node')
-@Native("Node")
-class Node extends EventTarget {
- // Custom element created callback.
- Node._created() : super._created();
-
- /**
- * A modifiable list of this node's children.
- */
- List<Node> get nodes {
- return new _ChildNodeListLazy(this);
- }
-
- set nodes(Iterable<Node> value) {
- // Copy list first since we don't want liveness during iteration.
- // TODO(jacobr): there is a better way to do this.
- var copy = value.toList();
- text = '';
- for (Node node in copy) {
- append(node);
- }
- }
-
- /**
- * Removes this node from the DOM.
- */
- @DomName('Node.removeChild')
- void remove() {
- // TODO(jacobr): should we throw an exception if parent is already null?
- // TODO(vsm): Use the native remove when available.
- if (this.parentNode != null) {
- final Node parent = this.parentNode;
- parentNode._removeChild(this);
- }
- }
-
- /**
- * Replaces this node with another node.
- */
- @DomName('Node.replaceChild')
- Node replaceWith(Node otherNode) {
- try {
- final Node parent = this.parentNode;
- parent._replaceChild(otherNode, this);
- } catch (e) {}
- ;
- return this;
- }
-
- /**
- * Inserts all of the nodes into this node directly before refChild.
- *
- * See also:
- *
- * * [insertBefore]
- */
- Node insertAllBefore(Iterable<Node> newNodes, Node refChild) {
- if (newNodes is _ChildNodeListLazy) {
- _ChildNodeListLazy otherList = newNodes;
- if (identical(otherList._this, this)) {
- throw new ArgumentError(newNodes);
- }
-
- // Optimized route for copying between nodes.
- for (var i = 0, len = otherList.length; i < len; ++i) {
- this.insertBefore(otherList._this.firstChild, refChild);
- }
- } else {
- for (var node in newNodes) {
- this.insertBefore(node, refChild);
- }
- }
- }
-
- void _clearChildren() {
- while (firstChild != null) {
- _removeChild(firstChild);
- }
- }
-
- /**
- * Print out a String representation of this Node.
- */
- String toString() {
- String value = nodeValue; // Fetch DOM Node property once.
- return value == null ? super.toString() : value;
- }
-
- /**
- * A list of this node's children.
- *
- * ## Other resources
- *
- * * [Node.childNodes](https://developer.mozilla.org/en-US/docs/Web/API/Node.childNodes)
- * from MDN.
- */
- @DomName('Node.childNodes')
- @DocsEditable()
- @Returns('NodeList')
- @Creates('NodeList')
- final List<Node> childNodes;
-
- // To suppress missing implicit constructor warnings.
- factory Node._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('Node.ATTRIBUTE_NODE')
- @DocsEditable()
- static const int ATTRIBUTE_NODE = 2;
-
- @DomName('Node.CDATA_SECTION_NODE')
- @DocsEditable()
- static const int CDATA_SECTION_NODE = 4;
-
- @DomName('Node.COMMENT_NODE')
- @DocsEditable()
- static const int COMMENT_NODE = 8;
-
- @DomName('Node.DOCUMENT_FRAGMENT_NODE')
- @DocsEditable()
- static const int DOCUMENT_FRAGMENT_NODE = 11;
-
- @DomName('Node.DOCUMENT_NODE')
- @DocsEditable()
- static const int DOCUMENT_NODE = 9;
-
- @DomName('Node.DOCUMENT_TYPE_NODE')
- @DocsEditable()
- static const int DOCUMENT_TYPE_NODE = 10;
-
- @DomName('Node.ELEMENT_NODE')
- @DocsEditable()
- static const int ELEMENT_NODE = 1;
-
- @DomName('Node.ENTITY_NODE')
- @DocsEditable()
- static const int ENTITY_NODE = 6;
-
- @DomName('Node.ENTITY_REFERENCE_NODE')
- @DocsEditable()
- static const int ENTITY_REFERENCE_NODE = 5;
-
- @DomName('Node.NOTATION_NODE')
- @DocsEditable()
- static const int NOTATION_NODE = 12;
-
- @DomName('Node.PROCESSING_INSTRUCTION_NODE')
- @DocsEditable()
- static const int PROCESSING_INSTRUCTION_NODE = 7;
-
- @DomName('Node.TEXT_NODE')
- @DocsEditable()
- static const int TEXT_NODE = 3;
-
- @JSName('baseURI')
- @DomName('Node.baseURI')
- @DocsEditable()
- final String baseUri;
-
- /**
- * The first child of this node.
- *
- * ## Other resources
- *
- * * [Node.firstChild](https://developer.mozilla.org/en-US/docs/Web/API/Node.firstChild)
- * from MDN.
- */
- @DomName('Node.firstChild')
- @DocsEditable()
- final Node firstChild;
-
- /**
- * The last child of this node.
- *
- * ## Other resources
- *
- * * [Node.lastChild](https://developer.mozilla.org/en-US/docs/Web/API/Node.lastChild)
- * from MDN.
- */
- @DomName('Node.lastChild')
- @DocsEditable()
- final Node lastChild;
-
- @JSName('nextSibling')
- /**
- * The next sibling node.
- *
- * ## Other resources
- *
- * * [Node.nextSibling](https://developer.mozilla.org/en-US/docs/Web/API/Node.nextSibling)
- * from MDN.
- */
- @DomName('Node.nextSibling')
- @DocsEditable()
- final Node nextNode;
-
- /**
- * The name of this node.
- *
- * This varies by this node's [nodeType].
- *
- * ## Other resources
- *
- * * [Node.nodeName](https://developer.mozilla.org/en-US/docs/Web/API/Node.nodeName)
- * from MDN. This page contains a table of [nodeName] values for each
- * [nodeType].
- */
- @DomName('Node.nodeName')
- @DocsEditable()
- final String nodeName;
-
- /**
- * The type of node.
- *
- * This value is one of:
- *
- * * [ATTRIBUTE_NODE] if this node is an attribute.
- * * [CDATA_SECTION_NODE] if this node is a [CDataSection].
- * * [COMMENT_NODE] if this node is a [Comment].
- * * [DOCUMENT_FRAGMENT_NODE] if this node is a [DocumentFragment].
- * * [DOCUMENT_NODE] if this node is a [Document].
- * * [DOCUMENT_TYPE_NODE] if this node is a [DocumentType] node.
- * * [ELEMENT_NODE] if this node is an [Element].
- * * [ENTITY_NODE] if this node is an entity.
- * * [ENTITY_REFERENCE_NODE] if this node is an entity reference.
- * * [NOTATION_NODE] if this node is a notation.
- * * [PROCESSING_INSTRUCTION_NODE] if this node is a [ProcessingInstruction].
- * * [TEXT_NODE] if this node is a [Text] node.
- *
- * ## Other resources
- *
- * * [Node.nodeType](https://developer.mozilla.org/en-US/docs/Web/API/Node.nodeType)
- * from MDN.
- */
- @DomName('Node.nodeType')
- @DocsEditable()
- final int nodeType;
-
- /**
- * The value of this node.
- *
- * This varies by this type's [nodeType].
- *
- * ## Other resources
- *
- * * [Node.nodeValue](https://developer.mozilla.org/en-US/docs/Web/API/Node.nodeValue)
- * from MDN. This page contains a table of [nodeValue] values for each
- * [nodeType].
- */
- @DomName('Node.nodeValue')
- @DocsEditable()
- final String nodeValue;
-
- /**
- * The document this node belongs to.
- *
- * Returns null if this node does not belong to any document.
- *
- * ## Other resources
- *
- * * [Node.ownerDocument](https://developer.mozilla.org/en-US/docs/Web/API/Node.ownerDocument)
- * from MDN.
- */
- @DomName('Node.ownerDocument')
- @DocsEditable()
- final Document ownerDocument;
-
- @JSName('parentElement')
- /**
- * The parent element of this node.
- *
- * Returns null if this node either does not have a parent or its parent is
- * not an element.
- *
- * ## Other resources
- *
- * * [Node.parentElement](https://developer.mozilla.org/en-US/docs/Web/API/Node.parentElement)
- * from W3C.
- */
- @DomName('Node.parentElement')
- @DocsEditable()
- final Element parent;
-
- /**
- * The parent node of this node.
- *
- * ## Other resources
- *
- * * [Node.parentNode](https://developer.mozilla.org/en-US/docs/Web/API/Node.parentNode)
- * from MDN.
- */
- @DomName('Node.parentNode')
- @DocsEditable()
- final Node parentNode;
-
- @JSName('previousSibling')
- /**
- * The previous sibling node.
- *
- * ## Other resources
- *
- * * [Node.previousSibling](https://developer.mozilla.org/en-US/docs/Web/API/Node.previousSibling)
- * from MDN.
- */
- @DomName('Node.previousSibling')
- @DocsEditable()
- final Node previousNode;
-
- @JSName('textContent')
- /**
- * All text within this node and its descendents.
- *
- * ## Other resources
- *
- * * [Node.textContent](https://developer.mozilla.org/en-US/docs/Web/API/Node.textContent)
- * from MDN.
- */
- @DomName('Node.textContent')
- @DocsEditable()
- String text;
-
- @DomName('Node.treeRoot')
- @DocsEditable()
- @Experimental() // untriaged
- final Node treeRoot;
-
- @JSName('appendChild')
- /**
- * Adds a node to the end of the child [nodes] list of this node.
- *
- * If the node already exists in this document, it will be removed from its
- * current parent node, then added to this node.
- *
- * This method is more efficient than `nodes.add`, and is the preferred
- * way of appending a child node.
- */
- @DomName('Node.appendChild')
- @DocsEditable()
- Node append(Node node) native;
-
- @JSName('cloneNode')
- /**
- * Returns a copy of this node.
- *
- * If [deep] is `true`, then all of this node's children and descendents are
- * copied as well. If [deep] is `false`, then only this node is copied.
- *
- * ## Other resources
- *
- * * [Node.cloneNode](https://developer.mozilla.org/en-US/docs/Web/API/Node.cloneNode)
- * from MDN.
- */
- @DomName('Node.cloneNode')
- @DocsEditable()
- Node clone(bool deep) native;
-
- /**
- * Returns true if this node contains the specified node.
- *
- * ## Other resources
- *
- * * [Node.contains](https://developer.mozilla.org/en-US/docs/Web/API/Node.contains)
- * from MDN.
- */
- @DomName('Node.contains')
- @DocsEditable()
- bool contains(Node other) native;
-
- /**
- * Returns true if this node has any children.
- *
- * ## Other resources
- *
- * * [Node.hasChildNodes](https://developer.mozilla.org/en-US/docs/Web/API/Node.hasChildNodes)
- * from MDN.
- */
- @DomName('Node.hasChildNodes')
- @DocsEditable()
- bool hasChildNodes() native;
-
- /**
- * Inserts all of the nodes into this node directly before refChild.
- *
- * ## Other resources
- *
- * * [Node.insertBefore](https://developer.mozilla.org/en-US/docs/Web/API/Node.insertBefore)
- * from MDN.
- */
- @DomName('Node.insertBefore')
- @DocsEditable()
- Node insertBefore(Node node, Node child) native;
-
- @JSName('removeChild')
- @DomName('Node.removeChild')
- @DocsEditable()
- Node _removeChild(Node child) native;
-
- @JSName('replaceChild')
- @DomName('Node.replaceChild')
- @DocsEditable()
- Node _replaceChild(Node node, Node child) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('NodeFilter')
-@Unstable()
-@Native("NodeFilter")
-class NodeFilter extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory NodeFilter._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('NodeFilter.FILTER_ACCEPT')
- @DocsEditable()
- static const int FILTER_ACCEPT = 1;
-
- @DomName('NodeFilter.FILTER_REJECT')
- @DocsEditable()
- static const int FILTER_REJECT = 2;
-
- @DomName('NodeFilter.FILTER_SKIP')
- @DocsEditable()
- static const int FILTER_SKIP = 3;
-
- @DomName('NodeFilter.SHOW_ALL')
- @DocsEditable()
- static const int SHOW_ALL = 0xFFFFFFFF;
-
- @DomName('NodeFilter.SHOW_COMMENT')
- @DocsEditable()
- static const int SHOW_COMMENT = 0x80;
-
- @DomName('NodeFilter.SHOW_DOCUMENT')
- @DocsEditable()
- static const int SHOW_DOCUMENT = 0x100;
-
- @DomName('NodeFilter.SHOW_DOCUMENT_FRAGMENT')
- @DocsEditable()
- static const int SHOW_DOCUMENT_FRAGMENT = 0x400;
-
- @DomName('NodeFilter.SHOW_DOCUMENT_TYPE')
- @DocsEditable()
- static const int SHOW_DOCUMENT_TYPE = 0x200;
-
- @DomName('NodeFilter.SHOW_ELEMENT')
- @DocsEditable()
- static const int SHOW_ELEMENT = 0x1;
-
- @DomName('NodeFilter.SHOW_PROCESSING_INSTRUCTION')
- @DocsEditable()
- static const int SHOW_PROCESSING_INSTRUCTION = 0x40;
-
- @DomName('NodeFilter.SHOW_TEXT')
- @DocsEditable()
- static const int SHOW_TEXT = 0x4;
-}
-// 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.
-
-@DomName('NodeIterator')
-@Unstable()
-@Native("NodeIterator")
-class NodeIterator extends Interceptor {
- factory NodeIterator(Node root, int whatToShow) {
- return document._createNodeIterator(root, whatToShow, null);
- }
- // To suppress missing implicit constructor warnings.
- factory NodeIterator._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('NodeIterator.pointerBeforeReferenceNode')
- @DocsEditable()
- final bool pointerBeforeReferenceNode;
-
- @DomName('NodeIterator.referenceNode')
- @DocsEditable()
- final Node referenceNode;
-
- @DomName('NodeIterator.root')
- @DocsEditable()
- final Node root;
-
- @DomName('NodeIterator.whatToShow')
- @DocsEditable()
- final int whatToShow;
-
- @DomName('NodeIterator.detach')
- @DocsEditable()
- void detach() native;
-
- @DomName('NodeIterator.nextNode')
- @DocsEditable()
- Node nextNode() native;
-
- @DomName('NodeIterator.previousNode')
- @DocsEditable()
- Node previousNode() native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('NodeList')
-@Native("NodeList,RadioNodeList")
-class NodeList extends Interceptor
- with ListMixin<Node>, ImmutableListMixin<Node>
- implements JavaScriptIndexingBehavior<Node>, List<Node> {
- // To suppress missing implicit constructor warnings.
- factory NodeList._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('NodeList.length')
- @DocsEditable()
- int get length => JS("int", "#.length", this);
-
- Node operator [](int index) {
- if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
- throw new RangeError.index(index, this);
- return JS("Node", "#[#]", this, index);
- }
-
- void operator []=(int index, Node value) {
- throw new UnsupportedError("Cannot assign element of immutable List.");
- }
- // -- start List<Node> mixins.
- // Node is the element type.
-
- set length(int value) {
- throw new UnsupportedError("Cannot resize immutable List.");
- }
-
- Node get first {
- if (this.length > 0) {
- return JS('Node', '#[0]', this);
- }
- throw new StateError("No elements");
- }
-
- Node get last {
- int len = this.length;
- if (len > 0) {
- return JS('Node', '#[#]', this, len - 1);
- }
- throw new StateError("No elements");
- }
-
- Node get single {
- int len = this.length;
- if (len == 1) {
- return JS('Node', '#[0]', this);
- }
- if (len == 0) throw new StateError("No elements");
- throw new StateError("More than one element");
- }
-
- Node elementAt(int index) => this[index];
- // -- end List<Node> mixins.
-
- @JSName('item')
- @DomName('NodeList.item')
- @DocsEditable()
- Node _item(int index) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('NonDocumentTypeChildNode')
-@Experimental() // untriaged
-@Native("NonDocumentTypeChildNode")
-class NonDocumentTypeChildNode extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory NonDocumentTypeChildNode._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('NonDocumentTypeChildNode.nextElementSibling')
- @DocsEditable()
- @Experimental() // untriaged
- final Element nextElementSibling;
-
- @DomName('NonDocumentTypeChildNode.previousElementSibling')
- @DocsEditable()
- @Experimental() // untriaged
- final Element previousElementSibling;
-}
-// 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.
-
-@DocsEditable()
-@DomName('NonElementParentNode')
-@Experimental() // untriaged
-@Native("NonElementParentNode")
-class NonElementParentNode extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory NonElementParentNode._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('NonElementParentNode.getElementById')
- @DocsEditable()
- @Experimental() // untriaged
- Element getElementById(String elementId) native;
-}
-// 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.
-
-@DomName('Notification')
-// http://www.w3.org/TR/notifications/#notification
-@Experimental() // experimental
-@Native("Notification")
-class Notification extends EventTarget {
- factory Notification(String title,
- {String dir: null,
- String body: null,
- String lang: null,
- String tag: null,
- String icon: null}) {
- var parsedOptions = {};
- if (dir != null) parsedOptions['dir'] = dir;
- if (body != null) parsedOptions['body'] = body;
- if (lang != null) parsedOptions['lang'] = lang;
- if (tag != null) parsedOptions['tag'] = tag;
- if (icon != null) parsedOptions['icon'] = icon;
- return Notification._factoryNotification(title, parsedOptions);
- }
- // To suppress missing implicit constructor warnings.
- factory Notification._() {
- throw new UnsupportedError("Not supported");
- }
-
- /**
- * Static factory designed to expose `click` events to event
- * handlers that are not necessarily instances of [Notification].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Notification.clickEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> clickEvent =
- const EventStreamProvider<Event>('click');
-
- /**
- * Static factory designed to expose `close` events to event
- * handlers that are not necessarily instances of [Notification].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Notification.closeEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> closeEvent =
- const EventStreamProvider<Event>('close');
-
- /**
- * Static factory designed to expose `error` events to event
- * handlers that are not necessarily instances of [Notification].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Notification.errorEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> errorEvent =
- const EventStreamProvider<Event>('error');
-
- /**
- * Static factory designed to expose `show` events to event
- * handlers that are not necessarily instances of [Notification].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Notification.showEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> showEvent =
- const EventStreamProvider<Event>('show');
-
- @DomName('Notification.Notification')
- @DocsEditable()
- static Notification _factoryNotification(String title, [Map options]) {
- if (options != null) {
- var options_1 = convertDartToNative_Dictionary(options);
- return Notification._create_1(title, options_1);
- }
- return Notification._create_2(title);
- }
-
- static Notification _create_1(title, options) =>
- JS('Notification', 'new Notification(#,#)', title, options);
- static Notification _create_2(title) =>
- JS('Notification', 'new Notification(#)', title);
-
- /// Checks if this type is supported on the current platform.
- static bool get supported => JS('bool', '!!(window.Notification)');
-
- @DomName('Notification.actions')
- @DocsEditable()
- @Experimental() // untriaged
- final List actions;
-
- @DomName('Notification.body')
- @DocsEditable()
- @Experimental() // untriaged
- final String body;
-
- @DomName('Notification.data')
- @DocsEditable()
- @Experimental() // untriaged
- @annotation_Creates_SerializedScriptValue
- @annotation_Returns_SerializedScriptValue
- final Object data;
-
- @DomName('Notification.dir')
- @DocsEditable()
- @Experimental() // nonstandard
- final String dir;
-
- @DomName('Notification.icon')
- @DocsEditable()
- @Experimental() // untriaged
- final String icon;
-
- @DomName('Notification.lang')
- @DocsEditable()
- @Experimental() // untriaged
- final String lang;
-
- @DomName('Notification.maxActions')
- @DocsEditable()
- @Experimental() // untriaged
- final int maxActions;
-
- @DomName('Notification.permission')
- @DocsEditable()
- final String permission;
-
- @DomName('Notification.renotify')
- @DocsEditable()
- @Experimental() // untriaged
- final bool renotify;
-
- @DomName('Notification.requireInteraction')
- @DocsEditable()
- @Experimental() // untriaged
- final bool requireInteraction;
-
- @DomName('Notification.silent')
- @DocsEditable()
- @Experimental() // untriaged
- final bool silent;
-
- @DomName('Notification.tag')
- @DocsEditable()
- @Experimental() // nonstandard
- final String tag;
-
- @DomName('Notification.timestamp')
- @DocsEditable()
- @Experimental() // untriaged
- final int timestamp;
-
- @DomName('Notification.title')
- @DocsEditable()
- @Experimental() // untriaged
- final String title;
-
- @DomName('Notification.vibrate')
- @DocsEditable()
- @Experimental() // untriaged
- final List<int> vibrate;
-
- @DomName('Notification.close')
- @DocsEditable()
- void close() native;
-
- @JSName('requestPermission')
- @DomName('Notification.requestPermission')
- @DocsEditable()
- static Future _requestPermission(
- [_NotificationPermissionCallback deprecatedCallback]) native;
-
- @JSName('requestPermission')
- @DomName('Notification.requestPermission')
- @DocsEditable()
- static Future<String> requestPermission() {
- var completer = new Completer<String>();
- _requestPermission((value) {
- completer.complete(value);
- });
- return completer.future;
- }
-
- /// Stream of `click` events handled by this [Notification].
- @DomName('Notification.onclick')
- @DocsEditable()
- Stream<Event> get onClick => clickEvent.forTarget(this);
-
- /// Stream of `close` events handled by this [Notification].
- @DomName('Notification.onclose')
- @DocsEditable()
- Stream<Event> get onClose => closeEvent.forTarget(this);
-
- /// Stream of `error` events handled by this [Notification].
- @DomName('Notification.onerror')
- @DocsEditable()
- Stream<Event> get onError => errorEvent.forTarget(this);
-
- /// Stream of `show` events handled by this [Notification].
- @DomName('Notification.onshow')
- @DocsEditable()
- Stream<Event> get onShow => showEvent.forTarget(this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('NotificationEvent')
-@Experimental() // untriaged
-@Native("NotificationEvent")
-class NotificationEvent extends ExtendableEvent {
- // To suppress missing implicit constructor warnings.
- factory NotificationEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('NotificationEvent.NotificationEvent')
- @DocsEditable()
- factory NotificationEvent(String type, Map eventInitDict) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return NotificationEvent._create_1(type, eventInitDict_1);
- }
- static NotificationEvent _create_1(type, eventInitDict) => JS(
- 'NotificationEvent', 'new NotificationEvent(#,#)', type, eventInitDict);
-
- @DomName('NotificationEvent.action')
- @DocsEditable()
- @Experimental() // untriaged
- final String action;
-
- @DomName('NotificationEvent.notification')
- @DocsEditable()
- @Experimental() // untriaged
- final Notification notification;
-}
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('NotificationPermissionCallback')
-// http://www.w3.org/TR/notifications/#notificationpermissioncallback
-@Experimental()
-typedef void _NotificationPermissionCallback(String permission);
-// 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.
-
-@DocsEditable()
-@DomName('NumberValue')
-@Experimental() // untriaged
-@Native("NumberValue")
-class NumberValue extends StyleValue {
- // To suppress missing implicit constructor warnings.
- factory NumberValue._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('NumberValue.NumberValue')
- @DocsEditable()
- factory NumberValue(num value) {
- return NumberValue._create_1(value);
- }
- static NumberValue _create_1(value) =>
- JS('NumberValue', 'new NumberValue(#)', value);
-
- @DomName('NumberValue.value')
- @DocsEditable()
- @Experimental() // untriaged
- final double value;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLOListElement')
-@Native("HTMLOListElement")
-class OListElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory OListElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLOListElement.HTMLOListElement')
- @DocsEditable()
- factory OListElement() => JS(
- 'returns:OListElement;creates:OListElement;new:true',
- '#.createElement(#)',
- document,
- "ol");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- OListElement.created() : super.created();
-
- @DomName('HTMLOListElement.reversed')
- @DocsEditable()
- bool reversed;
-
- @DomName('HTMLOListElement.start')
- @DocsEditable()
- int start;
-
- @DomName('HTMLOListElement.type')
- @DocsEditable()
- String type;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLObjectElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.IE)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("HTMLObjectElement")
-class ObjectElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory ObjectElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLObjectElement.HTMLObjectElement')
- @DocsEditable()
- factory ObjectElement() => document.createElement("object");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- ObjectElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported => Element.isTagSupported('object');
-
- @DomName('HTMLObjectElement.data')
- @DocsEditable()
- String data;
-
- @DomName('HTMLObjectElement.form')
- @DocsEditable()
- final FormElement form;
-
- @DomName('HTMLObjectElement.height')
- @DocsEditable()
- String height;
-
- @DomName('HTMLObjectElement.name')
- @DocsEditable()
- String name;
-
- @DomName('HTMLObjectElement.type')
- @DocsEditable()
- String type;
-
- @DomName('HTMLObjectElement.useMap')
- @DocsEditable()
- String useMap;
-
- @DomName('HTMLObjectElement.validationMessage')
- @DocsEditable()
- final String validationMessage;
-
- @DomName('HTMLObjectElement.validity')
- @DocsEditable()
- final ValidityState validity;
-
- @DomName('HTMLObjectElement.width')
- @DocsEditable()
- String width;
-
- @DomName('HTMLObjectElement.willValidate')
- @DocsEditable()
- final bool willValidate;
-
- @DomName('HTMLObjectElement.__getter__')
- @DocsEditable()
- bool __getter__(index_OR_name) native;
-
- @DomName('HTMLObjectElement.__setter__')
- @DocsEditable()
- void __setter__(index_OR_name, Node value) native;
-
- @DomName('HTMLObjectElement.checkValidity')
- @DocsEditable()
- bool checkValidity() native;
-
- @DomName('HTMLObjectElement.reportValidity')
- @DocsEditable()
- @Experimental() // untriaged
- bool reportValidity() native;
-
- @DomName('HTMLObjectElement.setCustomValidity')
- @DocsEditable()
- void setCustomValidity(String error) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('OffscreenCanvas')
-@Experimental() // untriaged
-@Native("OffscreenCanvas")
-class OffscreenCanvas extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory OffscreenCanvas._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('OffscreenCanvas.OffscreenCanvas')
- @DocsEditable()
- factory OffscreenCanvas(int width, int height) {
- return OffscreenCanvas._create_1(width, height);
- }
- static OffscreenCanvas _create_1(width, height) =>
- JS('OffscreenCanvas', 'new OffscreenCanvas(#,#)', width, height);
-
- @DomName('OffscreenCanvas.height')
- @DocsEditable()
- @Experimental() // untriaged
- int height;
-
- @DomName('OffscreenCanvas.width')
- @DocsEditable()
- @Experimental() // untriaged
- int width;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLOptGroupElement')
-@Native("HTMLOptGroupElement")
-class OptGroupElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory OptGroupElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLOptGroupElement.HTMLOptGroupElement')
- @DocsEditable()
- factory OptGroupElement() => JS(
- 'returns:OptGroupElement;creates:OptGroupElement;new:true',
- '#.createElement(#)',
- document,
- "optgroup");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- OptGroupElement.created() : super.created();
-
- @DomName('HTMLOptGroupElement.disabled')
- @DocsEditable()
- bool disabled;
-
- @DomName('HTMLOptGroupElement.label')
- @DocsEditable()
- String label;
-}
-// 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.
-
-@DomName('HTMLOptionElement')
-@Native("HTMLOptionElement")
-class OptionElement extends HtmlElement {
- factory OptionElement(
- {String data: '', String value: '', bool selected: false}) {
- return new OptionElement._(data, value, null, selected);
- }
-
- @DomName('HTMLOptionElement.HTMLOptionElement')
- @DocsEditable()
- factory OptionElement._(
- [String data, String value, bool defaultSelected, bool selected]) {
- if (selected != null) {
- return OptionElement._create_1(data, value, defaultSelected, selected);
- }
- if (defaultSelected != null) {
- return OptionElement._create_2(data, value, defaultSelected);
- }
- if (value != null) {
- return OptionElement._create_3(data, value);
- }
- if (data != null) {
- return OptionElement._create_4(data);
- }
- return OptionElement._create_5();
- }
- static OptionElement _create_1(data, value, defaultSelected, selected) => JS(
- 'OptionElement',
- 'new Option(#,#,#,#)',
- data,
- value,
- defaultSelected,
- selected);
- static OptionElement _create_2(data, value, defaultSelected) =>
- JS('OptionElement', 'new Option(#,#,#)', data, value, defaultSelected);
- static OptionElement _create_3(data, value) =>
- JS('OptionElement', 'new Option(#,#)', data, value);
- static OptionElement _create_4(data) =>
- JS('OptionElement', 'new Option(#)', data);
- static OptionElement _create_5() => JS('OptionElement', 'new Option()');
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- OptionElement.created() : super.created();
-
- @DomName('HTMLOptionElement.defaultSelected')
- @DocsEditable()
- bool defaultSelected;
-
- @DomName('HTMLOptionElement.disabled')
- @DocsEditable()
- bool disabled;
-
- @DomName('HTMLOptionElement.form')
- @DocsEditable()
- final FormElement form;
-
- @DomName('HTMLOptionElement.index')
- @DocsEditable()
- final int index;
-
- @DomName('HTMLOptionElement.label')
- @DocsEditable()
- String label;
-
- @DomName('HTMLOptionElement.selected')
- @DocsEditable()
- bool selected;
-
- @DomName('HTMLOptionElement.value')
- @DocsEditable()
- String value;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLOutputElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Native("HTMLOutputElement")
-class OutputElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory OutputElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLOutputElement.HTMLOutputElement')
- @DocsEditable()
- factory OutputElement() => document.createElement("output");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- OutputElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported => Element.isTagSupported('output');
-
- @DomName('HTMLOutputElement.defaultValue')
- @DocsEditable()
- String defaultValue;
-
- @DomName('HTMLOutputElement.form')
- @DocsEditable()
- final FormElement form;
-
- @DomName('HTMLOutputElement.htmlFor')
- @DocsEditable()
- final DomTokenList htmlFor;
-
- @DomName('HTMLOutputElement.labels')
- @DocsEditable()
- @Unstable()
- @Returns('NodeList|Null')
- @Creates('NodeList')
- final List<Node> labels;
-
- @DomName('HTMLOutputElement.name')
- @DocsEditable()
- String name;
-
- @DomName('HTMLOutputElement.type')
- @DocsEditable()
- final String type;
-
- @DomName('HTMLOutputElement.validationMessage')
- @DocsEditable()
- final String validationMessage;
-
- @DomName('HTMLOutputElement.validity')
- @DocsEditable()
- final ValidityState validity;
-
- @DomName('HTMLOutputElement.value')
- @DocsEditable()
- String value;
-
- @DomName('HTMLOutputElement.willValidate')
- @DocsEditable()
- final bool willValidate;
-
- @DomName('HTMLOutputElement.checkValidity')
- @DocsEditable()
- bool checkValidity() native;
-
- @DomName('HTMLOutputElement.reportValidity')
- @DocsEditable()
- @Experimental() // untriaged
- bool reportValidity() native;
-
- @DomName('HTMLOutputElement.setCustomValidity')
- @DocsEditable()
- void setCustomValidity(String error) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('PageTransitionEvent')
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/history.html#pagetransitionevent
-@Experimental()
-@Native("PageTransitionEvent")
-class PageTransitionEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory PageTransitionEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('PageTransitionEvent.PageTransitionEvent')
- @DocsEditable()
- factory PageTransitionEvent(String type, [Map eventInitDict]) {
- if (eventInitDict != null) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return PageTransitionEvent._create_1(type, eventInitDict_1);
- }
- return PageTransitionEvent._create_2(type);
- }
- static PageTransitionEvent _create_1(type, eventInitDict) => JS(
- 'PageTransitionEvent',
- 'new PageTransitionEvent(#,#)',
- type,
- eventInitDict);
- static PageTransitionEvent _create_2(type) =>
- JS('PageTransitionEvent', 'new PageTransitionEvent(#)', type);
-
- @DomName('PageTransitionEvent.persisted')
- @DocsEditable()
- final bool persisted;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLParagraphElement')
-@Native("HTMLParagraphElement")
-class ParagraphElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory ParagraphElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLParagraphElement.HTMLParagraphElement')
- @DocsEditable()
- factory ParagraphElement() => JS(
- 'returns:ParagraphElement;creates:ParagraphElement;new:true',
- '#.createElement(#)',
- document,
- "p");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- ParagraphElement.created() : super.created();
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLParamElement')
-@Unstable()
-@Native("HTMLParamElement")
-class ParamElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory ParamElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLParamElement.HTMLParamElement')
- @DocsEditable()
- factory ParamElement() => JS(
- 'returns:ParamElement;creates:ParamElement;new:true',
- '#.createElement(#)',
- document,
- "param");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- ParamElement.created() : super.created();
-
- @DomName('HTMLParamElement.name')
- @DocsEditable()
- String name;
-
- @DomName('HTMLParamElement.value')
- @DocsEditable()
- String value;
-}
-// 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.
-
-@DocsEditable()
-@DomName('ParentNode')
-@Experimental() // untriaged
-abstract class ParentNode extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory ParentNode._() {
- throw new UnsupportedError("Not supported");
- }
-
- final int _childElementCount;
-
- final List<Node> _children;
-
- final Element _firstElementChild;
-
- final Element _lastElementChild;
-
- Element querySelector(String selectors);
-
- List<Node> _querySelectorAll(String selectors);
-}
-// 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.
-
-@DocsEditable()
-@DomName('PasswordCredential')
-@Experimental() // untriaged
-@Native("PasswordCredential")
-class PasswordCredential extends Credential {
- // To suppress missing implicit constructor warnings.
- factory PasswordCredential._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('PasswordCredential.PasswordCredential')
- @DocsEditable()
- factory PasswordCredential(Map data) {
- var data_1 = convertDartToNative_Dictionary(data);
- return PasswordCredential._create_1(data_1);
- }
- static PasswordCredential _create_1(data) =>
- JS('PasswordCredential', 'new PasswordCredential(#)', data);
-
- @DomName('PasswordCredential.additionalData')
- @DocsEditable()
- @Experimental() // untriaged
- Object additionalData;
-
- @DomName('PasswordCredential.idName')
- @DocsEditable()
- @Experimental() // untriaged
- String idName;
-
- @DomName('PasswordCredential.passwordName')
- @DocsEditable()
- @Experimental() // untriaged
- String passwordName;
-}
-// 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.
-
-@DocsEditable()
-@DomName('Path2D')
-@Experimental() // untriaged
-@Native("Path2D")
-class Path2D extends Interceptor implements _CanvasPathMethods {
- // To suppress missing implicit constructor warnings.
- factory Path2D._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('Path2D.Path2D')
- @DocsEditable()
- factory Path2D([path_OR_text]) {
- if (path_OR_text == null) {
- return Path2D._create_1();
- }
- if ((path_OR_text is Path2D)) {
- return Path2D._create_2(path_OR_text);
- }
- if ((path_OR_text is String)) {
- return Path2D._create_3(path_OR_text);
- }
- throw new ArgumentError("Incorrect number or type of arguments");
- }
- static Path2D _create_1() => JS('Path2D', 'new Path2D()');
- static Path2D _create_2(path_OR_text) =>
- JS('Path2D', 'new Path2D(#)', path_OR_text);
- static Path2D _create_3(path_OR_text) =>
- JS('Path2D', 'new Path2D(#)', path_OR_text);
-
- @DomName('Path2D.addPath')
- @DocsEditable()
- @Experimental() // untriaged
- void addPath(Path2D path, [Matrix transform]) native;
-
- // From CanvasPathMethods
-
- @DomName('Path2D.arc')
- @DocsEditable()
- @Experimental() // untriaged
- void arc(num x, num y, num radius, num startAngle, num endAngle,
- bool anticlockwise) native;
-
- @DomName('Path2D.arcTo')
- @DocsEditable()
- @Experimental() // untriaged
- void arcTo(num x1, num y1, num x2, num y2, num radius) native;
-
- @DomName('Path2D.bezierCurveTo')
- @DocsEditable()
- @Experimental() // untriaged
- void bezierCurveTo(num cp1x, num cp1y, num cp2x, num cp2y, num x, num y)
- native;
-
- @DomName('Path2D.closePath')
- @DocsEditable()
- @Experimental() // untriaged
- void closePath() native;
-
- @DomName('Path2D.ellipse')
- @DocsEditable()
- @Experimental() // untriaged
- void ellipse(num x, num y, num radiusX, num radiusY, num rotation,
- num startAngle, num endAngle, bool anticlockwise) native;
-
- @DomName('Path2D.lineTo')
- @DocsEditable()
- @Experimental() // untriaged
- void lineTo(num x, num y) native;
-
- @DomName('Path2D.moveTo')
- @DocsEditable()
- @Experimental() // untriaged
- void moveTo(num x, num y) native;
-
- @DomName('Path2D.quadraticCurveTo')
- @DocsEditable()
- @Experimental() // untriaged
- void quadraticCurveTo(num cpx, num cpy, num x, num y) native;
-
- @DomName('Path2D.rect')
- @DocsEditable()
- @Experimental() // untriaged
- void rect(num x, num y, num width, num height) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('Performance')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE)
-@Native("Performance")
-class Performance extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory Performance._() {
- throw new UnsupportedError("Not supported");
- }
-
- /// Checks if this type is supported on the current platform.
- static bool get supported => JS('bool', '!!(window.performance)');
-
- @DomName('Performance.memory')
- @DocsEditable()
- @Experimental() // nonstandard
- final MemoryInfo memory;
-
- @DomName('Performance.navigation')
- @DocsEditable()
- final PerformanceNavigation navigation;
-
- @DomName('Performance.timing')
- @DocsEditable()
- final PerformanceTiming timing;
-
- @DomName('Performance.clearFrameTimings')
- @DocsEditable()
- @Experimental() // untriaged
- void clearFrameTimings() native;
-
- @DomName('Performance.clearMarks')
- @DocsEditable()
- // https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/UserTiming/Overview.html#extensions-performance-interface
- @Experimental()
- void clearMarks(String markName) native;
-
- @DomName('Performance.clearMeasures')
- @DocsEditable()
- // https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/UserTiming/Overview.html#extensions-performance-interface
- @Experimental()
- void clearMeasures(String measureName) native;
-
- @DomName('Performance.clearResourceTimings')
- @DocsEditable()
- @Experimental() // untriaged
- void clearResourceTimings() native;
-
- @DomName('Performance.getEntries')
- @DocsEditable()
- // http://www.w3.org/TR/performance-timeline/#sec-window.performance-attribute
- @Experimental()
- List<PerformanceEntry> getEntries() native;
-
- @DomName('Performance.getEntriesByName')
- @DocsEditable()
- // http://www.w3.org/TR/performance-timeline/#sec-window.performance-attribute
- @Experimental()
- List<PerformanceEntry> getEntriesByName(String name, String entryType) native;
-
- @DomName('Performance.getEntriesByType')
- @DocsEditable()
- // http://www.w3.org/TR/performance-timeline/#sec-window.performance-attribute
- @Experimental()
- List<PerformanceEntry> getEntriesByType(String entryType) native;
-
- @DomName('Performance.mark')
- @DocsEditable()
- // https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/UserTiming/Overview.html#extensions-performance-interface
- @Experimental()
- void mark(String markName) native;
-
- @DomName('Performance.measure')
- @DocsEditable()
- // https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/UserTiming/Overview.html#extensions-performance-interface
- @Experimental()
- void measure(String measureName, String startMark, String endMark) native;
-
- @DomName('Performance.now')
- @DocsEditable()
- double now() native;
-
- @DomName('Performance.setFrameTimingBufferSize')
- @DocsEditable()
- @Experimental() // untriaged
- void setFrameTimingBufferSize(int maxSize) native;
-
- @DomName('Performance.setResourceTimingBufferSize')
- @DocsEditable()
- @Experimental() // untriaged
- void setResourceTimingBufferSize(int maxSize) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('PerformanceCompositeTiming')
-@Experimental() // untriaged
-@Native("PerformanceCompositeTiming")
-class PerformanceCompositeTiming extends PerformanceEntry {
- // To suppress missing implicit constructor warnings.
- factory PerformanceCompositeTiming._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('PerformanceCompositeTiming.sourceFrame')
- @DocsEditable()
- @Experimental() // untriaged
- final int sourceFrame;
-}
-// 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.
-
-@DocsEditable()
-@DomName('PerformanceEntry')
-// http://www.w3.org/TR/performance-timeline/#sec-PerformanceEntry-interface
-@Experimental()
-@Native("PerformanceEntry")
-class PerformanceEntry extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory PerformanceEntry._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('PerformanceEntry.duration')
- @DocsEditable()
- final double duration;
-
- @DomName('PerformanceEntry.entryType')
- @DocsEditable()
- final String entryType;
-
- @DomName('PerformanceEntry.name')
- @DocsEditable()
- final String name;
-
- @DomName('PerformanceEntry.startTime')
- @DocsEditable()
- final double startTime;
-}
-// 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.
-
-@DocsEditable()
-@DomName('PerformanceMark')
-// http://www.w3.org/TR/user-timing/#performancemark
-@Experimental()
-@Native("PerformanceMark")
-class PerformanceMark extends PerformanceEntry {
- // To suppress missing implicit constructor warnings.
- factory PerformanceMark._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('PerformanceMeasure')
-// http://www.w3.org/TR/user-timing/#performancemeasure
-@Experimental()
-@Native("PerformanceMeasure")
-class PerformanceMeasure extends PerformanceEntry {
- // To suppress missing implicit constructor warnings.
- factory PerformanceMeasure._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('PerformanceNavigation')
-@Unstable()
-@Native("PerformanceNavigation")
-class PerformanceNavigation extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory PerformanceNavigation._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('PerformanceNavigation.TYPE_BACK_FORWARD')
- @DocsEditable()
- static const int TYPE_BACK_FORWARD = 2;
-
- @DomName('PerformanceNavigation.TYPE_NAVIGATE')
- @DocsEditable()
- static const int TYPE_NAVIGATE = 0;
-
- @DomName('PerformanceNavigation.TYPE_RELOAD')
- @DocsEditable()
- static const int TYPE_RELOAD = 1;
-
- @DomName('PerformanceNavigation.TYPE_RESERVED')
- @DocsEditable()
- static const int TYPE_RESERVED = 255;
-
- @DomName('PerformanceNavigation.redirectCount')
- @DocsEditable()
- final int redirectCount;
-
- @DomName('PerformanceNavigation.type')
- @DocsEditable()
- final int type;
-}
-// 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.
-
-@DocsEditable()
-@DomName('PerformanceObserver')
-@Experimental() // untriaged
-@Native("PerformanceObserver")
-class PerformanceObserver extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory PerformanceObserver._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('PerformanceObserver.disconnect')
- @DocsEditable()
- @Experimental() // untriaged
- void disconnect() native;
-
- @DomName('PerformanceObserver.observe')
- @DocsEditable()
- @Experimental() // untriaged
- void observe(Map options) {
- var options_1 = convertDartToNative_Dictionary(options);
- _observe_1(options_1);
- return;
- }
-
- @JSName('observe')
- @DomName('PerformanceObserver.observe')
- @DocsEditable()
- @Experimental() // untriaged
- void _observe_1(options) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('PerformanceObserverEntryList')
-@Experimental() // untriaged
-@Native("PerformanceObserverEntryList")
-class PerformanceObserverEntryList extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory PerformanceObserverEntryList._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('PerformanceObserverEntryList.getEntries')
- @DocsEditable()
- @Experimental() // untriaged
- List<PerformanceEntry> getEntries() native;
-
- @DomName('PerformanceObserverEntryList.getEntriesByName')
- @DocsEditable()
- @Experimental() // untriaged
- List<PerformanceEntry> getEntriesByName(String name, String entryType) native;
-
- @DomName('PerformanceObserverEntryList.getEntriesByType')
- @DocsEditable()
- @Experimental() // untriaged
- List<PerformanceEntry> getEntriesByType(String entryType) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('PerformanceRenderTiming')
-@Experimental() // untriaged
-@Native("PerformanceRenderTiming")
-class PerformanceRenderTiming extends PerformanceEntry {
- // To suppress missing implicit constructor warnings.
- factory PerformanceRenderTiming._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('PerformanceRenderTiming.sourceFrame')
- @DocsEditable()
- @Experimental() // untriaged
- final int sourceFrame;
-}
-// 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.
-
-@DocsEditable()
-@DomName('PerformanceResourceTiming')
-// http://www.w3c-test.org/webperf/specs/ResourceTiming/#performanceresourcetiming
-@Experimental()
-@Native("PerformanceResourceTiming")
-class PerformanceResourceTiming extends PerformanceEntry {
- // To suppress missing implicit constructor warnings.
- factory PerformanceResourceTiming._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('PerformanceResourceTiming.connectEnd')
- @DocsEditable()
- final double connectEnd;
-
- @DomName('PerformanceResourceTiming.connectStart')
- @DocsEditable()
- final double connectStart;
-
- @DomName('PerformanceResourceTiming.domainLookupEnd')
- @DocsEditable()
- final double domainLookupEnd;
-
- @DomName('PerformanceResourceTiming.domainLookupStart')
- @DocsEditable()
- final double domainLookupStart;
-
- @DomName('PerformanceResourceTiming.fetchStart')
- @DocsEditable()
- final double fetchStart;
-
- @DomName('PerformanceResourceTiming.initiatorType')
- @DocsEditable()
- final String initiatorType;
-
- @DomName('PerformanceResourceTiming.redirectEnd')
- @DocsEditable()
- final double redirectEnd;
-
- @DomName('PerformanceResourceTiming.redirectStart')
- @DocsEditable()
- final double redirectStart;
-
- @DomName('PerformanceResourceTiming.requestStart')
- @DocsEditable()
- @Experimental() // nonstandard
- final double requestStart;
-
- @DomName('PerformanceResourceTiming.responseEnd')
- @DocsEditable()
- @Experimental() // nonstandard
- final double responseEnd;
-
- @DomName('PerformanceResourceTiming.responseStart')
- @DocsEditable()
- @Experimental() // nonstandard
- final double responseStart;
-
- @DomName('PerformanceResourceTiming.secureConnectionStart')
- @DocsEditable()
- final double secureConnectionStart;
-
- @DomName('PerformanceResourceTiming.workerStart')
- @DocsEditable()
- @Experimental() // untriaged
- final double workerStart;
-}
-// 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.
-
-@DocsEditable()
-@DomName('PerformanceTiming')
-@Unstable()
-@Native("PerformanceTiming")
-class PerformanceTiming extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory PerformanceTiming._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('PerformanceTiming.connectEnd')
- @DocsEditable()
- final int connectEnd;
-
- @DomName('PerformanceTiming.connectStart')
- @DocsEditable()
- final int connectStart;
-
- @DomName('PerformanceTiming.domComplete')
- @DocsEditable()
- final int domComplete;
-
- @DomName('PerformanceTiming.domContentLoadedEventEnd')
- @DocsEditable()
- final int domContentLoadedEventEnd;
-
- @DomName('PerformanceTiming.domContentLoadedEventStart')
- @DocsEditable()
- final int domContentLoadedEventStart;
-
- @DomName('PerformanceTiming.domInteractive')
- @DocsEditable()
- final int domInteractive;
-
- @DomName('PerformanceTiming.domLoading')
- @DocsEditable()
- final int domLoading;
-
- @DomName('PerformanceTiming.domainLookupEnd')
- @DocsEditable()
- final int domainLookupEnd;
-
- @DomName('PerformanceTiming.domainLookupStart')
- @DocsEditable()
- final int domainLookupStart;
-
- @DomName('PerformanceTiming.fetchStart')
- @DocsEditable()
- final int fetchStart;
-
- @DomName('PerformanceTiming.loadEventEnd')
- @DocsEditable()
- final int loadEventEnd;
-
- @DomName('PerformanceTiming.loadEventStart')
- @DocsEditable()
- final int loadEventStart;
-
- @DomName('PerformanceTiming.navigationStart')
- @DocsEditable()
- final int navigationStart;
-
- @DomName('PerformanceTiming.redirectEnd')
- @DocsEditable()
- final int redirectEnd;
-
- @DomName('PerformanceTiming.redirectStart')
- @DocsEditable()
- final int redirectStart;
-
- @DomName('PerformanceTiming.requestStart')
- @DocsEditable()
- final int requestStart;
-
- @DomName('PerformanceTiming.responseEnd')
- @DocsEditable()
- final int responseEnd;
-
- @DomName('PerformanceTiming.responseStart')
- @DocsEditable()
- final int responseStart;
-
- @DomName('PerformanceTiming.secureConnectionStart')
- @DocsEditable()
- final int secureConnectionStart;
-
- @DomName('PerformanceTiming.unloadEventEnd')
- @DocsEditable()
- final int unloadEventEnd;
-
- @DomName('PerformanceTiming.unloadEventStart')
- @DocsEditable()
- final int unloadEventStart;
-}
-// 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.
-
-@DocsEditable()
-@DomName('PermissionStatus')
-@Experimental() // untriaged
-@Native("PermissionStatus")
-class PermissionStatus extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory PermissionStatus._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('PermissionStatus.changeEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> changeEvent =
- const EventStreamProvider<Event>('change');
-
- @DomName('PermissionStatus.state')
- @DocsEditable()
- @Experimental() // untriaged
- final String state;
-
- @DomName('PermissionStatus.onchange')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onChange => changeEvent.forTarget(this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('Permissions')
-@Experimental() // untriaged
-@Native("Permissions")
-class Permissions extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory Permissions._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('Permissions.query')
- @DocsEditable()
- @Experimental() // untriaged
- Future query(Map permission) {
- var permission_1 = convertDartToNative_Dictionary(permission);
- return _query_1(permission_1);
- }
-
- @JSName('query')
- @DomName('Permissions.query')
- @DocsEditable()
- @Experimental() // untriaged
- Future _query_1(permission) native;
-
- @DomName('Permissions.request')
- @DocsEditable()
- @Experimental() // untriaged
- Future request(Map permissions) {
- var permissions_1 = convertDartToNative_Dictionary(permissions);
- return _request_1(permissions_1);
- }
-
- @JSName('request')
- @DomName('Permissions.request')
- @DocsEditable()
- @Experimental() // untriaged
- Future _request_1(permissions) native;
-
- @DomName('Permissions.requestAll')
- @DocsEditable()
- @Experimental() // untriaged
- Future requestAll(List<Map> permissions) native;
-
- @DomName('Permissions.revoke')
- @DocsEditable()
- @Experimental() // untriaged
- Future revoke(Map permission) {
- var permission_1 = convertDartToNative_Dictionary(permission);
- return _revoke_1(permission_1);
- }
-
- @JSName('revoke')
- @DomName('Permissions.revoke')
- @DocsEditable()
- @Experimental() // untriaged
- Future _revoke_1(permission) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('Perspective')
-@Experimental() // untriaged
-@Native("Perspective")
-class Perspective extends TransformComponent {
- // To suppress missing implicit constructor warnings.
- factory Perspective._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('Perspective.Perspective')
- @DocsEditable()
- factory Perspective(LengthValue length) {
- return Perspective._create_1(length);
- }
- static Perspective _create_1(length) =>
- JS('Perspective', 'new Perspective(#)', length);
-
- @DomName('Perspective.length')
- @DocsEditable()
- @Experimental() // untriaged
- final LengthValue length;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLPictureElement')
-@Experimental() // untriaged
-@Native("HTMLPictureElement")
-class PictureElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory PictureElement._() {
- throw new UnsupportedError("Not supported");
- }
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- PictureElement.created() : super.created();
-}
-// 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.
-
-@DocsEditable()
-@DomName('Plugin')
-@Experimental() // non-standard
-@Native("Plugin")
-class Plugin extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory Plugin._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('Plugin.description')
- @DocsEditable()
- final String description;
-
- @DomName('Plugin.filename')
- @DocsEditable()
- final String filename;
-
- @DomName('Plugin.length')
- @DocsEditable()
- final int length;
-
- @DomName('Plugin.name')
- @DocsEditable()
- final String name;
-
- @DomName('Plugin.item')
- @DocsEditable()
- MimeType item(int index) native;
-
- @DomName('Plugin.namedItem')
- @DocsEditable()
- MimeType namedItem(String name) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('PluginArray')
-@Experimental() // non-standard
-@Native("PluginArray")
-class PluginArray extends Interceptor
- with ListMixin<Plugin>, ImmutableListMixin<Plugin>
- implements JavaScriptIndexingBehavior<Plugin>, List<Plugin> {
- // To suppress missing implicit constructor warnings.
- factory PluginArray._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('PluginArray.length')
- @DocsEditable()
- int get length => JS("int", "#.length", this);
-
- Plugin operator [](int index) {
- if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
- throw new RangeError.index(index, this);
- return JS("Plugin", "#[#]", this, index);
- }
-
- void operator []=(int index, Plugin value) {
- throw new UnsupportedError("Cannot assign element of immutable List.");
- }
- // -- start List<Plugin> mixins.
- // Plugin is the element type.
-
- set length(int value) {
- throw new UnsupportedError("Cannot resize immutable List.");
- }
-
- Plugin get first {
- if (this.length > 0) {
- return JS('Plugin', '#[0]', this);
- }
- throw new StateError("No elements");
- }
-
- Plugin get last {
- int len = this.length;
- if (len > 0) {
- return JS('Plugin', '#[#]', this, len - 1);
- }
- throw new StateError("No elements");
- }
-
- Plugin get single {
- int len = this.length;
- if (len == 1) {
- return JS('Plugin', '#[0]', this);
- }
- if (len == 0) throw new StateError("No elements");
- throw new StateError("More than one element");
- }
-
- Plugin elementAt(int index) => this[index];
- // -- end List<Plugin> mixins.
-
- @DomName('PluginArray.item')
- @DocsEditable()
- Plugin item(int index) native;
-
- @DomName('PluginArray.namedItem')
- @DocsEditable()
- Plugin namedItem(String name) native;
-
- @DomName('PluginArray.refresh')
- @DocsEditable()
- void refresh(bool reload) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('PointerEvent')
-@Experimental() // untriaged
-@Native("PointerEvent")
-class PointerEvent extends MouseEvent {
- // To suppress missing implicit constructor warnings.
- factory PointerEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('PointerEvent.PointerEvent')
- @DocsEditable()
- factory PointerEvent(String type, [Map eventInitDict]) {
- if (eventInitDict != null) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return PointerEvent._create_1(type, eventInitDict_1);
- }
- return PointerEvent._create_2(type);
- }
- static PointerEvent _create_1(type, eventInitDict) =>
- JS('PointerEvent', 'new PointerEvent(#,#)', type, eventInitDict);
- static PointerEvent _create_2(type) =>
- JS('PointerEvent', 'new PointerEvent(#)', type);
-
- @DomName('PointerEvent.height')
- @DocsEditable()
- @Experimental() // untriaged
- final double height;
-
- @DomName('PointerEvent.isPrimary')
- @DocsEditable()
- @Experimental() // untriaged
- final bool isPrimary;
-
- @DomName('PointerEvent.pointerId')
- @DocsEditable()
- @Experimental() // untriaged
- final int pointerId;
-
- @DomName('PointerEvent.pointerType')
- @DocsEditable()
- @Experimental() // untriaged
- final String pointerType;
-
- @DomName('PointerEvent.pressure')
- @DocsEditable()
- @Experimental() // untriaged
- final double pressure;
-
- @DomName('PointerEvent.tiltX')
- @DocsEditable()
- @Experimental() // untriaged
- final int tiltX;
-
- @DomName('PointerEvent.tiltY')
- @DocsEditable()
- @Experimental() // untriaged
- final int tiltY;
-
- @DomName('PointerEvent.width')
- @DocsEditable()
- @Experimental() // untriaged
- final double width;
-}
-// 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.
-
-@DocsEditable()
-@DomName('PopStateEvent')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Native("PopStateEvent")
-class PopStateEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory PopStateEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('PopStateEvent.PopStateEvent')
- @DocsEditable()
- factory PopStateEvent(String type, [Map eventInitDict]) {
- if (eventInitDict != null) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return PopStateEvent._create_1(type, eventInitDict_1);
- }
- return PopStateEvent._create_2(type);
- }
- static PopStateEvent _create_1(type, eventInitDict) =>
- JS('PopStateEvent', 'new PopStateEvent(#,#)', type, eventInitDict);
- static PopStateEvent _create_2(type) =>
- JS('PopStateEvent', 'new PopStateEvent(#)', type);
-
- @DomName('PopStateEvent.state')
- @DocsEditable()
- dynamic get state =>
- convertNativeToDart_SerializedScriptValue(this._get_state);
- @JSName('state')
- @DomName('PopStateEvent.state')
- @DocsEditable()
- @annotation_Creates_SerializedScriptValue
- @annotation_Returns_SerializedScriptValue
- final dynamic _get_state;
-}
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('PositionCallback')
-@Unstable()
-typedef void _PositionCallback(Geoposition position);
-// 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.
-
-@DocsEditable()
-@DomName('PositionError')
-@Unstable()
-@Native("PositionError")
-class PositionError extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory PositionError._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('PositionError.PERMISSION_DENIED')
- @DocsEditable()
- static const int PERMISSION_DENIED = 1;
-
- @DomName('PositionError.POSITION_UNAVAILABLE')
- @DocsEditable()
- static const int POSITION_UNAVAILABLE = 2;
-
- @DomName('PositionError.TIMEOUT')
- @DocsEditable()
- static const int TIMEOUT = 3;
-
- @DomName('PositionError.code')
- @DocsEditable()
- final int code;
-
- @DomName('PositionError.message')
- @DocsEditable()
- final String message;
-}
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('PositionErrorCallback')
-@Unstable()
-typedef void _PositionErrorCallback(PositionError error);
-// 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.
-
-@DocsEditable()
-@DomName('PositionSensorVRDevice')
-@Experimental() // untriaged
-@Native("PositionSensorVRDevice")
-class PositionSensorVRDevice extends VRDevice {
- // To suppress missing implicit constructor warnings.
- factory PositionSensorVRDevice._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('PositionSensorVRDevice.getImmediateState')
- @DocsEditable()
- @Experimental() // untriaged
- VRPositionState getImmediateState() native;
-
- @DomName('PositionSensorVRDevice.getState')
- @DocsEditable()
- @Experimental() // untriaged
- VRPositionState getState() native;
-
- @DomName('PositionSensorVRDevice.resetSensor')
- @DocsEditable()
- @Experimental() // untriaged
- void resetSensor() native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('PositionValue')
-@Experimental() // untriaged
-@Native("PositionValue")
-class PositionValue extends StyleValue {
- // To suppress missing implicit constructor warnings.
- factory PositionValue._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('PositionValue.PositionValue')
- @DocsEditable()
- factory PositionValue(LengthValue x, LengthValue y) {
- return PositionValue._create_1(x, y);
- }
- static PositionValue _create_1(x, y) =>
- JS('PositionValue', 'new PositionValue(#,#)', x, y);
-
- @DomName('PositionValue.x')
- @DocsEditable()
- @Experimental() // untriaged
- final LengthValue x;
-
- @DomName('PositionValue.y')
- @DocsEditable()
- @Experimental() // untriaged
- final LengthValue y;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLPreElement')
-@Native("HTMLPreElement")
-class PreElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory PreElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLPreElement.HTMLPreElement')
- @DocsEditable()
- factory PreElement() => JS('returns:PreElement;creates:PreElement;new:true',
- '#.createElement(#)', document, "pre");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- PreElement.created() : super.created();
-}
-// 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.
-
-@DocsEditable()
-@DomName('Presentation')
-@Experimental() // untriaged
-@Native("Presentation")
-class Presentation extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory Presentation._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('Presentation.defaultRequest')
- @DocsEditable()
- @Experimental() // untriaged
- PresentationRequest defaultRequest;
-
- @DomName('Presentation.receiver')
- @DocsEditable()
- @Experimental() // untriaged
- final PresentationReceiver receiver;
-}
-// 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.
-
-@DocsEditable()
-@DomName('PresentationAvailability')
-@Experimental() // untriaged
-@Native("PresentationAvailability")
-class PresentationAvailability extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory PresentationAvailability._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('PresentationAvailability.changeEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> changeEvent =
- const EventStreamProvider<Event>('change');
-
- @DomName('PresentationAvailability.value')
- @DocsEditable()
- @Experimental() // untriaged
- final bool value;
-
- @DomName('PresentationAvailability.onchange')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onChange => changeEvent.forTarget(this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('PresentationConnection')
-@Experimental() // untriaged
-@Native("PresentationConnection")
-class PresentationConnection extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory PresentationConnection._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('PresentationConnection.messageEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MessageEvent> messageEvent =
- const EventStreamProvider<MessageEvent>('message');
-
- @DomName('PresentationConnection.binaryType')
- @DocsEditable()
- @Experimental() // untriaged
- String binaryType;
-
- @DomName('PresentationConnection.id')
- @DocsEditable()
- @Experimental() // untriaged
- final String id;
-
- @DomName('PresentationConnection.state')
- @DocsEditable()
- @Experimental() // untriaged
- final String state;
-
- @DomName('PresentationConnection.close')
- @DocsEditable()
- @Experimental() // untriaged
- void close() native;
-
- @DomName('PresentationConnection.send')
- @DocsEditable()
- @Experimental() // untriaged
- void send(data_OR_message) native;
-
- @DomName('PresentationConnection.terminate')
- @DocsEditable()
- @Experimental() // untriaged
- void terminate() native;
-
- @DomName('PresentationConnection.onmessage')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('PresentationConnectionAvailableEvent')
-@Experimental() // untriaged
-@Native("PresentationConnectionAvailableEvent")
-class PresentationConnectionAvailableEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory PresentationConnectionAvailableEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName(
- 'PresentationConnectionAvailableEvent.PresentationConnectionAvailableEvent')
- @DocsEditable()
- factory PresentationConnectionAvailableEvent(String type, Map eventInitDict) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return PresentationConnectionAvailableEvent._create_1(
- type, eventInitDict_1);
- }
- static PresentationConnectionAvailableEvent _create_1(type, eventInitDict) =>
- JS('PresentationConnectionAvailableEvent',
- 'new PresentationConnectionAvailableEvent(#,#)', type, eventInitDict);
-
- @DomName('PresentationConnectionAvailableEvent.connection')
- @DocsEditable()
- @Experimental() // untriaged
- final PresentationConnection connection;
-}
-// 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.
-
-@DocsEditable()
-@DomName('PresentationConnectionCloseEvent')
-@Experimental() // untriaged
-@Native("PresentationConnectionCloseEvent")
-class PresentationConnectionCloseEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory PresentationConnectionCloseEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('PresentationConnectionCloseEvent.PresentationConnectionCloseEvent')
- @DocsEditable()
- factory PresentationConnectionCloseEvent(String type, Map eventInitDict) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return PresentationConnectionCloseEvent._create_1(type, eventInitDict_1);
- }
- static PresentationConnectionCloseEvent _create_1(type, eventInitDict) => JS(
- 'PresentationConnectionCloseEvent',
- 'new PresentationConnectionCloseEvent(#,#)',
- type,
- eventInitDict);
-
- @DomName('PresentationConnectionCloseEvent.message')
- @DocsEditable()
- @Experimental() // untriaged
- final String message;
-
- @DomName('PresentationConnectionCloseEvent.reason')
- @DocsEditable()
- @Experimental() // untriaged
- final String reason;
-}
-// 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.
-
-@DocsEditable()
-@DomName('PresentationReceiver')
-@Experimental() // untriaged
-@Native("PresentationReceiver")
-class PresentationReceiver extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory PresentationReceiver._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('PresentationReceiver.getConnection')
- @DocsEditable()
- @Experimental() // untriaged
- Future getConnection() native;
-
- @DomName('PresentationReceiver.getConnections')
- @DocsEditable()
- @Experimental() // untriaged
- Future getConnections() native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('PresentationRequest')
-@Experimental() // untriaged
-@Native("PresentationRequest")
-class PresentationRequest extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory PresentationRequest._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('PresentationRequest.PresentationRequest')
- @DocsEditable()
- factory PresentationRequest(String url) {
- return PresentationRequest._create_1(url);
- }
- static PresentationRequest _create_1(url) =>
- JS('PresentationRequest', 'new PresentationRequest(#)', url);
-
- @DomName('PresentationRequest.getAvailability')
- @DocsEditable()
- @Experimental() // untriaged
- Future getAvailability() native;
-
- @DomName('PresentationRequest.reconnect')
- @DocsEditable()
- @Experimental() // untriaged
- Future reconnect(String id) native;
-
- @DomName('PresentationRequest.start')
- @DocsEditable()
- @Experimental() // untriaged
- Future start() native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('ProcessingInstruction')
-@Unstable()
-@Native("ProcessingInstruction")
-class ProcessingInstruction extends CharacterData {
- // To suppress missing implicit constructor warnings.
- factory ProcessingInstruction._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('ProcessingInstruction.sheet')
- @DocsEditable()
- @Experimental() // non-standard
- final StyleSheet sheet;
-
- @DomName('ProcessingInstruction.target')
- @DocsEditable()
- final String target;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLProgressElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Native("HTMLProgressElement")
-class ProgressElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory ProgressElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLProgressElement.HTMLProgressElement')
- @DocsEditable()
- factory ProgressElement() => document.createElement("progress");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- ProgressElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported => Element.isTagSupported('progress');
-
- @DomName('HTMLProgressElement.labels')
- @DocsEditable()
- @Unstable()
- @Returns('NodeList|Null')
- @Creates('NodeList')
- final List<Node> labels;
-
- @DomName('HTMLProgressElement.max')
- @DocsEditable()
- num max;
-
- @DomName('HTMLProgressElement.position')
- @DocsEditable()
- final double position;
-
- @DomName('HTMLProgressElement.value')
- @DocsEditable()
- num value;
-}
-// 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.
-
-@DocsEditable()
-@DomName('ProgressEvent')
-@Native("ProgressEvent")
-class ProgressEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory ProgressEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('ProgressEvent.ProgressEvent')
- @DocsEditable()
- factory ProgressEvent(String type, [Map eventInitDict]) {
- if (eventInitDict != null) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return ProgressEvent._create_1(type, eventInitDict_1);
- }
- return ProgressEvent._create_2(type);
- }
- static ProgressEvent _create_1(type, eventInitDict) =>
- JS('ProgressEvent', 'new ProgressEvent(#,#)', type, eventInitDict);
- static ProgressEvent _create_2(type) =>
- JS('ProgressEvent', 'new ProgressEvent(#)', type);
-
- @DomName('ProgressEvent.lengthComputable')
- @DocsEditable()
- final bool lengthComputable;
-
- @DomName('ProgressEvent.loaded')
- @DocsEditable()
- final int loaded;
-
- @DomName('ProgressEvent.total')
- @DocsEditable()
- final int total;
-}
-// 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.
-
-@DocsEditable()
-@DomName('PromiseRejectionEvent')
-@Experimental() // untriaged
-@Native("PromiseRejectionEvent")
-class PromiseRejectionEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory PromiseRejectionEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('PromiseRejectionEvent.PromiseRejectionEvent')
- @DocsEditable()
- factory PromiseRejectionEvent(String type, Map eventInitDict) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return PromiseRejectionEvent._create_1(type, eventInitDict_1);
- }
- static PromiseRejectionEvent _create_1(type, eventInitDict) => JS(
- 'PromiseRejectionEvent',
- 'new PromiseRejectionEvent(#,#)',
- type,
- eventInitDict);
-
- @DomName('PromiseRejectionEvent.promise')
- @DocsEditable()
- @Experimental() // untriaged
- final Future promise;
-
- @DomName('PromiseRejectionEvent.reason')
- @DocsEditable()
- @Experimental() // untriaged
- final Object reason;
-}
-// 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.
-
-@DocsEditable()
-@DomName('PushEvent')
-@Experimental() // untriaged
-@Native("PushEvent")
-class PushEvent extends ExtendableEvent {
- // To suppress missing implicit constructor warnings.
- factory PushEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('PushEvent.PushEvent')
- @DocsEditable()
- factory PushEvent(String type, [Map eventInitDict]) {
- if (eventInitDict != null) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return PushEvent._create_1(type, eventInitDict_1);
- }
- return PushEvent._create_2(type);
- }
- static PushEvent _create_1(type, eventInitDict) =>
- JS('PushEvent', 'new PushEvent(#,#)', type, eventInitDict);
- static PushEvent _create_2(type) => JS('PushEvent', 'new PushEvent(#)', type);
-
- @DomName('PushEvent.data')
- @DocsEditable()
- @Experimental() // untriaged
- final PushMessageData data;
-}
-// 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.
-
-@DocsEditable()
-@DomName('PushManager')
-@Experimental() // untriaged
-@Native("PushManager")
-class PushManager extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory PushManager._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('PushManager.getSubscription')
- @DocsEditable()
- @Experimental() // untriaged
- Future getSubscription() native;
-
- @DomName('PushManager.permissionState')
- @DocsEditable()
- @Experimental() // untriaged
- Future permissionState([Map options]) {
- if (options != null) {
- var options_1 = convertDartToNative_Dictionary(options);
- return _permissionState_1(options_1);
- }
- return _permissionState_2();
- }
-
- @JSName('permissionState')
- @DomName('PushManager.permissionState')
- @DocsEditable()
- @Experimental() // untriaged
- Future _permissionState_1(options) native;
- @JSName('permissionState')
- @DomName('PushManager.permissionState')
- @DocsEditable()
- @Experimental() // untriaged
- Future _permissionState_2() native;
-
- @DomName('PushManager.subscribe')
- @DocsEditable()
- @Experimental() // untriaged
- Future subscribe([Map options]) {
- if (options != null) {
- var options_1 = convertDartToNative_Dictionary(options);
- return _subscribe_1(options_1);
- }
- return _subscribe_2();
- }
-
- @JSName('subscribe')
- @DomName('PushManager.subscribe')
- @DocsEditable()
- @Experimental() // untriaged
- Future _subscribe_1(options) native;
- @JSName('subscribe')
- @DomName('PushManager.subscribe')
- @DocsEditable()
- @Experimental() // untriaged
- Future _subscribe_2() native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('PushMessageData')
-@Experimental() // untriaged
-@Native("PushMessageData")
-class PushMessageData extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory PushMessageData._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('PushMessageData.arrayBuffer')
- @DocsEditable()
- @Experimental() // untriaged
- ByteBuffer arrayBuffer() native;
-
- @DomName('PushMessageData.blob')
- @DocsEditable()
- @Experimental() // untriaged
- Blob blob() native;
-
- @DomName('PushMessageData.json')
- @DocsEditable()
- @Experimental() // untriaged
- Object json() native;
-
- @DomName('PushMessageData.text')
- @DocsEditable()
- @Experimental() // untriaged
- String text() native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('PushSubscription')
-@Experimental() // untriaged
-@Native("PushSubscription")
-class PushSubscription extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory PushSubscription._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('PushSubscription.endpoint')
- @DocsEditable()
- @Experimental() // untriaged
- final String endpoint;
-
- @DomName('PushSubscription.getKey')
- @DocsEditable()
- @Experimental() // untriaged
- ByteBuffer getKey(String name) native;
-
- @DomName('PushSubscription.unsubscribe')
- @DocsEditable()
- @Experimental() // untriaged
- Future unsubscribe() native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLQuoteElement')
-@Native("HTMLQuoteElement")
-class QuoteElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory QuoteElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLQuoteElement.HTMLQuoteElement')
- @DocsEditable()
- factory QuoteElement() => JS(
- 'returns:QuoteElement;creates:QuoteElement;new:true',
- '#.createElement(#)',
- document,
- "q");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- QuoteElement.created() : super.created();
-
- @DomName('HTMLQuoteElement.cite')
- @DocsEditable()
- String cite;
-}
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('RTCPeerConnectionErrorCallback')
-@Experimental() // untriaged
-typedef void RtcPeerConnectionErrorCallback(DomException exception);
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('RTCSessionDescriptionCallback')
-// http://dev.w3.org/2011/webrtc/editor/webrtc.html#idl-def-RTCSessionDescription
-@Experimental()
-typedef void _RtcSessionDescriptionCallback(RtcSessionDescription sdp);
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('RTCStatsCallback')
-// http://dev.w3.org/2011/webrtc/editor/webrtc.html#idl-def-RTCStatsCallback
-@Experimental()
-typedef void RtcStatsCallback(RtcStatsResponse response);
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('Range')
-@Unstable()
-@Native("Range")
-class Range extends Interceptor {
- factory Range() => document.createRange();
-
- factory Range.fromPoint(Point point) =>
- document._caretRangeFromPoint(point.x, point.y);
- // To suppress missing implicit constructor warnings.
- factory Range._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('Range.END_TO_END')
- @DocsEditable()
- static const int END_TO_END = 2;
-
- @DomName('Range.END_TO_START')
- @DocsEditable()
- static const int END_TO_START = 3;
-
- @DomName('Range.START_TO_END')
- @DocsEditable()
- static const int START_TO_END = 1;
-
- @DomName('Range.START_TO_START')
- @DocsEditable()
- static const int START_TO_START = 0;
-
- @DomName('Range.collapsed')
- @DocsEditable()
- final bool collapsed;
-
- @DomName('Range.commonAncestorContainer')
- @DocsEditable()
- final Node commonAncestorContainer;
-
- @DomName('Range.endContainer')
- @DocsEditable()
- final Node endContainer;
-
- @DomName('Range.endOffset')
- @DocsEditable()
- final int endOffset;
-
- @DomName('Range.startContainer')
- @DocsEditable()
- final Node startContainer;
-
- @DomName('Range.startOffset')
- @DocsEditable()
- final int startOffset;
-
- @DomName('Range.cloneContents')
- @DocsEditable()
- DocumentFragment cloneContents() native;
-
- @DomName('Range.cloneRange')
- @DocsEditable()
- Range cloneRange() native;
-
- @DomName('Range.collapse')
- @DocsEditable()
- void collapse([bool toStart]) native;
-
- @DomName('Range.compareBoundaryPoints')
- @DocsEditable()
- @Experimental() // untriaged
- int compareBoundaryPoints(int how, Range sourceRange) native;
-
- @DomName('Range.comparePoint')
- @DocsEditable()
- int comparePoint(Node node, int offset) native;
-
- @DomName('Range.createContextualFragment')
- @DocsEditable()
- DocumentFragment createContextualFragment(String fragment) native;
-
- @DomName('Range.deleteContents')
- @DocsEditable()
- void deleteContents() native;
-
- @DomName('Range.detach')
- @DocsEditable()
- void detach() native;
-
- @DomName('Range.expand')
- @DocsEditable()
- @Experimental() // non-standard
- void expand(String unit) native;
-
- @DomName('Range.extractContents')
- @DocsEditable()
- DocumentFragment extractContents() native;
-
- @DomName('Range.getBoundingClientRect')
- @DocsEditable()
- Rectangle getBoundingClientRect() native;
-
- @DomName('Range.getClientRects')
- @DocsEditable()
- @Returns('_ClientRectList|Null')
- @Creates('_ClientRectList')
- List<Rectangle> getClientRects() native;
-
- @DomName('Range.insertNode')
- @DocsEditable()
- void insertNode(Node node) native;
-
- @DomName('Range.isPointInRange')
- @DocsEditable()
- bool isPointInRange(Node node, int offset) native;
-
- @DomName('Range.selectNode')
- @DocsEditable()
- void selectNode(Node node) native;
-
- @DomName('Range.selectNodeContents')
- @DocsEditable()
- void selectNodeContents(Node node) native;
-
- @DomName('Range.setEnd')
- @DocsEditable()
- void setEnd(Node node, int offset) native;
-
- @DomName('Range.setEndAfter')
- @DocsEditable()
- void setEndAfter(Node node) native;
-
- @DomName('Range.setEndBefore')
- @DocsEditable()
- void setEndBefore(Node node) native;
-
- @DomName('Range.setStart')
- @DocsEditable()
- void setStart(Node node, int offset) native;
-
- @DomName('Range.setStartAfter')
- @DocsEditable()
- void setStartAfter(Node node) native;
-
- @DomName('Range.setStartBefore')
- @DocsEditable()
- void setStartBefore(Node node) native;
-
- @DomName('Range.surroundContents')
- @DocsEditable()
- void surroundContents(Node newParent) native;
-
- /**
- * Checks if createContextualFragment is supported.
- *
- * See also:
- *
- * * [createContextualFragment]
- */
- static bool get supportsCreateContextualFragment =>
- JS('bool', '("createContextualFragment" in window.Range.prototype)');
-}
-// 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.
-
-@DocsEditable()
-@DomName('ReadableByteStream')
-@Experimental() // untriaged
-@Native("ReadableByteStream")
-class ReadableByteStream extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory ReadableByteStream._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('ReadableByteStream.cancel')
- @DocsEditable()
- @Experimental() // untriaged
- Future cancel([Object reason]) native;
-
- @DomName('ReadableByteStream.getReader')
- @DocsEditable()
- @Experimental() // untriaged
- ReadableByteStreamReader getReader() native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('ReadableByteStreamReader')
-@Experimental() // untriaged
-@Native("ReadableByteStreamReader")
-class ReadableByteStreamReader extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory ReadableByteStreamReader._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('ReadableByteStreamReader.closed')
- @DocsEditable()
- @Experimental() // untriaged
- final Future closed;
-
- @DomName('ReadableByteStreamReader.cancel')
- @DocsEditable()
- @Experimental() // untriaged
- Future cancel([Object reason]) native;
-
- @DomName('ReadableByteStreamReader.read')
- @DocsEditable()
- @Experimental() // untriaged
- Future read() native;
-
- @DomName('ReadableByteStreamReader.releaseLock')
- @DocsEditable()
- @Experimental() // untriaged
- void releaseLock() native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('ReadableStreamReader')
-@Experimental() // untriaged
-@Native("ReadableStreamReader")
-class ReadableStreamReader extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory ReadableStreamReader._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('ReadableStreamReader.closed')
- @DocsEditable()
- @Experimental() // untriaged
- final Future closed;
-
- @DomName('ReadableStreamReader.cancel')
- @DocsEditable()
- @Experimental() // untriaged
- Future cancel([Object reason]) native;
-
- @DomName('ReadableStreamReader.read')
- @DocsEditable()
- @Experimental() // untriaged
- Future read() native;
-
- @DomName('ReadableStreamReader.releaseLock')
- @DocsEditable()
- @Experimental() // untriaged
- void releaseLock() native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('RelatedEvent')
-@Experimental() // untriaged
-@Native("RelatedEvent")
-class RelatedEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory RelatedEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('RelatedEvent.RelatedEvent')
- @DocsEditable()
- factory RelatedEvent(String type, [Map eventInitDict]) {
- if (eventInitDict != null) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return RelatedEvent._create_1(type, eventInitDict_1);
- }
- return RelatedEvent._create_2(type);
- }
- static RelatedEvent _create_1(type, eventInitDict) =>
- JS('RelatedEvent', 'new RelatedEvent(#,#)', type, eventInitDict);
- static RelatedEvent _create_2(type) =>
- JS('RelatedEvent', 'new RelatedEvent(#)', type);
-
- @DomName('RelatedEvent.relatedTarget')
- @DocsEditable()
- @Experimental() // untriaged
- EventTarget get relatedTarget =>
- _convertNativeToDart_EventTarget(this._get_relatedTarget);
- @JSName('relatedTarget')
- @DomName('RelatedEvent.relatedTarget')
- @DocsEditable()
- @Experimental() // untriaged
- final dynamic _get_relatedTarget;
-}
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('RequestAnimationFrameCallback')
-typedef void RequestAnimationFrameCallback(num highResTime);
-// 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.
-
-@DocsEditable()
-@DomName('Rotation')
-@Experimental() // untriaged
-@Native("Rotation")
-class Rotation extends TransformComponent {
- // To suppress missing implicit constructor warnings.
- factory Rotation._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('Rotation.Rotation')
- @DocsEditable()
- factory Rotation(num angle, [num x, num y, num z]) {
- if ((angle is num) && x == null && y == null && z == null) {
- return Rotation._create_1(angle);
- }
- if ((z is num) && (y is num) && (x is num) && (angle is num)) {
- return Rotation._create_2(angle, x, y, z);
- }
- throw new ArgumentError("Incorrect number or type of arguments");
- }
- static Rotation _create_1(angle) => JS('Rotation', 'new Rotation(#)', angle);
- static Rotation _create_2(angle, x, y, z) =>
- JS('Rotation', 'new Rotation(#,#,#,#)', angle, x, y, z);
-
- @DomName('Rotation.angle')
- @DocsEditable()
- @Experimental() // untriaged
- final double angle;
-
- @DomName('Rotation.x')
- @DocsEditable()
- @Experimental() // untriaged
- final double x;
-
- @DomName('Rotation.y')
- @DocsEditable()
- @Experimental() // untriaged
- final double y;
-
- @DomName('Rotation.z')
- @DocsEditable()
- @Experimental() // untriaged
- final double z;
-}
-// 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.
-
-@DocsEditable()
-@DomName('RTCCertificate')
-@Experimental() // untriaged
-@Native("RTCCertificate")
-class RtcCertificate extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory RtcCertificate._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('RTCCertificate.expires')
- @DocsEditable()
- @Experimental() // untriaged
- final int expires;
-}
-// 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.
-
-@DocsEditable()
-@DomName('RTCDataChannel')
-// http://dev.w3.org/2011/webrtc/editor/webrtc.html#idl-def-RTCDataChannel
-@Experimental()
-@Native("RTCDataChannel,DataChannel")
-class RtcDataChannel extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory RtcDataChannel._() {
- throw new UnsupportedError("Not supported");
- }
-
- /**
- * Static factory designed to expose `close` events to event
- * handlers that are not necessarily instances of [RtcDataChannel].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('RTCDataChannel.closeEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> closeEvent =
- const EventStreamProvider<Event>('close');
-
- /**
- * Static factory designed to expose `error` events to event
- * handlers that are not necessarily instances of [RtcDataChannel].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('RTCDataChannel.errorEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> errorEvent =
- const EventStreamProvider<Event>('error');
-
- /**
- * Static factory designed to expose `message` events to event
- * handlers that are not necessarily instances of [RtcDataChannel].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('RTCDataChannel.messageEvent')
- @DocsEditable()
- static const EventStreamProvider<MessageEvent> messageEvent =
- const EventStreamProvider<MessageEvent>('message');
-
- /**
- * Static factory designed to expose `open` events to event
- * handlers that are not necessarily instances of [RtcDataChannel].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('RTCDataChannel.openEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> openEvent =
- const EventStreamProvider<Event>('open');
-
- @DomName('RTCDataChannel.binaryType')
- @DocsEditable()
- String binaryType;
-
- @DomName('RTCDataChannel.bufferedAmount')
- @DocsEditable()
- final int bufferedAmount;
-
- @DomName('RTCDataChannel.bufferedAmountLowThreshold')
- @DocsEditable()
- @Experimental() // untriaged
- int bufferedAmountLowThreshold;
-
- @DomName('RTCDataChannel.id')
- @DocsEditable()
- @Experimental() // untriaged
- final int id;
-
- @DomName('RTCDataChannel.label')
- @DocsEditable()
- final String label;
-
- @DomName('RTCDataChannel.maxRetransmitTime')
- @DocsEditable()
- @Experimental() // untriaged
- final int maxRetransmitTime;
-
- @DomName('RTCDataChannel.maxRetransmits')
- @DocsEditable()
- @Experimental() // untriaged
- final int maxRetransmits;
-
- @DomName('RTCDataChannel.negotiated')
- @DocsEditable()
- @Experimental() // untriaged
- final bool negotiated;
-
- @DomName('RTCDataChannel.ordered')
- @DocsEditable()
- @Experimental() // untriaged
- final bool ordered;
-
- @DomName('RTCDataChannel.protocol')
- @DocsEditable()
- @Experimental() // untriaged
- final String protocol;
-
- @DomName('RTCDataChannel.readyState')
- @DocsEditable()
- final String readyState;
-
- @DomName('RTCDataChannel.reliable')
- @DocsEditable()
- final bool reliable;
-
- @DomName('RTCDataChannel.close')
- @DocsEditable()
- void close() native;
-
- @DomName('RTCDataChannel.send')
- @DocsEditable()
- void send(data) native;
-
- @JSName('send')
- @DomName('RTCDataChannel.send')
- @DocsEditable()
- void sendBlob(Blob data) native;
-
- @JSName('send')
- @DomName('RTCDataChannel.send')
- @DocsEditable()
- void sendByteBuffer(ByteBuffer data) native;
-
- @JSName('send')
- @DomName('RTCDataChannel.send')
- @DocsEditable()
- void sendString(String data) native;
-
- @JSName('send')
- @DomName('RTCDataChannel.send')
- @DocsEditable()
- void sendTypedData(TypedData data) native;
-
- /// Stream of `close` events handled by this [RtcDataChannel].
- @DomName('RTCDataChannel.onclose')
- @DocsEditable()
- Stream<Event> get onClose => closeEvent.forTarget(this);
-
- /// Stream of `error` events handled by this [RtcDataChannel].
- @DomName('RTCDataChannel.onerror')
- @DocsEditable()
- Stream<Event> get onError => errorEvent.forTarget(this);
-
- /// Stream of `message` events handled by this [RtcDataChannel].
- @DomName('RTCDataChannel.onmessage')
- @DocsEditable()
- Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
-
- /// Stream of `open` events handled by this [RtcDataChannel].
- @DomName('RTCDataChannel.onopen')
- @DocsEditable()
- Stream<Event> get onOpen => openEvent.forTarget(this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('RTCDataChannelEvent')
-// http://dev.w3.org/2011/webrtc/editor/webrtc.html#rtcdatachannelevent
-@Experimental()
-@Native("RTCDataChannelEvent")
-class RtcDataChannelEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory RtcDataChannelEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('RTCDataChannelEvent.channel')
- @DocsEditable()
- final RtcDataChannel channel;
-}
-// 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.
-
-@DocsEditable()
-@DomName('RTCDTMFSender')
-// http://dev.w3.org/2011/webrtc/editor/webrtc.html#idl-def-RTCDTMFSender
-@Experimental()
-@Native("RTCDTMFSender")
-class RtcDtmfSender extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory RtcDtmfSender._() {
- throw new UnsupportedError("Not supported");
- }
-
- /**
- * Static factory designed to expose `tonechange` events to event
- * handlers that are not necessarily instances of [RtcDtmfSender].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('RTCDTMFSender.tonechangeEvent')
- @DocsEditable()
- static const EventStreamProvider<RtcDtmfToneChangeEvent> toneChangeEvent =
- const EventStreamProvider<RtcDtmfToneChangeEvent>('tonechange');
-
- @JSName('canInsertDTMF')
- @DomName('RTCDTMFSender.canInsertDTMF')
- @DocsEditable()
- final bool canInsertDtmf;
-
- @DomName('RTCDTMFSender.duration')
- @DocsEditable()
- final int duration;
-
- @DomName('RTCDTMFSender.interToneGap')
- @DocsEditable()
- final int interToneGap;
-
- @DomName('RTCDTMFSender.toneBuffer')
- @DocsEditable()
- final String toneBuffer;
-
- @DomName('RTCDTMFSender.track')
- @DocsEditable()
- final MediaStreamTrack track;
-
- @JSName('insertDTMF')
- @DomName('RTCDTMFSender.insertDTMF')
- @DocsEditable()
- void insertDtmf(String tones, [int duration, int interToneGap]) native;
-
- /// Stream of `tonechange` events handled by this [RtcDtmfSender].
- @DomName('RTCDTMFSender.ontonechange')
- @DocsEditable()
- Stream<RtcDtmfToneChangeEvent> get onToneChange =>
- toneChangeEvent.forTarget(this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('RTCDTMFToneChangeEvent')
-// http://dev.w3.org/2011/webrtc/editor/webrtc.html#idl-def-RTCDTMFToneChangeEvent
-@Experimental()
-@Native("RTCDTMFToneChangeEvent")
-class RtcDtmfToneChangeEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory RtcDtmfToneChangeEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('RTCDTMFToneChangeEvent.RTCDTMFToneChangeEvent')
- @DocsEditable()
- factory RtcDtmfToneChangeEvent(String type, Map eventInitDict) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return RtcDtmfToneChangeEvent._create_1(type, eventInitDict_1);
- }
- static RtcDtmfToneChangeEvent _create_1(type, eventInitDict) => JS(
- 'RtcDtmfToneChangeEvent',
- 'new RTCDTMFToneChangeEvent(#,#)',
- type,
- eventInitDict);
-
- @DomName('RTCDTMFToneChangeEvent.tone')
- @DocsEditable()
- final String tone;
-}
-// 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.
-
-@DomName('RTCIceCandidate')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@Experimental()
-// http://dev.w3.org/2011/webrtc/editor/webrtc.html#idl-def-RTCIceCandidate
-@Native("RTCIceCandidate,mozRTCIceCandidate")
-class RtcIceCandidate extends Interceptor {
- factory RtcIceCandidate(Map dictionary) {
- // TODO(efortuna): Remove this check if when you can actually construct with
- // the unprefixed RTCIceCandidate in Firefox (currently both are defined,
- // but one can't be used as a constructor).
- var constructorName = JS(
- '',
- 'window[#]',
- Device.isFirefox
- ? '${Device.propertyPrefix}RTCIceCandidate'
- : 'RTCIceCandidate');
- return JS('RtcIceCandidate', 'new #(#)', constructorName,
- convertDartToNative_SerializedScriptValue(dictionary));
- }
- // To suppress missing implicit constructor warnings.
- factory RtcIceCandidate._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('RTCIceCandidate.candidate')
- @DocsEditable()
- String candidate;
-
- @DomName('RTCIceCandidate.sdpMLineIndex')
- @DocsEditable()
- int sdpMLineIndex;
-
- @DomName('RTCIceCandidate.sdpMid')
- @DocsEditable()
- String sdpMid;
-}
-// 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.
-
-@DocsEditable()
-@DomName('RTCIceCandidateEvent')
-// http://dev.w3.org/2011/webrtc/editor/webrtc.html#rtcicecandidate-type
-@Experimental()
-@Native("RTCIceCandidateEvent,RTCPeerConnectionIceEvent")
-class RtcIceCandidateEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory RtcIceCandidateEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('RTCIceCandidateEvent.candidate')
- @DocsEditable()
- final RtcIceCandidate candidate;
-}
-// 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.
-
-@DomName('RTCPeerConnection')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@Experimental()
-// http://dev.w3.org/2011/webrtc/editor/webrtc.html#idl-def-RTCPeerConnection
-@Native("RTCPeerConnection,webkitRTCPeerConnection,mozRTCPeerConnection")
-class RtcPeerConnection extends EventTarget {
- factory RtcPeerConnection(Map rtcIceServers, [Map mediaConstraints]) {
- var constructorName = JS('RtcPeerConnection', 'window[#]',
- '${Device.propertyPrefix}RTCPeerConnection');
- if (mediaConstraints != null) {
- return JS(
- 'RtcPeerConnection',
- 'new #(#,#)',
- constructorName,
- convertDartToNative_SerializedScriptValue(rtcIceServers),
- convertDartToNative_SerializedScriptValue(mediaConstraints));
- } else {
- return JS('RtcPeerConnection', 'new #(#)', constructorName,
- convertDartToNative_SerializedScriptValue(rtcIceServers));
- }
- }
-
- /**
- * Checks if Real Time Communication (RTC) APIs are supported and enabled on
- * the current platform.
- */
- static bool get supported {
- // Currently in Firefox some of the RTC elements are defined but throw an
- // error unless the user has specifically enabled them in their
- // about:config. So we have to construct an element to actually test if RTC
- // is supported at the given time.
- try {
- new RtcPeerConnection({
- "iceServers": [
- {"url": "stun:localhost"}
- ]
- });
- return true;
- } catch (_) {
- return false;
- }
- return false;
- }
-
- Future<RtcSessionDescription> createOffer([Map mediaConstraints]) {
- var completer = new Completer<RtcSessionDescription>();
- _createOffer((value) {
- completer.complete(value);
- }, (error) {
- completer.completeError(error);
- }, mediaConstraints);
- return completer.future;
- }
-
- Future<RtcSessionDescription> createAnswer([Map mediaConstraints]) {
- var completer = new Completer<RtcSessionDescription>();
- _createAnswer((value) {
- completer.complete(value);
- }, (error) {
- completer.completeError(error);
- }, mediaConstraints);
- return completer.future;
- }
-
- @DomName('RTCPeerConnection.getStats')
- Future<RtcStatsResponse> getStats(MediaStreamTrack selector) {
- var completer = new Completer<RtcStatsResponse>();
- _getStats((value) {
- completer.complete(value);
- }, selector);
- return completer.future;
- }
-
- @DomName('RTCPeerConnection.generateCertificate')
- @DocsEditable()
- @Experimental() // untriaged
- static Future generateCertificate(/*AlgorithmIdentifier*/ keygenAlgorithm) =>
- JS('dynamic', 'generateCertificate(#)', keygenAlgorithm);
-
- // To suppress missing implicit constructor warnings.
- factory RtcPeerConnection._() {
- throw new UnsupportedError("Not supported");
- }
-
- /**
- * Static factory designed to expose `addstream` events to event
- * handlers that are not necessarily instances of [RtcPeerConnection].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('RTCPeerConnection.addstreamEvent')
- @DocsEditable()
- static const EventStreamProvider<MediaStreamEvent> addStreamEvent =
- const EventStreamProvider<MediaStreamEvent>('addstream');
-
- /**
- * Static factory designed to expose `datachannel` events to event
- * handlers that are not necessarily instances of [RtcPeerConnection].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('RTCPeerConnection.datachannelEvent')
- @DocsEditable()
- static const EventStreamProvider<RtcDataChannelEvent> dataChannelEvent =
- const EventStreamProvider<RtcDataChannelEvent>('datachannel');
-
- /**
- * Static factory designed to expose `icecandidate` events to event
- * handlers that are not necessarily instances of [RtcPeerConnection].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('RTCPeerConnection.icecandidateEvent')
- @DocsEditable()
- static const EventStreamProvider<RtcIceCandidateEvent> iceCandidateEvent =
- const EventStreamProvider<RtcIceCandidateEvent>('icecandidate');
-
- /**
- * Static factory designed to expose `iceconnectionstatechange` events to event
- * handlers that are not necessarily instances of [RtcPeerConnection].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('RTCPeerConnection.iceconnectionstatechangeEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> iceConnectionStateChangeEvent =
- const EventStreamProvider<Event>('iceconnectionstatechange');
-
- /**
- * Static factory designed to expose `negotiationneeded` events to event
- * handlers that are not necessarily instances of [RtcPeerConnection].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('RTCPeerConnection.negotiationneededEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> negotiationNeededEvent =
- const EventStreamProvider<Event>('negotiationneeded');
-
- /**
- * Static factory designed to expose `removestream` events to event
- * handlers that are not necessarily instances of [RtcPeerConnection].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('RTCPeerConnection.removestreamEvent')
- @DocsEditable()
- static const EventStreamProvider<MediaStreamEvent> removeStreamEvent =
- const EventStreamProvider<MediaStreamEvent>('removestream');
-
- /**
- * Static factory designed to expose `signalingstatechange` events to event
- * handlers that are not necessarily instances of [RtcPeerConnection].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('RTCPeerConnection.signalingstatechangeEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> signalingStateChangeEvent =
- const EventStreamProvider<Event>('signalingstatechange');
-
- @DomName('RTCPeerConnection.iceConnectionState')
- @DocsEditable()
- final String iceConnectionState;
-
- @DomName('RTCPeerConnection.iceGatheringState')
- @DocsEditable()
- final String iceGatheringState;
-
- @DomName('RTCPeerConnection.localDescription')
- @DocsEditable()
- final RtcSessionDescription localDescription;
-
- @DomName('RTCPeerConnection.remoteDescription')
- @DocsEditable()
- final RtcSessionDescription remoteDescription;
-
- @DomName('RTCPeerConnection.signalingState')
- @DocsEditable()
- final String signalingState;
-
- @DomName('RTCPeerConnection.addIceCandidate')
- @DocsEditable()
- Future addIceCandidate(candidate,
- [VoidCallback successCallback,
- RtcPeerConnectionErrorCallback failureCallback]) native;
-
- @DomName('RTCPeerConnection.addStream')
- @DocsEditable()
- void addStream(MediaStream stream, [Map mediaConstraints]) {
- if (mediaConstraints != null) {
- var mediaConstraints_1 = convertDartToNative_Dictionary(mediaConstraints);
- _addStream_1(stream, mediaConstraints_1);
- return;
- }
- _addStream_2(stream);
- return;
- }
-
- @JSName('addStream')
- @DomName('RTCPeerConnection.addStream')
- @DocsEditable()
- void _addStream_1(MediaStream stream, mediaConstraints) native;
- @JSName('addStream')
- @DomName('RTCPeerConnection.addStream')
- @DocsEditable()
- void _addStream_2(MediaStream stream) native;
-
- @DomName('RTCPeerConnection.close')
- @DocsEditable()
- void close() native;
-
- @DomName('RTCPeerConnection.createAnswer')
- @DocsEditable()
- void _createAnswer(_RtcSessionDescriptionCallback successCallback,
- RtcPeerConnectionErrorCallback failureCallback,
- [Map mediaConstraints]) {
- if (mediaConstraints != null) {
- var mediaConstraints_1 = convertDartToNative_Dictionary(mediaConstraints);
- _createAnswer_1(successCallback, failureCallback, mediaConstraints_1);
- return;
- }
- _createAnswer_2(successCallback, failureCallback);
- return;
- }
-
- @JSName('createAnswer')
- @DomName('RTCPeerConnection.createAnswer')
- @DocsEditable()
- void _createAnswer_1(_RtcSessionDescriptionCallback successCallback,
- RtcPeerConnectionErrorCallback failureCallback, mediaConstraints) native;
- @JSName('createAnswer')
- @DomName('RTCPeerConnection.createAnswer')
- @DocsEditable()
- void _createAnswer_2(_RtcSessionDescriptionCallback successCallback,
- RtcPeerConnectionErrorCallback failureCallback) native;
-
- @JSName('createDTMFSender')
- @DomName('RTCPeerConnection.createDTMFSender')
- @DocsEditable()
- RtcDtmfSender createDtmfSender(MediaStreamTrack track) native;
-
- @DomName('RTCPeerConnection.createDataChannel')
- @DocsEditable()
- RtcDataChannel createDataChannel(String label, [Map options]) {
- if (options != null) {
- var options_1 = convertDartToNative_Dictionary(options);
- return _createDataChannel_1(label, options_1);
- }
- return _createDataChannel_2(label);
- }
-
- @JSName('createDataChannel')
- @DomName('RTCPeerConnection.createDataChannel')
- @DocsEditable()
- RtcDataChannel _createDataChannel_1(label, options) native;
- @JSName('createDataChannel')
- @DomName('RTCPeerConnection.createDataChannel')
- @DocsEditable()
- RtcDataChannel _createDataChannel_2(label) native;
-
- @DomName('RTCPeerConnection.createOffer')
- @DocsEditable()
- void _createOffer(_RtcSessionDescriptionCallback successCallback,
- RtcPeerConnectionErrorCallback failureCallback,
- [Map rtcOfferOptions]) {
- if (rtcOfferOptions != null) {
- var rtcOfferOptions_1 = convertDartToNative_Dictionary(rtcOfferOptions);
- _createOffer_1(successCallback, failureCallback, rtcOfferOptions_1);
- return;
- }
- _createOffer_2(successCallback, failureCallback);
- return;
- }
-
- @JSName('createOffer')
- @DomName('RTCPeerConnection.createOffer')
- @DocsEditable()
- void _createOffer_1(_RtcSessionDescriptionCallback successCallback,
- RtcPeerConnectionErrorCallback failureCallback, rtcOfferOptions) native;
- @JSName('createOffer')
- @DomName('RTCPeerConnection.createOffer')
- @DocsEditable()
- void _createOffer_2(_RtcSessionDescriptionCallback successCallback,
- RtcPeerConnectionErrorCallback failureCallback) native;
-
- @DomName('RTCPeerConnection.getLocalStreams')
- @DocsEditable()
- List<MediaStream> getLocalStreams() native;
-
- @DomName('RTCPeerConnection.getRemoteStreams')
- @DocsEditable()
- List<MediaStream> getRemoteStreams() native;
-
- @JSName('getStats')
- @DomName('RTCPeerConnection.getStats')
- @DocsEditable()
- void _getStats(RtcStatsCallback successCallback, MediaStreamTrack selector)
- native;
-
- @DomName('RTCPeerConnection.getStreamById')
- @DocsEditable()
- MediaStream getStreamById(String streamId) native;
-
- @DomName('RTCPeerConnection.removeStream')
- @DocsEditable()
- void removeStream(MediaStream stream) native;
-
- @JSName('setLocalDescription')
- @DomName('RTCPeerConnection.setLocalDescription')
- @DocsEditable()
- Future _setLocalDescription(
- RtcSessionDescription description, VoidCallback successCallback,
- [RtcPeerConnectionErrorCallback failureCallback]) native;
-
- @JSName('setLocalDescription')
- @DomName('RTCPeerConnection.setLocalDescription')
- @DocsEditable()
- Future setLocalDescription(RtcSessionDescription description) {
- var completer = new Completer();
- _setLocalDescription(description, () {
- completer.complete();
- }, (error) {
- completer.completeError(error);
- });
- return completer.future;
- }
-
- @JSName('setRemoteDescription')
- @DomName('RTCPeerConnection.setRemoteDescription')
- @DocsEditable()
- Future _setRemoteDescription(
- RtcSessionDescription description, VoidCallback successCallback,
- [RtcPeerConnectionErrorCallback failureCallback]) native;
-
- @JSName('setRemoteDescription')
- @DomName('RTCPeerConnection.setRemoteDescription')
- @DocsEditable()
- Future setRemoteDescription(RtcSessionDescription description) {
- var completer = new Completer();
- _setRemoteDescription(description, () {
- completer.complete();
- }, (error) {
- completer.completeError(error);
- });
- return completer.future;
- }
-
- @DomName('RTCPeerConnection.updateIce')
- @DocsEditable()
- void updateIce([Map configuration, Map mediaConstraints]) {
- if (mediaConstraints != null) {
- var configuration_1 = convertDartToNative_Dictionary(configuration);
- var mediaConstraints_2 = convertDartToNative_Dictionary(mediaConstraints);
- _updateIce_1(configuration_1, mediaConstraints_2);
- return;
- }
- if (configuration != null) {
- var configuration_1 = convertDartToNative_Dictionary(configuration);
- _updateIce_2(configuration_1);
- return;
- }
- _updateIce_3();
- return;
- }
-
- @JSName('updateIce')
- @DomName('RTCPeerConnection.updateIce')
- @DocsEditable()
- void _updateIce_1(configuration, mediaConstraints) native;
- @JSName('updateIce')
- @DomName('RTCPeerConnection.updateIce')
- @DocsEditable()
- void _updateIce_2(configuration) native;
- @JSName('updateIce')
- @DomName('RTCPeerConnection.updateIce')
- @DocsEditable()
- void _updateIce_3() native;
-
- /// Stream of `addstream` events handled by this [RtcPeerConnection].
- @DomName('RTCPeerConnection.onaddstream')
- @DocsEditable()
- Stream<MediaStreamEvent> get onAddStream => addStreamEvent.forTarget(this);
-
- /// Stream of `datachannel` events handled by this [RtcPeerConnection].
- @DomName('RTCPeerConnection.ondatachannel')
- @DocsEditable()
- Stream<RtcDataChannelEvent> get onDataChannel =>
- dataChannelEvent.forTarget(this);
-
- /// Stream of `icecandidate` events handled by this [RtcPeerConnection].
- @DomName('RTCPeerConnection.onicecandidate')
- @DocsEditable()
- Stream<RtcIceCandidateEvent> get onIceCandidate =>
- iceCandidateEvent.forTarget(this);
-
- /// Stream of `iceconnectionstatechange` events handled by this [RtcPeerConnection].
- @DomName('RTCPeerConnection.oniceconnectionstatechange')
- @DocsEditable()
- Stream<Event> get onIceConnectionStateChange =>
- iceConnectionStateChangeEvent.forTarget(this);
-
- /// Stream of `negotiationneeded` events handled by this [RtcPeerConnection].
- @DomName('RTCPeerConnection.onnegotiationneeded')
- @DocsEditable()
- Stream<Event> get onNegotiationNeeded =>
- negotiationNeededEvent.forTarget(this);
-
- /// Stream of `removestream` events handled by this [RtcPeerConnection].
- @DomName('RTCPeerConnection.onremovestream')
- @DocsEditable()
- Stream<MediaStreamEvent> get onRemoveStream =>
- removeStreamEvent.forTarget(this);
-
- /// Stream of `signalingstatechange` events handled by this [RtcPeerConnection].
- @DomName('RTCPeerConnection.onsignalingstatechange')
- @DocsEditable()
- Stream<Event> get onSignalingStateChange =>
- signalingStateChangeEvent.forTarget(this);
-}
-// 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.
-
-@DomName('RTCSessionDescription')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@Experimental()
-// http://dev.w3.org/2011/webrtc/editor/webrtc.html#idl-def-RTCSessionDescription
-@Native("RTCSessionDescription,mozRTCSessionDescription")
-class RtcSessionDescription extends Interceptor {
- factory RtcSessionDescription(Map dictionary) {
- // TODO(efortuna): Remove this check if when you can actually construct with
- // the unprefixed RTCIceCandidate in Firefox (currently both are defined,
- // but one can't be used as a constructor).
- var constructorName = JS(
- '',
- 'window[#]',
- Device.isFirefox
- ? '${Device.propertyPrefix}RTCSessionDescription'
- : 'RTCSessionDescription');
- return JS('RtcSessionDescription', 'new #(#)', constructorName,
- convertDartToNative_SerializedScriptValue(dictionary));
- }
- // To suppress missing implicit constructor warnings.
- factory RtcSessionDescription._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('RTCSessionDescription.sdp')
- @DocsEditable()
- String sdp;
-
- @DomName('RTCSessionDescription.type')
- @DocsEditable()
- String type;
-}
-// 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.
-
-@DocsEditable()
-@DomName('RTCStatsReport')
-// http://dev.w3.org/2011/webrtc/editor/webrtc.html#idl-def-RTCStatsReport
-@Experimental()
-@Native("RTCStatsReport")
-class RtcStatsReport extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory RtcStatsReport._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('RTCStatsReport.id')
- @DocsEditable()
- final String id;
-
- @DomName('RTCStatsReport.timestamp')
- @DocsEditable()
- DateTime get timestamp => convertNativeToDart_DateTime(this._get_timestamp);
- @JSName('timestamp')
- @DomName('RTCStatsReport.timestamp')
- @DocsEditable()
- @Creates('Null')
- final dynamic _get_timestamp;
-
- @DomName('RTCStatsReport.type')
- @DocsEditable()
- final String type;
-
- @DomName('RTCStatsReport.names')
- @DocsEditable()
- List<String> names() native;
-
- @DomName('RTCStatsReport.stat')
- @DocsEditable()
- String stat(String name) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('RTCStatsResponse')
-// http://dev.w3.org/2011/webrtc/editor/webrtc.html#widl-RTCStatsReport-RTCStats-getter-DOMString-id
-@Experimental()
-@Native("RTCStatsResponse")
-class RtcStatsResponse extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory RtcStatsResponse._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('RTCStatsResponse.namedItem')
- @DocsEditable()
- RtcStatsReport namedItem(String name) native;
-
- @DomName('RTCStatsResponse.result')
- @DocsEditable()
- List<RtcStatsReport> result() native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('Screen')
-@Native("Screen")
-class Screen extends Interceptor {
- @DomName('Screen.availHeight')
- @DomName('Screen.availLeft')
- @DomName('Screen.availTop')
- @DomName('Screen.availWidth')
- Rectangle get available =>
- new Rectangle(_availLeft, _availTop, _availWidth, _availHeight);
- // To suppress missing implicit constructor warnings.
- factory Screen._() {
- throw new UnsupportedError("Not supported");
- }
-
- @JSName('availHeight')
- @DomName('Screen.availHeight')
- @DocsEditable()
- final int _availHeight;
-
- @JSName('availLeft')
- @DomName('Screen.availLeft')
- @DocsEditable()
- @Experimental() // nonstandard
- final int _availLeft;
-
- @JSName('availTop')
- @DomName('Screen.availTop')
- @DocsEditable()
- @Experimental() // nonstandard
- final int _availTop;
-
- @JSName('availWidth')
- @DomName('Screen.availWidth')
- @DocsEditable()
- final int _availWidth;
-
- @DomName('Screen.colorDepth')
- @DocsEditable()
- final int colorDepth;
-
- @DomName('Screen.height')
- @DocsEditable()
- final int height;
-
- @DomName('Screen.keepAwake')
- @DocsEditable()
- @Experimental() // untriaged
- bool keepAwake;
-
- @DomName('Screen.orientation')
- @DocsEditable()
- @Experimental() // untriaged
- final ScreenOrientation orientation;
-
- @DomName('Screen.pixelDepth')
- @DocsEditable()
- final int pixelDepth;
-
- @DomName('Screen.width')
- @DocsEditable()
- final int width;
-}
-// 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.
-
-@DocsEditable()
-@DomName('ScreenOrientation')
-@Experimental() // untriaged
-@Native("ScreenOrientation")
-class ScreenOrientation extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory ScreenOrientation._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('ScreenOrientation.changeEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> changeEvent =
- const EventStreamProvider<Event>('change');
-
- @DomName('ScreenOrientation.angle')
- @DocsEditable()
- @Experimental() // untriaged
- final int angle;
-
- @DomName('ScreenOrientation.type')
- @DocsEditable()
- @Experimental() // untriaged
- final String type;
-
- @DomName('ScreenOrientation.lock')
- @DocsEditable()
- @Experimental() // untriaged
- Future lock(String orientation) native;
-
- @DomName('ScreenOrientation.unlock')
- @DocsEditable()
- @Experimental() // untriaged
- void unlock() native;
-
- @DomName('ScreenOrientation.onchange')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onChange => changeEvent.forTarget(this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLScriptElement')
-@Native("HTMLScriptElement")
-class ScriptElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory ScriptElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLScriptElement.HTMLScriptElement')
- @DocsEditable()
- factory ScriptElement() => JS(
- 'returns:ScriptElement;creates:ScriptElement;new:true',
- '#.createElement(#)',
- document,
- "script");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- ScriptElement.created() : super.created();
-
- @DomName('HTMLScriptElement.async')
- @DocsEditable()
- bool async;
-
- @DomName('HTMLScriptElement.charset')
- @DocsEditable()
- String charset;
-
- @DomName('HTMLScriptElement.crossOrigin')
- @DocsEditable()
- // http://www.whatwg.org/specs/web-apps/current-work/multipage/scripting-1.html#attr-script-crossorigin
- @Experimental()
- String crossOrigin;
-
- @DomName('HTMLScriptElement.defer')
- @DocsEditable()
- bool defer;
-
- @DomName('HTMLScriptElement.integrity')
- @DocsEditable()
- @Experimental() // untriaged
- String integrity;
-
- @DomName('HTMLScriptElement.nonce')
- @DocsEditable()
- // https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#interaction-with-the-script-src-directive
- @Experimental()
- String nonce;
-
- @DomName('HTMLScriptElement.src')
- @DocsEditable()
- String src;
-
- @DomName('HTMLScriptElement.type')
- @DocsEditable()
- String type;
-}
-// 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.
-
-@DocsEditable()
-@DomName('ScrollState')
-@Experimental() // untriaged
-@Native("ScrollState")
-class ScrollState extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory ScrollState._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('ScrollState.ScrollState')
- @DocsEditable()
- factory ScrollState([Map scrollStateInit]) {
- if (scrollStateInit != null) {
- var scrollStateInit_1 = convertDartToNative_Dictionary(scrollStateInit);
- return ScrollState._create_1(scrollStateInit_1);
- }
- return ScrollState._create_2();
- }
- static ScrollState _create_1(scrollStateInit) =>
- JS('ScrollState', 'new ScrollState(#)', scrollStateInit);
- static ScrollState _create_2() => JS('ScrollState', 'new ScrollState()');
-
- @DomName('ScrollState.deltaGranularity')
- @DocsEditable()
- @Experimental() // untriaged
- final double deltaGranularity;
-
- @DomName('ScrollState.deltaX')
- @DocsEditable()
- @Experimental() // untriaged
- final double deltaX;
-
- @DomName('ScrollState.deltaY')
- @DocsEditable()
- @Experimental() // untriaged
- final double deltaY;
-
- @DomName('ScrollState.fromUserInput')
- @DocsEditable()
- @Experimental() // untriaged
- final bool fromUserInput;
-
- @DomName('ScrollState.inInertialPhase')
- @DocsEditable()
- @Experimental() // untriaged
- final bool inInertialPhase;
-
- @DomName('ScrollState.isBeginning')
- @DocsEditable()
- @Experimental() // untriaged
- final bool isBeginning;
-
- @DomName('ScrollState.isDirectManipulation')
- @DocsEditable()
- @Experimental() // untriaged
- final bool isDirectManipulation;
-
- @DomName('ScrollState.isEnding')
- @DocsEditable()
- @Experimental() // untriaged
- final bool isEnding;
-
- @DomName('ScrollState.shouldPropagate')
- @DocsEditable()
- @Experimental() // untriaged
- final bool shouldPropagate;
-
- @DomName('ScrollState.startPositionX')
- @DocsEditable()
- @Experimental() // untriaged
- final int startPositionX;
-
- @DomName('ScrollState.startPositionY')
- @DocsEditable()
- @Experimental() // untriaged
- final int startPositionY;
-
- @DomName('ScrollState.velocityX')
- @DocsEditable()
- @Experimental() // untriaged
- final double velocityX;
-
- @DomName('ScrollState.velocityY')
- @DocsEditable()
- @Experimental() // untriaged
- final double velocityY;
-
- @DomName('ScrollState.consumeDelta')
- @DocsEditable()
- @Experimental() // untriaged
- void consumeDelta(num x, num y) native;
-
- @DomName('ScrollState.distributeToScrollChainDescendant')
- @DocsEditable()
- @Experimental() // untriaged
- void distributeToScrollChainDescendant() native;
-}
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('ScrollStateCallback')
-@Experimental() // untriaged
-typedef void ScrollStateCallback(ScrollState scrollState);
-// 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.
-
-@DocsEditable()
-@DomName('SecurityPolicyViolationEvent')
-// https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#securitypolicyviolationevent-events
-@Experimental()
-@Native("SecurityPolicyViolationEvent")
-class SecurityPolicyViolationEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory SecurityPolicyViolationEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SecurityPolicyViolationEvent.SecurityPolicyViolationEvent')
- @DocsEditable()
- factory SecurityPolicyViolationEvent(String type, [Map eventInitDict]) {
- if (eventInitDict != null) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return SecurityPolicyViolationEvent._create_1(type, eventInitDict_1);
- }
- return SecurityPolicyViolationEvent._create_2(type);
- }
- static SecurityPolicyViolationEvent _create_1(type, eventInitDict) => JS(
- 'SecurityPolicyViolationEvent',
- 'new SecurityPolicyViolationEvent(#,#)',
- type,
- eventInitDict);
- static SecurityPolicyViolationEvent _create_2(type) => JS(
- 'SecurityPolicyViolationEvent',
- 'new SecurityPolicyViolationEvent(#)',
- type);
-
- @JSName('blockedURI')
- @DomName('SecurityPolicyViolationEvent.blockedURI')
- @DocsEditable()
- final String blockedUri;
-
- @DomName('SecurityPolicyViolationEvent.columnNumber')
- @DocsEditable()
- final int columnNumber;
-
- @JSName('documentURI')
- @DomName('SecurityPolicyViolationEvent.documentURI')
- @DocsEditable()
- final String documentUri;
-
- @DomName('SecurityPolicyViolationEvent.effectiveDirective')
- @DocsEditable()
- final String effectiveDirective;
-
- @DomName('SecurityPolicyViolationEvent.lineNumber')
- @DocsEditable()
- final int lineNumber;
-
- @DomName('SecurityPolicyViolationEvent.originalPolicy')
- @DocsEditable()
- final String originalPolicy;
-
- @DomName('SecurityPolicyViolationEvent.referrer')
- @DocsEditable()
- final String referrer;
-
- @DomName('SecurityPolicyViolationEvent.sourceFile')
- @DocsEditable()
- final String sourceFile;
-
- @DomName('SecurityPolicyViolationEvent.statusCode')
- @DocsEditable()
- @Experimental() // untriaged
- final int statusCode;
-
- @DomName('SecurityPolicyViolationEvent.violatedDirective')
- @DocsEditable()
- final String violatedDirective;
-}
-// 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.
-
-@DomName('HTMLSelectElement')
-@Native("HTMLSelectElement")
-class SelectElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory SelectElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLSelectElement.HTMLSelectElement')
- @DocsEditable()
- factory SelectElement() => JS(
- 'returns:SelectElement;creates:SelectElement;new:true',
- '#.createElement(#)',
- document,
- "select");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- SelectElement.created() : super.created();
-
- @DomName('HTMLSelectElement.autofocus')
- @DocsEditable()
- bool autofocus;
-
- @DomName('HTMLSelectElement.disabled')
- @DocsEditable()
- bool disabled;
-
- @DomName('HTMLSelectElement.form')
- @DocsEditable()
- final FormElement form;
-
- @DomName('HTMLSelectElement.labels')
- @DocsEditable()
- @Unstable()
- @Returns('NodeList|Null')
- @Creates('NodeList')
- final List<Node> labels;
-
- @DomName('HTMLSelectElement.length')
- @DocsEditable()
- int length;
-
- @DomName('HTMLSelectElement.multiple')
- @DocsEditable()
- bool multiple;
-
- @DomName('HTMLSelectElement.name')
- @DocsEditable()
- String name;
-
- @DomName('HTMLSelectElement.required')
- @DocsEditable()
- bool required;
-
- @DomName('HTMLSelectElement.selectedIndex')
- @DocsEditable()
- int selectedIndex;
-
- @DomName('HTMLSelectElement.size')
- @DocsEditable()
- int size;
-
- @DomName('HTMLSelectElement.type')
- @DocsEditable()
- final String type;
-
- @DomName('HTMLSelectElement.validationMessage')
- @DocsEditable()
- final String validationMessage;
-
- @DomName('HTMLSelectElement.validity')
- @DocsEditable()
- final ValidityState validity;
-
- @DomName('HTMLSelectElement.value')
- @DocsEditable()
- String value;
-
- @DomName('HTMLSelectElement.willValidate')
- @DocsEditable()
- final bool willValidate;
-
- @DomName('HTMLSelectElement.__setter__')
- @DocsEditable()
- void __setter__(int index, OptionElement option) native;
-
- @DomName('HTMLSelectElement.add')
- @DocsEditable()
- @Experimental() // untriaged
- void add(Object element, Object before) native;
-
- @DomName('HTMLSelectElement.checkValidity')
- @DocsEditable()
- bool checkValidity() native;
-
- @DomName('HTMLSelectElement.item')
- @DocsEditable()
- Element item(int index) native;
-
- @DomName('HTMLSelectElement.namedItem')
- @DocsEditable()
- OptionElement namedItem(String name) native;
-
- @DomName('HTMLSelectElement.reportValidity')
- @DocsEditable()
- @Experimental() // untriaged
- bool reportValidity() native;
-
- @DomName('HTMLSelectElement.setCustomValidity')
- @DocsEditable()
- void setCustomValidity(String error) native;
-
- // Override default options, since IE returns SelectElement itself and it
- // does not operate as a List.
- List<OptionElement> get options {
- dynamic options = this.querySelectorAll<OptionElement>('option');
- return new UnmodifiableListView(options.toList());
- }
-
- List<OptionElement> get selectedOptions {
- // IE does not change the selected flag for single-selection items.
- if (this.multiple) {
- var options = this.options.where((o) => o.selected).toList();
- return new UnmodifiableListView(options);
- } else {
- return [this.options[this.selectedIndex]];
- }
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('Selection')
-@Native("Selection")
-class Selection extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory Selection._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('Selection.anchorNode')
- @DocsEditable()
- final Node anchorNode;
-
- @DomName('Selection.anchorOffset')
- @DocsEditable()
- final int anchorOffset;
-
- @DomName('Selection.baseNode')
- @DocsEditable()
- @Experimental() // non-standard
- final Node baseNode;
-
- @DomName('Selection.baseOffset')
- @DocsEditable()
- @Experimental() // non-standard
- final int baseOffset;
-
- @DomName('Selection.extentNode')
- @DocsEditable()
- @Experimental() // non-standard
- final Node extentNode;
-
- @DomName('Selection.extentOffset')
- @DocsEditable()
- @Experimental() // non-standard
- final int extentOffset;
-
- @DomName('Selection.focusNode')
- @DocsEditable()
- final Node focusNode;
-
- @DomName('Selection.focusOffset')
- @DocsEditable()
- final int focusOffset;
-
- @DomName('Selection.isCollapsed')
- @DocsEditable()
- final bool isCollapsed;
-
- @DomName('Selection.rangeCount')
- @DocsEditable()
- final int rangeCount;
-
- @DomName('Selection.type')
- @DocsEditable()
- @Experimental() // non-standard
- final String type;
-
- @DomName('Selection.addRange')
- @DocsEditable()
- void addRange(Range range) native;
-
- @DomName('Selection.collapse')
- @DocsEditable()
- void collapse(Node node, [int offset]) native;
-
- @DomName('Selection.collapseToEnd')
- @DocsEditable()
- void collapseToEnd() native;
-
- @DomName('Selection.collapseToStart')
- @DocsEditable()
- void collapseToStart() native;
-
- @DomName('Selection.containsNode')
- @DocsEditable()
- @Experimental() // non-standard
- bool containsNode(Node node, [bool allowPartialContainment]) native;
-
- @DomName('Selection.deleteFromDocument')
- @DocsEditable()
- void deleteFromDocument() native;
-
- @DomName('Selection.empty')
- @DocsEditable()
- @Experimental() // non-standard
- void empty() native;
-
- @DomName('Selection.extend')
- @DocsEditable()
- void extend(Node node, [int offset]) native;
-
- @DomName('Selection.getRangeAt')
- @DocsEditable()
- Range getRangeAt(int index) native;
-
- @DomName('Selection.modify')
- @DocsEditable()
- @Experimental() // non-standard
- void modify(String alter, String direction, String granularity) native;
-
- @DomName('Selection.removeAllRanges')
- @DocsEditable()
- void removeAllRanges() native;
-
- @DomName('Selection.selectAllChildren')
- @DocsEditable()
- void selectAllChildren(Node node) native;
-
- @DomName('Selection.setBaseAndExtent')
- @DocsEditable()
- @Experimental() // non-standard
- void setBaseAndExtent(
- Node baseNode, int baseOffset, Node extentNode, int extentOffset) native;
-
- @DomName('Selection.setPosition')
- @DocsEditable()
- @Experimental() // non-standard
- void setPosition(Node node, [int offset]) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('ServicePort')
-@Experimental() // untriaged
-@Native("ServicePort")
-class ServicePort extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory ServicePort._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('ServicePort.data')
- @DocsEditable()
- @Experimental() // untriaged
- final Object data;
-
- @DomName('ServicePort.name')
- @DocsEditable()
- @Experimental() // untriaged
- final String name;
-
- @JSName('targetURL')
- @DomName('ServicePort.targetURL')
- @DocsEditable()
- @Experimental() // untriaged
- final String targetUrl;
-
- @DomName('ServicePort.close')
- @DocsEditable()
- @Experimental() // untriaged
- void close() native;
-
- @DomName('ServicePort.postMessage')
- @DocsEditable()
- @Experimental() // untriaged
- void postMessage(/*SerializedScriptValue*/ message,
- [List<MessagePort> transfer]) {
- if (transfer != null) {
- var message_1 = convertDartToNative_SerializedScriptValue(message);
- _postMessage_1(message_1, transfer);
- return;
- }
- var message_1 = convertDartToNative_SerializedScriptValue(message);
- _postMessage_2(message_1);
- return;
- }
-
- @JSName('postMessage')
- @DomName('ServicePort.postMessage')
- @DocsEditable()
- @Experimental() // untriaged
- void _postMessage_1(message, List<MessagePort> transfer) native;
- @JSName('postMessage')
- @DomName('ServicePort.postMessage')
- @DocsEditable()
- @Experimental() // untriaged
- void _postMessage_2(message) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('ServicePortCollection')
-@Experimental() // untriaged
-@Native("ServicePortCollection")
-class ServicePortCollection extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory ServicePortCollection._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('ServicePortCollection.messageEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MessageEvent> messageEvent =
- const EventStreamProvider<MessageEvent>('message');
-
- @DomName('ServicePortCollection.connect')
- @DocsEditable()
- @Experimental() // untriaged
- Future connect(String url, [Map options]) {
- if (options != null) {
- var options_1 = convertDartToNative_Dictionary(options);
- return _connect_1(url, options_1);
- }
- return _connect_2(url);
- }
-
- @JSName('connect')
- @DomName('ServicePortCollection.connect')
- @DocsEditable()
- @Experimental() // untriaged
- Future _connect_1(url, options) native;
- @JSName('connect')
- @DomName('ServicePortCollection.connect')
- @DocsEditable()
- @Experimental() // untriaged
- Future _connect_2(url) native;
-
- @DomName('ServicePortCollection.match')
- @DocsEditable()
- @Experimental() // untriaged
- Future match(Map options) {
- var options_1 = convertDartToNative_Dictionary(options);
- return _match_1(options_1);
- }
-
- @JSName('match')
- @DomName('ServicePortCollection.match')
- @DocsEditable()
- @Experimental() // untriaged
- Future _match_1(options) native;
-
- @DomName('ServicePortCollection.matchAll')
- @DocsEditable()
- @Experimental() // untriaged
- Future matchAll([Map options]) {
- if (options != null) {
- var options_1 = convertDartToNative_Dictionary(options);
- return _matchAll_1(options_1);
- }
- return _matchAll_2();
- }
-
- @JSName('matchAll')
- @DomName('ServicePortCollection.matchAll')
- @DocsEditable()
- @Experimental() // untriaged
- Future _matchAll_1(options) native;
- @JSName('matchAll')
- @DomName('ServicePortCollection.matchAll')
- @DocsEditable()
- @Experimental() // untriaged
- Future _matchAll_2() native;
-
- @DomName('ServicePortCollection.onmessage')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('ServicePortConnectEvent')
-@Experimental() // untriaged
-@Native("ServicePortConnectEvent")
-class ServicePortConnectEvent extends ExtendableEvent {
- // To suppress missing implicit constructor warnings.
- factory ServicePortConnectEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('ServicePortConnectEvent.ServicePortConnectEvent')
- @DocsEditable()
- factory ServicePortConnectEvent(String type, [Map eventInitDict]) {
- if (eventInitDict != null) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return ServicePortConnectEvent._create_1(type, eventInitDict_1);
- }
- return ServicePortConnectEvent._create_2(type);
- }
- static ServicePortConnectEvent _create_1(type, eventInitDict) => JS(
- 'ServicePortConnectEvent',
- 'new ServicePortConnectEvent(#,#)',
- type,
- eventInitDict);
- static ServicePortConnectEvent _create_2(type) =>
- JS('ServicePortConnectEvent', 'new ServicePortConnectEvent(#)', type);
-
- @DomName('ServicePortConnectEvent.origin')
- @DocsEditable()
- @Experimental() // untriaged
- final String origin;
-
- @JSName('targetURL')
- @DomName('ServicePortConnectEvent.targetURL')
- @DocsEditable()
- @Experimental() // untriaged
- final String targetUrl;
-
- @DomName('ServicePortConnectEvent.respondWith')
- @DocsEditable()
- @Experimental() // untriaged
- Future respondWith(Future response) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('ServiceWorkerContainer')
-@Experimental() // untriaged
-@Native("ServiceWorkerContainer")
-class ServiceWorkerContainer extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory ServiceWorkerContainer._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('ServiceWorkerContainer.messageEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MessageEvent> messageEvent =
- const EventStreamProvider<MessageEvent>('message');
-
- @DomName('ServiceWorkerContainer.controller')
- @DocsEditable()
- @Experimental() // untriaged
- final _ServiceWorker controller;
-
- @DomName('ServiceWorkerContainer.ready')
- @DocsEditable()
- @Experimental() // untriaged
- final Future ready;
-
- @DomName('ServiceWorkerContainer.getRegistration')
- @DocsEditable()
- @Experimental() // untriaged
- Future getRegistration([String documentURL]) native;
-
- @DomName('ServiceWorkerContainer.getRegistrations')
- @DocsEditable()
- @Experimental() // untriaged
- Future getRegistrations() native;
-
- @DomName('ServiceWorkerContainer.register')
- @DocsEditable()
- @Experimental() // untriaged
- Future register(String url, [Map options]) {
- if (options != null) {
- var options_1 = convertDartToNative_Dictionary(options);
- return _register_1(url, options_1);
- }
- return _register_2(url);
- }
-
- @JSName('register')
- @DomName('ServiceWorkerContainer.register')
- @DocsEditable()
- @Experimental() // untriaged
- Future _register_1(url, options) native;
- @JSName('register')
- @DomName('ServiceWorkerContainer.register')
- @DocsEditable()
- @Experimental() // untriaged
- Future _register_2(url) native;
-
- @DomName('ServiceWorkerContainer.onmessage')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('ServiceWorkerGlobalScope')
-@Experimental() // untriaged
-@Native("ServiceWorkerGlobalScope")
-class ServiceWorkerGlobalScope extends WorkerGlobalScope {
- // To suppress missing implicit constructor warnings.
- factory ServiceWorkerGlobalScope._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('ServiceWorkerGlobalScope.messageEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MessageEvent> messageEvent =
- const EventStreamProvider<MessageEvent>('message');
-
- @DomName('ServiceWorkerGlobalScope.clients')
- @DocsEditable()
- @Experimental() // untriaged
- final Clients clients;
-
- @DomName('ServiceWorkerGlobalScope.registration')
- @DocsEditable()
- @Experimental() // untriaged
- final ServiceWorkerRegistration registration;
-
- @DomName('ServiceWorkerGlobalScope.skipWaiting')
- @DocsEditable()
- @Experimental() // untriaged
- Future skipWaiting() native;
-
- @DomName('ServiceWorkerGlobalScope.onmessage')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
-}
-// Copyright (c) 2016, 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.
-
-// WARNING: Do not edit - generated code.
-
-// TODO(alanknight): Provide a nicer constructor that uses named parameters
-// rather than an initialization map.
-@DomName('ServiceWorkerMessageEvent')
-@Experimental() // untriaged
-@Native("ServiceWorkerMessageEvent")
-class ServiceWorkerMessageEvent extends Event {
- // TODO(alanknight): This really should be generated by the
- // _OutputConversion in the systemnative.py script, but that doesn't
- // use those conversions right now, so do this as a one-off.
- @DomName('ServiceWorkerMessageEvent.data')
- @DocsEditable()
- dynamic get data => convertNativeToDart_SerializedScriptValue(this._get_data);
-
- @JSName('data')
- @DomName('ServiceWorkerMessageEvent.data')
- @DocsEditable()
- @annotation_Creates_SerializedScriptValue
- @annotation_Returns_SerializedScriptValue
- final dynamic _get_data;
-
- // To suppress missing implicit constructor warnings.
- factory ServiceWorkerMessageEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('ServiceWorkerMessageEvent.lastEventId')
- @DocsEditable()
- @Experimental() // untriaged
- final String lastEventId;
-
- @DomName('ServiceWorkerMessageEvent.origin')
- @DocsEditable()
- @Experimental() // untriaged
- final String origin;
-
- @DomName('ServiceWorkerMessageEvent.ports')
- @DocsEditable()
- @Experimental() // untriaged
- final List<MessagePort> ports;
-
- @DomName('ServiceWorkerMessageEvent.source')
- @DocsEditable()
- @Experimental() // untriaged
- @Creates('Null')
- @Returns('_ServiceWorker|MessagePort')
- final Object source;
-}
-// 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.
-
-@DocsEditable()
-@DomName('ServiceWorkerRegistration')
-@Experimental() // untriaged
-@Native("ServiceWorkerRegistration")
-class ServiceWorkerRegistration extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory ServiceWorkerRegistration._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('ServiceWorkerRegistration.active')
- @DocsEditable()
- @Experimental() // untriaged
- final _ServiceWorker active;
-
- @DomName('ServiceWorkerRegistration.geofencing')
- @DocsEditable()
- @Experimental() // untriaged
- final Geofencing geofencing;
-
- @DomName('ServiceWorkerRegistration.installing')
- @DocsEditable()
- @Experimental() // untriaged
- final _ServiceWorker installing;
-
- @DomName('ServiceWorkerRegistration.pushManager')
- @DocsEditable()
- @Experimental() // untriaged
- final PushManager pushManager;
-
- @DomName('ServiceWorkerRegistration.scope')
- @DocsEditable()
- @Experimental() // untriaged
- final String scope;
-
- @DomName('ServiceWorkerRegistration.sync')
- @DocsEditable()
- @Experimental() // untriaged
- final SyncManager sync;
-
- @DomName('ServiceWorkerRegistration.waiting')
- @DocsEditable()
- @Experimental() // untriaged
- final _ServiceWorker waiting;
-
- @DomName('ServiceWorkerRegistration.getNotifications')
- @DocsEditable()
- @Experimental() // untriaged
- Future getNotifications([Map filter]) {
- if (filter != null) {
- var filter_1 = convertDartToNative_Dictionary(filter);
- return _getNotifications_1(filter_1);
- }
- return _getNotifications_2();
- }
-
- @JSName('getNotifications')
- @DomName('ServiceWorkerRegistration.getNotifications')
- @DocsEditable()
- @Experimental() // untriaged
- Future _getNotifications_1(filter) native;
- @JSName('getNotifications')
- @DomName('ServiceWorkerRegistration.getNotifications')
- @DocsEditable()
- @Experimental() // untriaged
- Future _getNotifications_2() native;
-
- @DomName('ServiceWorkerRegistration.showNotification')
- @DocsEditable()
- @Experimental() // untriaged
- Future showNotification(String title, [Map options]) {
- if (options != null) {
- var options_1 = convertDartToNative_Dictionary(options);
- return _showNotification_1(title, options_1);
- }
- return _showNotification_2(title);
- }
-
- @JSName('showNotification')
- @DomName('ServiceWorkerRegistration.showNotification')
- @DocsEditable()
- @Experimental() // untriaged
- Future _showNotification_1(title, options) native;
- @JSName('showNotification')
- @DomName('ServiceWorkerRegistration.showNotification')
- @DocsEditable()
- @Experimental() // untriaged
- Future _showNotification_2(title) native;
-
- @DomName('ServiceWorkerRegistration.unregister')
- @DocsEditable()
- @Experimental() // untriaged
- Future unregister() native;
-
- @DomName('ServiceWorkerRegistration.update')
- @DocsEditable()
- @Experimental() // untriaged
- Future update() native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLShadowElement')
-@SupportedBrowser(SupportedBrowser.CHROME, '26')
-@Experimental()
-// https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#shadow-element
-@Native("HTMLShadowElement")
-class ShadowElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory ShadowElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLShadowElement.HTMLShadowElement')
- @DocsEditable()
- factory ShadowElement() => document.createElement("shadow");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- ShadowElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported => Element.isTagSupported('shadow');
-
- @DomName('HTMLShadowElement.getDistributedNodes')
- @DocsEditable()
- @Experimental() // untriaged
- @Returns('NodeList|Null')
- @Creates('NodeList')
- List<Node> getDistributedNodes() native;
-}
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('ShadowRoot')
-@SupportedBrowser(SupportedBrowser.CHROME, '26')
-@Experimental()
-// https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#api-shadow-root
-@Native("ShadowRoot")
-class ShadowRoot extends DocumentFragment {
- // To suppress missing implicit constructor warnings.
- factory ShadowRoot._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('ShadowRoot.activeElement')
- @DocsEditable()
- final Element activeElement;
-
- @DomName('ShadowRoot.delegatesFocus')
- @DocsEditable()
- @Experimental() // untriaged
- final bool delegatesFocus;
-
- @DomName('ShadowRoot.host')
- @DocsEditable()
- @Experimental() // untriaged
- final Element host;
-
- @JSName('innerHTML')
- @DomName('ShadowRoot.innerHTML')
- @DocsEditable()
- String innerHtml;
-
- @DomName('ShadowRoot.olderShadowRoot')
- @DocsEditable()
- @Experimental() // untriaged
- final ShadowRoot olderShadowRoot;
-
- @DomName('ShadowRoot.styleSheets')
- @DocsEditable()
- @Experimental() // untriaged
- @Returns('_StyleSheetList|Null')
- @Creates('_StyleSheetList')
- final List<StyleSheet> styleSheets;
-
- @JSName('cloneNode')
- @DomName('ShadowRoot.cloneNode')
- @DocsEditable()
- Node clone([bool deep]) native;
-
- @DomName('ShadowRoot.elementFromPoint')
- @DocsEditable()
- Element elementFromPoint(int x, int y) native;
-
- @DomName('ShadowRoot.elementsFromPoint')
- @DocsEditable()
- @Experimental() // untriaged
- List<Element> elementsFromPoint(int x, int y) native;
-
- @DomName('ShadowRoot.getSelection')
- @DocsEditable()
- Selection getSelection() native;
-
- static bool get supported => JS(
- 'bool',
- '!!(Element.prototype.createShadowRoot||'
- 'Element.prototype.webkitCreateShadowRoot)');
-
- static bool _shadowRootDeprecationReported = false;
- static void _shadowRootDeprecationReport() {
- if (!_shadowRootDeprecationReported) {
- window.console.warn('''
-ShadowRoot.resetStyleInheritance and ShadowRoot.applyAuthorStyles now deprecated in dart:html.
-Please remove them from your code.
-''');
- _shadowRootDeprecationReported = true;
- }
- }
-
- @deprecated
- bool get resetStyleInheritance {
- _shadowRootDeprecationReport();
- // Default value from when it was specified.
- return false;
- }
-
- @deprecated
- set resetStyleInheritance(bool value) {
- _shadowRootDeprecationReport();
- }
-
- @deprecated
- bool get applyAuthorStyles {
- _shadowRootDeprecationReport();
- // Default value from when it was specified.
- return false;
- }
-
- @deprecated
- set applyAuthorStyles(bool value) {
- _shadowRootDeprecationReport();
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('SharedArrayBuffer')
-@Experimental() // untriaged
-@Native("SharedArrayBuffer")
-class SharedArrayBuffer extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory SharedArrayBuffer._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SharedArrayBuffer.byteLength')
- @DocsEditable()
- @Experimental() // untriaged
- final int byteLength;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SharedWorker')
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/workers.html#shared-workers-and-the-sharedworker-interface
-@Experimental()
-@Native("SharedWorker")
-class SharedWorker extends EventTarget implements AbstractWorker {
- // To suppress missing implicit constructor warnings.
- factory SharedWorker._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SharedWorker.errorEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> errorEvent =
- const EventStreamProvider<Event>('error');
-
- @DomName('SharedWorker.SharedWorker')
- @DocsEditable()
- factory SharedWorker(String scriptURL, [String name]) {
- if (name != null) {
- return SharedWorker._create_1(scriptURL, name);
- }
- return SharedWorker._create_2(scriptURL);
- }
- static SharedWorker _create_1(scriptURL, name) =>
- JS('SharedWorker', 'new SharedWorker(#,#)', scriptURL, name);
- static SharedWorker _create_2(scriptURL) =>
- JS('SharedWorker', 'new SharedWorker(#)', scriptURL);
-
- @DomName('SharedWorker.port')
- @DocsEditable()
- final MessagePort port;
-
- @DomName('SharedWorker.workerStart')
- @DocsEditable()
- @Experimental() // untriaged
- final double workerStart;
-
- @DomName('SharedWorker.onerror')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onError => errorEvent.forTarget(this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('SharedWorkerGlobalScope')
-@Experimental() // untriaged
-@Native("SharedWorkerGlobalScope")
-class SharedWorkerGlobalScope extends WorkerGlobalScope {
- // To suppress missing implicit constructor warnings.
- factory SharedWorkerGlobalScope._() {
- throw new UnsupportedError("Not supported");
- }
-
- /**
- * Static factory designed to expose `connect` events to event
- * handlers that are not necessarily instances of [SharedWorkerGlobalScope].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('SharedWorkerGlobalScope.connectEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> connectEvent =
- const EventStreamProvider<Event>('connect');
-
- @DomName('SharedWorkerGlobalScope.PERSISTENT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int PERSISTENT = 1;
-
- @DomName('SharedWorkerGlobalScope.TEMPORARY')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEMPORARY = 0;
-
- @DomName('SharedWorkerGlobalScope.name')
- @DocsEditable()
- @Experimental() // untriaged
- final String name;
-
- @JSName('webkitRequestFileSystem')
- @DomName('SharedWorkerGlobalScope.webkitRequestFileSystem')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- @Experimental() // untriaged
- void _webkitRequestFileSystem(int type, int size,
- [_FileSystemCallback successCallback,
- _ErrorCallback errorCallback]) native;
-
- @JSName('webkitRequestFileSystemSync')
- @DomName('SharedWorkerGlobalScope.webkitRequestFileSystemSync')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- @Experimental() // untriaged
- _DOMFileSystemSync requestFileSystemSync(int type, int size) native;
-
- @JSName('webkitResolveLocalFileSystemSyncURL')
- @DomName('SharedWorkerGlobalScope.webkitResolveLocalFileSystemSyncURL')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- @Experimental() // untriaged
- _EntrySync resolveLocalFileSystemSyncUrl(String url) native;
-
- @JSName('webkitResolveLocalFileSystemURL')
- @DomName('SharedWorkerGlobalScope.webkitResolveLocalFileSystemURL')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- @Experimental() // untriaged
- void _webkitResolveLocalFileSystemUrl(
- String url, _EntryCallback successCallback,
- [_ErrorCallback errorCallback]) native;
-
- /// Stream of `connect` events handled by this [SharedWorkerGlobalScope].
- @DomName('SharedWorkerGlobalScope.onconnect')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onConnect => connectEvent.forTarget(this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('SimpleLength')
-@Experimental() // untriaged
-@Native("SimpleLength")
-class SimpleLength extends LengthValue {
- // To suppress missing implicit constructor warnings.
- factory SimpleLength._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SimpleLength.SimpleLength')
- @DocsEditable()
- factory SimpleLength(num value, String type) {
- return SimpleLength._create_1(value, type);
- }
- static SimpleLength _create_1(value, type) =>
- JS('SimpleLength', 'new SimpleLength(#,#)', value, type);
-
- @DomName('SimpleLength.type')
- @DocsEditable()
- @Experimental() // untriaged
- final String type;
-
- @DomName('SimpleLength.value')
- @DocsEditable()
- @Experimental() // untriaged
- num value;
-}
-// 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.
-
-@DocsEditable()
-@DomName('Skew')
-@Experimental() // untriaged
-@Native("Skew")
-class Skew extends TransformComponent {
- // To suppress missing implicit constructor warnings.
- factory Skew._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('Skew.Skew')
- @DocsEditable()
- factory Skew(num ax, num ay) {
- return Skew._create_1(ax, ay);
- }
- static Skew _create_1(ax, ay) => JS('Skew', 'new Skew(#,#)', ax, ay);
-
- @DomName('Skew.ax')
- @DocsEditable()
- @Experimental() // untriaged
- final double ax;
-
- @DomName('Skew.ay')
- @DocsEditable()
- @Experimental() // untriaged
- final double ay;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLSlotElement')
-@Experimental() // untriaged
-@Native("HTMLSlotElement")
-class SlotElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory SlotElement._() {
- throw new UnsupportedError("Not supported");
- }
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- SlotElement.created() : super.created();
-
- @DomName('HTMLSlotElement.name')
- @DocsEditable()
- @Experimental() // untriaged
- String name;
-
- @DomName('HTMLSlotElement.getAssignedNodes')
- @DocsEditable()
- @Experimental() // untriaged
- List<Node> getAssignedNodes([Map options]) {
- if (options != null) {
- var options_1 = convertDartToNative_Dictionary(options);
- return _getAssignedNodes_1(options_1);
- }
- return _getAssignedNodes_2();
- }
-
- @JSName('getAssignedNodes')
- @DomName('HTMLSlotElement.getAssignedNodes')
- @DocsEditable()
- @Experimental() // untriaged
- List<Node> _getAssignedNodes_1(options) native;
- @JSName('getAssignedNodes')
- @DomName('HTMLSlotElement.getAssignedNodes')
- @DocsEditable()
- @Experimental() // untriaged
- List<Node> _getAssignedNodes_2() native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SourceBuffer')
-// https://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html#sourcebuffer
-@Experimental()
-@Native("SourceBuffer")
-class SourceBuffer extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory SourceBuffer._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SourceBuffer.appendWindowEnd')
- @DocsEditable()
- @Experimental() // untriaged
- num appendWindowEnd;
-
- @DomName('SourceBuffer.appendWindowStart')
- @DocsEditable()
- @Experimental() // untriaged
- num appendWindowStart;
-
- @DomName('SourceBuffer.buffered')
- @DocsEditable()
- final TimeRanges buffered;
-
- @DomName('SourceBuffer.mode')
- @DocsEditable()
- @Experimental() // untriaged
- String mode;
-
- @DomName('SourceBuffer.timestampOffset')
- @DocsEditable()
- num timestampOffset;
-
- @DomName('SourceBuffer.trackDefaults')
- @DocsEditable()
- @Experimental() // untriaged
- TrackDefaultList trackDefaults;
-
- @DomName('SourceBuffer.updating')
- @DocsEditable()
- @Experimental() // untriaged
- final bool updating;
-
- @DomName('SourceBuffer.abort')
- @DocsEditable()
- void abort() native;
-
- @DomName('SourceBuffer.appendBuffer')
- @DocsEditable()
- @Experimental() // untriaged
- void appendBuffer(ByteBuffer data) native;
-
- @DomName('SourceBuffer.appendStream')
- @DocsEditable()
- @Experimental() // untriaged
- void appendStream(FileStream stream, [int maxSize]) native;
-
- @JSName('appendBuffer')
- @DomName('SourceBuffer.appendBuffer')
- @DocsEditable()
- @Experimental() // untriaged
- void appendTypedData(TypedData data) native;
-
- @DomName('SourceBuffer.remove')
- @DocsEditable()
- @Experimental() // untriaged
- void remove(num start, num end) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SourceBufferList')
-// https://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html#sourcebufferlist
-@Experimental()
-@Native("SourceBufferList")
-class SourceBufferList extends EventTarget
- with ListMixin<SourceBuffer>, ImmutableListMixin<SourceBuffer>
- implements JavaScriptIndexingBehavior<SourceBuffer>, List<SourceBuffer> {
- // To suppress missing implicit constructor warnings.
- factory SourceBufferList._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SourceBufferList.length')
- @DocsEditable()
- int get length => JS("int", "#.length", this);
-
- SourceBuffer operator [](int index) {
- if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
- throw new RangeError.index(index, this);
- return JS("SourceBuffer", "#[#]", this, index);
- }
-
- void operator []=(int index, SourceBuffer value) {
- throw new UnsupportedError("Cannot assign element of immutable List.");
- }
- // -- start List<SourceBuffer> mixins.
- // SourceBuffer is the element type.
-
- set length(int value) {
- throw new UnsupportedError("Cannot resize immutable List.");
- }
-
- SourceBuffer get first {
- if (this.length > 0) {
- return JS('SourceBuffer', '#[0]', this);
- }
- throw new StateError("No elements");
- }
-
- SourceBuffer get last {
- int len = this.length;
- if (len > 0) {
- return JS('SourceBuffer', '#[#]', this, len - 1);
- }
- throw new StateError("No elements");
- }
-
- SourceBuffer get single {
- int len = this.length;
- if (len == 1) {
- return JS('SourceBuffer', '#[0]', this);
- }
- if (len == 0) throw new StateError("No elements");
- throw new StateError("More than one element");
- }
-
- SourceBuffer elementAt(int index) => this[index];
- // -- end List<SourceBuffer> mixins.
-
- @DomName('SourceBufferList.item')
- @DocsEditable()
- SourceBuffer item(int index) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLSourceElement')
-@Native("HTMLSourceElement")
-class SourceElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory SourceElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLSourceElement.HTMLSourceElement')
- @DocsEditable()
- factory SourceElement() => JS(
- 'returns:SourceElement;creates:SourceElement;new:true',
- '#.createElement(#)',
- document,
- "source");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- SourceElement.created() : super.created();
-
- @DomName('HTMLSourceElement.media')
- @DocsEditable()
- String media;
-
- @DomName('HTMLSourceElement.sizes')
- @DocsEditable()
- @Experimental() // untriaged
- String sizes;
-
- @DomName('HTMLSourceElement.src')
- @DocsEditable()
- String src;
-
- @DomName('HTMLSourceElement.srcset')
- @DocsEditable()
- @Experimental() // untriaged
- String srcset;
-
- @DomName('HTMLSourceElement.type')
- @DocsEditable()
- String type;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SourceInfo')
-@Experimental() // untriaged
-@Native("SourceInfo")
-class SourceInfo extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory SourceInfo._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SourceInfo.facing')
- @DocsEditable()
- @Experimental() // untriaged
- final String facing;
-
- @DomName('SourceInfo.id')
- @DocsEditable()
- @Experimental() // untriaged
- final String id;
-
- @DomName('SourceInfo.kind')
- @DocsEditable()
- @Experimental() // untriaged
- final String kind;
-
- @DomName('SourceInfo.label')
- @DocsEditable()
- @Experimental() // untriaged
- final String label;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLSpanElement')
-@Native("HTMLSpanElement")
-class SpanElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory SpanElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLSpanElement.HTMLSpanElement')
- @DocsEditable()
- factory SpanElement() => JS(
- 'returns:SpanElement;creates:SpanElement;new:true',
- '#.createElement(#)',
- document,
- "span");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- SpanElement.created() : super.created();
-}
-// 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.
-
-@DocsEditable()
-@DomName('SpeechGrammar')
-// https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#dfn-speechgrammar
-@Experimental()
-@Native("SpeechGrammar")
-class SpeechGrammar extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory SpeechGrammar._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SpeechGrammar.SpeechGrammar')
- @DocsEditable()
- factory SpeechGrammar() {
- return SpeechGrammar._create_1();
- }
- static SpeechGrammar _create_1() =>
- JS('SpeechGrammar', 'new SpeechGrammar()');
-
- @DomName('SpeechGrammar.src')
- @DocsEditable()
- String src;
-
- @DomName('SpeechGrammar.weight')
- @DocsEditable()
- num weight;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SpeechGrammarList')
-// https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#dfn-speechgrammarlist
-@Experimental()
-@Native("SpeechGrammarList")
-class SpeechGrammarList extends Interceptor
- with ListMixin<SpeechGrammar>, ImmutableListMixin<SpeechGrammar>
- implements JavaScriptIndexingBehavior<SpeechGrammar>, List<SpeechGrammar> {
- // To suppress missing implicit constructor warnings.
- factory SpeechGrammarList._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SpeechGrammarList.SpeechGrammarList')
- @DocsEditable()
- factory SpeechGrammarList() {
- return SpeechGrammarList._create_1();
- }
- static SpeechGrammarList _create_1() =>
- JS('SpeechGrammarList', 'new SpeechGrammarList()');
-
- @DomName('SpeechGrammarList.length')
- @DocsEditable()
- int get length => JS("int", "#.length", this);
-
- SpeechGrammar operator [](int index) {
- if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
- throw new RangeError.index(index, this);
- return JS("SpeechGrammar", "#[#]", this, index);
- }
-
- void operator []=(int index, SpeechGrammar value) {
- throw new UnsupportedError("Cannot assign element of immutable List.");
- }
- // -- start List<SpeechGrammar> mixins.
- // SpeechGrammar is the element type.
-
- set length(int value) {
- throw new UnsupportedError("Cannot resize immutable List.");
- }
-
- SpeechGrammar get first {
- if (this.length > 0) {
- return JS('SpeechGrammar', '#[0]', this);
- }
- throw new StateError("No elements");
- }
-
- SpeechGrammar get last {
- int len = this.length;
- if (len > 0) {
- return JS('SpeechGrammar', '#[#]', this, len - 1);
- }
- throw new StateError("No elements");
- }
-
- SpeechGrammar get single {
- int len = this.length;
- if (len == 1) {
- return JS('SpeechGrammar', '#[0]', this);
- }
- if (len == 0) throw new StateError("No elements");
- throw new StateError("More than one element");
- }
-
- SpeechGrammar elementAt(int index) => this[index];
- // -- end List<SpeechGrammar> mixins.
-
- @DomName('SpeechGrammarList.addFromString')
- @DocsEditable()
- void addFromString(String string, [num weight]) native;
-
- @DomName('SpeechGrammarList.addFromUri')
- @DocsEditable()
- void addFromUri(String src, [num weight]) native;
-
- @DomName('SpeechGrammarList.item')
- @DocsEditable()
- SpeechGrammar item(int index) native;
-}
-// 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.
-
-@DomName('SpeechRecognition')
-@SupportedBrowser(SupportedBrowser.CHROME, '25')
-@Experimental()
-// https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#speechreco-section
-@Native("SpeechRecognition")
-class SpeechRecognition extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory SpeechRecognition._() {
- throw new UnsupportedError("Not supported");
- }
-
- /**
- * Static factory designed to expose `audioend` events to event
- * handlers that are not necessarily instances of [SpeechRecognition].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('SpeechRecognition.audioendEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> audioEndEvent =
- const EventStreamProvider<Event>('audioend');
-
- /**
- * Static factory designed to expose `audiostart` events to event
- * handlers that are not necessarily instances of [SpeechRecognition].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('SpeechRecognition.audiostartEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> audioStartEvent =
- const EventStreamProvider<Event>('audiostart');
-
- /**
- * Static factory designed to expose `end` events to event
- * handlers that are not necessarily instances of [SpeechRecognition].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('SpeechRecognition.endEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> endEvent =
- const EventStreamProvider<Event>('end');
-
- /**
- * Static factory designed to expose `error` events to event
- * handlers that are not necessarily instances of [SpeechRecognition].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('SpeechRecognition.errorEvent')
- @DocsEditable()
- static const EventStreamProvider<SpeechRecognitionError> errorEvent =
- const EventStreamProvider<SpeechRecognitionError>('error');
-
- /**
- * Static factory designed to expose `nomatch` events to event
- * handlers that are not necessarily instances of [SpeechRecognition].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('SpeechRecognition.nomatchEvent')
- @DocsEditable()
- static const EventStreamProvider<SpeechRecognitionEvent> noMatchEvent =
- const EventStreamProvider<SpeechRecognitionEvent>('nomatch');
-
- /**
- * Static factory designed to expose `result` events to event
- * handlers that are not necessarily instances of [SpeechRecognition].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('SpeechRecognition.resultEvent')
- @DocsEditable()
- static const EventStreamProvider<SpeechRecognitionEvent> resultEvent =
- const EventStreamProvider<SpeechRecognitionEvent>('result');
-
- /**
- * Static factory designed to expose `soundend` events to event
- * handlers that are not necessarily instances of [SpeechRecognition].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('SpeechRecognition.soundendEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> soundEndEvent =
- const EventStreamProvider<Event>('soundend');
-
- /**
- * Static factory designed to expose `soundstart` events to event
- * handlers that are not necessarily instances of [SpeechRecognition].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('SpeechRecognition.soundstartEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> soundStartEvent =
- const EventStreamProvider<Event>('soundstart');
-
- /**
- * Static factory designed to expose `speechend` events to event
- * handlers that are not necessarily instances of [SpeechRecognition].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('SpeechRecognition.speechendEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> speechEndEvent =
- const EventStreamProvider<Event>('speechend');
-
- /**
- * Static factory designed to expose `speechstart` events to event
- * handlers that are not necessarily instances of [SpeechRecognition].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('SpeechRecognition.speechstartEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> speechStartEvent =
- const EventStreamProvider<Event>('speechstart');
-
- /**
- * Static factory designed to expose `start` events to event
- * handlers that are not necessarily instances of [SpeechRecognition].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('SpeechRecognition.startEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> startEvent =
- const EventStreamProvider<Event>('start');
-
- /// Checks if this type is supported on the current platform.
- static bool get supported => JS(
- 'bool', '!!(window.SpeechRecognition || window.webkitSpeechRecognition)');
-
- @DomName('SpeechRecognition.audioTrack')
- @DocsEditable()
- @Experimental() // untriaged
- MediaStreamTrack audioTrack;
-
- @DomName('SpeechRecognition.continuous')
- @DocsEditable()
- bool continuous;
-
- @DomName('SpeechRecognition.grammars')
- @DocsEditable()
- SpeechGrammarList grammars;
-
- @DomName('SpeechRecognition.interimResults')
- @DocsEditable()
- bool interimResults;
-
- @DomName('SpeechRecognition.lang')
- @DocsEditable()
- String lang;
-
- @DomName('SpeechRecognition.maxAlternatives')
- @DocsEditable()
- int maxAlternatives;
-
- @DomName('SpeechRecognition.abort')
- @DocsEditable()
- void abort() native;
-
- @DomName('SpeechRecognition.start')
- @DocsEditable()
- void start() native;
-
- @DomName('SpeechRecognition.stop')
- @DocsEditable()
- void stop() native;
-
- /// Stream of `audioend` events handled by this [SpeechRecognition].
- @DomName('SpeechRecognition.onaudioend')
- @DocsEditable()
- Stream<Event> get onAudioEnd => audioEndEvent.forTarget(this);
-
- /// Stream of `audiostart` events handled by this [SpeechRecognition].
- @DomName('SpeechRecognition.onaudiostart')
- @DocsEditable()
- Stream<Event> get onAudioStart => audioStartEvent.forTarget(this);
-
- /// Stream of `end` events handled by this [SpeechRecognition].
- @DomName('SpeechRecognition.onend')
- @DocsEditable()
- Stream<Event> get onEnd => endEvent.forTarget(this);
-
- /// Stream of `error` events handled by this [SpeechRecognition].
- @DomName('SpeechRecognition.onerror')
- @DocsEditable()
- Stream<SpeechRecognitionError> get onError => errorEvent.forTarget(this);
-
- /// Stream of `nomatch` events handled by this [SpeechRecognition].
- @DomName('SpeechRecognition.onnomatch')
- @DocsEditable()
- Stream<SpeechRecognitionEvent> get onNoMatch => noMatchEvent.forTarget(this);
-
- /// Stream of `result` events handled by this [SpeechRecognition].
- @DomName('SpeechRecognition.onresult')
- @DocsEditable()
- Stream<SpeechRecognitionEvent> get onResult => resultEvent.forTarget(this);
-
- /// Stream of `soundend` events handled by this [SpeechRecognition].
- @DomName('SpeechRecognition.onsoundend')
- @DocsEditable()
- Stream<Event> get onSoundEnd => soundEndEvent.forTarget(this);
-
- /// Stream of `soundstart` events handled by this [SpeechRecognition].
- @DomName('SpeechRecognition.onsoundstart')
- @DocsEditable()
- Stream<Event> get onSoundStart => soundStartEvent.forTarget(this);
-
- /// Stream of `speechend` events handled by this [SpeechRecognition].
- @DomName('SpeechRecognition.onspeechend')
- @DocsEditable()
- Stream<Event> get onSpeechEnd => speechEndEvent.forTarget(this);
-
- /// Stream of `speechstart` events handled by this [SpeechRecognition].
- @DomName('SpeechRecognition.onspeechstart')
- @DocsEditable()
- Stream<Event> get onSpeechStart => speechStartEvent.forTarget(this);
-
- /// Stream of `start` events handled by this [SpeechRecognition].
- @DomName('SpeechRecognition.onstart')
- @DocsEditable()
- Stream<Event> get onStart => startEvent.forTarget(this);
-
- factory SpeechRecognition() {
- return JS('SpeechRecognition',
- 'new (window.SpeechRecognition || window.webkitSpeechRecognition)()');
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('SpeechRecognitionAlternative')
-@SupportedBrowser(SupportedBrowser.CHROME, '25')
-@Experimental()
-// https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#speechrecognitionalternative
-@Native("SpeechRecognitionAlternative")
-class SpeechRecognitionAlternative extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory SpeechRecognitionAlternative._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SpeechRecognitionAlternative.confidence')
- @DocsEditable()
- final double confidence;
-
- @DomName('SpeechRecognitionAlternative.transcript')
- @DocsEditable()
- final String transcript;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SpeechRecognitionError')
-@SupportedBrowser(SupportedBrowser.CHROME, '25')
-@Experimental()
-// https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#speechreco-error
-@Native("SpeechRecognitionError")
-class SpeechRecognitionError extends Event {
- // To suppress missing implicit constructor warnings.
- factory SpeechRecognitionError._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SpeechRecognitionError.SpeechRecognitionError')
- @DocsEditable()
- factory SpeechRecognitionError(String type, [Map initDict]) {
- if (initDict != null) {
- var initDict_1 = convertDartToNative_Dictionary(initDict);
- return SpeechRecognitionError._create_1(type, initDict_1);
- }
- return SpeechRecognitionError._create_2(type);
- }
- static SpeechRecognitionError _create_1(type, initDict) => JS(
- 'SpeechRecognitionError',
- 'new SpeechRecognitionError(#,#)',
- type,
- initDict);
- static SpeechRecognitionError _create_2(type) =>
- JS('SpeechRecognitionError', 'new SpeechRecognitionError(#)', type);
-
- @DomName('SpeechRecognitionError.error')
- @DocsEditable()
- final String error;
-
- @DomName('SpeechRecognitionError.message')
- @DocsEditable()
- final String message;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SpeechRecognitionEvent')
-@SupportedBrowser(SupportedBrowser.CHROME, '25')
-@Experimental()
-// https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#speechreco-event
-@Native("SpeechRecognitionEvent")
-class SpeechRecognitionEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory SpeechRecognitionEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SpeechRecognitionEvent.SpeechRecognitionEvent')
- @DocsEditable()
- factory SpeechRecognitionEvent(String type, [Map initDict]) {
- if (initDict != null) {
- var initDict_1 = convertDartToNative_Dictionary(initDict);
- return SpeechRecognitionEvent._create_1(type, initDict_1);
- }
- return SpeechRecognitionEvent._create_2(type);
- }
- static SpeechRecognitionEvent _create_1(type, initDict) => JS(
- 'SpeechRecognitionEvent',
- 'new SpeechRecognitionEvent(#,#)',
- type,
- initDict);
- static SpeechRecognitionEvent _create_2(type) =>
- JS('SpeechRecognitionEvent', 'new SpeechRecognitionEvent(#)', type);
-
- @DomName('SpeechRecognitionEvent.emma')
- @DocsEditable()
- final Document emma;
-
- @DomName('SpeechRecognitionEvent.interpretation')
- @DocsEditable()
- final Document interpretation;
-
- @DomName('SpeechRecognitionEvent.resultIndex')
- @DocsEditable()
- final int resultIndex;
-
- @DomName('SpeechRecognitionEvent.results')
- @DocsEditable()
- @Returns('_SpeechRecognitionResultList|Null')
- @Creates('_SpeechRecognitionResultList')
- final List<SpeechRecognitionResult> results;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SpeechRecognitionResult')
-@SupportedBrowser(SupportedBrowser.CHROME, '25')
-@Experimental()
-// https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#speechrecognitionresult
-@Native("SpeechRecognitionResult")
-class SpeechRecognitionResult extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory SpeechRecognitionResult._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SpeechRecognitionResult.isFinal')
- @DocsEditable()
- final bool isFinal;
-
- @DomName('SpeechRecognitionResult.length')
- @DocsEditable()
- final int length;
-
- @DomName('SpeechRecognitionResult.item')
- @DocsEditable()
- SpeechRecognitionAlternative item(int index) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SpeechSynthesis')
-// https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#tts-section
-@Experimental()
-@Native("SpeechSynthesis")
-class SpeechSynthesis extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory SpeechSynthesis._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SpeechSynthesis.paused')
- @DocsEditable()
- final bool paused;
-
- @DomName('SpeechSynthesis.pending')
- @DocsEditable()
- final bool pending;
-
- @DomName('SpeechSynthesis.speaking')
- @DocsEditable()
- final bool speaking;
-
- @DomName('SpeechSynthesis.cancel')
- @DocsEditable()
- void cancel() native;
-
- @DomName('SpeechSynthesis.getVoices')
- @DocsEditable()
- List<SpeechSynthesisVoice> getVoices() native;
-
- @DomName('SpeechSynthesis.pause')
- @DocsEditable()
- void pause() native;
-
- @DomName('SpeechSynthesis.resume')
- @DocsEditable()
- void resume() native;
-
- @DomName('SpeechSynthesis.speak')
- @DocsEditable()
- void speak(SpeechSynthesisUtterance utterance) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SpeechSynthesisEvent')
-// https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#tts-section
-@Experimental()
-@Native("SpeechSynthesisEvent")
-class SpeechSynthesisEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory SpeechSynthesisEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SpeechSynthesisEvent.charIndex')
- @DocsEditable()
- final int charIndex;
-
- @DomName('SpeechSynthesisEvent.elapsedTime')
- @DocsEditable()
- final double elapsedTime;
-
- @DomName('SpeechSynthesisEvent.name')
- @DocsEditable()
- final String name;
-
- @DomName('SpeechSynthesisEvent.utterance')
- @DocsEditable()
- @Experimental() // untriaged
- final SpeechSynthesisUtterance utterance;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SpeechSynthesisUtterance')
-// https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#tts-section
-@Experimental()
-@Native("SpeechSynthesisUtterance")
-class SpeechSynthesisUtterance extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory SpeechSynthesisUtterance._() {
- throw new UnsupportedError("Not supported");
- }
-
- /**
- * Static factory designed to expose `boundary` events to event
- * handlers that are not necessarily instances of [SpeechSynthesisUtterance].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('SpeechSynthesisUtterance.boundaryEvent')
- @DocsEditable()
- static const EventStreamProvider<SpeechSynthesisEvent> boundaryEvent =
- const EventStreamProvider<SpeechSynthesisEvent>('boundary');
-
- /**
- * Static factory designed to expose `end` events to event
- * handlers that are not necessarily instances of [SpeechSynthesisUtterance].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('SpeechSynthesisUtterance.endEvent')
- @DocsEditable()
- static const EventStreamProvider<SpeechSynthesisEvent> endEvent =
- const EventStreamProvider<SpeechSynthesisEvent>('end');
-
- /**
- * Static factory designed to expose `error` events to event
- * handlers that are not necessarily instances of [SpeechSynthesisUtterance].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('SpeechSynthesisUtterance.errorEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> errorEvent =
- const EventStreamProvider<Event>('error');
-
- /**
- * Static factory designed to expose `mark` events to event
- * handlers that are not necessarily instances of [SpeechSynthesisUtterance].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('SpeechSynthesisUtterance.markEvent')
- @DocsEditable()
- static const EventStreamProvider<SpeechSynthesisEvent> markEvent =
- const EventStreamProvider<SpeechSynthesisEvent>('mark');
-
- /**
- * Static factory designed to expose `pause` events to event
- * handlers that are not necessarily instances of [SpeechSynthesisUtterance].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('SpeechSynthesisUtterance.pauseEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> pauseEvent =
- const EventStreamProvider<Event>('pause');
-
- /**
- * Static factory designed to expose `resume` events to event
- * handlers that are not necessarily instances of [SpeechSynthesisUtterance].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('SpeechSynthesisUtterance.resumeEvent')
- @DocsEditable()
- static const EventStreamProvider<SpeechSynthesisEvent> resumeEvent =
- const EventStreamProvider<SpeechSynthesisEvent>('resume');
-
- /**
- * Static factory designed to expose `start` events to event
- * handlers that are not necessarily instances of [SpeechSynthesisUtterance].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('SpeechSynthesisUtterance.startEvent')
- @DocsEditable()
- static const EventStreamProvider<SpeechSynthesisEvent> startEvent =
- const EventStreamProvider<SpeechSynthesisEvent>('start');
-
- @DomName('SpeechSynthesisUtterance.SpeechSynthesisUtterance')
- @DocsEditable()
- factory SpeechSynthesisUtterance([String text]) {
- if (text != null) {
- return SpeechSynthesisUtterance._create_1(text);
- }
- return SpeechSynthesisUtterance._create_2();
- }
- static SpeechSynthesisUtterance _create_1(text) =>
- JS('SpeechSynthesisUtterance', 'new SpeechSynthesisUtterance(#)', text);
- static SpeechSynthesisUtterance _create_2() =>
- JS('SpeechSynthesisUtterance', 'new SpeechSynthesisUtterance()');
-
- @DomName('SpeechSynthesisUtterance.lang')
- @DocsEditable()
- String lang;
-
- @DomName('SpeechSynthesisUtterance.pitch')
- @DocsEditable()
- num pitch;
-
- @DomName('SpeechSynthesisUtterance.rate')
- @DocsEditable()
- num rate;
-
- @DomName('SpeechSynthesisUtterance.text')
- @DocsEditable()
- String text;
-
- @DomName('SpeechSynthesisUtterance.voice')
- @DocsEditable()
- SpeechSynthesisVoice voice;
-
- @DomName('SpeechSynthesisUtterance.volume')
- @DocsEditable()
- num volume;
-
- /// Stream of `boundary` events handled by this [SpeechSynthesisUtterance].
- @DomName('SpeechSynthesisUtterance.onboundary')
- @DocsEditable()
- Stream<SpeechSynthesisEvent> get onBoundary => boundaryEvent.forTarget(this);
-
- /// Stream of `end` events handled by this [SpeechSynthesisUtterance].
- @DomName('SpeechSynthesisUtterance.onend')
- @DocsEditable()
- Stream<SpeechSynthesisEvent> get onEnd => endEvent.forTarget(this);
-
- /// Stream of `error` events handled by this [SpeechSynthesisUtterance].
- @DomName('SpeechSynthesisUtterance.onerror')
- @DocsEditable()
- Stream<Event> get onError => errorEvent.forTarget(this);
-
- /// Stream of `mark` events handled by this [SpeechSynthesisUtterance].
- @DomName('SpeechSynthesisUtterance.onmark')
- @DocsEditable()
- Stream<SpeechSynthesisEvent> get onMark => markEvent.forTarget(this);
-
- /// Stream of `pause` events handled by this [SpeechSynthesisUtterance].
- @DomName('SpeechSynthesisUtterance.onpause')
- @DocsEditable()
- Stream<Event> get onPause => pauseEvent.forTarget(this);
-
- /// Stream of `resume` events handled by this [SpeechSynthesisUtterance].
- @DomName('SpeechSynthesisUtterance.onresume')
- @DocsEditable()
- Stream<SpeechSynthesisEvent> get onResume => resumeEvent.forTarget(this);
-
- /// Stream of `start` events handled by this [SpeechSynthesisUtterance].
- @DomName('SpeechSynthesisUtterance.onstart')
- @DocsEditable()
- Stream<SpeechSynthesisEvent> get onStart => startEvent.forTarget(this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('SpeechSynthesisVoice')
-// https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#tts-section
-@Experimental()
-@Native("SpeechSynthesisVoice")
-class SpeechSynthesisVoice extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory SpeechSynthesisVoice._() {
- throw new UnsupportedError("Not supported");
- }
-
- @JSName('default')
- @DomName('SpeechSynthesisVoice.default')
- @DocsEditable()
- final bool defaultValue;
-
- @DomName('SpeechSynthesisVoice.lang')
- @DocsEditable()
- final String lang;
-
- @DomName('SpeechSynthesisVoice.localService')
- @DocsEditable()
- final bool localService;
-
- @DomName('SpeechSynthesisVoice.name')
- @DocsEditable()
- final String name;
-
- @JSName('voiceURI')
- @DomName('SpeechSynthesisVoice.voiceURI')
- @DocsEditable()
- final String voiceUri;
-}
-// 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.
-
-/**
- * The type used by the
- * [Window.localStorage] and [Window.sessionStorage] properties.
- * Storage is implemented as a Map<String, String>.
- *
- * To store and get values, use Dart's built-in map syntax:
- *
- * window.localStorage['key1'] = 'val1';
- * window.localStorage['key2'] = 'val2';
- * window.localStorage['key3'] = 'val3';
- * assert(window.localStorage['key3'] == 'val3');
- *
- * You can use [Map](http://api.dartlang.org/dart_core/Map.html) APIs
- * such as containsValue(), clear(), and length:
- *
- * assert(window.localStorage.containsValue('does not exist') == false);
- * window.localStorage.clear();
- * assert(window.localStorage.length == 0);
- *
- * For more examples of using this API, see
- * [localstorage_test.dart](http://code.google.com/p/dart/source/browse/branches/bleeding_edge/dart/tests/html/localstorage_test.dart).
- * For details on using the Map API, see the
- * [Maps](https://www.dartlang.org/guides/libraries/library-tour#maps)
- * section of the library tour.
- */
-@DomName('Storage')
-@Unstable()
-@Native("Storage")
-class Storage extends Interceptor implements Map<String, String> {
- void addAll(Map<String, String> other) {
- other.forEach((k, v) {
- this[k] = v;
- });
- }
-
- // TODO(nweiz): update this when maps support lazy iteration
- bool containsValue(Object value) => values.any((e) => e == value);
-
- bool containsKey(Object key) => _getItem(key) != null;
-
- String operator [](Object key) => _getItem(key);
-
- void operator []=(String key, String value) {
- _setItem(key, value);
- }
-
- String putIfAbsent(String key, String ifAbsent()) {
- if (!containsKey(key)) this[key] = ifAbsent();
- return this[key];
- }
-
- String remove(Object key) {
- final value = this[key];
- _removeItem(key);
- return value;
- }
-
- void clear() => _clear();
-
- void forEach(void f(String key, String value)) {
- for (var i = 0; true; i++) {
- final key = _key(i);
- if (key == null) return;
-
- f(key, this[key]);
- }
- }
-
- Iterable<String> get keys {
- final keys = <String>[];
- forEach((k, v) => keys.add(k));
- return keys;
- }
-
- Iterable<String> get values {
- final values = <String>[];
- forEach((k, v) => values.add(v));
- return values;
- }
-
- int get length => _length;
-
- bool get isEmpty => _key(0) == null;
-
- bool get isNotEmpty => !isEmpty;
- // To suppress missing implicit constructor warnings.
- factory Storage._() {
- throw new UnsupportedError("Not supported");
- }
-
- @JSName('length')
- @DomName('Storage.length')
- @DocsEditable()
- final int _length;
-
- @DomName('Storage.__delete__')
- @DocsEditable()
- bool __delete__(index_OR_name) native;
-
- @DomName('Storage.__getter__')
- @DocsEditable()
- String __getter__(index_OR_name) native;
-
- @DomName('Storage.__setter__')
- @DocsEditable()
- void __setter__(index_OR_name, String value) native;
-
- @JSName('clear')
- @DomName('Storage.clear')
- @DocsEditable()
- void _clear() native;
-
- @JSName('getItem')
- @DomName('Storage.getItem')
- @DocsEditable()
- String _getItem(String key) native;
-
- @JSName('key')
- @DomName('Storage.key')
- @DocsEditable()
- String _key(int index) native;
-
- @JSName('removeItem')
- @DomName('Storage.removeItem')
- @DocsEditable()
- void _removeItem(String key) native;
-
- @JSName('setItem')
- @DomName('Storage.setItem')
- @DocsEditable()
- void _setItem(String key, String value) native;
-}
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('StorageErrorCallback')
-// http://www.w3.org/TR/quota-api/#storageerrorcallback-callback
-@Experimental()
-typedef void StorageErrorCallback(DomError error);
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('StorageEvent')
-@Unstable()
-@Native("StorageEvent")
-class StorageEvent extends Event {
- factory StorageEvent(String type,
- {bool canBubble: false,
- bool cancelable: false,
- String key,
- String oldValue,
- String newValue,
- String url,
- Storage storageArea}) {
- StorageEvent e = document._createEvent("StorageEvent");
- e._initStorageEvent(
- type, canBubble, cancelable, key, oldValue, newValue, url, storageArea);
- return e;
- }
-
- @DomName('StorageEvent.StorageEvent')
- @DocsEditable()
- factory StorageEvent._(String type, [Map eventInitDict]) {
- if (eventInitDict != null) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return StorageEvent._create_1(type, eventInitDict_1);
- }
- return StorageEvent._create_2(type);
- }
- static StorageEvent _create_1(type, eventInitDict) =>
- JS('StorageEvent', 'new StorageEvent(#,#)', type, eventInitDict);
- static StorageEvent _create_2(type) =>
- JS('StorageEvent', 'new StorageEvent(#)', type);
-
- @DomName('StorageEvent.key')
- @DocsEditable()
- final String key;
-
- @DomName('StorageEvent.newValue')
- @DocsEditable()
- final String newValue;
-
- @DomName('StorageEvent.oldValue')
- @DocsEditable()
- final String oldValue;
-
- @DomName('StorageEvent.storageArea')
- @DocsEditable()
- final Storage storageArea;
-
- @DomName('StorageEvent.url')
- @DocsEditable()
- final String url;
-
- @JSName('initStorageEvent')
- @DomName('StorageEvent.initStorageEvent')
- @DocsEditable()
- void _initStorageEvent(
- String typeArg,
- bool canBubbleArg,
- bool cancelableArg,
- String keyArg,
- String oldValueArg,
- String newValueArg,
- String urlArg,
- Storage storageAreaArg) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('StorageInfo')
-// http://www.w3.org/TR/file-system-api/
-@Experimental()
-@Native("StorageInfo")
-class StorageInfo extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory StorageInfo._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('StorageInfo.quota')
- @DocsEditable()
- @Experimental() // untriaged
- final int quota;
-
- @DomName('StorageInfo.usage')
- @DocsEditable()
- @Experimental() // untriaged
- final int usage;
-}
-// 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.
-
-@DocsEditable()
-@DomName('StorageManager')
-@Experimental() // untriaged
-@Native("StorageManager")
-class StorageManager extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory StorageManager._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('StorageManager.persistentPermission')
- @DocsEditable()
- @Experimental() // untriaged
- Future persistentPermission() native;
-
- @DomName('StorageManager.requestPersistent')
- @DocsEditable()
- @Experimental() // untriaged
- Future requestPersistent() native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('StorageQuota')
-// http://www.w3.org/TR/quota-api/#idl-def-StorageQuota
-@Experimental()
-@Native("StorageQuota")
-class StorageQuota extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory StorageQuota._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('StorageQuota.supportedTypes')
- @DocsEditable()
- @Experimental() // untriaged
- final List<String> supportedTypes;
-
- @DomName('StorageQuota.queryInfo')
- @DocsEditable()
- @Experimental() // untriaged
- Future queryInfo(String type) native;
-
- @DomName('StorageQuota.requestPersistentQuota')
- @DocsEditable()
- @Experimental() // untriaged
- Future requestPersistentQuota(int newQuota) native;
-}
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('StorageQuotaCallback')
-// http://www.w3.org/TR/quota-api/#idl-def-StorageQuotaCallback
-@Experimental()
-typedef void StorageQuotaCallback(int grantedQuotaInBytes);
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('StorageUsageCallback')
-// http://www.w3.org/TR/quota-api/#idl-def-StorageUsageCallback
-@Experimental()
-typedef void StorageUsageCallback(
- int currentUsageInBytes, int currentQuotaInBytes);
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('StringCallback')
-// http://www.w3.org/TR/2011/WD-html5-20110113/dnd.html#the-datatransferitem-interface
-@Experimental()
-typedef void _StringCallback(String data);
-// 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.
-
-@DocsEditable()
-@DomName('HTMLStyleElement')
-@Native("HTMLStyleElement")
-class StyleElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory StyleElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLStyleElement.HTMLStyleElement')
- @DocsEditable()
- factory StyleElement() => JS(
- 'returns:StyleElement;creates:StyleElement;new:true',
- '#.createElement(#)',
- document,
- "style");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- StyleElement.created() : super.created();
-
- @DomName('HTMLStyleElement.disabled')
- @DocsEditable()
- bool disabled;
-
- @DomName('HTMLStyleElement.media')
- @DocsEditable()
- String media;
-
- @DomName('HTMLStyleElement.sheet')
- @DocsEditable()
- final StyleSheet sheet;
-
- @DomName('HTMLStyleElement.type')
- @DocsEditable()
- String type;
-}
-// 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.
-
-@DocsEditable()
-@DomName('StyleMedia')
-// http://developer.apple.com/library/safari/#documentation/SafariDOMAdditions/Reference/StyleMedia/StyleMedia/StyleMedia.html
-@Experimental() // nonstandard
-@Native("StyleMedia")
-class StyleMedia extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory StyleMedia._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('StyleMedia.type')
- @DocsEditable()
- final String type;
-
- @DomName('StyleMedia.matchMedium')
- @DocsEditable()
- bool matchMedium(String mediaquery) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('StylePropertyMap')
-@Experimental() // untriaged
-@Native("StylePropertyMap")
-class StylePropertyMap extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory StylePropertyMap._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('StylePropertyMap.append')
- @DocsEditable()
- @Experimental() // untriaged
- void append(String property, Object value) native;
-
- @DomName('StylePropertyMap.delete')
- @DocsEditable()
- @Experimental() // untriaged
- void delete(String property) native;
-
- @DomName('StylePropertyMap.get')
- @DocsEditable()
- @Experimental() // untriaged
- StyleValue get(String property) native;
-
- @DomName('StylePropertyMap.getAll')
- @DocsEditable()
- @Experimental() // untriaged
- List<StyleValue> getAll(String property) native;
-
- @DomName('StylePropertyMap.getProperties')
- @DocsEditable()
- @Experimental() // untriaged
- List<String> getProperties() native;
-
- @DomName('StylePropertyMap.has')
- @DocsEditable()
- @Experimental() // untriaged
- bool has(String property) native;
-
- @DomName('StylePropertyMap.set')
- @DocsEditable()
- @Experimental() // untriaged
- void set(String property, Object value) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('StyleSheet')
-@Native("StyleSheet")
-class StyleSheet extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory StyleSheet._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('StyleSheet.disabled')
- @DocsEditable()
- bool disabled;
-
- @DomName('StyleSheet.href')
- @DocsEditable()
- final String href;
-
- @DomName('StyleSheet.media')
- @DocsEditable()
- final MediaList media;
-
- @DomName('StyleSheet.ownerNode')
- @DocsEditable()
- final Node ownerNode;
-
- @DomName('StyleSheet.parentStyleSheet')
- @DocsEditable()
- final StyleSheet parentStyleSheet;
-
- @DomName('StyleSheet.title')
- @DocsEditable()
- final String title;
-
- @DomName('StyleSheet.type')
- @DocsEditable()
- final String type;
-}
-// 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.
-
-@DocsEditable()
-@DomName('StyleValue')
-@Experimental() // untriaged
-@Native("StyleValue")
-class StyleValue extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory StyleValue._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('StyleValue.cssString')
- @DocsEditable()
- @Experimental() // untriaged
- final String cssString;
-
- @DomName('StyleValue.parse')
- @DocsEditable()
- @Experimental() // untriaged
- static Object parse(String property, String cssText) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SyncEvent')
-@Experimental() // untriaged
-@Native("SyncEvent")
-class SyncEvent extends ExtendableEvent {
- // To suppress missing implicit constructor warnings.
- factory SyncEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SyncEvent.SyncEvent')
- @DocsEditable()
- factory SyncEvent(String type, Map init) {
- var init_1 = convertDartToNative_Dictionary(init);
- return SyncEvent._create_1(type, init_1);
- }
- static SyncEvent _create_1(type, init) =>
- JS('SyncEvent', 'new SyncEvent(#,#)', type, init);
-
- @DomName('SyncEvent.lastChance')
- @DocsEditable()
- @Experimental() // untriaged
- final bool lastChance;
-
- @DomName('SyncEvent.tag')
- @DocsEditable()
- @Experimental() // untriaged
- final String tag;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SyncManager')
-@Experimental() // untriaged
-@Native("SyncManager")
-class SyncManager extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory SyncManager._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SyncManager.getTags')
- @DocsEditable()
- @Experimental() // untriaged
- Future getTags() native;
-
- @DomName('SyncManager.register')
- @DocsEditable()
- @Experimental() // untriaged
- Future register(String tag) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLTableCaptionElement')
-@Native("HTMLTableCaptionElement")
-class TableCaptionElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory TableCaptionElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLTableCaptionElement.HTMLTableCaptionElement')
- @DocsEditable()
- factory TableCaptionElement() => JS(
- 'returns:TableCaptionElement;creates:TableCaptionElement;new:true',
- '#.createElement(#)',
- document,
- "caption");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- TableCaptionElement.created() : super.created();
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLTableCellElement')
-@Native(
- "HTMLTableCellElement,HTMLTableDataCellElement,HTMLTableHeaderCellElement")
-class TableCellElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory TableCellElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLTableCellElement.HTMLTableCellElement')
- @DocsEditable()
- factory TableCellElement() => JS(
- 'returns:TableCellElement;creates:TableCellElement;new:true',
- '#.createElement(#)',
- document,
- "td");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- TableCellElement.created() : super.created();
-
- @DomName('HTMLTableCellElement.cellIndex')
- @DocsEditable()
- final int cellIndex;
-
- @DomName('HTMLTableCellElement.colSpan')
- @DocsEditable()
- int colSpan;
-
- @DomName('HTMLTableCellElement.headers')
- @DocsEditable()
- String headers;
-
- @DomName('HTMLTableCellElement.rowSpan')
- @DocsEditable()
- int rowSpan;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLTableColElement')
-@Native("HTMLTableColElement")
-class TableColElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory TableColElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLTableColElement.HTMLTableColElement')
- @DocsEditable()
- factory TableColElement() => JS(
- 'returns:TableColElement;creates:TableColElement;new:true',
- '#.createElement(#)',
- document,
- "col");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- TableColElement.created() : super.created();
-
- @DomName('HTMLTableColElement.span')
- @DocsEditable()
- int span;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLTableElement')
-@Native("HTMLTableElement")
-class TableElement extends HtmlElement {
- @DomName('HTMLTableElement.tBodies')
- List<TableSectionElement> get tBodies =>
- new _WrappedList<TableSectionElement>(_tBodies);
-
- @DomName('HTMLTableElement.rows')
- List<TableRowElement> get rows => new _WrappedList<TableRowElement>(_rows);
-
- TableRowElement addRow() {
- return insertRow(-1);
- }
-
- TableCaptionElement createCaption() => _createCaption();
- TableSectionElement createTBody() => _createTBody();
- TableSectionElement createTFoot() => _createTFoot();
- TableSectionElement createTHead() => _createTHead();
- TableRowElement insertRow(int index) => _insertRow(index);
-
- TableSectionElement _createTBody() {
- if (JS('bool', '!!#.createTBody', this)) {
- return this._nativeCreateTBody();
- }
- var tbody = new Element.tag('tbody');
- this.children.add(tbody);
- return tbody;
- }
-
- @JSName('createTBody')
- TableSectionElement _nativeCreateTBody() native;
-
- DocumentFragment createFragment(String html,
- {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {
- if (Range.supportsCreateContextualFragment) {
- return super.createFragment(html,
- validator: validator, treeSanitizer: treeSanitizer);
- }
- // IE9 workaround which does not support innerHTML on Table elements.
- var contextualHtml = '<table>$html</table>';
- var table = new Element.html(contextualHtml,
- validator: validator, treeSanitizer: treeSanitizer);
- var fragment = new DocumentFragment();
- fragment.nodes.addAll(table.nodes);
-
- return fragment;
- }
-
- // To suppress missing implicit constructor warnings.
- factory TableElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLTableElement.HTMLTableElement')
- @DocsEditable()
- factory TableElement() => JS(
- 'returns:TableElement;creates:TableElement;new:true',
- '#.createElement(#)',
- document,
- "table");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- TableElement.created() : super.created();
-
- @DomName('HTMLTableElement.caption')
- @DocsEditable()
- TableCaptionElement caption;
-
- @JSName('rows')
- @DomName('HTMLTableElement.rows')
- @DocsEditable()
- @Returns('HtmlCollection|Null')
- @Creates('HtmlCollection')
- final List<Node> _rows;
-
- @JSName('tBodies')
- @DomName('HTMLTableElement.tBodies')
- @DocsEditable()
- @Returns('HtmlCollection|Null')
- @Creates('HtmlCollection')
- final List<Node> _tBodies;
-
- @DomName('HTMLTableElement.tFoot')
- @DocsEditable()
- TableSectionElement tFoot;
-
- @DomName('HTMLTableElement.tHead')
- @DocsEditable()
- TableSectionElement tHead;
-
- @JSName('createCaption')
- @DomName('HTMLTableElement.createCaption')
- @DocsEditable()
- TableCaptionElement _createCaption() native;
-
- @JSName('createTFoot')
- @DomName('HTMLTableElement.createTFoot')
- @DocsEditable()
- TableSectionElement _createTFoot() native;
-
- @JSName('createTHead')
- @DomName('HTMLTableElement.createTHead')
- @DocsEditable()
- TableSectionElement _createTHead() native;
-
- @DomName('HTMLTableElement.deleteCaption')
- @DocsEditable()
- void deleteCaption() native;
-
- @DomName('HTMLTableElement.deleteRow')
- @DocsEditable()
- void deleteRow(int index) native;
-
- @DomName('HTMLTableElement.deleteTFoot')
- @DocsEditable()
- void deleteTFoot() native;
-
- @DomName('HTMLTableElement.deleteTHead')
- @DocsEditable()
- void deleteTHead() native;
-
- @JSName('insertRow')
- @DomName('HTMLTableElement.insertRow')
- @DocsEditable()
- TableRowElement _insertRow([int index]) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLTableRowElement')
-@Native("HTMLTableRowElement")
-class TableRowElement extends HtmlElement {
- @DomName('HTMLTableRowElement.cells')
- List<TableCellElement> get cells =>
- new _WrappedList<TableCellElement>(_cells);
-
- TableCellElement addCell() {
- return insertCell(-1);
- }
-
- TableCellElement insertCell(int index) => _insertCell(index);
-
- DocumentFragment createFragment(String html,
- {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {
- if (Range.supportsCreateContextualFragment) {
- return super.createFragment(html,
- validator: validator, treeSanitizer: treeSanitizer);
- }
- // IE9 workaround which does not support innerHTML on Table elements.
- var fragment = new DocumentFragment();
- var section = new TableElement()
- .createFragment(html,
- validator: validator, treeSanitizer: treeSanitizer)
- .nodes
- .single;
- var row = section.nodes.single;
- fragment.nodes.addAll(row.nodes);
- return fragment;
- }
-
- // To suppress missing implicit constructor warnings.
- factory TableRowElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLTableRowElement.HTMLTableRowElement')
- @DocsEditable()
- factory TableRowElement() => JS(
- 'returns:TableRowElement;creates:TableRowElement;new:true',
- '#.createElement(#)',
- document,
- "tr");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- TableRowElement.created() : super.created();
-
- @JSName('cells')
- @DomName('HTMLTableRowElement.cells')
- @DocsEditable()
- @Returns('HtmlCollection|Null')
- @Creates('HtmlCollection')
- final List<Node> _cells;
-
- @DomName('HTMLTableRowElement.rowIndex')
- @DocsEditable()
- final int rowIndex;
-
- @DomName('HTMLTableRowElement.sectionRowIndex')
- @DocsEditable()
- final int sectionRowIndex;
-
- @DomName('HTMLTableRowElement.deleteCell')
- @DocsEditable()
- void deleteCell(int index) native;
-
- @JSName('insertCell')
- @DomName('HTMLTableRowElement.insertCell')
- @DocsEditable()
- HtmlElement _insertCell([int index]) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLTableSectionElement')
-@Native("HTMLTableSectionElement")
-class TableSectionElement extends HtmlElement {
- @DomName('HTMLTableSectionElement.rows')
- List<TableRowElement> get rows => new _WrappedList<TableRowElement>(_rows);
-
- TableRowElement addRow() {
- return insertRow(-1);
- }
-
- TableRowElement insertRow(int index) => _insertRow(index);
-
- DocumentFragment createFragment(String html,
- {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {
- if (Range.supportsCreateContextualFragment) {
- return super.createFragment(html,
- validator: validator, treeSanitizer: treeSanitizer);
- }
- // IE9 workaround which does not support innerHTML on Table elements.
- var fragment = new DocumentFragment();
- var section = new TableElement()
- .createFragment(html,
- validator: validator, treeSanitizer: treeSanitizer)
- .nodes
- .single;
- fragment.nodes.addAll(section.nodes);
- return fragment;
- }
-
- // To suppress missing implicit constructor warnings.
- factory TableSectionElement._() {
- throw new UnsupportedError("Not supported");
- }
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- TableSectionElement.created() : super.created();
-
- @JSName('rows')
- @DomName('HTMLTableSectionElement.rows')
- @DocsEditable()
- @Returns('HtmlCollection|Null')
- @Creates('HtmlCollection')
- final List<Node> _rows;
-
- @DomName('HTMLTableSectionElement.deleteRow')
- @DocsEditable()
- void deleteRow(int index) native;
-
- @JSName('insertRow')
- @DomName('HTMLTableSectionElement.insertRow')
- @DocsEditable()
- HtmlElement _insertRow([int index]) native;
-}
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@Experimental()
-@DomName('HTMLTemplateElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@Experimental()
-// https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/templates/index.html#template-element
-@Native("HTMLTemplateElement")
-class TemplateElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory TemplateElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLTemplateElement.HTMLTemplateElement')
- @DocsEditable()
- factory TemplateElement() => document.createElement("template");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- TemplateElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported => Element.isTagSupported('template');
-
- @DomName('HTMLTemplateElement.content')
- @DocsEditable()
- final DocumentFragment content;
-
- /**
- * An override to place the contents into content rather than as child nodes.
- *
- * See also:
- *
- * * <https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/templates/index.html#innerhtml-on-templates>
- */
- void setInnerHtml(String html,
- {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {
- text = null;
- var fragment = createFragment(html,
- validator: validator, treeSanitizer: treeSanitizer);
-
- content.append(fragment);
- }
-}
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('Text')
-@Native("Text")
-class Text extends CharacterData {
- factory Text(String data) => JS(
- 'returns:Text;depends:none;effects:none;new:true',
- '#.createTextNode(#)',
- document,
- data);
- // To suppress missing implicit constructor warnings.
- factory Text._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('Text.assignedSlot')
- @DocsEditable()
- @Experimental() // untriaged
- final SlotElement assignedSlot;
-
- @DomName('Text.wholeText')
- @DocsEditable()
- final String wholeText;
-
- @DomName('Text.getDestinationInsertionPoints')
- @DocsEditable()
- @Experimental() // untriaged
- @Returns('NodeList|Null')
- @Creates('NodeList')
- List<Node> getDestinationInsertionPoints() native;
-
- @DomName('Text.splitText')
- @DocsEditable()
- Text splitText(int offset) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLTextAreaElement')
-@Native("HTMLTextAreaElement")
-class TextAreaElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory TextAreaElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLTextAreaElement.HTMLTextAreaElement')
- @DocsEditable()
- factory TextAreaElement() => JS(
- 'returns:TextAreaElement;creates:TextAreaElement;new:true',
- '#.createElement(#)',
- document,
- "textarea");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- TextAreaElement.created() : super.created();
-
- @DomName('HTMLTextAreaElement.autocapitalize')
- @DocsEditable()
- @Experimental() // untriaged
- String autocapitalize;
-
- @DomName('HTMLTextAreaElement.autofocus')
- @DocsEditable()
- bool autofocus;
-
- @DomName('HTMLTextAreaElement.cols')
- @DocsEditable()
- int cols;
-
- @DomName('HTMLTextAreaElement.defaultValue')
- @DocsEditable()
- String defaultValue;
-
- @DomName('HTMLTextAreaElement.dirName')
- @DocsEditable()
- // http://www.whatwg.org/specs/web-apps/current-work/multipage/the-button-element.html#dom-textarea-dirname
- @Experimental()
- String dirName;
-
- @DomName('HTMLTextAreaElement.disabled')
- @DocsEditable()
- bool disabled;
-
- @DomName('HTMLTextAreaElement.form')
- @DocsEditable()
- final FormElement form;
-
- @DomName('HTMLTextAreaElement.inputMode')
- @DocsEditable()
- @Experimental() // untriaged
- String inputMode;
-
- @DomName('HTMLTextAreaElement.labels')
- @DocsEditable()
- @Unstable()
- @Returns('NodeList|Null')
- @Creates('NodeList')
- final List<Node> labels;
-
- @DomName('HTMLTextAreaElement.maxLength')
- @DocsEditable()
- int maxLength;
-
- @DomName('HTMLTextAreaElement.minLength')
- @DocsEditable()
- @Experimental() // untriaged
- int minLength;
-
- @DomName('HTMLTextAreaElement.name')
- @DocsEditable()
- String name;
-
- @DomName('HTMLTextAreaElement.placeholder')
- @DocsEditable()
- String placeholder;
-
- @DomName('HTMLTextAreaElement.readOnly')
- @DocsEditable()
- bool readOnly;
-
- @DomName('HTMLTextAreaElement.required')
- @DocsEditable()
- bool required;
-
- @DomName('HTMLTextAreaElement.rows')
- @DocsEditable()
- int rows;
-
- @DomName('HTMLTextAreaElement.selectionDirection')
- @DocsEditable()
- String selectionDirection;
-
- @DomName('HTMLTextAreaElement.selectionEnd')
- @DocsEditable()
- int selectionEnd;
-
- @DomName('HTMLTextAreaElement.selectionStart')
- @DocsEditable()
- int selectionStart;
-
- @DomName('HTMLTextAreaElement.textLength')
- @DocsEditable()
- final int textLength;
-
- @DomName('HTMLTextAreaElement.type')
- @DocsEditable()
- final String type;
-
- @DomName('HTMLTextAreaElement.validationMessage')
- @DocsEditable()
- final String validationMessage;
-
- @DomName('HTMLTextAreaElement.validity')
- @DocsEditable()
- final ValidityState validity;
-
- @DomName('HTMLTextAreaElement.value')
- @DocsEditable()
- String value;
-
- @DomName('HTMLTextAreaElement.willValidate')
- @DocsEditable()
- final bool willValidate;
-
- @DomName('HTMLTextAreaElement.wrap')
- @DocsEditable()
- String wrap;
-
- @DomName('HTMLTextAreaElement.checkValidity')
- @DocsEditable()
- bool checkValidity() native;
-
- @DomName('HTMLTextAreaElement.reportValidity')
- @DocsEditable()
- @Experimental() // untriaged
- bool reportValidity() native;
-
- @DomName('HTMLTextAreaElement.select')
- @DocsEditable()
- void select() native;
-
- @DomName('HTMLTextAreaElement.setCustomValidity')
- @DocsEditable()
- void setCustomValidity(String error) native;
-
- @DomName('HTMLTextAreaElement.setRangeText')
- @DocsEditable()
- // http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#dom-textarea/input-setrangetext
- @Experimental()
- void setRangeText(String replacement,
- {int start, int end, String selectionMode}) native;
-
- @DomName('HTMLTextAreaElement.setSelectionRange')
- @DocsEditable()
- void setSelectionRange(int start, int end, [String direction]) native;
-}
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('TextEvent')
-@Unstable()
-@Native("TextEvent")
-class TextEvent extends UIEvent {
- factory TextEvent(String type,
- {bool canBubble: false,
- bool cancelable: false,
- Window view,
- String data}) {
- if (view == null) {
- view = window;
- }
- TextEvent e = document._createEvent("TextEvent");
- e._initTextEvent(type, canBubble, cancelable, view, data);
- return e;
- }
- // To suppress missing implicit constructor warnings.
- factory TextEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('TextEvent.data')
- @DocsEditable()
- final String data;
-
- @JSName('initTextEvent')
- @DomName('TextEvent.initTextEvent')
- @DocsEditable()
- void _initTextEvent(String type, bool bubbles, bool cancelable, Window view,
- String data) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('TextMetrics')
-@Native("TextMetrics")
-class TextMetrics extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory TextMetrics._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('TextMetrics.actualBoundingBoxAscent')
- @DocsEditable()
- @Experimental() // untriaged
- final double actualBoundingBoxAscent;
-
- @DomName('TextMetrics.actualBoundingBoxDescent')
- @DocsEditable()
- @Experimental() // untriaged
- final double actualBoundingBoxDescent;
-
- @DomName('TextMetrics.actualBoundingBoxLeft')
- @DocsEditable()
- @Experimental() // untriaged
- final double actualBoundingBoxLeft;
-
- @DomName('TextMetrics.actualBoundingBoxRight')
- @DocsEditable()
- @Experimental() // untriaged
- final double actualBoundingBoxRight;
-
- @DomName('TextMetrics.alphabeticBaseline')
- @DocsEditable()
- @Experimental() // untriaged
- final double alphabeticBaseline;
-
- @DomName('TextMetrics.emHeightAscent')
- @DocsEditable()
- @Experimental() // untriaged
- final double emHeightAscent;
-
- @DomName('TextMetrics.emHeightDescent')
- @DocsEditable()
- @Experimental() // untriaged
- final double emHeightDescent;
-
- @DomName('TextMetrics.fontBoundingBoxAscent')
- @DocsEditable()
- @Experimental() // untriaged
- final double fontBoundingBoxAscent;
-
- @DomName('TextMetrics.fontBoundingBoxDescent')
- @DocsEditable()
- @Experimental() // untriaged
- final double fontBoundingBoxDescent;
-
- @DomName('TextMetrics.hangingBaseline')
- @DocsEditable()
- @Experimental() // untriaged
- final double hangingBaseline;
-
- @DomName('TextMetrics.ideographicBaseline')
- @DocsEditable()
- @Experimental() // untriaged
- final double ideographicBaseline;
-
- @DomName('TextMetrics.width')
- @DocsEditable()
- final double width;
-}
-// 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.
-
-@DocsEditable()
-@DomName('TextTrack')
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#texttrack
-@Experimental()
-@Native("TextTrack")
-class TextTrack extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory TextTrack._() {
- throw new UnsupportedError("Not supported");
- }
-
- /**
- * Static factory designed to expose `cuechange` events to event
- * handlers that are not necessarily instances of [TextTrack].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('TextTrack.cuechangeEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> cueChangeEvent =
- const EventStreamProvider<Event>('cuechange');
-
- @DomName('TextTrack.activeCues')
- @DocsEditable()
- final TextTrackCueList activeCues;
-
- @DomName('TextTrack.cues')
- @DocsEditable()
- final TextTrackCueList cues;
-
- @DomName('TextTrack.id')
- @DocsEditable()
- @Experimental() // untriaged
- final String id;
-
- @DomName('TextTrack.kind')
- @DocsEditable()
- final String kind;
-
- @DomName('TextTrack.label')
- @DocsEditable()
- final String label;
-
- @DomName('TextTrack.language')
- @DocsEditable()
- final String language;
-
- @DomName('TextTrack.mode')
- @DocsEditable()
- String mode;
-
- @DomName('TextTrack.regions')
- @DocsEditable()
- @Experimental() // untriaged
- final VttRegionList regions;
-
- @DomName('TextTrack.addCue')
- @DocsEditable()
- void addCue(TextTrackCue cue) native;
-
- @DomName('TextTrack.addRegion')
- @DocsEditable()
- @Experimental() // untriaged
- void addRegion(VttRegion region) native;
-
- @DomName('TextTrack.removeCue')
- @DocsEditable()
- void removeCue(TextTrackCue cue) native;
-
- @DomName('TextTrack.removeRegion')
- @DocsEditable()
- @Experimental() // untriaged
- void removeRegion(VttRegion region) native;
-
- /// Stream of `cuechange` events handled by this [TextTrack].
- @DomName('TextTrack.oncuechange')
- @DocsEditable()
- Stream<Event> get onCueChange => cueChangeEvent.forTarget(this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('TextTrackCue')
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#texttrackcue
-@Experimental()
-@Native("TextTrackCue")
-class TextTrackCue extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory TextTrackCue._() {
- throw new UnsupportedError("Not supported");
- }
-
- /**
- * Static factory designed to expose `enter` events to event
- * handlers that are not necessarily instances of [TextTrackCue].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('TextTrackCue.enterEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> enterEvent =
- const EventStreamProvider<Event>('enter');
-
- /**
- * Static factory designed to expose `exit` events to event
- * handlers that are not necessarily instances of [TextTrackCue].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('TextTrackCue.exitEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> exitEvent =
- const EventStreamProvider<Event>('exit');
-
- @DomName('TextTrackCue.endTime')
- @DocsEditable()
- num endTime;
-
- @DomName('TextTrackCue.id')
- @DocsEditable()
- String id;
-
- @DomName('TextTrackCue.pauseOnExit')
- @DocsEditable()
- bool pauseOnExit;
-
- @DomName('TextTrackCue.startTime')
- @DocsEditable()
- num startTime;
-
- @DomName('TextTrackCue.track')
- @DocsEditable()
- final TextTrack track;
-
- /// Stream of `enter` events handled by this [TextTrackCue].
- @DomName('TextTrackCue.onenter')
- @DocsEditable()
- Stream<Event> get onEnter => enterEvent.forTarget(this);
-
- /// Stream of `exit` events handled by this [TextTrackCue].
- @DomName('TextTrackCue.onexit')
- @DocsEditable()
- Stream<Event> get onExit => exitEvent.forTarget(this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('TextTrackCueList')
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#texttrackcuelist
-@Experimental()
-@Native("TextTrackCueList")
-class TextTrackCueList extends Interceptor
- with ListMixin<TextTrackCue>, ImmutableListMixin<TextTrackCue>
- implements List<TextTrackCue>, JavaScriptIndexingBehavior<TextTrackCue> {
- // To suppress missing implicit constructor warnings.
- factory TextTrackCueList._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('TextTrackCueList.length')
- @DocsEditable()
- int get length => JS("int", "#.length", this);
-
- TextTrackCue operator [](int index) {
- if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
- throw new RangeError.index(index, this);
- return JS("TextTrackCue", "#[#]", this, index);
- }
-
- void operator []=(int index, TextTrackCue value) {
- throw new UnsupportedError("Cannot assign element of immutable List.");
- }
- // -- start List<TextTrackCue> mixins.
- // TextTrackCue is the element type.
-
- set length(int value) {
- throw new UnsupportedError("Cannot resize immutable List.");
- }
-
- TextTrackCue get first {
- if (this.length > 0) {
- return JS('TextTrackCue', '#[0]', this);
- }
- throw new StateError("No elements");
- }
-
- TextTrackCue get last {
- int len = this.length;
- if (len > 0) {
- return JS('TextTrackCue', '#[#]', this, len - 1);
- }
- throw new StateError("No elements");
- }
-
- TextTrackCue get single {
- int len = this.length;
- if (len == 1) {
- return JS('TextTrackCue', '#[0]', this);
- }
- if (len == 0) throw new StateError("No elements");
- throw new StateError("More than one element");
- }
-
- TextTrackCue elementAt(int index) => this[index];
- // -- end List<TextTrackCue> mixins.
-
- @DomName('TextTrackCueList.__getter__')
- @DocsEditable()
- @Experimental() // untriaged
- TextTrackCue __getter__(int index) native;
-
- @DomName('TextTrackCueList.getCueById')
- @DocsEditable()
- TextTrackCue getCueById(String id) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('TextTrackList')
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#texttracklist
-@Experimental()
-@Native("TextTrackList")
-class TextTrackList extends EventTarget
- with ListMixin<TextTrack>, ImmutableListMixin<TextTrack>
- implements List<TextTrack>, JavaScriptIndexingBehavior<TextTrack> {
- // To suppress missing implicit constructor warnings.
- factory TextTrackList._() {
- throw new UnsupportedError("Not supported");
- }
-
- /**
- * Static factory designed to expose `addtrack` events to event
- * handlers that are not necessarily instances of [TextTrackList].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('TextTrackList.addtrackEvent')
- @DocsEditable()
- static const EventStreamProvider<TrackEvent> addTrackEvent =
- const EventStreamProvider<TrackEvent>('addtrack');
-
- @DomName('TextTrackList.changeEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> changeEvent =
- const EventStreamProvider<Event>('change');
-
- @DomName('TextTrackList.length')
- @DocsEditable()
- int get length => JS("int", "#.length", this);
-
- TextTrack operator [](int index) {
- if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
- throw new RangeError.index(index, this);
- return JS("TextTrack", "#[#]", this, index);
- }
-
- void operator []=(int index, TextTrack value) {
- throw new UnsupportedError("Cannot assign element of immutable List.");
- }
- // -- start List<TextTrack> mixins.
- // TextTrack is the element type.
-
- set length(int value) {
- throw new UnsupportedError("Cannot resize immutable List.");
- }
-
- TextTrack get first {
- if (this.length > 0) {
- return JS('TextTrack', '#[0]', this);
- }
- throw new StateError("No elements");
- }
-
- TextTrack get last {
- int len = this.length;
- if (len > 0) {
- return JS('TextTrack', '#[#]', this, len - 1);
- }
- throw new StateError("No elements");
- }
-
- TextTrack get single {
- int len = this.length;
- if (len == 1) {
- return JS('TextTrack', '#[0]', this);
- }
- if (len == 0) throw new StateError("No elements");
- throw new StateError("More than one element");
- }
-
- TextTrack elementAt(int index) => this[index];
- // -- end List<TextTrack> mixins.
-
- @DomName('TextTrackList.__getter__')
- @DocsEditable()
- @Experimental() // untriaged
- TextTrack __getter__(int index) native;
-
- @DomName('TextTrackList.getTrackById')
- @DocsEditable()
- @Experimental() // untriaged
- TextTrack getTrackById(String id) native;
-
- /// Stream of `addtrack` events handled by this [TextTrackList].
- @DomName('TextTrackList.onaddtrack')
- @DocsEditable()
- Stream<TrackEvent> get onAddTrack => addTrackEvent.forTarget(this);
-
- @DomName('TextTrackList.onchange')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onChange => changeEvent.forTarget(this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('TimeRanges')
-@Unstable()
-@Native("TimeRanges")
-class TimeRanges extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory TimeRanges._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('TimeRanges.length')
- @DocsEditable()
- final int length;
-
- @DomName('TimeRanges.end')
- @DocsEditable()
- double end(int index) native;
-
- @DomName('TimeRanges.start')
- @DocsEditable()
- double start(int index) native;
-}
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('TimeoutHandler')
-typedef void TimeoutHandler();
-// 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.
-
-@DocsEditable()
-@DomName('HTMLTitleElement')
-@Native("HTMLTitleElement")
-class TitleElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory TitleElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLTitleElement.HTMLTitleElement')
- @DocsEditable()
- factory TitleElement() => JS(
- 'returns:TitleElement;creates:TitleElement;new:true',
- '#.createElement(#)',
- document,
- "title");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- TitleElement.created() : super.created();
-}
-// 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.
-
-@DocsEditable()
-@DomName('Touch')
-// http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-@Experimental()
-@Native("Touch")
-class Touch extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory Touch._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('Touch.Touch')
- @DocsEditable()
- factory Touch(Map initDict) {
- var initDict_1 = convertDartToNative_Dictionary(initDict);
- return Touch._create_1(initDict_1);
- }
- static Touch _create_1(initDict) => JS('Touch', 'new Touch(#)', initDict);
-
- @JSName('clientX')
- @DomName('Touch.clientX')
- @DocsEditable()
- final double _clientX;
-
- @JSName('clientY')
- @DomName('Touch.clientY')
- @DocsEditable()
- final double _clientY;
-
- @DomName('Touch.force')
- @DocsEditable()
- @Experimental() // untriaged
- final double force;
-
- @DomName('Touch.identifier')
- @DocsEditable()
- final int identifier;
-
- @JSName('pageX')
- @DomName('Touch.pageX')
- @DocsEditable()
- final double _pageX;
-
- @JSName('pageY')
- @DomName('Touch.pageY')
- @DocsEditable()
- final double _pageY;
-
- @JSName('radiusX')
- @DomName('Touch.radiusX')
- @DocsEditable()
- @Experimental() // untriaged
- final double _radiusX;
-
- @JSName('radiusY')
- @DomName('Touch.radiusY')
- @DocsEditable()
- @Experimental() // untriaged
- final double _radiusY;
-
- @DomName('Touch.region')
- @DocsEditable()
- @Experimental() // untriaged
- final String region;
-
- @DomName('Touch.rotationAngle')
- @DocsEditable()
- @Experimental() // untriaged
- final double rotationAngle;
-
- @JSName('screenX')
- @DomName('Touch.screenX')
- @DocsEditable()
- final double _screenX;
-
- @JSName('screenY')
- @DomName('Touch.screenY')
- @DocsEditable()
- final double _screenY;
-
- @DomName('Touch.target')
- @DocsEditable()
- EventTarget get target => _convertNativeToDart_EventTarget(this._get_target);
- @JSName('target')
- @DomName('Touch.target')
- @DocsEditable()
- @Creates('Element|Document')
- @Returns('Element|Document')
- final dynamic _get_target;
-
-// As of Chrome 37, these all changed from long to double. This code
-// preserves backwards compatibility for the time being.
- int get __clientX => JS('num', '#.clientX', this).round();
- int get __clientY => JS('num', '#.clientY', this).round();
- int get __screenX => JS('num', '#.screenX', this).round();
- int get __screenY => JS('num', '#.screenY', this).round();
- int get __pageX => JS('num', '#.pageX', this).round();
- int get __pageY => JS('num', '#.pageY', this).round();
- int get __radiusX => JS('num', '#.radiusX', this).round();
- int get __radiusY => JS('num', '#.radiusY', this).round();
-
- @DomName('Touch.clientX')
- @DomName('Touch.clientY')
- Point get client => new Point/*<num>*/(__clientX, __clientY);
-
- @DomName('Touch.pageX')
- @DomName('Touch.pageY')
- Point get page => new Point/*<num>*/(__pageX, __pageY);
-
- @DomName('Touch.screenX')
- @DomName('Touch.screenY')
- Point get screen => new Point/*<num>*/(__screenX, __screenY);
-
- @DomName('Touch.radiusX')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- int get radiusX => __radiusX;
-
- @DomName('Touch.radiusY')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- int get radiusY => __radiusY;
-}
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('TouchEvent')
-// http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-@Experimental()
-@Native("TouchEvent")
-class TouchEvent extends UIEvent {
- factory TouchEvent(TouchList touches, TouchList targetTouches,
- TouchList changedTouches, String type,
- {Window view,
- int screenX: 0,
- int screenY: 0,
- int clientX: 0,
- int clientY: 0,
- bool ctrlKey: false,
- bool altKey: false,
- bool shiftKey: false,
- bool metaKey: false}) {
- if (view == null) {
- view = window;
- }
- TouchEvent e = document._createEvent("TouchEvent");
- e._initTouchEvent(touches, targetTouches, changedTouches, type, view,
- screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey);
- return e;
- }
- // To suppress missing implicit constructor warnings.
- factory TouchEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('TouchEvent.altKey')
- @DocsEditable()
- final bool altKey;
-
- @DomName('TouchEvent.changedTouches')
- @DocsEditable()
- final TouchList changedTouches;
-
- @DomName('TouchEvent.ctrlKey')
- @DocsEditable()
- final bool ctrlKey;
-
- @DomName('TouchEvent.metaKey')
- @DocsEditable()
- final bool metaKey;
-
- @DomName('TouchEvent.shiftKey')
- @DocsEditable()
- final bool shiftKey;
-
- @DomName('TouchEvent.targetTouches')
- @DocsEditable()
- final TouchList targetTouches;
-
- @DomName('TouchEvent.touches')
- @DocsEditable()
- final TouchList touches;
-
- @JSName('initTouchEvent')
- @DomName('TouchEvent.initTouchEvent')
- @DocsEditable()
- void _initTouchEvent(
- TouchList touches,
- TouchList targetTouches,
- TouchList changedTouches,
- String type,
- Window view,
- int unused1,
- int unused2,
- int unused3,
- int unused4,
- bool ctrlKey,
- bool altKey,
- bool shiftKey,
- bool metaKey) native;
-
- /**
- * Checks if touch events supported on the current platform.
- *
- * Note that touch events are only supported if the user is using a touch
- * device.
- */
- static bool get supported => Device.isEventTypeSupported('TouchEvent');
-}
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('TouchList')
-// http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
-@Experimental()
-@Native("TouchList")
-class TouchList extends Interceptor
- with ListMixin<Touch>, ImmutableListMixin<Touch>
- implements JavaScriptIndexingBehavior<Touch>, List<Touch> {
- /// NB: This constructor likely does not work as you might expect it to! This
- /// constructor will simply fail (returning null) if you are not on a device
- /// with touch enabled. See dartbug.com/8314.
- // TODO(5760): createTouchList now uses varargs.
- factory TouchList() => null; //document._createTouchList();
- // To suppress missing implicit constructor warnings.
- factory TouchList._() {
- throw new UnsupportedError("Not supported");
- }
-
- /// Checks if this type is supported on the current platform.
- static bool get supported => JS('bool', '!!document.createTouchList');
-
- @DomName('TouchList.length')
- @DocsEditable()
- int get length => JS("int", "#.length", this);
-
- Touch operator [](int index) {
- if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
- throw new RangeError.index(index, this);
- return JS("Touch", "#[#]", this, index);
- }
-
- void operator []=(int index, Touch value) {
- throw new UnsupportedError("Cannot assign element of immutable List.");
- }
- // -- start List<Touch> mixins.
- // Touch is the element type.
-
- set length(int value) {
- throw new UnsupportedError("Cannot resize immutable List.");
- }
-
- Touch get first {
- if (this.length > 0) {
- return JS('Touch', '#[0]', this);
- }
- throw new StateError("No elements");
- }
-
- Touch get last {
- int len = this.length;
- if (len > 0) {
- return JS('Touch', '#[#]', this, len - 1);
- }
- throw new StateError("No elements");
- }
-
- Touch get single {
- int len = this.length;
- if (len == 1) {
- return JS('Touch', '#[0]', this);
- }
- if (len == 0) throw new StateError("No elements");
- throw new StateError("More than one element");
- }
-
- Touch elementAt(int index) => this[index];
- // -- end List<Touch> mixins.
-
- @DomName('TouchList.item')
- @DocsEditable()
- Touch item(int index) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('TrackDefault')
-@Experimental() // untriaged
-@Native("TrackDefault")
-class TrackDefault extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory TrackDefault._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('TrackDefault.TrackDefault')
- @DocsEditable()
- factory TrackDefault(
- String type, String language, String label, List<String> kinds,
- [String byteStreamTrackID]) {
- if (byteStreamTrackID != null) {
- List kinds_1 = convertDartToNative_StringArray(kinds);
- return TrackDefault._create_1(
- type, language, label, kinds_1, byteStreamTrackID);
- }
- List kinds_1 = convertDartToNative_StringArray(kinds);
- return TrackDefault._create_2(type, language, label, kinds_1);
- }
- static TrackDefault _create_1(
- type, language, label, kinds, byteStreamTrackID) =>
- JS('TrackDefault', 'new TrackDefault(#,#,#,#,#)', type, language, label,
- kinds, byteStreamTrackID);
- static TrackDefault _create_2(type, language, label, kinds) => JS(
- 'TrackDefault',
- 'new TrackDefault(#,#,#,#)',
- type,
- language,
- label,
- kinds);
-
- @DomName('TrackDefault.byteStreamTrackID')
- @DocsEditable()
- @Experimental() // untriaged
- final String byteStreamTrackID;
-
- @DomName('TrackDefault.kinds')
- @DocsEditable()
- @Experimental() // untriaged
- final List<String> kinds;
-
- @DomName('TrackDefault.label')
- @DocsEditable()
- @Experimental() // untriaged
- final String label;
-
- @DomName('TrackDefault.language')
- @DocsEditable()
- @Experimental() // untriaged
- final String language;
-
- @DomName('TrackDefault.type')
- @DocsEditable()
- @Experimental() // untriaged
- final String type;
-}
-// 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.
-
-@DocsEditable()
-@DomName('TrackDefaultList')
-@Experimental() // untriaged
-@Native("TrackDefaultList")
-class TrackDefaultList extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory TrackDefaultList._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('TrackDefaultList.TrackDefaultList')
- @DocsEditable()
- factory TrackDefaultList([List<TrackDefault> trackDefaults]) {
- if (trackDefaults != null) {
- return TrackDefaultList._create_1(trackDefaults);
- }
- return TrackDefaultList._create_2();
- }
- static TrackDefaultList _create_1(trackDefaults) =>
- JS('TrackDefaultList', 'new TrackDefaultList(#)', trackDefaults);
- static TrackDefaultList _create_2() =>
- JS('TrackDefaultList', 'new TrackDefaultList()');
-
- @DomName('TrackDefaultList.length')
- @DocsEditable()
- @Experimental() // untriaged
- final int length;
-
- @DomName('TrackDefaultList.item')
- @DocsEditable()
- @Experimental() // untriaged
- TrackDefault item(int index) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLTrackElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#the-track-element
-@Experimental()
-@Native("HTMLTrackElement")
-class TrackElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory TrackElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLTrackElement.HTMLTrackElement')
- @DocsEditable()
- factory TrackElement() => document.createElement("track");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- TrackElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported => Element.isTagSupported('track');
-
- @DomName('HTMLTrackElement.ERROR')
- @DocsEditable()
- static const int ERROR = 3;
-
- @DomName('HTMLTrackElement.LOADED')
- @DocsEditable()
- static const int LOADED = 2;
-
- @DomName('HTMLTrackElement.LOADING')
- @DocsEditable()
- static const int LOADING = 1;
-
- @DomName('HTMLTrackElement.NONE')
- @DocsEditable()
- static const int NONE = 0;
-
- @JSName('default')
- @DomName('HTMLTrackElement.default')
- @DocsEditable()
- bool defaultValue;
-
- @DomName('HTMLTrackElement.kind')
- @DocsEditable()
- String kind;
-
- @DomName('HTMLTrackElement.label')
- @DocsEditable()
- String label;
-
- @DomName('HTMLTrackElement.readyState')
- @DocsEditable()
- final int readyState;
-
- @DomName('HTMLTrackElement.src')
- @DocsEditable()
- String src;
-
- @DomName('HTMLTrackElement.srclang')
- @DocsEditable()
- String srclang;
-
- @DomName('HTMLTrackElement.track')
- @DocsEditable()
- final TextTrack track;
-}
-// 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.
-
-@DocsEditable()
-@DomName('TrackEvent')
-@Unstable()
-@Native("TrackEvent")
-class TrackEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory TrackEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('TrackEvent.TrackEvent')
- @DocsEditable()
- factory TrackEvent(String type, [Map eventInitDict]) {
- if (eventInitDict != null) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return TrackEvent._create_1(type, eventInitDict_1);
- }
- return TrackEvent._create_2(type);
- }
- static TrackEvent _create_1(type, eventInitDict) =>
- JS('TrackEvent', 'new TrackEvent(#,#)', type, eventInitDict);
- static TrackEvent _create_2(type) =>
- JS('TrackEvent', 'new TrackEvent(#)', type);
-
- @DomName('TrackEvent.track')
- @DocsEditable()
- @Creates('Null')
- final Object track;
-}
-// 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.
-
-@DocsEditable()
-@DomName('TransformComponent')
-@Experimental() // untriaged
-@Native("TransformComponent")
-class TransformComponent extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory TransformComponent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('TransformComponent.cssString')
- @DocsEditable()
- @Experimental() // untriaged
- final String cssString;
-
- @DomName('TransformComponent.asMatrix')
- @DocsEditable()
- @Experimental() // untriaged
- Matrix asMatrix() native;
-
- @DomName('TransformComponent.is2DComponent')
- @DocsEditable()
- @Experimental() // untriaged
- bool is2DComponent() native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('TransformValue')
-@Experimental() // untriaged
-@Native("TransformValue")
-class TransformValue extends StyleValue {
- // To suppress missing implicit constructor warnings.
- factory TransformValue._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('TransformValue.TransformValue')
- @DocsEditable()
- factory TransformValue([List<TransformComponent> transformComponents]) {
- if (transformComponents == null) {
- return TransformValue._create_1();
- }
- if ((transformComponents is List<TransformComponent>)) {
- return TransformValue._create_2(transformComponents);
- }
- throw new ArgumentError("Incorrect number or type of arguments");
- }
- static TransformValue _create_1() =>
- JS('TransformValue', 'new TransformValue()');
- static TransformValue _create_2(transformComponents) =>
- JS('TransformValue', 'new TransformValue(#)', transformComponents);
-
- @DomName('TransformValue.is2D')
- @DocsEditable()
- @Experimental() // untriaged
- bool is2D() native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('TransitionEvent')
-@Native("TransitionEvent,WebKitTransitionEvent")
-class TransitionEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory TransitionEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('TransitionEvent.TransitionEvent')
- @DocsEditable()
- factory TransitionEvent(String type, [Map eventInitDict]) {
- if (eventInitDict != null) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return TransitionEvent._create_1(type, eventInitDict_1);
- }
- return TransitionEvent._create_2(type);
- }
- static TransitionEvent _create_1(type, eventInitDict) =>
- JS('TransitionEvent', 'new TransitionEvent(#,#)', type, eventInitDict);
- static TransitionEvent _create_2(type) =>
- JS('TransitionEvent', 'new TransitionEvent(#)', type);
-
- @DomName('TransitionEvent.elapsedTime')
- @DocsEditable()
- final double elapsedTime;
-
- @DomName('TransitionEvent.propertyName')
- @DocsEditable()
- final String propertyName;
-
- @DomName('TransitionEvent.pseudoElement')
- @DocsEditable()
- final String pseudoElement;
-}
-// 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.
-
-@DocsEditable()
-@DomName('Translation')
-@Experimental() // untriaged
-@Native("Translation")
-class Translation extends TransformComponent {
- // To suppress missing implicit constructor warnings.
- factory Translation._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('Translation.Translation')
- @DocsEditable()
- factory Translation(LengthValue x, LengthValue y, [LengthValue z]) {
- if ((y is LengthValue) && (x is LengthValue) && z == null) {
- return Translation._create_1(x, y);
- }
- if ((z is LengthValue) && (y is LengthValue) && (x is LengthValue)) {
- return Translation._create_2(x, y, z);
- }
- throw new ArgumentError("Incorrect number or type of arguments");
- }
- static Translation _create_1(x, y) =>
- JS('Translation', 'new Translation(#,#)', x, y);
- static Translation _create_2(x, y, z) =>
- JS('Translation', 'new Translation(#,#,#)', x, y, z);
-
- @DomName('Translation.x')
- @DocsEditable()
- @Experimental() // untriaged
- final LengthValue x;
-
- @DomName('Translation.y')
- @DocsEditable()
- @Experimental() // untriaged
- final LengthValue y;
-
- @DomName('Translation.z')
- @DocsEditable()
- @Experimental() // untriaged
- final LengthValue z;
-}
-// 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.
-
-@DomName('TreeWalker')
-@Unstable()
-@Native("TreeWalker")
-class TreeWalker extends Interceptor {
- factory TreeWalker(Node root, int whatToShow) {
- return document._createTreeWalker(root, whatToShow, null);
- }
- // To suppress missing implicit constructor warnings.
- factory TreeWalker._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('TreeWalker.currentNode')
- @DocsEditable()
- Node currentNode;
-
- @DomName('TreeWalker.filter')
- @DocsEditable()
- final NodeFilter filter;
-
- @DomName('TreeWalker.root')
- @DocsEditable()
- final Node root;
-
- @DomName('TreeWalker.whatToShow')
- @DocsEditable()
- final int whatToShow;
-
- @DomName('TreeWalker.firstChild')
- @DocsEditable()
- Node firstChild() native;
-
- @DomName('TreeWalker.lastChild')
- @DocsEditable()
- Node lastChild() native;
-
- @DomName('TreeWalker.nextNode')
- @DocsEditable()
- Node nextNode() native;
-
- @DomName('TreeWalker.nextSibling')
- @DocsEditable()
- Node nextSibling() native;
-
- @DomName('TreeWalker.parentNode')
- @DocsEditable()
- Node parentNode() native;
-
- @DomName('TreeWalker.previousNode')
- @DocsEditable()
- Node previousNode() native;
-
- @DomName('TreeWalker.previousSibling')
- @DocsEditable()
- Node previousSibling() native;
-}
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('UIEvent')
-@Native("UIEvent")
-class UIEvent extends Event {
- // In JS, canBubble and cancelable are technically required parameters to
- // init*Event. In practice, though, if they aren't provided they simply
- // default to false (since that's Boolean(undefined)).
- //
- // Contrary to JS, we default canBubble and cancelable to true, since that's
- // what people want most of the time anyway.
- factory UIEvent(String type,
- {Window view,
- int detail: 0,
- bool canBubble: true,
- bool cancelable: true}) {
- if (view == null) {
- view = window;
- }
- UIEvent e = document._createEvent("UIEvent");
- e._initUIEvent(type, canBubble, cancelable, view, detail);
- return e;
- }
-
- @DomName('UIEvent.UIEvent')
- @DocsEditable()
- factory UIEvent._(String type, [Map eventInitDict]) {
- if (eventInitDict != null) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return UIEvent._create_1(type, eventInitDict_1);
- }
- return UIEvent._create_2(type);
- }
- static UIEvent _create_1(type, eventInitDict) =>
- JS('UIEvent', 'new UIEvent(#,#)', type, eventInitDict);
- static UIEvent _create_2(type) => JS('UIEvent', 'new UIEvent(#)', type);
-
- @DomName('UIEvent.detail')
- @DocsEditable()
- final int detail;
-
- @DomName('UIEvent.sourceCapabilities')
- @DocsEditable()
- @Experimental() // untriaged
- final InputDeviceCapabilities sourceCapabilities;
-
- @DomName('UIEvent.view')
- @DocsEditable()
- WindowBase get view => _convertNativeToDart_Window(this._get_view);
- @JSName('view')
- @DomName('UIEvent.view')
- @DocsEditable()
- @Creates('Window|=Object')
- @Returns('Window|=Object')
- final dynamic _get_view;
-
- @JSName('which')
- @DomName('UIEvent.which')
- @DocsEditable()
- @Unstable()
- final int _which;
-
- @JSName('initUIEvent')
- @DomName('UIEvent.initUIEvent')
- @DocsEditable()
- void _initUIEvent(String type, bool bubbles, bool cancelable, Window view,
- int detail) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLUListElement')
-@Native("HTMLUListElement")
-class UListElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory UListElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLUListElement.HTMLUListElement')
- @DocsEditable()
- factory UListElement() => JS(
- 'returns:UListElement;creates:UListElement;new:true',
- '#.createElement(#)',
- document,
- "ul");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- UListElement.created() : super.created();
-}
-// 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.
-
-@DocsEditable()
-@DomName('UnderlyingSourceBase')
-@Experimental() // untriaged
-@Native("UnderlyingSourceBase")
-class UnderlyingSourceBase extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory UnderlyingSourceBase._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('UnderlyingSourceBase.cancel')
- @DocsEditable()
- @Experimental() // untriaged
- Future cancel(Object reason) native;
-
- @DomName('UnderlyingSourceBase.pull')
- @DocsEditable()
- @Experimental() // untriaged
- Future pull() native;
-
- @DomName('UnderlyingSourceBase.start')
- @DocsEditable()
- @Experimental() // untriaged
- Future start(Object stream) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLUnknownElement')
-@Native("HTMLUnknownElement")
-class UnknownElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory UnknownElement._() {
- throw new UnsupportedError("Not supported");
- }
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- UnknownElement.created() : super.created();
-}
-// 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.
-
-@DomName('URL')
-@Native("URL")
-class Url extends Interceptor implements UrlUtils {
- static String createObjectUrl(blob_OR_source_OR_stream) => JS(
- 'String',
- '(self.URL || self.webkitURL).createObjectURL(#)',
- blob_OR_source_OR_stream);
-
- static String createObjectUrlFromSource(MediaSource source) =>
- JS('String', '(self.URL || self.webkitURL).createObjectURL(#)', source);
-
- static String createObjectUrlFromStream(MediaStream stream) =>
- JS('String', '(self.URL || self.webkitURL).createObjectURL(#)', stream);
-
- static String createObjectUrlFromBlob(Blob blob) =>
- JS('String', '(self.URL || self.webkitURL).createObjectURL(#)', blob);
-
- static void revokeObjectUrl(String url) =>
- JS('void', '(self.URL || self.webkitURL).revokeObjectURL(#)', url);
-
- @DomName('URL.toString')
- @DocsEditable()
- String toString() => JS('String', 'String(#)', this);
-
- // To suppress missing implicit constructor warnings.
- factory Url._() {
- throw new UnsupportedError("Not supported");
- }
-
- // From URLUtils
-
- @DomName('URL.hash')
- @DocsEditable()
- @Experimental() // untriaged
- String hash;
-
- @DomName('URL.host')
- @DocsEditable()
- @Experimental() // untriaged
- String host;
-
- @DomName('URL.hostname')
- @DocsEditable()
- @Experimental() // untriaged
- String hostname;
-
- @DomName('URL.href')
- @DocsEditable()
- @Experimental() // untriaged
- String href;
-
- @DomName('URL.origin')
- @DocsEditable()
- @Experimental() // untriaged
- final String origin;
-
- @DomName('URL.password')
- @DocsEditable()
- @Experimental() // untriaged
- String password;
-
- @DomName('URL.pathname')
- @DocsEditable()
- @Experimental() // untriaged
- String pathname;
-
- @DomName('URL.port')
- @DocsEditable()
- @Experimental() // untriaged
- String port;
-
- @DomName('URL.protocol')
- @DocsEditable()
- @Experimental() // untriaged
- String protocol;
-
- @DomName('URL.search')
- @DocsEditable()
- @Experimental() // untriaged
- String search;
-
- @DomName('URL.username')
- @DocsEditable()
- @Experimental() // untriaged
- String username;
-}
-// 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.
-
-@DocsEditable()
-@DomName('URLSearchParams')
-@Experimental() // untriaged
-@Native("URLSearchParams")
-class UrlSearchParams extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory UrlSearchParams._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('URLSearchParams.URLSearchParams')
- @DocsEditable()
- factory UrlSearchParams([Object init]) {
- if (init != null) {
- return UrlSearchParams._create_1(init);
- }
- return UrlSearchParams._create_2();
- }
- static UrlSearchParams _create_1(init) =>
- JS('UrlSearchParams', 'new URLSearchParams(#)', init);
- static UrlSearchParams _create_2() =>
- JS('UrlSearchParams', 'new URLSearchParams()');
-
- @DomName('URLSearchParams.append')
- @DocsEditable()
- @Experimental() // untriaged
- void append(String name, String value) native;
-
- @DomName('URLSearchParams.delete')
- @DocsEditable()
- @Experimental() // untriaged
- void delete(String name) native;
-
- @DomName('URLSearchParams.get')
- @DocsEditable()
- @Experimental() // untriaged
- String get(String name) native;
-
- @DomName('URLSearchParams.getAll')
- @DocsEditable()
- @Experimental() // untriaged
- List<String> getAll(String name) native;
-
- @DomName('URLSearchParams.has')
- @DocsEditable()
- @Experimental() // untriaged
- bool has(String name) native;
-
- @DomName('URLSearchParams.set')
- @DocsEditable()
- @Experimental() // untriaged
- void set(String name, String value) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('URLUtils')
-@Experimental() // untriaged
-abstract class UrlUtils extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory UrlUtils._() {
- throw new UnsupportedError("Not supported");
- }
-
- String hash;
-
- String host;
-
- String hostname;
-
- String href;
-
- final String origin;
-
- String password;
-
- String pathname;
-
- String port;
-
- String protocol;
-
- String search;
-
- String username;
-
- String toString();
-}
-// 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.
-
-@DocsEditable()
-@DomName('URLUtilsReadOnly')
-@Experimental() // untriaged
-abstract class UrlUtilsReadOnly extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory UrlUtilsReadOnly._() {
- throw new UnsupportedError("Not supported");
- }
-
- final String hash;
-
- final String host;
-
- final String hostname;
-
- final String href;
-
- final String origin;
-
- final String pathname;
-
- final String port;
-
- final String protocol;
-
- final String search;
-
- String toString();
-}
-// 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.
-
-@DocsEditable()
-@DomName('VRDevice')
-@Experimental() // untriaged
-@Native("VRDevice")
-class VRDevice extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory VRDevice._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('VRDevice.deviceId')
- @DocsEditable()
- @Experimental() // untriaged
- final String deviceId;
-
- @DomName('VRDevice.deviceName')
- @DocsEditable()
- @Experimental() // untriaged
- final String deviceName;
-
- @DomName('VRDevice.hardwareUnitId')
- @DocsEditable()
- @Experimental() // untriaged
- final String hardwareUnitId;
-}
-// 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.
-
-@DocsEditable()
-@DomName('VREyeParameters')
-@Experimental() // untriaged
-@Native("VREyeParameters")
-class VREyeParameters extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory VREyeParameters._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('VREyeParameters.currentFieldOfView')
- @DocsEditable()
- @Experimental() // untriaged
- final VRFieldOfView currentFieldOfView;
-
- @DomName('VREyeParameters.eyeTranslation')
- @DocsEditable()
- @Experimental() // untriaged
- final DomPoint eyeTranslation;
-
- @DomName('VREyeParameters.maximumFieldOfView')
- @DocsEditable()
- @Experimental() // untriaged
- final VRFieldOfView maximumFieldOfView;
-
- @DomName('VREyeParameters.minimumFieldOfView')
- @DocsEditable()
- @Experimental() // untriaged
- final VRFieldOfView minimumFieldOfView;
-
- @DomName('VREyeParameters.recommendedFieldOfView')
- @DocsEditable()
- @Experimental() // untriaged
- final VRFieldOfView recommendedFieldOfView;
-
- @DomName('VREyeParameters.renderRect')
- @DocsEditable()
- @Experimental() // untriaged
- final _DomRect renderRect;
-}
-// 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.
-
-@DocsEditable()
-@DomName('VRFieldOfView')
-@Experimental() // untriaged
-@Native("VRFieldOfView")
-class VRFieldOfView extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory VRFieldOfView._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('VRFieldOfView.VRFieldOfView')
- @DocsEditable()
- factory VRFieldOfView([Map fov]) {
- if (fov != null) {
- var fov_1 = convertDartToNative_Dictionary(fov);
- return VRFieldOfView._create_1(fov_1);
- }
- return VRFieldOfView._create_2();
- }
- static VRFieldOfView _create_1(fov) =>
- JS('VRFieldOfView', 'new VRFieldOfView(#)', fov);
- static VRFieldOfView _create_2() =>
- JS('VRFieldOfView', 'new VRFieldOfView()');
-
- @DomName('VRFieldOfView.downDegrees')
- @DocsEditable()
- @Experimental() // untriaged
- num downDegrees;
-
- @DomName('VRFieldOfView.leftDegrees')
- @DocsEditable()
- @Experimental() // untriaged
- num leftDegrees;
-
- @DomName('VRFieldOfView.rightDegrees')
- @DocsEditable()
- @Experimental() // untriaged
- num rightDegrees;
-
- @DomName('VRFieldOfView.upDegrees')
- @DocsEditable()
- @Experimental() // untriaged
- num upDegrees;
-}
-// 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.
-
-@DocsEditable()
-@DomName('VRPositionState')
-@Experimental() // untriaged
-@Native("VRPositionState")
-class VRPositionState extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory VRPositionState._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('VRPositionState.angularAcceleration')
- @DocsEditable()
- @Experimental() // untriaged
- final DomPoint angularAcceleration;
-
- @DomName('VRPositionState.angularVelocity')
- @DocsEditable()
- @Experimental() // untriaged
- final DomPoint angularVelocity;
-
- @DomName('VRPositionState.linearAcceleration')
- @DocsEditable()
- @Experimental() // untriaged
- final DomPoint linearAcceleration;
-
- @DomName('VRPositionState.linearVelocity')
- @DocsEditable()
- @Experimental() // untriaged
- final DomPoint linearVelocity;
-
- @DomName('VRPositionState.orientation')
- @DocsEditable()
- @Experimental() // untriaged
- final DomPoint orientation;
-
- @DomName('VRPositionState.position')
- @DocsEditable()
- @Experimental() // untriaged
- final DomPoint position;
-
- @DomName('VRPositionState.timeStamp')
- @DocsEditable()
- @Experimental() // untriaged
- final double timeStamp;
-}
-// 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.
-
-@DocsEditable()
-@DomName('ValidityState')
-@Native("ValidityState")
-class ValidityState extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory ValidityState._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('ValidityState.badInput')
- @DocsEditable()
- final bool badInput;
-
- @DomName('ValidityState.customError')
- @DocsEditable()
- final bool customError;
-
- @DomName('ValidityState.patternMismatch')
- @DocsEditable()
- final bool patternMismatch;
-
- @DomName('ValidityState.rangeOverflow')
- @DocsEditable()
- final bool rangeOverflow;
-
- @DomName('ValidityState.rangeUnderflow')
- @DocsEditable()
- final bool rangeUnderflow;
-
- @DomName('ValidityState.stepMismatch')
- @DocsEditable()
- final bool stepMismatch;
-
- @DomName('ValidityState.tooLong')
- @DocsEditable()
- final bool tooLong;
-
- @DomName('ValidityState.tooShort')
- @DocsEditable()
- @Experimental() // untriaged
- final bool tooShort;
-
- @DomName('ValidityState.typeMismatch')
- @DocsEditable()
- final bool typeMismatch;
-
- @DomName('ValidityState.valid')
- @DocsEditable()
- final bool valid;
-
- @DomName('ValidityState.valueMissing')
- @DocsEditable()
- final bool valueMissing;
-}
-// 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.
-
-@DomName('HTMLVideoElement')
-@Native("HTMLVideoElement")
-class VideoElement extends MediaElement implements CanvasImageSource {
- // To suppress missing implicit constructor warnings.
- factory VideoElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('HTMLVideoElement.HTMLVideoElement')
- @DocsEditable()
- factory VideoElement() => JS(
- 'returns:VideoElement;creates:VideoElement;new:true',
- '#.createElement(#)',
- document,
- "video");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- VideoElement.created() : super.created();
-
- @DomName('HTMLVideoElement.height')
- @DocsEditable()
- int height;
-
- @DomName('HTMLVideoElement.poster')
- @DocsEditable()
- String poster;
-
- @DomName('HTMLVideoElement.videoHeight')
- @DocsEditable()
- final int videoHeight;
-
- @DomName('HTMLVideoElement.videoWidth')
- @DocsEditable()
- final int videoWidth;
-
- @JSName('webkitDecodedFrameCount')
- @DomName('HTMLVideoElement.webkitDecodedFrameCount')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- final int decodedFrameCount;
-
- @JSName('webkitDroppedFrameCount')
- @DomName('HTMLVideoElement.webkitDroppedFrameCount')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- final int droppedFrameCount;
-
- @DomName('HTMLVideoElement.width')
- @DocsEditable()
- int width;
-
- @DomName('HTMLVideoElement.getVideoPlaybackQuality')
- @DocsEditable()
- @Experimental() // untriaged
- VideoPlaybackQuality getVideoPlaybackQuality() native;
-
- @JSName('webkitEnterFullscreen')
- @DomName('HTMLVideoElement.webkitEnterFullscreen')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- // https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html
- void enterFullscreen() native;
-
- @JSName('webkitExitFullscreen')
- @DomName('HTMLVideoElement.webkitExitFullscreen')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- // https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html#dom-document-exitfullscreen
- void exitFullscreen() native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('VideoPlaybackQuality')
-@Experimental() // untriaged
-@Native("VideoPlaybackQuality")
-class VideoPlaybackQuality extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory VideoPlaybackQuality._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('VideoPlaybackQuality.corruptedVideoFrames')
- @DocsEditable()
- @Experimental() // untriaged
- final int corruptedVideoFrames;
-
- @DomName('VideoPlaybackQuality.creationTime')
- @DocsEditable()
- @Experimental() // untriaged
- final double creationTime;
-
- @DomName('VideoPlaybackQuality.droppedVideoFrames')
- @DocsEditable()
- @Experimental() // untriaged
- final int droppedVideoFrames;
-
- @DomName('VideoPlaybackQuality.totalVideoFrames')
- @DocsEditable()
- @Experimental() // untriaged
- final int totalVideoFrames;
-}
-// 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.
-
-@DocsEditable()
-@DomName('VideoTrack')
-@Experimental() // untriaged
-@Native("VideoTrack")
-class VideoTrack extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory VideoTrack._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('VideoTrack.id')
- @DocsEditable()
- @Experimental() // untriaged
- final String id;
-
- @DomName('VideoTrack.kind')
- @DocsEditable()
- @Experimental() // untriaged
- final String kind;
-
- @DomName('VideoTrack.label')
- @DocsEditable()
- @Experimental() // untriaged
- final String label;
-
- @DomName('VideoTrack.language')
- @DocsEditable()
- @Experimental() // untriaged
- final String language;
-
- @DomName('VideoTrack.selected')
- @DocsEditable()
- @Experimental() // untriaged
- bool selected;
-}
-// 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.
-
-@DocsEditable()
-@DomName('VideoTrackList')
-@Experimental() // untriaged
-@Native("VideoTrackList")
-class VideoTrackList extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory VideoTrackList._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('VideoTrackList.changeEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> changeEvent =
- const EventStreamProvider<Event>('change');
-
- @DomName('VideoTrackList.length')
- @DocsEditable()
- @Experimental() // untriaged
- final int length;
-
- @DomName('VideoTrackList.selectedIndex')
- @DocsEditable()
- @Experimental() // untriaged
- final int selectedIndex;
-
- @DomName('VideoTrackList.__getter__')
- @DocsEditable()
- @Experimental() // untriaged
- VideoTrack __getter__(int index) native;
-
- @DomName('VideoTrackList.getTrackById')
- @DocsEditable()
- @Experimental() // untriaged
- VideoTrack getTrackById(String id) native;
-
- @DomName('VideoTrackList.onchange')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onChange => changeEvent.forTarget(this);
-}
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('VoidCallback')
-// http://www.w3.org/TR/file-system-api/#the-voidcallback-interface
-@Experimental()
-typedef void VoidCallback();
-// 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.
-
-@DocsEditable()
-@DomName('VTTCue')
-@Experimental() // untriaged
-@Native("VTTCue")
-class VttCue extends TextTrackCue {
- // To suppress missing implicit constructor warnings.
- factory VttCue._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('VTTCue.VTTCue')
- @DocsEditable()
- factory VttCue(num startTime, num endTime, String text) {
- return VttCue._create_1(startTime, endTime, text);
- }
- static VttCue _create_1(startTime, endTime, text) =>
- JS('VttCue', 'new VTTCue(#,#,#)', startTime, endTime, text);
-
- @DomName('VTTCue.align')
- @DocsEditable()
- @Experimental() // untriaged
- String align;
-
- @DomName('VTTCue.line')
- @DocsEditable()
- @Experimental() // untriaged
- @Creates('Null')
- @Returns('num|String')
- Object line;
-
- @DomName('VTTCue.position')
- @DocsEditable()
- @Experimental() // untriaged
- @Creates('Null')
- @Returns('num|String')
- Object position;
-
- @DomName('VTTCue.regionId')
- @DocsEditable()
- @Experimental() // untriaged
- String regionId;
-
- @DomName('VTTCue.size')
- @DocsEditable()
- @Experimental() // untriaged
- num size;
-
- @DomName('VTTCue.snapToLines')
- @DocsEditable()
- @Experimental() // untriaged
- bool snapToLines;
-
- @DomName('VTTCue.text')
- @DocsEditable()
- @Experimental() // untriaged
- String text;
-
- @DomName('VTTCue.vertical')
- @DocsEditable()
- @Experimental() // untriaged
- String vertical;
-
- @JSName('getCueAsHTML')
- @DomName('VTTCue.getCueAsHTML')
- @DocsEditable()
- @Experimental() // untriaged
- DocumentFragment getCueAsHtml() native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('VTTRegion')
-@Experimental() // untriaged
-@Native("VTTRegion")
-class VttRegion extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory VttRegion._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('VTTRegion.VTTRegion')
- @DocsEditable()
- factory VttRegion() {
- return VttRegion._create_1();
- }
- static VttRegion _create_1() => JS('VttRegion', 'new VTTRegion()');
-
- @DomName('VTTRegion.height')
- @DocsEditable()
- @Experimental() // untriaged
- int height;
-
- @DomName('VTTRegion.id')
- @DocsEditable()
- @Experimental() // untriaged
- String id;
-
- @DomName('VTTRegion.regionAnchorX')
- @DocsEditable()
- @Experimental() // untriaged
- num regionAnchorX;
-
- @DomName('VTTRegion.regionAnchorY')
- @DocsEditable()
- @Experimental() // untriaged
- num regionAnchorY;
-
- @DomName('VTTRegion.scroll')
- @DocsEditable()
- @Experimental() // untriaged
- String scroll;
-
- @DomName('VTTRegion.track')
- @DocsEditable()
- @Experimental() // untriaged
- final TextTrack track;
-
- @DomName('VTTRegion.viewportAnchorX')
- @DocsEditable()
- @Experimental() // untriaged
- num viewportAnchorX;
-
- @DomName('VTTRegion.viewportAnchorY')
- @DocsEditable()
- @Experimental() // untriaged
- num viewportAnchorY;
-
- @DomName('VTTRegion.width')
- @DocsEditable()
- @Experimental() // untriaged
- num width;
-}
-// 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.
-
-@DocsEditable()
-@DomName('VTTRegionList')
-@Experimental() // untriaged
-@Native("VTTRegionList")
-class VttRegionList extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory VttRegionList._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('VTTRegionList.length')
- @DocsEditable()
- @Experimental() // untriaged
- final int length;
-
- @DomName('VTTRegionList.getRegionById')
- @DocsEditable()
- @Experimental() // untriaged
- VttRegion getRegionById(String id) native;
-
- @DomName('VTTRegionList.item')
- @DocsEditable()
- @Experimental() // untriaged
- VttRegion item(int index) native;
-}
-// 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.
-
-@DocsEditable()
-/**
- * Use the WebSocket interface to connect to a WebSocket,
- * and to send and receive data on that WebSocket.
- *
- * To use a WebSocket in your web app, first create a WebSocket object,
- * passing the WebSocket URL as an argument to the constructor.
- *
- * var webSocket = new WebSocket('ws://127.0.0.1:1337/ws');
- *
- * To send data on the WebSocket, use the [send] method.
- *
- * if (webSocket != null && webSocket.readyState == WebSocket.OPEN) {
- * webSocket.send(data);
- * } else {
- * print('WebSocket not connected, message $data not sent');
- * }
- *
- * To receive data on the WebSocket, register a listener for message events.
- *
- * webSocket.onMessage.listen((MessageEvent e) {
- * receivedData(e.data);
- * });
- *
- * The message event handler receives a [MessageEvent] object
- * as its sole argument.
- * You can also define open, close, and error handlers,
- * as specified by [WebSocketEvents].
- *
- * For more information, see the
- * [WebSockets](http://www.dartlang.org/docs/library-tour/#html-websockets)
- * section of the library tour and
- * [Introducing WebSockets](http://www.html5rocks.com/en/tutorials/websockets/basics/),
- * an HTML5Rocks.com tutorial.
- */
-@DomName('WebSocket')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("WebSocket")
-class WebSocket extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory WebSocket._() {
- throw new UnsupportedError("Not supported");
- }
-
- /**
- * Static factory designed to expose `close` events to event
- * handlers that are not necessarily instances of [WebSocket].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('WebSocket.closeEvent')
- @DocsEditable()
- static const EventStreamProvider<CloseEvent> closeEvent =
- const EventStreamProvider<CloseEvent>('close');
-
- /**
- * Static factory designed to expose `error` events to event
- * handlers that are not necessarily instances of [WebSocket].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('WebSocket.errorEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> errorEvent =
- const EventStreamProvider<Event>('error');
-
- /**
- * Static factory designed to expose `message` events to event
- * handlers that are not necessarily instances of [WebSocket].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('WebSocket.messageEvent')
- @DocsEditable()
- static const EventStreamProvider<MessageEvent> messageEvent =
- const EventStreamProvider<MessageEvent>('message');
-
- /**
- * Static factory designed to expose `open` events to event
- * handlers that are not necessarily instances of [WebSocket].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('WebSocket.openEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> openEvent =
- const EventStreamProvider<Event>('open');
-
- @DomName('WebSocket.WebSocket')
- @DocsEditable()
- factory WebSocket(String url, [Object protocols]) {
- if (protocols != null) {
- return WebSocket._create_1(url, protocols);
- }
- return WebSocket._create_2(url);
- }
- static WebSocket _create_1(url, protocols) =>
- JS('WebSocket', 'new WebSocket(#,#)', url, protocols);
- static WebSocket _create_2(url) => JS('WebSocket', 'new WebSocket(#)', url);
-
- /// Checks if this type is supported on the current platform.
- static bool get supported =>
- JS('bool', 'typeof window.WebSocket != "undefined"');
-
- @DomName('WebSocket.CLOSED')
- @DocsEditable()
- static const int CLOSED = 3;
-
- @DomName('WebSocket.CLOSING')
- @DocsEditable()
- static const int CLOSING = 2;
-
- @DomName('WebSocket.CONNECTING')
- @DocsEditable()
- static const int CONNECTING = 0;
-
- @DomName('WebSocket.OPEN')
- @DocsEditable()
- static const int OPEN = 1;
-
- @DomName('WebSocket.binaryType')
- @DocsEditable()
- String binaryType;
-
- @DomName('WebSocket.bufferedAmount')
- @DocsEditable()
- final int bufferedAmount;
-
- @DomName('WebSocket.extensions')
- @DocsEditable()
- final String extensions;
-
- @DomName('WebSocket.protocol')
- @DocsEditable()
- final String protocol;
-
- @DomName('WebSocket.readyState')
- @DocsEditable()
- final int readyState;
-
- @DomName('WebSocket.url')
- @DocsEditable()
- final String url;
-
- @DomName('WebSocket.close')
- @DocsEditable()
- void close([int code, String reason]) native;
-
- /**
- * Transmit data to the server over this connection.
- *
- * This method accepts data of type [Blob], [ByteBuffer], [String], or
- * [TypedData]. Named variants [sendBlob], [sendByteBuffer], [sendString],
- * or [sendTypedData], in contrast, only accept data of the specified type.
- */
- @DomName('WebSocket.send')
- @DocsEditable()
- void send(data) native;
-
- @JSName('send')
- /**
- * Transmit data to the server over this connection.
- *
- * This method accepts data of type [Blob], [ByteBuffer], [String], or
- * [TypedData]. Named variants [sendBlob], [sendByteBuffer], [sendString],
- * or [sendTypedData], in contrast, only accept data of the specified type.
- */
- @DomName('WebSocket.send')
- @DocsEditable()
- void sendBlob(Blob data) native;
-
- @JSName('send')
- /**
- * Transmit data to the server over this connection.
- *
- * This method accepts data of type [Blob], [ByteBuffer], [String], or
- * [TypedData]. Named variants [sendBlob], [sendByteBuffer], [sendString],
- * or [sendTypedData], in contrast, only accept data of the specified type.
- */
- @DomName('WebSocket.send')
- @DocsEditable()
- void sendByteBuffer(ByteBuffer data) native;
-
- @JSName('send')
- /**
- * Transmit data to the server over this connection.
- *
- * This method accepts data of type [Blob], [ByteBuffer], [String], or
- * [TypedData]. Named variants [sendBlob], [sendByteBuffer], [sendString],
- * or [sendTypedData], in contrast, only accept data of the specified type.
- */
- @DomName('WebSocket.send')
- @DocsEditable()
- void sendString(String data) native;
-
- @JSName('send')
- /**
- * Transmit data to the server over this connection.
- *
- * This method accepts data of type [Blob], [ByteBuffer], [String], or
- * [TypedData]. Named variants [sendBlob], [sendByteBuffer], [sendString],
- * or [sendTypedData], in contrast, only accept data of the specified type.
- */
- @DomName('WebSocket.send')
- @DocsEditable()
- void sendTypedData(TypedData data) native;
-
- /// Stream of `close` events handled by this [WebSocket].
- @DomName('WebSocket.onclose')
- @DocsEditable()
- Stream<CloseEvent> get onClose => closeEvent.forTarget(this);
-
- /// Stream of `error` events handled by this [WebSocket].
- @DomName('WebSocket.onerror')
- @DocsEditable()
- Stream<Event> get onError => errorEvent.forTarget(this);
-
- /// Stream of `message` events handled by this [WebSocket].
- @DomName('WebSocket.onmessage')
- @DocsEditable()
- Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
-
- /// Stream of `open` events handled by this [WebSocket].
- @DomName('WebSocket.onopen')
- @DocsEditable()
- Stream<Event> get onOpen => openEvent.forTarget(this);
-}
-// 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.
-
-@DomName('WheelEvent')
-@Native("WheelEvent")
-class WheelEvent extends MouseEvent {
- factory WheelEvent(String type,
- {Window view,
- num deltaX: 0,
- num deltaY: 0,
- num deltaZ: 0,
- int deltaMode: 0,
- int detail: 0,
- int screenX: 0,
- int screenY: 0,
- int clientX: 0,
- int clientY: 0,
- int button: 0,
- bool canBubble: true,
- bool cancelable: true,
- bool ctrlKey: false,
- bool altKey: false,
- bool shiftKey: false,
- bool metaKey: false,
- EventTarget relatedTarget}) {
- var options = {
- 'view': view,
- 'deltaMode': deltaMode,
- 'deltaX': deltaX,
- 'deltaY': deltaY,
- 'deltaZ': deltaZ,
- 'detail': detail,
- 'screenX': screenX,
- 'screenY': screenY,
- 'clientX': clientX,
- 'clientY': clientY,
- 'button': button,
- 'bubbles': canBubble,
- 'cancelable': cancelable,
- 'ctrlKey': ctrlKey,
- 'altKey': altKey,
- 'shiftKey': shiftKey,
- 'metaKey': metaKey,
- 'relatedTarget': relatedTarget,
- };
-
- if (view == null) {
- view = window;
- }
-
- return JS('WheelEvent', 'new WheelEvent(#, #)', type,
- convertDartToNative_Dictionary(options));
- }
-
- @DomName('WheelEvent.WheelEvent')
- @DocsEditable()
- factory WheelEvent._(String type, [Map eventInitDict]) {
- if (eventInitDict != null) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return WheelEvent._create_1(type, eventInitDict_1);
- }
- return WheelEvent._create_2(type);
- }
- static WheelEvent _create_1(type, eventInitDict) =>
- JS('WheelEvent', 'new WheelEvent(#,#)', type, eventInitDict);
- static WheelEvent _create_2(type) =>
- JS('WheelEvent', 'new WheelEvent(#)', type);
-
- @DomName('WheelEvent.DOM_DELTA_LINE')
- @DocsEditable()
- static const int DOM_DELTA_LINE = 0x01;
-
- @DomName('WheelEvent.DOM_DELTA_PAGE')
- @DocsEditable()
- static const int DOM_DELTA_PAGE = 0x02;
-
- @DomName('WheelEvent.DOM_DELTA_PIXEL')
- @DocsEditable()
- static const int DOM_DELTA_PIXEL = 0x00;
-
- @JSName('deltaX')
- @DomName('WheelEvent.deltaX')
- @DocsEditable()
- final double _deltaX;
-
- @JSName('deltaY')
- @DomName('WheelEvent.deltaY')
- @DocsEditable()
- final double _deltaY;
-
- @DomName('WheelEvent.deltaZ')
- @DocsEditable()
- final double deltaZ;
-
- /**
- * The amount that is expected to scroll vertically, in units determined by
- * [deltaMode].
- *
- * See also:
- *
- * * [WheelEvent.deltaY](http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html#events-WheelEvent-deltaY) from the W3C.
- */
- @DomName('WheelEvent.deltaY')
- num get deltaY {
- if (JS('bool', '#.deltaY !== undefined', this)) {
- // W3C WheelEvent
- return this._deltaY;
- }
- throw new UnsupportedError('deltaY is not supported');
- }
-
- /**
- * The amount that is expected to scroll horizontally, in units determined by
- * [deltaMode].
- *
- * See also:
- *
- * * [WheelEvent.deltaX](http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html#events-WheelEvent-deltaX) from the W3C.
- */
- @DomName('WheelEvent.deltaX')
- num get deltaX {
- if (JS('bool', '#.deltaX !== undefined', this)) {
- // W3C WheelEvent
- return this._deltaX;
- }
- throw new UnsupportedError('deltaX is not supported');
- }
-
- @DomName('WheelEvent.deltaMode')
- int get deltaMode {
- if (JS('bool', '!!(#.deltaMode)', this)) {
- return JS('int', '#.deltaMode', this);
- }
- // If not available then we're poly-filling and doing pixel scroll.
- return 0;
- }
-
- num get _wheelDelta => JS('num', '#.wheelDelta', this);
- num get _wheelDeltaX => JS('num', '#.wheelDeltaX', this);
- num get _detail => JS('num', '#.detail', this);
-
- bool get _hasInitMouseScrollEvent =>
- JS('bool', '!!(#.initMouseScrollEvent)', this);
-
- @JSName('initMouseScrollEvent')
- void _initMouseScrollEvent(
- String type,
- bool canBubble,
- bool cancelable,
- Window view,
- int detail,
- int screenX,
- int screenY,
- int clientX,
- int clientY,
- bool ctrlKey,
- bool altKey,
- bool shiftKey,
- bool metaKey,
- int button,
- EventTarget relatedTarget,
- int axis) native;
-
- bool get _hasInitWheelEvent => JS('bool', '!!(#.initWheelEvent)', this);
- @JSName('initWheelEvent')
- void _initWheelEvent(
- String eventType,
- bool canBubble,
- bool cancelable,
- Window view,
- int detail,
- int screenX,
- int screenY,
- int clientX,
- int clientY,
- int button,
- EventTarget relatedTarget,
- String modifiersList,
- int deltaX,
- int deltaY,
- int deltaZ,
- int deltaMode) native;
-}
-// 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.
-
-@DocsEditable()
-/**
- * Top-level container for the current browser tab or window.
- *
- * In a web browser, each window has a [Window] object, but within the context
- * of a script, this object represents only the current window.
- * Each other window, tab, and iframe has its own [Window] object.
- *
- * Each window contains a [Document] object, which contains all of the window's
- * content.
- *
- * Use the top-level `window` object to access the current window.
- * For example:
- *
- * // Draw a scene when the window repaints.
- * drawScene(num delta) {...}
- * window.animationFrame.then(drawScene);.
- *
- * // Write to the console.
- * window.console.log('Jinkies!');
- * window.console.error('Jeepers!');
- *
- * **Note:** This class represents only the current window, while [WindowBase]
- * is a representation of any window, including other tabs, windows, and frames.
- *
- * ## See also
- *
- * * [WindowBase]
- *
- * ## Other resources
- *
- * * [DOM Window](https://developer.mozilla.org/en-US/docs/DOM/window) from MDN.
- * * [Window](http://www.w3.org/TR/Window/) from the W3C.
- */
-@DomName('Window')
-@Native("Window,DOMWindow")
-class Window extends EventTarget
- implements
- WindowEventHandlers,
- WindowBase,
- GlobalEventHandlers,
- _WindowTimers,
- WindowBase64 {
- /**
- * Returns a Future that completes just before the window is about to
- * repaint so the user can draw an animation frame.
- *
- * If you need to later cancel this animation, use [requestAnimationFrame]
- * instead.
- *
- * The [Future] completes to a timestamp that represents a floating
- * point value of the number of milliseconds that have elapsed since the page
- * started to load (which is also the timestamp at this call to
- * animationFrame).
- *
- * Note: The code that runs when the future completes should call
- * [animationFrame] again for the animation to continue.
- */
- Future<num> get animationFrame {
- var completer = new Completer<num>.sync();
- requestAnimationFrame((time) {
- completer.complete(time);
- });
- return completer.future;
- }
-
- /**
- * The newest document in this window.
- *
- * ## Other resources
- *
- * * [Loading web
- * pages](https://html.spec.whatwg.org/multipage/browsers.html)
- * from WHATWG.
- */
- Document get document => JS('Document', '#.document', this);
-
- WindowBase _open2(url, name) =>
- JS('Window|Null', '#.open(#,#)', this, url, name);
-
- WindowBase _open3(url, name, options) =>
- JS('Window|Null', '#.open(#,#,#)', this, url, name, options);
-
- /**
- * Opens a new window.
- *
- * ## Other resources
- *
- * * [Window.open](https://developer.mozilla.org/en-US/docs/Web/API/Window.open)
- * from MDN.
- * * [Window open](http://docs.webplatform.org/wiki/dom/methods/open)
- * from WebPlatform.org.
- */
- WindowBase open(String url, String name, [String options]) {
- if (options == null) {
- return _DOMWindowCrossFrame._createSafe(_open2(url, name));
- } else {
- return _DOMWindowCrossFrame._createSafe(_open3(url, name, options));
- }
- }
-
- // API level getter and setter for Location.
- // TODO: The cross domain safe wrapper can be inserted here.
- /**
- * The current location of this window.
- *
- * Location currentLocation = window.location;
- * print(currentLocation.href); // 'http://www.example.com:80/'
- */
- Location get location => _location;
-
- // TODO: consider forcing users to do: window.location.assign('string').
- /**
- * Sets the window's location, which causes the browser to navigate to the new
- * location. [value] may be a Location object or a String.
- */
- set location(value) {
- _location = value;
- }
-
- // Native getter and setter to access raw Location object.
- dynamic get _location => JS('Location|Null', '#.location', this);
- set _location(value) {
- JS('void', '#.location = #', this, value);
- }
-
- /**
- * Called to draw an animation frame and then request the window to repaint
- * after [callback] has finished (creating the animation).
- *
- * Use this method only if you need to later call [cancelAnimationFrame]. If
- * not, the preferred Dart idiom is to set animation frames by calling
- * [animationFrame], which returns a Future.
- *
- * Returns a non-zero valued integer to represent the request id for this
- * request. This value only needs to be saved if you intend to call
- * [cancelAnimationFrame] so you can specify the particular animation to
- * cancel.
- *
- * Note: The supplied [callback] needs to call [requestAnimationFrame] again
- * for the animation to continue.
- */
- @DomName('Window.requestAnimationFrame')
- int requestAnimationFrame(FrameRequestCallback callback) {
- _ensureRequestAnimationFrame();
- return _requestAnimationFrame(_wrapZone(callback));
- }
-
- /**
- * Cancels an animation frame request.
- *
- * ## Other resources
- *
- * * [Window.cancelAnimationFrame](https://developer.mozilla.org/en-US/docs/Web/API/Window.cancelAnimationFrame)
- * from MDN.
- */
- void cancelAnimationFrame(int id) {
- _ensureRequestAnimationFrame();
- _cancelAnimationFrame(id);
- }
-
- @JSName('requestAnimationFrame')
- int _requestAnimationFrame(FrameRequestCallback callback) native;
-
- @JSName('cancelAnimationFrame')
- void _cancelAnimationFrame(int id) native;
-
- _ensureRequestAnimationFrame() {
- if (JS('bool', '!!(#.requestAnimationFrame && #.cancelAnimationFrame)',
- this, this)) return;
-
- JS(
- 'void',
- r"""
- (function($this) {
- var vendors = ['ms', 'moz', 'webkit', 'o'];
- for (var i = 0; i < vendors.length && !$this.requestAnimationFrame; ++i) {
- $this.requestAnimationFrame = $this[vendors[i] + 'RequestAnimationFrame'];
- $this.cancelAnimationFrame =
- $this[vendors[i]+'CancelAnimationFrame'] ||
- $this[vendors[i]+'CancelRequestAnimationFrame'];
- }
- if ($this.requestAnimationFrame && $this.cancelAnimationFrame) return;
- $this.requestAnimationFrame = function(callback) {
- return window.setTimeout(function() {
- callback(Date.now());
- }, 16 /* 16ms ~= 60fps */);
- };
- $this.cancelAnimationFrame = function(id) { clearTimeout(id); }
- })(#)""",
- this);
- }
-
- /**
- * Gets an instance of the Indexed DB factory to being using Indexed DB.
- *
- * Use [indexed_db.IdbFactory.supported] to check if Indexed DB is supported on the
- * current platform.
- */
- @SupportedBrowser(SupportedBrowser.CHROME, '23.0')
- @SupportedBrowser(SupportedBrowser.FIREFOX, '15.0')
- @SupportedBrowser(SupportedBrowser.IE, '10.0')
- @Experimental()
- IdbFactory get indexedDB => JS(
- 'IdbFactory|Null', // If not supported, returns null.
- '#.indexedDB || #.webkitIndexedDB || #.mozIndexedDB',
- this,
- this,
- this);
-
- /// The debugging console for this window.
- @DomName('Window.console')
- Console get console => Console._safeConsole;
-
- /**
- * Access a sandboxed file system of the specified `size`. If `persistent` is
- * true, the application will request permission from the user to create
- * lasting storage. This storage cannot be freed without the user's
- * permission. Returns a [Future] whose value stores a reference to the
- * sandboxed file system for use. Because the file system is sandboxed,
- * applications cannot access file systems created in other web pages.
- */
- Future<FileSystem> requestFileSystem(int size, {bool persistent: false}) {
- return _requestFileSystem(persistent ? 1 : 0, size);
- }
-
- /**
- * convertPointFromNodeToPage and convertPointFromPageToNode are removed.
- * see http://dev.w3.org/csswg/cssom-view/#geometry
- */
- static bool get supportsPointConversions => DomPoint.supported;
- // To suppress missing implicit constructor warnings.
- factory Window._() {
- throw new UnsupportedError("Not supported");
- }
-
- /**
- * Static factory designed to expose `contentloaded` events to event
- * handlers that are not necessarily instances of [Window].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Window.DOMContentLoadedEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> contentLoadedEvent =
- const EventStreamProvider<Event>('DOMContentLoaded');
-
- /**
- * Static factory designed to expose `devicemotion` events to event
- * handlers that are not necessarily instances of [Window].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Window.devicemotionEvent')
- @DocsEditable()
- // http://dev.w3.org/geo/api/spec-source-orientation.html#devicemotion
- @Experimental()
- static const EventStreamProvider<DeviceMotionEvent> deviceMotionEvent =
- const EventStreamProvider<DeviceMotionEvent>('devicemotion');
-
- /**
- * Static factory designed to expose `deviceorientation` events to event
- * handlers that are not necessarily instances of [Window].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Window.deviceorientationEvent')
- @DocsEditable()
- // http://dev.w3.org/geo/api/spec-source-orientation.html#devicemotion
- @Experimental()
- static const EventStreamProvider<DeviceOrientationEvent>
- deviceOrientationEvent =
- const EventStreamProvider<DeviceOrientationEvent>('deviceorientation');
-
- /**
- * Static factory designed to expose `hashchange` events to event
- * handlers that are not necessarily instances of [Window].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Window.hashchangeEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> hashChangeEvent =
- const EventStreamProvider<Event>('hashchange');
-
- @DomName('Window.loadstartEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> loadStartEvent =
- const EventStreamProvider<Event>('loadstart');
-
- /**
- * Static factory designed to expose `message` events to event
- * handlers that are not necessarily instances of [Window].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Window.messageEvent')
- @DocsEditable()
- static const EventStreamProvider<MessageEvent> messageEvent =
- const EventStreamProvider<MessageEvent>('message');
-
- /**
- * Static factory designed to expose `offline` events to event
- * handlers that are not necessarily instances of [Window].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Window.offlineEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> offlineEvent =
- const EventStreamProvider<Event>('offline');
-
- /**
- * Static factory designed to expose `online` events to event
- * handlers that are not necessarily instances of [Window].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Window.onlineEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> onlineEvent =
- const EventStreamProvider<Event>('online');
-
- /**
- * Static factory designed to expose `pagehide` events to event
- * handlers that are not necessarily instances of [Window].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Window.pagehideEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> pageHideEvent =
- const EventStreamProvider<Event>('pagehide');
-
- /**
- * Static factory designed to expose `pageshow` events to event
- * handlers that are not necessarily instances of [Window].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Window.pageshowEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> pageShowEvent =
- const EventStreamProvider<Event>('pageshow');
-
- /**
- * Static factory designed to expose `popstate` events to event
- * handlers that are not necessarily instances of [Window].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Window.popstateEvent')
- @DocsEditable()
- static const EventStreamProvider<PopStateEvent> popStateEvent =
- const EventStreamProvider<PopStateEvent>('popstate');
-
- @DomName('Window.progressEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> progressEvent =
- const EventStreamProvider<Event>('progress');
-
- /**
- * Static factory designed to expose `storage` events to event
- * handlers that are not necessarily instances of [Window].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Window.storageEvent')
- @DocsEditable()
- static const EventStreamProvider<StorageEvent> storageEvent =
- const EventStreamProvider<StorageEvent>('storage');
-
- /**
- * Static factory designed to expose `unload` events to event
- * handlers that are not necessarily instances of [Window].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Window.unloadEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> unloadEvent =
- const EventStreamProvider<Event>('unload');
-
- /**
- * Static factory designed to expose `animationend` events to event
- * handlers that are not necessarily instances of [Window].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Window.webkitAnimationEndEvent')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- static const EventStreamProvider<AnimationEvent> animationEndEvent =
- const EventStreamProvider<AnimationEvent>('webkitAnimationEnd');
-
- /**
- * Static factory designed to expose `animationiteration` events to event
- * handlers that are not necessarily instances of [Window].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Window.webkitAnimationIterationEvent')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- static const EventStreamProvider<AnimationEvent> animationIterationEvent =
- const EventStreamProvider<AnimationEvent>('webkitAnimationIteration');
-
- /**
- * Static factory designed to expose `animationstart` events to event
- * handlers that are not necessarily instances of [Window].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Window.webkitAnimationStartEvent')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- static const EventStreamProvider<AnimationEvent> animationStartEvent =
- const EventStreamProvider<AnimationEvent>('webkitAnimationStart');
-
- /**
- * Indicates that file system data cannot be cleared unless given user
- * permission.
- *
- * ## Other resources
- *
- * * [Exploring the FileSystem
- * APIs](http://www.html5rocks.com/en/tutorials/file/filesystem/)
- * from HTML5Rocks.
- * * [File API](http://www.w3.org/TR/file-system-api/#idl-def-LocalFileSystem)
- * from W3C.
- */
- @DomName('Window.PERSISTENT')
- @DocsEditable()
- // http://www.w3.org/TR/file-system-api/#idl-def-LocalFileSystem
- @Experimental()
- static const int PERSISTENT = 1;
-
- /**
- * Indicates that file system data can be cleared at any time.
- *
- * ## Other resources
- *
- * * [Exploring the FileSystem
- * APIs](http://www.html5rocks.com/en/tutorials/file/filesystem/) from HTML5Rocks.
- * * [File API](http://www.w3.org/TR/file-system-api/#idl-def-LocalFileSystem)
- * from W3C.
- */
- @DomName('Window.TEMPORARY')
- @DocsEditable()
- // http://www.w3.org/TR/file-system-api/#idl-def-LocalFileSystem
- @Experimental()
- static const int TEMPORARY = 0;
-
- /**
- * The application cache for this window.
- *
- * ## Other resources
- *
- * * [A beginner's guide to using the application
- * cache](http://www.html5rocks.com/en/tutorials/appcache/beginner)
- * from HTML5Rocks.
- * * [Application cache
- * API](https://html.spec.whatwg.org/multipage/browsers.html#application-cache-api)
- * from WHATWG.
- */
- @DomName('Window.applicationCache')
- @DocsEditable()
- final ApplicationCache applicationCache;
-
- @DomName('Window.caches')
- @DocsEditable()
- @Experimental() // untriaged
- final CacheStorage caches;
-
- @DomName('Window.closed')
- @DocsEditable()
- final bool closed;
-
- /**
- * Entrypoint for the browser's cryptographic functions.
- *
- * ## Other resources
- *
- * * [Web cryptography API](http://www.w3.org/TR/WebCryptoAPI/) from W3C.
- */
- @DomName('Window.crypto')
- @DocsEditable()
- // http://www.w3.org/TR/WebCryptoAPI/
- @Experimental()
- final Crypto crypto;
-
- /// *Deprecated*.
- @DomName('Window.defaultStatus')
- @DocsEditable()
- @Experimental() // non-standard
- String defaultStatus;
-
- /// *Deprecated*.
- @DomName('Window.defaultstatus')
- @DocsEditable()
- @Experimental() // non-standard
- String defaultstatus;
-
- /**
- * The ratio between physical pixels and logical CSS pixels.
- *
- * ## Other resources
- *
- * * [devicePixelRatio](http://www.quirksmode.org/blog/archives/2012/06/devicepixelrati.html)
- * from quirksmode.
- * * [More about devicePixelRatio](http://www.quirksmode.org/blog/archives/2012/07/more_about_devi.html)
- * from quirksmode.
- */
- @DomName('Window.devicePixelRatio')
- @DocsEditable()
- // http://www.quirksmode.org/blog/archives/2012/06/devicepixelrati.html
- @Experimental() // non-standard
- final double devicePixelRatio;
-
- /**
- * The current session history for this window's newest document.
- *
- * ## Other resources
- *
- * * [Loading web pages](https://html.spec.whatwg.org/multipage/browsers.html)
- * from WHATWG.
- */
- @DomName('Window.history')
- @DocsEditable()
- final History history;
-
- /**
- * The height of the viewport including scrollbars.
- *
- * ## Other resources
- *
- * * [innerHeight](http://docs.webplatform.org/wiki/css/cssom/properties/innerHeight)
- * from WebPlatform.org.
- */
- @DomName('Window.innerHeight')
- @DocsEditable()
- final int innerHeight;
-
- /**
- * The width of the viewport including scrollbars.
- *
- * ## Other resources
- *
- * * [innerWidth](http://docs.webplatform.org/wiki/css/cssom/properties/innerWidth)
- * from WebPlatform.org.
- */
- @DomName('Window.innerWidth')
- @DocsEditable()
- final int innerWidth;
-
- @DomName('Window.isSecureContext')
- @DocsEditable()
- @Experimental() // untriaged
- final bool isSecureContext;
-
- /**
- * Storage for this window that persists across sessions.
- *
- * ## Other resources
- *
- * * [DOM storage guide](https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Storage)
- * from MDN.
- * * [The past, present & future of local storage for web
- * applications](http://diveintohtml5.info/storage.html) from Dive Into HTML5.
- * * [Local storage specification](http://www.w3.org/TR/webstorage/#the-localstorage-attribute)
- * from W3C.
- */
- @DomName('Window.localStorage')
- @DocsEditable()
- final Storage localStorage;
-
- /**
- * This window's location bar, which displays the URL.
- *
- * ## Other resources
- *
- * * [Browser interface
- * elements](https://html.spec.whatwg.org/multipage/browsers.html#browser-interface-elements)
- * from WHATWG.
- */
- @DomName('Window.locationbar')
- @DocsEditable()
- final BarProp locationbar;
-
- /**
- * This window's menu bar, which displays menu commands.
- *
- * ## Other resources
- *
- * * [Browser interface
- * elements](https://html.spec.whatwg.org/multipage/browsers.html#browser-interface-elements)
- * from WHATWG.
- */
- @DomName('Window.menubar')
- @DocsEditable()
- final BarProp menubar;
-
- /**
- * The name of this window.
- *
- * ## Other resources
- *
- * * [Window name](http://docs.webplatform.org/wiki/html/attributes/name_(window))
- * from WebPlatform.org.
- */
- @DomName('Window.name')
- @DocsEditable()
- String name;
-
- /**
- * The user agent accessing this window.
- *
- * ## Other resources
- *
- * * [The navigator
- * object](https://html.spec.whatwg.org/multipage/webappapis.html#the-navigator-object)
- * from WHATWG.
- */
- @DomName('Window.navigator')
- @DocsEditable()
- final Navigator navigator;
-
- /**
- * Whether objects are drawn offscreen before being displayed.
- *
- * ## Other resources
- *
- * * [offscreenBuffering](http://docs.webplatform.org/wiki/dom/properties/offscreenBuffering)
- * from WebPlatform.org.
- */
- @DomName('Window.offscreenBuffering')
- @DocsEditable()
- @Experimental() // non-standard
- final bool offscreenBuffering;
-
- @DomName('Window.opener')
- @DocsEditable()
- WindowBase get opener => _convertNativeToDart_Window(this._get_opener);
- @JSName('opener')
- @DomName('Window.opener')
- @DocsEditable()
- @Creates('Window|=Object')
- @Returns('Window|=Object')
- final dynamic _get_opener;
-
- set opener(Window value) {
- JS("void", "#.opener = #", this, value);
- }
-
- @DomName('Window.orientation')
- @DocsEditable()
- @Experimental() // untriaged
- final int orientation;
-
- /**
- * The height of this window including all user interface elements.
- *
- * ## Other resources
- *
- * * [outerHeight](http://docs.webplatform.org/wiki/css/cssom/properties/outerHeight)
- * from WebPlatform.org.
- */
- @DomName('Window.outerHeight')
- @DocsEditable()
- final int outerHeight;
-
- /**
- * The width of the window including all user interface elements.
- *
- * ## Other resources
- *
- * * [outerWidth](http://docs.webplatform.org/wiki/css/cssom/properties/outerWidth)
- * from WebPlatform.org.
- */
- @DomName('Window.outerWidth')
- @DocsEditable()
- final int outerWidth;
-
- @JSName('pageXOffset')
- /**
- * The distance this window has been scrolled horizontally.
- *
- * This attribute is an alias for [scrollX].
- *
- * ## Other resources
- *
- * * [The Screen interface
- * specification](http://www.w3.org/TR/cssom-view/#screen) from W3C.
- * * [scrollX and
- * pageXOffset](https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollX)
- * from MDN.
- */
- @DomName('Window.pageXOffset')
- @DocsEditable()
- final double _pageXOffset;
-
- @JSName('pageYOffset')
- /**
- * The distance this window has been scrolled vertically.
- *
- * This attribute is an alias for [scrollY].
- *
- * ## Other resources
- *
- * * [The Screen interface
- * specification](http://www.w3.org/TR/cssom-view/#screen) from W3C.
- * * [scrollY and
- * pageYOffset](https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollY)
- * from MDN.
- */
- @DomName('Window.pageYOffset')
- @DocsEditable()
- final double _pageYOffset;
-
- @DomName('Window.parent')
- @DocsEditable()
- WindowBase get parent => _convertNativeToDart_Window(this._get_parent);
- @JSName('parent')
- @DomName('Window.parent')
- @DocsEditable()
- @Creates('Window|=Object')
- @Returns('Window|=Object')
- final dynamic _get_parent;
-
- /**
- * Timing and navigation data for this window.
- *
- * ## Other resources
- *
- * * [Measuring page load speed with navigation
- * timeing](http://www.html5rocks.com/en/tutorials/webperformance/basics/)
- * from HTML5Rocks.
- * * [Navigation timing
- * specification](http://www.w3.org/TR/navigation-timing/) from W3C.
- */
- @DomName('Window.performance')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.FIREFOX)
- @SupportedBrowser(SupportedBrowser.IE)
- final Performance performance;
-
- @DomName('Window.renderWorklet')
- @DocsEditable()
- @Experimental() // untriaged
- final _Worklet renderWorklet;
-
- /**
- * Information about the screen displaying this window.
- *
- * ## Other resources
- *
- * * [The Screen interface specification](http://www.w3.org/TR/cssom-view/#screen)
- * from W3C.
- */
- @DomName('Window.screen')
- @DocsEditable()
- final Screen screen;
-
- /**
- * The distance from the left side of the screen to the left side of this
- * window.
- *
- * ## Other resources
- *
- * * [The Screen interface specification](http://www.w3.org/TR/cssom-view/#screen)
- * from W3C.
- */
- @DomName('Window.screenLeft')
- @DocsEditable()
- final int screenLeft;
-
- /**
- * The distance from the top of the screen to the top of this window.
- *
- * ## Other resources
- *
- * * [The Screen interface specification](http://www.w3.org/TR/cssom-view/#screen)
- * from W3C.
- */
- @DomName('Window.screenTop')
- @DocsEditable()
- final int screenTop;
-
- /**
- * The distance from the left side of the screen to the mouse pointer.
- *
- * ## Other resources
- *
- * * [The Screen interface specification](http://www.w3.org/TR/cssom-view/#screen)
- * from W3C.
- */
- @DomName('Window.screenX')
- @DocsEditable()
- final int screenX;
-
- /**
- * The distance from the top of the screen to the mouse pointer.
- *
- * ## Other resources
- *
- * * [The Screen interface specification](http://www.w3.org/TR/cssom-view/#screen)
- * from W3C.
- */
- @DomName('Window.screenY')
- @DocsEditable()
- final int screenY;
-
- /**
- * This window's scroll bars.
- *
- * ## Other resources
- *
- * * [Browser interface
- * elements](https://html.spec.whatwg.org/multipage/browsers.html#browser-interface-elements)
- * from WHATWG.
- */
- @DomName('Window.scrollbars')
- @DocsEditable()
- final BarProp scrollbars;
-
- /**
- * The current window.
- *
- * ## Other resources
- *
- * * [Window.self](https://developer.mozilla.org/en-US/docs/Web/API/Window.self)
- * from MDN.
- */
- @DomName('Window.self')
- @DocsEditable()
- WindowBase get self => _convertNativeToDart_Window(this._get_self);
- @JSName('self')
- /**
- * The current window.
- *
- * ## Other resources
- *
- * * [Window.self](https://developer.mozilla.org/en-US/docs/Web/API/Window.self)
- * from MDN.
- */
- @DomName('Window.self')
- @DocsEditable()
- @Creates('Window|=Object')
- @Returns('Window|=Object')
- final dynamic _get_self;
-
- /**
- * Storage for this window that is cleared when this session ends.
- *
- * ## Other resources
- *
- * * [DOM storage
- * guide](https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Storage)
- * from MDN.
- * * [The past, present & future of local storage for web
- * applications](http://diveintohtml5.info/storage.html) from Dive Into HTML5.
- * * [Local storage
- * specification](http://www.w3.org/TR/webstorage/#dom-sessionstorage) from W3C.
- */
- @DomName('Window.sessionStorage')
- @DocsEditable()
- final Storage sessionStorage;
-
- /**
- * Access to speech synthesis in the browser.
- *
- * ## Other resources
- *
- * * [Web speech
- * specification](https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#tts-section)
- * from W3C.
- */
- @DomName('Window.speechSynthesis')
- @DocsEditable()
- // https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#tts-section
- @Experimental()
- final SpeechSynthesis speechSynthesis;
-
- /// *Deprecated*.
- @DomName('Window.status')
- @DocsEditable()
- String status;
-
- /**
- * This window's status bar.
- *
- * ## Other resources
- *
- * * [Browser interface
- * elements](https://html.spec.whatwg.org/multipage/browsers.html#browser-interface-elements)
- * from WHATWG.
- */
- @DomName('Window.statusbar')
- @DocsEditable()
- final BarProp statusbar;
-
- /**
- * Access to CSS media queries.
- *
- * ## Other resources
- *
- * * [StyleMedia class
- * reference](https://developer.apple.com/library/safari/documentation/SafariDOMAdditions/Reference/StyleMedia/)
- * from Safari Developer Library.
- */
- @DomName('Window.styleMedia')
- @DocsEditable()
- // http://developer.apple.com/library/safari/#documentation/SafariDOMAdditions/Reference/StyleMedia/StyleMedia/StyleMedia.html
- @Experimental() // nonstandard
- final StyleMedia styleMedia;
-
- /**
- * This window's tool bar.
- *
- * ## Other resources
- *
- * * [Browser interface
- * elements](https://html.spec.whatwg.org/multipage/browsers.html#browser-interface-elements)
- * from WHATWG.
- */
- @DomName('Window.toolbar')
- @DocsEditable()
- final BarProp toolbar;
-
- @DomName('Window.top')
- @DocsEditable()
- WindowBase get top => _convertNativeToDart_Window(this._get_top);
- @JSName('top')
- @DomName('Window.top')
- @DocsEditable()
- @Creates('Window|=Object')
- @Returns('Window|=Object')
- final dynamic _get_top;
-
- /**
- * The current window.
- *
- * ## Other resources
- *
- * * [Window.window](https://developer.mozilla.org/en-US/docs/Web/API/Window.window)
- * from MDN.
- */
- @DomName('Window.window')
- @DocsEditable()
- WindowBase get window => _convertNativeToDart_Window(this._get_window);
- @JSName('window')
- /**
- * The current window.
- *
- * ## Other resources
- *
- * * [Window.window](https://developer.mozilla.org/en-US/docs/Web/API/Window.window)
- * from MDN.
- */
- @DomName('Window.window')
- @DocsEditable()
- @Creates('Window|=Object')
- @Returns('Window|=Object')
- final dynamic _get_window;
-
- @DomName('Window.__getter__')
- @DocsEditable()
- @Creates('Window|=Object')
- @Returns('Window|=Object')
- WindowBase __getter__(index_OR_name) {
- if ((index_OR_name is int)) {
- return _convertNativeToDart_Window(__getter___1(index_OR_name));
- }
- if ((index_OR_name is String)) {
- return _convertNativeToDart_Window(__getter___2(index_OR_name));
- }
- throw new ArgumentError("Incorrect number or type of arguments");
- }
-
- @JSName('__getter__')
- @DomName('Window.__getter__')
- @DocsEditable()
- @Creates('Window|=Object')
- @Returns('Window|=Object')
- __getter___1(int index) native;
- @JSName('__getter__')
- @DomName('Window.__getter__')
- @DocsEditable()
- @Creates('Window|=Object')
- @Returns('Window|=Object')
- __getter___2(String name) native;
-
- /**
- * Displays a modal alert to the user.
- *
- * ## Other resources
- *
- * * [User prompts](https://html.spec.whatwg.org/multipage/webappapis.html#user-prompts)
- * from WHATWG.
- */
- @DomName('Window.alert')
- @DocsEditable()
- void alert([String message]) native;
-
- @DomName('Window.cancelIdleCallback')
- @DocsEditable()
- @Experimental() // untriaged
- void cancelIdleCallback(int handle) native;
-
- @DomName('Window.close')
- @DocsEditable()
- void close() native;
-
- /**
- * Displays a modal OK/Cancel prompt to the user.
- *
- * ## Other resources
- *
- * * [User prompts](https://html.spec.whatwg.org/multipage/webappapis.html#user-prompts)
- * from WHATWG.
- */
- @DomName('Window.confirm')
- @DocsEditable()
- bool confirm([String message]) native;
-
- @DomName('Window.fetch')
- @DocsEditable()
- @Experimental() // untriaged
- Future fetch(/*RequestInfo*/ input, [Map init]) {
- if (init != null) {
- var init_1 = convertDartToNative_Dictionary(init);
- return _fetch_1(input, init_1);
- }
- return _fetch_2(input);
- }
-
- @JSName('fetch')
- @DomName('Window.fetch')
- @DocsEditable()
- @Experimental() // untriaged
- Future _fetch_1(input, init) native;
- @JSName('fetch')
- @DomName('Window.fetch')
- @DocsEditable()
- @Experimental() // untriaged
- Future _fetch_2(input) native;
-
- /**
- * Finds text in this window.
- *
- * ## Other resources
- *
- * * [Window.find](https://developer.mozilla.org/en-US/docs/Web/API/Window.find)
- * from MDN.
- */
- @DomName('Window.find')
- @DocsEditable()
- @Experimental() // non-standard
- bool find(String string, bool caseSensitive, bool backwards, bool wrap,
- bool wholeWord, bool searchInFrames, bool showDialog) native;
-
- @JSName('getComputedStyle')
- @DomName('Window.getComputedStyle')
- @DocsEditable()
- CssStyleDeclaration _getComputedStyle(Element elt, String pseudoElt) native;
-
- @JSName('getMatchedCSSRules')
- /**
- * Returns all CSS rules that apply to the element's pseudo-element.
- */
- @DomName('Window.getMatchedCSSRules')
- @DocsEditable()
- @Experimental() // non-standard
- @Returns('_CssRuleList|Null')
- @Creates('_CssRuleList')
- List<CssRule> getMatchedCssRules(Element element, String pseudoElement)
- native;
-
- /**
- * Returns the currently selected text.
- *
- * ## Other resources
- *
- * * [Window.getSelection](https://developer.mozilla.org/en-US/docs/Web/API/Window.getSelection)
- * from MDN.
- */
- @DomName('Window.getSelection')
- @DocsEditable()
- Selection getSelection() native;
-
- /**
- * Returns a list of media queries for the given query string.
- *
- * ## Other resources
- *
- * * [Testing media
- * queries](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Testing_media_queries)
- * from MDN.
- * * [The MediaQueryList
- * specification](http://www.w3.org/TR/cssom-view/#the-mediaquerylist-interface) from W3C.
- */
- @DomName('Window.matchMedia')
- @DocsEditable()
- MediaQueryList matchMedia(String query) native;
-
- /**
- * Moves this window.
- *
- * x and y can be negative.
- *
- * ## Other resources
- *
- * * [Window.moveBy](https://developer.mozilla.org/en-US/docs/Web/API/Window.moveBy)
- * from MDN.
- * * [Window.moveBy](http://dev.w3.org/csswg/cssom-view/#dom-window-moveby) from W3C.
- */
- @DomName('Window.moveBy')
- @DocsEditable()
- void moveBy(int x, int y) native;
-
- @JSName('moveTo')
- @DomName('Window.moveTo')
- @DocsEditable()
- void _moveTo(int x, int y) native;
-
- /// *Deprecated.*
- @DomName('Window.openDatabase')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- // http://www.w3.org/TR/webdatabase/
- @Experimental() // deprecated
- @Creates('SqlDatabase')
- SqlDatabase openDatabase(
- String name, String version, String displayName, int estimatedSize,
- [DatabaseCallback creationCallback]) native;
-
- @DomName('Window.postMessage')
- @DocsEditable()
- void postMessage(/*any*/ message, String targetOrigin,
- [List<MessagePort> transfer]) {
- if (transfer != null) {
- var message_1 = convertDartToNative_SerializedScriptValue(message);
- _postMessage_1(message_1, targetOrigin, transfer);
- return;
- }
- var message_1 = convertDartToNative_SerializedScriptValue(message);
- _postMessage_2(message_1, targetOrigin);
- return;
- }
-
- @JSName('postMessage')
- @DomName('Window.postMessage')
- @DocsEditable()
- void _postMessage_1(message, targetOrigin, List<MessagePort> transfer) native;
- @JSName('postMessage')
- @DomName('Window.postMessage')
- @DocsEditable()
- void _postMessage_2(message, targetOrigin) native;
-
- /**
- * Opens the print dialog for this window.
- *
- * ## Other resources
- *
- * * [Window.print](https://developer.mozilla.org/en-US/docs/Web/API/Window.print)
- * from MDN.
- */
- @DomName('Window.print')
- @DocsEditable()
- void print() native;
-
- @DomName('Window.requestIdleCallback')
- @DocsEditable()
- @Experimental() // untriaged
- int requestIdleCallback(IdleRequestCallback callback, [Map options]) {
- if (options != null) {
- var options_1 = convertDartToNative_Dictionary(options);
- return _requestIdleCallback_1(callback, options_1);
- }
- return _requestIdleCallback_2(callback);
- }
-
- @JSName('requestIdleCallback')
- @DomName('Window.requestIdleCallback')
- @DocsEditable()
- @Experimental() // untriaged
- int _requestIdleCallback_1(IdleRequestCallback callback, options) native;
- @JSName('requestIdleCallback')
- @DomName('Window.requestIdleCallback')
- @DocsEditable()
- @Experimental() // untriaged
- int _requestIdleCallback_2(IdleRequestCallback callback) native;
-
- /**
- * Resizes this window by an offset.
- *
- * ## Other resources
- *
- * * [Window resizeBy](http://docs.webplatform.org/wiki/dom/methods/resizeBy)
- * from WebPlatform.org.
- */
- @DomName('Window.resizeBy')
- @DocsEditable()
- void resizeBy(int x, int y) native;
-
- /**
- * Resizes this window to a specific width and height.
- *
- * ## Other resources
- *
- * * [Window resizeTo](http://docs.webplatform.org/wiki/dom/methods/resizeTo)
- * from WebPlatform.org.
- */
- @DomName('Window.resizeTo')
- @DocsEditable()
- void resizeTo(int x, int y) native;
-
- /**
- * Scrolls the page horizontally and vertically to a specific point.
- *
- * This method is identical to [scrollTo].
- *
- * ## Other resources
- *
- * * [Window scroll](http://docs.webplatform.org/wiki/dom/methods/scroll)
- * from WebPlatform.org.
- */
- @DomName('Window.scroll')
- @DocsEditable()
- void scroll([options_OR_x, y, Map scrollOptions]) {
- if (options_OR_x == null && y == null && scrollOptions == null) {
- _scroll_1();
- return;
- }
- if ((options_OR_x is Map) && y == null && scrollOptions == null) {
- var options_1 = convertDartToNative_Dictionary(options_OR_x);
- _scroll_2(options_1);
- return;
- }
- if ((y is num) && (options_OR_x is num) && scrollOptions == null) {
- _scroll_3(options_OR_x, y);
- return;
- }
- if ((y is int) && (options_OR_x is int) && scrollOptions == null) {
- _scroll_4(options_OR_x, y);
- return;
- }
- if (scrollOptions != null && (y is int) && (options_OR_x is int)) {
- var scrollOptions_1 = convertDartToNative_Dictionary(scrollOptions);
- _scroll_5(options_OR_x, y, scrollOptions_1);
- return;
- }
- throw new ArgumentError("Incorrect number or type of arguments");
- }
-
- @JSName('scroll')
- /**
- * Scrolls the page horizontally and vertically to a specific point.
- *
- * This method is identical to [scrollTo].
- *
- * ## Other resources
- *
- * * [Window scroll](http://docs.webplatform.org/wiki/dom/methods/scroll)
- * from WebPlatform.org.
- */
- @DomName('Window.scroll')
- @DocsEditable()
- void _scroll_1() native;
- @JSName('scroll')
- /**
- * Scrolls the page horizontally and vertically to a specific point.
- *
- * This method is identical to [scrollTo].
- *
- * ## Other resources
- *
- * * [Window scroll](http://docs.webplatform.org/wiki/dom/methods/scroll)
- * from WebPlatform.org.
- */
- @DomName('Window.scroll')
- @DocsEditable()
- void _scroll_2(options) native;
- @JSName('scroll')
- /**
- * Scrolls the page horizontally and vertically to a specific point.
- *
- * This method is identical to [scrollTo].
- *
- * ## Other resources
- *
- * * [Window scroll](http://docs.webplatform.org/wiki/dom/methods/scroll)
- * from WebPlatform.org.
- */
- @DomName('Window.scroll')
- @DocsEditable()
- void _scroll_3(num x, num y) native;
- @JSName('scroll')
- /**
- * Scrolls the page horizontally and vertically to a specific point.
- *
- * This method is identical to [scrollTo].
- *
- * ## Other resources
- *
- * * [Window scroll](http://docs.webplatform.org/wiki/dom/methods/scroll)
- * from WebPlatform.org.
- */
- @DomName('Window.scroll')
- @DocsEditable()
- void _scroll_4(int x, int y) native;
- @JSName('scroll')
- /**
- * Scrolls the page horizontally and vertically to a specific point.
- *
- * This method is identical to [scrollTo].
- *
- * ## Other resources
- *
- * * [Window scroll](http://docs.webplatform.org/wiki/dom/methods/scroll)
- * from WebPlatform.org.
- */
- @DomName('Window.scroll')
- @DocsEditable()
- void _scroll_5(int x, int y, scrollOptions) native;
-
- /**
- * Scrolls the page horizontally and vertically by an offset.
- *
- * ## Other resources
- *
- * * [Window scrollBy](http://docs.webplatform.org/wiki/dom/methods/scrollBy)
- * from WebPlatform.org.
- */
- @DomName('Window.scrollBy')
- @DocsEditable()
- void scrollBy([options_OR_x, y, Map scrollOptions]) {
- if (options_OR_x == null && y == null && scrollOptions == null) {
- _scrollBy_1();
- return;
- }
- if ((options_OR_x is Map) && y == null && scrollOptions == null) {
- var options_1 = convertDartToNative_Dictionary(options_OR_x);
- _scrollBy_2(options_1);
- return;
- }
- if ((y is num) && (options_OR_x is num) && scrollOptions == null) {
- _scrollBy_3(options_OR_x, y);
- return;
- }
- if ((y is int) && (options_OR_x is int) && scrollOptions == null) {
- _scrollBy_4(options_OR_x, y);
- return;
- }
- if (scrollOptions != null && (y is int) && (options_OR_x is int)) {
- var scrollOptions_1 = convertDartToNative_Dictionary(scrollOptions);
- _scrollBy_5(options_OR_x, y, scrollOptions_1);
- return;
- }
- throw new ArgumentError("Incorrect number or type of arguments");
- }
-
- @JSName('scrollBy')
- /**
- * Scrolls the page horizontally and vertically by an offset.
- *
- * ## Other resources
- *
- * * [Window scrollBy](http://docs.webplatform.org/wiki/dom/methods/scrollBy)
- * from WebPlatform.org.
- */
- @DomName('Window.scrollBy')
- @DocsEditable()
- void _scrollBy_1() native;
- @JSName('scrollBy')
- /**
- * Scrolls the page horizontally and vertically by an offset.
- *
- * ## Other resources
- *
- * * [Window scrollBy](http://docs.webplatform.org/wiki/dom/methods/scrollBy)
- * from WebPlatform.org.
- */
- @DomName('Window.scrollBy')
- @DocsEditable()
- void _scrollBy_2(options) native;
- @JSName('scrollBy')
- /**
- * Scrolls the page horizontally and vertically by an offset.
- *
- * ## Other resources
- *
- * * [Window scrollBy](http://docs.webplatform.org/wiki/dom/methods/scrollBy)
- * from WebPlatform.org.
- */
- @DomName('Window.scrollBy')
- @DocsEditable()
- void _scrollBy_3(num x, num y) native;
- @JSName('scrollBy')
- /**
- * Scrolls the page horizontally and vertically by an offset.
- *
- * ## Other resources
- *
- * * [Window scrollBy](http://docs.webplatform.org/wiki/dom/methods/scrollBy)
- * from WebPlatform.org.
- */
- @DomName('Window.scrollBy')
- @DocsEditable()
- void _scrollBy_4(int x, int y) native;
- @JSName('scrollBy')
- /**
- * Scrolls the page horizontally and vertically by an offset.
- *
- * ## Other resources
- *
- * * [Window scrollBy](http://docs.webplatform.org/wiki/dom/methods/scrollBy)
- * from WebPlatform.org.
- */
- @DomName('Window.scrollBy')
- @DocsEditable()
- void _scrollBy_5(int x, int y, scrollOptions) native;
-
- /**
- * Scrolls the page horizontally and vertically to a specific point.
- *
- * This method is identical to [scroll].
- *
- * ## Other resources
- *
- * * [Window scrollTo](http://docs.webplatform.org/wiki/dom/methods/scrollTo)
- * from WebPlatform.org.
- */
- @DomName('Window.scrollTo')
- @DocsEditable()
- void scrollTo([options_OR_x, y, Map scrollOptions]) {
- if (options_OR_x == null && y == null && scrollOptions == null) {
- _scrollTo_1();
- return;
- }
- if ((options_OR_x is Map) && y == null && scrollOptions == null) {
- var options_1 = convertDartToNative_Dictionary(options_OR_x);
- _scrollTo_2(options_1);
- return;
- }
- if ((y is num) && (options_OR_x is num) && scrollOptions == null) {
- _scrollTo_3(options_OR_x, y);
- return;
- }
- if ((y is int) && (options_OR_x is int) && scrollOptions == null) {
- _scrollTo_4(options_OR_x, y);
- return;
- }
- if (scrollOptions != null && (y is int) && (options_OR_x is int)) {
- var scrollOptions_1 = convertDartToNative_Dictionary(scrollOptions);
- _scrollTo_5(options_OR_x, y, scrollOptions_1);
- return;
- }
- throw new ArgumentError("Incorrect number or type of arguments");
- }
-
- @JSName('scrollTo')
- /**
- * Scrolls the page horizontally and vertically to a specific point.
- *
- * This method is identical to [scroll].
- *
- * ## Other resources
- *
- * * [Window scrollTo](http://docs.webplatform.org/wiki/dom/methods/scrollTo)
- * from WebPlatform.org.
- */
- @DomName('Window.scrollTo')
- @DocsEditable()
- void _scrollTo_1() native;
- @JSName('scrollTo')
- /**
- * Scrolls the page horizontally and vertically to a specific point.
- *
- * This method is identical to [scroll].
- *
- * ## Other resources
- *
- * * [Window scrollTo](http://docs.webplatform.org/wiki/dom/methods/scrollTo)
- * from WebPlatform.org.
- */
- @DomName('Window.scrollTo')
- @DocsEditable()
- void _scrollTo_2(options) native;
- @JSName('scrollTo')
- /**
- * Scrolls the page horizontally and vertically to a specific point.
- *
- * This method is identical to [scroll].
- *
- * ## Other resources
- *
- * * [Window scrollTo](http://docs.webplatform.org/wiki/dom/methods/scrollTo)
- * from WebPlatform.org.
- */
- @DomName('Window.scrollTo')
- @DocsEditable()
- void _scrollTo_3(num x, num y) native;
- @JSName('scrollTo')
- /**
- * Scrolls the page horizontally and vertically to a specific point.
- *
- * This method is identical to [scroll].
- *
- * ## Other resources
- *
- * * [Window scrollTo](http://docs.webplatform.org/wiki/dom/methods/scrollTo)
- * from WebPlatform.org.
- */
- @DomName('Window.scrollTo')
- @DocsEditable()
- void _scrollTo_4(int x, int y) native;
- @JSName('scrollTo')
- /**
- * Scrolls the page horizontally and vertically to a specific point.
- *
- * This method is identical to [scroll].
- *
- * ## Other resources
- *
- * * [Window scrollTo](http://docs.webplatform.org/wiki/dom/methods/scrollTo)
- * from WebPlatform.org.
- */
- @DomName('Window.scrollTo')
- @DocsEditable()
- void _scrollTo_5(int x, int y, scrollOptions) native;
-
- /**
- * Stops the window from loading.
- *
- * ## Other resources
- *
- * * [The Window
- * object](http://www.w3.org/html/wg/drafts/html/master/browsers.html#the-window-object)
- * from W3C.
- */
- @DomName('Window.stop')
- @DocsEditable()
- void stop() native;
-
- @JSName('webkitRequestFileSystem')
- @DomName('Window.webkitRequestFileSystem')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @Experimental()
- // http://www.w3.org/TR/file-system-api/#idl-def-LocalFileSystem
- void __requestFileSystem(
- int type, int size, _FileSystemCallback successCallback,
- [_ErrorCallback errorCallback]) native;
-
- @JSName('webkitRequestFileSystem')
- @DomName('Window.webkitRequestFileSystem')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @Experimental()
- // http://www.w3.org/TR/file-system-api/#idl-def-LocalFileSystem
- Future<FileSystem> _requestFileSystem(int type, int size) {
- var completer = new Completer<FileSystem>();
- __requestFileSystem(type, size, (value) {
- completer.complete(value);
- }, (error) {
- completer.completeError(error);
- });
- return completer.future;
- }
-
- @JSName('webkitResolveLocalFileSystemURL')
- /**
- * Asynchronously retrieves a local filesystem entry.
- *
- * ## Other resources
- *
- * * [Obtaining access to file system entry
- * points](http://www.w3.org/TR/file-system-api/#obtaining-access-to-file-system-entry-points)
- * from W3C.
- */
- @DomName('Window.webkitResolveLocalFileSystemURL')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @Experimental()
- // http://www.w3.org/TR/file-system-api/#idl-def-LocalFileSystem
- void _resolveLocalFileSystemUrl(String url, _EntryCallback successCallback,
- [_ErrorCallback errorCallback]) native;
-
- @JSName('webkitResolveLocalFileSystemURL')
- /**
- * Asynchronously retrieves a local filesystem entry.
- *
- * ## Other resources
- *
- * * [Obtaining access to file system entry
- * points](http://www.w3.org/TR/file-system-api/#obtaining-access-to-file-system-entry-points)
- * from W3C.
- */
- @DomName('Window.webkitResolveLocalFileSystemURL')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @Experimental()
- // http://www.w3.org/TR/file-system-api/#idl-def-LocalFileSystem
- Future<Entry> resolveLocalFileSystemUrl(String url) {
- var completer = new Completer<Entry>();
- _resolveLocalFileSystemUrl(url, (value) {
- completer.complete(value);
- }, (error) {
- completer.completeError(error);
- });
- return completer.future;
- }
-
- // From WindowBase64
-
- @DomName('Window.atob')
- @DocsEditable()
- String atob(String atob) native;
-
- @DomName('Window.btoa')
- @DocsEditable()
- String btoa(String btoa) native;
-
- // From WindowTimers
-
- @JSName('setInterval')
- @DomName('Window.setInterval')
- @DocsEditable()
- int _setInterval_String(String handler, [int timeout, Object arguments])
- native;
-
- @JSName('setTimeout')
- @DomName('Window.setTimeout')
- @DocsEditable()
- int _setTimeout_String(String handler, [int timeout, Object arguments])
- native;
-
- @JSName('clearInterval')
- @DomName('Window.clearInterval')
- @DocsEditable()
- void _clearInterval([int handle]) native;
-
- @JSName('clearTimeout')
- @DomName('Window.clearTimeout')
- @DocsEditable()
- void _clearTimeout([int handle]) native;
-
- @JSName('setInterval')
- @DomName('Window.setInterval')
- @DocsEditable()
- int _setInterval(Object handler, [int timeout]) native;
-
- @JSName('setTimeout')
- @DomName('Window.setTimeout')
- @DocsEditable()
- int _setTimeout(Object handler, [int timeout]) native;
-
- /// Stream of `contentloaded` events handled by this [Window].
- @DomName('Window.onDOMContentLoaded')
- @DocsEditable()
- Stream<Event> get onContentLoaded => contentLoadedEvent.forTarget(this);
-
- /// Stream of `abort` events handled by this [Window].
- @DomName('Window.onabort')
- @DocsEditable()
- Stream<Event> get onAbort => Element.abortEvent.forTarget(this);
-
- /// Stream of `blur` events handled by this [Window].
- @DomName('Window.onblur')
- @DocsEditable()
- Stream<Event> get onBlur => Element.blurEvent.forTarget(this);
-
- @DomName('Window.oncanplay')
- @DocsEditable()
- Stream<Event> get onCanPlay => Element.canPlayEvent.forTarget(this);
-
- @DomName('Window.oncanplaythrough')
- @DocsEditable()
- Stream<Event> get onCanPlayThrough =>
- Element.canPlayThroughEvent.forTarget(this);
-
- /// Stream of `change` events handled by this [Window].
- @DomName('Window.onchange')
- @DocsEditable()
- Stream<Event> get onChange => Element.changeEvent.forTarget(this);
-
- /// Stream of `click` events handled by this [Window].
- @DomName('Window.onclick')
- @DocsEditable()
- Stream<MouseEvent> get onClick => Element.clickEvent.forTarget(this);
-
- /// Stream of `contextmenu` events handled by this [Window].
- @DomName('Window.oncontextmenu')
- @DocsEditable()
- Stream<MouseEvent> get onContextMenu =>
- Element.contextMenuEvent.forTarget(this);
-
- /// Stream of `doubleclick` events handled by this [Window].
- @DomName('Window.ondblclick')
- @DocsEditable()
- Stream<Event> get onDoubleClick => Element.doubleClickEvent.forTarget(this);
-
- /// Stream of `devicemotion` events handled by this [Window].
- @DomName('Window.ondevicemotion')
- @DocsEditable()
- // http://dev.w3.org/geo/api/spec-source-orientation.html#devicemotion
- @Experimental()
- Stream<DeviceMotionEvent> get onDeviceMotion =>
- deviceMotionEvent.forTarget(this);
-
- /// Stream of `deviceorientation` events handled by this [Window].
- @DomName('Window.ondeviceorientation')
- @DocsEditable()
- // http://dev.w3.org/geo/api/spec-source-orientation.html#devicemotion
- @Experimental()
- Stream<DeviceOrientationEvent> get onDeviceOrientation =>
- deviceOrientationEvent.forTarget(this);
-
- /// Stream of `drag` events handled by this [Window].
- @DomName('Window.ondrag')
- @DocsEditable()
- Stream<MouseEvent> get onDrag => Element.dragEvent.forTarget(this);
-
- /// Stream of `dragend` events handled by this [Window].
- @DomName('Window.ondragend')
- @DocsEditable()
- Stream<MouseEvent> get onDragEnd => Element.dragEndEvent.forTarget(this);
-
- /// Stream of `dragenter` events handled by this [Window].
- @DomName('Window.ondragenter')
- @DocsEditable()
- Stream<MouseEvent> get onDragEnter => Element.dragEnterEvent.forTarget(this);
-
- /// Stream of `dragleave` events handled by this [Window].
- @DomName('Window.ondragleave')
- @DocsEditable()
- Stream<MouseEvent> get onDragLeave => Element.dragLeaveEvent.forTarget(this);
-
- /// Stream of `dragover` events handled by this [Window].
- @DomName('Window.ondragover')
- @DocsEditable()
- Stream<MouseEvent> get onDragOver => Element.dragOverEvent.forTarget(this);
-
- /// Stream of `dragstart` events handled by this [Window].
- @DomName('Window.ondragstart')
- @DocsEditable()
- Stream<MouseEvent> get onDragStart => Element.dragStartEvent.forTarget(this);
-
- /// Stream of `drop` events handled by this [Window].
- @DomName('Window.ondrop')
- @DocsEditable()
- Stream<MouseEvent> get onDrop => Element.dropEvent.forTarget(this);
-
- @DomName('Window.ondurationchange')
- @DocsEditable()
- Stream<Event> get onDurationChange =>
- Element.durationChangeEvent.forTarget(this);
-
- @DomName('Window.onemptied')
- @DocsEditable()
- Stream<Event> get onEmptied => Element.emptiedEvent.forTarget(this);
-
- @DomName('Window.onended')
- @DocsEditable()
- Stream<Event> get onEnded => Element.endedEvent.forTarget(this);
-
- /// Stream of `error` events handled by this [Window].
- @DomName('Window.onerror')
- @DocsEditable()
- Stream<Event> get onError => Element.errorEvent.forTarget(this);
-
- /// Stream of `focus` events handled by this [Window].
- @DomName('Window.onfocus')
- @DocsEditable()
- Stream<Event> get onFocus => Element.focusEvent.forTarget(this);
-
- /// Stream of `hashchange` events handled by this [Window].
- @DomName('Window.onhashchange')
- @DocsEditable()
- Stream<Event> get onHashChange => hashChangeEvent.forTarget(this);
-
- /// Stream of `input` events handled by this [Window].
- @DomName('Window.oninput')
- @DocsEditable()
- Stream<Event> get onInput => Element.inputEvent.forTarget(this);
-
- /// Stream of `invalid` events handled by this [Window].
- @DomName('Window.oninvalid')
- @DocsEditable()
- Stream<Event> get onInvalid => Element.invalidEvent.forTarget(this);
-
- /// Stream of `keydown` events handled by this [Window].
- @DomName('Window.onkeydown')
- @DocsEditable()
- Stream<KeyboardEvent> get onKeyDown => Element.keyDownEvent.forTarget(this);
-
- /// Stream of `keypress` events handled by this [Window].
- @DomName('Window.onkeypress')
- @DocsEditable()
- Stream<KeyboardEvent> get onKeyPress => Element.keyPressEvent.forTarget(this);
-
- /// Stream of `keyup` events handled by this [Window].
- @DomName('Window.onkeyup')
- @DocsEditable()
- Stream<KeyboardEvent> get onKeyUp => Element.keyUpEvent.forTarget(this);
-
- /// Stream of `load` events handled by this [Window].
- @DomName('Window.onload')
- @DocsEditable()
- Stream<Event> get onLoad => Element.loadEvent.forTarget(this);
-
- @DomName('Window.onloadeddata')
- @DocsEditable()
- Stream<Event> get onLoadedData => Element.loadedDataEvent.forTarget(this);
-
- @DomName('Window.onloadedmetadata')
- @DocsEditable()
- Stream<Event> get onLoadedMetadata =>
- Element.loadedMetadataEvent.forTarget(this);
-
- @DomName('Window.onloadstart')
- @DocsEditable()
- Stream<Event> get onLoadStart => loadStartEvent.forTarget(this);
-
- /// Stream of `message` events handled by this [Window].
- @DomName('Window.onmessage')
- @DocsEditable()
- Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
-
- /// Stream of `mousedown` events handled by this [Window].
- @DomName('Window.onmousedown')
- @DocsEditable()
- Stream<MouseEvent> get onMouseDown => Element.mouseDownEvent.forTarget(this);
-
- /// Stream of `mouseenter` events handled by this [Window].
- @DomName('Window.onmouseenter')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<MouseEvent> get onMouseEnter =>
- Element.mouseEnterEvent.forTarget(this);
-
- /// Stream of `mouseleave` events handled by this [Window].
- @DomName('Window.onmouseleave')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<MouseEvent> get onMouseLeave =>
- Element.mouseLeaveEvent.forTarget(this);
-
- /// Stream of `mousemove` events handled by this [Window].
- @DomName('Window.onmousemove')
- @DocsEditable()
- Stream<MouseEvent> get onMouseMove => Element.mouseMoveEvent.forTarget(this);
-
- /// Stream of `mouseout` events handled by this [Window].
- @DomName('Window.onmouseout')
- @DocsEditable()
- Stream<MouseEvent> get onMouseOut => Element.mouseOutEvent.forTarget(this);
-
- /// Stream of `mouseover` events handled by this [Window].
- @DomName('Window.onmouseover')
- @DocsEditable()
- Stream<MouseEvent> get onMouseOver => Element.mouseOverEvent.forTarget(this);
-
- /// Stream of `mouseup` events handled by this [Window].
- @DomName('Window.onmouseup')
- @DocsEditable()
- Stream<MouseEvent> get onMouseUp => Element.mouseUpEvent.forTarget(this);
-
- /// Stream of `mousewheel` events handled by this [Window].
- @DomName('Window.onmousewheel')
- @DocsEditable()
- Stream<WheelEvent> get onMouseWheel =>
- Element.mouseWheelEvent.forTarget(this);
-
- /// Stream of `offline` events handled by this [Window].
- @DomName('Window.onoffline')
- @DocsEditable()
- Stream<Event> get onOffline => offlineEvent.forTarget(this);
-
- /// Stream of `online` events handled by this [Window].
- @DomName('Window.ononline')
- @DocsEditable()
- Stream<Event> get onOnline => onlineEvent.forTarget(this);
-
- /// Stream of `pagehide` events handled by this [Window].
- @DomName('Window.onpagehide')
- @DocsEditable()
- Stream<Event> get onPageHide => pageHideEvent.forTarget(this);
-
- /// Stream of `pageshow` events handled by this [Window].
- @DomName('Window.onpageshow')
- @DocsEditable()
- Stream<Event> get onPageShow => pageShowEvent.forTarget(this);
-
- @DomName('Window.onpause')
- @DocsEditable()
- Stream<Event> get onPause => Element.pauseEvent.forTarget(this);
-
- @DomName('Window.onplay')
- @DocsEditable()
- Stream<Event> get onPlay => Element.playEvent.forTarget(this);
-
- @DomName('Window.onplaying')
- @DocsEditable()
- Stream<Event> get onPlaying => Element.playingEvent.forTarget(this);
-
- /// Stream of `popstate` events handled by this [Window].
- @DomName('Window.onpopstate')
- @DocsEditable()
- Stream<PopStateEvent> get onPopState => popStateEvent.forTarget(this);
-
- @DomName('Window.onprogress')
- @DocsEditable()
- Stream<Event> get onProgress => progressEvent.forTarget(this);
-
- @DomName('Window.onratechange')
- @DocsEditable()
- Stream<Event> get onRateChange => Element.rateChangeEvent.forTarget(this);
-
- /// Stream of `reset` events handled by this [Window].
- @DomName('Window.onreset')
- @DocsEditable()
- Stream<Event> get onReset => Element.resetEvent.forTarget(this);
-
- /// Stream of `resize` events handled by this [Window].
- @DomName('Window.onresize')
- @DocsEditable()
- Stream<Event> get onResize => Element.resizeEvent.forTarget(this);
-
- /// Stream of `scroll` events handled by this [Window].
- @DomName('Window.onscroll')
- @DocsEditable()
- Stream<Event> get onScroll => Element.scrollEvent.forTarget(this);
-
- /// Stream of `search` events handled by this [Window].
- @DomName('Window.onsearch')
- @DocsEditable()
- // http://www.w3.org/TR/html-markup/input.search.html
- @Experimental()
- Stream<Event> get onSearch => Element.searchEvent.forTarget(this);
-
- @DomName('Window.onseeked')
- @DocsEditable()
- Stream<Event> get onSeeked => Element.seekedEvent.forTarget(this);
-
- @DomName('Window.onseeking')
- @DocsEditable()
- Stream<Event> get onSeeking => Element.seekingEvent.forTarget(this);
-
- /// Stream of `select` events handled by this [Window].
- @DomName('Window.onselect')
- @DocsEditable()
- Stream<Event> get onSelect => Element.selectEvent.forTarget(this);
-
- @DomName('Window.onstalled')
- @DocsEditable()
- Stream<Event> get onStalled => Element.stalledEvent.forTarget(this);
-
- /// Stream of `storage` events handled by this [Window].
- @DomName('Window.onstorage')
- @DocsEditable()
- Stream<StorageEvent> get onStorage => storageEvent.forTarget(this);
-
- /// Stream of `submit` events handled by this [Window].
- @DomName('Window.onsubmit')
- @DocsEditable()
- Stream<Event> get onSubmit => Element.submitEvent.forTarget(this);
-
- @DomName('Window.onsuspend')
- @DocsEditable()
- Stream<Event> get onSuspend => Element.suspendEvent.forTarget(this);
-
- @DomName('Window.ontimeupdate')
- @DocsEditable()
- Stream<Event> get onTimeUpdate => Element.timeUpdateEvent.forTarget(this);
-
- /// Stream of `touchcancel` events handled by this [Window].
- @DomName('Window.ontouchcancel')
- @DocsEditable()
- // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
- @Experimental()
- Stream<TouchEvent> get onTouchCancel =>
- Element.touchCancelEvent.forTarget(this);
-
- /// Stream of `touchend` events handled by this [Window].
- @DomName('Window.ontouchend')
- @DocsEditable()
- // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
- @Experimental()
- Stream<TouchEvent> get onTouchEnd => Element.touchEndEvent.forTarget(this);
-
- /// Stream of `touchmove` events handled by this [Window].
- @DomName('Window.ontouchmove')
- @DocsEditable()
- // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
- @Experimental()
- Stream<TouchEvent> get onTouchMove => Element.touchMoveEvent.forTarget(this);
-
- /// Stream of `touchstart` events handled by this [Window].
- @DomName('Window.ontouchstart')
- @DocsEditable()
- // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
- @Experimental()
- Stream<TouchEvent> get onTouchStart =>
- Element.touchStartEvent.forTarget(this);
-
- /// Stream of `transitionend` events handled by this [Window].
- @DomName('Window.ontransitionend')
- @DocsEditable()
- Stream<TransitionEvent> get onTransitionEnd =>
- Element.transitionEndEvent.forTarget(this);
-
- /// Stream of `unload` events handled by this [Window].
- @DomName('Window.onunload')
- @DocsEditable()
- Stream<Event> get onUnload => unloadEvent.forTarget(this);
-
- @DomName('Window.onvolumechange')
- @DocsEditable()
- Stream<Event> get onVolumeChange => Element.volumeChangeEvent.forTarget(this);
-
- @DomName('Window.onwaiting')
- @DocsEditable()
- Stream<Event> get onWaiting => Element.waitingEvent.forTarget(this);
-
- /// Stream of `animationend` events handled by this [Window].
- @DomName('Window.onwebkitAnimationEnd')
- @DocsEditable()
- @Experimental()
- Stream<AnimationEvent> get onAnimationEnd =>
- animationEndEvent.forTarget(this);
-
- /// Stream of `animationiteration` events handled by this [Window].
- @DomName('Window.onwebkitAnimationIteration')
- @DocsEditable()
- @Experimental()
- Stream<AnimationEvent> get onAnimationIteration =>
- animationIterationEvent.forTarget(this);
-
- /// Stream of `animationstart` events handled by this [Window].
- @DomName('Window.onwebkitAnimationStart')
- @DocsEditable()
- @Experimental()
- Stream<AnimationEvent> get onAnimationStart =>
- animationStartEvent.forTarget(this);
-
- /**
- * Static factory designed to expose `beforeunload` events to event
- * handlers that are not necessarily instances of [Window].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Window.beforeunloadEvent')
- static const EventStreamProvider<BeforeUnloadEvent> beforeUnloadEvent =
- const _BeforeUnloadEventStreamProvider('beforeunload');
-
- /// Stream of `beforeunload` events handled by this [Window].
- @DomName('Window.onbeforeunload')
- Stream<Event> get onBeforeUnload => beforeUnloadEvent.forTarget(this);
-
- /**
- * Moves this window to a specific position.
- *
- * x and y can be negative.
- *
- * ## Other resources
- *
- * * [Window.moveTo](https://developer.mozilla.org/en-US/docs/Web/API/Window.moveTo)
- * from MDN.
- * * [Window.moveTo](http://dev.w3.org/csswg/cssom-view/#dom-window-moveto)
- * from W3C.
- */
- void moveTo(Point p) {
- _moveTo(p.x, p.y);
- }
-
- @DomName('Window.pageXOffset')
- @DocsEditable()
- int get pageXOffset => JS('num', '#.pageXOffset', this).round();
-
- @DomName('Window.pageYOffset')
- @DocsEditable()
- int get pageYOffset => JS('num', '#.pageYOffset', this).round();
-
- /**
- * The distance this window has been scrolled horizontally.
- *
- * ## Other resources
- *
- * * [The Screen interface
- * specification](http://www.w3.org/TR/cssom-view/#screen) from W3C.
- * * [scrollX](https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollX)
- * from MDN.
- */
- @DomName('Window.scrollX')
- @DocsEditable()
- int get scrollX => JS('bool', '("scrollX" in #)', this)
- ? JS('num', '#.scrollX', this).round()
- : document.documentElement.scrollLeft;
-
- /**
- * The distance this window has been scrolled vertically.
- *
- * ## Other resources
- *
- * * [The Screen interface
- * specification](http://www.w3.org/TR/cssom-view/#screen) from W3C.
- * * [scrollY](https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollY)
- * from MDN.
- */
- @DomName('Window.scrollY')
- @DocsEditable()
- int get scrollY => JS('bool', '("scrollY" in #)', this)
- ? JS('num', '#.scrollY', this).round()
- : document.documentElement.scrollTop;
-}
-
-class _BeforeUnloadEvent extends _WrappedEvent implements BeforeUnloadEvent {
- String _returnValue;
-
- _BeforeUnloadEvent(Event base) : super(base);
-
- String get returnValue => _returnValue;
-
- set returnValue(String value) {
- _returnValue = value;
- // FF and IE use the value as the return value, Chrome will return this from
- // the event callback function.
- if (JS('bool', '("returnValue" in #)', wrapped)) {
- JS('void', '#.returnValue = #', wrapped, value);
- }
- }
-}
-
-class _BeforeUnloadEventStreamProvider
- implements EventStreamProvider<BeforeUnloadEvent> {
- final String _eventType;
-
- const _BeforeUnloadEventStreamProvider(this._eventType);
-
- Stream<BeforeUnloadEvent> forTarget(EventTarget e, {bool useCapture: false}) {
- // Specify the generic type for EventStream only in dart2js to avoid
- // checked mode errors in dartium.
- var stream = new _EventStream<BeforeUnloadEvent>(e, _eventType, useCapture);
- var controller = new StreamController<BeforeUnloadEvent>(sync: true);
-
- stream.listen((event) {
- var wrapped = new _BeforeUnloadEvent(event);
- controller.add(wrapped);
- });
-
- return controller.stream;
- }
-
- String getEventType(EventTarget target) {
- return _eventType;
- }
-
- ElementStream<BeforeUnloadEvent> forElement(Element e,
- {bool useCapture: false}) {
- // Specify the generic type for _ElementEventStreamImpl only in dart2js to
- // avoid checked mode errors in dartium.
- return new _ElementEventStreamImpl<BeforeUnloadEvent>(
- e, _eventType, useCapture);
- }
-
- ElementStream<BeforeUnloadEvent> _forElementList(ElementList e,
- {bool useCapture: false}) {
- // Specify the generic type for _ElementEventStreamImpl only in dart2js to
- // avoid checked mode errors in dartium.
- return new _ElementListEventStreamImpl<BeforeUnloadEvent>(
- e, _eventType, useCapture);
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('WindowBase64')
-@Experimental() // untriaged
-abstract class WindowBase64 extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory WindowBase64._() {
- throw new UnsupportedError("Not supported");
- }
-
- String atob(String atob);
-
- String btoa(String btoa);
-}
-// 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.
-
-@DocsEditable()
-@DomName('WindowClient')
-@Experimental() // untriaged
-@Native("WindowClient")
-class WindowClient extends Client {
- // To suppress missing implicit constructor warnings.
- factory WindowClient._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('WindowClient.focused')
- @DocsEditable()
- @Experimental() // untriaged
- final bool focused;
-
- @DomName('WindowClient.visibilityState')
- @DocsEditable()
- @Experimental() // untriaged
- final String visibilityState;
-
- @DomName('WindowClient.focus')
- @DocsEditable()
- @Experimental() // untriaged
- Future focus() native;
-
- @DomName('WindowClient.navigate')
- @DocsEditable()
- @Experimental() // untriaged
- Future navigate(String url) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('WindowEventHandlers')
-@Experimental() // untriaged
-abstract class WindowEventHandlers extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory WindowEventHandlers._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('WindowEventHandlers.hashchangeEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> hashChangeEvent =
- const EventStreamProvider<Event>('hashchange');
-
- @DomName('WindowEventHandlers.messageEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MessageEvent> messageEvent =
- const EventStreamProvider<MessageEvent>('message');
-
- @DomName('WindowEventHandlers.offlineEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> offlineEvent =
- const EventStreamProvider<Event>('offline');
-
- @DomName('WindowEventHandlers.onlineEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> onlineEvent =
- const EventStreamProvider<Event>('online');
-
- @DomName('WindowEventHandlers.popstateEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<PopStateEvent> popStateEvent =
- const EventStreamProvider<PopStateEvent>('popstate');
-
- @DomName('WindowEventHandlers.storageEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<StorageEvent> storageEvent =
- const EventStreamProvider<StorageEvent>('storage');
-
- @DomName('WindowEventHandlers.unloadEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> unloadEvent =
- const EventStreamProvider<Event>('unload');
-
- @DomName('WindowEventHandlers.onhashchange')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onHashChange => hashChangeEvent.forTarget(this);
-
- @DomName('WindowEventHandlers.onmessage')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
-
- @DomName('WindowEventHandlers.onoffline')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onOffline => offlineEvent.forTarget(this);
-
- @DomName('WindowEventHandlers.ononline')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onOnline => onlineEvent.forTarget(this);
-
- @DomName('WindowEventHandlers.onpopstate')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<PopStateEvent> get onPopState => popStateEvent.forTarget(this);
-
- @DomName('WindowEventHandlers.onstorage')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<StorageEvent> get onStorage => storageEvent.forTarget(this);
-
- @DomName('WindowEventHandlers.onunload')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onUnload => unloadEvent.forTarget(this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('Worker')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/workers.html#worker
-@Experimental() // stable
-@Native("Worker")
-class Worker extends EventTarget implements AbstractWorker {
- // To suppress missing implicit constructor warnings.
- factory Worker._() {
- throw new UnsupportedError("Not supported");
- }
-
- /**
- * Static factory designed to expose `error` events to event
- * handlers that are not necessarily instances of [Worker].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Worker.errorEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> errorEvent =
- const EventStreamProvider<Event>('error');
-
- /**
- * Static factory designed to expose `message` events to event
- * handlers that are not necessarily instances of [Worker].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('Worker.messageEvent')
- @DocsEditable()
- static const EventStreamProvider<MessageEvent> messageEvent =
- const EventStreamProvider<MessageEvent>('message');
-
- @DomName('Worker.Worker')
- @DocsEditable()
- factory Worker(String scriptUrl) {
- return Worker._create_1(scriptUrl);
- }
- static Worker _create_1(scriptUrl) =>
- JS('Worker', 'new Worker(#)', scriptUrl);
-
- /// Checks if this type is supported on the current platform.
- static bool get supported =>
- JS('bool', '(typeof window.Worker != "undefined")');
-
- @DomName('Worker.postMessage')
- @DocsEditable()
- void postMessage(/*SerializedScriptValue*/ message,
- [List<MessagePort> transfer]) {
- if (transfer != null) {
- var message_1 = convertDartToNative_SerializedScriptValue(message);
- _postMessage_1(message_1, transfer);
- return;
- }
- var message_1 = convertDartToNative_SerializedScriptValue(message);
- _postMessage_2(message_1);
- return;
- }
-
- @JSName('postMessage')
- @DomName('Worker.postMessage')
- @DocsEditable()
- void _postMessage_1(message, List<MessagePort> transfer) native;
- @JSName('postMessage')
- @DomName('Worker.postMessage')
- @DocsEditable()
- void _postMessage_2(message) native;
-
- @DomName('Worker.terminate')
- @DocsEditable()
- void terminate() native;
-
- /// Stream of `error` events handled by this [Worker].
- @DomName('Worker.onerror')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onError => errorEvent.forTarget(this);
-
- /// Stream of `message` events handled by this [Worker].
- @DomName('Worker.onmessage')
- @DocsEditable()
- Stream<MessageEvent> get onMessage => messageEvent.forTarget(this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('WorkerConsole')
-@Experimental() // untriaged
-@Native("WorkerConsole")
-class WorkerConsole extends ConsoleBase {
- // To suppress missing implicit constructor warnings.
- factory WorkerConsole._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('WorkerGlobalScope')
-@Experimental() // untriaged
-@Native("WorkerGlobalScope")
-class WorkerGlobalScope extends EventTarget
- implements _WindowTimers, WindowBase64 {
- // To suppress missing implicit constructor warnings.
- factory WorkerGlobalScope._() {
- throw new UnsupportedError("Not supported");
- }
-
- /**
- * Static factory designed to expose `error` events to event
- * handlers that are not necessarily instances of [WorkerGlobalScope].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('WorkerGlobalScope.errorEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> errorEvent =
- const EventStreamProvider<Event>('error');
-
- @DomName('WorkerGlobalScope.caches')
- @DocsEditable()
- @Experimental() // untriaged
- final CacheStorage caches;
-
- @DomName('WorkerGlobalScope.console')
- @DocsEditable()
- @Experimental() // untriaged
- final WorkerConsole console;
-
- @DomName('WorkerGlobalScope.crypto')
- @DocsEditable()
- @Experimental() // untriaged
- final Crypto crypto;
-
- @DomName('WorkerGlobalScope.indexedDB')
- @DocsEditable()
- @Experimental() // untriaged
- final IdbFactory indexedDB;
-
- @DomName('WorkerGlobalScope.location')
- @DocsEditable()
- @Experimental() // untriaged
- final _WorkerLocation location;
-
- @DomName('WorkerGlobalScope.navigator')
- @DocsEditable()
- @Experimental() // untriaged
- final _WorkerNavigator navigator;
-
- @DomName('WorkerGlobalScope.performance')
- @DocsEditable()
- @Experimental() // untriaged
- final WorkerPerformance performance;
-
- @DomName('WorkerGlobalScope.self')
- @DocsEditable()
- @Experimental() // untriaged
- final WorkerGlobalScope self;
-
- @DomName('WorkerGlobalScope.close')
- @DocsEditable()
- @Experimental() // untriaged
- void close() native;
-
- @DomName('WorkerGlobalScope.fetch')
- @DocsEditable()
- @Experimental() // untriaged
- Future fetch(/*RequestInfo*/ input, [Map init]) {
- if (init != null) {
- var init_1 = convertDartToNative_Dictionary(init);
- return _fetch_1(input, init_1);
- }
- return _fetch_2(input);
- }
-
- @JSName('fetch')
- @DomName('WorkerGlobalScope.fetch')
- @DocsEditable()
- @Experimental() // untriaged
- Future _fetch_1(input, init) native;
- @JSName('fetch')
- @DomName('WorkerGlobalScope.fetch')
- @DocsEditable()
- @Experimental() // untriaged
- Future _fetch_2(input) native;
-
- @DomName('WorkerGlobalScope.importScripts')
- @DocsEditable()
- @Experimental() // untriaged
- void importScripts(String urls) native;
-
- // From WindowBase64
-
- @DomName('WorkerGlobalScope.atob')
- @DocsEditable()
- @Experimental() // untriaged
- String atob(String atob) native;
-
- @DomName('WorkerGlobalScope.btoa')
- @DocsEditable()
- @Experimental() // untriaged
- String btoa(String btoa) native;
-
- // From WindowTimers
-
- @JSName('setInterval')
- @DomName('WorkerGlobalScope.setInterval')
- @DocsEditable()
- @Experimental() // untriaged
- int _setInterval_String(String handler, [int timeout, Object arguments])
- native;
-
- @JSName('setTimeout')
- @DomName('WorkerGlobalScope.setTimeout')
- @DocsEditable()
- @Experimental() // untriaged
- int _setTimeout_String(String handler, [int timeout, Object arguments])
- native;
-
- @JSName('clearInterval')
- @DomName('WorkerGlobalScope.clearInterval')
- @DocsEditable()
- @Experimental() // untriaged
- void _clearInterval([int handle]) native;
-
- @JSName('clearTimeout')
- @DomName('WorkerGlobalScope.clearTimeout')
- @DocsEditable()
- @Experimental() // untriaged
- void _clearTimeout([int handle]) native;
-
- @JSName('setInterval')
- @DomName('WorkerGlobalScope.setInterval')
- @DocsEditable()
- @Experimental() // untriaged
- int _setInterval(Object handler, [int timeout]) native;
-
- @JSName('setTimeout')
- @DomName('WorkerGlobalScope.setTimeout')
- @DocsEditable()
- @Experimental() // untriaged
- int _setTimeout(Object handler, [int timeout]) native;
-
- /// Stream of `error` events handled by this [WorkerGlobalScope].
- @DomName('WorkerGlobalScope.onerror')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onError => errorEvent.forTarget(this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('WorkerPerformance')
-@Experimental() // untriaged
-@Native("WorkerPerformance")
-class WorkerPerformance extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory WorkerPerformance._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('WorkerPerformance.memory')
- @DocsEditable()
- @Experimental() // untriaged
- final MemoryInfo memory;
-
- @DomName('WorkerPerformance.clearMarks')
- @DocsEditable()
- @Experimental() // untriaged
- void clearMarks(String markName) native;
-
- @DomName('WorkerPerformance.clearMeasures')
- @DocsEditable()
- @Experimental() // untriaged
- void clearMeasures(String measureName) native;
-
- @DomName('WorkerPerformance.clearResourceTimings')
- @DocsEditable()
- @Experimental() // untriaged
- void clearResourceTimings() native;
-
- @DomName('WorkerPerformance.getEntries')
- @DocsEditable()
- @Experimental() // untriaged
- List<PerformanceEntry> getEntries() native;
-
- @DomName('WorkerPerformance.getEntriesByName')
- @DocsEditable()
- @Experimental() // untriaged
- List<PerformanceEntry> getEntriesByName(String name, String entryType) native;
-
- @DomName('WorkerPerformance.getEntriesByType')
- @DocsEditable()
- @Experimental() // untriaged
- List<PerformanceEntry> getEntriesByType(String entryType) native;
-
- @DomName('WorkerPerformance.mark')
- @DocsEditable()
- @Experimental() // untriaged
- void mark(String markName) native;
-
- @DomName('WorkerPerformance.measure')
- @DocsEditable()
- @Experimental() // untriaged
- void measure(String measureName, String startMark, String endMark) native;
-
- @DomName('WorkerPerformance.now')
- @DocsEditable()
- @Experimental() // untriaged
- double now() native;
-
- @DomName('WorkerPerformance.setResourceTimingBufferSize')
- @DocsEditable()
- @Experimental() // untriaged
- void setResourceTimingBufferSize(int maxSize) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('XPathEvaluator')
-// http://www.w3.org/TR/DOM-Level-3-XPath/xpath.html#XPathEvaluator
-@deprecated // experimental
-@Native("XPathEvaluator")
-class XPathEvaluator extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory XPathEvaluator._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('XPathEvaluator.XPathEvaluator')
- @DocsEditable()
- factory XPathEvaluator() {
- return XPathEvaluator._create_1();
- }
- static XPathEvaluator _create_1() =>
- JS('XPathEvaluator', 'new XPathEvaluator()');
-
- @DomName('XPathEvaluator.createExpression')
- @DocsEditable()
- XPathExpression createExpression(String expression, XPathNSResolver resolver)
- native;
-
- @DomName('XPathEvaluator.createNSResolver')
- @DocsEditable()
- XPathNSResolver createNSResolver(Node nodeResolver) native;
-
- @DomName('XPathEvaluator.evaluate')
- @DocsEditable()
- XPathResult evaluate(
- String expression, Node contextNode, XPathNSResolver resolver,
- [int type, Object inResult]) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('XPathExpression')
-// http://www.w3.org/TR/DOM-Level-3-XPath/xpath.html#XPathExpression
-@deprecated // experimental
-@Native("XPathExpression")
-class XPathExpression extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory XPathExpression._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('XPathExpression.evaluate')
- @DocsEditable()
- XPathResult evaluate(Node contextNode, [int type, Object inResult]) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('XPathNSResolver')
-// http://www.w3.org/TR/DOM-Level-3-XPath/xpath.html#XPathNSResolver
-@deprecated // experimental
-@Native("XPathNSResolver")
-class XPathNSResolver extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory XPathNSResolver._() {
- throw new UnsupportedError("Not supported");
- }
-
- @JSName('lookupNamespaceURI')
- @DomName('XPathNSResolver.lookupNamespaceURI')
- @DocsEditable()
- String lookupNamespaceUri(String prefix) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('XPathResult')
-// http://www.w3.org/TR/DOM-Level-3-XPath/xpath.html#XPathResult
-@deprecated // experimental
-@Native("XPathResult")
-class XPathResult extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory XPathResult._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('XPathResult.ANY_TYPE')
- @DocsEditable()
- static const int ANY_TYPE = 0;
-
- @DomName('XPathResult.ANY_UNORDERED_NODE_TYPE')
- @DocsEditable()
- static const int ANY_UNORDERED_NODE_TYPE = 8;
-
- @DomName('XPathResult.BOOLEAN_TYPE')
- @DocsEditable()
- static const int BOOLEAN_TYPE = 3;
-
- @DomName('XPathResult.FIRST_ORDERED_NODE_TYPE')
- @DocsEditable()
- static const int FIRST_ORDERED_NODE_TYPE = 9;
-
- @DomName('XPathResult.NUMBER_TYPE')
- @DocsEditable()
- static const int NUMBER_TYPE = 1;
-
- @DomName('XPathResult.ORDERED_NODE_ITERATOR_TYPE')
- @DocsEditable()
- static const int ORDERED_NODE_ITERATOR_TYPE = 5;
-
- @DomName('XPathResult.ORDERED_NODE_SNAPSHOT_TYPE')
- @DocsEditable()
- static const int ORDERED_NODE_SNAPSHOT_TYPE = 7;
-
- @DomName('XPathResult.STRING_TYPE')
- @DocsEditable()
- static const int STRING_TYPE = 2;
-
- @DomName('XPathResult.UNORDERED_NODE_ITERATOR_TYPE')
- @DocsEditable()
- static const int UNORDERED_NODE_ITERATOR_TYPE = 4;
-
- @DomName('XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE')
- @DocsEditable()
- static const int UNORDERED_NODE_SNAPSHOT_TYPE = 6;
-
- @DomName('XPathResult.booleanValue')
- @DocsEditable()
- final bool booleanValue;
-
- @DomName('XPathResult.invalidIteratorState')
- @DocsEditable()
- final bool invalidIteratorState;
-
- @DomName('XPathResult.numberValue')
- @DocsEditable()
- final double numberValue;
-
- @DomName('XPathResult.resultType')
- @DocsEditable()
- final int resultType;
-
- @DomName('XPathResult.singleNodeValue')
- @DocsEditable()
- final Node singleNodeValue;
-
- @DomName('XPathResult.snapshotLength')
- @DocsEditable()
- final int snapshotLength;
-
- @DomName('XPathResult.stringValue')
- @DocsEditable()
- final String stringValue;
-
- @DomName('XPathResult.iterateNext')
- @DocsEditable()
- Node iterateNext() native;
-
- @DomName('XPathResult.snapshotItem')
- @DocsEditable()
- Node snapshotItem(int index) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('XMLDocument')
-@Experimental() // untriaged
-@Native("XMLDocument")
-class XmlDocument extends Document {
- // To suppress missing implicit constructor warnings.
- factory XmlDocument._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('XMLSerializer')
-// http://domparsing.spec.whatwg.org/#the-xmlserializer-interface
-@deprecated // stable
-@Native("XMLSerializer")
-class XmlSerializer extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory XmlSerializer._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('XMLSerializer.XMLSerializer')
- @DocsEditable()
- factory XmlSerializer() {
- return XmlSerializer._create_1();
- }
- static XmlSerializer _create_1() =>
- JS('XmlSerializer', 'new XMLSerializer()');
-
- @DomName('XMLSerializer.serializeToString')
- @DocsEditable()
- String serializeToString(Node root) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('XSLTProcessor')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@deprecated // nonstandard
-@Native("XSLTProcessor")
-class XsltProcessor extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory XsltProcessor._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('XSLTProcessor.XSLTProcessor')
- @DocsEditable()
- factory XsltProcessor() {
- return XsltProcessor._create_1();
- }
- static XsltProcessor _create_1() =>
- JS('XsltProcessor', 'new XSLTProcessor()');
-
- /// Checks if this type is supported on the current platform.
- static bool get supported => JS('bool', '!!(window.XSLTProcessor)');
-
- @DomName('XSLTProcessor.clearParameters')
- @DocsEditable()
- void clearParameters() native;
-
- @DomName('XSLTProcessor.getParameter')
- @DocsEditable()
- String getParameter(String namespaceURI, String localName) native;
-
- @DomName('XSLTProcessor.importStylesheet')
- @DocsEditable()
- void importStylesheet(Node style) native;
-
- @DomName('XSLTProcessor.removeParameter')
- @DocsEditable()
- void removeParameter(String namespaceURI, String localName) native;
-
- @DomName('XSLTProcessor.reset')
- @DocsEditable()
- void reset() native;
-
- @DomName('XSLTProcessor.setParameter')
- @DocsEditable()
- void setParameter(String namespaceURI, String localName, String value) native;
-
- @DomName('XSLTProcessor.transformToDocument')
- @DocsEditable()
- Document transformToDocument(Node source) native;
-
- @DomName('XSLTProcessor.transformToFragment')
- @DocsEditable()
- DocumentFragment transformToFragment(Node source, Document output) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('Attr')
-@Native("Attr")
-class _Attr extends Node {
- // To suppress missing implicit constructor warnings.
- factory _Attr._() {
- throw new UnsupportedError("Not supported");
- }
-
- @JSName('localName')
- @DomName('Attr.localName')
- @DocsEditable()
- @Experimental() // untriaged
- final String _localName;
-
- @DomName('Attr.name')
- @DocsEditable()
- final String name;
-
- @JSName('namespaceURI')
- @DomName('Attr.namespaceURI')
- @DocsEditable()
- @Experimental() // untriaged
- final String _namespaceUri;
-
- // Use implementation from Node.
- // final String nodeValue;
-
- @DomName('Attr.value')
- @DocsEditable()
- String value;
-}
-// 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.
-
-@DocsEditable()
-@DomName('Bluetooth')
-@Experimental() // untriaged
-@Native("Bluetooth")
-abstract class _Bluetooth extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory _Bluetooth._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('BluetoothAdvertisingData')
-@Experimental() // untriaged
-@Native("BluetoothAdvertisingData")
-abstract class _BluetoothAdvertisingData extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory _BluetoothAdvertisingData._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('BluetoothCharacteristicProperties')
-@Experimental() // untriaged
-@Native("BluetoothCharacteristicProperties")
-abstract class _BluetoothCharacteristicProperties extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory _BluetoothCharacteristicProperties._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('BluetoothDevice')
-@Experimental() // untriaged
-@Native("BluetoothDevice")
-abstract class _BluetoothDevice extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory _BluetoothDevice._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('BluetoothRemoteGATTCharacteristic')
-@Experimental() // untriaged
-@Native("BluetoothRemoteGATTCharacteristic")
-abstract class _BluetoothRemoteGATTCharacteristic extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory _BluetoothRemoteGATTCharacteristic._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('BluetoothRemoteGATTServer')
-@Experimental() // untriaged
-@Native("BluetoothRemoteGATTServer")
-abstract class _BluetoothRemoteGATTServer extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory _BluetoothRemoteGATTServer._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('BluetoothRemoteGATTService')
-@Experimental() // untriaged
-@Native("BluetoothRemoteGATTService")
-abstract class _BluetoothRemoteGATTService extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory _BluetoothRemoteGATTService._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('BluetoothUUID')
-@Experimental() // untriaged
-@Native("BluetoothUUID")
-abstract class _BluetoothUUID extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory _BluetoothUUID._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('Cache')
-@Experimental() // untriaged
-@Native("Cache")
-abstract class _Cache extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory _Cache._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('CanvasPathMethods')
-@Experimental() // untriaged
-abstract class _CanvasPathMethods extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory _CanvasPathMethods._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('ClientRect')
-@Native("ClientRect")
-class _ClientRect extends Interceptor implements Rectangle {
- // NOTE! All code below should be common with RectangleBase.
- String toString() {
- return 'Rectangle ($left, $top) $width x $height';
- }
-
- bool operator ==(other) {
- if (other is! Rectangle) return false;
- return left == other.left &&
- top == other.top &&
- width == other.width &&
- height == other.height;
- }
-
- int get hashCode => _JenkinsSmiHash.hash4(
- left.hashCode, top.hashCode, width.hashCode, height.hashCode);
-
- /**
- * Computes the intersection of `this` and [other].
- *
- * The intersection of two axis-aligned rectangles, if any, is always another
- * axis-aligned rectangle.
- *
- * Returns the intersection of this and `other`, or null if they don't
- * intersect.
- */
- Rectangle intersection(Rectangle other) {
- var x0 = max(left, other.left);
- var x1 = min(left + width, other.left + other.width);
-
- if (x0 <= x1) {
- var y0 = max(top, other.top);
- var y1 = min(top + height, other.top + other.height);
-
- if (y0 <= y1) {
- return new Rectangle(x0, y0, x1 - x0, y1 - y0);
- }
- }
- return null;
- }
-
- /**
- * Returns true if `this` intersects [other].
- */
- bool intersects(Rectangle<num> other) {
- return (left <= other.left + other.width &&
- other.left <= left + width &&
- top <= other.top + other.height &&
- other.top <= top + height);
- }
-
- /**
- * Returns a new rectangle which completely contains `this` and [other].
- */
- Rectangle boundingBox(Rectangle other) {
- var right = max(this.left + this.width, other.left + other.width);
- var bottom = max(this.top + this.height, other.top + other.height);
-
- var left = min(this.left, other.left);
- var top = min(this.top, other.top);
-
- return new Rectangle(left, top, right - left, bottom - top);
- }
-
- /**
- * Tests whether `this` entirely contains [another].
- */
- bool containsRectangle(Rectangle<num> another) {
- return left <= another.left &&
- left + width >= another.left + another.width &&
- top <= another.top &&
- top + height >= another.top + another.height;
- }
-
- /**
- * Tests whether [another] is inside or along the edges of `this`.
- */
- bool containsPoint(Point<num> another) {
- return another.x >= left &&
- another.x <= left + width &&
- another.y >= top &&
- another.y <= top + height;
- }
-
- Point get topLeft => new Point/*<num>*/(this.left, this.top);
- Point get topRight => new Point/*<num>*/(this.left + this.width, this.top);
- Point get bottomRight =>
- new Point/*<num>*/(this.left + this.width, this.top + this.height);
- Point get bottomLeft => new Point/*<num>*/(this.left, this.top + this.height);
-
- // To suppress missing implicit constructor warnings.
- factory _ClientRect._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('ClientRect.bottom')
- @DocsEditable()
- final double bottom;
-
- @DomName('ClientRect.height')
- @DocsEditable()
- final double height;
-
- @DomName('ClientRect.left')
- @DocsEditable()
- final double left;
-
- @DomName('ClientRect.right')
- @DocsEditable()
- final double right;
-
- @DomName('ClientRect.top')
- @DocsEditable()
- final double top;
-
- @DomName('ClientRect.width')
- @DocsEditable()
- final double width;
-}
-
-/**
- * This is the [Jenkins hash function][1] but using masking to keep
- * values in SMI range.
- *
- * [1]: http://en.wikipedia.org/wiki/Jenkins_hash_function
- *
- * Use:
- * Hash each value with the hash of the previous value, then get the final
- * hash by calling finish.
- *
- * var hash = 0;
- * for (var value in values) {
- * hash = JenkinsSmiHash.combine(hash, value.hashCode);
- * }
- * hash = JenkinsSmiHash.finish(hash);
- */
-class _JenkinsSmiHash {
- // TODO(11617): This class should be optimized and standardized elsewhere.
-
- static int combine(int hash, int value) {
- hash = 0x1fffffff & (hash + value);
- hash = 0x1fffffff & (hash + ((0x0007ffff & hash) << 10));
- return hash ^ (hash >> 6);
- }
-
- static int finish(int hash) {
- hash = 0x1fffffff & (hash + ((0x03ffffff & hash) << 3));
- hash = hash ^ (hash >> 11);
- return 0x1fffffff & (hash + ((0x00003fff & hash) << 15));
- }
-
- static int hash2(a, b) => finish(combine(combine(0, a), b));
-
- static int hash4(a, b, c, d) =>
- finish(combine(combine(combine(combine(0, a), b), c), d));
-}
-// 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.
-
-@DocsEditable()
-@DomName('ClientRectList')
-@Native("ClientRectList,DOMRectList")
-class _ClientRectList extends Interceptor
- with ListMixin<Rectangle>, ImmutableListMixin<Rectangle>
- implements List<Rectangle>, JavaScriptIndexingBehavior<Rectangle> {
- // To suppress missing implicit constructor warnings.
- factory _ClientRectList._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('ClientRectList.length')
- @DocsEditable()
- int get length => JS("int", "#.length", this);
-
- Rectangle operator [](int index) {
- if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
- throw new RangeError.index(index, this);
- return JS("Rectangle", "#[#]", this, index);
- }
-
- void operator []=(int index, Rectangle value) {
- throw new UnsupportedError("Cannot assign element of immutable List.");
- }
- // -- start List<Rectangle> mixins.
- // Rectangle is the element type.
-
- set length(int value) {
- throw new UnsupportedError("Cannot resize immutable List.");
- }
-
- Rectangle get first {
- if (this.length > 0) {
- return JS('Rectangle', '#[0]', this);
- }
- throw new StateError("No elements");
- }
-
- Rectangle get last {
- int len = this.length;
- if (len > 0) {
- return JS('Rectangle', '#[#]', this, len - 1);
- }
- throw new StateError("No elements");
- }
-
- Rectangle get single {
- int len = this.length;
- if (len == 1) {
- return JS('Rectangle', '#[0]', this);
- }
- if (len == 0) throw new StateError("No elements");
- throw new StateError("More than one element");
- }
-
- Rectangle elementAt(int index) => this[index];
- // -- end List<Rectangle> mixins.
-
- @DomName('ClientRectList.__getter__')
- @DocsEditable()
- @Experimental() // untriaged
- Rectangle __getter__(int index) native;
-
- @DomName('ClientRectList.item')
- @DocsEditable()
- Rectangle item(int index) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('CSSRuleList')
-@Native("CSSRuleList")
-class _CssRuleList extends Interceptor
- with ListMixin<CssRule>, ImmutableListMixin<CssRule>
- implements JavaScriptIndexingBehavior<CssRule>, List<CssRule> {
- // To suppress missing implicit constructor warnings.
- factory _CssRuleList._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('CSSRuleList.length')
- @DocsEditable()
- int get length => JS("int", "#.length", this);
-
- CssRule operator [](int index) {
- if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
- throw new RangeError.index(index, this);
- return JS("CssRule", "#[#]", this, index);
- }
-
- void operator []=(int index, CssRule value) {
- throw new UnsupportedError("Cannot assign element of immutable List.");
- }
- // -- start List<CssRule> mixins.
- // CssRule is the element type.
-
- set length(int value) {
- throw new UnsupportedError("Cannot resize immutable List.");
- }
-
- CssRule get first {
- if (this.length > 0) {
- return JS('CssRule', '#[0]', this);
- }
- throw new StateError("No elements");
- }
-
- CssRule get last {
- int len = this.length;
- if (len > 0) {
- return JS('CssRule', '#[#]', this, len - 1);
- }
- throw new StateError("No elements");
- }
-
- CssRule get single {
- int len = this.length;
- if (len == 1) {
- return JS('CssRule', '#[0]', this);
- }
- if (len == 0) throw new StateError("No elements");
- throw new StateError("More than one element");
- }
-
- CssRule elementAt(int index) => this[index];
- // -- end List<CssRule> mixins.
-
- @DomName('CSSRuleList.item')
- @DocsEditable()
- CssRule item(int index) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('DOMFileSystemSync')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@Experimental()
-// http://www.w3.org/TR/file-system-api/#the-filesystemsync-interface
-@Native("DOMFileSystemSync")
-abstract class _DOMFileSystemSync extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory _DOMFileSystemSync._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('DirectoryEntrySync')
-// http://www.w3.org/TR/file-system-api/#the-directoryentrysync-interface
-@Experimental()
-@Native("DirectoryEntrySync")
-abstract class _DirectoryEntrySync extends _EntrySync {
- // To suppress missing implicit constructor warnings.
- factory _DirectoryEntrySync._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('DirectoryReaderSync')
-// http://www.w3.org/TR/file-system-api/#idl-def-DirectoryReaderSync
-@Experimental()
-@Native("DirectoryReaderSync")
-abstract class _DirectoryReaderSync extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory _DirectoryReaderSync._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('DocumentType')
-// http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-412266927
-@deprecated // stable
-@Native("DocumentType")
-abstract class _DocumentType extends Node implements ChildNode {
- // To suppress missing implicit constructor warnings.
- factory _DocumentType._() {
- throw new UnsupportedError("Not supported");
- }
-
- // From ChildNode
-
-}
-
-// 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.
-
-@DocsEditable()
-@DomName('DOMRect')
-@Experimental() // untriaged
-@Native("DOMRect")
-class _DomRect extends DomRectReadOnly {
- // To suppress missing implicit constructor warnings.
- factory _DomRect._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('DOMRect.DOMRect')
- @DocsEditable()
- factory _DomRect([num x, num y, num width, num height]) {
- if (height != null) {
- return _DomRect._create_1(x, y, width, height);
- }
- if (width != null) {
- return _DomRect._create_2(x, y, width);
- }
- if (y != null) {
- return _DomRect._create_3(x, y);
- }
- if (x != null) {
- return _DomRect._create_4(x);
- }
- return _DomRect._create_5();
- }
- static _DomRect _create_1(x, y, width, height) =>
- JS('_DomRect', 'new DOMRect(#,#,#,#)', x, y, width, height);
- static _DomRect _create_2(x, y, width) =>
- JS('_DomRect', 'new DOMRect(#,#,#)', x, y, width);
- static _DomRect _create_3(x, y) => JS('_DomRect', 'new DOMRect(#,#)', x, y);
- static _DomRect _create_4(x) => JS('_DomRect', 'new DOMRect(#)', x);
- static _DomRect _create_5() => JS('_DomRect', 'new DOMRect()');
-
- // Shadowing definition.
- num get height => JS("num", "#.height", this);
-
- set height(num value) {
- JS("void", "#.height = #", this, value);
- }
-
- // Shadowing definition.
- num get width => JS("num", "#.width", this);
-
- set width(num value) {
- JS("void", "#.width = #", this, value);
- }
-
- // Shadowing definition.
- num get x => JS("num", "#.x", this);
-
- set x(num value) {
- JS("void", "#.x = #", this, value);
- }
-
- // Shadowing definition.
- num get y => JS("num", "#.y", this);
-
- set y(num value) {
- JS("void", "#.y = #", this, value);
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('EntrySync')
-// http://www.w3.org/TR/file-system-api/#idl-def-EntrySync
-@Experimental()
-@Native("EntrySync")
-abstract class _EntrySync extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory _EntrySync._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('FileEntrySync')
-// http://www.w3.org/TR/file-system-api/#the-fileentrysync-interface
-@Experimental()
-@Native("FileEntrySync")
-abstract class _FileEntrySync extends _EntrySync {
- // To suppress missing implicit constructor warnings.
- factory _FileEntrySync._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('FileReaderSync')
-// http://www.w3.org/TR/FileAPI/#FileReaderSync
-@Experimental()
-@Native("FileReaderSync")
-abstract class _FileReaderSync extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory _FileReaderSync._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('FileReaderSync.FileReaderSync')
- @DocsEditable()
- factory _FileReaderSync() {
- return _FileReaderSync._create_1();
- }
- static _FileReaderSync _create_1() =>
- JS('_FileReaderSync', 'new FileReaderSync()');
-}
-// 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.
-
-@DocsEditable()
-@DomName('FileWriterSync')
-// http://www.w3.org/TR/file-writer-api/#idl-def-FileWriterSync
-@Experimental()
-@Native("FileWriterSync")
-abstract class _FileWriterSync extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory _FileWriterSync._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('GamepadList')
-// https://dvcs.w3.org/hg/gamepad/raw-file/default/gamepad.html
-@Experimental()
-@Native("GamepadList")
-class _GamepadList extends Interceptor
- with ListMixin<Gamepad>, ImmutableListMixin<Gamepad>
- implements List<Gamepad>, JavaScriptIndexingBehavior<Gamepad> {
- // To suppress missing implicit constructor warnings.
- factory _GamepadList._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('GamepadList.length')
- @DocsEditable()
- int get length => JS("int", "#.length", this);
-
- Gamepad operator [](int index) {
- if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
- throw new RangeError.index(index, this);
- return JS("Gamepad|Null", "#[#]", this, index);
- }
-
- void operator []=(int index, Gamepad value) {
- throw new UnsupportedError("Cannot assign element of immutable List.");
- }
- // -- start List<Gamepad> mixins.
- // Gamepad is the element type.
-
- set length(int value) {
- throw new UnsupportedError("Cannot resize immutable List.");
- }
-
- Gamepad get first {
- if (this.length > 0) {
- return JS('Gamepad|Null', '#[0]', this);
- }
- throw new StateError("No elements");
- }
-
- Gamepad get last {
- int len = this.length;
- if (len > 0) {
- return JS('Gamepad|Null', '#[#]', this, len - 1);
- }
- throw new StateError("No elements");
- }
-
- Gamepad get single {
- int len = this.length;
- if (len == 1) {
- return JS('Gamepad|Null', '#[0]', this);
- }
- if (len == 0) throw new StateError("No elements");
- throw new StateError("More than one element");
- }
-
- Gamepad elementAt(int index) => this[index];
- // -- end List<Gamepad> mixins.
-
- @DomName('GamepadList.item')
- @DocsEditable()
- Gamepad item(int index) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLAllCollection')
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/obsolete.html#dom-document-all
-@deprecated // deprecated
-@Native("HTMLAllCollection")
-abstract class _HTMLAllCollection extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory _HTMLAllCollection._() {
- throw new UnsupportedError("Not supported");
- }
-
- @JSName('item')
- @DomName('HTMLAllCollection.item')
- @DocsEditable()
- Element _item(int index) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLDirectoryElement')
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/obsolete.html#dir
-@deprecated // deprecated
-@Native("HTMLDirectoryElement")
-abstract class _HTMLDirectoryElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory _HTMLDirectoryElement._() {
- throw new UnsupportedError("Not supported");
- }
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- _HTMLDirectoryElement.created() : super.created();
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLFontElement')
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/obsolete.html#htmlfontelement
-@deprecated // deprecated
-@Native("HTMLFontElement")
-abstract class _HTMLFontElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory _HTMLFontElement._() {
- throw new UnsupportedError("Not supported");
- }
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- _HTMLFontElement.created() : super.created();
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLFrameElement')
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/obsolete.html#htmlframeelement
-@deprecated // deprecated
-@Native("HTMLFrameElement")
-abstract class _HTMLFrameElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory _HTMLFrameElement._() {
- throw new UnsupportedError("Not supported");
- }
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- _HTMLFrameElement.created() : super.created();
-}
-// 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.
-
-@DocsEditable()
-@DomName('HTMLFrameSetElement')
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/obsolete.html#frameset
-@deprecated // deprecated
-@Native("HTMLFrameSetElement")
-abstract class _HTMLFrameSetElement extends HtmlElement
- implements WindowEventHandlers {
- // To suppress missing implicit constructor warnings.
- factory _HTMLFrameSetElement._() {
- throw new UnsupportedError("Not supported");
- }
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- _HTMLFrameSetElement.created() : super.created();
-}
-
-// 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.
-
-@DocsEditable()
-@DomName('HTMLMarqueeElement')
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/obsolete.html#the-marquee-element
-@deprecated // deprecated
-@Native("HTMLMarqueeElement")
-abstract class _HTMLMarqueeElement extends HtmlElement {
- // To suppress missing implicit constructor warnings.
- factory _HTMLMarqueeElement._() {
- throw new UnsupportedError("Not supported");
- }
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- _HTMLMarqueeElement.created() : super.created();
-}
-// 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.
-
-@DocsEditable()
-@DomName('NFC')
-@Experimental() // untriaged
-@Native("NFC")
-abstract class _NFC extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory _NFC._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('NamedNodeMap')
-// http://dom.spec.whatwg.org/#namednodemap
-@deprecated // deprecated
-@Native("NamedNodeMap,MozNamedAttrMap")
-class _NamedNodeMap extends Interceptor
- with ListMixin<Node>, ImmutableListMixin<Node>
- implements JavaScriptIndexingBehavior<Node>, List<Node> {
- // To suppress missing implicit constructor warnings.
- factory _NamedNodeMap._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('NamedNodeMap.length')
- @DocsEditable()
- int get length => JS("int", "#.length", this);
-
- Node operator [](int index) {
- if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
- throw new RangeError.index(index, this);
- return JS("Node", "#[#]", this, index);
- }
-
- void operator []=(int index, Node value) {
- throw new UnsupportedError("Cannot assign element of immutable List.");
- }
- // -- start List<Node> mixins.
- // Node is the element type.
-
- set length(int value) {
- throw new UnsupportedError("Cannot resize immutable List.");
- }
-
- Node get first {
- if (this.length > 0) {
- return JS('Node', '#[0]', this);
- }
- throw new StateError("No elements");
- }
-
- Node get last {
- int len = this.length;
- if (len > 0) {
- return JS('Node', '#[#]', this, len - 1);
- }
- throw new StateError("No elements");
- }
-
- Node get single {
- int len = this.length;
- if (len == 1) {
- return JS('Node', '#[0]', this);
- }
- if (len == 0) throw new StateError("No elements");
- throw new StateError("More than one element");
- }
-
- Node elementAt(int index) => this[index];
- // -- end List<Node> mixins.
-
- @DomName('NamedNodeMap.getNamedItem')
- @DocsEditable()
- _Attr getNamedItem(String name) native;
-
- @DomName('NamedNodeMap.getNamedItemNS')
- @DocsEditable()
- _Attr getNamedItemNS(String namespaceURI, String localName) native;
-
- @DomName('NamedNodeMap.item')
- @DocsEditable()
- _Attr item(int index) native;
-
- @DomName('NamedNodeMap.removeNamedItem')
- @DocsEditable()
- _Attr removeNamedItem(String name) native;
-
- @DomName('NamedNodeMap.removeNamedItemNS')
- @DocsEditable()
- _Attr removeNamedItemNS(String namespaceURI, String localName) native;
-
- @DomName('NamedNodeMap.setNamedItem')
- @DocsEditable()
- _Attr setNamedItem(_Attr attr) native;
-
- @DomName('NamedNodeMap.setNamedItemNS')
- @DocsEditable()
- _Attr setNamedItemNS(_Attr attr) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('PagePopupController')
-@deprecated // nonstandard
-@Native("PagePopupController")
-abstract class _PagePopupController extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory _PagePopupController._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-// Omit RadioNodeList for dart2js. The Dart Form and FieldSet APIs don't
-// currently expose an API the returns RadioNodeList. The only use of a
-// RadioNodeList is to get the selected value and it will be cleaner to
-// introduce a different API for that purpose.
-// 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.
-
-@DocsEditable()
-@DomName('Request')
-@Experimental() // untriaged
-@Native("Request")
-class _Request extends Body {
- // To suppress missing implicit constructor warnings.
- factory _Request._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('Request.Request')
- @DocsEditable()
- factory _Request(Object input, [Map requestInitDict]) {
- if (requestInitDict != null) {
- var requestInitDict_1 = convertDartToNative_Dictionary(requestInitDict);
- return _Request._create_1(input, requestInitDict_1);
- }
- return _Request._create_2(input);
- }
- static _Request _create_1(input, requestInitDict) =>
- JS('_Request', 'new Request(#,#)', input, requestInitDict);
- static _Request _create_2(input) => JS('_Request', 'new Request(#)', input);
-
- @DomName('Request.credentials')
- @DocsEditable()
- @Experimental() // untriaged
- final String credentials;
-
- @DomName('Request.headers')
- @DocsEditable()
- @Experimental() // untriaged
- final Headers headers;
-
- @DomName('Request.integrity')
- @DocsEditable()
- @Experimental() // untriaged
- final String integrity;
-
- @DomName('Request.mode')
- @DocsEditable()
- @Experimental() // untriaged
- final String mode;
-
- @DomName('Request.redirect')
- @DocsEditable()
- @Experimental() // untriaged
- final String redirect;
-
- @DomName('Request.referrer')
- @DocsEditable()
- @Experimental() // untriaged
- final String referrer;
-
- @DomName('Request.url')
- @DocsEditable()
- @Experimental() // untriaged
- final String url;
-
- @DomName('Request.clone')
- @DocsEditable()
- @Experimental() // untriaged
- _Request clone() native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('ResourceProgressEvent')
-// https://chromiumcodereview.appspot.com/14773025/
-@deprecated // experimental
-@Native("ResourceProgressEvent")
-abstract class _ResourceProgressEvent extends ProgressEvent {
- // To suppress missing implicit constructor warnings.
- factory _ResourceProgressEvent._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('Response')
-@Experimental() // untriaged
-@Native("Response")
-abstract class _Response extends Body {
- // To suppress missing implicit constructor warnings.
- factory _Response._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('Response.Response')
- @DocsEditable()
- factory _Response([Object body, Map responseInitDict]) {
- if (responseInitDict != null) {
- var responseInitDict_1 = convertDartToNative_Dictionary(responseInitDict);
- return _Response._create_1(body, responseInitDict_1);
- }
- if (body != null) {
- return _Response._create_2(body);
- }
- return _Response._create_3();
- }
- static _Response _create_1(body, responseInitDict) =>
- JS('_Response', 'new Response(#,#)', body, responseInitDict);
- static _Response _create_2(body) => JS('_Response', 'new Response(#)', body);
- static _Response _create_3() => JS('_Response', 'new Response()');
-}
-// 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.
-
-@DocsEditable()
-@DomName('ServiceWorker')
-@Experimental() // untriaged
-@Native("ServiceWorker")
-abstract class _ServiceWorker extends EventTarget implements AbstractWorker {
- // To suppress missing implicit constructor warnings.
- factory _ServiceWorker._() {
- throw new UnsupportedError("Not supported");
- }
-}
-
-// 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.
-
-@DocsEditable()
-@DomName('SpeechRecognitionResultList')
-// https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#speechrecognitionresultlist
-@Experimental()
-@Native("SpeechRecognitionResultList")
-class _SpeechRecognitionResultList extends Interceptor
- with
- ListMixin<SpeechRecognitionResult>,
- ImmutableListMixin<SpeechRecognitionResult>
- implements
- JavaScriptIndexingBehavior<SpeechRecognitionResult>,
- List<SpeechRecognitionResult> {
- // To suppress missing implicit constructor warnings.
- factory _SpeechRecognitionResultList._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SpeechRecognitionResultList.length')
- @DocsEditable()
- int get length => JS("int", "#.length", this);
-
- SpeechRecognitionResult operator [](int index) {
- if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
- throw new RangeError.index(index, this);
- return JS("SpeechRecognitionResult", "#[#]", this, index);
- }
-
- void operator []=(int index, SpeechRecognitionResult value) {
- throw new UnsupportedError("Cannot assign element of immutable List.");
- }
- // -- start List<SpeechRecognitionResult> mixins.
- // SpeechRecognitionResult is the element type.
-
- set length(int value) {
- throw new UnsupportedError("Cannot resize immutable List.");
- }
-
- SpeechRecognitionResult get first {
- if (this.length > 0) {
- return JS('SpeechRecognitionResult', '#[0]', this);
- }
- throw new StateError("No elements");
- }
-
- SpeechRecognitionResult get last {
- int len = this.length;
- if (len > 0) {
- return JS('SpeechRecognitionResult', '#[#]', this, len - 1);
- }
- throw new StateError("No elements");
- }
-
- SpeechRecognitionResult get single {
- int len = this.length;
- if (len == 1) {
- return JS('SpeechRecognitionResult', '#[0]', this);
- }
- if (len == 0) throw new StateError("No elements");
- throw new StateError("More than one element");
- }
-
- SpeechRecognitionResult elementAt(int index) => this[index];
- // -- end List<SpeechRecognitionResult> mixins.
-
- @DomName('SpeechRecognitionResultList.item')
- @DocsEditable()
- SpeechRecognitionResult item(int index) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('StyleSheetList')
-@Native("StyleSheetList")
-class _StyleSheetList extends Interceptor
- with ListMixin<StyleSheet>, ImmutableListMixin<StyleSheet>
- implements List<StyleSheet>, JavaScriptIndexingBehavior<StyleSheet> {
- // To suppress missing implicit constructor warnings.
- factory _StyleSheetList._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('StyleSheetList.length')
- @DocsEditable()
- int get length => JS("int", "#.length", this);
-
- StyleSheet operator [](int index) {
- if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
- throw new RangeError.index(index, this);
- return JS("StyleSheet", "#[#]", this, index);
- }
-
- void operator []=(int index, StyleSheet value) {
- throw new UnsupportedError("Cannot assign element of immutable List.");
- }
- // -- start List<StyleSheet> mixins.
- // StyleSheet is the element type.
-
- set length(int value) {
- throw new UnsupportedError("Cannot resize immutable List.");
- }
-
- StyleSheet get first {
- if (this.length > 0) {
- return JS('StyleSheet', '#[0]', this);
- }
- throw new StateError("No elements");
- }
-
- StyleSheet get last {
- int len = this.length;
- if (len > 0) {
- return JS('StyleSheet', '#[#]', this, len - 1);
- }
- throw new StateError("No elements");
- }
-
- StyleSheet get single {
- int len = this.length;
- if (len == 1) {
- return JS('StyleSheet', '#[0]', this);
- }
- if (len == 0) throw new StateError("No elements");
- throw new StateError("More than one element");
- }
-
- StyleSheet elementAt(int index) => this[index];
- // -- end List<StyleSheet> mixins.
-
- @DomName('StyleSheetList.__getter__')
- @DocsEditable()
- CssStyleSheet __getter__(String name) native;
-
- @DomName('StyleSheetList.item')
- @DocsEditable()
- StyleSheet item(int index) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SubtleCrypto')
-@Experimental() // untriaged
-@Native("SubtleCrypto")
-abstract class _SubtleCrypto extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory _SubtleCrypto._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('USB')
-@Experimental() // untriaged
-@Native("USB")
-abstract class _USB extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory _USB._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('USBAlternateInterface')
-@Experimental() // untriaged
-@Native("USBAlternateInterface")
-abstract class _USBAlternateInterface extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory _USBAlternateInterface._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('USBAlternateInterface.USBAlternateInterface')
- @DocsEditable()
- factory _USBAlternateInterface(
- _USBInterface deviceInterface, int alternateSetting) {
- return _USBAlternateInterface._create_1(deviceInterface, alternateSetting);
- }
- static _USBAlternateInterface _create_1(deviceInterface, alternateSetting) =>
- JS('_USBAlternateInterface', 'new USBAlternateInterface(#,#)',
- deviceInterface, alternateSetting);
-}
-// 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.
-
-@DocsEditable()
-@DomName('USBConfiguration')
-@Experimental() // untriaged
-@Native("USBConfiguration")
-abstract class _USBConfiguration extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory _USBConfiguration._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('USBConfiguration.USBConfiguration')
- @DocsEditable()
- factory _USBConfiguration(_USBDevice device, int configurationValue) {
- return _USBConfiguration._create_1(device, configurationValue);
- }
- static _USBConfiguration _create_1(device, configurationValue) => JS(
- '_USBConfiguration',
- 'new USBConfiguration(#,#)',
- device,
- configurationValue);
-}
-// 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.
-
-@DocsEditable()
-@DomName('USBConnectionEvent')
-@Experimental() // untriaged
-@Native("USBConnectionEvent")
-abstract class _USBConnectionEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory _USBConnectionEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('USBConnectionEvent.USBConnectionEvent')
- @DocsEditable()
- factory _USBConnectionEvent(String type, [Map eventInitDict]) {
- if (eventInitDict != null) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return _USBConnectionEvent._create_1(type, eventInitDict_1);
- }
- return _USBConnectionEvent._create_2(type);
- }
- static _USBConnectionEvent _create_1(type, eventInitDict) => JS(
- '_USBConnectionEvent',
- 'new USBConnectionEvent(#,#)',
- type,
- eventInitDict);
- static _USBConnectionEvent _create_2(type) =>
- JS('_USBConnectionEvent', 'new USBConnectionEvent(#)', type);
-}
-// 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.
-
-@DocsEditable()
-@DomName('USBDevice')
-@Experimental() // untriaged
-@Native("USBDevice")
-abstract class _USBDevice extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory _USBDevice._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('USBEndpoint')
-@Experimental() // untriaged
-@Native("USBEndpoint")
-abstract class _USBEndpoint extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory _USBEndpoint._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('USBEndpoint.USBEndpoint')
- @DocsEditable()
- factory _USBEndpoint(
- _USBAlternateInterface alternate, int endpointNumber, String direction) {
- return _USBEndpoint._create_1(alternate, endpointNumber, direction);
- }
- static _USBEndpoint _create_1(alternate, endpointNumber, direction) => JS(
- '_USBEndpoint',
- 'new USBEndpoint(#,#,#)',
- alternate,
- endpointNumber,
- direction);
-}
-// 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.
-
-@DocsEditable()
-@DomName('USBInTransferResult')
-@Experimental() // untriaged
-@Native("USBInTransferResult")
-abstract class _USBInTransferResult extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory _USBInTransferResult._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('USBInterface')
-@Experimental() // untriaged
-@Native("USBInterface")
-abstract class _USBInterface extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory _USBInterface._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('USBInterface.USBInterface')
- @DocsEditable()
- factory _USBInterface(_USBConfiguration configuration, int interfaceNumber) {
- return _USBInterface._create_1(configuration, interfaceNumber);
- }
- static _USBInterface _create_1(configuration, interfaceNumber) => JS(
- '_USBInterface', 'new USBInterface(#,#)', configuration, interfaceNumber);
-}
-// 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.
-
-@DocsEditable()
-@DomName('USBIsochronousInTransferPacket')
-@Experimental() // untriaged
-@Native("USBIsochronousInTransferPacket")
-abstract class _USBIsochronousInTransferPacket extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory _USBIsochronousInTransferPacket._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('USBIsochronousInTransferResult')
-@Experimental() // untriaged
-@Native("USBIsochronousInTransferResult")
-abstract class _USBIsochronousInTransferResult extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory _USBIsochronousInTransferResult._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('USBIsochronousOutTransferPacket')
-@Experimental() // untriaged
-@Native("USBIsochronousOutTransferPacket")
-abstract class _USBIsochronousOutTransferPacket extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory _USBIsochronousOutTransferPacket._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('USBIsochronousOutTransferResult')
-@Experimental() // untriaged
-@Native("USBIsochronousOutTransferResult")
-abstract class _USBIsochronousOutTransferResult extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory _USBIsochronousOutTransferResult._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('USBOutTransferResult')
-@Experimental() // untriaged
-@Native("USBOutTransferResult")
-abstract class _USBOutTransferResult extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory _USBOutTransferResult._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('WebKitCSSMatrix')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Experimental()
-// http://dev.w3.org/csswg/cssom/
-@deprecated // deprecated
-@Native("WebKitCSSMatrix")
-abstract class _WebKitCSSMatrix extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory _WebKitCSSMatrix._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('WebKitCSSMatrix.WebKitCSSMatrix')
- @DocsEditable()
- factory _WebKitCSSMatrix([String cssValue]) {
- if (cssValue != null) {
- return _WebKitCSSMatrix._create_1(cssValue);
- }
- return _WebKitCSSMatrix._create_2();
- }
- static _WebKitCSSMatrix _create_1(cssValue) =>
- JS('_WebKitCSSMatrix', 'new WebKitCSSMatrix(#)', cssValue);
- static _WebKitCSSMatrix _create_2() =>
- JS('_WebKitCSSMatrix', 'new WebKitCSSMatrix()');
-}
-// 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.
-
-@DocsEditable()
-@DomName('WindowTimers')
-@Experimental() // untriaged
-abstract class _WindowTimers extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory _WindowTimers._() {
- throw new UnsupportedError("Not supported");
- }
-
- int _setInterval_String(String handler, [int timeout, Object arguments]);
-
- int _setTimeout_String(String handler, [int timeout, Object arguments]);
-
- void _clearInterval([int handle]);
-
- void _clearTimeout([int handle]);
-
- int _setInterval(Object handler, [int timeout]);
-
- int _setTimeout(Object handler, [int timeout]);
-}
-// 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.
-
-@DocsEditable()
-@DomName('WorkerLocation')
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/workers.html#workerlocation
-@Experimental()
-@Native("WorkerLocation")
-abstract class _WorkerLocation extends Interceptor implements UrlUtilsReadOnly {
- // To suppress missing implicit constructor warnings.
- factory _WorkerLocation._() {
- throw new UnsupportedError("Not supported");
- }
-
- // From URLUtilsReadOnly
-
-}
-
-// 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.
-
-@DocsEditable()
-@DomName('WorkerNavigator')
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/workers.html#workernavigator
-@Experimental()
-@Native("WorkerNavigator")
-abstract class _WorkerNavigator extends Interceptor
- implements NavigatorCpu, NavigatorOnLine, NavigatorID {
- // To suppress missing implicit constructor warnings.
- factory _WorkerNavigator._() {
- throw new UnsupportedError("Not supported");
- }
-
- // From NavigatorCPU
-
- // From NavigatorID
-
- // From NavigatorOnLine
-
-}
-
-// 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.
-
-@DocsEditable()
-@DomName('Worklet')
-@Experimental() // untriaged
-@Native("Worklet")
-abstract class _Worklet extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory _Worklet._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('WorkletGlobalScope')
-@Experimental() // untriaged
-@Native("WorkletGlobalScope")
-abstract class _WorkletGlobalScope extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory _WorkletGlobalScope._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-abstract class _AttributeMap implements Map<String, String> {
- final Element _element;
-
- _AttributeMap(this._element);
-
- void addAll(Map<String, String> other) {
- other.forEach((k, v) {
- this[k] = v;
- });
- }
-
- bool containsValue(Object value) {
- for (var v in this.values) {
- if (value == v) {
- return true;
- }
- }
- return false;
- }
-
- String putIfAbsent(String key, String ifAbsent()) {
- if (!containsKey(key)) {
- this[key] = ifAbsent();
- }
- return this[key];
- }
-
- void clear() {
- for (var key in keys) {
- remove(key);
- }
- }
-
- void forEach(void f(String key, String value)) {
- for (var key in keys) {
- var value = this[key];
- f(key, value);
- }
- }
-
- Iterable<String> get keys {
- // TODO: generate a lazy collection instead.
- var attributes = _element._attributes;
- var keys = <String>[];
- for (int i = 0, len = attributes.length; i < len; i++) {
- _Attr attr = attributes[i];
- if (_matches(attr)) {
- keys.add(attr.name);
- }
- }
- return keys;
- }
-
- Iterable<String> get values {
- // TODO: generate a lazy collection instead.
- var attributes = _element._attributes;
- var values = <String>[];
- for (int i = 0, len = attributes.length; i < len; i++) {
- _Attr attr = attributes[i];
- if (_matches(attr)) {
- values.add(attr.value);
- }
- }
- return values;
- }
-
- /**
- * Returns true if there is no {key, value} pair in the map.
- */
- bool get isEmpty {
- return length == 0;
- }
-
- /**
- * Returns true if there is at least one {key, value} pair in the map.
- */
- bool get isNotEmpty => !isEmpty;
-
- /**
- * Checks to see if the node should be included in this map.
- */
- bool _matches(_Attr node);
-}
-
-/**
- * Wrapper to expose [Element.attributes] as a typed map.
- */
-class _ElementAttributeMap extends _AttributeMap {
- _ElementAttributeMap(Element element) : super(element);
-
- bool containsKey(Object key) {
- return _element._hasAttribute(key);
- }
-
- String operator [](Object key) {
- return _element.getAttribute(key);
- }
-
- void operator []=(String key, String value) {
- _element.setAttribute(key, value);
- }
-
- String remove(Object key) {
- String value = _element.getAttribute(key);
- _element._removeAttribute(key);
- return value;
- }
-
- /**
- * The number of {key, value} pairs in the map.
- */
- int get length {
- return keys.length;
- }
-
- bool _matches(_Attr node) => node._namespaceUri == null;
-}
-
-/**
- * Wrapper to expose namespaced attributes as a typed map.
- */
-class _NamespacedAttributeMap extends _AttributeMap {
- final String _namespace;
-
- _NamespacedAttributeMap(Element element, this._namespace) : super(element);
-
- bool containsKey(Object key) {
- return _element._hasAttributeNS(_namespace, key);
- }
-
- String operator [](Object key) {
- return _element.getAttributeNS(_namespace, key);
- }
-
- void operator []=(String key, String value) {
- _element.setAttributeNS(_namespace, key, value);
- }
-
- String remove(Object key) {
- String value = this[key];
- _element._removeAttributeNS(_namespace, key);
- return value;
- }
-
- /**
- * The number of {key, value} pairs in the map.
- */
- int get length {
- return keys.length;
- }
-
- bool _matches(_Attr node) => node._namespaceUri == _namespace;
-}
-
-/**
- * Provides a Map abstraction on top of data-* attributes, similar to the
- * dataSet in the old DOM.
- */
-class _DataAttributeMap implements Map<String, String> {
- final Map<String, String> _attributes;
-
- _DataAttributeMap(this._attributes);
-
- // interface Map
-
- void addAll(Map<String, String> other) {
- other.forEach((k, v) {
- this[k] = v;
- });
- }
-
- // TODO: Use lazy iterator when it is available on Map.
- bool containsValue(Object value) => values.any((v) => v == value);
-
- bool containsKey(Object key) => _attributes.containsKey(_attr(key));
-
- String operator [](Object key) => _attributes[_attr(key)];
-
- void operator []=(String key, String value) {
- _attributes[_attr(key)] = value;
- }
-
- String putIfAbsent(String key, String ifAbsent()) =>
- _attributes.putIfAbsent(_attr(key), ifAbsent);
-
- String remove(Object key) => _attributes.remove(_attr(key));
-
- void clear() {
- // Needs to operate on a snapshot since we are mutating the collection.
- for (String key in keys) {
- remove(key);
- }
- }
-
- void forEach(void f(String key, String value)) {
- _attributes.forEach((String key, String value) {
- if (_matches(key)) {
- f(_strip(key), value);
- }
- });
- }
-
- Iterable<String> get keys {
- final keys = <String>[];
- _attributes.forEach((String key, String value) {
- if (_matches(key)) {
- keys.add(_strip(key));
- }
- });
- return keys;
- }
-
- Iterable<String> get values {
- final values = <String>[];
- _attributes.forEach((String key, String value) {
- if (_matches(key)) {
- values.add(value);
- }
- });
- return values;
- }
-
- int get length => keys.length;
-
- // TODO: Use lazy iterator when it is available on Map.
- bool get isEmpty => length == 0;
-
- bool get isNotEmpty => !isEmpty;
-
- // Helpers.
- String _attr(String key) => 'data-${_toHyphenedName(key)}';
- bool _matches(String key) => key.startsWith('data-');
- String _strip(String key) => _toCamelCase(key.substring(5));
-
- /**
- * Converts a string name with hyphens into an identifier, by removing hyphens
- * and capitalizing the following letter. Optionally [startUppercase] to
- * captialize the first letter.
- */
- String _toCamelCase(String hyphenedName, {bool startUppercase: false}) {
- var segments = hyphenedName.split('-');
- int start = startUppercase ? 0 : 1;
- for (int i = start; i < segments.length; i++) {
- var segment = segments[i];
- if (segment.length > 0) {
- // Character between 'a'..'z' mapped to 'A'..'Z'
- segments[i] = '${segment[0].toUpperCase()}${segment.substring(1)}';
- }
- }
- return segments.join('');
- }
-
- /** Reverse of [toCamelCase]. */
- String _toHyphenedName(String word) {
- var sb = new StringBuffer();
- for (int i = 0; i < word.length; i++) {
- var lower = word[i].toLowerCase();
- if (word[i] != lower && i > 0) sb.write('-');
- sb.write(lower);
- }
- return sb.toString();
- }
-}
-// 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.
-
-/**
- * An object that can be drawn to a 2D canvas rendering context.
- *
- * The image drawn to the canvas depends on the type of this object:
- *
- * * If this object is an [ImageElement], then this element's image is
- * drawn to the canvas. If this element is an animated image, then this
- * element's poster frame is drawn. If this element has no poster frame, then
- * the first frame of animation is drawn.
- *
- * * If this object is a [VideoElement], then the frame at this element's current
- * playback position is drawn to the canvas.
- *
- * * If this object is a [CanvasElement], then this element's bitmap is drawn to
- * the canvas.
- *
- * **Note:** Currently all versions of Internet Explorer do not support
- * drawing a video element to a canvas. You may also encounter problems drawing
- * a video to a canvas in Firefox if the source of the video is a data URL.
- *
- * ## See also
- *
- * * [CanvasRenderingContext2D.drawImage]
- * * [CanvasRenderingContext2D.drawImageToRect]
- * * [CanvasRenderingContext2D.drawImageScaled]
- * * [CanvasRenderingContext2D.drawImageScaledFromSource]
- *
- * ## Other resources
- *
- * * [Image sources for 2D rendering
- * contexts](https://html.spec.whatwg.org/multipage/scripting.html#image-sources-for-2d-rendering-contexts)
- * from WHATWG.
- * * [Drawing images](https://html.spec.whatwg.org/multipage/scripting.html#dom-context-2d-drawimage)
- * from WHATWG.
- */
-abstract class CanvasImageSource {}
-// 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.
-
-/**
- * Top-level container for a browser tab or window.
- *
- * In a web browser, a [WindowBase] object represents any browser window. This
- * object contains the window's state and its relation to other
- * windows, such as which window opened this window.
- *
- * **Note:** This class represents any window, while [Window] is
- * used to access the properties and content of the current window or tab.
- *
- * ## See also
- *
- * * [Window]
- *
- * ## Other resources
- *
- * * [DOM Window](https://developer.mozilla.org/en-US/docs/DOM/window) from MDN.
- * * [Window](http://www.w3.org/TR/Window/) from the W3C.
- */
-abstract class WindowBase implements EventTarget {
- // Fields.
-
- /**
- * The current location of this window.
- *
- * Location currentLocation = window.location;
- * print(currentLocation.href); // 'http://www.example.com:80/'
- */
- LocationBase get location;
-
- /**
- * The current session history for this window.
- *
- * ## Other resources
- *
- * * [Session history and navigation
- * specification](https://html.spec.whatwg.org/multipage/browsers.html#history)
- * from WHATWG.
- */
- HistoryBase get history;
-
- /**
- * Indicates whether this window has been closed.
- *
- * print(window.closed); // 'false'
- * window.close();
- * print(window.closed); // 'true'
- */
- bool get closed;
-
- /**
- * A reference to the window that opened this one.
- *
- * Window thisWindow = window;
- * WindowBase otherWindow = thisWindow.open('http://www.example.com/', 'foo');
- * print(otherWindow.opener == thisWindow); // 'true'
- */
- WindowBase get opener;
-
- /**
- * A reference to the parent of this window.
- *
- * If this [WindowBase] has no parent, [parent] will return a reference to
- * the [WindowBase] itself.
- *
- * IFrameElement myIFrame = new IFrameElement();
- * window.document.body.elements.add(myIFrame);
- * print(myIframe.contentWindow.parent == window) // 'true'
- *
- * print(window.parent == window) // 'true'
- */
- WindowBase get parent;
-
- /**
- * A reference to the topmost window in the window hierarchy.
- *
- * If this [WindowBase] is the topmost [WindowBase], [top] will return a
- * reference to the [WindowBase] itself.
- *
- * // Add an IFrame to the current window.
- * IFrameElement myIFrame = new IFrameElement();
- * window.document.body.elements.add(myIFrame);
- *
- * // Add an IFrame inside of the other IFrame.
- * IFrameElement innerIFrame = new IFrameElement();
- * myIFrame.elements.add(innerIFrame);
- *
- * print(myIframe.contentWindow.top == window) // 'true'
- * print(innerIFrame.contentWindow.top == window) // 'true'
- *
- * print(window.top == window) // 'true'
- */
- WindowBase get top;
-
- // Methods.
- /**
- * Closes the window.
- *
- * This method should only succeed if the [WindowBase] object is
- * **script-closeable** and the window calling [close] is allowed to navigate
- * the window.
- *
- * A window is script-closeable if it is either a window
- * that was opened by another window, or if it is a window with only one
- * document in its history.
- *
- * A window might not be allowed to navigate, and therefore close, another
- * window due to browser security features.
- *
- * var other = window.open('http://www.example.com', 'foo');
- * // Closes other window, as it is script-closeable.
- * other.close();
- * print(other.closed()); // 'true'
- *
- * window.location('http://www.mysite.com', 'foo');
- * // Does not close this window, as the history has changed.
- * window.close();
- * print(window.closed()); // 'false'
- *
- * See also:
- *
- * * [Window close discussion](http://www.w3.org/TR/html5/browsers.html#dom-window-close) from the W3C
- */
- void close();
-
- /**
- * Sends a cross-origin message.
- *
- * ## Other resources
- *
- * * [window.postMessage](https://developer.mozilla.org/en-US/docs/Web/API/Window.postMessage)
- * from MDN.
- * * [Cross-document messaging](https://html.spec.whatwg.org/multipage/comms.html#web-messaging)
- * from WHATWG.
- */
- void postMessage(var message, String targetOrigin,
- [List<MessagePort> messagePorts]);
-}
-
-abstract class LocationBase {
- void set href(String val);
-}
-
-abstract class HistoryBase {
- void back();
- void forward();
- void go(int distance);
-}
-// 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.
-
-/** A Set that stores the CSS class names for an element. */
-abstract class CssClassSet implements Set<String> {
- /**
- * Adds the class [value] to the element if it is not on it, removes it if it
- * is.
- *
- * If [shouldAdd] is true, then we always add that [value] to the element. If
- * [shouldAdd] is false then we always remove [value] from the element.
- *
- * If this corresponds to one element, returns `true` if [value] is present
- * after the operation, and returns `false` if [value] is absent after the
- * operation.
- *
- * If this corresponds to many elements, `null` is always returned.
- *
- * [value] must be a valid 'token' representing a single class, i.e. a
- * non-empty string containing no whitespace. To toggle multiple classes, use
- * [toggleAll].
- */
- bool toggle(String value, [bool shouldAdd]);
-
- /**
- * Returns [:true:] if classes cannot be added or removed from this
- * [:CssClassSet:].
- */
- bool get frozen;
-
- /**
- * Determine if this element contains the class [value].
- *
- * This is the Dart equivalent of jQuery's
- * [hasClass](http://api.jquery.com/hasClass/).
- *
- * [value] must be a valid 'token' representing a single class, i.e. a
- * non-empty string containing no whitespace.
- */
- bool contains(Object value);
-
- /**
- * Add the class [value] to element.
- *
- * [add] and [addAll] are the Dart equivalent of jQuery's
- * [addClass](http://api.jquery.com/addClass/).
- *
- * If this CssClassSet corresponds to one element. Returns true if [value] was
- * added to the set, otherwise false.
- *
- * If this corresponds to many elements, `null` is always returned.
- *
- * [value] must be a valid 'token' representing a single class, i.e. a
- * non-empty string containing no whitespace. To add multiple classes use
- * [addAll].
- */
- bool add(String value);
-
- /**
- * Remove the class [value] from element, and return true on successful
- * removal.
- *
- * [remove] and [removeAll] are the Dart equivalent of jQuery's
- * [removeClass](http://api.jquery.com/removeClass/).
- *
- * [value] must be a valid 'token' representing a single class, i.e. a
- * non-empty string containing no whitespace. To remove multiple classes, use
- * [removeAll].
- */
- bool remove(Object value);
-
- /**
- * Add all classes specified in [iterable] to element.
- *
- * [add] and [addAll] are the Dart equivalent of jQuery's
- * [addClass](http://api.jquery.com/addClass/).
- *
- * Each element of [iterable] must be a valid 'token' representing a single
- * class, i.e. a non-empty string containing no whitespace.
- */
- void addAll(Iterable<String> iterable);
-
- /**
- * Remove all classes specified in [iterable] from element.
- *
- * [remove] and [removeAll] are the Dart equivalent of jQuery's
- * [removeClass](http://api.jquery.com/removeClass/).
- *
- * Each element of [iterable] must be a valid 'token' representing a single
- * class, i.e. a non-empty string containing no whitespace.
- */
- void removeAll(Iterable<Object> iterable);
-
- /**
- * Toggles all classes specified in [iterable] on element.
- *
- * Iterate through [iterable]'s items, and add it if it is not on it, or
- * remove it if it is. This is the Dart equivalent of jQuery's
- * [toggleClass](http://api.jquery.com/toggleClass/).
- * If [shouldAdd] is true, then we always add all the classes in [iterable]
- * element. If [shouldAdd] is false then we always remove all the classes in
- * [iterable] from the element.
- *
- * Each element of [iterable] must be a valid 'token' representing a single
- * class, i.e. a non-empty string containing no whitespace.
- */
- void toggleAll(Iterable<String> iterable, [bool shouldAdd]);
-}
-// 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.
-
-/**
- * A rectangle representing all the content of the element in the
- * [box model](http://www.w3.org/TR/CSS2/box.html).
- */
-class _ContentCssRect extends CssRect {
- _ContentCssRect(Element element) : super(element);
-
- num get height =>
- _element.offsetHeight + _addOrSubtractToBoxModel(_HEIGHT, _CONTENT);
-
- num get width =>
- _element.offsetWidth + _addOrSubtractToBoxModel(_WIDTH, _CONTENT);
-
- /**
- * Set the height to `newHeight`.
- *
- * newHeight can be either a [num] representing the height in pixels or a
- * [Dimension] object. Values of newHeight that are less than zero are
- * converted to effectively setting the height to 0. This is equivalent to the
- * `height` function in jQuery and the calculated `height` CSS value,
- * converted to a num in pixels.
- */
- set height(dynamic newHeight) {
- if (newHeight is Dimension) {
- Dimension newHeightAsDimension = newHeight;
- if (newHeightAsDimension.value < 0) newHeight = new Dimension.px(0);
- _element.style.height = newHeight.toString();
- } else if (newHeight is num) {
- if (newHeight < 0) newHeight = 0;
- _element.style.height = '${newHeight}px';
- } else {
- throw new ArgumentError("newHeight is not a Dimension or num");
- }
- }
-
- /**
- * Set the current computed width in pixels of this element.
- *
- * newWidth can be either a [num] representing the width in pixels or a
- * [Dimension] object. This is equivalent to the `width` function in jQuery
- * and the calculated
- * `width` CSS value, converted to a dimensionless num in pixels.
- */
- set width(dynamic newWidth) {
- if (newWidth is Dimension) {
- Dimension newWidthAsDimension = newWidth;
- if (newWidthAsDimension.value < 0) newWidth = new Dimension.px(0);
- _element.style.width = newWidth.toString();
- } else if (newWidth is num) {
- if (newWidth < 0) newWidth = 0;
- _element.style.width = '${newWidth}px';
- } else {
- throw new ArgumentError("newWidth is not a Dimension or num");
- }
- }
-
- num get left =>
- _element.getBoundingClientRect().left -
- _addOrSubtractToBoxModel(['left'], _CONTENT);
- num get top =>
- _element.getBoundingClientRect().top -
- _addOrSubtractToBoxModel(['top'], _CONTENT);
-}
-
-/**
- * A list of element content rectangles in the
- * [box model](http://www.w3.org/TR/CSS2/box.html).
- */
-class _ContentCssListRect extends _ContentCssRect {
- List<Element> _elementList;
-
- _ContentCssListRect(List<Element> elementList) : super(elementList.first) {
- _elementList = elementList;
- }
-
- /**
- * Set the height to `newHeight`.
- *
- * Values of newHeight that are less than zero are converted to effectively
- * setting the height to 0. This is equivalent to the `height`
- * function in jQuery and the calculated `height` CSS value, converted to a
- * num in pixels.
- */
- set height(newHeight) {
- _elementList.forEach((e) => e.contentEdge.height = newHeight);
- }
-
- /**
- * Set the current computed width in pixels of this element.
- *
- * This is equivalent to the `width` function in jQuery and the calculated
- * `width` CSS value, converted to a dimensionless num in pixels.
- */
- set width(newWidth) {
- _elementList.forEach((e) => e.contentEdge.width = newWidth);
- }
-}
-
-/**
- * A rectangle representing the dimensions of the space occupied by the
- * element's content + padding in the
- * [box model](http://www.w3.org/TR/CSS2/box.html).
- */
-class _PaddingCssRect extends CssRect {
- _PaddingCssRect(element) : super(element);
- num get height =>
- _element.offsetHeight + _addOrSubtractToBoxModel(_HEIGHT, _PADDING);
- num get width =>
- _element.offsetWidth + _addOrSubtractToBoxModel(_WIDTH, _PADDING);
-
- num get left =>
- _element.getBoundingClientRect().left -
- _addOrSubtractToBoxModel(['left'], _PADDING);
- num get top =>
- _element.getBoundingClientRect().top -
- _addOrSubtractToBoxModel(['top'], _PADDING);
-}
-
-/**
- * A rectangle representing the dimensions of the space occupied by the
- * element's content + padding + border in the
- * [box model](http://www.w3.org/TR/CSS2/box.html).
- */
-class _BorderCssRect extends CssRect {
- _BorderCssRect(element) : super(element);
- num get height => _element.offsetHeight;
- num get width => _element.offsetWidth;
-
- num get left => _element.getBoundingClientRect().left;
- num get top => _element.getBoundingClientRect().top;
-}
-
-/**
- * A rectangle representing the dimensions of the space occupied by the
- * element's content + padding + border + margin in the
- * [box model](http://www.w3.org/TR/CSS2/box.html).
- */
-class _MarginCssRect extends CssRect {
- _MarginCssRect(element) : super(element);
- num get height =>
- _element.offsetHeight + _addOrSubtractToBoxModel(_HEIGHT, _MARGIN);
- num get width =>
- _element.offsetWidth + _addOrSubtractToBoxModel(_WIDTH, _MARGIN);
-
- num get left =>
- _element.getBoundingClientRect().left -
- _addOrSubtractToBoxModel(['left'], _MARGIN);
- num get top =>
- _element.getBoundingClientRect().top -
- _addOrSubtractToBoxModel(['top'], _MARGIN);
-}
-
-/**
- * A class for representing CSS dimensions.
- *
- * In contrast to the more general purpose [Rectangle] class, this class's
- * values are mutable, so one can change the height of an element
- * programmatically.
- *
- * _Important_ _note_: use of these methods will perform CSS calculations that
- * can trigger a browser reflow. Therefore, use of these properties _during_ an
- * animation frame is discouraged. See also:
- * [Browser Reflow](https://developers.google.com/speed/articles/reflow)
- */
-abstract class CssRect implements Rectangle<num> {
- Element _element;
-
- CssRect(this._element);
-
- num get left;
-
- num get top;
-
- /**
- * The height of this rectangle.
- *
- * This is equivalent to the `height` function in jQuery and the calculated
- * `height` CSS value, converted to a dimensionless num in pixels. Unlike
- * [getBoundingClientRect], `height` will return the same numerical width if
- * the element is hidden or not.
- */
- num get height;
-
- /**
- * The width of this rectangle.
- *
- * This is equivalent to the `width` function in jQuery and the calculated
- * `width` CSS value, converted to a dimensionless num in pixels. Unlike
- * [getBoundingClientRect], `width` will return the same numerical width if
- * the element is hidden or not.
- */
- num get width;
-
- /**
- * Set the height to `newHeight`.
- *
- * newHeight can be either a [num] representing the height in pixels or a
- * [Dimension] object. Values of newHeight that are less than zero are
- * converted to effectively setting the height to 0. This is equivalent to the
- * `height` function in jQuery and the calculated `height` CSS value,
- * converted to a num in pixels.
- *
- * Note that only the content height can actually be set via this method.
- */
- set height(dynamic newHeight) {
- throw new UnsupportedError("Can only set height for content rect.");
- }
-
- /**
- * Set the current computed width in pixels of this element.
- *
- * newWidth can be either a [num] representing the width in pixels or a
- * [Dimension] object. This is equivalent to the `width` function in jQuery
- * and the calculated
- * `width` CSS value, converted to a dimensionless num in pixels.
- *
- * Note that only the content width can be set via this method.
- */
- set width(dynamic newWidth) {
- throw new UnsupportedError("Can only set width for content rect.");
- }
-
- /**
- * Return a value that is used to modify the initial height or width
- * measurement of an element. Depending on the value (ideally an enum) passed
- * to augmentingMeasurement, we may need to add or subtract margin, padding,
- * or border values, depending on the measurement we're trying to obtain.
- */
- num _addOrSubtractToBoxModel(
- List<String> dimensions, String augmentingMeasurement) {
- // getComputedStyle always returns pixel values (hence, computed), so we're
- // always dealing with pixels in this method.
- var styles = _element.getComputedStyle();
-
- var val = 0;
-
- for (String measurement in dimensions) {
- // The border-box and default box model both exclude margin in the regular
- // height/width calculation, so add it if we want it for this measurement.
- if (augmentingMeasurement == _MARGIN) {
- val += new Dimension.css(
- styles.getPropertyValue('$augmentingMeasurement-$measurement'))
- .value;
- }
-
- // The border-box includes padding and border, so remove it if we want
- // just the content itself.
- if (augmentingMeasurement == _CONTENT) {
- val -= new Dimension.css(
- styles.getPropertyValue('${_PADDING}-$measurement'))
- .value;
- }
-
- // At this point, we don't wan't to augment with border or margin,
- // so remove border.
- if (augmentingMeasurement != _MARGIN) {
- val -= new Dimension.css(
- styles.getPropertyValue('border-${measurement}-width'))
- .value;
- }
- }
- return val;
- }
-
- // TODO(jacobr): these methods are duplicated from _RectangleBase in dart:math
- // Ideally we would provide a RectangleMixin class that provides this implementation.
- // In an ideal world we would exp
- /** The x-coordinate of the right edge. */
- num get right => left + width;
- /** The y-coordinate of the bottom edge. */
- num get bottom => top + height;
-
- String toString() {
- return 'Rectangle ($left, $top) $width x $height';
- }
-
- bool operator ==(other) {
- if (other is! Rectangle) return false;
- return left == other.left &&
- top == other.top &&
- right == other.right &&
- bottom == other.bottom;
- }
-
- int get hashCode => _JenkinsSmiHash.hash4(
- left.hashCode, top.hashCode, right.hashCode, bottom.hashCode);
-
- /**
- * Computes the intersection of `this` and [other].
- *
- * The intersection of two axis-aligned rectangles, if any, is always another
- * axis-aligned rectangle.
- *
- * Returns the intersection of this and `other`, or `null` if they don't
- * intersect.
- */
- Rectangle<num> intersection(Rectangle<num> other) {
- var x0 = max(left, other.left);
- var x1 = min(left + width, other.left + other.width);
-
- if (x0 <= x1) {
- var y0 = max(top, other.top);
- var y1 = min(top + height, other.top + other.height);
-
- if (y0 <= y1) {
- return new Rectangle<num>(x0, y0, x1 - x0, y1 - y0);
- }
- }
- return null;
- }
-
- /**
- * Returns true if `this` intersects [other].
- */
- bool intersects(Rectangle<num> other) {
- return (left <= other.left + other.width &&
- other.left <= left + width &&
- top <= other.top + other.height &&
- other.top <= top + height);
- }
-
- /**
- * Returns a new rectangle which completely contains `this` and [other].
- */
- Rectangle<num> boundingBox(Rectangle<num> other) {
- var right = max(this.left + this.width, other.left + other.width);
- var bottom = max(this.top + this.height, other.top + other.height);
-
- var left = min(this.left, other.left);
- var top = min(this.top, other.top);
-
- return new Rectangle<num>(left, top, right - left, bottom - top);
- }
-
- /**
- * Tests whether `this` entirely contains [another].
- */
- bool containsRectangle(Rectangle<num> another) {
- return left <= another.left &&
- left + width >= another.left + another.width &&
- top <= another.top &&
- top + height >= another.top + another.height;
- }
-
- /**
- * Tests whether [another] is inside or along the edges of `this`.
- */
- bool containsPoint(Point<num> another) {
- return another.x >= left &&
- another.x <= left + width &&
- another.y >= top &&
- another.y <= top + height;
- }
-
- Point<num> get topLeft => new Point<num>(this.left, this.top);
- Point<num> get topRight => new Point<num>(this.left + this.width, this.top);
- Point<num> get bottomRight =>
- new Point<num>(this.left + this.width, this.top + this.height);
- Point<num> get bottomLeft =>
- new Point<num>(this.left, this.top + this.height);
-}
-
-final _HEIGHT = ['top', 'bottom'];
-final _WIDTH = ['right', 'left'];
-final _CONTENT = 'content';
-final _PADDING = 'padding';
-final _MARGIN = 'margin';
-// 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.
-
-/**
- * A set (union) of the CSS classes that are present in a set of elements.
- * Implemented separately from _ElementCssClassSet for performance.
- */
-class _MultiElementCssClassSet extends CssClassSetImpl {
- final Iterable<Element> _elementIterable;
-
- // TODO(sra): Perhaps we should store the DomTokenList instead.
- final List<CssClassSetImpl> _sets;
-
- factory _MultiElementCssClassSet(Iterable<Element> elements) {
- return new _MultiElementCssClassSet._(
- elements, elements.map((Element e) => e.classes).toList());
- }
-
- _MultiElementCssClassSet._(this._elementIterable, this._sets);
-
- Set<String> readClasses() {
- var s = new LinkedHashSet<String>();
- _sets.forEach((CssClassSetImpl e) => s.addAll(e.readClasses()));
- return s;
- }
-
- void writeClasses(Set<String> s) {
- var classes = s.join(' ');
- for (Element e in _elementIterable) {
- e.className = classes;
- }
- }
-
- /**
- * Helper method used to modify the set of css classes on this element.
- *
- * f - callback with:
- * s - a Set of all the css class name currently on this element.
- *
- * After f returns, the modified set is written to the
- * className property of this element.
- */
- modify(f(Set<String> s)) {
- _sets.forEach((CssClassSetImpl e) => e.modify(f));
- }
-
- /**
- * Adds the class [value] to the element if it is not on it, removes it if it
- * is.
- *
- * TODO(sra): It seems wrong to collect a 'changed' flag like this when the
- * underlying toggle returns an 'is set' flag.
- */
- bool toggle(String value, [bool shouldAdd]) => _sets.fold(
- false,
- (bool changed, CssClassSetImpl e) =>
- e.toggle(value, shouldAdd) || changed);
-
- /**
- * Remove the class [value] from element, and return true on successful
- * removal.
- *
- * This is the Dart equivalent of jQuery's
- * [removeClass](http://api.jquery.com/removeClass/).
- */
- bool remove(Object value) => _sets.fold(
- false, (bool changed, CssClassSetImpl e) => e.remove(value) || changed);
-}
-
-class _ElementCssClassSet extends CssClassSetImpl {
- final Element _element;
-
- _ElementCssClassSet(this._element);
-
- Set<String> readClasses() {
- var s = new LinkedHashSet<String>();
- var classname = _element.className;
-
- for (String name in classname.split(' ')) {
- String trimmed = name.trim();
- if (!trimmed.isEmpty) {
- s.add(trimmed);
- }
- }
- return s;
- }
-
- void writeClasses(Set<String> s) {
- _element.className = s.join(' ');
- }
-
- int get length => _classListLength(_classListOf(_element));
- bool get isEmpty => length == 0;
- bool get isNotEmpty => length != 0;
-
- void clear() {
- _element.className = '';
- }
-
- bool contains(Object value) {
- return _contains(_element, value);
- }
-
- bool add(String value) {
- return _add(_element, value);
- }
-
- bool remove(Object value) {
- return value is String && _remove(_element, value);
- }
-
- bool toggle(String value, [bool shouldAdd]) {
- return _toggle(_element, value, shouldAdd);
- }
-
- void addAll(Iterable<String> iterable) {
- _addAll(_element, iterable);
- }
-
- void removeAll(Iterable<Object> iterable) {
- _removeAll(_element, iterable);
- }
-
- void retainAll(Iterable<Object> iterable) {
- _removeWhere(_element, iterable.toSet().contains, false);
- }
-
- void removeWhere(bool test(String name)) {
- _removeWhere(_element, test, true);
- }
-
- void retainWhere(bool test(String name)) {
- _removeWhere(_element, test, false);
- }
-
- static bool _contains(Element _element, Object value) {
- return value is String && _classListContains(_classListOf(_element), value);
- }
-
- @ForceInline()
- static bool _add(Element _element, String value) {
- DomTokenList list = _classListOf(_element);
- // Compute returned result independently of action upon the set.
- bool added = !_classListContainsBeforeAddOrRemove(list, value);
- _classListAdd(list, value);
- return added;
- }
-
- @ForceInline()
- static bool _remove(Element _element, String value) {
- DomTokenList list = _classListOf(_element);
- bool removed = _classListContainsBeforeAddOrRemove(list, value);
- _classListRemove(list, value);
- return removed;
- }
-
- static bool _toggle(Element _element, String value, bool shouldAdd) {
- // There is no value that can be passed as the second argument of
- // DomTokenList.toggle that behaves the same as passing one argument.
- // `null` is seen as false, meaning 'remove'.
- return shouldAdd == null
- ? _toggleDefault(_element, value)
- : _toggleOnOff(_element, value, shouldAdd);
- }
-
- static bool _toggleDefault(Element _element, String value) {
- DomTokenList list = _classListOf(_element);
- return _classListToggle1(list, value);
- }
-
- static bool _toggleOnOff(Element _element, String value, bool shouldAdd) {
- DomTokenList list = _classListOf(_element);
- // IE's toggle does not take a second parameter. We would prefer:
- //
- // return _classListToggle2(list, value, shouldAdd);
- //
- if (shouldAdd) {
- _classListAdd(list, value);
- return true;
- } else {
- _classListRemove(list, value);
- return false;
- }
- }
-
- static void _addAll(Element _element, Iterable<String> iterable) {
- DomTokenList list = _classListOf(_element);
- for (String value in iterable) {
- _classListAdd(list, value);
- }
- }
-
- static void _removeAll(Element _element, Iterable<String> iterable) {
- DomTokenList list = _classListOf(_element);
- for (var value in iterable) {
- _classListRemove(list, value);
- }
- }
-
- static void _removeWhere(
- Element _element, bool test(String name), bool doRemove) {
- DomTokenList list = _classListOf(_element);
- int i = 0;
- while (i < _classListLength(list)) {
- String item = list.item(i);
- if (doRemove == test(item)) {
- _classListRemove(list, item);
- } else {
- ++i;
- }
- }
- }
-
- // A collection of static methods for DomTokenList. These methods are a
- // work-around for the lack of annotations to express the full behaviour of
- // the DomTokenList methods.
-
- static DomTokenList _classListOf(Element e) => JS(
- 'returns:DomTokenList;creates:DomTokenList;effects:none;depends:all;',
- '#.classList',
- e);
-
- static int _classListLength(DomTokenList list) =>
- JS('returns:JSUInt31;effects:none;depends:all;', '#.length', list);
-
- static bool _classListContains(DomTokenList list, String value) =>
- JS('returns:bool;effects:none;depends:all', '#.contains(#)', list, value);
-
- static bool _classListContainsBeforeAddOrRemove(
- DomTokenList list, String value) =>
- // 'throws:never' is a lie, since 'contains' will throw on an illegal
- // token. However, we always call this function immediately prior to
- // add/remove/toggle with the same token. Often the result of 'contains'
- // is unused and the lie makes it possible for the 'contains' instruction
- // to be removed.
- JS('returns:bool;effects:none;depends:all;throws:null(1)',
- '#.contains(#)', list, value);
-
- static void _classListAdd(DomTokenList list, String value) {
- // list.add(value);
- JS('', '#.add(#)', list, value);
- }
-
- static void _classListRemove(DomTokenList list, String value) {
- // list.remove(value);
- JS('', '#.remove(#)', list, value);
- }
-
- static bool _classListToggle1(DomTokenList list, String value) {
- return JS('bool', '#.toggle(#)', list, value);
- }
-
- static bool _classListToggle2(
- DomTokenList list, String value, bool shouldAdd) {
- return JS('bool', '#.toggle(#, #)', list, value, shouldAdd);
- }
-}
-
-/**
- * Class representing a
- * [length measurement](https://developer.mozilla.org/en-US/docs/Web/CSS/length)
- * in CSS.
- */
-@Experimental()
-class Dimension {
- num _value;
- String _unit;
-
- /** Set this CSS Dimension to a percentage `value`. */
- Dimension.percent(this._value) : _unit = '%';
-
- /** Set this CSS Dimension to a pixel `value`. */
- Dimension.px(this._value) : _unit = 'px';
-
- /** Set this CSS Dimension to a pica `value`. */
- Dimension.pc(this._value) : _unit = 'pc';
-
- /** Set this CSS Dimension to a point `value`. */
- Dimension.pt(this._value) : _unit = 'pt';
-
- /** Set this CSS Dimension to an inch `value`. */
- Dimension.inch(this._value) : _unit = 'in';
-
- /** Set this CSS Dimension to a centimeter `value`. */
- Dimension.cm(this._value) : _unit = 'cm';
-
- /** Set this CSS Dimension to a millimeter `value`. */
- Dimension.mm(this._value) : _unit = 'mm';
-
- /**
- * Set this CSS Dimension to the specified number of ems.
- *
- * 1em is equal to the current font size. (So 2ems is equal to double the font
- * size). This is useful for producing website layouts that scale nicely with
- * the user's desired font size.
- */
- Dimension.em(this._value) : _unit = 'em';
-
- /**
- * Set this CSS Dimension to the specified number of x-heights.
- *
- * One ex is equal to the x-height of a font's baseline to its mean line,
- * generally the height of the letter "x" in the font, which is usually about
- * half the font-size.
- */
- Dimension.ex(this._value) : _unit = 'ex';
-
- /**
- * Construct a Dimension object from the valid, simple CSS string `cssValue`
- * that represents a distance measurement.
- *
- * This constructor is intended as a convenience method for working with
- * simplistic CSS length measurements. Non-numeric values such as `auto` or
- * `inherit` or invalid CSS will cause this constructor to throw a
- * FormatError.
- */
- Dimension.css(String cssValue) {
- if (cssValue == '') cssValue = '0px';
- if (cssValue.endsWith('%')) {
- _unit = '%';
- } else {
- _unit = cssValue.substring(cssValue.length - 2);
- }
- if (cssValue.contains('.')) {
- _value =
- double.parse(cssValue.substring(0, cssValue.length - _unit.length));
- } else {
- _value = int.parse(cssValue.substring(0, cssValue.length - _unit.length));
- }
- }
-
- /** Print out the CSS String representation of this value. */
- String toString() {
- return '${_value}${_unit}';
- }
-
- /** Return a unitless, numerical value of this CSS value. */
- num get value => this._value;
-}
-// Copyright (c) 2011, 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.
-
-typedef EventListener(Event event);
-// 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.
-
-/**
- * A factory to expose DOM events as Streams.
- */
-class EventStreamProvider<T extends Event> {
- final String _eventType;
-
- const EventStreamProvider(this._eventType);
-
- /**
- * Gets a [Stream] for this event type, on the specified target.
- *
- * This will always return a broadcast stream so multiple listeners can be
- * used simultaneously.
- *
- * This may be used to capture DOM events:
- *
- * Element.keyDownEvent.forTarget(element, useCapture: true).listen(...);
- *
- * // Alternate method:
- * Element.keyDownEvent.forTarget(element).capture(...);
- *
- * Or for listening to an event which will bubble through the DOM tree:
- *
- * MediaElement.pauseEvent.forTarget(document.body).listen(...);
- *
- * See also:
- *
- * [addEventListener](http://docs.webplatform.org/wiki/dom/methods/addEventListener)
- */
- Stream<T> forTarget(EventTarget e, {bool useCapture: false}) =>
- new _EventStream<T>(e, _eventType, useCapture);
-
- /**
- * Gets an [ElementEventStream] for this event type, on the specified element.
- *
- * This will always return a broadcast stream so multiple listeners can be
- * used simultaneously.
- *
- * This may be used to capture DOM events:
- *
- * Element.keyDownEvent.forElement(element, useCapture: true).listen(...);
- *
- * // Alternate method:
- * Element.keyDownEvent.forElement(element).capture(...);
- *
- * Or for listening to an event which will bubble through the DOM tree:
- *
- * MediaElement.pauseEvent.forElement(document.body).listen(...);
- *
- * See also:
- *
- * [addEventListener](http://docs.webplatform.org/wiki/dom/methods/addEventListener)
- */
- ElementStream<T> forElement(Element e, {bool useCapture: false}) {
- return new _ElementEventStreamImpl<T>(e, _eventType, useCapture);
- }
-
- /**
- * Gets an [ElementEventStream] for this event type, on the list of elements.
- *
- * This will always return a broadcast stream so multiple listeners can be
- * used simultaneously.
- *
- * This may be used to capture DOM events:
- *
- * Element.keyDownEvent._forElementList(element, useCapture: true).listen(...);
- *
- * See also:
- *
- * [addEventListener](http://docs.webplatform.org/wiki/dom/methods/addEventListener)
- */
- ElementStream<T> _forElementList(ElementList e, {bool useCapture: false}) {
- return new _ElementListEventStreamImpl<T>(e, _eventType, useCapture);
- }
-
- /**
- * Gets the type of the event which this would listen for on the specified
- * event target.
- *
- * The target is necessary because some browsers may use different event names
- * for the same purpose and the target allows differentiating browser support.
- */
- String getEventType(EventTarget target) {
- return _eventType;
- }
-}
-
-/** A specialized Stream available to [Element]s to enable event delegation. */
-abstract class ElementStream<T extends Event> implements Stream<T> {
- /**
- * Return a stream that only fires when the particular event fires for
- * elements matching the specified CSS selector.
- *
- * This is the Dart equivalent to jQuery's
- * [delegate](http://api.jquery.com/delegate/).
- */
- Stream<T> matches(String selector);
-
- /**
- * Adds a capturing subscription to this stream.
- *
- * If the target of the event is a descendant of the element from which this
- * stream derives then [onData] is called before the event propagates down to
- * the target. This is the opposite of bubbling behavior, where the event
- * is first processed for the event target and then bubbles upward.
- *
- * ## Other resources
- *
- * * [Event Capture](http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-flow-capture)
- * from the W3C DOM Events specification.
- */
- StreamSubscription<T> capture(void onData(T event));
-}
-
-/**
- * Adapter for exposing DOM events as Dart streams.
- */
-class _EventStream<T extends Event> extends Stream<T> {
- final EventTarget _target;
- final String _eventType;
- final bool _useCapture;
-
- _EventStream(this._target, this._eventType, this._useCapture);
-
- // DOM events are inherently multi-subscribers.
- Stream<T> asBroadcastStream(
- {void onListen(StreamSubscription<T> subscription),
- void onCancel(StreamSubscription<T> subscription)}) =>
- this;
- bool get isBroadcast => true;
-
- StreamSubscription<T> listen(void onData(T event),
- {Function onError, void onDone(), bool cancelOnError}) {
- return new _EventStreamSubscription<T>(
- this._target, this._eventType, onData, this._useCapture);
- }
-}
-
-bool _matchesWithAncestors(Event event, String selector) {
- var target = event.target;
- return target is Element ? target.matchesWithAncestors(selector) : false;
-}
-
-/**
- * Adapter for exposing DOM Element events as streams, while also allowing
- * event delegation.
- */
-class _ElementEventStreamImpl<T extends Event> extends _EventStream<T>
- implements ElementStream<T> {
- _ElementEventStreamImpl(target, eventType, useCapture)
- : super(target, eventType, useCapture);
-
- Stream<T> matches(String selector) =>
- this.where((event) => _matchesWithAncestors(event, selector)).map((e) {
- e._selector = selector;
- return e;
- });
-
- StreamSubscription<T> capture(void onData(T event)) =>
- new _EventStreamSubscription<T>(
- this._target, this._eventType, onData, true);
-}
-
-/**
- * Adapter for exposing events on a collection of DOM Elements as streams,
- * while also allowing event delegation.
- */
-class _ElementListEventStreamImpl<T extends Event> extends Stream<T>
- implements ElementStream<T> {
- final Iterable<Element> _targetList;
- final bool _useCapture;
- final String _eventType;
-
- _ElementListEventStreamImpl(
- this._targetList, this._eventType, this._useCapture);
-
- Stream<T> matches(String selector) =>
- this.where((event) => _matchesWithAncestors(event, selector)).map((e) {
- e._selector = selector;
- return e;
- });
-
- // Delegate all regular Stream behavior to a wrapped Stream.
- StreamSubscription<T> listen(void onData(T event),
- {Function onError, void onDone(), bool cancelOnError}) {
- var pool = new _StreamPool<T>.broadcast();
- for (var target in _targetList) {
- pool.add(new _EventStream<T>(target, _eventType, _useCapture));
- }
- return pool.stream.listen(onData,
- onError: onError, onDone: onDone, cancelOnError: cancelOnError);
- }
-
- StreamSubscription<T> capture(void onData(T event)) {
- var pool = new _StreamPool<T>.broadcast();
- for (var target in _targetList) {
- pool.add(new _EventStream<T>(target, _eventType, true));
- }
- return pool.stream.listen(onData);
- }
-
- Stream<T> asBroadcastStream(
- {void onListen(StreamSubscription<T> subscription),
- void onCancel(StreamSubscription<T> subscription)}) =>
- this;
- bool get isBroadcast => true;
-}
-
-// We would like this to just be EventListener<T> but that typdef cannot
-// use generics until dartbug/26276 is fixed.
-typedef _EventListener<T extends Event>(T event);
-
-class _EventStreamSubscription<T extends Event> extends StreamSubscription<T> {
- int _pauseCount = 0;
- EventTarget _target;
- final String _eventType;
- EventListener _onData;
- final bool _useCapture;
-
- // TODO(leafp): It would be better to write this as
- // _onData = onData == null ? null :
- // onData is void Function(Event)
- // ? _wrapZone<Event>(onData)
- // : _wrapZone<Event>((e) => onData(e as T))
- // In order to support existing tests which pass the wrong type of events but
- // use a more general listener, without causing as much slowdown for things
- // which are typed correctly. But this currently runs afoul of restrictions
- // on is checks for compatibility with the VM.
- _EventStreamSubscription(
- this._target, this._eventType, void onData(T event), this._useCapture)
- : _onData = onData == null
- ? null
- : _wrapZone<Event>((e) => (onData as dynamic)(e)) {
- _tryResume();
- }
-
- Future cancel() {
- if (_canceled) return null;
-
- _unlisten();
- // Clear out the target to indicate this is complete.
- _target = null;
- _onData = null;
- return null;
- }
-
- bool get _canceled => _target == null;
-
- void onData(void handleData(T event)) {
- if (_canceled) {
- throw new StateError("Subscription has been canceled.");
- }
- // Remove current event listener.
- _unlisten();
- _onData = _wrapZone<Event>(handleData);
- _tryResume();
- }
-
- /// Has no effect.
- void onError(Function handleError) {}
-
- /// Has no effect.
- void onDone(void handleDone()) {}
-
- void pause([Future resumeSignal]) {
- if (_canceled) return;
- ++_pauseCount;
- _unlisten();
-
- if (resumeSignal != null) {
- resumeSignal.whenComplete(resume);
- }
- }
-
- bool get isPaused => _pauseCount > 0;
-
- void resume() {
- if (_canceled || !isPaused) return;
- --_pauseCount;
- _tryResume();
- }
-
- void _tryResume() {
- if (_onData != null && !isPaused) {
- _target.addEventListener(_eventType, _onData, _useCapture);
- }
- }
-
- void _unlisten() {
- if (_onData != null) {
- _target.removeEventListener(_eventType, _onData, _useCapture);
- }
- }
-
- Future<E> asFuture<E>([E futureValue]) {
- // We just need a future that will never succeed or fail.
- var completer = new Completer<E>();
- return completer.future;
- }
-}
-
-/**
- * A stream of custom events, which enables the user to "fire" (add) their own
- * custom events to a stream.
- */
-abstract class CustomStream<T extends Event> implements Stream<T> {
- /**
- * Add the following custom event to the stream for dispatching to interested
- * listeners.
- */
- void add(T event);
-}
-
-class _CustomEventStreamImpl<T extends Event> extends Stream<T>
- implements CustomStream<T> {
- StreamController<T> _streamController;
- /** The type of event this stream is providing (e.g. "keydown"). */
- String _type;
-
- _CustomEventStreamImpl(String type) {
- _type = type;
- _streamController = new StreamController.broadcast(sync: true);
- }
-
- // Delegate all regular Stream behavior to our wrapped Stream.
- StreamSubscription<T> listen(void onData(T event),
- {Function onError, void onDone(), bool cancelOnError}) {
- return _streamController.stream.listen(onData,
- onError: onError, onDone: onDone, cancelOnError: cancelOnError);
- }
-
- Stream<T> asBroadcastStream(
- {void onListen(StreamSubscription<T> subscription),
- void onCancel(StreamSubscription<T> subscription)}) =>
- _streamController.stream;
-
- bool get isBroadcast => true;
-
- void add(T event) {
- if (event.type == _type) _streamController.add(event);
- }
-}
-
-class _CustomKeyEventStreamImpl extends _CustomEventStreamImpl<KeyEvent>
- implements CustomStream<KeyEvent> {
- _CustomKeyEventStreamImpl(String type) : super(type);
-
- void add(KeyEvent event) {
- if (event.type == _type) {
- event.currentTarget.dispatchEvent(event._parent);
- _streamController.add(event);
- }
- }
-}
-
-/**
- * A pool of streams whose events are unified and emitted through a central
- * stream.
- */
-// TODO (efortuna): Remove this when Issue 12218 is addressed.
-class _StreamPool<T> {
- StreamController<T> _controller;
-
- /// Subscriptions to the streams that make up the pool.
- var _subscriptions = new Map<Stream<T>, StreamSubscription<T>>();
-
- /**
- * Creates a new stream pool where [stream] can be listened to more than
- * once.
- *
- * Any events from buffered streams in the pool will be emitted immediately,
- * regardless of whether [stream] has any subscribers.
- */
- _StreamPool.broadcast() {
- _controller =
- new StreamController<T>.broadcast(sync: true, onCancel: close);
- }
-
- /**
- * The stream through which all events from streams in the pool are emitted.
- */
- Stream<T> get stream => _controller.stream;
-
- /**
- * Adds [stream] as a member of this pool.
- *
- * Any events from [stream] will be emitted through [this.stream]. If
- * [stream] is sync, they'll be emitted synchronously; if [stream] is async,
- * they'll be emitted asynchronously.
- */
- void add(Stream<T> stream) {
- if (_subscriptions.containsKey(stream)) return;
- _subscriptions[stream] = stream.listen(_controller.add,
- onError: _controller.addError, onDone: () => remove(stream));
- }
-
- /** Removes [stream] as a member of this pool. */
- void remove(Stream<T> stream) {
- var subscription = _subscriptions.remove(stream);
- if (subscription != null) subscription.cancel();
- }
-
- /** Removes all streams from this pool and closes [stream]. */
- void close() {
- for (var subscription in _subscriptions.values) {
- subscription.cancel();
- }
- _subscriptions.clear();
- _controller.close();
- }
-}
-
-/**
- * A factory to expose DOM events as streams, where the DOM event name has to
- * be determined on the fly (for example, mouse wheel events).
- */
-class _CustomEventStreamProvider<T extends Event>
- implements EventStreamProvider<T> {
- final _eventTypeGetter;
- const _CustomEventStreamProvider(this._eventTypeGetter);
-
- Stream<T> forTarget(EventTarget e, {bool useCapture: false}) {
- return new _EventStream<T>(e, _eventTypeGetter(e), useCapture);
- }
-
- ElementStream<T> forElement(Element e, {bool useCapture: false}) {
- return new _ElementEventStreamImpl<T>(e, _eventTypeGetter(e), useCapture);
- }
-
- ElementStream<T> _forElementList(ElementList e, {bool useCapture: false}) {
- return new _ElementListEventStreamImpl<T>(
- e, _eventTypeGetter(e), useCapture);
- }
-
- String getEventType(EventTarget target) {
- return _eventTypeGetter(target);
- }
-
- String get _eventType =>
- throw new UnsupportedError('Access type through getEventType method.');
-}
-// DO NOT EDIT- this file is generated from running tool/generator.sh.
-
-// 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.
-
-/**
- * A Dart DOM validator generated from Caja whitelists.
- *
- * This contains a whitelist of known HTML tagNames and attributes and will only
- * accept known good values.
- *
- * See also:
- *
- * * <https://code.google.com/p/google-caja/wiki/CajaWhitelists>
- */
-class _Html5NodeValidator implements NodeValidator {
- static final Set<String> _allowedElements = new Set.from([
- 'A',
- 'ABBR',
- 'ACRONYM',
- 'ADDRESS',
- 'AREA',
- 'ARTICLE',
- 'ASIDE',
- 'AUDIO',
- 'B',
- 'BDI',
- 'BDO',
- 'BIG',
- 'BLOCKQUOTE',
- 'BR',
- 'BUTTON',
- 'CANVAS',
- 'CAPTION',
- 'CENTER',
- 'CITE',
- 'CODE',
- 'COL',
- 'COLGROUP',
- 'COMMAND',
- 'DATA',
- 'DATALIST',
- 'DD',
- 'DEL',
- 'DETAILS',
- 'DFN',
- 'DIR',
- 'DIV',
- 'DL',
- 'DT',
- 'EM',
- 'FIELDSET',
- 'FIGCAPTION',
- 'FIGURE',
- 'FONT',
- 'FOOTER',
- 'FORM',
- 'H1',
- 'H2',
- 'H3',
- 'H4',
- 'H5',
- 'H6',
- 'HEADER',
- 'HGROUP',
- 'HR',
- 'I',
- 'IFRAME',
- 'IMG',
- 'INPUT',
- 'INS',
- 'KBD',
- 'LABEL',
- 'LEGEND',
- 'LI',
- 'MAP',
- 'MARK',
- 'MENU',
- 'METER',
- 'NAV',
- 'NOBR',
- 'OL',
- 'OPTGROUP',
- 'OPTION',
- 'OUTPUT',
- 'P',
- 'PRE',
- 'PROGRESS',
- 'Q',
- 'S',
- 'SAMP',
- 'SECTION',
- 'SELECT',
- 'SMALL',
- 'SOURCE',
- 'SPAN',
- 'STRIKE',
- 'STRONG',
- 'SUB',
- 'SUMMARY',
- 'SUP',
- 'TABLE',
- 'TBODY',
- 'TD',
- 'TEXTAREA',
- 'TFOOT',
- 'TH',
- 'THEAD',
- 'TIME',
- 'TR',
- 'TRACK',
- 'TT',
- 'U',
- 'UL',
- 'VAR',
- 'VIDEO',
- 'WBR',
- ]);
-
- static const _standardAttributes = const <String>[
- '*::class',
- '*::dir',
- '*::draggable',
- '*::hidden',
- '*::id',
- '*::inert',
- '*::itemprop',
- '*::itemref',
- '*::itemscope',
- '*::lang',
- '*::spellcheck',
- '*::title',
- '*::translate',
- 'A::accesskey',
- 'A::coords',
- 'A::hreflang',
- 'A::name',
- 'A::shape',
- 'A::tabindex',
- 'A::target',
- 'A::type',
- 'AREA::accesskey',
- 'AREA::alt',
- 'AREA::coords',
- 'AREA::nohref',
- 'AREA::shape',
- 'AREA::tabindex',
- 'AREA::target',
- 'AUDIO::controls',
- 'AUDIO::loop',
- 'AUDIO::mediagroup',
- 'AUDIO::muted',
- 'AUDIO::preload',
- 'BDO::dir',
- 'BODY::alink',
- 'BODY::bgcolor',
- 'BODY::link',
- 'BODY::text',
- 'BODY::vlink',
- 'BR::clear',
- 'BUTTON::accesskey',
- 'BUTTON::disabled',
- 'BUTTON::name',
- 'BUTTON::tabindex',
- 'BUTTON::type',
- 'BUTTON::value',
- 'CANVAS::height',
- 'CANVAS::width',
- 'CAPTION::align',
- 'COL::align',
- 'COL::char',
- 'COL::charoff',
- 'COL::span',
- 'COL::valign',
- 'COL::width',
- 'COLGROUP::align',
- 'COLGROUP::char',
- 'COLGROUP::charoff',
- 'COLGROUP::span',
- 'COLGROUP::valign',
- 'COLGROUP::width',
- 'COMMAND::checked',
- 'COMMAND::command',
- 'COMMAND::disabled',
- 'COMMAND::label',
- 'COMMAND::radiogroup',
- 'COMMAND::type',
- 'DATA::value',
- 'DEL::datetime',
- 'DETAILS::open',
- 'DIR::compact',
- 'DIV::align',
- 'DL::compact',
- 'FIELDSET::disabled',
- 'FONT::color',
- 'FONT::face',
- 'FONT::size',
- 'FORM::accept',
- 'FORM::autocomplete',
- 'FORM::enctype',
- 'FORM::method',
- 'FORM::name',
- 'FORM::novalidate',
- 'FORM::target',
- 'FRAME::name',
- 'H1::align',
- 'H2::align',
- 'H3::align',
- 'H4::align',
- 'H5::align',
- 'H6::align',
- 'HR::align',
- 'HR::noshade',
- 'HR::size',
- 'HR::width',
- 'HTML::version',
- 'IFRAME::align',
- 'IFRAME::frameborder',
- 'IFRAME::height',
- 'IFRAME::marginheight',
- 'IFRAME::marginwidth',
- 'IFRAME::width',
- 'IMG::align',
- 'IMG::alt',
- 'IMG::border',
- 'IMG::height',
- 'IMG::hspace',
- 'IMG::ismap',
- 'IMG::name',
- 'IMG::usemap',
- 'IMG::vspace',
- 'IMG::width',
- 'INPUT::accept',
- 'INPUT::accesskey',
- 'INPUT::align',
- 'INPUT::alt',
- 'INPUT::autocomplete',
- 'INPUT::autofocus',
- 'INPUT::checked',
- 'INPUT::disabled',
- 'INPUT::inputmode',
- 'INPUT::ismap',
- 'INPUT::list',
- 'INPUT::max',
- 'INPUT::maxlength',
- 'INPUT::min',
- 'INPUT::multiple',
- 'INPUT::name',
- 'INPUT::placeholder',
- 'INPUT::readonly',
- 'INPUT::required',
- 'INPUT::size',
- 'INPUT::step',
- 'INPUT::tabindex',
- 'INPUT::type',
- 'INPUT::usemap',
- 'INPUT::value',
- 'INS::datetime',
- 'KEYGEN::disabled',
- 'KEYGEN::keytype',
- 'KEYGEN::name',
- 'LABEL::accesskey',
- 'LABEL::for',
- 'LEGEND::accesskey',
- 'LEGEND::align',
- 'LI::type',
- 'LI::value',
- 'LINK::sizes',
- 'MAP::name',
- 'MENU::compact',
- 'MENU::label',
- 'MENU::type',
- 'METER::high',
- 'METER::low',
- 'METER::max',
- 'METER::min',
- 'METER::value',
- 'OBJECT::typemustmatch',
- 'OL::compact',
- 'OL::reversed',
- 'OL::start',
- 'OL::type',
- 'OPTGROUP::disabled',
- 'OPTGROUP::label',
- 'OPTION::disabled',
- 'OPTION::label',
- 'OPTION::selected',
- 'OPTION::value',
- 'OUTPUT::for',
- 'OUTPUT::name',
- 'P::align',
- 'PRE::width',
- 'PROGRESS::max',
- 'PROGRESS::min',
- 'PROGRESS::value',
- 'SELECT::autocomplete',
- 'SELECT::disabled',
- 'SELECT::multiple',
- 'SELECT::name',
- 'SELECT::required',
- 'SELECT::size',
- 'SELECT::tabindex',
- 'SOURCE::type',
- 'TABLE::align',
- 'TABLE::bgcolor',
- 'TABLE::border',
- 'TABLE::cellpadding',
- 'TABLE::cellspacing',
- 'TABLE::frame',
- 'TABLE::rules',
- 'TABLE::summary',
- 'TABLE::width',
- 'TBODY::align',
- 'TBODY::char',
- 'TBODY::charoff',
- 'TBODY::valign',
- 'TD::abbr',
- 'TD::align',
- 'TD::axis',
- 'TD::bgcolor',
- 'TD::char',
- 'TD::charoff',
- 'TD::colspan',
- 'TD::headers',
- 'TD::height',
- 'TD::nowrap',
- 'TD::rowspan',
- 'TD::scope',
- 'TD::valign',
- 'TD::width',
- 'TEXTAREA::accesskey',
- 'TEXTAREA::autocomplete',
- 'TEXTAREA::cols',
- 'TEXTAREA::disabled',
- 'TEXTAREA::inputmode',
- 'TEXTAREA::name',
- 'TEXTAREA::placeholder',
- 'TEXTAREA::readonly',
- 'TEXTAREA::required',
- 'TEXTAREA::rows',
- 'TEXTAREA::tabindex',
- 'TEXTAREA::wrap',
- 'TFOOT::align',
- 'TFOOT::char',
- 'TFOOT::charoff',
- 'TFOOT::valign',
- 'TH::abbr',
- 'TH::align',
- 'TH::axis',
- 'TH::bgcolor',
- 'TH::char',
- 'TH::charoff',
- 'TH::colspan',
- 'TH::headers',
- 'TH::height',
- 'TH::nowrap',
- 'TH::rowspan',
- 'TH::scope',
- 'TH::valign',
- 'TH::width',
- 'THEAD::align',
- 'THEAD::char',
- 'THEAD::charoff',
- 'THEAD::valign',
- 'TR::align',
- 'TR::bgcolor',
- 'TR::char',
- 'TR::charoff',
- 'TR::valign',
- 'TRACK::default',
- 'TRACK::kind',
- 'TRACK::label',
- 'TRACK::srclang',
- 'UL::compact',
- 'UL::type',
- 'VIDEO::controls',
- 'VIDEO::height',
- 'VIDEO::loop',
- 'VIDEO::mediagroup',
- 'VIDEO::muted',
- 'VIDEO::preload',
- 'VIDEO::width',
- ];
-
- static const _uriAttributes = const <String>[
- 'A::href',
- 'AREA::href',
- 'BLOCKQUOTE::cite',
- 'BODY::background',
- 'COMMAND::icon',
- 'DEL::cite',
- 'FORM::action',
- 'IMG::src',
- 'INPUT::src',
- 'INS::cite',
- 'Q::cite',
- 'VIDEO::poster',
- ];
-
- final UriPolicy uriPolicy;
-
- static final Map<String, Function> _attributeValidators = {};
-
- /**
- * All known URI attributes will be validated against the UriPolicy, if
- * [uriPolicy] is null then a default UriPolicy will be used.
- */
- _Html5NodeValidator({UriPolicy uriPolicy})
- : uriPolicy = uriPolicy != null ? uriPolicy : new UriPolicy() {
- if (_attributeValidators.isEmpty) {
- for (var attr in _standardAttributes) {
- _attributeValidators[attr] = _standardAttributeValidator;
- }
-
- for (var attr in _uriAttributes) {
- _attributeValidators[attr] = _uriAttributeValidator;
- }
- }
- }
-
- bool allowsElement(Element element) {
- return _allowedElements.contains(Element._safeTagName(element));
- }
-
- bool allowsAttribute(Element element, String attributeName, String value) {
- var tagName = Element._safeTagName(element);
- var validator = _attributeValidators['$tagName::$attributeName'];
- if (validator == null) {
- validator = _attributeValidators['*::$attributeName'];
- }
- if (validator == null) {
- return false;
- }
- return validator(element, attributeName, value, this);
- }
-
- static bool _standardAttributeValidator(Element element, String attributeName,
- String value, _Html5NodeValidator context) {
- return true;
- }
-
- static bool _uriAttributeValidator(Element element, String attributeName,
- String value, _Html5NodeValidator context) {
- return context.uriPolicy.allowsUri(value);
- }
-}
-// 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.
-
-abstract class ImmutableListMixin<E> implements List<E> {
- // From Iterable<$E>:
- Iterator<E> get iterator {
- // Note: NodeLists are not fixed size. And most probably length shouldn't
- // be cached in both iterator _and_ forEach method. For now caching it
- // for consistency.
- return new FixedSizeListIterator<E>(this);
- }
-
- // From Collection<E>:
- void add(E value) {
- throw new UnsupportedError("Cannot add to immutable List.");
- }
-
- void addAll(Iterable<E> iterable) {
- throw new UnsupportedError("Cannot add to immutable List.");
- }
-
- // From List<E>:
- void sort([int compare(E a, E b)]) {
- throw new UnsupportedError("Cannot sort immutable List.");
- }
-
- void shuffle([Random random]) {
- throw new UnsupportedError("Cannot shuffle immutable List.");
- }
-
- void insert(int index, E element) {
- throw new UnsupportedError("Cannot add to immutable List.");
- }
-
- void insertAll(int index, Iterable<E> iterable) {
- throw new UnsupportedError("Cannot add to immutable List.");
- }
-
- void setAll(int index, Iterable<E> iterable) {
- throw new UnsupportedError("Cannot modify an immutable List.");
- }
-
- E removeAt(int pos) {
- throw new UnsupportedError("Cannot remove from immutable List.");
- }
-
- E removeLast() {
- throw new UnsupportedError("Cannot remove from immutable List.");
- }
-
- bool remove(Object object) {
- throw new UnsupportedError("Cannot remove from immutable List.");
- }
-
- void removeWhere(bool test(E element)) {
- throw new UnsupportedError("Cannot remove from immutable List.");
- }
-
- void retainWhere(bool test(E element)) {
- throw new UnsupportedError("Cannot remove from immutable List.");
- }
-
- void setRange(int start, int end, Iterable<E> iterable, [int skipCount = 0]) {
- throw new UnsupportedError("Cannot setRange on immutable List.");
- }
-
- void removeRange(int start, int end) {
- throw new UnsupportedError("Cannot removeRange on immutable List.");
- }
-
- void replaceRange(int start, int end, Iterable<E> iterable) {
- throw new UnsupportedError("Cannot modify an immutable List.");
- }
-
- void fillRange(int start, int end, [E fillValue]) {
- throw new UnsupportedError("Cannot modify an immutable List.");
- }
-}
-// 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.
-
-/**
- * Defines the keycode values for keys that are returned by
- * KeyboardEvent.keyCode.
- *
- * Important note: There is substantial divergence in how different browsers
- * handle keycodes and their variants in different locales/keyboard layouts. We
- * provide these constants to help make code processing keys more readable.
- */
-abstract class KeyCode {
- // These constant names were borrowed from Closure's Keycode enumeration
- // class.
- // http://closure-library.googlecode.com/svn/docs/closure_goog_events_keycodes.js.source.html
- static const int WIN_KEY_FF_LINUX = 0;
- static const int MAC_ENTER = 3;
- static const int BACKSPACE = 8;
- static const int TAB = 9;
- /** NUM_CENTER is also NUMLOCK for FF and Safari on Mac. */
- static const int NUM_CENTER = 12;
- static const int ENTER = 13;
- static const int SHIFT = 16;
- static const int CTRL = 17;
- static const int ALT = 18;
- static const int PAUSE = 19;
- static const int CAPS_LOCK = 20;
- static const int ESC = 27;
- static const int SPACE = 32;
- static const int PAGE_UP = 33;
- static const int PAGE_DOWN = 34;
- static const int END = 35;
- static const int HOME = 36;
- static const int LEFT = 37;
- static const int UP = 38;
- static const int RIGHT = 39;
- static const int DOWN = 40;
- static const int NUM_NORTH_EAST = 33;
- static const int NUM_SOUTH_EAST = 34;
- static const int NUM_SOUTH_WEST = 35;
- static const int NUM_NORTH_WEST = 36;
- static const int NUM_WEST = 37;
- static const int NUM_NORTH = 38;
- static const int NUM_EAST = 39;
- static const int NUM_SOUTH = 40;
- static const int PRINT_SCREEN = 44;
- static const int INSERT = 45;
- static const int NUM_INSERT = 45;
- static const int DELETE = 46;
- static const int NUM_DELETE = 46;
- static const int ZERO = 48;
- static const int ONE = 49;
- static const int TWO = 50;
- static const int THREE = 51;
- static const int FOUR = 52;
- static const int FIVE = 53;
- static const int SIX = 54;
- static const int SEVEN = 55;
- static const int EIGHT = 56;
- static const int NINE = 57;
- static const int FF_SEMICOLON = 59;
- static const int FF_EQUALS = 61;
- /**
- * CAUTION: The question mark is for US-keyboard layouts. It varies
- * for other locales and keyboard layouts.
- */
- static const int QUESTION_MARK = 63;
- static const int A = 65;
- static const int B = 66;
- static const int C = 67;
- static const int D = 68;
- static const int E = 69;
- static const int F = 70;
- static const int G = 71;
- static const int H = 72;
- static const int I = 73;
- static const int J = 74;
- static const int K = 75;
- static const int L = 76;
- static const int M = 77;
- static const int N = 78;
- static const int O = 79;
- static const int P = 80;
- static const int Q = 81;
- static const int R = 82;
- static const int S = 83;
- static const int T = 84;
- static const int U = 85;
- static const int V = 86;
- static const int W = 87;
- static const int X = 88;
- static const int Y = 89;
- static const int Z = 90;
- static const int META = 91;
- static const int WIN_KEY_LEFT = 91;
- static const int WIN_KEY_RIGHT = 92;
- static const int CONTEXT_MENU = 93;
- static const int NUM_ZERO = 96;
- static const int NUM_ONE = 97;
- static const int NUM_TWO = 98;
- static const int NUM_THREE = 99;
- static const int NUM_FOUR = 100;
- static const int NUM_FIVE = 101;
- static const int NUM_SIX = 102;
- static const int NUM_SEVEN = 103;
- static const int NUM_EIGHT = 104;
- static const int NUM_NINE = 105;
- static const int NUM_MULTIPLY = 106;
- static const int NUM_PLUS = 107;
- static const int NUM_MINUS = 109;
- static const int NUM_PERIOD = 110;
- static const int NUM_DIVISION = 111;
- static const int F1 = 112;
- static const int F2 = 113;
- static const int F3 = 114;
- static const int F4 = 115;
- static const int F5 = 116;
- static const int F6 = 117;
- static const int F7 = 118;
- static const int F8 = 119;
- static const int F9 = 120;
- static const int F10 = 121;
- static const int F11 = 122;
- static const int F12 = 123;
- static const int NUMLOCK = 144;
- static const int SCROLL_LOCK = 145;
-
- // OS-specific media keys like volume controls and browser controls.
- static const int FIRST_MEDIA_KEY = 166;
- static const int LAST_MEDIA_KEY = 183;
-
- /**
- * CAUTION: This constant requires localization for other locales and keyboard
- * layouts.
- */
- static const int SEMICOLON = 186;
- /**
- * CAUTION: This constant requires localization for other locales and keyboard
- * layouts.
- */
- static const int DASH = 189;
- /**
- * CAUTION: This constant requires localization for other locales and keyboard
- * layouts.
- */
- static const int EQUALS = 187;
- /**
- * CAUTION: This constant requires localization for other locales and keyboard
- * layouts.
- */
- static const int COMMA = 188;
- /**
- * CAUTION: This constant requires localization for other locales and keyboard
- * layouts.
- */
- static const int PERIOD = 190;
- /**
- * CAUTION: This constant requires localization for other locales and keyboard
- * layouts.
- */
- static const int SLASH = 191;
- /**
- * CAUTION: This constant requires localization for other locales and keyboard
- * layouts.
- */
- static const int APOSTROPHE = 192;
- /**
- * CAUTION: This constant requires localization for other locales and keyboard
- * layouts.
- */
- static const int TILDE = 192;
- /**
- * CAUTION: This constant requires localization for other locales and keyboard
- * layouts.
- */
- static const int SINGLE_QUOTE = 222;
- /**
- * CAUTION: This constant requires localization for other locales and keyboard
- * layouts.
- */
- static const int OPEN_SQUARE_BRACKET = 219;
- /**
- * CAUTION: This constant requires localization for other locales and keyboard
- * layouts.
- */
- static const int BACKSLASH = 220;
- /**
- * CAUTION: This constant requires localization for other locales and keyboard
- * layouts.
- */
- static const int CLOSE_SQUARE_BRACKET = 221;
- static const int WIN_KEY = 224;
- static const int MAC_FF_META = 224;
- static const int WIN_IME = 229;
-
- /** A sentinel value if the keycode could not be determined. */
- static const int UNKNOWN = -1;
-
- /**
- * Returns true if the keyCode produces a (US keyboard) character.
- * Note: This does not (yet) cover characters on non-US keyboards (Russian,
- * Hebrew, etc.).
- */
- static bool isCharacterKey(int keyCode) {
- if ((keyCode >= ZERO && keyCode <= NINE) ||
- (keyCode >= NUM_ZERO && keyCode <= NUM_MULTIPLY) ||
- (keyCode >= A && keyCode <= Z)) {
- return true;
- }
-
- // Safari sends zero key code for non-latin characters.
- if (Device.isWebKit && keyCode == 0) {
- return true;
- }
-
- return (keyCode == SPACE ||
- keyCode == QUESTION_MARK ||
- keyCode == NUM_PLUS ||
- keyCode == NUM_MINUS ||
- keyCode == NUM_PERIOD ||
- keyCode == NUM_DIVISION ||
- keyCode == SEMICOLON ||
- keyCode == FF_SEMICOLON ||
- keyCode == DASH ||
- keyCode == EQUALS ||
- keyCode == FF_EQUALS ||
- keyCode == COMMA ||
- keyCode == PERIOD ||
- keyCode == SLASH ||
- keyCode == APOSTROPHE ||
- keyCode == SINGLE_QUOTE ||
- keyCode == OPEN_SQUARE_BRACKET ||
- keyCode == BACKSLASH ||
- keyCode == CLOSE_SQUARE_BRACKET);
- }
-
- /**
- * Experimental helper function for converting keyCodes to keyNames for the
- * keyIdentifier attribute still used in browsers not updated with current
- * spec. This is an imperfect conversion! It will need to be refined, but
- * hopefully it can just completely go away once all the browsers update to
- * follow the DOM3 spec.
- */
- static String _convertKeyCodeToKeyName(int keyCode) {
- switch (keyCode) {
- case KeyCode.ALT:
- return _KeyName.ALT;
- case KeyCode.BACKSPACE:
- return _KeyName.BACKSPACE;
- case KeyCode.CAPS_LOCK:
- return _KeyName.CAPS_LOCK;
- case KeyCode.CTRL:
- return _KeyName.CONTROL;
- case KeyCode.DELETE:
- return _KeyName.DEL;
- case KeyCode.DOWN:
- return _KeyName.DOWN;
- case KeyCode.END:
- return _KeyName.END;
- case KeyCode.ENTER:
- return _KeyName.ENTER;
- case KeyCode.ESC:
- return _KeyName.ESC;
- case KeyCode.F1:
- return _KeyName.F1;
- case KeyCode.F2:
- return _KeyName.F2;
- case KeyCode.F3:
- return _KeyName.F3;
- case KeyCode.F4:
- return _KeyName.F4;
- case KeyCode.F5:
- return _KeyName.F5;
- case KeyCode.F6:
- return _KeyName.F6;
- case KeyCode.F7:
- return _KeyName.F7;
- case KeyCode.F8:
- return _KeyName.F8;
- case KeyCode.F9:
- return _KeyName.F9;
- case KeyCode.F10:
- return _KeyName.F10;
- case KeyCode.F11:
- return _KeyName.F11;
- case KeyCode.F12:
- return _KeyName.F12;
- case KeyCode.HOME:
- return _KeyName.HOME;
- case KeyCode.INSERT:
- return _KeyName.INSERT;
- case KeyCode.LEFT:
- return _KeyName.LEFT;
- case KeyCode.META:
- return _KeyName.META;
- case KeyCode.NUMLOCK:
- return _KeyName.NUM_LOCK;
- case KeyCode.PAGE_DOWN:
- return _KeyName.PAGE_DOWN;
- case KeyCode.PAGE_UP:
- return _KeyName.PAGE_UP;
- case KeyCode.PAUSE:
- return _KeyName.PAUSE;
- case KeyCode.PRINT_SCREEN:
- return _KeyName.PRINT_SCREEN;
- case KeyCode.RIGHT:
- return _KeyName.RIGHT;
- case KeyCode.SCROLL_LOCK:
- return _KeyName.SCROLL;
- case KeyCode.SHIFT:
- return _KeyName.SHIFT;
- case KeyCode.SPACE:
- return _KeyName.SPACEBAR;
- case KeyCode.TAB:
- return _KeyName.TAB;
- case KeyCode.UP:
- return _KeyName.UP;
- case KeyCode.WIN_IME:
- case KeyCode.WIN_KEY:
- case KeyCode.WIN_KEY_LEFT:
- case KeyCode.WIN_KEY_RIGHT:
- return _KeyName.WIN;
- default:
- return _KeyName.UNIDENTIFIED;
- }
- return _KeyName.UNIDENTIFIED;
- }
-}
-// Copyright (c) 2011, 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.
-
-/**
- * Defines the standard key locations returned by
- * KeyboardEvent.getKeyLocation.
- */
-abstract class KeyLocation {
- /**
- * The event key is not distinguished as the left or right version
- * of the key, and did not originate from the numeric keypad (or did not
- * originate with a virtual key corresponding to the numeric keypad).
- */
- static const int STANDARD = 0;
-
- /**
- * The event key is in the left key location.
- */
- static const int LEFT = 1;
-
- /**
- * The event key is in the right key location.
- */
- static const int RIGHT = 2;
-
- /**
- * The event key originated on the numeric keypad or with a virtual key
- * corresponding to the numeric keypad.
- */
- static const int NUMPAD = 3;
-
- /**
- * The event key originated on a mobile device, either on a physical
- * keypad or a virtual keyboard.
- */
- static const int MOBILE = 4;
-
- /**
- * The event key originated on a game controller or a joystick on a mobile
- * device.
- */
- static const int JOYSTICK = 5;
-}
-// 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.
-
-/**
- * Defines the standard keyboard identifier names for keys that are returned
- * by KeyboardEvent.getKeyboardIdentifier when the key does not have a direct
- * unicode mapping.
- */
-abstract class _KeyName {
- /** The Accept (Commit, OK) key */
- static const String ACCEPT = "Accept";
-
- /** The Add key */
- static const String ADD = "Add";
-
- /** The Again key */
- static const String AGAIN = "Again";
-
- /** The All Candidates key */
- static const String ALL_CANDIDATES = "AllCandidates";
-
- /** The Alphanumeric key */
- static const String ALPHANUMERIC = "Alphanumeric";
-
- /** The Alt (Menu) key */
- static const String ALT = "Alt";
-
- /** The Alt-Graph key */
- static const String ALT_GRAPH = "AltGraph";
-
- /** The Application key */
- static const String APPS = "Apps";
-
- /** The ATTN key */
- static const String ATTN = "Attn";
-
- /** The Browser Back key */
- static const String BROWSER_BACK = "BrowserBack";
-
- /** The Browser Favorites key */
- static const String BROWSER_FAVORTIES = "BrowserFavorites";
-
- /** The Browser Forward key */
- static const String BROWSER_FORWARD = "BrowserForward";
-
- /** The Browser Home key */
- static const String BROWSER_NAME = "BrowserHome";
-
- /** The Browser Refresh key */
- static const String BROWSER_REFRESH = "BrowserRefresh";
-
- /** The Browser Search key */
- static const String BROWSER_SEARCH = "BrowserSearch";
-
- /** The Browser Stop key */
- static const String BROWSER_STOP = "BrowserStop";
-
- /** The Camera key */
- static const String CAMERA = "Camera";
-
- /** The Caps Lock (Capital) key */
- static const String CAPS_LOCK = "CapsLock";
-
- /** The Clear key */
- static const String CLEAR = "Clear";
-
- /** The Code Input key */
- static const String CODE_INPUT = "CodeInput";
-
- /** The Compose key */
- static const String COMPOSE = "Compose";
-
- /** The Control (Ctrl) key */
- static const String CONTROL = "Control";
-
- /** The Crsel key */
- static const String CRSEL = "Crsel";
-
- /** The Convert key */
- static const String CONVERT = "Convert";
-
- /** The Copy key */
- static const String COPY = "Copy";
-
- /** The Cut key */
- static const String CUT = "Cut";
-
- /** The Decimal key */
- static const String DECIMAL = "Decimal";
-
- /** The Divide key */
- static const String DIVIDE = "Divide";
-
- /** The Down Arrow key */
- static const String DOWN = "Down";
-
- /** The diagonal Down-Left Arrow key */
- static const String DOWN_LEFT = "DownLeft";
-
- /** The diagonal Down-Right Arrow key */
- static const String DOWN_RIGHT = "DownRight";
-
- /** The Eject key */
- static const String EJECT = "Eject";
-
- /** The End key */
- static const String END = "End";
-
- /**
- * The Enter key. Note: This key value must also be used for the Return
- * (Macintosh numpad) key
- */
- static const String ENTER = "Enter";
-
- /** The Erase EOF key */
- static const String ERASE_EOF = "EraseEof";
-
- /** The Execute key */
- static const String EXECUTE = "Execute";
-
- /** The Exsel key */
- static const String EXSEL = "Exsel";
-
- /** The Function switch key */
- static const String FN = "Fn";
-
- /** The F1 key */
- static const String F1 = "F1";
-
- /** The F2 key */
- static const String F2 = "F2";
-
- /** The F3 key */
- static const String F3 = "F3";
-
- /** The F4 key */
- static const String F4 = "F4";
-
- /** The F5 key */
- static const String F5 = "F5";
-
- /** The F6 key */
- static const String F6 = "F6";
-
- /** The F7 key */
- static const String F7 = "F7";
-
- /** The F8 key */
- static const String F8 = "F8";
-
- /** The F9 key */
- static const String F9 = "F9";
-
- /** The F10 key */
- static const String F10 = "F10";
-
- /** The F11 key */
- static const String F11 = "F11";
-
- /** The F12 key */
- static const String F12 = "F12";
-
- /** The F13 key */
- static const String F13 = "F13";
-
- /** The F14 key */
- static const String F14 = "F14";
-
- /** The F15 key */
- static const String F15 = "F15";
-
- /** The F16 key */
- static const String F16 = "F16";
-
- /** The F17 key */
- static const String F17 = "F17";
-
- /** The F18 key */
- static const String F18 = "F18";
-
- /** The F19 key */
- static const String F19 = "F19";
-
- /** The F20 key */
- static const String F20 = "F20";
-
- /** The F21 key */
- static const String F21 = "F21";
-
- /** The F22 key */
- static const String F22 = "F22";
-
- /** The F23 key */
- static const String F23 = "F23";
-
- /** The F24 key */
- static const String F24 = "F24";
-
- /** The Final Mode (Final) key used on some asian keyboards */
- static const String FINAL_MODE = "FinalMode";
-
- /** The Find key */
- static const String FIND = "Find";
-
- /** The Full-Width Characters key */
- static const String FULL_WIDTH = "FullWidth";
-
- /** The Half-Width Characters key */
- static const String HALF_WIDTH = "HalfWidth";
-
- /** The Hangul (Korean characters) Mode key */
- static const String HANGUL_MODE = "HangulMode";
-
- /** The Hanja (Korean characters) Mode key */
- static const String HANJA_MODE = "HanjaMode";
-
- /** The Help key */
- static const String HELP = "Help";
-
- /** The Hiragana (Japanese Kana characters) key */
- static const String HIRAGANA = "Hiragana";
-
- /** The Home key */
- static const String HOME = "Home";
-
- /** The Insert (Ins) key */
- static const String INSERT = "Insert";
-
- /** The Japanese-Hiragana key */
- static const String JAPANESE_HIRAGANA = "JapaneseHiragana";
-
- /** The Japanese-Katakana key */
- static const String JAPANESE_KATAKANA = "JapaneseKatakana";
-
- /** The Japanese-Romaji key */
- static const String JAPANESE_ROMAJI = "JapaneseRomaji";
-
- /** The Junja Mode key */
- static const String JUNJA_MODE = "JunjaMode";
-
- /** The Kana Mode (Kana Lock) key */
- static const String KANA_MODE = "KanaMode";
-
- /**
- * The Kanji (Japanese name for ideographic characters of Chinese origin)
- * Mode key
- */
- static const String KANJI_MODE = "KanjiMode";
-
- /** The Katakana (Japanese Kana characters) key */
- static const String KATAKANA = "Katakana";
-
- /** The Start Application One key */
- static const String LAUNCH_APPLICATION_1 = "LaunchApplication1";
-
- /** The Start Application Two key */
- static const String LAUNCH_APPLICATION_2 = "LaunchApplication2";
-
- /** The Start Mail key */
- static const String LAUNCH_MAIL = "LaunchMail";
-
- /** The Left Arrow key */
- static const String LEFT = "Left";
-
- /** The Menu key */
- static const String MENU = "Menu";
-
- /**
- * The Meta key. Note: This key value shall be also used for the Apple
- * Command key
- */
- static const String META = "Meta";
-
- /** The Media Next Track key */
- static const String MEDIA_NEXT_TRACK = "MediaNextTrack";
-
- /** The Media Play Pause key */
- static const String MEDIA_PAUSE_PLAY = "MediaPlayPause";
-
- /** The Media Previous Track key */
- static const String MEDIA_PREVIOUS_TRACK = "MediaPreviousTrack";
-
- /** The Media Stop key */
- static const String MEDIA_STOP = "MediaStop";
-
- /** The Mode Change key */
- static const String MODE_CHANGE = "ModeChange";
-
- /** The Next Candidate function key */
- static const String NEXT_CANDIDATE = "NextCandidate";
-
- /** The Nonconvert (Don't Convert) key */
- static const String NON_CONVERT = "Nonconvert";
-
- /** The Number Lock key */
- static const String NUM_LOCK = "NumLock";
-
- /** The Page Down (Next) key */
- static const String PAGE_DOWN = "PageDown";
-
- /** The Page Up key */
- static const String PAGE_UP = "PageUp";
-
- /** The Paste key */
- static const String PASTE = "Paste";
-
- /** The Pause key */
- static const String PAUSE = "Pause";
-
- /** The Play key */
- static const String PLAY = "Play";
-
- /**
- * The Power key. Note: Some devices may not expose this key to the
- * operating environment
- */
- static const String POWER = "Power";
-
- /** The Previous Candidate function key */
- static const String PREVIOUS_CANDIDATE = "PreviousCandidate";
-
- /** The Print Screen (PrintScrn, SnapShot) key */
- static const String PRINT_SCREEN = "PrintScreen";
-
- /** The Process key */
- static const String PROCESS = "Process";
-
- /** The Props key */
- static const String PROPS = "Props";
-
- /** The Right Arrow key */
- static const String RIGHT = "Right";
-
- /** The Roman Characters function key */
- static const String ROMAN_CHARACTERS = "RomanCharacters";
-
- /** The Scroll Lock key */
- static const String SCROLL = "Scroll";
-
- /** The Select key */
- static const String SELECT = "Select";
-
- /** The Select Media key */
- static const String SELECT_MEDIA = "SelectMedia";
-
- /** The Separator key */
- static const String SEPARATOR = "Separator";
-
- /** The Shift key */
- static const String SHIFT = "Shift";
-
- /** The Soft1 key */
- static const String SOFT_1 = "Soft1";
-
- /** The Soft2 key */
- static const String SOFT_2 = "Soft2";
-
- /** The Soft3 key */
- static const String SOFT_3 = "Soft3";
-
- /** The Soft4 key */
- static const String SOFT_4 = "Soft4";
-
- /** The Stop key */
- static const String STOP = "Stop";
-
- /** The Subtract key */
- static const String SUBTRACT = "Subtract";
-
- /** The Symbol Lock key */
- static const String SYMBOL_LOCK = "SymbolLock";
-
- /** The Up Arrow key */
- static const String UP = "Up";
-
- /** The diagonal Up-Left Arrow key */
- static const String UP_LEFT = "UpLeft";
-
- /** The diagonal Up-Right Arrow key */
- static const String UP_RIGHT = "UpRight";
-
- /** The Undo key */
- static const String UNDO = "Undo";
-
- /** The Volume Down key */
- static const String VOLUME_DOWN = "VolumeDown";
-
- /** The Volume Mute key */
- static const String VOLUMN_MUTE = "VolumeMute";
-
- /** The Volume Up key */
- static const String VOLUMN_UP = "VolumeUp";
-
- /** The Windows Logo key */
- static const String WIN = "Win";
-
- /** The Zoom key */
- static const String ZOOM = "Zoom";
-
- /**
- * The Backspace (Back) key. Note: This key value shall be also used for the
- * key labeled 'delete' MacOS keyboards when not modified by the 'Fn' key
- */
- static const String BACKSPACE = "Backspace";
-
- /** The Horizontal Tabulation (Tab) key */
- static const String TAB = "Tab";
-
- /** The Cancel key */
- static const String CANCEL = "Cancel";
-
- /** The Escape (Esc) key */
- static const String ESC = "Esc";
-
- /** The Space (Spacebar) key: */
- static const String SPACEBAR = "Spacebar";
-
- /**
- * The Delete (Del) Key. Note: This key value shall be also used for the key
- * labeled 'delete' MacOS keyboards when modified by the 'Fn' key
- */
- static const String DEL = "Del";
-
- /** The Combining Grave Accent (Greek Varia, Dead Grave) key */
- static const String DEAD_GRAVE = "DeadGrave";
-
- /**
- * The Combining Acute Accent (Stress Mark, Greek Oxia, Tonos, Dead Eacute)
- * key
- */
- static const String DEAD_EACUTE = "DeadEacute";
-
- /** The Combining Circumflex Accent (Hat, Dead Circumflex) key */
- static const String DEAD_CIRCUMFLEX = "DeadCircumflex";
-
- /** The Combining Tilde (Dead Tilde) key */
- static const String DEAD_TILDE = "DeadTilde";
-
- /** The Combining Macron (Long, Dead Macron) key */
- static const String DEAD_MACRON = "DeadMacron";
-
- /** The Combining Breve (Short, Dead Breve) key */
- static const String DEAD_BREVE = "DeadBreve";
-
- /** The Combining Dot Above (Derivative, Dead Above Dot) key */
- static const String DEAD_ABOVE_DOT = "DeadAboveDot";
-
- /**
- * The Combining Diaeresis (Double Dot Abode, Umlaut, Greek Dialytika,
- * Double Derivative, Dead Diaeresis) key
- */
- static const String DEAD_UMLAUT = "DeadUmlaut";
-
- /** The Combining Ring Above (Dead Above Ring) key */
- static const String DEAD_ABOVE_RING = "DeadAboveRing";
-
- /** The Combining Double Acute Accent (Dead Doubleacute) key */
- static const String DEAD_DOUBLEACUTE = "DeadDoubleacute";
-
- /** The Combining Caron (Hacek, V Above, Dead Caron) key */
- static const String DEAD_CARON = "DeadCaron";
-
- /** The Combining Cedilla (Dead Cedilla) key */
- static const String DEAD_CEDILLA = "DeadCedilla";
-
- /** The Combining Ogonek (Nasal Hook, Dead Ogonek) key */
- static const String DEAD_OGONEK = "DeadOgonek";
-
- /**
- * The Combining Greek Ypogegrammeni (Greek Non-Spacing Iota Below, Iota
- * Subscript, Dead Iota) key
- */
- static const String DEAD_IOTA = "DeadIota";
-
- /**
- * The Combining Katakana-Hiragana Voiced Sound Mark (Dead Voiced Sound) key
- */
- static const String DEAD_VOICED_SOUND = "DeadVoicedSound";
-
- /**
- * The Combining Katakana-Hiragana Semi-Voiced Sound Mark (Dead Semivoiced
- * Sound) key
- */
- static const String DEC_SEMIVOICED_SOUND = "DeadSemivoicedSound";
-
- /**
- * Key value used when an implementation is unable to identify another key
- * value, due to either hardware, platform, or software constraints
- */
- static const String UNIDENTIFIED = "Unidentified";
-}
-// 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.
-
-/**
- * Internal class that does the actual calculations to determine keyCode and
- * charCode for keydown, keypress, and keyup events for all browsers.
- */
-class _KeyboardEventHandler extends EventStreamProvider<KeyEvent> {
- // This code inspired by Closure's KeyHandling library.
- // http://closure-library.googlecode.com/svn/docs/closure_goog_events_keyhandler.js.source.html
-
- /**
- * The set of keys that have been pressed down without seeing their
- * corresponding keyup event.
- */
- final List<KeyEvent> _keyDownList = <KeyEvent>[];
-
- /** The type of KeyEvent we are tracking (keyup, keydown, keypress). */
- final String _type;
-
- /** The element we are watching for events to happen on. */
- final EventTarget _target;
-
- // The distance to shift from upper case alphabet Roman letters to lower case.
- static final int _ROMAN_ALPHABET_OFFSET = "a".codeUnits[0] - "A".codeUnits[0];
-
- /** Custom Stream (Controller) to produce KeyEvents for the stream. */
- _CustomKeyEventStreamImpl _stream;
-
- static const _EVENT_TYPE = 'KeyEvent';
-
- /**
- * An enumeration of key identifiers currently part of the W3C draft for DOM3
- * and their mappings to keyCodes.
- * http://www.w3.org/TR/DOM-Level-3-Events/keyset.html#KeySet-Set
- */
- static const Map<String, int> _keyIdentifier = const {
- 'Up': KeyCode.UP,
- 'Down': KeyCode.DOWN,
- 'Left': KeyCode.LEFT,
- 'Right': KeyCode.RIGHT,
- 'Enter': KeyCode.ENTER,
- 'F1': KeyCode.F1,
- 'F2': KeyCode.F2,
- 'F3': KeyCode.F3,
- 'F4': KeyCode.F4,
- 'F5': KeyCode.F5,
- 'F6': KeyCode.F6,
- 'F7': KeyCode.F7,
- 'F8': KeyCode.F8,
- 'F9': KeyCode.F9,
- 'F10': KeyCode.F10,
- 'F11': KeyCode.F11,
- 'F12': KeyCode.F12,
- 'U+007F': KeyCode.DELETE,
- 'Home': KeyCode.HOME,
- 'End': KeyCode.END,
- 'PageUp': KeyCode.PAGE_UP,
- 'PageDown': KeyCode.PAGE_DOWN,
- 'Insert': KeyCode.INSERT
- };
-
- /** Return a stream for KeyEvents for the specified target. */
- // Note: this actually functions like a factory constructor.
- CustomStream<KeyEvent> forTarget(EventTarget e, {bool useCapture: false}) {
- var handler =
- new _KeyboardEventHandler.initializeAllEventListeners(_type, e);
- return handler._stream;
- }
-
- /**
- * General constructor, performs basic initialization for our improved
- * KeyboardEvent controller.
- */
- _KeyboardEventHandler(this._type)
- : _stream = new _CustomKeyEventStreamImpl('event'),
- _target = null,
- super(_EVENT_TYPE);
-
- /**
- * Hook up all event listeners under the covers so we can estimate keycodes
- * and charcodes when they are not provided.
- */
- _KeyboardEventHandler.initializeAllEventListeners(this._type, this._target)
- : super(_EVENT_TYPE) {
- Element.keyDownEvent
- .forTarget(_target, useCapture: true)
- .listen(processKeyDown);
- Element.keyPressEvent
- .forTarget(_target, useCapture: true)
- .listen(processKeyPress);
- Element.keyUpEvent
- .forTarget(_target, useCapture: true)
- .listen(processKeyUp);
- _stream = new _CustomKeyEventStreamImpl(_type);
- }
-
- /** Determine if caps lock is one of the currently depressed keys. */
- bool get _capsLockOn =>
- _keyDownList.any((var element) => element.keyCode == KeyCode.CAPS_LOCK);
-
- /**
- * Given the previously recorded keydown key codes, see if we can determine
- * the keycode of this keypress [event]. (Generally browsers only provide
- * charCode information for keypress events, but with a little
- * reverse-engineering, we can also determine the keyCode.) Returns
- * KeyCode.UNKNOWN if the keycode could not be determined.
- */
- int _determineKeyCodeForKeypress(KeyboardEvent event) {
- // Note: This function is a work in progress. We'll expand this function
- // once we get more information about other keyboards.
- for (var prevEvent in _keyDownList) {
- if (prevEvent._shadowCharCode == event.charCode) {
- return prevEvent.keyCode;
- }
- if ((event.shiftKey || _capsLockOn) &&
- event.charCode >= "A".codeUnits[0] &&
- event.charCode <= "Z".codeUnits[0] &&
- event.charCode + _ROMAN_ALPHABET_OFFSET ==
- prevEvent._shadowCharCode) {
- return prevEvent.keyCode;
- }
- }
- return KeyCode.UNKNOWN;
- }
-
- /**
- * Given the character code returned from a keyDown [event], try to ascertain
- * and return the corresponding charCode for the character that was pressed.
- * This information is not shown to the user, but used to help polyfill
- * keypress events.
- */
- int _findCharCodeKeyDown(KeyboardEvent event) {
- if (event.location == 3) {
- // Numpad keys.
- switch (event.keyCode) {
- case KeyCode.NUM_ZERO:
- // Even though this function returns _charCodes_, for some cases the
- // KeyCode == the charCode we want, in which case we use the keycode
- // constant for readability.
- return KeyCode.ZERO;
- case KeyCode.NUM_ONE:
- return KeyCode.ONE;
- case KeyCode.NUM_TWO:
- return KeyCode.TWO;
- case KeyCode.NUM_THREE:
- return KeyCode.THREE;
- case KeyCode.NUM_FOUR:
- return KeyCode.FOUR;
- case KeyCode.NUM_FIVE:
- return KeyCode.FIVE;
- case KeyCode.NUM_SIX:
- return KeyCode.SIX;
- case KeyCode.NUM_SEVEN:
- return KeyCode.SEVEN;
- case KeyCode.NUM_EIGHT:
- return KeyCode.EIGHT;
- case KeyCode.NUM_NINE:
- return KeyCode.NINE;
- case KeyCode.NUM_MULTIPLY:
- return 42; // Char code for *
- case KeyCode.NUM_PLUS:
- return 43; // +
- case KeyCode.NUM_MINUS:
- return 45; // -
- case KeyCode.NUM_PERIOD:
- return 46; // .
- case KeyCode.NUM_DIVISION:
- return 47; // /
- }
- } else if (event.keyCode >= 65 && event.keyCode <= 90) {
- // Set the "char code" for key down as the lower case letter. Again, this
- // will not show up for the user, but will be helpful in estimating
- // keyCode locations and other information during the keyPress event.
- return event.keyCode + _ROMAN_ALPHABET_OFFSET;
- }
- switch (event.keyCode) {
- case KeyCode.SEMICOLON:
- return KeyCode.FF_SEMICOLON;
- case KeyCode.EQUALS:
- return KeyCode.FF_EQUALS;
- case KeyCode.COMMA:
- return 44; // Ascii value for ,
- case KeyCode.DASH:
- return 45; // -
- case KeyCode.PERIOD:
- return 46; // .
- case KeyCode.SLASH:
- return 47; // /
- case KeyCode.APOSTROPHE:
- return 96; // `
- case KeyCode.OPEN_SQUARE_BRACKET:
- return 91; // [
- case KeyCode.BACKSLASH:
- return 92; // \
- case KeyCode.CLOSE_SQUARE_BRACKET:
- return 93; // ]
- case KeyCode.SINGLE_QUOTE:
- return 39; // '
- }
- return event.keyCode;
- }
-
- /**
- * Returns true if the key fires a keypress event in the current browser.
- */
- bool _firesKeyPressEvent(KeyEvent event) {
- if (!Device.isIE && !Device.isWebKit) {
- return true;
- }
-
- if (Device.userAgent.contains('Mac') && event.altKey) {
- return KeyCode.isCharacterKey(event.keyCode);
- }
-
- // Alt but not AltGr which is represented as Alt+Ctrl.
- if (event.altKey && !event.ctrlKey) {
- return false;
- }
-
- // Saves Ctrl or Alt + key for IE and WebKit, which won't fire keypress.
- if (!event.shiftKey &&
- (_keyDownList.last.keyCode == KeyCode.CTRL ||
- _keyDownList.last.keyCode == KeyCode.ALT ||
- Device.userAgent.contains('Mac') &&
- _keyDownList.last.keyCode == KeyCode.META)) {
- return false;
- }
-
- // Some keys with Ctrl/Shift do not issue keypress in WebKit.
- if (Device.isWebKit &&
- event.ctrlKey &&
- event.shiftKey &&
- (event.keyCode == KeyCode.BACKSLASH ||
- event.keyCode == KeyCode.OPEN_SQUARE_BRACKET ||
- event.keyCode == KeyCode.CLOSE_SQUARE_BRACKET ||
- event.keyCode == KeyCode.TILDE ||
- event.keyCode == KeyCode.SEMICOLON ||
- event.keyCode == KeyCode.DASH ||
- event.keyCode == KeyCode.EQUALS ||
- event.keyCode == KeyCode.COMMA ||
- event.keyCode == KeyCode.PERIOD ||
- event.keyCode == KeyCode.SLASH ||
- event.keyCode == KeyCode.APOSTROPHE ||
- event.keyCode == KeyCode.SINGLE_QUOTE)) {
- return false;
- }
-
- switch (event.keyCode) {
- case KeyCode.ENTER:
- // IE9 does not fire keypress on ENTER.
- return !Device.isIE;
- case KeyCode.ESC:
- return !Device.isWebKit;
- }
-
- return KeyCode.isCharacterKey(event.keyCode);
- }
-
- /**
- * Normalize the keycodes to the IE KeyCodes (this is what Chrome, IE, and
- * Opera all use).
- */
- int _normalizeKeyCodes(KeyboardEvent event) {
- // Note: This may change once we get input about non-US keyboards.
- if (Device.isFirefox) {
- switch (event.keyCode) {
- case KeyCode.FF_EQUALS:
- return KeyCode.EQUALS;
- case KeyCode.FF_SEMICOLON:
- return KeyCode.SEMICOLON;
- case KeyCode.MAC_FF_META:
- return KeyCode.META;
- case KeyCode.WIN_KEY_FF_LINUX:
- return KeyCode.WIN_KEY;
- }
- }
- return event.keyCode;
- }
-
- /** Handle keydown events. */
- void processKeyDown(KeyboardEvent e) {
- // Ctrl-Tab and Alt-Tab can cause the focus to be moved to another window
- // before we've caught a key-up event. If the last-key was one of these
- // we reset the state.
- if (_keyDownList.length > 0 &&
- (_keyDownList.last.keyCode == KeyCode.CTRL && !e.ctrlKey ||
- _keyDownList.last.keyCode == KeyCode.ALT && !e.altKey ||
- Device.userAgent.contains('Mac') &&
- _keyDownList.last.keyCode == KeyCode.META &&
- !e.metaKey)) {
- _keyDownList.clear();
- }
-
- var event = new KeyEvent.wrap(e);
- event._shadowKeyCode = _normalizeKeyCodes(event);
- // Technically a "keydown" event doesn't have a charCode. This is
- // calculated nonetheless to provide us with more information in giving
- // as much information as possible on keypress about keycode and also
- // charCode.
- event._shadowCharCode = _findCharCodeKeyDown(event);
- if (_keyDownList.length > 0 &&
- event.keyCode != _keyDownList.last.keyCode &&
- !_firesKeyPressEvent(event)) {
- // Some browsers have quirks not firing keypress events where all other
- // browsers do. This makes them more consistent.
- processKeyPress(e);
- }
- _keyDownList.add(event);
- _stream.add(event);
- }
-
- /** Handle keypress events. */
- void processKeyPress(KeyboardEvent event) {
- var e = new KeyEvent.wrap(event);
- // IE reports the character code in the keyCode field for keypress events.
- // There are two exceptions however, Enter and Escape.
- if (Device.isIE) {
- if (e.keyCode == KeyCode.ENTER || e.keyCode == KeyCode.ESC) {
- e._shadowCharCode = 0;
- } else {
- e._shadowCharCode = e.keyCode;
- }
- } else if (Device.isOpera) {
- // Opera reports the character code in the keyCode field.
- e._shadowCharCode = KeyCode.isCharacterKey(e.keyCode) ? e.keyCode : 0;
- }
- // Now we guesstimate about what the keycode is that was actually
- // pressed, given previous keydown information.
- e._shadowKeyCode = _determineKeyCodeForKeypress(e);
-
- // Correct the key value for certain browser-specific quirks.
- if (e._shadowKeyIdentifier != null &&
- _keyIdentifier.containsKey(e._shadowKeyIdentifier)) {
- // This is needed for Safari Windows because it currently doesn't give a
- // keyCode/which for non printable keys.
- e._shadowKeyCode = _keyIdentifier[e._shadowKeyIdentifier];
- }
- e._shadowAltKey = _keyDownList.any((var element) => element.altKey);
- _stream.add(e);
- }
-
- /** Handle keyup events. */
- void processKeyUp(KeyboardEvent event) {
- var e = new KeyEvent.wrap(event);
- KeyboardEvent toRemove = null;
- for (var key in _keyDownList) {
- if (key.keyCode == e.keyCode) {
- toRemove = key;
- }
- }
- if (toRemove != null) {
- _keyDownList.removeWhere((element) => element == toRemove);
- } else if (_keyDownList.length > 0) {
- // This happens when we've reached some international keyboard case we
- // haven't accounted for or we haven't correctly eliminated all browser
- // inconsistencies. Filing bugs on when this is reached is welcome!
- _keyDownList.removeLast();
- }
- _stream.add(e);
- }
-}
-
-/**
- * Records KeyboardEvents that occur on a particular element, and provides a
- * stream of outgoing KeyEvents with cross-browser consistent keyCode and
- * charCode values despite the fact that a multitude of browsers that have
- * varying keyboard default behavior.
- *
- * Example usage:
- *
- * KeyboardEventStream.onKeyDown(document.body).listen(
- * keydownHandlerTest);
- *
- * This class is very much a work in progress, and we'd love to get information
- * on how we can make this class work with as many international keyboards as
- * possible. Bugs welcome!
- */
-class KeyboardEventStream {
- /** Named constructor to produce a stream for onKeyPress events. */
- static CustomStream<KeyEvent> onKeyPress(EventTarget target) =>
- new _KeyboardEventHandler('keypress').forTarget(target);
-
- /** Named constructor to produce a stream for onKeyUp events. */
- static CustomStream<KeyEvent> onKeyUp(EventTarget target) =>
- new _KeyboardEventHandler('keyup').forTarget(target);
-
- /** Named constructor to produce a stream for onKeyDown events. */
- static CustomStream<KeyEvent> onKeyDown(EventTarget target) =>
- new _KeyboardEventHandler('keydown').forTarget(target);
-}
-// 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.
-
-/**
- * Class which helps construct standard node validation policies.
- *
- * By default this will not accept anything, but the 'allow*' functions can be
- * used to expand what types of elements or attributes are allowed.
- *
- * All allow functions are additive- elements will be accepted if they are
- * accepted by any specific rule.
- *
- * It is important to remember that sanitization is not just intended to prevent
- * cross-site scripting attacks, but also to prevent information from being
- * displayed in unexpected ways. For example something displaying basic
- * formatted text may not expect `<video>` tags to appear. In this case an
- * empty NodeValidatorBuilder with just [allowTextElements] might be
- * appropriate.
- */
-class NodeValidatorBuilder implements NodeValidator {
- final List<NodeValidator> _validators = <NodeValidator>[];
-
- NodeValidatorBuilder() {}
-
- /**
- * Creates a new NodeValidatorBuilder which accepts common constructs.
- *
- * By default this will accept HTML5 elements and attributes with the default
- * [UriPolicy] and templating elements.
- *
- * Notable syntax which is filtered:
- *
- * * Only known-good HTML5 elements and attributes are allowed.
- * * All URLs must be same-origin, use [allowNavigation] and [allowImages] to
- * specify additional URI policies.
- * * Inline-styles are not allowed.
- * * Custom element tags are disallowed, use [allowCustomElement].
- * * Custom tags extensions are disallowed, use [allowTagExtension].
- * * SVG Elements are not allowed, use [allowSvg].
- *
- * For scenarios where the HTML should only contain formatted text
- * [allowTextElements] is more appropriate.
- *
- * Use [allowSvg] to allow SVG elements.
- */
- NodeValidatorBuilder.common() {
- allowHtml5();
- allowTemplating();
- }
-
- /**
- * Allows navigation elements- Form and Anchor tags, along with common
- * attributes.
- *
- * The UriPolicy can be used to restrict the locations the navigation elements
- * are allowed to direct to. By default this will use the default [UriPolicy].
- */
- void allowNavigation([UriPolicy uriPolicy]) {
- if (uriPolicy == null) {
- uriPolicy = new UriPolicy();
- }
- add(new _SimpleNodeValidator.allowNavigation(uriPolicy));
- }
-
- /**
- * Allows image elements.
- *
- * The UriPolicy can be used to restrict the locations the images may be
- * loaded from. By default this will use the default [UriPolicy].
- */
- void allowImages([UriPolicy uriPolicy]) {
- if (uriPolicy == null) {
- uriPolicy = new UriPolicy();
- }
- add(new _SimpleNodeValidator.allowImages(uriPolicy));
- }
-
- /**
- * Allow basic text elements.
- *
- * This allows a subset of HTML5 elements, specifically just these tags and
- * no attributes.
- *
- * * B
- * * BLOCKQUOTE
- * * BR
- * * EM
- * * H1
- * * H2
- * * H3
- * * H4
- * * H5
- * * H6
- * * HR
- * * I
- * * LI
- * * OL
- * * P
- * * SPAN
- * * UL
- */
- void allowTextElements() {
- add(new _SimpleNodeValidator.allowTextElements());
- }
-
- /**
- * Allow inline styles on elements.
- *
- * If [tagName] is not specified then this allows inline styles on all
- * elements. Otherwise tagName limits the styles to the specified elements.
- */
- void allowInlineStyles({String tagName}) {
- if (tagName == null) {
- tagName = '*';
- } else {
- tagName = tagName.toUpperCase();
- }
- add(new _SimpleNodeValidator(null, allowedAttributes: ['$tagName::style']));
- }
-
- /**
- * Allow common safe HTML5 elements and attributes.
- *
- * This list is based off of the Caja whitelists at:
- * https://code.google.com/p/google-caja/wiki/CajaWhitelists.
- *
- * Common things which are not allowed are script elements, style attributes
- * and any script handlers.
- */
- void allowHtml5({UriPolicy uriPolicy}) {
- add(new _Html5NodeValidator(uriPolicy: uriPolicy));
- }
-
- /**
- * Allow SVG elements and attributes except for known bad ones.
- */
- void allowSvg() {
- add(new _SvgNodeValidator());
- }
-
- /**
- * Allow custom elements with the specified tag name and specified attributes.
- *
- * This will allow the elements as custom tags (such as <x-foo></x-foo>),
- * but will not allow tag extensions. Use [allowTagExtension] to allow
- * tag extensions.
- */
- void allowCustomElement(String tagName,
- {UriPolicy uriPolicy,
- Iterable<String> attributes,
- Iterable<String> uriAttributes}) {
- var tagNameUpper = tagName.toUpperCase();
- var attrs = attributes
- ?.map/*<String>*/((name) => '$tagNameUpper::${name.toLowerCase()}');
- var uriAttrs = uriAttributes
- ?.map/*<String>*/((name) => '$tagNameUpper::${name.toLowerCase()}');
- if (uriPolicy == null) {
- uriPolicy = new UriPolicy();
- }
-
- add(new _CustomElementNodeValidator(
- uriPolicy, [tagNameUpper], attrs, uriAttrs, false, true));
- }
-
- /**
- * Allow custom tag extensions with the specified type name and specified
- * attributes.
- *
- * This will allow tag extensions (such as <div is="x-foo"></div>),
- * but will not allow custom tags. Use [allowCustomElement] to allow
- * custom tags.
- */
- void allowTagExtension(String tagName, String baseName,
- {UriPolicy uriPolicy,
- Iterable<String> attributes,
- Iterable<String> uriAttributes}) {
- var baseNameUpper = baseName.toUpperCase();
- var tagNameUpper = tagName.toUpperCase();
- var attrs = attributes
- ?.map/*<String>*/((name) => '$baseNameUpper::${name.toLowerCase()}');
- var uriAttrs = uriAttributes
- ?.map/*<String>*/((name) => '$baseNameUpper::${name.toLowerCase()}');
- if (uriPolicy == null) {
- uriPolicy = new UriPolicy();
- }
-
- add(new _CustomElementNodeValidator(uriPolicy,
- [tagNameUpper, baseNameUpper], attrs, uriAttrs, true, false));
- }
-
- void allowElement(String tagName,
- {UriPolicy uriPolicy,
- Iterable<String> attributes,
- Iterable<String> uriAttributes}) {
- allowCustomElement(tagName,
- uriPolicy: uriPolicy,
- attributes: attributes,
- uriAttributes: uriAttributes);
- }
-
- /**
- * Allow templating elements (such as <template> and template-related
- * attributes.
- *
- * This still requires other validators to allow regular attributes to be
- * bound (such as [allowHtml5]).
- */
- void allowTemplating() {
- add(new _TemplatingNodeValidator());
- }
-
- /**
- * Add an additional validator to the current list of validators.
- *
- * Elements and attributes will be accepted if they are accepted by any
- * validators.
- */
- void add(NodeValidator validator) {
- _validators.add(validator);
- }
-
- bool allowsElement(Element element) {
- return _validators.any((v) => v.allowsElement(element));
- }
-
- bool allowsAttribute(Element element, String attributeName, String value) {
- return _validators
- .any((v) => v.allowsAttribute(element, attributeName, value));
- }
-}
-
-class _SimpleNodeValidator implements NodeValidator {
- final Set<String> allowedElements = new Set<String>();
- final Set<String> allowedAttributes = new Set<String>();
- final Set<String> allowedUriAttributes = new Set<String>();
- final UriPolicy uriPolicy;
-
- factory _SimpleNodeValidator.allowNavigation(UriPolicy uriPolicy) {
- return new _SimpleNodeValidator(uriPolicy, allowedElements: const [
- 'A',
- 'FORM'
- ], allowedAttributes: const [
- 'A::accesskey',
- 'A::coords',
- 'A::hreflang',
- 'A::name',
- 'A::shape',
- 'A::tabindex',
- 'A::target',
- 'A::type',
- 'FORM::accept',
- 'FORM::autocomplete',
- 'FORM::enctype',
- 'FORM::method',
- 'FORM::name',
- 'FORM::novalidate',
- 'FORM::target',
- ], allowedUriAttributes: const [
- 'A::href',
- 'FORM::action',
- ]);
- }
-
- factory _SimpleNodeValidator.allowImages(UriPolicy uriPolicy) {
- return new _SimpleNodeValidator(uriPolicy, allowedElements: const [
- 'IMG'
- ], allowedAttributes: const [
- 'IMG::align',
- 'IMG::alt',
- 'IMG::border',
- 'IMG::height',
- 'IMG::hspace',
- 'IMG::ismap',
- 'IMG::name',
- 'IMG::usemap',
- 'IMG::vspace',
- 'IMG::width',
- ], allowedUriAttributes: const [
- 'IMG::src',
- ]);
- }
-
- factory _SimpleNodeValidator.allowTextElements() {
- return new _SimpleNodeValidator(null, allowedElements: const [
- 'B',
- 'BLOCKQUOTE',
- 'BR',
- 'EM',
- 'H1',
- 'H2',
- 'H3',
- 'H4',
- 'H5',
- 'H6',
- 'HR',
- 'I',
- 'LI',
- 'OL',
- 'P',
- 'SPAN',
- 'UL',
- ]);
- }
-
- /**
- * Elements must be uppercased tag names. For example `'IMG'`.
- * Attributes must be uppercased tag name followed by :: followed by
- * lowercase attribute name. For example `'IMG:src'`.
- */
- _SimpleNodeValidator(this.uriPolicy,
- {Iterable<String> allowedElements,
- Iterable<String> allowedAttributes,
- Iterable<String> allowedUriAttributes}) {
- this.allowedElements.addAll(allowedElements ?? const []);
- allowedAttributes = allowedAttributes ?? const [];
- allowedUriAttributes = allowedUriAttributes ?? const [];
- var legalAttributes = allowedAttributes
- .where((x) => !_Html5NodeValidator._uriAttributes.contains(x));
- var extraUriAttributes = allowedAttributes
- .where((x) => _Html5NodeValidator._uriAttributes.contains(x));
- this.allowedAttributes.addAll(legalAttributes);
- this.allowedUriAttributes.addAll(allowedUriAttributes);
- this.allowedUriAttributes.addAll(extraUriAttributes);
- }
-
- bool allowsElement(Element element) {
- return allowedElements.contains(Element._safeTagName(element));
- }
-
- bool allowsAttribute(Element element, String attributeName, String value) {
- var tagName = Element._safeTagName(element);
- if (allowedUriAttributes.contains('$tagName::$attributeName')) {
- return uriPolicy.allowsUri(value);
- } else if (allowedUriAttributes.contains('*::$attributeName')) {
- return uriPolicy.allowsUri(value);
- } else if (allowedAttributes.contains('$tagName::$attributeName')) {
- return true;
- } else if (allowedAttributes.contains('*::$attributeName')) {
- return true;
- } else if (allowedAttributes.contains('$tagName::*')) {
- return true;
- } else if (allowedAttributes.contains('*::*')) {
- return true;
- }
- return false;
- }
-}
-
-class _CustomElementNodeValidator extends _SimpleNodeValidator {
- final bool allowTypeExtension;
- final bool allowCustomTag;
-
- _CustomElementNodeValidator(
- UriPolicy uriPolicy,
- Iterable<String> allowedElements,
- Iterable<String> allowedAttributes,
- Iterable<String> allowedUriAttributes,
- bool allowTypeExtension,
- bool allowCustomTag)
- : this.allowTypeExtension = allowTypeExtension == true,
- this.allowCustomTag = allowCustomTag == true,
- super(uriPolicy,
- allowedElements: allowedElements,
- allowedAttributes: allowedAttributes,
- allowedUriAttributes: allowedUriAttributes);
-
- bool allowsElement(Element element) {
- if (allowTypeExtension) {
- var isAttr = element.attributes['is'];
- if (isAttr != null) {
- return allowedElements.contains(isAttr.toUpperCase()) &&
- allowedElements.contains(Element._safeTagName(element));
- }
- }
- return allowCustomTag &&
- allowedElements.contains(Element._safeTagName(element));
- }
-
- bool allowsAttribute(Element element, String attributeName, String value) {
- if (allowsElement(element)) {
- if (allowTypeExtension &&
- attributeName == 'is' &&
- allowedElements.contains(value.toUpperCase())) {
- return true;
- }
- return super.allowsAttribute(element, attributeName, value);
- }
- return false;
- }
-}
-
-class _TemplatingNodeValidator extends _SimpleNodeValidator {
- static const _TEMPLATE_ATTRS = const <String>[
- 'bind',
- 'if',
- 'ref',
- 'repeat',
- 'syntax'
- ];
-
- final Set<String> _templateAttrs;
-
- _TemplatingNodeValidator()
- : _templateAttrs = new Set<String>.from(_TEMPLATE_ATTRS),
- super(null,
- allowedElements: ['TEMPLATE'],
- allowedAttributes:
- _TEMPLATE_ATTRS.map((attr) => 'TEMPLATE::$attr')) {}
-
- bool allowsAttribute(Element element, String attributeName, String value) {
- if (super.allowsAttribute(element, attributeName, value)) {
- return true;
- }
-
- if (attributeName == 'template' && value == "") {
- return true;
- }
-
- if (element.attributes['template'] == "") {
- return _templateAttrs.contains(attributeName);
- }
- return false;
- }
-}
-
-class _SvgNodeValidator implements NodeValidator {
- bool allowsElement(Element element) {
- if (element is svg.ScriptElement) {
- return false;
- }
- // Firefox 37 has issues with creating foreign elements inside a
- // foreignobject tag as SvgElement. We don't want foreignobject contents
- // anyway, so just remove the whole tree outright. And we can't rely
- // on IE recognizing the SvgForeignObject type, so go by tagName. Bug 23144
- if (element is svg.SvgElement &&
- Element._safeTagName(element) == 'foreignObject') {
- return false;
- }
- if (element is svg.SvgElement) {
- return true;
- }
- return false;
- }
-
- bool allowsAttribute(Element element, String attributeName, String value) {
- if (attributeName == 'is' || attributeName.startsWith('on')) {
- return false;
- }
- return allowsElement(element);
- }
-}
-// Copyright (c) 2011, 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.
-
-/**
- * Contains the set of standard values returned by HTMLDocument.getReadyState.
- */
-abstract class ReadyState {
- /**
- * Indicates the document is still loading and parsing.
- */
- static const String LOADING = "loading";
-
- /**
- * Indicates the document is finished parsing but is still loading
- * subresources.
- */
- static const String INTERACTIVE = "interactive";
-
- /**
- * Indicates the document and all subresources have been loaded.
- */
- static const String COMPLETE = "complete";
-}
-// 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.
-
-/**
- * A list which just wraps another list, for either intercepting list calls or
- * retyping the list (for example, from List<A> to List<B> where B extends A).
- */
-class _WrappedList<E extends Node> extends ListBase<E>
- implements NodeListWrapper {
- final List<Node> _list;
-
- _WrappedList(this._list);
-
- // Iterable APIs
-
- Iterator<E> get iterator => new _WrappedIterator<E>(_list.iterator);
-
- int get length => _list.length;
-
- // Collection APIs
-
- void add(E element) {
- _list.add(element);
- }
-
- bool remove(Object element) => _list.remove(element);
-
- void clear() {
- _list.clear();
- }
-
- // List APIs
-
- E operator [](int index) => _downcast/*<Node, E>*/(_list[index]);
-
- void operator []=(int index, E value) {
- _list[index] = value;
- }
-
- set length(int newLength) {
- _list.length = newLength;
- }
-
- void sort([int compare(E a, E b)]) {
- _list.sort((Node a, Node b) =>
- compare(_downcast/*<Node, E>*/(a), _downcast/*<Node, E>*/(b)));
- }
-
- int indexOf(Object element, [int start = 0]) => _list.indexOf(element, start);
-
- int lastIndexOf(Object element, [int start]) =>
- _list.lastIndexOf(element, start);
-
- void insert(int index, E element) => _list.insert(index, element);
-
- E removeAt(int index) => _downcast/*<Node, E>*/(_list.removeAt(index));
-
- void setRange(int start, int end, Iterable<E> iterable, [int skipCount = 0]) {
- _list.setRange(start, end, iterable, skipCount);
- }
-
- void removeRange(int start, int end) {
- _list.removeRange(start, end);
- }
-
- void replaceRange(int start, int end, Iterable<E> iterable) {
- _list.replaceRange(start, end, iterable);
- }
-
- void fillRange(int start, int end, [E fillValue]) {
- _list.fillRange(start, end, fillValue);
- }
-
- List<Node> get rawList => _list;
-}
-
-/**
- * Iterator wrapper for _WrappedList.
- */
-class _WrappedIterator<E extends Node> implements Iterator<E> {
- Iterator<Node> _iterator;
-
- _WrappedIterator(this._iterator);
-
- bool moveNext() {
- return _iterator.moveNext();
- }
-
- E get current => _downcast/*<Node, E>*/(_iterator.current);
-}
-
-// ignore: STRONG_MODE_DOWN_CAST_COMPOSITE
-/*=To*/ _downcast/*<From, To extends From>*/(dynamic/*=From*/ x) => x;
-// 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.
-
-class _HttpRequestUtils {
- // Helper for factory HttpRequest.get
- static HttpRequest get(
- String url, onComplete(HttpRequest request), bool withCredentials) {
- final request = new HttpRequest();
- request.open('GET', url, async: true);
-
- request.withCredentials = withCredentials;
-
- request.onReadyStateChange.listen((e) {
- if (request.readyState == HttpRequest.DONE) {
- onComplete(request);
- }
- });
-
- request.send();
-
- return request;
- }
-}
-// Copyright (c) 2011, 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.
-
-// Iterator for arrays with fixed size.
-class FixedSizeListIterator<T> implements Iterator<T> {
- final List<T> _array;
- final int _length; // Cache array length for faster access.
- int _position;
- T _current;
-
- FixedSizeListIterator(List<T> array)
- : _array = array,
- _position = -1,
- _length = array.length;
-
- bool moveNext() {
- int nextPosition = _position + 1;
- if (nextPosition < _length) {
- _current = _array[nextPosition];
- _position = nextPosition;
- return true;
- }
- _current = null;
- _position = _length;
- return false;
- }
-
- T get current => _current;
-}
-
-// Iterator for arrays with variable size.
-class _VariableSizeListIterator<T> implements Iterator<T> {
- final List<T> _array;
- int _position;
- T _current;
-
- _VariableSizeListIterator(List<T> array)
- : _array = array,
- _position = -1;
-
- bool moveNext() {
- int nextPosition = _position + 1;
- if (nextPosition < _array.length) {
- _current = _array[nextPosition];
- _position = nextPosition;
- return true;
- }
- _current = null;
- _position = _array.length;
- return false;
- }
-
- T get current => _current;
-}
-// 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.
-
-// Conversions for Window. These check if the window is the local
-// window, and if it's not, wraps or unwraps it with a secure wrapper.
-// We need to test for EventTarget here as well as it's a base type.
-// We omit an unwrapper for Window as no methods take a non-local
-// window as a parameter.
-
-WindowBase _convertNativeToDart_Window(win) {
- if (win == null) return null;
- return _DOMWindowCrossFrame._createSafe(win);
-}
-
-EventTarget _convertNativeToDart_EventTarget(e) {
- if (e == null) {
- return null;
- }
- // Assume it's a Window if it contains the postMessage property. It may be
- // from a different frame - without a patched prototype - so we cannot
- // rely on Dart type checking.
- if (JS('bool', r'"postMessage" in #', e)) {
- var window = _DOMWindowCrossFrame._createSafe(e);
- // If it's a native window.
- if (window is EventTarget) {
- return window;
- }
- return null;
- } else
- return e;
-}
-
-EventTarget _convertDartToNative_EventTarget(e) {
- if (e is _DOMWindowCrossFrame) {
- return e._window;
- } else {
- return e;
- }
-}
-
-_convertNativeToDart_XHR_Response(o) {
- if (o is Document) {
- return o;
- }
- return convertNativeToDart_SerializedScriptValue(o);
-}
-// 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.
-
-_callConstructor(constructor, interceptor) {
- return (receiver) {
- setNativeSubclassDispatchRecord(receiver, interceptor);
-
- // Mirrors uses the constructor property to cache lookups, so we need it to
- // be set correctly, including on IE where it is not automatically picked
- // up from the __proto__.
- JS('', '#.constructor = #.__proto__.constructor', receiver, receiver);
- return JS('', '#(#)', constructor, receiver);
- };
-}
-
-_callAttached(receiver) {
- return receiver.attached();
-}
-
-_callDetached(receiver) {
- return receiver.detached();
-}
-
-_callAttributeChanged(receiver, name, oldValue, newValue) {
- return receiver.attributeChanged(name, oldValue, newValue);
-}
-
-_makeCallbackMethod(callback) {
- return JS(
- '',
- '''((function(invokeCallback) {
- return function() {
- return invokeCallback(this);
- };
- })(#))''',
- convertDartClosureToJS(callback, 1));
-}
-
-_makeCallbackMethod3(callback) {
- return JS(
- '',
- '''((function(invokeCallback) {
- return function(arg1, arg2, arg3) {
- return invokeCallback(this, arg1, arg2, arg3);
- };
- })(#))''',
- convertDartClosureToJS(callback, 4));
-}
-
-/// Checks whether the given [element] correctly extends from the native class
-/// with the given [baseClassName]. This method will throw if the base class
-/// doesn't match, except when the element extends from `template` and it's base
-/// class is `HTMLUnknownElement`. This exclusion is needed to support extension
-/// of template elements (used heavily in Polymer 1.0) on IE11 when using the
-/// webcomponents-lite.js polyfill.
-void _checkExtendsNativeClassOrTemplate(
- Element element, String extendsTag, String baseClassName) {
- if (!JS('bool', '(# instanceof window[#])', element, baseClassName) &&
- !((extendsTag == 'template' &&
- JS('bool', '(# instanceof window["HTMLUnknownElement"])',
- element)))) {
- throw new UnsupportedError('extendsTag does not match base native class');
- }
-}
-
-void _registerCustomElement(
- context, document, String tag, Type type, String extendsTagName) {
- // Function follows the same pattern as the following JavaScript code for
- // registering a custom element.
- //
- // var proto = Object.create(HTMLElement.prototype, {
- // createdCallback: {
- // value: function() {
- // window.console.log('here');
- // }
- // }
- // });
- // document.registerElement('x-foo', { prototype: proto });
- // ...
- // var e = document.createElement('x-foo');
-
- var interceptorClass = findInterceptorConstructorForType(type);
- if (interceptorClass == null) {
- throw new ArgumentError(type);
- }
-
- var interceptor = JS('=Object', '#.prototype', interceptorClass);
-
- var constructor = findConstructorForNativeSubclassType(type, 'created');
- if (constructor == null) {
- throw new ArgumentError("$type has no constructor called 'created'");
- }
-
- // Workaround for 13190- use an article element to ensure that HTMLElement's
- // interceptor is resolved correctly.
- getNativeInterceptor(new Element.tag('article'));
-
- String baseClassName = findDispatchTagForInterceptorClass(interceptorClass);
- if (baseClassName == null) {
- throw new ArgumentError(type);
- }
-
- if (extendsTagName == null) {
- if (baseClassName != 'HTMLElement') {
- throw new UnsupportedError('Class must provide extendsTag if base '
- 'native class is not HtmlElement');
- }
- } else {
- var element = document.createElement(extendsTagName);
- _checkExtendsNativeClassOrTemplate(element, extendsTagName, baseClassName);
- }
-
- var baseConstructor = JS('=Object', '#[#]', context, baseClassName);
-
- var properties = JS('=Object', '{}');
-
- JS(
- 'void',
- '#.createdCallback = #',
- properties,
- JS('=Object', '{value: #}',
- _makeCallbackMethod(_callConstructor(constructor, interceptor))));
- JS('void', '#.attachedCallback = #', properties,
- JS('=Object', '{value: #}', _makeCallbackMethod(_callAttached)));
- JS('void', '#.detachedCallback = #', properties,
- JS('=Object', '{value: #}', _makeCallbackMethod(_callDetached)));
- JS('void', '#.attributeChangedCallback = #', properties,
- JS('=Object', '{value: #}', _makeCallbackMethod3(_callAttributeChanged)));
-
- var baseProto = JS('=Object', '#.prototype', baseConstructor);
- var proto = JS('=Object', 'Object.create(#, #)', baseProto, properties);
-
- setNativeSubclassDispatchRecord(proto, interceptor);
-
- var options = JS('=Object', '{prototype: #}', proto);
-
- if (extendsTagName != null) {
- JS('=Object', '#.extends = #', options, extendsTagName);
- }
-
- JS('void', '#.registerElement(#, #)', document, tag, options);
-}
-
-//// Called by Element.created to do validation & initialization.
-void _initializeCustomElement(Element e) {
- // TODO(blois): Add validation that this is only in response to an upgrade.
-}
-
-/// Dart2JS implementation of ElementUpgrader
-class _JSElementUpgrader implements ElementUpgrader {
- var _interceptor;
- var _constructor;
- var _nativeType;
-
- _JSElementUpgrader(Document document, Type type, String extendsTag) {
- var interceptorClass = findInterceptorConstructorForType(type);
- if (interceptorClass == null) {
- throw new ArgumentError(type);
- }
-
- _constructor = findConstructorForNativeSubclassType(type, 'created');
- if (_constructor == null) {
- throw new ArgumentError("$type has no constructor called 'created'");
- }
-
- // Workaround for 13190- use an article element to ensure that HTMLElement's
- // interceptor is resolved correctly.
- getNativeInterceptor(new Element.tag('article'));
-
- var baseClassName = findDispatchTagForInterceptorClass(interceptorClass);
- if (baseClassName == null) {
- throw new ArgumentError(type);
- }
-
- if (extendsTag == null) {
- if (baseClassName != 'HTMLElement') {
- throw new UnsupportedError('Class must provide extendsTag if base '
- 'native class is not HtmlElement');
- }
- _nativeType = HtmlElement;
- } else {
- var element = document.createElement(extendsTag);
- _checkExtendsNativeClassOrTemplate(element, extendsTag, baseClassName);
- _nativeType = element.runtimeType;
- }
-
- _interceptor = JS('=Object', '#.prototype', interceptorClass);
- }
-
- Element upgrade(Element element) {
- // Only exact type matches are supported- cannot be a subclass.
- if (element.runtimeType != _nativeType) {
- throw new ArgumentError('element is not subclass of $_nativeType');
- }
-
- setNativeSubclassDispatchRecord(element, _interceptor);
- JS('', '#(#)', _constructor, element);
- return element;
- }
-}
-// 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.
-
-// TODO(vsm): Unify with Dartium version.
-class _DOMWindowCrossFrame implements WindowBase {
- // Private window. Note, this is a window in another frame, so it
- // cannot be typed as "Window" as its prototype is not patched
- // properly. Its fields and methods can only be accessed via JavaScript.
- final _window;
-
- // Fields.
- HistoryBase get history =>
- _HistoryCrossFrame._createSafe(JS('HistoryBase', '#.history', _window));
- LocationBase get location => _LocationCrossFrame
- ._createSafe(JS('LocationBase', '#.location', _window));
-
- // TODO(vsm): Add frames to navigate subframes. See 2312.
-
- bool get closed => JS('bool', '#.closed', _window);
-
- WindowBase get opener => _createSafe(JS('WindowBase', '#.opener', _window));
-
- WindowBase get parent => _createSafe(JS('WindowBase', '#.parent', _window));
-
- WindowBase get top => _createSafe(JS('WindowBase', '#.top', _window));
-
- // Methods.
- void close() => JS('void', '#.close()', _window);
-
- void postMessage(var message, String targetOrigin,
- [List messagePorts = null]) {
- if (messagePorts == null) {
- JS('void', '#.postMessage(#,#)', _window,
- convertDartToNative_SerializedScriptValue(message), targetOrigin);
- } else {
- JS(
- 'void',
- '#.postMessage(#,#,#)',
- _window,
- convertDartToNative_SerializedScriptValue(message),
- targetOrigin,
- messagePorts);
- }
- }
-
- // Implementation support.
- _DOMWindowCrossFrame(this._window);
-
- static WindowBase _createSafe(w) {
- if (identical(w, window)) {
- return w;
- } else {
- // TODO(vsm): Cache or implement equality.
- registerGlobalObject(w);
- return new _DOMWindowCrossFrame(w);
- }
- }
-
- // TODO(efortuna): Remove this method. dartbug.com/16814
- Events get on => throw new UnsupportedError(
- 'You can only attach EventListeners to your own window.');
- // TODO(efortuna): Remove this method. dartbug.com/16814
- void _addEventListener(String type, EventListener listener,
- [bool useCapture]) =>
- throw new UnsupportedError(
- 'You can only attach EventListeners to your own window.');
- // TODO(efortuna): Remove this method. dartbug.com/16814
- void addEventListener(String type, EventListener listener,
- [bool useCapture]) =>
- throw new UnsupportedError(
- 'You can only attach EventListeners to your own window.');
- // TODO(efortuna): Remove this method. dartbug.com/16814
- bool dispatchEvent(Event event) => throw new UnsupportedError(
- 'You can only attach EventListeners to your own window.');
- // TODO(efortuna): Remove this method. dartbug.com/16814
- void _removeEventListener(String type, EventListener listener,
- [bool useCapture]) =>
- throw new UnsupportedError(
- 'You can only attach EventListeners to your own window.');
- // TODO(efortuna): Remove this method. dartbug.com/16814
- void removeEventListener(String type, EventListener listener,
- [bool useCapture]) =>
- throw new UnsupportedError(
- 'You can only attach EventListeners to your own window.');
-}
-
-class _LocationCrossFrame implements LocationBase {
- // Private location. Note, this is a location object in another frame, so it
- // cannot be typed as "Location" as its prototype is not patched
- // properly. Its fields and methods can only be accessed via JavaScript.
- var _location;
-
- set href(String val) => _setHref(_location, val);
- static void _setHref(location, val) {
- JS('void', '#.href = #', location, val);
- }
-
- // Implementation support.
- _LocationCrossFrame(this._location);
-
- static LocationBase _createSafe(location) {
- if (identical(location, window.location)) {
- return location;
- } else {
- // TODO(vsm): Cache or implement equality.
- return new _LocationCrossFrame(location);
- }
- }
-}
-
-class _HistoryCrossFrame implements HistoryBase {
- // Private history. Note, this is a history object in another frame, so it
- // cannot be typed as "History" as its prototype is not patched
- // properly. Its fields and methods can only be accessed via JavaScript.
- var _history;
-
- void back() => JS('void', '#.back()', _history);
-
- void forward() => JS('void', '#.forward()', _history);
-
- void go(int distance) => JS('void', '#.go(#)', _history, distance);
-
- // Implementation support.
- _HistoryCrossFrame(this._history);
-
- static HistoryBase _createSafe(h) {
- if (identical(h, window.history)) {
- return h;
- } else {
- // TODO(vsm): Cache or implement equality.
- return new _HistoryCrossFrame(h);
- }
- }
-}
-
-/**
- * A custom KeyboardEvent that attempts to eliminate cross-browser
- * inconsistencies, and also provide both keyCode and charCode information
- * for all key events (when such information can be determined).
- *
- * KeyEvent tries to provide a higher level, more polished keyboard event
- * information on top of the "raw" [KeyboardEvent].
- *
- * The mechanics of using KeyEvents is a little different from the underlying
- * [KeyboardEvent]. To use KeyEvents, you need to create a stream and then add
- * KeyEvents to the stream, rather than using the [EventTarget.dispatchEvent].
- * Here's an example usage:
- *
- * // Initialize a stream for the KeyEvents:
- * var stream = KeyEvent.keyPressEvent.forTarget(document.body);
- * // Start listening to the stream of KeyEvents.
- * stream.listen((keyEvent) =>
- * window.console.log('KeyPress event detected ${keyEvent.charCode}'));
- * ...
- * // Add a new KeyEvent of someone pressing the 'A' key to the stream so
- * // listeners can know a KeyEvent happened.
- * stream.add(new KeyEvent('keypress', keyCode: 65, charCode: 97));
- *
- * This class is very much a work in progress, and we'd love to get information
- * on how we can make this class work with as many international keyboards as
- * possible. Bugs welcome!
- */
-@Experimental()
-class KeyEvent extends _WrappedEvent implements KeyboardEvent {
- /** The parent KeyboardEvent that this KeyEvent is wrapping and "fixing". */
- KeyboardEvent _parent;
-
- /** The "fixed" value of whether the alt key is being pressed. */
- bool _shadowAltKey;
-
- /** Calculated value of what the estimated charCode is for this event. */
- int _shadowCharCode;
-
- /** Calculated value of what the estimated keyCode is for this event. */
- int _shadowKeyCode;
-
- /** Calculated value of what the estimated keyCode is for this event. */
- int get keyCode => _shadowKeyCode;
-
- /** Calculated value of what the estimated charCode is for this event. */
- int get charCode => this.type == 'keypress' ? _shadowCharCode : 0;
-
- /** Calculated value of whether the alt key is pressed is for this event. */
- bool get altKey => _shadowAltKey;
-
- /** Calculated value of what the estimated keyCode is for this event. */
- int get which => keyCode;
-
- /** Accessor to the underlying keyCode value is the parent event. */
- int get _realKeyCode => JS('int', '#.keyCode', _parent);
-
- /** Accessor to the underlying charCode value is the parent event. */
- int get _realCharCode => JS('int', '#.charCode', _parent);
-
- /** Accessor to the underlying altKey value is the parent event. */
- bool get _realAltKey => JS('bool', '#.altKey', _parent);
-
- /** Shadows on top of the parent's currentTarget. */
- EventTarget _currentTarget;
-
- final InputDeviceCapabilities sourceCapabilities;
-
- /**
- * The value we want to use for this object's dispatch. Created here so it is
- * only invoked once.
- */
- static final _keyboardEventDispatchRecord = _makeRecord();
-
- /** Helper to statically create the dispatch record. */
- static _makeRecord() {
- var interceptor = JS_INTERCEPTOR_CONSTANT(KeyboardEvent);
- return makeLeafDispatchRecord(interceptor);
- }
-
- /** Construct a KeyEvent with [parent] as the event we're emulating. */
- KeyEvent.wrap(KeyboardEvent parent) : super(parent) {
- _parent = parent;
- _shadowAltKey = _realAltKey;
- _shadowCharCode = _realCharCode;
- _shadowKeyCode = _realKeyCode;
- _currentTarget = _parent.currentTarget;
- }
-
- /** Programmatically create a new KeyEvent (and KeyboardEvent). */
- factory KeyEvent(String type,
- {Window view,
- bool canBubble: true,
- bool cancelable: true,
- int keyCode: 0,
- int charCode: 0,
- int location: 1,
- bool ctrlKey: false,
- bool altKey: false,
- bool shiftKey: false,
- bool metaKey: false,
- EventTarget currentTarget}) {
- if (view == null) {
- view = window;
- }
-
- var eventObj;
- // In these two branches we create an underlying native KeyboardEvent, but
- // we set it with our specified values. Because we are doing custom setting
- // of certain values (charCode/keyCode, etc) only in this class (as opposed
- // to KeyboardEvent) and the way we set these custom values depends on the
- // type of underlying JS object, we do all the construction for the
- // underlying KeyboardEvent here.
- if (canUseDispatchEvent) {
- // Currently works in everything but Internet Explorer.
- eventObj = new Event.eventType('Event', type,
- canBubble: canBubble, cancelable: cancelable);
-
- JS('void', '#.keyCode = #', eventObj, keyCode);
- JS('void', '#.which = #', eventObj, keyCode);
- JS('void', '#.charCode = #', eventObj, charCode);
-
- JS('void', '#.location = #', eventObj, location);
- JS('void', '#.ctrlKey = #', eventObj, ctrlKey);
- JS('void', '#.altKey = #', eventObj, altKey);
- JS('void', '#.shiftKey = #', eventObj, shiftKey);
- JS('void', '#.metaKey = #', eventObj, metaKey);
- } else {
- // Currently this works on everything but Safari. Safari throws an
- // "Attempting to change access mechanism for an unconfigurable property"
- // TypeError when trying to do the Object.defineProperty hack, so we avoid
- // this branch if possible.
- // Also, if we want this branch to work in FF, we also need to modify
- // _initKeyboardEvent to also take charCode and keyCode values to
- // initialize initKeyEvent.
-
- eventObj = new Event.eventType('KeyboardEvent', type,
- canBubble: canBubble, cancelable: cancelable);
-
- // Chromium Hack
- JS(
- 'void',
- "Object.defineProperty(#, 'keyCode', {"
- " get : function() { return this.keyCodeVal; } })",
- eventObj);
- JS(
- 'void',
- "Object.defineProperty(#, 'which', {"
- " get : function() { return this.keyCodeVal; } })",
- eventObj);
- JS(
- 'void',
- "Object.defineProperty(#, 'charCode', {"
- " get : function() { return this.charCodeVal; } })",
- eventObj);
-
- var keyIdentifier = _convertToHexString(charCode, keyCode);
- eventObj._initKeyboardEvent(type, canBubble, cancelable, view,
- keyIdentifier, location, ctrlKey, altKey, shiftKey, metaKey);
- JS('void', '#.keyCodeVal = #', eventObj, keyCode);
- JS('void', '#.charCodeVal = #', eventObj, charCode);
- }
- // Tell dart2js that it smells like a KeyboardEvent!
- setDispatchProperty(eventObj, _keyboardEventDispatchRecord);
-
- var keyEvent = new KeyEvent.wrap(eventObj);
- if (keyEvent._currentTarget == null) {
- keyEvent._currentTarget = currentTarget == null ? window : currentTarget;
- }
- return keyEvent;
- }
-
- // Currently known to work on all browsers but IE.
- static bool get canUseDispatchEvent => JS(
- 'bool',
- '(typeof document.body.dispatchEvent == "function")'
- '&& document.body.dispatchEvent.length > 0');
-
- /** The currently registered target for this event. */
- EventTarget get currentTarget => _currentTarget;
-
- // This is an experimental method to be sure.
- static String _convertToHexString(int charCode, int keyCode) {
- if (charCode != -1) {
- var hex = charCode.toRadixString(16); // Convert to hexadecimal.
- StringBuffer sb = new StringBuffer('U+');
- for (int i = 0; i < 4 - hex.length; i++) sb.write('0');
- sb.write(hex);
- return sb.toString();
- } else {
- return KeyCode._convertKeyCodeToKeyName(keyCode);
- }
- }
-
- // TODO(efortuna): If KeyEvent is sufficiently successful that we want to make
- // it the default keyboard event handling, move these methods over to Element.
- /** Accessor to provide a stream of KeyEvents on the desired target. */
- static EventStreamProvider<KeyEvent> keyDownEvent =
- new _KeyboardEventHandler('keydown');
- /** Accessor to provide a stream of KeyEvents on the desired target. */
- static EventStreamProvider<KeyEvent> keyUpEvent =
- new _KeyboardEventHandler('keyup');
- /** Accessor to provide a stream of KeyEvents on the desired target. */
- static EventStreamProvider<KeyEvent> keyPressEvent =
- new _KeyboardEventHandler('keypress');
-
- String get code => _parent.code;
- /** True if the ctrl key is pressed during this event. */
- bool get ctrlKey => _parent.ctrlKey;
- int get detail => _parent.detail;
- String get key => _parent.key;
- /**
- * Accessor to the part of the keyboard that the key was pressed from (one of
- * KeyLocation.STANDARD, KeyLocation.RIGHT, KeyLocation.LEFT,
- * KeyLocation.NUMPAD, KeyLocation.MOBILE, KeyLocation.JOYSTICK).
- */
- int get location => _parent.location;
- /** True if the Meta (or Mac command) key is pressed during this event. */
- bool get metaKey => _parent.metaKey;
- /** True if the shift key was pressed during this event. */
- bool get shiftKey => _parent.shiftKey;
- Window get view => _parent.view;
- void _initUIEvent(
- String type, bool canBubble, bool cancelable, Window view, int detail) {
- throw new UnsupportedError("Cannot initialize a UI Event from a KeyEvent.");
- }
-
- String get _shadowKeyIdentifier => JS('String', '#.keyIdentifier', _parent);
-
- int get _charCode => charCode;
- int get _keyCode => keyCode;
- int get _which => which;
-
- String get _keyIdentifier {
- throw new UnsupportedError("keyIdentifier is unsupported.");
- }
-
- void _initKeyboardEvent(
- String type,
- bool canBubble,
- bool cancelable,
- Window view,
- String keyIdentifier,
- int location,
- bool ctrlKey,
- bool altKey,
- bool shiftKey,
- bool metaKey) {
- throw new UnsupportedError(
- "Cannot initialize a KeyboardEvent from a KeyEvent.");
- }
-
- @Experimental() // untriaged
- bool getModifierState(String keyArgument) => throw new UnimplementedError();
-
- @Experimental() // untriaged
- bool get repeat => throw new UnimplementedError();
- dynamic get _get_view => throw new UnimplementedError();
-}
-// 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.
-
-class Platform {
- /**
- * Returns true if dart:typed_data types are supported on this
- * browser. If false, using these types will generate a runtime
- * error.
- */
- static final supportsTypedData = JS('bool', '!!(window.ArrayBuffer)');
-
- /**
- * Returns true if SIMD types in dart:typed_data types are supported
- * on this browser. If false, using these types will generate a runtime
- * error.
- */
- static final supportsSimd = false;
-}
-// 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.
-
-/**
- * Helper class to implement custom events which wrap DOM events.
- */
-class _WrappedEvent implements Event {
- final Event wrapped;
-
- /** The CSS selector involved with event delegation. */
- String _selector;
-
- _WrappedEvent(this.wrapped);
-
- bool get bubbles => wrapped.bubbles;
-
- bool get cancelable => wrapped.cancelable;
-
- EventTarget get currentTarget => wrapped.currentTarget;
-
- List<EventTarget> deepPath() {
- return wrapped.deepPath();
- }
-
- bool get defaultPrevented => wrapped.defaultPrevented;
-
- int get eventPhase => wrapped.eventPhase;
-
- bool get isTrusted => wrapped.isTrusted;
-
- bool get scoped => wrapped.scoped;
-
- EventTarget get target => wrapped.target;
-
- double get timeStamp => wrapped.timeStamp;
-
- String get type => wrapped.type;
-
- void _initEvent(String eventTypeArg, bool canBubbleArg, bool cancelableArg) {
- throw new UnsupportedError('Cannot initialize this Event.');
- }
-
- void preventDefault() {
- wrapped.preventDefault();
- }
-
- void stopImmediatePropagation() {
- wrapped.stopImmediatePropagation();
- }
-
- void stopPropagation() {
- wrapped.stopPropagation();
- }
-
- /**
- * A pointer to the element whose CSS selector matched within which an event
- * was fired. If this Event was not associated with any Event delegation,
- * accessing this value will throw an [UnsupportedError].
- */
- Element get matchingTarget {
- if (_selector == null) {
- throw new UnsupportedError('Cannot call matchingTarget if this Event did'
- ' not arise as a result of event delegation.');
- }
- Element currentTarget = this.currentTarget;
- Element target = this.target;
- var matchedTarget;
- do {
- if (target.matches(_selector)) return target;
- target = target.parent;
- } while (target != null && target != currentTarget.parent);
- throw new StateError('No selector matched for populating matchedTarget.');
- }
-
- /**
- * This event's path, taking into account shadow DOM.
- *
- * ## Other resources
- *
- * * [Shadow DOM extensions to
- * Event](http://w3c.github.io/webcomponents/spec/shadow/#extensions-to-event)
- * from W3C.
- */
- // https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#extensions-to-event
- @Experimental()
- List<Node> get path => wrapped.path;
-
- dynamic get _get_currentTarget => wrapped._get_currentTarget;
-
- dynamic get _get_target => wrapped._get_target;
-}
-// 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.
-
-void Function(T) _wrapZone<T>(void Function(T) callback) {
- // For performance reasons avoid wrapping if we are in the root zone.
- if (Zone.current == Zone.ROOT) return callback;
- if (callback == null) return null;
- return Zone.current.bindUnaryCallbackGuarded(callback);
-}
-
-void Function(T1, T2) _wrapBinaryZone<T1, T2>(void Function(T1, T2) callback) {
- // For performance reasons avoid wrapping if we are in the root zone.
- if (Zone.current == Zone.ROOT) return callback;
- if (callback == null) return null;
- return Zone.current.bindBinaryCallbackGuarded(callback);
-}
-
-/**
- * Alias for [querySelector]. Note this function is deprecated because its
- * semantics will be changing in the future.
- */
-@deprecated
-@Experimental()
-Element query(String relativeSelectors) => document.query(relativeSelectors);
-/**
- * Alias for [querySelectorAll]. Note this function is deprecated because its
- * semantics will be changing in the future.
- */
-@deprecated
-@Experimental()
-ElementList<Element> queryAll(String relativeSelectors) =>
- document.queryAll(relativeSelectors);
-
-/**
- * Finds the first descendant element of this document that matches the
- * specified group of selectors.
- *
- * Unless your webpage contains multiple documents, the top-level
- * [querySelector]
- * method behaves the same as this method, so you should use it instead to
- * save typing a few characters.
- *
- * [selectors] should be a string using CSS selector syntax.
- *
- * var element1 = document.querySelector('.className');
- * var element2 = document.querySelector('#id');
- *
- * For details about CSS selector syntax, see the
- * [CSS selector specification](http://www.w3.org/TR/css3-selectors/).
- */
-Element querySelector(String selectors) => document.querySelector(selectors);
-
-/**
- * Finds all descendant elements of this document that match the specified
- * group of selectors.
- *
- * Unless your webpage contains multiple documents, the top-level
- * [querySelectorAll]
- * method behaves the same as this method, so you should use it instead to
- * save typing a few characters.
- *
- * [selectors] should be a string using CSS selector syntax.
- *
- * var items = document.querySelectorAll('.itemClassName');
- *
- * For details about CSS selector syntax, see the
- * [CSS selector specification](http://www.w3.org/TR/css3-selectors/).
- */
-ElementList<Element> querySelectorAll(String selectors) =>
- document.querySelectorAll(selectors);
-
-/// A utility for changing the Dart wrapper type for elements.
-abstract class ElementUpgrader {
- /// Upgrade the specified element to be of the Dart type this was created for.
- ///
- /// After upgrading the element passed in is invalid and the returned value
- /// should be used instead.
- Element upgrade(Element element);
-}
-// 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.
-
-/**
- * Interface used to validate that only accepted elements and attributes are
- * allowed while parsing HTML strings into DOM nodes.
- *
- * In general, customization of validation behavior should be done via the
- * [NodeValidatorBuilder] class to mitigate the chances of incorrectly
- * implementing validation rules.
- */
-abstract class NodeValidator {
- /**
- * Construct a default NodeValidator which only accepts whitelisted HTML5
- * elements and attributes.
- *
- * If a uriPolicy is not specified then the default uriPolicy will be used.
- */
- factory NodeValidator({UriPolicy uriPolicy}) =>
- new _Html5NodeValidator(uriPolicy: uriPolicy);
-
- factory NodeValidator.throws(NodeValidator base) =>
- new _ThrowsNodeValidator(base);
-
- /**
- * Returns true if the tagName is an accepted type.
- */
- bool allowsElement(Element element);
-
- /**
- * Returns true if the attribute is allowed.
- *
- * The attributeName parameter will always be in lowercase.
- *
- * See [allowsElement] for format of tagName.
- */
- bool allowsAttribute(Element element, String attributeName, String value);
-}
-
-/**
- * Performs sanitization of a node tree after construction to ensure that it
- * does not contain any disallowed elements or attributes.
- *
- * In general custom implementations of this class should not be necessary and
- * all validation customization should be done in custom NodeValidators, but
- * custom implementations of this class can be created to perform more complex
- * tree sanitization.
- */
-abstract class NodeTreeSanitizer {
- /**
- * Constructs a default tree sanitizer which will remove all elements and
- * attributes which are not allowed by the provided validator.
- */
- factory NodeTreeSanitizer(NodeValidator validator) =>
- new _ValidatingTreeSanitizer(validator);
-
- /**
- * Called with the root of the tree which is to be sanitized.
- *
- * This method needs to walk the entire tree and either remove elements and
- * attributes which are not recognized as safe or throw an exception which
- * will mark the entire tree as unsafe.
- */
- void sanitizeTree(Node node);
-
- /**
- * A sanitizer for trees that we trust. It does no validation and allows
- * any elements. It is also more efficient, since it can pass the text
- * directly through to the underlying APIs without creating a document
- * fragment to be sanitized.
- */
- static const trusted = const _TrustedHtmlTreeSanitizer();
-}
-
-/**
- * A sanitizer for trees that we trust. It does no validation and allows
- * any elements.
- */
-class _TrustedHtmlTreeSanitizer implements NodeTreeSanitizer {
- const _TrustedHtmlTreeSanitizer();
-
- sanitizeTree(Node node) {}
-}
-
-/**
- * Defines the policy for what types of uris are allowed for particular
- * attribute values.
- *
- * This can be used to provide custom rules such as allowing all http:// URIs
- * for image attributes but only same-origin URIs for anchor tags.
- */
-abstract class UriPolicy {
- /**
- * Constructs the default UriPolicy which is to only allow Uris to the same
- * origin as the application was launched from.
- *
- * This will block all ftp: mailto: URIs. It will also block accessing
- * https://example.com if the app is running from http://example.com.
- */
- factory UriPolicy() => new _SameOriginUriPolicy();
-
- /**
- * Checks if the uri is allowed on the specified attribute.
- *
- * The uri provided may or may not be a relative path.
- */
- bool allowsUri(String uri);
-}
-
-/**
- * Allows URIs to the same origin as the current application was loaded from
- * (such as https://example.com:80).
- */
-class _SameOriginUriPolicy implements UriPolicy {
- final AnchorElement _hiddenAnchor = new AnchorElement();
- final Location _loc = window.location;
-
- bool allowsUri(String uri) {
- _hiddenAnchor.href = uri;
- // IE leaves an empty hostname for same-origin URIs.
- return (_hiddenAnchor.hostname == _loc.hostname &&
- _hiddenAnchor.port == _loc.port &&
- _hiddenAnchor.protocol == _loc.protocol) ||
- (_hiddenAnchor.hostname == '' &&
- _hiddenAnchor.port == '' &&
- (_hiddenAnchor.protocol == ':' || _hiddenAnchor.protocol == ''));
- }
-}
-
-class _ThrowsNodeValidator implements NodeValidator {
- final NodeValidator validator;
-
- _ThrowsNodeValidator(this.validator) {}
-
- bool allowsElement(Element element) {
- if (!validator.allowsElement(element)) {
- throw new ArgumentError(Element._safeTagName(element));
- }
- return true;
- }
-
- bool allowsAttribute(Element element, String attributeName, String value) {
- if (!validator.allowsAttribute(element, attributeName, value)) {
- throw new ArgumentError(
- '${Element._safeTagName(element)}[$attributeName="$value"]');
- }
- }
-}
-
-/**
- * Standard tree sanitizer which validates a node tree against the provided
- * validator and removes any nodes or attributes which are not allowed.
- */
-class _ValidatingTreeSanitizer implements NodeTreeSanitizer {
- NodeValidator validator;
- _ValidatingTreeSanitizer(this.validator) {}
-
- void sanitizeTree(Node node) {
- void walk(Node node, Node parent) {
- sanitizeNode(node, parent);
-
- var child = node.lastChild;
- while (null != child) {
- var nextChild;
- try {
- // Child may be removed during the walk, and we may not
- // even be able to get its previousNode.
- nextChild = child.previousNode;
- } catch (e) {
- // Child appears bad, remove it. We want to check the rest of the
- // children of node and, but we have no way of getting to the next
- // child, so start again from the last child.
- _removeNode(child, node);
- child = null;
- nextChild = node.lastChild;
- }
- if (child != null) walk(child, node);
- child = nextChild;
- }
- }
-
- walk(node, null);
- }
-
- /// Aggressively try to remove node.
- void _removeNode(Node node, Node parent) {
- // If we have the parent, it's presumably already passed more sanitization
- // or is the fragment, so ask it to remove the child. And if that fails
- // try to set the outer html.
- if (parent == null) {
- node.remove();
- } else {
- parent._removeChild(node);
- }
- }
-
- /// Sanitize the element, assuming we can't trust anything about it.
- void _sanitizeUntrustedElement(/* Element */ element, Node parent) {
- // If the _hasCorruptedAttributes does not successfully return false,
- // then we consider it corrupted and remove.
- // TODO(alanknight): This is a workaround because on Firefox
- // embed/object
- // tags typeof is "function", not "object". We don't recognize them, and
- // can't call methods. This does mean that you can't explicitly allow an
- // embed tag. The only thing that will let it through is a null
- // sanitizer that doesn't traverse the tree at all. But sanitizing while
- // allowing embeds seems quite unlikely. This is also the reason that we
- // can't declare the type of element, as an embed won't pass any type
- // check in dart2js.
- var corrupted = true;
- var attrs;
- var isAttr;
- try {
- // If getting/indexing attributes throws, count that as corrupt.
- attrs = element.attributes;
- isAttr = attrs['is'];
- var corruptedTest1 = Element._hasCorruptedAttributes(element);
-
- // On IE, erratically, the hasCorruptedAttributes test can return false,
- // even though it clearly is corrupted. A separate copy of the test
- // inlining just the basic check seems to help.
- corrupted = corruptedTest1
- ? true
- : Element._hasCorruptedAttributesAdditionalCheck(element);
- } catch (e) {}
- var elementText = 'element unprintable';
- try {
- elementText = element.toString();
- } catch (e) {}
- try {
- var elementTagName = Element._safeTagName(element);
- _sanitizeElement(element, parent, corrupted, elementText, elementTagName,
- attrs, isAttr);
- } on ArgumentError {
- // Thrown by _ThrowsNodeValidator
- rethrow;
- } catch (e) {
- // Unexpected exception sanitizing -> remove
- _removeNode(element, parent);
- window.console.warn('Removing corrupted element $elementText');
- }
- }
-
- /// Having done basic sanity checking on the element, and computed the
- /// important attributes we want to check, remove it if it's not valid
- /// or not allowed, either as a whole or particular attributes.
- void _sanitizeElement(Element element, Node parent, bool corrupted,
- String text, String tag, Map attrs, String isAttr) {
- if (false != corrupted) {
- _removeNode(element, parent);
- window.console
- .warn('Removing element due to corrupted attributes on <$text>');
- return;
- }
- if (!validator.allowsElement(element)) {
- _removeNode(element, parent);
- window.console.warn('Removing disallowed element <$tag> from $parent');
- return;
- }
-
- if (isAttr != null) {
- if (!validator.allowsAttribute(element, 'is', isAttr)) {
- _removeNode(element, parent);
- window.console.warn('Removing disallowed type extension '
- '<$tag is="$isAttr">');
- return;
- }
- }
-
- // TODO(blois): Need to be able to get all attributes, irrespective of
- // XMLNS.
- var keys = attrs.keys.toList();
- for (var i = attrs.length - 1; i >= 0; --i) {
- var name = keys[i];
- if (!validator.allowsAttribute(
- element, name.toLowerCase(), attrs[name])) {
- window.console.warn('Removing disallowed attribute '
- '<$tag $name="${attrs[name]}">');
- attrs.remove(name);
- }
- }
-
- if (element is TemplateElement) {
- TemplateElement template = element;
- sanitizeTree(template.content);
- }
- }
-
- /// Sanitize the node and its children recursively.
- void sanitizeNode(Node node, Node parent) {
- switch (node.nodeType) {
- case Node.ELEMENT_NODE:
- _sanitizeUntrustedElement(node, parent);
- break;
- case Node.COMMENT_NODE:
- case Node.DOCUMENT_FRAGMENT_NODE:
- case Node.TEXT_NODE:
- case Node.CDATA_SECTION_NODE:
- break;
- default:
- _removeNode(node, parent);
- }
- }
-}
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/html/dart2js/nativewrappers.dart b/pkg/dev_compiler/tool/input_sdk/lib/html/dart2js/nativewrappers.dart
deleted file mode 100644
index bd33769..0000000
--- a/pkg/dev_compiler/tool/input_sdk/lib/html/dart2js/nativewrappers.dart
+++ /dev/null
@@ -1,7 +0,0 @@
-// 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.
-
-// This is a dummy library that is referred from dart:io. It's only used for
-// the VM.
-library dart.nativewrappers;
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/conversions.dart b/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/conversions.dart
deleted file mode 100644
index 22f0181..0000000
--- a/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/conversions.dart
+++ /dev/null
@@ -1,369 +0,0 @@
-// 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.
-
-// Conversions for IDBKey.
-//
-// Per http://www.w3.org/TR/IndexedDB/#key-construct
-//
-// "A value is said to be a valid key if it is one of the following types: Array
-// JavaScript objects [ECMA-262], DOMString [WEBIDL], Date [ECMA-262] or float
-// [WEBIDL]. However Arrays are only valid keys if every item in the array is
-// defined and is a valid key (i.e. sparse arrays can not be valid keys) and if
-// the Array doesn't directly or indirectly contain itself. Any non-numeric
-// properties are ignored, and thus does not affect whether the Array is a valid
-// key. Additionally, if the value is of type float, it is only a valid key if
-// it is not NaN, and if the value is of type Date it is only a valid key if its
-// [[PrimitiveValue]] internal property, as defined by [ECMA-262], is not NaN."
-
-// What is required is to ensure that an Lists in the key are actually
-// JavaScript arrays, and any Dates are JavaScript Dates.
-
-// Conversions for Window. These check if the window is the local
-// window, and if it's not, wraps or unwraps it with a secure wrapper.
-// We need to test for EventTarget here as well as it's a base type.
-// We omit an unwrapper for Window as no methods take a non-local
-// window as a parameter.
-
-part of html_common;
-
-/// Converts a Dart value into a JavaScript SerializedScriptValue.
-convertDartToNative_SerializedScriptValue(value) {
- return convertDartToNative_PrepareForStructuredClone(value);
-}
-
-/// Since the source object may be viewed via a JavaScript event listener the
-/// original may not be modified.
-convertNativeToDart_SerializedScriptValue(object) {
- return convertNativeToDart_AcceptStructuredClone(object, mustCopy: true);
-}
-
-/**
- * Converts a Dart value into a JavaScript SerializedScriptValue. Returns the
- * original input or a functional 'copy'. Does not mutate the original.
- *
- * The main transformation is the translation of Dart Maps are converted to
- * JavaScript Objects.
- *
- * The algorithm is essentially a dry-run of the structured clone algorithm
- * described at
- * http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#structured-clone
- * https://www.khronos.org/registry/typedarray/specs/latest/#9
- *
- * Since the result of this function is expected to be passed only to JavaScript
- * operations that perform the structured clone algorithm which does not mutate
- * its output, the result may share structure with the input [value].
- */
-abstract class _StructuredClone {
- // TODO(sra): Replace slots with identity hash table.
- var values = [];
- var copies = []; // initially 'null', 'true' during initial DFS, then a copy.
-
- int findSlot(value) {
- int length = values.length;
- for (int i = 0; i < length; i++) {
- if (identical(values[i], value)) return i;
- }
- values.add(value);
- copies.add(null);
- return length;
- }
-
- readSlot(int i) => copies[i];
- writeSlot(int i, x) {
- copies[i] = x;
- }
-
- cleanupSlots() {} // Will be needed if we mark objects with a property.
- bool cloneNotRequired(object);
- newJsMap();
- List newJsList(length);
- void putIntoMap(map, key, value);
-
- // Returns the input, or a clone of the input.
- walk(e) {
- if (e == null) return e;
- if (e is bool) return e;
- if (e is num) return e;
- if (e is String) return e;
- if (e is DateTime) {
- return convertDartToNative_DateTime(e);
- }
- if (e is RegExp) {
- // TODO(sra).
- throw new UnimplementedError('structured clone of RegExp');
- }
-
- // The browser's internal structured cloning algorithm will copy certain
- // types of object, but it will copy only its own implementations and not
- // just any Dart implementations of the interface.
-
- // TODO(sra): The JavaScript objects suitable for direct cloning by the
- // structured clone algorithm could be tagged with an private interface.
-
- if (e is File) return e;
- if (e is Blob) return e;
- if (e is FileList) return e;
-
- // TODO(sra): Firefox: How to convert _TypedImageData on the other end?
- if (e is ImageData) return e;
- if (cloneNotRequired(e)) return e;
-
- if (e is Map) {
- var slot = findSlot(e);
- var copy = readSlot(slot);
- if (copy != null) return copy;
- copy = newJsMap();
- writeSlot(slot, copy);
- e.forEach((key, value) {
- putIntoMap(copy, key, walk(value));
- });
- return copy;
- }
-
- if (e is List) {
- // Since a JavaScript Array is an instance of Dart List it is tempting
- // in dart2js to avoid making a copy of the list if there is no need
- // to copy anything reachable from the array. However, the list may have
- // non-native properties or methods from interceptors and such, e.g.
- // an immutability marker. So we had to stop doing that.
- var slot = findSlot(e);
- var copy = JS('List', '#', readSlot(slot));
- if (copy != null) return copy;
- copy = copyList(e, slot);
- return copy;
- }
-
- throw new UnimplementedError('structured clone of other type');
- }
-
- List copyList(List e, int slot) {
- int i = 0;
- int length = e.length;
- var copy = newJsList(length);
- writeSlot(slot, copy);
- for (; i < length; i++) {
- copy[i] = walk(e[i]);
- }
- return copy;
- }
-
- convertDartToNative_PrepareForStructuredClone(value) {
- var copy = walk(value);
- cleanupSlots();
- return copy;
- }
-}
-
-/**
- * Converts a native value into a Dart object.
- *
- * If [mustCopy] is [:false:], may return the original input. May mutate the
- * original input (but will be idempotent if mutation occurs). It is assumed
- * that this conversion happens on native serializable script values such values
- * from native DOM calls.
- *
- * [object] is the result of a structured clone operation.
- *
- * If necessary, JavaScript Dates are converted into Dart Dates.
- *
- * If [mustCopy] is [:true:], the entire object is copied and the original input
- * is not mutated. This should be the case where Dart and JavaScript code can
- * access the value, for example, via multiple event listeners for
- * MessageEvents. Mutating the object to make it more 'Dart-like' would corrupt
- * the value as seen from the JavaScript listeners.
- */
-abstract class _AcceptStructuredClone {
- // TODO(sra): Replace slots with identity hash table.
- var values = [];
- var copies = []; // initially 'null', 'true' during initial DFS, then a copy.
- bool mustCopy = false;
-
- int findSlot(value) {
- int length = values.length;
- for (int i = 0; i < length; i++) {
- if (identicalInJs(values[i], value)) return i;
- }
- values.add(value);
- copies.add(null);
- return length;
- }
-
- /// Are the two objects identical, but taking into account that two JsObject
- /// wrappers may not be identical, but their underlying Js Object might be.
- bool identicalInJs(a, b);
- readSlot(int i) => copies[i];
- writeSlot(int i, x) {
- copies[i] = x;
- }
-
- /// Iterate over the JS properties.
- forEachJsField(object, action(key, value));
-
- /// Create a new Dart list of the given length. May create a native List or
- /// a JsArray, depending if we're in Dartium or dart2js.
- List newDartList(length);
-
- walk(e) {
- if (e == null) return e;
- if (e is bool) return e;
- if (e is num) return e;
- if (e is String) return e;
-
- if (isJavaScriptDate(e)) {
- return convertNativeToDart_DateTime(e);
- }
-
- if (isJavaScriptRegExp(e)) {
- // TODO(sra).
- throw new UnimplementedError('structured clone of RegExp');
- }
-
- if (isJavaScriptPromise(e)) {
- return convertNativePromiseToDartFuture(e);
- }
-
- if (isJavaScriptSimpleObject(e)) {
- // TODO(sra): If mustCopy is false, swizzle the prototype for one of a Map
- // implementation that uses the properies as storage.
- var slot = findSlot(e);
- var copy = readSlot(slot);
- if (copy != null) return copy;
- copy = {};
-
- writeSlot(slot, copy);
- forEachJsField(e, (key, value) => copy[key] = walk(value));
- return copy;
- }
-
- if (isJavaScriptArray(e)) {
- var l = JS('List', '#', e);
- var slot = findSlot(l);
- var copy = JS('List', '#', readSlot(slot));
- if (copy != null) return copy;
-
- int length = l.length;
- // Since a JavaScript Array is an instance of Dart List, we can modify it
- // in-place unless we must copy.
- copy = mustCopy ? newDartList(length) : l;
- writeSlot(slot, copy);
-
- for (int i = 0; i < length; i++) {
- copy[i] = walk(l[i]);
- }
- return copy;
- }
-
- // Assume anything else is already a valid Dart object, either by having
- // already been processed, or e.g. a clonable native class.
- return e;
- }
-
- convertNativeToDart_AcceptStructuredClone(object, {mustCopy: false}) {
- this.mustCopy = mustCopy;
- var copy = walk(object);
- return copy;
- }
-}
-
-// Conversions for ContextAttributes.
-//
-// On Firefox, the returned ContextAttributes is a plain object.
-class ContextAttributes {
- bool alpha;
- bool antialias;
- bool depth;
- bool premultipliedAlpha;
- bool preserveDrawingBuffer;
- bool stencil;
- bool failIfMajorPerformanceCaveat;
-
- ContextAttributes(
- this.alpha,
- this.antialias,
- this.depth,
- this.failIfMajorPerformanceCaveat,
- this.premultipliedAlpha,
- this.preserveDrawingBuffer,
- this.stencil);
-}
-
-convertNativeToDart_ContextAttributes(nativeContextAttributes) {
- // On Firefox the above test fails because ContextAttributes is a plain
- // object so we create a _TypedContextAttributes.
-
- return new ContextAttributes(
- JS('var', '#.alpha', nativeContextAttributes),
- JS('var', '#.antialias', nativeContextAttributes),
- JS('var', '#.depth', nativeContextAttributes),
- JS('var', '#.failIfMajorPerformanceCaveat', nativeContextAttributes),
- JS('var', '#.premultipliedAlpha', nativeContextAttributes),
- JS('var', '#.preserveDrawingBuffer', nativeContextAttributes),
- JS('var', '#.stencil', nativeContextAttributes));
-}
-
-// Conversions for ImageData
-//
-// On Firefox, the returned ImageData is a plain object.
-
-class _TypedImageData implements ImageData {
- final Uint8ClampedList data;
- final int height;
- final int width;
-
- _TypedImageData(this.data, this.height, this.width);
-}
-
-ImageData convertNativeToDart_ImageData(nativeImageData) {
- // None of the native getters that return ImageData are declared as returning
- // [ImageData] since that is incorrect for FireFox, which returns a plain
- // Object. So we need something that tells the compiler that the ImageData
- // class has been instantiated.
- // TODO(sra): Remove this when all the ImageData returning APIs have been
- // annotated as returning the union ImageData + Object.
- JS('ImageData', '0');
-
- if (nativeImageData is ImageData) {
- // Fix for Issue 16069: on IE, the `data` field is a CanvasPixelArray which
- // has Array as the constructor property. This interferes with finding the
- // correct interceptor. Fix it by overwriting the constructor property.
- var data = nativeImageData.data;
- if (JS('bool', '#.constructor === Array', data)) {
- if (JS('bool', 'typeof CanvasPixelArray !== "undefined"')) {
- JS('void', '#.constructor = CanvasPixelArray', data);
- // This TypedArray property is missing from CanvasPixelArray.
- JS('void', '#.BYTES_PER_ELEMENT = 1', data);
- }
- }
-
- return nativeImageData;
- }
-
- // On Firefox the above test fails because [nativeImageData] is a plain
- // object. So we create a _TypedImageData.
-
- return new _TypedImageData(
- JS('NativeUint8ClampedList', '#.data', nativeImageData),
- JS('var', '#.height', nativeImageData),
- JS('var', '#.width', nativeImageData));
-}
-
-// We can get rid of this conversion if _TypedImageData implements the fields
-// with native names.
-convertDartToNative_ImageData(ImageData imageData) {
- if (imageData is _TypedImageData) {
- return JS('', '{data: #, height: #, width: #}', imageData.data,
- imageData.height, imageData.width);
- }
- return imageData;
-}
-
-const String _serializedScriptValue = 'num|String|bool|'
- 'JSExtendableArray|=Object|'
- 'Blob|File|NativeByteBuffer|NativeTypedData'
- // TODO(sra): Add Date, RegExp.
- ;
-const annotation_Creates_SerializedScriptValue =
- const Creates(_serializedScriptValue);
-const annotation_Returns_SerializedScriptValue =
- const Returns(_serializedScriptValue);
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/conversions_dart2js.dart b/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/conversions_dart2js.dart
deleted file mode 100644
index 5068a9d..0000000
--- a/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/conversions_dart2js.dart
+++ /dev/null
@@ -1,95 +0,0 @@
-part of html_common;
-
-/// Converts a JavaScript object with properties into a Dart Map.
-/// Not suitable for nested objects.
-Map convertNativeToDart_Dictionary(object) {
- if (object == null) return null;
- var dict = {};
- var keys = JS('JSExtendableArray', 'Object.getOwnPropertyNames(#)', object);
- for (final key in keys) {
- dict[key] = JS('var', '#[#]', object, key);
- }
- return dict;
-}
-
-/// Converts a flat Dart map into a JavaScript object with properties.
-convertDartToNative_Dictionary(Map dict, [void postCreate(Object f)]) {
- if (dict == null) return null;
- var object = JS('var', '{}');
- if (postCreate != null) {
- postCreate(object);
- }
- dict.forEach((key, value) {
- JS('void', '#[#] = #', object, key, value);
- });
- return object;
-}
-
-/**
- * Ensures that the input is a JavaScript Array.
- *
- * Creates a new JavaScript array if necessary, otherwise returns the original.
- */
-List convertDartToNative_StringArray(List<String> input) {
- // TODO(sra). Implement this.
- return input;
-}
-
-DateTime convertNativeToDart_DateTime(date) {
- var millisSinceEpoch = JS('int', '#.getTime()', date);
- return new DateTime.fromMillisecondsSinceEpoch(millisSinceEpoch, isUtc: true);
-}
-
-convertDartToNative_DateTime(DateTime date) {
- return JS('', 'new Date(#)', date.millisecondsSinceEpoch);
-}
-
-convertDartToNative_PrepareForStructuredClone(value) =>
- new _StructuredCloneDart2Js()
- .convertDartToNative_PrepareForStructuredClone(value);
-
-convertNativeToDart_AcceptStructuredClone(object, {mustCopy: false}) =>
- new _AcceptStructuredCloneDart2Js()
- .convertNativeToDart_AcceptStructuredClone(object, mustCopy: mustCopy);
-
-class _StructuredCloneDart2Js extends _StructuredClone {
- newJsMap() => JS('var', '{}');
- putIntoMap(map, key, value) => JS('void', '#[#] = #', map, key, value);
- newJsList(length) => JS('JSExtendableArray', 'new Array(#)', length);
- cloneNotRequired(e) => (e is NativeByteBuffer || e is NativeTypedData);
-}
-
-class _AcceptStructuredCloneDart2Js extends _AcceptStructuredClone {
- List newJsList(length) => JS('JSExtendableArray', 'new Array(#)', length);
- List newDartList(length) => newJsList(length);
- bool identicalInJs(a, b) => identical(a, b);
-
- void forEachJsField(object, action(key, value)) {
- for (final key in JS('JSExtendableArray', 'Object.keys(#)', object)) {
- action(key, JS('var', '#[#]', object, key));
- }
- }
-}
-
-bool isJavaScriptDate(value) => JS('bool', '# instanceof Date', value);
-bool isJavaScriptRegExp(value) => JS('bool', '# instanceof RegExp', value);
-bool isJavaScriptArray(value) => JS('bool', '# instanceof Array', value);
-bool isJavaScriptSimpleObject(value) {
- var proto = JS('', 'Object.getPrototypeOf(#)', value);
- return JS('bool', '# === Object.prototype', proto) ||
- JS('bool', '# === null', proto);
-}
-
-bool isImmutableJavaScriptArray(value) =>
- JS('bool', r'!!(#.immutable$list)', value);
-bool isJavaScriptPromise(value) =>
- JS('bool', r'typeof Promise != "undefined" && # instanceof Promise', value);
-
-Future convertNativePromiseToDartFuture(promise) {
- var completer = new Completer();
- var then = convertDartClosureToJS((result) => completer.complete(result), 1);
- var error =
- convertDartClosureToJS((result) => completer.completeError(result), 1);
- var newPromise = JS('', '#.then(#)["catch"](#)', promise, then, error);
- return completer.future;
-}
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/css_class_set.dart b/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/css_class_set.dart
deleted file mode 100644
index 11c35cb..0000000
--- a/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/css_class_set.dart
+++ /dev/null
@@ -1,242 +0,0 @@
-// 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.
-
-part of html_common;
-
-abstract class CssClassSetImpl implements CssClassSet {
- static final RegExp _validTokenRE = new RegExp(r'^\S+$');
-
- String _validateToken(String value) {
- if (_validTokenRE.hasMatch(value)) return value;
- throw new ArgumentError.value(value, 'value', 'Not a valid class token');
- }
-
- String toString() {
- return readClasses().join(' ');
- }
-
- /**
- * Adds the class [value] to the element if it is not on it, removes it if it
- * is.
- *
- * If [shouldAdd] is true, then we always add that [value] to the element. If
- * [shouldAdd] is false then we always remove [value] from the element.
- */
- bool toggle(String value, [bool shouldAdd]) {
- _validateToken(value);
- Set<String> s = readClasses();
- bool result = false;
- if (shouldAdd == null) shouldAdd = !s.contains(value);
- if (shouldAdd) {
- s.add(value);
- result = true;
- } else {
- s.remove(value);
- }
- writeClasses(s);
- return result;
- }
-
- /**
- * Returns [:true:] if classes cannot be added or removed from this
- * [:CssClassSet:].
- */
- bool get frozen => false;
-
- // interface Iterable - BEGIN
- Iterator<String> get iterator => readClasses().iterator;
- // interface Iterable - END
-
- // interface Collection - BEGIN
- void forEach(void f(String element)) {
- readClasses().forEach(f);
- }
-
- String join([String separator = ""]) => readClasses().join(separator);
-
- Iterable<T> map<T>(T f(String e)) => readClasses().map<T>(f);
-
- Iterable<String> where(bool f(String element)) => readClasses().where(f);
-
- Iterable<T> expand<T>(Iterable<T> f(String element)) =>
- readClasses().expand<T>(f);
-
- bool every(bool f(String element)) => readClasses().every(f);
-
- bool any(bool f(String element)) => readClasses().any(f);
-
- bool get isEmpty => readClasses().isEmpty;
-
- bool get isNotEmpty => readClasses().isNotEmpty;
-
- int get length => readClasses().length;
-
- String reduce(String combine(String value, String element)) {
- return readClasses().reduce(combine);
- }
-
- T fold<T>(T initialValue, T combine(T previousValue, String element)) {
- return readClasses().fold<T>(initialValue, combine);
- }
-
- // interface Collection - END
-
- // interface Set - BEGIN
- /**
- * Determine if this element contains the class [value].
- *
- * This is the Dart equivalent of jQuery's
- * [hasClass](http://api.jquery.com/hasClass/).
- */
- bool contains(Object value) {
- if (value is! String) return false;
- _validateToken(value);
- return readClasses().contains(value);
- }
-
- /** Lookup from the Set interface. Not interesting for a String set. */
- String lookup(Object value) => contains(value) ? value : null;
-
- /**
- * Add the class [value] to element.
- *
- * This is the Dart equivalent of jQuery's
- * [addClass](http://api.jquery.com/addClass/).
- */
- bool add(String value) {
- _validateToken(value);
- // TODO - figure out if we need to do any validation here
- // or if the browser natively does enough.
- return modify((s) => s.add(value));
- }
-
- /**
- * Remove the class [value] from element, and return true on successful
- * removal.
- *
- * This is the Dart equivalent of jQuery's
- * [removeClass](http://api.jquery.com/removeClass/).
- */
- bool remove(Object value) {
- _validateToken(value);
- if (value is! String) return false;
- Set<String> s = readClasses();
- bool result = s.remove(value);
- writeClasses(s);
- return result;
- }
-
- /**
- * Add all classes specified in [iterable] to element.
- *
- * This is the Dart equivalent of jQuery's
- * [addClass](http://api.jquery.com/addClass/).
- */
- void addAll(Iterable<String> iterable) {
- // TODO - see comment above about validation.
- modify((s) => s.addAll(iterable.map(_validateToken)));
- }
-
- /**
- * Remove all classes specified in [iterable] from element.
- *
- * This is the Dart equivalent of jQuery's
- * [removeClass](http://api.jquery.com/removeClass/).
- */
- void removeAll(Iterable<Object> iterable) {
- modify((s) => s.removeAll(iterable));
- }
-
- /**
- * Toggles all classes specified in [iterable] on element.
- *
- * Iterate through [iterable]'s items, and add it if it is not on it, or
- * remove it if it is. This is the Dart equivalent of jQuery's
- * [toggleClass](http://api.jquery.com/toggleClass/).
- * If [shouldAdd] is true, then we always add all the classes in [iterable]
- * element. If [shouldAdd] is false then we always remove all the classes in
- * [iterable] from the element.
- */
- void toggleAll(Iterable<String> iterable, [bool shouldAdd]) {
- iterable.forEach((e) => toggle(e, shouldAdd));
- }
-
- void retainAll(Iterable<Object> iterable) {
- modify((s) => s.retainAll(iterable));
- }
-
- void removeWhere(bool test(String name)) {
- modify((s) => s.removeWhere(test));
- }
-
- void retainWhere(bool test(String name)) {
- modify((s) => s.retainWhere(test));
- }
-
- bool containsAll(Iterable<Object> collection) =>
- readClasses().containsAll(collection);
-
- Set<String> intersection(Set<Object> other) =>
- readClasses().intersection(other);
-
- Set<String> union(Set<String> other) => readClasses().union(other);
-
- Set<String> difference(Set<Object> other) => readClasses().difference(other);
-
- String get first => readClasses().first;
- String get last => readClasses().last;
- String get single => readClasses().single;
- List<String> toList({bool growable: true}) =>
- readClasses().toList(growable: growable);
- Set<String> toSet() => readClasses().toSet();
- Iterable<String> take(int n) => readClasses().take(n);
- Iterable<String> takeWhile(bool test(String value)) =>
- readClasses().takeWhile(test);
- Iterable<String> skip(int n) => readClasses().skip(n);
- Iterable<String> skipWhile(bool test(String value)) =>
- readClasses().skipWhile(test);
- String firstWhere(bool test(String value), {String orElse()}) =>
- readClasses().firstWhere(test, orElse: orElse);
- String lastWhere(bool test(String value), {String orElse()}) =>
- readClasses().lastWhere(test, orElse: orElse);
- String singleWhere(bool test(String value)) =>
- readClasses().singleWhere(test);
- String elementAt(int index) => readClasses().elementAt(index);
-
- void clear() {
- // TODO(sra): Do this without reading the classes.
- modify((s) => s.clear());
- }
- // interface Set - END
-
- /**
- * Helper method used to modify the set of css classes on this element.
- *
- * f - callback with:
- * s - a Set of all the css class name currently on this element.
- *
- * After f returns, the modified set is written to the
- * className property of this element.
- */
- modify(f(Set<String> s)) {
- Set<String> s = readClasses();
- var ret = f(s);
- writeClasses(s);
- return ret;
- }
-
- /**
- * Read the class names from the Element class property,
- * and put them into a set (duplicates are discarded).
- * This is intended to be overridden by specific implementations.
- */
- Set<String> readClasses();
-
- /**
- * Join all the elements of a set into one string and write
- * back to the element.
- * This is intended to be overridden by specific implementations.
- */
- void writeClasses(Set<String> s);
-}
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/device.dart b/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/device.dart
deleted file mode 100644
index 123a5db..0000000
--- a/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/device.dart
+++ /dev/null
@@ -1,112 +0,0 @@
-// Copyright (c) 2011, 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.
-
-part of html_common;
-
-/**
- * Utils for device detection.
- */
-class Device {
- static bool _isOpera;
- static bool _isIE;
- static bool _isFirefox;
- static bool _isWebKit;
- static String _cachedCssPrefix;
- static String _cachedPropertyPrefix;
-
- /**
- * Gets the browser's user agent. Using this function allows tests to inject
- * the user agent.
- * Returns the user agent.
- */
- static String get userAgent => window.navigator.userAgent;
-
- /**
- * Determines if the current device is running Opera.
- */
- static bool get isOpera {
- if (_isOpera == null) {
- _isOpera = userAgent.contains("Opera", 0);
- }
- return _isOpera;
- }
-
- /**
- * Determines if the current device is running Internet Explorer.
- */
- static bool get isIE {
- if (_isIE == null) {
- _isIE = !isOpera && userAgent.contains("Trident/", 0);
- }
- return _isIE;
- }
-
- /**
- * Determines if the current device is running Firefox.
- */
- static bool get isFirefox {
- if (_isFirefox == null) {
- _isFirefox = userAgent.contains("Firefox", 0);
- }
- return _isFirefox;
- }
-
- /**
- * Determines if the current device is running WebKit.
- */
- static bool get isWebKit {
- if (_isWebKit == null) {
- _isWebKit = !isOpera && userAgent.contains("WebKit", 0);
- }
- return _isWebKit;
- }
-
- /**
- * Gets the CSS property prefix for the current platform.
- */
- static String get cssPrefix {
- String prefix = _cachedCssPrefix;
- if (prefix != null) return prefix;
- if (isFirefox) {
- prefix = '-moz-';
- } else if (isIE) {
- prefix = '-ms-';
- } else if (isOpera) {
- prefix = '-o-';
- } else {
- prefix = '-webkit-';
- }
- return _cachedCssPrefix = prefix;
- }
-
- /**
- * Prefix as used for JS property names.
- */
- static String get propertyPrefix {
- String prefix = _cachedPropertyPrefix;
- if (prefix != null) return prefix;
- if (isFirefox) {
- prefix = 'moz';
- } else if (isIE) {
- prefix = 'ms';
- } else if (isOpera) {
- prefix = 'o';
- } else {
- prefix = 'webkit';
- }
- return _cachedPropertyPrefix = prefix;
- }
-
- /**
- * Checks to see if the event class is supported by the current platform.
- */
- static bool isEventTypeSupported(String eventType) {
- // Browsers throw for unsupported event names.
- try {
- var e = new Event.eventType(eventType, '');
- return e is Event;
- } catch (_) {}
- return false;
- }
-}
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/filtered_element_list.dart b/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/filtered_element_list.dart
deleted file mode 100644
index f70d820..0000000
--- a/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/filtered_element_list.dart
+++ /dev/null
@@ -1,151 +0,0 @@
-// Copyright (c) 2011, 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.
-
-part of html_common;
-
-/**
- * An indexable collection of a node's direct descendants in the document tree,
- * filtered so that only elements are in the collection.
- */
-class FilteredElementList extends ListBase<Element> implements NodeListWrapper {
- final Node _node;
- final List<Node> _childNodes;
-
- /**
- * Creates a collection of the elements that descend from a node.
- *
- * Example usage:
- *
- * var filteredElements = new FilteredElementList(query("#container"));
- * // filteredElements is [a, b, c].
- */
- FilteredElementList(Node node)
- : _childNodes = node.nodes,
- _node = node;
-
- // We can't memoize this, since it's possible that children will be messed
- // with externally to this class.
- Iterable<Element> get _iterable => _childNodes
- .where((n) => n is Element)
- .map/*<Element>*/((n) => n as Element);
- List<Element> get _filtered =>
- new List<Element>.from(_iterable, growable: false);
-
- void forEach(void f(Element element)) {
- // This cannot use the iterator, because operations during iteration might
- // modify the collection, e.g. addAll might append a node to another parent.
- _filtered.forEach(f);
- }
-
- void operator []=(int index, Element value) {
- this[index].replaceWith(value);
- }
-
- set length(int newLength) {
- final len = this.length;
- if (newLength >= len) {
- return;
- } else if (newLength < 0) {
- throw new ArgumentError("Invalid list length");
- }
-
- removeRange(newLength, len);
- }
-
- void add(Element value) {
- _childNodes.add(value);
- }
-
- void addAll(Iterable<Element> iterable) {
- for (Element element in iterable) {
- add(element);
- }
- }
-
- bool contains(Object needle) {
- if (needle is! Element) return false;
- Element element = needle;
- return element.parentNode == _node;
- }
-
- Iterable<Element> get reversed => _filtered.reversed;
-
- void sort([int compare(Element a, Element b)]) {
- throw new UnsupportedError('Cannot sort filtered list');
- }
-
- void setRange(int start, int end, Iterable<Element> iterable,
- [int skipCount = 0]) {
- throw new UnsupportedError('Cannot setRange on filtered list');
- }
-
- void fillRange(int start, int end, [Element fillValue]) {
- throw new UnsupportedError('Cannot fillRange on filtered list');
- }
-
- void replaceRange(int start, int end, Iterable<Element> iterable) {
- throw new UnsupportedError('Cannot replaceRange on filtered list');
- }
-
- void removeRange(int start, int end) {
- new List.from(_iterable.skip(start).take(end - start))
- .forEach((el) => el.remove());
- }
-
- void clear() {
- // Currently, ElementList#clear clears even non-element nodes, so we follow
- // that behavior.
- _childNodes.clear();
- }
-
- Element removeLast() {
- final result = _iterable.last;
- if (result != null) {
- result.remove();
- }
- return result;
- }
-
- void insert(int index, Element value) {
- if (index == length) {
- add(value);
- } else {
- var element = _iterable.elementAt(index);
- element.parentNode.insertBefore(value, element);
- }
- }
-
- void insertAll(int index, Iterable<Element> iterable) {
- if (index == length) {
- addAll(iterable);
- } else {
- var element = _iterable.elementAt(index);
- element.parentNode.insertAllBefore(iterable, element);
- }
- }
-
- Element removeAt(int index) {
- final result = this[index];
- result.remove();
- return result;
- }
-
- bool remove(Object element) {
- if (element is! Element) return false;
- if (contains(element)) {
- (element as Element).remove(); // Placate the type checker
- return true;
- } else {
- return false;
- }
- }
-
- int get length => _iterable.length;
- Element operator [](int index) => _iterable.elementAt(index);
- // This cannot use the iterator, because operations during iteration might
- // modify the collection, e.g. addAll might append a node to another parent.
- Iterator<Element> get iterator => _filtered.iterator;
-
- List<Node> get rawList => _node.childNodes;
-}
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/html_common.dart b/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/html_common.dart
deleted file mode 100644
index 7e7bbcc..0000000
--- a/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/html_common.dart
+++ /dev/null
@@ -1,23 +0,0 @@
-// 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 html_common;
-
-import 'dart:async';
-import 'dart:collection';
-import 'dart:html';
-import 'dart:js' as js;
-import 'dart:_internal' show WhereIterable;
-import 'dart:nativewrappers';
-import 'dart:typed_data';
-import 'dart:web_gl' as gl;
-
-import 'metadata.dart';
-export 'metadata.dart';
-
-part 'css_class_set.dart';
-part 'device.dart';
-part 'filtered_element_list.dart';
-part 'lists.dart';
-part 'conversions.dart';
-part 'conversions_dartium.dart';
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/html_common_dart2js.dart b/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/html_common_dart2js.dart
deleted file mode 100644
index f162ad8..0000000
--- a/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/html_common_dart2js.dart
+++ /dev/null
@@ -1,26 +0,0 @@
-// 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.
-
-library html_common;
-
-import 'dart:async';
-import 'dart:collection';
-import 'dart:html';
-import 'dart:_internal' show WhereIterable;
-import 'dart:web_gl' as gl;
-import 'dart:typed_data';
-import 'dart:_native_typed_data';
-import 'dart:_js_helper' show Creates, Returns, convertDartClosureToJS;
-import 'dart:_foreign_helper' show JS;
-import 'dart:_interceptors' show Interceptor, JSExtendableArray;
-
-import 'dart:_metadata';
-export 'dart:_metadata';
-
-part 'css_class_set.dart';
-part 'conversions.dart';
-part 'conversions_dart2js.dart';
-part 'device.dart';
-part 'filtered_element_list.dart';
-part 'lists.dart';
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/html_common_ddc.dart b/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/html_common_ddc.dart
deleted file mode 100644
index 6d2f2f8..0000000
--- a/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/html_common_ddc.dart
+++ /dev/null
@@ -1,31 +0,0 @@
-// 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.
-
-library html_common;
-
-import 'dart:async';
-import 'dart:collection';
-import 'dart:html';
-import 'dart:_internal' show WhereIterable;
-import 'dart:web_gl' as gl;
-import 'dart:typed_data';
-import 'dart:_native_typed_data';
-import 'dart:_js_helper' show Creates, Returns, convertDartClosureToJS;
-import 'dart:_foreign_helper' show JS;
-import 'dart:_interceptors' show Interceptor, JSExtendableArray;
-
-import 'dart:_metadata';
-export 'dart:_metadata';
-
-part 'css_class_set.dart';
-part 'conversions.dart';
-part 'conversions_dart2js.dart';
-part 'device.dart';
-part 'filtered_element_list.dart';
-part 'lists.dart';
-
-class DartHtmlObject {
- // FIXME(vsm): Make this final at least. Private?
- dynamic raw;
-}
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/lists.dart b/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/lists.dart
deleted file mode 100644
index c7abc41..0000000
--- a/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/lists.dart
+++ /dev/null
@@ -1,71 +0,0 @@
-// Copyright (c) 2011, 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.
-
-part of html_common;
-
-class Lists {
- /**
- * Returns the index in the array [a] of the given [element], starting
- * the search at index [startIndex] to [endIndex] (exclusive).
- * Returns -1 if [element] is not found.
- */
- static int indexOf(List a, Object element, int startIndex, int endIndex) {
- if (startIndex >= a.length) {
- return -1;
- }
- if (startIndex < 0) {
- startIndex = 0;
- }
- for (int i = startIndex; i < endIndex; i++) {
- if (a[i] == element) {
- return i;
- }
- }
- return -1;
- }
-
- /**
- * Returns the last index in the array [a] of the given [element], starting
- * the search at index [startIndex] to 0.
- * Returns -1 if [element] is not found.
- */
- static int lastIndexOf(List a, Object element, int startIndex) {
- if (startIndex < 0) {
- return -1;
- }
- if (startIndex >= a.length) {
- startIndex = a.length - 1;
- }
- for (int i = startIndex; i >= 0; i--) {
- if (a[i] == element) {
- return i;
- }
- }
- return -1;
- }
-
- /**
- * Returns a sub list copy of this list, from [start] to
- * [end] ([end] not inclusive).
- * Returns an empty list if [length] is 0.
- * It is an error if indices are not valid for the list, or
- * if [end] is before [start].
- */
- static List getRange(List a, int start, int end, List accumulator) {
- if (start < 0) throw new RangeError.value(start);
- if (end < start) throw new RangeError.value(end);
- if (end > a.length) throw new RangeError.value(end);
- for (int i = start; i < end; i++) {
- accumulator.add(a[i]);
- }
- return accumulator;
- }
-}
-
-/**
- * For accessing underlying node lists, for dart:js interop.
- */
-abstract class NodeListWrapper {
- List<Node> get rawList;
-}
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/metadata.dart b/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/metadata.dart
deleted file mode 100644
index b5542dc..0000000
--- a/pkg/dev_compiler/tool/input_sdk/lib/html/html_common/metadata.dart
+++ /dev/null
@@ -1,71 +0,0 @@
-// 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.
-
-library metadata;
-
-/**
- * An annotation used to mark a feature as only being supported by a subset
- * of the browsers that Dart supports by default.
- *
- * If an API is not annotated with [SupportedBrowser] then it is assumed to
- * work on all browsers Dart supports.
- */
-class SupportedBrowser {
- static const String CHROME = "Chrome";
- static const String FIREFOX = "Firefox";
- static const String IE = "Internet Explorer";
- static const String OPERA = "Opera";
- static const String SAFARI = "Safari";
-
- /// The name of the browser.
- final String browserName;
-
- /// The minimum version of the browser that supports the feature, or null
- /// if supported on all versions.
- final String minimumVersion;
-
- const SupportedBrowser(this.browserName, [this.minimumVersion]);
-}
-
-/**
- * An annotation used to mark an API as being experimental.
- *
- * An API is considered to be experimental if it is still going through the
- * process of stabilizing and is subject to change or removal.
- *
- * See also:
- *
- * * [W3C recommendation](http://en.wikipedia.org/wiki/W3C_recommendation)
- */
-class Experimental {
- const Experimental();
-}
-
-/**
- * Annotation that specifies that a member is editable through generate files.
- *
- * This is used for API generation.
- *
- * [name] should be formatted as `interface.member`.
- */
-class DomName {
- final String name;
- const DomName(this.name);
-}
-
-/**
- * Metadata that specifies that that member is editable through generated
- * files.
- */
-class DocsEditable {
- const DocsEditable();
-}
-
-/**
- * Annotation that indicates that an API is not expected to change but has
- * not undergone enough testing to be considered stable.
- */
-class Unstable {
- const Unstable();
-}
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/indexed_db/dart2js/indexed_db_dart2js.dart b/pkg/dev_compiler/tool/input_sdk/lib/indexed_db/dart2js/indexed_db_dart2js.dart
deleted file mode 100644
index c540bb0..0000000
--- a/pkg/dev_compiler/tool/input_sdk/lib/indexed_db/dart2js/indexed_db_dart2js.dart
+++ /dev/null
@@ -1,1506 +0,0 @@
-/**
- * A client-side key-value store with support for indexes.
- *
- * Many browsers support IndexedDB—a web standard for
- * an indexed database.
- * By storing data on the client in an IndexedDB,
- * a web app gets some advantages, such as faster performance and persistence.
- * To find out which browsers support IndexedDB,
- * refer to [Can I Use?](http://caniuse.com/#feat=indexeddb)
- *
- * In IndexedDB, each record is identified by a unique index or key,
- * making data retrieval speedy.
- * You can store structured data,
- * such as images, arrays, and maps using IndexedDB.
- * The standard does not specify size limits for individual data items
- * or for the database itself, but browsers may impose storage limits.
- *
- * ## Using indexed_db
- *
- * The classes in this library provide an interface
- * to the browser's IndexedDB, if it has one.
- * To use this library in your code:
- *
- * import 'dart:indexed_db';
- *
- * A web app can determine if the browser supports
- * IndexedDB with [IdbFactory.supported]:
- *
- * if (IdbFactory.supported)
- * // Use indexeddb.
- * else
- * // Find an alternative.
- *
- * Access to the browser's IndexedDB is provided by the app's top-level
- * [Window] object, which your code can refer to with `window.indexedDB`.
- * So, for example,
- * here's how to use window.indexedDB to open a database:
- *
- * Future open() {
- * return window.indexedDB.open('myIndexedDB',
- * version: 1,
- * onUpgradeNeeded: _initializeDatabase)
- * .then(_loadFromDB);
- * }
- * void _initializeDatabase(VersionChangeEvent e) {
- * ...
- * }
- * Future _loadFromDB(Database db) {
- * ...
- * }
- *
- *
- * All data in an IndexedDB is stored within an [ObjectStore].
- * To manipulate the database use [Transaction]s.
- *
- * ## Other resources
- *
- * Other options for client-side data storage include:
- *
- * * [Window.localStorage]—a
- * basic mechanism that stores data as a [Map],
- * and where both the keys and the values are strings.
- *
- * * [dart:web_sql]—a database that can be queried with SQL.
- *
- * For a tutorial about using the indexed_db library with Dart,
- * check out
- * [Use IndexedDB](http://www.dartlang.org/docs/tutorials/indexeddb/).
- *
- * [IndexedDB reference](http://docs.webplatform.org/wiki/apis/indexeddb)
- * provides wiki-style docs about indexedDB
- */
-library dart.dom.indexed_db;
-
-import 'dart:async';
-import 'dart:html';
-import 'dart:html_common';
-import 'dart:_native_typed_data';
-import 'dart:typed_data';
-import 'dart:_js_helper' show Creates, Returns, JSName, Native;
-import 'dart:_foreign_helper' show JS;
-import 'dart:_interceptors' show Interceptor, JSExtendableArray;
-// 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.
-
-// DO NOT EDIT - unless you are editing documentation as per:
-// https://code.google.com/p/dart/wiki/ContributingHTMLDocumentation
-// Auto-generated dart:svg library.
-
-class _KeyRangeFactoryProvider {
- static KeyRange createKeyRange_only(/*Key*/ value) =>
- _only(_class(), _translateKey(value));
-
- static KeyRange createKeyRange_lowerBound(
- /*Key*/ bound,
- [bool open = false]) =>
- _lowerBound(_class(), _translateKey(bound), open);
-
- static KeyRange createKeyRange_upperBound(
- /*Key*/ bound,
- [bool open = false]) =>
- _upperBound(_class(), _translateKey(bound), open);
-
- static KeyRange createKeyRange_bound(/*Key*/ lower, /*Key*/ upper,
- [bool lowerOpen = false, bool upperOpen = false]) =>
- _bound(_class(), _translateKey(lower), _translateKey(upper), lowerOpen,
- upperOpen);
-
- static var _cachedClass;
-
- static _class() {
- if (_cachedClass != null) return _cachedClass;
- return _cachedClass = _uncachedClass();
- }
-
- static _uncachedClass() => JS(
- 'var',
- '''window.webkitIDBKeyRange || window.mozIDBKeyRange ||
- window.msIDBKeyRange || window.IDBKeyRange''');
-
- static _translateKey(idbkey) => idbkey; // TODO: fixme.
-
- static KeyRange _only(cls, value) => JS('KeyRange', '#.only(#)', cls, value);
-
- static KeyRange _lowerBound(cls, bound, open) =>
- JS('KeyRange', '#.lowerBound(#, #)', cls, bound, open);
-
- static KeyRange _upperBound(cls, bound, open) =>
- JS('KeyRange', '#.upperBound(#, #)', cls, bound, open);
-
- static KeyRange _bound(cls, lower, upper, lowerOpen, upperOpen) => JS(
- 'KeyRange',
- '#.bound(#, #, #, #)',
- cls,
- lower,
- upper,
- lowerOpen,
- upperOpen);
-}
-
-// Conversions for IDBKey.
-//
-// Per http://www.w3.org/TR/IndexedDB/#key-construct
-//
-// "A value is said to be a valid key if it is one of the following types: Array
-// JavaScript objects [ECMA-262], DOMString [WEBIDL], Date [ECMA-262] or float
-// [WEBIDL]. However Arrays are only valid keys if every item in the array is
-// defined and is a valid key (i.e. sparse arrays can not be valid keys) and if
-// the Array doesn't directly or indirectly contain itself. Any non-numeric
-// properties are ignored, and thus does not affect whether the Array is a valid
-// key. Additionally, if the value is of type float, it is only a valid key if
-// it is not NaN, and if the value is of type Date it is only a valid key if its
-// [[PrimitiveValue]] internal property, as defined by [ECMA-262], is not NaN."
-
-// What is required is to ensure that an Lists in the key are actually
-// JavaScript arrays, and any Dates are JavaScript Dates.
-
-/**
- * Converts a native IDBKey into a Dart object.
- *
- * May return the original input. May mutate the original input (but will be
- * idempotent if mutation occurs). It is assumed that this conversion happens
- * on native IDBKeys on all paths that return IDBKeys from native DOM calls.
- *
- * If necessary, JavaScript Dates are converted into Dart Dates.
- */
-_convertNativeToDart_IDBKey(nativeKey) {
- containsDate(object) {
- if (isJavaScriptDate(object)) return true;
- if (object is List) {
- for (int i = 0; i < object.length; i++) {
- if (containsDate(object[i])) return true;
- }
- }
- return false; // number, string.
- }
-
- if (containsDate(nativeKey)) {
- throw new UnimplementedError('Key containing DateTime');
- }
- // TODO: Cache conversion somewhere?
- return nativeKey;
-}
-
-/**
- * Converts a Dart object into a valid IDBKey.
- *
- * May return the original input. Does not mutate input.
- *
- * If necessary, [dartKey] may be copied to ensure all lists are converted into
- * JavaScript Arrays and Dart Dates into JavaScript Dates.
- */
-_convertDartToNative_IDBKey(dartKey) {
- // TODO: Implement.
- return dartKey;
-}
-
-/// May modify original. If so, action is idempotent.
-_convertNativeToDart_IDBAny(object) {
- return convertNativeToDart_AcceptStructuredClone(object, mustCopy: false);
-}
-
-// TODO(sra): Add DateTime.
-const String _idbKey = 'JSExtendableArray|=Object|num|String';
-const _annotation_Creates_IDBKey = const Creates(_idbKey);
-const _annotation_Returns_IDBKey = const Returns(_idbKey);
-// 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.
-
-@DomName('IDBCursor')
-@Unstable()
-@Native("IDBCursor")
-class Cursor extends Interceptor {
- @DomName('IDBCursor.delete')
- Future delete() {
- try {
- return _completeRequest(_delete());
- } catch (e, stacktrace) {
- return new Future.error(e, stacktrace);
- }
- }
-
- @DomName('IDBCursor.value')
- Future update(value) {
- try {
- return _completeRequest(_update(value));
- } catch (e, stacktrace) {
- return new Future.error(e, stacktrace);
- }
- }
-
- @JSName('continue')
- @DomName('IDBCursor.continue')
- void next([Object key]) {
- if (key == null) {
- JS('void', '#.continue()', this);
- } else {
- JS('void', '#.continue(#)', this, key);
- }
- }
-
- // To suppress missing implicit constructor warnings.
- factory Cursor._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('IDBCursor.direction')
- @DocsEditable()
- final String direction;
-
- @DomName('IDBCursor.key')
- @DocsEditable()
- @_annotation_Creates_IDBKey
- @_annotation_Returns_IDBKey
- final Object key;
-
- @DomName('IDBCursor.primaryKey')
- @DocsEditable()
- @_annotation_Creates_IDBKey
- @_annotation_Returns_IDBKey
- final Object primaryKey;
-
- @DomName('IDBCursor.source')
- @DocsEditable()
- @Creates('Null')
- @Returns('ObjectStore|Index|Null')
- final Object source;
-
- @DomName('IDBCursor.advance')
- @DocsEditable()
- void advance(int count) native;
-
- @DomName('IDBCursor.continuePrimaryKey')
- @DocsEditable()
- @Experimental() // untriaged
- void continuePrimaryKey(Object key, Object primaryKey) native;
-
- @JSName('delete')
- @DomName('IDBCursor.delete')
- @DocsEditable()
- Request _delete() native;
-
- @DomName('IDBCursor.update')
- @DocsEditable()
- Request _update(/*any*/ value) {
- var value_1 = convertDartToNative_SerializedScriptValue(value);
- return _update_1(value_1);
- }
-
- @JSName('update')
- @DomName('IDBCursor.update')
- @DocsEditable()
- Request _update_1(value) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('IDBCursorWithValue')
-@Unstable()
-@Native("IDBCursorWithValue")
-class CursorWithValue extends Cursor {
- // To suppress missing implicit constructor warnings.
- factory CursorWithValue._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('IDBCursorWithValue.value')
- @DocsEditable()
- dynamic get value => _convertNativeToDart_IDBAny(this._get_value);
- @JSName('value')
- @DomName('IDBCursorWithValue.value')
- @DocsEditable()
- @annotation_Creates_SerializedScriptValue
- @annotation_Returns_SerializedScriptValue
- final dynamic _get_value;
-}
-// 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.
-
-@DocsEditable()
-/**
- * An indexed database object for storing client-side data
- * in web apps.
- */
-@DomName('IDBDatabase')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX, '15')
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@Experimental()
-@Unstable()
-@Native("IDBDatabase")
-class Database extends EventTarget {
- @DomName('IDBDatabase.createObjectStore')
- @DocsEditable()
- ObjectStore createObjectStore(String name,
- {String keyPath, bool autoIncrement}) {
- var options = {};
- if (keyPath != null) {
- options['keyPath'] = keyPath;
- }
- if (autoIncrement != null) {
- options['autoIncrement'] = autoIncrement;
- }
-
- return _createObjectStore(name, options);
- }
-
- Transaction transaction(storeName_OR_storeNames, String mode) {
- if (mode != 'readonly' && mode != 'readwrite') {
- throw new ArgumentError(mode);
- }
-
- // TODO(sra): Ensure storeName_OR_storeNames is a string or List<String>,
- // and copy to JavaScript array if necessary.
-
- // Try and create a transaction with a string mode. Browsers that expect a
- // numeric mode tend to convert the string into a number. This fails
- // silently, resulting in zero ('readonly').
- return _transaction(storeName_OR_storeNames, mode);
- }
-
- Transaction transactionStore(String storeName, String mode) {
- if (mode != 'readonly' && mode != 'readwrite') {
- throw new ArgumentError(mode);
- }
- // Try and create a transaction with a string mode. Browsers that expect a
- // numeric mode tend to convert the string into a number. This fails
- // silently, resulting in zero ('readonly').
- return _transaction(storeName, mode);
- }
-
- Transaction transactionList(List<String> storeNames, String mode) {
- if (mode != 'readonly' && mode != 'readwrite') {
- throw new ArgumentError(mode);
- }
- List storeNames_1 = convertDartToNative_StringArray(storeNames);
- return _transaction(storeNames_1, mode);
- }
-
- Transaction transactionStores(DomStringList storeNames, String mode) {
- if (mode != 'readonly' && mode != 'readwrite') {
- throw new ArgumentError(mode);
- }
- return _transaction(storeNames, mode);
- }
-
- @JSName('transaction')
- Transaction _transaction(stores, mode) native;
-
- // To suppress missing implicit constructor warnings.
- factory Database._() {
- throw new UnsupportedError("Not supported");
- }
-
- /**
- * Static factory designed to expose `abort` events to event
- * handlers that are not necessarily instances of [Database].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('IDBDatabase.abortEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> abortEvent =
- const EventStreamProvider<Event>('abort');
-
- /**
- * Static factory designed to expose `close` events to event
- * handlers that are not necessarily instances of [Database].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('IDBDatabase.closeEvent')
- @DocsEditable()
- // https://www.w3.org/Bugs/Public/show_bug.cgi?id=22540
- @Experimental()
- static const EventStreamProvider<Event> closeEvent =
- const EventStreamProvider<Event>('close');
-
- /**
- * Static factory designed to expose `error` events to event
- * handlers that are not necessarily instances of [Database].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('IDBDatabase.errorEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> errorEvent =
- const EventStreamProvider<Event>('error');
-
- /**
- * Static factory designed to expose `versionchange` events to event
- * handlers that are not necessarily instances of [Database].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('IDBDatabase.versionchangeEvent')
- @DocsEditable()
- static const EventStreamProvider<VersionChangeEvent> versionChangeEvent =
- const EventStreamProvider<VersionChangeEvent>('versionchange');
-
- @DomName('IDBDatabase.name')
- @DocsEditable()
- final String name;
-
- @DomName('IDBDatabase.objectStoreNames')
- @DocsEditable()
- @Returns('DomStringList|Null')
- @Creates('DomStringList')
- final List<String> objectStoreNames;
-
- @DomName('IDBDatabase.version')
- @DocsEditable()
- @Creates('int|String|Null')
- @Returns('int|String|Null')
- final int version;
-
- @DomName('IDBDatabase.close')
- @DocsEditable()
- void close() native;
-
- @DomName('IDBDatabase.createObjectStore')
- @DocsEditable()
- ObjectStore _createObjectStore(String name, [Map options]) {
- if (options != null) {
- var options_1 = convertDartToNative_Dictionary(options);
- return _createObjectStore_1(name, options_1);
- }
- return _createObjectStore_2(name);
- }
-
- @JSName('createObjectStore')
- @DomName('IDBDatabase.createObjectStore')
- @DocsEditable()
- ObjectStore _createObjectStore_1(name, options) native;
- @JSName('createObjectStore')
- @DomName('IDBDatabase.createObjectStore')
- @DocsEditable()
- ObjectStore _createObjectStore_2(name) native;
-
- @DomName('IDBDatabase.deleteObjectStore')
- @DocsEditable()
- void deleteObjectStore(String name) native;
-
- /// Stream of `abort` events handled by this [Database].
- @DomName('IDBDatabase.onabort')
- @DocsEditable()
- Stream<Event> get onAbort => abortEvent.forTarget(this);
-
- /// Stream of `close` events handled by this [Database].
- @DomName('IDBDatabase.onclose')
- @DocsEditable()
- // https://www.w3.org/Bugs/Public/show_bug.cgi?id=22540
- @Experimental()
- Stream<Event> get onClose => closeEvent.forTarget(this);
-
- /// Stream of `error` events handled by this [Database].
- @DomName('IDBDatabase.onerror')
- @DocsEditable()
- Stream<Event> get onError => errorEvent.forTarget(this);
-
- /// Stream of `versionchange` events handled by this [Database].
- @DomName('IDBDatabase.onversionchange')
- @DocsEditable()
- Stream<VersionChangeEvent> get onVersionChange =>
- versionChangeEvent.forTarget(this);
-}
-// 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.
-
-@DomName('IDBFactory')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX, '15')
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@Experimental()
-@Unstable()
-@Native("IDBFactory")
-class IdbFactory extends Interceptor {
- /**
- * Checks to see if Indexed DB is supported on the current platform.
- */
- static bool get supported {
- return JS(
- 'bool',
- '!!(window.indexedDB || '
- 'window.webkitIndexedDB || '
- 'window.mozIndexedDB)');
- }
-
- @DomName('IDBFactory.open')
- Future<Database> open(String name,
- {int version,
- void onUpgradeNeeded(VersionChangeEvent),
- void onBlocked(Event)}) {
- if ((version == null) != (onUpgradeNeeded == null)) {
- return new Future.error(new ArgumentError(
- 'version and onUpgradeNeeded must be specified together'));
- }
- try {
- var request;
- if (version != null) {
- request = _open(name, version);
- } else {
- request = _open(name);
- }
-
- if (onUpgradeNeeded != null) {
- request.onUpgradeNeeded.listen(onUpgradeNeeded);
- }
- if (onBlocked != null) {
- request.onBlocked.listen(onBlocked);
- }
- return _completeRequest(request);
- } catch (e, stacktrace) {
- return new Future.error(e, stacktrace);
- }
- }
-
- @DomName('IDBFactory.deleteDatabase')
- Future<IdbFactory> deleteDatabase(String name, {void onBlocked(Event e)}) {
- try {
- var request = _deleteDatabase(name);
-
- if (onBlocked != null) {
- request.onBlocked.listen(onBlocked);
- }
- var completer = new Completer<IdbFactory>.sync();
- request.onSuccess.listen((e) {
- completer.complete(this);
- });
- request.onError.listen(completer.completeError);
- return completer.future;
- } catch (e, stacktrace) {
- return new Future.error(e, stacktrace);
- }
- }
-
- @DomName('IDBFactory.getDatabaseNames')
- @SupportedBrowser(SupportedBrowser.CHROME)
- @Experimental()
- Future<List<String>> getDatabaseNames() {
- try {
- var request = _webkitGetDatabaseNames();
-
- return _completeRequest(request);
- } catch (e, stacktrace) {
- return new Future.error(e, stacktrace);
- }
- }
-
- /**
- * Checks to see if getDatabaseNames is supported by the current platform.
- */
- bool get supportsDatabaseNames {
- return supported &&
- JS('bool', '!!(#.getDatabaseNames || #.webkitGetDatabaseNames)', this,
- this);
- }
-
- // To suppress missing implicit constructor warnings.
- factory IdbFactory._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('IDBFactory.cmp')
- @DocsEditable()
- int cmp(Object first, Object second) native;
-
- @JSName('deleteDatabase')
- @DomName('IDBFactory.deleteDatabase')
- @DocsEditable()
- OpenDBRequest _deleteDatabase(String name) native;
-
- @JSName('open')
- @DomName('IDBFactory.open')
- @DocsEditable()
- @Returns('Request')
- @Creates('Request')
- @Creates('Database')
- OpenDBRequest _open(String name, [int version]) native;
-
- @JSName('webkitGetDatabaseNames')
- @DomName('IDBFactory.webkitGetDatabaseNames')
- @DocsEditable()
- @SupportedBrowser(SupportedBrowser.CHROME)
- @SupportedBrowser(SupportedBrowser.SAFARI)
- @Experimental()
- @Returns('Request')
- @Creates('Request')
- @Creates('DomStringList')
- Request _webkitGetDatabaseNames() native;
-}
-
-/**
- * Ties a request to a completer, so the completer is completed when it succeeds
- * and errors out when the request errors.
- */
-Future/*<T>*/ _completeRequest/*<T>*/(Request request) {
- var completer = new Completer/*<T>*/ .sync();
- // TODO: make sure that completer.complete is synchronous as transactions
- // may be committed if the result is not processed immediately.
- request.onSuccess.listen((e) {
- var result = _cast/*<T>*/(request.result);
- completer.complete(result);
- });
- request.onError.listen(completer.completeError);
- return completer.future;
-}
-// 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.
-
-@DomName('IDBIndex')
-@Unstable()
-@Native("IDBIndex")
-class Index extends Interceptor {
- @DomName('IDBIndex.count')
- Future<int> count([key_OR_range]) {
- try {
- var request = _count(key_OR_range);
- return _completeRequest(request);
- } catch (e, stacktrace) {
- return new Future.error(e, stacktrace);
- }
- }
-
- @DomName('IDBIndex.get')
- Future get(key) {
- try {
- var request = _get(key);
-
- return _completeRequest(request);
- } catch (e, stacktrace) {
- return new Future.error(e, stacktrace);
- }
- }
-
- @DomName('IDBIndex.getKey')
- Future getKey(key) {
- try {
- var request = _getKey(key);
-
- return _completeRequest(request);
- } catch (e, stacktrace) {
- return new Future.error(e, stacktrace);
- }
- }
-
- /**
- * Creates a stream of cursors over the records in this object store.
- *
- * See also:
- *
- * * [ObjectStore.openCursor]
- */
- Stream<CursorWithValue> openCursor(
- {key, KeyRange range, String direction, bool autoAdvance}) {
- var key_OR_range = null;
- if (key != null) {
- if (range != null) {
- throw new ArgumentError('Cannot specify both key and range.');
- }
- key_OR_range = key;
- } else {
- key_OR_range = range;
- }
- var request;
- if (direction == null) {
- // FIXME: Passing in "next" should be unnecessary.
- request = _openCursor(key_OR_range, "next");
- } else {
- request = _openCursor(key_OR_range, direction);
- }
- return ObjectStore._cursorStreamFromResult(request, autoAdvance);
- }
-
- /**
- * Creates a stream of cursors over the records in this object store.
- *
- * See also:
- *
- * * [ObjectStore.openCursor]
- */
- Stream<Cursor> openKeyCursor(
- {key, KeyRange range, String direction, bool autoAdvance}) {
- var key_OR_range = null;
- if (key != null) {
- if (range != null) {
- throw new ArgumentError('Cannot specify both key and range.');
- }
- key_OR_range = key;
- } else {
- key_OR_range = range;
- }
- var request;
- if (direction == null) {
- // FIXME: Passing in "next" should be unnecessary.
- request = _openKeyCursor(key_OR_range, "next");
- } else {
- request = _openKeyCursor(key_OR_range, direction);
- }
- return ObjectStore._cursorStreamFromResult(request, autoAdvance);
- }
-
- // To suppress missing implicit constructor warnings.
- factory Index._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('IDBIndex.keyPath')
- @DocsEditable()
- @annotation_Creates_SerializedScriptValue
- final Object keyPath;
-
- @DomName('IDBIndex.multiEntry')
- @DocsEditable()
- final bool multiEntry;
-
- @DomName('IDBIndex.name')
- @DocsEditable()
- final String name;
-
- @DomName('IDBIndex.objectStore')
- @DocsEditable()
- final ObjectStore objectStore;
-
- @DomName('IDBIndex.unique')
- @DocsEditable()
- final bool unique;
-
- @JSName('count')
- @DomName('IDBIndex.count')
- @DocsEditable()
- Request _count(Object key) native;
-
- @JSName('get')
- @DomName('IDBIndex.get')
- @DocsEditable()
- @Returns('Request')
- @Creates('Request')
- @annotation_Creates_SerializedScriptValue
- Request _get(Object key) native;
-
- @DomName('IDBIndex.getAll')
- @DocsEditable()
- @Experimental() // untriaged
- Request getAll(Object range, [int maxCount]) native;
-
- @DomName('IDBIndex.getAllKeys')
- @DocsEditable()
- @Experimental() // untriaged
- Request getAllKeys(Object range, [int maxCount]) native;
-
- @JSName('getKey')
- @DomName('IDBIndex.getKey')
- @DocsEditable()
- @Returns('Request')
- @Creates('Request')
- @annotation_Creates_SerializedScriptValue
- @Creates('ObjectStore')
- Request _getKey(Object key) native;
-
- @JSName('openCursor')
- @DomName('IDBIndex.openCursor')
- @DocsEditable()
- @Returns('Request')
- @Creates('Request')
- @Creates('Cursor')
- Request _openCursor(Object range, [String direction]) native;
-
- @JSName('openKeyCursor')
- @DomName('IDBIndex.openKeyCursor')
- @DocsEditable()
- @Returns('Request')
- @Creates('Request')
- @Creates('Cursor')
- Request _openKeyCursor(Object range, [String direction]) native;
-}
-// 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.
-
-@DomName('IDBKeyRange')
-@Unstable()
-@Native("IDBKeyRange")
-class KeyRange extends Interceptor {
- @DomName('IDBKeyRange.only')
- factory KeyRange.only(/*Key*/ value) =>
- _KeyRangeFactoryProvider.createKeyRange_only(value);
-
- @DomName('IDBKeyRange.lowerBound')
- factory KeyRange.lowerBound(/*Key*/ bound, [bool open = false]) =>
- _KeyRangeFactoryProvider.createKeyRange_lowerBound(bound, open);
-
- @DomName('IDBKeyRange.upperBound')
- factory KeyRange.upperBound(/*Key*/ bound, [bool open = false]) =>
- _KeyRangeFactoryProvider.createKeyRange_upperBound(bound, open);
-
- @DomName('KeyRange.bound')
- factory KeyRange.bound(/*Key*/ lower, /*Key*/ upper,
- [bool lowerOpen = false, bool upperOpen = false]) =>
- _KeyRangeFactoryProvider.createKeyRange_bound(
- lower, upper, lowerOpen, upperOpen);
-
- // To suppress missing implicit constructor warnings.
- factory KeyRange._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('IDBKeyRange.lower')
- @DocsEditable()
- @annotation_Creates_SerializedScriptValue
- final Object lower;
-
- @DomName('IDBKeyRange.lowerOpen')
- @DocsEditable()
- final bool lowerOpen;
-
- @DomName('IDBKeyRange.upper')
- @DocsEditable()
- @annotation_Creates_SerializedScriptValue
- final Object upper;
-
- @DomName('IDBKeyRange.upperOpen')
- @DocsEditable()
- final bool upperOpen;
-
- @JSName('bound')
- @DomName('IDBKeyRange.bound')
- @DocsEditable()
- static KeyRange bound_(Object lower, Object upper,
- [bool lowerOpen, bool upperOpen]) native;
-
- @JSName('lowerBound')
- @DomName('IDBKeyRange.lowerBound')
- @DocsEditable()
- static KeyRange lowerBound_(Object bound, [bool open]) native;
-
- @JSName('only')
- @DomName('IDBKeyRange.only')
- @DocsEditable()
- static KeyRange only_(Object value) native;
-
- @JSName('upperBound')
- @DomName('IDBKeyRange.upperBound')
- @DocsEditable()
- static KeyRange upperBound_(Object bound, [bool open]) native;
-}
-// 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.
-
-@DomName('IDBObjectStore')
-@Unstable()
-@Native("IDBObjectStore")
-class ObjectStore extends Interceptor {
- @DomName('IDBObjectStore.add')
- Future add(value, [key]) {
- try {
- var request;
- if (key != null) {
- request = _add(value, key);
- } else {
- request = _add(value);
- }
- return _completeRequest(request);
- } catch (e, stacktrace) {
- return new Future.error(e, stacktrace);
- }
- }
-
- @DomName('IDBObjectStore.clear')
- Future clear() {
- try {
- return _completeRequest(_clear());
- } catch (e, stacktrace) {
- return new Future.error(e, stacktrace);
- }
- }
-
- @DomName('IDBObjectStore.delete')
- Future delete(key_OR_keyRange) {
- try {
- return _completeRequest(_delete(key_OR_keyRange));
- } catch (e, stacktrace) {
- return new Future.error(e, stacktrace);
- }
- }
-
- @DomName('IDBObjectStore.count')
- Future<int> count([key_OR_range]) {
- try {
- var request = _count(key_OR_range);
- return _completeRequest(request);
- } catch (e, stacktrace) {
- return new Future.error(e, stacktrace);
- }
- }
-
- @DomName('IDBObjectStore.put')
- Future put(value, [key]) {
- try {
- var request;
- if (key != null) {
- request = _put(value, key);
- } else {
- request = _put(value);
- }
- return _completeRequest(request);
- } catch (e, stacktrace) {
- return new Future.error(e, stacktrace);
- }
- }
-
- @DomName('IDBObjectStore.get')
- Future getObject(key) {
- try {
- var request = _get(key);
-
- return _completeRequest(request);
- } catch (e, stacktrace) {
- return new Future.error(e, stacktrace);
- }
- }
-
- /**
- * Creates a stream of cursors over the records in this object store.
- *
- * **The stream must be manually advanced by calling [Cursor.next] after
- * each item or by specifying autoAdvance to be true.**
- *
- * var cursors = objectStore.openCursor().listen(
- * (cursor) {
- * // ...some processing with the cursor
- * cursor.next(); // advance onto the next cursor.
- * },
- * onDone: () {
- * // called when there are no more cursors.
- * print('all done!');
- * });
- *
- * Asynchronous operations which are not related to the current transaction
- * will cause the transaction to automatically be committed-- all processing
- * must be done synchronously unless they are additional async requests to
- * the current transaction.
- */
- @DomName('IDBObjectStore.openCursor')
- Stream<CursorWithValue> openCursor(
- {key, KeyRange range, String direction, bool autoAdvance}) {
- var key_OR_range = null;
- if (key != null) {
- if (range != null) {
- throw new ArgumentError('Cannot specify both key and range.');
- }
- key_OR_range = key;
- } else {
- key_OR_range = range;
- }
-
- // TODO: try/catch this and return a stream with an immediate error.
- var request;
- if (direction == null) {
- request = _openCursor(key_OR_range);
- } else {
- request = _openCursor(key_OR_range, direction);
- }
- return _cursorStreamFromResult(request, autoAdvance);
- }
-
- @DomName('IDBObjectStore.createIndex')
- Index createIndex(String name, keyPath, {bool unique, bool multiEntry}) {
- var options = {};
- if (unique != null) {
- options['unique'] = unique;
- }
- if (multiEntry != null) {
- options['multiEntry'] = multiEntry;
- }
-
- return _createIndex(name, keyPath, options);
- }
-
- // To suppress missing implicit constructor warnings.
- factory ObjectStore._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('IDBObjectStore.autoIncrement')
- @DocsEditable()
- final bool autoIncrement;
-
- @DomName('IDBObjectStore.indexNames')
- @DocsEditable()
- @Returns('DomStringList|Null')
- @Creates('DomStringList')
- final List<String> indexNames;
-
- @DomName('IDBObjectStore.keyPath')
- @DocsEditable()
- @annotation_Creates_SerializedScriptValue
- final Object keyPath;
-
- @DomName('IDBObjectStore.name')
- @DocsEditable()
- final String name;
-
- @DomName('IDBObjectStore.transaction')
- @DocsEditable()
- final Transaction transaction;
-
- @DomName('IDBObjectStore.add')
- @DocsEditable()
- @Returns('Request')
- @Creates('Request')
- @_annotation_Creates_IDBKey
- Request _add(/*any*/ value, [/*any*/ key]) {
- if (key != null) {
- var value_1 = convertDartToNative_SerializedScriptValue(value);
- var key_2 = convertDartToNative_SerializedScriptValue(key);
- return _add_1(value_1, key_2);
- }
- var value_1 = convertDartToNative_SerializedScriptValue(value);
- return _add_2(value_1);
- }
-
- @JSName('add')
- @DomName('IDBObjectStore.add')
- @DocsEditable()
- @Returns('Request')
- @Creates('Request')
- @_annotation_Creates_IDBKey
- Request _add_1(value, key) native;
- @JSName('add')
- @DomName('IDBObjectStore.add')
- @DocsEditable()
- @Returns('Request')
- @Creates('Request')
- @_annotation_Creates_IDBKey
- Request _add_2(value) native;
-
- @JSName('clear')
- @DomName('IDBObjectStore.clear')
- @DocsEditable()
- Request _clear() native;
-
- @JSName('count')
- @DomName('IDBObjectStore.count')
- @DocsEditable()
- Request _count(Object key) native;
-
- @DomName('IDBObjectStore.createIndex')
- @DocsEditable()
- Index _createIndex(String name, Object keyPath, [Map options]) {
- if (options != null) {
- var options_1 = convertDartToNative_Dictionary(options);
- return _createIndex_1(name, keyPath, options_1);
- }
- return _createIndex_2(name, keyPath);
- }
-
- @JSName('createIndex')
- @DomName('IDBObjectStore.createIndex')
- @DocsEditable()
- Index _createIndex_1(name, keyPath, options) native;
- @JSName('createIndex')
- @DomName('IDBObjectStore.createIndex')
- @DocsEditable()
- Index _createIndex_2(name, keyPath) native;
-
- @JSName('delete')
- @DomName('IDBObjectStore.delete')
- @DocsEditable()
- Request _delete(Object key) native;
-
- @DomName('IDBObjectStore.deleteIndex')
- @DocsEditable()
- void deleteIndex(String name) native;
-
- @JSName('get')
- @DomName('IDBObjectStore.get')
- @DocsEditable()
- @Returns('Request')
- @Creates('Request')
- @annotation_Creates_SerializedScriptValue
- Request _get(Object key) native;
-
- @DomName('IDBObjectStore.getAll')
- @DocsEditable()
- @Experimental() // untriaged
- Request getAll(Object range, [int maxCount]) native;
-
- @DomName('IDBObjectStore.getAllKeys')
- @DocsEditable()
- @Experimental() // untriaged
- Request getAllKeys(Object range, [int maxCount]) native;
-
- @DomName('IDBObjectStore.index')
- @DocsEditable()
- Index index(String name) native;
-
- @JSName('openCursor')
- @DomName('IDBObjectStore.openCursor')
- @DocsEditable()
- @Returns('Request')
- @Creates('Request')
- @Creates('Cursor')
- Request _openCursor(Object range, [String direction]) native;
-
- @DomName('IDBObjectStore.openKeyCursor')
- @DocsEditable()
- @Experimental() // untriaged
- Request openKeyCursor(Object range, [String direction]) native;
-
- @DomName('IDBObjectStore.put')
- @DocsEditable()
- @Returns('Request')
- @Creates('Request')
- @_annotation_Creates_IDBKey
- Request _put(/*any*/ value, [/*any*/ key]) {
- if (key != null) {
- var value_1 = convertDartToNative_SerializedScriptValue(value);
- var key_2 = convertDartToNative_SerializedScriptValue(key);
- return _put_1(value_1, key_2);
- }
- var value_1 = convertDartToNative_SerializedScriptValue(value);
- return _put_2(value_1);
- }
-
- @JSName('put')
- @DomName('IDBObjectStore.put')
- @DocsEditable()
- @Returns('Request')
- @Creates('Request')
- @_annotation_Creates_IDBKey
- Request _put_1(value, key) native;
- @JSName('put')
- @DomName('IDBObjectStore.put')
- @DocsEditable()
- @Returns('Request')
- @Creates('Request')
- @_annotation_Creates_IDBKey
- Request _put_2(value) native;
-
- /**
- * Helper for iterating over cursors in a request.
- */
- static Stream/*<T>*/ _cursorStreamFromResult/*<T extends Cursor>*/(
- Request request, bool autoAdvance) {
- // TODO: need to guarantee that the controller provides the values
- // immediately as waiting until the next tick will cause the transaction to
- // close.
- var controller = new StreamController/*<T>*/(sync: true);
-
- //TODO: Report stacktrace once issue 4061 is resolved.
- request.onError.listen(controller.addError);
-
- request.onSuccess.listen((e) {
- var cursor = _cast/*<T>*/(request.result);
- if (cursor == null) {
- controller.close();
- } else {
- controller.add(cursor);
- if (autoAdvance == true && controller.hasListener) {
- cursor.next();
- }
- }
- });
- return controller.stream;
- }
-}
-
-// ignore: STRONG_MODE_DOWN_CAST_COMPOSITE
-/*=To*/ _cast/*<To>*/(dynamic x) => x;
-// 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.
-
-@DocsEditable()
-@DomName('IDBOpenDBRequest')
-@Unstable()
-@Native("IDBOpenDBRequest,IDBVersionChangeRequest")
-class OpenDBRequest extends Request {
- // To suppress missing implicit constructor warnings.
- factory OpenDBRequest._() {
- throw new UnsupportedError("Not supported");
- }
-
- /**
- * Static factory designed to expose `blocked` events to event
- * handlers that are not necessarily instances of [OpenDBRequest].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('IDBOpenDBRequest.blockedEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> blockedEvent =
- const EventStreamProvider<Event>('blocked');
-
- /**
- * Static factory designed to expose `upgradeneeded` events to event
- * handlers that are not necessarily instances of [OpenDBRequest].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('IDBOpenDBRequest.upgradeneededEvent')
- @DocsEditable()
- static const EventStreamProvider<VersionChangeEvent> upgradeNeededEvent =
- const EventStreamProvider<VersionChangeEvent>('upgradeneeded');
-
- /// Stream of `blocked` events handled by this [OpenDBRequest].
- @DomName('IDBOpenDBRequest.onblocked')
- @DocsEditable()
- Stream<Event> get onBlocked => blockedEvent.forTarget(this);
-
- /// Stream of `upgradeneeded` events handled by this [OpenDBRequest].
- @DomName('IDBOpenDBRequest.onupgradeneeded')
- @DocsEditable()
- Stream<VersionChangeEvent> get onUpgradeNeeded =>
- upgradeNeededEvent.forTarget(this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('IDBRequest')
-@Unstable()
-@Native("IDBRequest")
-class Request extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory Request._() {
- throw new UnsupportedError("Not supported");
- }
-
- /**
- * Static factory designed to expose `error` events to event
- * handlers that are not necessarily instances of [Request].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('IDBRequest.errorEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> errorEvent =
- const EventStreamProvider<Event>('error');
-
- /**
- * Static factory designed to expose `success` events to event
- * handlers that are not necessarily instances of [Request].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('IDBRequest.successEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> successEvent =
- const EventStreamProvider<Event>('success');
-
- @DomName('IDBRequest.error')
- @DocsEditable()
- final DomException error;
-
- @DomName('IDBRequest.readyState')
- @DocsEditable()
- final String readyState;
-
- @DomName('IDBRequest.result')
- @DocsEditable()
- dynamic get result => _convertNativeToDart_IDBAny(this._get_result);
- @JSName('result')
- @DomName('IDBRequest.result')
- @DocsEditable()
- @Creates('Null')
- final dynamic _get_result;
-
- @DomName('IDBRequest.source')
- @DocsEditable()
- @Creates('Null')
- final Object source;
-
- @DomName('IDBRequest.transaction')
- @DocsEditable()
- final Transaction transaction;
-
- /// Stream of `error` events handled by this [Request].
- @DomName('IDBRequest.onerror')
- @DocsEditable()
- Stream<Event> get onError => errorEvent.forTarget(this);
-
- /// Stream of `success` events handled by this [Request].
- @DomName('IDBRequest.onsuccess')
- @DocsEditable()
- Stream<Event> get onSuccess => successEvent.forTarget(this);
-}
-// 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.
-
-@DomName('IDBTransaction')
-@Unstable()
-@Native("IDBTransaction")
-class Transaction extends EventTarget {
- /**
- * Provides a Future which will be completed once the transaction has
- * completed.
- *
- * The future will error if an error occurrs on the transaction or if the
- * transaction is aborted.
- */
- Future<Database> get completed {
- var completer = new Completer<Database>();
-
- this.onComplete.first.then((_) {
- completer.complete(db);
- });
-
- this.onError.first.then((e) {
- completer.completeError(e);
- });
-
- this.onAbort.first.then((e) {
- // Avoid completing twice if an error occurs.
- if (!completer.isCompleted) {
- completer.completeError(e);
- }
- });
-
- return completer.future;
- }
-
- // To suppress missing implicit constructor warnings.
- factory Transaction._() {
- throw new UnsupportedError("Not supported");
- }
-
- /**
- * Static factory designed to expose `abort` events to event
- * handlers that are not necessarily instances of [Transaction].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('IDBTransaction.abortEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> abortEvent =
- const EventStreamProvider<Event>('abort');
-
- /**
- * Static factory designed to expose `complete` events to event
- * handlers that are not necessarily instances of [Transaction].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('IDBTransaction.completeEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> completeEvent =
- const EventStreamProvider<Event>('complete');
-
- /**
- * Static factory designed to expose `error` events to event
- * handlers that are not necessarily instances of [Transaction].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('IDBTransaction.errorEvent')
- @DocsEditable()
- static const EventStreamProvider<Event> errorEvent =
- const EventStreamProvider<Event>('error');
-
- @DomName('IDBTransaction.db')
- @DocsEditable()
- final Database db;
-
- @DomName('IDBTransaction.error')
- @DocsEditable()
- final DomException error;
-
- @DomName('IDBTransaction.mode')
- @DocsEditable()
- final String mode;
-
- @DomName('IDBTransaction.objectStoreNames')
- @DocsEditable()
- @Experimental() // untriaged
- @Returns('DomStringList|Null')
- @Creates('DomStringList')
- final List<String> objectStoreNames;
-
- @DomName('IDBTransaction.abort')
- @DocsEditable()
- void abort() native;
-
- @DomName('IDBTransaction.objectStore')
- @DocsEditable()
- ObjectStore objectStore(String name) native;
-
- /// Stream of `abort` events handled by this [Transaction].
- @DomName('IDBTransaction.onabort')
- @DocsEditable()
- Stream<Event> get onAbort => abortEvent.forTarget(this);
-
- /// Stream of `complete` events handled by this [Transaction].
- @DomName('IDBTransaction.oncomplete')
- @DocsEditable()
- Stream<Event> get onComplete => completeEvent.forTarget(this);
-
- /// Stream of `error` events handled by this [Transaction].
- @DomName('IDBTransaction.onerror')
- @DocsEditable()
- Stream<Event> get onError => errorEvent.forTarget(this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('IDBVersionChangeEvent')
-@Unstable()
-@Native("IDBVersionChangeEvent")
-class VersionChangeEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory VersionChangeEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('IDBVersionChangeEvent.IDBVersionChangeEvent')
- @DocsEditable()
- factory VersionChangeEvent(String type, [Map eventInitDict]) {
- if (eventInitDict != null) {
- var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return VersionChangeEvent._create_1(type, eventInitDict_1);
- }
- return VersionChangeEvent._create_2(type);
- }
- static VersionChangeEvent _create_1(type, eventInitDict) => JS(
- 'VersionChangeEvent',
- 'new IDBVersionChangeEvent(#,#)',
- type,
- eventInitDict);
- static VersionChangeEvent _create_2(type) =>
- JS('VersionChangeEvent', 'new IDBVersionChangeEvent(#)', type);
-
- @DomName('IDBVersionChangeEvent.dataLoss')
- @DocsEditable()
- @Experimental() // untriaged
- final String dataLoss;
-
- @DomName('IDBVersionChangeEvent.dataLossMessage')
- @DocsEditable()
- @Experimental() // untriaged
- final String dataLossMessage;
-
- @DomName('IDBVersionChangeEvent.newVersion')
- @DocsEditable()
- @Creates('int|String|Null')
- @Returns('int|String|Null')
- final int newVersion;
-
- @DomName('IDBVersionChangeEvent.oldVersion')
- @DocsEditable()
- @Creates('int|String|Null')
- @Returns('int|String|Null')
- final int oldVersion;
-}
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/libraries.json b/pkg/dev_compiler/tool/input_sdk/lib/libraries.json
index 864cc81..1a51699 100644
--- a/pkg/dev_compiler/tool/input_sdk/lib/libraries.json
+++ b/pkg/dev_compiler/tool/input_sdk/lib/libraries.json
@@ -36,7 +36,7 @@
"uri": "../private/js_primitives.dart"
},
"_metadata": {
- "uri": "html/html_common/metadata.dart"
+ "uri": "../../../../../sdk/lib/html/html_common/metadata.dart"
},
"_native_typed_data": {
"uri": "../private/native_typed_data.dart"
@@ -82,13 +82,13 @@
"patch": "../patch/typed_data_patch.dart"
},
"html": {
- "uri": "html/dart2js/html_dart2js.dart"
+ "uri": "../../../../../sdk/lib/html/dart2js/html_dart2js.dart"
},
"html_common": {
- "uri": "html/html_common/html_common_dart2js.dart"
+ "uri": "../../../../../sdk/lib/html/html_common/html_common_dart2js.dart"
},
"indexed_db": {
- "uri": "indexed_db/dart2js/indexed_db_dart2js.dart"
+ "uri": "../../../../../sdk/lib/indexed_db/dart2js/indexed_db_dart2js.dart"
},
"js": {
"uri": "js/dart2js/js_dart2js.dart"
@@ -97,16 +97,16 @@
"uri": "js_util/dart2js/js_util_dart2js.dart"
},
"svg": {
- "uri": "svg/dart2js/svg_dart2js.dart"
+ "uri": "../../../../../sdk/lib/svg/dart2js/svg_dart2js.dart"
},
"web_audio": {
- "uri": "web_audio/dart2js/web_audio_dart2js.dart"
+ "uri": "../../../../../sdk/lib/web_audio/dart2js/web_audio_dart2js.dart"
},
"web_gl": {
- "uri": "web_gl/dart2js/web_gl_dart2js.dart"
+ "uri": "../../../../../sdk/lib/web_gl/dart2js/web_gl_dart2js.dart"
},
"web_sql": {
- "uri": "web_sql/dart2js/web_sql_dart2js.dart"
+ "uri": "../../../../../sdk/lib/web_sql/dart2js/web_sql_dart2js.dart"
}
}
}
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/svg/dart2js/svg_dart2js.dart b/pkg/dev_compiler/tool/input_sdk/lib/svg/dart2js/svg_dart2js.dart
deleted file mode 100644
index 0a0a937..0000000
--- a/pkg/dev_compiler/tool/input_sdk/lib/svg/dart2js/svg_dart2js.dart
+++ /dev/null
@@ -1,5971 +0,0 @@
-/**
- * Scalable Vector Graphics:
- * Two-dimensional vector graphics with support for events and animation.
- *
- * For details about the features and syntax of SVG, a W3C standard,
- * refer to the
- * [Scalable Vector Graphics Specification](http://www.w3.org/TR/SVG/).
- */
-library dart.dom.svg;
-
-import 'dart:async';
-import 'dart:collection';
-import 'dart:_internal';
-import 'dart:html';
-import 'dart:html_common';
-import 'dart:_js_helper' show Creates, Returns, JSName, Native;
-import 'dart:_foreign_helper' show JS;
-import 'dart:_interceptors' show Interceptor;
-// DO NOT EDIT - unless you are editing documentation as per:
-// https://code.google.com/p/dart/wiki/ContributingHTMLDocumentation
-// Auto-generated dart:svg library.
-
-// 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.
-
-class _SvgElementFactoryProvider {
- static SvgElement createSvgElement_tag(String tag) {
- final Element temp =
- document.createElementNS("http://www.w3.org/2000/svg", tag);
- return temp;
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGAElement')
-@Unstable()
-@Native("SVGAElement")
-class AElement extends GraphicsElement implements UriReference {
- // To suppress missing implicit constructor warnings.
- factory AElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGAElement.SVGAElement')
- @DocsEditable()
- factory AElement() => _SvgElementFactoryProvider.createSvgElement_tag("a");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- AElement.created() : super.created();
-
- @DomName('SVGAElement.target')
- @DocsEditable()
- final AnimatedString target;
-
- // From SVGURIReference
-
- @DomName('SVGAElement.href')
- @DocsEditable()
- final AnimatedString href;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGAngle')
-@Unstable()
-@Native("SVGAngle")
-class Angle extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory Angle._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGAngle.SVG_ANGLETYPE_DEG')
- @DocsEditable()
- static const int SVG_ANGLETYPE_DEG = 2;
-
- @DomName('SVGAngle.SVG_ANGLETYPE_GRAD')
- @DocsEditable()
- static const int SVG_ANGLETYPE_GRAD = 4;
-
- @DomName('SVGAngle.SVG_ANGLETYPE_RAD')
- @DocsEditable()
- static const int SVG_ANGLETYPE_RAD = 3;
-
- @DomName('SVGAngle.SVG_ANGLETYPE_UNKNOWN')
- @DocsEditable()
- static const int SVG_ANGLETYPE_UNKNOWN = 0;
-
- @DomName('SVGAngle.SVG_ANGLETYPE_UNSPECIFIED')
- @DocsEditable()
- static const int SVG_ANGLETYPE_UNSPECIFIED = 1;
-
- @DomName('SVGAngle.unitType')
- @DocsEditable()
- final int unitType;
-
- @DomName('SVGAngle.value')
- @DocsEditable()
- num value;
-
- @DomName('SVGAngle.valueAsString')
- @DocsEditable()
- String valueAsString;
-
- @DomName('SVGAngle.valueInSpecifiedUnits')
- @DocsEditable()
- num valueInSpecifiedUnits;
-
- @DomName('SVGAngle.convertToSpecifiedUnits')
- @DocsEditable()
- void convertToSpecifiedUnits(int unitType) native;
-
- @DomName('SVGAngle.newValueSpecifiedUnits')
- @DocsEditable()
- void newValueSpecifiedUnits(int unitType, num valueInSpecifiedUnits) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGAnimateElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGAnimateElement")
-class AnimateElement extends AnimationElement {
- // To suppress missing implicit constructor warnings.
- factory AnimateElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGAnimateElement.SVGAnimateElement')
- @DocsEditable()
- factory AnimateElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("animate");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- AnimateElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported =>
- SvgElement.isTagSupported('animate') &&
- (new SvgElement.tag('animate') is AnimateElement);
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGAnimateMotionElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGAnimateMotionElement")
-class AnimateMotionElement extends AnimationElement {
- // To suppress missing implicit constructor warnings.
- factory AnimateMotionElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGAnimateMotionElement.SVGAnimateMotionElement')
- @DocsEditable()
- factory AnimateMotionElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("animateMotion");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- AnimateMotionElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported =>
- SvgElement.isTagSupported('animateMotion') &&
- (new SvgElement.tag('animateMotion') is AnimateMotionElement);
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGAnimateTransformElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGAnimateTransformElement")
-class AnimateTransformElement extends AnimationElement {
- // To suppress missing implicit constructor warnings.
- factory AnimateTransformElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGAnimateTransformElement.SVGAnimateTransformElement')
- @DocsEditable()
- factory AnimateTransformElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("animateTransform");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- AnimateTransformElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported =>
- SvgElement.isTagSupported('animateTransform') &&
- (new SvgElement.tag('animateTransform') is AnimateTransformElement);
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGAnimatedAngle')
-@Unstable()
-@Native("SVGAnimatedAngle")
-class AnimatedAngle extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory AnimatedAngle._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGAnimatedAngle.animVal')
- @DocsEditable()
- final Angle animVal;
-
- @DomName('SVGAnimatedAngle.baseVal')
- @DocsEditable()
- final Angle baseVal;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGAnimatedBoolean')
-@Unstable()
-@Native("SVGAnimatedBoolean")
-class AnimatedBoolean extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory AnimatedBoolean._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGAnimatedBoolean.animVal')
- @DocsEditable()
- final bool animVal;
-
- @DomName('SVGAnimatedBoolean.baseVal')
- @DocsEditable()
- bool baseVal;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGAnimatedEnumeration')
-@Unstable()
-@Native("SVGAnimatedEnumeration")
-class AnimatedEnumeration extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory AnimatedEnumeration._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGAnimatedEnumeration.animVal')
- @DocsEditable()
- final int animVal;
-
- @DomName('SVGAnimatedEnumeration.baseVal')
- @DocsEditable()
- int baseVal;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGAnimatedInteger')
-@Unstable()
-@Native("SVGAnimatedInteger")
-class AnimatedInteger extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory AnimatedInteger._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGAnimatedInteger.animVal')
- @DocsEditable()
- final int animVal;
-
- @DomName('SVGAnimatedInteger.baseVal')
- @DocsEditable()
- int baseVal;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGAnimatedLength')
-@Unstable()
-@Native("SVGAnimatedLength")
-class AnimatedLength extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory AnimatedLength._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGAnimatedLength.animVal')
- @DocsEditable()
- final Length animVal;
-
- @DomName('SVGAnimatedLength.baseVal')
- @DocsEditable()
- final Length baseVal;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGAnimatedLengthList')
-@Unstable()
-@Native("SVGAnimatedLengthList")
-class AnimatedLengthList extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory AnimatedLengthList._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGAnimatedLengthList.animVal')
- @DocsEditable()
- final LengthList animVal;
-
- @DomName('SVGAnimatedLengthList.baseVal')
- @DocsEditable()
- final LengthList baseVal;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGAnimatedNumber')
-@Unstable()
-@Native("SVGAnimatedNumber")
-class AnimatedNumber extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory AnimatedNumber._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGAnimatedNumber.animVal')
- @DocsEditable()
- final double animVal;
-
- @DomName('SVGAnimatedNumber.baseVal')
- @DocsEditable()
- num baseVal;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGAnimatedNumberList')
-@Unstable()
-@Native("SVGAnimatedNumberList")
-class AnimatedNumberList extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory AnimatedNumberList._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGAnimatedNumberList.animVal')
- @DocsEditable()
- final NumberList animVal;
-
- @DomName('SVGAnimatedNumberList.baseVal')
- @DocsEditable()
- final NumberList baseVal;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGAnimatedPreserveAspectRatio')
-@Unstable()
-@Native("SVGAnimatedPreserveAspectRatio")
-class AnimatedPreserveAspectRatio extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory AnimatedPreserveAspectRatio._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGAnimatedPreserveAspectRatio.animVal')
- @DocsEditable()
- final PreserveAspectRatio animVal;
-
- @DomName('SVGAnimatedPreserveAspectRatio.baseVal')
- @DocsEditable()
- final PreserveAspectRatio baseVal;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGAnimatedRect')
-@Unstable()
-@Native("SVGAnimatedRect")
-class AnimatedRect extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory AnimatedRect._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGAnimatedRect.animVal')
- @DocsEditable()
- final Rect animVal;
-
- @DomName('SVGAnimatedRect.baseVal')
- @DocsEditable()
- final Rect baseVal;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGAnimatedString')
-@Unstable()
-@Native("SVGAnimatedString")
-class AnimatedString extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory AnimatedString._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGAnimatedString.animVal')
- @DocsEditable()
- final String animVal;
-
- @DomName('SVGAnimatedString.baseVal')
- @DocsEditable()
- String baseVal;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGAnimatedTransformList')
-@Unstable()
-@Native("SVGAnimatedTransformList")
-class AnimatedTransformList extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory AnimatedTransformList._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGAnimatedTransformList.animVal')
- @DocsEditable()
- final TransformList animVal;
-
- @DomName('SVGAnimatedTransformList.baseVal')
- @DocsEditable()
- final TransformList baseVal;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGAnimationElement')
-@Unstable()
-@Native("SVGAnimationElement")
-class AnimationElement extends SvgElement implements Tests {
- // To suppress missing implicit constructor warnings.
- factory AnimationElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGAnimationElement.SVGAnimationElement')
- @DocsEditable()
- factory AnimationElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("animation");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- AnimationElement.created() : super.created();
-
- @DomName('SVGAnimationElement.targetElement')
- @DocsEditable()
- final SvgElement targetElement;
-
- @DomName('SVGAnimationElement.beginElement')
- @DocsEditable()
- void beginElement() native;
-
- @DomName('SVGAnimationElement.beginElementAt')
- @DocsEditable()
- void beginElementAt(num offset) native;
-
- @DomName('SVGAnimationElement.endElement')
- @DocsEditable()
- void endElement() native;
-
- @DomName('SVGAnimationElement.endElementAt')
- @DocsEditable()
- void endElementAt(num offset) native;
-
- @DomName('SVGAnimationElement.getCurrentTime')
- @DocsEditable()
- double getCurrentTime() native;
-
- @DomName('SVGAnimationElement.getSimpleDuration')
- @DocsEditable()
- double getSimpleDuration() native;
-
- @DomName('SVGAnimationElement.getStartTime')
- @DocsEditable()
- double getStartTime() native;
-
- // From SVGTests
-
- @DomName('SVGAnimationElement.requiredExtensions')
- @DocsEditable()
- final StringList requiredExtensions;
-
- @DomName('SVGAnimationElement.requiredFeatures')
- @DocsEditable()
- final StringList requiredFeatures;
-
- @DomName('SVGAnimationElement.systemLanguage')
- @DocsEditable()
- final StringList systemLanguage;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGCircleElement')
-@Unstable()
-@Native("SVGCircleElement")
-class CircleElement extends GeometryElement {
- // To suppress missing implicit constructor warnings.
- factory CircleElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGCircleElement.SVGCircleElement')
- @DocsEditable()
- factory CircleElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("circle");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- CircleElement.created() : super.created();
-
- @DomName('SVGCircleElement.cx')
- @DocsEditable()
- final AnimatedLength cx;
-
- @DomName('SVGCircleElement.cy')
- @DocsEditable()
- final AnimatedLength cy;
-
- @DomName('SVGCircleElement.r')
- @DocsEditable()
- final AnimatedLength r;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGClipPathElement')
-@Unstable()
-@Native("SVGClipPathElement")
-class ClipPathElement extends GraphicsElement {
- // To suppress missing implicit constructor warnings.
- factory ClipPathElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGClipPathElement.SVGClipPathElement')
- @DocsEditable()
- factory ClipPathElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("clipPath");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- ClipPathElement.created() : super.created();
-
- @DomName('SVGClipPathElement.clipPathUnits')
- @DocsEditable()
- final AnimatedEnumeration clipPathUnits;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGDefsElement')
-@Unstable()
-@Native("SVGDefsElement")
-class DefsElement extends GraphicsElement {
- // To suppress missing implicit constructor warnings.
- factory DefsElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGDefsElement.SVGDefsElement')
- @DocsEditable()
- factory DefsElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("defs");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- DefsElement.created() : super.created();
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGDescElement')
-@Unstable()
-@Native("SVGDescElement")
-class DescElement extends SvgElement {
- // To suppress missing implicit constructor warnings.
- factory DescElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGDescElement.SVGDescElement')
- @DocsEditable()
- factory DescElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("desc");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- DescElement.created() : super.created();
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGDiscardElement')
-@Experimental() // untriaged
-@Native("SVGDiscardElement")
-class DiscardElement extends SvgElement {
- // To suppress missing implicit constructor warnings.
- factory DiscardElement._() {
- throw new UnsupportedError("Not supported");
- }
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- DiscardElement.created() : super.created();
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGEllipseElement')
-@Unstable()
-@Native("SVGEllipseElement")
-class EllipseElement extends GeometryElement {
- // To suppress missing implicit constructor warnings.
- factory EllipseElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGEllipseElement.SVGEllipseElement')
- @DocsEditable()
- factory EllipseElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("ellipse");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- EllipseElement.created() : super.created();
-
- @DomName('SVGEllipseElement.cx')
- @DocsEditable()
- final AnimatedLength cx;
-
- @DomName('SVGEllipseElement.cy')
- @DocsEditable()
- final AnimatedLength cy;
-
- @DomName('SVGEllipseElement.rx')
- @DocsEditable()
- final AnimatedLength rx;
-
- @DomName('SVGEllipseElement.ry')
- @DocsEditable()
- final AnimatedLength ry;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGFEBlendElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFEBlendElement")
-class FEBlendElement extends SvgElement
- implements FilterPrimitiveStandardAttributes {
- // To suppress missing implicit constructor warnings.
- factory FEBlendElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGFEBlendElement.SVGFEBlendElement')
- @DocsEditable()
- factory FEBlendElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("feBlend");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- FEBlendElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported =>
- SvgElement.isTagSupported('feBlend') &&
- (new SvgElement.tag('feBlend') is FEBlendElement);
-
- @DomName('SVGFEBlendElement.SVG_FEBLEND_MODE_DARKEN')
- @DocsEditable()
- static const int SVG_FEBLEND_MODE_DARKEN = 4;
-
- @DomName('SVGFEBlendElement.SVG_FEBLEND_MODE_LIGHTEN')
- @DocsEditable()
- static const int SVG_FEBLEND_MODE_LIGHTEN = 5;
-
- @DomName('SVGFEBlendElement.SVG_FEBLEND_MODE_MULTIPLY')
- @DocsEditable()
- static const int SVG_FEBLEND_MODE_MULTIPLY = 2;
-
- @DomName('SVGFEBlendElement.SVG_FEBLEND_MODE_NORMAL')
- @DocsEditable()
- static const int SVG_FEBLEND_MODE_NORMAL = 1;
-
- @DomName('SVGFEBlendElement.SVG_FEBLEND_MODE_SCREEN')
- @DocsEditable()
- static const int SVG_FEBLEND_MODE_SCREEN = 3;
-
- @DomName('SVGFEBlendElement.SVG_FEBLEND_MODE_UNKNOWN')
- @DocsEditable()
- static const int SVG_FEBLEND_MODE_UNKNOWN = 0;
-
- @DomName('SVGFEBlendElement.in1')
- @DocsEditable()
- final AnimatedString in1;
-
- @DomName('SVGFEBlendElement.in2')
- @DocsEditable()
- final AnimatedString in2;
-
- @DomName('SVGFEBlendElement.mode')
- @DocsEditable()
- final AnimatedEnumeration mode;
-
- // From SVGFilterPrimitiveStandardAttributes
-
- @DomName('SVGFEBlendElement.height')
- @DocsEditable()
- final AnimatedLength height;
-
- @DomName('SVGFEBlendElement.result')
- @DocsEditable()
- final AnimatedString result;
-
- @DomName('SVGFEBlendElement.width')
- @DocsEditable()
- final AnimatedLength width;
-
- @DomName('SVGFEBlendElement.x')
- @DocsEditable()
- final AnimatedLength x;
-
- @DomName('SVGFEBlendElement.y')
- @DocsEditable()
- final AnimatedLength y;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGFEColorMatrixElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFEColorMatrixElement")
-class FEColorMatrixElement extends SvgElement
- implements FilterPrimitiveStandardAttributes {
- // To suppress missing implicit constructor warnings.
- factory FEColorMatrixElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGFEColorMatrixElement.SVGFEColorMatrixElement')
- @DocsEditable()
- factory FEColorMatrixElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("feColorMatrix");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- FEColorMatrixElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported =>
- SvgElement.isTagSupported('feColorMatrix') &&
- (new SvgElement.tag('feColorMatrix') is FEColorMatrixElement);
-
- @DomName('SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_HUEROTATE')
- @DocsEditable()
- static const int SVG_FECOLORMATRIX_TYPE_HUEROTATE = 3;
-
- @DomName('SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA')
- @DocsEditable()
- static const int SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA = 4;
-
- @DomName('SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_MATRIX')
- @DocsEditable()
- static const int SVG_FECOLORMATRIX_TYPE_MATRIX = 1;
-
- @DomName('SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_SATURATE')
- @DocsEditable()
- static const int SVG_FECOLORMATRIX_TYPE_SATURATE = 2;
-
- @DomName('SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_UNKNOWN')
- @DocsEditable()
- static const int SVG_FECOLORMATRIX_TYPE_UNKNOWN = 0;
-
- @DomName('SVGFEColorMatrixElement.in1')
- @DocsEditable()
- final AnimatedString in1;
-
- @DomName('SVGFEColorMatrixElement.type')
- @DocsEditable()
- final AnimatedEnumeration type;
-
- @DomName('SVGFEColorMatrixElement.values')
- @DocsEditable()
- final AnimatedNumberList values;
-
- // From SVGFilterPrimitiveStandardAttributes
-
- @DomName('SVGFEColorMatrixElement.height')
- @DocsEditable()
- final AnimatedLength height;
-
- @DomName('SVGFEColorMatrixElement.result')
- @DocsEditable()
- final AnimatedString result;
-
- @DomName('SVGFEColorMatrixElement.width')
- @DocsEditable()
- final AnimatedLength width;
-
- @DomName('SVGFEColorMatrixElement.x')
- @DocsEditable()
- final AnimatedLength x;
-
- @DomName('SVGFEColorMatrixElement.y')
- @DocsEditable()
- final AnimatedLength y;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGFEComponentTransferElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFEComponentTransferElement")
-class FEComponentTransferElement extends SvgElement
- implements FilterPrimitiveStandardAttributes {
- // To suppress missing implicit constructor warnings.
- factory FEComponentTransferElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGFEComponentTransferElement.SVGFEComponentTransferElement')
- @DocsEditable()
- factory FEComponentTransferElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("feComponentTransfer");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- FEComponentTransferElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported =>
- SvgElement.isTagSupported('feComponentTransfer') &&
- (new SvgElement.tag('feComponentTransfer') is FEComponentTransferElement);
-
- @DomName('SVGFEComponentTransferElement.in1')
- @DocsEditable()
- final AnimatedString in1;
-
- // From SVGFilterPrimitiveStandardAttributes
-
- @DomName('SVGFEComponentTransferElement.height')
- @DocsEditable()
- final AnimatedLength height;
-
- @DomName('SVGFEComponentTransferElement.result')
- @DocsEditable()
- final AnimatedString result;
-
- @DomName('SVGFEComponentTransferElement.width')
- @DocsEditable()
- final AnimatedLength width;
-
- @DomName('SVGFEComponentTransferElement.x')
- @DocsEditable()
- final AnimatedLength x;
-
- @DomName('SVGFEComponentTransferElement.y')
- @DocsEditable()
- final AnimatedLength y;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGFECompositeElement')
-@Unstable()
-@Native("SVGFECompositeElement")
-class FECompositeElement extends SvgElement
- implements FilterPrimitiveStandardAttributes {
- // To suppress missing implicit constructor warnings.
- factory FECompositeElement._() {
- throw new UnsupportedError("Not supported");
- }
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- FECompositeElement.created() : super.created();
-
- @DomName('SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_ARITHMETIC')
- @DocsEditable()
- static const int SVG_FECOMPOSITE_OPERATOR_ARITHMETIC = 6;
-
- @DomName('SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_ATOP')
- @DocsEditable()
- static const int SVG_FECOMPOSITE_OPERATOR_ATOP = 4;
-
- @DomName('SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_IN')
- @DocsEditable()
- static const int SVG_FECOMPOSITE_OPERATOR_IN = 2;
-
- @DomName('SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_OUT')
- @DocsEditable()
- static const int SVG_FECOMPOSITE_OPERATOR_OUT = 3;
-
- @DomName('SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_OVER')
- @DocsEditable()
- static const int SVG_FECOMPOSITE_OPERATOR_OVER = 1;
-
- @DomName('SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_UNKNOWN')
- @DocsEditable()
- static const int SVG_FECOMPOSITE_OPERATOR_UNKNOWN = 0;
-
- @DomName('SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_XOR')
- @DocsEditable()
- static const int SVG_FECOMPOSITE_OPERATOR_XOR = 5;
-
- @DomName('SVGFECompositeElement.in1')
- @DocsEditable()
- final AnimatedString in1;
-
- @DomName('SVGFECompositeElement.in2')
- @DocsEditable()
- final AnimatedString in2;
-
- @DomName('SVGFECompositeElement.k1')
- @DocsEditable()
- final AnimatedNumber k1;
-
- @DomName('SVGFECompositeElement.k2')
- @DocsEditable()
- final AnimatedNumber k2;
-
- @DomName('SVGFECompositeElement.k3')
- @DocsEditable()
- final AnimatedNumber k3;
-
- @DomName('SVGFECompositeElement.k4')
- @DocsEditable()
- final AnimatedNumber k4;
-
- @DomName('SVGFECompositeElement.operator')
- @DocsEditable()
- final AnimatedEnumeration operator;
-
- // From SVGFilterPrimitiveStandardAttributes
-
- @DomName('SVGFECompositeElement.height')
- @DocsEditable()
- final AnimatedLength height;
-
- @DomName('SVGFECompositeElement.result')
- @DocsEditable()
- final AnimatedString result;
-
- @DomName('SVGFECompositeElement.width')
- @DocsEditable()
- final AnimatedLength width;
-
- @DomName('SVGFECompositeElement.x')
- @DocsEditable()
- final AnimatedLength x;
-
- @DomName('SVGFECompositeElement.y')
- @DocsEditable()
- final AnimatedLength y;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGFEConvolveMatrixElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFEConvolveMatrixElement")
-class FEConvolveMatrixElement extends SvgElement
- implements FilterPrimitiveStandardAttributes {
- // To suppress missing implicit constructor warnings.
- factory FEConvolveMatrixElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGFEConvolveMatrixElement.SVGFEConvolveMatrixElement')
- @DocsEditable()
- factory FEConvolveMatrixElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("feConvolveMatrix");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- FEConvolveMatrixElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported =>
- SvgElement.isTagSupported('feConvolveMatrix') &&
- (new SvgElement.tag('feConvolveMatrix') is FEConvolveMatrixElement);
-
- @DomName('SVGFEConvolveMatrixElement.SVG_EDGEMODE_DUPLICATE')
- @DocsEditable()
- static const int SVG_EDGEMODE_DUPLICATE = 1;
-
- @DomName('SVGFEConvolveMatrixElement.SVG_EDGEMODE_NONE')
- @DocsEditable()
- static const int SVG_EDGEMODE_NONE = 3;
-
- @DomName('SVGFEConvolveMatrixElement.SVG_EDGEMODE_UNKNOWN')
- @DocsEditable()
- static const int SVG_EDGEMODE_UNKNOWN = 0;
-
- @DomName('SVGFEConvolveMatrixElement.SVG_EDGEMODE_WRAP')
- @DocsEditable()
- static const int SVG_EDGEMODE_WRAP = 2;
-
- @DomName('SVGFEConvolveMatrixElement.bias')
- @DocsEditable()
- final AnimatedNumber bias;
-
- @DomName('SVGFEConvolveMatrixElement.divisor')
- @DocsEditable()
- final AnimatedNumber divisor;
-
- @DomName('SVGFEConvolveMatrixElement.edgeMode')
- @DocsEditable()
- final AnimatedEnumeration edgeMode;
-
- @DomName('SVGFEConvolveMatrixElement.in1')
- @DocsEditable()
- final AnimatedString in1;
-
- @DomName('SVGFEConvolveMatrixElement.kernelMatrix')
- @DocsEditable()
- final AnimatedNumberList kernelMatrix;
-
- @DomName('SVGFEConvolveMatrixElement.kernelUnitLengthX')
- @DocsEditable()
- final AnimatedNumber kernelUnitLengthX;
-
- @DomName('SVGFEConvolveMatrixElement.kernelUnitLengthY')
- @DocsEditable()
- final AnimatedNumber kernelUnitLengthY;
-
- @DomName('SVGFEConvolveMatrixElement.orderX')
- @DocsEditable()
- final AnimatedInteger orderX;
-
- @DomName('SVGFEConvolveMatrixElement.orderY')
- @DocsEditable()
- final AnimatedInteger orderY;
-
- @DomName('SVGFEConvolveMatrixElement.preserveAlpha')
- @DocsEditable()
- final AnimatedBoolean preserveAlpha;
-
- @DomName('SVGFEConvolveMatrixElement.targetX')
- @DocsEditable()
- final AnimatedInteger targetX;
-
- @DomName('SVGFEConvolveMatrixElement.targetY')
- @DocsEditable()
- final AnimatedInteger targetY;
-
- // From SVGFilterPrimitiveStandardAttributes
-
- @DomName('SVGFEConvolveMatrixElement.height')
- @DocsEditable()
- final AnimatedLength height;
-
- @DomName('SVGFEConvolveMatrixElement.result')
- @DocsEditable()
- final AnimatedString result;
-
- @DomName('SVGFEConvolveMatrixElement.width')
- @DocsEditable()
- final AnimatedLength width;
-
- @DomName('SVGFEConvolveMatrixElement.x')
- @DocsEditable()
- final AnimatedLength x;
-
- @DomName('SVGFEConvolveMatrixElement.y')
- @DocsEditable()
- final AnimatedLength y;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGFEDiffuseLightingElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFEDiffuseLightingElement")
-class FEDiffuseLightingElement extends SvgElement
- implements FilterPrimitiveStandardAttributes {
- // To suppress missing implicit constructor warnings.
- factory FEDiffuseLightingElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGFEDiffuseLightingElement.SVGFEDiffuseLightingElement')
- @DocsEditable()
- factory FEDiffuseLightingElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("feDiffuseLighting");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- FEDiffuseLightingElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported =>
- SvgElement.isTagSupported('feDiffuseLighting') &&
- (new SvgElement.tag('feDiffuseLighting') is FEDiffuseLightingElement);
-
- @DomName('SVGFEDiffuseLightingElement.diffuseConstant')
- @DocsEditable()
- final AnimatedNumber diffuseConstant;
-
- @DomName('SVGFEDiffuseLightingElement.in1')
- @DocsEditable()
- final AnimatedString in1;
-
- @DomName('SVGFEDiffuseLightingElement.kernelUnitLengthX')
- @DocsEditable()
- final AnimatedNumber kernelUnitLengthX;
-
- @DomName('SVGFEDiffuseLightingElement.kernelUnitLengthY')
- @DocsEditable()
- final AnimatedNumber kernelUnitLengthY;
-
- @DomName('SVGFEDiffuseLightingElement.surfaceScale')
- @DocsEditable()
- final AnimatedNumber surfaceScale;
-
- // From SVGFilterPrimitiveStandardAttributes
-
- @DomName('SVGFEDiffuseLightingElement.height')
- @DocsEditable()
- final AnimatedLength height;
-
- @DomName('SVGFEDiffuseLightingElement.result')
- @DocsEditable()
- final AnimatedString result;
-
- @DomName('SVGFEDiffuseLightingElement.width')
- @DocsEditable()
- final AnimatedLength width;
-
- @DomName('SVGFEDiffuseLightingElement.x')
- @DocsEditable()
- final AnimatedLength x;
-
- @DomName('SVGFEDiffuseLightingElement.y')
- @DocsEditable()
- final AnimatedLength y;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGFEDisplacementMapElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFEDisplacementMapElement")
-class FEDisplacementMapElement extends SvgElement
- implements FilterPrimitiveStandardAttributes {
- // To suppress missing implicit constructor warnings.
- factory FEDisplacementMapElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGFEDisplacementMapElement.SVGFEDisplacementMapElement')
- @DocsEditable()
- factory FEDisplacementMapElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("feDisplacementMap");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- FEDisplacementMapElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported =>
- SvgElement.isTagSupported('feDisplacementMap') &&
- (new SvgElement.tag('feDisplacementMap') is FEDisplacementMapElement);
-
- @DomName('SVGFEDisplacementMapElement.SVG_CHANNEL_A')
- @DocsEditable()
- static const int SVG_CHANNEL_A = 4;
-
- @DomName('SVGFEDisplacementMapElement.SVG_CHANNEL_B')
- @DocsEditable()
- static const int SVG_CHANNEL_B = 3;
-
- @DomName('SVGFEDisplacementMapElement.SVG_CHANNEL_G')
- @DocsEditable()
- static const int SVG_CHANNEL_G = 2;
-
- @DomName('SVGFEDisplacementMapElement.SVG_CHANNEL_R')
- @DocsEditable()
- static const int SVG_CHANNEL_R = 1;
-
- @DomName('SVGFEDisplacementMapElement.SVG_CHANNEL_UNKNOWN')
- @DocsEditable()
- static const int SVG_CHANNEL_UNKNOWN = 0;
-
- @DomName('SVGFEDisplacementMapElement.in1')
- @DocsEditable()
- final AnimatedString in1;
-
- @DomName('SVGFEDisplacementMapElement.in2')
- @DocsEditable()
- final AnimatedString in2;
-
- @DomName('SVGFEDisplacementMapElement.scale')
- @DocsEditable()
- final AnimatedNumber scale;
-
- @DomName('SVGFEDisplacementMapElement.xChannelSelector')
- @DocsEditable()
- final AnimatedEnumeration xChannelSelector;
-
- @DomName('SVGFEDisplacementMapElement.yChannelSelector')
- @DocsEditable()
- final AnimatedEnumeration yChannelSelector;
-
- // From SVGFilterPrimitiveStandardAttributes
-
- @DomName('SVGFEDisplacementMapElement.height')
- @DocsEditable()
- final AnimatedLength height;
-
- @DomName('SVGFEDisplacementMapElement.result')
- @DocsEditable()
- final AnimatedString result;
-
- @DomName('SVGFEDisplacementMapElement.width')
- @DocsEditable()
- final AnimatedLength width;
-
- @DomName('SVGFEDisplacementMapElement.x')
- @DocsEditable()
- final AnimatedLength x;
-
- @DomName('SVGFEDisplacementMapElement.y')
- @DocsEditable()
- final AnimatedLength y;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGFEDistantLightElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFEDistantLightElement")
-class FEDistantLightElement extends SvgElement {
- // To suppress missing implicit constructor warnings.
- factory FEDistantLightElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGFEDistantLightElement.SVGFEDistantLightElement')
- @DocsEditable()
- factory FEDistantLightElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("feDistantLight");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- FEDistantLightElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported =>
- SvgElement.isTagSupported('feDistantLight') &&
- (new SvgElement.tag('feDistantLight') is FEDistantLightElement);
-
- @DomName('SVGFEDistantLightElement.azimuth')
- @DocsEditable()
- final AnimatedNumber azimuth;
-
- @DomName('SVGFEDistantLightElement.elevation')
- @DocsEditable()
- final AnimatedNumber elevation;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGFEFloodElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFEFloodElement")
-class FEFloodElement extends SvgElement
- implements FilterPrimitiveStandardAttributes {
- // To suppress missing implicit constructor warnings.
- factory FEFloodElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGFEFloodElement.SVGFEFloodElement')
- @DocsEditable()
- factory FEFloodElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("feFlood");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- FEFloodElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported =>
- SvgElement.isTagSupported('feFlood') &&
- (new SvgElement.tag('feFlood') is FEFloodElement);
-
- // From SVGFilterPrimitiveStandardAttributes
-
- @DomName('SVGFEFloodElement.height')
- @DocsEditable()
- final AnimatedLength height;
-
- @DomName('SVGFEFloodElement.result')
- @DocsEditable()
- final AnimatedString result;
-
- @DomName('SVGFEFloodElement.width')
- @DocsEditable()
- final AnimatedLength width;
-
- @DomName('SVGFEFloodElement.x')
- @DocsEditable()
- final AnimatedLength x;
-
- @DomName('SVGFEFloodElement.y')
- @DocsEditable()
- final AnimatedLength y;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGFEFuncAElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFEFuncAElement")
-class FEFuncAElement extends _SVGComponentTransferFunctionElement {
- // To suppress missing implicit constructor warnings.
- factory FEFuncAElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGFEFuncAElement.SVGFEFuncAElement')
- @DocsEditable()
- factory FEFuncAElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("feFuncA");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- FEFuncAElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported =>
- SvgElement.isTagSupported('feFuncA') &&
- (new SvgElement.tag('feFuncA') is FEFuncAElement);
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGFEFuncBElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFEFuncBElement")
-class FEFuncBElement extends _SVGComponentTransferFunctionElement {
- // To suppress missing implicit constructor warnings.
- factory FEFuncBElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGFEFuncBElement.SVGFEFuncBElement')
- @DocsEditable()
- factory FEFuncBElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("feFuncB");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- FEFuncBElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported =>
- SvgElement.isTagSupported('feFuncB') &&
- (new SvgElement.tag('feFuncB') is FEFuncBElement);
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGFEFuncGElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFEFuncGElement")
-class FEFuncGElement extends _SVGComponentTransferFunctionElement {
- // To suppress missing implicit constructor warnings.
- factory FEFuncGElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGFEFuncGElement.SVGFEFuncGElement')
- @DocsEditable()
- factory FEFuncGElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("feFuncG");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- FEFuncGElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported =>
- SvgElement.isTagSupported('feFuncG') &&
- (new SvgElement.tag('feFuncG') is FEFuncGElement);
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGFEFuncRElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFEFuncRElement")
-class FEFuncRElement extends _SVGComponentTransferFunctionElement {
- // To suppress missing implicit constructor warnings.
- factory FEFuncRElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGFEFuncRElement.SVGFEFuncRElement')
- @DocsEditable()
- factory FEFuncRElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("feFuncR");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- FEFuncRElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported =>
- SvgElement.isTagSupported('feFuncR') &&
- (new SvgElement.tag('feFuncR') is FEFuncRElement);
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGFEGaussianBlurElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFEGaussianBlurElement")
-class FEGaussianBlurElement extends SvgElement
- implements FilterPrimitiveStandardAttributes {
- // To suppress missing implicit constructor warnings.
- factory FEGaussianBlurElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGFEGaussianBlurElement.SVGFEGaussianBlurElement')
- @DocsEditable()
- factory FEGaussianBlurElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("feGaussianBlur");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- FEGaussianBlurElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported =>
- SvgElement.isTagSupported('feGaussianBlur') &&
- (new SvgElement.tag('feGaussianBlur') is FEGaussianBlurElement);
-
- @DomName('SVGFEGaussianBlurElement.in1')
- @DocsEditable()
- final AnimatedString in1;
-
- @DomName('SVGFEGaussianBlurElement.stdDeviationX')
- @DocsEditable()
- final AnimatedNumber stdDeviationX;
-
- @DomName('SVGFEGaussianBlurElement.stdDeviationY')
- @DocsEditable()
- final AnimatedNumber stdDeviationY;
-
- @DomName('SVGFEGaussianBlurElement.setStdDeviation')
- @DocsEditable()
- void setStdDeviation(num stdDeviationX, num stdDeviationY) native;
-
- // From SVGFilterPrimitiveStandardAttributes
-
- @DomName('SVGFEGaussianBlurElement.height')
- @DocsEditable()
- final AnimatedLength height;
-
- @DomName('SVGFEGaussianBlurElement.result')
- @DocsEditable()
- final AnimatedString result;
-
- @DomName('SVGFEGaussianBlurElement.width')
- @DocsEditable()
- final AnimatedLength width;
-
- @DomName('SVGFEGaussianBlurElement.x')
- @DocsEditable()
- final AnimatedLength x;
-
- @DomName('SVGFEGaussianBlurElement.y')
- @DocsEditable()
- final AnimatedLength y;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGFEImageElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFEImageElement")
-class FEImageElement extends SvgElement
- implements FilterPrimitiveStandardAttributes, UriReference {
- // To suppress missing implicit constructor warnings.
- factory FEImageElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGFEImageElement.SVGFEImageElement')
- @DocsEditable()
- factory FEImageElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("feImage");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- FEImageElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported =>
- SvgElement.isTagSupported('feImage') &&
- (new SvgElement.tag('feImage') is FEImageElement);
-
- @DomName('SVGFEImageElement.preserveAspectRatio')
- @DocsEditable()
- final AnimatedPreserveAspectRatio preserveAspectRatio;
-
- // From SVGFilterPrimitiveStandardAttributes
-
- @DomName('SVGFEImageElement.height')
- @DocsEditable()
- final AnimatedLength height;
-
- @DomName('SVGFEImageElement.result')
- @DocsEditable()
- final AnimatedString result;
-
- @DomName('SVGFEImageElement.width')
- @DocsEditable()
- final AnimatedLength width;
-
- @DomName('SVGFEImageElement.x')
- @DocsEditable()
- final AnimatedLength x;
-
- @DomName('SVGFEImageElement.y')
- @DocsEditable()
- final AnimatedLength y;
-
- // From SVGURIReference
-
- @DomName('SVGFEImageElement.href')
- @DocsEditable()
- final AnimatedString href;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGFEMergeElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFEMergeElement")
-class FEMergeElement extends SvgElement
- implements FilterPrimitiveStandardAttributes {
- // To suppress missing implicit constructor warnings.
- factory FEMergeElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGFEMergeElement.SVGFEMergeElement')
- @DocsEditable()
- factory FEMergeElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("feMerge");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- FEMergeElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported =>
- SvgElement.isTagSupported('feMerge') &&
- (new SvgElement.tag('feMerge') is FEMergeElement);
-
- // From SVGFilterPrimitiveStandardAttributes
-
- @DomName('SVGFEMergeElement.height')
- @DocsEditable()
- final AnimatedLength height;
-
- @DomName('SVGFEMergeElement.result')
- @DocsEditable()
- final AnimatedString result;
-
- @DomName('SVGFEMergeElement.width')
- @DocsEditable()
- final AnimatedLength width;
-
- @DomName('SVGFEMergeElement.x')
- @DocsEditable()
- final AnimatedLength x;
-
- @DomName('SVGFEMergeElement.y')
- @DocsEditable()
- final AnimatedLength y;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGFEMergeNodeElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFEMergeNodeElement")
-class FEMergeNodeElement extends SvgElement {
- // To suppress missing implicit constructor warnings.
- factory FEMergeNodeElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGFEMergeNodeElement.SVGFEMergeNodeElement')
- @DocsEditable()
- factory FEMergeNodeElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("feMergeNode");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- FEMergeNodeElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported =>
- SvgElement.isTagSupported('feMergeNode') &&
- (new SvgElement.tag('feMergeNode') is FEMergeNodeElement);
-
- @DomName('SVGFEMergeNodeElement.in1')
- @DocsEditable()
- final AnimatedString in1;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGFEMorphologyElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFEMorphologyElement")
-class FEMorphologyElement extends SvgElement
- implements FilterPrimitiveStandardAttributes {
- // To suppress missing implicit constructor warnings.
- factory FEMorphologyElement._() {
- throw new UnsupportedError("Not supported");
- }
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- FEMorphologyElement.created() : super.created();
-
- @DomName('SVGFEMorphologyElement.SVG_MORPHOLOGY_OPERATOR_DILATE')
- @DocsEditable()
- static const int SVG_MORPHOLOGY_OPERATOR_DILATE = 2;
-
- @DomName('SVGFEMorphologyElement.SVG_MORPHOLOGY_OPERATOR_ERODE')
- @DocsEditable()
- static const int SVG_MORPHOLOGY_OPERATOR_ERODE = 1;
-
- @DomName('SVGFEMorphologyElement.SVG_MORPHOLOGY_OPERATOR_UNKNOWN')
- @DocsEditable()
- static const int SVG_MORPHOLOGY_OPERATOR_UNKNOWN = 0;
-
- @DomName('SVGFEMorphologyElement.in1')
- @DocsEditable()
- final AnimatedString in1;
-
- @DomName('SVGFEMorphologyElement.operator')
- @DocsEditable()
- final AnimatedEnumeration operator;
-
- @DomName('SVGFEMorphologyElement.radiusX')
- @DocsEditable()
- final AnimatedNumber radiusX;
-
- @DomName('SVGFEMorphologyElement.radiusY')
- @DocsEditable()
- final AnimatedNumber radiusY;
-
- // From SVGFilterPrimitiveStandardAttributes
-
- @DomName('SVGFEMorphologyElement.height')
- @DocsEditable()
- final AnimatedLength height;
-
- @DomName('SVGFEMorphologyElement.result')
- @DocsEditable()
- final AnimatedString result;
-
- @DomName('SVGFEMorphologyElement.width')
- @DocsEditable()
- final AnimatedLength width;
-
- @DomName('SVGFEMorphologyElement.x')
- @DocsEditable()
- final AnimatedLength x;
-
- @DomName('SVGFEMorphologyElement.y')
- @DocsEditable()
- final AnimatedLength y;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGFEOffsetElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFEOffsetElement")
-class FEOffsetElement extends SvgElement
- implements FilterPrimitiveStandardAttributes {
- // To suppress missing implicit constructor warnings.
- factory FEOffsetElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGFEOffsetElement.SVGFEOffsetElement')
- @DocsEditable()
- factory FEOffsetElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("feOffset");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- FEOffsetElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported =>
- SvgElement.isTagSupported('feOffset') &&
- (new SvgElement.tag('feOffset') is FEOffsetElement);
-
- @DomName('SVGFEOffsetElement.dx')
- @DocsEditable()
- final AnimatedNumber dx;
-
- @DomName('SVGFEOffsetElement.dy')
- @DocsEditable()
- final AnimatedNumber dy;
-
- @DomName('SVGFEOffsetElement.in1')
- @DocsEditable()
- final AnimatedString in1;
-
- // From SVGFilterPrimitiveStandardAttributes
-
- @DomName('SVGFEOffsetElement.height')
- @DocsEditable()
- final AnimatedLength height;
-
- @DomName('SVGFEOffsetElement.result')
- @DocsEditable()
- final AnimatedString result;
-
- @DomName('SVGFEOffsetElement.width')
- @DocsEditable()
- final AnimatedLength width;
-
- @DomName('SVGFEOffsetElement.x')
- @DocsEditable()
- final AnimatedLength x;
-
- @DomName('SVGFEOffsetElement.y')
- @DocsEditable()
- final AnimatedLength y;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGFEPointLightElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFEPointLightElement")
-class FEPointLightElement extends SvgElement {
- // To suppress missing implicit constructor warnings.
- factory FEPointLightElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGFEPointLightElement.SVGFEPointLightElement')
- @DocsEditable()
- factory FEPointLightElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("fePointLight");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- FEPointLightElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported =>
- SvgElement.isTagSupported('fePointLight') &&
- (new SvgElement.tag('fePointLight') is FEPointLightElement);
-
- @DomName('SVGFEPointLightElement.x')
- @DocsEditable()
- final AnimatedNumber x;
-
- @DomName('SVGFEPointLightElement.y')
- @DocsEditable()
- final AnimatedNumber y;
-
- @DomName('SVGFEPointLightElement.z')
- @DocsEditable()
- final AnimatedNumber z;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGFESpecularLightingElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFESpecularLightingElement")
-class FESpecularLightingElement extends SvgElement
- implements FilterPrimitiveStandardAttributes {
- // To suppress missing implicit constructor warnings.
- factory FESpecularLightingElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGFESpecularLightingElement.SVGFESpecularLightingElement')
- @DocsEditable()
- factory FESpecularLightingElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("feSpecularLighting");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- FESpecularLightingElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported =>
- SvgElement.isTagSupported('feSpecularLighting') &&
- (new SvgElement.tag('feSpecularLighting') is FESpecularLightingElement);
-
- @DomName('SVGFESpecularLightingElement.in1')
- @DocsEditable()
- final AnimatedString in1;
-
- @DomName('SVGFESpecularLightingElement.kernelUnitLengthX')
- @DocsEditable()
- @Experimental() // untriaged
- final AnimatedNumber kernelUnitLengthX;
-
- @DomName('SVGFESpecularLightingElement.kernelUnitLengthY')
- @DocsEditable()
- @Experimental() // untriaged
- final AnimatedNumber kernelUnitLengthY;
-
- @DomName('SVGFESpecularLightingElement.specularConstant')
- @DocsEditable()
- final AnimatedNumber specularConstant;
-
- @DomName('SVGFESpecularLightingElement.specularExponent')
- @DocsEditable()
- final AnimatedNumber specularExponent;
-
- @DomName('SVGFESpecularLightingElement.surfaceScale')
- @DocsEditable()
- final AnimatedNumber surfaceScale;
-
- // From SVGFilterPrimitiveStandardAttributes
-
- @DomName('SVGFESpecularLightingElement.height')
- @DocsEditable()
- final AnimatedLength height;
-
- @DomName('SVGFESpecularLightingElement.result')
- @DocsEditable()
- final AnimatedString result;
-
- @DomName('SVGFESpecularLightingElement.width')
- @DocsEditable()
- final AnimatedLength width;
-
- @DomName('SVGFESpecularLightingElement.x')
- @DocsEditable()
- final AnimatedLength x;
-
- @DomName('SVGFESpecularLightingElement.y')
- @DocsEditable()
- final AnimatedLength y;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGFESpotLightElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFESpotLightElement")
-class FESpotLightElement extends SvgElement {
- // To suppress missing implicit constructor warnings.
- factory FESpotLightElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGFESpotLightElement.SVGFESpotLightElement')
- @DocsEditable()
- factory FESpotLightElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("feSpotLight");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- FESpotLightElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported =>
- SvgElement.isTagSupported('feSpotLight') &&
- (new SvgElement.tag('feSpotLight') is FESpotLightElement);
-
- @DomName('SVGFESpotLightElement.limitingConeAngle')
- @DocsEditable()
- final AnimatedNumber limitingConeAngle;
-
- @DomName('SVGFESpotLightElement.pointsAtX')
- @DocsEditable()
- final AnimatedNumber pointsAtX;
-
- @DomName('SVGFESpotLightElement.pointsAtY')
- @DocsEditable()
- final AnimatedNumber pointsAtY;
-
- @DomName('SVGFESpotLightElement.pointsAtZ')
- @DocsEditable()
- final AnimatedNumber pointsAtZ;
-
- @DomName('SVGFESpotLightElement.specularExponent')
- @DocsEditable()
- final AnimatedNumber specularExponent;
-
- @DomName('SVGFESpotLightElement.x')
- @DocsEditable()
- final AnimatedNumber x;
-
- @DomName('SVGFESpotLightElement.y')
- @DocsEditable()
- final AnimatedNumber y;
-
- @DomName('SVGFESpotLightElement.z')
- @DocsEditable()
- final AnimatedNumber z;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGFETileElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFETileElement")
-class FETileElement extends SvgElement
- implements FilterPrimitiveStandardAttributes {
- // To suppress missing implicit constructor warnings.
- factory FETileElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGFETileElement.SVGFETileElement')
- @DocsEditable()
- factory FETileElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("feTile");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- FETileElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported =>
- SvgElement.isTagSupported('feTile') &&
- (new SvgElement.tag('feTile') is FETileElement);
-
- @DomName('SVGFETileElement.in1')
- @DocsEditable()
- final AnimatedString in1;
-
- // From SVGFilterPrimitiveStandardAttributes
-
- @DomName('SVGFETileElement.height')
- @DocsEditable()
- final AnimatedLength height;
-
- @DomName('SVGFETileElement.result')
- @DocsEditable()
- final AnimatedString result;
-
- @DomName('SVGFETileElement.width')
- @DocsEditable()
- final AnimatedLength width;
-
- @DomName('SVGFETileElement.x')
- @DocsEditable()
- final AnimatedLength x;
-
- @DomName('SVGFETileElement.y')
- @DocsEditable()
- final AnimatedLength y;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGFETurbulenceElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFETurbulenceElement")
-class FETurbulenceElement extends SvgElement
- implements FilterPrimitiveStandardAttributes {
- // To suppress missing implicit constructor warnings.
- factory FETurbulenceElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGFETurbulenceElement.SVGFETurbulenceElement')
- @DocsEditable()
- factory FETurbulenceElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("feTurbulence");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- FETurbulenceElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported =>
- SvgElement.isTagSupported('feTurbulence') &&
- (new SvgElement.tag('feTurbulence') is FETurbulenceElement);
-
- @DomName('SVGFETurbulenceElement.SVG_STITCHTYPE_NOSTITCH')
- @DocsEditable()
- static const int SVG_STITCHTYPE_NOSTITCH = 2;
-
- @DomName('SVGFETurbulenceElement.SVG_STITCHTYPE_STITCH')
- @DocsEditable()
- static const int SVG_STITCHTYPE_STITCH = 1;
-
- @DomName('SVGFETurbulenceElement.SVG_STITCHTYPE_UNKNOWN')
- @DocsEditable()
- static const int SVG_STITCHTYPE_UNKNOWN = 0;
-
- @DomName('SVGFETurbulenceElement.SVG_TURBULENCE_TYPE_FRACTALNOISE')
- @DocsEditable()
- static const int SVG_TURBULENCE_TYPE_FRACTALNOISE = 1;
-
- @DomName('SVGFETurbulenceElement.SVG_TURBULENCE_TYPE_TURBULENCE')
- @DocsEditable()
- static const int SVG_TURBULENCE_TYPE_TURBULENCE = 2;
-
- @DomName('SVGFETurbulenceElement.SVG_TURBULENCE_TYPE_UNKNOWN')
- @DocsEditable()
- static const int SVG_TURBULENCE_TYPE_UNKNOWN = 0;
-
- @DomName('SVGFETurbulenceElement.baseFrequencyX')
- @DocsEditable()
- final AnimatedNumber baseFrequencyX;
-
- @DomName('SVGFETurbulenceElement.baseFrequencyY')
- @DocsEditable()
- final AnimatedNumber baseFrequencyY;
-
- @DomName('SVGFETurbulenceElement.numOctaves')
- @DocsEditable()
- final AnimatedInteger numOctaves;
-
- @DomName('SVGFETurbulenceElement.seed')
- @DocsEditable()
- final AnimatedNumber seed;
-
- @DomName('SVGFETurbulenceElement.stitchTiles')
- @DocsEditable()
- final AnimatedEnumeration stitchTiles;
-
- @DomName('SVGFETurbulenceElement.type')
- @DocsEditable()
- final AnimatedEnumeration type;
-
- // From SVGFilterPrimitiveStandardAttributes
-
- @DomName('SVGFETurbulenceElement.height')
- @DocsEditable()
- final AnimatedLength height;
-
- @DomName('SVGFETurbulenceElement.result')
- @DocsEditable()
- final AnimatedString result;
-
- @DomName('SVGFETurbulenceElement.width')
- @DocsEditable()
- final AnimatedLength width;
-
- @DomName('SVGFETurbulenceElement.x')
- @DocsEditable()
- final AnimatedLength x;
-
- @DomName('SVGFETurbulenceElement.y')
- @DocsEditable()
- final AnimatedLength y;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGFilterElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.IE, '10')
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGFilterElement")
-class FilterElement extends SvgElement implements UriReference {
- // To suppress missing implicit constructor warnings.
- factory FilterElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGFilterElement.SVGFilterElement')
- @DocsEditable()
- factory FilterElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("filter");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- FilterElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported =>
- SvgElement.isTagSupported('filter') &&
- (new SvgElement.tag('filter') is FilterElement);
-
- @DomName('SVGFilterElement.filterUnits')
- @DocsEditable()
- final AnimatedEnumeration filterUnits;
-
- @DomName('SVGFilterElement.height')
- @DocsEditable()
- final AnimatedLength height;
-
- @DomName('SVGFilterElement.primitiveUnits')
- @DocsEditable()
- final AnimatedEnumeration primitiveUnits;
-
- @DomName('SVGFilterElement.width')
- @DocsEditable()
- final AnimatedLength width;
-
- @DomName('SVGFilterElement.x')
- @DocsEditable()
- final AnimatedLength x;
-
- @DomName('SVGFilterElement.y')
- @DocsEditable()
- final AnimatedLength y;
-
- // From SVGURIReference
-
- @DomName('SVGFilterElement.href')
- @DocsEditable()
- final AnimatedString href;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGFilterPrimitiveStandardAttributes')
-@Unstable()
-abstract class FilterPrimitiveStandardAttributes extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory FilterPrimitiveStandardAttributes._() {
- throw new UnsupportedError("Not supported");
- }
-
- final AnimatedLength height;
-
- final AnimatedString result;
-
- final AnimatedLength width;
-
- final AnimatedLength x;
-
- final AnimatedLength y;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGFitToViewBox')
-@Unstable()
-abstract class FitToViewBox extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory FitToViewBox._() {
- throw new UnsupportedError("Not supported");
- }
-
- final AnimatedPreserveAspectRatio preserveAspectRatio;
-
- final AnimatedRect viewBox;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGForeignObjectElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGForeignObjectElement")
-class ForeignObjectElement extends GraphicsElement {
- // To suppress missing implicit constructor warnings.
- factory ForeignObjectElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGForeignObjectElement.SVGForeignObjectElement')
- @DocsEditable()
- factory ForeignObjectElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("foreignObject");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- ForeignObjectElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported =>
- SvgElement.isTagSupported('foreignObject') &&
- (new SvgElement.tag('foreignObject') is ForeignObjectElement);
-
- @DomName('SVGForeignObjectElement.height')
- @DocsEditable()
- final AnimatedLength height;
-
- @DomName('SVGForeignObjectElement.width')
- @DocsEditable()
- final AnimatedLength width;
-
- @DomName('SVGForeignObjectElement.x')
- @DocsEditable()
- final AnimatedLength x;
-
- @DomName('SVGForeignObjectElement.y')
- @DocsEditable()
- final AnimatedLength y;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGGElement')
-@Unstable()
-@Native("SVGGElement")
-class GElement extends GraphicsElement {
- // To suppress missing implicit constructor warnings.
- factory GElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGGElement.SVGGElement')
- @DocsEditable()
- factory GElement() => _SvgElementFactoryProvider.createSvgElement_tag("g");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- GElement.created() : super.created();
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGGeometryElement')
-@Experimental() // untriaged
-@Native("SVGGeometryElement")
-class GeometryElement extends GraphicsElement {
- // To suppress missing implicit constructor warnings.
- factory GeometryElement._() {
- throw new UnsupportedError("Not supported");
- }
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- GeometryElement.created() : super.created();
-
- @DomName('SVGGeometryElement.isPointInFill')
- @DocsEditable()
- @Experimental() // untriaged
- bool isPointInFill(Point point) native;
-
- @DomName('SVGGeometryElement.isPointInStroke')
- @DocsEditable()
- @Experimental() // untriaged
- bool isPointInStroke(Point point) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGGraphicsElement')
-@Experimental() // untriaged
-@Native("SVGGraphicsElement")
-class GraphicsElement extends SvgElement implements Tests {
- // To suppress missing implicit constructor warnings.
- factory GraphicsElement._() {
- throw new UnsupportedError("Not supported");
- }
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- GraphicsElement.created() : super.created();
-
- @DomName('SVGGraphicsElement.farthestViewportElement')
- @DocsEditable()
- @Experimental() // untriaged
- final SvgElement farthestViewportElement;
-
- @DomName('SVGGraphicsElement.nearestViewportElement')
- @DocsEditable()
- @Experimental() // untriaged
- final SvgElement nearestViewportElement;
-
- @DomName('SVGGraphicsElement.transform')
- @DocsEditable()
- @Experimental() // untriaged
- final AnimatedTransformList transform;
-
- @DomName('SVGGraphicsElement.getBBox')
- @DocsEditable()
- @Experimental() // untriaged
- Rect getBBox() native;
-
- @JSName('getCTM')
- @DomName('SVGGraphicsElement.getCTM')
- @DocsEditable()
- @Experimental() // untriaged
- Matrix getCtm() native;
-
- @JSName('getScreenCTM')
- @DomName('SVGGraphicsElement.getScreenCTM')
- @DocsEditable()
- @Experimental() // untriaged
- Matrix getScreenCtm() native;
-
- // From SVGTests
-
- @DomName('SVGGraphicsElement.requiredExtensions')
- @DocsEditable()
- @Experimental() // untriaged
- final StringList requiredExtensions;
-
- @DomName('SVGGraphicsElement.requiredFeatures')
- @DocsEditable()
- @Experimental() // untriaged
- final StringList requiredFeatures;
-
- @DomName('SVGGraphicsElement.systemLanguage')
- @DocsEditable()
- @Experimental() // untriaged
- final StringList systemLanguage;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGImageElement')
-@Unstable()
-@Native("SVGImageElement")
-class ImageElement extends GraphicsElement implements UriReference {
- // To suppress missing implicit constructor warnings.
- factory ImageElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGImageElement.SVGImageElement')
- @DocsEditable()
- factory ImageElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("image");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- ImageElement.created() : super.created();
-
- @DomName('SVGImageElement.height')
- @DocsEditable()
- final AnimatedLength height;
-
- @DomName('SVGImageElement.preserveAspectRatio')
- @DocsEditable()
- final AnimatedPreserveAspectRatio preserveAspectRatio;
-
- @DomName('SVGImageElement.width')
- @DocsEditable()
- final AnimatedLength width;
-
- @DomName('SVGImageElement.x')
- @DocsEditable()
- final AnimatedLength x;
-
- @DomName('SVGImageElement.y')
- @DocsEditable()
- final AnimatedLength y;
-
- // From SVGURIReference
-
- @DomName('SVGImageElement.href')
- @DocsEditable()
- final AnimatedString href;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGLength')
-@Unstable()
-@Native("SVGLength")
-class Length extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory Length._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGLength.SVG_LENGTHTYPE_CM')
- @DocsEditable()
- static const int SVG_LENGTHTYPE_CM = 6;
-
- @DomName('SVGLength.SVG_LENGTHTYPE_EMS')
- @DocsEditable()
- static const int SVG_LENGTHTYPE_EMS = 3;
-
- @DomName('SVGLength.SVG_LENGTHTYPE_EXS')
- @DocsEditable()
- static const int SVG_LENGTHTYPE_EXS = 4;
-
- @DomName('SVGLength.SVG_LENGTHTYPE_IN')
- @DocsEditable()
- static const int SVG_LENGTHTYPE_IN = 8;
-
- @DomName('SVGLength.SVG_LENGTHTYPE_MM')
- @DocsEditable()
- static const int SVG_LENGTHTYPE_MM = 7;
-
- @DomName('SVGLength.SVG_LENGTHTYPE_NUMBER')
- @DocsEditable()
- static const int SVG_LENGTHTYPE_NUMBER = 1;
-
- @DomName('SVGLength.SVG_LENGTHTYPE_PC')
- @DocsEditable()
- static const int SVG_LENGTHTYPE_PC = 10;
-
- @DomName('SVGLength.SVG_LENGTHTYPE_PERCENTAGE')
- @DocsEditable()
- static const int SVG_LENGTHTYPE_PERCENTAGE = 2;
-
- @DomName('SVGLength.SVG_LENGTHTYPE_PT')
- @DocsEditable()
- static const int SVG_LENGTHTYPE_PT = 9;
-
- @DomName('SVGLength.SVG_LENGTHTYPE_PX')
- @DocsEditable()
- static const int SVG_LENGTHTYPE_PX = 5;
-
- @DomName('SVGLength.SVG_LENGTHTYPE_UNKNOWN')
- @DocsEditable()
- static const int SVG_LENGTHTYPE_UNKNOWN = 0;
-
- @DomName('SVGLength.unitType')
- @DocsEditable()
- final int unitType;
-
- @DomName('SVGLength.value')
- @DocsEditable()
- num value;
-
- @DomName('SVGLength.valueAsString')
- @DocsEditable()
- String valueAsString;
-
- @DomName('SVGLength.valueInSpecifiedUnits')
- @DocsEditable()
- num valueInSpecifiedUnits;
-
- @DomName('SVGLength.convertToSpecifiedUnits')
- @DocsEditable()
- void convertToSpecifiedUnits(int unitType) native;
-
- @DomName('SVGLength.newValueSpecifiedUnits')
- @DocsEditable()
- void newValueSpecifiedUnits(int unitType, num valueInSpecifiedUnits) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGLengthList')
-@Unstable()
-@Native("SVGLengthList")
-class LengthList extends Interceptor
- with ListMixin<Length>, ImmutableListMixin<Length>
- implements List<Length> {
- // To suppress missing implicit constructor warnings.
- factory LengthList._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGLengthList.length')
- @DocsEditable()
- @Experimental() // untriaged
- int get length => JS("int", "#.length", this);
-
- @DomName('SVGLengthList.numberOfItems')
- @DocsEditable()
- final int numberOfItems;
-
- Length operator [](int index) {
- if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
- throw new RangeError.index(index, this);
- return this.getItem(index);
- }
-
- void operator []=(int index, Length value) {
- throw new UnsupportedError("Cannot assign element of immutable List.");
- }
- // -- start List<Length> mixins.
- // Length is the element type.
-
- set length(int value) {
- throw new UnsupportedError("Cannot resize immutable List.");
- }
-
- Length get first {
- if (this.length > 0) {
- return JS('Length', '#[0]', this);
- }
- throw new StateError("No elements");
- }
-
- Length get last {
- int len = this.length;
- if (len > 0) {
- return JS('Length', '#[#]', this, len - 1);
- }
- throw new StateError("No elements");
- }
-
- Length get single {
- int len = this.length;
- if (len == 1) {
- return JS('Length', '#[0]', this);
- }
- if (len == 0) throw new StateError("No elements");
- throw new StateError("More than one element");
- }
-
- Length elementAt(int index) => this[index];
- // -- end List<Length> mixins.
-
- @DomName('SVGLengthList.__setter__')
- @DocsEditable()
- @Experimental() // untriaged
- void __setter__(int index, Length newItem) native;
-
- @DomName('SVGLengthList.appendItem')
- @DocsEditable()
- Length appendItem(Length newItem) native;
-
- @DomName('SVGLengthList.clear')
- @DocsEditable()
- void clear() native;
-
- @DomName('SVGLengthList.getItem')
- @DocsEditable()
- Length getItem(int index) native;
-
- @DomName('SVGLengthList.initialize')
- @DocsEditable()
- Length initialize(Length newItem) native;
-
- @DomName('SVGLengthList.insertItemBefore')
- @DocsEditable()
- Length insertItemBefore(Length newItem, int index) native;
-
- @DomName('SVGLengthList.removeItem')
- @DocsEditable()
- Length removeItem(int index) native;
-
- @DomName('SVGLengthList.replaceItem')
- @DocsEditable()
- Length replaceItem(Length newItem, int index) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGLineElement')
-@Unstable()
-@Native("SVGLineElement")
-class LineElement extends GeometryElement {
- // To suppress missing implicit constructor warnings.
- factory LineElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGLineElement.SVGLineElement')
- @DocsEditable()
- factory LineElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("line");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- LineElement.created() : super.created();
-
- @DomName('SVGLineElement.x1')
- @DocsEditable()
- final AnimatedLength x1;
-
- @DomName('SVGLineElement.x2')
- @DocsEditable()
- final AnimatedLength x2;
-
- @DomName('SVGLineElement.y1')
- @DocsEditable()
- final AnimatedLength y1;
-
- @DomName('SVGLineElement.y2')
- @DocsEditable()
- final AnimatedLength y2;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGLinearGradientElement')
-@Unstable()
-@Native("SVGLinearGradientElement")
-class LinearGradientElement extends _GradientElement {
- // To suppress missing implicit constructor warnings.
- factory LinearGradientElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGLinearGradientElement.SVGLinearGradientElement')
- @DocsEditable()
- factory LinearGradientElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("linearGradient");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- LinearGradientElement.created() : super.created();
-
- @DomName('SVGLinearGradientElement.x1')
- @DocsEditable()
- final AnimatedLength x1;
-
- @DomName('SVGLinearGradientElement.x2')
- @DocsEditable()
- final AnimatedLength x2;
-
- @DomName('SVGLinearGradientElement.y1')
- @DocsEditable()
- final AnimatedLength y1;
-
- @DomName('SVGLinearGradientElement.y2')
- @DocsEditable()
- final AnimatedLength y2;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGMarkerElement')
-@Unstable()
-@Native("SVGMarkerElement")
-class MarkerElement extends SvgElement implements FitToViewBox {
- // To suppress missing implicit constructor warnings.
- factory MarkerElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGMarkerElement.SVGMarkerElement')
- @DocsEditable()
- factory MarkerElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("marker");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- MarkerElement.created() : super.created();
-
- @DomName('SVGMarkerElement.SVG_MARKERUNITS_STROKEWIDTH')
- @DocsEditable()
- static const int SVG_MARKERUNITS_STROKEWIDTH = 2;
-
- @DomName('SVGMarkerElement.SVG_MARKERUNITS_UNKNOWN')
- @DocsEditable()
- static const int SVG_MARKERUNITS_UNKNOWN = 0;
-
- @DomName('SVGMarkerElement.SVG_MARKERUNITS_USERSPACEONUSE')
- @DocsEditable()
- static const int SVG_MARKERUNITS_USERSPACEONUSE = 1;
-
- @DomName('SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE')
- @DocsEditable()
- static const int SVG_MARKER_ORIENT_ANGLE = 2;
-
- @DomName('SVGMarkerElement.SVG_MARKER_ORIENT_AUTO')
- @DocsEditable()
- static const int SVG_MARKER_ORIENT_AUTO = 1;
-
- @DomName('SVGMarkerElement.SVG_MARKER_ORIENT_UNKNOWN')
- @DocsEditable()
- static const int SVG_MARKER_ORIENT_UNKNOWN = 0;
-
- @DomName('SVGMarkerElement.markerHeight')
- @DocsEditable()
- final AnimatedLength markerHeight;
-
- @DomName('SVGMarkerElement.markerUnits')
- @DocsEditable()
- final AnimatedEnumeration markerUnits;
-
- @DomName('SVGMarkerElement.markerWidth')
- @DocsEditable()
- final AnimatedLength markerWidth;
-
- @DomName('SVGMarkerElement.orientAngle')
- @DocsEditable()
- final AnimatedAngle orientAngle;
-
- @DomName('SVGMarkerElement.orientType')
- @DocsEditable()
- final AnimatedEnumeration orientType;
-
- @DomName('SVGMarkerElement.refX')
- @DocsEditable()
- final AnimatedLength refX;
-
- @DomName('SVGMarkerElement.refY')
- @DocsEditable()
- final AnimatedLength refY;
-
- @DomName('SVGMarkerElement.setOrientToAngle')
- @DocsEditable()
- void setOrientToAngle(Angle angle) native;
-
- @DomName('SVGMarkerElement.setOrientToAuto')
- @DocsEditable()
- void setOrientToAuto() native;
-
- // From SVGFitToViewBox
-
- @DomName('SVGMarkerElement.preserveAspectRatio')
- @DocsEditable()
- final AnimatedPreserveAspectRatio preserveAspectRatio;
-
- @DomName('SVGMarkerElement.viewBox')
- @DocsEditable()
- final AnimatedRect viewBox;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGMaskElement')
-@Unstable()
-@Native("SVGMaskElement")
-class MaskElement extends SvgElement implements Tests {
- // To suppress missing implicit constructor warnings.
- factory MaskElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGMaskElement.SVGMaskElement')
- @DocsEditable()
- factory MaskElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("mask");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- MaskElement.created() : super.created();
-
- @DomName('SVGMaskElement.height')
- @DocsEditable()
- final AnimatedLength height;
-
- @DomName('SVGMaskElement.maskContentUnits')
- @DocsEditable()
- final AnimatedEnumeration maskContentUnits;
-
- @DomName('SVGMaskElement.maskUnits')
- @DocsEditable()
- final AnimatedEnumeration maskUnits;
-
- @DomName('SVGMaskElement.width')
- @DocsEditable()
- final AnimatedLength width;
-
- @DomName('SVGMaskElement.x')
- @DocsEditable()
- final AnimatedLength x;
-
- @DomName('SVGMaskElement.y')
- @DocsEditable()
- final AnimatedLength y;
-
- // From SVGTests
-
- @DomName('SVGMaskElement.requiredExtensions')
- @DocsEditable()
- final StringList requiredExtensions;
-
- @DomName('SVGMaskElement.requiredFeatures')
- @DocsEditable()
- final StringList requiredFeatures;
-
- @DomName('SVGMaskElement.systemLanguage')
- @DocsEditable()
- final StringList systemLanguage;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGMatrix')
-@Unstable()
-@Native("SVGMatrix")
-class Matrix extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory Matrix._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGMatrix.a')
- @DocsEditable()
- num a;
-
- @DomName('SVGMatrix.b')
- @DocsEditable()
- num b;
-
- @DomName('SVGMatrix.c')
- @DocsEditable()
- num c;
-
- @DomName('SVGMatrix.d')
- @DocsEditable()
- num d;
-
- @DomName('SVGMatrix.e')
- @DocsEditable()
- num e;
-
- @DomName('SVGMatrix.f')
- @DocsEditable()
- num f;
-
- @DomName('SVGMatrix.flipX')
- @DocsEditable()
- Matrix flipX() native;
-
- @DomName('SVGMatrix.flipY')
- @DocsEditable()
- Matrix flipY() native;
-
- @DomName('SVGMatrix.inverse')
- @DocsEditable()
- Matrix inverse() native;
-
- @DomName('SVGMatrix.multiply')
- @DocsEditable()
- Matrix multiply(Matrix secondMatrix) native;
-
- @DomName('SVGMatrix.rotate')
- @DocsEditable()
- Matrix rotate(num angle) native;
-
- @DomName('SVGMatrix.rotateFromVector')
- @DocsEditable()
- Matrix rotateFromVector(num x, num y) native;
-
- @DomName('SVGMatrix.scale')
- @DocsEditable()
- Matrix scale(num scaleFactor) native;
-
- @DomName('SVGMatrix.scaleNonUniform')
- @DocsEditable()
- Matrix scaleNonUniform(num scaleFactorX, num scaleFactorY) native;
-
- @DomName('SVGMatrix.skewX')
- @DocsEditable()
- Matrix skewX(num angle) native;
-
- @DomName('SVGMatrix.skewY')
- @DocsEditable()
- Matrix skewY(num angle) native;
-
- @DomName('SVGMatrix.translate')
- @DocsEditable()
- Matrix translate(num x, num y) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGMetadataElement')
-@Unstable()
-@Native("SVGMetadataElement")
-class MetadataElement extends SvgElement {
- // To suppress missing implicit constructor warnings.
- factory MetadataElement._() {
- throw new UnsupportedError("Not supported");
- }
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- MetadataElement.created() : super.created();
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGNumber')
-@Unstable()
-@Native("SVGNumber")
-class Number extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory Number._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGNumber.value')
- @DocsEditable()
- num value;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGNumberList')
-@Unstable()
-@Native("SVGNumberList")
-class NumberList extends Interceptor
- with ListMixin<Number>, ImmutableListMixin<Number>
- implements List<Number> {
- // To suppress missing implicit constructor warnings.
- factory NumberList._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGNumberList.length')
- @DocsEditable()
- @Experimental() // untriaged
- int get length => JS("int", "#.length", this);
-
- @DomName('SVGNumberList.numberOfItems')
- @DocsEditable()
- final int numberOfItems;
-
- Number operator [](int index) {
- if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
- throw new RangeError.index(index, this);
- return this.getItem(index);
- }
-
- void operator []=(int index, Number value) {
- throw new UnsupportedError("Cannot assign element of immutable List.");
- }
- // -- start List<Number> mixins.
- // Number is the element type.
-
- set length(int value) {
- throw new UnsupportedError("Cannot resize immutable List.");
- }
-
- Number get first {
- if (this.length > 0) {
- return JS('Number', '#[0]', this);
- }
- throw new StateError("No elements");
- }
-
- Number get last {
- int len = this.length;
- if (len > 0) {
- return JS('Number', '#[#]', this, len - 1);
- }
- throw new StateError("No elements");
- }
-
- Number get single {
- int len = this.length;
- if (len == 1) {
- return JS('Number', '#[0]', this);
- }
- if (len == 0) throw new StateError("No elements");
- throw new StateError("More than one element");
- }
-
- Number elementAt(int index) => this[index];
- // -- end List<Number> mixins.
-
- @DomName('SVGNumberList.__setter__')
- @DocsEditable()
- @Experimental() // untriaged
- void __setter__(int index, Number newItem) native;
-
- @DomName('SVGNumberList.appendItem')
- @DocsEditable()
- Number appendItem(Number newItem) native;
-
- @DomName('SVGNumberList.clear')
- @DocsEditable()
- void clear() native;
-
- @DomName('SVGNumberList.getItem')
- @DocsEditable()
- Number getItem(int index) native;
-
- @DomName('SVGNumberList.initialize')
- @DocsEditable()
- Number initialize(Number newItem) native;
-
- @DomName('SVGNumberList.insertItemBefore')
- @DocsEditable()
- Number insertItemBefore(Number newItem, int index) native;
-
- @DomName('SVGNumberList.removeItem')
- @DocsEditable()
- Number removeItem(int index) native;
-
- @DomName('SVGNumberList.replaceItem')
- @DocsEditable()
- Number replaceItem(Number newItem, int index) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGPathElement')
-@Unstable()
-@Native("SVGPathElement")
-class PathElement extends GeometryElement {
- // To suppress missing implicit constructor warnings.
- factory PathElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGPathElement.SVGPathElement')
- @DocsEditable()
- factory PathElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("path");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- PathElement.created() : super.created();
-
- @DomName('SVGPathElement.pathLength')
- @DocsEditable()
- final AnimatedNumber pathLength;
-
- @DomName('SVGPathElement.getPathSegAtLength')
- @DocsEditable()
- int getPathSegAtLength(num distance) native;
-
- @DomName('SVGPathElement.getPointAtLength')
- @DocsEditable()
- Point getPointAtLength(num distance) native;
-
- @DomName('SVGPathElement.getTotalLength')
- @DocsEditable()
- double getTotalLength() native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGPatternElement')
-@Unstable()
-@Native("SVGPatternElement")
-class PatternElement extends SvgElement
- implements FitToViewBox, UriReference, Tests {
- // To suppress missing implicit constructor warnings.
- factory PatternElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGPatternElement.SVGPatternElement')
- @DocsEditable()
- factory PatternElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("pattern");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- PatternElement.created() : super.created();
-
- @DomName('SVGPatternElement.height')
- @DocsEditable()
- final AnimatedLength height;
-
- @DomName('SVGPatternElement.patternContentUnits')
- @DocsEditable()
- final AnimatedEnumeration patternContentUnits;
-
- @DomName('SVGPatternElement.patternTransform')
- @DocsEditable()
- final AnimatedTransformList patternTransform;
-
- @DomName('SVGPatternElement.patternUnits')
- @DocsEditable()
- final AnimatedEnumeration patternUnits;
-
- @DomName('SVGPatternElement.width')
- @DocsEditable()
- final AnimatedLength width;
-
- @DomName('SVGPatternElement.x')
- @DocsEditable()
- final AnimatedLength x;
-
- @DomName('SVGPatternElement.y')
- @DocsEditable()
- final AnimatedLength y;
-
- // From SVGFitToViewBox
-
- @DomName('SVGPatternElement.preserveAspectRatio')
- @DocsEditable()
- final AnimatedPreserveAspectRatio preserveAspectRatio;
-
- @DomName('SVGPatternElement.viewBox')
- @DocsEditable()
- final AnimatedRect viewBox;
-
- // From SVGTests
-
- @DomName('SVGPatternElement.requiredExtensions')
- @DocsEditable()
- final StringList requiredExtensions;
-
- @DomName('SVGPatternElement.requiredFeatures')
- @DocsEditable()
- final StringList requiredFeatures;
-
- @DomName('SVGPatternElement.systemLanguage')
- @DocsEditable()
- final StringList systemLanguage;
-
- // From SVGURIReference
-
- @DomName('SVGPatternElement.href')
- @DocsEditable()
- final AnimatedString href;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGPoint')
-@Unstable()
-@Native("SVGPoint")
-class Point extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory Point._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGPoint.x')
- @DocsEditable()
- num x;
-
- @DomName('SVGPoint.y')
- @DocsEditable()
- num y;
-
- @DomName('SVGPoint.matrixTransform')
- @DocsEditable()
- Point matrixTransform(Matrix matrix) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGPointList')
-@Unstable()
-@Native("SVGPointList")
-class PointList extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory PointList._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGPointList.length')
- @DocsEditable()
- @Experimental() // untriaged
- final int length;
-
- @DomName('SVGPointList.numberOfItems')
- @DocsEditable()
- final int numberOfItems;
-
- @DomName('SVGPointList.__setter__')
- @DocsEditable()
- @Experimental() // untriaged
- void __setter__(int index, Point newItem) native;
-
- @DomName('SVGPointList.appendItem')
- @DocsEditable()
- Point appendItem(Point newItem) native;
-
- @DomName('SVGPointList.clear')
- @DocsEditable()
- void clear() native;
-
- @DomName('SVGPointList.getItem')
- @DocsEditable()
- Point getItem(int index) native;
-
- @DomName('SVGPointList.initialize')
- @DocsEditable()
- Point initialize(Point newItem) native;
-
- @DomName('SVGPointList.insertItemBefore')
- @DocsEditable()
- Point insertItemBefore(Point newItem, int index) native;
-
- @DomName('SVGPointList.removeItem')
- @DocsEditable()
- Point removeItem(int index) native;
-
- @DomName('SVGPointList.replaceItem')
- @DocsEditable()
- Point replaceItem(Point newItem, int index) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGPolygonElement')
-@Unstable()
-@Native("SVGPolygonElement")
-class PolygonElement extends GeometryElement {
- // To suppress missing implicit constructor warnings.
- factory PolygonElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGPolygonElement.SVGPolygonElement')
- @DocsEditable()
- factory PolygonElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("polygon");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- PolygonElement.created() : super.created();
-
- @DomName('SVGPolygonElement.animatedPoints')
- @DocsEditable()
- final PointList animatedPoints;
-
- @DomName('SVGPolygonElement.points')
- @DocsEditable()
- final PointList points;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGPolylineElement')
-@Unstable()
-@Native("SVGPolylineElement")
-class PolylineElement extends GeometryElement {
- // To suppress missing implicit constructor warnings.
- factory PolylineElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGPolylineElement.SVGPolylineElement')
- @DocsEditable()
- factory PolylineElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("polyline");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- PolylineElement.created() : super.created();
-
- @DomName('SVGPolylineElement.animatedPoints')
- @DocsEditable()
- final PointList animatedPoints;
-
- @DomName('SVGPolylineElement.points')
- @DocsEditable()
- final PointList points;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGPreserveAspectRatio')
-@Unstable()
-@Native("SVGPreserveAspectRatio")
-class PreserveAspectRatio extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory PreserveAspectRatio._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGPreserveAspectRatio.SVG_MEETORSLICE_MEET')
- @DocsEditable()
- static const int SVG_MEETORSLICE_MEET = 1;
-
- @DomName('SVGPreserveAspectRatio.SVG_MEETORSLICE_SLICE')
- @DocsEditable()
- static const int SVG_MEETORSLICE_SLICE = 2;
-
- @DomName('SVGPreserveAspectRatio.SVG_MEETORSLICE_UNKNOWN')
- @DocsEditable()
- static const int SVG_MEETORSLICE_UNKNOWN = 0;
-
- @DomName('SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_NONE')
- @DocsEditable()
- static const int SVG_PRESERVEASPECTRATIO_NONE = 1;
-
- @DomName('SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_UNKNOWN')
- @DocsEditable()
- static const int SVG_PRESERVEASPECTRATIO_UNKNOWN = 0;
-
- @DomName('SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMAXYMAX')
- @DocsEditable()
- static const int SVG_PRESERVEASPECTRATIO_XMAXYMAX = 10;
-
- @DomName('SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMAXYMID')
- @DocsEditable()
- static const int SVG_PRESERVEASPECTRATIO_XMAXYMID = 7;
-
- @DomName('SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMAXYMIN')
- @DocsEditable()
- static const int SVG_PRESERVEASPECTRATIO_XMAXYMIN = 4;
-
- @DomName('SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMIDYMAX')
- @DocsEditable()
- static const int SVG_PRESERVEASPECTRATIO_XMIDYMAX = 9;
-
- @DomName('SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMIDYMID')
- @DocsEditable()
- static const int SVG_PRESERVEASPECTRATIO_XMIDYMID = 6;
-
- @DomName('SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMIDYMIN')
- @DocsEditable()
- static const int SVG_PRESERVEASPECTRATIO_XMIDYMIN = 3;
-
- @DomName('SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMINYMAX')
- @DocsEditable()
- static const int SVG_PRESERVEASPECTRATIO_XMINYMAX = 8;
-
- @DomName('SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMINYMID')
- @DocsEditable()
- static const int SVG_PRESERVEASPECTRATIO_XMINYMID = 5;
-
- @DomName('SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMINYMIN')
- @DocsEditable()
- static const int SVG_PRESERVEASPECTRATIO_XMINYMIN = 2;
-
- @DomName('SVGPreserveAspectRatio.align')
- @DocsEditable()
- int align;
-
- @DomName('SVGPreserveAspectRatio.meetOrSlice')
- @DocsEditable()
- int meetOrSlice;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGRadialGradientElement')
-@Unstable()
-@Native("SVGRadialGradientElement")
-class RadialGradientElement extends _GradientElement {
- // To suppress missing implicit constructor warnings.
- factory RadialGradientElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGRadialGradientElement.SVGRadialGradientElement')
- @DocsEditable()
- factory RadialGradientElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("radialGradient");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- RadialGradientElement.created() : super.created();
-
- @DomName('SVGRadialGradientElement.cx')
- @DocsEditable()
- final AnimatedLength cx;
-
- @DomName('SVGRadialGradientElement.cy')
- @DocsEditable()
- final AnimatedLength cy;
-
- @DomName('SVGRadialGradientElement.fr')
- @DocsEditable()
- final AnimatedLength fr;
-
- @DomName('SVGRadialGradientElement.fx')
- @DocsEditable()
- final AnimatedLength fx;
-
- @DomName('SVGRadialGradientElement.fy')
- @DocsEditable()
- final AnimatedLength fy;
-
- @DomName('SVGRadialGradientElement.r')
- @DocsEditable()
- final AnimatedLength r;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGRect')
-@Unstable()
-@Native("SVGRect")
-class Rect extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory Rect._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGRect.height')
- @DocsEditable()
- num height;
-
- @DomName('SVGRect.width')
- @DocsEditable()
- num width;
-
- @DomName('SVGRect.x')
- @DocsEditable()
- num x;
-
- @DomName('SVGRect.y')
- @DocsEditable()
- num y;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGRectElement')
-@Unstable()
-@Native("SVGRectElement")
-class RectElement extends GeometryElement {
- // To suppress missing implicit constructor warnings.
- factory RectElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGRectElement.SVGRectElement')
- @DocsEditable()
- factory RectElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("rect");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- RectElement.created() : super.created();
-
- @DomName('SVGRectElement.height')
- @DocsEditable()
- final AnimatedLength height;
-
- @DomName('SVGRectElement.rx')
- @DocsEditable()
- final AnimatedLength rx;
-
- @DomName('SVGRectElement.ry')
- @DocsEditable()
- final AnimatedLength ry;
-
- @DomName('SVGRectElement.width')
- @DocsEditable()
- final AnimatedLength width;
-
- @DomName('SVGRectElement.x')
- @DocsEditable()
- final AnimatedLength x;
-
- @DomName('SVGRectElement.y')
- @DocsEditable()
- final AnimatedLength y;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGScriptElement')
-@Unstable()
-@Native("SVGScriptElement")
-class ScriptElement extends SvgElement implements UriReference {
- // To suppress missing implicit constructor warnings.
- factory ScriptElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGScriptElement.SVGScriptElement')
- @DocsEditable()
- factory ScriptElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("script");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- ScriptElement.created() : super.created();
-
- @DomName('SVGScriptElement.type')
- @DocsEditable()
- String type;
-
- // From SVGURIReference
-
- @DomName('SVGScriptElement.href')
- @DocsEditable()
- final AnimatedString href;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGSetElement')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Unstable()
-@Native("SVGSetElement")
-class SetElement extends AnimationElement {
- // To suppress missing implicit constructor warnings.
- factory SetElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGSetElement.SVGSetElement')
- @DocsEditable()
- factory SetElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("set");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- SetElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported =>
- SvgElement.isTagSupported('set') &&
- (new SvgElement.tag('set') is SetElement);
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGStopElement')
-@Unstable()
-@Native("SVGStopElement")
-class StopElement extends SvgElement {
- // To suppress missing implicit constructor warnings.
- factory StopElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGStopElement.SVGStopElement')
- @DocsEditable()
- factory StopElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("stop");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- StopElement.created() : super.created();
-
- @JSName('offset')
- @DomName('SVGStopElement.offset')
- @DocsEditable()
- final AnimatedNumber gradientOffset;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGStringList')
-@Unstable()
-@Native("SVGStringList")
-class StringList extends Interceptor
- with ListMixin<String>, ImmutableListMixin<String>
- implements List<String> {
- // To suppress missing implicit constructor warnings.
- factory StringList._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGStringList.length')
- @DocsEditable()
- @Experimental() // untriaged
- int get length => JS("int", "#.length", this);
-
- @DomName('SVGStringList.numberOfItems')
- @DocsEditable()
- final int numberOfItems;
-
- String operator [](int index) {
- if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
- throw new RangeError.index(index, this);
- return this.getItem(index);
- }
-
- void operator []=(int index, String value) {
- throw new UnsupportedError("Cannot assign element of immutable List.");
- }
- // -- start List<String> mixins.
- // String is the element type.
-
- set length(int value) {
- throw new UnsupportedError("Cannot resize immutable List.");
- }
-
- String get first {
- if (this.length > 0) {
- return JS('String', '#[0]', this);
- }
- throw new StateError("No elements");
- }
-
- String get last {
- int len = this.length;
- if (len > 0) {
- return JS('String', '#[#]', this, len - 1);
- }
- throw new StateError("No elements");
- }
-
- String get single {
- int len = this.length;
- if (len == 1) {
- return JS('String', '#[0]', this);
- }
- if (len == 0) throw new StateError("No elements");
- throw new StateError("More than one element");
- }
-
- String elementAt(int index) => this[index];
- // -- end List<String> mixins.
-
- @DomName('SVGStringList.__setter__')
- @DocsEditable()
- @Experimental() // untriaged
- void __setter__(int index, String newItem) native;
-
- @DomName('SVGStringList.appendItem')
- @DocsEditable()
- String appendItem(String newItem) native;
-
- @DomName('SVGStringList.clear')
- @DocsEditable()
- void clear() native;
-
- @DomName('SVGStringList.getItem')
- @DocsEditable()
- String getItem(int index) native;
-
- @DomName('SVGStringList.initialize')
- @DocsEditable()
- String initialize(String newItem) native;
-
- @DomName('SVGStringList.insertItemBefore')
- @DocsEditable()
- String insertItemBefore(String item, int index) native;
-
- @DomName('SVGStringList.removeItem')
- @DocsEditable()
- String removeItem(int index) native;
-
- @DomName('SVGStringList.replaceItem')
- @DocsEditable()
- String replaceItem(String newItem, int index) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGStyleElement')
-// http://www.w3.org/TR/SVG/types.html#InterfaceSVGStylable
-@Experimental() // nonstandard
-@Native("SVGStyleElement")
-class StyleElement extends SvgElement {
- // To suppress missing implicit constructor warnings.
- factory StyleElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGStyleElement.SVGStyleElement')
- @DocsEditable()
- factory StyleElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("style");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- StyleElement.created() : super.created();
-
- @DomName('SVGStyleElement.disabled')
- @DocsEditable()
- bool disabled;
-
- @DomName('SVGStyleElement.media')
- @DocsEditable()
- String media;
-
- @DomName('SVGStyleElement.sheet')
- @DocsEditable()
- @Experimental() // untriaged
- final StyleSheet sheet;
-
- // Use implementation from Element.
- // final String title;
-
- @DomName('SVGStyleElement.type')
- @DocsEditable()
- String type;
-}
-// Copyright (c) 2011, 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.
-
-class AttributeClassSet extends CssClassSetImpl {
- final Element _element;
-
- AttributeClassSet(this._element);
-
- Set<String> readClasses() {
- var classname = _element.attributes['class'];
- if (classname is AnimatedString) {
- classname = (classname as AnimatedString).baseVal;
- }
-
- Set<String> s = new LinkedHashSet<String>();
- if (classname == null) {
- return s;
- }
- for (String name in classname.split(' ')) {
- String trimmed = name.trim();
- if (!trimmed.isEmpty) {
- s.add(trimmed);
- }
- }
- return s;
- }
-
- void writeClasses(Set s) {
- _element.setAttribute('class', s.join(' '));
- }
-}
-
-@DomName('SVGElement')
-@Unstable()
-@Native("SVGElement")
-class SvgElement extends Element implements GlobalEventHandlers {
- static final _START_TAG_REGEXP = new RegExp('<(\\w+)');
-
- factory SvgElement.tag(String tag) =>
- document.createElementNS("http://www.w3.org/2000/svg", tag);
- factory SvgElement.svg(String svg,
- {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {
- if (validator == null && treeSanitizer == null) {
- validator = new NodeValidatorBuilder.common()..allowSvg();
- }
-
- final match = _START_TAG_REGEXP.firstMatch(svg);
- var parentElement;
- if (match != null && match.group(1).toLowerCase() == 'svg') {
- parentElement = document.body;
- } else {
- parentElement = new SvgSvgElement();
- }
- var fragment = parentElement.createFragment(svg,
- validator: validator, treeSanitizer: treeSanitizer);
- return fragment.nodes.where((e) => e is SvgElement).single;
- }
-
- CssClassSet get classes => new AttributeClassSet(this);
-
- List<Element> get children => new FilteredElementList(this);
-
- set children(List<Element> value) {
- final children = this.children;
- children.clear();
- children.addAll(value);
- }
-
- String get outerHtml {
- final container = new DivElement();
- final SvgElement cloned = this.clone(true);
- container.children.add(cloned);
- return container.innerHtml;
- }
-
- String get innerHtml {
- final container = new DivElement();
- final SvgElement cloned = this.clone(true);
- container.children.addAll(cloned.children);
- return container.innerHtml;
- }
-
- set innerHtml(String value) {
- this.setInnerHtml(value);
- }
-
- DocumentFragment createFragment(String svg,
- {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {
- if (treeSanitizer == null) {
- if (validator == null) {
- validator = new NodeValidatorBuilder.common()..allowSvg();
- }
- treeSanitizer = new NodeTreeSanitizer(validator);
- }
-
- // We create a fragment which will parse in the HTML parser
- var html = '<svg version="1.1">$svg</svg>';
- var fragment =
- document.body.createFragment(html, treeSanitizer: treeSanitizer);
-
- var svgFragment = new DocumentFragment();
- // The root is the <svg/> element, need to pull out the contents.
- var root = fragment.nodes.single;
- while (root.firstChild != null) {
- svgFragment.append(root.firstChild);
- }
- return svgFragment;
- }
-
- // Unsupported methods inherited from Element.
-
- @DomName('Element.insertAdjacentText')
- void insertAdjacentText(String where, String text) {
- throw new UnsupportedError("Cannot invoke insertAdjacentText on SVG.");
- }
-
- @DomName('Element.insertAdjacentHTML')
- void insertAdjacentHtml(String where, String text,
- {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {
- throw new UnsupportedError("Cannot invoke insertAdjacentHtml on SVG.");
- }
-
- @DomName('Element.insertAdjacentElement')
- Element insertAdjacentElement(String where, Element element) {
- throw new UnsupportedError("Cannot invoke insertAdjacentElement on SVG.");
- }
-
- HtmlCollection get _children {
- throw new UnsupportedError("Cannot get _children on SVG.");
- }
-
- bool get isContentEditable => false;
- void click() {
- throw new UnsupportedError("Cannot invoke click SVG.");
- }
-
- /**
- * Checks to see if the SVG element type is supported by the current platform.
- *
- * The tag should be a valid SVG element tag name.
- */
- static bool isTagSupported(String tag) {
- var e = new SvgElement.tag(tag);
- return e is SvgElement && !(e is UnknownElement);
- }
-
- // To suppress missing implicit constructor warnings.
- factory SvgElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGElement.abortEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> abortEvent =
- const EventStreamProvider<Event>('abort');
-
- @DomName('SVGElement.blurEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> blurEvent =
- const EventStreamProvider<Event>('blur');
-
- @DomName('SVGElement.canplayEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> canPlayEvent =
- const EventStreamProvider<Event>('canplay');
-
- @DomName('SVGElement.canplaythroughEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> canPlayThroughEvent =
- const EventStreamProvider<Event>('canplaythrough');
-
- @DomName('SVGElement.changeEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> changeEvent =
- const EventStreamProvider<Event>('change');
-
- @DomName('SVGElement.clickEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MouseEvent> clickEvent =
- const EventStreamProvider<MouseEvent>('click');
-
- @DomName('SVGElement.contextmenuEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MouseEvent> contextMenuEvent =
- const EventStreamProvider<MouseEvent>('contextmenu');
-
- @DomName('SVGElement.dblclickEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> doubleClickEvent =
- const EventStreamProvider<Event>('dblclick');
-
- @DomName('SVGElement.dragEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MouseEvent> dragEvent =
- const EventStreamProvider<MouseEvent>('drag');
-
- @DomName('SVGElement.dragendEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MouseEvent> dragEndEvent =
- const EventStreamProvider<MouseEvent>('dragend');
-
- @DomName('SVGElement.dragenterEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MouseEvent> dragEnterEvent =
- const EventStreamProvider<MouseEvent>('dragenter');
-
- @DomName('SVGElement.dragleaveEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MouseEvent> dragLeaveEvent =
- const EventStreamProvider<MouseEvent>('dragleave');
-
- @DomName('SVGElement.dragoverEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MouseEvent> dragOverEvent =
- const EventStreamProvider<MouseEvent>('dragover');
-
- @DomName('SVGElement.dragstartEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MouseEvent> dragStartEvent =
- const EventStreamProvider<MouseEvent>('dragstart');
-
- @DomName('SVGElement.dropEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MouseEvent> dropEvent =
- const EventStreamProvider<MouseEvent>('drop');
-
- @DomName('SVGElement.durationchangeEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> durationChangeEvent =
- const EventStreamProvider<Event>('durationchange');
-
- @DomName('SVGElement.emptiedEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> emptiedEvent =
- const EventStreamProvider<Event>('emptied');
-
- @DomName('SVGElement.endedEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> endedEvent =
- const EventStreamProvider<Event>('ended');
-
- @DomName('SVGElement.errorEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> errorEvent =
- const EventStreamProvider<Event>('error');
-
- @DomName('SVGElement.focusEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> focusEvent =
- const EventStreamProvider<Event>('focus');
-
- @DomName('SVGElement.inputEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> inputEvent =
- const EventStreamProvider<Event>('input');
-
- @DomName('SVGElement.invalidEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> invalidEvent =
- const EventStreamProvider<Event>('invalid');
-
- @DomName('SVGElement.keydownEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<KeyboardEvent> keyDownEvent =
- const EventStreamProvider<KeyboardEvent>('keydown');
-
- @DomName('SVGElement.keypressEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<KeyboardEvent> keyPressEvent =
- const EventStreamProvider<KeyboardEvent>('keypress');
-
- @DomName('SVGElement.keyupEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<KeyboardEvent> keyUpEvent =
- const EventStreamProvider<KeyboardEvent>('keyup');
-
- @DomName('SVGElement.loadEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> loadEvent =
- const EventStreamProvider<Event>('load');
-
- @DomName('SVGElement.loadeddataEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> loadedDataEvent =
- const EventStreamProvider<Event>('loadeddata');
-
- @DomName('SVGElement.loadedmetadataEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> loadedMetadataEvent =
- const EventStreamProvider<Event>('loadedmetadata');
-
- @DomName('SVGElement.mousedownEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MouseEvent> mouseDownEvent =
- const EventStreamProvider<MouseEvent>('mousedown');
-
- @DomName('SVGElement.mouseenterEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MouseEvent> mouseEnterEvent =
- const EventStreamProvider<MouseEvent>('mouseenter');
-
- @DomName('SVGElement.mouseleaveEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MouseEvent> mouseLeaveEvent =
- const EventStreamProvider<MouseEvent>('mouseleave');
-
- @DomName('SVGElement.mousemoveEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MouseEvent> mouseMoveEvent =
- const EventStreamProvider<MouseEvent>('mousemove');
-
- @DomName('SVGElement.mouseoutEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MouseEvent> mouseOutEvent =
- const EventStreamProvider<MouseEvent>('mouseout');
-
- @DomName('SVGElement.mouseoverEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MouseEvent> mouseOverEvent =
- const EventStreamProvider<MouseEvent>('mouseover');
-
- @DomName('SVGElement.mouseupEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<MouseEvent> mouseUpEvent =
- const EventStreamProvider<MouseEvent>('mouseup');
-
- @DomName('SVGElement.mousewheelEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<WheelEvent> mouseWheelEvent =
- const EventStreamProvider<WheelEvent>('mousewheel');
-
- @DomName('SVGElement.pauseEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> pauseEvent =
- const EventStreamProvider<Event>('pause');
-
- @DomName('SVGElement.playEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> playEvent =
- const EventStreamProvider<Event>('play');
-
- @DomName('SVGElement.playingEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> playingEvent =
- const EventStreamProvider<Event>('playing');
-
- @DomName('SVGElement.ratechangeEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> rateChangeEvent =
- const EventStreamProvider<Event>('ratechange');
-
- @DomName('SVGElement.resetEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> resetEvent =
- const EventStreamProvider<Event>('reset');
-
- @DomName('SVGElement.resizeEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> resizeEvent =
- const EventStreamProvider<Event>('resize');
-
- @DomName('SVGElement.scrollEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> scrollEvent =
- const EventStreamProvider<Event>('scroll');
-
- @DomName('SVGElement.seekedEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> seekedEvent =
- const EventStreamProvider<Event>('seeked');
-
- @DomName('SVGElement.seekingEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> seekingEvent =
- const EventStreamProvider<Event>('seeking');
-
- @DomName('SVGElement.selectEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> selectEvent =
- const EventStreamProvider<Event>('select');
-
- @DomName('SVGElement.stalledEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> stalledEvent =
- const EventStreamProvider<Event>('stalled');
-
- @DomName('SVGElement.submitEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> submitEvent =
- const EventStreamProvider<Event>('submit');
-
- @DomName('SVGElement.suspendEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> suspendEvent =
- const EventStreamProvider<Event>('suspend');
-
- @DomName('SVGElement.timeupdateEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> timeUpdateEvent =
- const EventStreamProvider<Event>('timeupdate');
-
- @DomName('SVGElement.touchcancelEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<TouchEvent> touchCancelEvent =
- const EventStreamProvider<TouchEvent>('touchcancel');
-
- @DomName('SVGElement.touchendEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<TouchEvent> touchEndEvent =
- const EventStreamProvider<TouchEvent>('touchend');
-
- @DomName('SVGElement.touchmoveEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<TouchEvent> touchMoveEvent =
- const EventStreamProvider<TouchEvent>('touchmove');
-
- @DomName('SVGElement.touchstartEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<TouchEvent> touchStartEvent =
- const EventStreamProvider<TouchEvent>('touchstart');
-
- @DomName('SVGElement.volumechangeEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> volumeChangeEvent =
- const EventStreamProvider<Event>('volumechange');
-
- @DomName('SVGElement.waitingEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> waitingEvent =
- const EventStreamProvider<Event>('waiting');
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- SvgElement.created() : super.created();
-
- // Shadowing definition.
- AnimatedString get _svgClassName => JS("AnimatedString", "#.className", this);
-
- @JSName('ownerSVGElement')
- @DomName('SVGElement.ownerSVGElement')
- @DocsEditable()
- final SvgSvgElement ownerSvgElement;
-
- // Use implementation from Element.
- // final CssStyleDeclaration style;
-
- // Use implementation from Element.
- // final int tabIndex;
-
- @DomName('SVGElement.viewportElement')
- @DocsEditable()
- final SvgElement viewportElement;
-
- @DomName('SVGElement.blur')
- @DocsEditable()
- @Experimental() // untriaged
- void blur() native;
-
- @DomName('SVGElement.focus')
- @DocsEditable()
- @Experimental() // untriaged
- void focus() native;
-
- @DomName('SVGElement.onabort')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onAbort => abortEvent.forElement(this);
-
- @DomName('SVGElement.onblur')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onBlur => blurEvent.forElement(this);
-
- @DomName('SVGElement.oncanplay')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onCanPlay => canPlayEvent.forElement(this);
-
- @DomName('SVGElement.oncanplaythrough')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onCanPlayThrough =>
- canPlayThroughEvent.forElement(this);
-
- @DomName('SVGElement.onchange')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onChange => changeEvent.forElement(this);
-
- @DomName('SVGElement.onclick')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<MouseEvent> get onClick => clickEvent.forElement(this);
-
- @DomName('SVGElement.oncontextmenu')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<MouseEvent> get onContextMenu =>
- contextMenuEvent.forElement(this);
-
- @DomName('SVGElement.ondblclick')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onDoubleClick => doubleClickEvent.forElement(this);
-
- @DomName('SVGElement.ondrag')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<MouseEvent> get onDrag => dragEvent.forElement(this);
-
- @DomName('SVGElement.ondragend')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<MouseEvent> get onDragEnd => dragEndEvent.forElement(this);
-
- @DomName('SVGElement.ondragenter')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<MouseEvent> get onDragEnter => dragEnterEvent.forElement(this);
-
- @DomName('SVGElement.ondragleave')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<MouseEvent> get onDragLeave => dragLeaveEvent.forElement(this);
-
- @DomName('SVGElement.ondragover')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<MouseEvent> get onDragOver => dragOverEvent.forElement(this);
-
- @DomName('SVGElement.ondragstart')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<MouseEvent> get onDragStart => dragStartEvent.forElement(this);
-
- @DomName('SVGElement.ondrop')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<MouseEvent> get onDrop => dropEvent.forElement(this);
-
- @DomName('SVGElement.ondurationchange')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onDurationChange =>
- durationChangeEvent.forElement(this);
-
- @DomName('SVGElement.onemptied')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onEmptied => emptiedEvent.forElement(this);
-
- @DomName('SVGElement.onended')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onEnded => endedEvent.forElement(this);
-
- @DomName('SVGElement.onerror')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onError => errorEvent.forElement(this);
-
- @DomName('SVGElement.onfocus')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onFocus => focusEvent.forElement(this);
-
- @DomName('SVGElement.oninput')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onInput => inputEvent.forElement(this);
-
- @DomName('SVGElement.oninvalid')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onInvalid => invalidEvent.forElement(this);
-
- @DomName('SVGElement.onkeydown')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<KeyboardEvent> get onKeyDown => keyDownEvent.forElement(this);
-
- @DomName('SVGElement.onkeypress')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<KeyboardEvent> get onKeyPress => keyPressEvent.forElement(this);
-
- @DomName('SVGElement.onkeyup')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<KeyboardEvent> get onKeyUp => keyUpEvent.forElement(this);
-
- @DomName('SVGElement.onload')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onLoad => loadEvent.forElement(this);
-
- @DomName('SVGElement.onloadeddata')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onLoadedData => loadedDataEvent.forElement(this);
-
- @DomName('SVGElement.onloadedmetadata')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onLoadedMetadata =>
- loadedMetadataEvent.forElement(this);
-
- @DomName('SVGElement.onmousedown')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<MouseEvent> get onMouseDown => mouseDownEvent.forElement(this);
-
- @DomName('SVGElement.onmouseenter')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<MouseEvent> get onMouseEnter =>
- mouseEnterEvent.forElement(this);
-
- @DomName('SVGElement.onmouseleave')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<MouseEvent> get onMouseLeave =>
- mouseLeaveEvent.forElement(this);
-
- @DomName('SVGElement.onmousemove')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<MouseEvent> get onMouseMove => mouseMoveEvent.forElement(this);
-
- @DomName('SVGElement.onmouseout')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<MouseEvent> get onMouseOut => mouseOutEvent.forElement(this);
-
- @DomName('SVGElement.onmouseover')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<MouseEvent> get onMouseOver => mouseOverEvent.forElement(this);
-
- @DomName('SVGElement.onmouseup')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<MouseEvent> get onMouseUp => mouseUpEvent.forElement(this);
-
- @DomName('SVGElement.onmousewheel')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<WheelEvent> get onMouseWheel =>
- mouseWheelEvent.forElement(this);
-
- @DomName('SVGElement.onpause')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onPause => pauseEvent.forElement(this);
-
- @DomName('SVGElement.onplay')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onPlay => playEvent.forElement(this);
-
- @DomName('SVGElement.onplaying')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onPlaying => playingEvent.forElement(this);
-
- @DomName('SVGElement.onratechange')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onRateChange => rateChangeEvent.forElement(this);
-
- @DomName('SVGElement.onreset')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onReset => resetEvent.forElement(this);
-
- @DomName('SVGElement.onresize')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onResize => resizeEvent.forElement(this);
-
- @DomName('SVGElement.onscroll')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onScroll => scrollEvent.forElement(this);
-
- @DomName('SVGElement.onseeked')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onSeeked => seekedEvent.forElement(this);
-
- @DomName('SVGElement.onseeking')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onSeeking => seekingEvent.forElement(this);
-
- @DomName('SVGElement.onselect')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onSelect => selectEvent.forElement(this);
-
- @DomName('SVGElement.onstalled')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onStalled => stalledEvent.forElement(this);
-
- @DomName('SVGElement.onsubmit')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onSubmit => submitEvent.forElement(this);
-
- @DomName('SVGElement.onsuspend')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onSuspend => suspendEvent.forElement(this);
-
- @DomName('SVGElement.ontimeupdate')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onTimeUpdate => timeUpdateEvent.forElement(this);
-
- @DomName('SVGElement.ontouchcancel')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<TouchEvent> get onTouchCancel =>
- touchCancelEvent.forElement(this);
-
- @DomName('SVGElement.ontouchend')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<TouchEvent> get onTouchEnd => touchEndEvent.forElement(this);
-
- @DomName('SVGElement.ontouchmove')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<TouchEvent> get onTouchMove => touchMoveEvent.forElement(this);
-
- @DomName('SVGElement.ontouchstart')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<TouchEvent> get onTouchStart =>
- touchStartEvent.forElement(this);
-
- @DomName('SVGElement.onvolumechange')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onVolumeChange => volumeChangeEvent.forElement(this);
-
- @DomName('SVGElement.onwaiting')
- @DocsEditable()
- @Experimental() // untriaged
- ElementStream<Event> get onWaiting => waitingEvent.forElement(this);
-}
-// 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.
-
-@DomName('SVGSVGElement')
-@Unstable()
-@Native("SVGSVGElement")
-class SvgSvgElement extends GraphicsElement
- implements FitToViewBox, ZoomAndPan {
- factory SvgSvgElement() {
- final el = new SvgElement.tag("svg");
- // The SVG spec requires the version attribute to match the spec version
- el.attributes['version'] = "1.1";
- return el;
- }
-
- // To suppress missing implicit constructor warnings.
- factory SvgSvgElement._() {
- throw new UnsupportedError("Not supported");
- }
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- SvgSvgElement.created() : super.created();
-
- @DomName('SVGSVGElement.currentScale')
- @DocsEditable()
- num currentScale;
-
- @DomName('SVGSVGElement.currentTranslate')
- @DocsEditable()
- final Point currentTranslate;
-
- @DomName('SVGSVGElement.currentView')
- @DocsEditable()
- final ViewSpec currentView;
-
- @DomName('SVGSVGElement.height')
- @DocsEditable()
- final AnimatedLength height;
-
- @DomName('SVGSVGElement.useCurrentView')
- @DocsEditable()
- final bool useCurrentView;
-
- @DomName('SVGSVGElement.viewport')
- @DocsEditable()
- final Rect viewport;
-
- @DomName('SVGSVGElement.width')
- @DocsEditable()
- final AnimatedLength width;
-
- @DomName('SVGSVGElement.x')
- @DocsEditable()
- final AnimatedLength x;
-
- @DomName('SVGSVGElement.y')
- @DocsEditable()
- final AnimatedLength y;
-
- @DomName('SVGSVGElement.animationsPaused')
- @DocsEditable()
- bool animationsPaused() native;
-
- @DomName('SVGSVGElement.checkEnclosure')
- @DocsEditable()
- bool checkEnclosure(SvgElement element, Rect rect) native;
-
- @DomName('SVGSVGElement.checkIntersection')
- @DocsEditable()
- bool checkIntersection(SvgElement element, Rect rect) native;
-
- @JSName('createSVGAngle')
- @DomName('SVGSVGElement.createSVGAngle')
- @DocsEditable()
- Angle createSvgAngle() native;
-
- @JSName('createSVGLength')
- @DomName('SVGSVGElement.createSVGLength')
- @DocsEditable()
- Length createSvgLength() native;
-
- @JSName('createSVGMatrix')
- @DomName('SVGSVGElement.createSVGMatrix')
- @DocsEditable()
- Matrix createSvgMatrix() native;
-
- @JSName('createSVGNumber')
- @DomName('SVGSVGElement.createSVGNumber')
- @DocsEditable()
- Number createSvgNumber() native;
-
- @JSName('createSVGPoint')
- @DomName('SVGSVGElement.createSVGPoint')
- @DocsEditable()
- Point createSvgPoint() native;
-
- @JSName('createSVGRect')
- @DomName('SVGSVGElement.createSVGRect')
- @DocsEditable()
- Rect createSvgRect() native;
-
- @JSName('createSVGTransform')
- @DomName('SVGSVGElement.createSVGTransform')
- @DocsEditable()
- Transform createSvgTransform() native;
-
- @JSName('createSVGTransformFromMatrix')
- @DomName('SVGSVGElement.createSVGTransformFromMatrix')
- @DocsEditable()
- Transform createSvgTransformFromMatrix(Matrix matrix) native;
-
- @DomName('SVGSVGElement.deselectAll')
- @DocsEditable()
- void deselectAll() native;
-
- @DomName('SVGSVGElement.forceRedraw')
- @DocsEditable()
- void forceRedraw() native;
-
- @DomName('SVGSVGElement.getCurrentTime')
- @DocsEditable()
- double getCurrentTime() native;
-
- @DomName('SVGSVGElement.getElementById')
- @DocsEditable()
- Element getElementById(String elementId) native;
-
- @DomName('SVGSVGElement.getEnclosureList')
- @DocsEditable()
- @Returns('NodeList|Null')
- @Creates('NodeList')
- List<Node> getEnclosureList(Rect rect, SvgElement referenceElement) native;
-
- @DomName('SVGSVGElement.getIntersectionList')
- @DocsEditable()
- @Returns('NodeList|Null')
- @Creates('NodeList')
- List<Node> getIntersectionList(Rect rect, SvgElement referenceElement) native;
-
- @DomName('SVGSVGElement.pauseAnimations')
- @DocsEditable()
- void pauseAnimations() native;
-
- @DomName('SVGSVGElement.setCurrentTime')
- @DocsEditable()
- void setCurrentTime(num seconds) native;
-
- @DomName('SVGSVGElement.suspendRedraw')
- @DocsEditable()
- int suspendRedraw(int maxWaitMilliseconds) native;
-
- @DomName('SVGSVGElement.unpauseAnimations')
- @DocsEditable()
- void unpauseAnimations() native;
-
- @DomName('SVGSVGElement.unsuspendRedraw')
- @DocsEditable()
- void unsuspendRedraw(int suspendHandleId) native;
-
- @DomName('SVGSVGElement.unsuspendRedrawAll')
- @DocsEditable()
- void unsuspendRedrawAll() native;
-
- // From SVGFitToViewBox
-
- @DomName('SVGSVGElement.preserveAspectRatio')
- @DocsEditable()
- final AnimatedPreserveAspectRatio preserveAspectRatio;
-
- @DomName('SVGSVGElement.viewBox')
- @DocsEditable()
- final AnimatedRect viewBox;
-
- // From SVGZoomAndPan
-
- @DomName('SVGSVGElement.zoomAndPan')
- @DocsEditable()
- int zoomAndPan;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGSwitchElement')
-@Unstable()
-@Native("SVGSwitchElement")
-class SwitchElement extends GraphicsElement {
- // To suppress missing implicit constructor warnings.
- factory SwitchElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGSwitchElement.SVGSwitchElement')
- @DocsEditable()
- factory SwitchElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("switch");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- SwitchElement.created() : super.created();
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGSymbolElement')
-@Unstable()
-@Native("SVGSymbolElement")
-class SymbolElement extends SvgElement implements FitToViewBox {
- // To suppress missing implicit constructor warnings.
- factory SymbolElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGSymbolElement.SVGSymbolElement')
- @DocsEditable()
- factory SymbolElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("symbol");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- SymbolElement.created() : super.created();
-
- // From SVGFitToViewBox
-
- @DomName('SVGSymbolElement.preserveAspectRatio')
- @DocsEditable()
- final AnimatedPreserveAspectRatio preserveAspectRatio;
-
- @DomName('SVGSymbolElement.viewBox')
- @DocsEditable()
- final AnimatedRect viewBox;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGTSpanElement')
-@Unstable()
-@Native("SVGTSpanElement")
-class TSpanElement extends TextPositioningElement {
- // To suppress missing implicit constructor warnings.
- factory TSpanElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGTSpanElement.SVGTSpanElement')
- @DocsEditable()
- factory TSpanElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("tspan");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- TSpanElement.created() : super.created();
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGTests')
-@Unstable()
-abstract class Tests extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory Tests._() {
- throw new UnsupportedError("Not supported");
- }
-
- final StringList requiredExtensions;
-
- final StringList requiredFeatures;
-
- final StringList systemLanguage;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGTextContentElement')
-@Unstable()
-@Native("SVGTextContentElement")
-class TextContentElement extends GraphicsElement {
- // To suppress missing implicit constructor warnings.
- factory TextContentElement._() {
- throw new UnsupportedError("Not supported");
- }
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- TextContentElement.created() : super.created();
-
- @DomName('SVGTextContentElement.LENGTHADJUST_SPACING')
- @DocsEditable()
- static const int LENGTHADJUST_SPACING = 1;
-
- @DomName('SVGTextContentElement.LENGTHADJUST_SPACINGANDGLYPHS')
- @DocsEditable()
- static const int LENGTHADJUST_SPACINGANDGLYPHS = 2;
-
- @DomName('SVGTextContentElement.LENGTHADJUST_UNKNOWN')
- @DocsEditable()
- static const int LENGTHADJUST_UNKNOWN = 0;
-
- @DomName('SVGTextContentElement.lengthAdjust')
- @DocsEditable()
- final AnimatedEnumeration lengthAdjust;
-
- @DomName('SVGTextContentElement.textLength')
- @DocsEditable()
- final AnimatedLength textLength;
-
- @DomName('SVGTextContentElement.getCharNumAtPosition')
- @DocsEditable()
- int getCharNumAtPosition(Point point) native;
-
- @DomName('SVGTextContentElement.getComputedTextLength')
- @DocsEditable()
- double getComputedTextLength() native;
-
- @DomName('SVGTextContentElement.getEndPositionOfChar')
- @DocsEditable()
- Point getEndPositionOfChar(int charnum) native;
-
- @DomName('SVGTextContentElement.getExtentOfChar')
- @DocsEditable()
- Rect getExtentOfChar(int charnum) native;
-
- @DomName('SVGTextContentElement.getNumberOfChars')
- @DocsEditable()
- int getNumberOfChars() native;
-
- @DomName('SVGTextContentElement.getRotationOfChar')
- @DocsEditable()
- double getRotationOfChar(int charnum) native;
-
- @DomName('SVGTextContentElement.getStartPositionOfChar')
- @DocsEditable()
- Point getStartPositionOfChar(int charnum) native;
-
- @DomName('SVGTextContentElement.getSubStringLength')
- @DocsEditable()
- double getSubStringLength(int charnum, int nchars) native;
-
- @DomName('SVGTextContentElement.selectSubString')
- @DocsEditable()
- void selectSubString(int charnum, int nchars) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGTextElement')
-@Unstable()
-@Native("SVGTextElement")
-class TextElement extends TextPositioningElement {
- // To suppress missing implicit constructor warnings.
- factory TextElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGTextElement.SVGTextElement')
- @DocsEditable()
- factory TextElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("text");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- TextElement.created() : super.created();
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGTextPathElement')
-@Unstable()
-@Native("SVGTextPathElement")
-class TextPathElement extends TextContentElement implements UriReference {
- // To suppress missing implicit constructor warnings.
- factory TextPathElement._() {
- throw new UnsupportedError("Not supported");
- }
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- TextPathElement.created() : super.created();
-
- @DomName('SVGTextPathElement.TEXTPATH_METHODTYPE_ALIGN')
- @DocsEditable()
- static const int TEXTPATH_METHODTYPE_ALIGN = 1;
-
- @DomName('SVGTextPathElement.TEXTPATH_METHODTYPE_STRETCH')
- @DocsEditable()
- static const int TEXTPATH_METHODTYPE_STRETCH = 2;
-
- @DomName('SVGTextPathElement.TEXTPATH_METHODTYPE_UNKNOWN')
- @DocsEditable()
- static const int TEXTPATH_METHODTYPE_UNKNOWN = 0;
-
- @DomName('SVGTextPathElement.TEXTPATH_SPACINGTYPE_AUTO')
- @DocsEditable()
- static const int TEXTPATH_SPACINGTYPE_AUTO = 1;
-
- @DomName('SVGTextPathElement.TEXTPATH_SPACINGTYPE_EXACT')
- @DocsEditable()
- static const int TEXTPATH_SPACINGTYPE_EXACT = 2;
-
- @DomName('SVGTextPathElement.TEXTPATH_SPACINGTYPE_UNKNOWN')
- @DocsEditable()
- static const int TEXTPATH_SPACINGTYPE_UNKNOWN = 0;
-
- @DomName('SVGTextPathElement.method')
- @DocsEditable()
- final AnimatedEnumeration method;
-
- @DomName('SVGTextPathElement.spacing')
- @DocsEditable()
- final AnimatedEnumeration spacing;
-
- @DomName('SVGTextPathElement.startOffset')
- @DocsEditable()
- final AnimatedLength startOffset;
-
- // From SVGURIReference
-
- @DomName('SVGTextPathElement.href')
- @DocsEditable()
- final AnimatedString href;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGTextPositioningElement')
-@Unstable()
-@Native("SVGTextPositioningElement")
-class TextPositioningElement extends TextContentElement {
- // To suppress missing implicit constructor warnings.
- factory TextPositioningElement._() {
- throw new UnsupportedError("Not supported");
- }
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- TextPositioningElement.created() : super.created();
-
- @DomName('SVGTextPositioningElement.dx')
- @DocsEditable()
- final AnimatedLengthList dx;
-
- @DomName('SVGTextPositioningElement.dy')
- @DocsEditable()
- final AnimatedLengthList dy;
-
- @DomName('SVGTextPositioningElement.rotate')
- @DocsEditable()
- final AnimatedNumberList rotate;
-
- @DomName('SVGTextPositioningElement.x')
- @DocsEditable()
- final AnimatedLengthList x;
-
- @DomName('SVGTextPositioningElement.y')
- @DocsEditable()
- final AnimatedLengthList y;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGTitleElement')
-@Unstable()
-@Native("SVGTitleElement")
-class TitleElement extends SvgElement {
- // To suppress missing implicit constructor warnings.
- factory TitleElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGTitleElement.SVGTitleElement')
- @DocsEditable()
- factory TitleElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("title");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- TitleElement.created() : super.created();
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGTransform')
-@Unstable()
-@Native("SVGTransform")
-class Transform extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory Transform._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGTransform.SVG_TRANSFORM_MATRIX')
- @DocsEditable()
- static const int SVG_TRANSFORM_MATRIX = 1;
-
- @DomName('SVGTransform.SVG_TRANSFORM_ROTATE')
- @DocsEditable()
- static const int SVG_TRANSFORM_ROTATE = 4;
-
- @DomName('SVGTransform.SVG_TRANSFORM_SCALE')
- @DocsEditable()
- static const int SVG_TRANSFORM_SCALE = 3;
-
- @DomName('SVGTransform.SVG_TRANSFORM_SKEWX')
- @DocsEditable()
- static const int SVG_TRANSFORM_SKEWX = 5;
-
- @DomName('SVGTransform.SVG_TRANSFORM_SKEWY')
- @DocsEditable()
- static const int SVG_TRANSFORM_SKEWY = 6;
-
- @DomName('SVGTransform.SVG_TRANSFORM_TRANSLATE')
- @DocsEditable()
- static const int SVG_TRANSFORM_TRANSLATE = 2;
-
- @DomName('SVGTransform.SVG_TRANSFORM_UNKNOWN')
- @DocsEditable()
- static const int SVG_TRANSFORM_UNKNOWN = 0;
-
- @DomName('SVGTransform.angle')
- @DocsEditable()
- final double angle;
-
- @DomName('SVGTransform.matrix')
- @DocsEditable()
- final Matrix matrix;
-
- @DomName('SVGTransform.type')
- @DocsEditable()
- final int type;
-
- @DomName('SVGTransform.setMatrix')
- @DocsEditable()
- void setMatrix(Matrix matrix) native;
-
- @DomName('SVGTransform.setRotate')
- @DocsEditable()
- void setRotate(num angle, num cx, num cy) native;
-
- @DomName('SVGTransform.setScale')
- @DocsEditable()
- void setScale(num sx, num sy) native;
-
- @DomName('SVGTransform.setSkewX')
- @DocsEditable()
- void setSkewX(num angle) native;
-
- @DomName('SVGTransform.setSkewY')
- @DocsEditable()
- void setSkewY(num angle) native;
-
- @DomName('SVGTransform.setTranslate')
- @DocsEditable()
- void setTranslate(num tx, num ty) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGTransformList')
-@Unstable()
-@Native("SVGTransformList")
-class TransformList extends Interceptor
- with ListMixin<Transform>, ImmutableListMixin<Transform>
- implements List<Transform> {
- // To suppress missing implicit constructor warnings.
- factory TransformList._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGTransformList.length')
- @DocsEditable()
- @Experimental() // untriaged
- int get length => JS("int", "#.length", this);
-
- @DomName('SVGTransformList.numberOfItems')
- @DocsEditable()
- final int numberOfItems;
-
- Transform operator [](int index) {
- if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
- throw new RangeError.index(index, this);
- return this.getItem(index);
- }
-
- void operator []=(int index, Transform value) {
- throw new UnsupportedError("Cannot assign element of immutable List.");
- }
- // -- start List<Transform> mixins.
- // Transform is the element type.
-
- set length(int value) {
- throw new UnsupportedError("Cannot resize immutable List.");
- }
-
- Transform get first {
- if (this.length > 0) {
- return JS('Transform', '#[0]', this);
- }
- throw new StateError("No elements");
- }
-
- Transform get last {
- int len = this.length;
- if (len > 0) {
- return JS('Transform', '#[#]', this, len - 1);
- }
- throw new StateError("No elements");
- }
-
- Transform get single {
- int len = this.length;
- if (len == 1) {
- return JS('Transform', '#[0]', this);
- }
- if (len == 0) throw new StateError("No elements");
- throw new StateError("More than one element");
- }
-
- Transform elementAt(int index) => this[index];
- // -- end List<Transform> mixins.
-
- @DomName('SVGTransformList.__setter__')
- @DocsEditable()
- @Experimental() // untriaged
- void __setter__(int index, Transform newItem) native;
-
- @DomName('SVGTransformList.appendItem')
- @DocsEditable()
- Transform appendItem(Transform newItem) native;
-
- @DomName('SVGTransformList.clear')
- @DocsEditable()
- void clear() native;
-
- @DomName('SVGTransformList.consolidate')
- @DocsEditable()
- Transform consolidate() native;
-
- @JSName('createSVGTransformFromMatrix')
- @DomName('SVGTransformList.createSVGTransformFromMatrix')
- @DocsEditable()
- Transform createSvgTransformFromMatrix(Matrix matrix) native;
-
- @DomName('SVGTransformList.getItem')
- @DocsEditable()
- Transform getItem(int index) native;
-
- @DomName('SVGTransformList.initialize')
- @DocsEditable()
- Transform initialize(Transform newItem) native;
-
- @DomName('SVGTransformList.insertItemBefore')
- @DocsEditable()
- Transform insertItemBefore(Transform newItem, int index) native;
-
- @DomName('SVGTransformList.removeItem')
- @DocsEditable()
- Transform removeItem(int index) native;
-
- @DomName('SVGTransformList.replaceItem')
- @DocsEditable()
- Transform replaceItem(Transform newItem, int index) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGUnitTypes')
-@Unstable()
-@Native("SVGUnitTypes")
-class UnitTypes extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory UnitTypes._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX')
- @DocsEditable()
- static const int SVG_UNIT_TYPE_OBJECTBOUNDINGBOX = 2;
-
- @DomName('SVGUnitTypes.SVG_UNIT_TYPE_UNKNOWN')
- @DocsEditable()
- static const int SVG_UNIT_TYPE_UNKNOWN = 0;
-
- @DomName('SVGUnitTypes.SVG_UNIT_TYPE_USERSPACEONUSE')
- @DocsEditable()
- static const int SVG_UNIT_TYPE_USERSPACEONUSE = 1;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGURIReference')
-@Unstable()
-abstract class UriReference extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory UriReference._() {
- throw new UnsupportedError("Not supported");
- }
-
- final AnimatedString href;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGUseElement')
-@Unstable()
-@Native("SVGUseElement")
-class UseElement extends GraphicsElement implements UriReference {
- // To suppress missing implicit constructor warnings.
- factory UseElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGUseElement.SVGUseElement')
- @DocsEditable()
- factory UseElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("use");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- UseElement.created() : super.created();
-
- @DomName('SVGUseElement.height')
- @DocsEditable()
- final AnimatedLength height;
-
- @DomName('SVGUseElement.width')
- @DocsEditable()
- final AnimatedLength width;
-
- @DomName('SVGUseElement.x')
- @DocsEditable()
- final AnimatedLength x;
-
- @DomName('SVGUseElement.y')
- @DocsEditable()
- final AnimatedLength y;
-
- // From SVGURIReference
-
- @DomName('SVGUseElement.href')
- @DocsEditable()
- final AnimatedString href;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGViewElement')
-@Unstable()
-@Native("SVGViewElement")
-class ViewElement extends SvgElement implements FitToViewBox, ZoomAndPan {
- // To suppress missing implicit constructor warnings.
- factory ViewElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGViewElement.SVGViewElement')
- @DocsEditable()
- factory ViewElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("view");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- ViewElement.created() : super.created();
-
- @DomName('SVGViewElement.viewTarget')
- @DocsEditable()
- final StringList viewTarget;
-
- // From SVGFitToViewBox
-
- @DomName('SVGViewElement.preserveAspectRatio')
- @DocsEditable()
- final AnimatedPreserveAspectRatio preserveAspectRatio;
-
- @DomName('SVGViewElement.viewBox')
- @DocsEditable()
- final AnimatedRect viewBox;
-
- // From SVGZoomAndPan
-
- @DomName('SVGViewElement.zoomAndPan')
- @DocsEditable()
- int zoomAndPan;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGViewSpec')
-@Unstable()
-@Native("SVGViewSpec")
-class ViewSpec extends Interceptor implements FitToViewBox, ZoomAndPan {
- // To suppress missing implicit constructor warnings.
- factory ViewSpec._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGViewSpec.preserveAspectRatioString')
- @DocsEditable()
- final String preserveAspectRatioString;
-
- @DomName('SVGViewSpec.transform')
- @DocsEditable()
- final TransformList transform;
-
- @DomName('SVGViewSpec.transformString')
- @DocsEditable()
- final String transformString;
-
- @DomName('SVGViewSpec.viewBoxString')
- @DocsEditable()
- final String viewBoxString;
-
- @DomName('SVGViewSpec.viewTarget')
- @DocsEditable()
- final SvgElement viewTarget;
-
- @DomName('SVGViewSpec.viewTargetString')
- @DocsEditable()
- final String viewTargetString;
-
- // From SVGFitToViewBox
-
- @DomName('SVGViewSpec.preserveAspectRatio')
- @DocsEditable()
- @Experimental() // nonstandard
- final AnimatedPreserveAspectRatio preserveAspectRatio;
-
- @DomName('SVGViewSpec.viewBox')
- @DocsEditable()
- @Experimental() // nonstandard
- final AnimatedRect viewBox;
-
- // From SVGZoomAndPan
-
- @DomName('SVGViewSpec.zoomAndPan')
- @DocsEditable()
- @Experimental() // nonstandard
- int zoomAndPan;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGZoomAndPan')
-@Unstable()
-abstract class ZoomAndPan extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory ZoomAndPan._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGZoomAndPan.SVG_ZOOMANDPAN_DISABLE')
- @DocsEditable()
- static const int SVG_ZOOMANDPAN_DISABLE = 1;
-
- @DomName('SVGZoomAndPan.SVG_ZOOMANDPAN_MAGNIFY')
- @DocsEditable()
- static const int SVG_ZOOMANDPAN_MAGNIFY = 2;
-
- @DomName('SVGZoomAndPan.SVG_ZOOMANDPAN_UNKNOWN')
- @DocsEditable()
- static const int SVG_ZOOMANDPAN_UNKNOWN = 0;
-
- int zoomAndPan;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGZoomEvent')
-@Unstable()
-@Native("SVGZoomEvent")
-class ZoomEvent extends UIEvent {
- // To suppress missing implicit constructor warnings.
- factory ZoomEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGZoomEvent.newScale')
- @DocsEditable()
- final double newScale;
-
- @DomName('SVGZoomEvent.newTranslate')
- @DocsEditable()
- final Point newTranslate;
-
- @DomName('SVGZoomEvent.previousScale')
- @DocsEditable()
- final double previousScale;
-
- @DomName('SVGZoomEvent.previousTranslate')
- @DocsEditable()
- final Point previousTranslate;
-
- @DomName('SVGZoomEvent.zoomRectScreen')
- @DocsEditable()
- final Rect zoomRectScreen;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGGradientElement')
-@Unstable()
-@Native("SVGGradientElement")
-class _GradientElement extends SvgElement implements UriReference {
- // To suppress missing implicit constructor warnings.
- factory _GradientElement._() {
- throw new UnsupportedError("Not supported");
- }
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- _GradientElement.created() : super.created();
-
- @DomName('SVGGradientElement.SVG_SPREADMETHOD_PAD')
- @DocsEditable()
- static const int SVG_SPREADMETHOD_PAD = 1;
-
- @DomName('SVGGradientElement.SVG_SPREADMETHOD_REFLECT')
- @DocsEditable()
- static const int SVG_SPREADMETHOD_REFLECT = 2;
-
- @DomName('SVGGradientElement.SVG_SPREADMETHOD_REPEAT')
- @DocsEditable()
- static const int SVG_SPREADMETHOD_REPEAT = 3;
-
- @DomName('SVGGradientElement.SVG_SPREADMETHOD_UNKNOWN')
- @DocsEditable()
- static const int SVG_SPREADMETHOD_UNKNOWN = 0;
-
- @DomName('SVGGradientElement.gradientTransform')
- @DocsEditable()
- final AnimatedTransformList gradientTransform;
-
- @DomName('SVGGradientElement.gradientUnits')
- @DocsEditable()
- final AnimatedEnumeration gradientUnits;
-
- @DomName('SVGGradientElement.spreadMethod')
- @DocsEditable()
- final AnimatedEnumeration spreadMethod;
-
- // From SVGURIReference
-
- @DomName('SVGGradientElement.href')
- @DocsEditable()
- final AnimatedString href;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGComponentTransferFunctionElement')
-@Unstable()
-@Native("SVGComponentTransferFunctionElement")
-abstract class _SVGComponentTransferFunctionElement extends SvgElement {
- // To suppress missing implicit constructor warnings.
- factory _SVGComponentTransferFunctionElement._() {
- throw new UnsupportedError("Not supported");
- }
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- _SVGComponentTransferFunctionElement.created() : super.created();
-}
-// 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.
-
-@DocsEditable()
-@DomName('SVGCursorElement')
-@Unstable()
-@Native("SVGCursorElement")
-abstract class _SVGCursorElement extends SvgElement
- implements UriReference, Tests {
- // To suppress missing implicit constructor warnings.
- factory _SVGCursorElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGCursorElement.SVGCursorElement')
- @DocsEditable()
- factory _SVGCursorElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("cursor");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- _SVGCursorElement.created() : super.created();
-
- /// Checks if this type is supported on the current platform.
- static bool get supported =>
- SvgElement.isTagSupported('cursor') &&
- (new SvgElement.tag('cursor') is _SVGCursorElement);
-
- // From SVGTests
-
- // From SVGURIReference
-
-}
-
-// 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.
-
-@DocsEditable()
-@DomName('SVGFEDropShadowElement')
-@Experimental() // nonstandard
-@Native("SVGFEDropShadowElement")
-abstract class _SVGFEDropShadowElement extends SvgElement
- implements FilterPrimitiveStandardAttributes {
- // To suppress missing implicit constructor warnings.
- factory _SVGFEDropShadowElement._() {
- throw new UnsupportedError("Not supported");
- }
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- _SVGFEDropShadowElement.created() : super.created();
-
- // From SVGFilterPrimitiveStandardAttributes
-
-}
-
-// 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.
-
-@DocsEditable()
-@DomName('SVGMPathElement')
-@Native("SVGMPathElement")
-abstract class _SVGMPathElement extends SvgElement implements UriReference {
- // To suppress missing implicit constructor warnings.
- factory _SVGMPathElement._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SVGMPathElement.SVGMPathElement')
- @DocsEditable()
- factory _SVGMPathElement() =>
- _SvgElementFactoryProvider.createSvgElement_tag("mpath");
- /**
- * Constructor instantiated by the DOM when a custom element has been created.
- *
- * This can only be called by subclasses from their created constructor.
- */
- _SVGMPathElement.created() : super.created();
-
- // From SVGURIReference
-
-}
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/typed_data/typed_data.dart b/pkg/dev_compiler/tool/input_sdk/lib/typed_data/typed_data.dart
deleted file mode 100644
index 55595423..0000000
--- a/pkg/dev_compiler/tool/input_sdk/lib/typed_data/typed_data.dart
+++ /dev/null
@@ -1,3246 +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.
-
-/// Lists that efficiently handle fixed sized data
-/// (for example, unsigned 8 byte integers) and SIMD numeric types.
-///
-/// To use this library in your code:
-///
-/// import 'dart:typed_data';
-library dart.typed_data;
-
-/**
- * A sequence of bytes underlying a typed data object.
- *
- * Used to process large quantities of binary or numerical data
- * more efficiently using a typed view.
- */
-abstract class ByteBuffer {
- /**
- * Returns the length of this byte buffer, in bytes.
- */
- int get lengthInBytes;
-
- /**
- * Creates a [Uint8List] _view_ of a region of this byte buffer.
- *
- * The view is backed by the bytes of this byte buffer.
- * Any changes made to the `Uint8List` will also change the buffer,
- * and vice versa.
- *
- * The viewed region start at [offsetInBytes] and contains [length] bytes.
- * If [length] is omitted, the range extends to the end of the buffer.
- *
- * The start index and length must describe a valid range of the buffer:
- *
- * * `offsetInBytes` must not be negative,
- * * `length` must not be negative, and
- * * `offsetInBytes + length` must not be greater than [lengthInBytes].
- */
- Uint8List asUint8List([int offsetInBytes = 0, int length]);
-
- /**
- * Creates a [Int8List] _view_ of a region of this byte buffer.
- *
- * The view is backed by the bytes of this byte buffer.
- * Any changes made to the `Int8List` will also change the buffer,
- * and vice versa.
- *
- * The viewed region start at [offsetInBytes] and contains [length] bytes.
- * If [length] is omitted, the range extends to the end of the buffer.
- *
- * The start index and length must describe a valid range of the buffer:
- *
- * * `offsetInBytes` must not be negative,
- * * `length` must not be negative, and
- * * `offsetInBytes + length` must not be greater than [lengthInBytes].
- */
- Int8List asInt8List([int offsetInBytes = 0, int length]);
-
- /**
- * Creates a [Uint8ClampedList] _view_ of a region of this byte buffer.
- *
- * The view is backed by the bytes of this byte buffer.
- * Any changes made to the `Uint8ClampedList` will also change the buffer,
- * and vice versa.
- *
- * The viewed region start at [offsetInBytes] and contains [length] bytes.
- * If [length] is omitted, the range extends to the end of the buffer.
- *
- * The start index and length must describe a valid range of the buffer:
- *
- * * `offsetInBytes` must not be negative,
- * * `length` must not be negative, and
- * * `offsetInBytes + length` must not be greater than [lengthInBytes].
- */
- Uint8ClampedList asUint8ClampedList([int offsetInBytes = 0, int length]);
-
- /**
- * Creates a [Uint16List] _view_ of a region of this byte buffer.
- *
- * The view is backed by the bytes of this byte buffer.
- * Any changes made to the `Uint16List` will also change the buffer,
- * and vice versa.
- *
- * The viewed region start at [offsetInBytes], which must be 16-bit aligned,
- * and contains [length] 16-bit integers.
- * If [length] is omitted, the range extends as far towards the end of
- * the buffer as possible -
- * if [lengthInBytes] is not even, the last byte can't be part of the view.
- *
- * The start index and length must describe a valid 16-bit aligned range
- * of the buffer:
- *
- * * `offsetInBytes` must not be negative,
- * * `offsetInBytes` must be divisible by two,
- * * `length` must not be negative, and
- * * `offsetInBytes + length * 2` must not be greater than [lengthInBytes].
- */
- Uint16List asUint16List([int offsetInBytes = 0, int length]);
-
- /**
- * Creates a [Int16List] _view_ of a region of this byte buffer.
- *
- * The view is backed by the bytes of this byte buffer.
- * Any changes made to the `Int16List` will also change the buffer,
- * and vice versa.
- *
- * The viewed region start at [offsetInBytes], which must be 16-bit aligned,
- * and contains [length] 16-bit integers.
- * If [length] is omitted, the range extends as far towards the end of
- * the buffer as possible -
- * if [lengthInBytes] is not even, the last byte can't be part of the view.
- *
- * The start index and length must describe a valid 16-bit aligned range
- * of the buffer:
- *
- * * `offsetInBytes` must not be negative,
- * * `offsetInBytes` must be divisible by two,
- * * `length` must not be negative, and
- * * `offsetInBytes + length * 2` must not be greater than [lengthInBytes].
- */
- Int16List asInt16List([int offsetInBytes = 0, int length]);
-
- /**
- * Creates a [Uint32List] _view_ of a region of this byte buffer.
- *
- * The view is backed by the bytes of this byte buffer.
- * Any changes made to the `Uint32List` will also change the buffer,
- * and vice versa.
- *
- * The viewed region start at [offsetInBytes], which must be 32-bit aligned,
- * and contains [length] 32-bit integers.
- * If [length] is omitted, the range extends as far towards the end of
- * the buffer as possible -
- * if [lengthInBytes] is not divisible by four, the last bytes can't be part
- * of the view.
- *
- * The start index and length must describe a valid 32-bit aligned range
- * of the buffer:
- *
- * * `offsetInBytes` must not be negative,
- * * `offsetInBytes` must be divisible by four,
- * * `length` must not be negative, and
- * * `offsetInBytes + length * 4` must not be greater than [lengthInBytes].
- */
- Uint32List asUint32List([int offsetInBytes = 0, int length]);
-
- /**
- * Creates a [Int32List] _view_ of a region of this byte buffer.
- *
- * The view is backed by the bytes of this byte buffer.
- * Any changes made to the `Int32List` will also change the buffer,
- * and vice versa.
- *
- * The viewed region start at [offsetInBytes], which must be 32-bit aligned,
- * and contains [length] 32-bit integers.
- * If [length] is omitted, the range extends as far towards the end of
- * the buffer as possible -
- * if [lengthInBytes] is not divisible by four, the last bytes can't be part
- * of the view.
- *
- * The start index and length must describe a valid 32-bit aligned range
- * of the buffer:
- *
- * * `offsetInBytes` must not be negative,
- * * `offsetInBytes` must be divisible by four,
- * * `length` must not be negative, and
- * * `offsetInBytes + length * 4` must not be greater than [lengthInBytes].
- */
- Int32List asInt32List([int offsetInBytes = 0, int length]);
-
- /**
- * Creates a [Uint64List] _view_ of a region of this byte buffer.
- *
- * The view is backed by the bytes of this byte buffer.
- * Any changes made to the `Uint64List` will also change the buffer,
- * and vice versa.
- *
- * The viewed region start at [offsetInBytes], which must be 64-bit aligned,
- * and contains [length] 64-bit integers.
- * If [length] is omitted, the range extends as far towards the end of
- * the buffer as possible -
- * if [lengthInBytes] is not divisible by eight, the last bytes can't be part
- * of the view.
- *
- * The start index and length must describe a valid 64-bit aligned range
- * of the buffer:
- *
- * * `offsetInBytes` must not be negative,
- * * `offsetInBytes` must be divisible by eight,
- * * `length` must not be negative, and
- * * `offsetInBytes + length * 8` must not be greater than [lengthInBytes].
- */
- Uint64List asUint64List([int offsetInBytes = 0, int length]);
-
- /**
- * Creates a [Int64List] _view_ of a region of this byte buffer.
- *
- * The view is backed by the bytes of this byte buffer.
- * Any changes made to the `Int64List` will also change the buffer,
- * and vice versa.
- *
- * The viewed region start at [offsetInBytes], which must be 64-bit aligned,
- * and contains [length] 64-bit integers.
- * If [length] is omitted, the range extends as far towards the end of
- * the buffer as possible -
- * if [lengthInBytes] is not divisible by eight, the last bytes can't be part
- * of the view.
- *
- * The start index and length must describe a valid 64-bit aligned range
- * of the buffer:
- *
- * * `offsetInBytes` must not be negative,
- * * `offsetInBytes` must be divisible by eight,
- * * `length` must not be negative, and
- * * `offsetInBytes + length * 8` must not be greater than [lengthInBytes].
- */
- Int64List asInt64List([int offsetInBytes = 0, int length]);
-
- /**
- * Creates a [Int32x4List] _view_ of a region of this byte buffer.
- *
- * The view is backed by the bytes of this byte buffer.
- * Any changes made to the `Int32x4List` will also change the buffer,
- * and vice versa.
- *
- * The viewed region start at [offsetInBytes], which must be 128-bit aligned,
- * and contains [length] 128-bit integers.
- * If [length] is omitted, the range extends as far towards the end of
- * the buffer as possible -
- * if [lengthInBytes] is not divisible by 16, the last bytes can't be part
- * of the view.
- *
- * The start index and length must describe a valid 128-bit aligned range
- * of the buffer:
- *
- * * `offsetInBytes` must not be negative,
- * * `offsetInBytes` must be divisible by sixteen,
- * * `length` must not be negative, and
- * * `offsetInBytes + length * 16` must not be greater than [lengthInBytes].
- */
- Int32x4List asInt32x4List([int offsetInBytes = 0, int length]);
-
- /**
- * Creates a [Float32List] _view_ of a region of this byte buffer.
- *
- * The view is backed by the bytes of this byte buffer.
- * Any changes made to the `Float32List` will also change the buffer,
- * and vice versa.
- *
- * The viewed region start at [offsetInBytes], which must be 32-bit aligned,
- * and contains [length] 32-bit integers.
- * If [length] is omitted, the range extends as far towards the end of
- * the buffer as possible -
- * if [lengthInBytes] is not divisible by four, the last bytes can't be part
- * of the view.
- *
- * The start index and length must describe a valid 32-bit aligned range
- * of the buffer:
- *
- * * `offsetInBytes` must not be negative,
- * * `offsetInBytes` must be divisible by four,
- * * `length` must not be negative, and
- * * `offsetInBytes + length * 4` must not be greater than [lengthInBytes].
- */
- Float32List asFloat32List([int offsetInBytes = 0, int length]);
-
- /**
- * Creates a [Float64List] _view_ of a region of this byte buffer.
- *
- * The view is backed by the bytes of this byte buffer.
- * Any changes made to the `Float64List` will also change the buffer,
- * and vice versa.
- *
- * The viewed region start at [offsetInBytes], which must be 64-bit aligned,
- * and contains [length] 64-bit integers.
- * If [length] is omitted, the range extends as far towards the end of
- * the buffer as possible -
- * if [lengthInBytes] is not divisible by eight, the last bytes can't be part
- * of the view.
- *
- * The start index and length must describe a valid 64-bit aligned range
- * of the buffer:
- *
- * * `offsetInBytes` must not be negative,
- * * `offsetInBytes` must be divisible by eight,
- * * `length` must not be negative, and
- * * `offsetInBytes + length * 8` must not be greater than [lengthInBytes].
- */
- Float64List asFloat64List([int offsetInBytes = 0, int length]);
-
- /**
- * Creates a [Float32x4List] _view_ of a region of this byte buffer.
- *
- * The view is backed by the bytes of this byte buffer.
- * Any changes made to the `Float32x4List` will also change the buffer,
- * and vice versa.
- *
- * The viewed region start at [offsetInBytes], which must be 128-bit aligned,
- * and contains [length] 128-bit integers.
- * If [length] is omitted, the range extends as far towards the end of
- * the buffer as possible -
- * if [lengthInBytes] is not divisible by 16, the last bytes can't be part
- * of the view.
- *
- * The start index and length must describe a valid 128-bit aligned range
- * of the buffer:
- *
- * * `offsetInBytes` must not be negative,
- * * `offsetInBytes` must be divisible by sixteen,
- * * `length` must not be negative, and
- * * `offsetInBytes + length * 16` must not be greater than [lengthInBytes].
- */
- Float32x4List asFloat32x4List([int offsetInBytes = 0, int length]);
-
- /**
- * Creates a [Float64x2List] _view_ of a region of this byte buffer.
- *
- * The view is backed by the bytes of this byte buffer.
- * Any changes made to the `Float64x2List` will also change the buffer,
- * and vice versa.
- *
- * The viewed region start at [offsetInBytes], which must be 128-bit aligned,
- * and contains [length] 128-bit integers.
- * If [length] is omitted, the range extends as far towards the end of
- * the buffer as possible -
- * if [lengthInBytes] is not divisible by 16, the last bytes can't be part
- * of the view.
- *
- * The start index and length must describe a valid 128-bit aligned range
- * of the buffer:
- *
- * * `offsetInBytes` must not be negative,
- * * `offsetInBytes` must be divisible by sixteen,
- * * `length` must not be negative, and
- * * `offsetInBytes + length * 16` must not be greater than [lengthInBytes].
- */
- Float64x2List asFloat64x2List([int offsetInBytes = 0, int length]);
-
- /**
- * Creates a [ByteData] _view_ of a region of this byte buffer.
- *
- * The view is backed by the bytes of this byte buffer.
- * Any changes made to the `ByteData` will also change the buffer,
- * and vice versa.
- *
- * The viewed region start at [offsetInBytes] and contains [length] bytes.
- * If [length] is omitted, the range extends to the end of the buffer.
- *
- * The start index and length must describe a valid range of the buffer:
- *
- * * `offsetInBytes` must not be negative,
- * * `length` must not be negative, and
- * * `offsetInBytes + length` must not be greater than [lengthInBytes].
- */
- ByteData asByteData([int offsetInBytes = 0, int length]);
-}
-
-/**
- * A typed view of a sequence of bytes.
- */
-abstract class TypedData {
- /**
- * Returns the number of bytes in the representation of each element in this
- * list.
- */
- int get elementSizeInBytes;
-
- /**
- * Returns the offset in bytes into the underlying byte buffer of this view.
- */
- int get offsetInBytes;
-
- /**
- * Returns the length of this view, in bytes.
- */
- int get lengthInBytes;
-
- /**
- * Returns the byte buffer associated with this object.
- */
- ByteBuffer get buffer;
-}
-
-// TODO(lrn): Remove class for Dart 2.0.
-/** Deprecated, use [Endian] instead. */
-abstract class Endianness {
- Endianness._(); // prevent construction.
- /** Deprecated, use [Endian.big] instead. */
- static const Endian BIG_ENDIAN = Endian.big;
- /** Deprecated, use [Endian.little] instead. */
- static const Endian LITTLE_ENDIAN = Endian.little;
- /** Deprecated, use [Endian.host] instead. */
- static Endian get HOST_ENDIAN => Endian.host;
-}
-
-/**
- * Describes endianness to be used when accessing or updating a
- * sequence of bytes.
- */
-class Endian implements Endianness {
- final bool _littleEndian;
- const Endian._(this._littleEndian);
-
- static const Endian big = const Endian._(false);
- static const Endian little = const Endian._(true);
- static final Endian host =
- (new ByteData.view(new Uint16List.fromList([1]).buffer)).getInt8(0) == 1
- ? little
- : big;
-}
-
-/**
- * A fixed-length, random-access sequence of bytes that also provides random
- * and unaligned access to the fixed-width integers and floating point
- * numbers represented by those bytes.
- *
- * `ByteData` may be used to pack and unpack data from external sources
- * (such as networks or files systems), and to process large quantities
- * of numerical data more efficiently than would be possible
- * with ordinary [List] implementations.
- * `ByteData` can save space, by eliminating the need for object headers,
- * and time, by eliminating the need for data copies.
- * Finally, `ByteData` may be used to intentionally reinterpret the bytes
- * representing one arithmetic type as another.
- * For example this code fragment determine what 32-bit signed integer
- * is represented by the bytes of a 32-bit floating point number:
- *
- * var buffer = new Uint8List(8).buffer;
- * var bdata = new ByteData.view(buffer);
- * bdata.setFloat32(0, 3.04);
- * int huh = bdata.getInt32(0);
- */
-abstract class ByteData implements TypedData {
- /**
- * Creates a [ByteData] of the specified length (in elements), all of
- * whose bytes are initially zero.
- */
- external factory ByteData(int length);
-
- /**
- * Creates an [ByteData] _view_ of the specified region in [buffer].
- *
- * Changes in the [ByteData] will be visible in the byte
- * buffer and vice versa.
- * If the [offsetInBytes] index of the region is not specified,
- * it defaults to zero (the first byte in the byte buffer).
- * If the length is not specified, it defaults to `null`,
- * which indicates that the view extends to the end of the byte buffer.
- *
- * Throws [RangeError] if [offsetInBytes] or [length] are negative, or
- * if [offsetInBytes] + ([length] * elementSizeInBytes) is greater than
- * the length of [buffer].
- */
- factory ByteData.view(ByteBuffer buffer,
- [int offsetInBytes = 0, int length]) {
- return buffer.asByteData(offsetInBytes, length);
- }
-
- /**
- * Returns the (possibly negative) integer represented by the byte at the
- * specified [byteOffset] in this object, in two's complement binary
- * representation.
- *
- * The return value will be between -128 and 127, inclusive.
- *
- * Throws [RangeError] if [byteOffset] is negative, or
- * greater than or equal to the length of this object.
- */
- int getInt8(int byteOffset);
-
- /**
- * Sets the byte at the specified [byteOffset] in this object to the
- * two's complement binary representation of the specified [value], which
- * must fit in a single byte.
- *
- * In other words, [value] must be between -128 and 127, inclusive.
- *
- * Throws [RangeError] if [byteOffset] is negative, or
- * greater than or equal to the length of this object.
- */
- void setInt8(int byteOffset, int value);
-
- /**
- * Returns the positive integer represented by the byte at the specified
- * [byteOffset] in this object, in unsigned binary form.
- *
- * The return value will be between 0 and 255, inclusive.
- *
- * Throws [RangeError] if [byteOffset] is negative, or
- * greater than or equal to the length of this object.
- */
- int getUint8(int byteOffset);
-
- /**
- * Sets the byte at the specified [byteOffset] in this object to the
- * unsigned binary representation of the specified [value], which must fit
- * in a single byte.
- *
- * In other words, [value] must be between 0 and 255, inclusive.
- *
- * Throws [RangeError] if [byteOffset] is negative,
- * or greater than or equal to the length of this object.
- */
- void setUint8(int byteOffset, int value);
-
- /**
- * Returns the (possibly negative) integer represented by the two bytes at
- * the specified [byteOffset] in this object, in two's complement binary
- * form.
- *
- * The return value will be between -2<sup>15</sup> and 2<sup>15</sup> - 1,
- * inclusive.
- *
- * Throws [RangeError] if [byteOffset] is negative, or
- * `byteOffset + 2` is greater than the length of this object.
- */
- int getInt16(int byteOffset, [Endian endian = Endian.big]);
-
- /**
- * Sets the two bytes starting at the specified [byteOffset] in this
- * object to the two's complement binary representation of the specified
- * [value], which must fit in two bytes.
- *
- * In other words, [value] must lie
- * between -2<sup>15</sup> and 2<sup>15</sup> - 1, inclusive.
- *
- * Throws [RangeError] if [byteOffset] is negative, or
- * `byteOffset + 2` is greater than the length of this object.
- */
- void setInt16(int byteOffset, int value, [Endian endian = Endian.big]);
-
- /**
- * Returns the positive integer represented by the two bytes starting
- * at the specified [byteOffset] in this object, in unsigned binary
- * form.
- *
- * The return value will be between 0 and 2<sup>16</sup> - 1, inclusive.
- *
- * Throws [RangeError] if [byteOffset] is negative, or
- * `byteOffset + 2` is greater than the length of this object.
- */
- int getUint16(int byteOffset, [Endian endian = Endian.big]);
-
- /**
- * Sets the two bytes starting at the specified [byteOffset] in this object
- * to the unsigned binary representation of the specified [value],
- * which must fit in two bytes.
- *
- * In other words, [value] must be between
- * 0 and 2<sup>16</sup> - 1, inclusive.
- *
- * Throws [RangeError] if [byteOffset] is negative, or
- * `byteOffset + 2` is greater than the length of this object.
- */
- void setUint16(int byteOffset, int value, [Endian endian = Endian.big]);
-
- /**
- * Returns the (possibly negative) integer represented by the four bytes at
- * the specified [byteOffset] in this object, in two's complement binary
- * form.
- *
- * The return value will be between -2<sup>31</sup> and 2<sup>31</sup> - 1,
- * inclusive.
- *
- * Throws [RangeError] if [byteOffset] is negative, or
- * `byteOffset + 4` is greater than the length of this object.
- */
- int getInt32(int byteOffset, [Endian endian = Endian.big]);
-
- /**
- * Sets the four bytes starting at the specified [byteOffset] in this
- * object to the two's complement binary representation of the specified
- * [value], which must fit in four bytes.
- *
- * In other words, [value] must lie
- * between -2<sup>31</sup> and 2<sup>31</sup> - 1, inclusive.
- *
- * Throws [RangeError] if [byteOffset] is negative, or
- * `byteOffset + 4` is greater than the length of this object.
- */
- void setInt32(int byteOffset, int value, [Endian endian = Endian.big]);
-
- /**
- * Returns the positive integer represented by the four bytes starting
- * at the specified [byteOffset] in this object, in unsigned binary
- * form.
- *
- * The return value will be between 0 and 2<sup>32</sup> - 1, inclusive.
- *
- * Throws [RangeError] if [byteOffset] is negative, or
- * `byteOffset + 4` is greater than the length of this object.
- */
- int getUint32(int byteOffset, [Endian endian = Endian.big]);
-
- /**
- * Sets the four bytes starting at the specified [byteOffset] in this object
- * to the unsigned binary representation of the specified [value],
- * which must fit in four bytes.
- *
- * In other words, [value] must be between
- * 0 and 2<sup>32</sup> - 1, inclusive.
- *
- * Throws [RangeError] if [byteOffset] is negative, or
- * `byteOffset + 4` is greater than the length of this object.
- */
- void setUint32(int byteOffset, int value, [Endian endian = Endian.big]);
-
- /**
- * Returns the (possibly negative) integer represented by the eight bytes at
- * the specified [byteOffset] in this object, in two's complement binary
- * form.
- *
- * The return value will be between -2<sup>63</sup> and 2<sup>63</sup> - 1,
- * inclusive.
- *
- * Throws [RangeError] if [byteOffset] is negative, or
- * `byteOffset + 8` is greater than the length of this object.
- */
- int getInt64(int byteOffset, [Endian endian = Endian.big]);
-
- /**
- * Sets the eight bytes starting at the specified [byteOffset] in this
- * object to the two's complement binary representation of the specified
- * [value], which must fit in eight bytes.
- *
- * In other words, [value] must lie
- * between -2<sup>63</sup> and 2<sup>63</sup> - 1, inclusive.
- *
- * Throws [RangeError] if [byteOffset] is negative, or
- * `byteOffset + 8` is greater than the length of this object.
- */
- void setInt64(int byteOffset, int value, [Endian endian = Endian.big]);
-
- /**
- * Returns the positive integer represented by the eight bytes starting
- * at the specified [byteOffset] in this object, in unsigned binary
- * form.
- *
- * The return value will be between 0 and 2<sup>64</sup> - 1, inclusive.
- *
- * Throws [RangeError] if [byteOffset] is negative, or
- * `byteOffset + 8` is greater than the length of this object.
- */
- int getUint64(int byteOffset, [Endian endian = Endian.big]);
-
- /**
- * Sets the eight bytes starting at the specified [byteOffset] in this object
- * to the unsigned binary representation of the specified [value],
- * which must fit in eight bytes.
- *
- * In other words, [value] must be between
- * 0 and 2<sup>64</sup> - 1, inclusive.
- *
- * Throws [RangeError] if [byteOffset] is negative, or
- * `byteOffset + 8` is greater than the length of this object.
- */
- void setUint64(int byteOffset, int value, [Endian endian = Endian.big]);
-
- /**
- * Returns the floating point number represented by the four bytes at
- * the specified [byteOffset] in this object, in IEEE 754
- * single-precision binary floating-point format (binary32).
- *
- * Throws [RangeError] if [byteOffset] is negative, or
- * `byteOffset + 4` is greater than the length of this object.
- */
- double getFloat32(int byteOffset, [Endian endian = Endian.big]);
-
- /**
- * Sets the four bytes starting at the specified [byteOffset] in this
- * object to the IEEE 754 single-precision binary floating-point
- * (binary32) representation of the specified [value].
- *
- * **Note that this method can lose precision.** The input [value] is
- * a 64-bit floating point value, which will be converted to 32-bit
- * floating point value by IEEE 754 rounding rules before it is stored.
- * If [value] cannot be represented exactly as a binary32, it will be
- * converted to the nearest binary32 value. If two binary32 values are
- * equally close, the one whose least significant bit is zero will be used.
- * Note that finite (but large) values can be converted to infinity, and
- * small non-zero values can be converted to zero.
- *
- * Throws [RangeError] if [byteOffset] is negative, or
- * `byteOffset + 4` is greater than the length of this object.
- */
- void setFloat32(int byteOffset, double value, [Endian endian = Endian.big]);
-
- /**
- * Returns the floating point number represented by the eight bytes at
- * the specified [byteOffset] in this object, in IEEE 754
- * double-precision binary floating-point format (binary64).
- *
- * Throws [RangeError] if [byteOffset] is negative, or
- * `byteOffset + 8` is greater than the length of this object.
- */
- double getFloat64(int byteOffset, [Endian endian = Endian.big]);
-
- /**
- * Sets the eight bytes starting at the specified [byteOffset] in this
- * object to the IEEE 754 double-precision binary floating-point
- * (binary64) representation of the specified [value].
- *
- * Throws [RangeError] if [byteOffset] is negative, or
- * `byteOffset + 8` is greater than the length of this object.
- */
- void setFloat64(int byteOffset, double value, [Endian endian = Endian.big]);
-}
-
-/**
- * A fixed-length list of 8-bit signed integers.
- *
- * For long lists, this implementation can be considerably
- * more space- and time-efficient than the default [List] implementation.
- *
- * Integers stored in the list are truncated to their low eight bits,
- * interpreted as a signed 8-bit two's complement integer with values in the
- * range -128 to +127.
- */
-abstract class Int8List implements List<int>, TypedData {
- /**
- * Creates an [Int8List] of the specified length (in elements), all of
- * whose elements are initially zero.
- */
- external factory Int8List(int length);
-
- /**
- * Creates a [Int8List] with the same length as the [elements] list
- * and copies over the elements.
- *
- * Values are truncated to fit in the list when they are copied,
- * the same way storing values truncates them.
- */
- external factory Int8List.fromList(List<int> elements);
-
- /**
- * Creates an [Int8List] _view_ of the specified region in [buffer].
- *
- * Changes in the [Int8List] will be visible in the byte
- * buffer and vice versa.
- * If the [offsetInBytes] index of the region is not specified,
- * it defaults to zero (the first byte in the byte buffer).
- * If the length is not specified, it defaults to `null`,
- * which indicates that the view extends to the end of the byte buffer.
- *
- * Throws [RangeError] if [offsetInBytes] or [length] are negative, or
- * if [offsetInBytes] + ([length] * elementSizeInBytes) is greater than
- * the length of [buffer].
- */
- factory Int8List.view(ByteBuffer buffer,
- [int offsetInBytes = 0, int length]) {
- return buffer.asInt8List(offsetInBytes, length);
- }
-
- /** Deprecated, use [bytesPerElement] instead. */
- static const int BYTES_PER_ELEMENT = bytesPerElement;
- static const int bytesPerElement = 1;
-}
-
-/**
- * A fixed-length list of 8-bit unsigned integers.
- *
- * For long lists, this implementation can be considerably
- * more space- and time-efficient than the default [List] implementation.
- *
- * Integers stored in the list are truncated to their low eight bits,
- * interpreted as an unsigned 8-bit integer with values in the
- * range 0 to 255.
- */
-abstract class Uint8List implements List<int>, TypedData {
- /**
- * Creates a [Uint8List] of the specified length (in elements), all of
- * whose elements are initially zero.
- */
- external factory Uint8List(int length);
-
- /**
- * Creates a [Uint8List] with the same length as the [elements] list
- * and copies over the elements.
- *
- * Values are truncated to fit in the list when they are copied,
- * the same way storing values truncates them.
- */
- external factory Uint8List.fromList(List<int> elements);
-
- /**
- * Creates a [Uint8List] _view_ of the specified region in [buffer].
- *
- * Changes in the [Uint8List] will be visible in the byte
- * buffer and vice versa.
- * If the [offsetInBytes] index of the region is not specified,
- * it defaults to zero (the first byte in the byte buffer).
- * If the length is not specified, it defaults to `null`,
- * which indicates that the view extends to the end of the byte buffer.
- *
- * Throws [RangeError] if [offsetInBytes] or [length] are negative, or
- * if [offsetInBytes] + ([length] * elementSizeInBytes) is greater than
- * the length of [buffer].
- */
- factory Uint8List.view(ByteBuffer buffer,
- [int offsetInBytes = 0, int length]) {
- return buffer.asUint8List(offsetInBytes, length);
- }
-
- /** Deprecated, use [bytesPerElement] instead. */
- static const int BYTES_PER_ELEMENT = bytesPerElement;
- static const int bytesPerElement = 1;
-}
-
-/**
- * A fixed-length list of 8-bit unsigned integers.
- *
- * For long lists, this implementation can be considerably
- * more space- and time-efficient than the default [List] implementation.
- *
- * Integers stored in the list are clamped to an unsigned eight bit value.
- * That is, all values below zero are stored as zero
- * and all values above 255 are stored as 255.
- */
-abstract class Uint8ClampedList implements List<int>, TypedData {
- /**
- * Creates a [Uint8ClampedList] of the specified length (in elements), all of
- * whose elements are initially zero.
- */
- external factory Uint8ClampedList(int length);
-
- /**
- * Creates a [Uint8ClampedList] of the same size as the [elements]
- * list and copies over the values clamping when needed.
- *
- * Values are clamped to fit in the list when they are copied,
- * the same way storing values clamps them.
- */
- external factory Uint8ClampedList.fromList(List<int> elements);
-
- /**
- * Creates a [Uint8ClampedList] _view_ of the specified region in the
- * specified byte [buffer].
- *
- * Changes in the [Uint8List] will be visible in the byte buffer
- * and vice versa.
- * If the [offsetInBytes] index of the region is not specified,
- * it defaults to zero (the first byte in the byte buffer).
- * If the length is not specified, it defaults to `null`,
- * which indicates that the view extends to the end of the byte buffer.
- *
- * Throws [RangeError] if [offsetInBytes] or [length] are negative, or
- * if [offsetInBytes] + ([length] * elementSizeInBytes) is greater than
- * the length of [buffer].
- */
- factory Uint8ClampedList.view(ByteBuffer buffer,
- [int offsetInBytes = 0, int length]) {
- return buffer.asUint8ClampedList(offsetInBytes, length);
- }
-
- /** Deprecated, use [bytesPerElement] instead. */
- static const int BYTES_PER_ELEMENT = bytesPerElement;
- static const int bytesPerElement = 1;
-}
-
-/**
- * A fixed-length list of 16-bit signed integers that is viewable as a
- * [TypedData].
- *
- * For long lists, this implementation can be considerably
- * more space- and time-efficient than the default [List] implementation.
- *
- * Integers stored in the list are truncated to their low 16 bits,
- * interpreted as a signed 16-bit two's complement integer with values in the
- * range -32768 to +32767.
- */
-abstract class Int16List implements List<int>, TypedData {
- /**
- * Creates an [Int16List] of the specified length (in elements), all of
- * whose elements are initially zero.
- */
- external factory Int16List(int length);
-
- /**
- * Creates a [Int16List] with the same length as the [elements] list
- * and copies over the elements.
- *
- * Values are truncated to fit in the list when they are copied,
- * the same way storing values truncates them.
- */
- external factory Int16List.fromList(List<int> elements);
-
- /**
- * Creates an [Int16List] _view_ of the specified region in [buffer].
- *
- * Changes in the [Int16List] will be visible in the byte
- * buffer and vice versa.
- * If the [offsetInBytes] index of the region is not specified,
- * it defaults to zero (the first byte in the byte buffer).
- * If the length is not specified, it defaults to `null`,
- * which indicates that the view extends to the end of the byte buffer.
- *
- * Throws [RangeError] if [offsetInBytes] or [length] are negative, or
- * if [offsetInBytes] + ([length] * elementSizeInBytes) is greater than
- * the length of [buffer].
- *
- * Throws [ArgumentError] if [offsetInBytes] is not a multiple of
- * [bytesPerElement].
- */
- factory Int16List.view(ByteBuffer buffer,
- [int offsetInBytes = 0, int length]) {
- return buffer.asInt16List(offsetInBytes, length);
- }
-
- /** Deprecated, use [bytesPerElement] instead. */
- static const int BYTES_PER_ELEMENT = bytesPerElement;
- static const int bytesPerElement = 2;
-}
-
-/**
- * A fixed-length list of 16-bit unsigned integers that is viewable as a
- * [TypedData].
- *
- * For long lists, this implementation can be considerably
- * more space- and time-efficient than the default [List] implementation.
- *
- * Integers stored in the list are truncated to their low 16 bits,
- * interpreted as an unsigned 16-bit integer with values in the
- * range 0 to 65536.
- */
-abstract class Uint16List implements List<int>, TypedData {
- /**
- * Creates a [Uint16List] of the specified length (in elements), all
- * of whose elements are initially zero.
- */
- external factory Uint16List(int length);
-
- /**
- * Creates a [Uint16List] with the same length as the [elements] list
- * and copies over the elements.
- *
- * Values are truncated to fit in the list when they are copied,
- * the same way storing values truncates them.
- */
- external factory Uint16List.fromList(List<int> elements);
-
- /**
- * Creates a [Uint16List] _view_ of the specified region in
- * the specified byte buffer.
- *
- * Changes in the [Uint16List] will be visible in the byte buffer
- * and vice versa.
- * If the [offsetInBytes] index of the region is not specified,
- * it defaults to zero (the first byte in the byte buffer).
- * If the length is not specified, it defaults to `null`,
- * which indicates that the view extends to the end of the byte buffer.
- *
- * Throws [RangeError] if [offsetInBytes] or [length] are negative, or
- * if [offsetInBytes] + ([length] * elementSizeInBytes) is greater than
- * the length of [buffer].
- *
- * Throws [ArgumentError] if [offsetInBytes] is not a multiple of
- * [bytesPerElement].
- */
- factory Uint16List.view(ByteBuffer buffer,
- [int offsetInBytes = 0, int length]) {
- return buffer.asUint16List(offsetInBytes, length);
- }
-
- /** Deprecated, use [bytesPerElement] instead. */
- static const int BYTES_PER_ELEMENT = bytesPerElement;
- static const int bytesPerElement = 2;
-}
-
-/**
- * A fixed-length list of 32-bit signed integers that is viewable as a
- * [TypedData].
- *
- * For long lists, this implementation can be considerably
- * more space- and time-efficient than the default [List] implementation.
- *
- * Integers stored in the list are truncated to their low 32 bits,
- * interpreted as a signed 32-bit two's complement integer with values in the
- * range -2147483648 to 2147483647.
- */
-abstract class Int32List implements List<int>, TypedData {
- /**
- * Creates an [Int32List] of the specified length (in elements), all of
- * whose elements are initially zero.
- */
- external factory Int32List(int length);
-
- /**
- * Creates a [Int32List] with the same length as the [elements] list
- * and copies over the elements.
- *
- * Values are truncated to fit in the list when they are copied,
- * the same way storing values truncates them.
- */
- external factory Int32List.fromList(List<int> elements);
-
- /**
- * Creates an [Int32List] _view_ of the specified region in [buffer].
- *
- * Changes in the [Int32List] will be visible in the byte
- * buffer and vice versa.
- * If the [offsetInBytes] index of the region is not specified,
- * it defaults to zero (the first byte in the byte buffer).
- * If the length is not specified, it defaults to `null`,
- * which indicates that the view extends to the end of the byte buffer.
- *
- * Throws [RangeError] if [offsetInBytes] or [length] are negative, or
- * if [offsetInBytes] + ([length] * elementSizeInBytes) is greater than
- * the length of [buffer].
- *
- * Throws [ArgumentError] if [offsetInBytes] is not a multiple of
- * [bytesPerElement].
- */
- factory Int32List.view(ByteBuffer buffer,
- [int offsetInBytes = 0, int length]) {
- return buffer.asInt32List(offsetInBytes, length);
- }
-
- /** Deprecated, use [bytesPerElement] instead. */
- static const int BYTES_PER_ELEMENT = bytesPerElement;
- static const int bytesPerElement = 4;
-}
-
-/**
- * A fixed-length list of 32-bit unsigned integers that is viewable as a
- * [TypedData].
- *
- * For long lists, this implementation can be considerably
- * more space- and time-efficient than the default [List] implementation.
- *
- * Integers stored in the list are truncated to their low 32 bits,
- * interpreted as an unsigned 32-bit integer with values in the
- * range 0 to 4294967295.
- */
-abstract class Uint32List implements List<int>, TypedData {
- /**
- * Creates a [Uint32List] of the specified length (in elements), all
- * of whose elements are initially zero.
- */
- external factory Uint32List(int length);
-
- /**
- * Creates a [Uint32List] with the same length as the [elements] list
- * and copies over the elements.
- *
- * Values are truncated to fit in the list when they are copied,
- * the same way storing values truncates them.
- */
- external factory Uint32List.fromList(List<int> elements);
-
- /**
- * Creates a [Uint32List] _view_ of the specified region in
- * the specified byte buffer.
- *
- * Changes in the [Uint32List] will be visible in the byte buffer
- * and vice versa.
- * If the [offsetInBytes] index of the region is not specified,
- * it defaults to zero (the first byte in the byte buffer).
- * If the length is not specified, it defaults to `null`,
- * which indicates that the view extends to the end of the byte buffer.
- *
- * Throws [RangeError] if [offsetInBytes] or [length] are negative, or
- * if [offsetInBytes] + ([length] * elementSizeInBytes) is greater than
- * the length of [buffer].
- *
- * Throws [ArgumentError] if [offsetInBytes] is not a multiple of
- * [bytesPerElement].
- */
- factory Uint32List.view(ByteBuffer buffer,
- [int offsetInBytes = 0, int length]) {
- return buffer.asUint32List(offsetInBytes, length);
- }
-
- /** Deprecated, use [bytesPerElement] instead. */
- static const int BYTES_PER_ELEMENT = bytesPerElement;
- static const int bytesPerElement = 4;
-}
-
-/**
- * A fixed-length list of 64-bit signed integers that is viewable as a
- * [TypedData].
- *
- * For long lists, this implementation can be considerably
- * more space- and time-efficient than the default [List] implementation.
- *
- * Integers stored in the list are truncated to their low 64 bits,
- * interpreted as a signed 64-bit two's complement integer with values in the
- * range -9223372036854775808 to +9223372036854775807.
- */
-abstract class Int64List implements List<int>, TypedData {
- /**
- * Creates an [Int64List] of the specified length (in elements), all of
- * whose elements are initially zero.
- */
- external factory Int64List(int length);
-
- /**
- * Creates a [Int64List] with the same length as the [elements] list
- * and copies over the elements.
- *
- * Values are truncated to fit in the list when they are copied,
- * the same way storing values truncates them.
- */
- external factory Int64List.fromList(List<int> elements);
-
- /**
- * Creates an [Int64List] _view_ of the specified region in [buffer].
- *
- * Changes in the [Int64List] will be visible in the byte buffer
- * and vice versa.
- * If the [offsetInBytes] index of the region is not specified,
- * it defaults to zero (the first byte in the byte buffer).
- * If the length is not specified, it defaults to `null`,
- * which indicates that the view extends to the end of the byte buffer.
- *
- * Throws [RangeError] if [offsetInBytes] or [length] are negative, or
- * if [offsetInBytes] + ([length] * elementSizeInBytes) is greater than
- * the length of [buffer].
- *
- * Throws [ArgumentError] if [offsetInBytes] is not a multiple of
- * [bytesPerElement].
- */
- factory Int64List.view(ByteBuffer buffer,
- [int offsetInBytes = 0, int length]) {
- return buffer.asInt64List(offsetInBytes, length);
- }
-
- /** Deprecated, use [bytesPerElement] instead. */
- static const int BYTES_PER_ELEMENT = bytesPerElement;
- static const int bytesPerElement = 8;
-}
-
-/**
- * A fixed-length list of 64-bit unsigned integers that is viewable as a
- * [TypedData].
- *
- * For long lists, this implementation can be considerably
- * more space- and time-efficient than the default [List] implementation.
- *
- * Integers stored in the list are truncated to their low 64 bits,
- * interpreted as an unsigned 64-bit integer with values in the
- * range 0 to 18446744073709551616.
- */
-abstract class Uint64List implements List<int>, TypedData {
- /**
- * Creates a [Uint64List] of the specified length (in elements), all
- * of whose elements are initially zero.
- */
- external factory Uint64List(int length);
-
- /**
- * Creates a [Uint64List] with the same length as the [elements] list
- * and copies over the elements.
- *
- * Values are truncated to fit in the list when they are copied,
- * the same way storing values truncates them.
- */
- external factory Uint64List.fromList(List<int> elements);
-
- /**
- * Creates an [Uint64List] _view_ of the specified region in
- * the specified byte buffer.
- *
- * Changes in the [Uint64List] will be visible in the byte buffer
- * and vice versa.
- * If the [offsetInBytes] index of the region is not specified,
- * it defaults to zero (the first byte in the byte buffer).
- * If the length is not specified, it defaults to `null`,
- * which indicates that the view extends to the end of the byte buffer.
- *
- * Throws [RangeError] if [offsetInBytes] or [length] are negative, or
- * if [offsetInBytes] + ([length] * elementSizeInBytes) is greater than
- * the length of [buffer].
- *
- * Throws [ArgumentError] if [offsetInBytes] is not a multiple of
- * [bytesPerElement].
- */
- factory Uint64List.view(ByteBuffer buffer,
- [int offsetInBytes = 0, int length]) {
- return buffer.asUint64List(offsetInBytes, length);
- }
-
- /** Deprecated, use [bytesPerElement] instead. */
- static const int BYTES_PER_ELEMENT = bytesPerElement;
- static const int bytesPerElement = 8;
-}
-
-/**
- * A fixed-length list of IEEE 754 single-precision binary floating-point
- * numbers that is viewable as a [TypedData].
- *
- * For long lists, this
- * implementation can be considerably more space- and time-efficient than
- * the default [List] implementation.
- *
- * Double values stored in the list are converted to the nearest
- * single-precision value. Values read are converted to a double
- * value with the same value.
- */
-abstract class Float32List implements List<double>, TypedData {
- /**
- * Creates a [Float32List] of the specified length (in elements), all of
- * whose elements are initially zero.
- */
- external factory Float32List(int length);
-
- /**
- * Creates a [Float32List] with the same length as the [elements] list
- * and copies over the elements.
- *
- * Values are truncated to fit in the list when they are copied,
- * the same way storing values truncates them.
- */
- external factory Float32List.fromList(List<double> elements);
-
- /**
- * Creates a [Float32List] _view_ of the specified region in [buffer].
- *
- * Changes in the [Float32List] will be visible in the byte
- * buffer and vice versa.
- * If the [offsetInBytes] index of the region is not specified,
- * it defaults to zero (the first byte in the byte buffer).
- * If the length is not specified, it defaults to `null`,
- * which indicates that the view extends to the end of the byte buffer.
- *
- * Throws [RangeError] if [offsetInBytes] or [length] are negative, or
- * if [offsetInBytes] + ([length] * elementSizeInBytes) is greater than
- * the length of [buffer].
- *
- * Throws [ArgumentError] if [offsetInBytes] is not a multiple of
- * [bytesPerElement].
- */
- factory Float32List.view(ByteBuffer buffer,
- [int offsetInBytes = 0, int length]) {
- return buffer.asFloat32List(offsetInBytes, length);
- }
-
- /** Deprecated, use [bytesPerElement] instead. */
- static const int BYTES_PER_ELEMENT = bytesPerElement;
- static const int bytesPerElement = 4;
-}
-
-/**
- * A fixed-length list of IEEE 754 double-precision binary floating-point
- * numbers that is viewable as a [TypedData].
- *
- * For long lists, this
- * implementation can be considerably more space- and time-efficient than
- * the default [List] implementation.
- */
-abstract class Float64List implements List<double>, TypedData {
- /**
- * Creates a [Float64List] of the specified length (in elements), all of
- * whose elements are initially zero.
- */
- external factory Float64List(int length);
-
- /**
- * Creates a [Float64List] with the same length as the [elements] list
- * and copies over the elements.
- */
- external factory Float64List.fromList(List<double> elements);
-
- /**
- * Creates a [Float64List] _view_ of the specified region in [buffer].
- *
- * Changes in the [Float64List] will be visible in the byte
- * buffer and vice versa.
- * If the [offsetInBytes] index of the region is not specified,
- * it defaults to zero (the first byte in the byte buffer).
- * If the length is not specified, it defaults to `null`,
- * which indicates that the view extends to the end of the byte buffer.
- *
- * Throws [RangeError] if [offsetInBytes] or [length] are negative, or
- * if [offsetInBytes] + ([length] * elementSizeInBytes) is greater than
- * the length of [buffer].
- *
- * Throws [ArgumentError] if [offsetInBytes] is not a multiple of
- * [bytesPerElement].
- */
- factory Float64List.view(ByteBuffer buffer,
- [int offsetInBytes = 0, int length]) {
- return buffer.asFloat64List(offsetInBytes, length);
- }
-
- /** Deprecated, use [bytesPerElement] instead. */
- static const int BYTES_PER_ELEMENT = bytesPerElement;
- static const int bytesPerElement = 8;
-}
-
-/**
- * A fixed-length list of Float32x4 numbers that is viewable as a
- * [TypedData].
- *
- * For long lists, this implementation will be considerably more
- * space- and time-efficient than the default [List] implementation.
- */
-abstract class Float32x4List implements List<Float32x4>, TypedData {
- /**
- * Creates a [Float32x4List] of the specified length (in elements),
- * all of whose elements are initially zero.
- */
- external factory Float32x4List(int length);
-
- /**
- * Creates a [Float32x4List] with the same length as the [elements] list
- * and copies over the elements.
- */
- external factory Float32x4List.fromList(List<Float32x4> elements);
-
- /**
- * Creates a [Float32x4List] _view_ of the specified region in [buffer].
- *
- * Changes in the [Float32x4List] will be visible in the byte
- * buffer and vice versa.
- * If the [offsetInBytes] index of the region is not specified,
- * it defaults to zero (the first byte in the byte buffer).
- * If the length is not specified, it defaults to `null`,
- * which indicates that the view extends to the end of the byte buffer.
- *
- * Throws [RangeError] if [offsetInBytes] or [length] are negative, or
- * if [offsetInBytes] + ([length] * elementSizeInBytes) is greater than
- * the length of [buffer].
- *
- * Throws [ArgumentError] if [offsetInBytes] is not a multiple of
- * [bytesPerElement].
- */
- factory Float32x4List.view(ByteBuffer buffer,
- [int offsetInBytes = 0, int length]) {
- return buffer.asFloat32x4List(offsetInBytes, length);
- }
-
- /** Deprecated, use [bytesPerElement] instead. */
- static const int BYTES_PER_ELEMENT = bytesPerElement;
- static const int bytesPerElement = 16;
-}
-
-/**
- * A fixed-length list of Int32x4 numbers that is viewable as a
- * [TypedData].
- *
- * For long lists, this implementation will be considerably more
- * space- and time-efficient than the default [List] implementation.
- */
-abstract class Int32x4List implements List<Int32x4>, TypedData {
- /**
- * Creates a [Int32x4List] of the specified length (in elements),
- * all of whose elements are initially zero.
- */
- external factory Int32x4List(int length);
-
- /**
- * Creates a [Int32x4List] with the same length as the [elements] list
- * and copies over the elements.
- */
- external factory Int32x4List.fromList(List<Int32x4> elements);
-
- /**
- * Creates a [Int32x4List] _view_ of the specified region in [buffer].
- *
- * Changes in the [Int32x4List] will be visible in the byte
- * buffer and vice versa.
- * If the [offsetInBytes] index of the region is not specified,
- * it defaults to zero (the first byte in the byte buffer).
- * If the length is not specified, it defaults to `null`,
- * which indicates that the view extends to the end of the byte buffer.
- *
- * Throws [RangeError] if [offsetInBytes] or [length] are negative, or
- * if [offsetInBytes] + ([length] * elementSizeInBytes) is greater than
- * the length of [buffer].
- *
- * Throws [ArgumentError] if [offsetInBytes] is not a multiple of
- * [bytesPerElement].
- */
- factory Int32x4List.view(ByteBuffer buffer,
- [int offsetInBytes = 0, int length]) {
- return buffer.asInt32x4List(offsetInBytes, length);
- }
-
- /** Deprecated, use [bytesPerElement] instead. */
- static const int BYTES_PER_ELEMENT = bytesPerElement;
- static const int bytesPerElement = 16;
-}
-
-/**
- * A fixed-length list of Float64x2 numbers that is viewable as a
- * [TypedData].
- *
- * For long lists, this implementation will be considerably more
- * space- and time-efficient than the default [List] implementation.
- */
-abstract class Float64x2List implements List<Float64x2>, TypedData {
- /**
- * Creates a [Float64x2List] of the specified length (in elements),
- * all of whose elements have all lanes set to zero.
- */
- external factory Float64x2List(int length);
-
- /**
- * Creates a [Float64x2List] with the same length as the [elements] list
- * and copies over the elements.
- */
- external factory Float64x2List.fromList(List<Float64x2> elements);
-
- /**
- * Creates a [Float64x2List] _view_ of the specified region in [buffer].
- *
- * Changes in the [Float64x2List] will be visible in the byte
- * buffer and vice versa.
- * If the [offsetInBytes] index of the region is not specified,
- * it defaults to zero (the first byte in the byte buffer).
- * If the length is not specified, it defaults to `null`,
- * which indicates that the view extends to the end of the byte buffer.
- *
- * Throws [RangeError] if [offsetInBytes] or [length] are negative, or
- * if [offsetInBytes] + ([length] * elementSizeInBytes) is greater than
- * the length of [buffer].
- *
- * Throws [ArgumentError] if [offsetInBytes] is not a multiple of
- * [bytesPerElement].
- */
- factory Float64x2List.view(ByteBuffer buffer,
- [int offsetInBytes = 0, int length]) {
- return buffer.asFloat64x2List(offsetInBytes, length);
- }
-
- /** Deprecated, use [bytesPerElement] instead. */
- static const int BYTES_PER_ELEMENT = bytesPerElement;
- static const int bytesPerElement = 16;
-}
-
-/**
- * Float32x4 immutable value type and operations.
- *
- * Float32x4 stores 4 32-bit floating point values in "lanes".
- * The lanes are "x", "y", "z", and "w" respectively.
- */
-abstract class Float32x4 {
- external factory Float32x4(double x, double y, double z, double w);
- external factory Float32x4.splat(double v);
- external factory Float32x4.zero();
- external factory Float32x4.fromInt32x4Bits(Int32x4 x);
-
- /// Sets the x and y lanes to their respective values in [v] and sets the z
- /// and w lanes to 0.0.
- external factory Float32x4.fromFloat64x2(Float64x2 v);
-
- /// Addition operator.
- Float32x4 operator +(Float32x4 other);
-
- /// Negate operator.
- Float32x4 operator -();
-
- /// Subtraction operator.
- Float32x4 operator -(Float32x4 other);
-
- /// Multiplication operator.
- Float32x4 operator *(Float32x4 other);
-
- /// Division operator.
- Float32x4 operator /(Float32x4 other);
-
- /// Relational less than.
- Int32x4 lessThan(Float32x4 other);
-
- /// Relational less than or equal.
- Int32x4 lessThanOrEqual(Float32x4 other);
-
- /// Relational greater than.
- Int32x4 greaterThan(Float32x4 other);
-
- /// Relational greater than or equal.
- Int32x4 greaterThanOrEqual(Float32x4 other);
-
- /// Relational equal.
- Int32x4 equal(Float32x4 other);
-
- /// Relational not-equal.
- Int32x4 notEqual(Float32x4 other);
-
- /// Returns a copy of [this] each lane being scaled by [s].
- /// Equivalent to this * new Float32x4.splat(s)
- Float32x4 scale(double s);
-
- /// Returns the lane-wise absolute value of this [Float32x4].
- Float32x4 abs();
-
- /// Lane-wise clamp [this] to be in the range [lowerLimit]-[upperLimit].
- Float32x4 clamp(Float32x4 lowerLimit, Float32x4 upperLimit);
-
- /// Extracted x value.
- double get x;
-
- /// Extracted y value.
- double get y;
-
- /// Extracted z value.
- double get z;
-
- /// Extracted w value.
- double get w;
-
- /// Extract the sign bits from each lane return them in the first 4 bits.
- /// "x" lane is bit 0.
- /// "y" lane is bit 1.
- /// "z" lane is bit 2.
- /// "w" lane is bit 3.
- int get signMask;
-
- /// Mask passed to [shuffle] or [shuffleMix].
- static const int xxxx = 0x0;
- static const int xxxy = 0x40;
- static const int xxxz = 0x80;
- static const int xxxw = 0xC0;
- static const int xxyx = 0x10;
- static const int xxyy = 0x50;
- static const int xxyz = 0x90;
- static const int xxyw = 0xD0;
- static const int xxzx = 0x20;
- static const int xxzy = 0x60;
- static const int xxzz = 0xA0;
- static const int xxzw = 0xE0;
- static const int xxwx = 0x30;
- static const int xxwy = 0x70;
- static const int xxwz = 0xB0;
- static const int xxww = 0xF0;
- static const int xyxx = 0x4;
- static const int xyxy = 0x44;
- static const int xyxz = 0x84;
- static const int xyxw = 0xC4;
- static const int xyyx = 0x14;
- static const int xyyy = 0x54;
- static const int xyyz = 0x94;
- static const int xyyw = 0xD4;
- static const int xyzx = 0x24;
- static const int xyzy = 0x64;
- static const int xyzz = 0xA4;
- static const int xyzw = 0xE4;
- static const int xywx = 0x34;
- static const int xywy = 0x74;
- static const int xywz = 0xB4;
- static const int xyww = 0xF4;
- static const int xzxx = 0x8;
- static const int xzxy = 0x48;
- static const int xzxz = 0x88;
- static const int xzxw = 0xC8;
- static const int xzyx = 0x18;
- static const int xzyy = 0x58;
- static const int xzyz = 0x98;
- static const int xzyw = 0xD8;
- static const int xzzx = 0x28;
- static const int xzzy = 0x68;
- static const int xzzz = 0xA8;
- static const int xzzw = 0xE8;
- static const int xzwx = 0x38;
- static const int xzwy = 0x78;
- static const int xzwz = 0xB8;
- static const int xzww = 0xF8;
- static const int xwxx = 0xC;
- static const int xwxy = 0x4C;
- static const int xwxz = 0x8C;
- static const int xwxw = 0xCC;
- static const int xwyx = 0x1C;
- static const int xwyy = 0x5C;
- static const int xwyz = 0x9C;
- static const int xwyw = 0xDC;
- static const int xwzx = 0x2C;
- static const int xwzy = 0x6C;
- static const int xwzz = 0xAC;
- static const int xwzw = 0xEC;
- static const int xwwx = 0x3C;
- static const int xwwy = 0x7C;
- static const int xwwz = 0xBC;
- static const int xwww = 0xFC;
- static const int yxxx = 0x1;
- static const int yxxy = 0x41;
- static const int yxxz = 0x81;
- static const int yxxw = 0xC1;
- static const int yxyx = 0x11;
- static const int yxyy = 0x51;
- static const int yxyz = 0x91;
- static const int yxyw = 0xD1;
- static const int yxzx = 0x21;
- static const int yxzy = 0x61;
- static const int yxzz = 0xA1;
- static const int yxzw = 0xE1;
- static const int yxwx = 0x31;
- static const int yxwy = 0x71;
- static const int yxwz = 0xB1;
- static const int yxww = 0xF1;
- static const int yyxx = 0x5;
- static const int yyxy = 0x45;
- static const int yyxz = 0x85;
- static const int yyxw = 0xC5;
- static const int yyyx = 0x15;
- static const int yyyy = 0x55;
- static const int yyyz = 0x95;
- static const int yyyw = 0xD5;
- static const int yyzx = 0x25;
- static const int yyzy = 0x65;
- static const int yyzz = 0xA5;
- static const int yyzw = 0xE5;
- static const int yywx = 0x35;
- static const int yywy = 0x75;
- static const int yywz = 0xB5;
- static const int yyww = 0xF5;
- static const int yzxx = 0x9;
- static const int yzxy = 0x49;
- static const int yzxz = 0x89;
- static const int yzxw = 0xC9;
- static const int yzyx = 0x19;
- static const int yzyy = 0x59;
- static const int yzyz = 0x99;
- static const int yzyw = 0xD9;
- static const int yzzx = 0x29;
- static const int yzzy = 0x69;
- static const int yzzz = 0xA9;
- static const int yzzw = 0xE9;
- static const int yzwx = 0x39;
- static const int yzwy = 0x79;
- static const int yzwz = 0xB9;
- static const int yzww = 0xF9;
- static const int ywxx = 0xD;
- static const int ywxy = 0x4D;
- static const int ywxz = 0x8D;
- static const int ywxw = 0xCD;
- static const int ywyx = 0x1D;
- static const int ywyy = 0x5D;
- static const int ywyz = 0x9D;
- static const int ywyw = 0xDD;
- static const int ywzx = 0x2D;
- static const int ywzy = 0x6D;
- static const int ywzz = 0xAD;
- static const int ywzw = 0xED;
- static const int ywwx = 0x3D;
- static const int ywwy = 0x7D;
- static const int ywwz = 0xBD;
- static const int ywww = 0xFD;
- static const int zxxx = 0x2;
- static const int zxxy = 0x42;
- static const int zxxz = 0x82;
- static const int zxxw = 0xC2;
- static const int zxyx = 0x12;
- static const int zxyy = 0x52;
- static const int zxyz = 0x92;
- static const int zxyw = 0xD2;
- static const int zxzx = 0x22;
- static const int zxzy = 0x62;
- static const int zxzz = 0xA2;
- static const int zxzw = 0xE2;
- static const int zxwx = 0x32;
- static const int zxwy = 0x72;
- static const int zxwz = 0xB2;
- static const int zxww = 0xF2;
- static const int zyxx = 0x6;
- static const int zyxy = 0x46;
- static const int zyxz = 0x86;
- static const int zyxw = 0xC6;
- static const int zyyx = 0x16;
- static const int zyyy = 0x56;
- static const int zyyz = 0x96;
- static const int zyyw = 0xD6;
- static const int zyzx = 0x26;
- static const int zyzy = 0x66;
- static const int zyzz = 0xA6;
- static const int zyzw = 0xE6;
- static const int zywx = 0x36;
- static const int zywy = 0x76;
- static const int zywz = 0xB6;
- static const int zyww = 0xF6;
- static const int zzxx = 0xA;
- static const int zzxy = 0x4A;
- static const int zzxz = 0x8A;
- static const int zzxw = 0xCA;
- static const int zzyx = 0x1A;
- static const int zzyy = 0x5A;
- static const int zzyz = 0x9A;
- static const int zzyw = 0xDA;
- static const int zzzx = 0x2A;
- static const int zzzy = 0x6A;
- static const int zzzz = 0xAA;
- static const int zzzw = 0xEA;
- static const int zzwx = 0x3A;
- static const int zzwy = 0x7A;
- static const int zzwz = 0xBA;
- static const int zzww = 0xFA;
- static const int zwxx = 0xE;
- static const int zwxy = 0x4E;
- static const int zwxz = 0x8E;
- static const int zwxw = 0xCE;
- static const int zwyx = 0x1E;
- static const int zwyy = 0x5E;
- static const int zwyz = 0x9E;
- static const int zwyw = 0xDE;
- static const int zwzx = 0x2E;
- static const int zwzy = 0x6E;
- static const int zwzz = 0xAE;
- static const int zwzw = 0xEE;
- static const int zwwx = 0x3E;
- static const int zwwy = 0x7E;
- static const int zwwz = 0xBE;
- static const int zwww = 0xFE;
- static const int wxxx = 0x3;
- static const int wxxy = 0x43;
- static const int wxxz = 0x83;
- static const int wxxw = 0xC3;
- static const int wxyx = 0x13;
- static const int wxyy = 0x53;
- static const int wxyz = 0x93;
- static const int wxyw = 0xD3;
- static const int wxzx = 0x23;
- static const int wxzy = 0x63;
- static const int wxzz = 0xA3;
- static const int wxzw = 0xE3;
- static const int wxwx = 0x33;
- static const int wxwy = 0x73;
- static const int wxwz = 0xB3;
- static const int wxww = 0xF3;
- static const int wyxx = 0x7;
- static const int wyxy = 0x47;
- static const int wyxz = 0x87;
- static const int wyxw = 0xC7;
- static const int wyyx = 0x17;
- static const int wyyy = 0x57;
- static const int wyyz = 0x97;
- static const int wyyw = 0xD7;
- static const int wyzx = 0x27;
- static const int wyzy = 0x67;
- static const int wyzz = 0xA7;
- static const int wyzw = 0xE7;
- static const int wywx = 0x37;
- static const int wywy = 0x77;
- static const int wywz = 0xB7;
- static const int wyww = 0xF7;
- static const int wzxx = 0xB;
- static const int wzxy = 0x4B;
- static const int wzxz = 0x8B;
- static const int wzxw = 0xCB;
- static const int wzyx = 0x1B;
- static const int wzyy = 0x5B;
- static const int wzyz = 0x9B;
- static const int wzyw = 0xDB;
- static const int wzzx = 0x2B;
- static const int wzzy = 0x6B;
- static const int wzzz = 0xAB;
- static const int wzzw = 0xEB;
- static const int wzwx = 0x3B;
- static const int wzwy = 0x7B;
- static const int wzwz = 0xBB;
- static const int wzww = 0xFB;
- static const int wwxx = 0xF;
- static const int wwxy = 0x4F;
- static const int wwxz = 0x8F;
- static const int wwxw = 0xCF;
- static const int wwyx = 0x1F;
- static const int wwyy = 0x5F;
- static const int wwyz = 0x9F;
- static const int wwyw = 0xDF;
- static const int wwzx = 0x2F;
- static const int wwzy = 0x6F;
- static const int wwzz = 0xAF;
- static const int wwzw = 0xEF;
- static const int wwwx = 0x3F;
- static const int wwwy = 0x7F;
- static const int wwwz = 0xBF;
- static const int wwww = 0xFF;
- /** Deprecated, use [xxxx] instead. */
- static const int XXXX = xxxx;
- /** Deprecated, use [xxxy] instead. */
- static const int XXXY = xxxy;
- /** Deprecated, use [xxxz] instead. */
- static const int XXXZ = xxxz;
- /** Deprecated, use [xxxw] instead. */
- static const int XXXW = xxxw;
- /** Deprecated, use [xxyx] instead. */
- static const int XXYX = xxyx;
- /** Deprecated, use [xxyy] instead. */
- static const int XXYY = xxyy;
- /** Deprecated, use [xxyz] instead. */
- static const int XXYZ = xxyz;
- /** Deprecated, use [xxyw] instead. */
- static const int XXYW = xxyw;
- /** Deprecated, use [xxzx] instead. */
- static const int XXZX = xxzx;
- /** Deprecated, use [xxzy] instead. */
- static const int XXZY = xxzy;
- /** Deprecated, use [xxzz] instead. */
- static const int XXZZ = xxzz;
- /** Deprecated, use [xxzw] instead. */
- static const int XXZW = xxzw;
- /** Deprecated, use [xxwx] instead. */
- static const int XXWX = xxwx;
- /** Deprecated, use [xxwy] instead. */
- static const int XXWY = xxwy;
- /** Deprecated, use [xxwz] instead. */
- static const int XXWZ = xxwz;
- /** Deprecated, use [xxww] instead. */
- static const int XXWW = xxww;
- /** Deprecated, use [xyxx] instead. */
- static const int XYXX = xyxx;
- /** Deprecated, use [xyxy] instead. */
- static const int XYXY = xyxy;
- /** Deprecated, use [xyxz] instead. */
- static const int XYXZ = xyxz;
- /** Deprecated, use [xyxw] instead. */
- static const int XYXW = xyxw;
- /** Deprecated, use [xyyx] instead. */
- static const int XYYX = xyyx;
- /** Deprecated, use [xyyy] instead. */
- static const int XYYY = xyyy;
- /** Deprecated, use [xyyz] instead. */
- static const int XYYZ = xyyz;
- /** Deprecated, use [xyyw] instead. */
- static const int XYYW = xyyw;
- /** Deprecated, use [xyzx] instead. */
- static const int XYZX = xyzx;
- /** Deprecated, use [xyzy] instead. */
- static const int XYZY = xyzy;
- /** Deprecated, use [xyzz] instead. */
- static const int XYZZ = xyzz;
- /** Deprecated, use [xyzw] instead. */
- static const int XYZW = xyzw;
- /** Deprecated, use [xywx] instead. */
- static const int XYWX = xywx;
- /** Deprecated, use [xywy] instead. */
- static const int XYWY = xywy;
- /** Deprecated, use [xywz] instead. */
- static const int XYWZ = xywz;
- /** Deprecated, use [xyww] instead. */
- static const int XYWW = xyww;
- /** Deprecated, use [xzxx] instead. */
- static const int XZXX = xzxx;
- /** Deprecated, use [xzxy] instead. */
- static const int XZXY = xzxy;
- /** Deprecated, use [xzxz] instead. */
- static const int XZXZ = xzxz;
- /** Deprecated, use [xzxw] instead. */
- static const int XZXW = xzxw;
- /** Deprecated, use [xzyx] instead. */
- static const int XZYX = xzyx;
- /** Deprecated, use [xzyy] instead. */
- static const int XZYY = xzyy;
- /** Deprecated, use [xzyz] instead. */
- static const int XZYZ = xzyz;
- /** Deprecated, use [xzyw] instead. */
- static const int XZYW = xzyw;
- /** Deprecated, use [xzzx] instead. */
- static const int XZZX = xzzx;
- /** Deprecated, use [xzzy] instead. */
- static const int XZZY = xzzy;
- /** Deprecated, use [xzzz] instead. */
- static const int XZZZ = xzzz;
- /** Deprecated, use [xzzw] instead. */
- static const int XZZW = xzzw;
- /** Deprecated, use [xzwx] instead. */
- static const int XZWX = xzwx;
- /** Deprecated, use [xzwy] instead. */
- static const int XZWY = xzwy;
- /** Deprecated, use [xzwz] instead. */
- static const int XZWZ = xzwz;
- /** Deprecated, use [xzww] instead. */
- static const int XZWW = xzww;
- /** Deprecated, use [xwxx] instead. */
- static const int XWXX = xwxx;
- /** Deprecated, use [xwxy] instead. */
- static const int XWXY = xwxy;
- /** Deprecated, use [xwxz] instead. */
- static const int XWXZ = xwxz;
- /** Deprecated, use [xwxw] instead. */
- static const int XWXW = xwxw;
- /** Deprecated, use [xwyx] instead. */
- static const int XWYX = xwyx;
- /** Deprecated, use [xwyy] instead. */
- static const int XWYY = xwyy;
- /** Deprecated, use [xwyz] instead. */
- static const int XWYZ = xwyz;
- /** Deprecated, use [xwyw] instead. */
- static const int XWYW = xwyw;
- /** Deprecated, use [xwzx] instead. */
- static const int XWZX = xwzx;
- /** Deprecated, use [xwzy] instead. */
- static const int XWZY = xwzy;
- /** Deprecated, use [xwzz] instead. */
- static const int XWZZ = xwzz;
- /** Deprecated, use [xwzw] instead. */
- static const int XWZW = xwzw;
- /** Deprecated, use [xwwx] instead. */
- static const int XWWX = xwwx;
- /** Deprecated, use [xwwy] instead. */
- static const int XWWY = xwwy;
- /** Deprecated, use [xwwz] instead. */
- static const int XWWZ = xwwz;
- /** Deprecated, use [xwww] instead. */
- static const int XWWW = xwww;
- /** Deprecated, use [yxxx] instead. */
- static const int YXXX = yxxx;
- /** Deprecated, use [yxxy] instead. */
- static const int YXXY = yxxy;
- /** Deprecated, use [yxxz] instead. */
- static const int YXXZ = yxxz;
- /** Deprecated, use [yxxw] instead. */
- static const int YXXW = yxxw;
- /** Deprecated, use [yxyx] instead. */
- static const int YXYX = yxyx;
- /** Deprecated, use [yxyy] instead. */
- static const int YXYY = yxyy;
- /** Deprecated, use [yxyz] instead. */
- static const int YXYZ = yxyz;
- /** Deprecated, use [yxyw] instead. */
- static const int YXYW = yxyw;
- /** Deprecated, use [yxzx] instead. */
- static const int YXZX = yxzx;
- /** Deprecated, use [yxzy] instead. */
- static const int YXZY = yxzy;
- /** Deprecated, use [yxzz] instead. */
- static const int YXZZ = yxzz;
- /** Deprecated, use [yxzw] instead. */
- static const int YXZW = yxzw;
- /** Deprecated, use [yxwx] instead. */
- static const int YXWX = yxwx;
- /** Deprecated, use [yxwy] instead. */
- static const int YXWY = yxwy;
- /** Deprecated, use [yxwz] instead. */
- static const int YXWZ = yxwz;
- /** Deprecated, use [yxww] instead. */
- static const int YXWW = yxww;
- /** Deprecated, use [yyxx] instead. */
- static const int YYXX = yyxx;
- /** Deprecated, use [yyxy] instead. */
- static const int YYXY = yyxy;
- /** Deprecated, use [yyxz] instead. */
- static const int YYXZ = yyxz;
- /** Deprecated, use [yyxw] instead. */
- static const int YYXW = yyxw;
- /** Deprecated, use [yyyx] instead. */
- static const int YYYX = yyyx;
- /** Deprecated, use [yyyy] instead. */
- static const int YYYY = yyyy;
- /** Deprecated, use [yyyz] instead. */
- static const int YYYZ = yyyz;
- /** Deprecated, use [yyyw] instead. */
- static const int YYYW = yyyw;
- /** Deprecated, use [yyzx] instead. */
- static const int YYZX = yyzx;
- /** Deprecated, use [yyzy] instead. */
- static const int YYZY = yyzy;
- /** Deprecated, use [yyzz] instead. */
- static const int YYZZ = yyzz;
- /** Deprecated, use [yyzw] instead. */
- static const int YYZW = yyzw;
- /** Deprecated, use [yywx] instead. */
- static const int YYWX = yywx;
- /** Deprecated, use [yywy] instead. */
- static const int YYWY = yywy;
- /** Deprecated, use [yywz] instead. */
- static const int YYWZ = yywz;
- /** Deprecated, use [yyww] instead. */
- static const int YYWW = yyww;
- /** Deprecated, use [yzxx] instead. */
- static const int YZXX = yzxx;
- /** Deprecated, use [yzxy] instead. */
- static const int YZXY = yzxy;
- /** Deprecated, use [yzxz] instead. */
- static const int YZXZ = yzxz;
- /** Deprecated, use [yzxw] instead. */
- static const int YZXW = yzxw;
- /** Deprecated, use [yzyx] instead. */
- static const int YZYX = yzyx;
- /** Deprecated, use [yzyy] instead. */
- static const int YZYY = yzyy;
- /** Deprecated, use [yzyz] instead. */
- static const int YZYZ = yzyz;
- /** Deprecated, use [yzyw] instead. */
- static const int YZYW = yzyw;
- /** Deprecated, use [yzzx] instead. */
- static const int YZZX = yzzx;
- /** Deprecated, use [yzzy] instead. */
- static const int YZZY = yzzy;
- /** Deprecated, use [yzzz] instead. */
- static const int YZZZ = yzzz;
- /** Deprecated, use [yzzw] instead. */
- static const int YZZW = yzzw;
- /** Deprecated, use [yzwx] instead. */
- static const int YZWX = yzwx;
- /** Deprecated, use [yzwy] instead. */
- static const int YZWY = yzwy;
- /** Deprecated, use [yzwz] instead. */
- static const int YZWZ = yzwz;
- /** Deprecated, use [yzww] instead. */
- static const int YZWW = yzww;
- /** Deprecated, use [ywxx] instead. */
- static const int YWXX = ywxx;
- /** Deprecated, use [ywxy] instead. */
- static const int YWXY = ywxy;
- /** Deprecated, use [ywxz] instead. */
- static const int YWXZ = ywxz;
- /** Deprecated, use [ywxw] instead. */
- static const int YWXW = ywxw;
- /** Deprecated, use [ywyx] instead. */
- static const int YWYX = ywyx;
- /** Deprecated, use [ywyy] instead. */
- static const int YWYY = ywyy;
- /** Deprecated, use [ywyz] instead. */
- static const int YWYZ = ywyz;
- /** Deprecated, use [ywyw] instead. */
- static const int YWYW = ywyw;
- /** Deprecated, use [ywzx] instead. */
- static const int YWZX = ywzx;
- /** Deprecated, use [ywzy] instead. */
- static const int YWZY = ywzy;
- /** Deprecated, use [ywzz] instead. */
- static const int YWZZ = ywzz;
- /** Deprecated, use [ywzw] instead. */
- static const int YWZW = ywzw;
- /** Deprecated, use [ywwx] instead. */
- static const int YWWX = ywwx;
- /** Deprecated, use [ywwy] instead. */
- static const int YWWY = ywwy;
- /** Deprecated, use [ywwz] instead. */
- static const int YWWZ = ywwz;
- /** Deprecated, use [ywww] instead. */
- static const int YWWW = ywww;
- /** Deprecated, use [zxxx] instead. */
- static const int ZXXX = zxxx;
- /** Deprecated, use [zxxy] instead. */
- static const int ZXXY = zxxy;
- /** Deprecated, use [zxxz] instead. */
- static const int ZXXZ = zxxz;
- /** Deprecated, use [zxxw] instead. */
- static const int ZXXW = zxxw;
- /** Deprecated, use [zxyx] instead. */
- static const int ZXYX = zxyx;
- /** Deprecated, use [zxyy] instead. */
- static const int ZXYY = zxyy;
- /** Deprecated, use [zxyz] instead. */
- static const int ZXYZ = zxyz;
- /** Deprecated, use [zxyw] instead. */
- static const int ZXYW = zxyw;
- /** Deprecated, use [zxzx] instead. */
- static const int ZXZX = zxzx;
- /** Deprecated, use [zxzy] instead. */
- static const int ZXZY = zxzy;
- /** Deprecated, use [zxzz] instead. */
- static const int ZXZZ = zxzz;
- /** Deprecated, use [zxzw] instead. */
- static const int ZXZW = zxzw;
- /** Deprecated, use [zxwx] instead. */
- static const int ZXWX = zxwx;
- /** Deprecated, use [zxwy] instead. */
- static const int ZXWY = zxwy;
- /** Deprecated, use [zxwz] instead. */
- static const int ZXWZ = zxwz;
- /** Deprecated, use [zxww] instead. */
- static const int ZXWW = zxww;
- /** Deprecated, use [zyxx] instead. */
- static const int ZYXX = zyxx;
- /** Deprecated, use [zyxy] instead. */
- static const int ZYXY = zyxy;
- /** Deprecated, use [zyxz] instead. */
- static const int ZYXZ = zyxz;
- /** Deprecated, use [zyxw] instead. */
- static const int ZYXW = zyxw;
- /** Deprecated, use [zyyx] instead. */
- static const int ZYYX = zyyx;
- /** Deprecated, use [zyyy] instead. */
- static const int ZYYY = zyyy;
- /** Deprecated, use [zyyz] instead. */
- static const int ZYYZ = zyyz;
- /** Deprecated, use [zyyw] instead. */
- static const int ZYYW = zyyw;
- /** Deprecated, use [zyzx] instead. */
- static const int ZYZX = zyzx;
- /** Deprecated, use [zyzy] instead. */
- static const int ZYZY = zyzy;
- /** Deprecated, use [zyzz] instead. */
- static const int ZYZZ = zyzz;
- /** Deprecated, use [zyzw] instead. */
- static const int ZYZW = zyzw;
- /** Deprecated, use [zywx] instead. */
- static const int ZYWX = zywx;
- /** Deprecated, use [zywy] instead. */
- static const int ZYWY = zywy;
- /** Deprecated, use [zywz] instead. */
- static const int ZYWZ = zywz;
- /** Deprecated, use [zyww] instead. */
- static const int ZYWW = zyww;
- /** Deprecated, use [zzxx] instead. */
- static const int ZZXX = zzxx;
- /** Deprecated, use [zzxy] instead. */
- static const int ZZXY = zzxy;
- /** Deprecated, use [zzxz] instead. */
- static const int ZZXZ = zzxz;
- /** Deprecated, use [zzxw] instead. */
- static const int ZZXW = zzxw;
- /** Deprecated, use [zzyx] instead. */
- static const int ZZYX = zzyx;
- /** Deprecated, use [zzyy] instead. */
- static const int ZZYY = zzyy;
- /** Deprecated, use [zzyz] instead. */
- static const int ZZYZ = zzyz;
- /** Deprecated, use [zzyw] instead. */
- static const int ZZYW = zzyw;
- /** Deprecated, use [zzzx] instead. */
- static const int ZZZX = zzzx;
- /** Deprecated, use [zzzy] instead. */
- static const int ZZZY = zzzy;
- /** Deprecated, use [zzzz] instead. */
- static const int ZZZZ = zzzz;
- /** Deprecated, use [zzzw] instead. */
- static const int ZZZW = zzzw;
- /** Deprecated, use [zzwx] instead. */
- static const int ZZWX = zzwx;
- /** Deprecated, use [zzwy] instead. */
- static const int ZZWY = zzwy;
- /** Deprecated, use [zzwz] instead. */
- static const int ZZWZ = zzwz;
- /** Deprecated, use [zzww] instead. */
- static const int ZZWW = zzww;
- /** Deprecated, use [zwxx] instead. */
- static const int ZWXX = zwxx;
- /** Deprecated, use [zwxy] instead. */
- static const int ZWXY = zwxy;
- /** Deprecated, use [zwxz] instead. */
- static const int ZWXZ = zwxz;
- /** Deprecated, use [zwxw] instead. */
- static const int ZWXW = zwxw;
- /** Deprecated, use [zwyx] instead. */
- static const int ZWYX = zwyx;
- /** Deprecated, use [zwyy] instead. */
- static const int ZWYY = zwyy;
- /** Deprecated, use [zwyz] instead. */
- static const int ZWYZ = zwyz;
- /** Deprecated, use [zwyw] instead. */
- static const int ZWYW = zwyw;
- /** Deprecated, use [zwzx] instead. */
- static const int ZWZX = zwzx;
- /** Deprecated, use [zwzy] instead. */
- static const int ZWZY = zwzy;
- /** Deprecated, use [zwzz] instead. */
- static const int ZWZZ = zwzz;
- /** Deprecated, use [zwzw] instead. */
- static const int ZWZW = zwzw;
- /** Deprecated, use [zwwx] instead. */
- static const int ZWWX = zwwx;
- /** Deprecated, use [zwwy] instead. */
- static const int ZWWY = zwwy;
- /** Deprecated, use [zwwz] instead. */
- static const int ZWWZ = zwwz;
- /** Deprecated, use [zwww] instead. */
- static const int ZWWW = zwww;
- /** Deprecated, use [wxxx] instead. */
- static const int WXXX = wxxx;
- /** Deprecated, use [wxxy] instead. */
- static const int WXXY = wxxy;
- /** Deprecated, use [wxxz] instead. */
- static const int WXXZ = wxxz;
- /** Deprecated, use [wxxw] instead. */
- static const int WXXW = wxxw;
- /** Deprecated, use [wxyx] instead. */
- static const int WXYX = wxyx;
- /** Deprecated, use [wxyy] instead. */
- static const int WXYY = wxyy;
- /** Deprecated, use [wxyz] instead. */
- static const int WXYZ = wxyz;
- /** Deprecated, use [wxyw] instead. */
- static const int WXYW = wxyw;
- /** Deprecated, use [wxzx] instead. */
- static const int WXZX = wxzx;
- /** Deprecated, use [wxzy] instead. */
- static const int WXZY = wxzy;
- /** Deprecated, use [wxzz] instead. */
- static const int WXZZ = wxzz;
- /** Deprecated, use [wxzw] instead. */
- static const int WXZW = wxzw;
- /** Deprecated, use [wxwx] instead. */
- static const int WXWX = wxwx;
- /** Deprecated, use [wxwy] instead. */
- static const int WXWY = wxwy;
- /** Deprecated, use [wxwz] instead. */
- static const int WXWZ = wxwz;
- /** Deprecated, use [wxww] instead. */
- static const int WXWW = wxww;
- /** Deprecated, use [wyxx] instead. */
- static const int WYXX = wyxx;
- /** Deprecated, use [wyxy] instead. */
- static const int WYXY = wyxy;
- /** Deprecated, use [wyxz] instead. */
- static const int WYXZ = wyxz;
- /** Deprecated, use [wyxw] instead. */
- static const int WYXW = wyxw;
- /** Deprecated, use [wyyx] instead. */
- static const int WYYX = wyyx;
- /** Deprecated, use [wyyy] instead. */
- static const int WYYY = wyyy;
- /** Deprecated, use [wyyz] instead. */
- static const int WYYZ = wyyz;
- /** Deprecated, use [wyyw] instead. */
- static const int WYYW = wyyw;
- /** Deprecated, use [wyzx] instead. */
- static const int WYZX = wyzx;
- /** Deprecated, use [wyzy] instead. */
- static const int WYZY = wyzy;
- /** Deprecated, use [wyzz] instead. */
- static const int WYZZ = wyzz;
- /** Deprecated, use [wyzw] instead. */
- static const int WYZW = wyzw;
- /** Deprecated, use [wywx] instead. */
- static const int WYWX = wywx;
- /** Deprecated, use [wywy] instead. */
- static const int WYWY = wywy;
- /** Deprecated, use [wywz] instead. */
- static const int WYWZ = wywz;
- /** Deprecated, use [wyww] instead. */
- static const int WYWW = wyww;
- /** Deprecated, use [wzxx] instead. */
- static const int WZXX = wzxx;
- /** Deprecated, use [wzxy] instead. */
- static const int WZXY = wzxy;
- /** Deprecated, use [wzxz] instead. */
- static const int WZXZ = wzxz;
- /** Deprecated, use [wzxw] instead. */
- static const int WZXW = wzxw;
- /** Deprecated, use [wzyx] instead. */
- static const int WZYX = wzyx;
- /** Deprecated, use [wzyy] instead. */
- static const int WZYY = wzyy;
- /** Deprecated, use [wzyz] instead. */
- static const int WZYZ = wzyz;
- /** Deprecated, use [wzyw] instead. */
- static const int WZYW = wzyw;
- /** Deprecated, use [wzzx] instead. */
- static const int WZZX = wzzx;
- /** Deprecated, use [wzzy] instead. */
- static const int WZZY = wzzy;
- /** Deprecated, use [wzzz] instead. */
- static const int WZZZ = wzzz;
- /** Deprecated, use [wzzw] instead. */
- static const int WZZW = wzzw;
- /** Deprecated, use [wzwx] instead. */
- static const int WZWX = wzwx;
- /** Deprecated, use [wzwy] instead. */
- static const int WZWY = wzwy;
- /** Deprecated, use [wzwz] instead. */
- static const int WZWZ = wzwz;
- /** Deprecated, use [wzww] instead. */
- static const int WZWW = wzww;
- /** Deprecated, use [wwxx] instead. */
- static const int WWXX = wwxx;
- /** Deprecated, use [wwxy] instead. */
- static const int WWXY = wwxy;
- /** Deprecated, use [wwxz] instead. */
- static const int WWXZ = wwxz;
- /** Deprecated, use [wwxw] instead. */
- static const int WWXW = wwxw;
- /** Deprecated, use [wwyx] instead. */
- static const int WWYX = wwyx;
- /** Deprecated, use [wwyy] instead. */
- static const int WWYY = wwyy;
- /** Deprecated, use [wwyz] instead. */
- static const int WWYZ = wwyz;
- /** Deprecated, use [wwyw] instead. */
- static const int WWYW = wwyw;
- /** Deprecated, use [wwzx] instead. */
- static const int WWZX = wwzx;
- /** Deprecated, use [wwzy] instead. */
- static const int WWZY = wwzy;
- /** Deprecated, use [wwzz] instead. */
- static const int WWZZ = wwzz;
- /** Deprecated, use [wwzw] instead. */
- static const int WWZW = wwzw;
- /** Deprecated, use [wwwx] instead. */
- static const int WWWX = wwwx;
- /** Deprecated, use [wwwy] instead. */
- static const int WWWY = wwwy;
- /** Deprecated, use [wwwz] instead. */
- static const int WWWZ = wwwz;
- /** Deprecated, use [wwww] instead. */
- static const int WWWW = wwww;
-
- /// Shuffle the lane values. [mask] must be one of the 256 shuffle constants.
- Float32x4 shuffle(int mask);
-
- /// Shuffle the lane values in [this] and [other]. The returned
- /// Float32x4 will have XY lanes from [this] and ZW lanes from [other].
- /// Uses the same [mask] as [shuffle].
- Float32x4 shuffleMix(Float32x4 other, int mask);
-
- /// Returns a new [Float32x4] copied from [this] with a new x value.
- Float32x4 withX(double x);
-
- /// Returns a new [Float32x4] copied from [this] with a new y value.
- Float32x4 withY(double y);
-
- /// Returns a new [Float32x4] copied from [this] with a new z value.
- Float32x4 withZ(double z);
-
- /// Returns a new [Float32x4] copied from [this] with a new w value.
- Float32x4 withW(double w);
-
- /// Returns the lane-wise minimum value in [this] or [other].
- Float32x4 min(Float32x4 other);
-
- /// Returns the lane-wise maximum value in [this] or [other].
- Float32x4 max(Float32x4 other);
-
- /// Returns the square root of [this].
- Float32x4 sqrt();
-
- /// Returns the reciprocal of [this].
- Float32x4 reciprocal();
-
- /// Returns the square root of the reciprocal of [this].
- Float32x4 reciprocalSqrt();
-}
-
-/**
- * Int32x4 and operations.
- *
- * Int32x4 stores 4 32-bit bit-masks in "lanes".
- * The lanes are "x", "y", "z", and "w" respectively.
- */
-abstract class Int32x4 {
- external factory Int32x4(int x, int y, int z, int w);
- external factory Int32x4.bool(bool x, bool y, bool z, bool w);
- external factory Int32x4.fromFloat32x4Bits(Float32x4 x);
-
- /// The bit-wise or operator.
- Int32x4 operator |(Int32x4 other);
-
- /// The bit-wise and operator.
- Int32x4 operator &(Int32x4 other);
-
- /// The bit-wise xor operator.
- Int32x4 operator ^(Int32x4 other);
-
- /// Addition operator.
- Int32x4 operator +(Int32x4 other);
-
- /// Subtraction operator.
- Int32x4 operator -(Int32x4 other);
-
- /// Extract 32-bit mask from x lane.
- int get x;
-
- /// Extract 32-bit mask from y lane.
- int get y;
-
- /// Extract 32-bit mask from z lane.
- int get z;
-
- /// Extract 32-bit mask from w lane.
- int get w;
-
- /// Extract the top bit from each lane return them in the first 4 bits.
- /// "x" lane is bit 0.
- /// "y" lane is bit 1.
- /// "z" lane is bit 2.
- /// "w" lane is bit 3.
- int get signMask;
-
- /// Mask passed to [shuffle] or [shuffleMix].
- static const int xxxx = 0x0;
- static const int xxxy = 0x40;
- static const int xxxz = 0x80;
- static const int xxxw = 0xC0;
- static const int xxyx = 0x10;
- static const int xxyy = 0x50;
- static const int xxyz = 0x90;
- static const int xxyw = 0xD0;
- static const int xxzx = 0x20;
- static const int xxzy = 0x60;
- static const int xxzz = 0xA0;
- static const int xxzw = 0xE0;
- static const int xxwx = 0x30;
- static const int xxwy = 0x70;
- static const int xxwz = 0xB0;
- static const int xxww = 0xF0;
- static const int xyxx = 0x4;
- static const int xyxy = 0x44;
- static const int xyxz = 0x84;
- static const int xyxw = 0xC4;
- static const int xyyx = 0x14;
- static const int xyyy = 0x54;
- static const int xyyz = 0x94;
- static const int xyyw = 0xD4;
- static const int xyzx = 0x24;
- static const int xyzy = 0x64;
- static const int xyzz = 0xA4;
- static const int xyzw = 0xE4;
- static const int xywx = 0x34;
- static const int xywy = 0x74;
- static const int xywz = 0xB4;
- static const int xyww = 0xF4;
- static const int xzxx = 0x8;
- static const int xzxy = 0x48;
- static const int xzxz = 0x88;
- static const int xzxw = 0xC8;
- static const int xzyx = 0x18;
- static const int xzyy = 0x58;
- static const int xzyz = 0x98;
- static const int xzyw = 0xD8;
- static const int xzzx = 0x28;
- static const int xzzy = 0x68;
- static const int xzzz = 0xA8;
- static const int xzzw = 0xE8;
- static const int xzwx = 0x38;
- static const int xzwy = 0x78;
- static const int xzwz = 0xB8;
- static const int xzww = 0xF8;
- static const int xwxx = 0xC;
- static const int xwxy = 0x4C;
- static const int xwxz = 0x8C;
- static const int xwxw = 0xCC;
- static const int xwyx = 0x1C;
- static const int xwyy = 0x5C;
- static const int xwyz = 0x9C;
- static const int xwyw = 0xDC;
- static const int xwzx = 0x2C;
- static const int xwzy = 0x6C;
- static const int xwzz = 0xAC;
- static const int xwzw = 0xEC;
- static const int xwwx = 0x3C;
- static const int xwwy = 0x7C;
- static const int xwwz = 0xBC;
- static const int xwww = 0xFC;
- static const int yxxx = 0x1;
- static const int yxxy = 0x41;
- static const int yxxz = 0x81;
- static const int yxxw = 0xC1;
- static const int yxyx = 0x11;
- static const int yxyy = 0x51;
- static const int yxyz = 0x91;
- static const int yxyw = 0xD1;
- static const int yxzx = 0x21;
- static const int yxzy = 0x61;
- static const int yxzz = 0xA1;
- static const int yxzw = 0xE1;
- static const int yxwx = 0x31;
- static const int yxwy = 0x71;
- static const int yxwz = 0xB1;
- static const int yxww = 0xF1;
- static const int yyxx = 0x5;
- static const int yyxy = 0x45;
- static const int yyxz = 0x85;
- static const int yyxw = 0xC5;
- static const int yyyx = 0x15;
- static const int yyyy = 0x55;
- static const int yyyz = 0x95;
- static const int yyyw = 0xD5;
- static const int yyzx = 0x25;
- static const int yyzy = 0x65;
- static const int yyzz = 0xA5;
- static const int yyzw = 0xE5;
- static const int yywx = 0x35;
- static const int yywy = 0x75;
- static const int yywz = 0xB5;
- static const int yyww = 0xF5;
- static const int yzxx = 0x9;
- static const int yzxy = 0x49;
- static const int yzxz = 0x89;
- static const int yzxw = 0xC9;
- static const int yzyx = 0x19;
- static const int yzyy = 0x59;
- static const int yzyz = 0x99;
- static const int yzyw = 0xD9;
- static const int yzzx = 0x29;
- static const int yzzy = 0x69;
- static const int yzzz = 0xA9;
- static const int yzzw = 0xE9;
- static const int yzwx = 0x39;
- static const int yzwy = 0x79;
- static const int yzwz = 0xB9;
- static const int yzww = 0xF9;
- static const int ywxx = 0xD;
- static const int ywxy = 0x4D;
- static const int ywxz = 0x8D;
- static const int ywxw = 0xCD;
- static const int ywyx = 0x1D;
- static const int ywyy = 0x5D;
- static const int ywyz = 0x9D;
- static const int ywyw = 0xDD;
- static const int ywzx = 0x2D;
- static const int ywzy = 0x6D;
- static const int ywzz = 0xAD;
- static const int ywzw = 0xED;
- static const int ywwx = 0x3D;
- static const int ywwy = 0x7D;
- static const int ywwz = 0xBD;
- static const int ywww = 0xFD;
- static const int zxxx = 0x2;
- static const int zxxy = 0x42;
- static const int zxxz = 0x82;
- static const int zxxw = 0xC2;
- static const int zxyx = 0x12;
- static const int zxyy = 0x52;
- static const int zxyz = 0x92;
- static const int zxyw = 0xD2;
- static const int zxzx = 0x22;
- static const int zxzy = 0x62;
- static const int zxzz = 0xA2;
- static const int zxzw = 0xE2;
- static const int zxwx = 0x32;
- static const int zxwy = 0x72;
- static const int zxwz = 0xB2;
- static const int zxww = 0xF2;
- static const int zyxx = 0x6;
- static const int zyxy = 0x46;
- static const int zyxz = 0x86;
- static const int zyxw = 0xC6;
- static const int zyyx = 0x16;
- static const int zyyy = 0x56;
- static const int zyyz = 0x96;
- static const int zyyw = 0xD6;
- static const int zyzx = 0x26;
- static const int zyzy = 0x66;
- static const int zyzz = 0xA6;
- static const int zyzw = 0xE6;
- static const int zywx = 0x36;
- static const int zywy = 0x76;
- static const int zywz = 0xB6;
- static const int zyww = 0xF6;
- static const int zzxx = 0xA;
- static const int zzxy = 0x4A;
- static const int zzxz = 0x8A;
- static const int zzxw = 0xCA;
- static const int zzyx = 0x1A;
- static const int zzyy = 0x5A;
- static const int zzyz = 0x9A;
- static const int zzyw = 0xDA;
- static const int zzzx = 0x2A;
- static const int zzzy = 0x6A;
- static const int zzzz = 0xAA;
- static const int zzzw = 0xEA;
- static const int zzwx = 0x3A;
- static const int zzwy = 0x7A;
- static const int zzwz = 0xBA;
- static const int zzww = 0xFA;
- static const int zwxx = 0xE;
- static const int zwxy = 0x4E;
- static const int zwxz = 0x8E;
- static const int zwxw = 0xCE;
- static const int zwyx = 0x1E;
- static const int zwyy = 0x5E;
- static const int zwyz = 0x9E;
- static const int zwyw = 0xDE;
- static const int zwzx = 0x2E;
- static const int zwzy = 0x6E;
- static const int zwzz = 0xAE;
- static const int zwzw = 0xEE;
- static const int zwwx = 0x3E;
- static const int zwwy = 0x7E;
- static const int zwwz = 0xBE;
- static const int zwww = 0xFE;
- static const int wxxx = 0x3;
- static const int wxxy = 0x43;
- static const int wxxz = 0x83;
- static const int wxxw = 0xC3;
- static const int wxyx = 0x13;
- static const int wxyy = 0x53;
- static const int wxyz = 0x93;
- static const int wxyw = 0xD3;
- static const int wxzx = 0x23;
- static const int wxzy = 0x63;
- static const int wxzz = 0xA3;
- static const int wxzw = 0xE3;
- static const int wxwx = 0x33;
- static const int wxwy = 0x73;
- static const int wxwz = 0xB3;
- static const int wxww = 0xF3;
- static const int wyxx = 0x7;
- static const int wyxy = 0x47;
- static const int wyxz = 0x87;
- static const int wyxw = 0xC7;
- static const int wyyx = 0x17;
- static const int wyyy = 0x57;
- static const int wyyz = 0x97;
- static const int wyyw = 0xD7;
- static const int wyzx = 0x27;
- static const int wyzy = 0x67;
- static const int wyzz = 0xA7;
- static const int wyzw = 0xE7;
- static const int wywx = 0x37;
- static const int wywy = 0x77;
- static const int wywz = 0xB7;
- static const int wyww = 0xF7;
- static const int wzxx = 0xB;
- static const int wzxy = 0x4B;
- static const int wzxz = 0x8B;
- static const int wzxw = 0xCB;
- static const int wzyx = 0x1B;
- static const int wzyy = 0x5B;
- static const int wzyz = 0x9B;
- static const int wzyw = 0xDB;
- static const int wzzx = 0x2B;
- static const int wzzy = 0x6B;
- static const int wzzz = 0xAB;
- static const int wzzw = 0xEB;
- static const int wzwx = 0x3B;
- static const int wzwy = 0x7B;
- static const int wzwz = 0xBB;
- static const int wzww = 0xFB;
- static const int wwxx = 0xF;
- static const int wwxy = 0x4F;
- static const int wwxz = 0x8F;
- static const int wwxw = 0xCF;
- static const int wwyx = 0x1F;
- static const int wwyy = 0x5F;
- static const int wwyz = 0x9F;
- static const int wwyw = 0xDF;
- static const int wwzx = 0x2F;
- static const int wwzy = 0x6F;
- static const int wwzz = 0xAF;
- static const int wwzw = 0xEF;
- static const int wwwx = 0x3F;
- static const int wwwy = 0x7F;
- static const int wwwz = 0xBF;
- static const int wwww = 0xFF;
- /** Deprecated, use [xxxx] instead. */
- static const int XXXX = xxxx;
- /** Deprecated, use [xxxy] instead. */
- static const int XXXY = xxxy;
- /** Deprecated, use [xxxz] instead. */
- static const int XXXZ = xxxz;
- /** Deprecated, use [xxxw] instead. */
- static const int XXXW = xxxw;
- /** Deprecated, use [xxyx] instead. */
- static const int XXYX = xxyx;
- /** Deprecated, use [xxyy] instead. */
- static const int XXYY = xxyy;
- /** Deprecated, use [xxyz] instead. */
- static const int XXYZ = xxyz;
- /** Deprecated, use [xxyw] instead. */
- static const int XXYW = xxyw;
- /** Deprecated, use [xxzx] instead. */
- static const int XXZX = xxzx;
- /** Deprecated, use [xxzy] instead. */
- static const int XXZY = xxzy;
- /** Deprecated, use [xxzz] instead. */
- static const int XXZZ = xxzz;
- /** Deprecated, use [xxzw] instead. */
- static const int XXZW = xxzw;
- /** Deprecated, use [xxwx] instead. */
- static const int XXWX = xxwx;
- /** Deprecated, use [xxwy] instead. */
- static const int XXWY = xxwy;
- /** Deprecated, use [xxwz] instead. */
- static const int XXWZ = xxwz;
- /** Deprecated, use [xxww] instead. */
- static const int XXWW = xxww;
- /** Deprecated, use [xyxx] instead. */
- static const int XYXX = xyxx;
- /** Deprecated, use [xyxy] instead. */
- static const int XYXY = xyxy;
- /** Deprecated, use [xyxz] instead. */
- static const int XYXZ = xyxz;
- /** Deprecated, use [xyxw] instead. */
- static const int XYXW = xyxw;
- /** Deprecated, use [xyyx] instead. */
- static const int XYYX = xyyx;
- /** Deprecated, use [xyyy] instead. */
- static const int XYYY = xyyy;
- /** Deprecated, use [xyyz] instead. */
- static const int XYYZ = xyyz;
- /** Deprecated, use [xyyw] instead. */
- static const int XYYW = xyyw;
- /** Deprecated, use [xyzx] instead. */
- static const int XYZX = xyzx;
- /** Deprecated, use [xyzy] instead. */
- static const int XYZY = xyzy;
- /** Deprecated, use [xyzz] instead. */
- static const int XYZZ = xyzz;
- /** Deprecated, use [xyzw] instead. */
- static const int XYZW = xyzw;
- /** Deprecated, use [xywx] instead. */
- static const int XYWX = xywx;
- /** Deprecated, use [xywy] instead. */
- static const int XYWY = xywy;
- /** Deprecated, use [xywz] instead. */
- static const int XYWZ = xywz;
- /** Deprecated, use [xyww] instead. */
- static const int XYWW = xyww;
- /** Deprecated, use [xzxx] instead. */
- static const int XZXX = xzxx;
- /** Deprecated, use [xzxy] instead. */
- static const int XZXY = xzxy;
- /** Deprecated, use [xzxz] instead. */
- static const int XZXZ = xzxz;
- /** Deprecated, use [xzxw] instead. */
- static const int XZXW = xzxw;
- /** Deprecated, use [xzyx] instead. */
- static const int XZYX = xzyx;
- /** Deprecated, use [xzyy] instead. */
- static const int XZYY = xzyy;
- /** Deprecated, use [xzyz] instead. */
- static const int XZYZ = xzyz;
- /** Deprecated, use [xzyw] instead. */
- static const int XZYW = xzyw;
- /** Deprecated, use [xzzx] instead. */
- static const int XZZX = xzzx;
- /** Deprecated, use [xzzy] instead. */
- static const int XZZY = xzzy;
- /** Deprecated, use [xzzz] instead. */
- static const int XZZZ = xzzz;
- /** Deprecated, use [xzzw] instead. */
- static const int XZZW = xzzw;
- /** Deprecated, use [xzwx] instead. */
- static const int XZWX = xzwx;
- /** Deprecated, use [xzwy] instead. */
- static const int XZWY = xzwy;
- /** Deprecated, use [xzwz] instead. */
- static const int XZWZ = xzwz;
- /** Deprecated, use [xzww] instead. */
- static const int XZWW = xzww;
- /** Deprecated, use [xwxx] instead. */
- static const int XWXX = xwxx;
- /** Deprecated, use [xwxy] instead. */
- static const int XWXY = xwxy;
- /** Deprecated, use [xwxz] instead. */
- static const int XWXZ = xwxz;
- /** Deprecated, use [xwxw] instead. */
- static const int XWXW = xwxw;
- /** Deprecated, use [xwyx] instead. */
- static const int XWYX = xwyx;
- /** Deprecated, use [xwyy] instead. */
- static const int XWYY = xwyy;
- /** Deprecated, use [xwyz] instead. */
- static const int XWYZ = xwyz;
- /** Deprecated, use [xwyw] instead. */
- static const int XWYW = xwyw;
- /** Deprecated, use [xwzx] instead. */
- static const int XWZX = xwzx;
- /** Deprecated, use [xwzy] instead. */
- static const int XWZY = xwzy;
- /** Deprecated, use [xwzz] instead. */
- static const int XWZZ = xwzz;
- /** Deprecated, use [xwzw] instead. */
- static const int XWZW = xwzw;
- /** Deprecated, use [xwwx] instead. */
- static const int XWWX = xwwx;
- /** Deprecated, use [xwwy] instead. */
- static const int XWWY = xwwy;
- /** Deprecated, use [xwwz] instead. */
- static const int XWWZ = xwwz;
- /** Deprecated, use [xwww] instead. */
- static const int XWWW = xwww;
- /** Deprecated, use [yxxx] instead. */
- static const int YXXX = yxxx;
- /** Deprecated, use [yxxy] instead. */
- static const int YXXY = yxxy;
- /** Deprecated, use [yxxz] instead. */
- static const int YXXZ = yxxz;
- /** Deprecated, use [yxxw] instead. */
- static const int YXXW = yxxw;
- /** Deprecated, use [yxyx] instead. */
- static const int YXYX = yxyx;
- /** Deprecated, use [yxyy] instead. */
- static const int YXYY = yxyy;
- /** Deprecated, use [yxyz] instead. */
- static const int YXYZ = yxyz;
- /** Deprecated, use [yxyw] instead. */
- static const int YXYW = yxyw;
- /** Deprecated, use [yxzx] instead. */
- static const int YXZX = yxzx;
- /** Deprecated, use [yxzy] instead. */
- static const int YXZY = yxzy;
- /** Deprecated, use [yxzz] instead. */
- static const int YXZZ = yxzz;
- /** Deprecated, use [yxzw] instead. */
- static const int YXZW = yxzw;
- /** Deprecated, use [yxwx] instead. */
- static const int YXWX = yxwx;
- /** Deprecated, use [yxwy] instead. */
- static const int YXWY = yxwy;
- /** Deprecated, use [yxwz] instead. */
- static const int YXWZ = yxwz;
- /** Deprecated, use [yxww] instead. */
- static const int YXWW = yxww;
- /** Deprecated, use [yyxx] instead. */
- static const int YYXX = yyxx;
- /** Deprecated, use [yyxy] instead. */
- static const int YYXY = yyxy;
- /** Deprecated, use [yyxz] instead. */
- static const int YYXZ = yyxz;
- /** Deprecated, use [yyxw] instead. */
- static const int YYXW = yyxw;
- /** Deprecated, use [yyyx] instead. */
- static const int YYYX = yyyx;
- /** Deprecated, use [yyyy] instead. */
- static const int YYYY = yyyy;
- /** Deprecated, use [yyyz] instead. */
- static const int YYYZ = yyyz;
- /** Deprecated, use [yyyw] instead. */
- static const int YYYW = yyyw;
- /** Deprecated, use [yyzx] instead. */
- static const int YYZX = yyzx;
- /** Deprecated, use [yyzy] instead. */
- static const int YYZY = yyzy;
- /** Deprecated, use [yyzz] instead. */
- static const int YYZZ = yyzz;
- /** Deprecated, use [yyzw] instead. */
- static const int YYZW = yyzw;
- /** Deprecated, use [yywx] instead. */
- static const int YYWX = yywx;
- /** Deprecated, use [yywy] instead. */
- static const int YYWY = yywy;
- /** Deprecated, use [yywz] instead. */
- static const int YYWZ = yywz;
- /** Deprecated, use [yyww] instead. */
- static const int YYWW = yyww;
- /** Deprecated, use [yzxx] instead. */
- static const int YZXX = yzxx;
- /** Deprecated, use [yzxy] instead. */
- static const int YZXY = yzxy;
- /** Deprecated, use [yzxz] instead. */
- static const int YZXZ = yzxz;
- /** Deprecated, use [yzxw] instead. */
- static const int YZXW = yzxw;
- /** Deprecated, use [yzyx] instead. */
- static const int YZYX = yzyx;
- /** Deprecated, use [yzyy] instead. */
- static const int YZYY = yzyy;
- /** Deprecated, use [yzyz] instead. */
- static const int YZYZ = yzyz;
- /** Deprecated, use [yzyw] instead. */
- static const int YZYW = yzyw;
- /** Deprecated, use [yzzx] instead. */
- static const int YZZX = yzzx;
- /** Deprecated, use [yzzy] instead. */
- static const int YZZY = yzzy;
- /** Deprecated, use [yzzz] instead. */
- static const int YZZZ = yzzz;
- /** Deprecated, use [yzzw] instead. */
- static const int YZZW = yzzw;
- /** Deprecated, use [yzwx] instead. */
- static const int YZWX = yzwx;
- /** Deprecated, use [yzwy] instead. */
- static const int YZWY = yzwy;
- /** Deprecated, use [yzwz] instead. */
- static const int YZWZ = yzwz;
- /** Deprecated, use [yzww] instead. */
- static const int YZWW = yzww;
- /** Deprecated, use [ywxx] instead. */
- static const int YWXX = ywxx;
- /** Deprecated, use [ywxy] instead. */
- static const int YWXY = ywxy;
- /** Deprecated, use [ywxz] instead. */
- static const int YWXZ = ywxz;
- /** Deprecated, use [ywxw] instead. */
- static const int YWXW = ywxw;
- /** Deprecated, use [ywyx] instead. */
- static const int YWYX = ywyx;
- /** Deprecated, use [ywyy] instead. */
- static const int YWYY = ywyy;
- /** Deprecated, use [ywyz] instead. */
- static const int YWYZ = ywyz;
- /** Deprecated, use [ywyw] instead. */
- static const int YWYW = ywyw;
- /** Deprecated, use [ywzx] instead. */
- static const int YWZX = ywzx;
- /** Deprecated, use [ywzy] instead. */
- static const int YWZY = ywzy;
- /** Deprecated, use [ywzz] instead. */
- static const int YWZZ = ywzz;
- /** Deprecated, use [ywzw] instead. */
- static const int YWZW = ywzw;
- /** Deprecated, use [ywwx] instead. */
- static const int YWWX = ywwx;
- /** Deprecated, use [ywwy] instead. */
- static const int YWWY = ywwy;
- /** Deprecated, use [ywwz] instead. */
- static const int YWWZ = ywwz;
- /** Deprecated, use [ywww] instead. */
- static const int YWWW = ywww;
- /** Deprecated, use [zxxx] instead. */
- static const int ZXXX = zxxx;
- /** Deprecated, use [zxxy] instead. */
- static const int ZXXY = zxxy;
- /** Deprecated, use [zxxz] instead. */
- static const int ZXXZ = zxxz;
- /** Deprecated, use [zxxw] instead. */
- static const int ZXXW = zxxw;
- /** Deprecated, use [zxyx] instead. */
- static const int ZXYX = zxyx;
- /** Deprecated, use [zxyy] instead. */
- static const int ZXYY = zxyy;
- /** Deprecated, use [zxyz] instead. */
- static const int ZXYZ = zxyz;
- /** Deprecated, use [zxyw] instead. */
- static const int ZXYW = zxyw;
- /** Deprecated, use [zxzx] instead. */
- static const int ZXZX = zxzx;
- /** Deprecated, use [zxzy] instead. */
- static const int ZXZY = zxzy;
- /** Deprecated, use [zxzz] instead. */
- static const int ZXZZ = zxzz;
- /** Deprecated, use [zxzw] instead. */
- static const int ZXZW = zxzw;
- /** Deprecated, use [zxwx] instead. */
- static const int ZXWX = zxwx;
- /** Deprecated, use [zxwy] instead. */
- static const int ZXWY = zxwy;
- /** Deprecated, use [zxwz] instead. */
- static const int ZXWZ = zxwz;
- /** Deprecated, use [zxww] instead. */
- static const int ZXWW = zxww;
- /** Deprecated, use [zyxx] instead. */
- static const int ZYXX = zyxx;
- /** Deprecated, use [zyxy] instead. */
- static const int ZYXY = zyxy;
- /** Deprecated, use [zyxz] instead. */
- static const int ZYXZ = zyxz;
- /** Deprecated, use [zyxw] instead. */
- static const int ZYXW = zyxw;
- /** Deprecated, use [zyyx] instead. */
- static const int ZYYX = zyyx;
- /** Deprecated, use [zyyy] instead. */
- static const int ZYYY = zyyy;
- /** Deprecated, use [zyyz] instead. */
- static const int ZYYZ = zyyz;
- /** Deprecated, use [zyyw] instead. */
- static const int ZYYW = zyyw;
- /** Deprecated, use [zyzx] instead. */
- static const int ZYZX = zyzx;
- /** Deprecated, use [zyzy] instead. */
- static const int ZYZY = zyzy;
- /** Deprecated, use [zyzz] instead. */
- static const int ZYZZ = zyzz;
- /** Deprecated, use [zyzw] instead. */
- static const int ZYZW = zyzw;
- /** Deprecated, use [zywx] instead. */
- static const int ZYWX = zywx;
- /** Deprecated, use [zywy] instead. */
- static const int ZYWY = zywy;
- /** Deprecated, use [zywz] instead. */
- static const int ZYWZ = zywz;
- /** Deprecated, use [zyww] instead. */
- static const int ZYWW = zyww;
- /** Deprecated, use [zzxx] instead. */
- static const int ZZXX = zzxx;
- /** Deprecated, use [zzxy] instead. */
- static const int ZZXY = zzxy;
- /** Deprecated, use [zzxz] instead. */
- static const int ZZXZ = zzxz;
- /** Deprecated, use [zzxw] instead. */
- static const int ZZXW = zzxw;
- /** Deprecated, use [zzyx] instead. */
- static const int ZZYX = zzyx;
- /** Deprecated, use [zzyy] instead. */
- static const int ZZYY = zzyy;
- /** Deprecated, use [zzyz] instead. */
- static const int ZZYZ = zzyz;
- /** Deprecated, use [zzyw] instead. */
- static const int ZZYW = zzyw;
- /** Deprecated, use [zzzx] instead. */
- static const int ZZZX = zzzx;
- /** Deprecated, use [zzzy] instead. */
- static const int ZZZY = zzzy;
- /** Deprecated, use [zzzz] instead. */
- static const int ZZZZ = zzzz;
- /** Deprecated, use [zzzw] instead. */
- static const int ZZZW = zzzw;
- /** Deprecated, use [zzwx] instead. */
- static const int ZZWX = zzwx;
- /** Deprecated, use [zzwy] instead. */
- static const int ZZWY = zzwy;
- /** Deprecated, use [zzwz] instead. */
- static const int ZZWZ = zzwz;
- /** Deprecated, use [zzww] instead. */
- static const int ZZWW = zzww;
- /** Deprecated, use [zwxx] instead. */
- static const int ZWXX = zwxx;
- /** Deprecated, use [zwxy] instead. */
- static const int ZWXY = zwxy;
- /** Deprecated, use [zwxz] instead. */
- static const int ZWXZ = zwxz;
- /** Deprecated, use [zwxw] instead. */
- static const int ZWXW = zwxw;
- /** Deprecated, use [zwyx] instead. */
- static const int ZWYX = zwyx;
- /** Deprecated, use [zwyy] instead. */
- static const int ZWYY = zwyy;
- /** Deprecated, use [zwyz] instead. */
- static const int ZWYZ = zwyz;
- /** Deprecated, use [zwyw] instead. */
- static const int ZWYW = zwyw;
- /** Deprecated, use [zwzx] instead. */
- static const int ZWZX = zwzx;
- /** Deprecated, use [zwzy] instead. */
- static const int ZWZY = zwzy;
- /** Deprecated, use [zwzz] instead. */
- static const int ZWZZ = zwzz;
- /** Deprecated, use [zwzw] instead. */
- static const int ZWZW = zwzw;
- /** Deprecated, use [zwwx] instead. */
- static const int ZWWX = zwwx;
- /** Deprecated, use [zwwy] instead. */
- static const int ZWWY = zwwy;
- /** Deprecated, use [zwwz] instead. */
- static const int ZWWZ = zwwz;
- /** Deprecated, use [zwww] instead. */
- static const int ZWWW = zwww;
- /** Deprecated, use [wxxx] instead. */
- static const int WXXX = wxxx;
- /** Deprecated, use [wxxy] instead. */
- static const int WXXY = wxxy;
- /** Deprecated, use [wxxz] instead. */
- static const int WXXZ = wxxz;
- /** Deprecated, use [wxxw] instead. */
- static const int WXXW = wxxw;
- /** Deprecated, use [wxyx] instead. */
- static const int WXYX = wxyx;
- /** Deprecated, use [wxyy] instead. */
- static const int WXYY = wxyy;
- /** Deprecated, use [wxyz] instead. */
- static const int WXYZ = wxyz;
- /** Deprecated, use [wxyw] instead. */
- static const int WXYW = wxyw;
- /** Deprecated, use [wxzx] instead. */
- static const int WXZX = wxzx;
- /** Deprecated, use [wxzy] instead. */
- static const int WXZY = wxzy;
- /** Deprecated, use [wxzz] instead. */
- static const int WXZZ = wxzz;
- /** Deprecated, use [wxzw] instead. */
- static const int WXZW = wxzw;
- /** Deprecated, use [wxwx] instead. */
- static const int WXWX = wxwx;
- /** Deprecated, use [wxwy] instead. */
- static const int WXWY = wxwy;
- /** Deprecated, use [wxwz] instead. */
- static const int WXWZ = wxwz;
- /** Deprecated, use [wxww] instead. */
- static const int WXWW = wxww;
- /** Deprecated, use [wyxx] instead. */
- static const int WYXX = wyxx;
- /** Deprecated, use [wyxy] instead. */
- static const int WYXY = wyxy;
- /** Deprecated, use [wyxz] instead. */
- static const int WYXZ = wyxz;
- /** Deprecated, use [wyxw] instead. */
- static const int WYXW = wyxw;
- /** Deprecated, use [wyyx] instead. */
- static const int WYYX = wyyx;
- /** Deprecated, use [wyyy] instead. */
- static const int WYYY = wyyy;
- /** Deprecated, use [wyyz] instead. */
- static const int WYYZ = wyyz;
- /** Deprecated, use [wyyw] instead. */
- static const int WYYW = wyyw;
- /** Deprecated, use [wyzx] instead. */
- static const int WYZX = wyzx;
- /** Deprecated, use [wyzy] instead. */
- static const int WYZY = wyzy;
- /** Deprecated, use [wyzz] instead. */
- static const int WYZZ = wyzz;
- /** Deprecated, use [wyzw] instead. */
- static const int WYZW = wyzw;
- /** Deprecated, use [wywx] instead. */
- static const int WYWX = wywx;
- /** Deprecated, use [wywy] instead. */
- static const int WYWY = wywy;
- /** Deprecated, use [wywz] instead. */
- static const int WYWZ = wywz;
- /** Deprecated, use [wyww] instead. */
- static const int WYWW = wyww;
- /** Deprecated, use [wzxx] instead. */
- static const int WZXX = wzxx;
- /** Deprecated, use [wzxy] instead. */
- static const int WZXY = wzxy;
- /** Deprecated, use [wzxz] instead. */
- static const int WZXZ = wzxz;
- /** Deprecated, use [wzxw] instead. */
- static const int WZXW = wzxw;
- /** Deprecated, use [wzyx] instead. */
- static const int WZYX = wzyx;
- /** Deprecated, use [wzyy] instead. */
- static const int WZYY = wzyy;
- /** Deprecated, use [wzyz] instead. */
- static const int WZYZ = wzyz;
- /** Deprecated, use [wzyw] instead. */
- static const int WZYW = wzyw;
- /** Deprecated, use [wzzx] instead. */
- static const int WZZX = wzzx;
- /** Deprecated, use [wzzy] instead. */
- static const int WZZY = wzzy;
- /** Deprecated, use [wzzz] instead. */
- static const int WZZZ = wzzz;
- /** Deprecated, use [wzzw] instead. */
- static const int WZZW = wzzw;
- /** Deprecated, use [wzwx] instead. */
- static const int WZWX = wzwx;
- /** Deprecated, use [wzwy] instead. */
- static const int WZWY = wzwy;
- /** Deprecated, use [wzwz] instead. */
- static const int WZWZ = wzwz;
- /** Deprecated, use [wzww] instead. */
- static const int WZWW = wzww;
- /** Deprecated, use [wwxx] instead. */
- static const int WWXX = wwxx;
- /** Deprecated, use [wwxy] instead. */
- static const int WWXY = wwxy;
- /** Deprecated, use [wwxz] instead. */
- static const int WWXZ = wwxz;
- /** Deprecated, use [wwxw] instead. */
- static const int WWXW = wwxw;
- /** Deprecated, use [wwyx] instead. */
- static const int WWYX = wwyx;
- /** Deprecated, use [wwyy] instead. */
- static const int WWYY = wwyy;
- /** Deprecated, use [wwyz] instead. */
- static const int WWYZ = wwyz;
- /** Deprecated, use [wwyw] instead. */
- static const int WWYW = wwyw;
- /** Deprecated, use [wwzx] instead. */
- static const int WWZX = wwzx;
- /** Deprecated, use [wwzy] instead. */
- static const int WWZY = wwzy;
- /** Deprecated, use [wwzz] instead. */
- static const int WWZZ = wwzz;
- /** Deprecated, use [wwzw] instead. */
- static const int WWZW = wwzw;
- /** Deprecated, use [wwwx] instead. */
- static const int WWWX = wwwx;
- /** Deprecated, use [wwwy] instead. */
- static const int WWWY = wwwy;
- /** Deprecated, use [wwwz] instead. */
- static const int WWWZ = wwwz;
- /** Deprecated, use [wwww] instead. */
- static const int WWWW = wwww;
-
- /// Shuffle the lane values. [mask] must be one of the 256 shuffle constants.
- Int32x4 shuffle(int mask);
-
- /// Shuffle the lane values in [this] and [other]. The returned
- /// Int32x4 will have XY lanes from [this] and ZW lanes from [other].
- /// Uses the same [mask] as [shuffle].
- Int32x4 shuffleMix(Int32x4 other, int mask);
-
- /// Returns a new [Int32x4] copied from [this] with a new x value.
- Int32x4 withX(int x);
-
- /// Returns a new [Int32x4] copied from [this] with a new y value.
- Int32x4 withY(int y);
-
- /// Returns a new [Int32x4] copied from [this] with a new z value.
- Int32x4 withZ(int z);
-
- /// Returns a new [Int32x4] copied from [this] with a new w value.
- Int32x4 withW(int w);
-
- /// Extracted x value. Returns false for 0, true for any other value.
- bool get flagX;
-
- /// Extracted y value. Returns false for 0, true for any other value.
- bool get flagY;
-
- /// Extracted z value. Returns false for 0, true for any other value.
- bool get flagZ;
-
- /// Extracted w value. Returns false for 0, true for any other value.
- bool get flagW;
-
- /// Returns a new [Int32x4] copied from [this] with a new x value.
- Int32x4 withFlagX(bool x);
-
- /// Returns a new [Int32x4] copied from [this] with a new y value.
- Int32x4 withFlagY(bool y);
-
- /// Returns a new [Int32x4] copied from [this] with a new z value.
- Int32x4 withFlagZ(bool z);
-
- /// Returns a new [Int32x4] copied from [this] with a new w value.
- Int32x4 withFlagW(bool w);
-
- /// Merge [trueValue] and [falseValue] based on [this]' bit mask:
- /// Select bit from [trueValue] when bit in [this] is on.
- /// Select bit from [falseValue] when bit in [this] is off.
- Float32x4 select(Float32x4 trueValue, Float32x4 falseValue);
-}
-
-/**
- * Float64x2 immutable value type and operations.
- *
- * Float64x2 stores 2 64-bit floating point values in "lanes".
- * The lanes are "x" and "y" respectively.
- */
-abstract class Float64x2 {
- external factory Float64x2(double x, double y);
- external factory Float64x2.splat(double v);
- external factory Float64x2.zero();
-
- /// Uses the "x" and "y" lanes from [v].
- external factory Float64x2.fromFloat32x4(Float32x4 v);
-
- /// Addition operator.
- Float64x2 operator +(Float64x2 other);
-
- /// Negate operator.
- Float64x2 operator -();
-
- /// Subtraction operator.
- Float64x2 operator -(Float64x2 other);
-
- /// Multiplication operator.
- Float64x2 operator *(Float64x2 other);
-
- /// Division operator.
- Float64x2 operator /(Float64x2 other);
-
- /// Returns a copy of [this] each lane being scaled by [s].
- /// Equivalent to this * new Float64x2.splat(s)
- Float64x2 scale(double s);
-
- /// Returns the lane-wise absolute value of this [Float64x2].
- Float64x2 abs();
-
- /// Lane-wise clamp [this] to be in the range [lowerLimit]-[upperLimit].
- Float64x2 clamp(Float64x2 lowerLimit, Float64x2 upperLimit);
-
- /// Extracted x value.
- double get x;
-
- /// Extracted y value.
- double get y;
-
- /// Extract the sign bits from each lane return them in the first 2 bits.
- /// "x" lane is bit 0.
- /// "y" lane is bit 1.
- int get signMask;
-
- /// Returns a new [Float64x2] copied from [this] with a new x value.
- Float64x2 withX(double x);
-
- /// Returns a new [Float64x2] copied from [this] with a new y value.
- Float64x2 withY(double y);
-
- /// Returns the lane-wise minimum value in [this] or [other].
- Float64x2 min(Float64x2 other);
-
- /// Returns the lane-wise maximum value in [this] or [other].
- Float64x2 max(Float64x2 other);
-
- /// Returns the lane-wise square root of [this].
- Float64x2 sqrt();
-}
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/web_audio/dart2js/web_audio_dart2js.dart b/pkg/dev_compiler/tool/input_sdk/lib/web_audio/dart2js/web_audio_dart2js.dart
deleted file mode 100644
index e725018..0000000
--- a/pkg/dev_compiler/tool/input_sdk/lib/web_audio/dart2js/web_audio_dart2js.dart
+++ /dev/null
@@ -1,1156 +0,0 @@
-/**
- * High-fidelity audio programming in the browser.
- */
-library dart.dom.web_audio;
-
-import 'dart:async';
-import 'dart:collection';
-import 'dart:_internal';
-import 'dart:html';
-import 'dart:html_common';
-import 'dart:_native_typed_data';
-import 'dart:typed_data';
-import 'dart:_js_helper'
- show Creates, JSName, Native, Returns, convertDartClosureToJS;
-import 'dart:_foreign_helper' show JS;
-import 'dart:_interceptors' show Interceptor;
-// DO NOT EDIT - unless you are editing documentation as per:
-// https://code.google.com/p/dart/wiki/ContributingHTMLDocumentation
-// Auto-generated dart:audio library.
-
-// 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.
-
-@DocsEditable()
-@DomName('AnalyserNode')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AnalyserNode
-@Experimental()
-@Native("AnalyserNode,RealtimeAnalyserNode")
-class AnalyserNode extends AudioNode {
- // To suppress missing implicit constructor warnings.
- factory AnalyserNode._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('AnalyserNode.fftSize')
- @DocsEditable()
- int fftSize;
-
- @DomName('AnalyserNode.frequencyBinCount')
- @DocsEditable()
- final int frequencyBinCount;
-
- @DomName('AnalyserNode.maxDecibels')
- @DocsEditable()
- num maxDecibels;
-
- @DomName('AnalyserNode.minDecibels')
- @DocsEditable()
- num minDecibels;
-
- @DomName('AnalyserNode.smoothingTimeConstant')
- @DocsEditable()
- num smoothingTimeConstant;
-
- @DomName('AnalyserNode.getByteFrequencyData')
- @DocsEditable()
- void getByteFrequencyData(Uint8List array) native;
-
- @DomName('AnalyserNode.getByteTimeDomainData')
- @DocsEditable()
- void getByteTimeDomainData(Uint8List array) native;
-
- @DomName('AnalyserNode.getFloatFrequencyData')
- @DocsEditable()
- void getFloatFrequencyData(Float32List array) native;
-
- @DomName('AnalyserNode.getFloatTimeDomainData')
- @DocsEditable()
- @Experimental() // untriaged
- void getFloatTimeDomainData(Float32List array) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('AudioBuffer')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioBuffer-section
-@Experimental()
-@Native("AudioBuffer")
-class AudioBuffer extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory AudioBuffer._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('AudioBuffer.duration')
- @DocsEditable()
- final double duration;
-
- @DomName('AudioBuffer.length')
- @DocsEditable()
- final int length;
-
- @DomName('AudioBuffer.numberOfChannels')
- @DocsEditable()
- final int numberOfChannels;
-
- @DomName('AudioBuffer.sampleRate')
- @DocsEditable()
- final double sampleRate;
-
- @DomName('AudioBuffer.copyFromChannel')
- @DocsEditable()
- @Experimental() // untriaged
- void copyFromChannel(Float32List destination, int channelNumber,
- [int startInChannel]) native;
-
- @DomName('AudioBuffer.copyToChannel')
- @DocsEditable()
- @Experimental() // untriaged
- void copyToChannel(Float32List source, int channelNumber,
- [int startInChannel]) native;
-
- @DomName('AudioBuffer.getChannelData')
- @DocsEditable()
- Float32List getChannelData(int channelIndex) native;
-}
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('AudioBufferCallback')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioBuffer-section
-@Experimental()
-typedef void AudioBufferCallback(audioBuffer_OR_exception);
-// 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.
-
-@DomName('AudioBufferSourceNode')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@Experimental()
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioBufferSourceNode-section
-@Native("AudioBufferSourceNode")
-class AudioBufferSourceNode extends AudioSourceNode {
- // TODO(efortuna): Remove these methods when Chrome stable also uses start
- // instead of noteOn.
- void start(num when, [num grainOffset, num grainDuration]) {
- if (JS('bool', '!!#.start', this)) {
- if (grainDuration != null) {
- JS('void', '#.start(#, #, #)', this, when, grainOffset, grainDuration);
- } else if (grainOffset != null) {
- JS('void', '#.start(#, #)', this, when, grainOffset);
- } else {
- JS('void', '#.start(#)', this, when);
- }
- } else {
- if (grainDuration != null) {
- JS('void', '#.noteOn(#, #, #)', this, when, grainOffset, grainDuration);
- } else if (grainOffset != null) {
- JS('void', '#.noteOn(#, #)', this, when, grainOffset);
- } else {
- JS('void', '#.noteOn(#)', this, when);
- }
- }
- }
-
- void stop(num when) {
- if (JS('bool', '!!#.stop', this)) {
- JS('void', '#.stop(#)', this, when);
- } else {
- JS('void', '#.noteOff(#)', this, when);
- }
- }
-
- // To suppress missing implicit constructor warnings.
- factory AudioBufferSourceNode._() {
- throw new UnsupportedError("Not supported");
- }
-
- /**
- * Static factory designed to expose `ended` events to event
- * handlers that are not necessarily instances of [AudioBufferSourceNode].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('AudioBufferSourceNode.endedEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> endedEvent =
- const EventStreamProvider<Event>('ended');
-
- @DomName('AudioBufferSourceNode.buffer')
- @DocsEditable()
- AudioBuffer buffer;
-
- @DomName('AudioBufferSourceNode.detune')
- @DocsEditable()
- @Experimental() // untriaged
- final AudioParam detune;
-
- @DomName('AudioBufferSourceNode.loop')
- @DocsEditable()
- bool loop;
-
- @DomName('AudioBufferSourceNode.loopEnd')
- @DocsEditable()
- num loopEnd;
-
- @DomName('AudioBufferSourceNode.loopStart')
- @DocsEditable()
- num loopStart;
-
- @DomName('AudioBufferSourceNode.playbackRate')
- @DocsEditable()
- final AudioParam playbackRate;
-
- /// Stream of `ended` events handled by this [AudioBufferSourceNode].
- @DomName('AudioBufferSourceNode.onended')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onEnded => endedEvent.forTarget(this);
-}
-// 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.
-
-@DomName('AudioContext')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@Experimental()
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioContext-section
-@Native("AudioContext,webkitAudioContext")
-class AudioContext extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory AudioContext._() {
- throw new UnsupportedError("Not supported");
- }
-
- /// Checks if this type is supported on the current platform.
- static bool get supported =>
- JS('bool', '!!(window.AudioContext || window.webkitAudioContext)');
-
- @DomName('AudioContext.currentTime')
- @DocsEditable()
- final double currentTime;
-
- @DomName('AudioContext.destination')
- @DocsEditable()
- final AudioDestinationNode destination;
-
- @DomName('AudioContext.listener')
- @DocsEditable()
- final AudioListener listener;
-
- @DomName('AudioContext.sampleRate')
- @DocsEditable()
- final double sampleRate;
-
- @DomName('AudioContext.state')
- @DocsEditable()
- @Experimental() // untriaged
- final String state;
-
- @DomName('AudioContext.close')
- @DocsEditable()
- @Experimental() // untriaged
- Future close() native;
-
- @DomName('AudioContext.createAnalyser')
- @DocsEditable()
- AnalyserNode createAnalyser() native;
-
- @DomName('AudioContext.createBiquadFilter')
- @DocsEditable()
- BiquadFilterNode createBiquadFilter() native;
-
- @DomName('AudioContext.createBuffer')
- @DocsEditable()
- AudioBuffer createBuffer(
- int numberOfChannels, int numberOfFrames, num sampleRate) native;
-
- @DomName('AudioContext.createBufferSource')
- @DocsEditable()
- AudioBufferSourceNode createBufferSource() native;
-
- @DomName('AudioContext.createChannelMerger')
- @DocsEditable()
- ChannelMergerNode createChannelMerger([int numberOfInputs]) native;
-
- @DomName('AudioContext.createChannelSplitter')
- @DocsEditable()
- ChannelSplitterNode createChannelSplitter([int numberOfOutputs]) native;
-
- @DomName('AudioContext.createConvolver')
- @DocsEditable()
- ConvolverNode createConvolver() native;
-
- @DomName('AudioContext.createDelay')
- @DocsEditable()
- DelayNode createDelay([num maxDelayTime]) native;
-
- @DomName('AudioContext.createDynamicsCompressor')
- @DocsEditable()
- DynamicsCompressorNode createDynamicsCompressor() native;
-
- @JSName('createIIRFilter')
- @DomName('AudioContext.createIIRFilter')
- @DocsEditable()
- @Experimental() // untriaged
- IirFilterNode createIirFilter(List<num> feedForward, List<num> feedBack)
- native;
-
- @DomName('AudioContext.createMediaElementSource')
- @DocsEditable()
- MediaElementAudioSourceNode createMediaElementSource(
- MediaElement mediaElement) native;
-
- @DomName('AudioContext.createMediaStreamDestination')
- @DocsEditable()
- MediaStreamAudioDestinationNode createMediaStreamDestination() native;
-
- @DomName('AudioContext.createMediaStreamSource')
- @DocsEditable()
- MediaStreamAudioSourceNode createMediaStreamSource(MediaStream mediaStream)
- native;
-
- @DomName('AudioContext.createOscillator')
- @DocsEditable()
- OscillatorNode createOscillator() native;
-
- @DomName('AudioContext.createPanner')
- @DocsEditable()
- PannerNode createPanner() native;
-
- @DomName('AudioContext.createPeriodicWave')
- @DocsEditable()
- @Experimental() // untriaged
- PeriodicWave createPeriodicWave(Float32List real, Float32List imag,
- [Map options]) {
- if (options != null) {
- var options_1 = convertDartToNative_Dictionary(options);
- return _createPeriodicWave_1(real, imag, options_1);
- }
- return _createPeriodicWave_2(real, imag);
- }
-
- @JSName('createPeriodicWave')
- @DomName('AudioContext.createPeriodicWave')
- @DocsEditable()
- @Experimental() // untriaged
- PeriodicWave _createPeriodicWave_1(
- Float32List real, Float32List imag, options) native;
- @JSName('createPeriodicWave')
- @DomName('AudioContext.createPeriodicWave')
- @DocsEditable()
- @Experimental() // untriaged
- PeriodicWave _createPeriodicWave_2(Float32List real, Float32List imag) native;
-
- @DomName('AudioContext.createStereoPanner')
- @DocsEditable()
- @Experimental() // untriaged
- StereoPannerNode createStereoPanner() native;
-
- @DomName('AudioContext.createWaveShaper')
- @DocsEditable()
- WaveShaperNode createWaveShaper() native;
-
- @JSName('decodeAudioData')
- @DomName('AudioContext.decodeAudioData')
- @DocsEditable()
- Future _decodeAudioData(ByteBuffer audioData,
- [AudioBufferCallback successCallback,
- AudioBufferCallback errorCallback]) native;
-
- @DomName('AudioContext.resume')
- @DocsEditable()
- @Experimental() // untriaged
- Future resume() native;
-
- @DomName('AudioContext.suspend')
- @DocsEditable()
- @Experimental() // untriaged
- Future suspend() native;
-
- factory AudioContext() => JS('AudioContext',
- 'new (window.AudioContext || window.webkitAudioContext)()');
-
- GainNode createGain() {
- if (JS('bool', '#.createGain !== undefined', this)) {
- return JS('GainNode', '#.createGain()', this);
- } else {
- return JS('GainNode', '#.createGainNode()', this);
- }
- }
-
- ScriptProcessorNode createScriptProcessor(int bufferSize,
- [int numberOfInputChannels, int numberOfOutputChannels]) {
- var function = JS(
- '=Object',
- '#.createScriptProcessor || '
- '#.createJavaScriptNode',
- this,
- this);
- if (numberOfOutputChannels != null) {
- return JS('ScriptProcessorNode', '#.call(#, #, #, #)', function, this,
- bufferSize, numberOfInputChannels, numberOfOutputChannels);
- } else if (numberOfInputChannels != null) {
- return JS('ScriptProcessorNode', '#.call(#, #, #)', function, this,
- bufferSize, numberOfInputChannels);
- } else {
- return JS(
- 'ScriptProcessorNode', '#.call(#, #)', function, this, bufferSize);
- }
- }
-
- @DomName('AudioContext.decodeAudioData')
- Future<AudioBuffer> decodeAudioData(ByteBuffer audioData) {
- var completer = new Completer<AudioBuffer>();
- _decodeAudioData(audioData, (value) {
- completer.complete(value);
- }, (error) {
- if (error == null) {
- completer.completeError('');
- } else {
- completer.completeError(error);
- }
- });
- return completer.future;
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('AudioDestinationNode')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioDestinationNode-section
-@Experimental()
-@Native("AudioDestinationNode")
-class AudioDestinationNode extends AudioNode {
- // To suppress missing implicit constructor warnings.
- factory AudioDestinationNode._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('AudioDestinationNode.maxChannelCount')
- @DocsEditable()
- final int maxChannelCount;
-}
-// 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.
-
-@DocsEditable()
-@DomName('AudioListener')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioListener-section
-@Experimental()
-@Native("AudioListener")
-class AudioListener extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory AudioListener._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('AudioListener.dopplerFactor')
- @DocsEditable()
- num dopplerFactor;
-
- @DomName('AudioListener.speedOfSound')
- @DocsEditable()
- num speedOfSound;
-
- @DomName('AudioListener.setOrientation')
- @DocsEditable()
- void setOrientation(num x, num y, num z, num xUp, num yUp, num zUp) native;
-
- @DomName('AudioListener.setPosition')
- @DocsEditable()
- void setPosition(num x, num y, num z) native;
-
- @DomName('AudioListener.setVelocity')
- @DocsEditable()
- void setVelocity(num x, num y, num z) native;
-}
-// 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.
-
-@DomName('AudioNode')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioNode-section
-@Experimental()
-@Native("AudioNode")
-class AudioNode extends EventTarget {
- // To suppress missing implicit constructor warnings.
- factory AudioNode._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('AudioNode.channelCount')
- @DocsEditable()
- int channelCount;
-
- @DomName('AudioNode.channelCountMode')
- @DocsEditable()
- String channelCountMode;
-
- @DomName('AudioNode.channelInterpretation')
- @DocsEditable()
- String channelInterpretation;
-
- @DomName('AudioNode.context')
- @DocsEditable()
- final AudioContext context;
-
- @DomName('AudioNode.numberOfInputs')
- @DocsEditable()
- final int numberOfInputs;
-
- @DomName('AudioNode.numberOfOutputs')
- @DocsEditable()
- final int numberOfOutputs;
-
- @JSName('connect')
- @DomName('AudioNode.connect')
- @DocsEditable()
- AudioNode _connect(destination, [int output, int input]) native;
-
- @DomName('AudioNode.disconnect')
- @DocsEditable()
- void disconnect([destination_OR_output, int output, int input]) native;
-
- @DomName('AudioNode.connect')
- void connectNode(AudioNode destination, [int output = 0, int input = 0]) {
- _connect(destination, output, input);
- }
-
- @DomName('AudioNode.connect')
- void connectParam(AudioParam destination, [int output = 0]) {
- _connect(destination, output);
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('AudioParam')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioParam
-@Experimental()
-@Native("AudioParam")
-class AudioParam extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory AudioParam._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('AudioParam.defaultValue')
- @DocsEditable()
- final double defaultValue;
-
- @DomName('AudioParam.value')
- @DocsEditable()
- num value;
-
- @DomName('AudioParam.cancelScheduledValues')
- @DocsEditable()
- AudioParam cancelScheduledValues(num startTime) native;
-
- @DomName('AudioParam.exponentialRampToValueAtTime')
- @DocsEditable()
- AudioParam exponentialRampToValueAtTime(num value, num time) native;
-
- @DomName('AudioParam.linearRampToValueAtTime')
- @DocsEditable()
- AudioParam linearRampToValueAtTime(num value, num time) native;
-
- @DomName('AudioParam.setTargetAtTime')
- @DocsEditable()
- AudioParam setTargetAtTime(num target, num time, num timeConstant) native;
-
- @DomName('AudioParam.setValueAtTime')
- @DocsEditable()
- AudioParam setValueAtTime(num value, num time) native;
-
- @DomName('AudioParam.setValueCurveAtTime')
- @DocsEditable()
- AudioParam setValueCurveAtTime(Float32List values, num time, num duration)
- native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('AudioProcessingEvent')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioProcessingEvent-section
-@Experimental()
-@Native("AudioProcessingEvent")
-class AudioProcessingEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory AudioProcessingEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('AudioProcessingEvent.inputBuffer')
- @DocsEditable()
- final AudioBuffer inputBuffer;
-
- @DomName('AudioProcessingEvent.outputBuffer')
- @DocsEditable()
- final AudioBuffer outputBuffer;
-
- @DomName('AudioProcessingEvent.playbackTime')
- @DocsEditable()
- @Experimental() // untriaged
- final double playbackTime;
-}
-// 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.
-
-@DocsEditable()
-@DomName('AudioSourceNode')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html
-@Experimental()
-@Native("AudioSourceNode")
-class AudioSourceNode extends AudioNode {
- // To suppress missing implicit constructor warnings.
- factory AudioSourceNode._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('BiquadFilterNode')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#BiquadFilterNode-section
-@Experimental()
-@Native("BiquadFilterNode")
-class BiquadFilterNode extends AudioNode {
- // To suppress missing implicit constructor warnings.
- factory BiquadFilterNode._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('BiquadFilterNode.Q')
- @DocsEditable()
- final AudioParam Q;
-
- @DomName('BiquadFilterNode.detune')
- @DocsEditable()
- final AudioParam detune;
-
- @DomName('BiquadFilterNode.frequency')
- @DocsEditable()
- final AudioParam frequency;
-
- @DomName('BiquadFilterNode.gain')
- @DocsEditable()
- final AudioParam gain;
-
- @DomName('BiquadFilterNode.type')
- @DocsEditable()
- String type;
-
- @DomName('BiquadFilterNode.getFrequencyResponse')
- @DocsEditable()
- void getFrequencyResponse(Float32List frequencyHz, Float32List magResponse,
- Float32List phaseResponse) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('ChannelMergerNode')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#ChannelMergerNode-section
-@Experimental()
-@Native("ChannelMergerNode,AudioChannelMerger")
-class ChannelMergerNode extends AudioNode {
- // To suppress missing implicit constructor warnings.
- factory ChannelMergerNode._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('ChannelSplitterNode')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#ChannelSplitterNode-section
-@Experimental()
-@Native("ChannelSplitterNode,AudioChannelSplitter")
-class ChannelSplitterNode extends AudioNode {
- // To suppress missing implicit constructor warnings.
- factory ChannelSplitterNode._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('ConvolverNode')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#ConvolverNode
-@Experimental()
-@Native("ConvolverNode")
-class ConvolverNode extends AudioNode {
- // To suppress missing implicit constructor warnings.
- factory ConvolverNode._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('ConvolverNode.buffer')
- @DocsEditable()
- AudioBuffer buffer;
-
- @DomName('ConvolverNode.normalize')
- @DocsEditable()
- bool normalize;
-}
-// 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.
-
-@DocsEditable()
-@DomName('DelayNode')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#DelayNode
-@Experimental()
-@Native("DelayNode")
-class DelayNode extends AudioNode {
- // To suppress missing implicit constructor warnings.
- factory DelayNode._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('DelayNode.delayTime')
- @DocsEditable()
- final AudioParam delayTime;
-}
-// 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.
-
-@DocsEditable()
-@DomName('DynamicsCompressorNode')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#DynamicsCompressorNode
-@Experimental()
-@Native("DynamicsCompressorNode")
-class DynamicsCompressorNode extends AudioNode {
- // To suppress missing implicit constructor warnings.
- factory DynamicsCompressorNode._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('DynamicsCompressorNode.attack')
- @DocsEditable()
- final AudioParam attack;
-
- @DomName('DynamicsCompressorNode.knee')
- @DocsEditable()
- final AudioParam knee;
-
- @DomName('DynamicsCompressorNode.ratio')
- @DocsEditable()
- final AudioParam ratio;
-
- @DomName('DynamicsCompressorNode.reduction')
- @DocsEditable()
- final AudioParam reduction;
-
- @DomName('DynamicsCompressorNode.release')
- @DocsEditable()
- final AudioParam release;
-
- @DomName('DynamicsCompressorNode.threshold')
- @DocsEditable()
- final AudioParam threshold;
-}
-// 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.
-
-@DocsEditable()
-@DomName('GainNode')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#GainNode
-@Experimental()
-@Native("GainNode,AudioGainNode")
-class GainNode extends AudioNode {
- // To suppress missing implicit constructor warnings.
- factory GainNode._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('GainNode.gain')
- @DocsEditable()
- final AudioParam gain;
-}
-// 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.
-
-@DocsEditable()
-@DomName('IIRFilterNode')
-@Experimental() // untriaged
-@Native("IIRFilterNode")
-class IirFilterNode extends AudioNode {
- // To suppress missing implicit constructor warnings.
- factory IirFilterNode._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('IIRFilterNode.getFrequencyResponse')
- @DocsEditable()
- @Experimental() // untriaged
- void getFrequencyResponse(Float32List frequencyHz, Float32List magResponse,
- Float32List phaseResponse) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('MediaElementAudioSourceNode')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#MediaElementAudioSourceNode
-@Experimental()
-@Native("MediaElementAudioSourceNode")
-class MediaElementAudioSourceNode extends AudioSourceNode {
- // To suppress missing implicit constructor warnings.
- factory MediaElementAudioSourceNode._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('MediaElementAudioSourceNode.mediaElement')
- @DocsEditable()
- @Experimental() // non-standard
- final MediaElement mediaElement;
-}
-// 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.
-
-@DocsEditable()
-@DomName('MediaStreamAudioDestinationNode')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#MediaStreamAudioDestinationNode
-@Experimental()
-@Native("MediaStreamAudioDestinationNode")
-class MediaStreamAudioDestinationNode extends AudioNode {
- // To suppress missing implicit constructor warnings.
- factory MediaStreamAudioDestinationNode._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('MediaStreamAudioDestinationNode.stream')
- @DocsEditable()
- final MediaStream stream;
-}
-// 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.
-
-@DocsEditable()
-@DomName('MediaStreamAudioSourceNode')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#MediaStreamAudioSourceNode
-@Experimental()
-@Native("MediaStreamAudioSourceNode")
-class MediaStreamAudioSourceNode extends AudioSourceNode {
- // To suppress missing implicit constructor warnings.
- factory MediaStreamAudioSourceNode._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('MediaStreamAudioSourceNode.mediaStream')
- @DocsEditable()
- final MediaStream mediaStream;
-}
-// 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.
-
-@DocsEditable()
-@DomName('OfflineAudioCompletionEvent')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#OfflineAudioCompletionEvent-section
-@Experimental()
-@Native("OfflineAudioCompletionEvent")
-class OfflineAudioCompletionEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory OfflineAudioCompletionEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('OfflineAudioCompletionEvent.renderedBuffer')
- @DocsEditable()
- final AudioBuffer renderedBuffer;
-}
-// 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.
-
-@DocsEditable()
-@DomName('OfflineAudioContext')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#OfflineAudioContext-section
-@Experimental()
-@Native("OfflineAudioContext")
-class OfflineAudioContext extends AudioContext {
- // To suppress missing implicit constructor warnings.
- factory OfflineAudioContext._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('OfflineAudioContext.OfflineAudioContext')
- @DocsEditable()
- factory OfflineAudioContext(
- int numberOfChannels, int numberOfFrames, num sampleRate) {
- return OfflineAudioContext._create_1(
- numberOfChannels, numberOfFrames, sampleRate);
- }
- static OfflineAudioContext _create_1(
- numberOfChannels, numberOfFrames, sampleRate) =>
- JS('OfflineAudioContext', 'new OfflineAudioContext(#,#,#)',
- numberOfChannels, numberOfFrames, sampleRate);
-
- @DomName('OfflineAudioContext.startRendering')
- @DocsEditable()
- @Experimental() // untriaged
- Future startRendering() native;
-
- @JSName('suspend')
- @DomName('OfflineAudioContext.suspend')
- @DocsEditable()
- @Experimental() // untriaged
- Future suspendFor(num suspendTime) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('OscillatorNode')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#dfn-OscillatorNode
-@Experimental()
-@Native("OscillatorNode,Oscillator")
-class OscillatorNode extends AudioSourceNode {
- // To suppress missing implicit constructor warnings.
- factory OscillatorNode._() {
- throw new UnsupportedError("Not supported");
- }
-
- /**
- * Static factory designed to expose `ended` events to event
- * handlers that are not necessarily instances of [OscillatorNode].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('OscillatorNode.endedEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> endedEvent =
- const EventStreamProvider<Event>('ended');
-
- @DomName('OscillatorNode.detune')
- @DocsEditable()
- final AudioParam detune;
-
- @DomName('OscillatorNode.frequency')
- @DocsEditable()
- final AudioParam frequency;
-
- @DomName('OscillatorNode.type')
- @DocsEditable()
- String type;
-
- @DomName('OscillatorNode.setPeriodicWave')
- @DocsEditable()
- @Experimental() // untriaged
- void setPeriodicWave(PeriodicWave periodicWave) native;
-
- @DomName('OscillatorNode.start')
- @DocsEditable()
- void start([num when]) native;
-
- @DomName('OscillatorNode.stop')
- @DocsEditable()
- void stop([num when]) native;
-
- /// Stream of `ended` events handled by this [OscillatorNode].
- @DomName('OscillatorNode.onended')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onEnded => endedEvent.forTarget(this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('PannerNode')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#PannerNode
-@Experimental()
-@Native("PannerNode,AudioPannerNode,webkitAudioPannerNode")
-class PannerNode extends AudioNode {
- // To suppress missing implicit constructor warnings.
- factory PannerNode._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('PannerNode.coneInnerAngle')
- @DocsEditable()
- num coneInnerAngle;
-
- @DomName('PannerNode.coneOuterAngle')
- @DocsEditable()
- num coneOuterAngle;
-
- @DomName('PannerNode.coneOuterGain')
- @DocsEditable()
- num coneOuterGain;
-
- @DomName('PannerNode.distanceModel')
- @DocsEditable()
- String distanceModel;
-
- @DomName('PannerNode.maxDistance')
- @DocsEditable()
- num maxDistance;
-
- @DomName('PannerNode.panningModel')
- @DocsEditable()
- String panningModel;
-
- @DomName('PannerNode.refDistance')
- @DocsEditable()
- num refDistance;
-
- @DomName('PannerNode.rolloffFactor')
- @DocsEditable()
- num rolloffFactor;
-
- @DomName('PannerNode.setOrientation')
- @DocsEditable()
- void setOrientation(num x, num y, num z) native;
-
- @DomName('PannerNode.setPosition')
- @DocsEditable()
- void setPosition(num x, num y, num z) native;
-
- @DomName('PannerNode.setVelocity')
- @DocsEditable()
- void setVelocity(num x, num y, num z) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('PeriodicWave')
-@Experimental() // untriaged
-@Native("PeriodicWave")
-class PeriodicWave extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory PeriodicWave._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('ScriptProcessorNode')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#ScriptProcessorNode
-@Experimental()
-@Native("ScriptProcessorNode,JavaScriptAudioNode")
-class ScriptProcessorNode extends AudioNode {
- // To suppress missing implicit constructor warnings.
- factory ScriptProcessorNode._() {
- throw new UnsupportedError("Not supported");
- }
-
- /**
- * Static factory designed to expose `audioprocess` events to event
- * handlers that are not necessarily instances of [ScriptProcessorNode].
- *
- * See [EventStreamProvider] for usage information.
- */
- @DomName('ScriptProcessorNode.audioprocessEvent')
- @DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<AudioProcessingEvent> audioProcessEvent =
- const EventStreamProvider<AudioProcessingEvent>('audioprocess');
-
- @DomName('ScriptProcessorNode.bufferSize')
- @DocsEditable()
- final int bufferSize;
-
- @DomName('ScriptProcessorNode.setEventListener')
- @DocsEditable()
- @Experimental() // untriaged
- void setEventListener(EventListener eventListener) native;
-
- /// Stream of `audioprocess` events handled by this [ScriptProcessorNode].
-/**
- * Get a Stream that fires events when AudioProcessingEvents occur.
- * This particular stream is special in that it only allows one listener to a
- * given stream. Converting the returned Stream [asBroadcast] will likely ruin
- * the soft-real-time properties which which these events are fired and can
- * be processed.
- */
- @DomName('ScriptProcessorNode.onaudioprocess')
- @DocsEditable()
- @Experimental() // untriaged
- Stream<AudioProcessingEvent> get onAudioProcess =>
- audioProcessEvent.forTarget(this);
-}
-// 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.
-
-@DocsEditable()
-@DomName('StereoPannerNode')
-@Experimental() // untriaged
-@Native("StereoPannerNode")
-class StereoPannerNode extends AudioNode {
- // To suppress missing implicit constructor warnings.
- factory StereoPannerNode._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('StereoPannerNode.pan')
- @DocsEditable()
- @Experimental() // untriaged
- final AudioParam pan;
-}
-// 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.
-
-@DocsEditable()
-@DomName('WaveShaperNode')
-// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#dfn-WaveShaperNode
-@Experimental()
-@Native("WaveShaperNode")
-class WaveShaperNode extends AudioNode {
- // To suppress missing implicit constructor warnings.
- factory WaveShaperNode._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('WaveShaperNode.curve')
- @DocsEditable()
- Float32List curve;
-
- @DomName('WaveShaperNode.oversample')
- @DocsEditable()
- String oversample;
-}
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/web_gl/dart2js/web_gl_dart2js.dart b/pkg/dev_compiler/tool/input_sdk/lib/web_gl/dart2js/web_gl_dart2js.dart
deleted file mode 100644
index cf8a723..0000000
--- a/pkg/dev_compiler/tool/input_sdk/lib/web_gl/dart2js/web_gl_dart2js.dart
+++ /dev/null
@@ -1,6899 +0,0 @@
-/**
- * 3D programming in the browser.
- */
-library dart.dom.web_gl;
-
-import 'dart:collection';
-import 'dart:_internal';
-import 'dart:html';
-import 'dart:html_common';
-import 'dart:_native_typed_data';
-import 'dart:typed_data';
-import 'dart:_js_helper'
- show Creates, JSName, Native, Returns, convertDartClosureToJS;
-import 'dart:_foreign_helper' show JS;
-import 'dart:_interceptors' show Interceptor, JSExtendableArray;
-// DO NOT EDIT - unless you are editing documentation as per:
-// https://code.google.com/p/dart/wiki/ContributingHTMLDocumentation
-// Auto-generated dart:web_gl library.
-
-// 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.
-
-const int ACTIVE_ATTRIBUTES = RenderingContext.ACTIVE_ATTRIBUTES;
-const int ACTIVE_TEXTURE = RenderingContext.ACTIVE_TEXTURE;
-const int ACTIVE_UNIFORMS = RenderingContext.ACTIVE_UNIFORMS;
-const int ALIASED_LINE_WIDTH_RANGE = RenderingContext.ALIASED_LINE_WIDTH_RANGE;
-const int ALIASED_POINT_SIZE_RANGE = RenderingContext.ALIASED_POINT_SIZE_RANGE;
-const int ALPHA = RenderingContext.ALPHA;
-const int ALPHA_BITS = RenderingContext.ALPHA_BITS;
-const int ALWAYS = RenderingContext.ALWAYS;
-const int ARRAY_BUFFER = RenderingContext.ARRAY_BUFFER;
-const int ARRAY_BUFFER_BINDING = RenderingContext.ARRAY_BUFFER_BINDING;
-const int ATTACHED_SHADERS = RenderingContext.ATTACHED_SHADERS;
-const int BACK = RenderingContext.BACK;
-const int BLEND = RenderingContext.BLEND;
-const int BLEND_COLOR = RenderingContext.BLEND_COLOR;
-const int BLEND_DST_ALPHA = RenderingContext.BLEND_DST_ALPHA;
-const int BLEND_DST_RGB = RenderingContext.BLEND_DST_RGB;
-const int BLEND_EQUATION = RenderingContext.BLEND_EQUATION;
-const int BLEND_EQUATION_ALPHA = RenderingContext.BLEND_EQUATION_ALPHA;
-const int BLEND_EQUATION_RGB = RenderingContext.BLEND_EQUATION_RGB;
-const int BLEND_SRC_ALPHA = RenderingContext.BLEND_SRC_ALPHA;
-const int BLEND_SRC_RGB = RenderingContext.BLEND_SRC_RGB;
-const int BLUE_BITS = RenderingContext.BLUE_BITS;
-const int BOOL = RenderingContext.BOOL;
-const int BOOL_VEC2 = RenderingContext.BOOL_VEC2;
-const int BOOL_VEC3 = RenderingContext.BOOL_VEC3;
-const int BOOL_VEC4 = RenderingContext.BOOL_VEC4;
-const int BROWSER_DEFAULT_WEBGL = RenderingContext.BROWSER_DEFAULT_WEBGL;
-const int BUFFER_SIZE = RenderingContext.BUFFER_SIZE;
-const int BUFFER_USAGE = RenderingContext.BUFFER_USAGE;
-const int BYTE = RenderingContext.BYTE;
-const int CCW = RenderingContext.CCW;
-const int CLAMP_TO_EDGE = RenderingContext.CLAMP_TO_EDGE;
-const int COLOR_ATTACHMENT0 = RenderingContext.COLOR_ATTACHMENT0;
-const int COLOR_BUFFER_BIT = RenderingContext.COLOR_BUFFER_BIT;
-const int COLOR_CLEAR_VALUE = RenderingContext.COLOR_CLEAR_VALUE;
-const int COLOR_WRITEMASK = RenderingContext.COLOR_WRITEMASK;
-const int COMPILE_STATUS = RenderingContext.COMPILE_STATUS;
-const int COMPRESSED_TEXTURE_FORMATS =
- RenderingContext.COMPRESSED_TEXTURE_FORMATS;
-const int CONSTANT_ALPHA = RenderingContext.CONSTANT_ALPHA;
-const int CONSTANT_COLOR = RenderingContext.CONSTANT_COLOR;
-const int CONTEXT_LOST_WEBGL = RenderingContext.CONTEXT_LOST_WEBGL;
-const int CULL_FACE = RenderingContext.CULL_FACE;
-const int CULL_FACE_MODE = RenderingContext.CULL_FACE_MODE;
-const int CURRENT_PROGRAM = RenderingContext.CURRENT_PROGRAM;
-const int CURRENT_VERTEX_ATTRIB = RenderingContext.CURRENT_VERTEX_ATTRIB;
-const int CW = RenderingContext.CW;
-const int DECR = RenderingContext.DECR;
-const int DECR_WRAP = RenderingContext.DECR_WRAP;
-const int DELETE_STATUS = RenderingContext.DELETE_STATUS;
-const int DEPTH_ATTACHMENT = RenderingContext.DEPTH_ATTACHMENT;
-const int DEPTH_BITS = RenderingContext.DEPTH_BITS;
-const int DEPTH_BUFFER_BIT = RenderingContext.DEPTH_BUFFER_BIT;
-const int DEPTH_CLEAR_VALUE = RenderingContext.DEPTH_CLEAR_VALUE;
-const int DEPTH_COMPONENT = RenderingContext.DEPTH_COMPONENT;
-const int DEPTH_COMPONENT16 = RenderingContext.DEPTH_COMPONENT16;
-const int DEPTH_FUNC = RenderingContext.DEPTH_FUNC;
-const int DEPTH_RANGE = RenderingContext.DEPTH_RANGE;
-const int DEPTH_STENCIL = RenderingContext.DEPTH_STENCIL;
-const int DEPTH_STENCIL_ATTACHMENT = RenderingContext.DEPTH_STENCIL_ATTACHMENT;
-const int DEPTH_TEST = RenderingContext.DEPTH_TEST;
-const int DEPTH_WRITEMASK = RenderingContext.DEPTH_WRITEMASK;
-const int DITHER = RenderingContext.DITHER;
-const int DONT_CARE = RenderingContext.DONT_CARE;
-const int DST_ALPHA = RenderingContext.DST_ALPHA;
-const int DST_COLOR = RenderingContext.DST_COLOR;
-const int DYNAMIC_DRAW = RenderingContext.DYNAMIC_DRAW;
-const int ELEMENT_ARRAY_BUFFER = RenderingContext.ELEMENT_ARRAY_BUFFER;
-const int ELEMENT_ARRAY_BUFFER_BINDING =
- RenderingContext.ELEMENT_ARRAY_BUFFER_BINDING;
-const int EQUAL = RenderingContext.EQUAL;
-const int FASTEST = RenderingContext.FASTEST;
-const int FLOAT = RenderingContext.FLOAT;
-const int FLOAT_MAT2 = RenderingContext.FLOAT_MAT2;
-const int FLOAT_MAT3 = RenderingContext.FLOAT_MAT3;
-const int FLOAT_MAT4 = RenderingContext.FLOAT_MAT4;
-const int FLOAT_VEC2 = RenderingContext.FLOAT_VEC2;
-const int FLOAT_VEC3 = RenderingContext.FLOAT_VEC3;
-const int FLOAT_VEC4 = RenderingContext.FLOAT_VEC4;
-const int FRAGMENT_SHADER = RenderingContext.FRAGMENT_SHADER;
-const int FRAMEBUFFER = RenderingContext.FRAMEBUFFER;
-const int FRAMEBUFFER_ATTACHMENT_OBJECT_NAME =
- RenderingContext.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME;
-const int FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE =
- RenderingContext.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE;
-const int FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE =
- RenderingContext.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE;
-const int FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL =
- RenderingContext.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL;
-const int FRAMEBUFFER_BINDING = RenderingContext.FRAMEBUFFER_BINDING;
-const int FRAMEBUFFER_COMPLETE = RenderingContext.FRAMEBUFFER_COMPLETE;
-const int FRAMEBUFFER_INCOMPLETE_ATTACHMENT =
- RenderingContext.FRAMEBUFFER_INCOMPLETE_ATTACHMENT;
-const int FRAMEBUFFER_INCOMPLETE_DIMENSIONS =
- RenderingContext.FRAMEBUFFER_INCOMPLETE_DIMENSIONS;
-const int FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT =
- RenderingContext.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT;
-const int FRAMEBUFFER_UNSUPPORTED = RenderingContext.FRAMEBUFFER_UNSUPPORTED;
-const int FRONT = RenderingContext.FRONT;
-const int FRONT_AND_BACK = RenderingContext.FRONT_AND_BACK;
-const int FRONT_FACE = RenderingContext.FRONT_FACE;
-const int FUNC_ADD = RenderingContext.FUNC_ADD;
-const int FUNC_REVERSE_SUBTRACT = RenderingContext.FUNC_REVERSE_SUBTRACT;
-const int FUNC_SUBTRACT = RenderingContext.FUNC_SUBTRACT;
-const int GENERATE_MIPMAP_HINT = RenderingContext.GENERATE_MIPMAP_HINT;
-const int GEQUAL = RenderingContext.GEQUAL;
-const int GREATER = RenderingContext.GREATER;
-const int GREEN_BITS = RenderingContext.GREEN_BITS;
-const int HALF_FLOAT_OES = OesTextureHalfFloat.HALF_FLOAT_OES;
-const int HIGH_FLOAT = RenderingContext.HIGH_FLOAT;
-const int HIGH_INT = RenderingContext.HIGH_INT;
-const int INCR = RenderingContext.INCR;
-const int INCR_WRAP = RenderingContext.INCR_WRAP;
-const int INT = RenderingContext.INT;
-const int INT_VEC2 = RenderingContext.INT_VEC2;
-const int INT_VEC3 = RenderingContext.INT_VEC3;
-const int INT_VEC4 = RenderingContext.INT_VEC4;
-const int INVALID_ENUM = RenderingContext.INVALID_ENUM;
-const int INVALID_FRAMEBUFFER_OPERATION =
- RenderingContext.INVALID_FRAMEBUFFER_OPERATION;
-const int INVALID_OPERATION = RenderingContext.INVALID_OPERATION;
-const int INVALID_VALUE = RenderingContext.INVALID_VALUE;
-const int INVERT = RenderingContext.INVERT;
-const int KEEP = RenderingContext.KEEP;
-const int LEQUAL = RenderingContext.LEQUAL;
-const int LESS = RenderingContext.LESS;
-const int LINEAR = RenderingContext.LINEAR;
-const int LINEAR_MIPMAP_LINEAR = RenderingContext.LINEAR_MIPMAP_LINEAR;
-const int LINEAR_MIPMAP_NEAREST = RenderingContext.LINEAR_MIPMAP_NEAREST;
-const int LINES = RenderingContext.LINES;
-const int LINE_LOOP = RenderingContext.LINE_LOOP;
-const int LINE_STRIP = RenderingContext.LINE_STRIP;
-const int LINE_WIDTH = RenderingContext.LINE_WIDTH;
-const int LINK_STATUS = RenderingContext.LINK_STATUS;
-const int LOW_FLOAT = RenderingContext.LOW_FLOAT;
-const int LOW_INT = RenderingContext.LOW_INT;
-const int LUMINANCE = RenderingContext.LUMINANCE;
-const int LUMINANCE_ALPHA = RenderingContext.LUMINANCE_ALPHA;
-const int MAX_COMBINED_TEXTURE_IMAGE_UNITS =
- RenderingContext.MAX_COMBINED_TEXTURE_IMAGE_UNITS;
-const int MAX_CUBE_MAP_TEXTURE_SIZE =
- RenderingContext.MAX_CUBE_MAP_TEXTURE_SIZE;
-const int MAX_FRAGMENT_UNIFORM_VECTORS =
- RenderingContext.MAX_FRAGMENT_UNIFORM_VECTORS;
-const int MAX_RENDERBUFFER_SIZE = RenderingContext.MAX_RENDERBUFFER_SIZE;
-const int MAX_TEXTURE_IMAGE_UNITS = RenderingContext.MAX_TEXTURE_IMAGE_UNITS;
-const int MAX_TEXTURE_SIZE = RenderingContext.MAX_TEXTURE_SIZE;
-const int MAX_VARYING_VECTORS = RenderingContext.MAX_VARYING_VECTORS;
-const int MAX_VERTEX_ATTRIBS = RenderingContext.MAX_VERTEX_ATTRIBS;
-const int MAX_VERTEX_TEXTURE_IMAGE_UNITS =
- RenderingContext.MAX_VERTEX_TEXTURE_IMAGE_UNITS;
-const int MAX_VERTEX_UNIFORM_VECTORS =
- RenderingContext.MAX_VERTEX_UNIFORM_VECTORS;
-const int MAX_VIEWPORT_DIMS = RenderingContext.MAX_VIEWPORT_DIMS;
-const int MEDIUM_FLOAT = RenderingContext.MEDIUM_FLOAT;
-const int MEDIUM_INT = RenderingContext.MEDIUM_INT;
-const int MIRRORED_REPEAT = RenderingContext.MIRRORED_REPEAT;
-const int NEAREST = RenderingContext.NEAREST;
-const int NEAREST_MIPMAP_LINEAR = RenderingContext.NEAREST_MIPMAP_LINEAR;
-const int NEAREST_MIPMAP_NEAREST = RenderingContext.NEAREST_MIPMAP_NEAREST;
-const int NEVER = RenderingContext.NEVER;
-const int NICEST = RenderingContext.NICEST;
-const int NONE = RenderingContext.NONE;
-const int NOTEQUAL = RenderingContext.NOTEQUAL;
-const int NO_ERROR = RenderingContext.NO_ERROR;
-const int ONE = RenderingContext.ONE;
-const int ONE_MINUS_CONSTANT_ALPHA = RenderingContext.ONE_MINUS_CONSTANT_ALPHA;
-const int ONE_MINUS_CONSTANT_COLOR = RenderingContext.ONE_MINUS_CONSTANT_COLOR;
-const int ONE_MINUS_DST_ALPHA = RenderingContext.ONE_MINUS_DST_ALPHA;
-const int ONE_MINUS_DST_COLOR = RenderingContext.ONE_MINUS_DST_COLOR;
-const int ONE_MINUS_SRC_ALPHA = RenderingContext.ONE_MINUS_SRC_ALPHA;
-const int ONE_MINUS_SRC_COLOR = RenderingContext.ONE_MINUS_SRC_COLOR;
-const int OUT_OF_MEMORY = RenderingContext.OUT_OF_MEMORY;
-const int PACK_ALIGNMENT = RenderingContext.PACK_ALIGNMENT;
-const int POINTS = RenderingContext.POINTS;
-const int POLYGON_OFFSET_FACTOR = RenderingContext.POLYGON_OFFSET_FACTOR;
-const int POLYGON_OFFSET_FILL = RenderingContext.POLYGON_OFFSET_FILL;
-const int POLYGON_OFFSET_UNITS = RenderingContext.POLYGON_OFFSET_UNITS;
-const int RED_BITS = RenderingContext.RED_BITS;
-const int RENDERBUFFER = RenderingContext.RENDERBUFFER;
-const int RENDERBUFFER_ALPHA_SIZE = RenderingContext.RENDERBUFFER_ALPHA_SIZE;
-const int RENDERBUFFER_BINDING = RenderingContext.RENDERBUFFER_BINDING;
-const int RENDERBUFFER_BLUE_SIZE = RenderingContext.RENDERBUFFER_BLUE_SIZE;
-const int RENDERBUFFER_DEPTH_SIZE = RenderingContext.RENDERBUFFER_DEPTH_SIZE;
-const int RENDERBUFFER_GREEN_SIZE = RenderingContext.RENDERBUFFER_GREEN_SIZE;
-const int RENDERBUFFER_HEIGHT = RenderingContext.RENDERBUFFER_HEIGHT;
-const int RENDERBUFFER_INTERNAL_FORMAT =
- RenderingContext.RENDERBUFFER_INTERNAL_FORMAT;
-const int RENDERBUFFER_RED_SIZE = RenderingContext.RENDERBUFFER_RED_SIZE;
-const int RENDERBUFFER_STENCIL_SIZE =
- RenderingContext.RENDERBUFFER_STENCIL_SIZE;
-const int RENDERBUFFER_WIDTH = RenderingContext.RENDERBUFFER_WIDTH;
-const int RENDERER = RenderingContext.RENDERER;
-const int REPEAT = RenderingContext.REPEAT;
-const int REPLACE = RenderingContext.REPLACE;
-const int RGB = RenderingContext.RGB;
-const int RGB565 = RenderingContext.RGB565;
-const int RGB5_A1 = RenderingContext.RGB5_A1;
-const int RGBA = RenderingContext.RGBA;
-const int RGBA4 = RenderingContext.RGBA4;
-const int SAMPLER_2D = RenderingContext.SAMPLER_2D;
-const int SAMPLER_CUBE = RenderingContext.SAMPLER_CUBE;
-const int SAMPLES = RenderingContext.SAMPLES;
-const int SAMPLE_ALPHA_TO_COVERAGE = RenderingContext.SAMPLE_ALPHA_TO_COVERAGE;
-const int SAMPLE_BUFFERS = RenderingContext.SAMPLE_BUFFERS;
-const int SAMPLE_COVERAGE = RenderingContext.SAMPLE_COVERAGE;
-const int SAMPLE_COVERAGE_INVERT = RenderingContext.SAMPLE_COVERAGE_INVERT;
-const int SAMPLE_COVERAGE_VALUE = RenderingContext.SAMPLE_COVERAGE_VALUE;
-const int SCISSOR_BOX = RenderingContext.SCISSOR_BOX;
-const int SCISSOR_TEST = RenderingContext.SCISSOR_TEST;
-const int SHADER_TYPE = RenderingContext.SHADER_TYPE;
-const int SHADING_LANGUAGE_VERSION = RenderingContext.SHADING_LANGUAGE_VERSION;
-const int SHORT = RenderingContext.SHORT;
-const int SRC_ALPHA = RenderingContext.SRC_ALPHA;
-const int SRC_ALPHA_SATURATE = RenderingContext.SRC_ALPHA_SATURATE;
-const int SRC_COLOR = RenderingContext.SRC_COLOR;
-const int STATIC_DRAW = RenderingContext.STATIC_DRAW;
-const int STENCIL_ATTACHMENT = RenderingContext.STENCIL_ATTACHMENT;
-const int STENCIL_BACK_FAIL = RenderingContext.STENCIL_BACK_FAIL;
-const int STENCIL_BACK_FUNC = RenderingContext.STENCIL_BACK_FUNC;
-const int STENCIL_BACK_PASS_DEPTH_FAIL =
- RenderingContext.STENCIL_BACK_PASS_DEPTH_FAIL;
-const int STENCIL_BACK_PASS_DEPTH_PASS =
- RenderingContext.STENCIL_BACK_PASS_DEPTH_PASS;
-const int STENCIL_BACK_REF = RenderingContext.STENCIL_BACK_REF;
-const int STENCIL_BACK_VALUE_MASK = RenderingContext.STENCIL_BACK_VALUE_MASK;
-const int STENCIL_BACK_WRITEMASK = RenderingContext.STENCIL_BACK_WRITEMASK;
-const int STENCIL_BITS = RenderingContext.STENCIL_BITS;
-const int STENCIL_BUFFER_BIT = RenderingContext.STENCIL_BUFFER_BIT;
-const int STENCIL_CLEAR_VALUE = RenderingContext.STENCIL_CLEAR_VALUE;
-const int STENCIL_FAIL = RenderingContext.STENCIL_FAIL;
-const int STENCIL_FUNC = RenderingContext.STENCIL_FUNC;
-const int STENCIL_INDEX = RenderingContext.STENCIL_INDEX;
-const int STENCIL_INDEX8 = RenderingContext.STENCIL_INDEX8;
-const int STENCIL_PASS_DEPTH_FAIL = RenderingContext.STENCIL_PASS_DEPTH_FAIL;
-const int STENCIL_PASS_DEPTH_PASS = RenderingContext.STENCIL_PASS_DEPTH_PASS;
-const int STENCIL_REF = RenderingContext.STENCIL_REF;
-const int STENCIL_TEST = RenderingContext.STENCIL_TEST;
-const int STENCIL_VALUE_MASK = RenderingContext.STENCIL_VALUE_MASK;
-const int STENCIL_WRITEMASK = RenderingContext.STENCIL_WRITEMASK;
-const int STREAM_DRAW = RenderingContext.STREAM_DRAW;
-const int SUBPIXEL_BITS = RenderingContext.SUBPIXEL_BITS;
-const int TEXTURE = RenderingContext.TEXTURE;
-const int TEXTURE0 = RenderingContext.TEXTURE0;
-const int TEXTURE1 = RenderingContext.TEXTURE1;
-const int TEXTURE10 = RenderingContext.TEXTURE10;
-const int TEXTURE11 = RenderingContext.TEXTURE11;
-const int TEXTURE12 = RenderingContext.TEXTURE12;
-const int TEXTURE13 = RenderingContext.TEXTURE13;
-const int TEXTURE14 = RenderingContext.TEXTURE14;
-const int TEXTURE15 = RenderingContext.TEXTURE15;
-const int TEXTURE16 = RenderingContext.TEXTURE16;
-const int TEXTURE17 = RenderingContext.TEXTURE17;
-const int TEXTURE18 = RenderingContext.TEXTURE18;
-const int TEXTURE19 = RenderingContext.TEXTURE19;
-const int TEXTURE2 = RenderingContext.TEXTURE2;
-const int TEXTURE20 = RenderingContext.TEXTURE20;
-const int TEXTURE21 = RenderingContext.TEXTURE21;
-const int TEXTURE22 = RenderingContext.TEXTURE22;
-const int TEXTURE23 = RenderingContext.TEXTURE23;
-const int TEXTURE24 = RenderingContext.TEXTURE24;
-const int TEXTURE25 = RenderingContext.TEXTURE25;
-const int TEXTURE26 = RenderingContext.TEXTURE26;
-const int TEXTURE27 = RenderingContext.TEXTURE27;
-const int TEXTURE28 = RenderingContext.TEXTURE28;
-const int TEXTURE29 = RenderingContext.TEXTURE29;
-const int TEXTURE3 = RenderingContext.TEXTURE3;
-const int TEXTURE30 = RenderingContext.TEXTURE30;
-const int TEXTURE31 = RenderingContext.TEXTURE31;
-const int TEXTURE4 = RenderingContext.TEXTURE4;
-const int TEXTURE5 = RenderingContext.TEXTURE5;
-const int TEXTURE6 = RenderingContext.TEXTURE6;
-const int TEXTURE7 = RenderingContext.TEXTURE7;
-const int TEXTURE8 = RenderingContext.TEXTURE8;
-const int TEXTURE9 = RenderingContext.TEXTURE9;
-const int TEXTURE_2D = RenderingContext.TEXTURE_2D;
-const int TEXTURE_BINDING_2D = RenderingContext.TEXTURE_BINDING_2D;
-const int TEXTURE_BINDING_CUBE_MAP = RenderingContext.TEXTURE_BINDING_CUBE_MAP;
-const int TEXTURE_CUBE_MAP = RenderingContext.TEXTURE_CUBE_MAP;
-const int TEXTURE_CUBE_MAP_NEGATIVE_X =
- RenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_X;
-const int TEXTURE_CUBE_MAP_NEGATIVE_Y =
- RenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_Y;
-const int TEXTURE_CUBE_MAP_NEGATIVE_Z =
- RenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_Z;
-const int TEXTURE_CUBE_MAP_POSITIVE_X =
- RenderingContext.TEXTURE_CUBE_MAP_POSITIVE_X;
-const int TEXTURE_CUBE_MAP_POSITIVE_Y =
- RenderingContext.TEXTURE_CUBE_MAP_POSITIVE_Y;
-const int TEXTURE_CUBE_MAP_POSITIVE_Z =
- RenderingContext.TEXTURE_CUBE_MAP_POSITIVE_Z;
-const int TEXTURE_MAG_FILTER = RenderingContext.TEXTURE_MAG_FILTER;
-const int TEXTURE_MIN_FILTER = RenderingContext.TEXTURE_MIN_FILTER;
-const int TEXTURE_WRAP_S = RenderingContext.TEXTURE_WRAP_S;
-const int TEXTURE_WRAP_T = RenderingContext.TEXTURE_WRAP_T;
-const int TRIANGLES = RenderingContext.TRIANGLES;
-const int TRIANGLE_FAN = RenderingContext.TRIANGLE_FAN;
-const int TRIANGLE_STRIP = RenderingContext.TRIANGLE_STRIP;
-const int UNPACK_ALIGNMENT = RenderingContext.UNPACK_ALIGNMENT;
-const int UNPACK_COLORSPACE_CONVERSION_WEBGL =
- RenderingContext.UNPACK_COLORSPACE_CONVERSION_WEBGL;
-const int UNPACK_FLIP_Y_WEBGL = RenderingContext.UNPACK_FLIP_Y_WEBGL;
-const int UNPACK_PREMULTIPLY_ALPHA_WEBGL =
- RenderingContext.UNPACK_PREMULTIPLY_ALPHA_WEBGL;
-const int UNSIGNED_BYTE = RenderingContext.UNSIGNED_BYTE;
-const int UNSIGNED_INT = RenderingContext.UNSIGNED_INT;
-const int UNSIGNED_SHORT = RenderingContext.UNSIGNED_SHORT;
-const int UNSIGNED_SHORT_4_4_4_4 = RenderingContext.UNSIGNED_SHORT_4_4_4_4;
-const int UNSIGNED_SHORT_5_5_5_1 = RenderingContext.UNSIGNED_SHORT_5_5_5_1;
-const int UNSIGNED_SHORT_5_6_5 = RenderingContext.UNSIGNED_SHORT_5_6_5;
-const int VALIDATE_STATUS = RenderingContext.VALIDATE_STATUS;
-const int VENDOR = RenderingContext.VENDOR;
-const int VERSION = RenderingContext.VERSION;
-const int VERTEX_ATTRIB_ARRAY_BUFFER_BINDING =
- RenderingContext.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING;
-const int VERTEX_ATTRIB_ARRAY_ENABLED =
- RenderingContext.VERTEX_ATTRIB_ARRAY_ENABLED;
-const int VERTEX_ATTRIB_ARRAY_NORMALIZED =
- RenderingContext.VERTEX_ATTRIB_ARRAY_NORMALIZED;
-const int VERTEX_ATTRIB_ARRAY_POINTER =
- RenderingContext.VERTEX_ATTRIB_ARRAY_POINTER;
-const int VERTEX_ATTRIB_ARRAY_SIZE = RenderingContext.VERTEX_ATTRIB_ARRAY_SIZE;
-const int VERTEX_ATTRIB_ARRAY_STRIDE =
- RenderingContext.VERTEX_ATTRIB_ARRAY_STRIDE;
-const int VERTEX_ATTRIB_ARRAY_TYPE = RenderingContext.VERTEX_ATTRIB_ARRAY_TYPE;
-const int VERTEX_SHADER = RenderingContext.VERTEX_SHADER;
-const int VIEWPORT = RenderingContext.VIEWPORT;
-const int ZERO = RenderingContext.ZERO;
-// 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.
-
-@DocsEditable()
-@DomName('WebGLActiveInfo')
-@Unstable()
-@Native("WebGLActiveInfo")
-class ActiveInfo extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory ActiveInfo._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('WebGLActiveInfo.name')
- @DocsEditable()
- final String name;
-
- @DomName('WebGLActiveInfo.size')
- @DocsEditable()
- final int size;
-
- @DomName('WebGLActiveInfo.type')
- @DocsEditable()
- final int type;
-}
-// 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.
-
-@DocsEditable()
-@DomName('ANGLEInstancedArrays')
-@Experimental() // untriaged
-@Native("ANGLEInstancedArrays,ANGLE_instanced_arrays")
-class AngleInstancedArrays extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory AngleInstancedArrays._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('ANGLEInstancedArrays.VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE = 0x88FE;
-
- @JSName('drawArraysInstancedANGLE')
- @DomName('ANGLEInstancedArrays.drawArraysInstancedANGLE')
- @DocsEditable()
- @Experimental() // untriaged
- void drawArraysInstancedAngle(int mode, int first, int count, int primcount)
- native;
-
- @JSName('drawElementsInstancedANGLE')
- @DomName('ANGLEInstancedArrays.drawElementsInstancedANGLE')
- @DocsEditable()
- @Experimental() // untriaged
- void drawElementsInstancedAngle(
- int mode, int count, int type, int offset, int primcount) native;
-
- @JSName('vertexAttribDivisorANGLE')
- @DomName('ANGLEInstancedArrays.vertexAttribDivisorANGLE')
- @DocsEditable()
- @Experimental() // untriaged
- void vertexAttribDivisorAngle(int index, int divisor) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('WebGLBuffer')
-@Unstable()
-@Native("WebGLBuffer")
-class Buffer extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory Buffer._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('CHROMIUMSubscribeUniform')
-@Experimental() // untriaged
-@Native("CHROMIUMSubscribeUniform")
-class ChromiumSubscribeUniform extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory ChromiumSubscribeUniform._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('CHROMIUMSubscribeUniform.MOUSE_POSITION_CHROMIUM')
- @DocsEditable()
- @Experimental() // untriaged
- static const int MOUSE_POSITION_CHROMIUM = 0x924C;
-
- @DomName('CHROMIUMSubscribeUniform.SUBSCRIBED_VALUES_BUFFER_CHROMIUM')
- @DocsEditable()
- @Experimental() // untriaged
- static const int SUBSCRIBED_VALUES_BUFFER_CHROMIUM = 0x924B;
-
- @JSName('bindValuebufferCHROMIUM')
- @DomName('CHROMIUMSubscribeUniform.bindValuebufferCHROMIUM')
- @DocsEditable()
- @Experimental() // untriaged
- void bindValuebufferChromium(int target, ChromiumValuebuffer buffer) native;
-
- @JSName('createValuebufferCHROMIUM')
- @DomName('CHROMIUMSubscribeUniform.createValuebufferCHROMIUM')
- @DocsEditable()
- @Experimental() // untriaged
- ChromiumValuebuffer createValuebufferChromium() native;
-
- @JSName('deleteValuebufferCHROMIUM')
- @DomName('CHROMIUMSubscribeUniform.deleteValuebufferCHROMIUM')
- @DocsEditable()
- @Experimental() // untriaged
- void deleteValuebufferChromium(ChromiumValuebuffer buffer) native;
-
- @JSName('isValuebufferCHROMIUM')
- @DomName('CHROMIUMSubscribeUniform.isValuebufferCHROMIUM')
- @DocsEditable()
- @Experimental() // untriaged
- bool isValuebufferChromium(ChromiumValuebuffer buffer) native;
-
- @JSName('populateSubscribedValuesCHROMIUM')
- @DomName('CHROMIUMSubscribeUniform.populateSubscribedValuesCHROMIUM')
- @DocsEditable()
- @Experimental() // untriaged
- void populateSubscribedValuesChromium(int target) native;
-
- @JSName('subscribeValueCHROMIUM')
- @DomName('CHROMIUMSubscribeUniform.subscribeValueCHROMIUM')
- @DocsEditable()
- @Experimental() // untriaged
- void subscribeValueChromium(int target, int subscriptions) native;
-
- @JSName('uniformValuebufferCHROMIUM')
- @DomName('CHROMIUMSubscribeUniform.uniformValuebufferCHROMIUM')
- @DocsEditable()
- @Experimental() // untriaged
- void uniformValuebufferChromium(
- UniformLocation location, int target, int subscription) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('WebGLCompressedTextureASTC')
-@Experimental() // untriaged
-@Native("WebGLCompressedTextureASTC")
-class CompressedTextureAstc extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory CompressedTextureAstc._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('WebGLCompressedTextureASTC.COMPRESSED_RGBA_ASTC_10x10_KHR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int COMPRESSED_RGBA_ASTC_10x10_KHR = 0x93BB;
-
- @DomName('WebGLCompressedTextureASTC.COMPRESSED_RGBA_ASTC_10x5_KHR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int COMPRESSED_RGBA_ASTC_10x5_KHR = 0x93B8;
-
- @DomName('WebGLCompressedTextureASTC.COMPRESSED_RGBA_ASTC_10x6_KHR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int COMPRESSED_RGBA_ASTC_10x6_KHR = 0x93B9;
-
- @DomName('WebGLCompressedTextureASTC.COMPRESSED_RGBA_ASTC_10x8_KHR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int COMPRESSED_RGBA_ASTC_10x8_KHR = 0x93BA;
-
- @DomName('WebGLCompressedTextureASTC.COMPRESSED_RGBA_ASTC_12x10_KHR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int COMPRESSED_RGBA_ASTC_12x10_KHR = 0x93BC;
-
- @DomName('WebGLCompressedTextureASTC.COMPRESSED_RGBA_ASTC_12x12_KHR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int COMPRESSED_RGBA_ASTC_12x12_KHR = 0x93BD;
-
- @DomName('WebGLCompressedTextureASTC.COMPRESSED_RGBA_ASTC_4x4_KHR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int COMPRESSED_RGBA_ASTC_4x4_KHR = 0x93B0;
-
- @DomName('WebGLCompressedTextureASTC.COMPRESSED_RGBA_ASTC_5x4_KHR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int COMPRESSED_RGBA_ASTC_5x4_KHR = 0x93B1;
-
- @DomName('WebGLCompressedTextureASTC.COMPRESSED_RGBA_ASTC_5x5_KHR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int COMPRESSED_RGBA_ASTC_5x5_KHR = 0x93B2;
-
- @DomName('WebGLCompressedTextureASTC.COMPRESSED_RGBA_ASTC_6x5_KHR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int COMPRESSED_RGBA_ASTC_6x5_KHR = 0x93B3;
-
- @DomName('WebGLCompressedTextureASTC.COMPRESSED_RGBA_ASTC_6x6_KHR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int COMPRESSED_RGBA_ASTC_6x6_KHR = 0x93B4;
-
- @DomName('WebGLCompressedTextureASTC.COMPRESSED_RGBA_ASTC_8x5_KHR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int COMPRESSED_RGBA_ASTC_8x5_KHR = 0x93B5;
-
- @DomName('WebGLCompressedTextureASTC.COMPRESSED_RGBA_ASTC_8x6_KHR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int COMPRESSED_RGBA_ASTC_8x6_KHR = 0x93B6;
-
- @DomName('WebGLCompressedTextureASTC.COMPRESSED_RGBA_ASTC_8x8_KHR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int COMPRESSED_RGBA_ASTC_8x8_KHR = 0x93B7;
-
- @DomName('WebGLCompressedTextureASTC.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR = 0x93DB;
-
- @DomName('WebGLCompressedTextureASTC.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR = 0x93D8;
-
- @DomName('WebGLCompressedTextureASTC.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR = 0x93D9;
-
- @DomName('WebGLCompressedTextureASTC.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR = 0x93DA;
-
- @DomName('WebGLCompressedTextureASTC.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR = 0x93DC;
-
- @DomName('WebGLCompressedTextureASTC.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR = 0x93DD;
-
- @DomName('WebGLCompressedTextureASTC.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = 0x93D0;
-
- @DomName('WebGLCompressedTextureASTC.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR = 0x93D1;
-
- @DomName('WebGLCompressedTextureASTC.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR = 0x93D2;
-
- @DomName('WebGLCompressedTextureASTC.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR = 0x93D3;
-
- @DomName('WebGLCompressedTextureASTC.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR = 0x93D4;
-
- @DomName('WebGLCompressedTextureASTC.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR = 0x93D5;
-
- @DomName('WebGLCompressedTextureASTC.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR = 0x93D6;
-
- @DomName('WebGLCompressedTextureASTC.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR = 0x93D7;
-}
-// 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.
-
-@DocsEditable()
-@DomName('WebGLCompressedTextureATC')
-// http://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_atc/
-@Experimental()
-@Native("WebGLCompressedTextureATC,WEBGL_compressed_texture_atc")
-class CompressedTextureAtc extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory CompressedTextureAtc._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('WebGLCompressedTextureATC.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL')
- @DocsEditable()
- static const int COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL = 0x8C93;
-
- @DomName(
- 'WebGLCompressedTextureATC.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL')
- @DocsEditable()
- static const int COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL = 0x87EE;
-
- @DomName('WebGLCompressedTextureATC.COMPRESSED_RGB_ATC_WEBGL')
- @DocsEditable()
- static const int COMPRESSED_RGB_ATC_WEBGL = 0x8C92;
-}
-// 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.
-
-@DocsEditable()
-@DomName('WebGLCompressedTextureETC1')
-@Experimental() // untriaged
-@Native("WebGLCompressedTextureETC1,WEBGL_compressed_texture_etc1")
-class CompressedTextureETC1 extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory CompressedTextureETC1._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('WebGLCompressedTextureETC1.COMPRESSED_RGB_ETC1_WEBGL')
- @DocsEditable()
- @Experimental() // untriaged
- static const int COMPRESSED_RGB_ETC1_WEBGL = 0x8D64;
-}
-// 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.
-
-@DocsEditable()
-@DomName('WebGLCompressedTexturePVRTC')
-// http://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_pvrtc/
-@Experimental() // experimental
-@Native("WebGLCompressedTexturePVRTC,WEBGL_compressed_texture_pvrtc")
-class CompressedTexturePvrtc extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory CompressedTexturePvrtc._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('WebGLCompressedTexturePVRTC.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG')
- @DocsEditable()
- static const int COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 0x8C03;
-
- @DomName('WebGLCompressedTexturePVRTC.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG')
- @DocsEditable()
- static const int COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 0x8C02;
-
- @DomName('WebGLCompressedTexturePVRTC.COMPRESSED_RGB_PVRTC_2BPPV1_IMG')
- @DocsEditable()
- static const int COMPRESSED_RGB_PVRTC_2BPPV1_IMG = 0x8C01;
-
- @DomName('WebGLCompressedTexturePVRTC.COMPRESSED_RGB_PVRTC_4BPPV1_IMG')
- @DocsEditable()
- static const int COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 0x8C00;
-}
-// 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.
-
-@DocsEditable()
-@DomName('WebGLCompressedTextureS3TC')
-// http://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_s3tc/
-@Experimental() // experimental
-@Native("WebGLCompressedTextureS3TC,WEBGL_compressed_texture_s3tc")
-class CompressedTextureS3TC extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory CompressedTextureS3TC._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('WebGLCompressedTextureS3TC.COMPRESSED_RGBA_S3TC_DXT1_EXT')
- @DocsEditable()
- static const int COMPRESSED_RGBA_S3TC_DXT1_EXT = 0x83F1;
-
- @DomName('WebGLCompressedTextureS3TC.COMPRESSED_RGBA_S3TC_DXT3_EXT')
- @DocsEditable()
- static const int COMPRESSED_RGBA_S3TC_DXT3_EXT = 0x83F2;
-
- @DomName('WebGLCompressedTextureS3TC.COMPRESSED_RGBA_S3TC_DXT5_EXT')
- @DocsEditable()
- static const int COMPRESSED_RGBA_S3TC_DXT5_EXT = 0x83F3;
-
- @DomName('WebGLCompressedTextureS3TC.COMPRESSED_RGB_S3TC_DXT1_EXT')
- @DocsEditable()
- static const int COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83F0;
-}
-// 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.
-
-@DocsEditable()
-@DomName('WebGLContextEvent')
-@Unstable()
-@Native("WebGLContextEvent")
-class ContextEvent extends Event {
- // To suppress missing implicit constructor warnings.
- factory ContextEvent._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('WebGLContextEvent.WebGLContextEvent')
- @DocsEditable()
- factory ContextEvent(String type, [Map eventInit]) {
- if (eventInit != null) {
- var eventInit_1 = convertDartToNative_Dictionary(eventInit);
- return ContextEvent._create_1(type, eventInit_1);
- }
- return ContextEvent._create_2(type);
- }
- static ContextEvent _create_1(type, eventInit) =>
- JS('ContextEvent', 'new WebGLContextEvent(#,#)', type, eventInit);
- static ContextEvent _create_2(type) =>
- JS('ContextEvent', 'new WebGLContextEvent(#)', type);
-
- @DomName('WebGLContextEvent.statusMessage')
- @DocsEditable()
- final String statusMessage;
-}
-// 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.
-
-@DocsEditable()
-@DomName('WebGLDebugRendererInfo')
-// http://www.khronos.org/registry/webgl/extensions/WEBGL_debug_renderer_info/
-@Experimental() // experimental
-@Native("WebGLDebugRendererInfo,WEBGL_debug_renderer_info")
-class DebugRendererInfo extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory DebugRendererInfo._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('WebGLDebugRendererInfo.UNMASKED_RENDERER_WEBGL')
- @DocsEditable()
- static const int UNMASKED_RENDERER_WEBGL = 0x9246;
-
- @DomName('WebGLDebugRendererInfo.UNMASKED_VENDOR_WEBGL')
- @DocsEditable()
- static const int UNMASKED_VENDOR_WEBGL = 0x9245;
-}
-// 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.
-
-@DocsEditable()
-@DomName('WebGLDebugShaders')
-// http://www.khronos.org/registry/webgl/extensions/WEBGL_debug_shaders/
-@Experimental() // experimental
-@Native("WebGLDebugShaders,WEBGL_debug_shaders")
-class DebugShaders extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory DebugShaders._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('WebGLDebugShaders.getTranslatedShaderSource')
- @DocsEditable()
- String getTranslatedShaderSource(Shader shader) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('WebGLDepthTexture')
-// http://www.khronos.org/registry/webgl/extensions/WEBGL_depth_texture/
-@Experimental() // experimental
-@Native("WebGLDepthTexture,WEBGL_depth_texture")
-class DepthTexture extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory DepthTexture._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('WebGLDepthTexture.UNSIGNED_INT_24_8_WEBGL')
- @DocsEditable()
- static const int UNSIGNED_INT_24_8_WEBGL = 0x84FA;
-}
-// 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.
-
-@DocsEditable()
-@DomName('WebGLDrawBuffers')
-// http://www.khronos.org/registry/webgl/specs/latest/
-@Experimental() // stable
-@Native("WebGLDrawBuffers,WEBGL_draw_buffers")
-class DrawBuffers extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory DrawBuffers._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('WebGLDrawBuffers.COLOR_ATTACHMENT0_WEBGL')
- @DocsEditable()
- static const int COLOR_ATTACHMENT0_WEBGL = 0x8CE0;
-
- @DomName('WebGLDrawBuffers.COLOR_ATTACHMENT10_WEBGL')
- @DocsEditable()
- static const int COLOR_ATTACHMENT10_WEBGL = 0x8CEA;
-
- @DomName('WebGLDrawBuffers.COLOR_ATTACHMENT11_WEBGL')
- @DocsEditable()
- static const int COLOR_ATTACHMENT11_WEBGL = 0x8CEB;
-
- @DomName('WebGLDrawBuffers.COLOR_ATTACHMENT12_WEBGL')
- @DocsEditable()
- static const int COLOR_ATTACHMENT12_WEBGL = 0x8CEC;
-
- @DomName('WebGLDrawBuffers.COLOR_ATTACHMENT13_WEBGL')
- @DocsEditable()
- static const int COLOR_ATTACHMENT13_WEBGL = 0x8CED;
-
- @DomName('WebGLDrawBuffers.COLOR_ATTACHMENT14_WEBGL')
- @DocsEditable()
- static const int COLOR_ATTACHMENT14_WEBGL = 0x8CEE;
-
- @DomName('WebGLDrawBuffers.COLOR_ATTACHMENT15_WEBGL')
- @DocsEditable()
- static const int COLOR_ATTACHMENT15_WEBGL = 0x8CEF;
-
- @DomName('WebGLDrawBuffers.COLOR_ATTACHMENT1_WEBGL')
- @DocsEditable()
- static const int COLOR_ATTACHMENT1_WEBGL = 0x8CE1;
-
- @DomName('WebGLDrawBuffers.COLOR_ATTACHMENT2_WEBGL')
- @DocsEditable()
- static const int COLOR_ATTACHMENT2_WEBGL = 0x8CE2;
-
- @DomName('WebGLDrawBuffers.COLOR_ATTACHMENT3_WEBGL')
- @DocsEditable()
- static const int COLOR_ATTACHMENT3_WEBGL = 0x8CE3;
-
- @DomName('WebGLDrawBuffers.COLOR_ATTACHMENT4_WEBGL')
- @DocsEditable()
- static const int COLOR_ATTACHMENT4_WEBGL = 0x8CE4;
-
- @DomName('WebGLDrawBuffers.COLOR_ATTACHMENT5_WEBGL')
- @DocsEditable()
- static const int COLOR_ATTACHMENT5_WEBGL = 0x8CE5;
-
- @DomName('WebGLDrawBuffers.COLOR_ATTACHMENT6_WEBGL')
- @DocsEditable()
- static const int COLOR_ATTACHMENT6_WEBGL = 0x8CE6;
-
- @DomName('WebGLDrawBuffers.COLOR_ATTACHMENT7_WEBGL')
- @DocsEditable()
- static const int COLOR_ATTACHMENT7_WEBGL = 0x8CE7;
-
- @DomName('WebGLDrawBuffers.COLOR_ATTACHMENT8_WEBGL')
- @DocsEditable()
- static const int COLOR_ATTACHMENT8_WEBGL = 0x8CE8;
-
- @DomName('WebGLDrawBuffers.COLOR_ATTACHMENT9_WEBGL')
- @DocsEditable()
- static const int COLOR_ATTACHMENT9_WEBGL = 0x8CE9;
-
- @DomName('WebGLDrawBuffers.DRAW_BUFFER0_WEBGL')
- @DocsEditable()
- static const int DRAW_BUFFER0_WEBGL = 0x8825;
-
- @DomName('WebGLDrawBuffers.DRAW_BUFFER10_WEBGL')
- @DocsEditable()
- static const int DRAW_BUFFER10_WEBGL = 0x882F;
-
- @DomName('WebGLDrawBuffers.DRAW_BUFFER11_WEBGL')
- @DocsEditable()
- static const int DRAW_BUFFER11_WEBGL = 0x8830;
-
- @DomName('WebGLDrawBuffers.DRAW_BUFFER12_WEBGL')
- @DocsEditable()
- static const int DRAW_BUFFER12_WEBGL = 0x8831;
-
- @DomName('WebGLDrawBuffers.DRAW_BUFFER13_WEBGL')
- @DocsEditable()
- static const int DRAW_BUFFER13_WEBGL = 0x8832;
-
- @DomName('WebGLDrawBuffers.DRAW_BUFFER14_WEBGL')
- @DocsEditable()
- static const int DRAW_BUFFER14_WEBGL = 0x8833;
-
- @DomName('WebGLDrawBuffers.DRAW_BUFFER15_WEBGL')
- @DocsEditable()
- static const int DRAW_BUFFER15_WEBGL = 0x8834;
-
- @DomName('WebGLDrawBuffers.DRAW_BUFFER1_WEBGL')
- @DocsEditable()
- static const int DRAW_BUFFER1_WEBGL = 0x8826;
-
- @DomName('WebGLDrawBuffers.DRAW_BUFFER2_WEBGL')
- @DocsEditable()
- static const int DRAW_BUFFER2_WEBGL = 0x8827;
-
- @DomName('WebGLDrawBuffers.DRAW_BUFFER3_WEBGL')
- @DocsEditable()
- static const int DRAW_BUFFER3_WEBGL = 0x8828;
-
- @DomName('WebGLDrawBuffers.DRAW_BUFFER4_WEBGL')
- @DocsEditable()
- static const int DRAW_BUFFER4_WEBGL = 0x8829;
-
- @DomName('WebGLDrawBuffers.DRAW_BUFFER5_WEBGL')
- @DocsEditable()
- static const int DRAW_BUFFER5_WEBGL = 0x882A;
-
- @DomName('WebGLDrawBuffers.DRAW_BUFFER6_WEBGL')
- @DocsEditable()
- static const int DRAW_BUFFER6_WEBGL = 0x882B;
-
- @DomName('WebGLDrawBuffers.DRAW_BUFFER7_WEBGL')
- @DocsEditable()
- static const int DRAW_BUFFER7_WEBGL = 0x882C;
-
- @DomName('WebGLDrawBuffers.DRAW_BUFFER8_WEBGL')
- @DocsEditable()
- static const int DRAW_BUFFER8_WEBGL = 0x882D;
-
- @DomName('WebGLDrawBuffers.DRAW_BUFFER9_WEBGL')
- @DocsEditable()
- static const int DRAW_BUFFER9_WEBGL = 0x882E;
-
- @DomName('WebGLDrawBuffers.MAX_COLOR_ATTACHMENTS_WEBGL')
- @DocsEditable()
- static const int MAX_COLOR_ATTACHMENTS_WEBGL = 0x8CDF;
-
- @DomName('WebGLDrawBuffers.MAX_DRAW_BUFFERS_WEBGL')
- @DocsEditable()
- static const int MAX_DRAW_BUFFERS_WEBGL = 0x8824;
-
- @JSName('drawBuffersWEBGL')
- @DomName('WebGLDrawBuffers.drawBuffersWEBGL')
- @DocsEditable()
- void drawBuffersWebgl(List<int> buffers) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('EXTsRGB')
-@Experimental() // untriaged
-@Native("EXTsRGB,EXT_sRGB")
-class EXTsRgb extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory EXTsRgb._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('EXTsRGB.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT = 0x8210;
-
- @DomName('EXTsRGB.SRGB8_ALPHA8_EXT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int SRGB8_ALPHA8_EXT = 0x8C43;
-
- @DomName('EXTsRGB.SRGB_ALPHA_EXT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int SRGB_ALPHA_EXT = 0x8C42;
-
- @DomName('EXTsRGB.SRGB_EXT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int SRGB_EXT = 0x8C40;
-}
-// 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.
-
-@DocsEditable()
-@DomName('EXTBlendMinMax')
-@Experimental() // untriaged
-@Native("EXTBlendMinMax,EXT_blend_minmax")
-class ExtBlendMinMax extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory ExtBlendMinMax._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('EXTBlendMinMax.MAX_EXT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int MAX_EXT = 0x8008;
-
- @DomName('EXTBlendMinMax.MIN_EXT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int MIN_EXT = 0x8007;
-}
-// 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.
-
-@DocsEditable()
-@DomName('EXTColorBufferFloat')
-@Experimental() // untriaged
-@Native("EXTColorBufferFloat")
-class ExtColorBufferFloat extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory ExtColorBufferFloat._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('EXTDisjointTimerQuery')
-@Experimental() // untriaged
-@Native("EXTDisjointTimerQuery")
-class ExtDisjointTimerQuery extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory ExtDisjointTimerQuery._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('EXTDisjointTimerQuery.CURRENT_QUERY_EXT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int CURRENT_QUERY_EXT = 0x8865;
-
- @DomName('EXTDisjointTimerQuery.GPU_DISJOINT_EXT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int GPU_DISJOINT_EXT = 0x8FBB;
-
- @DomName('EXTDisjointTimerQuery.QUERY_COUNTER_BITS_EXT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int QUERY_COUNTER_BITS_EXT = 0x8864;
-
- @DomName('EXTDisjointTimerQuery.QUERY_RESULT_AVAILABLE_EXT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int QUERY_RESULT_AVAILABLE_EXT = 0x8867;
-
- @DomName('EXTDisjointTimerQuery.QUERY_RESULT_EXT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int QUERY_RESULT_EXT = 0x8866;
-
- @DomName('EXTDisjointTimerQuery.TIMESTAMP_EXT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TIMESTAMP_EXT = 0x8E28;
-
- @DomName('EXTDisjointTimerQuery.TIME_ELAPSED_EXT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TIME_ELAPSED_EXT = 0x88BF;
-
- @JSName('beginQueryEXT')
- @DomName('EXTDisjointTimerQuery.beginQueryEXT')
- @DocsEditable()
- @Experimental() // untriaged
- void beginQueryExt(int target, TimerQueryExt query) native;
-
- @JSName('createQueryEXT')
- @DomName('EXTDisjointTimerQuery.createQueryEXT')
- @DocsEditable()
- @Experimental() // untriaged
- TimerQueryExt createQueryExt() native;
-
- @JSName('deleteQueryEXT')
- @DomName('EXTDisjointTimerQuery.deleteQueryEXT')
- @DocsEditable()
- @Experimental() // untriaged
- void deleteQueryExt(TimerQueryExt query) native;
-
- @JSName('endQueryEXT')
- @DomName('EXTDisjointTimerQuery.endQueryEXT')
- @DocsEditable()
- @Experimental() // untriaged
- void endQueryExt(int target) native;
-
- @JSName('getQueryEXT')
- @DomName('EXTDisjointTimerQuery.getQueryEXT')
- @DocsEditable()
- @Experimental() // untriaged
- Object getQueryExt(int target, int pname) native;
-
- @JSName('getQueryObjectEXT')
- @DomName('EXTDisjointTimerQuery.getQueryObjectEXT')
- @DocsEditable()
- @Experimental() // untriaged
- Object getQueryObjectExt(TimerQueryExt query, int pname) native;
-
- @JSName('isQueryEXT')
- @DomName('EXTDisjointTimerQuery.isQueryEXT')
- @DocsEditable()
- @Experimental() // untriaged
- bool isQueryExt(TimerQueryExt query) native;
-
- @JSName('queryCounterEXT')
- @DomName('EXTDisjointTimerQuery.queryCounterEXT')
- @DocsEditable()
- @Experimental() // untriaged
- void queryCounterExt(TimerQueryExt query, int target) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('EXTFragDepth')
-// http://www.khronos.org/registry/webgl/extensions/EXT_frag_depth/
-@Experimental()
-@Native("EXTFragDepth,EXT_frag_depth")
-class ExtFragDepth extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory ExtFragDepth._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('EXTShaderTextureLOD')
-@Experimental() // untriaged
-@Native("EXTShaderTextureLOD,EXT_shader_texture_lod")
-class ExtShaderTextureLod extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory ExtShaderTextureLod._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('EXTTextureFilterAnisotropic')
-// http://www.khronos.org/registry/webgl/extensions/EXT_texture_filter_anisotropic/
-@Experimental()
-@Native("EXTTextureFilterAnisotropic,EXT_texture_filter_anisotropic")
-class ExtTextureFilterAnisotropic extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory ExtTextureFilterAnisotropic._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('EXTTextureFilterAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT')
- @DocsEditable()
- static const int MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FF;
-
- @DomName('EXTTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT')
- @DocsEditable()
- static const int TEXTURE_MAX_ANISOTROPY_EXT = 0x84FE;
-}
-// 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.
-
-@DocsEditable()
-@DomName('WebGLFramebuffer')
-@Unstable()
-@Native("WebGLFramebuffer")
-class Framebuffer extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory Framebuffer._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('WebGLLoseContext')
-// http://www.khronos.org/registry/webgl/extensions/WEBGL_lose_context/
-@Experimental()
-@Native("WebGLLoseContext,WebGLExtensionLoseContext,WEBGL_lose_context")
-class LoseContext extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory LoseContext._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('WebGLLoseContext.loseContext')
- @DocsEditable()
- void loseContext() native;
-
- @DomName('WebGLLoseContext.restoreContext')
- @DocsEditable()
- void restoreContext() native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('OESElementIndexUint')
-// http://www.khronos.org/registry/webgl/extensions/OES_element_index_uint/
-@Experimental() // experimental
-@Native("OESElementIndexUint,OES_element_index_uint")
-class OesElementIndexUint extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory OesElementIndexUint._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('OESStandardDerivatives')
-// http://www.khronos.org/registry/webgl/extensions/OES_standard_derivatives/
-@Experimental() // experimental
-@Native("OESStandardDerivatives,OES_standard_derivatives")
-class OesStandardDerivatives extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory OesStandardDerivatives._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('OESStandardDerivatives.FRAGMENT_SHADER_DERIVATIVE_HINT_OES')
- @DocsEditable()
- static const int FRAGMENT_SHADER_DERIVATIVE_HINT_OES = 0x8B8B;
-}
-// 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.
-
-@DocsEditable()
-@DomName('OESTextureFloat')
-// http://www.khronos.org/registry/webgl/extensions/OES_texture_float/
-@Experimental() // experimental
-@Native("OESTextureFloat,OES_texture_float")
-class OesTextureFloat extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory OesTextureFloat._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('OESTextureFloatLinear')
-// http://www.khronos.org/registry/webgl/extensions/OES_texture_float_linear/
-@Experimental()
-@Native("OESTextureFloatLinear,OES_texture_float_linear")
-class OesTextureFloatLinear extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory OesTextureFloatLinear._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('OESTextureHalfFloat')
-// http://www.khronos.org/registry/webgl/extensions/OES_texture_half_float/
-@Experimental() // experimental
-@Native("OESTextureHalfFloat,OES_texture_half_float")
-class OesTextureHalfFloat extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory OesTextureHalfFloat._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('OESTextureHalfFloat.HALF_FLOAT_OES')
- @DocsEditable()
- static const int HALF_FLOAT_OES = 0x8D61;
-}
-// 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.
-
-@DocsEditable()
-@DomName('OESTextureHalfFloatLinear')
-// http://www.khronos.org/registry/webgl/extensions/OES_texture_half_float_linear/
-@Experimental()
-@Native("OESTextureHalfFloatLinear,OES_texture_half_float_linear")
-class OesTextureHalfFloatLinear extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory OesTextureHalfFloatLinear._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('OESVertexArrayObject')
-// http://www.khronos.org/registry/webgl/extensions/OES_vertex_array_object/
-@Experimental() // experimental
-@Native("OESVertexArrayObject,OES_vertex_array_object")
-class OesVertexArrayObject extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory OesVertexArrayObject._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('OESVertexArrayObject.VERTEX_ARRAY_BINDING_OES')
- @DocsEditable()
- static const int VERTEX_ARRAY_BINDING_OES = 0x85B5;
-
- @JSName('bindVertexArrayOES')
- @DomName('OESVertexArrayObject.bindVertexArrayOES')
- @DocsEditable()
- void bindVertexArray(VertexArrayObjectOes arrayObject) native;
-
- @JSName('createVertexArrayOES')
- @DomName('OESVertexArrayObject.createVertexArrayOES')
- @DocsEditable()
- VertexArrayObjectOes createVertexArray() native;
-
- @JSName('deleteVertexArrayOES')
- @DomName('OESVertexArrayObject.deleteVertexArrayOES')
- @DocsEditable()
- void deleteVertexArray(VertexArrayObjectOes arrayObject) native;
-
- @JSName('isVertexArrayOES')
- @DomName('OESVertexArrayObject.isVertexArrayOES')
- @DocsEditable()
- bool isVertexArray(VertexArrayObjectOes arrayObject) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('WebGLProgram')
-@Unstable()
-@Native("WebGLProgram")
-class Program extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory Program._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('WebGLQuery')
-@Experimental() // untriaged
-@Native("WebGLQuery")
-class Query extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory Query._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('WebGLRenderbuffer')
-@Unstable()
-@Native("WebGLRenderbuffer")
-class Renderbuffer extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory Renderbuffer._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DomName('WebGLRenderingContext')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.FIREFOX)
-@Experimental()
-@Unstable()
-@Native("WebGLRenderingContext")
-class RenderingContext extends Interceptor implements CanvasRenderingContext {
- // To suppress missing implicit constructor warnings.
- factory RenderingContext._() {
- throw new UnsupportedError("Not supported");
- }
-
- /// Checks if this type is supported on the current platform.
- static bool get supported => JS('bool', '!!(window.WebGLRenderingContext)');
-
- @DomName('WebGLRenderingContext.ACTIVE_ATTRIBUTES')
- @DocsEditable()
- static const int ACTIVE_ATTRIBUTES = 0x8B89;
-
- @DomName('WebGLRenderingContext.ACTIVE_TEXTURE')
- @DocsEditable()
- static const int ACTIVE_TEXTURE = 0x84E0;
-
- @DomName('WebGLRenderingContext.ACTIVE_UNIFORMS')
- @DocsEditable()
- static const int ACTIVE_UNIFORMS = 0x8B86;
-
- @DomName('WebGLRenderingContext.ALIASED_LINE_WIDTH_RANGE')
- @DocsEditable()
- static const int ALIASED_LINE_WIDTH_RANGE = 0x846E;
-
- @DomName('WebGLRenderingContext.ALIASED_POINT_SIZE_RANGE')
- @DocsEditable()
- static const int ALIASED_POINT_SIZE_RANGE = 0x846D;
-
- @DomName('WebGLRenderingContext.ALPHA')
- @DocsEditable()
- static const int ALPHA = 0x1906;
-
- @DomName('WebGLRenderingContext.ALPHA_BITS')
- @DocsEditable()
- static const int ALPHA_BITS = 0x0D55;
-
- @DomName('WebGLRenderingContext.ALWAYS')
- @DocsEditable()
- static const int ALWAYS = 0x0207;
-
- @DomName('WebGLRenderingContext.ARRAY_BUFFER')
- @DocsEditable()
- static const int ARRAY_BUFFER = 0x8892;
-
- @DomName('WebGLRenderingContext.ARRAY_BUFFER_BINDING')
- @DocsEditable()
- static const int ARRAY_BUFFER_BINDING = 0x8894;
-
- @DomName('WebGLRenderingContext.ATTACHED_SHADERS')
- @DocsEditable()
- static const int ATTACHED_SHADERS = 0x8B85;
-
- @DomName('WebGLRenderingContext.BACK')
- @DocsEditable()
- static const int BACK = 0x0405;
-
- @DomName('WebGLRenderingContext.BLEND')
- @DocsEditable()
- static const int BLEND = 0x0BE2;
-
- @DomName('WebGLRenderingContext.BLEND_COLOR')
- @DocsEditable()
- static const int BLEND_COLOR = 0x8005;
-
- @DomName('WebGLRenderingContext.BLEND_DST_ALPHA')
- @DocsEditable()
- static const int BLEND_DST_ALPHA = 0x80CA;
-
- @DomName('WebGLRenderingContext.BLEND_DST_RGB')
- @DocsEditable()
- static const int BLEND_DST_RGB = 0x80C8;
-
- @DomName('WebGLRenderingContext.BLEND_EQUATION')
- @DocsEditable()
- static const int BLEND_EQUATION = 0x8009;
-
- @DomName('WebGLRenderingContext.BLEND_EQUATION_ALPHA')
- @DocsEditable()
- static const int BLEND_EQUATION_ALPHA = 0x883D;
-
- @DomName('WebGLRenderingContext.BLEND_EQUATION_RGB')
- @DocsEditable()
- static const int BLEND_EQUATION_RGB = 0x8009;
-
- @DomName('WebGLRenderingContext.BLEND_SRC_ALPHA')
- @DocsEditable()
- static const int BLEND_SRC_ALPHA = 0x80CB;
-
- @DomName('WebGLRenderingContext.BLEND_SRC_RGB')
- @DocsEditable()
- static const int BLEND_SRC_RGB = 0x80C9;
-
- @DomName('WebGLRenderingContext.BLUE_BITS')
- @DocsEditable()
- static const int BLUE_BITS = 0x0D54;
-
- @DomName('WebGLRenderingContext.BOOL')
- @DocsEditable()
- static const int BOOL = 0x8B56;
-
- @DomName('WebGLRenderingContext.BOOL_VEC2')
- @DocsEditable()
- static const int BOOL_VEC2 = 0x8B57;
-
- @DomName('WebGLRenderingContext.BOOL_VEC3')
- @DocsEditable()
- static const int BOOL_VEC3 = 0x8B58;
-
- @DomName('WebGLRenderingContext.BOOL_VEC4')
- @DocsEditable()
- static const int BOOL_VEC4 = 0x8B59;
-
- @DomName('WebGLRenderingContext.BROWSER_DEFAULT_WEBGL')
- @DocsEditable()
- static const int BROWSER_DEFAULT_WEBGL = 0x9244;
-
- @DomName('WebGLRenderingContext.BUFFER_SIZE')
- @DocsEditable()
- static const int BUFFER_SIZE = 0x8764;
-
- @DomName('WebGLRenderingContext.BUFFER_USAGE')
- @DocsEditable()
- static const int BUFFER_USAGE = 0x8765;
-
- @DomName('WebGLRenderingContext.BYTE')
- @DocsEditable()
- static const int BYTE = 0x1400;
-
- @DomName('WebGLRenderingContext.CCW')
- @DocsEditable()
- static const int CCW = 0x0901;
-
- @DomName('WebGLRenderingContext.CLAMP_TO_EDGE')
- @DocsEditable()
- static const int CLAMP_TO_EDGE = 0x812F;
-
- @DomName('WebGLRenderingContext.COLOR_ATTACHMENT0')
- @DocsEditable()
- static const int COLOR_ATTACHMENT0 = 0x8CE0;
-
- @DomName('WebGLRenderingContext.COLOR_BUFFER_BIT')
- @DocsEditable()
- static const int COLOR_BUFFER_BIT = 0x00004000;
-
- @DomName('WebGLRenderingContext.COLOR_CLEAR_VALUE')
- @DocsEditable()
- static const int COLOR_CLEAR_VALUE = 0x0C22;
-
- @DomName('WebGLRenderingContext.COLOR_WRITEMASK')
- @DocsEditable()
- static const int COLOR_WRITEMASK = 0x0C23;
-
- @DomName('WebGLRenderingContext.COMPILE_STATUS')
- @DocsEditable()
- static const int COMPILE_STATUS = 0x8B81;
-
- @DomName('WebGLRenderingContext.COMPRESSED_TEXTURE_FORMATS')
- @DocsEditable()
- static const int COMPRESSED_TEXTURE_FORMATS = 0x86A3;
-
- @DomName('WebGLRenderingContext.CONSTANT_ALPHA')
- @DocsEditable()
- static const int CONSTANT_ALPHA = 0x8003;
-
- @DomName('WebGLRenderingContext.CONSTANT_COLOR')
- @DocsEditable()
- static const int CONSTANT_COLOR = 0x8001;
-
- @DomName('WebGLRenderingContext.CONTEXT_LOST_WEBGL')
- @DocsEditable()
- static const int CONTEXT_LOST_WEBGL = 0x9242;
-
- @DomName('WebGLRenderingContext.CULL_FACE')
- @DocsEditable()
- static const int CULL_FACE = 0x0B44;
-
- @DomName('WebGLRenderingContext.CULL_FACE_MODE')
- @DocsEditable()
- static const int CULL_FACE_MODE = 0x0B45;
-
- @DomName('WebGLRenderingContext.CURRENT_PROGRAM')
- @DocsEditable()
- static const int CURRENT_PROGRAM = 0x8B8D;
-
- @DomName('WebGLRenderingContext.CURRENT_VERTEX_ATTRIB')
- @DocsEditable()
- static const int CURRENT_VERTEX_ATTRIB = 0x8626;
-
- @DomName('WebGLRenderingContext.CW')
- @DocsEditable()
- static const int CW = 0x0900;
-
- @DomName('WebGLRenderingContext.DECR')
- @DocsEditable()
- static const int DECR = 0x1E03;
-
- @DomName('WebGLRenderingContext.DECR_WRAP')
- @DocsEditable()
- static const int DECR_WRAP = 0x8508;
-
- @DomName('WebGLRenderingContext.DELETE_STATUS')
- @DocsEditable()
- static const int DELETE_STATUS = 0x8B80;
-
- @DomName('WebGLRenderingContext.DEPTH_ATTACHMENT')
- @DocsEditable()
- static const int DEPTH_ATTACHMENT = 0x8D00;
-
- @DomName('WebGLRenderingContext.DEPTH_BITS')
- @DocsEditable()
- static const int DEPTH_BITS = 0x0D56;
-
- @DomName('WebGLRenderingContext.DEPTH_BUFFER_BIT')
- @DocsEditable()
- static const int DEPTH_BUFFER_BIT = 0x00000100;
-
- @DomName('WebGLRenderingContext.DEPTH_CLEAR_VALUE')
- @DocsEditable()
- static const int DEPTH_CLEAR_VALUE = 0x0B73;
-
- @DomName('WebGLRenderingContext.DEPTH_COMPONENT')
- @DocsEditable()
- static const int DEPTH_COMPONENT = 0x1902;
-
- @DomName('WebGLRenderingContext.DEPTH_COMPONENT16')
- @DocsEditable()
- static const int DEPTH_COMPONENT16 = 0x81A5;
-
- @DomName('WebGLRenderingContext.DEPTH_FUNC')
- @DocsEditable()
- static const int DEPTH_FUNC = 0x0B74;
-
- @DomName('WebGLRenderingContext.DEPTH_RANGE')
- @DocsEditable()
- static const int DEPTH_RANGE = 0x0B70;
-
- @DomName('WebGLRenderingContext.DEPTH_STENCIL')
- @DocsEditable()
- static const int DEPTH_STENCIL = 0x84F9;
-
- @DomName('WebGLRenderingContext.DEPTH_STENCIL_ATTACHMENT')
- @DocsEditable()
- static const int DEPTH_STENCIL_ATTACHMENT = 0x821A;
-
- @DomName('WebGLRenderingContext.DEPTH_TEST')
- @DocsEditable()
- static const int DEPTH_TEST = 0x0B71;
-
- @DomName('WebGLRenderingContext.DEPTH_WRITEMASK')
- @DocsEditable()
- static const int DEPTH_WRITEMASK = 0x0B72;
-
- @DomName('WebGLRenderingContext.DITHER')
- @DocsEditable()
- static const int DITHER = 0x0BD0;
-
- @DomName('WebGLRenderingContext.DONT_CARE')
- @DocsEditable()
- static const int DONT_CARE = 0x1100;
-
- @DomName('WebGLRenderingContext.DST_ALPHA')
- @DocsEditable()
- static const int DST_ALPHA = 0x0304;
-
- @DomName('WebGLRenderingContext.DST_COLOR')
- @DocsEditable()
- static const int DST_COLOR = 0x0306;
-
- @DomName('WebGLRenderingContext.DYNAMIC_DRAW')
- @DocsEditable()
- static const int DYNAMIC_DRAW = 0x88E8;
-
- @DomName('WebGLRenderingContext.ELEMENT_ARRAY_BUFFER')
- @DocsEditable()
- static const int ELEMENT_ARRAY_BUFFER = 0x8893;
-
- @DomName('WebGLRenderingContext.ELEMENT_ARRAY_BUFFER_BINDING')
- @DocsEditable()
- static const int ELEMENT_ARRAY_BUFFER_BINDING = 0x8895;
-
- @DomName('WebGLRenderingContext.EQUAL')
- @DocsEditable()
- static const int EQUAL = 0x0202;
-
- @DomName('WebGLRenderingContext.FASTEST')
- @DocsEditable()
- static const int FASTEST = 0x1101;
-
- @DomName('WebGLRenderingContext.FLOAT')
- @DocsEditable()
- static const int FLOAT = 0x1406;
-
- @DomName('WebGLRenderingContext.FLOAT_MAT2')
- @DocsEditable()
- static const int FLOAT_MAT2 = 0x8B5A;
-
- @DomName('WebGLRenderingContext.FLOAT_MAT3')
- @DocsEditable()
- static const int FLOAT_MAT3 = 0x8B5B;
-
- @DomName('WebGLRenderingContext.FLOAT_MAT4')
- @DocsEditable()
- static const int FLOAT_MAT4 = 0x8B5C;
-
- @DomName('WebGLRenderingContext.FLOAT_VEC2')
- @DocsEditable()
- static const int FLOAT_VEC2 = 0x8B50;
-
- @DomName('WebGLRenderingContext.FLOAT_VEC3')
- @DocsEditable()
- static const int FLOAT_VEC3 = 0x8B51;
-
- @DomName('WebGLRenderingContext.FLOAT_VEC4')
- @DocsEditable()
- static const int FLOAT_VEC4 = 0x8B52;
-
- @DomName('WebGLRenderingContext.FRAGMENT_SHADER')
- @DocsEditable()
- static const int FRAGMENT_SHADER = 0x8B30;
-
- @DomName('WebGLRenderingContext.FRAMEBUFFER')
- @DocsEditable()
- static const int FRAMEBUFFER = 0x8D40;
-
- @DomName('WebGLRenderingContext.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME')
- @DocsEditable()
- static const int FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1;
-
- @DomName('WebGLRenderingContext.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE')
- @DocsEditable()
- static const int FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0;
-
- @DomName('WebGLRenderingContext.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE')
- @DocsEditable()
- static const int FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3;
-
- @DomName('WebGLRenderingContext.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL')
- @DocsEditable()
- static const int FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2;
-
- @DomName('WebGLRenderingContext.FRAMEBUFFER_BINDING')
- @DocsEditable()
- static const int FRAMEBUFFER_BINDING = 0x8CA6;
-
- @DomName('WebGLRenderingContext.FRAMEBUFFER_COMPLETE')
- @DocsEditable()
- static const int FRAMEBUFFER_COMPLETE = 0x8CD5;
-
- @DomName('WebGLRenderingContext.FRAMEBUFFER_INCOMPLETE_ATTACHMENT')
- @DocsEditable()
- static const int FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6;
-
- @DomName('WebGLRenderingContext.FRAMEBUFFER_INCOMPLETE_DIMENSIONS')
- @DocsEditable()
- static const int FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 0x8CD9;
-
- @DomName('WebGLRenderingContext.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT')
- @DocsEditable()
- static const int FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7;
-
- @DomName('WebGLRenderingContext.FRAMEBUFFER_UNSUPPORTED')
- @DocsEditable()
- static const int FRAMEBUFFER_UNSUPPORTED = 0x8CDD;
-
- @DomName('WebGLRenderingContext.FRONT')
- @DocsEditable()
- static const int FRONT = 0x0404;
-
- @DomName('WebGLRenderingContext.FRONT_AND_BACK')
- @DocsEditable()
- static const int FRONT_AND_BACK = 0x0408;
-
- @DomName('WebGLRenderingContext.FRONT_FACE')
- @DocsEditable()
- static const int FRONT_FACE = 0x0B46;
-
- @DomName('WebGLRenderingContext.FUNC_ADD')
- @DocsEditable()
- static const int FUNC_ADD = 0x8006;
-
- @DomName('WebGLRenderingContext.FUNC_REVERSE_SUBTRACT')
- @DocsEditable()
- static const int FUNC_REVERSE_SUBTRACT = 0x800B;
-
- @DomName('WebGLRenderingContext.FUNC_SUBTRACT')
- @DocsEditable()
- static const int FUNC_SUBTRACT = 0x800A;
-
- @DomName('WebGLRenderingContext.GENERATE_MIPMAP_HINT')
- @DocsEditable()
- static const int GENERATE_MIPMAP_HINT = 0x8192;
-
- @DomName('WebGLRenderingContext.GEQUAL')
- @DocsEditable()
- static const int GEQUAL = 0x0206;
-
- @DomName('WebGLRenderingContext.GREATER')
- @DocsEditable()
- static const int GREATER = 0x0204;
-
- @DomName('WebGLRenderingContext.GREEN_BITS')
- @DocsEditable()
- static const int GREEN_BITS = 0x0D53;
-
- @DomName('WebGLRenderingContext.HIGH_FLOAT')
- @DocsEditable()
- static const int HIGH_FLOAT = 0x8DF2;
-
- @DomName('WebGLRenderingContext.HIGH_INT')
- @DocsEditable()
- static const int HIGH_INT = 0x8DF5;
-
- @DomName('WebGLRenderingContext.IMPLEMENTATION_COLOR_READ_FORMAT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B;
-
- @DomName('WebGLRenderingContext.IMPLEMENTATION_COLOR_READ_TYPE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A;
-
- @DomName('WebGLRenderingContext.INCR')
- @DocsEditable()
- static const int INCR = 0x1E02;
-
- @DomName('WebGLRenderingContext.INCR_WRAP')
- @DocsEditable()
- static const int INCR_WRAP = 0x8507;
-
- @DomName('WebGLRenderingContext.INT')
- @DocsEditable()
- static const int INT = 0x1404;
-
- @DomName('WebGLRenderingContext.INT_VEC2')
- @DocsEditable()
- static const int INT_VEC2 = 0x8B53;
-
- @DomName('WebGLRenderingContext.INT_VEC3')
- @DocsEditable()
- static const int INT_VEC3 = 0x8B54;
-
- @DomName('WebGLRenderingContext.INT_VEC4')
- @DocsEditable()
- static const int INT_VEC4 = 0x8B55;
-
- @DomName('WebGLRenderingContext.INVALID_ENUM')
- @DocsEditable()
- static const int INVALID_ENUM = 0x0500;
-
- @DomName('WebGLRenderingContext.INVALID_FRAMEBUFFER_OPERATION')
- @DocsEditable()
- static const int INVALID_FRAMEBUFFER_OPERATION = 0x0506;
-
- @DomName('WebGLRenderingContext.INVALID_OPERATION')
- @DocsEditable()
- static const int INVALID_OPERATION = 0x0502;
-
- @DomName('WebGLRenderingContext.INVALID_VALUE')
- @DocsEditable()
- static const int INVALID_VALUE = 0x0501;
-
- @DomName('WebGLRenderingContext.INVERT')
- @DocsEditable()
- static const int INVERT = 0x150A;
-
- @DomName('WebGLRenderingContext.KEEP')
- @DocsEditable()
- static const int KEEP = 0x1E00;
-
- @DomName('WebGLRenderingContext.LEQUAL')
- @DocsEditable()
- static const int LEQUAL = 0x0203;
-
- @DomName('WebGLRenderingContext.LESS')
- @DocsEditable()
- static const int LESS = 0x0201;
-
- @DomName('WebGLRenderingContext.LINEAR')
- @DocsEditable()
- static const int LINEAR = 0x2601;
-
- @DomName('WebGLRenderingContext.LINEAR_MIPMAP_LINEAR')
- @DocsEditable()
- static const int LINEAR_MIPMAP_LINEAR = 0x2703;
-
- @DomName('WebGLRenderingContext.LINEAR_MIPMAP_NEAREST')
- @DocsEditable()
- static const int LINEAR_MIPMAP_NEAREST = 0x2701;
-
- @DomName('WebGLRenderingContext.LINES')
- @DocsEditable()
- static const int LINES = 0x0001;
-
- @DomName('WebGLRenderingContext.LINE_LOOP')
- @DocsEditable()
- static const int LINE_LOOP = 0x0002;
-
- @DomName('WebGLRenderingContext.LINE_STRIP')
- @DocsEditable()
- static const int LINE_STRIP = 0x0003;
-
- @DomName('WebGLRenderingContext.LINE_WIDTH')
- @DocsEditable()
- static const int LINE_WIDTH = 0x0B21;
-
- @DomName('WebGLRenderingContext.LINK_STATUS')
- @DocsEditable()
- static const int LINK_STATUS = 0x8B82;
-
- @DomName('WebGLRenderingContext.LOW_FLOAT')
- @DocsEditable()
- static const int LOW_FLOAT = 0x8DF0;
-
- @DomName('WebGLRenderingContext.LOW_INT')
- @DocsEditable()
- static const int LOW_INT = 0x8DF3;
-
- @DomName('WebGLRenderingContext.LUMINANCE')
- @DocsEditable()
- static const int LUMINANCE = 0x1909;
-
- @DomName('WebGLRenderingContext.LUMINANCE_ALPHA')
- @DocsEditable()
- static const int LUMINANCE_ALPHA = 0x190A;
-
- @DomName('WebGLRenderingContext.MAX_COMBINED_TEXTURE_IMAGE_UNITS')
- @DocsEditable()
- static const int MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D;
-
- @DomName('WebGLRenderingContext.MAX_CUBE_MAP_TEXTURE_SIZE')
- @DocsEditable()
- static const int MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C;
-
- @DomName('WebGLRenderingContext.MAX_FRAGMENT_UNIFORM_VECTORS')
- @DocsEditable()
- static const int MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD;
-
- @DomName('WebGLRenderingContext.MAX_RENDERBUFFER_SIZE')
- @DocsEditable()
- static const int MAX_RENDERBUFFER_SIZE = 0x84E8;
-
- @DomName('WebGLRenderingContext.MAX_TEXTURE_IMAGE_UNITS')
- @DocsEditable()
- static const int MAX_TEXTURE_IMAGE_UNITS = 0x8872;
-
- @DomName('WebGLRenderingContext.MAX_TEXTURE_SIZE')
- @DocsEditable()
- static const int MAX_TEXTURE_SIZE = 0x0D33;
-
- @DomName('WebGLRenderingContext.MAX_VARYING_VECTORS')
- @DocsEditable()
- static const int MAX_VARYING_VECTORS = 0x8DFC;
-
- @DomName('WebGLRenderingContext.MAX_VERTEX_ATTRIBS')
- @DocsEditable()
- static const int MAX_VERTEX_ATTRIBS = 0x8869;
-
- @DomName('WebGLRenderingContext.MAX_VERTEX_TEXTURE_IMAGE_UNITS')
- @DocsEditable()
- static const int MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C;
-
- @DomName('WebGLRenderingContext.MAX_VERTEX_UNIFORM_VECTORS')
- @DocsEditable()
- static const int MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB;
-
- @DomName('WebGLRenderingContext.MAX_VIEWPORT_DIMS')
- @DocsEditable()
- static const int MAX_VIEWPORT_DIMS = 0x0D3A;
-
- @DomName('WebGLRenderingContext.MEDIUM_FLOAT')
- @DocsEditable()
- static const int MEDIUM_FLOAT = 0x8DF1;
-
- @DomName('WebGLRenderingContext.MEDIUM_INT')
- @DocsEditable()
- static const int MEDIUM_INT = 0x8DF4;
-
- @DomName('WebGLRenderingContext.MIRRORED_REPEAT')
- @DocsEditable()
- static const int MIRRORED_REPEAT = 0x8370;
-
- @DomName('WebGLRenderingContext.NEAREST')
- @DocsEditable()
- static const int NEAREST = 0x2600;
-
- @DomName('WebGLRenderingContext.NEAREST_MIPMAP_LINEAR')
- @DocsEditable()
- static const int NEAREST_MIPMAP_LINEAR = 0x2702;
-
- @DomName('WebGLRenderingContext.NEAREST_MIPMAP_NEAREST')
- @DocsEditable()
- static const int NEAREST_MIPMAP_NEAREST = 0x2700;
-
- @DomName('WebGLRenderingContext.NEVER')
- @DocsEditable()
- static const int NEVER = 0x0200;
-
- @DomName('WebGLRenderingContext.NICEST')
- @DocsEditable()
- static const int NICEST = 0x1102;
-
- @DomName('WebGLRenderingContext.NONE')
- @DocsEditable()
- static const int NONE = 0;
-
- @DomName('WebGLRenderingContext.NOTEQUAL')
- @DocsEditable()
- static const int NOTEQUAL = 0x0205;
-
- @DomName('WebGLRenderingContext.NO_ERROR')
- @DocsEditable()
- static const int NO_ERROR = 0;
-
- @DomName('WebGLRenderingContext.ONE')
- @DocsEditable()
- static const int ONE = 1;
-
- @DomName('WebGLRenderingContext.ONE_MINUS_CONSTANT_ALPHA')
- @DocsEditable()
- static const int ONE_MINUS_CONSTANT_ALPHA = 0x8004;
-
- @DomName('WebGLRenderingContext.ONE_MINUS_CONSTANT_COLOR')
- @DocsEditable()
- static const int ONE_MINUS_CONSTANT_COLOR = 0x8002;
-
- @DomName('WebGLRenderingContext.ONE_MINUS_DST_ALPHA')
- @DocsEditable()
- static const int ONE_MINUS_DST_ALPHA = 0x0305;
-
- @DomName('WebGLRenderingContext.ONE_MINUS_DST_COLOR')
- @DocsEditable()
- static const int ONE_MINUS_DST_COLOR = 0x0307;
-
- @DomName('WebGLRenderingContext.ONE_MINUS_SRC_ALPHA')
- @DocsEditable()
- static const int ONE_MINUS_SRC_ALPHA = 0x0303;
-
- @DomName('WebGLRenderingContext.ONE_MINUS_SRC_COLOR')
- @DocsEditable()
- static const int ONE_MINUS_SRC_COLOR = 0x0301;
-
- @DomName('WebGLRenderingContext.OUT_OF_MEMORY')
- @DocsEditable()
- static const int OUT_OF_MEMORY = 0x0505;
-
- @DomName('WebGLRenderingContext.PACK_ALIGNMENT')
- @DocsEditable()
- static const int PACK_ALIGNMENT = 0x0D05;
-
- @DomName('WebGLRenderingContext.POINTS')
- @DocsEditable()
- static const int POINTS = 0x0000;
-
- @DomName('WebGLRenderingContext.POLYGON_OFFSET_FACTOR')
- @DocsEditable()
- static const int POLYGON_OFFSET_FACTOR = 0x8038;
-
- @DomName('WebGLRenderingContext.POLYGON_OFFSET_FILL')
- @DocsEditable()
- static const int POLYGON_OFFSET_FILL = 0x8037;
-
- @DomName('WebGLRenderingContext.POLYGON_OFFSET_UNITS')
- @DocsEditable()
- static const int POLYGON_OFFSET_UNITS = 0x2A00;
-
- @DomName('WebGLRenderingContext.RED_BITS')
- @DocsEditable()
- static const int RED_BITS = 0x0D52;
-
- @DomName('WebGLRenderingContext.RENDERBUFFER')
- @DocsEditable()
- static const int RENDERBUFFER = 0x8D41;
-
- @DomName('WebGLRenderingContext.RENDERBUFFER_ALPHA_SIZE')
- @DocsEditable()
- static const int RENDERBUFFER_ALPHA_SIZE = 0x8D53;
-
- @DomName('WebGLRenderingContext.RENDERBUFFER_BINDING')
- @DocsEditable()
- static const int RENDERBUFFER_BINDING = 0x8CA7;
-
- @DomName('WebGLRenderingContext.RENDERBUFFER_BLUE_SIZE')
- @DocsEditable()
- static const int RENDERBUFFER_BLUE_SIZE = 0x8D52;
-
- @DomName('WebGLRenderingContext.RENDERBUFFER_DEPTH_SIZE')
- @DocsEditable()
- static const int RENDERBUFFER_DEPTH_SIZE = 0x8D54;
-
- @DomName('WebGLRenderingContext.RENDERBUFFER_GREEN_SIZE')
- @DocsEditable()
- static const int RENDERBUFFER_GREEN_SIZE = 0x8D51;
-
- @DomName('WebGLRenderingContext.RENDERBUFFER_HEIGHT')
- @DocsEditable()
- static const int RENDERBUFFER_HEIGHT = 0x8D43;
-
- @DomName('WebGLRenderingContext.RENDERBUFFER_INTERNAL_FORMAT')
- @DocsEditable()
- static const int RENDERBUFFER_INTERNAL_FORMAT = 0x8D44;
-
- @DomName('WebGLRenderingContext.RENDERBUFFER_RED_SIZE')
- @DocsEditable()
- static const int RENDERBUFFER_RED_SIZE = 0x8D50;
-
- @DomName('WebGLRenderingContext.RENDERBUFFER_STENCIL_SIZE')
- @DocsEditable()
- static const int RENDERBUFFER_STENCIL_SIZE = 0x8D55;
-
- @DomName('WebGLRenderingContext.RENDERBUFFER_WIDTH')
- @DocsEditable()
- static const int RENDERBUFFER_WIDTH = 0x8D42;
-
- @DomName('WebGLRenderingContext.RENDERER')
- @DocsEditable()
- static const int RENDERER = 0x1F01;
-
- @DomName('WebGLRenderingContext.REPEAT')
- @DocsEditable()
- static const int REPEAT = 0x2901;
-
- @DomName('WebGLRenderingContext.REPLACE')
- @DocsEditable()
- static const int REPLACE = 0x1E01;
-
- @DomName('WebGLRenderingContext.RGB')
- @DocsEditable()
- static const int RGB = 0x1907;
-
- @DomName('WebGLRenderingContext.RGB565')
- @DocsEditable()
- static const int RGB565 = 0x8D62;
-
- @DomName('WebGLRenderingContext.RGB5_A1')
- @DocsEditable()
- static const int RGB5_A1 = 0x8057;
-
- @DomName('WebGLRenderingContext.RGBA')
- @DocsEditable()
- static const int RGBA = 0x1908;
-
- @DomName('WebGLRenderingContext.RGBA4')
- @DocsEditable()
- static const int RGBA4 = 0x8056;
-
- @DomName('WebGLRenderingContext.SAMPLER_2D')
- @DocsEditable()
- static const int SAMPLER_2D = 0x8B5E;
-
- @DomName('WebGLRenderingContext.SAMPLER_CUBE')
- @DocsEditable()
- static const int SAMPLER_CUBE = 0x8B60;
-
- @DomName('WebGLRenderingContext.SAMPLES')
- @DocsEditable()
- static const int SAMPLES = 0x80A9;
-
- @DomName('WebGLRenderingContext.SAMPLE_ALPHA_TO_COVERAGE')
- @DocsEditable()
- static const int SAMPLE_ALPHA_TO_COVERAGE = 0x809E;
-
- @DomName('WebGLRenderingContext.SAMPLE_BUFFERS')
- @DocsEditable()
- static const int SAMPLE_BUFFERS = 0x80A8;
-
- @DomName('WebGLRenderingContext.SAMPLE_COVERAGE')
- @DocsEditable()
- static const int SAMPLE_COVERAGE = 0x80A0;
-
- @DomName('WebGLRenderingContext.SAMPLE_COVERAGE_INVERT')
- @DocsEditable()
- static const int SAMPLE_COVERAGE_INVERT = 0x80AB;
-
- @DomName('WebGLRenderingContext.SAMPLE_COVERAGE_VALUE')
- @DocsEditable()
- static const int SAMPLE_COVERAGE_VALUE = 0x80AA;
-
- @DomName('WebGLRenderingContext.SCISSOR_BOX')
- @DocsEditable()
- static const int SCISSOR_BOX = 0x0C10;
-
- @DomName('WebGLRenderingContext.SCISSOR_TEST')
- @DocsEditable()
- static const int SCISSOR_TEST = 0x0C11;
-
- @DomName('WebGLRenderingContext.SHADER_TYPE')
- @DocsEditable()
- static const int SHADER_TYPE = 0x8B4F;
-
- @DomName('WebGLRenderingContext.SHADING_LANGUAGE_VERSION')
- @DocsEditable()
- static const int SHADING_LANGUAGE_VERSION = 0x8B8C;
-
- @DomName('WebGLRenderingContext.SHORT')
- @DocsEditable()
- static const int SHORT = 0x1402;
-
- @DomName('WebGLRenderingContext.SRC_ALPHA')
- @DocsEditable()
- static const int SRC_ALPHA = 0x0302;
-
- @DomName('WebGLRenderingContext.SRC_ALPHA_SATURATE')
- @DocsEditable()
- static const int SRC_ALPHA_SATURATE = 0x0308;
-
- @DomName('WebGLRenderingContext.SRC_COLOR')
- @DocsEditable()
- static const int SRC_COLOR = 0x0300;
-
- @DomName('WebGLRenderingContext.STATIC_DRAW')
- @DocsEditable()
- static const int STATIC_DRAW = 0x88E4;
-
- @DomName('WebGLRenderingContext.STENCIL_ATTACHMENT')
- @DocsEditable()
- static const int STENCIL_ATTACHMENT = 0x8D20;
-
- @DomName('WebGLRenderingContext.STENCIL_BACK_FAIL')
- @DocsEditable()
- static const int STENCIL_BACK_FAIL = 0x8801;
-
- @DomName('WebGLRenderingContext.STENCIL_BACK_FUNC')
- @DocsEditable()
- static const int STENCIL_BACK_FUNC = 0x8800;
-
- @DomName('WebGLRenderingContext.STENCIL_BACK_PASS_DEPTH_FAIL')
- @DocsEditable()
- static const int STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802;
-
- @DomName('WebGLRenderingContext.STENCIL_BACK_PASS_DEPTH_PASS')
- @DocsEditable()
- static const int STENCIL_BACK_PASS_DEPTH_PASS = 0x8803;
-
- @DomName('WebGLRenderingContext.STENCIL_BACK_REF')
- @DocsEditable()
- static const int STENCIL_BACK_REF = 0x8CA3;
-
- @DomName('WebGLRenderingContext.STENCIL_BACK_VALUE_MASK')
- @DocsEditable()
- static const int STENCIL_BACK_VALUE_MASK = 0x8CA4;
-
- @DomName('WebGLRenderingContext.STENCIL_BACK_WRITEMASK')
- @DocsEditable()
- static const int STENCIL_BACK_WRITEMASK = 0x8CA5;
-
- @DomName('WebGLRenderingContext.STENCIL_BITS')
- @DocsEditable()
- static const int STENCIL_BITS = 0x0D57;
-
- @DomName('WebGLRenderingContext.STENCIL_BUFFER_BIT')
- @DocsEditable()
- static const int STENCIL_BUFFER_BIT = 0x00000400;
-
- @DomName('WebGLRenderingContext.STENCIL_CLEAR_VALUE')
- @DocsEditable()
- static const int STENCIL_CLEAR_VALUE = 0x0B91;
-
- @DomName('WebGLRenderingContext.STENCIL_FAIL')
- @DocsEditable()
- static const int STENCIL_FAIL = 0x0B94;
-
- @DomName('WebGLRenderingContext.STENCIL_FUNC')
- @DocsEditable()
- static const int STENCIL_FUNC = 0x0B92;
-
- @DomName('WebGLRenderingContext.STENCIL_INDEX')
- @DocsEditable()
- static const int STENCIL_INDEX = 0x1901;
-
- @DomName('WebGLRenderingContext.STENCIL_INDEX8')
- @DocsEditable()
- static const int STENCIL_INDEX8 = 0x8D48;
-
- @DomName('WebGLRenderingContext.STENCIL_PASS_DEPTH_FAIL')
- @DocsEditable()
- static const int STENCIL_PASS_DEPTH_FAIL = 0x0B95;
-
- @DomName('WebGLRenderingContext.STENCIL_PASS_DEPTH_PASS')
- @DocsEditable()
- static const int STENCIL_PASS_DEPTH_PASS = 0x0B96;
-
- @DomName('WebGLRenderingContext.STENCIL_REF')
- @DocsEditable()
- static const int STENCIL_REF = 0x0B97;
-
- @DomName('WebGLRenderingContext.STENCIL_TEST')
- @DocsEditable()
- static const int STENCIL_TEST = 0x0B90;
-
- @DomName('WebGLRenderingContext.STENCIL_VALUE_MASK')
- @DocsEditable()
- static const int STENCIL_VALUE_MASK = 0x0B93;
-
- @DomName('WebGLRenderingContext.STENCIL_WRITEMASK')
- @DocsEditable()
- static const int STENCIL_WRITEMASK = 0x0B98;
-
- @DomName('WebGLRenderingContext.STREAM_DRAW')
- @DocsEditable()
- static const int STREAM_DRAW = 0x88E0;
-
- @DomName('WebGLRenderingContext.SUBPIXEL_BITS')
- @DocsEditable()
- static const int SUBPIXEL_BITS = 0x0D50;
-
- @DomName('WebGLRenderingContext.TEXTURE')
- @DocsEditable()
- static const int TEXTURE = 0x1702;
-
- @DomName('WebGLRenderingContext.TEXTURE0')
- @DocsEditable()
- static const int TEXTURE0 = 0x84C0;
-
- @DomName('WebGLRenderingContext.TEXTURE1')
- @DocsEditable()
- static const int TEXTURE1 = 0x84C1;
-
- @DomName('WebGLRenderingContext.TEXTURE10')
- @DocsEditable()
- static const int TEXTURE10 = 0x84CA;
-
- @DomName('WebGLRenderingContext.TEXTURE11')
- @DocsEditable()
- static const int TEXTURE11 = 0x84CB;
-
- @DomName('WebGLRenderingContext.TEXTURE12')
- @DocsEditable()
- static const int TEXTURE12 = 0x84CC;
-
- @DomName('WebGLRenderingContext.TEXTURE13')
- @DocsEditable()
- static const int TEXTURE13 = 0x84CD;
-
- @DomName('WebGLRenderingContext.TEXTURE14')
- @DocsEditable()
- static const int TEXTURE14 = 0x84CE;
-
- @DomName('WebGLRenderingContext.TEXTURE15')
- @DocsEditable()
- static const int TEXTURE15 = 0x84CF;
-
- @DomName('WebGLRenderingContext.TEXTURE16')
- @DocsEditable()
- static const int TEXTURE16 = 0x84D0;
-
- @DomName('WebGLRenderingContext.TEXTURE17')
- @DocsEditable()
- static const int TEXTURE17 = 0x84D1;
-
- @DomName('WebGLRenderingContext.TEXTURE18')
- @DocsEditable()
- static const int TEXTURE18 = 0x84D2;
-
- @DomName('WebGLRenderingContext.TEXTURE19')
- @DocsEditable()
- static const int TEXTURE19 = 0x84D3;
-
- @DomName('WebGLRenderingContext.TEXTURE2')
- @DocsEditable()
- static const int TEXTURE2 = 0x84C2;
-
- @DomName('WebGLRenderingContext.TEXTURE20')
- @DocsEditable()
- static const int TEXTURE20 = 0x84D4;
-
- @DomName('WebGLRenderingContext.TEXTURE21')
- @DocsEditable()
- static const int TEXTURE21 = 0x84D5;
-
- @DomName('WebGLRenderingContext.TEXTURE22')
- @DocsEditable()
- static const int TEXTURE22 = 0x84D6;
-
- @DomName('WebGLRenderingContext.TEXTURE23')
- @DocsEditable()
- static const int TEXTURE23 = 0x84D7;
-
- @DomName('WebGLRenderingContext.TEXTURE24')
- @DocsEditable()
- static const int TEXTURE24 = 0x84D8;
-
- @DomName('WebGLRenderingContext.TEXTURE25')
- @DocsEditable()
- static const int TEXTURE25 = 0x84D9;
-
- @DomName('WebGLRenderingContext.TEXTURE26')
- @DocsEditable()
- static const int TEXTURE26 = 0x84DA;
-
- @DomName('WebGLRenderingContext.TEXTURE27')
- @DocsEditable()
- static const int TEXTURE27 = 0x84DB;
-
- @DomName('WebGLRenderingContext.TEXTURE28')
- @DocsEditable()
- static const int TEXTURE28 = 0x84DC;
-
- @DomName('WebGLRenderingContext.TEXTURE29')
- @DocsEditable()
- static const int TEXTURE29 = 0x84DD;
-
- @DomName('WebGLRenderingContext.TEXTURE3')
- @DocsEditable()
- static const int TEXTURE3 = 0x84C3;
-
- @DomName('WebGLRenderingContext.TEXTURE30')
- @DocsEditable()
- static const int TEXTURE30 = 0x84DE;
-
- @DomName('WebGLRenderingContext.TEXTURE31')
- @DocsEditable()
- static const int TEXTURE31 = 0x84DF;
-
- @DomName('WebGLRenderingContext.TEXTURE4')
- @DocsEditable()
- static const int TEXTURE4 = 0x84C4;
-
- @DomName('WebGLRenderingContext.TEXTURE5')
- @DocsEditable()
- static const int TEXTURE5 = 0x84C5;
-
- @DomName('WebGLRenderingContext.TEXTURE6')
- @DocsEditable()
- static const int TEXTURE6 = 0x84C6;
-
- @DomName('WebGLRenderingContext.TEXTURE7')
- @DocsEditable()
- static const int TEXTURE7 = 0x84C7;
-
- @DomName('WebGLRenderingContext.TEXTURE8')
- @DocsEditable()
- static const int TEXTURE8 = 0x84C8;
-
- @DomName('WebGLRenderingContext.TEXTURE9')
- @DocsEditable()
- static const int TEXTURE9 = 0x84C9;
-
- @DomName('WebGLRenderingContext.TEXTURE_2D')
- @DocsEditable()
- static const int TEXTURE_2D = 0x0DE1;
-
- @DomName('WebGLRenderingContext.TEXTURE_BINDING_2D')
- @DocsEditable()
- static const int TEXTURE_BINDING_2D = 0x8069;
-
- @DomName('WebGLRenderingContext.TEXTURE_BINDING_CUBE_MAP')
- @DocsEditable()
- static const int TEXTURE_BINDING_CUBE_MAP = 0x8514;
-
- @DomName('WebGLRenderingContext.TEXTURE_CUBE_MAP')
- @DocsEditable()
- static const int TEXTURE_CUBE_MAP = 0x8513;
-
- @DomName('WebGLRenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_X')
- @DocsEditable()
- static const int TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516;
-
- @DomName('WebGLRenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_Y')
- @DocsEditable()
- static const int TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518;
-
- @DomName('WebGLRenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_Z')
- @DocsEditable()
- static const int TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A;
-
- @DomName('WebGLRenderingContext.TEXTURE_CUBE_MAP_POSITIVE_X')
- @DocsEditable()
- static const int TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515;
-
- @DomName('WebGLRenderingContext.TEXTURE_CUBE_MAP_POSITIVE_Y')
- @DocsEditable()
- static const int TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517;
-
- @DomName('WebGLRenderingContext.TEXTURE_CUBE_MAP_POSITIVE_Z')
- @DocsEditable()
- static const int TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519;
-
- @DomName('WebGLRenderingContext.TEXTURE_MAG_FILTER')
- @DocsEditable()
- static const int TEXTURE_MAG_FILTER = 0x2800;
-
- @DomName('WebGLRenderingContext.TEXTURE_MIN_FILTER')
- @DocsEditable()
- static const int TEXTURE_MIN_FILTER = 0x2801;
-
- @DomName('WebGLRenderingContext.TEXTURE_WRAP_S')
- @DocsEditable()
- static const int TEXTURE_WRAP_S = 0x2802;
-
- @DomName('WebGLRenderingContext.TEXTURE_WRAP_T')
- @DocsEditable()
- static const int TEXTURE_WRAP_T = 0x2803;
-
- @DomName('WebGLRenderingContext.TRIANGLES')
- @DocsEditable()
- static const int TRIANGLES = 0x0004;
-
- @DomName('WebGLRenderingContext.TRIANGLE_FAN')
- @DocsEditable()
- static const int TRIANGLE_FAN = 0x0006;
-
- @DomName('WebGLRenderingContext.TRIANGLE_STRIP')
- @DocsEditable()
- static const int TRIANGLE_STRIP = 0x0005;
-
- @DomName('WebGLRenderingContext.UNPACK_ALIGNMENT')
- @DocsEditable()
- static const int UNPACK_ALIGNMENT = 0x0CF5;
-
- @DomName('WebGLRenderingContext.UNPACK_COLORSPACE_CONVERSION_WEBGL')
- @DocsEditable()
- static const int UNPACK_COLORSPACE_CONVERSION_WEBGL = 0x9243;
-
- @DomName('WebGLRenderingContext.UNPACK_FLIP_Y_WEBGL')
- @DocsEditable()
- static const int UNPACK_FLIP_Y_WEBGL = 0x9240;
-
- @DomName('WebGLRenderingContext.UNPACK_PREMULTIPLY_ALPHA_WEBGL')
- @DocsEditable()
- static const int UNPACK_PREMULTIPLY_ALPHA_WEBGL = 0x9241;
-
- @DomName('WebGLRenderingContext.UNSIGNED_BYTE')
- @DocsEditable()
- static const int UNSIGNED_BYTE = 0x1401;
-
- @DomName('WebGLRenderingContext.UNSIGNED_INT')
- @DocsEditable()
- static const int UNSIGNED_INT = 0x1405;
-
- @DomName('WebGLRenderingContext.UNSIGNED_SHORT')
- @DocsEditable()
- static const int UNSIGNED_SHORT = 0x1403;
-
- @DomName('WebGLRenderingContext.UNSIGNED_SHORT_4_4_4_4')
- @DocsEditable()
- static const int UNSIGNED_SHORT_4_4_4_4 = 0x8033;
-
- @DomName('WebGLRenderingContext.UNSIGNED_SHORT_5_5_5_1')
- @DocsEditable()
- static const int UNSIGNED_SHORT_5_5_5_1 = 0x8034;
-
- @DomName('WebGLRenderingContext.UNSIGNED_SHORT_5_6_5')
- @DocsEditable()
- static const int UNSIGNED_SHORT_5_6_5 = 0x8363;
-
- @DomName('WebGLRenderingContext.VALIDATE_STATUS')
- @DocsEditable()
- static const int VALIDATE_STATUS = 0x8B83;
-
- @DomName('WebGLRenderingContext.VENDOR')
- @DocsEditable()
- static const int VENDOR = 0x1F00;
-
- @DomName('WebGLRenderingContext.VERSION')
- @DocsEditable()
- static const int VERSION = 0x1F02;
-
- @DomName('WebGLRenderingContext.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING')
- @DocsEditable()
- static const int VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F;
-
- @DomName('WebGLRenderingContext.VERTEX_ATTRIB_ARRAY_ENABLED')
- @DocsEditable()
- static const int VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622;
-
- @DomName('WebGLRenderingContext.VERTEX_ATTRIB_ARRAY_NORMALIZED')
- @DocsEditable()
- static const int VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A;
-
- @DomName('WebGLRenderingContext.VERTEX_ATTRIB_ARRAY_POINTER')
- @DocsEditable()
- static const int VERTEX_ATTRIB_ARRAY_POINTER = 0x8645;
-
- @DomName('WebGLRenderingContext.VERTEX_ATTRIB_ARRAY_SIZE')
- @DocsEditable()
- static const int VERTEX_ATTRIB_ARRAY_SIZE = 0x8623;
-
- @DomName('WebGLRenderingContext.VERTEX_ATTRIB_ARRAY_STRIDE')
- @DocsEditable()
- static const int VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624;
-
- @DomName('WebGLRenderingContext.VERTEX_ATTRIB_ARRAY_TYPE')
- @DocsEditable()
- static const int VERTEX_ATTRIB_ARRAY_TYPE = 0x8625;
-
- @DomName('WebGLRenderingContext.VERTEX_SHADER')
- @DocsEditable()
- static const int VERTEX_SHADER = 0x8B31;
-
- @DomName('WebGLRenderingContext.VIEWPORT')
- @DocsEditable()
- static const int VIEWPORT = 0x0BA2;
-
- @DomName('WebGLRenderingContext.ZERO')
- @DocsEditable()
- static const int ZERO = 0;
-
- // From WebGLRenderingContextBase
-
- @DomName('WebGLRenderingContext.canvas')
- @DocsEditable()
- @Experimental() // untriaged
- final CanvasElement canvas;
-
- @DomName('WebGLRenderingContext.drawingBufferHeight')
- @DocsEditable()
- final int drawingBufferHeight;
-
- @DomName('WebGLRenderingContext.drawingBufferWidth')
- @DocsEditable()
- final int drawingBufferWidth;
-
- @DomName('WebGLRenderingContext.activeTexture')
- @DocsEditable()
- void activeTexture(int texture) native;
-
- @DomName('WebGLRenderingContext.attachShader')
- @DocsEditable()
- void attachShader(Program program, Shader shader) native;
-
- @DomName('WebGLRenderingContext.bindAttribLocation')
- @DocsEditable()
- void bindAttribLocation(Program program, int index, String name) native;
-
- @DomName('WebGLRenderingContext.bindBuffer')
- @DocsEditable()
- void bindBuffer(int target, Buffer buffer) native;
-
- @DomName('WebGLRenderingContext.bindFramebuffer')
- @DocsEditable()
- void bindFramebuffer(int target, Framebuffer framebuffer) native;
-
- @DomName('WebGLRenderingContext.bindRenderbuffer')
- @DocsEditable()
- void bindRenderbuffer(int target, Renderbuffer renderbuffer) native;
-
- @DomName('WebGLRenderingContext.bindTexture')
- @DocsEditable()
- void bindTexture(int target, Texture texture) native;
-
- @DomName('WebGLRenderingContext.blendColor')
- @DocsEditable()
- void blendColor(num red, num green, num blue, num alpha) native;
-
- @DomName('WebGLRenderingContext.blendEquation')
- @DocsEditable()
- void blendEquation(int mode) native;
-
- @DomName('WebGLRenderingContext.blendEquationSeparate')
- @DocsEditable()
- void blendEquationSeparate(int modeRGB, int modeAlpha) native;
-
- @DomName('WebGLRenderingContext.blendFunc')
- @DocsEditable()
- void blendFunc(int sfactor, int dfactor) native;
-
- @DomName('WebGLRenderingContext.blendFuncSeparate')
- @DocsEditable()
- void blendFuncSeparate(int srcRGB, int dstRGB, int srcAlpha, int dstAlpha)
- native;
-
- @DomName('WebGLRenderingContext.bufferData')
- @DocsEditable()
- void bufferData(int target, data_OR_size, int usage) native;
-
- @DomName('WebGLRenderingContext.bufferSubData')
- @DocsEditable()
- void bufferSubData(int target, int offset, data) native;
-
- @DomName('WebGLRenderingContext.checkFramebufferStatus')
- @DocsEditable()
- int checkFramebufferStatus(int target) native;
-
- @DomName('WebGLRenderingContext.clear')
- @DocsEditable()
- void clear(int mask) native;
-
- @DomName('WebGLRenderingContext.clearColor')
- @DocsEditable()
- void clearColor(num red, num green, num blue, num alpha) native;
-
- @DomName('WebGLRenderingContext.clearDepth')
- @DocsEditable()
- void clearDepth(num depth) native;
-
- @DomName('WebGLRenderingContext.clearStencil')
- @DocsEditable()
- void clearStencil(int s) native;
-
- @DomName('WebGLRenderingContext.colorMask')
- @DocsEditable()
- void colorMask(bool red, bool green, bool blue, bool alpha) native;
-
- @DomName('WebGLRenderingContext.compileShader')
- @DocsEditable()
- void compileShader(Shader shader) native;
-
- @DomName('WebGLRenderingContext.compressedTexImage2D')
- @DocsEditable()
- void compressedTexImage2D(int target, int level, int internalformat,
- int width, int height, int border, TypedData data) native;
-
- @DomName('WebGLRenderingContext.compressedTexSubImage2D')
- @DocsEditable()
- void compressedTexSubImage2D(int target, int level, int xoffset, int yoffset,
- int width, int height, int format, TypedData data) native;
-
- @DomName('WebGLRenderingContext.copyTexImage2D')
- @DocsEditable()
- void copyTexImage2D(int target, int level, int internalformat, int x, int y,
- int width, int height, int border) native;
-
- @DomName('WebGLRenderingContext.copyTexSubImage2D')
- @DocsEditable()
- void copyTexSubImage2D(int target, int level, int xoffset, int yoffset, int x,
- int y, int width, int height) native;
-
- @DomName('WebGLRenderingContext.createBuffer')
- @DocsEditable()
- Buffer createBuffer() native;
-
- @DomName('WebGLRenderingContext.createFramebuffer')
- @DocsEditable()
- Framebuffer createFramebuffer() native;
-
- @DomName('WebGLRenderingContext.createProgram')
- @DocsEditable()
- Program createProgram() native;
-
- @DomName('WebGLRenderingContext.createRenderbuffer')
- @DocsEditable()
- Renderbuffer createRenderbuffer() native;
-
- @DomName('WebGLRenderingContext.createShader')
- @DocsEditable()
- Shader createShader(int type) native;
-
- @DomName('WebGLRenderingContext.createTexture')
- @DocsEditable()
- Texture createTexture() native;
-
- @DomName('WebGLRenderingContext.cullFace')
- @DocsEditable()
- void cullFace(int mode) native;
-
- @DomName('WebGLRenderingContext.deleteBuffer')
- @DocsEditable()
- void deleteBuffer(Buffer buffer) native;
-
- @DomName('WebGLRenderingContext.deleteFramebuffer')
- @DocsEditable()
- void deleteFramebuffer(Framebuffer framebuffer) native;
-
- @DomName('WebGLRenderingContext.deleteProgram')
- @DocsEditable()
- void deleteProgram(Program program) native;
-
- @DomName('WebGLRenderingContext.deleteRenderbuffer')
- @DocsEditable()
- void deleteRenderbuffer(Renderbuffer renderbuffer) native;
-
- @DomName('WebGLRenderingContext.deleteShader')
- @DocsEditable()
- void deleteShader(Shader shader) native;
-
- @DomName('WebGLRenderingContext.deleteTexture')
- @DocsEditable()
- void deleteTexture(Texture texture) native;
-
- @DomName('WebGLRenderingContext.depthFunc')
- @DocsEditable()
- void depthFunc(int func) native;
-
- @DomName('WebGLRenderingContext.depthMask')
- @DocsEditable()
- void depthMask(bool flag) native;
-
- @DomName('WebGLRenderingContext.depthRange')
- @DocsEditable()
- void depthRange(num zNear, num zFar) native;
-
- @DomName('WebGLRenderingContext.detachShader')
- @DocsEditable()
- void detachShader(Program program, Shader shader) native;
-
- @DomName('WebGLRenderingContext.disable')
- @DocsEditable()
- void disable(int cap) native;
-
- @DomName('WebGLRenderingContext.disableVertexAttribArray')
- @DocsEditable()
- void disableVertexAttribArray(int index) native;
-
- @DomName('WebGLRenderingContext.drawArrays')
- @DocsEditable()
- void drawArrays(int mode, int first, int count) native;
-
- @DomName('WebGLRenderingContext.drawElements')
- @DocsEditable()
- void drawElements(int mode, int count, int type, int offset) native;
-
- @DomName('WebGLRenderingContext.enable')
- @DocsEditable()
- void enable(int cap) native;
-
- @DomName('WebGLRenderingContext.enableVertexAttribArray')
- @DocsEditable()
- void enableVertexAttribArray(int index) native;
-
- @DomName('WebGLRenderingContext.finish')
- @DocsEditable()
- void finish() native;
-
- @DomName('WebGLRenderingContext.flush')
- @DocsEditable()
- void flush() native;
-
- @DomName('WebGLRenderingContext.framebufferRenderbuffer')
- @DocsEditable()
- void framebufferRenderbuffer(int target, int attachment,
- int renderbuffertarget, Renderbuffer renderbuffer) native;
-
- @DomName('WebGLRenderingContext.framebufferTexture2D')
- @DocsEditable()
- void framebufferTexture2D(int target, int attachment, int textarget,
- Texture texture, int level) native;
-
- @DomName('WebGLRenderingContext.frontFace')
- @DocsEditable()
- void frontFace(int mode) native;
-
- @DomName('WebGLRenderingContext.generateMipmap')
- @DocsEditable()
- void generateMipmap(int target) native;
-
- @DomName('WebGLRenderingContext.getActiveAttrib')
- @DocsEditable()
- ActiveInfo getActiveAttrib(Program program, int index) native;
-
- @DomName('WebGLRenderingContext.getActiveUniform')
- @DocsEditable()
- ActiveInfo getActiveUniform(Program program, int index) native;
-
- @DomName('WebGLRenderingContext.getAttachedShaders')
- @DocsEditable()
- List<Shader> getAttachedShaders(Program program) native;
-
- @DomName('WebGLRenderingContext.getAttribLocation')
- @DocsEditable()
- int getAttribLocation(Program program, String name) native;
-
- @DomName('WebGLRenderingContext.getBufferParameter')
- @DocsEditable()
- @Creates('int|Null')
- @Returns('int|Null')
- Object getBufferParameter(int target, int pname) native;
-
- @DomName('WebGLRenderingContext.getContextAttributes')
- @DocsEditable()
- @Creates('ContextAttributes|Null')
- Map getContextAttributes() {
- return convertNativeToDart_Dictionary(_getContextAttributes_1());
- }
-
- @JSName('getContextAttributes')
- @DomName('WebGLRenderingContext.getContextAttributes')
- @DocsEditable()
- @Creates('ContextAttributes|Null')
- _getContextAttributes_1() native;
-
- @DomName('WebGLRenderingContext.getError')
- @DocsEditable()
- int getError() native;
-
- @DomName('WebGLRenderingContext.getExtension')
- @DocsEditable()
- Object getExtension(String name) native;
-
- @DomName('WebGLRenderingContext.getFramebufferAttachmentParameter')
- @DocsEditable()
- @Creates('int|Renderbuffer|Texture|Null')
- @Returns('int|Renderbuffer|Texture|Null')
- Object getFramebufferAttachmentParameter(
- int target, int attachment, int pname) native;
-
- @DomName('WebGLRenderingContext.getParameter')
- @DocsEditable()
- @Creates(
- 'Null|num|String|bool|JSExtendableArray|NativeFloat32List|NativeInt32List|NativeUint32List|Framebuffer|Renderbuffer|Texture')
- @Returns(
- 'Null|num|String|bool|JSExtendableArray|NativeFloat32List|NativeInt32List|NativeUint32List|Framebuffer|Renderbuffer|Texture')
- Object getParameter(int pname) native;
-
- @DomName('WebGLRenderingContext.getProgramInfoLog')
- @DocsEditable()
- String getProgramInfoLog(Program program) native;
-
- @DomName('WebGLRenderingContext.getProgramParameter')
- @DocsEditable()
- @Creates('int|bool|Null')
- @Returns('int|bool|Null')
- Object getProgramParameter(Program program, int pname) native;
-
- @DomName('WebGLRenderingContext.getRenderbufferParameter')
- @DocsEditable()
- @Creates('int|Null')
- @Returns('int|Null')
- Object getRenderbufferParameter(int target, int pname) native;
-
- @DomName('WebGLRenderingContext.getShaderInfoLog')
- @DocsEditable()
- String getShaderInfoLog(Shader shader) native;
-
- @DomName('WebGLRenderingContext.getShaderParameter')
- @DocsEditable()
- @Creates('int|bool|Null')
- @Returns('int|bool|Null')
- Object getShaderParameter(Shader shader, int pname) native;
-
- @DomName('WebGLRenderingContext.getShaderPrecisionFormat')
- @DocsEditable()
- ShaderPrecisionFormat getShaderPrecisionFormat(
- int shadertype, int precisiontype) native;
-
- @DomName('WebGLRenderingContext.getShaderSource')
- @DocsEditable()
- String getShaderSource(Shader shader) native;
-
- @DomName('WebGLRenderingContext.getSupportedExtensions')
- @DocsEditable()
- List<String> getSupportedExtensions() native;
-
- @DomName('WebGLRenderingContext.getTexParameter')
- @DocsEditable()
- @Creates('int|Null')
- @Returns('int|Null')
- Object getTexParameter(int target, int pname) native;
-
- @DomName('WebGLRenderingContext.getUniform')
- @DocsEditable()
- @Creates(
- 'Null|num|String|bool|JSExtendableArray|NativeFloat32List|NativeInt32List|NativeUint32List')
- @Returns(
- 'Null|num|String|bool|JSExtendableArray|NativeFloat32List|NativeInt32List|NativeUint32List')
- Object getUniform(Program program, UniformLocation location) native;
-
- @DomName('WebGLRenderingContext.getUniformLocation')
- @DocsEditable()
- UniformLocation getUniformLocation(Program program, String name) native;
-
- @DomName('WebGLRenderingContext.getVertexAttrib')
- @DocsEditable()
- @Creates('Null|num|bool|NativeFloat32List|Buffer')
- @Returns('Null|num|bool|NativeFloat32List|Buffer')
- Object getVertexAttrib(int index, int pname) native;
-
- @DomName('WebGLRenderingContext.getVertexAttribOffset')
- @DocsEditable()
- int getVertexAttribOffset(int index, int pname) native;
-
- @DomName('WebGLRenderingContext.hint')
- @DocsEditable()
- void hint(int target, int mode) native;
-
- @DomName('WebGLRenderingContext.isBuffer')
- @DocsEditable()
- bool isBuffer(Buffer buffer) native;
-
- @DomName('WebGLRenderingContext.isContextLost')
- @DocsEditable()
- bool isContextLost() native;
-
- @DomName('WebGLRenderingContext.isEnabled')
- @DocsEditable()
- bool isEnabled(int cap) native;
-
- @DomName('WebGLRenderingContext.isFramebuffer')
- @DocsEditable()
- bool isFramebuffer(Framebuffer framebuffer) native;
-
- @DomName('WebGLRenderingContext.isProgram')
- @DocsEditable()
- bool isProgram(Program program) native;
-
- @DomName('WebGLRenderingContext.isRenderbuffer')
- @DocsEditable()
- bool isRenderbuffer(Renderbuffer renderbuffer) native;
-
- @DomName('WebGLRenderingContext.isShader')
- @DocsEditable()
- bool isShader(Shader shader) native;
-
- @DomName('WebGLRenderingContext.isTexture')
- @DocsEditable()
- bool isTexture(Texture texture) native;
-
- @DomName('WebGLRenderingContext.lineWidth')
- @DocsEditable()
- void lineWidth(num width) native;
-
- @DomName('WebGLRenderingContext.linkProgram')
- @DocsEditable()
- void linkProgram(Program program) native;
-
- @DomName('WebGLRenderingContext.pixelStorei')
- @DocsEditable()
- void pixelStorei(int pname, int param) native;
-
- @DomName('WebGLRenderingContext.polygonOffset')
- @DocsEditable()
- void polygonOffset(num factor, num units) native;
-
- @DomName('WebGLRenderingContext.readPixels')
- @DocsEditable()
- void readPixels(int x, int y, int width, int height, int format, int type,
- TypedData pixels) native;
-
- @DomName('WebGLRenderingContext.renderbufferStorage')
- @DocsEditable()
- void renderbufferStorage(
- int target, int internalformat, int width, int height) native;
-
- @DomName('WebGLRenderingContext.sampleCoverage')
- @DocsEditable()
- void sampleCoverage(num value, bool invert) native;
-
- @DomName('WebGLRenderingContext.scissor')
- @DocsEditable()
- void scissor(int x, int y, int width, int height) native;
-
- @DomName('WebGLRenderingContext.shaderSource')
- @DocsEditable()
- void shaderSource(Shader shader, String string) native;
-
- @DomName('WebGLRenderingContext.stencilFunc')
- @DocsEditable()
- void stencilFunc(int func, int ref, int mask) native;
-
- @DomName('WebGLRenderingContext.stencilFuncSeparate')
- @DocsEditable()
- void stencilFuncSeparate(int face, int func, int ref, int mask) native;
-
- @DomName('WebGLRenderingContext.stencilMask')
- @DocsEditable()
- void stencilMask(int mask) native;
-
- @DomName('WebGLRenderingContext.stencilMaskSeparate')
- @DocsEditable()
- void stencilMaskSeparate(int face, int mask) native;
-
- @DomName('WebGLRenderingContext.stencilOp')
- @DocsEditable()
- void stencilOp(int fail, int zfail, int zpass) native;
-
- @DomName('WebGLRenderingContext.stencilOpSeparate')
- @DocsEditable()
- void stencilOpSeparate(int face, int fail, int zfail, int zpass) native;
-
- @DomName('WebGLRenderingContext.texImage2D')
- @DocsEditable()
- void texImage2D(
- int target,
- int level,
- int internalformat,
- int format_OR_width,
- int height_OR_type,
- bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video,
- [int format,
- int type,
- TypedData pixels]) {
- if (type != null &&
- format != null &&
- (bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video is int)) {
- _texImage2D_1(
- target,
- level,
- internalformat,
- format_OR_width,
- height_OR_type,
- bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video,
- format,
- type,
- pixels);
- return;
- }
- if ((bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video is ImageData ||
- bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video == null) &&
- format == null &&
- type == null &&
- pixels == null) {
- var pixels_1 = convertDartToNative_ImageData(
- bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video);
- _texImage2D_2(target, level, internalformat, format_OR_width,
- height_OR_type, pixels_1);
- return;
- }
- if ((bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video
- is ImageElement) &&
- format == null &&
- type == null &&
- pixels == null) {
- _texImage2D_3(
- target,
- level,
- internalformat,
- format_OR_width,
- height_OR_type,
- bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video);
- return;
- }
- if ((bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video
- is CanvasElement) &&
- format == null &&
- type == null &&
- pixels == null) {
- _texImage2D_4(
- target,
- level,
- internalformat,
- format_OR_width,
- height_OR_type,
- bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video);
- return;
- }
- if ((bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video
- is VideoElement) &&
- format == null &&
- type == null &&
- pixels == null) {
- _texImage2D_5(
- target,
- level,
- internalformat,
- format_OR_width,
- height_OR_type,
- bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video);
- return;
- }
- if ((bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video
- is ImageBitmap) &&
- format == null &&
- type == null &&
- pixels == null) {
- _texImage2D_6(
- target,
- level,
- internalformat,
- format_OR_width,
- height_OR_type,
- bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video);
- return;
- }
- throw new ArgumentError("Incorrect number or type of arguments");
- }
-
- @JSName('texImage2D')
- @DomName('WebGLRenderingContext.texImage2D')
- @DocsEditable()
- void _texImage2D_1(target, level, internalformat, width, height, int border,
- format, type, TypedData pixels) native;
- @JSName('texImage2D')
- @DomName('WebGLRenderingContext.texImage2D')
- @DocsEditable()
- void _texImage2D_2(target, level, internalformat, format, type, pixels)
- native;
- @JSName('texImage2D')
- @DomName('WebGLRenderingContext.texImage2D')
- @DocsEditable()
- void _texImage2D_3(
- target, level, internalformat, format, type, ImageElement image) native;
- @JSName('texImage2D')
- @DomName('WebGLRenderingContext.texImage2D')
- @DocsEditable()
- void _texImage2D_4(
- target, level, internalformat, format, type, CanvasElement canvas) native;
- @JSName('texImage2D')
- @DomName('WebGLRenderingContext.texImage2D')
- @DocsEditable()
- void _texImage2D_5(
- target, level, internalformat, format, type, VideoElement video) native;
- @JSName('texImage2D')
- @DomName('WebGLRenderingContext.texImage2D')
- @DocsEditable()
- void _texImage2D_6(
- target, level, internalformat, format, type, ImageBitmap bitmap) native;
-
- @DomName('WebGLRenderingContext.texParameterf')
- @DocsEditable()
- void texParameterf(int target, int pname, num param) native;
-
- @DomName('WebGLRenderingContext.texParameteri')
- @DocsEditable()
- void texParameteri(int target, int pname, int param) native;
-
- @DomName('WebGLRenderingContext.texSubImage2D')
- @DocsEditable()
- void texSubImage2D(
- int target,
- int level,
- int xoffset,
- int yoffset,
- int format_OR_width,
- int height_OR_type,
- bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video,
- [int type,
- TypedData pixels]) {
- if (type != null &&
- (bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video is int)) {
- _texSubImage2D_1(
- target,
- level,
- xoffset,
- yoffset,
- format_OR_width,
- height_OR_type,
- bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video,
- type,
- pixels);
- return;
- }
- if ((bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video is ImageData ||
- bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video == null) &&
- type == null &&
- pixels == null) {
- var pixels_1 = convertDartToNative_ImageData(
- bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video);
- _texSubImage2D_2(target, level, xoffset, yoffset, format_OR_width,
- height_OR_type, pixels_1);
- return;
- }
- if ((bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video
- is ImageElement) &&
- type == null &&
- pixels == null) {
- _texSubImage2D_3(
- target,
- level,
- xoffset,
- yoffset,
- format_OR_width,
- height_OR_type,
- bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video);
- return;
- }
- if ((bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video
- is CanvasElement) &&
- type == null &&
- pixels == null) {
- _texSubImage2D_4(
- target,
- level,
- xoffset,
- yoffset,
- format_OR_width,
- height_OR_type,
- bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video);
- return;
- }
- if ((bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video
- is VideoElement) &&
- type == null &&
- pixels == null) {
- _texSubImage2D_5(
- target,
- level,
- xoffset,
- yoffset,
- format_OR_width,
- height_OR_type,
- bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video);
- return;
- }
- if ((bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video
- is ImageBitmap) &&
- type == null &&
- pixels == null) {
- _texSubImage2D_6(
- target,
- level,
- xoffset,
- yoffset,
- format_OR_width,
- height_OR_type,
- bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video);
- return;
- }
- throw new ArgumentError("Incorrect number or type of arguments");
- }
-
- @JSName('texSubImage2D')
- @DomName('WebGLRenderingContext.texSubImage2D')
- @DocsEditable()
- void _texSubImage2D_1(target, level, xoffset, yoffset, width, height,
- int format, type, TypedData pixels) native;
- @JSName('texSubImage2D')
- @DomName('WebGLRenderingContext.texSubImage2D')
- @DocsEditable()
- void _texSubImage2D_2(target, level, xoffset, yoffset, format, type, pixels)
- native;
- @JSName('texSubImage2D')
- @DomName('WebGLRenderingContext.texSubImage2D')
- @DocsEditable()
- void _texSubImage2D_3(
- target, level, xoffset, yoffset, format, type, ImageElement image) native;
- @JSName('texSubImage2D')
- @DomName('WebGLRenderingContext.texSubImage2D')
- @DocsEditable()
- void _texSubImage2D_4(target, level, xoffset, yoffset, format, type,
- CanvasElement canvas) native;
- @JSName('texSubImage2D')
- @DomName('WebGLRenderingContext.texSubImage2D')
- @DocsEditable()
- void _texSubImage2D_5(
- target, level, xoffset, yoffset, format, type, VideoElement video) native;
- @JSName('texSubImage2D')
- @DomName('WebGLRenderingContext.texSubImage2D')
- @DocsEditable()
- void _texSubImage2D_6(
- target, level, xoffset, yoffset, format, type, ImageBitmap bitmap) native;
-
- @DomName('WebGLRenderingContext.uniform1f')
- @DocsEditable()
- void uniform1f(UniformLocation location, num x) native;
-
- @DomName('WebGLRenderingContext.uniform1fv')
- @DocsEditable()
- void uniform1fv(UniformLocation location, v) native;
-
- @DomName('WebGLRenderingContext.uniform1i')
- @DocsEditable()
- void uniform1i(UniformLocation location, int x) native;
-
- @DomName('WebGLRenderingContext.uniform1iv')
- @DocsEditable()
- void uniform1iv(UniformLocation location, v) native;
-
- @DomName('WebGLRenderingContext.uniform2f')
- @DocsEditable()
- void uniform2f(UniformLocation location, num x, num y) native;
-
- @DomName('WebGLRenderingContext.uniform2fv')
- @DocsEditable()
- void uniform2fv(UniformLocation location, v) native;
-
- @DomName('WebGLRenderingContext.uniform2i')
- @DocsEditable()
- void uniform2i(UniformLocation location, int x, int y) native;
-
- @DomName('WebGLRenderingContext.uniform2iv')
- @DocsEditable()
- void uniform2iv(UniformLocation location, v) native;
-
- @DomName('WebGLRenderingContext.uniform3f')
- @DocsEditable()
- void uniform3f(UniformLocation location, num x, num y, num z) native;
-
- @DomName('WebGLRenderingContext.uniform3fv')
- @DocsEditable()
- void uniform3fv(UniformLocation location, v) native;
-
- @DomName('WebGLRenderingContext.uniform3i')
- @DocsEditable()
- void uniform3i(UniformLocation location, int x, int y, int z) native;
-
- @DomName('WebGLRenderingContext.uniform3iv')
- @DocsEditable()
- void uniform3iv(UniformLocation location, v) native;
-
- @DomName('WebGLRenderingContext.uniform4f')
- @DocsEditable()
- void uniform4f(UniformLocation location, num x, num y, num z, num w) native;
-
- @DomName('WebGLRenderingContext.uniform4fv')
- @DocsEditable()
- void uniform4fv(UniformLocation location, v) native;
-
- @DomName('WebGLRenderingContext.uniform4i')
- @DocsEditable()
- void uniform4i(UniformLocation location, int x, int y, int z, int w) native;
-
- @DomName('WebGLRenderingContext.uniform4iv')
- @DocsEditable()
- void uniform4iv(UniformLocation location, v) native;
-
- @DomName('WebGLRenderingContext.uniformMatrix2fv')
- @DocsEditable()
- void uniformMatrix2fv(UniformLocation location, bool transpose, array) native;
-
- @DomName('WebGLRenderingContext.uniformMatrix3fv')
- @DocsEditable()
- void uniformMatrix3fv(UniformLocation location, bool transpose, array) native;
-
- @DomName('WebGLRenderingContext.uniformMatrix4fv')
- @DocsEditable()
- void uniformMatrix4fv(UniformLocation location, bool transpose, array) native;
-
- @DomName('WebGLRenderingContext.useProgram')
- @DocsEditable()
- void useProgram(Program program) native;
-
- @DomName('WebGLRenderingContext.validateProgram')
- @DocsEditable()
- void validateProgram(Program program) native;
-
- @DomName('WebGLRenderingContext.vertexAttrib1f')
- @DocsEditable()
- void vertexAttrib1f(int indx, num x) native;
-
- @DomName('WebGLRenderingContext.vertexAttrib1fv')
- @DocsEditable()
- void vertexAttrib1fv(int indx, values) native;
-
- @DomName('WebGLRenderingContext.vertexAttrib2f')
- @DocsEditable()
- void vertexAttrib2f(int indx, num x, num y) native;
-
- @DomName('WebGLRenderingContext.vertexAttrib2fv')
- @DocsEditable()
- void vertexAttrib2fv(int indx, values) native;
-
- @DomName('WebGLRenderingContext.vertexAttrib3f')
- @DocsEditable()
- void vertexAttrib3f(int indx, num x, num y, num z) native;
-
- @DomName('WebGLRenderingContext.vertexAttrib3fv')
- @DocsEditable()
- void vertexAttrib3fv(int indx, values) native;
-
- @DomName('WebGLRenderingContext.vertexAttrib4f')
- @DocsEditable()
- void vertexAttrib4f(int indx, num x, num y, num z, num w) native;
-
- @DomName('WebGLRenderingContext.vertexAttrib4fv')
- @DocsEditable()
- void vertexAttrib4fv(int indx, values) native;
-
- @DomName('WebGLRenderingContext.vertexAttribPointer')
- @DocsEditable()
- void vertexAttribPointer(int indx, int size, int type, bool normalized,
- int stride, int offset) native;
-
- @DomName('WebGLRenderingContext.viewport')
- @DocsEditable()
- void viewport(int x, int y, int width, int height) native;
-
- /**
- * Sets the currently bound texture to [data].
- *
- * [data] can be either an [ImageElement], a
- * [CanvasElement], a [VideoElement], [TypedData] or an [ImageData] object.
- *
- * This is deprecated in favor of [texImage2D].
- */
- @Deprecated("Use texImage2D")
- void texImage2DUntyped(int targetTexture, int levelOfDetail,
- int internalFormat, int format, int type, data) {
- texImage2D(
- targetTexture, levelOfDetail, internalFormat, format, type, data);
- }
-
- /**
- * Sets the currently bound texture to [data].
- *
- * This is deprecated in favour of [texImage2D].
- */
- @Deprecated("Use texImage2D")
- void texImage2DTyped(int targetTexture, int levelOfDetail, int internalFormat,
- int width, int height, int border, int format, int type, TypedData data) {
- texImage2D(targetTexture, levelOfDetail, internalFormat, width, height,
- border, format, type, data);
- }
-
- /**
- * Updates a sub-rectangle of the currently bound texture to [data].
- *
- * [data] can be either an [ImageElement], a
- * [CanvasElement], a [VideoElement], [TypedData] or an [ImageData] object.
- *
- */
- @Deprecated("Use texSubImage2D")
- void texSubImage2DUntyped(int targetTexture, int levelOfDetail, int xOffset,
- int yOffset, int format, int type, data) {
- texSubImage2D(
- targetTexture, levelOfDetail, xOffset, yOffset, format, type, data);
- }
-
- /**
- * Updates a sub-rectangle of the currently bound texture to [data].
- */
- @Deprecated("Use texSubImage2D")
- void texSubImage2DTyped(
- int targetTexture,
- int levelOfDetail,
- int xOffset,
- int yOffset,
- int width,
- int height,
- int border,
- int format,
- int type,
- TypedData data) {
- texSubImage2D(targetTexture, levelOfDetail, xOffset, yOffset, width, height,
- format, type, data);
- }
-
- /**
- * Set the bufferData to [data].
- */
- @Deprecated("Use bufferData")
- void bufferDataTyped(int target, TypedData data, int usage) {
- bufferData(target, data, usage);
- }
-
- /**
- * Set the bufferSubData to [data].
- */
- @Deprecated("Use bufferSubData")
- void bufferSubDataTyped(int target, int offset, TypedData data) {
- bufferSubData(target, offset, data);
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('WebGL2RenderingContext')
-@Experimental() // untriaged
-@Native("WebGL2RenderingContext")
-class RenderingContext2 extends Interceptor
- implements _WebGL2RenderingContextBase, _WebGLRenderingContextBase {
- // To suppress missing implicit constructor warnings.
- factory RenderingContext2._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('WebGL2RenderingContext.ACTIVE_ATTRIBUTES')
- @DocsEditable()
- @Experimental() // untriaged
- static const int ACTIVE_ATTRIBUTES = 0x8B89;
-
- @DomName('WebGL2RenderingContext.ACTIVE_TEXTURE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int ACTIVE_TEXTURE = 0x84E0;
-
- @DomName('WebGL2RenderingContext.ACTIVE_UNIFORMS')
- @DocsEditable()
- @Experimental() // untriaged
- static const int ACTIVE_UNIFORMS = 0x8B86;
-
- @DomName('WebGL2RenderingContext.ALIASED_LINE_WIDTH_RANGE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int ALIASED_LINE_WIDTH_RANGE = 0x846E;
-
- @DomName('WebGL2RenderingContext.ALIASED_POINT_SIZE_RANGE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int ALIASED_POINT_SIZE_RANGE = 0x846D;
-
- @DomName('WebGL2RenderingContext.ALPHA')
- @DocsEditable()
- @Experimental() // untriaged
- static const int ALPHA = 0x1906;
-
- @DomName('WebGL2RenderingContext.ALPHA_BITS')
- @DocsEditable()
- @Experimental() // untriaged
- static const int ALPHA_BITS = 0x0D55;
-
- @DomName('WebGL2RenderingContext.ALWAYS')
- @DocsEditable()
- @Experimental() // untriaged
- static const int ALWAYS = 0x0207;
-
- @DomName('WebGL2RenderingContext.ARRAY_BUFFER')
- @DocsEditable()
- @Experimental() // untriaged
- static const int ARRAY_BUFFER = 0x8892;
-
- @DomName('WebGL2RenderingContext.ARRAY_BUFFER_BINDING')
- @DocsEditable()
- @Experimental() // untriaged
- static const int ARRAY_BUFFER_BINDING = 0x8894;
-
- @DomName('WebGL2RenderingContext.ATTACHED_SHADERS')
- @DocsEditable()
- @Experimental() // untriaged
- static const int ATTACHED_SHADERS = 0x8B85;
-
- @DomName('WebGL2RenderingContext.BACK')
- @DocsEditable()
- @Experimental() // untriaged
- static const int BACK = 0x0405;
-
- @DomName('WebGL2RenderingContext.BLEND')
- @DocsEditable()
- @Experimental() // untriaged
- static const int BLEND = 0x0BE2;
-
- @DomName('WebGL2RenderingContext.BLEND_COLOR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int BLEND_COLOR = 0x8005;
-
- @DomName('WebGL2RenderingContext.BLEND_DST_ALPHA')
- @DocsEditable()
- @Experimental() // untriaged
- static const int BLEND_DST_ALPHA = 0x80CA;
-
- @DomName('WebGL2RenderingContext.BLEND_DST_RGB')
- @DocsEditable()
- @Experimental() // untriaged
- static const int BLEND_DST_RGB = 0x80C8;
-
- @DomName('WebGL2RenderingContext.BLEND_EQUATION')
- @DocsEditable()
- @Experimental() // untriaged
- static const int BLEND_EQUATION = 0x8009;
-
- @DomName('WebGL2RenderingContext.BLEND_EQUATION_ALPHA')
- @DocsEditable()
- @Experimental() // untriaged
- static const int BLEND_EQUATION_ALPHA = 0x883D;
-
- @DomName('WebGL2RenderingContext.BLEND_EQUATION_RGB')
- @DocsEditable()
- @Experimental() // untriaged
- static const int BLEND_EQUATION_RGB = 0x8009;
-
- @DomName('WebGL2RenderingContext.BLEND_SRC_ALPHA')
- @DocsEditable()
- @Experimental() // untriaged
- static const int BLEND_SRC_ALPHA = 0x80CB;
-
- @DomName('WebGL2RenderingContext.BLEND_SRC_RGB')
- @DocsEditable()
- @Experimental() // untriaged
- static const int BLEND_SRC_RGB = 0x80C9;
-
- @DomName('WebGL2RenderingContext.BLUE_BITS')
- @DocsEditable()
- @Experimental() // untriaged
- static const int BLUE_BITS = 0x0D54;
-
- @DomName('WebGL2RenderingContext.BOOL')
- @DocsEditable()
- @Experimental() // untriaged
- static const int BOOL = 0x8B56;
-
- @DomName('WebGL2RenderingContext.BOOL_VEC2')
- @DocsEditable()
- @Experimental() // untriaged
- static const int BOOL_VEC2 = 0x8B57;
-
- @DomName('WebGL2RenderingContext.BOOL_VEC3')
- @DocsEditable()
- @Experimental() // untriaged
- static const int BOOL_VEC3 = 0x8B58;
-
- @DomName('WebGL2RenderingContext.BOOL_VEC4')
- @DocsEditable()
- @Experimental() // untriaged
- static const int BOOL_VEC4 = 0x8B59;
-
- @DomName('WebGL2RenderingContext.BROWSER_DEFAULT_WEBGL')
- @DocsEditable()
- @Experimental() // untriaged
- static const int BROWSER_DEFAULT_WEBGL = 0x9244;
-
- @DomName('WebGL2RenderingContext.BUFFER_SIZE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int BUFFER_SIZE = 0x8764;
-
- @DomName('WebGL2RenderingContext.BUFFER_USAGE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int BUFFER_USAGE = 0x8765;
-
- @DomName('WebGL2RenderingContext.BYTE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int BYTE = 0x1400;
-
- @DomName('WebGL2RenderingContext.CCW')
- @DocsEditable()
- @Experimental() // untriaged
- static const int CCW = 0x0901;
-
- @DomName('WebGL2RenderingContext.CLAMP_TO_EDGE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int CLAMP_TO_EDGE = 0x812F;
-
- @DomName('WebGL2RenderingContext.COLOR_ATTACHMENT0')
- @DocsEditable()
- @Experimental() // untriaged
- static const int COLOR_ATTACHMENT0 = 0x8CE0;
-
- @DomName('WebGL2RenderingContext.COLOR_BUFFER_BIT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int COLOR_BUFFER_BIT = 0x00004000;
-
- @DomName('WebGL2RenderingContext.COLOR_CLEAR_VALUE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int COLOR_CLEAR_VALUE = 0x0C22;
-
- @DomName('WebGL2RenderingContext.COLOR_WRITEMASK')
- @DocsEditable()
- @Experimental() // untriaged
- static const int COLOR_WRITEMASK = 0x0C23;
-
- @DomName('WebGL2RenderingContext.COMPILE_STATUS')
- @DocsEditable()
- @Experimental() // untriaged
- static const int COMPILE_STATUS = 0x8B81;
-
- @DomName('WebGL2RenderingContext.COMPRESSED_TEXTURE_FORMATS')
- @DocsEditable()
- @Experimental() // untriaged
- static const int COMPRESSED_TEXTURE_FORMATS = 0x86A3;
-
- @DomName('WebGL2RenderingContext.CONSTANT_ALPHA')
- @DocsEditable()
- @Experimental() // untriaged
- static const int CONSTANT_ALPHA = 0x8003;
-
- @DomName('WebGL2RenderingContext.CONSTANT_COLOR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int CONSTANT_COLOR = 0x8001;
-
- @DomName('WebGL2RenderingContext.CONTEXT_LOST_WEBGL')
- @DocsEditable()
- @Experimental() // untriaged
- static const int CONTEXT_LOST_WEBGL = 0x9242;
-
- @DomName('WebGL2RenderingContext.CULL_FACE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int CULL_FACE = 0x0B44;
-
- @DomName('WebGL2RenderingContext.CULL_FACE_MODE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int CULL_FACE_MODE = 0x0B45;
-
- @DomName('WebGL2RenderingContext.CURRENT_PROGRAM')
- @DocsEditable()
- @Experimental() // untriaged
- static const int CURRENT_PROGRAM = 0x8B8D;
-
- @DomName('WebGL2RenderingContext.CURRENT_VERTEX_ATTRIB')
- @DocsEditable()
- @Experimental() // untriaged
- static const int CURRENT_VERTEX_ATTRIB = 0x8626;
-
- @DomName('WebGL2RenderingContext.CW')
- @DocsEditable()
- @Experimental() // untriaged
- static const int CW = 0x0900;
-
- @DomName('WebGL2RenderingContext.DECR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int DECR = 0x1E03;
-
- @DomName('WebGL2RenderingContext.DECR_WRAP')
- @DocsEditable()
- @Experimental() // untriaged
- static const int DECR_WRAP = 0x8508;
-
- @DomName('WebGL2RenderingContext.DELETE_STATUS')
- @DocsEditable()
- @Experimental() // untriaged
- static const int DELETE_STATUS = 0x8B80;
-
- @DomName('WebGL2RenderingContext.DEPTH_ATTACHMENT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int DEPTH_ATTACHMENT = 0x8D00;
-
- @DomName('WebGL2RenderingContext.DEPTH_BITS')
- @DocsEditable()
- @Experimental() // untriaged
- static const int DEPTH_BITS = 0x0D56;
-
- @DomName('WebGL2RenderingContext.DEPTH_BUFFER_BIT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int DEPTH_BUFFER_BIT = 0x00000100;
-
- @DomName('WebGL2RenderingContext.DEPTH_CLEAR_VALUE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int DEPTH_CLEAR_VALUE = 0x0B73;
-
- @DomName('WebGL2RenderingContext.DEPTH_COMPONENT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int DEPTH_COMPONENT = 0x1902;
-
- @DomName('WebGL2RenderingContext.DEPTH_COMPONENT16')
- @DocsEditable()
- @Experimental() // untriaged
- static const int DEPTH_COMPONENT16 = 0x81A5;
-
- @DomName('WebGL2RenderingContext.DEPTH_FUNC')
- @DocsEditable()
- @Experimental() // untriaged
- static const int DEPTH_FUNC = 0x0B74;
-
- @DomName('WebGL2RenderingContext.DEPTH_RANGE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int DEPTH_RANGE = 0x0B70;
-
- @DomName('WebGL2RenderingContext.DEPTH_STENCIL')
- @DocsEditable()
- @Experimental() // untriaged
- static const int DEPTH_STENCIL = 0x84F9;
-
- @DomName('WebGL2RenderingContext.DEPTH_STENCIL_ATTACHMENT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int DEPTH_STENCIL_ATTACHMENT = 0x821A;
-
- @DomName('WebGL2RenderingContext.DEPTH_TEST')
- @DocsEditable()
- @Experimental() // untriaged
- static const int DEPTH_TEST = 0x0B71;
-
- @DomName('WebGL2RenderingContext.DEPTH_WRITEMASK')
- @DocsEditable()
- @Experimental() // untriaged
- static const int DEPTH_WRITEMASK = 0x0B72;
-
- @DomName('WebGL2RenderingContext.DITHER')
- @DocsEditable()
- @Experimental() // untriaged
- static const int DITHER = 0x0BD0;
-
- @DomName('WebGL2RenderingContext.DONT_CARE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int DONT_CARE = 0x1100;
-
- @DomName('WebGL2RenderingContext.DST_ALPHA')
- @DocsEditable()
- @Experimental() // untriaged
- static const int DST_ALPHA = 0x0304;
-
- @DomName('WebGL2RenderingContext.DST_COLOR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int DST_COLOR = 0x0306;
-
- @DomName('WebGL2RenderingContext.DYNAMIC_DRAW')
- @DocsEditable()
- @Experimental() // untriaged
- static const int DYNAMIC_DRAW = 0x88E8;
-
- @DomName('WebGL2RenderingContext.ELEMENT_ARRAY_BUFFER')
- @DocsEditable()
- @Experimental() // untriaged
- static const int ELEMENT_ARRAY_BUFFER = 0x8893;
-
- @DomName('WebGL2RenderingContext.ELEMENT_ARRAY_BUFFER_BINDING')
- @DocsEditable()
- @Experimental() // untriaged
- static const int ELEMENT_ARRAY_BUFFER_BINDING = 0x8895;
-
- @DomName('WebGL2RenderingContext.EQUAL')
- @DocsEditable()
- @Experimental() // untriaged
- static const int EQUAL = 0x0202;
-
- @DomName('WebGL2RenderingContext.FASTEST')
- @DocsEditable()
- @Experimental() // untriaged
- static const int FASTEST = 0x1101;
-
- @DomName('WebGL2RenderingContext.FLOAT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int FLOAT = 0x1406;
-
- @DomName('WebGL2RenderingContext.FLOAT_MAT2')
- @DocsEditable()
- @Experimental() // untriaged
- static const int FLOAT_MAT2 = 0x8B5A;
-
- @DomName('WebGL2RenderingContext.FLOAT_MAT3')
- @DocsEditable()
- @Experimental() // untriaged
- static const int FLOAT_MAT3 = 0x8B5B;
-
- @DomName('WebGL2RenderingContext.FLOAT_MAT4')
- @DocsEditable()
- @Experimental() // untriaged
- static const int FLOAT_MAT4 = 0x8B5C;
-
- @DomName('WebGL2RenderingContext.FLOAT_VEC2')
- @DocsEditable()
- @Experimental() // untriaged
- static const int FLOAT_VEC2 = 0x8B50;
-
- @DomName('WebGL2RenderingContext.FLOAT_VEC3')
- @DocsEditable()
- @Experimental() // untriaged
- static const int FLOAT_VEC3 = 0x8B51;
-
- @DomName('WebGL2RenderingContext.FLOAT_VEC4')
- @DocsEditable()
- @Experimental() // untriaged
- static const int FLOAT_VEC4 = 0x8B52;
-
- @DomName('WebGL2RenderingContext.FRAGMENT_SHADER')
- @DocsEditable()
- @Experimental() // untriaged
- static const int FRAGMENT_SHADER = 0x8B30;
-
- @DomName('WebGL2RenderingContext.FRAMEBUFFER')
- @DocsEditable()
- @Experimental() // untriaged
- static const int FRAMEBUFFER = 0x8D40;
-
- @DomName('WebGL2RenderingContext.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME')
- @DocsEditable()
- @Experimental() // untriaged
- static const int FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1;
-
- @DomName('WebGL2RenderingContext.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0;
-
- @DomName(
- 'WebGL2RenderingContext.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3;
-
- @DomName('WebGL2RenderingContext.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL')
- @DocsEditable()
- @Experimental() // untriaged
- static const int FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2;
-
- @DomName('WebGL2RenderingContext.FRAMEBUFFER_BINDING')
- @DocsEditable()
- @Experimental() // untriaged
- static const int FRAMEBUFFER_BINDING = 0x8CA6;
-
- @DomName('WebGL2RenderingContext.FRAMEBUFFER_COMPLETE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int FRAMEBUFFER_COMPLETE = 0x8CD5;
-
- @DomName('WebGL2RenderingContext.FRAMEBUFFER_INCOMPLETE_ATTACHMENT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6;
-
- @DomName('WebGL2RenderingContext.FRAMEBUFFER_INCOMPLETE_DIMENSIONS')
- @DocsEditable()
- @Experimental() // untriaged
- static const int FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 0x8CD9;
-
- @DomName('WebGL2RenderingContext.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7;
-
- @DomName('WebGL2RenderingContext.FRAMEBUFFER_UNSUPPORTED')
- @DocsEditable()
- @Experimental() // untriaged
- static const int FRAMEBUFFER_UNSUPPORTED = 0x8CDD;
-
- @DomName('WebGL2RenderingContext.FRONT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int FRONT = 0x0404;
-
- @DomName('WebGL2RenderingContext.FRONT_AND_BACK')
- @DocsEditable()
- @Experimental() // untriaged
- static const int FRONT_AND_BACK = 0x0408;
-
- @DomName('WebGL2RenderingContext.FRONT_FACE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int FRONT_FACE = 0x0B46;
-
- @DomName('WebGL2RenderingContext.FUNC_ADD')
- @DocsEditable()
- @Experimental() // untriaged
- static const int FUNC_ADD = 0x8006;
-
- @DomName('WebGL2RenderingContext.FUNC_REVERSE_SUBTRACT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int FUNC_REVERSE_SUBTRACT = 0x800B;
-
- @DomName('WebGL2RenderingContext.FUNC_SUBTRACT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int FUNC_SUBTRACT = 0x800A;
-
- @DomName('WebGL2RenderingContext.GENERATE_MIPMAP_HINT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int GENERATE_MIPMAP_HINT = 0x8192;
-
- @DomName('WebGL2RenderingContext.GEQUAL')
- @DocsEditable()
- @Experimental() // untriaged
- static const int GEQUAL = 0x0206;
-
- @DomName('WebGL2RenderingContext.GREATER')
- @DocsEditable()
- @Experimental() // untriaged
- static const int GREATER = 0x0204;
-
- @DomName('WebGL2RenderingContext.GREEN_BITS')
- @DocsEditable()
- @Experimental() // untriaged
- static const int GREEN_BITS = 0x0D53;
-
- @DomName('WebGL2RenderingContext.HIGH_FLOAT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int HIGH_FLOAT = 0x8DF2;
-
- @DomName('WebGL2RenderingContext.HIGH_INT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int HIGH_INT = 0x8DF5;
-
- @DomName('WebGL2RenderingContext.IMPLEMENTATION_COLOR_READ_FORMAT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B;
-
- @DomName('WebGL2RenderingContext.IMPLEMENTATION_COLOR_READ_TYPE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A;
-
- @DomName('WebGL2RenderingContext.INCR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int INCR = 0x1E02;
-
- @DomName('WebGL2RenderingContext.INCR_WRAP')
- @DocsEditable()
- @Experimental() // untriaged
- static const int INCR_WRAP = 0x8507;
-
- @DomName('WebGL2RenderingContext.INT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int INT = 0x1404;
-
- @DomName('WebGL2RenderingContext.INT_VEC2')
- @DocsEditable()
- @Experimental() // untriaged
- static const int INT_VEC2 = 0x8B53;
-
- @DomName('WebGL2RenderingContext.INT_VEC3')
- @DocsEditable()
- @Experimental() // untriaged
- static const int INT_VEC3 = 0x8B54;
-
- @DomName('WebGL2RenderingContext.INT_VEC4')
- @DocsEditable()
- @Experimental() // untriaged
- static const int INT_VEC4 = 0x8B55;
-
- @DomName('WebGL2RenderingContext.INVALID_ENUM')
- @DocsEditable()
- @Experimental() // untriaged
- static const int INVALID_ENUM = 0x0500;
-
- @DomName('WebGL2RenderingContext.INVALID_FRAMEBUFFER_OPERATION')
- @DocsEditable()
- @Experimental() // untriaged
- static const int INVALID_FRAMEBUFFER_OPERATION = 0x0506;
-
- @DomName('WebGL2RenderingContext.INVALID_OPERATION')
- @DocsEditable()
- @Experimental() // untriaged
- static const int INVALID_OPERATION = 0x0502;
-
- @DomName('WebGL2RenderingContext.INVALID_VALUE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int INVALID_VALUE = 0x0501;
-
- @DomName('WebGL2RenderingContext.INVERT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int INVERT = 0x150A;
-
- @DomName('WebGL2RenderingContext.KEEP')
- @DocsEditable()
- @Experimental() // untriaged
- static const int KEEP = 0x1E00;
-
- @DomName('WebGL2RenderingContext.LEQUAL')
- @DocsEditable()
- @Experimental() // untriaged
- static const int LEQUAL = 0x0203;
-
- @DomName('WebGL2RenderingContext.LESS')
- @DocsEditable()
- @Experimental() // untriaged
- static const int LESS = 0x0201;
-
- @DomName('WebGL2RenderingContext.LINEAR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int LINEAR = 0x2601;
-
- @DomName('WebGL2RenderingContext.LINEAR_MIPMAP_LINEAR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int LINEAR_MIPMAP_LINEAR = 0x2703;
-
- @DomName('WebGL2RenderingContext.LINEAR_MIPMAP_NEAREST')
- @DocsEditable()
- @Experimental() // untriaged
- static const int LINEAR_MIPMAP_NEAREST = 0x2701;
-
- @DomName('WebGL2RenderingContext.LINES')
- @DocsEditable()
- @Experimental() // untriaged
- static const int LINES = 0x0001;
-
- @DomName('WebGL2RenderingContext.LINE_LOOP')
- @DocsEditable()
- @Experimental() // untriaged
- static const int LINE_LOOP = 0x0002;
-
- @DomName('WebGL2RenderingContext.LINE_STRIP')
- @DocsEditable()
- @Experimental() // untriaged
- static const int LINE_STRIP = 0x0003;
-
- @DomName('WebGL2RenderingContext.LINE_WIDTH')
- @DocsEditable()
- @Experimental() // untriaged
- static const int LINE_WIDTH = 0x0B21;
-
- @DomName('WebGL2RenderingContext.LINK_STATUS')
- @DocsEditable()
- @Experimental() // untriaged
- static const int LINK_STATUS = 0x8B82;
-
- @DomName('WebGL2RenderingContext.LOW_FLOAT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int LOW_FLOAT = 0x8DF0;
-
- @DomName('WebGL2RenderingContext.LOW_INT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int LOW_INT = 0x8DF3;
-
- @DomName('WebGL2RenderingContext.LUMINANCE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int LUMINANCE = 0x1909;
-
- @DomName('WebGL2RenderingContext.LUMINANCE_ALPHA')
- @DocsEditable()
- @Experimental() // untriaged
- static const int LUMINANCE_ALPHA = 0x190A;
-
- @DomName('WebGL2RenderingContext.MAX_COMBINED_TEXTURE_IMAGE_UNITS')
- @DocsEditable()
- @Experimental() // untriaged
- static const int MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D;
-
- @DomName('WebGL2RenderingContext.MAX_CUBE_MAP_TEXTURE_SIZE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C;
-
- @DomName('WebGL2RenderingContext.MAX_FRAGMENT_UNIFORM_VECTORS')
- @DocsEditable()
- @Experimental() // untriaged
- static const int MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD;
-
- @DomName('WebGL2RenderingContext.MAX_RENDERBUFFER_SIZE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int MAX_RENDERBUFFER_SIZE = 0x84E8;
-
- @DomName('WebGL2RenderingContext.MAX_TEXTURE_IMAGE_UNITS')
- @DocsEditable()
- @Experimental() // untriaged
- static const int MAX_TEXTURE_IMAGE_UNITS = 0x8872;
-
- @DomName('WebGL2RenderingContext.MAX_TEXTURE_SIZE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int MAX_TEXTURE_SIZE = 0x0D33;
-
- @DomName('WebGL2RenderingContext.MAX_VARYING_VECTORS')
- @DocsEditable()
- @Experimental() // untriaged
- static const int MAX_VARYING_VECTORS = 0x8DFC;
-
- @DomName('WebGL2RenderingContext.MAX_VERTEX_ATTRIBS')
- @DocsEditable()
- @Experimental() // untriaged
- static const int MAX_VERTEX_ATTRIBS = 0x8869;
-
- @DomName('WebGL2RenderingContext.MAX_VERTEX_TEXTURE_IMAGE_UNITS')
- @DocsEditable()
- @Experimental() // untriaged
- static const int MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C;
-
- @DomName('WebGL2RenderingContext.MAX_VERTEX_UNIFORM_VECTORS')
- @DocsEditable()
- @Experimental() // untriaged
- static const int MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB;
-
- @DomName('WebGL2RenderingContext.MAX_VIEWPORT_DIMS')
- @DocsEditable()
- @Experimental() // untriaged
- static const int MAX_VIEWPORT_DIMS = 0x0D3A;
-
- @DomName('WebGL2RenderingContext.MEDIUM_FLOAT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int MEDIUM_FLOAT = 0x8DF1;
-
- @DomName('WebGL2RenderingContext.MEDIUM_INT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int MEDIUM_INT = 0x8DF4;
-
- @DomName('WebGL2RenderingContext.MIRRORED_REPEAT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int MIRRORED_REPEAT = 0x8370;
-
- @DomName('WebGL2RenderingContext.NEAREST')
- @DocsEditable()
- @Experimental() // untriaged
- static const int NEAREST = 0x2600;
-
- @DomName('WebGL2RenderingContext.NEAREST_MIPMAP_LINEAR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int NEAREST_MIPMAP_LINEAR = 0x2702;
-
- @DomName('WebGL2RenderingContext.NEAREST_MIPMAP_NEAREST')
- @DocsEditable()
- @Experimental() // untriaged
- static const int NEAREST_MIPMAP_NEAREST = 0x2700;
-
- @DomName('WebGL2RenderingContext.NEVER')
- @DocsEditable()
- @Experimental() // untriaged
- static const int NEVER = 0x0200;
-
- @DomName('WebGL2RenderingContext.NICEST')
- @DocsEditable()
- @Experimental() // untriaged
- static const int NICEST = 0x1102;
-
- @DomName('WebGL2RenderingContext.NONE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int NONE = 0;
-
- @DomName('WebGL2RenderingContext.NOTEQUAL')
- @DocsEditable()
- @Experimental() // untriaged
- static const int NOTEQUAL = 0x0205;
-
- @DomName('WebGL2RenderingContext.NO_ERROR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int NO_ERROR = 0;
-
- @DomName('WebGL2RenderingContext.ONE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int ONE = 1;
-
- @DomName('WebGL2RenderingContext.ONE_MINUS_CONSTANT_ALPHA')
- @DocsEditable()
- @Experimental() // untriaged
- static const int ONE_MINUS_CONSTANT_ALPHA = 0x8004;
-
- @DomName('WebGL2RenderingContext.ONE_MINUS_CONSTANT_COLOR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int ONE_MINUS_CONSTANT_COLOR = 0x8002;
-
- @DomName('WebGL2RenderingContext.ONE_MINUS_DST_ALPHA')
- @DocsEditable()
- @Experimental() // untriaged
- static const int ONE_MINUS_DST_ALPHA = 0x0305;
-
- @DomName('WebGL2RenderingContext.ONE_MINUS_DST_COLOR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int ONE_MINUS_DST_COLOR = 0x0307;
-
- @DomName('WebGL2RenderingContext.ONE_MINUS_SRC_ALPHA')
- @DocsEditable()
- @Experimental() // untriaged
- static const int ONE_MINUS_SRC_ALPHA = 0x0303;
-
- @DomName('WebGL2RenderingContext.ONE_MINUS_SRC_COLOR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int ONE_MINUS_SRC_COLOR = 0x0301;
-
- @DomName('WebGL2RenderingContext.OUT_OF_MEMORY')
- @DocsEditable()
- @Experimental() // untriaged
- static const int OUT_OF_MEMORY = 0x0505;
-
- @DomName('WebGL2RenderingContext.PACK_ALIGNMENT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int PACK_ALIGNMENT = 0x0D05;
-
- @DomName('WebGL2RenderingContext.POINTS')
- @DocsEditable()
- @Experimental() // untriaged
- static const int POINTS = 0x0000;
-
- @DomName('WebGL2RenderingContext.POLYGON_OFFSET_FACTOR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int POLYGON_OFFSET_FACTOR = 0x8038;
-
- @DomName('WebGL2RenderingContext.POLYGON_OFFSET_FILL')
- @DocsEditable()
- @Experimental() // untriaged
- static const int POLYGON_OFFSET_FILL = 0x8037;
-
- @DomName('WebGL2RenderingContext.POLYGON_OFFSET_UNITS')
- @DocsEditable()
- @Experimental() // untriaged
- static const int POLYGON_OFFSET_UNITS = 0x2A00;
-
- @DomName('WebGL2RenderingContext.RED_BITS')
- @DocsEditable()
- @Experimental() // untriaged
- static const int RED_BITS = 0x0D52;
-
- @DomName('WebGL2RenderingContext.RENDERBUFFER')
- @DocsEditable()
- @Experimental() // untriaged
- static const int RENDERBUFFER = 0x8D41;
-
- @DomName('WebGL2RenderingContext.RENDERBUFFER_ALPHA_SIZE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int RENDERBUFFER_ALPHA_SIZE = 0x8D53;
-
- @DomName('WebGL2RenderingContext.RENDERBUFFER_BINDING')
- @DocsEditable()
- @Experimental() // untriaged
- static const int RENDERBUFFER_BINDING = 0x8CA7;
-
- @DomName('WebGL2RenderingContext.RENDERBUFFER_BLUE_SIZE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int RENDERBUFFER_BLUE_SIZE = 0x8D52;
-
- @DomName('WebGL2RenderingContext.RENDERBUFFER_DEPTH_SIZE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int RENDERBUFFER_DEPTH_SIZE = 0x8D54;
-
- @DomName('WebGL2RenderingContext.RENDERBUFFER_GREEN_SIZE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int RENDERBUFFER_GREEN_SIZE = 0x8D51;
-
- @DomName('WebGL2RenderingContext.RENDERBUFFER_HEIGHT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int RENDERBUFFER_HEIGHT = 0x8D43;
-
- @DomName('WebGL2RenderingContext.RENDERBUFFER_INTERNAL_FORMAT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int RENDERBUFFER_INTERNAL_FORMAT = 0x8D44;
-
- @DomName('WebGL2RenderingContext.RENDERBUFFER_RED_SIZE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int RENDERBUFFER_RED_SIZE = 0x8D50;
-
- @DomName('WebGL2RenderingContext.RENDERBUFFER_STENCIL_SIZE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int RENDERBUFFER_STENCIL_SIZE = 0x8D55;
-
- @DomName('WebGL2RenderingContext.RENDERBUFFER_WIDTH')
- @DocsEditable()
- @Experimental() // untriaged
- static const int RENDERBUFFER_WIDTH = 0x8D42;
-
- @DomName('WebGL2RenderingContext.RENDERER')
- @DocsEditable()
- @Experimental() // untriaged
- static const int RENDERER = 0x1F01;
-
- @DomName('WebGL2RenderingContext.REPEAT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int REPEAT = 0x2901;
-
- @DomName('WebGL2RenderingContext.REPLACE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int REPLACE = 0x1E01;
-
- @DomName('WebGL2RenderingContext.RGB')
- @DocsEditable()
- @Experimental() // untriaged
- static const int RGB = 0x1907;
-
- @DomName('WebGL2RenderingContext.RGB565')
- @DocsEditable()
- @Experimental() // untriaged
- static const int RGB565 = 0x8D62;
-
- @DomName('WebGL2RenderingContext.RGB5_A1')
- @DocsEditable()
- @Experimental() // untriaged
- static const int RGB5_A1 = 0x8057;
-
- @DomName('WebGL2RenderingContext.RGBA')
- @DocsEditable()
- @Experimental() // untriaged
- static const int RGBA = 0x1908;
-
- @DomName('WebGL2RenderingContext.RGBA4')
- @DocsEditable()
- @Experimental() // untriaged
- static const int RGBA4 = 0x8056;
-
- @DomName('WebGL2RenderingContext.SAMPLER_2D')
- @DocsEditable()
- @Experimental() // untriaged
- static const int SAMPLER_2D = 0x8B5E;
-
- @DomName('WebGL2RenderingContext.SAMPLER_CUBE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int SAMPLER_CUBE = 0x8B60;
-
- @DomName('WebGL2RenderingContext.SAMPLES')
- @DocsEditable()
- @Experimental() // untriaged
- static const int SAMPLES = 0x80A9;
-
- @DomName('WebGL2RenderingContext.SAMPLE_ALPHA_TO_COVERAGE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int SAMPLE_ALPHA_TO_COVERAGE = 0x809E;
-
- @DomName('WebGL2RenderingContext.SAMPLE_BUFFERS')
- @DocsEditable()
- @Experimental() // untriaged
- static const int SAMPLE_BUFFERS = 0x80A8;
-
- @DomName('WebGL2RenderingContext.SAMPLE_COVERAGE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int SAMPLE_COVERAGE = 0x80A0;
-
- @DomName('WebGL2RenderingContext.SAMPLE_COVERAGE_INVERT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int SAMPLE_COVERAGE_INVERT = 0x80AB;
-
- @DomName('WebGL2RenderingContext.SAMPLE_COVERAGE_VALUE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int SAMPLE_COVERAGE_VALUE = 0x80AA;
-
- @DomName('WebGL2RenderingContext.SCISSOR_BOX')
- @DocsEditable()
- @Experimental() // untriaged
- static const int SCISSOR_BOX = 0x0C10;
-
- @DomName('WebGL2RenderingContext.SCISSOR_TEST')
- @DocsEditable()
- @Experimental() // untriaged
- static const int SCISSOR_TEST = 0x0C11;
-
- @DomName('WebGL2RenderingContext.SHADER_TYPE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int SHADER_TYPE = 0x8B4F;
-
- @DomName('WebGL2RenderingContext.SHADING_LANGUAGE_VERSION')
- @DocsEditable()
- @Experimental() // untriaged
- static const int SHADING_LANGUAGE_VERSION = 0x8B8C;
-
- @DomName('WebGL2RenderingContext.SHORT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int SHORT = 0x1402;
-
- @DomName('WebGL2RenderingContext.SRC_ALPHA')
- @DocsEditable()
- @Experimental() // untriaged
- static const int SRC_ALPHA = 0x0302;
-
- @DomName('WebGL2RenderingContext.SRC_ALPHA_SATURATE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int SRC_ALPHA_SATURATE = 0x0308;
-
- @DomName('WebGL2RenderingContext.SRC_COLOR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int SRC_COLOR = 0x0300;
-
- @DomName('WebGL2RenderingContext.STATIC_DRAW')
- @DocsEditable()
- @Experimental() // untriaged
- static const int STATIC_DRAW = 0x88E4;
-
- @DomName('WebGL2RenderingContext.STENCIL_ATTACHMENT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int STENCIL_ATTACHMENT = 0x8D20;
-
- @DomName('WebGL2RenderingContext.STENCIL_BACK_FAIL')
- @DocsEditable()
- @Experimental() // untriaged
- static const int STENCIL_BACK_FAIL = 0x8801;
-
- @DomName('WebGL2RenderingContext.STENCIL_BACK_FUNC')
- @DocsEditable()
- @Experimental() // untriaged
- static const int STENCIL_BACK_FUNC = 0x8800;
-
- @DomName('WebGL2RenderingContext.STENCIL_BACK_PASS_DEPTH_FAIL')
- @DocsEditable()
- @Experimental() // untriaged
- static const int STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802;
-
- @DomName('WebGL2RenderingContext.STENCIL_BACK_PASS_DEPTH_PASS')
- @DocsEditable()
- @Experimental() // untriaged
- static const int STENCIL_BACK_PASS_DEPTH_PASS = 0x8803;
-
- @DomName('WebGL2RenderingContext.STENCIL_BACK_REF')
- @DocsEditable()
- @Experimental() // untriaged
- static const int STENCIL_BACK_REF = 0x8CA3;
-
- @DomName('WebGL2RenderingContext.STENCIL_BACK_VALUE_MASK')
- @DocsEditable()
- @Experimental() // untriaged
- static const int STENCIL_BACK_VALUE_MASK = 0x8CA4;
-
- @DomName('WebGL2RenderingContext.STENCIL_BACK_WRITEMASK')
- @DocsEditable()
- @Experimental() // untriaged
- static const int STENCIL_BACK_WRITEMASK = 0x8CA5;
-
- @DomName('WebGL2RenderingContext.STENCIL_BITS')
- @DocsEditable()
- @Experimental() // untriaged
- static const int STENCIL_BITS = 0x0D57;
-
- @DomName('WebGL2RenderingContext.STENCIL_BUFFER_BIT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int STENCIL_BUFFER_BIT = 0x00000400;
-
- @DomName('WebGL2RenderingContext.STENCIL_CLEAR_VALUE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int STENCIL_CLEAR_VALUE = 0x0B91;
-
- @DomName('WebGL2RenderingContext.STENCIL_FAIL')
- @DocsEditable()
- @Experimental() // untriaged
- static const int STENCIL_FAIL = 0x0B94;
-
- @DomName('WebGL2RenderingContext.STENCIL_FUNC')
- @DocsEditable()
- @Experimental() // untriaged
- static const int STENCIL_FUNC = 0x0B92;
-
- @DomName('WebGL2RenderingContext.STENCIL_INDEX')
- @DocsEditable()
- @Experimental() // untriaged
- static const int STENCIL_INDEX = 0x1901;
-
- @DomName('WebGL2RenderingContext.STENCIL_INDEX8')
- @DocsEditable()
- @Experimental() // untriaged
- static const int STENCIL_INDEX8 = 0x8D48;
-
- @DomName('WebGL2RenderingContext.STENCIL_PASS_DEPTH_FAIL')
- @DocsEditable()
- @Experimental() // untriaged
- static const int STENCIL_PASS_DEPTH_FAIL = 0x0B95;
-
- @DomName('WebGL2RenderingContext.STENCIL_PASS_DEPTH_PASS')
- @DocsEditable()
- @Experimental() // untriaged
- static const int STENCIL_PASS_DEPTH_PASS = 0x0B96;
-
- @DomName('WebGL2RenderingContext.STENCIL_REF')
- @DocsEditable()
- @Experimental() // untriaged
- static const int STENCIL_REF = 0x0B97;
-
- @DomName('WebGL2RenderingContext.STENCIL_TEST')
- @DocsEditable()
- @Experimental() // untriaged
- static const int STENCIL_TEST = 0x0B90;
-
- @DomName('WebGL2RenderingContext.STENCIL_VALUE_MASK')
- @DocsEditable()
- @Experimental() // untriaged
- static const int STENCIL_VALUE_MASK = 0x0B93;
-
- @DomName('WebGL2RenderingContext.STENCIL_WRITEMASK')
- @DocsEditable()
- @Experimental() // untriaged
- static const int STENCIL_WRITEMASK = 0x0B98;
-
- @DomName('WebGL2RenderingContext.STREAM_DRAW')
- @DocsEditable()
- @Experimental() // untriaged
- static const int STREAM_DRAW = 0x88E0;
-
- @DomName('WebGL2RenderingContext.SUBPIXEL_BITS')
- @DocsEditable()
- @Experimental() // untriaged
- static const int SUBPIXEL_BITS = 0x0D50;
-
- @DomName('WebGL2RenderingContext.TEXTURE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE = 0x1702;
-
- @DomName('WebGL2RenderingContext.TEXTURE0')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE0 = 0x84C0;
-
- @DomName('WebGL2RenderingContext.TEXTURE1')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE1 = 0x84C1;
-
- @DomName('WebGL2RenderingContext.TEXTURE10')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE10 = 0x84CA;
-
- @DomName('WebGL2RenderingContext.TEXTURE11')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE11 = 0x84CB;
-
- @DomName('WebGL2RenderingContext.TEXTURE12')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE12 = 0x84CC;
-
- @DomName('WebGL2RenderingContext.TEXTURE13')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE13 = 0x84CD;
-
- @DomName('WebGL2RenderingContext.TEXTURE14')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE14 = 0x84CE;
-
- @DomName('WebGL2RenderingContext.TEXTURE15')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE15 = 0x84CF;
-
- @DomName('WebGL2RenderingContext.TEXTURE16')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE16 = 0x84D0;
-
- @DomName('WebGL2RenderingContext.TEXTURE17')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE17 = 0x84D1;
-
- @DomName('WebGL2RenderingContext.TEXTURE18')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE18 = 0x84D2;
-
- @DomName('WebGL2RenderingContext.TEXTURE19')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE19 = 0x84D3;
-
- @DomName('WebGL2RenderingContext.TEXTURE2')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE2 = 0x84C2;
-
- @DomName('WebGL2RenderingContext.TEXTURE20')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE20 = 0x84D4;
-
- @DomName('WebGL2RenderingContext.TEXTURE21')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE21 = 0x84D5;
-
- @DomName('WebGL2RenderingContext.TEXTURE22')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE22 = 0x84D6;
-
- @DomName('WebGL2RenderingContext.TEXTURE23')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE23 = 0x84D7;
-
- @DomName('WebGL2RenderingContext.TEXTURE24')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE24 = 0x84D8;
-
- @DomName('WebGL2RenderingContext.TEXTURE25')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE25 = 0x84D9;
-
- @DomName('WebGL2RenderingContext.TEXTURE26')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE26 = 0x84DA;
-
- @DomName('WebGL2RenderingContext.TEXTURE27')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE27 = 0x84DB;
-
- @DomName('WebGL2RenderingContext.TEXTURE28')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE28 = 0x84DC;
-
- @DomName('WebGL2RenderingContext.TEXTURE29')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE29 = 0x84DD;
-
- @DomName('WebGL2RenderingContext.TEXTURE3')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE3 = 0x84C3;
-
- @DomName('WebGL2RenderingContext.TEXTURE30')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE30 = 0x84DE;
-
- @DomName('WebGL2RenderingContext.TEXTURE31')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE31 = 0x84DF;
-
- @DomName('WebGL2RenderingContext.TEXTURE4')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE4 = 0x84C4;
-
- @DomName('WebGL2RenderingContext.TEXTURE5')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE5 = 0x84C5;
-
- @DomName('WebGL2RenderingContext.TEXTURE6')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE6 = 0x84C6;
-
- @DomName('WebGL2RenderingContext.TEXTURE7')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE7 = 0x84C7;
-
- @DomName('WebGL2RenderingContext.TEXTURE8')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE8 = 0x84C8;
-
- @DomName('WebGL2RenderingContext.TEXTURE9')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE9 = 0x84C9;
-
- @DomName('WebGL2RenderingContext.TEXTURE_2D')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE_2D = 0x0DE1;
-
- @DomName('WebGL2RenderingContext.TEXTURE_BINDING_2D')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE_BINDING_2D = 0x8069;
-
- @DomName('WebGL2RenderingContext.TEXTURE_BINDING_CUBE_MAP')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE_BINDING_CUBE_MAP = 0x8514;
-
- @DomName('WebGL2RenderingContext.TEXTURE_CUBE_MAP')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE_CUBE_MAP = 0x8513;
-
- @DomName('WebGL2RenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_X')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516;
-
- @DomName('WebGL2RenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_Y')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518;
-
- @DomName('WebGL2RenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_Z')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A;
-
- @DomName('WebGL2RenderingContext.TEXTURE_CUBE_MAP_POSITIVE_X')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515;
-
- @DomName('WebGL2RenderingContext.TEXTURE_CUBE_MAP_POSITIVE_Y')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517;
-
- @DomName('WebGL2RenderingContext.TEXTURE_CUBE_MAP_POSITIVE_Z')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519;
-
- @DomName('WebGL2RenderingContext.TEXTURE_MAG_FILTER')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE_MAG_FILTER = 0x2800;
-
- @DomName('WebGL2RenderingContext.TEXTURE_MIN_FILTER')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE_MIN_FILTER = 0x2801;
-
- @DomName('WebGL2RenderingContext.TEXTURE_WRAP_S')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE_WRAP_S = 0x2802;
-
- @DomName('WebGL2RenderingContext.TEXTURE_WRAP_T')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TEXTURE_WRAP_T = 0x2803;
-
- @DomName('WebGL2RenderingContext.TRIANGLES')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TRIANGLES = 0x0004;
-
- @DomName('WebGL2RenderingContext.TRIANGLE_FAN')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TRIANGLE_FAN = 0x0006;
-
- @DomName('WebGL2RenderingContext.TRIANGLE_STRIP')
- @DocsEditable()
- @Experimental() // untriaged
- static const int TRIANGLE_STRIP = 0x0005;
-
- @DomName('WebGL2RenderingContext.UNPACK_ALIGNMENT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int UNPACK_ALIGNMENT = 0x0CF5;
-
- @DomName('WebGL2RenderingContext.UNPACK_COLORSPACE_CONVERSION_WEBGL')
- @DocsEditable()
- @Experimental() // untriaged
- static const int UNPACK_COLORSPACE_CONVERSION_WEBGL = 0x9243;
-
- @DomName('WebGL2RenderingContext.UNPACK_FLIP_Y_WEBGL')
- @DocsEditable()
- @Experimental() // untriaged
- static const int UNPACK_FLIP_Y_WEBGL = 0x9240;
-
- @DomName('WebGL2RenderingContext.UNPACK_PREMULTIPLY_ALPHA_WEBGL')
- @DocsEditable()
- @Experimental() // untriaged
- static const int UNPACK_PREMULTIPLY_ALPHA_WEBGL = 0x9241;
-
- @DomName('WebGL2RenderingContext.UNSIGNED_BYTE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int UNSIGNED_BYTE = 0x1401;
-
- @DomName('WebGL2RenderingContext.UNSIGNED_INT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int UNSIGNED_INT = 0x1405;
-
- @DomName('WebGL2RenderingContext.UNSIGNED_SHORT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int UNSIGNED_SHORT = 0x1403;
-
- @DomName('WebGL2RenderingContext.UNSIGNED_SHORT_4_4_4_4')
- @DocsEditable()
- @Experimental() // untriaged
- static const int UNSIGNED_SHORT_4_4_4_4 = 0x8033;
-
- @DomName('WebGL2RenderingContext.UNSIGNED_SHORT_5_5_5_1')
- @DocsEditable()
- @Experimental() // untriaged
- static const int UNSIGNED_SHORT_5_5_5_1 = 0x8034;
-
- @DomName('WebGL2RenderingContext.UNSIGNED_SHORT_5_6_5')
- @DocsEditable()
- @Experimental() // untriaged
- static const int UNSIGNED_SHORT_5_6_5 = 0x8363;
-
- @DomName('WebGL2RenderingContext.VALIDATE_STATUS')
- @DocsEditable()
- @Experimental() // untriaged
- static const int VALIDATE_STATUS = 0x8B83;
-
- @DomName('WebGL2RenderingContext.VENDOR')
- @DocsEditable()
- @Experimental() // untriaged
- static const int VENDOR = 0x1F00;
-
- @DomName('WebGL2RenderingContext.VERSION')
- @DocsEditable()
- @Experimental() // untriaged
- static const int VERSION = 0x1F02;
-
- @DomName('WebGL2RenderingContext.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING')
- @DocsEditable()
- @Experimental() // untriaged
- static const int VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F;
-
- @DomName('WebGL2RenderingContext.VERTEX_ATTRIB_ARRAY_ENABLED')
- @DocsEditable()
- @Experimental() // untriaged
- static const int VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622;
-
- @DomName('WebGL2RenderingContext.VERTEX_ATTRIB_ARRAY_NORMALIZED')
- @DocsEditable()
- @Experimental() // untriaged
- static const int VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A;
-
- @DomName('WebGL2RenderingContext.VERTEX_ATTRIB_ARRAY_POINTER')
- @DocsEditable()
- @Experimental() // untriaged
- static const int VERTEX_ATTRIB_ARRAY_POINTER = 0x8645;
-
- @DomName('WebGL2RenderingContext.VERTEX_ATTRIB_ARRAY_SIZE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int VERTEX_ATTRIB_ARRAY_SIZE = 0x8623;
-
- @DomName('WebGL2RenderingContext.VERTEX_ATTRIB_ARRAY_STRIDE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624;
-
- @DomName('WebGL2RenderingContext.VERTEX_ATTRIB_ARRAY_TYPE')
- @DocsEditable()
- @Experimental() // untriaged
- static const int VERTEX_ATTRIB_ARRAY_TYPE = 0x8625;
-
- @DomName('WebGL2RenderingContext.VERTEX_SHADER')
- @DocsEditable()
- @Experimental() // untriaged
- static const int VERTEX_SHADER = 0x8B31;
-
- @DomName('WebGL2RenderingContext.VIEWPORT')
- @DocsEditable()
- @Experimental() // untriaged
- static const int VIEWPORT = 0x0BA2;
-
- @DomName('WebGL2RenderingContext.ZERO')
- @DocsEditable()
- @Experimental() // untriaged
- static const int ZERO = 0;
-
- // From WebGL2RenderingContextBase
-
- @DomName('WebGL2RenderingContext.beginQuery')
- @DocsEditable()
- @Experimental() // untriaged
- void beginQuery(int target, Query query) native;
-
- @DomName('WebGL2RenderingContext.beginTransformFeedback')
- @DocsEditable()
- @Experimental() // untriaged
- void beginTransformFeedback(int primitiveMode) native;
-
- @DomName('WebGL2RenderingContext.bindBufferBase')
- @DocsEditable()
- @Experimental() // untriaged
- void bindBufferBase(int target, int index, Buffer buffer) native;
-
- @DomName('WebGL2RenderingContext.bindBufferRange')
- @DocsEditable()
- @Experimental() // untriaged
- void bindBufferRange(
- int target, int index, Buffer buffer, int offset, int size) native;
-
- @DomName('WebGL2RenderingContext.bindSampler')
- @DocsEditable()
- @Experimental() // untriaged
- void bindSampler(int unit, Sampler sampler) native;
-
- @DomName('WebGL2RenderingContext.bindTransformFeedback')
- @DocsEditable()
- @Experimental() // untriaged
- void bindTransformFeedback(int target, TransformFeedback feedback) native;
-
- @DomName('WebGL2RenderingContext.bindVertexArray')
- @DocsEditable()
- @Experimental() // untriaged
- void bindVertexArray(VertexArrayObject vertexArray) native;
-
- @DomName('WebGL2RenderingContext.blitFramebuffer')
- @DocsEditable()
- @Experimental() // untriaged
- void blitFramebuffer(int srcX0, int srcY0, int srcX1, int srcY1, int dstX0,
- int dstY0, int dstX1, int dstY1, int mask, int filter) native;
-
- @DomName('WebGL2RenderingContext.clearBufferfi')
- @DocsEditable()
- @Experimental() // untriaged
- void clearBufferfi(int buffer, int drawbuffer, num depth, int stencil) native;
-
- @DomName('WebGL2RenderingContext.clearBufferfv')
- @DocsEditable()
- @Experimental() // untriaged
- void clearBufferfv(int buffer, int drawbuffer, value) native;
-
- @DomName('WebGL2RenderingContext.clearBufferiv')
- @DocsEditable()
- @Experimental() // untriaged
- void clearBufferiv(int buffer, int drawbuffer, value) native;
-
- @DomName('WebGL2RenderingContext.clearBufferuiv')
- @DocsEditable()
- @Experimental() // untriaged
- void clearBufferuiv(int buffer, int drawbuffer, value) native;
-
- @DomName('WebGL2RenderingContext.clientWaitSync')
- @DocsEditable()
- @Experimental() // untriaged
- int clientWaitSync(Sync sync, int flags, int timeout) native;
-
- @DomName('WebGL2RenderingContext.compressedTexImage3D')
- @DocsEditable()
- @Experimental() // untriaged
- void compressedTexImage3D(int target, int level, int internalformat,
- int width, int height, int depth, int border, TypedData data) native;
-
- @DomName('WebGL2RenderingContext.compressedTexSubImage3D')
- @DocsEditable()
- @Experimental() // untriaged
- void compressedTexSubImage3D(
- int target,
- int level,
- int xoffset,
- int yoffset,
- int zoffset,
- int width,
- int height,
- int depth,
- int format,
- TypedData data) native;
-
- @DomName('WebGL2RenderingContext.copyBufferSubData')
- @DocsEditable()
- @Experimental() // untriaged
- void copyBufferSubData(int readTarget, int writeTarget, int readOffset,
- int writeOffset, int size) native;
-
- @DomName('WebGL2RenderingContext.copyTexSubImage3D')
- @DocsEditable()
- @Experimental() // untriaged
- void copyTexSubImage3D(int target, int level, int xoffset, int yoffset,
- int zoffset, int x, int y, int width, int height) native;
-
- @DomName('WebGL2RenderingContext.createQuery')
- @DocsEditable()
- @Experimental() // untriaged
- Query createQuery() native;
-
- @DomName('WebGL2RenderingContext.createSampler')
- @DocsEditable()
- @Experimental() // untriaged
- Sampler createSampler() native;
-
- @DomName('WebGL2RenderingContext.createTransformFeedback')
- @DocsEditable()
- @Experimental() // untriaged
- TransformFeedback createTransformFeedback() native;
-
- @DomName('WebGL2RenderingContext.createVertexArray')
- @DocsEditable()
- @Experimental() // untriaged
- VertexArrayObject createVertexArray() native;
-
- @DomName('WebGL2RenderingContext.deleteQuery')
- @DocsEditable()
- @Experimental() // untriaged
- void deleteQuery(Query query) native;
-
- @DomName('WebGL2RenderingContext.deleteSampler')
- @DocsEditable()
- @Experimental() // untriaged
- void deleteSampler(Sampler sampler) native;
-
- @DomName('WebGL2RenderingContext.deleteSync')
- @DocsEditable()
- @Experimental() // untriaged
- void deleteSync(Sync sync) native;
-
- @DomName('WebGL2RenderingContext.deleteTransformFeedback')
- @DocsEditable()
- @Experimental() // untriaged
- void deleteTransformFeedback(TransformFeedback feedback) native;
-
- @DomName('WebGL2RenderingContext.deleteVertexArray')
- @DocsEditable()
- @Experimental() // untriaged
- void deleteVertexArray(VertexArrayObject vertexArray) native;
-
- @DomName('WebGL2RenderingContext.drawArraysInstanced')
- @DocsEditable()
- @Experimental() // untriaged
- void drawArraysInstanced(int mode, int first, int count, int instanceCount)
- native;
-
- @DomName('WebGL2RenderingContext.drawBuffers')
- @DocsEditable()
- @Experimental() // untriaged
- void drawBuffers(List<int> buffers) native;
-
- @DomName('WebGL2RenderingContext.drawElementsInstanced')
- @DocsEditable()
- @Experimental() // untriaged
- void drawElementsInstanced(
- int mode, int count, int type, int offset, int instanceCount) native;
-
- @DomName('WebGL2RenderingContext.drawRangeElements')
- @DocsEditable()
- @Experimental() // untriaged
- void drawRangeElements(
- int mode, int start, int end, int count, int type, int offset) native;
-
- @DomName('WebGL2RenderingContext.endQuery')
- @DocsEditable()
- @Experimental() // untriaged
- void endQuery(int target) native;
-
- @DomName('WebGL2RenderingContext.endTransformFeedback')
- @DocsEditable()
- @Experimental() // untriaged
- void endTransformFeedback() native;
-
- @DomName('WebGL2RenderingContext.fenceSync')
- @DocsEditable()
- @Experimental() // untriaged
- Sync fenceSync(int condition, int flags) native;
-
- @DomName('WebGL2RenderingContext.framebufferTextureLayer')
- @DocsEditable()
- @Experimental() // untriaged
- void framebufferTextureLayer(
- int target, int attachment, Texture texture, int level, int layer) native;
-
- @DomName('WebGL2RenderingContext.getActiveUniformBlockName')
- @DocsEditable()
- @Experimental() // untriaged
- String getActiveUniformBlockName(Program program, int uniformBlockIndex)
- native;
-
- @DomName('WebGL2RenderingContext.getActiveUniformBlockParameter')
- @DocsEditable()
- @Experimental() // untriaged
- Object getActiveUniformBlockParameter(
- Program program, int uniformBlockIndex, int pname) native;
-
- @DomName('WebGL2RenderingContext.getActiveUniforms')
- @DocsEditable()
- @Experimental() // untriaged
- Object getActiveUniforms(Program program, List<int> uniformIndices, int pname)
- native;
-
- @DomName('WebGL2RenderingContext.getBufferSubData')
- @DocsEditable()
- @Experimental() // untriaged
- void getBufferSubData(int target, int offset, ByteBuffer returnedData) native;
-
- @DomName('WebGL2RenderingContext.getFragDataLocation')
- @DocsEditable()
- @Experimental() // untriaged
- int getFragDataLocation(Program program, String name) native;
-
- @DomName('WebGL2RenderingContext.getIndexedParameter')
- @DocsEditable()
- @Experimental() // untriaged
- Object getIndexedParameter(int target, int index) native;
-
- @DomName('WebGL2RenderingContext.getInternalformatParameter')
- @DocsEditable()
- @Experimental() // untriaged
- Object getInternalformatParameter(int target, int internalformat, int pname)
- native;
-
- @DomName('WebGL2RenderingContext.getQuery')
- @DocsEditable()
- @Experimental() // untriaged
- Query getQuery(int target, int pname) native;
-
- @DomName('WebGL2RenderingContext.getQueryParameter')
- @DocsEditable()
- @Experimental() // untriaged
- Object getQueryParameter(Query query, int pname) native;
-
- @DomName('WebGL2RenderingContext.getSamplerParameter')
- @DocsEditable()
- @Experimental() // untriaged
- Object getSamplerParameter(Sampler sampler, int pname) native;
-
- @DomName('WebGL2RenderingContext.getSyncParameter')
- @DocsEditable()
- @Experimental() // untriaged
- Object getSyncParameter(Sync sync, int pname) native;
-
- @DomName('WebGL2RenderingContext.getTransformFeedbackVarying')
- @DocsEditable()
- @Experimental() // untriaged
- ActiveInfo getTransformFeedbackVarying(Program program, int index) native;
-
- @DomName('WebGL2RenderingContext.getUniformBlockIndex')
- @DocsEditable()
- @Experimental() // untriaged
- int getUniformBlockIndex(Program program, String uniformBlockName) native;
-
- @DomName('WebGL2RenderingContext.getUniformIndices')
- @DocsEditable()
- @Experimental() // untriaged
- List<int> getUniformIndices(Program program, List<String> uniformNames) {
- List uniformNames_1 = convertDartToNative_StringArray(uniformNames);
- return _getUniformIndices_1(program, uniformNames_1);
- }
-
- @JSName('getUniformIndices')
- @DomName('WebGL2RenderingContext.getUniformIndices')
- @DocsEditable()
- @Experimental() // untriaged
- List<int> _getUniformIndices_1(Program program, List uniformNames) native;
-
- @DomName('WebGL2RenderingContext.invalidateFramebuffer')
- @DocsEditable()
- @Experimental() // untriaged
- void invalidateFramebuffer(int target, List<int> attachments) native;
-
- @DomName('WebGL2RenderingContext.invalidateSubFramebuffer')
- @DocsEditable()
- @Experimental() // untriaged
- void invalidateSubFramebuffer(int target, List<int> attachments, int x, int y,
- int width, int height) native;
-
- @DomName('WebGL2RenderingContext.isQuery')
- @DocsEditable()
- @Experimental() // untriaged
- bool isQuery(Query query) native;
-
- @DomName('WebGL2RenderingContext.isSampler')
- @DocsEditable()
- @Experimental() // untriaged
- bool isSampler(Sampler sampler) native;
-
- @DomName('WebGL2RenderingContext.isSync')
- @DocsEditable()
- @Experimental() // untriaged
- bool isSync(Sync sync) native;
-
- @DomName('WebGL2RenderingContext.isTransformFeedback')
- @DocsEditable()
- @Experimental() // untriaged
- bool isTransformFeedback(TransformFeedback feedback) native;
-
- @DomName('WebGL2RenderingContext.isVertexArray')
- @DocsEditable()
- @Experimental() // untriaged
- bool isVertexArray(VertexArrayObject vertexArray) native;
-
- @DomName('WebGL2RenderingContext.pauseTransformFeedback')
- @DocsEditable()
- @Experimental() // untriaged
- void pauseTransformFeedback() native;
-
- @DomName('WebGL2RenderingContext.readBuffer')
- @DocsEditable()
- @Experimental() // untriaged
- void readBuffer(int mode) native;
-
- @JSName('readPixels')
- @DomName('WebGL2RenderingContext.readPixels')
- @DocsEditable()
- @Experimental() // untriaged
- void readPixels2(int x, int y, int width, int height, int format, int type,
- int offset) native;
-
- @DomName('WebGL2RenderingContext.renderbufferStorageMultisample')
- @DocsEditable()
- @Experimental() // untriaged
- void renderbufferStorageMultisample(int target, int samples,
- int internalformat, int width, int height) native;
-
- @DomName('WebGL2RenderingContext.resumeTransformFeedback')
- @DocsEditable()
- @Experimental() // untriaged
- void resumeTransformFeedback() native;
-
- @DomName('WebGL2RenderingContext.samplerParameterf')
- @DocsEditable()
- @Experimental() // untriaged
- void samplerParameterf(Sampler sampler, int pname, num param) native;
-
- @DomName('WebGL2RenderingContext.samplerParameteri')
- @DocsEditable()
- @Experimental() // untriaged
- void samplerParameteri(Sampler sampler, int pname, int param) native;
-
- @JSName('texImage2D')
- @DomName('WebGL2RenderingContext.texImage2D')
- @DocsEditable()
- @Experimental() // untriaged
- void texImage2D2(int target, int level, int internalformat, int width,
- int height, int border, int format, int type, int offset) native;
-
- @DomName('WebGL2RenderingContext.texImage3D')
- @DocsEditable()
- @Experimental() // untriaged
- void texImage3D(
- int target,
- int level,
- int internalformat,
- int width,
- int height,
- int depth,
- int border,
- int format,
- int type,
- offset_OR_pixels) native;
-
- @DomName('WebGL2RenderingContext.texStorage2D')
- @DocsEditable()
- @Experimental() // untriaged
- void texStorage2D(
- int target, int levels, int internalformat, int width, int height) native;
-
- @DomName('WebGL2RenderingContext.texStorage3D')
- @DocsEditable()
- @Experimental() // untriaged
- void texStorage3D(int target, int levels, int internalformat, int width,
- int height, int depth) native;
-
- @DomName('WebGL2RenderingContext.texSubImage3D')
- @DocsEditable()
- @Experimental() // untriaged
- void texSubImage3D(
- int target,
- int level,
- int xoffset,
- int yoffset,
- int zoffset,
- int format_OR_width,
- int height_OR_type,
- bitmap_OR_canvas_OR_data_OR_depth_OR_image_OR_video,
- [int format,
- int type,
- TypedData pixels]) {
- if (type != null &&
- format != null &&
- (bitmap_OR_canvas_OR_data_OR_depth_OR_image_OR_video is int)) {
- _texSubImage3D_1(
- target,
- level,
- xoffset,
- yoffset,
- zoffset,
- format_OR_width,
- height_OR_type,
- bitmap_OR_canvas_OR_data_OR_depth_OR_image_OR_video,
- format,
- type,
- pixels);
- return;
- }
- if ((bitmap_OR_canvas_OR_data_OR_depth_OR_image_OR_video is ImageData ||
- bitmap_OR_canvas_OR_data_OR_depth_OR_image_OR_video == null) &&
- format == null &&
- type == null &&
- pixels == null) {
- var data_1 = convertDartToNative_ImageData(
- bitmap_OR_canvas_OR_data_OR_depth_OR_image_OR_video);
- _texSubImage3D_2(target, level, xoffset, yoffset, zoffset,
- format_OR_width, height_OR_type, data_1);
- return;
- }
- if ((bitmap_OR_canvas_OR_data_OR_depth_OR_image_OR_video is ImageElement ||
- bitmap_OR_canvas_OR_data_OR_depth_OR_image_OR_video == null) &&
- format == null &&
- type == null &&
- pixels == null) {
- _texSubImage3D_3(
- target,
- level,
- xoffset,
- yoffset,
- zoffset,
- format_OR_width,
- height_OR_type,
- bitmap_OR_canvas_OR_data_OR_depth_OR_image_OR_video);
- return;
- }
- if ((bitmap_OR_canvas_OR_data_OR_depth_OR_image_OR_video is CanvasElement ||
- bitmap_OR_canvas_OR_data_OR_depth_OR_image_OR_video == null) &&
- format == null &&
- type == null &&
- pixels == null) {
- _texSubImage3D_4(
- target,
- level,
- xoffset,
- yoffset,
- zoffset,
- format_OR_width,
- height_OR_type,
- bitmap_OR_canvas_OR_data_OR_depth_OR_image_OR_video);
- return;
- }
- if ((bitmap_OR_canvas_OR_data_OR_depth_OR_image_OR_video is VideoElement ||
- bitmap_OR_canvas_OR_data_OR_depth_OR_image_OR_video == null) &&
- format == null &&
- type == null &&
- pixels == null) {
- _texSubImage3D_5(
- target,
- level,
- xoffset,
- yoffset,
- zoffset,
- format_OR_width,
- height_OR_type,
- bitmap_OR_canvas_OR_data_OR_depth_OR_image_OR_video);
- return;
- }
- if ((bitmap_OR_canvas_OR_data_OR_depth_OR_image_OR_video is ImageBitmap ||
- bitmap_OR_canvas_OR_data_OR_depth_OR_image_OR_video == null) &&
- format == null &&
- type == null &&
- pixels == null) {
- _texSubImage3D_6(
- target,
- level,
- xoffset,
- yoffset,
- zoffset,
- format_OR_width,
- height_OR_type,
- bitmap_OR_canvas_OR_data_OR_depth_OR_image_OR_video);
- return;
- }
- throw new ArgumentError("Incorrect number or type of arguments");
- }
-
- @JSName('texSubImage3D')
- @DomName('WebGL2RenderingContext.texSubImage3D')
- @DocsEditable()
- @Experimental() // untriaged
- void _texSubImage3D_1(target, level, xoffset, yoffset, zoffset, width, height,
- int depth, format, type, TypedData pixels) native;
- @JSName('texSubImage3D')
- @DomName('WebGL2RenderingContext.texSubImage3D')
- @DocsEditable()
- @Experimental() // untriaged
- void _texSubImage3D_2(
- target, level, xoffset, yoffset, zoffset, format, type, data) native;
- @JSName('texSubImage3D')
- @DomName('WebGL2RenderingContext.texSubImage3D')
- @DocsEditable()
- @Experimental() // untriaged
- void _texSubImage3D_3(target, level, xoffset, yoffset, zoffset, format, type,
- ImageElement image) native;
- @JSName('texSubImage3D')
- @DomName('WebGL2RenderingContext.texSubImage3D')
- @DocsEditable()
- @Experimental() // untriaged
- void _texSubImage3D_4(target, level, xoffset, yoffset, zoffset, format, type,
- CanvasElement canvas) native;
- @JSName('texSubImage3D')
- @DomName('WebGL2RenderingContext.texSubImage3D')
- @DocsEditable()
- @Experimental() // untriaged
- void _texSubImage3D_5(target, level, xoffset, yoffset, zoffset, format, type,
- VideoElement video) native;
- @JSName('texSubImage3D')
- @DomName('WebGL2RenderingContext.texSubImage3D')
- @DocsEditable()
- @Experimental() // untriaged
- void _texSubImage3D_6(target, level, xoffset, yoffset, zoffset, format, type,
- ImageBitmap bitmap) native;
-
- @DomName('WebGL2RenderingContext.transformFeedbackVaryings')
- @DocsEditable()
- @Experimental() // untriaged
- void transformFeedbackVaryings(
- Program program, List<String> varyings, int bufferMode) {
- List varyings_1 = convertDartToNative_StringArray(varyings);
- _transformFeedbackVaryings_1(program, varyings_1, bufferMode);
- return;
- }
-
- @JSName('transformFeedbackVaryings')
- @DomName('WebGL2RenderingContext.transformFeedbackVaryings')
- @DocsEditable()
- @Experimental() // untriaged
- void _transformFeedbackVaryings_1(Program program, List varyings, bufferMode)
- native;
-
- @DomName('WebGL2RenderingContext.uniform1ui')
- @DocsEditable()
- @Experimental() // untriaged
- void uniform1ui(UniformLocation location, int v0) native;
-
- @DomName('WebGL2RenderingContext.uniform1uiv')
- @DocsEditable()
- @Experimental() // untriaged
- void uniform1uiv(UniformLocation location, v) native;
-
- @DomName('WebGL2RenderingContext.uniform2ui')
- @DocsEditable()
- @Experimental() // untriaged
- void uniform2ui(UniformLocation location, int v0, int v1) native;
-
- @DomName('WebGL2RenderingContext.uniform2uiv')
- @DocsEditable()
- @Experimental() // untriaged
- void uniform2uiv(UniformLocation location, v) native;
-
- @DomName('WebGL2RenderingContext.uniform3ui')
- @DocsEditable()
- @Experimental() // untriaged
- void uniform3ui(UniformLocation location, int v0, int v1, int v2) native;
-
- @DomName('WebGL2RenderingContext.uniform3uiv')
- @DocsEditable()
- @Experimental() // untriaged
- void uniform3uiv(UniformLocation location, v) native;
-
- @DomName('WebGL2RenderingContext.uniform4ui')
- @DocsEditable()
- @Experimental() // untriaged
- void uniform4ui(UniformLocation location, int v0, int v1, int v2, int v3)
- native;
-
- @DomName('WebGL2RenderingContext.uniform4uiv')
- @DocsEditable()
- @Experimental() // untriaged
- void uniform4uiv(UniformLocation location, v) native;
-
- @DomName('WebGL2RenderingContext.uniformBlockBinding')
- @DocsEditable()
- @Experimental() // untriaged
- void uniformBlockBinding(
- Program program, int uniformBlockIndex, int uniformBlockBinding) native;
-
- @DomName('WebGL2RenderingContext.uniformMatrix2x3fv')
- @DocsEditable()
- @Experimental() // untriaged
- void uniformMatrix2x3fv(UniformLocation location, bool transpose, value)
- native;
-
- @DomName('WebGL2RenderingContext.uniformMatrix2x4fv')
- @DocsEditable()
- @Experimental() // untriaged
- void uniformMatrix2x4fv(UniformLocation location, bool transpose, value)
- native;
-
- @DomName('WebGL2RenderingContext.uniformMatrix3x2fv')
- @DocsEditable()
- @Experimental() // untriaged
- void uniformMatrix3x2fv(UniformLocation location, bool transpose, value)
- native;
-
- @DomName('WebGL2RenderingContext.uniformMatrix3x4fv')
- @DocsEditable()
- @Experimental() // untriaged
- void uniformMatrix3x4fv(UniformLocation location, bool transpose, value)
- native;
-
- @DomName('WebGL2RenderingContext.uniformMatrix4x2fv')
- @DocsEditable()
- @Experimental() // untriaged
- void uniformMatrix4x2fv(UniformLocation location, bool transpose, value)
- native;
-
- @DomName('WebGL2RenderingContext.uniformMatrix4x3fv')
- @DocsEditable()
- @Experimental() // untriaged
- void uniformMatrix4x3fv(UniformLocation location, bool transpose, value)
- native;
-
- @DomName('WebGL2RenderingContext.vertexAttribDivisor')
- @DocsEditable()
- @Experimental() // untriaged
- void vertexAttribDivisor(int index, int divisor) native;
-
- @DomName('WebGL2RenderingContext.vertexAttribI4i')
- @DocsEditable()
- @Experimental() // untriaged
- void vertexAttribI4i(int index, int x, int y, int z, int w) native;
-
- @DomName('WebGL2RenderingContext.vertexAttribI4iv')
- @DocsEditable()
- @Experimental() // untriaged
- void vertexAttribI4iv(int index, v) native;
-
- @DomName('WebGL2RenderingContext.vertexAttribI4ui')
- @DocsEditable()
- @Experimental() // untriaged
- void vertexAttribI4ui(int index, int x, int y, int z, int w) native;
-
- @DomName('WebGL2RenderingContext.vertexAttribI4uiv')
- @DocsEditable()
- @Experimental() // untriaged
- void vertexAttribI4uiv(int index, v) native;
-
- @DomName('WebGL2RenderingContext.vertexAttribIPointer')
- @DocsEditable()
- @Experimental() // untriaged
- void vertexAttribIPointer(
- int index, int size, int type, int stride, int offset) native;
-
- @DomName('WebGL2RenderingContext.waitSync')
- @DocsEditable()
- @Experimental() // untriaged
- void waitSync(Sync sync, int flags, int timeout) native;
-
- // From WebGLRenderingContextBase
-
- @DomName('WebGL2RenderingContext.canvas')
- @DocsEditable()
- @Experimental() // untriaged
- final CanvasElement canvas;
-
- @DomName('WebGL2RenderingContext.drawingBufferHeight')
- @DocsEditable()
- @Experimental() // untriaged
- final int drawingBufferHeight;
-
- @DomName('WebGL2RenderingContext.drawingBufferWidth')
- @DocsEditable()
- @Experimental() // untriaged
- final int drawingBufferWidth;
-
- @DomName('WebGL2RenderingContext.activeTexture')
- @DocsEditable()
- @Experimental() // untriaged
- void activeTexture(int texture) native;
-
- @DomName('WebGL2RenderingContext.attachShader')
- @DocsEditable()
- @Experimental() // untriaged
- void attachShader(Program program, Shader shader) native;
-
- @DomName('WebGL2RenderingContext.bindAttribLocation')
- @DocsEditable()
- @Experimental() // untriaged
- void bindAttribLocation(Program program, int index, String name) native;
-
- @DomName('WebGL2RenderingContext.bindBuffer')
- @DocsEditable()
- @Experimental() // untriaged
- void bindBuffer(int target, Buffer buffer) native;
-
- @DomName('WebGL2RenderingContext.bindFramebuffer')
- @DocsEditable()
- @Experimental() // untriaged
- void bindFramebuffer(int target, Framebuffer framebuffer) native;
-
- @DomName('WebGL2RenderingContext.bindRenderbuffer')
- @DocsEditable()
- @Experimental() // untriaged
- void bindRenderbuffer(int target, Renderbuffer renderbuffer) native;
-
- @DomName('WebGL2RenderingContext.bindTexture')
- @DocsEditable()
- @Experimental() // untriaged
- void bindTexture(int target, Texture texture) native;
-
- @DomName('WebGL2RenderingContext.blendColor')
- @DocsEditable()
- @Experimental() // untriaged
- void blendColor(num red, num green, num blue, num alpha) native;
-
- @DomName('WebGL2RenderingContext.blendEquation')
- @DocsEditable()
- @Experimental() // untriaged
- void blendEquation(int mode) native;
-
- @DomName('WebGL2RenderingContext.blendEquationSeparate')
- @DocsEditable()
- @Experimental() // untriaged
- void blendEquationSeparate(int modeRGB, int modeAlpha) native;
-
- @DomName('WebGL2RenderingContext.blendFunc')
- @DocsEditable()
- @Experimental() // untriaged
- void blendFunc(int sfactor, int dfactor) native;
-
- @DomName('WebGL2RenderingContext.blendFuncSeparate')
- @DocsEditable()
- @Experimental() // untriaged
- void blendFuncSeparate(int srcRGB, int dstRGB, int srcAlpha, int dstAlpha)
- native;
-
- @DomName('WebGL2RenderingContext.bufferData')
- @DocsEditable()
- @Experimental() // untriaged
- void bufferData(int target, data_OR_size, int usage) native;
-
- @DomName('WebGL2RenderingContext.bufferSubData')
- @DocsEditable()
- @Experimental() // untriaged
- void bufferSubData(int target, int offset, data) native;
-
- @DomName('WebGL2RenderingContext.checkFramebufferStatus')
- @DocsEditable()
- @Experimental() // untriaged
- int checkFramebufferStatus(int target) native;
-
- @DomName('WebGL2RenderingContext.clear')
- @DocsEditable()
- @Experimental() // untriaged
- void clear(int mask) native;
-
- @DomName('WebGL2RenderingContext.clearColor')
- @DocsEditable()
- @Experimental() // untriaged
- void clearColor(num red, num green, num blue, num alpha) native;
-
- @DomName('WebGL2RenderingContext.clearDepth')
- @DocsEditable()
- @Experimental() // untriaged
- void clearDepth(num depth) native;
-
- @DomName('WebGL2RenderingContext.clearStencil')
- @DocsEditable()
- @Experimental() // untriaged
- void clearStencil(int s) native;
-
- @DomName('WebGL2RenderingContext.colorMask')
- @DocsEditable()
- @Experimental() // untriaged
- void colorMask(bool red, bool green, bool blue, bool alpha) native;
-
- @DomName('WebGL2RenderingContext.compileShader')
- @DocsEditable()
- @Experimental() // untriaged
- void compileShader(Shader shader) native;
-
- @DomName('WebGL2RenderingContext.compressedTexImage2D')
- @DocsEditable()
- @Experimental() // untriaged
- void compressedTexImage2D(int target, int level, int internalformat,
- int width, int height, int border, TypedData data) native;
-
- @DomName('WebGL2RenderingContext.compressedTexSubImage2D')
- @DocsEditable()
- @Experimental() // untriaged
- void compressedTexSubImage2D(int target, int level, int xoffset, int yoffset,
- int width, int height, int format, TypedData data) native;
-
- @DomName('WebGL2RenderingContext.copyTexImage2D')
- @DocsEditable()
- @Experimental() // untriaged
- void copyTexImage2D(int target, int level, int internalformat, int x, int y,
- int width, int height, int border) native;
-
- @DomName('WebGL2RenderingContext.copyTexSubImage2D')
- @DocsEditable()
- @Experimental() // untriaged
- void copyTexSubImage2D(int target, int level, int xoffset, int yoffset, int x,
- int y, int width, int height) native;
-
- @DomName('WebGL2RenderingContext.createBuffer')
- @DocsEditable()
- @Experimental() // untriaged
- Buffer createBuffer() native;
-
- @DomName('WebGL2RenderingContext.createFramebuffer')
- @DocsEditable()
- @Experimental() // untriaged
- Framebuffer createFramebuffer() native;
-
- @DomName('WebGL2RenderingContext.createProgram')
- @DocsEditable()
- @Experimental() // untriaged
- Program createProgram() native;
-
- @DomName('WebGL2RenderingContext.createRenderbuffer')
- @DocsEditable()
- @Experimental() // untriaged
- Renderbuffer createRenderbuffer() native;
-
- @DomName('WebGL2RenderingContext.createShader')
- @DocsEditable()
- @Experimental() // untriaged
- Shader createShader(int type) native;
-
- @DomName('WebGL2RenderingContext.createTexture')
- @DocsEditable()
- @Experimental() // untriaged
- Texture createTexture() native;
-
- @DomName('WebGL2RenderingContext.cullFace')
- @DocsEditable()
- @Experimental() // untriaged
- void cullFace(int mode) native;
-
- @DomName('WebGL2RenderingContext.deleteBuffer')
- @DocsEditable()
- @Experimental() // untriaged
- void deleteBuffer(Buffer buffer) native;
-
- @DomName('WebGL2RenderingContext.deleteFramebuffer')
- @DocsEditable()
- @Experimental() // untriaged
- void deleteFramebuffer(Framebuffer framebuffer) native;
-
- @DomName('WebGL2RenderingContext.deleteProgram')
- @DocsEditable()
- @Experimental() // untriaged
- void deleteProgram(Program program) native;
-
- @DomName('WebGL2RenderingContext.deleteRenderbuffer')
- @DocsEditable()
- @Experimental() // untriaged
- void deleteRenderbuffer(Renderbuffer renderbuffer) native;
-
- @DomName('WebGL2RenderingContext.deleteShader')
- @DocsEditable()
- @Experimental() // untriaged
- void deleteShader(Shader shader) native;
-
- @DomName('WebGL2RenderingContext.deleteTexture')
- @DocsEditable()
- @Experimental() // untriaged
- void deleteTexture(Texture texture) native;
-
- @DomName('WebGL2RenderingContext.depthFunc')
- @DocsEditable()
- @Experimental() // untriaged
- void depthFunc(int func) native;
-
- @DomName('WebGL2RenderingContext.depthMask')
- @DocsEditable()
- @Experimental() // untriaged
- void depthMask(bool flag) native;
-
- @DomName('WebGL2RenderingContext.depthRange')
- @DocsEditable()
- @Experimental() // untriaged
- void depthRange(num zNear, num zFar) native;
-
- @DomName('WebGL2RenderingContext.detachShader')
- @DocsEditable()
- @Experimental() // untriaged
- void detachShader(Program program, Shader shader) native;
-
- @DomName('WebGL2RenderingContext.disable')
- @DocsEditable()
- @Experimental() // untriaged
- void disable(int cap) native;
-
- @DomName('WebGL2RenderingContext.disableVertexAttribArray')
- @DocsEditable()
- @Experimental() // untriaged
- void disableVertexAttribArray(int index) native;
-
- @DomName('WebGL2RenderingContext.drawArrays')
- @DocsEditable()
- @Experimental() // untriaged
- void drawArrays(int mode, int first, int count) native;
-
- @DomName('WebGL2RenderingContext.drawElements')
- @DocsEditable()
- @Experimental() // untriaged
- void drawElements(int mode, int count, int type, int offset) native;
-
- @DomName('WebGL2RenderingContext.enable')
- @DocsEditable()
- @Experimental() // untriaged
- void enable(int cap) native;
-
- @DomName('WebGL2RenderingContext.enableVertexAttribArray')
- @DocsEditable()
- @Experimental() // untriaged
- void enableVertexAttribArray(int index) native;
-
- @DomName('WebGL2RenderingContext.finish')
- @DocsEditable()
- @Experimental() // untriaged
- void finish() native;
-
- @DomName('WebGL2RenderingContext.flush')
- @DocsEditable()
- @Experimental() // untriaged
- void flush() native;
-
- @DomName('WebGL2RenderingContext.framebufferRenderbuffer')
- @DocsEditable()
- @Experimental() // untriaged
- void framebufferRenderbuffer(int target, int attachment,
- int renderbuffertarget, Renderbuffer renderbuffer) native;
-
- @DomName('WebGL2RenderingContext.framebufferTexture2D')
- @DocsEditable()
- @Experimental() // untriaged
- void framebufferTexture2D(int target, int attachment, int textarget,
- Texture texture, int level) native;
-
- @DomName('WebGL2RenderingContext.frontFace')
- @DocsEditable()
- @Experimental() // untriaged
- void frontFace(int mode) native;
-
- @DomName('WebGL2RenderingContext.generateMipmap')
- @DocsEditable()
- @Experimental() // untriaged
- void generateMipmap(int target) native;
-
- @DomName('WebGL2RenderingContext.getActiveAttrib')
- @DocsEditable()
- @Experimental() // untriaged
- ActiveInfo getActiveAttrib(Program program, int index) native;
-
- @DomName('WebGL2RenderingContext.getActiveUniform')
- @DocsEditable()
- @Experimental() // untriaged
- ActiveInfo getActiveUniform(Program program, int index) native;
-
- @DomName('WebGL2RenderingContext.getAttachedShaders')
- @DocsEditable()
- @Experimental() // untriaged
- List<Shader> getAttachedShaders(Program program) native;
-
- @DomName('WebGL2RenderingContext.getAttribLocation')
- @DocsEditable()
- @Experimental() // untriaged
- int getAttribLocation(Program program, String name) native;
-
- @DomName('WebGL2RenderingContext.getBufferParameter')
- @DocsEditable()
- @Experimental() // untriaged
- Object getBufferParameter(int target, int pname) native;
-
- @DomName('WebGL2RenderingContext.getContextAttributes')
- @DocsEditable()
- @Experimental() // untriaged
- Map getContextAttributes() {
- return convertNativeToDart_Dictionary(_getContextAttributes_1());
- }
-
- @JSName('getContextAttributes')
- @DomName('WebGL2RenderingContext.getContextAttributes')
- @DocsEditable()
- @Experimental() // untriaged
- _getContextAttributes_1() native;
-
- @DomName('WebGL2RenderingContext.getError')
- @DocsEditable()
- @Experimental() // untriaged
- int getError() native;
-
- @DomName('WebGL2RenderingContext.getExtension')
- @DocsEditable()
- @Experimental() // untriaged
- Object getExtension(String name) native;
-
- @DomName('WebGL2RenderingContext.getFramebufferAttachmentParameter')
- @DocsEditable()
- @Experimental() // untriaged
- Object getFramebufferAttachmentParameter(
- int target, int attachment, int pname) native;
-
- @DomName('WebGL2RenderingContext.getParameter')
- @DocsEditable()
- @Experimental() // untriaged
- Object getParameter(int pname) native;
-
- @DomName('WebGL2RenderingContext.getProgramInfoLog')
- @DocsEditable()
- @Experimental() // untriaged
- String getProgramInfoLog(Program program) native;
-
- @DomName('WebGL2RenderingContext.getProgramParameter')
- @DocsEditable()
- @Experimental() // untriaged
- Object getProgramParameter(Program program, int pname) native;
-
- @DomName('WebGL2RenderingContext.getRenderbufferParameter')
- @DocsEditable()
- @Experimental() // untriaged
- Object getRenderbufferParameter(int target, int pname) native;
-
- @DomName('WebGL2RenderingContext.getShaderInfoLog')
- @DocsEditable()
- @Experimental() // untriaged
- String getShaderInfoLog(Shader shader) native;
-
- @DomName('WebGL2RenderingContext.getShaderParameter')
- @DocsEditable()
- @Experimental() // untriaged
- Object getShaderParameter(Shader shader, int pname) native;
-
- @DomName('WebGL2RenderingContext.getShaderPrecisionFormat')
- @DocsEditable()
- @Experimental() // untriaged
- ShaderPrecisionFormat getShaderPrecisionFormat(
- int shadertype, int precisiontype) native;
-
- @DomName('WebGL2RenderingContext.getShaderSource')
- @DocsEditable()
- @Experimental() // untriaged
- String getShaderSource(Shader shader) native;
-
- @DomName('WebGL2RenderingContext.getSupportedExtensions')
- @DocsEditable()
- @Experimental() // untriaged
- List<String> getSupportedExtensions() native;
-
- @DomName('WebGL2RenderingContext.getTexParameter')
- @DocsEditable()
- @Experimental() // untriaged
- Object getTexParameter(int target, int pname) native;
-
- @DomName('WebGL2RenderingContext.getUniform')
- @DocsEditable()
- @Experimental() // untriaged
- Object getUniform(Program program, UniformLocation location) native;
-
- @DomName('WebGL2RenderingContext.getUniformLocation')
- @DocsEditable()
- @Experimental() // untriaged
- UniformLocation getUniformLocation(Program program, String name) native;
-
- @DomName('WebGL2RenderingContext.getVertexAttrib')
- @DocsEditable()
- @Experimental() // untriaged
- Object getVertexAttrib(int index, int pname) native;
-
- @DomName('WebGL2RenderingContext.getVertexAttribOffset')
- @DocsEditable()
- @Experimental() // untriaged
- int getVertexAttribOffset(int index, int pname) native;
-
- @DomName('WebGL2RenderingContext.hint')
- @DocsEditable()
- @Experimental() // untriaged
- void hint(int target, int mode) native;
-
- @DomName('WebGL2RenderingContext.isBuffer')
- @DocsEditable()
- @Experimental() // untriaged
- bool isBuffer(Buffer buffer) native;
-
- @DomName('WebGL2RenderingContext.isContextLost')
- @DocsEditable()
- @Experimental() // untriaged
- bool isContextLost() native;
-
- @DomName('WebGL2RenderingContext.isEnabled')
- @DocsEditable()
- @Experimental() // untriaged
- bool isEnabled(int cap) native;
-
- @DomName('WebGL2RenderingContext.isFramebuffer')
- @DocsEditable()
- @Experimental() // untriaged
- bool isFramebuffer(Framebuffer framebuffer) native;
-
- @DomName('WebGL2RenderingContext.isProgram')
- @DocsEditable()
- @Experimental() // untriaged
- bool isProgram(Program program) native;
-
- @DomName('WebGL2RenderingContext.isRenderbuffer')
- @DocsEditable()
- @Experimental() // untriaged
- bool isRenderbuffer(Renderbuffer renderbuffer) native;
-
- @DomName('WebGL2RenderingContext.isShader')
- @DocsEditable()
- @Experimental() // untriaged
- bool isShader(Shader shader) native;
-
- @DomName('WebGL2RenderingContext.isTexture')
- @DocsEditable()
- @Experimental() // untriaged
- bool isTexture(Texture texture) native;
-
- @DomName('WebGL2RenderingContext.lineWidth')
- @DocsEditable()
- @Experimental() // untriaged
- void lineWidth(num width) native;
-
- @DomName('WebGL2RenderingContext.linkProgram')
- @DocsEditable()
- @Experimental() // untriaged
- void linkProgram(Program program) native;
-
- @DomName('WebGL2RenderingContext.pixelStorei')
- @DocsEditable()
- @Experimental() // untriaged
- void pixelStorei(int pname, int param) native;
-
- @DomName('WebGL2RenderingContext.polygonOffset')
- @DocsEditable()
- @Experimental() // untriaged
- void polygonOffset(num factor, num units) native;
-
- @DomName('WebGL2RenderingContext.readPixels')
- @DocsEditable()
- @Experimental() // untriaged
- void readPixels(int x, int y, int width, int height, int format, int type,
- TypedData pixels) native;
-
- @DomName('WebGL2RenderingContext.renderbufferStorage')
- @DocsEditable()
- @Experimental() // untriaged
- void renderbufferStorage(
- int target, int internalformat, int width, int height) native;
-
- @DomName('WebGL2RenderingContext.sampleCoverage')
- @DocsEditable()
- @Experimental() // untriaged
- void sampleCoverage(num value, bool invert) native;
-
- @DomName('WebGL2RenderingContext.scissor')
- @DocsEditable()
- @Experimental() // untriaged
- void scissor(int x, int y, int width, int height) native;
-
- @DomName('WebGL2RenderingContext.shaderSource')
- @DocsEditable()
- @Experimental() // untriaged
- void shaderSource(Shader shader, String string) native;
-
- @DomName('WebGL2RenderingContext.stencilFunc')
- @DocsEditable()
- @Experimental() // untriaged
- void stencilFunc(int func, int ref, int mask) native;
-
- @DomName('WebGL2RenderingContext.stencilFuncSeparate')
- @DocsEditable()
- @Experimental() // untriaged
- void stencilFuncSeparate(int face, int func, int ref, int mask) native;
-
- @DomName('WebGL2RenderingContext.stencilMask')
- @DocsEditable()
- @Experimental() // untriaged
- void stencilMask(int mask) native;
-
- @DomName('WebGL2RenderingContext.stencilMaskSeparate')
- @DocsEditable()
- @Experimental() // untriaged
- void stencilMaskSeparate(int face, int mask) native;
-
- @DomName('WebGL2RenderingContext.stencilOp')
- @DocsEditable()
- @Experimental() // untriaged
- void stencilOp(int fail, int zfail, int zpass) native;
-
- @DomName('WebGL2RenderingContext.stencilOpSeparate')
- @DocsEditable()
- @Experimental() // untriaged
- void stencilOpSeparate(int face, int fail, int zfail, int zpass) native;
-
- @DomName('WebGL2RenderingContext.texImage2D')
- @DocsEditable()
- @Experimental() // untriaged
- void texImage2D(
- int target,
- int level,
- int internalformat,
- int format_OR_width,
- int height_OR_type,
- bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video,
- [int format,
- int type,
- TypedData pixels]) {
- if (type != null &&
- format != null &&
- (bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video is int)) {
- _texImage2D_1(
- target,
- level,
- internalformat,
- format_OR_width,
- height_OR_type,
- bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video,
- format,
- type,
- pixels);
- return;
- }
- if ((bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video is ImageData ||
- bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video == null) &&
- format == null &&
- type == null &&
- pixels == null) {
- var pixels_1 = convertDartToNative_ImageData(
- bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video);
- _texImage2D_2(target, level, internalformat, format_OR_width,
- height_OR_type, pixels_1);
- return;
- }
- if ((bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video
- is ImageElement) &&
- format == null &&
- type == null &&
- pixels == null) {
- _texImage2D_3(
- target,
- level,
- internalformat,
- format_OR_width,
- height_OR_type,
- bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video);
- return;
- }
- if ((bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video
- is CanvasElement) &&
- format == null &&
- type == null &&
- pixels == null) {
- _texImage2D_4(
- target,
- level,
- internalformat,
- format_OR_width,
- height_OR_type,
- bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video);
- return;
- }
- if ((bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video
- is VideoElement) &&
- format == null &&
- type == null &&
- pixels == null) {
- _texImage2D_5(
- target,
- level,
- internalformat,
- format_OR_width,
- height_OR_type,
- bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video);
- return;
- }
- if ((bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video
- is ImageBitmap) &&
- format == null &&
- type == null &&
- pixels == null) {
- _texImage2D_6(
- target,
- level,
- internalformat,
- format_OR_width,
- height_OR_type,
- bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video);
- return;
- }
- throw new ArgumentError("Incorrect number or type of arguments");
- }
-
- @JSName('texImage2D')
- @DomName('WebGL2RenderingContext.texImage2D')
- @DocsEditable()
- @Experimental() // untriaged
- void _texImage2D_1(target, level, internalformat, width, height, int border,
- format, type, TypedData pixels) native;
- @JSName('texImage2D')
- @DomName('WebGL2RenderingContext.texImage2D')
- @DocsEditable()
- @Experimental() // untriaged
- void _texImage2D_2(target, level, internalformat, format, type, pixels)
- native;
- @JSName('texImage2D')
- @DomName('WebGL2RenderingContext.texImage2D')
- @DocsEditable()
- @Experimental() // untriaged
- void _texImage2D_3(
- target, level, internalformat, format, type, ImageElement image) native;
- @JSName('texImage2D')
- @DomName('WebGL2RenderingContext.texImage2D')
- @DocsEditable()
- @Experimental() // untriaged
- void _texImage2D_4(
- target, level, internalformat, format, type, CanvasElement canvas) native;
- @JSName('texImage2D')
- @DomName('WebGL2RenderingContext.texImage2D')
- @DocsEditable()
- @Experimental() // untriaged
- void _texImage2D_5(
- target, level, internalformat, format, type, VideoElement video) native;
- @JSName('texImage2D')
- @DomName('WebGL2RenderingContext.texImage2D')
- @DocsEditable()
- @Experimental() // untriaged
- void _texImage2D_6(
- target, level, internalformat, format, type, ImageBitmap bitmap) native;
-
- @DomName('WebGL2RenderingContext.texParameterf')
- @DocsEditable()
- @Experimental() // untriaged
- void texParameterf(int target, int pname, num param) native;
-
- @DomName('WebGL2RenderingContext.texParameteri')
- @DocsEditable()
- @Experimental() // untriaged
- void texParameteri(int target, int pname, int param) native;
-
- @DomName('WebGL2RenderingContext.texSubImage2D')
- @DocsEditable()
- @Experimental() // untriaged
- void texSubImage2D(
- int target,
- int level,
- int xoffset,
- int yoffset,
- int format_OR_width,
- int height_OR_type,
- bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video,
- [int type,
- TypedData pixels]) {
- if (type != null &&
- (bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video is int)) {
- _texSubImage2D_1(
- target,
- level,
- xoffset,
- yoffset,
- format_OR_width,
- height_OR_type,
- bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video,
- type,
- pixels);
- return;
- }
- if ((bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video is ImageData ||
- bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video == null) &&
- type == null &&
- pixels == null) {
- var pixels_1 = convertDartToNative_ImageData(
- bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video);
- _texSubImage2D_2(target, level, xoffset, yoffset, format_OR_width,
- height_OR_type, pixels_1);
- return;
- }
- if ((bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video
- is ImageElement) &&
- type == null &&
- pixels == null) {
- _texSubImage2D_3(
- target,
- level,
- xoffset,
- yoffset,
- format_OR_width,
- height_OR_type,
- bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video);
- return;
- }
- if ((bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video
- is CanvasElement) &&
- type == null &&
- pixels == null) {
- _texSubImage2D_4(
- target,
- level,
- xoffset,
- yoffset,
- format_OR_width,
- height_OR_type,
- bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video);
- return;
- }
- if ((bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video
- is VideoElement) &&
- type == null &&
- pixels == null) {
- _texSubImage2D_5(
- target,
- level,
- xoffset,
- yoffset,
- format_OR_width,
- height_OR_type,
- bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video);
- return;
- }
- if ((bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video
- is ImageBitmap) &&
- type == null &&
- pixels == null) {
- _texSubImage2D_6(
- target,
- level,
- xoffset,
- yoffset,
- format_OR_width,
- height_OR_type,
- bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video);
- return;
- }
- throw new ArgumentError("Incorrect number or type of arguments");
- }
-
- @JSName('texSubImage2D')
- @DomName('WebGL2RenderingContext.texSubImage2D')
- @DocsEditable()
- @Experimental() // untriaged
- void _texSubImage2D_1(target, level, xoffset, yoffset, width, height,
- int format, type, TypedData pixels) native;
- @JSName('texSubImage2D')
- @DomName('WebGL2RenderingContext.texSubImage2D')
- @DocsEditable()
- @Experimental() // untriaged
- void _texSubImage2D_2(target, level, xoffset, yoffset, format, type, pixels)
- native;
- @JSName('texSubImage2D')
- @DomName('WebGL2RenderingContext.texSubImage2D')
- @DocsEditable()
- @Experimental() // untriaged
- void _texSubImage2D_3(
- target, level, xoffset, yoffset, format, type, ImageElement image) native;
- @JSName('texSubImage2D')
- @DomName('WebGL2RenderingContext.texSubImage2D')
- @DocsEditable()
- @Experimental() // untriaged
- void _texSubImage2D_4(target, level, xoffset, yoffset, format, type,
- CanvasElement canvas) native;
- @JSName('texSubImage2D')
- @DomName('WebGL2RenderingContext.texSubImage2D')
- @DocsEditable()
- @Experimental() // untriaged
- void _texSubImage2D_5(
- target, level, xoffset, yoffset, format, type, VideoElement video) native;
- @JSName('texSubImage2D')
- @DomName('WebGL2RenderingContext.texSubImage2D')
- @DocsEditable()
- @Experimental() // untriaged
- void _texSubImage2D_6(
- target, level, xoffset, yoffset, format, type, ImageBitmap bitmap) native;
-
- @DomName('WebGL2RenderingContext.uniform1f')
- @DocsEditable()
- @Experimental() // untriaged
- void uniform1f(UniformLocation location, num x) native;
-
- @DomName('WebGL2RenderingContext.uniform1fv')
- @DocsEditable()
- @Experimental() // untriaged
- void uniform1fv(UniformLocation location, v) native;
-
- @DomName('WebGL2RenderingContext.uniform1i')
- @DocsEditable()
- @Experimental() // untriaged
- void uniform1i(UniformLocation location, int x) native;
-
- @DomName('WebGL2RenderingContext.uniform1iv')
- @DocsEditable()
- @Experimental() // untriaged
- void uniform1iv(UniformLocation location, v) native;
-
- @DomName('WebGL2RenderingContext.uniform2f')
- @DocsEditable()
- @Experimental() // untriaged
- void uniform2f(UniformLocation location, num x, num y) native;
-
- @DomName('WebGL2RenderingContext.uniform2fv')
- @DocsEditable()
- @Experimental() // untriaged
- void uniform2fv(UniformLocation location, v) native;
-
- @DomName('WebGL2RenderingContext.uniform2i')
- @DocsEditable()
- @Experimental() // untriaged
- void uniform2i(UniformLocation location, int x, int y) native;
-
- @DomName('WebGL2RenderingContext.uniform2iv')
- @DocsEditable()
- @Experimental() // untriaged
- void uniform2iv(UniformLocation location, v) native;
-
- @DomName('WebGL2RenderingContext.uniform3f')
- @DocsEditable()
- @Experimental() // untriaged
- void uniform3f(UniformLocation location, num x, num y, num z) native;
-
- @DomName('WebGL2RenderingContext.uniform3fv')
- @DocsEditable()
- @Experimental() // untriaged
- void uniform3fv(UniformLocation location, v) native;
-
- @DomName('WebGL2RenderingContext.uniform3i')
- @DocsEditable()
- @Experimental() // untriaged
- void uniform3i(UniformLocation location, int x, int y, int z) native;
-
- @DomName('WebGL2RenderingContext.uniform3iv')
- @DocsEditable()
- @Experimental() // untriaged
- void uniform3iv(UniformLocation location, v) native;
-
- @DomName('WebGL2RenderingContext.uniform4f')
- @DocsEditable()
- @Experimental() // untriaged
- void uniform4f(UniformLocation location, num x, num y, num z, num w) native;
-
- @DomName('WebGL2RenderingContext.uniform4fv')
- @DocsEditable()
- @Experimental() // untriaged
- void uniform4fv(UniformLocation location, v) native;
-
- @DomName('WebGL2RenderingContext.uniform4i')
- @DocsEditable()
- @Experimental() // untriaged
- void uniform4i(UniformLocation location, int x, int y, int z, int w) native;
-
- @DomName('WebGL2RenderingContext.uniform4iv')
- @DocsEditable()
- @Experimental() // untriaged
- void uniform4iv(UniformLocation location, v) native;
-
- @DomName('WebGL2RenderingContext.uniformMatrix2fv')
- @DocsEditable()
- @Experimental() // untriaged
- void uniformMatrix2fv(UniformLocation location, bool transpose, array) native;
-
- @DomName('WebGL2RenderingContext.uniformMatrix3fv')
- @DocsEditable()
- @Experimental() // untriaged
- void uniformMatrix3fv(UniformLocation location, bool transpose, array) native;
-
- @DomName('WebGL2RenderingContext.uniformMatrix4fv')
- @DocsEditable()
- @Experimental() // untriaged
- void uniformMatrix4fv(UniformLocation location, bool transpose, array) native;
-
- @DomName('WebGL2RenderingContext.useProgram')
- @DocsEditable()
- @Experimental() // untriaged
- void useProgram(Program program) native;
-
- @DomName('WebGL2RenderingContext.validateProgram')
- @DocsEditable()
- @Experimental() // untriaged
- void validateProgram(Program program) native;
-
- @DomName('WebGL2RenderingContext.vertexAttrib1f')
- @DocsEditable()
- @Experimental() // untriaged
- void vertexAttrib1f(int indx, num x) native;
-
- @DomName('WebGL2RenderingContext.vertexAttrib1fv')
- @DocsEditable()
- @Experimental() // untriaged
- void vertexAttrib1fv(int indx, values) native;
-
- @DomName('WebGL2RenderingContext.vertexAttrib2f')
- @DocsEditable()
- @Experimental() // untriaged
- void vertexAttrib2f(int indx, num x, num y) native;
-
- @DomName('WebGL2RenderingContext.vertexAttrib2fv')
- @DocsEditable()
- @Experimental() // untriaged
- void vertexAttrib2fv(int indx, values) native;
-
- @DomName('WebGL2RenderingContext.vertexAttrib3f')
- @DocsEditable()
- @Experimental() // untriaged
- void vertexAttrib3f(int indx, num x, num y, num z) native;
-
- @DomName('WebGL2RenderingContext.vertexAttrib3fv')
- @DocsEditable()
- @Experimental() // untriaged
- void vertexAttrib3fv(int indx, values) native;
-
- @DomName('WebGL2RenderingContext.vertexAttrib4f')
- @DocsEditable()
- @Experimental() // untriaged
- void vertexAttrib4f(int indx, num x, num y, num z, num w) native;
-
- @DomName('WebGL2RenderingContext.vertexAttrib4fv')
- @DocsEditable()
- @Experimental() // untriaged
- void vertexAttrib4fv(int indx, values) native;
-
- @DomName('WebGL2RenderingContext.vertexAttribPointer')
- @DocsEditable()
- @Experimental() // untriaged
- void vertexAttribPointer(int indx, int size, int type, bool normalized,
- int stride, int offset) native;
-
- @DomName('WebGL2RenderingContext.viewport')
- @DocsEditable()
- @Experimental() // untriaged
- void viewport(int x, int y, int width, int height) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('WebGLSampler')
-@Experimental() // untriaged
-@Native("WebGLSampler")
-class Sampler extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory Sampler._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('WebGLShader')
-@Native("WebGLShader")
-class Shader extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory Shader._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('WebGLShaderPrecisionFormat')
-@Native("WebGLShaderPrecisionFormat")
-class ShaderPrecisionFormat extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory ShaderPrecisionFormat._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('WebGLShaderPrecisionFormat.precision')
- @DocsEditable()
- final int precision;
-
- @DomName('WebGLShaderPrecisionFormat.rangeMax')
- @DocsEditable()
- final int rangeMax;
-
- @DomName('WebGLShaderPrecisionFormat.rangeMin')
- @DocsEditable()
- final int rangeMin;
-}
-// 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.
-
-@DocsEditable()
-@DomName('WebGLSync')
-@Experimental() // untriaged
-@Native("WebGLSync")
-class Sync extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory Sync._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('WebGLTexture')
-@Native("WebGLTexture")
-class Texture extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory Texture._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('WebGLTimerQueryEXT')
-@Experimental() // untriaged
-@Native("WebGLTimerQueryEXT")
-class TimerQueryExt extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory TimerQueryExt._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('WebGLTransformFeedback')
-@Experimental() // untriaged
-@Native("WebGLTransformFeedback")
-class TransformFeedback extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory TransformFeedback._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('WebGLUniformLocation')
-@Native("WebGLUniformLocation")
-class UniformLocation extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory UniformLocation._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('WebGLVertexArrayObject')
-@Experimental() // untriaged
-@Native("WebGLVertexArrayObject")
-class VertexArrayObject extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory VertexArrayObject._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('WebGLVertexArrayObjectOES')
-// http://www.khronos.org/registry/webgl/extensions/OES_vertex_array_object/
-@Experimental() // experimental
-@Native("WebGLVertexArrayObjectOES")
-class VertexArrayObjectOes extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory VertexArrayObjectOes._() {
- throw new UnsupportedError("Not supported");
- }
-}
-// 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.
-
-@DocsEditable()
-@DomName('WebGL2RenderingContextBase')
-@Experimental() // untriaged
-@Native("WebGL2RenderingContextBase")
-abstract class _WebGL2RenderingContextBase extends Interceptor
- implements _WebGLRenderingContextBase {
- // To suppress missing implicit constructor warnings.
- factory _WebGL2RenderingContextBase._() {
- throw new UnsupportedError("Not supported");
- }
-
- // From WebGLRenderingContextBase
-}
-// 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.
-
-@DocsEditable()
-@DomName('WebGLRenderingContextBase')
-@Experimental() // untriaged
-abstract class _WebGLRenderingContextBase extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory _WebGLRenderingContextBase._() {
- throw new UnsupportedError("Not supported");
- }
-}
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/web_sql/dart2js/web_sql_dart2js.dart b/pkg/dev_compiler/tool/input_sdk/lib/web_sql/dart2js/web_sql_dart2js.dart
deleted file mode 100644
index 92273fd..0000000
--- a/pkg/dev_compiler/tool/input_sdk/lib/web_sql/dart2js/web_sql_dart2js.dart
+++ /dev/null
@@ -1,313 +0,0 @@
-/**
- * An API for storing data in the browser that can be queried with SQL.
- *
- * **Caution:** this specification is no longer actively maintained by the Web
- * Applications Working Group and may be removed at any time.
- * See [the W3C Web SQL Database specification](http://www.w3.org/TR/webdatabase/)
- * for more information.
- *
- * The [dart:indexed_db] APIs is a recommended alternatives.
- */
-library dart.dom.web_sql;
-
-import 'dart:async';
-import 'dart:collection';
-import 'dart:_internal';
-import 'dart:html';
-import 'dart:html_common';
-import 'dart:_foreign_helper' show JS;
-import 'dart:_interceptors' show Interceptor;
-// DO NOT EDIT - unless you are editing documentation as per:
-// https://code.google.com/p/dart/wiki/ContributingHTMLDocumentation
-// Auto-generated dart:audio library.
-
-import 'dart:_js_helper'
- show
- convertDartClosureToJS,
- Creates,
- JSName,
- Native,
- JavaScriptIndexingBehavior;
-
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('SQLStatementCallback')
-// http://www.w3.org/TR/webdatabase/#sqlstatementcallback
-@Experimental() // deprecated
-typedef void SqlStatementCallback(
- SqlTransaction transaction, SqlResultSet resultSet);
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('SQLStatementErrorCallback')
-// http://www.w3.org/TR/webdatabase/#sqlstatementerrorcallback
-@Experimental() // deprecated
-typedef void SqlStatementErrorCallback(
- SqlTransaction transaction, SqlError error);
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('SQLTransactionCallback')
-// http://www.w3.org/TR/webdatabase/#sqltransactioncallback
-@Experimental() // deprecated
-typedef void SqlTransactionCallback(SqlTransaction transaction);
-// 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.
-
-// WARNING: Do not edit - generated code.
-
-@DomName('SQLTransactionErrorCallback')
-// http://www.w3.org/TR/webdatabase/#sqltransactionerrorcallback
-@Experimental() // deprecated
-typedef void SqlTransactionErrorCallback(SqlError error);
-// 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.
-
-@DocsEditable()
-@DomName('Database')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Experimental()
-// http://www.w3.org/TR/webdatabase/#asynchronous-database-api
-@Experimental() // deprecated
-@Native("Database")
-class SqlDatabase extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory SqlDatabase._() {
- throw new UnsupportedError("Not supported");
- }
-
- /// Checks if this type is supported on the current platform.
- static bool get supported => JS('bool', '!!(window.openDatabase)');
-
- @DomName('Database.version')
- @DocsEditable()
- final String version;
-
- /**
- * Atomically update the database version to [newVersion], asynchronously
- * running [callback] on the [SqlTransaction] representing this
- * [changeVersion] transaction.
- *
- * If [callback] runs successfully, then [successCallback] is called.
- * Otherwise, [errorCallback] is called.
- *
- * [oldVersion] should match the database's current [version] exactly.
- *
- * See also:
- *
- * * [Database.changeVersion](http://www.w3.org/TR/webdatabase/#dom-database-changeversion) from W3C.
- */
- @DomName('Database.changeVersion')
- @DocsEditable()
- void changeVersion(String oldVersion, String newVersion,
- [SqlTransactionCallback callback,
- SqlTransactionErrorCallback errorCallback,
- VoidCallback successCallback]) native;
-
- @DomName('Database.readTransaction')
- @DocsEditable()
- void readTransaction(SqlTransactionCallback callback,
- [SqlTransactionErrorCallback errorCallback,
- VoidCallback successCallback]) native;
-
- @DomName('Database.transaction')
- @DocsEditable()
- void transaction(SqlTransactionCallback callback,
- [SqlTransactionErrorCallback errorCallback,
- VoidCallback successCallback]) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SQLError')
-// http://www.w3.org/TR/webdatabase/#sqlerror
-@Experimental() // deprecated
-@Native("SQLError")
-class SqlError extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory SqlError._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SQLError.CONSTRAINT_ERR')
- @DocsEditable()
- static const int CONSTRAINT_ERR = 6;
-
- @DomName('SQLError.DATABASE_ERR')
- @DocsEditable()
- static const int DATABASE_ERR = 1;
-
- @DomName('SQLError.QUOTA_ERR')
- @DocsEditable()
- static const int QUOTA_ERR = 4;
-
- @DomName('SQLError.SYNTAX_ERR')
- @DocsEditable()
- static const int SYNTAX_ERR = 5;
-
- @DomName('SQLError.TIMEOUT_ERR')
- @DocsEditable()
- static const int TIMEOUT_ERR = 7;
-
- @DomName('SQLError.TOO_LARGE_ERR')
- @DocsEditable()
- static const int TOO_LARGE_ERR = 3;
-
- @DomName('SQLError.UNKNOWN_ERR')
- @DocsEditable()
- static const int UNKNOWN_ERR = 0;
-
- @DomName('SQLError.VERSION_ERR')
- @DocsEditable()
- static const int VERSION_ERR = 2;
-
- @DomName('SQLError.code')
- @DocsEditable()
- final int code;
-
- @DomName('SQLError.message')
- @DocsEditable()
- final String message;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SQLResultSet')
-// http://www.w3.org/TR/webdatabase/#sqlresultset
-@Experimental() // deprecated
-@Native("SQLResultSet")
-class SqlResultSet extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory SqlResultSet._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SQLResultSet.insertId')
- @DocsEditable()
- final int insertId;
-
- @DomName('SQLResultSet.rows')
- @DocsEditable()
- final SqlResultSetRowList rows;
-
- @DomName('SQLResultSet.rowsAffected')
- @DocsEditable()
- final int rowsAffected;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SQLResultSetRowList')
-// http://www.w3.org/TR/webdatabase/#sqlresultsetrowlist
-@Experimental() // deprecated
-@Native("SQLResultSetRowList")
-class SqlResultSetRowList extends Interceptor
- with ListMixin<Map>, ImmutableListMixin<Map>
- implements List<Map> {
- // To suppress missing implicit constructor warnings.
- factory SqlResultSetRowList._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SQLResultSetRowList.length')
- @DocsEditable()
- int get length => JS("int", "#.length", this);
-
- Map operator [](int index) {
- if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length))
- throw new RangeError.index(index, this);
- return this.item(index);
- }
-
- void operator []=(int index, Map value) {
- throw new UnsupportedError("Cannot assign element of immutable List.");
- }
- // -- start List<Map> mixins.
- // Map is the element type.
-
- set length(int value) {
- throw new UnsupportedError("Cannot resize immutable List.");
- }
-
- Map get first {
- if (this.length > 0) {
- return JS('Map', '#[0]', this);
- }
- throw new StateError("No elements");
- }
-
- Map get last {
- int len = this.length;
- if (len > 0) {
- return JS('Map', '#[#]', this, len - 1);
- }
- throw new StateError("No elements");
- }
-
- Map get single {
- int len = this.length;
- if (len == 1) {
- return JS('Map', '#[0]', this);
- }
- if (len == 0) throw new StateError("No elements");
- throw new StateError("More than one element");
- }
-
- Map elementAt(int index) => this[index];
- // -- end List<Map> mixins.
-
- @DomName('SQLResultSetRowList.item')
- @DocsEditable()
- Map item(int index) {
- return convertNativeToDart_Dictionary(_item_1(index));
- }
-
- @JSName('item')
- @DomName('SQLResultSetRowList.item')
- @DocsEditable()
- _item_1(index) native;
-}
-// 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.
-
-@DocsEditable()
-@DomName('SQLTransaction')
-@SupportedBrowser(SupportedBrowser.CHROME)
-@SupportedBrowser(SupportedBrowser.SAFARI)
-@Experimental()
-// http://www.w3.org/TR/webdatabase/#sqltransaction
-@deprecated // deprecated
-@Native("SQLTransaction")
-class SqlTransaction extends Interceptor {
- // To suppress missing implicit constructor warnings.
- factory SqlTransaction._() {
- throw new UnsupportedError("Not supported");
- }
-
- @DomName('SQLTransaction.executeSql')
- @DocsEditable()
- void executeSql(String sqlStatement,
- [List arguments,
- SqlStatementCallback callback,
- SqlStatementErrorCallback errorCallback]) native;
-}
diff --git a/pkg/dev_compiler/tool/input_sdk/patch/internal_patch.dart b/pkg/dev_compiler/tool/input_sdk/patch/internal_patch.dart
index de24334..221b620 100644
--- a/pkg/dev_compiler/tool/input_sdk/patch/internal_patch.dart
+++ b/pkg/dev_compiler/tool/input_sdk/patch/internal_patch.dart
@@ -6,6 +6,7 @@
import 'dart:_js_helper' show patch;
import 'dart:_interceptors' show JSArray;
import 'dart:_foreign_helper' show JS;
+import 'dart:_runtime' as dart;
@patch
class Symbol implements core.Symbol {
@@ -45,3 +46,7 @@
JSArray.markUnmodifiableList(fixedLengthList);
return fixedLengthList;
}
+
+@patch
+Object extractTypeArguments<T>(T instance, Function extract) =>
+ dart.extractTypeArguments<T>(instance, extract);
diff --git a/pkg/dev_compiler/tool/input_sdk/private/ddc_runtime/types.dart b/pkg/dev_compiler/tool/input_sdk/private/ddc_runtime/types.dart
index 8f71bcb..92dddf2 100644
--- a/pkg/dev_compiler/tool/input_sdk/private/ddc_runtime/types.dart
+++ b/pkg/dev_compiler/tool/input_sdk/private/ddc_runtime/types.dart
@@ -1103,3 +1103,86 @@
// can return false.
return false;
})()''');
+
+Object extractTypeArguments<T>(T instance, Function f) {
+ if (instance == null) {
+ throw new ArgumentError('Cannot extract type of null instance.');
+ }
+ var type = unwrapType(T);
+ if (type is AbstractFunctionType) {
+ throw new ArgumentError('Cannot extract from non-class type ($type).');
+ }
+ List typeArgs = _extractTypes(getReifiedType(instance), type);
+ return _checkAndCall(
+ f, _getRuntimeType(f), JS('', 'void 0'), typeArgs, [], 'call');
+}
+
+// Let t2 = T<T1, ..., Tn>
+// If t1 </: T<T1, ..., Tn>
+// - return null
+// If t1 <: T<T1, ..., Tn>
+// - return [S1, ..., Sn] such that there exists no Ri where
+// Ri != Si && Ri <: Si && t1 <: T<S1, ..., Ri, ..., Sn>
+//
+// Note: In Dart 1, there isn't necessarily a unique solution to the above -
+// t1 <: Foo<int> and t1 <: Foo<String> could both be true. Dart 2 will
+// statically disallow. Until then, this could return either [int] or
+// [String] depending on which it hits first.
+//
+// TODO(vsm): Consider merging with similar isClassSubType logic.
+List _extractTypes(Type t1, Type t2) => JS('', '''(() => {
+ let typeArguments2 = $getGenericArgs($t2);
+ if ($t1 == $t2) return typeArguments2;
+
+ if ($t1 == $Object) return null;
+
+ // If t1 is a JS Object, we may not hit core.Object.
+ if ($t1 == null) return null;
+
+ // Check if t1 and t2 have the same raw type. If so, check covariance on
+ // type parameters.
+ let raw1 = $getGenericClass($t1);
+ let raw2 = $getGenericClass($t2);
+ if (raw1 != null && raw1 == raw2) {
+ let typeArguments1 = $getGenericArgs($t1);
+ let length = typeArguments1.length;
+ if (typeArguments2.length == 0) {
+ // t2 is the raw form of t1
+ return typeArguments1;
+ } else if (length == 0) {
+ // t1 is raw, but t2 is not
+ if (typeArguments2.every($_isTop)) return typeArguments2;
+ return null;
+ }
+ if (length != typeArguments2.length) $assertFailed();
+ for (let i = 0; i < length; ++i) {
+ let result =
+ $_isSubtype(typeArguments1[i], typeArguments2[i], true);
+ if (!result) {
+ return null;
+ }
+ }
+ return typeArguments1;
+ }
+
+ var result = $_extractTypes($t1.__proto__, $t2);
+ if (result) return result;
+
+ // Check mixin.
+ let m1 = $getMixin($t1);
+ if (m1 != null) {
+ result = $_extractTypes(m1, $t2);
+ if (result) return result;
+ }
+
+ // Check interfaces.
+ let getInterfaces = $getImplements($t1);
+ if (getInterfaces) {
+ for (let i1 of getInterfaces()) {
+ result = $_extractTypes(i1, $t2);
+ if (result) return result;
+ }
+ }
+
+ return null;
+})()''');
diff --git a/pkg/dev_compiler/tool/sdk_expected_errors.txt b/pkg/dev_compiler/tool/sdk_expected_errors.txt
index e2dcf06..cd24172 100644
--- a/pkg/dev_compiler/tool/sdk_expected_errors.txt
+++ b/pkg/dev_compiler/tool/sdk_expected_errors.txt
@@ -3,35 +3,35 @@
[warning] The final variable 'origin' must be initialized. (dart:html, line 863, col 3)
[warning] The final variables 'form', 'labels' and '3' more must be initialized. (dart:html, line 1679, col 3)
[warning] The final variable 'options' must be initialized. (dart:html, line 8979, col 3)
-[warning] The final variables '_attributes', '_childElementCount' and '19' more must be initialized. (dart:html, line 13239, col 3)
-[warning] The final variables 'elements', 'form' and '4' more must be initialized. (dart:html, line 17115, col 3)
-[warning] The final variable 'length' must be initialized. (dart:html, line 18065, col 3)
-[warning] The final variables '_get_contentWindow' and 'sandbox' must be initialized. (dart:html, line 20777, col 3)
-[warning] The final variables 'complete', 'currentSrc' and '2' more must be initialized. (dart:html, line 20984, col 3)
-[warning] The final variables '_get_valueAsDate', 'entries' and '6' more must be initialized. (dart:html, line 21149, col 3)
-[warning] The final variables 'form', 'labels' and '4' more must be initialized. (dart:html, line 22359, col 3)
-[warning] The final variables 'control' and 'form' must be initialized. (dart:html, line 22506, col 3)
-[warning] The final variable 'form' must be initialized. (dart:html, line 22545, col 3)
-[warning] The final variables 'import', 'relList' and '2' more must be initialized. (dart:html, line 22634, col 3)
-[warning] The final variable 'areas' must be initialized. (dart:html, line 22797, col 3)
-[warning] The final variables 'audioDecodedByteCount', 'audioTracks' and '16' more must be initialized. (dart:html, line 23098, col 3)
-[warning] The final variable 'labels' must be initialized. (dart:html, line 24692, col 3)
-[warning] The final variables 'baseUri', 'childNodes' and '11' more must be initialized. (dart:html, line 26236, col 3)
-[warning] The final variables 'form', 'validationMessage' and '2' more must be initialized. (dart:html, line 27188, col 3)
-[warning] The final variables 'form' and 'index' must be initialized. (dart:html, line 27370, col 3)
-[warning] The final variables 'form', 'htmlFor' and '5' more must be initialized. (dart:html, line 27424, col 3)
-[warning] The final variables 'labels' and 'position' must be initialized. (dart:html, line 28986, col 3)
-[warning] The final variables 'form', 'labels' and '4' more must be initialized. (dart:html, line 30915, col 3)
-[warning] The final variable 'sheet' must be initialized. (dart:html, line 33390, col 3)
-[warning] The final variable 'cellIndex' must be initialized. (dart:html, line 33655, col 3)
-[warning] The final variables '_rows' and '_tBodies' must be initialized. (dart:html, line 33774, col 3)
-[warning] The final variables '_cells', 'rowIndex' and '1' more must be initialized. (dart:html, line 33891, col 3)
-[warning] The final variable '_rows' must be initialized. (dart:html, line 33960, col 3)
-[warning] The final variable 'content' must be initialized. (dart:html, line 34004, col 3)
-[warning] The final variables 'form', 'labels' and '5' more must be initialized. (dart:html, line 34093, col 3)
-[warning] The final variables 'readyState' and 'track' must be initialized. (dart:html, line 35153, col 3)
-[warning] The final variables 'decodedFrameCount', 'droppedFrameCount' and '2' more must be initialized. (dart:html, line 36060, col 3)
-[warning] The final variable 'sourceCapabilities' must be initialized. (dart:html, line 46038, col 3)
+[warning] The final variables '_attributes', '_childElementCount' and '19' more must be initialized. (dart:html, line 13235, col 3)
+[warning] The final variables 'elements', 'form' and '4' more must be initialized. (dart:html, line 17108, col 3)
+[warning] The final variable 'length' must be initialized. (dart:html, line 18058, col 3)
+[warning] The final variables '_get_contentWindow' and 'sandbox' must be initialized. (dart:html, line 20770, col 3)
+[warning] The final variables 'complete', 'currentSrc' and '2' more must be initialized. (dart:html, line 20977, col 3)
+[warning] The final variables '_get_valueAsDate', 'entries' and '6' more must be initialized. (dart:html, line 21142, col 3)
+[warning] The final variables 'form', 'labels' and '4' more must be initialized. (dart:html, line 22352, col 3)
+[warning] The final variables 'control' and 'form' must be initialized. (dart:html, line 22499, col 3)
+[warning] The final variable 'form' must be initialized. (dart:html, line 22538, col 3)
+[warning] The final variables 'import', 'relList' and '2' more must be initialized. (dart:html, line 22627, col 3)
+[warning] The final variable 'areas' must be initialized. (dart:html, line 22790, col 3)
+[warning] The final variables 'audioDecodedByteCount', 'audioTracks' and '16' more must be initialized. (dart:html, line 23091, col 3)
+[warning] The final variable 'labels' must be initialized. (dart:html, line 24685, col 3)
+[warning] The final variables 'baseUri', 'childNodes' and '11' more must be initialized. (dart:html, line 26229, col 3)
+[warning] The final variables 'form', 'validationMessage' and '2' more must be initialized. (dart:html, line 27181, col 3)
+[warning] The final variables 'form' and 'index' must be initialized. (dart:html, line 27363, col 3)
+[warning] The final variables 'form', 'htmlFor' and '5' more must be initialized. (dart:html, line 27417, col 3)
+[warning] The final variables 'labels' and 'position' must be initialized. (dart:html, line 28979, col 3)
+[warning] The final variables 'form', 'labels' and '4' more must be initialized. (dart:html, line 30908, col 3)
+[warning] The final variable 'sheet' must be initialized. (dart:html, line 33383, col 3)
+[warning] The final variable 'cellIndex' must be initialized. (dart:html, line 33648, col 3)
+[warning] The final variables '_rows' and '_tBodies' must be initialized. (dart:html, line 33767, col 3)
+[warning] The final variables '_cells', 'rowIndex' and '1' more must be initialized. (dart:html, line 33884, col 3)
+[warning] The final variable '_rows' must be initialized. (dart:html, line 33953, col 3)
+[warning] The final variable 'content' must be initialized. (dart:html, line 33997, col 3)
+[warning] The final variables 'form', 'labels' and '5' more must be initialized. (dart:html, line 34086, col 3)
+[warning] The final variables 'readyState' and 'track' must be initialized. (dart:html, line 35146, col 3)
+[warning] The final variables 'decodedFrameCount', 'droppedFrameCount' and '2' more must be initialized. (dart:html, line 36053, col 3)
+[warning] The final variable 'sourceCapabilities' must be initialized. (dart:html, line 46029, col 3)
[warning] The final variables 'href' and 'target' must be initialized. (dart:svg, line 56, col 3)
[warning] The final variables 'requiredExtensions', 'requiredFeatures' and '2' more must be initialized. (dart:svg, line 512, col 3)
[warning] The final variables 'cx', 'cy' and '1' more must be initialized. (dart:svg, line 583, col 3)
diff --git a/pkg/front_end/lib/src/api_prototype/incremental_kernel_generator.dart b/pkg/front_end/lib/src/api_prototype/incremental_kernel_generator.dart
index 1f5afbf..c08284c 100644
--- a/pkg/front_end/lib/src/api_prototype/incremental_kernel_generator.dart
+++ b/pkg/front_end/lib/src/api_prototype/incremental_kernel_generator.dart
@@ -138,10 +138,8 @@
/// representation of the program, call [computeDelta].
static Future<IncrementalKernelGenerator> newInstance(
CompilerOptions options, Uri entryPoint,
- {ProcessedOptions processedOptions,
- WatchUsedFilesFn watch,
- bool useMinimalGenerator: false}) async {
- processedOptions ??= new ProcessedOptions(options, false, [entryPoint]);
+ {WatchUsedFilesFn watch, bool useMinimalGenerator: false}) async {
+ var processedOptions = new ProcessedOptions(options, false, [entryPoint]);
return await CompilerContext.runWithOptions(processedOptions, (_) async {
var uriTranslator = await processedOptions.getUriTranslator();
var sdkOutlineBytes = await processedOptions.loadSdkSummaryBytes();
diff --git a/pkg/front_end/lib/src/api_unstable/dart2js.dart b/pkg/front_end/lib/src/api_unstable/dart2js.dart
index b7915a8..3276f89 100644
--- a/pkg/front_end/lib/src/api_unstable/dart2js.dart
+++ b/pkg/front_end/lib/src/api_unstable/dart2js.dart
@@ -31,6 +31,7 @@
CompilerOptions options = new CompilerOptions()
..target = target
+ ..strongMode = false
..linkedDependencies = [sdkUri]
..packagesFileUri = packagesFileUri;
diff --git a/pkg/front_end/lib/src/fasta/dill/dill_loader.dart b/pkg/front_end/lib/src/fasta/dill/dill_loader.dart
index 3e122a4..713a5e6 100644
--- a/pkg/front_end/lib/src/fasta/dill/dill_loader.dart
+++ b/pkg/front_end/lib/src/fasta/dill/dill_loader.dart
@@ -8,6 +8,9 @@
import 'package:kernel/ast.dart' show Library, Program, Source;
+import '../fasta_codes.dart'
+ show SummaryTemplate, Template, templateDillOutlineSummary;
+
import '../kernel/kernel_builder.dart' show LibraryBuilder;
import '../loader.dart' show Loader;
@@ -27,10 +30,13 @@
DillLoader(TargetImplementation target) : super(target);
+ Template<SummaryTemplate> get outlineSummaryTemplate =>
+ templateDillOutlineSummary;
+
/// Append compiled libraries from the given [program]. If the [filter] is
/// provided, append only libraries whose [Uri] is accepted by the [filter].
List<DillLibraryBuilder> appendLibraries(Program program,
- [bool filter(Uri uri)]) {
+ {bool filter(Uri uri), int byteCount: 0}) {
var builders = <DillLibraryBuilder>[];
for (Library library in program.libraries) {
if (filter == null || filter(library.importUri)) {
@@ -41,6 +47,7 @@
}
}
uriToSource.addAll(program.uriToSource);
+ this.byteCount += byteCount;
return builders;
}
diff --git a/pkg/front_end/lib/src/fasta/fasta_codes.dart b/pkg/front_end/lib/src/fasta/fasta_codes.dart
index d596666..ee786717 100644
--- a/pkg/front_end/lib/src/fasta/fasta_codes.dart
+++ b/pkg/front_end/lib/src/fasta/fasta_codes.dart
@@ -99,3 +99,6 @@
// 2. We can change `base` argument here if needed.
return util.relativizeUri(uri, base: Uri.base);
}
+
+typedef Message SummaryTemplate(
+ int count, int count2, String string, String string2, String string3);
diff --git a/pkg/front_end/lib/src/fasta/fasta_codes_generated.dart b/pkg/front_end/lib/src/fasta/fasta_codes_generated.dart
index d78c011..a2ca05a 100644
--- a/pkg/front_end/lib/src/fasta/fasta_codes_generated.dart
+++ b/pkg/front_end/lib/src/fasta/fasta_codes_generated.dart
@@ -782,6 +782,45 @@
}
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Template<
+ Message Function(int count, int count2, String string, String string2,
+ String string3)> templateDillOutlineSummary =
+ const Template<
+ Message Function(int count, int count2, String string,
+ String string2, String string3)>(
+ messageTemplate:
+ r"""Indexed #count libraries (#count2 bytes) in #string, that is,
+#string2 bytes/ms, and
+#string3 ms/libraries.""",
+ withArguments: _withArgumentsDillOutlineSummary);
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Code<
+ Message Function(int count, int count2, String string, String string2,
+ String string3)> codeDillOutlineSummary = const Code<
+ Message Function(
+ int count, int count2, String string, String string2, String string3)>(
+ "DillOutlineSummary",
+ templateDillOutlineSummary,
+);
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+Message _withArgumentsDillOutlineSummary(
+ int count, int count2, String string, String string2, String string3) {
+ return new Message(codeDillOutlineSummary,
+ message: """Indexed $count libraries ($count2 bytes) in $string, that is,
+$string2 bytes/ms, and
+$string3 ms/libraries.""",
+ arguments: {
+ 'count': count,
+ 'count2': count2,
+ 'string': string,
+ 'string2': string2,
+ 'string3': string3
+ });
+}
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
const Code<Null> codeDirectiveAfterDeclaration =
messageDirectiveAfterDeclaration;
@@ -2367,6 +2406,276 @@
tip: r"""Try removing the keyword, or use a for-each statement.""");
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Template<
+ Message Function(
+ DartType _type,
+ DartType
+ _type2)> templateInvalidCastFunctionExpr = const Template<
+ Message Function(DartType _type, DartType _type2)>(
+ messageTemplate:
+ r"""The function expression type '#type' isn't of expected type '#type2'.""",
+ tipTemplate:
+ r"""Change the type of the function expression or the context in which it is used.""",
+ withArguments: _withArgumentsInvalidCastFunctionExpr);
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Code<Message Function(DartType _type, DartType _type2)>
+ codeInvalidCastFunctionExpr =
+ const Code<Message Function(DartType _type, DartType _type2)>(
+ "InvalidCastFunctionExpr", templateInvalidCastFunctionExpr,
+ analyzerCode: "INVALID_CAST_FUNCTION_EXPR", dart2jsCode: "*ignored*");
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+Message _withArgumentsInvalidCastFunctionExpr(DartType _type, DartType _type2) {
+ NameSystem nameSystem = new NameSystem();
+ StringBuffer buffer = new StringBuffer();
+ new Printer(buffer, syntheticNames: nameSystem).writeNode(_type);
+ String type = '$buffer';
+
+ buffer = new StringBuffer();
+ new Printer(buffer, syntheticNames: nameSystem).writeNode(_type2);
+ String type2 = '$buffer';
+
+ return new Message(codeInvalidCastFunctionExpr,
+ message:
+ """The function expression type '$type' isn't of expected type '$type2'.""",
+ tip: """Change the type of the function expression or the context in which it is used.""",
+ arguments: {'type': _type, 'type2': _type2});
+}
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Template<
+ Message Function(
+ DartType _type,
+ DartType
+ _type2)> templateInvalidCastLiteralList = const Template<
+ Message Function(DartType _type, DartType _type2)>(
+ messageTemplate:
+ r"""The list literal type '#type' isn't of expected type '#type2'.""",
+ tipTemplate:
+ r"""Change the type of the list literal or the context in which it is used.""",
+ withArguments: _withArgumentsInvalidCastLiteralList);
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Code<Message Function(DartType _type, DartType _type2)>
+ codeInvalidCastLiteralList =
+ const Code<Message Function(DartType _type, DartType _type2)>(
+ "InvalidCastLiteralList", templateInvalidCastLiteralList,
+ analyzerCode: "INVALID_CAST_LITERAL_LIST", dart2jsCode: "*ignored*");
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+Message _withArgumentsInvalidCastLiteralList(DartType _type, DartType _type2) {
+ NameSystem nameSystem = new NameSystem();
+ StringBuffer buffer = new StringBuffer();
+ new Printer(buffer, syntheticNames: nameSystem).writeNode(_type);
+ String type = '$buffer';
+
+ buffer = new StringBuffer();
+ new Printer(buffer, syntheticNames: nameSystem).writeNode(_type2);
+ String type2 = '$buffer';
+
+ return new Message(codeInvalidCastLiteralList,
+ message:
+ """The list literal type '$type' isn't of expected type '$type2'.""",
+ tip:
+ """Change the type of the list literal or the context in which it is used.""",
+ arguments: {'type': _type, 'type2': _type2});
+}
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Template<
+ Message Function(
+ DartType _type,
+ DartType
+ _type2)> templateInvalidCastLiteralMap = const Template<
+ Message Function(DartType _type, DartType _type2)>(
+ messageTemplate:
+ r"""The map literal type '#type' isn't of expected type '#type2'.""",
+ tipTemplate:
+ r"""Change the type of the map literal or the context in which it is used.""",
+ withArguments: _withArgumentsInvalidCastLiteralMap);
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Code<Message Function(DartType _type, DartType _type2)>
+ codeInvalidCastLiteralMap =
+ const Code<Message Function(DartType _type, DartType _type2)>(
+ "InvalidCastLiteralMap", templateInvalidCastLiteralMap,
+ analyzerCode: "INVALID_CAST_LITERAL_MAP", dart2jsCode: "*ignored*");
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+Message _withArgumentsInvalidCastLiteralMap(DartType _type, DartType _type2) {
+ NameSystem nameSystem = new NameSystem();
+ StringBuffer buffer = new StringBuffer();
+ new Printer(buffer, syntheticNames: nameSystem).writeNode(_type);
+ String type = '$buffer';
+
+ buffer = new StringBuffer();
+ new Printer(buffer, syntheticNames: nameSystem).writeNode(_type2);
+ String type2 = '$buffer';
+
+ return new Message(codeInvalidCastLiteralMap,
+ message:
+ """The map literal type '$type' isn't of expected type '$type2'.""",
+ tip:
+ """Change the type of the map literal or the context in which it is used.""",
+ arguments: {'type': _type, 'type2': _type2});
+}
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Template<
+ Message Function(
+ DartType _type,
+ DartType
+ _type2)> templateInvalidCastLocalFunction = const Template<
+ Message Function(DartType _type, DartType _type2)>(
+ messageTemplate:
+ r"""The local function has type '#type' that isn't of expected type '#type2'.""",
+ tipTemplate:
+ r"""Change the type of the function or the context in which it is used.""",
+ withArguments: _withArgumentsInvalidCastLocalFunction);
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Code<Message Function(DartType _type, DartType _type2)>
+ codeInvalidCastLocalFunction =
+ const Code<Message Function(DartType _type, DartType _type2)>(
+ "InvalidCastLocalFunction", templateInvalidCastLocalFunction,
+ analyzerCode: "INVALID_CAST_FUNCTION", dart2jsCode: "*ignored*");
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+Message _withArgumentsInvalidCastLocalFunction(
+ DartType _type, DartType _type2) {
+ NameSystem nameSystem = new NameSystem();
+ StringBuffer buffer = new StringBuffer();
+ new Printer(buffer, syntheticNames: nameSystem).writeNode(_type);
+ String type = '$buffer';
+
+ buffer = new StringBuffer();
+ new Printer(buffer, syntheticNames: nameSystem).writeNode(_type2);
+ String type2 = '$buffer';
+
+ return new Message(codeInvalidCastLocalFunction,
+ message:
+ """The local function has type '$type' that isn't of expected type '$type2'.""",
+ tip: """Change the type of the function or the context in which it is used.""",
+ arguments: {'type': _type, 'type2': _type2});
+}
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Template<
+ Message Function(
+ DartType _type,
+ DartType
+ _type2)> templateInvalidCastNewExpr = const Template<
+ Message Function(DartType _type, DartType _type2)>(
+ messageTemplate:
+ r"""The constructor returns type '#type' that isn't of expected type '#type2'.""",
+ tipTemplate:
+ r"""Change the type of the object being constructed or the context in which it is used.""",
+ withArguments: _withArgumentsInvalidCastNewExpr);
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Code<Message Function(DartType _type, DartType _type2)>
+ codeInvalidCastNewExpr =
+ const Code<Message Function(DartType _type, DartType _type2)>(
+ "InvalidCastNewExpr", templateInvalidCastNewExpr,
+ analyzerCode: "INVALID_CAST_NEW_EXPR", dart2jsCode: "*ignored*");
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+Message _withArgumentsInvalidCastNewExpr(DartType _type, DartType _type2) {
+ NameSystem nameSystem = new NameSystem();
+ StringBuffer buffer = new StringBuffer();
+ new Printer(buffer, syntheticNames: nameSystem).writeNode(_type);
+ String type = '$buffer';
+
+ buffer = new StringBuffer();
+ new Printer(buffer, syntheticNames: nameSystem).writeNode(_type2);
+ String type2 = '$buffer';
+
+ return new Message(codeInvalidCastNewExpr,
+ message:
+ """The constructor returns type '$type' that isn't of expected type '$type2'.""",
+ tip: """Change the type of the object being constructed or the context in which it is used.""",
+ arguments: {'type': _type, 'type2': _type2});
+}
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Template<
+ Message Function(
+ DartType _type,
+ DartType
+ _type2)> templateInvalidCastStaticMethod = const Template<
+ Message Function(DartType _type, DartType _type2)>(
+ messageTemplate:
+ r"""The static method has type '#type' that isn't of expected type '#type2'.""",
+ tipTemplate:
+ r"""Change the type of the method or the context in which it is used.""",
+ withArguments: _withArgumentsInvalidCastStaticMethod);
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Code<Message Function(DartType _type, DartType _type2)>
+ codeInvalidCastStaticMethod =
+ const Code<Message Function(DartType _type, DartType _type2)>(
+ "InvalidCastStaticMethod", templateInvalidCastStaticMethod,
+ analyzerCode: "INVALID_CAST_METHOD", dart2jsCode: "*ignored*");
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+Message _withArgumentsInvalidCastStaticMethod(DartType _type, DartType _type2) {
+ NameSystem nameSystem = new NameSystem();
+ StringBuffer buffer = new StringBuffer();
+ new Printer(buffer, syntheticNames: nameSystem).writeNode(_type);
+ String type = '$buffer';
+
+ buffer = new StringBuffer();
+ new Printer(buffer, syntheticNames: nameSystem).writeNode(_type2);
+ String type2 = '$buffer';
+
+ return new Message(codeInvalidCastStaticMethod,
+ message:
+ """The static method has type '$type' that isn't of expected type '$type2'.""",
+ tip: """Change the type of the method or the context in which it is used.""",
+ arguments: {'type': _type, 'type2': _type2});
+}
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Template<
+ Message Function(
+ DartType _type,
+ DartType
+ _type2)> templateInvalidCastTopLevelFunction = const Template<
+ Message Function(DartType _type, DartType _type2)>(
+ messageTemplate:
+ r"""The top level function has type '#type' that isn't of expected type '#type2'.""",
+ tipTemplate:
+ r"""Change the type of the function or the context in which it is used.""",
+ withArguments: _withArgumentsInvalidCastTopLevelFunction);
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Code<Message Function(DartType _type, DartType _type2)>
+ codeInvalidCastTopLevelFunction =
+ const Code<Message Function(DartType _type, DartType _type2)>(
+ "InvalidCastTopLevelFunction", templateInvalidCastTopLevelFunction,
+ analyzerCode: "INVALID_CAST_FUNCTION", dart2jsCode: "*ignored*");
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+Message _withArgumentsInvalidCastTopLevelFunction(
+ DartType _type, DartType _type2) {
+ NameSystem nameSystem = new NameSystem();
+ StringBuffer buffer = new StringBuffer();
+ new Printer(buffer, syntheticNames: nameSystem).writeNode(_type);
+ String type = '$buffer';
+
+ buffer = new StringBuffer();
+ new Printer(buffer, syntheticNames: nameSystem).writeNode(_type2);
+ String type2 = '$buffer';
+
+ return new Message(codeInvalidCastTopLevelFunction,
+ message:
+ """The top level function has type '$type' that isn't of expected type '$type2'.""",
+ tip: """Change the type of the function or the context in which it is used.""",
+ arguments: {'type': _type, 'type2': _type2});
+}
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
const Code<Null> codeInvalidInitializer = messageInvalidInitializer;
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
@@ -3636,6 +3945,94 @@
message: r"""A setter should have exactly one formal parameter.""");
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Template<
+ Message Function(
+ int count,
+ int count2,
+ String string,
+ String string2,
+ String
+ string3)> templateSourceBodySummary = const Template<
+ Message Function(int count, int count2, String string, String string2,
+ String string3)>(
+ messageTemplate:
+ r"""Built bodies for #count compilation units (#count2 bytes) in #string, that is,
+#string2 bytes/ms, and
+#string3 ms/compilation unit.""",
+ withArguments: _withArgumentsSourceBodySummary);
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Code<
+ Message Function(int count, int count2, String string, String string2,
+ String string3)> codeSourceBodySummary = const Code<
+ Message Function(
+ int count, int count2, String string, String string2, String string3)>(
+ "SourceBodySummary",
+ templateSourceBodySummary,
+);
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+Message _withArgumentsSourceBodySummary(
+ int count, int count2, String string, String string2, String string3) {
+ return new Message(codeSourceBodySummary,
+ message:
+ """Built bodies for $count compilation units ($count2 bytes) in $string, that is,
+$string2 bytes/ms, and
+$string3 ms/compilation unit.""",
+ arguments: {
+ 'count': count,
+ 'count2': count2,
+ 'string': string,
+ 'string2': string2,
+ 'string3': string3
+ });
+}
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Template<
+ Message Function(
+ int count,
+ int count2,
+ String string,
+ String string2,
+ String
+ string3)> templateSourceOutlineSummary = const Template<
+ Message Function(int count, int count2, String string, String string2,
+ String string3)>(
+ messageTemplate:
+ r"""Built outlines for #count compilation units (#count2 bytes) in #string, that is,
+#string2 bytes/ms, and
+#string3 ms/compilation unit.""",
+ withArguments: _withArgumentsSourceOutlineSummary);
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Code<
+ Message Function(int count, int count2, String string, String string2,
+ String string3)> codeSourceOutlineSummary = const Code<
+ Message Function(
+ int count, int count2, String string, String string2, String string3)>(
+ "SourceOutlineSummary",
+ templateSourceOutlineSummary,
+);
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+Message _withArgumentsSourceOutlineSummary(
+ int count, int count2, String string, String string2, String string3) {
+ return new Message(codeSourceOutlineSummary,
+ message:
+ """Built outlines for $count compilation units ($count2 bytes) in $string, that is,
+$string2 bytes/ms, and
+$string3 ms/compilation unit.""",
+ arguments: {
+ 'count': count,
+ 'count2': count2,
+ 'string': string,
+ 'string2': string2,
+ 'string3': string3
+ });
+}
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
const Code<Null> codeStackOverflow = messageStackOverflow;
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
diff --git a/pkg/front_end/lib/src/fasta/graph/graph.dart b/pkg/front_end/lib/src/fasta/graph/graph.dart
new file mode 100644
index 0000000..f54f8a4
--- /dev/null
+++ b/pkg/front_end/lib/src/fasta/graph/graph.dart
@@ -0,0 +1,79 @@
+// 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.md file.
+
+library fasta.graph;
+
+abstract class Graph<T> {
+ Iterable<T> get vertices;
+
+ Iterable<T> neighborsOf(T vertex);
+}
+
+/// Computes the strongly connected components of [graph].
+///
+/// This implementation is based on [Dijkstra's path-based strong component
+/// algorithm]
+/// (https://en.wikipedia.org/wiki/Path-based_strong_component_algorithm#Description).
+List<List<T>> computeStrongComponents<T>(Graph<T> graph) {
+ List<List<T>> result = <List<T>>[];
+ int count = 0;
+ Map<T, int> preorderNumbers = <T, int>{};
+ List<T> unassigned = <T>[];
+ List<T> candidates = <T>[];
+ Set<T> assigned = new Set<T>();
+
+ void recursivelySearch(T vertex) {
+ // Step 1: Set the preorder number of [vertex] to [count], and increment
+ // [count].
+ preorderNumbers[vertex] = count++;
+
+ // Step 2: Push [vertex] onto [unassigned] and also onto [candidates].
+ unassigned.add(vertex);
+ candidates.add(vertex);
+
+ // Step 3: For each edge from [vertex] to a neighboring vertex [neighbor]:
+ for (T neighbor in graph.neighborsOf(vertex)) {
+ int neighborPreorderNumber = preorderNumbers[neighbor];
+ if (neighborPreorderNumber == null) {
+ // If the preorder number of [neighbor] has not yet been assigned,
+ // recursively search [neighbor];
+ recursivelySearch(neighbor);
+ } else if (!assigned.contains(neighbor)) {
+ // Otherwise, if [neighbor] has not yet been assigned to a strongly
+ // connected component:
+ //
+ // * Repeatedly pop vertices from [candidates] until the top element of
+ // [candidates] has a preorder number less than or equal to the
+ // preorder number of [neighbor].
+ while (preorderNumbers[candidates.last] > neighborPreorderNumber) {
+ candidates.removeLast();
+ }
+ }
+ }
+ // Step 4: If [vertex] is the top element of [candidates]:
+ if (candidates.last == vertex) {
+ // Pop vertices from [unassigned] until [vertex] has been popped, and
+ // assign the popped vertices to a new component.
+ List<T> component = <T>[];
+ while (true) {
+ T top = unassigned.removeLast();
+ component.add(top);
+ assigned.add(top);
+ if (top == vertex) break;
+ }
+ result.add(component);
+
+ // Pop [vertex] from [candidates].
+ candidates.removeLast();
+ }
+ }
+
+ for (T vertex in graph.vertices) {
+ if (preorderNumbers[vertex] == null) {
+ recursivelySearch(vertex);
+ }
+ }
+
+ return result;
+}
diff --git a/pkg/front_end/lib/src/fasta/incremental_compiler.dart b/pkg/front_end/lib/src/fasta/incremental_compiler.dart
new file mode 100644
index 0000000..15f806a
--- /dev/null
+++ b/pkg/front_end/lib/src/fasta/incremental_compiler.dart
@@ -0,0 +1,107 @@
+// 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.
+
+library fasta.incremental_compiler;
+
+import 'dart:async' show Future;
+
+import 'package:kernel/kernel.dart' show Program, loadProgramFromBytes;
+
+import '../api_prototype/incremental_kernel_generator.dart'
+ show DeltaProgram, IncrementalKernelGenerator;
+
+import 'dill/dill_target.dart' show DillTarget;
+
+import 'kernel/kernel_target.dart' show KernelTarget;
+
+import 'compiler_context.dart' show CompilerContext;
+
+import 'problems.dart' show unsupported;
+
+import 'ticker.dart' show Ticker;
+
+import 'uri_translator.dart' show UriTranslator;
+
+abstract class DeprecatedIncrementalKernelGenerator
+ implements IncrementalKernelGenerator {
+ /// This does nothing. It will be deprecated.
+ @override
+ void acceptLastDelta() {}
+
+ /// Always throws an error. Will be deprecated.
+ @override
+ void rejectLastDelta() => unsupported("rejectLastDelta", -1, null);
+
+ /// Always throws an error. Will be deprecated.
+ @override
+ void reset() => unsupported("rejectLastDelta", -1, null);
+
+ /// Always throws an error. Will be deprecated.
+ @override
+ void setState(String state) => unsupported("setState", -1, null);
+}
+
+abstract class DeprecatedDeltaProgram implements DeltaProgram {
+ @override
+ String get state => unsupported("state", -1, null);
+}
+
+class FastaDelta extends DeprecatedDeltaProgram {
+ @override
+ final Program newProgram;
+
+ FastaDelta(this.newProgram);
+}
+
+class IncrementalCompiler extends DeprecatedIncrementalKernelGenerator {
+ final CompilerContext context;
+
+ final Ticker ticker;
+
+ List<Uri> invalidatedUris = <Uri>[];
+
+ DillTarget platform;
+
+ IncrementalCompiler(this.context)
+ : ticker = new Ticker(isVerbose: context.options.verbose);
+
+ @override
+ Future<FastaDelta> computeDelta({Uri entryPoint}) async {
+ return context.runInContext<Future<FastaDelta>>((CompilerContext c) async {
+ if (platform == null) {
+ UriTranslator uriTranslator = await c.options.getUriTranslator();
+ ticker.logMs("Read packages file");
+
+ platform = new DillTarget(ticker, uriTranslator, c.options.target);
+ List<int> bytes = await c.options.loadSdkSummaryBytes();
+ if (bytes != null) {
+ ticker.logMs("Read ${c.options.sdkSummary}");
+ platform.loader.appendLibraries(loadProgramFromBytes(bytes),
+ byteCount: bytes.length);
+ }
+ await platform.buildOutlines();
+ }
+
+ List<Uri> invalidatedUris = this.invalidatedUris.toList();
+ this.invalidatedUris.clear();
+ print("Changed URIs: ${invalidatedUris.join('\n')}");
+
+ KernelTarget kernelTarget = new KernelTarget(
+ c.fileSystem, false, platform, platform.uriTranslator,
+ uriToSource: c.uriToSource);
+
+ kernelTarget.read(entryPoint);
+
+ await kernelTarget.buildOutlines();
+
+ return new FastaDelta(
+ await kernelTarget.buildProgram(verify: c.options.verify));
+ });
+ }
+
+ @override
+ void invalidate(Uri uri) {
+ invalidatedUris.add(uri);
+ }
+}
diff --git a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
index 7ed8dc5..af82655 100644
--- a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
@@ -1235,7 +1235,8 @@
deprecated_addCompileTimeError(
charOffset, "Not a constant expression.");
}
- return new TypeDeclarationAccessor(this, builder, name, token);
+ return new TypeDeclarationAccessor(
+ this, charOffset, builder, name, token);
} else if (builder.isLocal) {
if (constantExpressionRequired &&
!builder.isConst &&
@@ -2148,7 +2149,7 @@
}
}
push(new Catch(exception, body, guard: type, stackTrace: stackTrace)
- ..fileOffset = offsetForToken(onKeyword));
+ ..fileOffset = offsetForToken(onKeyword ?? catchKeyword));
}
@override
@@ -2330,7 +2331,11 @@
@override
Expression buildStaticInvocation(Member target, Arguments arguments,
- {bool isConst: false, int charOffset: -1, Member initialTarget}) {
+ {bool isConst: false,
+ int charOffset: -1,
+ Member initialTarget,
+ int targetOffset: -1,
+ Class targetClass}) {
initialTarget ??= target;
List<TypeParameter> typeParameters = target.function.typeParameters;
if (target is Constructor) {
@@ -2361,7 +2366,9 @@
isConst: isConst)
..fileOffset = charOffset;
} else {
- return new ShadowStaticInvocation(target, arguments, isConst: isConst)
+ return new ShadowStaticInvocation(
+ targetOffset, targetClass, target, arguments,
+ isConst: isConst)
..fileOffset = charOffset;
}
}
diff --git a/pkg/front_end/lib/src/fasta/kernel/fasta_accessors.dart b/pkg/front_end/lib/src/fasta/kernel/fasta_accessors.dart
index 043cb46..d6091aa 100644
--- a/pkg/front_end/lib/src/fasta/kernel/fasta_accessors.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/fasta_accessors.dart
@@ -107,7 +107,11 @@
[int charOffset = -1]);
Expression buildStaticInvocation(Procedure target, Arguments arguments,
- {bool isConst, int charOffset, Member initialTarget});
+ {bool isConst,
+ int charOffset,
+ Member initialTarget,
+ int targetOffset: -1,
+ Class targetClass});
Expression buildProblemExpression(ProblemBuilder builder, int offset);
@@ -729,13 +733,16 @@
class StaticAccessor extends kernel.StaticAccessor with FastaAccessor {
StaticAccessor(
- BuilderHelper helper, Token token, Member readTarget, Member writeTarget)
- : super(helper, readTarget, writeTarget, token) {
+ BuilderHelper helper, Token token, Member readTarget, Member writeTarget,
+ {int targetOffset: -1, Class targetClass})
+ : super(
+ helper, targetOffset, targetClass, readTarget, writeTarget, token) {
assert(readTarget != null || writeTarget != null);
}
- factory StaticAccessor.fromBuilder(BuilderHelper helper, Builder builder,
- Token token, Builder builderSetter) {
+ factory StaticAccessor.fromBuilder(
+ BuilderHelper helper, Builder builder, Token token, Builder builderSetter,
+ {int targetOffset: -1, Class targetClass}) {
if (builder is AccessErrorBuilder) {
AccessErrorBuilder error = builder;
builder = error.builder;
@@ -753,7 +760,8 @@
setter = builderSetter.target;
}
}
- return new StaticAccessor(helper, token, getter, setter);
+ return new StaticAccessor(helper, token, getter, setter,
+ targetOffset: targetOffset, targetClass: targetClass);
}
String get plainNameForRead => (readTarget ?? writeTarget).name.name;
@@ -772,7 +780,9 @@
isImplicitCall: true);
} else {
return helper.buildStaticInvocation(readTarget, arguments,
- charOffset: offset);
+ charOffset: offset,
+ targetOffset: targetOffset,
+ targetClass: targetClass);
}
}
@@ -986,10 +996,14 @@
}
class TypeDeclarationAccessor extends ReadOnlyAccessor {
+ /// The offset at which the [declaration] is referenced by this accessor,
+ /// or `-1` if the reference is implicit.
+ final int declarationReferenceOffset;
+
final TypeDeclarationBuilder declaration;
- TypeDeclarationAccessor(BuilderHelper helper, this.declaration,
- String plainNameForRead, Token token)
+ TypeDeclarationAccessor(BuilderHelper helper, this.declarationReferenceOffset,
+ this.declaration, String plainNameForRead, Token token)
: super(helper, null, plainNameForRead, token);
Expression get expression {
@@ -1051,8 +1065,10 @@
} else if (builder.isField && !builder.isFinal) {
setter = builder;
}
- accessor =
- new StaticAccessor.fromBuilder(helper, builder, send.token, setter);
+ accessor = new StaticAccessor.fromBuilder(
+ helper, builder, send.token, setter,
+ targetOffset: declarationReferenceOffset,
+ targetClass: declaration.target);
}
return arguments == null
diff --git a/pkg/front_end/lib/src/fasta/kernel/frontend_accessors.dart b/pkg/front_end/lib/src/fasta/kernel/frontend_accessors.dart
index 60aad04..8f7b16f 100644
--- a/pkg/front_end/lib/src/fasta/kernel/frontend_accessors.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/frontend_accessors.dart
@@ -669,11 +669,20 @@
}
class StaticAccessor extends Accessor {
+ /// If [targetClass] is not `null`, the offset at which the explicit
+ /// reference to it is; otherwise `-1`.
+ int targetOffset;
+
+ /// The [Class] that was explicitly referenced to get the [readTarget] or
+ /// the [writeTarget], or `null` if the class is implicit, and targets were
+ /// get from the scope.
+ Class targetClass;
+
Member readTarget;
Member writeTarget;
- StaticAccessor(
- BuilderHelper helper, this.readTarget, this.writeTarget, Token token)
+ StaticAccessor(BuilderHelper helper, this.targetOffset, this.targetClass,
+ this.readTarget, this.writeTarget, Token token)
: super(helper, token);
Expression _makeRead(ShadowComplexAssignment complexAssignment) {
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart
index de4ebb4..6e3b588 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart
@@ -595,6 +595,15 @@
inferrer.listener.constructorInvocationExit(this, inferredType);
return inferredType;
}
+
+ /// Determines whether the given [ShadowConstructorInvocation] represents an
+ /// invocation of a redirected factory constructor.
+ ///
+ /// This is static to avoid introducing a method that would be visible to the
+ /// kernel.
+ static bool isRedirected(ShadowConstructorInvocation expression) {
+ return !identical(expression._initialTarget, expression.target);
+ }
}
/// Concrete shadow object representing a continue statement from a switch
@@ -758,6 +767,7 @@
ShadowVariableDeclaration variable;
var syntheticAssignment = _syntheticAssignment;
Expression syntheticWrite;
+ DartType syntheticWriteType;
if (_declaresVariable) {
variable = this.variable;
if (inferrer.strongMode && variable._implicitlyTyped) {
@@ -768,7 +778,8 @@
}
} else if (syntheticAssignment is ShadowComplexAssignment) {
syntheticWrite = syntheticAssignment.write;
- context = syntheticAssignment._getWriteType(inferrer);
+ syntheticWriteType =
+ context = syntheticAssignment._getWriteType(inferrer);
} else {
context = const UnknownType();
}
@@ -813,6 +824,19 @@
variable.initializer = implicitDowncast..parent = variable;
body = combineStatements(variable, body)..parent = this;
}
+ } else if (syntheticAssignment is ShadowSyntheticExpression) {
+ if (syntheticAssignment is ShadowComplexAssignment) {
+ inferrer.checkAssignability(
+ greatestClosure(inferrer.coreTypes, syntheticWriteType),
+ this.variable.type,
+ syntheticAssignment.rhs,
+ syntheticAssignment.rhs.fileOffset);
+ if (syntheticAssignment is ShadowPropertyAssign) {
+ syntheticAssignment._handleWriteContravariance(
+ inferrer, inferrer.thisType);
+ }
+ }
+ syntheticAssignment._replaceWithDesugared();
}
inferrer.listener.forInStatementExit(this, variable);
}
@@ -1268,11 +1292,7 @@
ShadowLoopAssignmentStatement(Expression expression) : super(expression);
@override
- void _inferStatement(ShadowTypeInferrer inferrer) {
- inferrer.listener.loopAssignmentStatementEnter(this);
- inferrer.inferExpression(expression, null, false);
- inferrer.listener.loopAssignmentStatementExit(this);
- }
+ void _inferStatement(ShadowTypeInferrer inferrer) {}
}
/// Shadow object for [MapLiteral].
@@ -1591,6 +1611,14 @@
return inferrer.getSetterType(writeMember, receiverType);
}
+ Object _handleWriteContravariance(
+ ShadowTypeInferrer inferrer, DartType receiverType) {
+ var writeMember = inferrer.findPropertySetMember(receiverType, write);
+ inferrer.handlePropertySetContravariance(
+ receiver, writeMember, write is PropertySet ? write : null, write);
+ return writeMember;
+ }
+
@override
DartType _inferExpression(
ShadowTypeInferrer inferrer, DartType typeContext, bool typeNeeded) {
@@ -1609,7 +1637,7 @@
}
Member writeMember;
if (write != null) {
- writeMember = inferrer.findPropertySetMember(receiverType, write);
+ writeMember = _handleWriteContravariance(inferrer, receiverType);
}
// To replicate analyzer behavior, we base type inference on the write
// member. TODO(paulberry): would it be better to use the read member when
@@ -1769,18 +1797,24 @@
/// Shadow object for [StaticInvocation].
class ShadowStaticInvocation extends StaticInvocation
implements ShadowExpression {
- ShadowStaticInvocation(Procedure target, Arguments arguments,
+ /// If [_targetClass] is not `null`, the offset at which the explicit
+ /// reference to it is; otherwise `-1`.
+ int _targetOffset;
+
+ /// The [Class] that was explicitly referenced to get the target [Procedure],
+ /// or `null` if the class is implicit.
+ Class _targetClass;
+
+ ShadowStaticInvocation(this._targetOffset, this._targetClass,
+ Procedure target, Arguments arguments,
{bool isConst: false})
: super(target, arguments, isConst: isConst);
- ShadowStaticInvocation.byReference(
- Reference targetReference, Arguments arguments)
- : super.byReference(targetReference, arguments);
-
@override
DartType _inferExpression(
ShadowTypeInferrer inferrer, DartType typeContext, bool typeNeeded) {
- typeNeeded = inferrer.listener.staticInvocationEnter(this, typeContext) ||
+ typeNeeded = inferrer.listener.staticInvocationEnter(
+ this, _targetOffset, _targetClass, typeContext) ||
typeNeeded;
var calleeType = target.function.functionType;
var inferredType = inferrer.inferInvocation(typeContext, typeNeeded,
@@ -1994,42 +2028,6 @@
}
}
-/// Shadow object for statements that are introduced by the front end as part
-/// of desugaring or the handling of error conditions.
-///
-/// By default, type inference skips these statements entirely. Some derived
-/// classes may have type inference behaviors.
-///
-/// Visitors skip over objects of this type, so it is not included in serialized
-/// output.
-class ShadowSyntheticStatement extends Statement implements ShadowStatement {
- /// The desugared kernel representation of this synthetic statement.
- Statement desugared;
-
- ShadowSyntheticStatement(this.desugared);
-
- @override
- void set parent(TreeNode node) {
- super.parent = node;
- desugared?.parent = node;
- }
-
- @override
- accept(StatementVisitor v) => desugared.accept(v);
-
- @override
- accept1(StatementVisitor1 v, arg) => desugared.accept1(v, arg);
-
- @override
- transformChildren(Transformer v) => desugared.transformChildren(v);
-
- @override
- visitChildren(Visitor v) => desugared.visitChildren(v);
-
- @override
- void _inferStatement(ShadowTypeInferrer inferrer) {}
-}
-
/// Shadow object for [ThisExpression].
class ShadowThisExpression extends ThisExpression implements ShadowExpression {
@override
@@ -2068,7 +2066,9 @@
inferrer.listener.tryCatchEnter(this);
inferrer.inferStatement(body);
for (var catch_ in catches) {
+ inferrer.listener.catchStatementEnter(catch_);
inferrer.inferStatement(catch_.body);
+ inferrer.listener.catchStatementExit(catch_);
}
inferrer.listener.tryCatchExit(this);
}
@@ -2417,6 +2417,14 @@
/// the kernel.
static bool isImplicitlyTyped(ShadowVariableDeclaration variable) =>
variable._implicitlyTyped;
+
+ /// Determines whether the given [ShadowVariableDeclaration] represents a
+ /// local function.
+ ///
+ /// This is static to avoid introducing a method that would be visible to the
+ /// kernel.
+ static bool isLocalFunction(ShadowVariableDeclaration variable) =>
+ variable._isLocalFunction;
}
/// Concrete shadow object representing a read from a variable in kernel form.
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
index 4c853da..b572b7d 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
@@ -261,6 +261,7 @@
loader.performTopLevelInference(sourceClasses);
}
} on deprecated_InputError catch (e) {
+ ticker.logMs("Got deprecated_InputError");
handleInputError(e, isFullProgram: false);
} catch (e, s) {
return reportCrash(e, s, loader?.currentUriForCrashReporting);
@@ -284,6 +285,7 @@
}
try {
+ ticker.logMs("Building program");
await loader.buildBodies();
loader.finishStaticInvocations();
loader.finishDeferredLoadTearoffs();
@@ -298,6 +300,7 @@
}
handleRecoverableErrors(loader.unhandledErrors);
} on deprecated_InputError catch (e) {
+ ticker.logMs("Got deprecated_InputError");
handleInputError(e, isFullProgram: true);
} catch (e, s) {
return reportCrash(e, s, loader?.currentUriForCrashReporting);
diff --git a/pkg/front_end/lib/src/fasta/loader.dart b/pkg/front_end/lib/src/fasta/loader.dart
index 3ff76ab..dd8a8e7 100644
--- a/pkg/front_end/lib/src/fasta/loader.dart
+++ b/pkg/front_end/lib/src/fasta/loader.dart
@@ -13,7 +13,13 @@
import 'deprecated_problems.dart' show firstSourceUri;
import 'messages.dart'
- show LocatedMessage, Message, messagePlatformPrivateLibraryAccess;
+ show
+ LocatedMessage,
+ Message,
+ SummaryTemplate,
+ Template,
+ messagePlatformPrivateLibraryAccess,
+ templateSourceBodySummary;
import 'severity.dart' show Severity;
@@ -60,6 +66,8 @@
Ticker get ticker => target.ticker;
+ Template<SummaryTemplate> get outlineSummaryTemplate;
+
/// Look up a library builder by the name [uri], or if such doesn't
/// exist, create one. The canonical URI of the library is [uri], and its
/// actual location is [fileUri].
@@ -138,16 +146,7 @@
await buildBody(library);
}
currentUriForCrashReporting = null;
- ticker.log((Duration elapsed, Duration sinceStart) {
- int libraryCount = builders.length;
- double ms =
- elapsed.inMicroseconds / Duration.MICROSECONDS_PER_MILLISECOND;
- String message = "Built $libraryCount compilation units";
- print("""
-$sinceStart: $message ($byteCount bytes) in ${format(ms, 3, 0)}ms, that is,
-${format(byteCount / ms, 3, 12)} bytes/ms, and
-${format(ms / libraryCount, 3, 12)} ms/compilation unit.""");
- });
+ logSummary(templateSourceBodySummary);
}
Future<Null> buildOutlines() async {
@@ -158,18 +157,24 @@
await buildOutline(library);
}
currentUriForCrashReporting = null;
+ logSummary(outlineSummaryTemplate);
+ }
+
+ void logSummary(Template<SummaryTemplate> template) {
ticker.log((Duration elapsed, Duration sinceStart) {
- int libraryCount = builders.length;
+ int libraryCount = 0;
+ builders.forEach((Uri uri, LibraryBuilder library) {
+ if (library.loader == this) libraryCount++;
+ });
double ms =
elapsed.inMicroseconds / Duration.MICROSECONDS_PER_MILLISECOND;
- String message = "Built outlines for $libraryCount compilation units";
- // TODO(ahe): Share this message with [buildBodies]. Also make it easy to
- // tell the difference between outlines read from a dill file or source
- // files. Currently, [libraryCount] is wrong for dill files.
- print("""
-$sinceStart: $message ($byteCount bytes) in ${format(ms, 3, 0)}ms, that is,
-${format(byteCount / ms, 3, 12)} bytes/ms, and
-${format(ms / libraryCount, 3, 12)} ms/compilation unit.""");
+ Message message = template.withArguments(
+ libraryCount,
+ byteCount,
+ "${format(ms, 3, 0)}ms",
+ format(byteCount / ms, 3, 12),
+ format(ms / libraryCount, 3, 12));
+ print("$sinceStart: ${message.message}");
});
}
diff --git a/pkg/front_end/lib/src/fasta/parser/forwarding_listener.dart b/pkg/front_end/lib/src/fasta/parser/forwarding_listener.dart
index 428f4b0..54a46f2 100644
--- a/pkg/front_end/lib/src/fasta/parser/forwarding_listener.dart
+++ b/pkg/front_end/lib/src/fasta/parser/forwarding_listener.dart
@@ -932,6 +932,11 @@
}
@override
+ void handleDirectivesOnly() {
+ listener?.handleDirectivesOnly();
+ }
+
+ @override
void handleDottedName(int count, Token firstIdentifier) {
listener?.handleDottedName(count, firstIdentifier);
}
diff --git a/pkg/front_end/lib/src/fasta/parser/listener.dart b/pkg/front_end/lib/src/fasta/parser/listener.dart
index 87533b1..cf5e615 100644
--- a/pkg/front_end/lib/src/fasta/parser/listener.dart
+++ b/pkg/front_end/lib/src/fasta/parser/listener.dart
@@ -140,6 +140,14 @@
void beginCompilationUnit(Token token) {}
+ /// This method exists for analyzer compatibility only
+ /// and will be removed once analyzer/fasta integration is complete.
+ ///
+ /// This is called when [parseDirectives] has parsed all directives
+ /// and is skipping the remainder of the file. Substructures:
+ /// - metadata
+ void handleDirectivesOnly() {}
+
void endCompilationUnit(int count, Token token) {
logEvent("CompilationUnit");
}
diff --git a/pkg/front_end/lib/src/fasta/parser/parser.dart b/pkg/front_end/lib/src/fasta/parser/parser.dart
index 1c2887c..c5d0ff8 100644
--- a/pkg/front_end/lib/src/fasta/parser/parser.dart
+++ b/pkg/front_end/lib/src/fasta/parser/parser.dart
@@ -29,6 +29,7 @@
import '../scanner/token_constants.dart'
show
+ CLOSE_CURLY_BRACKET_TOKEN,
COMMA_TOKEN,
DOUBLE_TOKEN,
EOF_TOKEN,
@@ -90,7 +91,7 @@
import 'type_continuation.dart'
show TypeContinuation, typeContiunationFromFormalParameterKind;
-import 'util.dart' show closeBraceTokenFor, optional;
+import 'util.dart' show beforeCloseBraceTokenFor, closeBraceTokenFor, optional;
/// An event generating parser of Dart programs. This parser expects all tokens
/// in a linked list (aka a token stream).
@@ -304,7 +305,7 @@
DirectiveContext directiveState = new DirectiveContext();
token = syntheticPreviousToken(token);
while (!token.next.isEof) {
- Token start = token.next;
+ final Token start = token.next;
token = parseTopLevelDeclarationImpl(token, directiveState);
listener.endTopLevelDeclaration(token.next);
count++;
@@ -326,6 +327,65 @@
return token;
}
+ /// This method exists for analyzer compatibility only
+ /// and will be removed once analyzer/fasta integration is complete.
+ ///
+ /// Similar to [parseUnit], this method parses a compilation unit,
+ /// but stops when it reaches the first declaration or EOF.
+ ///
+ /// This method is only invoked from outside the parser. As a result, this
+ /// method takes the next token to be consumed rather than the last consumed
+ /// token and returns the token after the last consumed token rather than the
+ /// last consumed token.
+ Token parseDirectives(Token token) {
+ listener.beginCompilationUnit(token);
+ int count = 0;
+ DirectiveContext directiveState = new DirectiveContext();
+ token = syntheticPreviousToken(token);
+ while (!token.next.isEof) {
+ final Token start = token.next;
+ final String value = start.stringValue;
+ final String nextValue = start.next.stringValue;
+
+ // If a built-in keyword is being used as function name, then stop.
+ if (identical(nextValue, '.') ||
+ identical(nextValue, '<') ||
+ identical(nextValue, '(')) {
+ break;
+ }
+
+ if (identical(token.next.type, TokenType.SCRIPT_TAG)) {
+ directiveState?.checkScriptTag(this, token.next);
+ token = parseScript(token);
+ } else {
+ token = parseMetadataStar(token);
+ if (identical(value, 'import')) {
+ directiveState?.checkImport(this, token);
+ token = parseImport(token);
+ } else if (identical(value, 'export')) {
+ directiveState?.checkExport(this, token);
+ token = parseExport(token);
+ } else if (identical(value, 'library')) {
+ directiveState?.checkLibrary(this, token);
+ token = parseLibraryName(token);
+ } else if (identical(value, 'part')) {
+ token = parsePartOrPartOf(token, directiveState);
+ } else if (identical(value, ';')) {
+ token = start;
+ } else {
+ listener.handleDirectivesOnly();
+ break;
+ }
+ }
+ listener.endTopLevelDeclaration(token.next);
+ }
+ token = token.next;
+ listener.endCompilationUnit(count, token);
+ // Clear fields that could lead to memory leak.
+ cachedRewriter = null;
+ return token;
+ }
+
/// Parse a top-level declaration.
///
/// This method is only invoked from outside the parser. As a result, this
@@ -1725,7 +1785,7 @@
context == IdentifierContext.localFunctionDeclarationContinuation) {
followingValues = ['.', '(', '{', '=>'];
} else if (context == IdentifierContext.localVariableDeclaration) {
- followingValues = [';', '=', ','];
+ followingValues = [';', '=', ',', '}'];
} else if (context == IdentifierContext.methodDeclaration ||
context == IdentifierContext.methodDeclarationContinuation) {
followingValues = ['.', '(', '{', '=>'];
@@ -2103,10 +2163,15 @@
return token.previous;
}
- /// Returns true if [kind] is '=', ';', or ',', that is, if [kind] could be
- /// the end of a variable declaration.
+ /// Returns true if [kind] could be the end of a variable declaration.
bool looksLikeVariableDeclarationEnd(int kind) {
- return EQ_TOKEN == kind || SEMICOLON_TOKEN == kind || COMMA_TOKEN == kind;
+ return EQ_TOKEN == kind ||
+ SEMICOLON_TOKEN == kind ||
+ COMMA_TOKEN == kind ||
+ // Recovery: Return true for these additional invalid situations
+ // in which we assume a missing semicolon.
+ OPEN_CURLY_BRACKET_TOKEN == kind ||
+ CLOSE_CURLY_BRACKET_TOKEN == kind;
}
/// Returns true if [token] could be the start of a function body.
@@ -2568,43 +2633,60 @@
Token parseStuff(Token token, Function beginStuff, Function stuffParser,
Function endStuff, Function handleNoStuff) {
// TODO(brianwilkerson): Rename to `parseStuffOpt`?
+
+ bool rewriteEndToken(Token beforeEnd) {
+ Token end = beforeEnd.next;
+ String value = end?.stringValue;
+ if (value != null && value.length > 1) {
+ if (identical(value, '>>')) {
+ Token replacement = new Token(TokenType.GT, end.charOffset);
+ replacement.next = new Token(TokenType.GT, end.charOffset + 1);
+ rewriter.replaceTokenFollowing(beforeEnd, replacement);
+ return true;
+ } else if (identical(value, '>=')) {
+ Token replacement = new Token(TokenType.GT, end.charOffset);
+ replacement.next = new Token(TokenType.EQ, end.charOffset + 1);
+ rewriter.replaceTokenFollowing(beforeEnd, replacement);
+ return true;
+ } else if (identical(value, '>>=')) {
+ Token replacement = new Token(TokenType.GT, end.charOffset);
+ replacement.next = new Token(TokenType.GT, end.charOffset + 1);
+ replacement.next.next = new Token(TokenType.EQ, end.charOffset + 2);
+ rewriter.replaceTokenFollowing(beforeEnd, replacement);
+ return true;
+ }
+ }
+ return false;
+ }
+
// TODO(brianwilkerson): Remove the invocation of `previous` when
// `injectGenericCommentTypeList` returns the last consumed token.
token = listener.injectGenericCommentTypeList(token.next).previous;
Token next = token.next;
if (optional('<', next)) {
- Token begin = next;
+ BeginToken begin = next;
+ Token end = begin.endToken;
+ if (end != null) {
+ Token beforeEnd = previousToken(begin, end);
+ if (rewriteEndToken(beforeEnd)) {
+ begin.endToken = null;
+ }
+ }
beginStuff(begin);
int count = 0;
do {
token = stuffParser(token.next);
++count;
} while (optional(',', token.next));
-
- // Rewrite `>>`, `>=`, and `>>=` tokens
- next = token.next;
- String value = next.stringValue;
- if (value != null && value.length > 1) {
- Token replacement = new Token(TokenType.GT, next.charOffset);
- if (identical(value, '>>')) {
- replacement.next = new Token(TokenType.GT, next.charOffset + 1);
- token = rewriter.replaceTokenFollowing(token, replacement);
- } else if (identical(value, '>=')) {
- replacement.next = new Token(TokenType.EQ, next.charOffset + 1);
- token = rewriter.replaceTokenFollowing(token, replacement);
- } else if (identical(value, '>>=')) {
- replacement.next = new Token(TokenType.GT, next.charOffset + 1);
- replacement.next.next = new Token(TokenType.EQ, next.charOffset + 2);
- token = rewriter.replaceTokenFollowing(token, replacement);
- } else {
- token = next;
+ if (end == null) {
+ if (rewriteEndToken(token)) {
+ begin.endToken = null;
}
- } else {
- token = next;
}
-
+ token = token.next;
endStuff(count, begin, token);
expect('>', token);
+ begin.endToken ??= token;
return token;
}
handleNoStuff(next);
@@ -2924,16 +3006,13 @@
if (token.next is BeginToken) {
previous = token;
token = token.next;
- Token closeBrace = closeBraceTokenFor(token);
- if (closeBrace == null) {
+ Token beforeCloseBrace = beforeCloseBraceTokenFor(token);
+ if (beforeCloseBrace == null) {
previous = reportUnmatchedToken(token);
token = previous.next;
} else {
- token = closeBrace;
- // TODO(brianwilkerson): Remove the invocation of `previous`
- // when `closeBraceTokenFor` returns the token before the
- // closing brace.
- previous = token.previous;
+ previous = beforeCloseBrace;
+ token = beforeCloseBrace.next;
}
}
}
@@ -2962,8 +3041,8 @@
if (token.next is BeginToken) {
previous = token;
token = token.next;
- Token closeBrace = closeBraceTokenFor(token);
- if (closeBrace == null) {
+ Token beforeCloseBrace = beforeCloseBraceTokenFor(token);
+ if (beforeCloseBrace == null) {
// Handle the edge case where the user is defining the less
// than operator, as in "bool operator <(other) => false;"
if (optional('operator', identifier)) {
@@ -2974,11 +3053,8 @@
token = previous.next;
}
} else {
- token = closeBrace;
- // TODO(brianwilkerson): Remove the invocation of `previous`
- // when `closeBraceTokenFor` returns the token before the
- // closing brace.
- previous = token.previous;
+ previous = beforeCloseBrace;
+ token = beforeCloseBrace.next;
}
}
}
@@ -4330,6 +4406,7 @@
next.precedingComments),
new Token(TokenType.CLOSE_SQUARE_BRACKET, next.charOffset + 1));
rewriter.replaceTokenFollowing(token, replacement);
+ replacement.endToken = replacement.next;
token = parseArgumentOrIndexStar(token, null);
} else {
token = reportUnexpectedToken(token.next);
@@ -4687,6 +4764,7 @@
new BeginToken(TokenType.OPEN_SQUARE_BRACKET, token.offset),
new Token(TokenType.CLOSE_SQUARE_BRACKET, token.offset + 1));
rewriter.replaceTokenFollowing(beforeToken, replacement);
+ replacement.endToken = replacement.next;
token = replacement.next;
listener.handleLiteralList(0, replacement, constKeyword, token);
return token;
@@ -5101,8 +5179,43 @@
if (colon != null) listener.handleNamedArgument(colon);
++argumentCount;
if (!optional(',', next)) {
- token = ensureCloseParen(token, begin);
- break;
+ if (optional(')', next)) {
+ token = next;
+ break;
+ }
+ // Recovery
+ // TODO(danrubel): Consider using isPostIdentifierForRecovery
+ // and isStartOfNextSibling.
+ if (next.isKeywordOrIdentifier ||
+ next.type == TokenType.DOUBLE ||
+ next.type == TokenType.HASH ||
+ next.type == TokenType.HEXADECIMAL ||
+ next.type == TokenType.IDENTIFIER ||
+ next.type == TokenType.INT ||
+ next.type == TokenType.STRING ||
+ optional('{', next) ||
+ optional('(', next) ||
+ optional('[', next) ||
+ optional('[]', next) ||
+ optional('<', next) ||
+ optional('!', next) ||
+ optional('-', next) ||
+ optional('~', next) ||
+ optional('++', next) ||
+ optional('--', next)) {
+ // If this looks like the start of an expression,
+ // then report an error, insert the comma, and continue parsing.
+ next = rewriteAndRecover(
+ token,
+ fasta.templateExpectedButGot.withArguments(','),
+ new SyntheticToken(TokenType.COMMA, next.offset));
+ } else {
+ reportRecoverableError(
+ next, fasta.templateExpectedButGot.withArguments(')'));
+ // Scanner guarantees a closing parenthesis
+ token = begin.endGroup;
+ break;
+ }
}
token = next;
}
diff --git a/pkg/front_end/lib/src/fasta/parser/util.dart b/pkg/front_end/lib/src/fasta/parser/util.dart
index d392a26..9f5cd6c 100644
--- a/pkg/front_end/lib/src/fasta/parser/util.dart
+++ b/pkg/front_end/lib/src/fasta/parser/util.dart
@@ -16,3 +16,19 @@
/// Returns the close brace, bracket, or parenthesis of [left]. For '<', it may
/// return null.
Token closeBraceTokenFor(BeginToken left) => left.endToken;
+
+/// Returns the token before the close brace, bracket, or parenthesis
+/// associated with [left]. For '<', it may return `null`.
+Token beforeCloseBraceTokenFor(BeginToken left) {
+ Token endToken = left.endToken;
+ if (endToken == null) {
+ return null;
+ }
+ Token token = left;
+ Token next = token.next;
+ while (next != endToken && next != next.next) {
+ token = next;
+ next = token.next;
+ }
+ return token;
+}
diff --git a/pkg/front_end/lib/src/fasta/source/source_loader.dart b/pkg/front_end/lib/src/fasta/source/source_loader.dart
index 27ae91b..180d4cb 100644
--- a/pkg/front_end/lib/src/fasta/source/source_loader.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_loader.dart
@@ -46,13 +46,16 @@
show
LocatedMessage,
Message,
+ SummaryTemplate,
+ Template,
templateCyclicClassHierarchy,
templateExtendingEnum,
templateExtendingRestricted,
templateIllegalMixin,
templateIllegalMixinDueToConstructors,
templateIllegalMixinDueToConstructorsCause,
- templateInternalProblemUriMissingScheme;
+ templateInternalProblemUriMissingScheme,
+ templateSourceOutlineSummary;
import '../fasta_codes.dart' as fasta_codes;
@@ -107,6 +110,9 @@
SourceLoader(this.fileSystem, this.includeComments, KernelTarget target)
: super(target);
+ Template<SummaryTemplate> get outlineSummaryTemplate =>
+ templateSourceOutlineSummary;
+
Future<Token> tokenize(SourceLibraryBuilder library,
{bool suppressLexicalErrors: false}) async {
Uri uri = library.fileUri;
@@ -132,12 +138,12 @@
zeroTerminatedBytes.setRange(0, rawBytes.length, rawBytes);
bytes = zeroTerminatedBytes;
sourceBytes[uri] = bytes;
+ byteCount += rawBytes.length;
} on FileSystemException catch (e) {
return deprecated_inputError(uri, -1, e.message);
}
}
- byteCount += bytes.length - 1;
ScannerResult result = scan(bytes, includeComments: includeComments);
Token token = result.tokens;
if (!suppressLexicalErrors) {
diff --git a/pkg/front_end/lib/src/fasta/source/stack_listener.dart b/pkg/front_end/lib/src/fasta/source/stack_listener.dart
index 940d362..a82e12d 100644
--- a/pkg/front_end/lib/src/fasta/source/stack_listener.dart
+++ b/pkg/front_end/lib/src/fasta/source/stack_listener.dart
@@ -309,6 +309,11 @@
debugEvent("RecoverExpression");
}
+ @override
+ void handleDirectivesOnly() {
+ pop(); // Discard the metadata.
+ }
+
void handleExtraneousExpression(Token token, Message message) {
debugEvent("ExtraneousExpression");
pop(); // Discard the extraneous expression.
diff --git a/pkg/front_end/lib/src/fasta/type_inference/interface_resolver.dart b/pkg/front_end/lib/src/fasta/type_inference/interface_resolver.dart
index 2087b9d..ea8dc78 100644
--- a/pkg/front_end/lib/src/fasta/type_inference/interface_resolver.dart
+++ b/pkg/front_end/lib/src/fasta/type_inference/interface_resolver.dart
@@ -333,6 +333,9 @@
.getDispatchTarget(superclass, procedure.name,
setter: kind == ProcedureKind.Setter);
if (superTarget == null) return;
+ if (superTarget is Procedure && superTarget.isForwardingStub) {
+ superTarget = _getForwardingStubSuperTarget(superTarget);
+ }
procedure.isAbstract = false;
if (!procedure.isForwardingStub) {
_interfaceResolver._instrumentation?.record(
@@ -425,9 +428,15 @@
typeParameters: typeParameters,
requiredParameterCount: target.function.requiredParameterCount,
returnType: substitution.substituteType(target.function.returnType));
- return new Procedure(name, kind, function,
- isAbstract: true,
- isForwardingStub: true,
+ Member finalTarget;
+ if (target is ForwardingStub) {
+ finalTarget = ForwardingStub.getInterfaceTarget(target);
+ } else if (target is SyntheticAccessor) {
+ finalTarget = target._field;
+ } else {
+ finalTarget = target;
+ }
+ return new ForwardingStub(finalTarget, name, kind, function,
fileUri: enclosingClass.fileUri)
..fileOffset = enclosingClass.fileOffset
..parent = enclosingClass
@@ -595,6 +604,45 @@
static List<Procedure> getCandidates(ForwardingNode node) {
return node._candidates.sublist(node._start, node._end);
}
+
+ static Member _getForwardingStubSuperTarget(Procedure forwardingStub) {
+ // TODO(paulberry): when dartbug.com/31562 is fixed, this should become
+ // easier.
+ ReturnStatement body = forwardingStub.function.body;
+ var expression = body.expression;
+ if (expression is SuperMethodInvocation) {
+ return expression.interfaceTarget;
+ } else if (expression is SuperPropertySet) {
+ return expression.interfaceTarget;
+ } else {
+ return unhandled('${expression.runtimeType}',
+ '_getForwardingStubSuperTarget', -1, null);
+ }
+ }
+}
+
+/// Represents a [Procedure] generated by the front end to serve as a forwarding
+/// stub.
+///
+/// This class exists to work around dartbug.com/31519.
+/// TODO(paulberry): remove when dartbug.com/31519 is fixed.
+class ForwardingStub extends Procedure {
+ /// The interface target that this forwarding stub replaces.
+ final Member _interfaceTarget;
+
+ ForwardingStub(this._interfaceTarget, Name name, ProcedureKind kind,
+ FunctionNode function, {Uri fileUri})
+ : super(name, kind, function,
+ isAbstract: true, isForwardingStub: true, fileUri: fileUri);
+
+ /// Retrieves the [_interfaceTarget] from a forwarding stub.
+ ///
+ /// This method exists so that we don't have to expose [_interfaceTarget] as
+ /// a public getter (which might confuse clients of the front end that aren't
+ /// expecting it).
+ static Member getInterfaceTarget(ForwardingStub stub) {
+ return stub._interfaceTarget;
+ }
}
/// An [InterfaceResolver] keeps track of the information necessary to resolve
@@ -1004,7 +1052,10 @@
if (procedure is SyntheticAccessor) {
return ShadowField.isImplicitlyTyped(procedure._field);
}
- if (ShadowProcedure.hasImplicitReturnType(procedure)) return true;
+ if (procedure.kind != ProcedureKind.Setter &&
+ ShadowProcedure.hasImplicitReturnType(procedure)) {
+ return true;
+ }
var function = procedure.function;
for (var parameter in function.positionalParameters) {
if (ShadowVariableDeclaration.isImplicitlyTyped(parameter)) return true;
diff --git a/pkg/front_end/lib/src/fasta/type_inference/type_inference_listener.dart b/pkg/front_end/lib/src/fasta/type_inference/type_inference_listener.dart
index 720f0c0..60f5508 100644
--- a/pkg/front_end/lib/src/fasta/type_inference/type_inference_listener.dart
+++ b/pkg/front_end/lib/src/fasta/type_inference/type_inference_listener.dart
@@ -148,6 +148,10 @@
void cascadeExpressionExit(Let expression, DartType inferredType) =>
genericExpressionExit("cascade", expression, inferredType);
+ void catchStatementEnter(Catch statement) {}
+
+ void catchStatementExit(Catch statement) {}
+
bool conditionalExpressionEnter(
ConditionalExpression expression, DartType typeContext) =>
genericExpressionEnter("conditionalExpression", expression, typeContext);
@@ -298,12 +302,6 @@
LogicalExpression expression, DartType inferredType) =>
genericExpressionExit("logicalExpression", expression, inferredType);
- void loopAssignmentStatementEnter(ExpressionStatement statement) =>
- genericStatementEnter('loopAssignmentStatement', statement);
-
- void loopAssignmentStatementExit(ExpressionStatement statement) =>
- genericStatementExit('loopAssignmentStatement', statement);
-
bool mapLiteralEnter(MapLiteral expression, DartType typeContext) =>
genericExpressionEnter("mapLiteral", expression, typeContext);
@@ -415,8 +413,8 @@
void staticGetExit(StaticGet expression, DartType inferredType) =>
genericExpressionExit("staticGet", expression, inferredType);
- bool staticInvocationEnter(
- StaticInvocation expression, DartType typeContext) =>
+ bool staticInvocationEnter(StaticInvocation expression, int targetOffset,
+ Class targetClass, DartType typeContext) =>
genericExpressionEnter("staticInvocation", expression, typeContext);
void staticInvocationExit(
diff --git a/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart b/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart
index 581894d..ab6c6cc 100644
--- a/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart
+++ b/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart
@@ -23,11 +23,13 @@
AsyncMarker,
BottomType,
Class,
+ ConstructorInvocation,
DartType,
DispatchCategory,
DynamicType,
Expression,
Field,
+ FunctionExpression,
FunctionNode,
FunctionType,
Initializer,
@@ -35,6 +37,7 @@
InvocationExpression,
Let,
ListLiteral,
+ MapLiteral,
Member,
MethodInvocation,
Name,
@@ -42,8 +45,8 @@
ProcedureKind,
PropertyGet,
PropertySet,
- ReturnStatement,
Statement,
+ StaticGet,
SuperMethodInvocation,
SuperPropertyGet,
SuperPropertySet,
@@ -51,6 +54,7 @@
TypeParameter,
TypeParameterType,
VariableDeclaration,
+ VariableGet,
VoidType;
import 'package:kernel/class_hierarchy.dart';
import 'package:kernel/core_types.dart';
@@ -162,27 +166,13 @@
inferrer, type, unwrappedType, expression, fileOffset, isYieldStar);
}
- DartType inferReturnType(
- TypeInferrerImpl inferrer, bool isExpressionFunction) {
+ DartType inferReturnType(TypeInferrerImpl inferrer) {
assert(_needToInferReturnType);
- DartType inferredReturnType =
- inferrer.inferReturnType(_inferredReturnType, isExpressionFunction);
- if (!isExpressionFunction &&
- returnContext != null &&
+ DartType inferredReturnType = inferrer.inferReturnType(_inferredReturnType);
+ if (returnContext != null &&
!_analyzerSubtypeOf(inferrer, inferredReturnType, returnContext)) {
- // For block-bodied functions, if the inferred return type isn't a
- // subtype of the context, we use the context. We use analyzer subtyping
- // rules here.
- // TODO(paulberry): this is inherited from analyzer; it's not part of
- // the spec. See also dartbug.com/29606.
- inferredReturnType = greatestClosure(inferrer.coreTypes, returnContext);
- } else if (isExpressionFunction &&
- returnContext != null &&
- inferredReturnType is DynamicType) {
- // For expression-bodied functions, if the inferred return type is
- // `dynamic`, we use the context.
- // TODO(paulberry): this is inherited from analyzer; it's not part of the
- // spec.
+ // If the inferred return type isn't a subtype of the context, we use the
+ // context.
inferredReturnType = greatestClosure(inferrer.coreTypes, returnContext);
}
@@ -208,7 +198,13 @@
var expectedType = isYieldStar
? _wrapAsyncOrGenerator(inferrer, returnContext)
: returnContext;
- inferrer.checkAssignability(expectedType, type, expression, fileOffset);
+ if (expectedType != null) {
+ inferrer.checkAssignability(
+ greatestClosure(inferrer.coreTypes, expectedType),
+ type,
+ expression,
+ fileOffset);
+ }
}
}
@@ -388,6 +384,7 @@
/// an implicit downcast if appropriate.
Expression checkAssignability(DartType expectedType, DartType actualType,
Expression expression, int fileOffset) {
+ assert(expectedType == null || isKnown(expectedType));
// We don't need to insert assignability checks when doing top level type
// inference since top level type inference only cares about the type that
// is inferred (the kernel code is discarded).
@@ -410,13 +407,24 @@
parent?.replaceChild(expression, errorNode);
return errorNode;
} else {
- // Insert an implicit downcast.
- var parent = expression.parent;
- var typeCheck = new AsExpression(expression, expectedType)
- ..isTypeError = true
- ..fileOffset = fileOffset;
- parent?.replaceChild(expression, typeCheck);
- return typeCheck;
+ var template = _getPreciseTypeErrorTemplate(expression);
+ if (template != null) {
+ // The type of the expression is known precisely, so an implicit
+ // downcast is guaranteed to fail. Insert a compile-time error.
+ var parent = expression.parent;
+ var errorNode = helper.wrapInCompileTimeError(
+ expression, template.withArguments(actualType, expectedType));
+ parent?.replaceChild(expression, errorNode);
+ return errorNode;
+ } else {
+ // Insert an implicit downcast.
+ var parent = expression.parent;
+ var typeCheck = new AsExpression(expression, expectedType)
+ ..isTypeError = true
+ ..fileOffset = fileOffset;
+ parent?.replaceChild(expression, typeCheck);
+ return typeCheck;
+ }
}
} else {
return null;
@@ -784,6 +792,35 @@
}
}
+ /// Determines the dispatch category of a [PropertySet].
+ void handlePropertySetContravariance(Expression receiver,
+ Object interfaceMember, PropertySet desugaredSet, Expression expression) {
+ DispatchCategory callKind;
+ if (receiver is ThisExpression || receiver == null) {
+ callKind = DispatchCategory.viaThis;
+ } else if (interfaceMember == null) {
+ callKind = DispatchCategory.dynamicDispatch;
+ } else {
+ callKind = DispatchCategory.interface;
+ }
+ desugaredSet?.dispatchCategory = callKind;
+ if (instrumentation != null) {
+ int offset = expression.fileOffset;
+ switch (callKind) {
+ case DispatchCategory.dynamicDispatch:
+ instrumentation.record(uri, offset, 'callKind',
+ new InstrumentationValueLiteral('dynamic'));
+ break;
+ case DispatchCategory.viaThis:
+ instrumentation.record(
+ uri, offset, 'callKind', new InstrumentationValueLiteral('this'));
+ break;
+ default:
+ break;
+ }
+ }
+ }
+
/// Modifies a type as appropriate when inferring a declared variable's type.
DartType inferDeclarationType(DartType initializerType) {
if (initializerType is BottomType ||
@@ -1037,7 +1074,9 @@
ShadowVariableDeclaration formal = formals[i];
if (ShadowVariableDeclaration.isImplicitlyTyped(formal)) {
DartType inferredType;
- if (formalTypesFromContext[i] != null) {
+ if (formalTypesFromContext[i] == coreTypes.nullClass.rawType) {
+ inferredType = coreTypes.objectClass.rawType;
+ } else if (formalTypesFromContext[i] != null) {
inferredType = greatestClosure(coreTypes,
substitution.substituteType(formalTypesFromContext[i]));
} else {
@@ -1058,10 +1097,9 @@
// Apply type inference to `B` in return context `N’`, with any references
// to `xi` in `B` having type `Pi`. This produces `B’`.
- bool isExpressionFunction = function.body is ReturnStatement;
bool needToSetReturnType = hasImplicitReturnType && strongMode;
ClosureContext oldClosureContext = this.closureContext;
- bool needImplicitDowncasts = returnContext != null && !isExpressionFunction;
+ bool needImplicitDowncasts = returnContext != null;
ClosureContext closureContext = new ClosureContext(
this,
function.asyncMarker,
@@ -1078,8 +1116,7 @@
// or `void` if `B’` contains no `return` expressions.
DartType inferredReturnType;
if (needToSetReturnType) {
- inferredReturnType =
- closureContext.inferReturnType(this, isExpressionFunction);
+ inferredReturnType = closureContext.inferReturnType(this);
}
// Then the result of inference is `<T0, ..., Tn>(R0 x0, ..., Rn xn) B` with
@@ -1223,19 +1260,12 @@
}
/// Modifies a type as appropriate when inferring a closure return type.
- DartType inferReturnType(DartType returnType, bool isExpressionFunction) {
+ DartType inferReturnType(DartType returnType) {
if (returnType == null) {
// Analyzer infers `Null` if there is no `return` expression; the spec
// says to return `void`. TODO(paulberry): resolve this difference.
return coreTypes.nullClass.rawType;
}
- if (isExpressionFunction &&
- returnType is InterfaceType &&
- identical(returnType.classNode, coreTypes.nullClass)) {
- // Analyzer coerces `Null` to `dynamic` in expression functions; the spec
- // doesn't say to do this. TODO(paulberry): resolve this difference.
- return const DynamicType();
- }
return returnType;
}
@@ -1403,4 +1433,48 @@
}
return classHierarchy.getInterfaceMember(class_, name, setter: setter);
}
+
+ /// Determines if the given [expression]'s type is precisely known at compile
+ /// time.
+ ///
+ /// If it is, an error message template is returned, which can be used by the
+ /// caller to report an invalid cast. Otherwise, `null` is returned.
+ Template<Message Function(DartType, DartType)> _getPreciseTypeErrorTemplate(
+ Expression expression) {
+ if (expression is ListLiteral) {
+ return templateInvalidCastLiteralList;
+ }
+ if (expression is MapLiteral) {
+ return templateInvalidCastLiteralMap;
+ }
+ if (expression is FunctionExpression) {
+ return templateInvalidCastFunctionExpr;
+ }
+ if (expression is ConstructorInvocation) {
+ if (ShadowConstructorInvocation.isRedirected(expression)) {
+ return null;
+ } else {
+ return templateInvalidCastNewExpr;
+ }
+ }
+ if (expression is StaticGet) {
+ var target = expression.target;
+ if (target is Procedure && target.kind == ProcedureKind.Method) {
+ if (target.enclosingClass != null) {
+ return templateInvalidCastStaticMethod;
+ } else {
+ return templateInvalidCastTopLevelFunction;
+ }
+ }
+ return null;
+ }
+ if (expression is VariableGet) {
+ var variable = expression.variable;
+ if (variable is ShadowVariableDeclaration &&
+ ShadowVariableDeclaration.isLocalFunction(variable)) {
+ return templateInvalidCastLocalFunction;
+ }
+ }
+ return null;
+ }
}
diff --git a/pkg/front_end/lib/src/incremental/kernel_driver.dart b/pkg/front_end/lib/src/incremental/kernel_driver.dart
index f489459..189e2fd 100644
--- a/pkg/front_end/lib/src/incremental/kernel_driver.dart
+++ b/pkg/front_end/lib/src/incremental/kernel_driver.dart
@@ -384,7 +384,8 @@
}
Future<Null> appendNewDillLibraries(Program program) async {
- dillTarget.loader.appendLibraries(program, libraryUris.contains);
+ dillTarget.loader
+ .appendLibraries(program, filter: libraryUris.contains);
await dillTarget.buildOutlines();
}
diff --git a/pkg/front_end/lib/src/incremental_kernel_generator_impl.dart b/pkg/front_end/lib/src/incremental_kernel_generator_impl.dart
index ddf8ab2..8c5a5b6 100644
--- a/pkg/front_end/lib/src/incremental_kernel_generator_impl.dart
+++ b/pkg/front_end/lib/src/incremental_kernel_generator_impl.dart
@@ -227,8 +227,8 @@
int newDillCount = _program.libraries.length - validDillCount;
await _logger.runAsync('Append $newDillCount dill libraries',
() async {
- _dillTarget.loader.appendLibraries(
- _program, (uri) => !validLibraries.contains(uri));
+ _dillTarget.loader.appendLibraries(_program,
+ filter: (uri) => !validLibraries.contains(uri));
await _dillTarget.buildOutlines();
});
}
@@ -369,8 +369,8 @@
// Schedule the new outline for loading.
// TODO(scheglov): Add a more efficient API to add one library.
- _dillTarget.loader
- .appendLibraries(_program, (uri) => uri == newLibrary.importUri);
+ _dillTarget.loader.appendLibraries(_program,
+ filter: (uri) => uri == newLibrary.importUri);
// If main() was defined in the recompiled library, replace it.
if (mainReference?.asProcedure?.enclosingLibrary == oldLibrary) {
diff --git a/pkg/front_end/lib/src/kernel_generator_impl.dart b/pkg/front_end/lib/src/kernel_generator_impl.dart
index ab6e3e2..97effa6 100644
--- a/pkg/front_end/lib/src/kernel_generator_impl.dart
+++ b/pkg/front_end/lib/src/kernel_generator_impl.dart
@@ -64,8 +64,8 @@
CanonicalName nameRoot = sdkSummary?.root ?? new CanonicalName.root();
if (sdkSummary != null) {
var excluded = externalLibs(sdkSummary);
- dillTarget.loader
- .appendLibraries(sdkSummary, (uri) => !excluded.contains(uri));
+ dillTarget.loader.appendLibraries(sdkSummary,
+ filter: (uri) => !excluded.contains(uri));
}
// TODO(sigmund): provide better error reporting if input summaries or
@@ -73,8 +73,8 @@
// sort them).
for (var inputSummary in await options.loadInputSummaries(nameRoot)) {
var excluded = externalLibs(inputSummary);
- dillTarget.loader
- .appendLibraries(inputSummary, (uri) => !excluded.contains(uri));
+ dillTarget.loader.appendLibraries(inputSummary,
+ filter: (uri) => !excluded.contains(uri));
}
// All summaries are considered external and shouldn't include source-info.
@@ -88,8 +88,8 @@
// marked external.
for (var dependency in await options.loadLinkDependencies(nameRoot)) {
var excluded = externalLibs(dependency);
- dillTarget.loader
- .appendLibraries(dependency, (uri) => !excluded.contains(uri));
+ dillTarget.loader.appendLibraries(dependency,
+ filter: (uri) => !excluded.contains(uri));
}
await dillTarget.buildOutlines();
diff --git a/pkg/front_end/lib/src/minimal_incremental_kernel_generator.dart b/pkg/front_end/lib/src/minimal_incremental_kernel_generator.dart
index a429e5d..0029ef2 100644
--- a/pkg/front_end/lib/src/minimal_incremental_kernel_generator.dart
+++ b/pkg/front_end/lib/src/minimal_incremental_kernel_generator.dart
@@ -129,8 +129,8 @@
return _runWithFrontEndContext('Compute delta', () async {
try {
- var dillTarget = new DillTarget(
- new Ticker(isVerbose: false), uriTranslator, _options.target);
+ var dillTarget = new DillTarget(new Ticker(isVerbose: _options.verbose),
+ uriTranslator, _options.target);
// Append all libraries what we still have in the current program.
await _logger.runAsync('Load dill libraries', () async {
diff --git a/pkg/front_end/messages.yaml b/pkg/front_end/messages.yaml
index db982ad..56bc399 100644
--- a/pkg/front_end/messages.yaml
+++ b/pkg/front_end/messages.yaml
@@ -1568,6 +1568,48 @@
template: "Can't apply this patch as its origin declaration isn't external."
tip: "Try adding 'external' to the origin declaration."
+InvalidCastFunctionExpr:
+ template: "The function expression type '#type' isn't of expected type '#type2'."
+ tip: "Change the type of the function expression or the context in which it is used."
+ analyzerCode: INVALID_CAST_FUNCTION_EXPR
+ dart2jsCode: "*ignored*"
+
+InvalidCastLiteralList:
+ template: "The list literal type '#type' isn't of expected type '#type2'."
+ tip: "Change the type of the list literal or the context in which it is used."
+ analyzerCode: INVALID_CAST_LITERAL_LIST
+ dart2jsCode: "*ignored*"
+
+InvalidCastLiteralMap:
+ template: "The map literal type '#type' isn't of expected type '#type2'."
+ tip: "Change the type of the map literal or the context in which it is used."
+ analyzerCode: INVALID_CAST_LITERAL_MAP
+ dart2jsCode: "*ignored*"
+
+InvalidCastLocalFunction:
+ template: "The local function has type '#type' that isn't of expected type '#type2'."
+ tip: "Change the type of the function or the context in which it is used."
+ analyzerCode: INVALID_CAST_FUNCTION
+ dart2jsCode: "*ignored*"
+
+InvalidCastNewExpr:
+ template: "The constructor returns type '#type' that isn't of expected type '#type2'."
+ tip: "Change the type of the object being constructed or the context in which it is used."
+ analyzerCode: INVALID_CAST_NEW_EXPR
+ dart2jsCode: "*ignored*"
+
+InvalidCastStaticMethod:
+ template: "The static method has type '#type' that isn't of expected type '#type2'."
+ tip: "Change the type of the method or the context in which it is used."
+ analyzerCode: INVALID_CAST_METHOD
+ dart2jsCode: "*ignored*"
+
+InvalidCastTopLevelFunction:
+ template: "The top level function has type '#type' that isn't of expected type '#type2'."
+ tip: "Change the type of the function or the context in which it is used."
+ analyzerCode: INVALID_CAST_FUNCTION
+ dart2jsCode: "*ignored*"
+
UndefinedGetter:
template: "The getter '#name' isn't defined for the class '#type'."
tip: "Try correcting the name to the name of an existing getter, or defining a getter or field named '#name'."
@@ -1603,3 +1645,20 @@
C c;
c.foo();
}
+SourceOutlineSummary:
+ template: |
+ Built outlines for #count compilation units (#count2 bytes) in #string, that is,
+ #string2 bytes/ms, and
+ #string3 ms/compilation unit.
+
+SourceBodySummary:
+ template: |
+ Built bodies for #count compilation units (#count2 bytes) in #string, that is,
+ #string2 bytes/ms, and
+ #string3 ms/compilation unit.
+
+DillOutlineSummary:
+ template: |
+ Indexed #count libraries (#count2 bytes) in #string, that is,
+ #string2 bytes/ms, and
+ #string3 ms/libraries.
diff --git a/pkg/front_end/test/fasta/graph_test.dart b/pkg/front_end/test/fasta/graph_test.dart
new file mode 100644
index 0000000..b9a2d2f
--- /dev/null
+++ b/pkg/front_end/test/fasta/graph_test.dart
@@ -0,0 +1,63 @@
+// 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.md file.
+
+library fasta.test.graph_test;
+
+import 'package:expect/expect.dart' show Expect;
+
+import 'package:front_end/src/fasta/graph/graph.dart';
+
+class TestGraph implements Graph<String> {
+ final Map<String, List<String>> graph;
+
+ TestGraph(this.graph);
+
+ Iterable<String> get vertices => graph.keys;
+
+ Iterable<String> neighborsOf(String vertex) => graph[vertex];
+}
+
+test(String expected, Map<String, List<String>> graph) {
+ List<List<String>> result = computeStrongComponents(new TestGraph(graph));
+ Expect.stringEquals(expected, "$result");
+}
+
+main() {
+ test("[[B, A], [C], [D]]", {
+ "A": ["B"],
+ "B": ["A"],
+ "C": ["A"],
+ "D": ["C"],
+ });
+
+ test("[]", {});
+
+ test("[[A], [B], [C], [D]]", {
+ "A": [],
+ "B": [],
+ "C": [],
+ "D": [],
+ });
+
+ test("[[B, A], [C], [D]]", {
+ "D": ["C"],
+ "C": ["A"],
+ "B": ["A"],
+ "A": ["B"],
+ });
+
+ test("[[D], [C], [B], [A]]", {
+ "A": ["B"],
+ "B": ["C"],
+ "C": ["D"],
+ "D": [],
+ });
+
+ test("[[D], [C], [B], [A]]", {
+ "D": [],
+ "C": ["D"],
+ "B": ["C"],
+ "A": ["B"],
+ });
+}
diff --git a/pkg/front_end/test/fasta/incremental_test.dart b/pkg/front_end/test/fasta/incremental_test.dart
index 4ef487b..a587ef1 100644
--- a/pkg/front_end/test/fasta/incremental_test.dart
+++ b/pkg/front_end/test/fasta/incremental_test.dart
@@ -35,6 +35,19 @@
import 'package:front_end/src/base/processed_options.dart'
show ProcessedOptions;
+import 'package:front_end/src/incremental_kernel_generator_impl.dart'
+ show IncrementalKernelGeneratorImpl;
+
+import 'package:front_end/src/minimal_incremental_kernel_generator.dart'
+ show MinimalIncrementalKernelGenerator;
+
+import 'package:front_end/src/fasta/compiler_context.dart' show CompilerContext;
+
+import 'package:front_end/src/fasta/uri_translator.dart' show UriTranslator;
+
+import 'package:front_end/src/fasta/incremental_compiler.dart'
+ show IncrementalCompiler;
+
import "incremental_expectations.dart"
show IncrementalExpectation, extractJsonExpectations;
@@ -42,25 +55,66 @@
const JsonEncoder json = const JsonEncoder.withIndent(" ");
-final Uri base = Uri.parse('org-dartlang-test:///');
+final Uri base = Uri.parse("org-dartlang-test:///");
+
+final Uri entryPoint = base.resolve("main.dart");
+
+enum Generator {
+ original,
+ minimal,
+ fasta,
+}
+
+Generator generatorFromString(String string) {
+ if (string == null) return Generator.fasta;
+ switch (string) {
+ case "original":
+ return Generator.original;
+ case "minimal":
+ return Generator.minimal;
+ case "fasta":
+ return Generator.fasta;
+ default:
+ throw "Unknown generator: '$string'";
+ }
+}
class Context extends ChainContext {
- final ProcessedOptions options;
+ final CompilerContext compilerContext;
final ExternalStateSnapshot snapshot;
final List<CompilationMessage> errors;
+ final Generator requestedGenerator;
final List<Step> steps = const <Step>[
const ReadTest(),
- const FullCompile(),
- const IncrementalUpdates(),
+ const PrepareIncrementalKernelGenerator(),
+ const RunCompilations(),
];
- const Context(this.options, this.snapshot, this.errors);
+ IncrementalKernelGenerator compiler;
+
+ Context(
+ this.compilerContext, this.snapshot, this.errors, this.requestedGenerator)
+ : compiler = new IncrementalCompiler(compilerContext);
+
+ ProcessedOptions get options => compilerContext.options;
+
+ MemoryFileSystem get fileSystem => options.fileSystem;
+
+ T runInContext<T>(T action(CompilerContext c)) {
+ return compilerContext.runInContext<T>(action);
+ }
void reset() {
errors.clear();
snapshot.restore();
}
+
+ List<CompilationMessage> takeErrors() {
+ List<CompilationMessage> result = new List<CompilationMessage>.from(errors);
+ errors.clear();
+ return result;
+ }
}
class ReadTest extends Step<TestDescription, TestCase, Context> {
@@ -91,43 +145,75 @@
sources[fileName] = <String>[contents];
}
});
- final IncrementalKernelGenerator generator =
- await IncrementalKernelGenerator.newInstance(
- null, context.options.inputs.first,
- processedOptions: context.options, useMinimalGenerator: true);
- final TestCase test = new TestCase(description, sources, expectations,
- context.options.fileSystem, generator, context.errors);
+ final TestCase test = new TestCase(description, sources, expectations);
return test.validate(this);
}
}
-class FullCompile extends Step<TestCase, TestCase, Context> {
- String get name => "full compile";
+class PrepareIncrementalKernelGenerator
+ extends Step<TestCase, TestCase, Context> {
+ String get name => "prepare IKG";
- const FullCompile();
+ const PrepareIncrementalKernelGenerator();
Future<Result<TestCase>> run(TestCase test, Context context) async {
- test.sources.forEach((String name, List<String> sources) {
- Uri uri = base.resolve(name);
- test.fs.entityForUri(uri).writeAsStringSync(sources.first);
- });
- test.program = (await test.generator.computeDelta()).newProgram;
- List<CompilationMessage> errors = test.takeErrors();
- if (errors.isNotEmpty && !test.expectations.first.hasCompileTimeError) {
- return fail(test, errors.join("\n"));
- } else {
- return pass(test);
+ if (Generator.fasta != context.requestedGenerator) {
+ context.compiler = await context
+ .runInContext<Future<IncrementalKernelGenerator>>(
+ (CompilerContext c) async {
+ UriTranslator uriTranslator = await c.options.getUriTranslator();
+ List<int> sdkOutlineBytes = await c.options.loadSdkSummaryBytes();
+ if (Generator.minimal == context.requestedGenerator) {
+ return new MinimalIncrementalKernelGenerator(c.options, uriTranslator,
+ sdkOutlineBytes, context.options.inputs.first);
+ } else {
+ return new IncrementalKernelGeneratorImpl(c.options, uriTranslator,
+ sdkOutlineBytes, context.options.inputs.first);
+ }
+ });
}
+ return pass(test);
}
}
-class IncrementalUpdates extends Step<TestCase, TestCase, Context> {
- const IncrementalUpdates();
+class RunCompilations extends Step<TestCase, TestCase, Context> {
+ const RunCompilations();
- String get name => "incremental updates";
+ String get name => "run compilations";
Future<Result<TestCase>> run(TestCase test, Context context) async {
- return pass(test);
+ for (int edits = 0;; edits++) {
+ bool foundSources = false;
+ test.sources.forEach((String name, List<String> sources) {
+ if (edits < sources.length) {
+ String source = sources[edits];
+ Uri uri = base.resolve(name);
+ context.fileSystem.entityForUri(uri).writeAsStringSync(source);
+ foundSources = true;
+ context.compiler.invalidate(uri);
+ if (edits == 0) {
+ print("==> t.dart <==");
+ } else {
+ print("==> t.dart (edit #$edits) <==");
+ }
+ print(source.trimRight());
+ }
+ });
+ if (!foundSources) {
+ return edits == 0 ? fail(test, "No sources found") : pass(test);
+ }
+ var compiler = context.compiler;
+ var delta = compiler is IncrementalCompiler
+ ? (await compiler.computeDelta(entryPoint: entryPoint))
+ : (await compiler.computeDelta());
+ // ignore: UNUSED_LOCAL_VARIABLE
+ Program program = delta.newProgram;
+ List<CompilationMessage> errors = context.takeErrors();
+ if (errors.isNotEmpty && !test.expectations[edits].hasCompileTimeError) {
+ return fail(test, errors.join("\n"));
+ }
+ context.compiler.acceptLastDelta();
+ }
}
}
@@ -138,16 +224,7 @@
final List<IncrementalExpectation> expectations;
- final MemoryFileSystem fs;
-
- final IncrementalKernelGenerator generator;
-
- final List<CompilationMessage> errors;
-
- Program program;
-
- TestCase(this.description, this.sources, this.expectations, this.fs,
- this.generator, this.errors);
+ TestCase(this.description, this.sources, this.expectations);
String toString() {
return "TestCase(${json.convert(sources)}, ${json.convert(expectations)})";
@@ -172,12 +249,6 @@
}
return step.pass(this);
}
-
- List<CompilationMessage> takeErrors() {
- List<CompilationMessage> result = new List<CompilationMessage>.from(errors);
- errors.clear();
- return result;
- }
}
Future<Context> createContext(
@@ -211,12 +282,16 @@
};
final ProcessedOptions options =
- new ProcessedOptions(optionBuilder, false, [base.resolve("main.dart")]);
+ new ProcessedOptions(optionBuilder, false, [entryPoint]);
final ExternalStateSnapshot snapshot =
new ExternalStateSnapshot(await options.loadSdkSummary(null));
- return new Context(options, snapshot, errors);
+ final Generator requestedGenerator =
+ generatorFromString(environment["generator"]);
+
+ return new Context(
+ new CompilerContext(options), snapshot, errors, requestedGenerator);
}
main([List<String> arguments = const []]) =>
diff --git a/pkg/front_end/test/fasta/testing/analyzer_diet_listener.dart b/pkg/front_end/test/fasta/testing/analyzer_diet_listener.dart
index 022afce..8813c76 100644
--- a/pkg/front_end/test/fasta/testing/analyzer_diet_listener.dart
+++ b/pkg/front_end/test/fasta/testing/analyzer_diet_listener.dart
@@ -68,7 +68,7 @@
/// The list of local declarations in the body builder for the method
/// currently being compiled, or `null` if no method is currently being
/// compiled.
- List<kernel.Statement> _kernelDeclarations;
+ List<kernel.TreeNode> _kernelDeclarations;
/// The list of objects referenced by the body builder for the method
/// currently being compiled, or `null` if no method is currently being
@@ -266,7 +266,7 @@
void parserCallback()) {
// Create a body builder to do type inference, and a listener to record the
// types that are inferred.
- _kernelDeclarations = <kernel.Statement>[];
+ _kernelDeclarations = <kernel.TreeNode>[];
_kernelReferences = <kernel.Node>[];
_kernelTypes = <kernel.DartType>[];
_declarationOffsets = <int>[];
@@ -298,7 +298,7 @@
/// Translates the given kernel declarations into analyzer elements.
static List<ast.Element> _translateDeclarations(
- List<kernel.Statement> kernelDeclarations) {
+ List<kernel.TreeNode> kernelDeclarations) {
// TODO(scheglov): implement proper translation of elements.
return new List<ast.Element>.filled(kernelDeclarations.length, null);
}
diff --git a/pkg/front_end/test/fasta/type_inference/interface_resolver_test.dart b/pkg/front_end/test/fasta/type_inference/interface_resolver_test.dart
index b8353ef..ef4fd1a 100644
--- a/pkg/front_end/test/fasta/type_inference/interface_resolver_test.dart
+++ b/pkg/front_end/test/fasta/type_inference/interface_resolver_test.dart
@@ -29,7 +29,7 @@
CoreTypes coreTypes;
- ClassHierarchy classHierarchy = new IncrementalClassHierarchy();
+ ClassHierarchy classHierarchy;
TypeSchemaEnvironment typeEnvironment;
@@ -38,11 +38,7 @@
InterfaceResolverTest() {
program = createMockSdkProgram();
program.libraries.add(testLib..parent = program);
- coreTypes = new CoreTypes(program);
- typeEnvironment =
- new TypeSchemaEnvironment(coreTypes, classHierarchy, true);
- interfaceResolver =
- new InterfaceResolver(null, typeEnvironment, null, true);
+ resetInterfaceResolver();
}
InterfaceType get intType => coreTypes.intClass.rawType;
@@ -161,8 +157,11 @@
isAbstract: isAbstract);
}
- Field makeField({String name: 'foo', DartType type: const DynamicType()}) {
- return new Field(new Name(name), type: type);
+ Field makeField(
+ {String name: 'foo',
+ DartType type: const DynamicType(),
+ bool isFinal: false}) {
+ return new Field(new Name(name), type: type, isFinal: isFinal);
}
Procedure makeForwardingStub(Procedure method, bool setter,
@@ -185,8 +184,11 @@
}
Procedure makeSetter(
- {String name: 'foo', DartType setterType: const DynamicType()}) {
- var parameter = new ShadowVariableDeclaration('value', 0, type: setterType);
+ {String name: 'foo',
+ DartType setterType: const DynamicType(),
+ bool isCovariant: false}) {
+ var parameter = new ShadowVariableDeclaration('value', 0,
+ type: setterType, isCovariant: isCovariant);
var body = new Block([]);
var function = new FunctionNode(body,
positionalParameters: [parameter], returnType: const VoidType());
@@ -194,6 +196,15 @@
new Name(name), ProcedureKind.Setter, function, false);
}
+ void resetInterfaceResolver() {
+ classHierarchy = new IncrementalClassHierarchy();
+ coreTypes = new CoreTypes(program);
+ typeEnvironment =
+ new TypeSchemaEnvironment(coreTypes, classHierarchy, true);
+ interfaceResolver =
+ new InterfaceResolver(null, typeEnvironment, null, true);
+ }
+
void test_candidate_for_field_getter() {
var field = makeField();
var class_ = makeClass(fields: [field]);
@@ -718,6 +729,7 @@
expect(y.isGenericCovariantImpl, isFalse);
expect(y.isGenericCovariantInterface, isFalse);
expect(y.isCovariant, isTrue);
+ expect(ForwardingStub.getInterfaceTarget(stub), same(methodA));
expect(getStubTarget(stub), same(methodA));
}
@@ -765,9 +777,102 @@
expect(y.isGenericCovariantImpl, isTrue);
expect(y.isGenericCovariantInterface, isFalse);
expect(y.isCovariant, isFalse);
+ expect(ForwardingStub.getInterfaceTarget(stub), same(methodA));
expect(getStubTarget(stub), same(methodA));
}
+ void test_interfaceTarget_cascaded() {
+ var methodC = makeEmptyMethod(positionalParameters: [
+ new VariableDeclaration('x', type: intType),
+ new VariableDeclaration('y', type: intType)
+ ]);
+ var c = makeClass(name: 'C', procedures: [methodC]);
+ var t = new TypeParameter('T', objectType);
+ var methodI1 = makeEmptyMethod(positionalParameters: [
+ new VariableDeclaration('x', type: new TypeParameterType(t))
+ ..isGenericCovariantImpl = true,
+ new VariableDeclaration('y', type: intType)
+ ]);
+ var i1 = makeClass(name: 'I1', typeParameters: [t], procedures: [methodI1]);
+ // Let's say D was previously compiled, so it already has a forwarding stub
+ var d =
+ makeClass(name: 'D', supertype: c.asThisSupertype, implementedTypes: [
+ new Supertype(i1, [intType])
+ ]);
+ var nodeD = getForwardingNode(d, false);
+ var methodD = ForwardingNode.createForwardingStubForTesting(
+ nodeD, Substitution.empty, methodC);
+ d.addMember(methodD);
+ ForwardingNode.createForwardingImplIfNeededForTesting(
+ nodeD, methodD.function);
+ // To ensure that we don't accidentally make use of information that was
+ // computed prior to adding the forwarding stub, reset the interface
+ // resolver.
+ resetInterfaceResolver();
+ var u = new TypeParameter('U', objectType);
+ var methodI2 = makeEmptyMethod(positionalParameters: [
+ new VariableDeclaration('x', type: intType),
+ new VariableDeclaration('y', type: new TypeParameterType(u))
+ ..isGenericCovariantImpl = true
+ ]);
+ var i2 = makeClass(name: 'I2', typeParameters: [u], procedures: [methodI2]);
+ var e =
+ makeClass(name: 'E', supertype: d.asThisSupertype, implementedTypes: [
+ new Supertype(i2, [intType])
+ ]);
+ var nodeE = getForwardingNode(e, false);
+ var stub = nodeE.finalize();
+ expect(ForwardingStub.getInterfaceTarget(stub), same(methodC));
+ expect(getStubTarget(stub), same(methodC));
+ }
+
+ void test_interfaceTarget_cascaded_setter() {
+ var setterC = makeSetter(setterType: intType);
+ var c = makeClass(name: 'C', procedures: [setterC]);
+ var t = new TypeParameter('T', objectType);
+ var setterI1 = makeSetter(setterType: new TypeParameterType(t));
+ var i1 = makeClass(name: 'I1', typeParameters: [t], procedures: [setterI1]);
+ // Let's say D was previously compiled, so it already has a forwarding stub
+ var d =
+ makeClass(name: 'D', supertype: c.asThisSupertype, implementedTypes: [
+ new Supertype(i1, [intType])
+ ]);
+ var nodeD = getForwardingNode(d, true);
+ var setterD = ForwardingNode.createForwardingStubForTesting(
+ nodeD, Substitution.empty, setterC);
+ d.addMember(setterD);
+ ForwardingNode.createForwardingImplIfNeededForTesting(
+ nodeD, setterD.function);
+ // To ensure that we don't accidentally make use of information that was
+ // computed prior to adding the forwarding stub, reset the interface
+ // resolver.
+ resetInterfaceResolver();
+ var setterI2 = makeSetter(setterType: intType, isCovariant: true);
+ var i2 = makeClass(name: 'I2', procedures: [setterI2]);
+ var e = makeClass(
+ name: 'E',
+ supertype: d.asThisSupertype,
+ implementedTypes: [i2.asThisSupertype]);
+ var nodeE = getForwardingNode(e, true);
+ var stub = nodeE.finalize();
+ expect(ForwardingStub.getInterfaceTarget(stub), same(setterC));
+ expect(getStubTarget(stub), same(setterC));
+ }
+
+ void test_interfaceTarget_field() {
+ var fieldA = makeField(type: numType, isFinal: true);
+ var fieldB = makeField(type: intType, isFinal: true);
+ var a = makeClass(name: 'A', fields: [fieldA]);
+ var b = makeClass(name: 'B', fields: [fieldB]);
+ var c = makeClass(
+ name: 'C',
+ supertype: a.asThisSupertype,
+ implementedTypes: [b.asThisSupertype]);
+ var node = getForwardingNode(c, false);
+ var stub = node.finalize();
+ expect(ForwardingStub.getInterfaceTarget(stub), same(fieldB));
+ }
+
void test_merge_candidates_including_mixin() {
var methodA = makeEmptyMethod();
var methodB = makeEmptyMethod();
@@ -860,6 +965,7 @@
name: 'C', implementedTypes: [a.asThisSupertype, b.asThisSupertype]);
var node = getForwardingNode(c, false);
var stub = node.finalize();
+ expect(ForwardingStub.getInterfaceTarget(stub), same(methodB));
expect(getStubTarget(stub), isNull);
expect(stub.function.returnType, intType);
}
@@ -878,6 +984,7 @@
]);
var node = getForwardingNode(d, true);
var stub = node.finalize();
+ expect(ForwardingStub.getInterfaceTarget(stub), same(setterB));
expect(getStubTarget(stub), isNull);
expect(stub.function.positionalParameters[0].type, objectType);
}
@@ -910,6 +1017,7 @@
var resolvedMethod = node.finalize();
expect(resolvedMethod, same(methodC));
expect(methodC.function.body, isNotNull);
+ expect(methodC, isNot(new isInstanceOf<ForwardingStub>()));
expect(getStubTarget(methodC), same(methodA));
}
@@ -938,6 +1046,7 @@
]);
var node = getForwardingNode(d, false);
var stub = node.finalize();
+ expect(ForwardingStub.getInterfaceTarget(stub), same(methodB));
expect(getStubTarget(stub), isNull);
expect(stub.function.returnType, intType);
}
diff --git a/pkg/front_end/testcases/ast_builder.status b/pkg/front_end/testcases/ast_builder.status
index df13a6c..9b5c308 100644
--- a/pkg/front_end/testcases/ast_builder.status
+++ b/pkg/front_end/testcases/ast_builder.status
@@ -22,12 +22,12 @@
implicit_scope_test: Crash
inference/abstract_class_instantiation: Crash
inference/assert_initializer: Crash
-inference/block_bodied_lambdas_async_star: Crash
inference/bug30251: Crash
inference/bug30624: Crash
inference/bug31133: Crash
+inference/bug31436: Crash
inference/call_corner_cases: Crash
-inference/constructors_infer_from_arguments: Crash
+inference/closure_param_null_to_object: Crash
inference/constructors_infer_from_arguments_redirecting: Crash
inference/constructors_too_many_positional_arguments: Crash
inference/downwards_inference_annotations: Crash
@@ -40,9 +40,7 @@
inference/downwards_inference_annotations_type_variable: Fail
inference/downwards_inference_annotations_type_variable_local: Crash
inference/downwards_inference_annotations_typedef: Crash
-inference/downwards_inference_for_each: Crash
inference/downwards_inference_initializing_formal_default_formal: Crash
-inference/downwards_inference_inside_top_level: Crash
inference/downwards_inference_on_constructor_arguments_infer_downwards: Crash
inference/downwards_inference_on_function_arguments_infer_downwards: Crash
inference/downwards_inference_on_function_of_t_using_the_t: Crash
@@ -58,7 +56,6 @@
inference/field_initializer_context_implicit: Crash
inference/field_initializer_context_this: Crash
inference/field_initializer_parameter: Crash
-inference/for_each_downcast_iterable: Crash
inference/for_loop_initializer_expression: Crash
inference/future_then: Crash
inference/future_then_2: Crash
@@ -83,14 +80,11 @@
inference/future_union_downwards_2: Crash
inference/future_union_downwards_3: Crash
inference/future_union_downwards_4: Crash
-inference/future_union_downwards_generic_method_with_future_return: Crash
-inference/future_union_upwards_generic_methods: Crash
inference/generic_functions_return_typedef: Fail
inference/generic_methods_basic_downward_inference: Crash
inference/generic_methods_downwards_inference_fold: Crash
inference/generic_methods_infer_generic_instantiation: Crash
inference/generic_methods_infer_js_builtin: Fail
-inference/generic_methods_iterable_and_future: Crash
inference/generic_methods_nested_generic_instantiation: Crash
inference/greatest_closure_multiple_params: Crash
inference/infer_assign_to_static: Crash
@@ -104,7 +98,6 @@
inference/infer_generic_method_type_named: Crash
inference/infer_generic_method_type_positional2: Crash
inference/infer_generic_method_type_positional: Crash
-inference/infer_list_literal_nested_in_map_literal: Crash
inference/infer_local_function_referenced_before_declaration: Crash
inference/infer_method_missing_params: Crash
inference/infer_rethrow: Crash
@@ -114,19 +107,12 @@
inference/infer_statics_transitively_a: Crash
inference/infer_statics_with_method_invocations: Crash
inference/infer_statics_with_method_invocations_a: Crash
-inference/infer_typed_map_literal: Crash
-inference/infer_types_on_loop_indices_for_each_loop: Crash
-inference/infer_types_on_loop_indices_for_each_loop_async: Crash
inference/inferred_initializing_formal_checks_default_value: Crash
-inference/inferred_type_cascade: Crash
inference/inferred_type_is_enum: Crash
inference/inferred_type_is_enum_values: Crash
-inference/inferred_type_is_typedef: Crash
-inference/inferred_type_is_typedef_parameterized: Crash
inference/inferred_type_uses_synthetic_function_type_named_param: Crash
inference/inferred_type_uses_synthetic_function_type_positional_param: Crash
inference/lambda_does_not_have_propagated_type_hint: Crash
-inference/method_call_with_type_arguments_static_method: Crash
inference/parameter_defaults_downwards: Crash
inference/parameter_defaults_upwards: Crash
inference/static_method_tear_off: Crash
@@ -144,13 +130,10 @@
inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2: Crash
inference/unsafe_block_closure_inference_function_call_implicit_type_param_via_expr: Crash
inference/unsafe_block_closure_inference_function_call_no_type_param_via_expr: Crash
-inference/unsafe_block_closure_inference_in_map_dynamic: Crash
-inference/unsafe_block_closure_inference_in_map_typed: Crash
-inference_new/for_each_invalid_iterable: Crash
-inference_new/for_each_outer_var_type: Crash
inference_new/infer_assign_to_static: Crash
inference_new/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2: Crash
inference_new/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2: Crash
+invalid_cast: Crash
invocations: Crash
metadata_enum: Crash
metadata_named_mixin_application: Crash
@@ -221,21 +204,11 @@
runtime_checks/covariant_generic_parameter_in_interface: Crash
runtime_checks/forwarding_stub_with_default_values: Crash
runtime_checks/implicit_downcast_assert_initializer: Crash
-runtime_checks/implicit_downcast_assert_statement: Crash
runtime_checks/implicit_downcast_constructor_initializer: Crash
-runtime_checks/implicit_downcast_do: Crash
-runtime_checks/implicit_downcast_for_condition: Crash
-runtime_checks/implicit_downcast_if: Crash
-runtime_checks/implicit_downcast_not: Crash
-runtime_checks/implicit_downcast_while: Crash
runtime_checks_new/contravariant_combiner: Crash
-runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast: Crash
runtime_checks_new/derived_class_typed: Crash
+runtime_checks_new/for_in_call_kinds: Crash
runtime_checks_new/implicit_downcast_field: Crash
-runtime_checks_new/mixin_forwarding_stub_field: Crash
-runtime_checks_new/mixin_forwarding_stub_getter: Crash
-runtime_checks_new/mixin_forwarding_stub_setter: Crash
-runtime_checks_new/stub_checked_via_target: Crash
statements: Crash
super_rasta_copy: Crash
type_variable_as_super: Crash
diff --git a/pkg/front_end/testcases/compile.status b/pkg/front_end/testcases/compile.status
index 42ac1df..6a6141f 100644
--- a/pkg/front_end/testcases/compile.status
+++ b/pkg/front_end/testcases/compile.status
@@ -28,6 +28,7 @@
uninitialized_fields: Fail # Fasta and dartk disagree on static initializers
void_methods: Fail # Bad return from setters.
+inference/bug31436: RuntimeError # Test exercises Dart 2.0 semantics
inference/constructors_too_many_positional_arguments: Fail
inference/downwards_inference_annotations_locals: Fail # Issue #30031
inference/future_then_explicit_future: Fail
diff --git a/pkg/front_end/testcases/dartino/add_part.incremental.yaml b/pkg/front_end/testcases/dartino/add_part.incremental.yaml
index 106eff0..9d621d2 100644
--- a/pkg/front_end/testcases/dartino/add_part.incremental.yaml
+++ b/pkg/front_end/testcases/dartino/add_part.incremental.yaml
@@ -16,4 +16,4 @@
}
part.dart: |
- part of test.main
+ part of test.main;
diff --git a/pkg/front_end/testcases/function_type_is_check.dart.strong.expect b/pkg/front_end/testcases/function_type_is_check.dart.strong.expect
index 47e3281..f827885 100644
--- a/pkg/front_end/testcases/function_type_is_check.dart.strong.expect
+++ b/pkg/front_end/testcases/function_type_is_check.dart.strong.expect
@@ -12,5 +12,5 @@
return 100;
}
static method main() → dynamic {
- exp::Expect::equals(111, self::test(() → dynamic => null).+(self::test((core::Object o) → dynamic => null)).+(self::test((core::Object o, core::StackTrace t) → dynamic => null)));
+ exp::Expect::equals(111, self::test(() → core::Null => null).+(self::test((core::Object o) → core::Null => null)).+(self::test((core::Object o, core::StackTrace t) → core::Null => null)));
}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync.dart b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync.dart
index 4a3ba8e..f640d14 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync.dart
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync.dart
@@ -14,7 +14,7 @@
};
String y = f(42);
- f = /*error:INVALID_CAST_FUNCTION_EXPR*/ /*@returnType=String*/ (/*@type=Object*/ x) =>
+ f = /*error:INVALID_CAST_FUNCTION_EXPR*/ /*@returnType=Null*/ (/*@type=Object*/ x) =>
'hello';
foo(/*@returnType=Null*/ (/*@type=Object*/ x) {
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync.dart.strong.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync.dart.strong.expect
index 12d79dd..ffc9a26 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync.dart.strong.expect
@@ -9,7 +9,7 @@
return null;
};
core::String y = f.call(42);
- f = ((core::Object x) → core::String => "hello") as{TypeError} (core::Object) → core::Null;
+ f = (core::Object x) → core::Null => "hello" as{TypeError} core::Null;
self::foo((core::Object x) → core::Null {
return null;
});
diff --git a/pkg/front_end/testcases/inference/bottom_in_closure.dart b/pkg/front_end/testcases/inference/bottom_in_closure.dart
index 5d4d1bc..a1be850 100644
--- a/pkg/front_end/testcases/inference/bottom_in_closure.dart
+++ b/pkg/front_end/testcases/inference/bottom_in_closure.dart
@@ -5,7 +5,7 @@
/*@testedFeatures=inference*/
library test;
-var /*@topType=() -> dynamic*/ v = /*@returnType=dynamic*/ () => null;
+var /*@topType=() -> Null*/ v = /*@returnType=Null*/ () => null;
main() {
v;
diff --git a/pkg/front_end/testcases/inference/bottom_in_closure.dart.strong.expect b/pkg/front_end/testcases/inference/bottom_in_closure.dart.strong.expect
index dce4c39..4ca225f 100644
--- a/pkg/front_end/testcases/inference/bottom_in_closure.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/bottom_in_closure.dart.strong.expect
@@ -1,7 +1,8 @@
library test;
import self as self;
+import "dart:core" as core;
-static field () → dynamic v = () → dynamic => null;
+static field () → core::Null v = () → core::Null => null;
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/bug31436.dart b/pkg/front_end/testcases/inference/bug31436.dart
new file mode 100644
index 0000000..f9c8a7e
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug31436.dart
@@ -0,0 +1,72 @@
+// 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+void block_test() {
+ List<Object> Function() g;
+ g = /*@returnType=List<Object>*/ () {
+ return /*@typeArgs=Object*/ [3];
+ };
+ assert(g is List<Object> Function());
+ assert(g is! List<int> Function());
+ g(). /*@target=List::add*/ add("hello"); // No runtime error
+ List<int> l = /*@typeArgs=int*/ [3];
+ g = /*@returnType=List<int>*/ () {
+ return l;
+ };
+ assert(g is List<Object> Function());
+ assert(g is List<int> Function());
+ try {
+ g(). /*@target=List::add*/ add("hello"); // runtime error
+ throw 'expected a runtime error';
+ } on TypeError {}
+ Object o = l;
+ g = /*@returnType=List<Object>*/ () {
+ return o;
+ }; // No implicit downcast on the assignment, implicit downcast on the return
+ assert(g is List<Object> Function());
+ assert(g is! List<int> Function());
+ assert(g is! Object Function());
+ g(); // No runtime error;
+ o = 3;
+ try {
+ g(); // Failed runtime cast on the return type of f
+ throw 'expected a runtime error';
+ } on TypeError {}
+}
+
+void arrow_test() {
+ List<Object> Function() g;
+ g = /*@returnType=List<Object>*/ () => /*@typeArgs=Object*/ [3];
+ assert(g is List<Object> Function());
+ assert(g is! List<int> Function());
+ g(). /*@target=List::add*/ add("hello"); // No runtime error
+ List<int> l = /*@typeArgs=int*/ [3];
+ g = /*@returnType=List<int>*/ () => l;
+ assert(g is List<Object> Function());
+ assert(g is List<int> Function());
+ try {
+ g(). /*@target=List::add*/ add("hello"); // runtime error
+ throw 'expected a runtime error';
+ } on TypeError {}
+ Object o = l;
+ g = /*@returnType=List<Object>*/ () =>
+ o; // No implicit downcast on the assignment, implicit downcast on the return
+ assert(g is List<Object> Function());
+ assert(g is! List<int> Function());
+ assert(g is! Object Function());
+ g(); // No runtime error;
+ o = 3;
+ try {
+ g(); // Failed runtime cast on the return type of f
+ throw 'expected a runtime error';
+ } on TypeError {}
+}
+
+main() {
+ block_test();
+ arrow_test();
+}
diff --git a/pkg/front_end/testcases/inference/bug31436.dart.direct.expect b/pkg/front_end/testcases/inference/bug31436.dart.direct.expect
new file mode 100644
index 0000000..e52bb02
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug31436.dart.direct.expect
@@ -0,0 +1,74 @@
+library test;
+import self as self;
+import "dart:core" as core;
+
+static method block_test() → void {
+ () → core::List<core::Object> g;
+ g = () → dynamic {
+ return <dynamic>[3];
+ };
+ assert(g is () → core::List<core::Object>);
+ assert(!(g is () → core::List<core::int>));
+ g.call().add("hello");
+ core::List<core::int> l = <dynamic>[3];
+ g = () → dynamic {
+ return l;
+ };
+ assert(g is () → core::List<core::Object>);
+ assert(g is () → core::List<core::int>);
+ try {
+ g.call().add("hello");
+ throw "expected a runtime error";
+ }
+ on core::TypeError catch(no-exception-var) {
+ }
+ core::Object o = l;
+ g = () → dynamic {
+ return o;
+ };
+ assert(g is () → core::List<core::Object>);
+ assert(!(g is () → core::List<core::int>));
+ assert(!(g is () → core::Object));
+ g.call();
+ o = 3;
+ try {
+ g.call();
+ throw "expected a runtime error";
+ }
+ on core::TypeError catch(no-exception-var) {
+ }
+}
+static method arrow_test() → void {
+ () → core::List<core::Object> g;
+ g = () → dynamic => <dynamic>[3];
+ assert(g is () → core::List<core::Object>);
+ assert(!(g is () → core::List<core::int>));
+ g.call().add("hello");
+ core::List<core::int> l = <dynamic>[3];
+ g = () → dynamic => l;
+ assert(g is () → core::List<core::Object>);
+ assert(g is () → core::List<core::int>);
+ try {
+ g.call().add("hello");
+ throw "expected a runtime error";
+ }
+ on core::TypeError catch(no-exception-var) {
+ }
+ core::Object o = l;
+ g = () → dynamic => o;
+ assert(g is () → core::List<core::Object>);
+ assert(!(g is () → core::List<core::int>));
+ assert(!(g is () → core::Object));
+ g.call();
+ o = 3;
+ try {
+ g.call();
+ throw "expected a runtime error";
+ }
+ on core::TypeError catch(no-exception-var) {
+ }
+}
+static method main() → dynamic {
+ self::block_test();
+ self::arrow_test();
+}
diff --git a/pkg/front_end/testcases/inference/bug31436.dart.outline.expect b/pkg/front_end/testcases/inference/bug31436.dart.outline.expect
new file mode 100644
index 0000000..85ecd2d
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug31436.dart.outline.expect
@@ -0,0 +1,9 @@
+library test;
+import self as self;
+
+static method block_test() → void
+ ;
+static method arrow_test() → void
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/bug31436.dart.strong.expect b/pkg/front_end/testcases/inference/bug31436.dart.strong.expect
new file mode 100644
index 0000000..1f2d373
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug31436.dart.strong.expect
@@ -0,0 +1,74 @@
+library test;
+import self as self;
+import "dart:core" as core;
+
+static method block_test() → void {
+ () → core::List<core::Object> g;
+ g = () → core::List<core::Object> {
+ return <core::Object>[3];
+ };
+ assert(g is () → core::List<core::Object>);
+ assert(!(g is () → core::List<core::int>));
+ g.call().{core::List::add}("hello");
+ core::List<core::int> l = <core::int>[3];
+ g = () → core::List<core::int> {
+ return l;
+ };
+ assert(g is () → core::List<core::Object>);
+ assert(g is () → core::List<core::int>);
+ try {
+ g.call().{core::List::add}("hello");
+ throw "expected a runtime error";
+ }
+ on core::TypeError catch(no-exception-var) {
+ }
+ core::Object o = l;
+ g = () → core::List<core::Object> {
+ return o as{TypeError} core::List<core::Object>;
+ };
+ assert(g is () → core::List<core::Object>);
+ assert(!(g is () → core::List<core::int>));
+ assert(!(g is () → core::Object));
+ g.call();
+ o = 3;
+ try {
+ g.call();
+ throw "expected a runtime error";
+ }
+ on core::TypeError catch(no-exception-var) {
+ }
+}
+static method arrow_test() → void {
+ () → core::List<core::Object> g;
+ g = () → core::List<core::Object> => <core::Object>[3];
+ assert(g is () → core::List<core::Object>);
+ assert(!(g is () → core::List<core::int>));
+ g.call().{core::List::add}("hello");
+ core::List<core::int> l = <core::int>[3];
+ g = () → core::List<core::int> => l;
+ assert(g is () → core::List<core::Object>);
+ assert(g is () → core::List<core::int>);
+ try {
+ g.call().{core::List::add}("hello");
+ throw "expected a runtime error";
+ }
+ on core::TypeError catch(no-exception-var) {
+ }
+ core::Object o = l;
+ g = () → core::List<core::Object> => o as{TypeError} core::List<core::Object>;
+ assert(g is () → core::List<core::Object>);
+ assert(!(g is () → core::List<core::int>));
+ assert(!(g is () → core::Object));
+ g.call();
+ o = 3;
+ try {
+ g.call();
+ throw "expected a runtime error";
+ }
+ on core::TypeError catch(no-exception-var) {
+ }
+}
+static method main() → dynamic {
+ self::block_test();
+ self::arrow_test();
+}
diff --git a/pkg/front_end/testcases/inference/closure_param_null_to_object.dart b/pkg/front_end/testcases/inference/closure_param_null_to_object.dart
new file mode 100644
index 0000000..1226b8d
--- /dev/null
+++ b/pkg/front_end/testcases/inference/closure_param_null_to_object.dart
@@ -0,0 +1,12 @@
+// 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+void test() {
+ int Function(Null) f = /*@returnType=int*/ (/*@type=Object*/ x) => 1;
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.direct.expect b/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.direct.expect
new file mode 100644
index 0000000..2a82c25
--- /dev/null
+++ b/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.direct.expect
@@ -0,0 +1,8 @@
+library test;
+import self as self;
+import "dart:core" as core;
+
+static method test() → void {
+ (core::Null) → core::int f = (dynamic x) → dynamic => 1;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.outline.expect b/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.outline.expect
new file mode 100644
index 0000000..c74ce2b
--- /dev/null
+++ b/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.outline.expect
@@ -0,0 +1,7 @@
+library test;
+import self as self;
+
+static method test() → void
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.strong.expect b/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.strong.expect
new file mode 100644
index 0000000..8bc94ac
--- /dev/null
+++ b/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.strong.expect
@@ -0,0 +1,8 @@
+library test;
+import self as self;
+import "dart:core" as core;
+
+static method test() → void {
+ (core::Null) → core::int f = (core::Object x) → core::int => 1;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart b/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart
index 7189891..3e2f6e2 100644
--- a/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart
+++ b/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart
@@ -10,7 +10,7 @@
var /*@type=dynamic*/ b = null;
var /*@type=dynamic*/ c = throw 'foo';
var /*@type=() -> int*/ d = /*@returnType=int*/ () => 0;
- var /*@type=() -> dynamic*/ e = /*@returnType=dynamic*/ () => null;
+ var /*@type=() -> Null*/ e = /*@returnType=Null*/ () => null;
var /*@type=() -> <BottomType>*/ f = /*@returnType=<BottomType>*/ () =>
throw 'foo';
var /*@type=() -> int*/ g = /*@returnType=int*/ () {
diff --git a/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart.strong.expect b/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart.strong.expect
index 13b155b..5f679a5 100644
--- a/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart.strong.expect
@@ -7,7 +7,7 @@
dynamic b = null;
dynamic c = throw "foo";
() → core::int d = () → core::int => 0;
- () → dynamic e = () → dynamic => null;
+ () → core::Null e = () → core::Null => null;
() → <BottomType>f = () → <BottomType>=> throw "foo";
() → core::int g = () → core::int {
return 0;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart b/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart
index ec23762..93f4f7c 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart
@@ -9,24 +9,23 @@
void test() {
{
- Function2<int, String> l0 = /*@returnType=String*/ (int x) => null;
+ Function2<int, String> l0 = /*@returnType=Null*/ (int x) => null;
Function2<int, String> l1 = /*@returnType=String*/ (int x) => "hello";
Function2<int, String>
l2 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=String*/ (String x) =>
"hello";
Function2<int, String>
- l3 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=int*/ (int x) => 3;
+ l3 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=String*/ (int x) => 3;
Function2<int, String> l4 = /*@returnType=String*/ (int x) {
return /*error:RETURN_OF_INVALID_TYPE*/ 3;
};
}
{
- Function2<int, String> l0 = /*@returnType=String*/ (/*@type=int*/ x) =>
- null;
+ Function2<int, String> l0 = /*@returnType=Null*/ (/*@type=int*/ x) => null;
Function2<int, String> l1 = /*@returnType=String*/ (/*@type=int*/ x) =>
"hello";
Function2<int, String>
- l2 = /*info:INFERRED_TYPE_CLOSURE, error:INVALID_ASSIGNMENT*/ /*@returnType=int*/ (/*@type=int*/ x) =>
+ l2 = /*info:INFERRED_TYPE_CLOSURE, error:INVALID_ASSIGNMENT*/ /*@returnType=String*/ (/*@type=int*/ x) =>
3;
Function2<int, String> l3 = /*@returnType=String*/ (/*@type=int*/ x) {
return /*error:RETURN_OF_INVALID_TYPE*/ 3;
@@ -36,8 +35,7 @@
};
}
{
- Function2<int, List<String>> l0 = /*@returnType=List<String>*/ (int x) =>
- null;
+ Function2<int, List<String>> l0 = /*@returnType=Null*/ (int x) => null;
Function2<int, List<String>> l1 = /*@returnType=List<String>*/ (int
x) => /*@typeArgs=String*/ ["hello"];
Function2<int, List<String>>
@@ -58,7 +56,7 @@
Function2<int, int> l1 = /*@returnType=int*/ (/*@type=int*/ x) =>
x /*@target=num::+*/ + 1;
Function2<int, String>
- l2 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=int*/ (/*@type=int*/ x) =>
+ l2 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=String*/ (/*@type=int*/ x) =>
x;
Function2<int, String>
l3 = /*@returnType=String*/ (/*@type=int*/ x) => /*info:DYNAMIC_CAST, info:DYNAMIC_INVOKE*/ x
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.strong.expect b/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.strong.expect
index aaba521..6f719a2 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.strong.expect
@@ -5,39 +5,39 @@
typedef Function2<S extends core::Object, T extends core::Object> = (S) → T;
static method test() → void {
{
- (core::int) → core::String l0 = (core::int x) → core::String => null;
+ (core::int) → core::String l0 = (core::int x) → core::Null => null;
(core::int) → core::String l1 = (core::int x) → core::String => "hello";
(core::int) → core::String l2 = let final dynamic #t1 = (core::String x) → core::String => "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:15:66: Error: A value of type '(dart.core::String) \u8594 dart.core::String' can't be assigned to a variable of type '(dart.core::int) \u8594 dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to '(dart.core::int) \u8594 dart.core::String'.\n l2 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=String*/ (String x) =>\n ^"));
- (core::int) → core::String l3 = let final dynamic #t2 = (core::int x) → core::int => 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:18:63: Error: A value of type '(dart.core::int) \u8594 dart.core::int' can't be assigned to a variable of type '(dart.core::int) \u8594 dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to '(dart.core::int) \u8594 dart.core::String'.\n l3 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=int*/ (int x) => 3;\n ^"));
+ (core::int) → core::String l3 = (core::int x) → core::String => let final dynamic #t2 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:18:77: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n l3 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=String*/ (int x) => 3;\n ^"));
(core::int) → core::String l4 = (core::int x) → core::String {
return let final dynamic #t3 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:20:47: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n return /*error:RETURN_OF_INVALID_TYPE*/ 3;\n ^"));
};
}
{
- (core::int) → core::String l0 = (core::int x) → core::String => null;
+ (core::int) → core::String l0 = (core::int x) → core::Null => null;
(core::int) → core::String l1 = (core::int x) → core::String => "hello";
- (core::int) → core::String l2 = let final dynamic #t4 = (core::int x) → core::int => 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:29:91: Error: A value of type '(dart.core::int) \u8594 dart.core::int' can't be assigned to a variable of type '(dart.core::int) \u8594 dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to '(dart.core::int) \u8594 dart.core::String'.\n l2 = /*info:INFERRED_TYPE_CLOSURE, error:INVALID_ASSIGNMENT*/ /*@returnType=int*/ (/*@type=int*/ x) =>\n ^"));
+ (core::int) → core::String l2 = (core::int x) → core::String => let final dynamic #t4 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:29:13: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n 3;\n ^"));
(core::int) → core::String l3 = (core::int x) → core::String {
- return let final dynamic #t5 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:32:47: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n return /*error:RETURN_OF_INVALID_TYPE*/ 3;\n ^"));
+ return let final dynamic #t5 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:31:47: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n return /*error:RETURN_OF_INVALID_TYPE*/ 3;\n ^"));
};
(core::int) → core::String l4 = (core::int x) → core::String {
- return let final dynamic #t6 = x in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:35:47: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n return /*error:RETURN_OF_INVALID_TYPE*/ x;\n ^"));
+ return let final dynamic #t6 = x in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:34:47: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n return /*error:RETURN_OF_INVALID_TYPE*/ x;\n ^"));
};
}
{
- (core::int) → core::List<core::String> l0 = (core::int x) → core::List<core::String> => null;
+ (core::int) → core::List<core::String> l0 = (core::int x) → core::Null => null;
(core::int) → core::List<core::String> l1 = (core::int x) → core::List<core::String> => <core::String>["hello"];
- (core::int) → core::List<core::String> l2 = let final dynamic #t7 = (core::String x) → core::List<core::String> => <core::String>["hello"] in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:44:72: Error: A value of type '(dart.core::String) \u8594 dart.core::List<dart.core::String>' can't be assigned to a variable of type '(dart.core::int) \u8594 dart.core::List<dart.core::String>'.\nTry changing the type of the left hand side, or casting the right hand side to '(dart.core::int) \u8594 dart.core::List<dart.core::String>'.\n l2 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=List<String>*/ (String\n ^"));
- (core::int) → core::List<core::String> l3 = (core::int x) → core::List<core::String> => <core::String>[let final dynamic #t8 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:48:58: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3\n ^"))];
+ (core::int) → core::List<core::String> l2 = let final dynamic #t7 = (core::String x) → core::List<core::String> => <core::String>["hello"] in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:42:72: Error: A value of type '(dart.core::String) \u8594 dart.core::List<dart.core::String>' can't be assigned to a variable of type '(dart.core::int) \u8594 dart.core::List<dart.core::String>'.\nTry changing the type of the left hand side, or casting the right hand side to '(dart.core::int) \u8594 dart.core::List<dart.core::String>'.\n l2 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=List<String>*/ (String\n ^"));
+ (core::int) → core::List<core::String> l3 = (core::int x) → core::List<core::String> => <core::String>[let final dynamic #t8 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:46:58: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3\n ^"))];
(core::int) → core::List<core::String> l4 = (core::int x) → core::List<core::String> {
- return <core::String>[let final dynamic #t9 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:52:52: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3\n ^"))];
+ return <core::String>[let final dynamic #t9 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:50:52: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3\n ^"))];
};
}
{
(core::int) → core::int l0 = (core::int x) → core::int => x;
(core::int) → core::int l1 = (core::int x) → core::int => x.{core::num::+}(1);
- (core::int) → core::String l2 = let final dynamic #t10 = (core::int x) → core::int => x in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:61:63: Error: A value of type '(dart.core::int) \u8594 dart.core::int' can't be assigned to a variable of type '(dart.core::int) \u8594 dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to '(dart.core::int) \u8594 dart.core::String'.\n l2 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=int*/ (/*@type=int*/ x) =>\n ^"));
- (core::int) → core::String l3 = (core::int x) → core::String => let final dynamic #t11 = x in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:65:14: Error: The method 'substring' isn't defined for the class 'dart.core::int'.\nTry correcting the name to the name of an existing method, or defining a method named 'substring'.\n .substring(3);\n ^"));
+ (core::int) → core::String l2 = (core::int x) → core::String => let final dynamic #t10 = x in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:60:13: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n x;\n ^"));
+ (core::int) → core::String l3 = (core::int x) → core::String => (let final dynamic #t11 = x in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:63:14: Error: The method 'substring' isn't defined for the class 'dart.core::int'.\nTry correcting the name to the name of an existing method, or defining a method named 'substring'.\n .substring(3);\n ^"))) as{TypeError} core::String;
(core::String) → core::String l4 = (core::String x) → core::String => x.{core::String::substring}(3);
}
}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart b/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart
index eaddb26..f2c349c 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart
@@ -9,11 +9,11 @@
{
String f<S>(int x) => null;
var /*@type=<S extends Object>(int) -> String*/ v = f;
- v = <T> /*@returnType=String*/ (int x) => null;
+ v = <T> /*@returnType=Null*/ (int x) => null;
v = <T> /*@returnType=String*/ (int x) => "hello";
v = /*error:INVALID_ASSIGNMENT*/ <T> /*@returnType=String*/ (String x) =>
"hello";
- v = /*error:INVALID_ASSIGNMENT*/ <T> /*@returnType=int*/ (int x) => 3;
+ v = /*error:INVALID_ASSIGNMENT*/ <T> /*@returnType=String*/ (int x) => 3;
v = <T> /*@returnType=String*/ (int x) {
return /*error:RETURN_OF_INVALID_TYPE*/ 3;
};
@@ -21,10 +21,10 @@
{
String f<S>(int x) => null;
var /*@type=<S extends Object>(int) -> String*/ v = f;
- v = <T> /*@returnType=String*/ (/*@type=int*/ x) => null;
+ v = <T> /*@returnType=Null*/ (/*@type=int*/ x) => null;
v = <T> /*@returnType=String*/ (/*@type=int*/ x) => "hello";
v = /*info:INFERRED_TYPE_CLOSURE, error:INVALID_ASSIGNMENT*/ <
- T> /*@returnType=int*/ (/*@type=int*/ x) =>
+ T> /*@returnType=String*/ (/*@type=int*/ x) =>
3;
v = <T> /*@returnType=String*/ (/*@type=int*/ x) {
return /*error:RETURN_OF_INVALID_TYPE*/ 3;
@@ -36,7 +36,7 @@
{
List<String> f<S>(int x) => null;
var /*@type=<S extends Object>(int) -> List<String>*/ v = f;
- v = <T> /*@returnType=List<String>*/ (int x) => null;
+ v = <T> /*@returnType=Null*/ (int x) => null;
v = <T> /*@returnType=List<String>*/ (int x) => /*@typeArgs=String*/ [
"hello"
];
@@ -60,7 +60,7 @@
x = <T> /*@returnType=int*/ (/*@type=int*/ x) => x /*@target=num::+*/ + 1;
var /*@type=<T extends Object>(int) -> String*/ y = int2String;
y = /*info:INFERRED_TYPE_CLOSURE, error:INVALID_ASSIGNMENT*/ <
- T> /*@returnType=int*/ (/*@type=int*/ x) =>
+ T> /*@returnType=String*/ (/*@type=int*/ x) =>
x;
y = <T> /*@returnType=String*/ (/*@type=int*/ x) => /*info:DYNAMIC_INVOKE, info:DYNAMIC_CAST*/ x
.substring(3);
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.strong.expect b/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.strong.expect
index 73f816f..0ebb117 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.strong.expect
@@ -7,10 +7,10 @@
function f<S extends core::Object>(core::int x) → core::String
return null;
<S extends core::Object>(core::int) → core::String v = f;
- v = <T extends core::Object>(core::int x) → core::String => null;
+ v = <T extends core::Object>(core::int x) → core::Null => null;
v = <T extends core::Object>(core::int x) → core::String => "hello";
v = let final dynamic #t1 = <T extends core::Object>(core::String x) → core::String => "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:14:65: Error: A value of type '<T extends dart.core::Object>(dart.core::String) \u8594 dart.core::String' can't be assigned to a variable of type '<S extends dart.core::Object>(dart.core::int) \u8594 dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to '<S extends dart.core::Object>(dart.core::int) \u8594 dart.core::String'.\n v = /*error:INVALID_ASSIGNMENT*/ <T> /*@returnType=String*/ (String x) =>\n ^"));
- v = let final dynamic #t2 = <T extends core::Object>(core::int x) → core::int => 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:16:62: Error: A value of type '<T extends dart.core::Object>(dart.core::int) \u8594 dart.core::int' can't be assigned to a variable of type '<S extends dart.core::Object>(dart.core::int) \u8594 dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to '<S extends dart.core::Object>(dart.core::int) \u8594 dart.core::String'.\n v = /*error:INVALID_ASSIGNMENT*/ <T> /*@returnType=int*/ (int x) => 3;\n ^"));
+ v = <T extends core::Object>(core::int x) → core::String => let final dynamic #t2 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:16:76: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n v = /*error:INVALID_ASSIGNMENT*/ <T> /*@returnType=String*/ (int x) => 3;\n ^"));
v = <T extends core::Object>(core::int x) → core::String {
return let final dynamic #t3 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:18:47: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n return /*error:RETURN_OF_INVALID_TYPE*/ 3;\n ^"));
};
@@ -19,9 +19,9 @@
function f<S extends core::Object>(core::int x) → core::String
return null;
<S extends core::Object>(core::int) → core::String v = f;
- v = <T extends core::Object>(core::int x) → core::String => null;
+ v = <T extends core::Object>(core::int x) → core::Null => null;
v = <T extends core::Object>(core::int x) → core::String => "hello";
- v = let final dynamic #t4 = <T extends core::Object>(core::int x) → core::int => 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:27:36: Error: A value of type '<T extends dart.core::Object>(dart.core::int) \u8594 dart.core::int' can't be assigned to a variable of type '<S extends dart.core::Object>(dart.core::int) \u8594 dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to '<S extends dart.core::Object>(dart.core::int) \u8594 dart.core::String'.\n T> /*@returnType=int*/ (/*@type=int*/ x) =>\n ^"));
+ v = <T extends core::Object>(core::int x) → core::String => let final dynamic #t4 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:28:9: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n 3;\n ^"));
v = <T extends core::Object>(core::int x) → core::String {
return let final dynamic #t5 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:30:47: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n return /*error:RETURN_OF_INVALID_TYPE*/ 3;\n ^"));
};
@@ -33,7 +33,7 @@
function f<S extends core::Object>(core::int x) → core::List<core::String>
return null;
<S extends core::Object>(core::int) → core::List<core::String> v = f;
- v = <T extends core::Object>(core::int x) → core::List<core::String> => null;
+ v = <T extends core::Object>(core::int x) → core::Null => null;
v = <T extends core::Object>(core::int x) → core::List<core::String> => <core::String>["hello"];
v = let final dynamic #t7 = <T extends core::Object>(core::String x) → core::List<core::String> => <core::String>["hello"] in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:43:71: Error: A value of type '<T extends dart.core::Object>(dart.core::String) \u8594 dart.core::List<dart.core::String>' can't be assigned to a variable of type '<S extends dart.core::Object>(dart.core::int) \u8594 dart.core::List<dart.core::String>'.\nTry changing the type of the left hand side, or casting the right hand side to '<S extends dart.core::Object>(dart.core::int) \u8594 dart.core::List<dart.core::String>'.\n v = /*error:INVALID_ASSIGNMENT*/ <T> /*@returnType=List<String>*/ (String\n ^"));
v = <T extends core::Object>(core::int x) → core::List<core::String> => <core::String>[let final dynamic #t8 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:46:54: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3\n ^"))];
@@ -52,8 +52,8 @@
x = <T extends core::Object>(core::int x) → core::int => x;
x = <T extends core::Object>(core::int x) → core::int => x.{core::num::+}(1);
<T extends core::Object>(core::int) → core::String y = int2String;
- y = let final dynamic #t10 = <T extends core::Object>(core::int x) → core::int => x in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:63:36: Error: A value of type '<T extends dart.core::Object>(dart.core::int) \u8594 dart.core::int' can't be assigned to a variable of type '<T extends dart.core::Object>(dart.core::int) \u8594 dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to '<T extends dart.core::Object>(dart.core::int) \u8594 dart.core::String'.\n T> /*@returnType=int*/ (/*@type=int*/ x) =>\n ^"));
- y = <T extends core::Object>(core::int x) → core::String => let final dynamic #t11 = x in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:66:10: Error: The method 'substring' isn't defined for the class 'dart.core::int'.\nTry correcting the name to the name of an existing method, or defining a method named 'substring'.\n .substring(3);\n ^"));
+ y = <T extends core::Object>(core::int x) → core::String => let final dynamic #t10 = x in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:64:9: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n x;\n ^"));
+ y = <T extends core::Object>(core::int x) → core::String => (let final dynamic #t11 = x in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:66:10: Error: The method 'substring' isn't defined for the class 'dart.core::int'.\nTry correcting the name to the name of an existing method, or defining a method named 'substring'.\n .substring(3);\n ^"))) as{TypeError} core::String;
<T extends core::Object>(core::String) → core::String z = string2String;
z = <T extends core::Object>(core::String x) → core::String => x.{core::String::substring}(3);
}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart.strong.expect b/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart.strong.expect
index 018f066..b1d7123 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart.strong.expect
@@ -56,59 +56,59 @@
self::A<core::int, core::String> a1 = new self::A::named<core::int, core::String>(3, "hello");
self::A<core::int, core::String> a2 = new self::A::•<core::int, core::String>(3, "hello");
self::A<core::int, core::String> a3 = new self::A::named<core::int, core::String>(3, "hello");
- self::A<core::int, core::String> a4 = new self::A::•<core::int, dynamic>(3, "hello") as{TypeError} self::A<core::int, core::String>;
- self::A<core::int, core::String> a5 = new self::A::named<dynamic, dynamic>(3, "hello") as{TypeError} self::A<core::int, core::String>;
+ self::A<core::int, core::String> a4 = let final dynamic #t1 = new self::A::•<core::int, dynamic>(3, "hello") in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:46:50: Error: The constructor returns type 'test::A<dart.core::int, dynamic>' that isn't of expected type 'test::A<dart.core::int, dart.core::String>'.\nChange the type of the object being constructed or the context in which it is used.\n a4 = /*error:INVALID_CAST_NEW_EXPR*/ new A<int, dynamic>(3, \"hello\");\n ^"));
+ self::A<core::int, core::String> a5 = let final dynamic #t2 = new self::A::named<dynamic, dynamic>(3, "hello") in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:48:50: Error: The constructor returns type 'test::A<dynamic, dynamic>' that isn't of expected type 'test::A<dart.core::int, dart.core::String>'.\nChange the type of the object being constructed or the context in which it is used.\n a5 = /*error:INVALID_CAST_NEW_EXPR*/ new A<dynamic, dynamic>.named(\n ^"));
}
{
- self::A<core::int, core::String> a0 = new self::A::•<core::int, core::String>(let final dynamic #t1 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:53:48: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",\n ^")), let final dynamic #t2 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:54:48: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);\n ^")));
- self::A<core::int, core::String> a1 = new self::A::named<core::int, core::String>(let final dynamic #t3 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:56:48: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",\n ^")), let final dynamic #t4 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:57:48: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);\n ^")));
+ self::A<core::int, core::String> a0 = new self::A::•<core::int, core::String>(let final dynamic #t3 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:53:48: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",\n ^")), let final dynamic #t4 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:54:48: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);\n ^")));
+ self::A<core::int, core::String> a1 = new self::A::named<core::int, core::String>(let final dynamic #t5 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:56:48: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",\n ^")), let final dynamic #t6 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:57:48: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);\n ^")));
}
{
self::A<core::int, core::String> a0 = new self::B::•<core::String, core::int>("hello", 3);
self::A<core::int, core::String> a1 = new self::B::named<core::String, core::int>("hello", 3);
self::A<core::int, core::String> a2 = new self::B::•<core::String, core::int>("hello", 3);
self::A<core::int, core::String> a3 = new self::B::named<core::String, core::int>("hello", 3);
- self::A<core::int, core::String> a4 = let final dynamic #t5 = new self::B::•<core::String, dynamic>("hello", 3) in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:65:47: Error: A value of type 'test::B<dart.core::String, dynamic>' can't be assigned to a variable of type 'test::A<dart.core::int, dart.core::String>'.\nTry changing the type of the left hand side, or casting the right hand side to 'test::A<dart.core::int, dart.core::String>'.\n a4 = /*error:INVALID_ASSIGNMENT*/ new B<String, dynamic>(\"hello\", 3);\n ^"));
- self::A<core::int, core::String> a5 = let final dynamic #t6 = new self::B::named<dynamic, dynamic>("hello", 3) in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:67:47: Error: A value of type 'test::B<dynamic, dynamic>' can't be assigned to a variable of type 'test::A<dart.core::int, dart.core::String>'.\nTry changing the type of the left hand side, or casting the right hand side to 'test::A<dart.core::int, dart.core::String>'.\n a5 = /*error:INVALID_ASSIGNMENT*/ new B<dynamic, dynamic>.named(\n ^"));
+ self::A<core::int, core::String> a4 = let final dynamic #t7 = new self::B::•<core::String, dynamic>("hello", 3) in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:65:47: Error: A value of type 'test::B<dart.core::String, dynamic>' can't be assigned to a variable of type 'test::A<dart.core::int, dart.core::String>'.\nTry changing the type of the left hand side, or casting the right hand side to 'test::A<dart.core::int, dart.core::String>'.\n a4 = /*error:INVALID_ASSIGNMENT*/ new B<String, dynamic>(\"hello\", 3);\n ^"));
+ self::A<core::int, core::String> a5 = let final dynamic #t8 = new self::B::named<dynamic, dynamic>("hello", 3) in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:67:47: Error: A value of type 'test::B<dynamic, dynamic>' can't be assigned to a variable of type 'test::A<dart.core::int, dart.core::String>'.\nTry changing the type of the left hand side, or casting the right hand side to 'test::A<dart.core::int, dart.core::String>'.\n a5 = /*error:INVALID_ASSIGNMENT*/ new B<dynamic, dynamic>.named(\n ^"));
}
{
- self::A<core::int, core::String> a0 = new self::B::•<core::String, core::int>(let final dynamic #t7 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:72:48: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3,\n ^")), let final dynamic #t8 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:73:48: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");\n ^")));
- self::A<core::int, core::String> a1 = new self::B::named<core::String, core::int>(let final dynamic #t9 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:75:48: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3,\n ^")), let final dynamic #t10 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:76:48: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");\n ^")));
+ self::A<core::int, core::String> a0 = new self::B::•<core::String, core::int>(let final dynamic #t9 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:72:48: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3,\n ^")), let final dynamic #t10 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:73:48: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");\n ^")));
+ self::A<core::int, core::String> a1 = new self::B::named<core::String, core::int>(let final dynamic #t11 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:75:48: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3,\n ^")), let final dynamic #t12 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:76:48: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");\n ^")));
}
{
self::A<core::int, core::int> a0 = new self::C::•<core::int>(3);
self::A<core::int, core::int> a1 = new self::C::named<core::int>(3);
self::A<core::int, core::int> a2 = new self::C::•<core::int>(3);
self::A<core::int, core::int> a3 = new self::C::named<core::int>(3);
- self::A<core::int, core::int> a4 = let final dynamic #t11 = new self::C::•<dynamic>(3) in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:83:55: Error: A value of type 'test::C<dynamic>' can't be assigned to a variable of type 'test::A<dart.core::int, dart.core::int>'.\nTry changing the type of the left hand side, or casting the right hand side to 'test::A<dart.core::int, dart.core::int>'.\n A<int, int> a4 = /*error:INVALID_ASSIGNMENT*/ new C<dynamic>(3);\n ^"));
- self::A<core::int, core::int> a5 = let final dynamic #t12 = new self::C::named<dynamic>(3) in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:84:55: Error: A value of type 'test::C<dynamic>' can't be assigned to a variable of type 'test::A<dart.core::int, dart.core::int>'.\nTry changing the type of the left hand side, or casting the right hand side to 'test::A<dart.core::int, dart.core::int>'.\n A<int, int> a5 = /*error:INVALID_ASSIGNMENT*/ new C<dynamic>.named(3);\n ^"));
+ self::A<core::int, core::int> a4 = let final dynamic #t13 = new self::C::•<dynamic>(3) in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:83:55: Error: A value of type 'test::C<dynamic>' can't be assigned to a variable of type 'test::A<dart.core::int, dart.core::int>'.\nTry changing the type of the left hand side, or casting the right hand side to 'test::A<dart.core::int, dart.core::int>'.\n A<int, int> a4 = /*error:INVALID_ASSIGNMENT*/ new C<dynamic>(3);\n ^"));
+ self::A<core::int, core::int> a5 = let final dynamic #t14 = new self::C::named<dynamic>(3) in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:84:55: Error: A value of type 'test::C<dynamic>' can't be assigned to a variable of type 'test::A<dart.core::int, dart.core::int>'.\nTry changing the type of the left hand side, or casting the right hand side to 'test::A<dart.core::int, dart.core::int>'.\n A<int, int> a5 = /*error:INVALID_ASSIGNMENT*/ new C<dynamic>.named(3);\n ^"));
}
{
- self::A<core::int, core::int> a0 = new self::C::•<core::int>(let final dynamic #t13 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:88:48: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");\n ^")));
- self::A<core::int, core::int> a1 = new self::C::named<core::int>(let final dynamic #t14 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:90:48: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");\n ^")));
+ self::A<core::int, core::int> a0 = new self::C::•<core::int>(let final dynamic #t15 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:88:48: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");\n ^")));
+ self::A<core::int, core::int> a1 = new self::C::named<core::int>(let final dynamic #t16 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:90:48: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");\n ^")));
}
{
self::A<core::int, core::String> a0 = new self::D::•<dynamic, core::String>("hello");
self::A<core::int, core::String> a1 = new self::D::named<dynamic, core::String>("hello");
self::A<core::int, core::String> a2 = new self::D::•<core::int, core::String>("hello");
self::A<core::int, core::String> a3 = new self::D::named<core::String, core::String>("hello");
- self::A<core::int, core::String> a4 = let final dynamic #t15 = new self::D::•<core::num, dynamic>("hello") in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:98:47: Error: A value of type 'test::D<dart.core::num, dynamic>' can't be assigned to a variable of type 'test::A<dart.core::int, dart.core::String>'.\nTry changing the type of the left hand side, or casting the right hand side to 'test::A<dart.core::int, dart.core::String>'.\n a4 = /*error:INVALID_ASSIGNMENT*/ new D<num, dynamic>(\"hello\");\n ^"));
- self::A<core::int, core::String> a5 = let final dynamic #t16 = new self::D::named<dynamic, dynamic>("hello") in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:100:47: Error: A value of type 'test::D<dynamic, dynamic>' can't be assigned to a variable of type 'test::A<dart.core::int, dart.core::String>'.\nTry changing the type of the left hand side, or casting the right hand side to 'test::A<dart.core::int, dart.core::String>'.\n a5 = /*error:INVALID_ASSIGNMENT*/ new D<dynamic, dynamic>.named(\n ^"));
+ self::A<core::int, core::String> a4 = let final dynamic #t17 = new self::D::•<core::num, dynamic>("hello") in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:98:47: Error: A value of type 'test::D<dart.core::num, dynamic>' can't be assigned to a variable of type 'test::A<dart.core::int, dart.core::String>'.\nTry changing the type of the left hand side, or casting the right hand side to 'test::A<dart.core::int, dart.core::String>'.\n a4 = /*error:INVALID_ASSIGNMENT*/ new D<num, dynamic>(\"hello\");\n ^"));
+ self::A<core::int, core::String> a5 = let final dynamic #t18 = new self::D::named<dynamic, dynamic>("hello") in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:100:47: Error: A value of type 'test::D<dynamic, dynamic>' can't be assigned to a variable of type 'test::A<dart.core::int, dart.core::String>'.\nTry changing the type of the left hand side, or casting the right hand side to 'test::A<dart.core::int, dart.core::String>'.\n a5 = /*error:INVALID_ASSIGNMENT*/ new D<dynamic, dynamic>.named(\n ^"));
}
{
- self::A<core::int, core::String> a0 = new self::D::•<dynamic, core::String>(let final dynamic #t17 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:105:48: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);\n ^")));
- self::A<core::int, core::String> a1 = new self::D::named<dynamic, core::String>(let final dynamic #t18 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:107:48: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);\n ^")));
+ self::A<core::int, core::String> a0 = new self::D::•<dynamic, core::String>(let final dynamic #t19 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:105:48: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);\n ^")));
+ self::A<core::int, core::String> a1 = new self::D::named<dynamic, core::String>(let final dynamic #t20 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:107:48: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);\n ^")));
}
{
self::A<self::C<core::int>, core::String> a0 = new self::E::•<core::int, core::String>("hello");
}
{
self::A<core::int, core::String> a0 = new self::F::•<core::int, core::String>(3, "hello", a: <core::int>[3], b: <core::String>["hello"]);
- self::A<core::int, core::String> a1 = new self::F::•<core::int, core::String>(3, "hello", a: <core::int>[let final dynamic #t19 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:118:54: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"\n ^"))], b: <core::String>[let final dynamic #t20 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:121:54: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3\n ^"))]);
+ self::A<core::int, core::String> a1 = new self::F::•<core::int, core::String>(3, "hello", a: <core::int>[let final dynamic #t21 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:118:54: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"\n ^"))], b: <core::String>[let final dynamic #t22 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:121:54: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3\n ^"))]);
self::A<core::int, core::String> a2 = new self::F::named<core::int, core::String>(3, "hello", 3, "hello");
self::A<core::int, core::String> a3 = new self::F::named<core::int, core::String>(3, "hello");
- self::A<core::int, core::String> a4 = new self::F::named<core::int, core::String>(3, "hello", let final dynamic #t21 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:129:48: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",\n ^")), let final dynamic #t22 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:130:48: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);\n ^")));
- self::A<core::int, core::String> a5 = new self::F::named<core::int, core::String>(3, "hello", let final dynamic #t23 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:134:48: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");\n ^")));
+ self::A<core::int, core::String> a4 = new self::F::named<core::int, core::String>(3, "hello", let final dynamic #t23 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:129:48: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",\n ^")), let final dynamic #t24 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:130:48: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);\n ^")));
+ self::A<core::int, core::String> a5 = new self::F::named<core::int, core::String>(3, "hello", let final dynamic #t25 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:134:48: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");\n ^")));
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart.strong.expect b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart.strong.expect
index e50be8b..c9f07bb 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart.strong.expect
@@ -17,21 +17,21 @@
core::List<dynamic> l3 = <dynamic>["hello", 3];
}
{
- core::List<core::int> l0 = <core::num>[] as{TypeError} core::List<core::int>;
- core::List<core::int> l1 = <core::num>[3] as{TypeError} core::List<core::int>;
- core::List<core::int> l2 = <core::num>[let final dynamic #t4 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:36:50: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::num'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::num'.\n /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"\n ^"))] as{TypeError} core::List<core::int>;
- core::List<core::int> l3 = <core::num>[let final dynamic #t5 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:39:50: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::num'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::num'.\n /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",\n ^")), 3] as{TypeError} core::List<core::int>;
+ core::List<core::int> l0 = let final dynamic #t4 = <core::num>[] in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:33:61: Error: The list literal type 'dart.core::List<dart.core::num>' isn't of expected type 'dart.core::List<dart.core::int>'.\nChange the type of the list literal or the context in which it is used.\n List<int> l0 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[];\n ^"));
+ core::List<core::int> l1 = let final dynamic #t5 = <core::num>[3] in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:34:61: Error: The list literal type 'dart.core::List<dart.core::num>' isn't of expected type 'dart.core::List<dart.core::int>'.\nChange the type of the list literal or the context in which it is used.\n List<int> l1 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[3];\n ^"));
+ core::List<core::int> l2 = let final dynamic #t6 = <core::num>[let final dynamic #t7 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:36:50: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::num'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::num'.\n /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"\n ^"))] in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:35:61: Error: The list literal type 'dart.core::List<dart.core::num>' isn't of expected type 'dart.core::List<dart.core::int>'.\nChange the type of the list literal or the context in which it is used.\n List<int> l2 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[\n ^"));
+ core::List<core::int> l3 = let final dynamic #t8 = <core::num>[let final dynamic #t9 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:39:50: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::num'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::num'.\n /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",\n ^")), 3] in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:38:61: Error: The list literal type 'dart.core::List<dart.core::num>' isn't of expected type 'dart.core::List<dart.core::int>'.\nChange the type of the list literal or the context in which it is used.\n List<int> l3 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[\n ^"));
}
{
core::Iterable<core::int> i0 = <core::int>[];
core::Iterable<core::int> i1 = <core::int>[3];
- core::Iterable<core::int> i2 = <core::int>[let final dynamic #t6 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:47:50: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"\n ^"))];
- core::Iterable<core::int> i3 = <core::int>[let final dynamic #t7 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:50:50: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",\n ^")), 3];
+ core::Iterable<core::int> i2 = <core::int>[let final dynamic #t10 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:47:50: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"\n ^"))];
+ core::Iterable<core::int> i3 = <core::int>[let final dynamic #t11 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:50:50: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",\n ^")), 3];
}
{
const core::List<core::int> c0 = const <core::int>[];
const core::List<core::int> c1 = const <core::int>[3];
- const core::List<core::int> c2 = const <core::int>[let final dynamic #t8 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:58:89: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"\n ^"))];
- const core::List<core::int> c3 = const <core::int>[let final dynamic #t9 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:61:89: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",\n ^")), 3];
+ const core::List<core::int> c2 = const <core::int>[let final dynamic #t12 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:58:89: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"\n ^"))];
+ const core::List<core::int> c3 = const <core::int>[let final dynamic #t13 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:61:89: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",\n ^")), 3];
}
}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart.strong.expect b/pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart.strong.expect
index d7c8d42..fd577a7 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart.strong.expect
@@ -33,16 +33,16 @@
core::Map<core::int, dynamic> l4 = <core::int, dynamic>{3: "hello", let final dynamic #t9 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:64:45: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\": 3\n ^")): 3};
}
{
- core::Map<core::int, core::String> l0 = <core::num, dynamic>{} as{TypeError} core::Map<core::int, core::String>;
- core::Map<core::int, core::String> l1 = <core::num, dynamic>{3: "hello"} as{TypeError} core::Map<core::int, core::String>;
- core::Map<core::int, core::String> l3 = <core::num, dynamic>{3: 3} as{TypeError} core::Map<core::int, core::String>;
+ core::Map<core::int, core::String> l0 = let final dynamic #t10 = <core::num, dynamic>{} in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:68:76: Error: The map literal type 'dart.core::Map<dart.core::num, dynamic>' isn't of expected type 'dart.core::Map<dart.core::int, dart.core::String>'.\nChange the type of the map literal or the context in which it is used.\n Map<int, String> l0 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{};\n ^"));
+ core::Map<core::int, core::String> l1 = let final dynamic #t11 = <core::num, dynamic>{3: "hello"} in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:69:76: Error: The map literal type 'dart.core::Map<dart.core::num, dynamic>' isn't of expected type 'dart.core::Map<dart.core::int, dart.core::String>'.\nChange the type of the map literal or the context in which it is used.\n Map<int, String> l1 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{\n ^"));
+ core::Map<core::int, core::String> l3 = let final dynamic #t12 = <core::num, dynamic>{3: 3} in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:72:76: Error: The map literal type 'dart.core::Map<dart.core::num, dynamic>' isn't of expected type 'dart.core::Map<dart.core::int, dart.core::String>'.\nChange the type of the map literal or the context in which it is used.\n Map<int, String> l3 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{\n ^"));
}
{
const core::Map<core::int, core::String> l0 = const <core::int, core::String>{};
const core::Map<core::int, core::String> l1 = const <core::int, core::String>{3: "hello"};
- const core::Map<core::int, core::String> l2 = const <core::int, core::String>{let final dynamic #t10 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:80:79: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\":\n ^")): "hello"};
- const core::Map<core::int, core::String> l3 = const <core::int, core::String>{3: let final dynamic #t11 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:84:86: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n 3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE,error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3\n ^"))};
- const core::Map<core::int, core::String> l4 = const <core::int, core::String>{3: "hello", let final dynamic #t12 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:88:79: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\":\n ^")): let final dynamic #t13 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:89:87: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE,error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3\n ^"))};
+ const core::Map<core::int, core::String> l2 = const <core::int, core::String>{let final dynamic #t13 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:80:79: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\":\n ^")): "hello"};
+ const core::Map<core::int, core::String> l3 = const <core::int, core::String>{3: let final dynamic #t14 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:84:86: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n 3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE,error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3\n ^"))};
+ const core::Map<core::int, core::String> l4 = const <core::int, core::String>{3: "hello", let final dynamic #t15 = "hello" in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:88:79: Error: A value of type 'dart.core::String' can't be assigned to a variable of type 'dart.core::int'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::int'.\n /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\":\n ^")): let final dynamic #t16 = 3 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:89:87: Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE,error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3\n ^"))};
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/future_then_conditional.dart b/pkg/front_end/testcases/inference/future_then_conditional.dart
index 5af8eb1..84451ed 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional.dart
+++ b/pkg/front_end/testcases/inference/future_then_conditional.dart
@@ -25,7 +25,7 @@
});
Future<int> t5 = f. /*@typeArgs=int*/ /*@target=MyFuture::then*/ then(
/*error:INVALID_CAST_FUNCTION_EXPR*/
- /*@returnType=Object*/ (/*@type=bool*/ x) =>
+ /*@returnType=FutureOr<int>*/ (/*@type=bool*/ x) =>
x ? 2 : new Future<int>.value(3));
Future<int> t6 = f. /*@typeArgs=int*/ /*@target=MyFuture::then*/ then(
/*@returnType=FutureOr<int>*/ (/*@type=bool*/ x) {
diff --git a/pkg/front_end/testcases/inference/future_then_conditional.dart.strong.expect b/pkg/front_end/testcases/inference/future_then_conditional.dart.strong.expect
index c4ae910..b5a4ef4 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional.dart.strong.expect
@@ -18,7 +18,7 @@
asy::Future<core::int> t2 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::Future<core::int> async {
return (await x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError} asy::FutureOr<core::int>;
});
- asy::Future<core::int> t5 = f.{self::MyFuture::then}<core::int>(((core::bool x) → core::Object => x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError} (core::bool) → asy::FutureOr<core::int>);
+ asy::Future<core::int> t5 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::FutureOr<core::int> => (x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError} asy::FutureOr<core::int>);
asy::Future<core::int> t6 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::FutureOr<core::int> {
return (x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError} asy::FutureOr<core::int>;
});
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_2.dart b/pkg/front_end/testcases/inference/future_then_conditional_2.dart
index 0728849..2dcdf3f 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_2.dart
+++ b/pkg/front_end/testcases/inference/future_then_conditional_2.dart
@@ -27,7 +27,7 @@
});
Future<int> t5 = f. /*@typeArgs=int*/ /*@target=MyFuture::then*/ then(
/*info:INFERRED_TYPE_CLOSURE,error:INVALID_CAST_FUNCTION_EXPR*/
- /*@returnType=Object*/ (/*@type=bool*/ x) =>
+ /*@returnType=FutureOr<int>*/ (/*@type=bool*/ x) =>
x ? 2 : new MyFuture<int>.value(3));
Future<int> t6 = f. /*@typeArgs=int*/ /*@target=MyFuture::then*/ then(
/*@returnType=FutureOr<int>*/ (/*@type=bool*/ x) {
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_2.dart.strong.expect b/pkg/front_end/testcases/inference/future_then_conditional_2.dart.strong.expect
index e0055d5..213e538a 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_2.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional_2.dart.strong.expect
@@ -18,7 +18,7 @@
asy::Future<core::int> t2 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::Future<core::int> async {
return (await x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError} asy::FutureOr<core::int>;
});
- asy::Future<core::int> t5 = f.{self::MyFuture::then}<core::int>(((core::bool x) → core::Object => x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError} (core::bool) → asy::FutureOr<core::int>);
+ asy::Future<core::int> t5 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::FutureOr<core::int> => (x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError} asy::FutureOr<core::int>);
asy::Future<core::int> t6 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::FutureOr<core::int> {
return (x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError} asy::FutureOr<core::int>;
});
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_3.dart b/pkg/front_end/testcases/inference/future_then_conditional_3.dart
index 694d8a9..f06ef6b 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_3.dart
+++ b/pkg/front_end/testcases/inference/future_then_conditional_3.dart
@@ -25,7 +25,7 @@
});
MyFuture<int> t5 = f. /*@typeArgs=int*/ /*@target=MyFuture::then*/ then(
/*info:INFERRED_TYPE_CLOSURE,error:INVALID_CAST_FUNCTION_EXPR*/
- /*@returnType=Object*/ (/*@type=bool*/ x) =>
+ /*@returnType=FutureOr<int>*/ (/*@type=bool*/ x) =>
x ? 2 : new Future<int>.value(3));
MyFuture<int> t6 = f. /*@typeArgs=int*/ /*@target=MyFuture::then*/ then(
/*@returnType=FutureOr<int>*/ (/*@type=bool*/ x) {
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_3.dart.strong.expect b/pkg/front_end/testcases/inference/future_then_conditional_3.dart.strong.expect
index 1fb9e8e..95d159a 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_3.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional_3.dart.strong.expect
@@ -18,7 +18,7 @@
self::MyFuture<core::int> t2 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::Future<core::int> async {
return (await x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError} asy::FutureOr<core::int>;
});
- self::MyFuture<core::int> t5 = f.{self::MyFuture::then}<core::int>(((core::bool x) → core::Object => x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError} (core::bool) → asy::FutureOr<core::int>);
+ self::MyFuture<core::int> t5 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::FutureOr<core::int> => (x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError} asy::FutureOr<core::int>);
self::MyFuture<core::int> t6 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::FutureOr<core::int> {
return (x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError} asy::FutureOr<core::int>;
});
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_4.dart b/pkg/front_end/testcases/inference/future_then_conditional_4.dart
index 67a980f..8049974 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_4.dart
+++ b/pkg/front_end/testcases/inference/future_then_conditional_4.dart
@@ -27,7 +27,7 @@
});
MyFuture<int> t5 = f. /*@typeArgs=int*/ /*@target=MyFuture::then*/ then(
/*info:INFERRED_TYPE_CLOSURE,error:INVALID_CAST_FUNCTION_EXPR*/
- /*@returnType=Object*/ (/*@type=bool*/ x) =>
+ /*@returnType=FutureOr<int>*/ (/*@type=bool*/ x) =>
x ? 2 : new MyFuture<int>.value(3));
MyFuture<int> t6 = f. /*@typeArgs=int*/ /*@target=MyFuture::then*/ then(
/*@returnType=FutureOr<int>*/ (/*@type=bool*/ x) {
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_4.dart.strong.expect b/pkg/front_end/testcases/inference/future_then_conditional_4.dart.strong.expect
index 4eb9386..d84c298 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_4.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional_4.dart.strong.expect
@@ -18,7 +18,7 @@
self::MyFuture<core::int> t2 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::Future<core::int> async {
return (await x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError} asy::FutureOr<core::int>;
});
- self::MyFuture<core::int> t5 = f.{self::MyFuture::then}<core::int>(((core::bool x) → core::Object => x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError} (core::bool) → asy::FutureOr<core::int>);
+ self::MyFuture<core::int> t5 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::FutureOr<core::int> => (x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError} asy::FutureOr<core::int>);
self::MyFuture<core::int> t6 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::FutureOr<core::int> {
return (x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError} asy::FutureOr<core::int>;
});
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_5.dart b/pkg/front_end/testcases/inference/future_then_conditional_5.dart
index 0c4604e..4660443 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_5.dart
+++ b/pkg/front_end/testcases/inference/future_then_conditional_5.dart
@@ -27,7 +27,7 @@
});
Future<int> t5 = f. /*@typeArgs=int*/ /*@target=Future::then*/ then(
/*info:INFERRED_TYPE_CLOSURE,error:INVALID_CAST_FUNCTION_EXPR*/
- /*@returnType=Object*/ (/*@type=bool*/ x) =>
+ /*@returnType=FutureOr<int>*/ (/*@type=bool*/ x) =>
x ? 2 : new MyFuture<int>.value(3));
Future<int> t6 = f. /*@typeArgs=int*/ /*@target=Future::then*/ then(
/*@returnType=FutureOr<int>*/ (/*@type=bool*/ x) {
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_5.dart.strong.expect b/pkg/front_end/testcases/inference/future_then_conditional_5.dart.strong.expect
index 3c15bac..d010e60 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_5.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional_5.dart.strong.expect
@@ -18,7 +18,7 @@
asy::Future<core::int> t2 = f.{asy::Future::then}<core::int>((core::bool x) → asy::Future<core::int> async {
return (await x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError} asy::FutureOr<core::int>;
});
- asy::Future<core::int> t5 = f.{asy::Future::then}<core::int>(((core::bool x) → core::Object => x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError} (core::bool) → asy::FutureOr<core::int>);
+ asy::Future<core::int> t5 = f.{asy::Future::then}<core::int>((core::bool x) → asy::FutureOr<core::int> => (x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError} asy::FutureOr<core::int>);
asy::Future<core::int> t6 = f.{asy::Future::then}<core::int>((core::bool x) → asy::FutureOr<core::int> {
return (x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError} asy::FutureOr<core::int>;
});
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_6.dart b/pkg/front_end/testcases/inference/future_then_conditional_6.dart
index 9b8b4f9..e843c57 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_6.dart
+++ b/pkg/front_end/testcases/inference/future_then_conditional_6.dart
@@ -25,7 +25,7 @@
});
Future<int> t5 = f. /*@typeArgs=int*/ /*@target=Future::then*/ then(
/*info:INFERRED_TYPE_CLOSURE,error:INVALID_CAST_FUNCTION_EXPR*/
- /*@returnType=Object*/ (/*@type=bool*/ x) =>
+ /*@returnType=FutureOr<int>*/ (/*@type=bool*/ x) =>
x ? 2 : new Future<int>.value(3));
Future<int> t6 = f. /*@typeArgs=int*/ /*@target=Future::then*/ then(
/*@returnType=FutureOr<int>*/ (/*@type=bool*/ x) {
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_6.dart.strong.expect b/pkg/front_end/testcases/inference/future_then_conditional_6.dart.strong.expect
index 0cdcb94..eb9edd0 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_6.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional_6.dart.strong.expect
@@ -18,7 +18,7 @@
asy::Future<core::int> t2 = f.{asy::Future::then}<core::int>((core::bool x) → asy::Future<core::int> async {
return (await x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError} asy::FutureOr<core::int>;
});
- asy::Future<core::int> t5 = f.{asy::Future::then}<core::int>(((core::bool x) → core::Object => x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError} (core::bool) → asy::FutureOr<core::int>);
+ asy::Future<core::int> t5 = f.{asy::Future::then}<core::int>((core::bool x) → asy::FutureOr<core::int> => (x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError} asy::FutureOr<core::int>);
asy::Future<core::int> t6 = f.{asy::Future::then}<core::int>((core::bool x) → asy::FutureOr<core::int> {
return (x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError} asy::FutureOr<core::int>;
});
diff --git a/pkg/front_end/testcases/inference/future_then_ifNull.dart b/pkg/front_end/testcases/inference/future_then_ifNull.dart
index 9e2d931..f79997e 100644
--- a/pkg/front_end/testcases/inference/future_then_ifNull.dart
+++ b/pkg/front_end/testcases/inference/future_then_ifNull.dart
@@ -25,7 +25,7 @@
});
Future<int> t5 = f. /*@typeArgs=int*/ /*@target=MyFuture::then*/ then(
/*error:INVALID_CAST_FUNCTION_EXPR*/
- /*@returnType=Object*/ (/*@type=int*/ x) =>
+ /*@returnType=FutureOr<int>*/ (/*@type=int*/ x) =>
x ?? new Future<int>.value(3));
Future<int> t6 = f. /*@typeArgs=int*/ /*@target=MyFuture::then*/ then(
/*@returnType=FutureOr<int>*/ (/*@type=int*/ x) {
diff --git a/pkg/front_end/testcases/inference/future_then_ifNull.dart.strong.expect b/pkg/front_end/testcases/inference/future_then_ifNull.dart.strong.expect
index 05c6a6b..636b65e 100644
--- a/pkg/front_end/testcases/inference/future_then_ifNull.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/future_then_ifNull.dart.strong.expect
@@ -18,7 +18,7 @@
asy::Future<core::int> t2 = f.{self::MyFuture::then}<core::int>((core::int x) → asy::Future<core::int> async {
return (let final core::int #t2 = await x in #t2.==(null) ?{core::Object} asy::Future::value<core::int>(3) : #t2) as{TypeError} asy::FutureOr<core::int>;
});
- asy::Future<core::int> t5 = f.{self::MyFuture::then}<core::int>(((core::int x) → core::Object => let final core::int #t3 = x in #t3.==(null) ?{core::Object} asy::Future::value<core::int>(3) : #t3) as{TypeError} (core::int) → asy::FutureOr<core::int>);
+ asy::Future<core::int> t5 = f.{self::MyFuture::then}<core::int>((core::int x) → asy::FutureOr<core::int> => (let final core::int #t3 = x in #t3.==(null) ?{core::Object} asy::Future::value<core::int>(3) : #t3) as{TypeError} asy::FutureOr<core::int>);
asy::Future<core::int> t6 = f.{self::MyFuture::then}<core::int>((core::int x) → asy::FutureOr<core::int> {
return (let final core::int #t4 = x in #t4.==(null) ?{core::Object} asy::Future::value<core::int>(3) : #t4) as{TypeError} asy::FutureOr<core::int>;
});
diff --git a/pkg/front_end/testcases/inference/generic_methods_inference_error.dart b/pkg/front_end/testcases/inference/generic_methods_inference_error.dart
index 7973dbe..8f45010 100644
--- a/pkg/front_end/testcases/inference/generic_methods_inference_error.dart
+++ b/pkg/front_end/testcases/inference/generic_methods_inference_error.dart
@@ -8,7 +8,7 @@
void f() {
List<String> y;
Iterable<String> x = y. /*@typeArgs=String*/ /*@target=Iterable::map*/ map(
- /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ /*@returnType=double*/ (String
+ /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ /*@returnType=String*/ (String
z) =>
1.0);
}
diff --git a/pkg/front_end/testcases/inference/generic_methods_inference_error.dart.strong.expect b/pkg/front_end/testcases/inference/generic_methods_inference_error.dart.strong.expect
index e15d852..9fc45f4 100644
--- a/pkg/front_end/testcases/inference/generic_methods_inference_error.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_inference_error.dart.strong.expect
@@ -4,6 +4,6 @@
static method f() → void {
core::List<core::String> y;
- core::Iterable<core::String> x = y.{core::Iterable::map}<core::String>(let final dynamic #t1 = (core::String z) → core::double => 1.0 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/generic_methods_inference_error.dart:11:69: Error: A value of type '(dart.core::String) \u8594 dart.core::double' can't be assigned to a variable of type '(dart.core::String) \u8594 dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to '(dart.core::String) \u8594 dart.core::String'.\n /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ /*@returnType=double*/ (String\n ^")));
+ core::Iterable<core::String> x = y.{core::Iterable::map}<core::String>((core::String z) → core::String => let final dynamic #t1 = 1.0 in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/generic_methods_inference_error.dart:13:11: Error: A value of type 'dart.core::double' can't be assigned to a variable of type 'dart.core::String'.\nTry changing the type of the left hand side, or casting the right hand side to 'dart.core::String'.\n 1.0);\n ^")));
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart.strong.expect b/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart.strong.expect
index 954645b..6ca1c45 100644
--- a/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart.strong.expect
@@ -8,7 +8,7 @@
static method test() → dynamic {
core::Iterable<asy::Future<core::int>> list = <core::int>[1, 2, 3].{core::Iterable::map}<asy::Future<core::int>>(self::make);
asy::Future<core::List<core::int>> results = asy::Future::wait<core::int>(list);
- asy::Future<core::String> results2 = results.{asy::Future::then}<core::String>((core::List<core::int> list) → asy::FutureOr<core::String> => list.{core::Iterable::fold}<asy::FutureOr<core::String>>("", (asy::FutureOr<core::String> x, core::int y) → asy::FutureOr<core::String> => let final dynamic #t1 = x in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart:23:120: Error: The method '+' isn't defined for the class 'dart.async::FutureOr<dart.core::String>'.\nTry correcting the name to the name of an existing method, or defining a method named '+'.\n /*@type=int*/ y) => /*info:DYNAMIC_CAST,info:DYNAMIC_INVOKE*/ x /*error:UNDEFINED_OPERATOR*/ +\n ^"))));
+ asy::Future<core::String> results2 = results.{asy::Future::then}<core::String>((core::List<core::int> list) → asy::FutureOr<core::String> => list.{core::Iterable::fold}<asy::FutureOr<core::String>>("", (asy::FutureOr<core::String> x, core::int y) → asy::FutureOr<core::String> => (let final dynamic #t1 = x in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart:23:120: Error: The method '+' isn't defined for the class 'dart.async::FutureOr<dart.core::String>'.\nTry correcting the name to the name of an existing method, or defining a method named '+'.\n /*@type=int*/ y) => /*info:DYNAMIC_CAST,info:DYNAMIC_INVOKE*/ x /*error:UNDEFINED_OPERATOR*/ +\n ^"))) as{TypeError} asy::FutureOr<core::String>));
asy::Future<core::String> results3 = results.{asy::Future::then}<core::String>((core::List<core::int> list) → asy::FutureOr<core::String> => list.{core::Iterable::fold}<asy::FutureOr<core::String>>("", let final dynamic #t2 = (core::String x, core::int y) → core::String => x.{core::String::+}(y.{core::int::toString}()) in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart:31:108: Error: A value of type '(dart.core::String, dart.core::int) \u8594 dart.core::String' can't be assigned to a variable of type '(dart.async::FutureOr<dart.core::String>, dart.core::int) \u8594 dart.async::FutureOr<dart.core::String>'.\nTry changing the type of the left hand side, or casting the right hand side to '(dart.async::FutureOr<dart.core::String>, dart.core::int) \u8594 dart.async::FutureOr<dart.core::String>'.\n /*info:INFERRED_TYPE_CLOSURE,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ /*@returnType=String*/ (String\n ^"))));
asy::Future<core::String> results4 = results.{asy::Future::then}<core::String>((core::List<core::int> list) → core::String => list.{core::Iterable::fold}<core::String>("", (core::String x, core::int y) → core::String => x.{core::String::+}(y.{core::int::toString}())));
}
diff --git a/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart b/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart
index 3f89def..a7235c9 100644
--- a/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart
+++ b/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart
@@ -12,6 +12,6 @@
main() {
var /*@type=(num) -> List<int>*/ v = /*@typeArgs=(num) -> List<int>*/ generic(
- /*@returnType=dynamic*/ (F f) => null,
- /*@returnType=dynamic*/ (G g) => null);
+ /*@returnType=Null*/ (F f) => null,
+ /*@returnType=Null*/ (G g) => null);
}
diff --git a/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.strong.expect b/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.strong.expect
index 0869057..0aafd64 100644
--- a/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.strong.expect
@@ -7,5 +7,5 @@
static method generic<T extends core::Object>((self::generic::T) → dynamic a, (self::generic::T) → dynamic b) → self::generic::T
return null;
static method main() → dynamic {
- (core::num) → core::List<core::int> v = self::generic<(core::num) → core::List<core::int>>(((core::int) → core::Iterable<core::num> f) → dynamic => null, ((core::double) → core::List<core::int> g) → dynamic => null);
+ (core::num) → core::List<core::int> v = self::generic<(core::num) → core::List<core::int>>(((core::int) → core::Iterable<core::num> f) → core::Null => null, ((core::double) → core::List<core::int> g) → core::Null => null);
}
diff --git a/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart b/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart
new file mode 100644
index 0000000..57583aa
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart
@@ -0,0 +1,21 @@
+// 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+class A {
+ void set x(int i) {}
+}
+
+class B extends A {
+ // The setter return type should be inferred, but the setter parameter type
+ // should not.
+ set /*@topType=void*/ x(Object o) {}
+}
+
+main() {
+ // Ok because the setter accepts `Object`.
+ new B(). /*@target=B::x*/ x = "hello";
+}
diff --git a/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.direct.expect b/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.direct.expect
new file mode 100644
index 0000000..63ea26b
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.direct.expect
@@ -0,0 +1,19 @@
+library test;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ default constructor •() → void
+ : super core::Object::•()
+ ;
+ set x(core::int i) → void {}
+}
+class B extends self::A {
+ default constructor •() → void
+ : super self::A::•()
+ ;
+ set x(core::Object o) → dynamic {}
+}
+static method main() → dynamic {
+ new self::B::•().x = "hello";
+}
diff --git a/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.outline.expect b/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.outline.expect
new file mode 100644
index 0000000..049eada
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.outline.expect
@@ -0,0 +1,18 @@
+library test;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ default constructor •() → void
+ ;
+ set x(core::int i) → void
+ ;
+}
+class B extends self::A {
+ default constructor •() → void
+ ;
+ set x(core::Object o) → dynamic
+ ;
+}
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.strong.expect b/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.strong.expect
new file mode 100644
index 0000000..69b7ca7
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.strong.expect
@@ -0,0 +1,19 @@
+library test;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ default constructor •() → void
+ : super core::Object::•()
+ ;
+ set x(core::int i) → void {}
+}
+class B extends self::A {
+ default constructor •() → void
+ : super self::A::•()
+ ;
+ set x(core::Object o) → void {}
+}
+static method main() → dynamic {
+ new self::B::•().{self::B::x} = "hello";
+}
diff --git a/pkg/front_end/testcases/inference/lambda_return_type.dart b/pkg/front_end/testcases/inference/lambda_return_type.dart
index 31f5e5e..020059b 100644
--- a/pkg/front_end/testcases/inference/lambda_return_type.dart
+++ b/pkg/front_end/testcases/inference/lambda_return_type.dart
@@ -11,7 +11,7 @@
int i = 1;
Object o = 1;
FunctionReturningNum a = /*@returnType=int*/ () => i;
- FunctionReturningNum b = /*@returnType=Object*/ () => o;
+ FunctionReturningNum b = /*@returnType=num*/ () => o;
FunctionReturningNum c = /*@returnType=int*/ () {
return i;
};
diff --git a/pkg/front_end/testcases/inference/lambda_return_type.dart.strong.expect b/pkg/front_end/testcases/inference/lambda_return_type.dart.strong.expect
index 3863359..ffcd819 100644
--- a/pkg/front_end/testcases/inference/lambda_return_type.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/lambda_return_type.dart.strong.expect
@@ -7,7 +7,7 @@
core::int i = 1;
core::Object o = 1;
() → core::num a = () → core::int => i;
- () → core::num b = (() → core::Object => o) as{TypeError} () → core::num;
+ () → core::num b = () → core::num => o as{TypeError} core::num;
() → core::num c = () → core::int {
return i;
};
diff --git a/pkg/front_end/testcases/inference/lambda_void_context.dart b/pkg/front_end/testcases/inference/lambda_void_context.dart
index cf6ddfc..27bcadf 100644
--- a/pkg/front_end/testcases/inference/lambda_void_context.dart
+++ b/pkg/front_end/testcases/inference/lambda_void_context.dart
@@ -8,7 +8,7 @@
f() {
List<int> o;
o. /*@target=Iterable::forEach*/ forEach(
- /*@returnType=int*/ (/*@type=int*/ i) => i /*@target=num::+*/ + 1);
+ /*@returnType=void*/ (/*@type=int*/ i) => i /*@target=num::+*/ + 1);
}
main() {}
diff --git a/pkg/front_end/testcases/inference/lambda_void_context.dart.strong.expect b/pkg/front_end/testcases/inference/lambda_void_context.dart.strong.expect
index 13abe3f..f46ab7c 100644
--- a/pkg/front_end/testcases/inference/lambda_void_context.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/lambda_void_context.dart.strong.expect
@@ -4,6 +4,6 @@
static method f() → dynamic {
core::List<core::int> o;
- o.{core::Iterable::forEach}((core::int i) → core::int => i.{core::num::+}(1));
+ o.{core::Iterable::forEach}((core::int i) → void => i.{core::num::+}(1));
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom.dart b/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom.dart
index 27b6645..65e1bda 100644
--- a/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom.dart
+++ b/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom.dart
@@ -9,11 +9,10 @@
void foo(int f(Object _)) {}
test() {
- var /*@type=(Object) -> dynamic*/ f = /*@returnType=dynamic*/ (Object x) =>
- null;
+ var /*@type=(Object) -> Null*/ f = /*@returnType=Null*/ (Object x) => null;
String y = /*info:DYNAMIC_CAST*/ f(42);
- f = /*@returnType=String*/ (/*@type=Object*/ x) => 'hello';
+ f = /*@returnType=Null*/ (/*@type=Object*/ x) => 'hello';
var /*@type=dynamic*/ g = null;
g = 'hello';
@@ -22,7 +21,7 @@
h = 'hello';
(/*info:DYNAMIC_INVOKE*/ h.foo());
- foo(/*@returnType=int*/ (/*@type=Object*/ x) => null);
+ foo(/*@returnType=Null*/ (/*@type=Object*/ x) => null);
foo(/*@returnType=<BottomType>*/ (/*@type=Object*/ x) =>
throw "not implemented");
}
diff --git a/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom.dart.strong.expect b/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom.dart.strong.expect
index 249d337d..00a18ed 100644
--- a/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom.dart.strong.expect
@@ -5,15 +5,15 @@
static field dynamic h = null;
static method foo((core::Object) → core::int f) → void {}
static method test() → dynamic {
- (core::Object) → dynamic f = (core::Object x) → dynamic => null;
- core::String y = f.call(42) as{TypeError} core::String;
- f = (core::Object x) → core::String => "hello";
+ (core::Object) → core::Null f = (core::Object x) → core::Null => null;
+ core::String y = f.call(42);
+ f = (core::Object x) → core::Null => "hello" as{TypeError} core::Null;
dynamic g = null;
g = "hello";
g.foo();
self::h = "hello";
self::h.foo();
- self::foo((core::Object x) → core::int => null);
+ self::foo((core::Object x) → core::Null => null);
self::foo((core::Object x) → <BottomType>=> throw "not implemented");
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/invalid_cast.dart b/pkg/front_end/testcases/invalid_cast.dart
new file mode 100644
index 0000000..9baaf86
--- /dev/null
+++ b/pkg/front_end/testcases/invalid_cast.dart
@@ -0,0 +1,52 @@
+// 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.
+
+/*@testedFeatures=error*/
+
+class C {
+ C();
+ factory C.fact() => null;
+ factory C.fact2() = D;
+ C.nonFact();
+ C.nonFact2() : this.nonFact();
+ static void staticFunction(int i) {}
+}
+
+class D extends C {}
+
+void topLevelFunction(int i) {}
+
+bad() {
+ void localFunction(int i) {}
+ List<int> a = <Object> /*@error=InvalidCastLiteralList*/ [];
+ Map<int, String> b = <Object, String> /*@error=InvalidCastLiteralMap*/ {};
+ Map<int, String> c = <int, Object> /*@error=InvalidCastLiteralMap*/ {};
+ int Function(Object) d = /*@error=InvalidCastFunctionExpr*/ (int i) => i;
+ D e = new C.fact();
+ D f = new C.fact2();
+ D g = new /*@error=InvalidCastNewExpr*/ C.nonFact();
+ D h = new /*@error=InvalidCastNewExpr*/ C.nonFact2();
+ void Function(Object) i =
+ C. /*@error=InvalidCastStaticMethod*/ staticFunction;
+ void Function(Object)
+ j = /*@error=InvalidCastTopLevelFunction*/ topLevelFunction;
+ void Function(Object) k = /*@error=InvalidCastLocalFunction*/ localFunction;
+}
+
+ok() {
+ void localFunction(int i) {}
+ List<int> a = <int>[];
+ Map<int, String> b = <int, String>{};
+ Map<int, String> c = <int, String>{};
+ int Function(int) d = (int i) => i;
+ D e = new C.fact();
+ D f = new C.fact2();
+ C g = new C.nonFact();
+ C h = new C.nonFact2();
+ void Function(int) i = C.staticFunction;
+ void Function(int) j = topLevelFunction;
+ void Function(int) k = localFunction;
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/invalid_cast.dart.direct.expect b/pkg/front_end/testcases/invalid_cast.dart.direct.expect
new file mode 100644
index 0000000..eef3c60
--- /dev/null
+++ b/pkg/front_end/testcases/invalid_cast.dart.direct.expect
@@ -0,0 +1,56 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+class C extends core::Object {
+ static field dynamic _redirecting# = <dynamic>[self::C::fact2];
+ constructor •() → void
+ : super core::Object::•()
+ ;
+ constructor nonFact() → void
+ : super core::Object::•()
+ ;
+ constructor nonFact2() → void
+ : this self::C::nonFact()
+ ;
+ static factory fact() → self::C
+ return null;
+ static factory fact2() → self::C
+ let dynamic #redirecting_factory = self::D::• in invalid-expression;
+ static method staticFunction(core::int i) → void {}
+}
+class D extends self::C {
+ default constructor •() → void
+ : super self::C::•()
+ ;
+}
+static method topLevelFunction(core::int i) → void {}
+static method bad() → dynamic {
+ function localFunction(core::int i) → void {}
+ core::List<core::int> a = <core::Object>[];
+ core::Map<core::int, core::String> b = <core::Object, core::String>{};
+ core::Map<core::int, core::String> c = <core::int, core::Object>{};
+ (core::Object) → core::int d = (core::int i) → dynamic => i;
+ self::D e = self::C::fact();
+ self::D f = new self::D::•();
+ self::D g = new self::C::nonFact();
+ self::D h = new self::C::nonFact2();
+ (core::Object) → void i = self::C::staticFunction;
+ (core::Object) → void j = self::topLevelFunction;
+ (core::Object) → void k = localFunction;
+}
+static method ok() → dynamic {
+ function localFunction(core::int i) → void {}
+ core::List<core::int> a = <core::int>[];
+ core::Map<core::int, core::String> b = <core::int, core::String>{};
+ core::Map<core::int, core::String> c = <core::int, core::String>{};
+ (core::int) → core::int d = (core::int i) → dynamic => i;
+ self::D e = self::C::fact();
+ self::D f = new self::D::•();
+ self::C g = new self::C::nonFact();
+ self::C h = new self::C::nonFact2();
+ (core::int) → void i = self::C::staticFunction;
+ (core::int) → void j = self::topLevelFunction;
+ (core::int) → void k = localFunction;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/invalid_cast.dart.outline.expect b/pkg/front_end/testcases/invalid_cast.dart.outline.expect
new file mode 100644
index 0000000..644d93c
--- /dev/null
+++ b/pkg/front_end/testcases/invalid_cast.dart.outline.expect
@@ -0,0 +1,31 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+class C extends core::Object {
+ static field dynamic _redirecting# = <dynamic>[self::C::fact2];
+ constructor •() → void
+ ;
+ constructor nonFact() → void
+ ;
+ constructor nonFact2() → void
+ ;
+ static factory fact() → self::C
+ ;
+ static factory fact2() → self::C
+ let dynamic #redirecting_factory = self::D::• in invalid-expression;
+ static method staticFunction(core::int i) → void
+ ;
+}
+class D extends self::C {
+ default constructor •() → void
+ ;
+}
+static method topLevelFunction(core::int i) → void
+ ;
+static method bad() → dynamic
+ ;
+static method ok() → dynamic
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/invalid_cast.dart.strong.expect b/pkg/front_end/testcases/invalid_cast.dart.strong.expect
new file mode 100644
index 0000000..4900c71
--- /dev/null
+++ b/pkg/front_end/testcases/invalid_cast.dart.strong.expect
@@ -0,0 +1,56 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+class C extends core::Object {
+ static field dynamic _redirecting# = <dynamic>[self::C::fact2];
+ constructor •() → void
+ : super core::Object::•()
+ ;
+ constructor nonFact() → void
+ : super core::Object::•()
+ ;
+ constructor nonFact2() → void
+ : this self::C::nonFact()
+ ;
+ static factory fact() → self::C
+ return null;
+ static factory fact2() → self::C
+ let dynamic #redirecting_factory = self::D::• in invalid-expression;
+ static method staticFunction(core::int i) → void {}
+}
+class D extends self::C {
+ default constructor •() → void
+ : super self::C::•()
+ ;
+}
+static method topLevelFunction(core::int i) → void {}
+static method bad() → dynamic {
+ function localFunction(core::int i) → void {}
+ core::List<core::int> a = let final dynamic #t1 = <core::Object>[] in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/invalid_cast.dart:22:60: Error: The list literal type 'dart.core::List<dart.core::Object>' isn't of expected type 'dart.core::List<dart.core::int>'.\nChange the type of the list literal or the context in which it is used.\n List<int> a = <Object> /*@error=InvalidCastLiteralList*/ [];\n ^"));
+ core::Map<core::int, core::String> b = let final dynamic #t2 = <core::Object, core::String>{} in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/invalid_cast.dart:23:74: Error: The map literal type 'dart.core::Map<dart.core::Object, dart.core::String>' isn't of expected type 'dart.core::Map<dart.core::int, dart.core::String>'.\nChange the type of the map literal or the context in which it is used.\n Map<int, String> b = <Object, String> /*@error=InvalidCastLiteralMap*/ {};\n ^"));
+ core::Map<core::int, core::String> c = let final dynamic #t3 = <core::int, core::Object>{} in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/invalid_cast.dart:24:71: Error: The map literal type 'dart.core::Map<dart.core::int, dart.core::Object>' isn't of expected type 'dart.core::Map<dart.core::int, dart.core::String>'.\nChange the type of the map literal or the context in which it is used.\n Map<int, String> c = <int, Object> /*@error=InvalidCastLiteralMap*/ {};\n ^"));
+ (core::Object) → core::int d = let final dynamic #t4 = (core::int i) → core::int => i in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/invalid_cast.dart:25:63: Error: The function expression type '(dart.core::int) \u8594 dart.core::int' isn't of expected type '(dart.core::Object) \u8594 dart.core::int'.\nChange the type of the function expression or the context in which it is used.\n int Function(Object) d = /*@error=InvalidCastFunctionExpr*/ (int i) => i;\n ^"));
+ self::D e = self::C::fact() as{TypeError} self::D;
+ self::D f = new self::D::•() as{TypeError} self::D;
+ self::D g = let final dynamic #t5 = new self::C::nonFact() in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/invalid_cast.dart:28:43: Error: The constructor returns type '#lib1::C' that isn't of expected type '#lib1::D'.\nChange the type of the object being constructed or the context in which it is used.\n D g = new /*@error=InvalidCastNewExpr*/ C.nonFact();\n ^"));
+ self::D h = let final dynamic #t6 = new self::C::nonFact2() in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/invalid_cast.dart:29:43: Error: The constructor returns type '#lib1::C' that isn't of expected type '#lib1::D'.\nChange the type of the object being constructed or the context in which it is used.\n D h = new /*@error=InvalidCastNewExpr*/ C.nonFact2();\n ^"));
+ (core::Object) → void i = let final dynamic #t7 = self::C::staticFunction in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/invalid_cast.dart:31:45: Error: The static method has type '(dart.core::int) \u8594 void' that isn't of expected type '(dart.core::Object) \u8594 void'.\nChange the type of the method or the context in which it is used.\n C. /*@error=InvalidCastStaticMethod*/ staticFunction;\n ^"));
+ (core::Object) → void j = let final dynamic #t8 = self::topLevelFunction in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/invalid_cast.dart:33:50: Error: The top level function has type '(dart.core::int) \u8594 void' that isn't of expected type '(dart.core::Object) \u8594 void'.\nChange the type of the function or the context in which it is used.\n j = /*@error=InvalidCastTopLevelFunction*/ topLevelFunction;\n ^"));
+ (core::Object) → void k = let final dynamic #t9 = localFunction in let dynamic _ = null in const core::_ConstantExpressionError::•().{core::_ConstantExpressionError::_throw}(new core::_CompileTimeError::•("pkg/front_end/testcases/invalid_cast.dart:34:65: Error: The local function has type '(dart.core::int) \u8594 void' that isn't of expected type '(dart.core::Object) \u8594 void'.\nChange the type of the function or the context in which it is used.\n void Function(Object) k = /*@error=InvalidCastLocalFunction*/ localFunction;\n ^"));
+}
+static method ok() → dynamic {
+ function localFunction(core::int i) → void {}
+ core::List<core::int> a = <core::int>[];
+ core::Map<core::int, core::String> b = <core::int, core::String>{};
+ core::Map<core::int, core::String> c = <core::int, core::String>{};
+ (core::int) → core::int d = (core::int i) → core::int => i;
+ self::D e = self::C::fact() as{TypeError} self::D;
+ self::D f = new self::D::•() as{TypeError} self::D;
+ self::C g = new self::C::nonFact();
+ self::C h = new self::C::nonFact2();
+ (core::int) → void i = self::C::staticFunction;
+ (core::int) → void j = self::topLevelFunction;
+ (core::int) → void k = localFunction;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/rasta/unresolved_for_in.dart.direct.expect b/pkg/front_end/testcases/rasta/unresolved_for_in.dart.direct.expect
index 44cfd2f..ac56b5b 100644
--- a/pkg/front_end/testcases/rasta/unresolved_for_in.dart.direct.expect
+++ b/pkg/front_end/testcases/rasta/unresolved_for_in.dart.direct.expect
@@ -13,14 +13,14 @@
core::print(this.key);
}
for (final dynamic #t2 in x) {
- throw new core::NoSuchMethodError::withInvocation(null, new core::_InvocationMirror::_withType(#Fisk, 34, const <dynamic>[], <dynamic>[#t2].toList(growable: false), core::Map::unmodifiable<dynamic, dynamic>(const <dynamic, dynamic>{})));
+ let dynamic _ = null in throw new core::NoSuchMethodError::withInvocation(null, new core::_InvocationMirror::_withType(#Fisk, 34, const <dynamic>[], <dynamic>[#t2].toList(growable: false), core::Map::unmodifiable<dynamic, dynamic>(const <dynamic, dynamic>{})));
core::print(self::Fisk);
}
for (final dynamic #t3 = let dynamic _ = null in const core::_ConstantExpressionError::•()._throw(new core::_CompileTimeError::•("pkg/front_end/testcases/rasta/unresolved_for_in.dart:17:10: Error: Expected lvalue, but got Instance of 'PrefixBuilder'\n for (collection in x) {\n ^")) in x) {
core::print(const core::_ConstantExpressionError::•()._throw(new core::_CompileTimeError::•("pkg/front_end/testcases/rasta/unresolved_for_in.dart: Error: A library can't be used as an expression.")));
}
for (final dynamic #t4 in x) {
- throw new core::NoSuchMethodError::withInvocation(null, new core::_InvocationMirror::_withType(#VoidFunction, 34, const <dynamic>[], <dynamic>[#t4].toList(growable: false), core::Map::unmodifiable<dynamic, dynamic>(const <dynamic, dynamic>{})));
+ let dynamic _ = null in throw new core::NoSuchMethodError::withInvocation(null, new core::_InvocationMirror::_withType(#VoidFunction, 34, const <dynamic>[], <dynamic>[#t4].toList(growable: false), core::Map::unmodifiable<dynamic, dynamic>(const <dynamic, dynamic>{})));
core::print(() → void);
}
for (final dynamic #t5 = let dynamic _ = null in const core::_ConstantExpressionError::•()._throw(new core::_CompileTimeError::•("pkg/front_end/testcases/rasta/unresolved_for_in.dart:23:10: Error: Expected lvalue, but got 1\n for (1 in x) {\n ^")) in x) {
@@ -35,14 +35,14 @@
core::print(throw new core::NoSuchMethodError::withInvocation(null, new core::_InvocationMirror::_withType(#key, 33, const <dynamic>[], const <dynamic>[], core::Map::unmodifiable<dynamic, dynamic>(const <dynamic, dynamic>{}))));
}
for (final dynamic #t7 in arguments) {
- throw new core::NoSuchMethodError::withInvocation(null, new core::_InvocationMirror::_withType(#Fisk, 34, const <dynamic>[], <dynamic>[#t7].toList(growable: false), core::Map::unmodifiable<dynamic, dynamic>(const <dynamic, dynamic>{})));
+ let dynamic _ = null in throw new core::NoSuchMethodError::withInvocation(null, new core::_InvocationMirror::_withType(#Fisk, 34, const <dynamic>[], <dynamic>[#t7].toList(growable: false), core::Map::unmodifiable<dynamic, dynamic>(const <dynamic, dynamic>{})));
core::print(self::Fisk);
}
for (final dynamic #t8 = let dynamic _ = null in const core::_ConstantExpressionError::•()._throw(new core::_CompileTimeError::•("pkg/front_end/testcases/rasta/unresolved_for_in.dart:37:8: Error: Expected lvalue, but got Instance of 'PrefixBuilder'\n for (collection in arguments) {\n ^")) in arguments) {
core::print(const core::_ConstantExpressionError::•()._throw(new core::_CompileTimeError::•("pkg/front_end/testcases/rasta/unresolved_for_in.dart: Error: A library can't be used as an expression.")));
}
for (final dynamic #t9 in arguments) {
- throw new core::NoSuchMethodError::withInvocation(null, new core::_InvocationMirror::_withType(#VoidFunction, 34, const <dynamic>[], <dynamic>[#t9].toList(growable: false), core::Map::unmodifiable<dynamic, dynamic>(const <dynamic, dynamic>{})));
+ let dynamic _ = null in throw new core::NoSuchMethodError::withInvocation(null, new core::_InvocationMirror::_withType(#VoidFunction, 34, const <dynamic>[], <dynamic>[#t9].toList(growable: false), core::Map::unmodifiable<dynamic, dynamic>(const <dynamic, dynamic>{})));
core::print(() → void);
}
for (final dynamic #t10 = let dynamic _ = null in const core::_ConstantExpressionError::•()._throw(new core::_CompileTimeError::•("pkg/front_end/testcases/rasta/unresolved_for_in.dart:43:8: Error: Expected lvalue, but got 1\n for (1 in arguments) {\n ^")) in arguments) {
diff --git a/pkg/front_end/testcases/regress/issue_29942.dart.strong.expect b/pkg/front_end/testcases/regress/issue_29942.dart.strong.expect
index 9f64d07..2e3e6cd 100644
--- a/pkg/front_end/testcases/regress/issue_29942.dart.strong.expect
+++ b/pkg/front_end/testcases/regress/issue_29942.dart.strong.expect
@@ -1,7 +1,8 @@
library;
import self as self;
+import "dart:core" as core;
static const field dynamic #errors = const <dynamic>["pkg/front_end/testcases/regress/issue_29942.dart:8:5: Error: Expected a function body or '=>'.\nTry adding {}.\nf() =\n ^", "pkg/front_end/testcases/regress/issue_29942.dart:10:1: Error: A function expression can't have a name.\nh() => null;\n^"]/* from null */;
static method main() → dynamic {}
static method f() → dynamic
- return let final () → dynamic h = () → dynamic => null in h;
+ return let final () → core::Null h = () → core::Null => null in h;
diff --git a/pkg/front_end/testcases/return_with_unknown_type_in_context.dart b/pkg/front_end/testcases/return_with_unknown_type_in_context.dart
new file mode 100644
index 0000000..f30bd53
--- /dev/null
+++ b/pkg/front_end/testcases/return_with_unknown_type_in_context.dart
@@ -0,0 +1,14 @@
+// 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.
+
+bool f(List x) {
+ return x.expand((y) {
+ // Since y has type dynamic, y.split(',') has type dynamic, so an implicit
+ // downcast is needed. The return context is Iterable<?>. We should
+ // generate an implicit downcast to Iterable<dynamic>.
+ return y.split(',');
+ }).any((y) => y == 'z');
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/return_with_unknown_type_in_context.dart.direct.expect b/pkg/front_end/testcases/return_with_unknown_type_in_context.dart.direct.expect
new file mode 100644
index 0000000..309defd
--- /dev/null
+++ b/pkg/front_end/testcases/return_with_unknown_type_in_context.dart.direct.expect
@@ -0,0 +1,10 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+static method f(core::List<dynamic> x) → core::bool {
+ return x.expand((dynamic y) → dynamic {
+ return y.split(",");
+ }).any((dynamic y) → dynamic => y.==("z"));
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/return_with_unknown_type_in_context.dart.outline.expect b/pkg/front_end/testcases/return_with_unknown_type_in_context.dart.outline.expect
new file mode 100644
index 0000000..3e5e6dd
--- /dev/null
+++ b/pkg/front_end/testcases/return_with_unknown_type_in_context.dart.outline.expect
@@ -0,0 +1,8 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+static method f(core::List<dynamic> x) → core::bool
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/return_with_unknown_type_in_context.dart.strong.expect b/pkg/front_end/testcases/return_with_unknown_type_in_context.dart.strong.expect
new file mode 100644
index 0000000..47fe398
--- /dev/null
+++ b/pkg/front_end/testcases/return_with_unknown_type_in_context.dart.strong.expect
@@ -0,0 +1,10 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+static method f(core::List<dynamic> x) → core::bool {
+ return x.{core::Iterable::expand}<dynamic>((dynamic y) → core::Iterable<dynamic> {
+ return y.split(",") as{TypeError} core::Iterable<dynamic>;
+ }).{core::Iterable::any}((dynamic y) → core::bool => y.{core::Object::==}("z"));
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks/call_kinds_set.dart b/pkg/front_end/testcases/runtime_checks/call_kinds_set.dart
index 2072ab6..7b2a695 100644
--- a/pkg/front_end/testcases/runtime_checks/call_kinds_set.dart
+++ b/pkg/front_end/testcases/runtime_checks/call_kinds_set.dart
@@ -10,10 +10,10 @@
dynamic y;
void test() {
// Set via this
- x = null;
- this.x = null;
- y = null;
- this.y = null;
+ /*@callKind=this*/ x = null;
+ this. /*@callKind=this*/ x = null;
+ /*@callKind=this*/ y = null;
+ this. /*@callKind=this*/ y = null;
}
}
@@ -23,7 +23,7 @@
c.y = null;
// Dynamic set
- d.x = null;
+ d. /*@callKind=dynamic*/ x = null;
}
main() {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_setter.dart b/pkg/front_end/testcases/runtime_checks/covariant_setter.dart
index 219d715..bd9c289 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_setter.dart
+++ b/pkg/front_end/testcases/runtime_checks/covariant_setter.dart
@@ -11,8 +11,8 @@
T /*@covariance=genericInterface, genericImpl*/ x;
void set y(T /*@covariance=genericInterface, genericImpl*/ value) {}
void f(T /*@covariance=genericInterface, genericImpl*/ value) {
- this.x = value;
- this.y = value;
+ this. /*@callKind=this*/ x = value;
+ this. /*@callKind=this*/ y = value;
}
}
diff --git a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart
index 8384c2d..6adf661 100644
--- a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart
+++ b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart
@@ -8,11 +8,11 @@
class B {
Object _x;
void f([num x = 10]) {
- _x = x;
+ /*@callKind=this*/ _x = x;
}
void g({num x = 20}) {
- _x = x;
+ /*@callKind=this*/ _x = x;
}
void check(Object expectedValue) {
diff --git a/pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart b/pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart
index 4ae533a..5ac5bbb 100644
--- a/pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart
+++ b/pkg/front_end/testcases/runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast.dart
@@ -31,7 +31,7 @@
C<num> get value => /*@callKind=this*/ getValue;
int Function(int) setValue;
void set value(int Function(int) value) {
- setValue = value;
+ /*@callKind=this*/ setValue = value;
}
}
diff --git a/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart b/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart
new file mode 100644
index 0000000..a7ea1eb
--- /dev/null
+++ b/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart
@@ -0,0 +1,28 @@
+// 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.
+
+/*@testedFeatures=checks*/
+library test;
+
+var topLevel;
+void set topLevelSetter(x) {}
+
+class C {
+ static var staticField;
+ static void set staticSetter(x) {}
+ var instanceField;
+ void set instanceSetter(x) {}
+ void test() {
+ var localVar;
+ for (topLevel in []) {}
+ for (topLevelSetter in []) {}
+ for (staticField in []) {}
+ for (staticSetter in []) {}
+ for (/*@callKind=this*/ instanceField in []) {}
+ for (/*@callKind=this*/ instanceSetter in []) {}
+ for (localVar in []) {}
+ }
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.direct.expect b/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.direct.expect
new file mode 100644
index 0000000..ce84b5c
--- /dev/null
+++ b/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.direct.expect
@@ -0,0 +1,40 @@
+library test;
+import self as self;
+import "dart:core" as core;
+
+class C extends core::Object {
+ static field dynamic staticField = null;
+ field dynamic instanceField = null;
+ default constructor •() → void
+ : super core::Object::•()
+ ;
+ static set staticSetter(dynamic x) → void {}
+ set instanceSetter(dynamic x) → void {}
+ method test() → void {
+ dynamic localVar;
+ for (final dynamic #t1 in <dynamic>[]) {
+ self::topLevel = #t1;
+ }
+ for (final dynamic #t2 in <dynamic>[]) {
+ self::topLevelSetter = #t2;
+ }
+ for (final dynamic #t3 in <dynamic>[]) {
+ self::C::staticField = #t3;
+ }
+ for (final dynamic #t4 in <dynamic>[]) {
+ self::C::staticSetter = #t4;
+ }
+ for (final dynamic #t5 in <dynamic>[]) {
+ this.{self::C::instanceField} = #t5;
+ }
+ for (final dynamic #t6 in <dynamic>[]) {
+ this.{self::C::instanceSetter} = #t6;
+ }
+ for (final dynamic #t7 in <dynamic>[]) {
+ localVar = #t7;
+ }
+ }
+}
+static field dynamic topLevel;
+static set topLevelSetter(dynamic x) → void {}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.outline.expect b/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.outline.expect
new file mode 100644
index 0000000..3d4afee
--- /dev/null
+++ b/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.outline.expect
@@ -0,0 +1,21 @@
+library test;
+import self as self;
+import "dart:core" as core;
+
+class C extends core::Object {
+ static field dynamic staticField;
+ field dynamic instanceField;
+ default constructor •() → void
+ ;
+ static set staticSetter(dynamic x) → void
+ ;
+ set instanceSetter(dynamic x) → void
+ ;
+ method test() → void
+ ;
+}
+static field dynamic topLevel;
+static set topLevelSetter(dynamic x) → void
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.strong.expect b/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.strong.expect
new file mode 100644
index 0000000..ce84b5c
--- /dev/null
+++ b/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.strong.expect
@@ -0,0 +1,40 @@
+library test;
+import self as self;
+import "dart:core" as core;
+
+class C extends core::Object {
+ static field dynamic staticField = null;
+ field dynamic instanceField = null;
+ default constructor •() → void
+ : super core::Object::•()
+ ;
+ static set staticSetter(dynamic x) → void {}
+ set instanceSetter(dynamic x) → void {}
+ method test() → void {
+ dynamic localVar;
+ for (final dynamic #t1 in <dynamic>[]) {
+ self::topLevel = #t1;
+ }
+ for (final dynamic #t2 in <dynamic>[]) {
+ self::topLevelSetter = #t2;
+ }
+ for (final dynamic #t3 in <dynamic>[]) {
+ self::C::staticField = #t3;
+ }
+ for (final dynamic #t4 in <dynamic>[]) {
+ self::C::staticSetter = #t4;
+ }
+ for (final dynamic #t5 in <dynamic>[]) {
+ this.{self::C::instanceField} = #t5;
+ }
+ for (final dynamic #t6 in <dynamic>[]) {
+ this.{self::C::instanceSetter} = #t6;
+ }
+ for (final dynamic #t7 in <dynamic>[]) {
+ localVar = #t7;
+ }
+ }
+}
+static field dynamic topLevel;
+static set topLevelSetter(dynamic x) → void {}
+static method main() → dynamic {}
diff --git a/pkg/front_end/tool/_fasta/command_line.dart b/pkg/front_end/tool/_fasta/command_line.dart
index e1101f0..141c10a 100644
--- a/pkg/front_end/tool/_fasta/command_line.dart
+++ b/pkg/front_end/tool/_fasta/command_line.dart
@@ -32,9 +32,6 @@
import 'package:kernel/target/targets.dart'
show Target, getTarget, TargetFlags, targets;
-import 'package:kernel/target/implementation_option.dart'
- show ImplementationOption, implementationOptions;
-
class CommandLineProblem {
final Message message;
@@ -190,7 +187,6 @@
"--platform": Uri,
"--libraries-json": Uri,
"--target": String,
- "--target-options": ",",
"-t": String,
};
@@ -234,16 +230,7 @@
final String targetName = options["-t"] ?? options["--target"] ?? "vm";
- final List<ImplementationOption> targetOptions =
- (options["--target-options"] ?? <String>[])
- .map((String name) =>
- implementationOptions[name] ??
- (throw new CommandLineProblem.deprecated(
- "--target-options argument not recognized: '$name'.")))
- .toList();
-
- final TargetFlags flags = new TargetFlags(
- strongMode: strongMode, implementationOptions: targetOptions);
+ final TargetFlags flags = new TargetFlags(strongMode: strongMode);
final Target target = getTarget(targetName, flags);
if (target == null) {
return throw new CommandLineProblem.deprecated(
diff --git a/pkg/front_end/tool/_fasta/entry_points.dart b/pkg/front_end/tool/_fasta/entry_points.dart
index 9118191..db9b11f 100644
--- a/pkg/front_end/tool/_fasta/entry_points.dart
+++ b/pkg/front_end/tool/_fasta/entry_points.dart
@@ -172,5 +172,5 @@
void _appendDillForUri(DillTarget dillTarget, Uri uri) {
var bytes = new File.fromUri(uri).readAsBytesSync();
var platformProgram = loadProgramFromBytes(bytes);
- dillTarget.loader.appendLibraries(platformProgram);
+ dillTarget.loader.appendLibraries(platformProgram, byteCount: bytes.length);
}
diff --git a/pkg/front_end/tool/_fasta/generate_messages.dart b/pkg/front_end/tool/_fasta/generate_messages.dart
index 6988064..93ffb3b 100644
--- a/pkg/front_end/tool/_fasta/generate_messages.dart
+++ b/pkg/front_end/tool/_fasta/generate_messages.dart
@@ -36,6 +36,9 @@
description = yaml[description];
}
Map map = description;
+ if (map == null) {
+ throw "No 'template:' in key $name.";
+ }
sb.writeln(compileTemplate(name, map['template'], map['tip'],
map['analyzerCode'], map['dart2jsCode']));
}
@@ -113,6 +116,11 @@
arguments.add("'string2': string2");
break;
+ case "#string3":
+ parameters.add("String string3");
+ arguments.add("'string3': string3");
+ break;
+
case "#type":
parameters.add("DartType _type");
conversions.add(r"""
@@ -152,6 +160,16 @@
arguments.add("'uri3': uri3_");
break;
+ case "#count":
+ parameters.add("int count");
+ arguments.add("'count': count");
+ break;
+
+ case "#count2":
+ parameters.add("int count2");
+ arguments.add("'count2': count2");
+ break;
+
default:
throw "Unhandled placeholder in template: ${match[0]}";
}
diff --git a/pkg/front_end/tool/fasta_perf.dart b/pkg/front_end/tool/fasta_perf.dart
index e5f8125..892e5a1 100644
--- a/pkg/front_end/tool/fasta_perf.dart
+++ b/pkg/front_end/tool/fasta_perf.dart
@@ -19,8 +19,6 @@
import 'package:front_end/src/fasta/source/directive_listener.dart';
import 'package:front_end/src/fasta/uri_translator.dart' show UriTranslator;
-import 'package:kernel/target/targets.dart' show TargetFlags;
-import 'package:kernel/target/vm.dart' show VmTarget;
import 'perf_common.dart';
/// Cumulative total number of chars scanned.
@@ -92,7 +90,6 @@
Future setup(Uri entryUri) async {
var options = new CompilerOptions()
..sdkRoot = sdkRoot
- ..reportMessages = true
// Because this is only used to create a uriResolver, we don't allow any
// whitelisting of error messages in the error handler.
..onError = onErrorHandler(false)
@@ -228,13 +225,12 @@
scanReachableFiles(entryUri);
var timer = new Stopwatch()..start();
- var flags = new TargetFlags(strongMode: strongMode);
var options = new CompilerOptions()
..sdkRoot = sdkRoot
..reportMessages = true
..onError = onErrorHandler(strongMode)
..strongMode = strongMode
- ..target = (strongMode ? new VmTarget(flags) : new LegacyVmTarget(flags))
+ ..target = createTarget(isFlutter: false, strongMode: strongMode)
..chaseDependencies = true
..packagesFileUri = Uri.base.resolve('.packages')
..compileSdk = compileSdk;
@@ -285,12 +281,3 @@
help: 'run the compiler in legacy-mode',
defaultsTo: false,
negatable: false);
-
-// TODO(sigmund): delete as soon as the disableTypeInference flag and the
-// strongMode flag get merged.
-class LegacyVmTarget extends VmTarget {
- LegacyVmTarget(TargetFlags flags) : super(flags);
-
- @override
- bool get disableTypeInference => true;
-}
diff --git a/pkg/front_end/tool/incremental_perf.dart b/pkg/front_end/tool/incremental_perf.dart
index a22bebb..b4c07ce 100644
--- a/pkg/front_end/tool/incremental_perf.dart
+++ b/pkg/front_end/tool/incremental_perf.dart
@@ -57,9 +57,6 @@
import 'package:front_end/src/base/processed_options.dart';
import 'package:front_end/src/byte_store/protected_file_byte_store.dart';
import 'package:front_end/src/fasta/uri_translator.dart';
-import 'package:kernel/target/flutter.dart';
-import 'package:kernel/target/targets.dart';
-import 'package:kernel/target/vm.dart';
import 'perf_common.dart';
@@ -77,16 +74,13 @@
parse(JSON.decode(new File.fromUri(editsUri).readAsStringSync()));
var overlayFs = new OverlayFileSystem();
- var targetFlags = new TargetFlags(strongMode: options['mode'] == 'strong');
+ bool strongMode = options['mode'] == 'strong';
var compilerOptions = new CompilerOptions()
..fileSystem = overlayFs
- ..strongMode = (options['mode'] == 'strong')
- ..reportMessages = true
- ..onError = onErrorHandler(options['mode'] == 'strong')
- ..target = options['target'] == 'flutter'
- ? new FlutterTarget(targetFlags)
- : new VmTarget(targetFlags);
-
+ ..strongMode = strongMode
+ ..onError = onErrorHandler(strongMode)
+ ..target = createTarget(
+ isFlutter: options['target'] == 'flutter', strongMode: strongMode);
if (options['sdk-summary'] != null) {
compilerOptions.sdkSummary = _resolveOverlayUri(options["sdk-summary"]);
}
diff --git a/pkg/front_end/tool/perf_common.dart b/pkg/front_end/tool/perf_common.dart
index 60feee3..fa3fb5f 100644
--- a/pkg/front_end/tool/perf_common.dart
+++ b/pkg/front_end/tool/perf_common.dart
@@ -8,7 +8,11 @@
import 'dart:io';
import 'package:front_end/src/api_prototype/front_end.dart';
+import 'package:front_end/src/fasta/command_line_reporting.dart';
import 'package:front_end/src/fasta/fasta_codes.dart';
+import 'package:kernel/target/flutter.dart' show FlutterTarget;
+import 'package:kernel/target/targets.dart' show Target, TargetFlags;
+import 'package:kernel/target/vm.dart' show VmTarget;
/// Error messages that we temporarily allow when compiling benchmarks in strong
/// mode.
@@ -22,14 +26,62 @@
/// from this set.
final whitelistMessageCode = new Set<String>.from(<String>[
// Code names in this list should match the key used in messages.yaml
- codeInvalidAssignment.name
+ codeInvalidAssignment.name,
+
+ // The following errors are not covered by unit tests in the SDK repo because
+ // they are only seen today in the flutter-gallery benchmark (external to
+ // this repo).
+ codeInvalidCastFunctionExpr.name,
+ codeInvalidCastTopLevelFunction.name,
+ codeUndefinedGetter.name,
+ codeUndefinedMethod.name,
]);
-onErrorHandler(bool isStrong) => (CompilationMessage m) {
- if (m.severity == Severity.internalProblem ||
- m.severity == Severity.error) {
- if (!isStrong || !whitelistMessageCode.contains(m.code)) {
- exitCode = 1;
- }
+onErrorHandler(bool isStrong) {
+ bool messageReported = false;
+ return (CompilationMessage m) {
+ if (m.severity == Severity.internalProblem ||
+ m.severity == Severity.error) {
+ if (!isStrong || !whitelistMessageCode.contains(m.code)) {
+ var uri = m.span.start.sourceUrl;
+ var offset = m.span.start.offset;
+ stderr.writeln('$uri:$offset: '
+ '${severityName(m.severity, capitalized: true)}: ${m.message}');
+ exitCode = 1;
+ } else if (!messageReported) {
+ messageReported = true;
+ stderr.writeln('Whitelisted error messages omitted');
}
- };
+ }
+ };
+}
+
+/// Creates a [VmTarget] or [FlutterTarget] with strong-mode enabled or
+/// disabled.
+// TODO(sigmund): delete as soon as the disableTypeInference flag and the
+// strongMode flag get merged, and we have a single way of specifying the
+// strong-mode flag to the FE.
+Target createTarget({bool isFlutter: false, bool strongMode: true}) {
+ var flags = new TargetFlags(strongMode: strongMode);
+ if (isFlutter) {
+ return strongMode
+ ? new FlutterTarget(flags)
+ : new LegacyFlutterTarget(flags);
+ } else {
+ return strongMode ? new VmTarget(flags) : new LegacyVmTarget(flags);
+ }
+}
+
+class LegacyVmTarget extends VmTarget {
+ LegacyVmTarget(TargetFlags flags) : super(flags);
+
+ @override
+ bool get disableTypeInference => true;
+}
+
+class LegacyFlutterTarget extends FlutterTarget {
+ LegacyFlutterTarget(TargetFlags flags) : super(flags);
+
+ @override
+ bool get disableTypeInference => true;
+}
diff --git a/pkg/kernel/lib/ast.dart b/pkg/kernel/lib/ast.dart
index 78e0ebf..a2d8545 100644
--- a/pkg/kernel/lib/ast.dart
+++ b/pkg/kernel/lib/ast.dart
@@ -1445,10 +1445,32 @@
class Procedure extends Member implements FileUriNode {
ProcedureKind kind;
int flags = 0;
- // function is null if and only if abstract, external,
- // or builder (below) is set.
+ // function is null if and only if abstract, external.
FunctionNode function;
+ // The function node's body might be lazily loaded, meaning that this value
+ // might not be set correctly yet. Make sure the body is loaded before
+ // returning anything.
+ int get transformerFlags {
+ function?.body;
+ return super.transformerFlags;
+ }
+
+ // The function node's body might be lazily loaded, meaning that this value
+ // might get overwritten later (when the body is read). To avoid that read the
+ // body now and only set the value afterwards.
+ void set transformerFlags(int newValue) {
+ function?.body;
+ super.transformerFlags = newValue;
+ }
+
+ // This function will set the transformer flags without loading the body.
+ // Used when reading the binary. For other cases one should probably use
+ // `transformerFlags = value;`.
+ void setTransformerFlagsWithoutLazyLoading(int newValue) {
+ super.transformerFlags = newValue;
+ }
+
/// The uri of the source file this procedure was loaded from.
Uri fileUri;
diff --git a/pkg/kernel/lib/binary/ast_from_binary.dart b/pkg/kernel/lib/binary/ast_from_binary.dart
index f2732b9..edd4923 100644
--- a/pkg/kernel/lib/binary/ast_from_binary.dart
+++ b/pkg/kernel/lib/binary/ast_from_binary.dart
@@ -939,7 +939,7 @@
node.annotations = annotations;
node.function = function;
function?.parent = node;
- node.transformerFlags = transformerFlags;
+ node.setTransformerFlagsWithoutLazyLoading(transformerFlags);
}
_byteOffset = endOffset;
return node;
diff --git a/pkg/kernel/lib/core_types.dart b/pkg/kernel/lib/core_types.dart
index 44a67af..f23ccbf 100644
--- a/pkg/kernel/lib/core_types.dart
+++ b/pkg/kernel/lib/core_types.dart
@@ -312,6 +312,10 @@
return _streamClass ??= _index.getClass('dart:async', 'Stream');
}
+ Member get streamIteratorSubscription {
+ return _index.getMember('dart:async', '_StreamIterator', '_subscription');
+ }
+
Member get streamIteratorCancel {
return _index.getMember('dart:async', '_StreamIterator', 'cancel');
}
diff --git a/pkg/kernel/lib/target/implementation_option.dart b/pkg/kernel/lib/target/implementation_option.dart
deleted file mode 100644
index 0f35cbc..0000000
--- a/pkg/kernel/lib/target/implementation_option.dart
+++ /dev/null
@@ -1,106 +0,0 @@
-// 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.
-
-library kernel.target.implementation_options;
-
-class VmOptions {
- // TODO(alexmarkov): Cleanup this option.
- // Consider cleaning up implementation_options.
- static final ImplementationOption strongAOT = new ImplementationOption._(
- "strong-aot", Platform.vm, new DateTime.utc(2018, 1), """
-Enables strong-mode whole-program optimizations for AOT (precompiler) mode of
-the Dart VM.""");
-}
-
-final Map<String, ImplementationOption> implementationOptions =
- ImplementationOption._validateOptions(<ImplementationOption>[
- VmOptions.strongAOT,
-]);
-
-final RegExp _namePattern = new RegExp(r"^[-a-z0-9]+$");
-
-class ImplementationOption {
- final String name;
- final String description;
- final Platform platform;
- final DateTime expires;
-
- ImplementationOption._(
- this.name, this.platform, this.expires, this.description);
-
- bool _validate(int index, List<String> reasons) {
- if (name == null) {
- reasons.add("[name] is null for option #$index.");
- return false;
- }
- if (!_namePattern.hasMatch(name)) {
- reasons.add("'$name' doesn't match regular expression"
- " '${_namePattern.pattern}'.");
- return false;
- }
- if (description == null) {
- reasons.add("[description] is null for option '$name'.");
- return false;
- }
- if (description.isEmpty) {
- reasons.add("[description] is empty for option '$name'.");
- return false;
- }
- if (description == name) {
- reasons.add("[description] == [name] for option '$name'.");
- return false;
- }
- if (platform == null) {
- reasons.add("[platform] is null for option '$name'.");
- return false;
- }
- if (expires == null) {
- reasons.add("[expires] is null for option '$name'.");
- return false;
- }
- if (!expires.isUtc) {
- reasons.add("[expires] isn't in UTC for option '$name'.");
- return false;
- }
- if (expires.isBefore(new DateTime.now().toUtc())) {
- print("Warning: option '$name' has expired "
- "(see pkg/kernel/lib/target/implementation_option.dart).");
- return false;
- }
- return true;
- }
-
- static Map<String, ImplementationOption> _validateOptions(
- List<ImplementationOption> options) {
- Map<String, ImplementationOption> result = <String, ImplementationOption>{};
- int i = 0;
- List<String> reasons = <String>[];
- for (ImplementationOption option in options) {
- if (result.containsKey(option.name)) {
- throw "Duplicated option name at index $i.";
- }
- if (option._validate(i++, reasons)) {
- result[option.name] = option;
- }
- }
- if (reasons.isNotEmpty) {
- throw reasons.join("\n");
- }
- return new Map<String, ImplementationOption>.unmodifiable(result);
- }
-
- static void validate(ImplementationOption option) {
- List<String> reasons = <String>[];
- if (!option._validate(-1, reasons)) {
- throw new ArgumentError(reasons.join("\n"));
- }
- }
-}
-
-enum Platform {
- analyzer,
- dart2js,
- devcompiler,
- vm,
-}
diff --git a/pkg/kernel/lib/target/targets.dart b/pkg/kernel/lib/target/targets.dart
index 9bb8dcd..7dd610a 100644
--- a/pkg/kernel/lib/target/targets.dart
+++ b/pkg/kernel/lib/target/targets.dart
@@ -11,7 +11,6 @@
import 'vm.dart' show VmTarget;
import 'vmcc.dart' show VmClosureConvertedTarget;
import 'vmreify.dart' show VmGenericTypesReifiedTarget;
-import 'implementation_option.dart' show ImplementationOption;
final List<String> targetNames = targets.keys.toList();
@@ -20,18 +19,12 @@
bool treeShake;
List<ProgramRoot> programRoots;
Uri kernelRuntime;
- final List<ImplementationOption> implementationOptions;
TargetFlags(
{this.strongMode: false,
this.treeShake: false,
this.programRoots: const <ProgramRoot>[],
- this.kernelRuntime,
- this.implementationOptions}) {
- if (implementationOptions != null) {
- implementationOptions.forEach(ImplementationOption.validate);
- }
- }
+ this.kernelRuntime}) {}
}
typedef Target _TargetBuilder(TargetFlags flags);
diff --git a/pkg/kernel/lib/transformations/continuation.dart b/pkg/kernel/lib/transformations/continuation.dart
index 41e9861..32b6f74 100644
--- a/pkg/kernel/lib/transformations/continuation.dart
+++ b/pkg/kernel/lib/transformations/continuation.dart
@@ -629,7 +629,7 @@
type: new InterfaceType(
helper.streamIteratorClass, [valueVariable.type]));
- // await iterator.moveNext()
+ // await :for-iterator.moveNext()
var condition = new AwaitExpression(new MethodInvocation(
new VariableGet(iteratorVariable),
new Name('moveNext'),
@@ -637,7 +637,7 @@
helper.streamIteratorMoveNext))
..fileOffset = stmt.fileOffset;
- // var <variable> = iterator.current;
+ // T <variable> = :for-iterator.current;
valueVariable.initializer = new PropertyGet(
new VariableGet(iteratorVariable),
new Name('current'),
@@ -650,8 +650,10 @@
// if (:for-iterator._subscription != null) await :for-iterator.cancel();
var tryFinalizer = new IfStatement(
new Not(new MethodInvocation(
- new PropertyGet(new VariableGet(iteratorVariable),
- new Name("_subscription", helper.asyncLibrary)),
+ new PropertyGet(
+ new VariableGet(iteratorVariable),
+ new Name("_subscription", helper.asyncLibrary),
+ helper.coreTypes.streamIteratorSubscription),
new Name("=="),
new Arguments([new NullLiteral()]),
helper.coreTypes.objectEquals)),
diff --git a/pkg/pkg.status b/pkg/pkg.status
index 993d8e5..57f6916 100644
--- a/pkg/pkg.status
+++ b/pkg/pkg.status
@@ -91,8 +91,10 @@
unittest/*: Skip # Issue 21949
front_end/*: SkipByDesign
-[ $runtime == vm && $mode == debug ]
+[ $runtime == vm ]
analysis_server/test/completion_test: Pass, Slow
+analysis_server/test/integration/completion: Pass, Slow
+analysis_server/test/integration/search/find_top_level_declarations_test: Pass, RuntimeError # 31571
[ $runtime == vm && $checked ]
analysis_server/test/completion_test: Pass, Slow
diff --git a/pkg/status_file/lib/src/disjunctive.dart b/pkg/status_file/lib/src/disjunctive.dart
new file mode 100644
index 0000000..55dd7b7
--- /dev/null
+++ b/pkg/status_file/lib/src/disjunctive.dart
@@ -0,0 +1,464 @@
+// 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.
+
+import 'expression.dart';
+import '../environment.dart';
+
+final Expression T = new LogicExpression.and([]);
+final Expression F = new LogicExpression.or([]);
+
+// Token to combine left and right value of a comparison expression in a
+// variable expression.
+final String _comparisonToken = "__";
+
+/// Transforms an [expression] to disjunctive normal form, which is a
+/// standardization where all clauses are separated by `||` (or/disjunction).
+/// All clauses must be conjunction (joined by &&) and have negation on
+/// literals.
+///
+/// It computes the disjunctive normal form by computing a truth table with all
+/// terms (truth assignment of variables) that make the [expression] become true
+/// and then minimizes the terms.
+///
+/// The procedure is exponential so [expression] should not be too big.
+Expression toDisjunctiveNormalForm(Expression expression) {
+ var normalizedExpression = expression.normalize();
+ var variableExpression =
+ _comparisonExpressionsToVariableExpressions(normalizedExpression);
+ var minTerms = _satisfiableMinTerms(variableExpression);
+ if (minTerms == null) {
+ return T;
+ } else if (minTerms.isEmpty) {
+ return F;
+ }
+ var disjunctiveNormalForm = new LogicExpression.or(minTerms);
+ disjunctiveNormalForm = _minimizeByComplementation(disjunctiveNormalForm);
+ return _recoverComparisonExpressions(disjunctiveNormalForm);
+}
+
+/// Complementation is a process that tries to combine the min terms above as
+/// much as possible. In each iteration, two minsets can be combined if they
+/// differ by only one assignment. Ex:
+///
+/// $a && $b can be combined with !$a && $b since they only differ by $a and
+/// !$a. This is easier to see if we represent terms as bits. Let the following
+/// min terms be defined:
+///
+/// m(1): $a && !$b && !$c && !$d -> 1000
+/// m(2): $a && !$b && !$c && $d -> 1001
+/// m(3): $a && !$b && $c && !$d -> 1010
+/// m(4): $a && !$b && $c && $d -> 1011
+///
+/// In the first iteration, m(1) can be combined with m(2) and m(3), m(2) can be
+/// combined with m(4) and m(3) can be combined with m(4). We now have:
+///
+/// m(1,2): 100-
+/// m(1,3): 10-0
+/// m(2,4): 10-1
+/// m(3,4): 101-
+///
+/// Let - be a third bit value, which also counts toward difference. Therefore,
+/// m(1,2) cannot be combined with m(1,3), but m(1,2) can be combined with
+/// m(3,4). We therefore get:
+///
+/// m(1,2,3,4): 10--
+/// m(1,3,2,4): 10--
+///
+/// At this point, we have two similar minsets, which we also call implicants,
+/// that only differ from the way they were added together. These cannot be
+/// added together further, so we are left with only one (does not matter which
+/// we pick):
+///
+/// m(1,2,3,4): 10--
+///
+/// The minimal disjunctive form is, for this example, $a && !$b.
+///
+/// It is often not the case we only have one implicant left, we may have
+/// several.
+///
+/// m(4,12)
+/// m(8,9,10,11)
+/// m(8,10,12,14)
+/// m(10,11,14,15)
+///
+/// From here, we can find the minimum form by simply computing a set cover. We
+/// can prune the search space a bit though. In the above example, 4 and 15 is
+/// only covered by a single implicant. This means, that those are primary, and
+/// has to be included in the cover. We then just need to pick the best
+/// solution.
+///
+/// More about this algorithm here:
+/// https://en.wikipedia.org/wiki/Quine%E2%80%93McCluskey_algorithm
+LogicExpression _minimizeByComplementation(LogicExpression expression) {
+ var clauses = expression.operands
+ .map((e) => e is LogicExpression ? e.operands : [e])
+ .toList();
+ // All min terms should be sorted by amount of 1's
+ clauses.sort((a, b) {
+ var onesInA = a.where((e) => !_isNegatedExpression(e)).length;
+ var onesInB = b.where((e) => !_isNegatedExpression(e)).length;
+ return onesInA - onesInB;
+ });
+ var combinedMinSets = _combineMinSets(
+ clauses.map((e) => [new LogicExpression.and(e)]).toList(), []);
+ List<List<LogicExpression>> minCover = _findMinCover(combinedMinSets, []);
+ var finalOperands = minCover.map((minSet) => _reduceMinSet(minSet)).toList();
+ return new LogicExpression.or(finalOperands).normalize();
+}
+
+/// Computes all assignments of literals that make the [expression] evaluate to
+/// true.
+List<Expression> _satisfiableMinTerms(Expression expression) {
+ var variables = _getVariables(expression);
+ bool hasNotSatisfiableAssignment = false;
+ List<Expression> satisfiableTerms = <Expression>[];
+ var environment = new TruthTableEnvironment(variables);
+ for (int i = 0; i < 1 << variables.length; i++) {
+ environment.setConfiguration(i);
+ if (expression.evaluate(environment)) {
+ var operands = <Expression>[];
+ for (int j = 0; j < variables.length; j++) {
+ if ((i >> j) % 2 == 0) {
+ operands.add(negate(variables[j]));
+ } else {
+ operands.add(variables[j]);
+ }
+ }
+ satisfiableTerms.add(new LogicExpression.and(operands));
+ } else {
+ hasNotSatisfiableAssignment = true;
+ }
+ }
+ if (!hasNotSatisfiableAssignment) {
+ return null;
+ }
+ return satisfiableTerms;
+}
+
+/// The [TruthTableEnvironment] simulates an entry in a truth table where the
+/// [variables] are assigned a value bases on the [configuration]. This
+/// environment can then be used to evaluate the corresponding expression from
+/// which the [variables] was found.
+class TruthTableEnvironment extends Environment {
+ final List<Expression> variables;
+ int configuration;
+
+ TruthTableEnvironment(this.variables);
+
+ void setConfiguration(int configuration) {
+ this.configuration = configuration;
+ }
+
+ @override
+ String lookUp(String name) {
+ int index = -1;
+ for (int i = 0; i < variables.length; i++) {
+ if (variables[i] is VariableExpression &&
+ variables[i].toString() == "\$$name") {
+ index = i;
+ break;
+ }
+ }
+ assert(index > -1);
+ var isTrue = (configuration >> index) % 2 == 1;
+ return isTrue ? "true" : "false";
+ }
+
+ @override
+ void validate(String name, String value, List<String> errors) {}
+}
+
+/// Combines [minSets] recursively as long as possible. Prime implicants (those
+/// that cannot be reduced further) are kept track of in [primeImplicants]. When
+/// finished the function returns all combined min sets.
+List<List<Expression>> _combineMinSets(
+ List<List<Expression>> minSets, List<List<Expression>> primeImplicants) {
+ List<List<LogicExpression>> combined = new List<List<LogicExpression>>();
+ var addedInThisIteration = new Set<List<Expression>>();
+ for (var i = 0; i < minSets.length; i++) {
+ var minSet = minSets[i];
+ var combinedMinSet = false;
+ for (var j = i + 1; j < minSets.length; j++) {
+ var otherMinSet = minSets[j];
+ if (_canCombine(minSet, otherMinSet)) {
+ combined.add(minSet.toList(growable: true)..addAll(otherMinSet));
+ addedInThisIteration.add(otherMinSet);
+ combinedMinSet = true;
+ }
+ }
+ if (!combinedMinSet && !addedInThisIteration.contains(minSet)) {
+ primeImplicants.add(minSet);
+ }
+ }
+ if (combined.isNotEmpty) {
+ // it is possible to add minsets that are identical:
+ // ex: min(1,3), min(1,2) min(2,4) min(3,4) could combine to:
+ // min(1,3,2,4) and min(1,2,3,4) which are identical.
+ // It is better to reduce such now than to deal with them in an exponential
+ // search.
+ return _combineMinSets(_uniqueMinSets(combined), primeImplicants);
+ }
+ return primeImplicants;
+}
+
+/// Two min sets can be combined if they only differ by one. We reduce min sets
+/// and find their difference based on variables.
+bool _canCombine(List<LogicExpression> a, List<LogicExpression> b) {
+ return _difference(_reduceMinSet(a).operands, _reduceMinSet(b).operands)
+ .length ==
+ 1;
+}
+
+/// This function finds the fixed variables for a collection of implicants in
+/// the [minSet]. Unlike the numbering scheme above, ie 10-1 etc. we look
+/// directly at variables and count positive and negative occurrences. If we
+/// find an implicant with less variables than others, we add the variable to
+/// both the positive and negative set, which is effectively setting the value
+/// - to that variable.
+LogicExpression _reduceMinSet(List<LogicExpression> minSet) {
+ var variables = <Expression>[];
+ var positive = <Expression>[];
+ var negative = <Expression>[];
+ for (var implicant in minSet) {
+ for (var expression in implicant.operands) {
+ assert(expression is! LogicExpression);
+ var variable = expression;
+ if (_isNegatedExpression(expression)) {
+ _addIfNotPresent(expression, negative);
+ variable = _getVariables(expression)[0];
+ } else {
+ _addIfNotPresent(expression, positive);
+ }
+ _addIfNotPresent(variable, variables);
+ }
+ }
+ for (var implicant in minSet) {
+ for (var variable in variables) {
+ bool isFree = implicant.operands.where((literal) {
+ if (_isNegatedExpression(literal)) {
+ return negate(literal).compareTo(variable) == 0;
+ } else {
+ return literal.compareTo(variable) == 0;
+ }
+ }).isEmpty;
+ if (isFree) {
+ _addIfNotPresent(variable, positive);
+ _addIfNotPresent(negate(variable), negative);
+ }
+ }
+ }
+ for (var neg in negative.toList()) {
+ var pos = _findFirst(negate(neg), positive);
+ if (pos != null) {
+ positive.remove(pos);
+ negative.remove(neg);
+ }
+ }
+ return new LogicExpression.and(positive..addAll(negative));
+}
+
+/// [_findMinCover] finds the minimum cover of [primaryImplicants]. Finding a
+/// minimum set cover is NP-hard, and we are not trying to be really cleaver
+/// here. The implicants that cover only a single truth assignment can be
+/// directly added to [cover].
+List<List<Expression>> _findMinCover(
+ List<List<Expression>> primaryImplicants, List<List<Expression>> cover) {
+ var minCover = primaryImplicants.toList()..addAll(cover);
+ if (cover.isEmpty) {
+ var allImplicants = primaryImplicants.toList();
+ for (var implicant in allImplicants) {
+ for (var exp in implicant) {
+ bool found = false;
+ for (var otherImplicant in allImplicants) {
+ if (implicant != otherImplicant &&
+ _findFirst(exp, otherImplicant) != null) {
+ found = true;
+ }
+ }
+ if (!found) {
+ cover.add(implicant);
+ primaryImplicants.remove(implicant);
+ break;
+ }
+ }
+ }
+ if (_isCover(cover, primaryImplicants)) {
+ return cover;
+ }
+ }
+ for (var implicant in primaryImplicants) {
+ var newCover = cover.toList()..add(implicant);
+ if (!_isCover(newCover, primaryImplicants)) {
+ var newPrimaryList =
+ primaryImplicants.where((i) => i != implicant).toList();
+ newCover = _findMinCover(newPrimaryList, newCover);
+ }
+ if (newCover.length < minCover.length) {
+ minCover = newCover;
+ }
+ }
+ return minCover;
+}
+
+/// Checks if [cover] is a set cover of [implicants] by searching through all
+/// expressions in each implicant, to see if the cover has the same expression.
+bool _isCover(List<List<Expression>> cover, List<List<Expression>> implicants) {
+ for (var implicant in implicants) {
+ for (var exp in implicant) {
+ if (cover.where((i) => _findFirst(exp, i) != null).isEmpty) {
+ return false;
+ }
+ }
+ }
+ return true;
+}
+
+// Computes the difference between two sets of expressions in disjunctive normal
+// form. if the difference is a negation, the difference is only counted once.
+List<Expression> _difference(List<Expression> As, List<Expression> Bs) {
+ var difference = new List<Expression>()
+ ..addAll(As.where((a) => _findFirst(a, Bs) == null))
+ ..addAll(Bs.where((b) => _findFirst(b, As) == null));
+ for (var expression in difference.toList()) {
+ if (_isNegatedExpression(expression)) {
+ if (_findFirst(negate(expression), difference) != null) {
+ difference.remove(expression);
+ }
+ }
+ }
+ return difference;
+}
+
+/// Finds the first occurrence of [expressionToFind] in [expressions] or
+/// returns null.
+Expression _findFirst<Expression>(
+ expressionToFind, List<Expression> expressions) {
+ return expressions.firstWhere(
+ (otherExpression) => expressionToFind.compareTo(otherExpression) == 0,
+ orElse: () => null);
+}
+
+/// Adds [expressionToAdd] to [expressions] if is not present.
+void _addIfNotPresent(
+ Expression expressionToAdd, List<Expression> expressions) {
+ if (_findFirst(expressionToAdd, expressions) == null) {
+ expressions.add(expressionToAdd);
+ }
+}
+
+/// Computes all unique min sets, thereby disregarding the order for which they
+/// were combined.
+List<List<LogicExpression>> _uniqueMinSets(
+ List<List<LogicExpression>> minSets) {
+ var uniqueMinSets = new List<List<LogicExpression>>();
+ for (int i = 0; i < minSets.length; i++) {
+ bool foundEqual = false;
+ for (var j = i - 1; j >= 0; j--) {
+ if (_areMinSetsEqual(minSets[i], minSets[j])) {
+ foundEqual = true;
+ break;
+ }
+ }
+ if (!foundEqual) {
+ uniqueMinSets.add(minSets[i]);
+ }
+ }
+ return uniqueMinSets;
+}
+
+/// Measures if two min sets are equal by checking that [minSet1] c [minSet2]
+/// and minSet1.length == minSet2.length.
+bool _areMinSetsEqual(
+ List<LogicExpression> minSet1, List<LogicExpression> minSet2) {
+ int found = 0;
+ for (var expression in minSet1) {
+ if (_findFirst(expression, minSet2) != null) {
+ found += 1;
+ }
+ }
+ return found == minSet2.length;
+}
+
+bool _isNegatedExpression(Expression expression) {
+ return expression is VariableExpression && expression.negate ||
+ expression is ComparisonExpression && expression.negate;
+}
+
+/// Gets all variables occurring in the [expression].
+List<Expression> _getVariables(Expression expression) {
+ if (expression is LogicExpression) {
+ var variables = <Expression>[];
+ expression.operands.forEach(
+ (e) => _getVariables(e).forEach((v) => _addIfNotPresent(v, variables)));
+ return variables;
+ }
+ if (expression is VariableExpression) {
+ return [new VariableExpression(expression.variable)];
+ }
+ if (expression is ComparisonExpression) {
+ throw new Exception("Cannot use ComparisonExpression for variables");
+ }
+ return [];
+}
+
+Expression negate(Expression expression, {bool positive: false}) {
+ if (expression is LogicExpression && expression.isOr) {
+ return new LogicExpression.and(expression.operands
+ .map((e) => negate(e, positive: !positive))
+ .toList());
+ }
+ if (expression is LogicExpression && expression.isAnd) {
+ return new LogicExpression.or(expression.operands
+ .map((e) => negate(e, positive: !positive))
+ .toList());
+ }
+ if (expression is ComparisonExpression) {
+ return new ComparisonExpression(
+ expression.left, expression.right, !expression.negate);
+ }
+ if (expression is VariableExpression) {
+ return new VariableExpression(expression.variable,
+ negate: !expression.negate);
+ }
+ return expression;
+}
+
+// Convert ComparisonExpressions to VariableExpression to make sure looking
+// we can se individual variables truthiness in the [TruthTableEnvironment].
+Expression _comparisonExpressionsToVariableExpressions(Expression expression) {
+ if (expression is LogicExpression) {
+ return new LogicExpression(
+ expression.op,
+ expression.operands
+ .map((exp) => _comparisonExpressionsToVariableExpressions(exp))
+ .toList());
+ }
+ if (expression is ComparisonExpression) {
+ return new VariableExpression(
+ new Variable(
+ expression.left.name + _comparisonToken + expression.right),
+ negate: expression.negate);
+ }
+ return expression;
+}
+
+Expression _recoverComparisonExpressions(Expression expression) {
+ if (expression is LogicExpression) {
+ return new LogicExpression(
+ expression.op,
+ expression.operands
+ .map((exp) => _recoverComparisonExpressions(exp))
+ .toList());
+ }
+ if (expression is VariableExpression &&
+ expression.variable.name.contains(_comparisonToken)) {
+ int tokenIndex = expression.variable.name.indexOf(_comparisonToken);
+ return new ComparisonExpression(
+ new Variable(expression.variable.name.substring(0, tokenIndex)),
+ expression.variable.name
+ .substring(tokenIndex + _comparisonToken.length),
+ expression.negate);
+ }
+ return expression;
+}
diff --git a/pkg/status_file/lib/src/expression.dart b/pkg/status_file/lib/src/expression.dart
index 386464f..16a5bbd 100644
--- a/pkg/status_file/lib/src/expression.dart
+++ b/pkg/status_file/lib/src/expression.dart
@@ -89,10 +89,10 @@
}
/// A reference to a variable.
-class _Variable {
+class Variable {
final String name;
- _Variable(this.name);
+ Variable(this.name);
String lookup(Environment environment) {
var value = environment.lookUp(name);
@@ -116,12 +116,12 @@
/// $variable == someValue
/// ```
/// Negate the result if [negate] is true.
-class _ComparisonExpression extends Expression {
- final _Variable left;
+class ComparisonExpression extends Expression {
+ final Variable left;
final String right;
final bool negate;
- _ComparisonExpression(this.left, this.right, this.negate);
+ ComparisonExpression(this.left, this.right, this.negate);
void validate(Environment environment, List<String> errors) {
environment.validate(left.name, right, errors);
@@ -134,15 +134,15 @@
Expression normalize() {
// Replace Boolean comparisons with a straight variable expression.
if (right == "true") {
- return new _VariableExpression(left, negate: negate);
+ return new VariableExpression(left, negate: negate);
} else if (right == "false") {
- return new _VariableExpression(left, negate: !negate);
+ return new VariableExpression(left, negate: !negate);
} else {
return this;
}
}
- int _compareToMyType(_ComparisonExpression other) {
+ int _compareToMyType(ComparisonExpression other) {
if (left.name != other.left.name) {
return left.name.compareTo(other.left.name);
}
@@ -178,11 +178,11 @@
/// ```
/// $variable != true
/// ```
-class _VariableExpression extends Expression {
- final _Variable variable;
+class VariableExpression extends Expression {
+ final Variable variable;
final bool negate;
- _VariableExpression(this.variable, {this.negate = false});
+ VariableExpression(this.variable, {this.negate = false});
void validate(Environment environment, List<String> errors) {
// It must be a Boolean, so it should allow either Boolean value.
@@ -195,7 +195,7 @@
/// Variable expressions are fine as they are.
Expression normalize() => this;
- int _compareToMyType(_VariableExpression other) {
+ int _compareToMyType(VariableExpression other) {
if (variable.name != other.variable.name) {
return variable.name.compareTo(other.variable.name);
}
@@ -209,13 +209,19 @@
}
/// A logical `||` or `&&` expression.
-class _LogicExpression extends Expression {
+class LogicExpression extends Expression {
/// The operator, `||` or `&&`.
final String op;
final List<Expression> operands;
- _LogicExpression(this.op, this.operands);
+ LogicExpression(this.op, this.operands);
+
+ LogicExpression.and(this.operands) : op = _Token.and;
+ LogicExpression.or(this.operands) : op = _Token.or;
+
+ bool get isAnd => op == _Token.and;
+ bool get isOr => op == _Token.or;
void validate(Environment environment, List<String> errors) {
for (var operand in operands) {
@@ -238,18 +244,18 @@
// order.
// Recurse into the operands, sort them, and remove duplicates.
- var normalized = new _LogicExpression(
+ var normalized = new LogicExpression(
op, operands.map((operand) => operand.normalize()).toList())
.operands;
normalized = flatten(normalized);
var ordered = new SplayTreeSet<Expression>.from(normalized).toList();
- return new _LogicExpression(op, ordered);
+ return new LogicExpression(op, ordered);
}
List<Expression> flatten(List<Expression> operands) {
var newOperands = <Expression>[];
for (var operand in operands) {
- if (operand is _LogicExpression && operand.op == op) {
+ if (operand is LogicExpression && operand.op == op) {
newOperands.addAll(operand.operands);
} else {
newOperands.add(operand);
@@ -258,7 +264,7 @@
return newOperands;
}
- int _compareToMyType(_LogicExpression other) {
+ int _compareToMyType(LogicExpression other) {
// Put "&&" before "||".
if (op != other.op) return op == _Token.and ? -1 : 1;
@@ -280,7 +286,7 @@
String toString() {
String parenthesize(Expression operand) {
var result = operand.toString();
- if (op == "&&" && operand is _LogicExpression && operand.op == "||") {
+ if (isAnd && operand is LogicExpression && operand.isOr) {
result = "($result)";
}
@@ -316,7 +322,7 @@
if (operands.length == 1) return operands.single;
- return new _LogicExpression(_Token.or, operands);
+ return new LogicExpression(_Token.or, operands);
}
Expression _parseAnd() {
@@ -327,10 +333,12 @@
if (operands.length == 1) return operands.single;
- return new _LogicExpression(_Token.and, operands);
+ return new LogicExpression(_Token.and, operands);
}
Expression _parsePrimary() {
+ // TODO(mkroghj,rnystrom) If DNF is enforced, the need to parse parenthesis
+ // should go away. Remove this when all section headers has dnf'ed.
if (_scanner.match(_Token.leftParen)) {
var value = _parseOr();
if (!_scanner.match(_Token.rightParen)) {
@@ -357,7 +365,7 @@
"Expected identifier in expression, got ${_scanner.current}");
}
- var left = new _Variable(_scanner.current);
+ var left = new Variable(_scanner.current);
_scanner.advance();
if (!negate &&
@@ -371,9 +379,9 @@
}
var right = _scanner.advance();
- return new _ComparisonExpression(left, right, isNotEquals);
+ return new ComparisonExpression(left, right, isNotEquals);
} else {
- return new _VariableExpression(left, negate: negate);
+ return new VariableExpression(left, negate: negate);
}
}
}
diff --git a/pkg/status_file/test/status_expression_dnf_test.dart b/pkg/status_file/test/status_expression_dnf_test.dart
new file mode 100644
index 0000000..475b664
--- /dev/null
+++ b/pkg/status_file/test/status_expression_dnf_test.dart
@@ -0,0 +1,72 @@
+// 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.
+
+import "package:expect/expect.dart";
+import "package:status_file/src/expression.dart";
+import 'package:status_file/src/disjunctive.dart';
+
+main() {
+ testDnf();
+}
+
+void shouldDnfTo(String input, String expected) {
+ var expression = Expression.parse(input);
+ Expect.equals(expected, toDisjunctiveNormalForm(expression).toString());
+}
+
+void shouldDnfToExact(String input, Expression expected) {
+ var expression = Expression.parse(input);
+ Expect.equals(expected, toDisjunctiveNormalForm(expression));
+}
+
+void shouldBeSame(String input) {
+ shouldDnfTo(input, input);
+}
+
+void testDnf() {
+ shouldBeSame(r'$a');
+ shouldBeSame(r'$a || $b');
+ shouldBeSame(r'$a || $b && $c');
+ shouldBeSame(r'$a && $b || $b && $c');
+ shouldBeSame(r'$a && $b && $c');
+ shouldBeSame(r'$a || $b || $c');
+ shouldBeSame(r'!$a');
+ shouldBeSame(r'!$a && $b');
+ shouldBeSame(r'$a && !$b');
+ shouldBeSame(r'$a && $b');
+ shouldBeSame(r'!$a && !$b');
+
+ // Testing True.
+ shouldDnfToExact(r'$a || !$a', T);
+ shouldDnfToExact(r'!$a || !$b || $a && $b', T);
+
+ // Testing False
+ shouldDnfToExact(r'$a && !$a', F);
+ shouldDnfToExact(r'($a || $b) && !$a && !$b', F);
+
+ // Testing dnf and simple minimization (duplicates).
+ shouldDnfTo(r'$a && ($b || $c)', r'$a && $b || $a && $c');
+ shouldDnfTo(r'($a || $b) && ($c || $d)',
+ r'$a && $c || $a && $d || $b && $c || $b && $d');
+
+ // Testing minimizing by complementation
+ // The following two examples can be found here:
+ // https://en.wikipedia.org/wiki/Quine%E2%80%93McCluskey_algorithm
+ shouldDnfTo(
+ r"$a && !$b && !$c && !$d || $a && !$b && !$c && $d || "
+ r"$a && !$b && $c && !$d || $a && !$b && $c && $d",
+ r"$a && !$b");
+
+ shouldDnfTo(
+ r"!$a && $b && !$c && !$d || $a && !$b && !$c && !$d || "
+ r"$a && !$b && $c && !$d || $a && !$b && $c && $d || $a && $b && !$c && !$d ||"
+ r" $a && $b && $c && $d || $a && !$b && !$c && $d || $a && $b && $c && !$d",
+ r"$a && !$b || $a && $c || $b && !$c && !$d");
+
+ // Test that an expression is converted to dnf and minified correctly.
+ shouldDnfTo(r'($a || $b) && ($a || $c)', r'$a || $b && $c');
+ shouldDnfTo(r'(!$a || $b) && ($a || $b)', r'$b');
+ shouldDnfTo(r'($a || $b || $c) && (!$a || !$b)',
+ r'$a && !$b || !$a && $b || !$b && $c');
+}
diff --git a/pkg/vm/bin/precompiler_kernel_front_end.dart b/pkg/vm/bin/gen_kernel.dart
similarity index 62%
rename from pkg/vm/bin/precompiler_kernel_front_end.dart
rename to pkg/vm/bin/gen_kernel.dart
index 4a0ddae..c39bb2b 100644
--- a/pkg/vm/bin/precompiler_kernel_front_end.dart
+++ b/pkg/vm/bin/gen_kernel.dart
@@ -2,12 +2,14 @@
// 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:async';
import 'dart:io';
import 'package:args/args.dart' show ArgParser, ArgResults;
import 'package:front_end/src/api_prototype/front_end.dart';
import 'package:kernel/binary/ast_to_binary.dart';
import 'package:kernel/kernel.dart' show Program;
+import 'package:kernel/src/tool/batch_util.dart' as batch_util;
import 'package:kernel/target/targets.dart' show TargetFlags;
import 'package:kernel/target/vm.dart' show VmTarget;
import 'package:vm/kernel_front_end.dart' show compileToKernel;
@@ -18,11 +20,15 @@
..addOption('packages', help: 'Path to .packages file', defaultsTo: null)
..addOption('output',
abbr: 'o', help: 'Path to resulting dill file', defaultsTo: null)
+ ..addFlag('aot',
+ help:
+ 'Produce kernel file for AOT compilation (enables global transformations).',
+ defaultsTo: false)
..addFlag('strong-mode', help: 'Enable strong mode', defaultsTo: true);
final String _usage = '''
-Usage: dart pkg/vm/bin/precompiler_kernel_front_end.dart --platform vm_platform_strong.dill [options] input.dart
-Compiles Dart sources to a kernel binary file for the Dart 2.0 AOT compiler.
+Usage: dart pkg/vm/bin/gen_kernel.dart --platform vm_platform_strong.dill [options] input.dart
+Compiles Dart sources to a kernel binary file for Dart VM.
Options:
${_argParser.usage}
@@ -39,18 +45,27 @@
};
main(List<String> arguments) async {
+ if (arguments.isNotEmpty && arguments.last == '--batch') {
+ await runBatchModeCompiler();
+ } else {
+ exit(await compile(arguments));
+ }
+}
+
+Future<int> compile(List<String> arguments) async {
final ArgResults options = _argParser.parse(arguments);
final String platformKernel = options['platform'];
if ((options.rest.length != 1) || (platformKernel == null)) {
print(_usage);
- exit(_badUsageExitCode);
+ return _badUsageExitCode;
}
final String filename = options.rest.single;
final String kernelBinaryFilename = options['output'] ?? "$filename.dill";
final String packages = options['packages'];
final bool strongMode = options['strong-mode'];
+ final bool aot = options['aot'];
int errors = 0;
@@ -74,14 +89,44 @@
Program program = await compileToKernel(
Uri.base.resolve(filename), compilerOptions,
- aot: true);
+ aot: aot);
if ((errors > 0) || (program == null)) {
- exit(_compileTimeErrorExitCode);
+ return _compileTimeErrorExitCode;
}
final IOSink sink = new File(kernelBinaryFilename).openWrite();
final BinaryPrinter printer = new BinaryPrinter(sink);
printer.writeProgramFile(program);
await sink.close();
+
+ return 0;
+}
+
+Future runBatchModeCompiler() async {
+ await batch_util.runBatch((List<String> arguments) async {
+ // TODO(kustermann): Once we know where the new IKG api is and how to use
+ // it, we should take advantage of it.
+ //
+ // Important things to note:
+ //
+ // * Our global transformations must never alter the AST structures which
+ // the statefull IKG generator keeps across compilations.
+ // => We need to make our own copy.
+ //
+ // * We must ensure the stateful IKG generator keeps giving us all the
+ // compile-time errors, warnings, hints for every compilation and we
+ // report the compilation result accordingly.
+ //
+ final exitCode = await compile(arguments);
+ switch (exitCode) {
+ case 0:
+ return batch_util.CompilerOutcome.Ok;
+ case _compileTimeErrorExitCode:
+ case _badUsageExitCode:
+ return batch_util.CompilerOutcome.Fail;
+ default:
+ throw 'Could not obtain correct exit code from compiler.';
+ }
+ });
}
diff --git a/pkg/vm/bin/kernel_service.dart b/pkg/vm/bin/kernel_service.dart
index 96d5b96..0776a9f 100644
--- a/pkg/vm/bin/kernel_service.dart
+++ b/pkg/vm/bin/kernel_service.dart
@@ -20,8 +20,8 @@
///
library runtime.tools.kernel_service;
-import 'dart:async' show Future;
-import 'dart:io' show Platform hide FileSystemEntity;
+import 'dart:async' show Future, ZoneSpecification, runZoned;
+import 'dart:io' show Platform, stderr hide FileSystemEntity;
import 'dart:isolate';
import 'dart:typed_data' show Uint8List;
@@ -77,7 +77,11 @@
};
}
- Future<Program> compile(Uri script);
+ Future<Program> compile(Uri script) {
+ return runWithPrintToStderr(() => compileInternal(script));
+ }
+
+ Future<Program> compileInternal(Uri script);
}
class IncrementalCompiler extends Compiler {
@@ -88,7 +92,7 @@
: super(fileSystem, platformKernel, strongMode: strongMode);
@override
- Future<Program> compile(Uri script) async {
+ Future<Program> compileInternal(Uri script) async {
if (generator == null) {
generator = await IncrementalKernelGenerator.newInstance(options, script);
}
@@ -111,7 +115,7 @@
: super(fileSystem, platformKernel, strongMode: strongMode);
@override
- Future<Program> compile(Uri script) async {
+ Future<Program> compileInternal(Uri script) async {
return requireMain
? kernelForProgram(script, options)
: kernelForBuildUnit([script], options..chaseDependencies = true);
@@ -371,3 +375,9 @@
String toString() => "_CompilationCrash(${errorString})";
}
+
+Future<T> runWithPrintToStderr<T>(Future<T> f()) {
+ return runZoned(() => new Future<T>(f),
+ zoneSpecification: new ZoneSpecification(
+ print: (_1, _2, _3, String line) => stderr.writeln(line)));
+}
diff --git a/pkg/vm/lib/kernel_front_end.dart b/pkg/vm/lib/kernel_front_end.dart
index fe25f0e..11506fc 100644
--- a/pkg/vm/lib/kernel_front_end.dart
+++ b/pkg/vm/lib/kernel_front_end.dart
@@ -13,8 +13,7 @@
import 'package:kernel/ast.dart' show Program;
import 'package:kernel/core_types.dart' show CoreTypes;
-// TODO(alexmarkov): Move this transformation to pkg/vm.
-import 'package:kernel/transformations/precompiler.dart' as transformPrecompiler
+import 'transformations/cha_devirtualization.dart' as chaDevirtualization
show transformProgram;
/// Generates a kernel representation of the program whose main library is in
@@ -39,6 +38,6 @@
// TODO(alexmarkov): AOT-specific whole-program transformations.
if (strongMode) {
- transformPrecompiler.transformProgram(coreTypes, program);
+ chaDevirtualization.transformProgram(coreTypes, program);
}
}
diff --git a/pkg/vm/lib/metadata/direct_call.dart b/pkg/vm/lib/metadata/direct_call.dart
new file mode 100644
index 0000000..46f1fea
--- /dev/null
+++ b/pkg/vm/lib/metadata/direct_call.dart
@@ -0,0 +1,42 @@
+// 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.
+
+library vm.metadata.direct_call;
+
+import 'package:kernel/ast.dart';
+
+/// Metadata for annotating method invocations converted to direct calls.
+class DirectCallMetadata {
+ final Member target;
+ final bool checkReceiverForNull;
+
+ DirectCallMetadata(this.target, this.checkReceiverForNull);
+}
+
+/// Repository for [DirectCallMetadata].
+class DirectCallMetadataRepository
+ extends MetadataRepository<DirectCallMetadata> {
+ @override
+ final String tag = 'vm.direct-call.metadata';
+
+ @override
+ final Map<TreeNode, DirectCallMetadata> mapping =
+ <TreeNode, DirectCallMetadata>{};
+
+ @override
+ void writeToBinary(DirectCallMetadata metadata, BinarySink sink) {
+ sink.writeCanonicalNameReference(getCanonicalNameOfMember(metadata.target));
+ sink.writeByte(metadata.checkReceiverForNull ? 1 : 0);
+ }
+
+ @override
+ DirectCallMetadata readFromBinary(BinarySource source) {
+ var target = source.readCanonicalNameReference()?.getReference()?.asMember;
+ if (target == null) {
+ throw 'DirectCallMetadata should have a non-null target';
+ }
+ var checkReceiverForNull = (source.readByte() != 0);
+ return new DirectCallMetadata(target, checkReceiverForNull);
+ }
+}
diff --git a/pkg/kernel/lib/transformations/precompiler.dart b/pkg/vm/lib/transformations/cha_devirtualization.dart
similarity index 75%
rename from pkg/kernel/lib/transformations/precompiler.dart
rename to pkg/vm/lib/transformations/cha_devirtualization.dart
index 586941f..cdc2ce4 100644
--- a/pkg/kernel/lib/transformations/precompiler.dart
+++ b/pkg/vm/lib/transformations/cha_devirtualization.dart
@@ -2,54 +2,21 @@
// 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 kernel.transformations.precompiler;
+library vm.transformations.cha_devirtualization;
-import '../ast.dart';
+import 'package:kernel/ast.dart';
+import 'package:kernel/core_types.dart' show CoreTypes;
+import 'package:kernel/class_hierarchy.dart' show ClosedWorldClassHierarchy;
-import '../core_types.dart' show CoreTypes;
+import '../metadata/direct_call.dart';
-import '../class_hierarchy.dart' show ClosedWorldClassHierarchy;
-
-/// Performs whole-program optimizations for Dart VM precompiler.
-/// Assumes strong mode and closed world.
+/// Devirtualization of method invocations based on the class hierarchy
+/// analysis. Assumes strong mode and closed world.
Program transformProgram(CoreTypes coreTypes, Program program) {
new _Devirtualization(coreTypes, program).visitProgram(program);
return program;
}
-class DirectCallMetadata {
- final Member target;
- final bool checkReceiverForNull;
-
- DirectCallMetadata(this.target, this.checkReceiverForNull);
-}
-
-class DirectCallMetadataRepository
- extends MetadataRepository<DirectCallMetadata> {
- @override
- final String tag = 'vm.direct-call.metadata';
-
- @override
- final Map<TreeNode, DirectCallMetadata> mapping =
- <TreeNode, DirectCallMetadata>{};
-
- @override
- void writeToBinary(DirectCallMetadata metadata, BinarySink sink) {
- sink.writeCanonicalNameReference(getCanonicalNameOfMember(metadata.target));
- sink.writeByte(metadata.checkReceiverForNull ? 1 : 0);
- }
-
- @override
- DirectCallMetadata readFromBinary(BinarySource source) {
- var target = source.readCanonicalNameReference()?.getReference()?.asMember;
- if (target == null) {
- throw 'DirectCallMetadata should have a non-null target';
- }
- var checkReceiverForNull = (source.readByte() != 0);
- return new DirectCallMetadata(target, checkReceiverForNull);
- }
-}
-
/// Resolves targets of instance method invocations, property getter
/// invocations and property setters invocations using strong mode
/// types / interface targets and closed-world class hierarchy analysis.
diff --git a/pkg/vm/tool/dart2 b/pkg/vm/tool/dart2
index c5f07b2..d849f5b 100755
--- a/pkg/vm/tool/dart2
+++ b/pkg/vm/tool/dart2
@@ -34,6 +34,7 @@
exec "$BIN_DIR"/dart \
--strong \
--reify-generic-functions \
+ --limit-ints-to-64-bits \
--dfe="${BIN_DIR}/gen/kernel-service.dart.snapshot" \
--kernel-binaries="${BIN_DIR}" \
"$@"
diff --git a/pkg/vm/tool/gen_kernel b/pkg/vm/tool/gen_kernel
new file mode 100755
index 0000000..ec122ec
--- /dev/null
+++ b/pkg/vm/tool/gen_kernel
@@ -0,0 +1,36 @@
+#!/usr/bin/env bash
+# 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.
+
+# Script for generating kernel files using Dart 2 pipeline: Fasta with
+# strong mode enabled.
+
+set -e
+
+function follow_links() {
+ file="$1"
+ while [ -h "$file" ]; do
+ # On Mac OS, readlink -f doesn't work.
+ file="$(readlink "$file")"
+ done
+ echo "$file"
+}
+
+# Unlike $0, $BASH_SOURCE points to the absolute path of this file.
+PROG_NAME="$(follow_links "$BASH_SOURCE")"
+
+# Handle the case where dart-sdk/bin has been symlinked to.
+CUR_DIR="$(cd "${PROG_NAME%/*}" ; pwd -P)"
+
+SDK_DIR="$CUR_DIR/../../.."
+
+if [[ `uname` == 'Darwin' ]]; then
+ DART="$SDK_DIR/tools/sdks/mac/dart-sdk/bin/dart"
+ OUT_DIR="$SDK_DIR/xcodebuild"
+else
+ DART="$SDK_DIR/tools/sdks/linux/dart-sdk/bin/dart"
+ OUT_DIR="$SDK_DIR/out"
+fi
+
+exec "$DART" "${SDK_DIR}/pkg/vm/bin/gen_kernel.dart" $@
diff --git a/pkg/vm/tool/precompiler2 b/pkg/vm/tool/precompiler2
index 83c6e4a..6c4190d 100755
--- a/pkg/vm/tool/precompiler2
+++ b/pkg/vm/tool/precompiler2
@@ -7,7 +7,7 @@
# strong mode enabled, AOT specific Kernel-to-Kernel transformations and
# Dart VM precompiler with strong mode semantics and reified generics.
-# Parse incomming arguments and extract the value of --packages option if any
+# Parse incoming arguments and extract the value of --packages option if any
# was passed. Split options (--xyz) and non-options into two separate arrays.
# All options will be passed to dart_bootstrap, while --packages will be
# passed to Fasta.
@@ -67,8 +67,9 @@
BIN_DIR="$OUT_DIR/$DART_CONFIGURATION"
# Step 1: Generate Kernel binary from the input Dart source.
-"$BIN_DIR"/dart "${SDK_DIR}/pkg/vm/bin/precompiler_kernel_front_end.dart" \
+"$BIN_DIR"/dart "${SDK_DIR}/pkg/vm/bin/gen_kernel.dart" \
--platform "${BIN_DIR}/vm_platform_strong.dill" \
+ --aot \
$PACKAGES \
-o "$SNAPSHOT_FILE.dill" \
"$SOURCE_FILE"
diff --git a/runtime/include/dart_api.h b/runtime/include/dart_api.h
index 4c7e36a..f14e08b 100644
--- a/runtime/include/dart_api.h
+++ b/runtime/include/dart_api.h
@@ -943,6 +943,13 @@
DART_EXPORT void Dart_NotifyIdle(int64_t deadline);
/**
+ * Notifies the VM that the system is running low on memory.
+ *
+ * Does not require a current isolate. Only valid after calling Dart_Initialize.
+ */
+DART_EXPORT void Dart_NotifyLowMemory();
+
+/**
* Notifies the VM that the current thread should not be profiled until a
* matching call to Dart_ThreadEnableProfiling is made.
*
diff --git a/runtime/lib/array.dart b/runtime/lib/array.dart
index 1326505..4800c82 100644
--- a/runtime/lib/array.dart
+++ b/runtime/lib/array.dart
@@ -9,7 +9,11 @@
E operator [](int index) native "List_getIndexed";
- void operator []=(int index, E value) native "List_setIndexed";
+ void operator []=(int index, E value) {
+ _setIndexed(index, value);
+ }
+
+ void _setIndexed(int index, E value) native "List_setIndexed";
int get length native "List_getLength";
diff --git a/runtime/lib/double.dart b/runtime/lib/double.dart
index 9b053c0..4c88b4e 100644
--- a/runtime/lib/double.dart
+++ b/runtime/lib/double.dart
@@ -54,7 +54,7 @@
double operator -() native "Double_flipSignBit";
- bool operator ==(other) {
+ bool operator ==(Object other) {
return (other is num) && _equal(other.toDouble());
}
diff --git a/runtime/lib/function.dart b/runtime/lib/function.dart
index dee3666..ebaa3ec 100644
--- a/runtime/lib/function.dart
+++ b/runtime/lib/function.dart
@@ -5,7 +5,7 @@
// part of "core_patch.dart";
class _Closure implements Function {
- bool operator ==(other) native "Closure_equals";
+ bool operator ==(Object other) native "Closure_equals";
int get hashCode {
if (_hash == null) {
diff --git a/runtime/lib/growable_array.dart b/runtime/lib/growable_array.dart
index 009c84c..7252478 100644
--- a/runtime/lib/growable_array.dart
+++ b/runtime/lib/growable_array.dart
@@ -140,7 +140,11 @@
T operator [](int index) native "GrowableList_getIndexed";
- void operator []=(int index, T value) native "GrowableList_setIndexed";
+ void operator []=(int index, T value) {
+ _setIndexed(index, value);
+ }
+
+ void _setIndexed(int index, T value) native "GrowableList_setIndexed";
void add(T value) {
var len = length;
diff --git a/runtime/lib/integers.dart b/runtime/lib/integers.dart
index 37bb589..46562e6 100644
--- a/runtime/lib/integers.dart
+++ b/runtime/lib/integers.dart
@@ -124,7 +124,7 @@
bool _greaterThanFromInteger(int other)
native "Integer_greaterThanFromInteger";
- bool operator ==(other) {
+ bool operator ==(Object other) {
if (other is num) {
return other._equalToInteger(this);
}
diff --git a/runtime/lib/internal_patch.dart b/runtime/lib/internal_patch.dart
index 34f55c4..f6bc981 100644
--- a/runtime/lib/internal_patch.dart
+++ b/runtime/lib/internal_patch.dart
@@ -24,6 +24,12 @@
List<T> makeFixedListUnmodifiable<T>(List<T> fixedLengthList)
native "Internal_makeFixedListUnmodifiable";
+@patch
+Object extractTypeArguments<T>(T instance, Function extract) {
+ // TODO(31371): Implement this.
+ throw new UnimplementedError();
+}
+
class VMLibraryHooks {
// Example: "dart:isolate _Timer._factory"
static var timerFactory;
diff --git a/runtime/observatory/tests/observatory_ui/observatory_ui.status b/runtime/observatory/tests/observatory_ui/observatory_ui.status
index 8c3c55f..1937c70 100644
--- a/runtime/observatory/tests/observatory_ui/observatory_ui.status
+++ b/runtime/observatory/tests/observatory_ui/observatory_ui.status
@@ -2,7 +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.
-[ ! $browser || $runtime == drt || $fast_startup]
+[ $runtime == chrome || $runtime == ff || $runtime == safari ]
+heap_snapshot/element_test: RuntimeError # Issue 27925
+
+[ $runtime == drt || !$browser || $fast_startup ]
*: SkipByDesign
[ $runtime == ff || $runtime == safari ]
@@ -10,5 +13,3 @@
cpu_profile_table: Skip
persistent_handles_page: Skip
-[ $runtime == ff || $runtime == chrome || $runtime == safari ]
-heap_snapshot/element_test: RuntimeError # Issue 27925
diff --git a/runtime/observatory/tests/service/service.status b/runtime/observatory/tests/service/service.status
index 177c74b..e8d35c6 100644
--- a/runtime/observatory/tests/service/service.status
+++ b/runtime/observatory/tests/service/service.status
@@ -1,109 +1,103 @@
# 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.
-
# Flaky failures
+field_script_test: Pass, RuntimeError
get_allocation_samples_test: Pass, RuntimeError # Inconsistent stack trace
-reload_sources_test: Pass, Slow # Reload is slow on the bots
+get_isolate_rpc_test: Pass, RuntimeError # Issue 29324
get_retained_size_rpc_test: Pass, RuntimeError # Issue 28193
isolate_lifecycle_test: Pass, RuntimeError # Issue 24174
-field_script_test: Pass, RuntimeError
-get_isolate_rpc_test: Pass, RuntimeError # Issue 29324
+reload_sources_test: Pass, Slow # Reload is slow on the bots
-[ $system == windows && $mode == debug && $checked ]
-async_scope_test: Pass, Slow
+[ $arch == arm ]
+process_service_test: Pass, Fail # Issue 24344
-[$runtime == vm && $compiler == none && $system == fuchsia]
-*: Skip # Not yet triaged.
+[ $compiler == app_jit ]
+bad_reload_test: RuntimeError # Issue 27806
+complex_reload_test: RuntimeError # Issue 27806
+debugger_location_second_test: Skip # Issue 28180
+evaluate_activation_test/instance: RuntimeError # Issue 27806
+evaluate_activation_test/scope: RuntimeError # Issue 27806
+get_object_rpc_test: RuntimeError # Issue 27806
+get_source_report_test: RuntimeError # Issue 27806
+next_through_closure_test: RuntimeError # Snapshots don't include source and generated source is not 1-to-1. The column offsets are thus off.
+next_through_create_list_and_map_test: RuntimeError # Snapshots don't include source and generated source is not 1-to-1. The column offsets are thus off.
+next_through_for_each_loop_test: RuntimeError # Snapshots don't include source and generated source is not 1-to-1. The column offsets are thus off.
+pause_on_unhandled_async_exceptions2_test: Pass, RuntimeError, Timeout, Crash # Issue 29178
+set_name_rpc_test: RuntimeError # Issue 27806
+step_through_constructor_calls_test: RuntimeError # Snapshots don't include source and generated source is not 1-to-1. The column offsets are thus off.
+step_through_function_test: RuntimeError # Snapshots don't include source and generated source is not 1-to-1. The column offsets are thus off.
+step_through_switch_test: RuntimeError # Snapshots don't include source and generated source is not 1-to-1. The column offsets are thus off.
+step_through_switch_with_continue_test: RuntimeError # Snapshots don't include source and generated source is not 1-to-1. The column offsets are thus off.
+unused_changes_in_last_reload_test: RuntimeError # Issue 27806
-[ $system == windows ]
-async_generator_breakpoint_test: Skip # Issue 29145
+# Tests with known analyzer issues
+[ $compiler == dart2analyzer ]
+developer_extension_test: SkipByDesign
+evaluate_activation_in_method_class_test: CompileTimeError # Issue 24478
+get_isolate_after_language_error_test: SkipByDesign
+
+[ $compiler == dartk ]
+next_through_simple_async_test: Pass, Fail # Issue 29145
# Kernel version of tests
[ $compiler != dartk ]
add_breakpoint_rpc_kernel_test: SkipByDesign # kernel specific version of add_breakpoint_rpc_test
-[ $compiler == dartk ]
-next_through_simple_async_test: Pass, Fail # Issue 29145
-
-[ ($compiler == none || $compiler == precompiler) && ($runtime == vm || $runtime == dart_precompiled) ]
-evaluate_activation_test/instance: RuntimeError # http://dartbug.com/20047
-evaluate_activation_test/scope: RuntimeError # http://dartbug.com/20047
+[ $compiler == precompiler ]
+*: Skip # Issue 24651
# Debugger location tests are slow in debug mode.
[ $mode == debug ]
debugger_location_second_test: Pass, Slow
debugger_location_test: Pass, Slow
-# These tests are slow on simulators.
-[ $arch == simarm || $arch == simarm64 ]
-*: Pass, Slow
+# Service protocol is not supported in product mode.
+[ $mode == product ]
+*: SkipByDesign
+
+[ $system == windows ]
+async_generator_breakpoint_test: Skip # Issue 29145
+dev_fs_http_put_weird_char_test: Skip # Windows disallows carriage returns in paths
+dev_fs_weird_char_test: Skip # Windows disallows question mark in paths
+
+[ $builder_tag == strong && $compiler == dart2analyzer ]
+*: Skip # Issue 28649
+
+[ $compiler == none && $runtime == vm && $system == fuchsia ]
+*: Skip # Not yet triaged.
+
+[ $mode == debug && $system == windows && $checked ]
+async_scope_test: Pass, Slow
+
[ $mode == debug && ($arch == simarm || $arch == simarm64) ]
*: SkipSlow
-# All tests use dart:io
-[ $browser || $compiler == dart2js ]
-*: SkipByDesign
+[ ($compiler == none || $compiler == precompiler) && ($runtime == dart_precompiled || $runtime == vm) ]
+evaluate_activation_test/instance: RuntimeError # http://dartbug.com/20047
+evaluate_activation_test/scope: RuntimeError # http://dartbug.com/20047
-# Tests with known analyzer issues
-[ $compiler == dart2analyzer ]
-developer_extension_test: SkipByDesign
-get_isolate_after_language_error_test: SkipByDesign
+[ $arch != ia32 || $arch != x64 || $system != linux ]
+get_native_allocation_samples_test: Skip # Unsupported.
-[ $compiler == dart2analyzer && $builder_tag == strong ]
-*: Skip # Issue 28649
-
-[ $arch == arm ]
-process_service_test: Pass, Fail # Issue 24344
-
-[ $compiler == precompiler ]
-*: Skip # Issue 24651
-
-[ $compiler == app_jit ]
-complex_reload_test: RuntimeError # Issue 27806
-bad_reload_test: RuntimeError # Issue 27806
-unused_changes_in_last_reload_test: RuntimeError # Issue 27806
-evaluate_activation_test/instance: RuntimeError # Issue 27806
-evaluate_activation_test/scope: RuntimeError # Issue 27806
-get_object_rpc_test: RuntimeError # Issue 27806
-get_source_report_test: RuntimeError # Issue 27806
-set_name_rpc_test: RuntimeError # Issue 27806
-pause_on_unhandled_async_exceptions2_test: Pass, RuntimeError, Timeout, Crash # Issue 29178
-
-debugger_location_second_test: Skip # Issue 28180
-
-next_through_for_each_loop_test: RuntimeError # Snapshots don't include source and generated source is not 1-to-1. The column offsets are thus off.
-next_through_create_list_and_map_test: RuntimeError # Snapshots don't include source and generated source is not 1-to-1. The column offsets are thus off.
-next_through_closure_test: RuntimeError # Snapshots don't include source and generated source is not 1-to-1. The column offsets are thus off.
-step_through_switch_test: RuntimeError # Snapshots don't include source and generated source is not 1-to-1. The column offsets are thus off.
-step_through_constructor_calls_test: RuntimeError # Snapshots don't include source and generated source is not 1-to-1. The column offsets are thus off.
-step_through_function_test: RuntimeError # Snapshots don't include source and generated source is not 1-to-1. The column offsets are thus off.
-step_through_switch_with_continue_test: RuntimeError # Snapshots don't include source and generated source is not 1-to-1. The column offsets are thus off.
-
-[ $compiler == dart2analyzer ]
-evaluate_activation_in_method_class_test: CompileTimeError # Issue 24478
+# These tests are slow on simulators.
+[ $arch == simarm || $arch == simarm64 ]
+*: Pass, Slow
[ $arch == simdbc || $arch == simdbc64 ]
-implicit_getter_setter_test: RuntimeError # Field guards unimplemented.
async_single_step_exception_test: RuntimeError # Issue 29218
-
+implicit_getter_setter_test: RuntimeError # Field guards unimplemented.
next_through_catch_test: RuntimeError # Debugging StringConcatenation doesn't work the same on simdbc as on other platforms (bug #28975).
next_through_simple_async_test: RuntimeError # Debugging StringConcatenation doesn't work the same on simdbc as on other platforms (bug #28975).
next_through_simple_linear_2_test: RuntimeError # Debugging StringConcatenation doesn't work the same on simdbc as on other platforms (bug #28975).
step_through_function_test: RuntimeError # Debugging StringConcatenation doesn't work the same on simdbc as on other platforms (bug #28975).
step_through_getter_test: RuntimeError # Debugging StringConcatenation doesn't work the same on simdbc as on other platforms (bug #28975).
+# All tests use dart:io
+[ $compiler == dart2js || $browser ]
+*: SkipByDesign
+
# Skip all service tests because random reloads interfere.
[ $hot_reload || $hot_reload_rollback ]
*: SkipByDesign # The service tests should run without being reloaded.
-[ $system == windows ]
-dev_fs_weird_char_test: Skip # Windows disallows question mark in paths
-dev_fs_http_put_weird_char_test: Skip # Windows disallows carriage returns in paths
-
-[ $system != linux || ($arch != x64 || $arch != ia32) ]
-get_native_allocation_samples_test: Skip # Unsupported.
-
-# Service protocol is not supported in product mode.
-[ $mode == product ]
-*: SkipByDesign
diff --git a/runtime/observatory/tests/service/service_kernel.status b/runtime/observatory/tests/service/service_kernel.status
index 9bda9fc..584b24f 100644
--- a/runtime/observatory/tests/service/service_kernel.status
+++ b/runtime/observatory/tests/service/service_kernel.status
@@ -2,44 +2,205 @@
# 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 == dartkp ]
-*: Skip # Non-kernel also skips precompiled mode.
-
# Kernel works slightly different. There are kernel specific versions.
# These are the non-kernel specific versions so skip tests and allow errors.
[ $compiler == dartk ]
-add_breakpoint_rpc_test: SkipByDesign # non-kernel specific version of add_breakpoint_rpc_kernel_test.
-get_isolate_after_language_error_test: CompileTimeError
-developer_extension_test: CompileTimeError
-step_through_arithmetic_test: RuntimeError # probably constant evaluator pre-evaluating e.g. 1+2
-
-capture_stdio_test: CompileTimeError # These 3 tests fail with 'dart:vmservice_io': error: [...] native function 'VMServiceIO_Shutdown' (0 arguments) cannot be found because of '--compile_all'
-address_mapper_test: CompileTimeError # These 3 tests fail with 'dart:vmservice_io': error: [...] native function 'VMServiceIO_Shutdown' (0 arguments) cannot be found because of '--compile_all'
-
*_reload_*: Skip # no reload support for now
+add_breakpoint_rpc_test: SkipByDesign # non-kernel specific version of add_breakpoint_rpc_kernel_test.
+address_mapper_test: CompileTimeError # These 3 tests fail with 'dart:vmservice_io': error: [...] native function 'VMServiceIO_Shutdown' (0 arguments) cannot be found because of '--compile_all'
+address_mapper_test: Crash
+async_generator_breakpoint_test: Skip # Issue 29158, Async debugging
+async_single_step_out_test: RuntimeError # Issue 29158, Async debugging
+async_star_single_step_into_test: RuntimeError # Issue 29158, Async debugging
+async_star_step_out_test: RuntimeError # Issue 29158, Async debugging
+async_step_out_test: RuntimeError # Issue 29158, Async debugging
+awaiter_async_stack_contents_test: RuntimeError # Issue 29158, Async debugging
+capture_stdio_test: CompileTimeError # These 3 tests fail with 'dart:vmservice_io': error: [...] native function 'VMServiceIO_Shutdown' (0 arguments) cannot be found because of '--compile_all'
+capture_stdio_test: Crash
+developer_extension_test: CompileTimeError
eval_internal_class_test: Skip # no evaluation test for now
evaluate_*: Skip # no evaluation test for now
-
-async_star_single_step_into_test: RuntimeError # Issue 29158, Async debugging
-async_step_out_test: RuntimeError # Issue 29158, Async debugging
-async_star_step_out_test: RuntimeError # Issue 29158, Async debugging
-awaiter_async_stack_contents_test: RuntimeError # Issue 29158, Async debugging
-async_single_step_out_test: RuntimeError # Issue 29158, Async debugging
-async_generator_breakpoint_test: Skip # Issue 29158, Async debugging
-
-capture_stdio_test: Crash
-address_mapper_test: Crash
-vm_restart_test: Crash
-
+get_isolate_after_language_error_test: CompileTimeError
+isolate_lifecycle_test: Pass, RuntimeError # Inherited from service.status
+library_dependency_test: CompileTimeError # Deferred loading kernel issue 28335.
pause_on_unhandled_async_exceptions2_test: RuntimeError # --pause-isolates-on-unhandled-exceptions doesn't currently work. Issue #29056
pause_on_unhandled_async_exceptions_test: RuntimeError # --pause-isolates-on-unhandled-exceptions doesn't currently work. Issue #29056
+step_through_arithmetic_test: RuntimeError # probably constant evaluator pre-evaluating e.g. 1+2
+vm_restart_test: Crash
-isolate_lifecycle_test: Pass, RuntimeError # Inherited from service.status
+[ $compiler == dartkp ]
+*: Skip # Non-kernel also skips precompiled mode.
[ $compiler == dartk && $mode == debug ]
isolate_lifecycle_test: Skip # Flaky.
pause_idle_isolate_test: Skip # Flaky
-# Deferred loading kernel issue 28335.
-[ $compiler == dartk ]
-library_dependency_test: CompileTimeError # Deferred loading kernel issue 28335.
+[ $compiler == dartk && $mode == debug && $strong ]
+external_service_disappear_test: Crash # Issue 31587
+
+# Issue 31587
+[ $compiler == dartk && $strong ]
+add_breakpoint_rpc_kernel_test: CompileTimeError
+allocations_test: CompileTimeError
+async_next_test: CompileTimeError
+async_scope_test: CompileTimeError
+async_single_step_exception_test: CompileTimeError
+async_single_step_into_test: CompileTimeError
+async_single_step_out_test: CompileTimeError
+async_star_single_step_into_test: CompileTimeError
+async_star_step_out_test: CompileTimeError
+async_step_out_test: CompileTimeError
+auth_token1_test: CompileTimeError
+auth_token_test: CompileTimeError
+awaiter_async_stack_contents_test: CompileTimeError
+bad_web_socket_address_test: CompileTimeError
+break_on_activation_test: CompileTimeError
+break_on_function_test: CompileTimeError
+breakpoint_in_parts_class_test: CompileTimeError
+breakpoint_two_args_checked_test: CompileTimeError
+caching_test: CompileTimeError
+causal_async_stack_contents_test: CompileTimeError
+causal_async_stack_presence_test: CompileTimeError
+causal_async_star_stack_contents_test: CompileTimeError
+causal_async_star_stack_presence_test: CompileTimeError
+code_test: CompileTimeError
+collect_all_garbage_test: CompileTimeError
+command_test: CompileTimeError
+contexts_test: CompileTimeError
+coverage_leaf_function_test: CompileTimeError
+coverage_optimized_function_test: CompileTimeError
+crash_dump_test: CompileTimeError
+debugger_inspect_test: CompileTimeError
+debugger_location_second_test: CompileTimeError
+debugger_location_test: CompileTimeError
+debugging_inlined_finally_test: CompileTimeError
+debugging_test: CompileTimeError
+dev_fs_http_put_test: CompileTimeError
+dev_fs_http_put_weird_char_test: CompileTimeError
+dev_fs_spawn_test: CompileTimeError
+dev_fs_test: CompileTimeError
+dev_fs_uri_test: CompileTimeError
+dev_fs_weird_char_test: CompileTimeError
+developer_server_control_test: CompileTimeError
+developer_service_get_isolate_id_test: CompileTimeError
+dominator_tree_user_test: CompileTimeError
+dominator_tree_vm_test: CompileTimeError
+echo_test: CompileTimeError
+eval_test: CompileTimeError
+external_service_asynchronous_invocation_test: CompileTimeError
+external_service_disappear_test: CompileTimeError
+external_service_notification_invocation_test: CompileTimeError
+external_service_registration_test: CompileTimeError
+external_service_registration_via_notification_test: CompileTimeError
+external_service_synchronous_invocation_test: CompileTimeError
+field_script_test: CompileTimeError
+file_service_test: CompileTimeError
+gc_test: CompileTimeError
+get_allocation_profile_rpc_test: CompileTimeError
+get_allocation_samples_test: CompileTimeError
+get_cpu_profile_timeline_rpc_test: CompileTimeError
+get_flag_list_rpc_test: CompileTimeError
+get_heap_map_rpc_test: CompileTimeError
+get_instances_rpc_test: CompileTimeError
+get_isolate_after_async_error_test: CompileTimeError
+get_isolate_after_stack_overflow_error_test: CompileTimeError
+get_isolate_after_sync_error_test: CompileTimeError
+get_isolate_rpc_test: CompileTimeError
+get_object_rpc_test: CompileTimeError
+get_object_store_rpc_test: CompileTimeError
+get_ports_rpc_test: CompileTimeError
+get_retained_size_rpc_test: CompileTimeError
+get_retaining_path_rpc_test: CompileTimeError
+get_source_report_test: CompileTimeError
+get_stack_rpc_test: CompileTimeError
+get_user_level_retaining_path_rpc_test: CompileTimeError
+get_version_rpc_test: CompileTimeError
+get_vm_rpc_test: CompileTimeError
+get_vm_timeline_rpc_test: CompileTimeError
+get_zone_memory_info_rpc_test: CompileTimeError
+implicit_getter_setter_test: CompileTimeError
+inbound_references_test: CompileTimeError
+instance_field_order_rpc_test: CompileTimeError
+isolate_lifecycle_test: CompileTimeError
+issue_25465_test: CompileTimeError
+issue_27238_test: CompileTimeError
+issue_27287_test: CompileTimeError
+issue_30555_test: CompileTimeError
+local_variable_declaration_test: CompileTimeError
+logging_test: CompileTimeError
+malformed_test: CompileTimeError
+metrics_test: CompileTimeError
+mirror_references_test: CompileTimeError
+mixin_break_test: CompileTimeError
+native_metrics_test: CompileTimeError
+next_through_assign_call_test: CompileTimeError
+next_through_assign_int_test: CompileTimeError
+next_through_call_on_field_in_class_test: CompileTimeError
+next_through_call_on_field_test: CompileTimeError
+next_through_call_on_static_field_in_class_test: CompileTimeError
+next_through_catch_test: CompileTimeError
+next_through_closure_test: CompileTimeError
+next_through_create_list_and_map_test: CompileTimeError
+next_through_for_each_loop_test: CompileTimeError
+next_through_for_loop_with_break_and_continue_test: CompileTimeError
+next_through_function_expression_test: CompileTimeError
+next_through_is_and_as_test: CompileTimeError
+next_through_multi_catch_test: CompileTimeError
+next_through_new_test: CompileTimeError
+next_through_operator_bracket_on_super_test: CompileTimeError
+next_through_operator_bracket_on_this_test: CompileTimeError
+next_through_operator_bracket_test: CompileTimeError
+next_through_simple_async_with_returns_test: CompileTimeError
+next_through_simple_linear_2_test: CompileTimeError
+next_through_simple_linear_test: CompileTimeError
+object_graph_stack_reference_test: CompileTimeError
+object_graph_user_test: CompileTimeError
+object_graph_vm_test: CompileTimeError
+observatory_assets_test: CompileTimeError
+parameters_in_scope_at_entry_test: CompileTimeError
+pause_idle_isolate_test: CompileTimeError
+pause_on_exceptions_test: CompileTimeError
+pause_on_start_and_exit_test: CompileTimeError
+pause_on_start_then_step_test: CompileTimeError
+pause_on_unhandled_async_exceptions2_test: CompileTimeError
+pause_on_unhandled_async_exceptions_test: CompileTimeError
+pause_on_unhandled_exceptions_test: CompileTimeError
+positive_token_pos_test: CompileTimeError
+process_service_test: CompileTimeError
+reachable_size_test: CompileTimeError
+read_stream_test: CompileTimeError
+regexp_function_test: CompileTimeError
+regress_28443_test: CompileTimeError
+regress_28980_test: CompileTimeError
+reload_sources_test: CompileTimeError
+rewind_optimized_out_test: CompileTimeError
+rewind_test: CompileTimeError
+set_library_debuggable_rpc_test: CompileTimeError
+set_library_debuggable_test: CompileTimeError
+set_name_rpc_test: CompileTimeError
+set_vm_name_rpc_test: CompileTimeError
+steal_breakpoint_test: CompileTimeError
+step_into_async_no_await_test: CompileTimeError
+step_over_await_test: CompileTimeError
+step_test: CompileTimeError
+step_through_arithmetic_test: CompileTimeError
+step_through_constructor_calls_test: CompileTimeError
+step_through_function_2_test: CompileTimeError
+step_through_function_test: CompileTimeError
+step_through_getter_test: CompileTimeError
+step_through_property_get_test: CompileTimeError
+step_through_property_set_test: CompileTimeError
+step_through_setter_test: CompileTimeError
+step_through_switch_test: CompileTimeError
+step_through_switch_with_continue_test: CompileTimeError
+string_escaping_test: CompileTimeError
+tcp_socket_closing_service_test: CompileTimeError
+tcp_socket_service_test: CompileTimeError
+type_arguments_test: CompileTimeError
+typed_data_test: CompileTimeError
+udp_socket_service_test: CompileTimeError
+vm_test: CompileTimeError
+vm_timeline_events_test: CompileTimeError
+vm_timeline_flags_test: CompileTimeError
+weak_properties_test: CompileTimeError
+
diff --git a/runtime/tests/vm/vm.status b/runtime/tests/vm/vm.status
index 05d9029..aca128cd 100644
--- a/runtime/tests/vm/vm.status
+++ b/runtime/tests/vm/vm.status
@@ -1,151 +1,27 @@
# 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.
-
-cc/IsolateReload_PendingUnqualifiedCall_InstanceToStatic: SkipSlow # Issue 28198
-cc/IsolateReload_PendingUnqualifiedCall_StaticToInstance: SkipSlow # Issue 28198
+cc/AllocGeneric_Overflow: Crash, Fail # These tests are expected to crash on all platforms.
+cc/ArrayNew_Overflow_Crash: Crash, Fail # These tests are expected to crash on all platforms.
+cc/CodeImmutability: Crash, Fail # These tests are expected to crash on all platforms.
+cc/Dart2JSCompileAll: Fail, Crash # Issue 27369
+cc/Dart2JSCompilerStats: Fail, Crash # Issue 27369
+cc/Fail0: Fail # These tests are expected to crash on all platforms.
+cc/Fail1: Fail # These tests are expected to crash on all platforms.
+cc/Fail2: Fail # These tests are expected to crash on all platforms.
cc/IsolateReload_PendingConstructorCall_AbstractToConcrete: SkipSlow # Issue 28198
cc/IsolateReload_PendingConstructorCall_ConcreteToAbstract: SkipSlow # Issue 28198
cc/IsolateReload_PendingStaticCall_DefinedToNSM: SkipSlow # Issue 28198
cc/IsolateReload_PendingStaticCall_NSMToDefined: SkipSlow # Issue 28198
-
-cc/ArrayNew_Overflow_Crash: Crash, Fail # These tests are expected to crash on all platforms.
-cc/AllocGeneric_Overflow: Crash, Fail # These tests are expected to crash on all platforms.
-cc/CodeImmutability: Crash, Fail # These tests are expected to crash on all platforms.
-cc/SNPrint_BadArgs: Crash, Fail # These tests are expected to crash on all platforms.
-cc/Fail0: Fail # These tests are expected to crash on all platforms.
-cc/Fail1: Fail # These tests are expected to crash on all platforms.
-cc/Fail2: Fail # These tests are expected to crash on all platforms.
-
-cc/Dart2JSCompileAll: Fail, Crash # Issue 27369
-cc/Dart2JSCompilerStats: Fail, Crash # Issue 27369
-
+cc/IsolateReload_PendingUnqualifiedCall_InstanceToStatic: SkipSlow # Issue 28198
+cc/IsolateReload_PendingUnqualifiedCall_StaticToInstance: SkipSlow # Issue 28198
cc/Profiler_InliningIntervalBoundry: Skip # Differences in ia32, debug, release
-
+cc/SNPrint_BadArgs: Crash, Fail # These tests are expected to crash on all platforms.
cc/Sleep: Skip # Flaky # Flaky on buildbot. Issue 5133 and 10409.
-
dart/data_uri_import_test/none: SkipByDesign
-[ $mode == debug ]
-cc/CorelibIsolateStartup: Skip # This is a benchmark that is not informative in debug mode.
-cc/VerifyImplicit_Crash: Crash # Negative tests of VerifiedMemory should crash iff in DEBUG mode. TODO(koda): Improve support for negative tests.
-cc/VerifyExplicit_Crash: Crash # Negative tests of VerifiedMemory should crash iff in DEBUG mode. TODO(koda): Improve support for negative tests.
-dart/spawn_shutdown_test: Pass, Slow # VM Shutdown test, It can take some time for all the isolates to shutdown in a Debug build.
-
-[ $system == windows ]
-cc/Service_Profile: Skip
-cc/CorelibCompilerStats: Skip
-
-[ $system == windows && $arch == x64 ]
-cc/Profiler_IntrinsicAllocation: Pass, Fail # Issue 31137
-cc/Profiler_ClosureAllocation: Pass, Fail # Issue 31137
-cc/Profiler_StringAllocation: Pass, Fail # Issue 31137
-cc/Profiler_TypedArrayAllocation: Pass, Fail # Issue 31137
-cc/Profiler_SourcePositionOptimized: Pass, Fail # Issue 31137
-cc/Profiler_BinaryOperatorSourcePositionOptimized: Pass, Fail # Issue 31137
-
-[ $system == fuchsia ]
-dart/spawn_shutdown_test: Skip # OOM crash can bring down the OS.
-cc/CorelibIsolateStartup: Skip # OOM crash can bring down the OS.
-dart/data_uri_spawn_test: Skip # TODO(zra): package:unittest is not in the image.
-cc/Read: Fail # TODO(zra): Investigate, ../../dart/runtime/bin/file_test.cc: 34: error: expected: !file->WriteByte(1)
-
-# Profiler is completely disabled in SIMDBC builds.
-# On the simluator stack traces produced by the Profiler do not match
-# up with the real Dart stack trace and hence we don't get correct
-# symbol names.
-[ $arch == simarm || $arch == simarmv6 || $arch == simarmv5te || $arch == simarm64 || $arch == simdbc || $arch == simdbc64 ]
-cc/Service_Profile: Skip
-cc/Profiler_AllocationSampleTest: Skip
-cc/Profiler_ArrayAllocation: Skip
-cc/Profiler_BasicSourcePosition: Skip
-cc/Profiler_BasicSourcePositionOptimized: Skip
-cc/Profiler_BinaryOperatorSourcePosition: Skip
-cc/Profiler_BinaryOperatorSourcePositionOptimized: Skip
-cc/Profiler_ChainedSamples: Skip
-cc/Profiler_ClosureAllocation: Skip
-cc/Profiler_CodeTicks: Skip
-cc/Profiler_ContextAllocation: Skip
-cc/Profiler_FunctionInline: Skip
-cc/Profiler_FunctionTicks: Skip
-cc/Profiler_InliningIntervalBoundry: Skip
-cc/Profiler_IntrinsicAllocation: Skip
-cc/Profiler_SampleBufferIterateTest: Skip
-cc/Profiler_SampleBufferWrapTest: Skip
-cc/Profiler_SourcePosition: Skip
-cc/Profiler_SourcePositionOptimized: Skip
-cc/Profiler_StringAllocation: Skip
-cc/Profiler_StringInterpolation: Skip
-cc/Profiler_ToggleRecordAllocation: Skip
-cc/Profiler_TrivialRecordAllocation: Skip
-cc/Profiler_TypedArrayAllocation: Skip
-cc/Profiler_GetSourceReport: Skip
-cc/LargeMap: Skip
-
-# Following tests are failing in a weird way on macos/ia32/debug builds
-# need to investigate.
-[ $runtime == vm && $mode == debug && $arch == ia32 && $system == macos ]
-cc/Profiler_TrivialRecordAllocation: Skip
-cc/Profiler_ToggleRecordAllocation: Skip
-cc/Profiler_FunctionTicks: Skip
-cc/Profiler_CodeTicks: Skip
-cc/Profiler_IntrinsicAllocation: Skip
-cc/Profiler_ArrayAllocation: Skip
-cc/Profiler_ContextAllocation: Skip
-cc/Profiler_ClosureAllocation: Skip
-cc/Profiler_TypedArrayAllocation: Skip
-cc/Profiler_StringAllocation: Skip
-cc/Profiler_StringInterpolation: Skip
-cc/Profiler_BasicSourcePosition: Skip
-cc/Profiler_BasicSourcePositionOptimized: Skip
-cc/Profiler_ChainedSamples: Skip
-cc/Profiler_FunctionInline: Skip
-cc/Profiler_SourcePosition: Skip
-cc/Profiler_SourcePositionOptimized: Skip
-cc/Profiler_BinaryOperatorSourcePosition: Skip
-cc/Profiler_BinaryOperatorSourcePositionOptimized: Skip
-
-[ $compiler == none && $runtime == drt ]
-dart/truncating_ints_test: Skip # Issue 14651
-
-[ $compiler == dart2js ]
-dart/redirection_type_shuffling_test: Skip # Depends on lazy enforcement of type bounds
-dart/byte_array_test: Skip # compilers not aware of byte arrays
-dart/byte_array_optimized_test: Skip # compilers not aware of byte arrays
-dart/simd128float32_array_test: Skip # compilers not aware of Simd128
-dart/simd128float32_test: Skip # compilers not aware of Simd128
-dart/truncating_ints_test: Skip # dart2js doesn't know about --limit-ints-to-64-bits
-
-[ $compiler == dart2js ]
-dart/optimized_stacktrace_line_test: RuntimeError # The source positions do not match with dart2js.
-dart/optimized_stacktrace_line_and_column_test: RuntimeError # The source positions do not match with dart2js.
-
-dart/inline_stack_frame_test: Skip # Issue 7953, Methods can be missing in dart2js stack traces due to inlining. Also when minifying they can be renamed, which is issue 7953.
-
-[ $compiler == dart2js || $compiler == dart2analyzer ]
-dart/data_uri*test: Skip # Data uri's not supported by dart2js or the analyzer.
-
-[ $compiler == dart2analyzer ]
-dart/optimized_stacktrace_line_test: StaticWarning
-dart/optimized_stacktrace_line_and_column_test: StaticWarning
-
-[ $compiler == dart2analyzer && $builder_tag == strong ]
-*: Skip # Issue 28649
-
-[ $compiler == app_jit ]
-dart/snapshot_version_test: Fail,OK # Expects to find script snapshot relative to Dart source.
-
-[ $runtime != vm ]
-dart/snapshot_version_test: SkipByDesign # Spawns processes
-dart/spawn_infinite_loop_test: Skip # VM shutdown test
-dart/spawn_shutdown_test: Skip # VM Shutdown test
-dart/hello_fuchsia_test: SkipByDesign # This is a test for fuchsia OS
-
-[ ($runtime == vm || $runtime == dart_precompiled) && $mode == debug && $builder_tag == asan ]
-cc/Dart2JSCompileAll: SkipSlow # Timeout.
-
[ $builder_tag == asan ]
-cc/CodeImmutability: Fail,OK # Address Sanitizer turns a crash into a failure.
+cc/CodeImmutability: Fail, OK # Address Sanitizer turns a crash into a failure.
cc/IsolateReload_DanglingGetter_Class: Fail # Issue 28349
cc/IsolateReload_DanglingGetter_Instance: Fail # Issue 28349
cc/IsolateReload_DanglingGetter_Library: Fail # Issue 28349
@@ -155,8 +31,8 @@
cc/IsolateReload_LiveStack: Fail # Issue 28349
cc/IsolateReload_PendingSuperCall: Fail # Issue 28349
cc/IsolateReload_SmiFastPathStubs: Fail # Issue 28349
-cc/IsolateReload_TearOff_AddArguments2: Fail # Issue 28349
cc/IsolateReload_TearOff_AddArguments: Fail # Issue 28349
+cc/IsolateReload_TearOff_AddArguments2: Fail # Issue 28349
cc/IsolateReload_TearOff_Class_Identity: Fail # Issue 28349
cc/IsolateReload_TearOff_Instance_Equality: Fail # Issue 28349
cc/IsolateReload_TearOff_Library_Identity: Fail # Issue 28349
@@ -165,62 +41,112 @@
cc/IsolateReload_TypeIdentityGeneric: Fail # Issue 28349
cc/IsolateReload_TypeIdentityParameter: Fail # Issue 28349
-[ $compiler == precompiler ]
-dart/byte_array_test: Skip # Incompatible flag --disable_alloc_stubs_after_gc
-
-[ $compiler == precompiler || $mode == product ]
-dart/redirection_type_shuffling_test: SkipByDesign # Imports dart:mirrors
-cc/CreateMirrorSystem: SkipByDesign # Imports dart:mirrors
-cc/CoreSnapshotSize: SkipByDesign # Imports dart:mirrors
-cc/StandaloneSnapshotSize: SkipByDesign # Imports dart:mirrors
-
[ $compiler == app_jit ]
-dart/optimized_stacktrace_line_and_column_test: RuntimeError,OK # app-jit lacks column information
+dart/optimized_stacktrace_line_and_column_test: RuntimeError, OK # app-jit lacks column information
+dart/snapshot_version_test: Fail, OK # Expects to find script snapshot relative to Dart source.
-[ $runtime == dart_precompiled ]
-dart/optimized_stacktrace_line_and_column_test: RuntimeError,OK # AOT lacks column information
-dart/data_uri_spawn_test: SkipByDesign # Isolate.spawnUri
+[ $compiler == dart2analyzer ]
+dart/optimized_stacktrace_line_and_column_test: StaticWarning
+dart/optimized_stacktrace_line_test: StaticWarning
-[ $runtime == vm && $mode == product ]
-cc/DartAPI_IsolateSetCheckedMode: Fail,OK # Checked mode disabled in product mode.
+[ $compiler == dart2js ]
+dart/byte_array_optimized_test: Skip # compilers not aware of byte arrays
+dart/byte_array_test: Skip # compilers not aware of byte arrays
+dart/inline_stack_frame_test: Skip # Issue 7953, Methods can be missing in dart2js stack traces due to inlining. Also when minifying they can be renamed, which is issue 7953.
+dart/optimized_stacktrace_line_and_column_test: RuntimeError # The source positions do not match with dart2js.
+dart/optimized_stacktrace_line_test: RuntimeError # The source positions do not match with dart2js.
+dart/redirection_type_shuffling_test: Skip # Depends on lazy enforcement of type bounds
+dart/simd128float32_array_test: Skip # compilers not aware of Simd128
+dart/simd128float32_test: Skip # compilers not aware of Simd128
+dart/truncating_ints_test: Skip # dart2js doesn't know about --limit-ints-to-64-bits
-[ $arch == simdbc || $arch == simdbc64 ]
-cc/RegExp_ExternalOneByteString: Skip # TODO(vegorov) These tests don't seem to work if FLAG_interpret_irregexp is switched on by default because they attempt to call regexp functions directly instead of going through JSSyntaxRegExp_ExecuteMatch.
-cc/RegExp_ExternalTwoByteString: Skip # TODO(vegorov) These tests don't seem to work if FLAG_interpret_irregexp is switched on by default because they attempt to call regexp functions directly instead of going through JSSyntaxRegExp_ExecuteMatch.
-cc/RegExp_OneByteString: Skip # TODO(vegorov) These tests don't seem to work if FLAG_interpret_irregexp is switched on by default because they attempt to call regexp functions directly instead of going through JSSyntaxRegExp_ExecuteMatch.
-cc/RegExp_TwoByteString: Skip # TODO(vegorov) These tests don't seem to work if FLAG_interpret_irregexp is switched on by default because they attempt to call regexp functions directly instead of going through JSSyntaxRegExp_ExecuteMatch.
-
-cc/GuardFieldConstructor2Test: Skip # TODO(vegorov) Field guards are disabled for SIMDBC
-cc/GuardFieldConstructorTest: Skip # TODO(vegorov) Field guards are disabled for SIMDBC
-cc/GuardFieldFinalListTest: Skip # TODO(vegorov) Field guards are disabled for SIMDBC
-cc/GuardFieldFinalVariableLengthListTest: Skip # TODO(vegorov) Field guards are disabled for SIMDBC
-cc/GuardFieldSimpleTest: Skip # TODO(vegorov) Field guards are disabled for SIMDBC
-
-cc/RegenerateAllocStubs: Skip # This test is meaningless for DBC as allocation stubs are not used.
-
-[ $hot_reload || $hot_reload_rollback ]
-dart/spawn_shutdown_test: Skip # We can shutdown an isolate before it reloads.
-dart/spawn_infinite_loop_test: Skip # We can shutdown an isolate before it reloads.
-
-
-[ ($compiler == dartkp) && ($runtime == vm || $runtime == dart_precompiled) ]
-dart/data_uri_import_test/base64: CompileTimeError
-dart/data_uri_import_test/nocharset: CompileTimeError
-dart/data_uri_import_test/nomime: CompileTimeError
-dart/data_uri_import_test/percentencoded: CompileTimeError
-dart/data_uri_import_test/wrongmime: CompileTimeError
-dart/data_uri_spawn_test: RuntimeError
-dart/redirection_type_shuffling_test: SkipByDesign # Includes dart:mirrors.
-dart/spawn_shutdown_test: SkipSlow
-
-[ ($compiler != dartk) ]
+[ $compiler != dartk ]
cc/IsolateReload_KernelIncrementalCompile: Skip
cc/IsolateReload_KernelIncrementalCompileAppAndLib: Skip
cc/IsolateReload_KernelIncrementalCompileGenerics: Skip
cc/Mixin_PrivateSuperResolution: Skip
cc/Mixin_PrivateSuperResolutionCrossLibraryShouldFail: Skip
-[ ($compiler == dartk) && ($runtime == vm) ]
+[ $compiler == dartkp ]
+dart/truncating_ints_test: CompileTimeError # Issue 31339
+
+[ $compiler == precompiler ]
+dart/byte_array_test: Skip # Incompatible flag --disable_alloc_stubs_after_gc
+
+[ $mode == debug ]
+cc/CorelibIsolateStartup: Skip # This is a benchmark that is not informative in debug mode.
+cc/VerifyExplicit_Crash: Crash # Negative tests of VerifiedMemory should crash iff in DEBUG mode. TODO(koda): Improve support for negative tests.
+cc/VerifyImplicit_Crash: Crash # Negative tests of VerifiedMemory should crash iff in DEBUG mode. TODO(koda): Improve support for negative tests.
+dart/spawn_shutdown_test: Pass, Slow # VM Shutdown test, It can take some time for all the isolates to shutdown in a Debug build.
+
+[ $runtime == dart_precompiled ]
+dart/data_uri_spawn_test: SkipByDesign # Isolate.spawnUri
+dart/optimized_stacktrace_line_and_column_test: RuntimeError, OK # AOT lacks column information
+
+[ $runtime != vm ]
+dart/hello_fuchsia_test: SkipByDesign # This is a test for fuchsia OS
+dart/snapshot_version_test: SkipByDesign # Spawns processes
+dart/spawn_infinite_loop_test: Skip # VM shutdown test
+dart/spawn_shutdown_test: Skip # VM Shutdown test
+
+[ $system == fuchsia ]
+cc/CorelibIsolateStartup: Skip # OOM crash can bring down the OS.
+cc/Read: Fail # TODO(zra): Investigate, ../../dart/runtime/bin/file_test.cc: 34: error: expected: !file->WriteByte(1)
+dart/data_uri_spawn_test: Skip # TODO(zra): package:unittest is not in the image.
+dart/spawn_shutdown_test: Skip # OOM crash can bring down the OS.
+
+[ $system == windows ]
+cc/CorelibCompilerStats: Skip
+cc/Service_Profile: Skip
+
+# Following tests are failing in a weird way on macos/ia32/debug builds
+# need to investigate.
+[ $arch == ia32 && $mode == debug && $runtime == vm && $system == macos ]
+cc/Profiler_ArrayAllocation: Skip
+cc/Profiler_BasicSourcePosition: Skip
+cc/Profiler_BasicSourcePositionOptimized: Skip
+cc/Profiler_BinaryOperatorSourcePosition: Skip
+cc/Profiler_BinaryOperatorSourcePositionOptimized: Skip
+cc/Profiler_ChainedSamples: Skip
+cc/Profiler_ClosureAllocation: Skip
+cc/Profiler_CodeTicks: Skip
+cc/Profiler_ContextAllocation: Skip
+cc/Profiler_FunctionInline: Skip
+cc/Profiler_FunctionTicks: Skip
+cc/Profiler_IntrinsicAllocation: Skip
+cc/Profiler_SourcePosition: Skip
+cc/Profiler_SourcePositionOptimized: Skip
+cc/Profiler_StringAllocation: Skip
+cc/Profiler_StringInterpolation: Skip
+cc/Profiler_ToggleRecordAllocation: Skip
+cc/Profiler_TrivialRecordAllocation: Skip
+cc/Profiler_TypedArrayAllocation: Skip
+
+[ $arch == x64 && $system == windows ]
+cc/Profiler_BinaryOperatorSourcePositionOptimized: Pass, Fail # Issue 31137
+cc/Profiler_ClosureAllocation: Pass, Fail # Issue 31137
+cc/Profiler_IntrinsicAllocation: Pass, Fail # Issue 31137
+cc/Profiler_SourcePositionOptimized: Pass, Fail # Issue 31137
+cc/Profiler_StringAllocation: Pass, Fail # Issue 31137
+cc/Profiler_TypedArrayAllocation: Pass, Fail # Issue 31137
+
+[ $builder_tag == asan && $mode == debug && ($runtime == dart_precompiled || $runtime == vm) ]
+cc/Dart2JSCompileAll: SkipSlow # Timeout.
+
+[ $builder_tag == strong && $compiler == dart2analyzer ]
+*: Skip # Issue 28649
+
+[ $compiler == dartk && $mode == debug && $runtime == vm ]
+cc/InjectNativeFields1: Crash
+cc/InjectNativeFields3: Crash
+cc/Service_TokenStream: Crash
+
+[ $compiler == dartk && $mode == release && $runtime == vm ]
+cc/InjectNativeFields1: Fail
+cc/InjectNativeFields3: Fail
+cc/Service_TokenStream: Fail
+
+[ $compiler == dartk && $runtime == vm ]
cc/CanonicalizationInScriptSnapshots: Fail
cc/Class_ComputeEndTokenPos: Crash
cc/DartAPI_CurrentStackTraceInfo: Fail
@@ -229,8 +155,8 @@
cc/DartAPI_InjectNativeFields3: Crash
cc/DartAPI_InjectNativeFields4: Crash
cc/DartAPI_InjectNativeFieldsSuperClass: Crash
-cc/DartAPI_Invoke_CrossLibrary: Crash
cc/DartAPI_InvokeNoSuchMethod: Fail
+cc/DartAPI_Invoke_CrossLibrary: Crash
cc/DartAPI_IsolateShutdownRunDartCode: Skip # Flaky
cc/DartAPI_LazyLoadDeoptimizes: Fail
cc/DartAPI_LoadLibrary: Crash
@@ -247,9 +173,9 @@
cc/DartAPI_New: Crash
cc/DartAPI_ParsePatchLibrary: Crash
cc/DartAPI_PropagateError: Fail
+cc/DartAPI_StackOverflowStackTraceInfoArrowFunction: Fail
cc/DartAPI_StackOverflowStackTraceInfoBraceFunction1: Fail
cc/DartAPI_StackOverflowStackTraceInfoBraceFunction2: Fail
-cc/DartAPI_StackOverflowStackTraceInfoArrowFunction: Fail
cc/DartAPI_TestNativeFieldsAccess: Crash
cc/DartAPI_TypeGetParameterizedTypes: Crash
cc/DebuggerAPI_BreakpointStubPatching: Fail
@@ -263,12 +189,12 @@
cc/Debugger_SetBreakpointInPartOfLibrary: Crash
cc/FunctionSourceFingerprint: Fail
cc/IsolateReload_BadClass: Fail
-cc/IsolateReload_ClassFieldAdded: Skip # Crash, Timeout
-cc/IsolateReload_ClassFieldAdded2: Skip # Crash, Timeout
cc/IsolateReload_ChangeInstanceFormat1: Skip
cc/IsolateReload_ChangeInstanceFormat3: Skip
cc/IsolateReload_ChangeInstanceFormat7: Skip
cc/IsolateReload_ChangeInstanceFormat8: Skip
+cc/IsolateReload_ClassFieldAdded: Skip # Crash, Timeout
+cc/IsolateReload_ClassFieldAdded2: Skip # Crash, Timeout
cc/IsolateReload_DanglingGetter_Class: Fail
cc/IsolateReload_DanglingGetter_Instance: Fail
cc/IsolateReload_DanglingGetter_Library: Fail
@@ -302,8 +228,8 @@
cc/IsolateReload_RunNewFieldInitializersWithConsts: Skip
cc/IsolateReload_ShapeChangeRetainsHash: Skip
cc/IsolateReload_SmiFastPathStubs: Fail
-cc/IsolateReload_TearOff_AddArguments2: Fail
cc/IsolateReload_TearOff_AddArguments: Fail
+cc/IsolateReload_TearOff_AddArguments2: Fail
cc/IsolateReload_TearOff_Class_Identity: Fail
cc/IsolateReload_TearOff_Instance_Equality: Fail
cc/IsolateReload_TearOff_Library_Identity: Fail
@@ -319,13 +245,13 @@
cc/Parser_AllocateVariables_MiddleChain: Fail
cc/Parser_AllocateVariables_NestedCapturedVar: Fail
cc/Parser_AllocateVariables_TwoChains: Fail
-cc/Profiler_SourcePositionOptimized: Fail
cc/Profiler_BasicSourcePositionOptimized: Skip
cc/Profiler_BinaryOperatorSourcePositionOptimized: Skip
cc/Profiler_GetSourceReport: Fail
+cc/Profiler_SourcePositionOptimized: Fail
cc/Profiler_SourcePositionOptimized: Skip
-cc/ScriptSnapshot2: Crash
cc/ScriptSnapshot: Crash
+cc/ScriptSnapshot2: Crash
cc/SourcePosition_Async: Crash
cc/SourcePosition_BitwiseOperations: Crash
cc/SourcePosition_ForLoop: Crash
@@ -365,17 +291,7 @@
dart/redirection_type_shuffling_test/none: Crash
dart/spawn_shutdown_test: SkipSlow
-[ ($compiler == dartk) && ($runtime == vm) && ($mode == release) ]
-cc/InjectNativeFields1: Fail
-cc/InjectNativeFields3: Fail
-cc/Service_TokenStream: Fail
-
-[ ($compiler == dartk) && ($runtime == vm) && ($mode == debug) ]
-cc/InjectNativeFields1: Crash
-cc/InjectNativeFields3: Crash
-cc/Service_TokenStream: Crash
-
-[ ($compiler == dartk) && ($runtime == vm) && ($system == macos) ]
+[ $compiler == dartk && $runtime == vm && $system == macos ]
cc/IsolateReload_DanglingGetter_Class: Crash
cc/IsolateReload_DanglingGetter_Instance: Crash
cc/IsolateReload_DanglingGetter_Library: Crash
@@ -384,8 +300,8 @@
cc/IsolateReload_DanglingSetter_Library: Crash
cc/IsolateReload_EnumDelete: Crash
cc/IsolateReload_LibraryLookup: Crash
-cc/IsolateReload_TearOff_AddArguments2: Crash
cc/IsolateReload_TearOff_AddArguments: Crash
+cc/IsolateReload_TearOff_AddArguments2: Crash
cc/IsolateReload_TearOff_Class_Identity: Crash
cc/IsolateReload_TearOff_Instance_Equality: Crash
cc/IsolateReload_TearOff_Library_Identity: Crash
@@ -399,10 +315,86 @@
cc/Parser_AllocateVariables_NestedCapturedVar: Crash
cc/Parser_AllocateVariables_TwoChains: Crash
+[ $compiler == dartk && $strong ]
+dart/data_uri_spawn_test: CompileTimeError # Issue 31586
+dart/hello_fuchsia_test: RuntimeError
+dart/optimized_stacktrace_line_and_column_test: CompileTimeError # Issue 31586
+dart/optimized_stacktrace_line_test: CompileTimeError # Issue 31586
+
+[ $compiler == dartkp && ($runtime == dart_precompiled || $runtime == vm) ]
+dart/data_uri_import_test/base64: CompileTimeError
+dart/data_uri_import_test/nocharset: CompileTimeError
+dart/data_uri_import_test/nomime: CompileTimeError
+dart/data_uri_import_test/percentencoded: CompileTimeError
+dart/data_uri_import_test/wrongmime: CompileTimeError
+dart/data_uri_spawn_test: RuntimeError
+dart/redirection_type_shuffling_test: SkipByDesign # Includes dart:mirrors.
+dart/spawn_shutdown_test: SkipSlow
+
+[ $compiler == none && $runtime == drt ]
+dart/truncating_ints_test: Skip # Issue 14651
+
+[ $mode == product && $runtime == vm ]
+cc/DartAPI_IsolateSetCheckedMode: Fail, OK # Checked mode disabled in product mode.
+
[ $runtime == dart_precompiled && $minified ]
dart/inline_stack_frame_test: Skip
dart/optimized_stacktrace_line_test: Skip
+# Profiler is completely disabled in SIMDBC builds.
+# On the simluator stack traces produced by the Profiler do not match
+# up with the real Dart stack trace and hence we don't get correct
+# symbol names.
+[ $arch == simarm || $arch == simarm64 || $arch == simarmv5te || $arch == simarmv6 || $arch == simdbc || $arch == simdbc64 ]
+cc/LargeMap: Skip
+cc/Profiler_AllocationSampleTest: Skip
+cc/Profiler_ArrayAllocation: Skip
+cc/Profiler_BasicSourcePosition: Skip
+cc/Profiler_BasicSourcePositionOptimized: Skip
+cc/Profiler_BinaryOperatorSourcePosition: Skip
+cc/Profiler_BinaryOperatorSourcePositionOptimized: Skip
+cc/Profiler_ChainedSamples: Skip
+cc/Profiler_ClosureAllocation: Skip
+cc/Profiler_CodeTicks: Skip
+cc/Profiler_ContextAllocation: Skip
+cc/Profiler_FunctionInline: Skip
+cc/Profiler_FunctionTicks: Skip
+cc/Profiler_GetSourceReport: Skip
+cc/Profiler_InliningIntervalBoundry: Skip
+cc/Profiler_IntrinsicAllocation: Skip
+cc/Profiler_SampleBufferIterateTest: Skip
+cc/Profiler_SampleBufferWrapTest: Skip
+cc/Profiler_SourcePosition: Skip
+cc/Profiler_SourcePositionOptimized: Skip
+cc/Profiler_StringAllocation: Skip
+cc/Profiler_StringInterpolation: Skip
+cc/Profiler_ToggleRecordAllocation: Skip
+cc/Profiler_TrivialRecordAllocation: Skip
+cc/Profiler_TypedArrayAllocation: Skip
+cc/Service_Profile: Skip
-[ ($compiler == dartkp) ]
-dart/truncating_ints_test: CompileTimeError # Issue 31339
+[ $arch == simdbc || $arch == simdbc64 ]
+cc/GuardFieldConstructor2Test: Skip # TODO(vegorov) Field guards are disabled for SIMDBC
+cc/GuardFieldConstructorTest: Skip # TODO(vegorov) Field guards are disabled for SIMDBC
+cc/GuardFieldFinalListTest: Skip # TODO(vegorov) Field guards are disabled for SIMDBC
+cc/GuardFieldFinalVariableLengthListTest: Skip # TODO(vegorov) Field guards are disabled for SIMDBC
+cc/GuardFieldSimpleTest: Skip # TODO(vegorov) Field guards are disabled for SIMDBC
+cc/RegExp_ExternalOneByteString: Skip # TODO(vegorov) These tests don't seem to work if FLAG_interpret_irregexp is switched on by default because they attempt to call regexp functions directly instead of going through JSSyntaxRegExp_ExecuteMatch.
+cc/RegExp_ExternalTwoByteString: Skip # TODO(vegorov) These tests don't seem to work if FLAG_interpret_irregexp is switched on by default because they attempt to call regexp functions directly instead of going through JSSyntaxRegExp_ExecuteMatch.
+cc/RegExp_OneByteString: Skip # TODO(vegorov) These tests don't seem to work if FLAG_interpret_irregexp is switched on by default because they attempt to call regexp functions directly instead of going through JSSyntaxRegExp_ExecuteMatch.
+cc/RegExp_TwoByteString: Skip # TODO(vegorov) These tests don't seem to work if FLAG_interpret_irregexp is switched on by default because they attempt to call regexp functions directly instead of going through JSSyntaxRegExp_ExecuteMatch.
+cc/RegenerateAllocStubs: Skip # This test is meaningless for DBC as allocation stubs are not used.
+
+[ $compiler == dart2analyzer || $compiler == dart2js ]
+dart/data_uri*test: Skip # Data uri's not supported by dart2js or the analyzer.
+
+[ $compiler == precompiler || $mode == product ]
+cc/CoreSnapshotSize: SkipByDesign # Imports dart:mirrors
+cc/CreateMirrorSystem: SkipByDesign # Imports dart:mirrors
+cc/StandaloneSnapshotSize: SkipByDesign # Imports dart:mirrors
+dart/redirection_type_shuffling_test: SkipByDesign # Imports dart:mirrors
+
+[ $hot_reload || $hot_reload_rollback ]
+dart/spawn_infinite_loop_test: Skip # We can shutdown an isolate before it reloads.
+dart/spawn_shutdown_test: Skip # We can shutdown an isolate before it reloads.
+
diff --git a/runtime/vm/bootstrap.cc b/runtime/vm/bootstrap.cc
index ae48777..52b7a3b 100644
--- a/runtime/vm/bootstrap.cc
+++ b/runtime/vm/bootstrap.cc
@@ -334,7 +334,10 @@
// The platform binary may contain other libraries (e.g., dart:_builtin or
// dart:io) that will not be bundled with application. Load them now.
- loader.LoadProgram();
+ const Object& result = loader.LoadProgram();
+ if (result.IsError()) {
+ return Error::Cast(result).raw();
+ }
// The builtin library should be registered with the VM.
dart_name = String::New("dart:_builtin");
diff --git a/runtime/vm/bootstrap_nocore.cc b/runtime/vm/bootstrap_nocore.cc
index b61cfd4..2a3e095 100644
--- a/runtime/vm/bootstrap_nocore.cc
+++ b/runtime/vm/bootstrap_nocore.cc
@@ -94,7 +94,10 @@
// The platform binary may contain other libraries (e.g., dart:_builtin or
// dart:io) that will not be bundled with application. Load them now.
- loader.LoadProgram();
+ const Object& result = loader.LoadProgram();
+ if (result.IsError()) {
+ return Error::Cast(result).raw();
+ }
// The builtin library should be registered with the VM.
dart_name = String::New("dart:_builtin");
diff --git a/runtime/vm/class_finalizer.cc b/runtime/vm/class_finalizer.cc
index b3cc56c..e31ae3c 100644
--- a/runtime/vm/class_finalizer.cc
+++ b/runtime/vm/class_finalizer.cc
@@ -506,9 +506,8 @@
ASSERT(!type_class.IsTypedefClass() ||
(type.signature() != Function::null()));
- // Replace FutureOr<T> type of async library with dynamic.
- if ((type_class.library() == Library::AsyncLibrary()) &&
- (type_class.Name() == Symbols::FutureOr().raw())) {
+ // In non-strong mode, replace FutureOr<T> type of async library with dynamic.
+ if (type_class.IsFutureOrClass() && !Isolate::Current()->strong()) {
Type::Cast(type).set_type_class(Class::Handle(Object::dynamic_class()));
type.set_arguments(Object::null_type_arguments());
}
diff --git a/runtime/vm/clustered_snapshot.cc b/runtime/vm/clustered_snapshot.cc
index d8a4e77..50d5082 100644
--- a/runtime/vm/clustered_snapshot.cc
+++ b/runtime/vm/clustered_snapshot.cc
@@ -12,6 +12,7 @@
#include "vm/native_entry.h"
#include "vm/object.h"
#include "vm/object_store.h"
+#include "vm/program_visitor.h"
#include "vm/stub_code.h"
#include "vm/symbols.h"
#include "vm/timeline.h"
@@ -1870,17 +1871,14 @@
objects_.Add(pool);
intptr_t length = pool->ptr()->length_;
- RawTypedData* info_array = pool->ptr()->info_array_;
for (intptr_t i = 0; i < length; i++) {
ObjectPool::EntryType entry_type =
- static_cast<ObjectPool::EntryType>(info_array->ptr()->data()[i]);
+ static_cast<ObjectPool::EntryType>(pool->ptr()->entry_types()[i]);
if (entry_type == ObjectPool::kTaggedObject) {
s->Push(pool->ptr()->data()[i].raw_obj_);
}
}
-
- // TODO(rmacnak): Allocate the object pool and its info array together.
}
void WriteAlloc(Serializer* s) {
@@ -1899,12 +1897,11 @@
intptr_t count = objects_.length();
for (intptr_t i = 0; i < count; i++) {
RawObjectPool* pool = objects_[i];
- RawTypedData* info_array = pool->ptr()->info_array_;
intptr_t length = pool->ptr()->length_;
s->Write<int32_t>(length);
for (intptr_t j = 0; j < length; j++) {
ObjectPool::EntryType entry_type =
- static_cast<ObjectPool::EntryType>(info_array->ptr()->data()[j]);
+ static_cast<ObjectPool::EntryType>(pool->ptr()->entry_types()[j]);
s->Write<int8_t>(entry_type);
RawObjectPool::Entry& entry = pool->ptr()->data()[j];
switch (entry_type) {
@@ -1966,24 +1963,16 @@
void ReadFill(Deserializer* d) {
bool is_vm_object = d->isolate() == Dart::vm_isolate();
- PageSpace* old_space = d->heap()->old_space();
for (intptr_t id = start_index_; id < stop_index_; id += 1) {
intptr_t length = d->Read<int32_t>();
- RawTypedData* info_array = reinterpret_cast<RawTypedData*>(
- AllocateUninitialized(old_space, TypedData::InstanceSize(length)));
- Deserializer::InitializeHeader(info_array, kTypedDataUint8ArrayCid,
- TypedData::InstanceSize(length),
- is_vm_object);
- info_array->ptr()->length_ = Smi::New(length);
RawObjectPool* pool = reinterpret_cast<RawObjectPool*>(d->Ref(id + 0));
Deserializer::InitializeHeader(
pool, kObjectPoolCid, ObjectPool::InstanceSize(length), is_vm_object);
pool->ptr()->length_ = length;
- pool->ptr()->info_array_ = info_array;
for (intptr_t j = 0; j < length; j++) {
ObjectPool::EntryType entry_type =
static_cast<ObjectPool::EntryType>(d->Read<int8_t>());
- info_array->ptr()->data()[j] = entry_type;
+ pool->ptr()->entry_types()[j] = entry_type;
RawObjectPool::Entry& entry = pool->ptr()->data()[j];
switch (entry_type) {
case ObjectPool::kTaggedObject:
@@ -4797,8 +4786,8 @@
num_written_objects_++;
#if defined(SNAPSHOT_BACKTRACE)
- parent_pairs_.Add(&Object::Handle(object));
- parent_pairs_.Add(&Object::Handle(current_parent_));
+ parent_pairs_.Add(&Object::Handle(zone_, object));
+ parent_pairs_.Add(&Object::Handle(zone_, current_parent_));
#endif
}
}
@@ -5553,37 +5542,73 @@
Bootstrap::SetupNativeResolver();
}
-// An object visitor which iterates the heap looking for objects to write into
+// Iterates the program structure looking for objects to write into
// the VM isolate's snapshot, causing them to be shared across isolates.
-class SeedVMIsolateVisitor : public ObjectVisitor {
+// Duplicates will be removed by Serializer::Push.
+class SeedVMIsolateVisitor : public ClassVisitor, public FunctionVisitor {
public:
SeedVMIsolateVisitor(Zone* zone, bool include_code)
: zone_(zone),
include_code_(include_code),
objects_(new (zone) ZoneGrowableArray<Object*>(4 * KB)),
- code_(new (zone) ZoneGrowableArray<Code*>(4 * KB)) {}
+ codes_(new (zone) ZoneGrowableArray<Code*>(4 * KB)),
+ script_(Script::Handle(zone)),
+ code_(Code::Handle(zone)),
+ stack_maps_(Array::Handle(zone)) {}
- void VisitObject(RawObject* obj) {
- if (obj->IsTokenStream()) {
- objects_->Add(&Object::Handle(zone_, obj));
- } else if (include_code_) {
- if (obj->IsStackMap() || obj->IsPcDescriptors() ||
- obj->IsCodeSourceMap()) {
- objects_->Add(&Object::Handle(zone_, obj));
- } else if (obj->IsCode()) {
- code_->Add(&Code::Handle(zone_, Code::RawCast(obj)));
+ void Visit(const Class& cls) {
+ script_ = cls.script();
+ if (!script_.IsNull()) {
+ objects_->Add(&Object::Handle(zone_, script_.tokens()));
+ }
+
+ if (!include_code_) return;
+
+ code_ = cls.allocation_stub();
+ Visit(code_);
+ }
+
+ void Visit(const Function& function) {
+ script_ = function.script();
+ if (!script_.IsNull()) {
+ objects_->Add(&Object::Handle(zone_, script_.tokens()));
+ }
+
+ if (!include_code_) return;
+
+ code_ = function.CurrentCode();
+ Visit(code_);
+ code_ = function.unoptimized_code();
+ Visit(code_);
+ }
+
+ ZoneGrowableArray<Object*>* objects() { return objects_; }
+ ZoneGrowableArray<Code*>* codes() { return codes_; }
+
+ private:
+ void Visit(const Code& code) {
+ ASSERT(include_code_);
+ if (code.IsNull()) return;
+
+ codes_->Add(&Code::Handle(zone_, code.raw()));
+ objects_->Add(&Object::Handle(zone_, code.pc_descriptors()));
+ objects_->Add(&Object::Handle(zone_, code.code_source_map()));
+
+ stack_maps_ = code_.stackmaps();
+ if (!stack_maps_.IsNull()) {
+ for (intptr_t i = 0; i < stack_maps_.Length(); i++) {
+ objects_->Add(&Object::Handle(zone_, stack_maps_.At(i)));
}
}
}
- ZoneGrowableArray<Object*>* objects() { return objects_; }
- ZoneGrowableArray<Code*>* code() { return code_; }
-
- private:
Zone* zone_;
bool include_code_;
ZoneGrowableArray<Object*>* objects_;
- ZoneGrowableArray<Code*>* code_;
+ ZoneGrowableArray<Code*>* codes_;
+ Script& script_;
+ Code& code_;
+ Array& stack_maps_;
};
FullSnapshotWriter::FullSnapshotWriter(Snapshot::Kind kind,
@@ -5629,13 +5654,12 @@
NOT_IN_PRODUCT(TimelineDurationScope tds(
thread(), Timeline::GetIsolateStream(), "PrepareNewVMIsolate"));
- HeapIterationScope iteration(thread());
SeedVMIsolateVisitor visitor(thread()->zone(),
Snapshot::IncludesCode(kind));
- iteration.IterateObjects(&visitor);
- iteration.IterateVMIsolateObjects(&visitor);
+ ProgramVisitor::VisitClasses(&visitor);
+ ProgramVisitor::VisitFunctions(&visitor);
seed_objects_ = visitor.objects();
- seed_code_ = visitor.code();
+ seed_code_ = visitor.codes();
// Tuck away the current symbol table.
saved_symbol_table_ = object_store->symbol_table();
diff --git a/runtime/vm/compiler/aot/aot_call_specializer.cc b/runtime/vm/compiler/aot/aot_call_specializer.cc
index 4929937..ac997a2 100644
--- a/runtime/vm/compiler/aot/aot_call_specializer.cc
+++ b/runtime/vm/compiler/aot/aot_call_specializer.cc
@@ -322,16 +322,19 @@
if (Token::IsRelationalOperator(op_kind)) {
left_value = PrepareStaticOpInput(left_value, kMintCid, instr);
right_value = PrepareStaticOpInput(right_value, kMintCid, instr);
- replacement = new (Z)
- RelationalOpInstr(instr->token_pos(), op_kind, left_value,
- right_value, kMintCid, Thread::kNoDeoptId);
+ replacement = new (Z) RelationalOpInstr(
+ instr->token_pos(), op_kind, left_value, right_value, kMintCid,
+ Thread::kNoDeoptId, Instruction::kNotSpeculative);
} else {
// TODO(dartbug.com/30480): Figure out how to handle null in
// equality comparisons.
- replacement = new (Z) EqualityCompareInstr(
- instr->token_pos(), op_kind, left_value->CopyWithType(Z),
- right_value->CopyWithType(Z), kMintCid, Thread::kNoDeoptId);
+ // replacement = new (Z) EqualityCompareInstr(
+ // instr->token_pos(), op_kind, left_value->CopyWithType(Z),
+ // right_value->CopyWithType(Z), kMintCid, Thread::kNoDeoptId);
+ replacement = new (Z) CheckedSmiComparisonInstr(
+ instr->token_kind(), left_value->CopyWithType(Z),
+ right_value->CopyWithType(Z), instr);
}
// TODO(dartbug.com/30480): Enable comparisons with Smi.
} else if (false &&
@@ -361,9 +364,9 @@
(op_kind == Token::kGT) || (op_kind == Token::kGTE)) {
left_value = PrepareStaticOpInput(left_value, kDoubleCid, instr);
right_value = PrepareStaticOpInput(right_value, kDoubleCid, instr);
- replacement = new (Z)
- RelationalOpInstr(instr->token_pos(), op_kind, left_value,
- right_value, kDoubleCid, Thread::kNoDeoptId);
+ replacement = new (Z) RelationalOpInstr(
+ instr->token_pos(), op_kind, left_value, right_value, kDoubleCid,
+ Thread::kNoDeoptId, Instruction::kNotSpeculative);
}
}
break;
@@ -385,7 +388,8 @@
Value* right_value = instr->PushArgumentAt(receiver_index + 1)->value();
CompileType* left_type = left_value->Type();
CompileType* right_type = right_value->Type();
- if (left_type->IsNullableInt() && right_type->IsNullableInt()) {
+ if (left_type->IsNullableInt() && right_type->IsNullableInt() &&
+ (op_kind != Token::kDIV)) {
if (FLAG_limit_ints_to_64_bits &&
FlowGraphCompiler::SupportsUnboxedMints()) {
if ((op_kind == Token::kSHR) || (op_kind == Token::kSHL)) {
@@ -400,9 +404,10 @@
left_value = PrepareStaticOpInput(left_value, kMintCid, instr);
right_value = PrepareStaticOpInput(right_value, kMintCid, instr);
replacement = new BinaryInt64OpInstr(
- op_kind, left_value, right_value, Thread::kNoDeoptId);
+ op_kind, left_value, right_value, Thread::kNoDeoptId,
+ Instruction::kNotSpeculative);
}
- } else if (op_kind != Token::kDIV) {
+ } else {
replacement =
new (Z) CheckedSmiOpInstr(op_kind, left_value->CopyWithType(Z),
right_value->CopyWithType(Z), instr);
@@ -419,9 +424,9 @@
(op_kind == Token::kMUL) || (op_kind == Token::kDIV)) {
left_value = PrepareStaticOpInput(left_value, kDoubleCid, instr);
right_value = PrepareStaticOpInput(right_value, kDoubleCid, instr);
- replacement = new (Z)
- BinaryDoubleOpInstr(op_kind, left_value, right_value,
- Thread::kNoDeoptId, instr->token_pos());
+ replacement = new (Z) BinaryDoubleOpInstr(
+ op_kind, left_value, right_value, Thread::kNoDeoptId,
+ instr->token_pos(), Instruction::kNotSpeculative);
}
}
break;
@@ -466,9 +471,9 @@
left_value =
PrepareReceiverOfDevirtualizedCall(left_value, kDoubleCid);
right_value = PrepareStaticOpInput(right_value, kDoubleCid, call);
- replacement = new (Z)
- BinaryDoubleOpInstr(op_kind, left_value, right_value,
- Thread::kNoDeoptId, call->token_pos());
+ replacement = new (Z) BinaryDoubleOpInstr(
+ op_kind, left_value, right_value, Thread::kNoDeoptId,
+ call->token_pos(), Instruction::kNotSpeculative);
}
} else if ((op_kind == Token::kLT) || (op_kind == Token::kLTE) ||
(op_kind == Token::kGT) || (op_kind == Token::kGTE)) {
@@ -480,16 +485,17 @@
left_value =
PrepareReceiverOfDevirtualizedCall(left_value, kDoubleCid);
right_value = PrepareStaticOpInput(right_value, kDoubleCid, call);
- replacement = new (Z)
- RelationalOpInstr(call->token_pos(), op_kind, left_value,
- right_value, kDoubleCid, Thread::kNoDeoptId);
+ replacement = new (Z) RelationalOpInstr(
+ call->token_pos(), op_kind, left_value, right_value, kDoubleCid,
+ Thread::kNoDeoptId, Instruction::kNotSpeculative);
}
} else if (op_kind == Token::kNEGATE) {
ASSERT(call->FirstArgIndex() == 0);
Value* left_value = call->PushArgumentAt(0)->value();
left_value = PrepareReceiverOfDevirtualizedCall(left_value, kDoubleCid);
replacement = new (Z)
- UnaryDoubleOpInstr(Token::kNEGATE, left_value, call->deopt_id());
+ UnaryDoubleOpInstr(Token::kNEGATE, left_value, call->deopt_id(),
+ Instruction::kNotSpeculative);
}
}
}
diff --git a/runtime/vm/compiler/aot/precompiler.cc b/runtime/vm/compiler/aot/precompiler.cc
index 85ea616..ec9f50a 100644
--- a/runtime/vm/compiler/aot/precompiler.cc
+++ b/runtime/vm/compiler/aot/precompiler.cc
@@ -1119,7 +1119,6 @@
#endif
const ObjectPool& pool = ObjectPool::Handle(Z, code.GetObjectPool());
- ObjectPoolInfo pool_info(pool);
ICData& call_site = ICData::Handle(Z);
MegamorphicCache& cache = MegamorphicCache::Handle(Z);
String& selector = String::Handle(Z);
@@ -1128,7 +1127,7 @@
Instance& instance = Instance::Handle(Z);
Code& target_code = Code::Handle(Z);
for (intptr_t i = 0; i < pool.Length(); i++) {
- if (pool_info.InfoAt(i) == ObjectPool::kTaggedObject) {
+ if (pool.TypeAt(i) == ObjectPool::kTaggedObject) {
entry = pool.ObjectAt(i);
if (entry.IsICData()) {
// A dynamic call.
@@ -2407,7 +2406,6 @@
code_(Code::Handle(zone)),
pool_(ObjectPool::Handle(zone)),
entry_(Object::Handle(zone)),
- info_array_(TypedData::Handle(zone)),
ic_(ICData::Handle(zone)),
target_name_(String::Handle(zone)),
args_descriptor_(Array::Handle(zone)),
@@ -2422,10 +2420,8 @@
code_ = function.CurrentCode();
pool_ = code_.object_pool();
- info_array_ = pool_.info_array();
- ObjectPoolInfo pool_info(info_array_);
for (intptr_t i = 0; i < pool_.Length(); i++) {
- if (pool_info.InfoAt(i) != ObjectPool::kTaggedObject) continue;
+ if (pool_.TypeAt(i) != ObjectPool::kTaggedObject) continue;
entry_ = pool_.ObjectAt(i);
if (entry_.IsICData()) {
// The only IC calls generated by precompilation are for switchable
@@ -2465,7 +2461,6 @@
Code& code_;
ObjectPool& pool_;
Object& entry_;
- TypedData& info_array_;
ICData& ic_;
String& target_name_;
Array& args_descriptor_;
diff --git a/runtime/vm/compiler/assembler/assembler.cc b/runtime/vm/compiler/assembler/assembler.cc
index 5d2b8e8..04b9fb1 100644
--- a/runtime/vm/compiler/assembler/assembler.cc
+++ b/runtime/vm/compiler/assembler/assembler.cc
@@ -294,11 +294,10 @@
return Object::empty_object_pool().raw();
}
const ObjectPool& result = ObjectPool::Handle(ObjectPool::New(len));
- ObjectPoolInfo pool_info(result);
for (intptr_t i = 0; i < len; ++i) {
- ObjectPool::EntryType info = object_pool_[i].type_;
- pool_info.SetInfoAt(i, info);
- if (info == ObjectPool::kTaggedObject) {
+ ObjectPool::EntryType type = object_pool_[i].type_;
+ result.SetTypeAt(i, type);
+ if (type == ObjectPool::kTaggedObject) {
result.SetObjectAt(i, *object_pool_[i].obj_);
} else {
result.SetRawValueAt(i, object_pool_[i].raw_value_);
diff --git a/runtime/vm/compiler/assembler/assembler_x64_test.cc b/runtime/vm/compiler/assembler/assembler_x64_test.cc
index 534e1a7..b8109d3 100644
--- a/runtime/vm/compiler/assembler/assembler_x64_test.cc
+++ b/runtime/vm/compiler/assembler/assembler_x64_test.cc
@@ -4624,20 +4624,20 @@
"movq r12,[rdi+0x8]\n"
"movq thr,rsi\n"
"movq pp,[r12+0x17]\n"
- "movq rax,[pp+0x17]\n"
- "cmpq rax,[pp+0x17]\n"
+ "movq rax,[pp+0xf]\n"
+ "cmpq rax,[pp+0xf]\n"
"jnz 0x................\n"
- "movq rcx,[pp+0x17]\n"
- "cmpq rcx,[pp+0x17]\n"
+ "movq rcx,[pp+0xf]\n"
+ "cmpq rcx,[pp+0xf]\n"
"jnz 0x................\n"
"movl rcx,0x1e\n"
"cmpq rcx,0x1e\n"
"jnz 0x................\n"
"push rax\n"
- "movq r11,[pp+0x17]\n"
+ "movq r11,[pp+0xf]\n"
"movq [rsp],r11\n"
"pop rcx\n"
- "cmpq rcx,[pp+0x17]\n"
+ "cmpq rcx,[pp+0xf]\n"
"jnz 0x................\n"
"push rax\n"
"movq [rsp],0x1e\n"
diff --git a/runtime/vm/compiler/backend/flow_graph.cc b/runtime/vm/compiler/backend/flow_graph.cc
index 55af27c..d532101 100644
--- a/runtime/vm/compiler/backend/flow_graph.cc
+++ b/runtime/vm/compiler/backend/flow_graph.cc
@@ -1494,7 +1494,8 @@
const intptr_t deopt_id = (deopt_target != NULL)
? deopt_target->DeoptimizationTarget()
: Thread::kNoDeoptId;
- converted = UnboxInstr::Create(to, use->CopyWithType(), deopt_id);
+ converted = UnboxInstr::Create(to, use->CopyWithType(), deopt_id,
+ use->instruction()->speculative_mode());
} else if ((to == kTagged) && Boxing::Supports(from)) {
converted = BoxInstr::Create(from, use->CopyWithType());
} else {
diff --git a/runtime/vm/compiler/backend/flow_graph_compiler_arm.cc b/runtime/vm/compiler/backend/flow_graph_compiler_arm.cc
index fe0acb1..324b9ca 100644
--- a/runtime/vm/compiler/backend/flow_graph_compiler_arm.cc
+++ b/runtime/vm/compiler/backend/flow_graph_compiler_arm.cc
@@ -712,9 +712,9 @@
// If expect_type_args, a non-zero length must match the declaration length.
__ ldr(R6, FieldAddress(R4, ArgumentsDescriptor::type_args_len_offset()));
if (isolate()->strong()) {
- __ and_(R6, R6,
- Operand(Smi::RawValue(
- ArgumentsDescriptor::TypeArgsLenField::mask_in_place())));
+ __ AndImmediate(
+ R6, R6,
+ Smi::RawValue(ArgumentsDescriptor::TypeArgsLenField::mask_in_place()));
}
__ CompareImmediate(R6, Smi::RawValue(0));
if (expect_type_args) {
@@ -751,9 +751,10 @@
__ ldr(R6, FieldAddress(R4, ArgumentsDescriptor::positional_count_offset()));
if (isolate()->strong()) {
- __ and_(R6, R6,
- Operand(Smi::RawValue(
- ArgumentsDescriptor::PositionalCountField::mask_in_place())));
+ __ AndImmediate(
+ R6, R6,
+ Smi::RawValue(
+ ArgumentsDescriptor::PositionalCountField::mask_in_place()));
}
// Check that min_num_pos_args <= num_pos_args.
@@ -843,10 +844,10 @@
// fp[kParamEndSlotFromFp + num_args - arg_pos].
__ ldr(R9, Address(R8, ArgumentsDescriptor::position_offset()));
if (isolate()->strong()) {
- __ and_(
+ __ AndImmediate(
R9, R9,
- Operand(Smi::RawValue(
- ArgumentsDescriptor::PositionalCountField::mask_in_place())));
+ Smi::RawValue(
+ ArgumentsDescriptor::PositionalCountField::mask_in_place()));
}
// R9 is arg_pos as Smi.
// Point to next named entry.
@@ -884,9 +885,8 @@
FieldAddress(R4, ArgumentsDescriptor::positional_count_offset()));
__ SmiUntag(R6);
if (isolate()->strong()) {
- __ and_(
- R6, R6,
- Operand(ArgumentsDescriptor::PositionalCountField::mask_in_place()));
+ __ AndImmediate(
+ R6, R6, ArgumentsDescriptor::PositionalCountField::mask_in_place());
}
for (int i = 0; i < num_opt_pos_params; i++) {
Label next_parameter;
@@ -1062,10 +1062,10 @@
__ ldr(R1,
FieldAddress(R4, ArgumentsDescriptor::positional_count_offset()));
if (isolate()->strong()) {
- __ and_(
+ __ AndImmediate(
R1, R1,
- Operand(Smi::RawValue(
- ArgumentsDescriptor::PositionalCountField::mask_in_place())));
+ Smi::RawValue(
+ ArgumentsDescriptor::PositionalCountField::mask_in_place()));
}
__ cmp(R0, Operand(R1));
__ b(&correct_num_arguments, EQ);
diff --git a/runtime/vm/compiler/backend/flow_graph_compiler_arm64.cc b/runtime/vm/compiler/backend/flow_graph_compiler_arm64.cc
index 1a393ed..552e3e0 100644
--- a/runtime/vm/compiler/backend/flow_graph_compiler_arm64.cc
+++ b/runtime/vm/compiler/backend/flow_graph_compiler_arm64.cc
@@ -689,9 +689,9 @@
// If expect_type_args, a non-zero length must match the declaration length.
__ LoadFieldFromOffset(R8, R4, ArgumentsDescriptor::type_args_len_offset());
if (isolate()->strong()) {
- __ and_(R8, R8,
- Operand(Smi::RawValue(
- ArgumentsDescriptor::TypeArgsLenField::mask_in_place())));
+ __ AndImmediate(
+ R8, R8,
+ Smi::RawValue(ArgumentsDescriptor::TypeArgsLenField::mask_in_place()));
}
__ CompareImmediate(R8, Smi::RawValue(0));
if (expect_type_args) {
@@ -730,9 +730,10 @@
ArgumentsDescriptor::positional_count_offset());
if (isolate()->strong()) {
- __ and_(R8, R8,
- Operand(Smi::RawValue(
- ArgumentsDescriptor::PositionalCountField::mask_in_place())));
+ __ AndImmediate(
+ R8, R8,
+ Smi::RawValue(
+ ArgumentsDescriptor::PositionalCountField::mask_in_place()));
}
// Check that min_num_pos_args <= num_pos_args.
@@ -822,10 +823,10 @@
// fp[kParamEndSlotFromFp + num_args - arg_pos].
__ LoadFromOffset(R5, R6, ArgumentsDescriptor::position_offset());
if (isolate()->strong()) {
- __ and_(
+ __ AndImmediate(
R5, R5,
- Operand(Smi::RawValue(
- ArgumentsDescriptor::PositionalCountField::mask_in_place())));
+ Smi::RawValue(
+ ArgumentsDescriptor::PositionalCountField::mask_in_place()));
}
// R5 is arg_pos as Smi.
// Point to next named entry.
@@ -863,9 +864,8 @@
ArgumentsDescriptor::positional_count_offset());
__ SmiUntag(R8);
if (isolate()->strong()) {
- __ and_(
- R8, R8,
- Operand(ArgumentsDescriptor::PositionalCountField::mask_in_place()));
+ __ AndImmediate(
+ R8, R8, ArgumentsDescriptor::PositionalCountField::mask_in_place());
}
for (int i = 0; i < num_opt_pos_params; i++) {
Label next_parameter;
@@ -1046,10 +1046,10 @@
__ LoadFieldFromOffset(R1, R4,
ArgumentsDescriptor::positional_count_offset());
if (isolate()->strong()) {
- __ and_(
+ __ AndImmediate(
R1, R1,
- Operand(Smi::RawValue(
- ArgumentsDescriptor::PositionalCountField::mask_in_place())));
+ Smi::RawValue(
+ ArgumentsDescriptor::PositionalCountField::mask_in_place()));
}
__ CompareRegisters(R0, R1);
__ b(&correct_num_arguments, EQ);
diff --git a/runtime/vm/compiler/backend/il.cc b/runtime/vm/compiler/backend/il.cc
index c1a8172..ddf48d7 100644
--- a/runtime/vm/compiler/backend/il.cc
+++ b/runtime/vm/compiler/backend/il.cc
@@ -2730,23 +2730,24 @@
UnboxInstr* UnboxInstr::Create(Representation to,
Value* value,
- intptr_t deopt_id) {
+ intptr_t deopt_id,
+ SpeculativeMode speculative_mode) {
switch (to) {
case kUnboxedInt32:
return new UnboxInt32Instr(UnboxInt32Instr::kNoTruncation, value,
- deopt_id);
+ deopt_id, speculative_mode);
case kUnboxedUint32:
- return new UnboxUint32Instr(value, deopt_id);
+ return new UnboxUint32Instr(value, deopt_id, speculative_mode);
case kUnboxedInt64:
- return new UnboxInt64Instr(value, deopt_id);
+ return new UnboxInt64Instr(value, deopt_id, speculative_mode);
case kUnboxedDouble:
case kUnboxedFloat32x4:
case kUnboxedFloat64x2:
case kUnboxedInt32x4:
- return new UnboxInstr(to, value, deopt_id);
+ return new UnboxInstr(to, value, deopt_id, speculative_mode);
default:
UNREACHABLE();
@@ -3748,24 +3749,43 @@
}
void UnboxInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
- const intptr_t value_cid = value()->Type()->ToCid();
- const intptr_t box_cid = BoxCid();
+ if (speculative_mode() == kNotSpeculative) {
+ switch (representation()) {
+ case kUnboxedDouble:
+ EmitLoadFromBox(compiler);
+ break;
- if (value_cid == box_cid) {
- EmitLoadFromBox(compiler);
- } else if (CanConvertSmi() && (value_cid == kSmiCid)) {
- EmitSmiConversion(compiler);
- } else if (FLAG_experimental_strong_mode &&
- (representation() == kUnboxedDouble) &&
- value()->Type()->IsNullableDouble()) {
- EmitLoadFromBox(compiler);
- } else if (FLAG_experimental_strong_mode && FLAG_limit_ints_to_64_bits &&
- (representation() == kUnboxedInt64) &&
- value()->Type()->IsNullableInt()) {
- EmitLoadInt64FromBoxOrSmi(compiler);
+ case kUnboxedInt64: {
+ ASSERT(FLAG_limit_ints_to_64_bits);
+ EmitLoadInt64FromBoxOrSmi(compiler);
+ break;
+ }
+
+ default:
+ UNREACHABLE();
+ break;
+ }
} else {
- ASSERT(CanDeoptimize());
- EmitLoadFromBoxWithDeopt(compiler);
+ ASSERT(speculative_mode() == kGuardInputs);
+ const intptr_t value_cid = value()->Type()->ToCid();
+ const intptr_t box_cid = BoxCid();
+
+ if (value_cid == box_cid) {
+ EmitLoadFromBox(compiler);
+ } else if (CanConvertSmi() && (value_cid == kSmiCid)) {
+ EmitSmiConversion(compiler);
+ } else if (FLAG_experimental_strong_mode &&
+ (representation() == kUnboxedDouble) &&
+ value()->Type()->IsNullableDouble()) {
+ EmitLoadFromBox(compiler);
+ } else if (FLAG_experimental_strong_mode && FLAG_limit_ints_to_64_bits &&
+ (representation() == kUnboxedInt64) &&
+ value()->Type()->IsNullableInt()) {
+ EmitLoadInt64FromBoxOrSmi(compiler);
+ } else {
+ ASSERT(CanDeoptimize());
+ EmitLoadFromBoxWithDeopt(compiler);
+ }
}
}
@@ -3875,7 +3895,7 @@
ComparisonInstr* RelationalOpInstr::CopyWithNewOperands(Value* new_left,
Value* new_right) {
return new RelationalOpInstr(token_pos(), kind(), new_left, new_right,
- operation_cid(), deopt_id());
+ operation_cid(), deopt_id(), speculative_mode());
}
ComparisonInstr* StrictCompareInstr::CopyWithNewOperands(Value* new_left,
diff --git a/runtime/vm/compiler/backend/il.h b/runtime/vm/compiler/backend/il.h
index 3f2d853..7fd0104 100644
--- a/runtime/vm/compiler/backend/il.h
+++ b/runtime/vm/compiler/backend/il.h
@@ -653,6 +653,14 @@
enum Tag { FOR_EACH_INSTRUCTION(DECLARE_TAG) };
#undef DECLARE_TAG
+ enum SpeculativeMode {
+ // Types of inputs should be checked when unboxing for this instruction.
+ kGuardInputs,
+ // Each input is guaranteed to have a valid type for the input
+ // representation and its type should not be checked when unboxing.
+ kNotSpeculative
+ };
+
explicit Instruction(intptr_t deopt_id = Thread::kNoDeoptId)
: deopt_id_(deopt_id),
lifetime_position_(kNoPlaceId),
@@ -817,6 +825,9 @@
return kTagged;
}
+ // By default, instructions should check types of inputs when unboxing.
+ virtual SpeculativeMode speculative_mode() const { return kGuardInputs; }
+
// Representation of the value produced by this computation.
virtual Representation representation() const { return kTagged; }
@@ -2620,8 +2631,8 @@
DECLARE_INSTRUCTION(AssertSubtype);
- Value* instantiator_type_arguments() const { return inputs_[1]; }
- Value* function_type_arguments() const { return inputs_[2]; }
+ Value* instantiator_type_arguments() const { return inputs_[0]; }
+ Value* function_type_arguments() const { return inputs_[1]; }
virtual TokenPosition token_pos() const { return token_pos_; }
const AbstractType& super_type() const { return super_type_; }
@@ -3211,8 +3222,10 @@
Value* left,
Value* right,
intptr_t cid,
- intptr_t deopt_id)
- : TemplateComparison(token_pos, kind, deopt_id) {
+ intptr_t deopt_id,
+ SpeculativeMode speculative_mode = kGuardInputs)
+ : TemplateComparison(token_pos, kind, deopt_id),
+ speculative_mode_(speculative_mode) {
ASSERT(Token::IsRelationalOperator(kind));
SetInputAt(0, left);
SetInputAt(1, right);
@@ -3234,9 +3247,17 @@
return kTagged;
}
+ virtual SpeculativeMode speculative_mode() const { return speculative_mode_; }
+
+ virtual bool AttributesEqual(Instruction* other) const {
+ return ComparisonInstr::AttributesEqual(other) &&
+ (speculative_mode() == other->AsRelationalOp()->speculative_mode());
+ }
+
PRINT_OPERANDS_TO_SUPPORT
private:
+ const SpeculativeMode speculative_mode_;
DISALLOW_COPY_AND_ASSIGN(RelationalOpInstr);
};
@@ -4930,11 +4951,18 @@
class UnboxInstr : public TemplateDefinition<1, NoThrow, Pure> {
public:
- static UnboxInstr* Create(Representation to, Value* value, intptr_t deopt_id);
+ static UnboxInstr* Create(Representation to,
+ Value* value,
+ intptr_t deopt_id,
+ SpeculativeMode speculative_mode = kGuardInputs);
Value* value() const { return inputs_[0]; }
virtual bool ComputeCanDeoptimize() const {
+ if (speculative_mode() == kNotSpeculative) {
+ return false;
+ }
+
const intptr_t value_cid = value()->Type()->ToCid();
const intptr_t box_cid = BoxCid();
@@ -4946,28 +4974,20 @@
return false;
}
- if (FLAG_experimental_strong_mode) {
- if ((representation() == kUnboxedDouble) &&
- value()->Type()->IsNullableDouble()) {
- return false;
- }
-
- if (FLAG_limit_ints_to_64_bits && (representation() == kUnboxedInt64) &&
- value()->Type()->IsNullableInt()) {
- return false;
- }
- }
-
return true;
}
+ virtual SpeculativeMode speculative_mode() const { return speculative_mode_; }
+
virtual Representation representation() const { return representation_; }
DECLARE_INSTRUCTION(Unbox)
virtual CompileType ComputeType() const;
virtual bool AttributesEqual(Instruction* other) const {
- return representation() == other->AsUnbox()->representation();
+ UnboxInstr* other_unbox = other->AsUnbox();
+ return (representation() == other_unbox->representation()) &&
+ (speculative_mode() == other_unbox->speculative_mode());
}
Definition* Canonicalize(FlowGraph* flow_graph);
@@ -4977,8 +4997,13 @@
virtual TokenPosition token_pos() const { return TokenPosition::kBox; }
protected:
- UnboxInstr(Representation representation, Value* value, intptr_t deopt_id)
- : TemplateDefinition(deopt_id), representation_(representation) {
+ UnboxInstr(Representation representation,
+ Value* value,
+ intptr_t deopt_id,
+ SpeculativeMode speculative_mode)
+ : TemplateDefinition(deopt_id),
+ representation_(representation),
+ speculative_mode_(speculative_mode) {
SetInputAt(0, value);
}
@@ -4994,6 +5019,7 @@
intptr_t ValueOffset() const { return Boxing::ValueOffset(representation_); }
const Representation representation_;
+ const SpeculativeMode speculative_mode_;
DISALLOW_COPY_AND_ASSIGN(UnboxInstr);
};
@@ -5005,8 +5031,9 @@
UnboxIntegerInstr(Representation representation,
TruncationMode truncation_mode,
Value* value,
- intptr_t deopt_id)
- : UnboxInstr(representation, value, deopt_id),
+ intptr_t deopt_id,
+ SpeculativeMode speculative_mode)
+ : UnboxInstr(representation, value, deopt_id, speculative_mode),
is_truncating_(truncation_mode == kTruncate) {}
bool is_truncating() const { return is_truncating_; }
@@ -5036,8 +5063,13 @@
UnboxInteger32Instr(Representation representation,
TruncationMode truncation_mode,
Value* value,
- intptr_t deopt_id)
- : UnboxIntegerInstr(representation, truncation_mode, value, deopt_id) {}
+ intptr_t deopt_id,
+ SpeculativeMode speculative_mode)
+ : UnboxIntegerInstr(representation,
+ truncation_mode,
+ value,
+ deopt_id,
+ speculative_mode) {}
DECLARE_INSTRUCTION_BACKEND()
@@ -5047,8 +5079,14 @@
class UnboxUint32Instr : public UnboxInteger32Instr {
public:
- UnboxUint32Instr(Value* value, intptr_t deopt_id)
- : UnboxInteger32Instr(kUnboxedUint32, kTruncate, value, deopt_id) {
+ UnboxUint32Instr(Value* value,
+ intptr_t deopt_id,
+ SpeculativeMode speculative_mode = kGuardInputs)
+ : UnboxInteger32Instr(kUnboxedUint32,
+ kTruncate,
+ value,
+ deopt_id,
+ speculative_mode) {
ASSERT(is_truncating());
}
@@ -5066,8 +5104,13 @@
public:
UnboxInt32Instr(TruncationMode truncation_mode,
Value* value,
- intptr_t deopt_id)
- : UnboxInteger32Instr(kUnboxedInt32, truncation_mode, value, deopt_id) {}
+ intptr_t deopt_id,
+ SpeculativeMode speculative_mode = kGuardInputs)
+ : UnboxInteger32Instr(kUnboxedInt32,
+ truncation_mode,
+ value,
+ deopt_id,
+ speculative_mode) {}
virtual bool ComputeCanDeoptimize() const;
@@ -5083,8 +5126,14 @@
class UnboxInt64Instr : public UnboxIntegerInstr {
public:
- UnboxInt64Instr(Value* value, intptr_t deopt_id)
- : UnboxIntegerInstr(kUnboxedInt64, kNoTruncation, value, deopt_id) {}
+ UnboxInt64Instr(Value* value,
+ intptr_t deopt_id,
+ SpeculativeMode speculative_mode)
+ : UnboxIntegerInstr(kUnboxedInt64,
+ kNoTruncation,
+ value,
+ deopt_id,
+ speculative_mode) {}
virtual void InferRange(RangeAnalysis* analysis, Range* range);
@@ -5262,8 +5311,12 @@
Value* left,
Value* right,
intptr_t deopt_id,
- TokenPosition token_pos)
- : TemplateDefinition(deopt_id), op_kind_(op_kind), token_pos_(token_pos) {
+ TokenPosition token_pos,
+ SpeculativeMode speculative_mode = kGuardInputs)
+ : TemplateDefinition(deopt_id),
+ op_kind_(op_kind),
+ token_pos_(token_pos),
+ speculative_mode_(speculative_mode) {
SetInputAt(0, left);
SetInputAt(1, right);
}
@@ -5284,6 +5337,8 @@
return kUnboxedDouble;
}
+ virtual SpeculativeMode speculative_mode() const { return speculative_mode_; }
+
virtual intptr_t DeoptimizationTarget() const {
// Direct access since this instruction cannot deoptimize, and the deopt-id
// was inherited from another instruction that could deoptimize.
@@ -5298,12 +5353,15 @@
virtual Definition* Canonicalize(FlowGraph* flow_graph);
virtual bool AttributesEqual(Instruction* other) const {
- return op_kind() == other->AsBinaryDoubleOp()->op_kind();
+ const BinaryDoubleOpInstr* other_bin_op = other->AsBinaryDoubleOp();
+ return (op_kind() == other_bin_op->op_kind()) &&
+ (speculative_mode() == other_bin_op->speculative_mode());
}
private:
const Token::Kind op_kind_;
const TokenPosition token_pos_;
+ const SpeculativeMode speculative_mode_;
DISALLOW_COPY_AND_ASSIGN(BinaryDoubleOpInstr);
};
@@ -5752,8 +5810,10 @@
BinaryInt64OpInstr(Token::Kind op_kind,
Value* left,
Value* right,
- intptr_t deopt_id)
- : BinaryIntegerOpInstr(op_kind, left, right, deopt_id) {
+ intptr_t deopt_id,
+ SpeculativeMode speculative_mode = kGuardInputs)
+ : BinaryIntegerOpInstr(op_kind, left, right, deopt_id),
+ speculative_mode_(speculative_mode) {
if (FLAG_limit_ints_to_64_bits) {
mark_truncating();
}
@@ -5785,12 +5845,20 @@
return kUnboxedInt64;
}
+ virtual SpeculativeMode speculative_mode() const { return speculative_mode_; }
+
+ virtual bool AttributesEqual(Instruction* other) const {
+ return BinaryIntegerOpInstr::AttributesEqual(other) &&
+ (speculative_mode() == other->AsBinaryInt64Op()->speculative_mode());
+ }
+
virtual void InferRange(RangeAnalysis* analysis, Range* range);
virtual CompileType ComputeType() const;
DECLARE_INSTRUCTION(BinaryInt64Op)
private:
+ const SpeculativeMode speculative_mode_;
DISALLOW_COPY_AND_ASSIGN(BinaryInt64OpInstr);
};
@@ -5842,8 +5910,13 @@
// Handles only NEGATE.
class UnaryDoubleOpInstr : public TemplateDefinition<1, NoThrow, Pure> {
public:
- UnaryDoubleOpInstr(Token::Kind op_kind, Value* value, intptr_t deopt_id)
- : TemplateDefinition(deopt_id), op_kind_(op_kind) {
+ UnaryDoubleOpInstr(Token::Kind op_kind,
+ Value* value,
+ intptr_t deopt_id,
+ SpeculativeMode speculative_mode = kGuardInputs)
+ : TemplateDefinition(deopt_id),
+ op_kind_(op_kind),
+ speculative_mode_(speculative_mode) {
ASSERT(op_kind == Token::kNEGATE);
SetInputAt(0, value);
}
@@ -5869,12 +5942,17 @@
return kUnboxedDouble;
}
- virtual bool AttributesEqual(Instruction* other) const { return true; }
+ virtual SpeculativeMode speculative_mode() const { return speculative_mode_; }
+
+ virtual bool AttributesEqual(Instruction* other) const {
+ return speculative_mode() == other->AsUnaryDoubleOp()->speculative_mode();
+ }
PRINT_OPERANDS_TO_SUPPORT
private:
const Token::Kind op_kind_;
+ const SpeculativeMode speculative_mode_;
DISALLOW_COPY_AND_ASSIGN(UnaryDoubleOpInstr);
};
diff --git a/runtime/vm/compiler/backend/inliner.cc b/runtime/vm/compiler/backend/inliner.cc
index 3725d0d..faf2759 100644
--- a/runtime/vm/compiler/backend/inliner.cc
+++ b/runtime/vm/compiler/backend/inliner.cc
@@ -2346,7 +2346,9 @@
call->GetBlock()->try_index(), Thread::kNoDeoptId);
(*entry)->InheritDeoptTarget(Z, call);
Instruction* cursor = *entry;
- if (flow_graph->isolate()->argument_type_checks()) {
+ if (flow_graph->isolate()->argument_type_checks() &&
+ (kind != MethodRecognizer::kObjectArraySetIndexedUnchecked &&
+ kind != MethodRecognizer::kGrowableArraySetIndexedUnchecked)) {
// Only type check for the value. A type check for the index is not
// needed here because we insert a deoptimizing smi-check for the case
// the index is not a smi.
@@ -2693,16 +2695,6 @@
PrepareInlineByteArrayBaseOp(flow_graph, call, array_cid, view_cid, &array,
index, &cursor);
- // Extract the instance call so we can use the function_name in the stored
- // value check ICData.
- InstanceCallInstr* i_call = NULL;
- if (call->IsPolymorphicInstanceCall()) {
- i_call = call->AsPolymorphicInstanceCall()->instance_call();
- } else {
- ASSERT(call->IsInstanceCall());
- i_call = call->AsInstanceCall();
- }
- ASSERT(i_call != NULL);
Cids* value_check = NULL;
switch (view_cid) {
case kTypedDataInt8ArrayCid:
@@ -3180,6 +3172,8 @@
// Recognized []= operators.
case MethodRecognizer::kObjectArraySetIndexed:
case MethodRecognizer::kGrowableArraySetIndexed:
+ case MethodRecognizer::kObjectArraySetIndexedUnchecked:
+ case MethodRecognizer::kGrowableArraySetIndexedUnchecked:
return InlineSetIndexed(flow_graph, kind, target, call, receiver,
token_pos, /* value_check = */ NULL, entry, last);
case MethodRecognizer::kInt8ArraySetIndexed:
diff --git a/runtime/vm/compiler/backend/type_propagator.cc b/runtime/vm/compiler/backend/type_propagator.cc
index 8d6e8ef..940bf22 100644
--- a/runtime/vm/compiler/backend/type_propagator.cc
+++ b/runtime/vm/compiler/backend/type_propagator.cc
@@ -938,12 +938,8 @@
return CompileType(CompileType::kNonNullable, cid, &type);
}
- if (FLAG_experimental_strong_mode && block_->IsGraphEntry()) {
- LocalScope* scope = graph_entry->parsed_function().node_sequence()->scope();
- const AbstractType& param_type = scope->VariableAt(index())->type();
- TraceStrongModeType(this, param_type);
- return CompileType::FromAbstractType(param_type);
- }
+ // TODO(dartbug.com/30480): Figure out how to use parameter types
+ // without interfering with argument type checks.
return CompileType::Dynamic();
}
diff --git a/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc b/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc
index 5d4ce6a..979efd0 100644
--- a/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc
+++ b/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc
@@ -2735,7 +2735,7 @@
EvaluateExpression(expression_offset);
if (result_.IsString()) {
const String& str = String::Handle(Z, String::RawCast(result_.raw()));
- result_ = Integer::New(str.Length());
+ result_ = Integer::New(str.Length(), H.allocation_space());
} else {
H.ReportError(
script_, position,
@@ -3037,7 +3037,8 @@
intptr_t length = builder_->ReadListLength(); // read list length.
bool all_string = true;
- const Array& strings = Array::Handle(Z, Array::New(length));
+ const Array& strings =
+ Array::Handle(Z, Array::New(length, H.allocation_space()));
for (intptr_t i = 0; i < length; ++i) {
EvaluateExpression(builder_->ReaderOffset(),
false); // read ith expression.
@@ -3222,8 +3223,8 @@
(receiver != NULL ? 1 : 0) + (type_args != NULL ? 1 : 0);
// Build up arguments.
- const Array& arguments =
- Array::ZoneHandle(Z, Array::New(extra_arguments + argument_count));
+ const Array& arguments = Array::ZoneHandle(
+ Z, Array::New(extra_arguments + argument_count, H.allocation_space()));
intptr_t pos = 0;
if (receiver != NULL) {
arguments.SetAt(pos++, *receiver);
@@ -3242,7 +3243,8 @@
// List of named.
list_length = builder_->ReadListLength(); // read list length.
- const Array& names = Array::ZoneHandle(Z, Array::New(list_length));
+ const Array& names =
+ Array::ZoneHandle(Z, Array::New(list_length, H.allocation_space()));
for (intptr_t i = 0; i < list_length; ++i) {
String& name =
H.DartSymbol(builder_->ReadStringReference()); // read ith name index.
@@ -3261,7 +3263,8 @@
// We do not support generic methods yet.
const int kTypeArgsLen = 0;
const Array& args_descriptor = Array::Handle(
- Z, ArgumentsDescriptor::New(kTypeArgsLen, arguments.Length(), names));
+ Z, ArgumentsDescriptor::New(kTypeArgsLen, arguments.Length(), names,
+ H.allocation_space()));
const Object& result = Object::Handle(
Z, DartEntry::InvokeFunction(function, arguments, args_descriptor));
if (result.IsError()) {
@@ -3872,7 +3875,7 @@
intptr_t named_argument_count = ReadListLength();
Array& argument_names = Array::ZoneHandle(Z);
if (named_argument_count > 0) {
- argument_names = Array::New(named_argument_count);
+ argument_names = Array::New(named_argument_count, H.allocation_space());
for (intptr_t i = 0; i < named_argument_count; ++i) {
// ith variable offset.
body += LoadLocal(LookupVariable(ReaderOffset() + data_program_offset_));
@@ -5934,7 +5937,7 @@
const Function* interface_target = &Function::null_function();
const NameIndex itarget_name =
ReadCanonicalNameReference(); // read interface_target_reference.
- if (FLAG_experimental_strong_mode && !H.IsRoot(itarget_name) &&
+ if (I->strong() && !H.IsRoot(itarget_name) &&
(H.IsGetter(itarget_name) || H.IsField(itarget_name))) {
interface_target = &Function::ZoneHandle(
Z, LookupMethodByMember(itarget_name, H.DartGetterName(itarget_name)));
@@ -5998,7 +6001,7 @@
const Function* interface_target = &Function::null_function();
const NameIndex itarget_name =
ReadCanonicalNameReference(); // read interface_target_reference.
- if (FLAG_experimental_strong_mode && !H.IsRoot(itarget_name)) {
+ if (I->strong() && !H.IsRoot(itarget_name)) {
interface_target = &Function::ZoneHandle(
Z, LookupMethodByMember(itarget_name, H.DartSetterName(itarget_name)));
ASSERT(setter_name.raw() == interface_target->name());
@@ -6007,7 +6010,9 @@
intptr_t argument_check_bits = 0;
if (I->strong()) {
argument_check_bits = ArgumentCheckBitsForSetter(
- *interface_target, static_cast<DispatchCategory>(flags & 3));
+ // TODO(sjindel): Change 'Function::null_function()' to
+ // '*interface_target' and fix breakages.
+ Function::null_function(), static_cast<DispatchCategory>(flags & 3));
}
if (direct_call.check_receiver_for_null_) {
@@ -6435,7 +6440,9 @@
// All bits are 0.
break;
case Interface: {
- if (!interface_target.IsImplicitGetterOrSetter()) {
+ // TODO(sjindel): Revise checking interface target for null.
+ if (interface_target.IsNull() ||
+ !interface_target.IsImplicitGetterOrSetter()) {
intptr_t type_argument_check_bits_unused;
ArgumentCheckBitsForInvocation(
1, 0, 1, Array::null_array(), interface_target, category,
@@ -6502,7 +6509,9 @@
Utils::SignedNBitMask(strong_checked_type_arguments);
break;
case Interface: {
- ASSERT(!interface_target.IsNull() || !FLAG_experimental_strong_mode);
+ // TODO(sjindel): Restore this assertion once '*interface_target'
+ // is passed to this function instead of 'Function::null_function()'.
+ // ASSERT(!interface_target.IsNull() || !I->strong());
if (interface_target.IsNull()) {
argument_check_bits =
Utils::SignedNBitMask(strong_checked_arguments + 1);
@@ -6717,8 +6726,7 @@
const Function* interface_target = &Function::null_function();
const NameIndex itarget_name =
ReadCanonicalNameReference(); // read interface_target_reference.
- if (FLAG_experimental_strong_mode && !H.IsRoot(itarget_name) &&
- !H.IsField(itarget_name)) {
+ if (I->strong() && !H.IsRoot(itarget_name) && !H.IsField(itarget_name)) {
interface_target = &Function::ZoneHandle(
Z,
LookupMethodByMember(itarget_name, H.DartProcedureName(itarget_name)));
@@ -6736,9 +6744,11 @@
if (I->strong()) {
ArgumentCheckBitsForInvocation(
argument_count - 1, type_args_len, positional_argument_count,
- argument_names, *interface_target,
- static_cast<DispatchCategory>(flags & 3), &argument_check_bits,
- &type_argument_check_bits);
+ argument_names,
+ // TODO(sjindel): Change 'Function::null_function()' to
+ // '*interface_target' and fix breakages.
+ Function::null_function(), static_cast<DispatchCategory>(flags & 3),
+ &argument_check_bits, &type_argument_check_bits);
}
if (!direct_call.target_.IsNull()) {
@@ -6875,7 +6885,7 @@
SkipListOfExpressions();
intptr_t named_list_length = ReadListLength();
- argument_names ^= Array::New(named_list_length);
+ argument_names ^= Array::New(named_list_length, H.allocation_space());
for (intptr_t i = 0; i < named_list_length; i++) {
const String& arg_name = H.DartSymbol(ReadStringReference());
argument_names.SetAt(i, arg_name);
@@ -9143,7 +9153,8 @@
}
intptr_t list_length = ReadListLength(); // read list length.
- const Array& metadata_values = Array::Handle(Z, Array::New(list_length));
+ const Array& metadata_values =
+ Array::Handle(Z, Array::New(list_length, H.allocation_space()));
for (intptr_t i = 0; i < list_length; ++i) {
// this will (potentially) read the expression, but reset the position.
Instance& value = constant_evaluator_.EvaluateExpression(ReaderOffset());
diff --git a/runtime/vm/compiler/frontend/kernel_to_il.cc b/runtime/vm/compiler/frontend/kernel_to_il.cc
index 6f2156a..7f446dd 100644
--- a/runtime/vm/compiler/frontend/kernel_to_il.cc
+++ b/runtime/vm/compiler/frontend/kernel_to_il.cc
@@ -2545,7 +2545,7 @@
static RawArray* AsSortedDuplicateFreeArray(GrowableArray<intptr_t>* source) {
intptr_t size = source->length();
if (size == 0) {
- return Array::New(0);
+ return Object::empty_array().raw();
}
source->Sort(LowestFirst);
diff --git a/runtime/vm/compiler/intrinsifier.cc b/runtime/vm/compiler/intrinsifier.cc
index d48170e..43d52fb 100644
--- a/runtime/vm/compiler/intrinsifier.cc
+++ b/runtime/vm/compiler/intrinsifier.cc
@@ -901,11 +901,24 @@
return true;
}
+void Intrinsifier::ObjectArraySetIndexed(Assembler* assembler) {
+ if (Isolate::Current()->argument_type_checks()) {
+ return;
+ }
+
+ ObjectArraySetIndexedUnchecked(assembler);
+}
+
bool Intrinsifier::Build_GrowableArraySetIndexed(FlowGraph* flow_graph) {
if (Isolate::Current()->argument_type_checks()) {
return false;
}
+ return Build_GrowableArraySetIndexedUnchecked(flow_graph);
+}
+
+bool Intrinsifier::Build_GrowableArraySetIndexedUnchecked(
+ FlowGraph* flow_graph) {
GraphEntryInstr* graph_entry = flow_graph->graph_entry();
TargetEntryInstr* normal_entry = graph_entry->normal_entry();
BlockBuilder builder(flow_graph, normal_entry);
diff --git a/runtime/vm/compiler/intrinsifier_arm.cc b/runtime/vm/compiler/intrinsifier_arm.cc
index 3181293..589f84d 100644
--- a/runtime/vm/compiler/intrinsifier_arm.cc
+++ b/runtime/vm/compiler/intrinsifier_arm.cc
@@ -53,13 +53,8 @@
assembler->mov(LR, Operand(CALLEE_SAVED_TEMP));
}
-// Intrinsify only for Smi value and index. Non-smi values need a store buffer
-// update. Array length is always a Smi.
-void Intrinsifier::ObjectArraySetIndexed(Assembler* assembler) {
- if (Isolate::Current()->argument_type_checks()) {
- return;
- }
-
+// Intrinsify only for Smi index.
+void Intrinsifier::ObjectArraySetIndexedUnchecked(Assembler* assembler) {
Label fall_through;
__ ldr(R1, Address(SP, 1 * kWordSize)); // Index.
__ tst(R1, Operand(kSmiTagMask));
diff --git a/runtime/vm/compiler/intrinsifier_arm64.cc b/runtime/vm/compiler/intrinsifier_arm64.cc
index f4f07d4..c8aaf0a 100644
--- a/runtime/vm/compiler/intrinsifier_arm64.cc
+++ b/runtime/vm/compiler/intrinsifier_arm64.cc
@@ -57,13 +57,8 @@
assembler->mov(ARGS_DESC_REG, CALLEE_SAVED_TEMP2);
}
-// Intrinsify only for Smi value and index. Non-smi values need a store buffer
-// update. Array length is always a Smi.
-void Intrinsifier::ObjectArraySetIndexed(Assembler* assembler) {
- if (Isolate::Current()->argument_type_checks()) {
- return;
- }
-
+// Intrinsify only for Smi index.
+void Intrinsifier::ObjectArraySetIndexedUnchecked(Assembler* assembler) {
Label fall_through;
__ ldr(R1, Address(SP, 1 * kWordSize)); // Index.
__ BranchIfNotSmi(R1, &fall_through);
diff --git a/runtime/vm/compiler/intrinsifier_ia32.cc b/runtime/vm/compiler/intrinsifier_ia32.cc
index 0338c78..fe8b123 100644
--- a/runtime/vm/compiler/intrinsifier_ia32.cc
+++ b/runtime/vm/compiler/intrinsifier_ia32.cc
@@ -52,52 +52,9 @@
assembler->movl(ARGS_DESC_REG, CALLEE_SAVED_TEMP);
}
-static intptr_t ComputeObjectArrayTypeArgumentsOffset() {
- const Library& core_lib = Library::Handle(Library::CoreLibrary());
- const Class& cls =
- Class::Handle(core_lib.LookupClassAllowPrivate(Symbols::_List()));
- ASSERT(!cls.IsNull());
- ASSERT(cls.NumTypeArguments() == 1);
- const intptr_t field_offset = cls.type_arguments_field_offset();
- ASSERT(field_offset != Class::kNoTypeArguments);
- return field_offset;
-}
-
-// Intrinsify only for Smi value and index. Non-smi values need a store buffer
-// update. Array length is always a Smi.
-void Intrinsifier::ObjectArraySetIndexed(Assembler* assembler) {
+// Intrinsify only for Smi index.
+void Intrinsifier::ObjectArraySetIndexedUnchecked(Assembler* assembler) {
Label fall_through;
- if (Isolate::Current()->argument_type_checks()) {
- const intptr_t type_args_field_offset =
- ComputeObjectArrayTypeArgumentsOffset();
- // Inline simple tests (Smi, null), fallthrough if not positive.
- const Immediate& raw_null =
- Immediate(reinterpret_cast<intptr_t>(Object::null()));
- Label checked_ok;
- __ movl(EDI, Address(ESP, +1 * kWordSize)); // Value.
- // Null value is valid for any type.
- __ cmpl(EDI, raw_null);
- __ j(EQUAL, &checked_ok, Assembler::kNearJump);
-
- __ movl(EBX, Address(ESP, +3 * kWordSize)); // Array.
- __ movl(EBX, FieldAddress(EBX, type_args_field_offset));
- // EBX: Type arguments of array.
- __ cmpl(EBX, raw_null);
- __ j(EQUAL, &checked_ok, Assembler::kNearJump);
- // Check if it's dynamic.
- // Get type at index 0.
- __ movl(EAX, FieldAddress(EBX, TypeArguments::type_at_offset(0)));
- __ CompareObject(EAX, Object::dynamic_type());
- __ j(EQUAL, &checked_ok, Assembler::kNearJump);
- // Check for int and num.
- __ testl(EDI, Immediate(kSmiTagMask)); // Value is Smi?
- __ j(NOT_ZERO, &fall_through); // Non-smi value.
- __ CompareObject(EAX, Type::ZoneHandle(Type::IntType()));
- __ j(EQUAL, &checked_ok, Assembler::kNearJump);
- __ CompareObject(EAX, Type::ZoneHandle(Type::Number()));
- __ j(NOT_EQUAL, &fall_through);
- __ Bind(&checked_ok);
- }
__ movl(EBX, Address(ESP, +2 * kWordSize)); // Index.
__ testl(EBX, Immediate(kSmiTagMask));
// Index not Smi.
@@ -125,6 +82,7 @@
// EAX, EBX
// and the newly allocated object is returned in EAX.
const intptr_t kTypeArgumentsOffset = 2 * kWordSize;
+
const intptr_t kArrayOffset = 1 * kWordSize;
Label fall_through;
diff --git a/runtime/vm/compiler/intrinsifier_x64.cc b/runtime/vm/compiler/intrinsifier_x64.cc
index 6fa9e2a..636b71c 100644
--- a/runtime/vm/compiler/intrinsifier_x64.cc
+++ b/runtime/vm/compiler/intrinsifier_x64.cc
@@ -52,11 +52,7 @@
assembler->movq(ARGS_DESC_REG, CALLEE_SAVED_TEMP);
}
-void Intrinsifier::ObjectArraySetIndexed(Assembler* assembler) {
- if (Isolate::Current()->argument_type_checks()) {
- return;
- }
-
+void Intrinsifier::ObjectArraySetIndexedUnchecked(Assembler* assembler) {
Label fall_through;
__ movq(RDX, Address(RSP, +1 * kWordSize)); // Value.
__ movq(RCX, Address(RSP, +2 * kWordSize)); // Index.
diff --git a/runtime/vm/compiler/method_recognizer.cc b/runtime/vm/compiler/method_recognizer.cc
index b26e9f7..d8d86ce 100644
--- a/runtime/vm/compiler/method_recognizer.cc
+++ b/runtime/vm/compiler/method_recognizer.cc
@@ -41,10 +41,12 @@
case kObjectArrayGetIndexed:
case kObjectArraySetIndexed:
+ case kObjectArraySetIndexedUnchecked:
return kArrayCid;
case kGrowableArrayGetIndexed:
case kGrowableArraySetIndexed:
+ case kGrowableArraySetIndexedUnchecked:
return kGrowableObjectArrayCid;
case kFloat32ArrayGetIndexed:
diff --git a/runtime/vm/compiler/method_recognizer.h b/runtime/vm/compiler/method_recognizer.h
index f898671..67ae5b3 100644
--- a/runtime/vm/compiler/method_recognizer.h
+++ b/runtime/vm/compiler/method_recognizer.h
@@ -158,7 +158,7 @@
V(_Double, >=, Double_greaterEqualThan, Bool, 0x4260c184) \
V(_Double, <, Double_lessThan, Bool, 0x365d1eba) \
V(_Double, <=, Double_lessEqualThan, Bool, 0x74b5eb64) \
- V(_Double, ==, Double_equal, Bool, 0x7ec67775) \
+ V(_Double, ==, Double_equal, Bool, 0x613492fc) \
V(_Double, +, Double_add, Double, 0x53994370) \
V(_Double, -, Double_sub, Double, 0x3b69d466) \
V(_Double, *, Double_mul, Double, 0x2bb9bd5d) \
@@ -170,7 +170,8 @@
V(_Double, get:isNegative, Double_getIsNegative, Bool, 0x3a59e7f4) \
V(_Double, _mulFromInteger, Double_mulFromInteger, Double, 0x2017fcf6) \
V(_Double, .fromInteger, DoubleFromInteger, Double, 0x6d234f4b) \
- V(_List, []=, ObjectArraySetIndexed, Dynamic, 0x6dff776c) \
+ V(_List, _setIndexed, ObjectArraySetIndexedUnchecked, Dynamic, 0x50d64c75) \
+ V(_List, []=, ObjectArraySetIndexed, Dynamic, 0x16b3d2b0) \
V(_GrowableList, .withData, GrowableArray_Allocate, GrowableObjectArray, \
0x28b2138e) \
V(_GrowableList, add, GrowableArray_add, Dynamic, 0x40b490b8) \
@@ -224,7 +225,7 @@
V(_IntegerImplementation, _greaterThanFromInteger, \
Integer_greaterThanFromInt, Bool, 0x4a50ed58) \
V(_IntegerImplementation, >, Integer_greaterThan, Bool, 0x6599a6e1) \
- V(_IntegerImplementation, ==, Integer_equal, Bool, 0x6d56616e) \
+ V(_IntegerImplementation, ==, Integer_equal, Bool, 0x58abc487) \
V(_IntegerImplementation, _equalToInteger, Integer_equalToInteger, Bool, \
0x063be842) \
V(_IntegerImplementation, <, Integer_lessThan, Bool, 0x365d1eba) \
@@ -327,7 +328,9 @@
V(_GrowableList, _setData, GrowableArraySetData, Dynamic, 0x3dbea348) \
V(_GrowableList, _setLength, GrowableArraySetLength, Dynamic, 0x753e55da) \
V(_GrowableList, [], GrowableArrayGetIndexed, Dynamic, 0x446fe1f0) \
- V(_GrowableList, []=, GrowableArraySetIndexed, Dynamic, 0x4699aed6) \
+ V(_GrowableList, []=, GrowableArraySetIndexed, Dynamic, 0x40a462ec) \
+ V(_GrowableList, _setIndexed, GrowableArraySetIndexedUnchecked, Dynamic, \
+ 0x297083df) \
V(_StringBase, get:length, StringBaseLength, Smi, 0x2a2d03d1) \
V(_OneByteString, codeUnitAt, OneByteStringCodeUnitAt, Smi, 0x55a0a1f3) \
V(_TwoByteString, codeUnitAt, TwoByteStringCodeUnitAt, Smi, 0x55a0a1f3) \
@@ -469,7 +472,7 @@
V(_Double, >=, Double_greaterEqualThan, 0x4260c184) \
V(_Double, <, Double_lessThan, 0x365d1eba) \
V(_Double, <=, Double_lessEqualThan, 0x74b5eb64) \
- V(_Double, ==, Double_equal, 0x7ec67775) \
+ V(_Double, ==, Double_equal, 0x613492fc) \
V(_Double, +, Double_add, 0x53994370) \
V(_Double, -, Double_sub, 0x3b69d466) \
V(_Double, *, Double_mul, 0x2bb9bd5d) \
@@ -483,7 +486,7 @@
V(_IntegerImplementation, |, Integer_bitOr, 0x22d38a06) \
V(_IntegerImplementation, ^, Integer_bitXor, 0x79078347) \
V(_IntegerImplementation, >, Integer_greaterThan, 0x6599a6e1) \
- V(_IntegerImplementation, ==, Integer_equal, 0x6d56616e) \
+ V(_IntegerImplementation, ==, Integer_equal, 0x58abc487) \
V(_IntegerImplementation, <, Integer_lessThan, 0x365d1eba) \
V(_IntegerImplementation, <=, Integer_lessEqualThan, 0x74b5eb64) \
V(_IntegerImplementation, >=, Integer_greaterEqualThan, 0x4260c184) \
diff --git a/runtime/vm/dart_api_impl.cc b/runtime/vm/dart_api_impl.cc
index 1f5959f..df541f8 100644
--- a/runtime/vm/dart_api_impl.cc
+++ b/runtime/vm/dart_api_impl.cc
@@ -1447,6 +1447,11 @@
T->isolate()->heap()->NotifyIdle(deadline);
}
+DART_EXPORT void Dart_NotifyLowMemory() {
+ API_TIMELINE_BEGIN_END;
+ Isolate::NotifyLowMemory();
+}
+
DART_EXPORT void Dart_ExitIsolate() {
Thread* T = Thread::Current();
CHECK_ISOLATE(T->isolate());
@@ -4487,6 +4492,9 @@
DART_EXPORT Dart_Handle Dart_CreateNativeWrapperClass(Dart_Handle library,
Dart_Handle name,
int field_count) {
+#if defined(DART_PRECOMPILED_RUNTIME)
+ return Api::NewError("%s: Cannot compile on an AOT runtime.", CURRENT_FUNC);
+#else
DARTSCOPE(Thread::Current());
const String& cls_name = Api::UnwrapStringHandle(Z, name);
if (cls_name.IsNull()) {
@@ -4510,6 +4518,7 @@
"Unable to create native wrapper class : already exists");
}
return Api::NewHandle(T, cls.RareType());
+#endif // defined(DART_PRECOMPILED_RUNTIME)
}
DART_EXPORT Dart_Handle Dart_GetNativeInstanceFieldCount(Dart_Handle obj,
@@ -4993,6 +5002,7 @@
return Api::NewHandle(T, String::New(resolved_uri));
}
+#if !defined(DART_PRECOMPILED_RUNTIME)
// NOTE: Need to pass 'result' as a parameter here in order to avoid
// warning: variable 'result' might be clobbered by 'longjmp' or 'vfork'
// which shows up because of the use of setjmp.
@@ -5018,7 +5028,6 @@
}
}
-#if !defined(DART_PRECOMPILED_RUNTIME)
static Dart_Handle LoadKernelProgram(Thread* T,
const String& url,
void* kernel) {
@@ -5029,13 +5038,16 @@
delete program;
return Api::NewHandle(T, tmp.raw());
}
-#endif
+#endif // !defined(DART_PRECOMPILED_RUNTIME)
DART_EXPORT Dart_Handle Dart_LoadScript(Dart_Handle url,
Dart_Handle resolved_url,
Dart_Handle source,
intptr_t line_offset,
intptr_t column_offset) {
+#if defined(DART_PRECOMPILED_RUNTIME)
+ return Api::NewError("%s: Cannot compile on an AOT runtime.", CURRENT_FUNC);
+#else
API_TIMELINE_DURATION;
DARTSCOPE(Thread::Current());
Isolate* I = T->isolate();
@@ -5068,7 +5080,6 @@
CHECK_COMPILATION_ALLOWED(I);
Dart_Handle result;
-#if !defined(DART_PRECOMPILED_RUNTIME)
if (I->use_dart_frontend()) {
if ((source == Api::Null()) || (source == NULL)) {
RETURN_NULL_ERROR(source);
@@ -5091,7 +5102,6 @@
I->object_store()->set_root_library(library);
return Api::NewHandle(T, library.raw());
}
-#endif
const String& source_str = Api::UnwrapStringHandle(Z, source);
if (source_str.IsNull()) {
@@ -5111,10 +5121,14 @@
script.SetLocationOffset(line_offset, column_offset);
CompileSource(T, library, script, &result);
return result;
+#endif // defined(DART_PRECOMPILED_RUNTIME)
}
DART_EXPORT Dart_Handle Dart_LoadScriptFromSnapshot(const uint8_t* buffer,
intptr_t buffer_len) {
+#if defined(DART_PRECOMPILED_RUNTIME)
+ return Api::NewError("%s: Cannot compile on an AOT runtime.", CURRENT_FUNC);
+#else
API_TIMELINE_DURATION;
DARTSCOPE(Thread::Current());
Isolate* I = T->isolate();
@@ -5172,6 +5186,7 @@
library.set_debuggable(true);
I->object_store()->set_root_library(library);
return Api::NewHandle(T, library.raw());
+#endif // defined(DART_PRECOMPILED_RUNTIME)
}
DART_EXPORT void* Dart_ReadKernelBinary(const uint8_t* buffer,
@@ -5189,14 +5204,12 @@
}
DART_EXPORT Dart_Handle Dart_LoadKernel(void* kernel_program) {
+#if defined(DART_PRECOMPILED_RUNTIME)
+ return Api::NewError("%s: Cannot compile on an AOT runtime.", CURRENT_FUNC);
+#else
API_TIMELINE_DURATION;
DARTSCOPE(Thread::Current());
StackZone zone(T);
-
-#if defined(DART_PRECOMPILED_RUNTIME)
- return Api::NewError("%s: Can't load Kernel files from precompiled runtime.",
- CURRENT_FUNC);
-#else
Isolate* I = T->isolate();
Library& library = Library::Handle(Z, I->object_store()->root_library());
@@ -5227,7 +5240,7 @@
library ^= tmp.raw();
I->object_store()->set_root_library(library);
return Api::NewHandle(T, library.raw());
-#endif
+#endif // defined(DART_PRECOMPILED_RUNTIME)
}
DART_EXPORT Dart_Handle Dart_RootLibrary() {
@@ -5420,6 +5433,9 @@
Dart_Handle source,
intptr_t line_offset,
intptr_t column_offset) {
+#if defined(DART_PRECOMPILED_RUNTIME)
+ return Api::NewError("%s: Cannot compile on an AOT runtime.", CURRENT_FUNC);
+#else
API_TIMELINE_DURATION;
DARTSCOPE(Thread::Current());
Isolate* I = T->isolate();
@@ -5429,7 +5445,6 @@
RETURN_TYPE_ERROR(Z, url, String);
}
Dart_Handle result;
-#if !defined(DART_PRECOMPILED_RUNTIME)
if (I->use_dart_frontend()) {
void* kernel_pgm = reinterpret_cast<void*>(source);
result = LoadKernelProgram(T, url_str, kernel_pgm);
@@ -5438,7 +5453,6 @@
}
return Api::NewHandle(T, Library::LookupLibrary(T, url_str));
}
-#endif
if (::Dart_IsNull(resolved_url)) {
resolved_url = url;
}
@@ -5493,11 +5507,15 @@
}
}
return result;
+#endif // defined(DART_PRECOMPILED_RUNTIME)
}
DART_EXPORT Dart_Handle Dart_LibraryImportLibrary(Dart_Handle library,
Dart_Handle import,
Dart_Handle prefix) {
+#if defined(DART_PRECOMPILED_RUNTIME)
+ return Api::NewError("%s: Cannot compile on an AOT runtime.", CURRENT_FUNC);
+#else
DARTSCOPE(Thread::Current());
Isolate* I = T->isolate();
const Library& library_vm = Api::UnwrapLibraryHandle(Z, library);
@@ -5534,6 +5552,7 @@
}
}
return Api::Success();
+#endif // defined(DART_PRECOMPILED_RUNTIME)
}
DART_EXPORT Dart_Handle Dart_GetImportsOfScheme(Dart_Handle scheme) {
@@ -5577,6 +5596,9 @@
Dart_Handle source,
intptr_t line_offset,
intptr_t column_offset) {
+#if defined(DART_PRECOMPILED_RUNTIME)
+ return Api::NewError("%s: Cannot compile on an AOT runtime.", CURRENT_FUNC);
+#else
API_TIMELINE_DURATION;
DARTSCOPE(Thread::Current());
Isolate* I = T->isolate();
@@ -5619,11 +5641,15 @@
Dart_Handle result;
CompileSource(T, lib, script, &result);
return result;
+#endif // defined(DART_PRECOMPILED_RUNTIME)
}
DART_EXPORT Dart_Handle Dart_LibraryLoadPatch(Dart_Handle library,
Dart_Handle url,
Dart_Handle patch_source) {
+#if defined(DART_PRECOMPILED_RUNTIME)
+ return Api::NewError("%s: Cannot compile on an AOT runtime.", CURRENT_FUNC);
+#else
API_TIMELINE_DURATION;
DARTSCOPE(Thread::Current());
Isolate* I = T->isolate();
@@ -5649,6 +5675,7 @@
Dart_Handle result;
CompileSource(T, lib, script, &result);
return result;
+#endif // defined(DART_PRECOMPILED_RUNTIME)
}
// Finalizes classes and invokes Dart core library function that completes
@@ -6278,6 +6305,9 @@
DART_EXPORT
Dart_Handle Dart_SaveCompilationTrace(uint8_t** buffer,
intptr_t* buffer_length) {
+#if defined(DART_PRECOMPILED_RUNTIME)
+ return Api::NewError("%s: Cannot compile on an AOT runtime.", CURRENT_FUNC);
+#else
API_TIMELINE_DURATION;
Thread* thread = Thread::Current();
DARTSCOPE(thread);
@@ -6287,10 +6317,14 @@
ProgramVisitor::VisitFunctions(&saver);
saver.StealBuffer(buffer, buffer_length);
return Api::Success();
+#endif // defined(DART_PRECOMPILED_RUNTIME)
}
DART_EXPORT
Dart_Handle Dart_LoadCompilationTrace(uint8_t* buffer, intptr_t buffer_length) {
+#if defined(DART_PRECOMPILED_RUNTIME)
+ return Api::NewError("%s: Cannot compile on an AOT runtime.", CURRENT_FUNC);
+#else
Thread* thread = Thread::Current();
API_TIMELINE_DURATION;
DARTSCOPE(thread);
@@ -6302,6 +6336,7 @@
return Api::NewHandle(T, Error::Cast(error).raw());
}
return Api::Success();
+#endif // defined(DART_PRECOMPILED_RUNTIME)
}
DART_EXPORT
@@ -6461,6 +6496,9 @@
}
DART_EXPORT Dart_Handle Dart_SortClasses() {
+#if defined(DART_PRECOMPILED_RUNTIME)
+ return Api::NewError("%s: Cannot compile on an AOT runtime.", CURRENT_FUNC);
+#else
DARTSCOPE(Thread::Current());
// We don't have mechanisms to change class-ids that are embedded in code and
// ICData.
@@ -6470,6 +6508,7 @@
Isolate::Current()->heap()->CollectAllGarbage();
ClassFinalizer::SortClasses();
return Api::Success();
+#endif // defined(DART_PRECOMPILED_RUNTIME)
}
DART_EXPORT Dart_Handle
diff --git a/runtime/vm/dart_api_impl_test.cc b/runtime/vm/dart_api_impl_test.cc
index bb58425..5fcd3ba 100644
--- a/runtime/vm/dart_api_impl_test.cc
+++ b/runtime/vm/dart_api_impl_test.cc
@@ -1240,7 +1240,7 @@
Thread* thread = Thread::Current();
PageSpace* old_space = thread->isolate()->heap()->old_space();
MonitorLocker ml(old_space->tasks_lock());
- while (old_space->tasks() > 0) {
+ while (old_space->sweeper_tasks() > 0) {
ml.WaitWithSafepointCheck(thread);
}
}
@@ -9086,8 +9086,6 @@
static Dart_NativeFunction NotifyIdle_native_lookup(Dart_Handle name,
int argument_count,
bool* auto_setup_scope) {
- ASSERT(auto_setup_scope != NULL);
- *auto_setup_scope = true;
return reinterpret_cast<Dart_NativeFunction>(&NotifyIdleNative);
}
@@ -9107,13 +9105,39 @@
"}\n";
Dart_Handle lib =
TestCase::LoadTestScript(kScriptChars, &NotifyIdle_native_lookup);
- Dart_Handle result;
+ Dart_Handle result = Dart_Invoke(lib, NewString("main"), 0, NULL);
+ EXPECT_VALID(result);
+}
- // Use Dart_PropagateError to propagate the error.
- use_throw_exception = false;
- use_set_return = false;
+void NotifyLowMemoryNative(Dart_NativeArguments args) {
+ Dart_NotifyLowMemory();
+}
- result = Dart_Invoke(lib, NewString("main"), 0, NULL);
+static Dart_NativeFunction NotifyLowMemory_native_lookup(
+ Dart_Handle name,
+ int argument_count,
+ bool* auto_setup_scope) {
+ return reinterpret_cast<Dart_NativeFunction>(&NotifyLowMemoryNative);
+}
+
+TEST_CASE(DartAPI_NotifyLowMemory) {
+ const char* kScriptChars =
+ "import 'dart:isolate';\n"
+ "void notifyLowMemory() native 'Test_nativeFunc';\n"
+ "void main() {\n"
+ " var v;\n"
+ " for (var i = 0; i < 100; i++) {\n"
+ " var t = new List();\n"
+ " for (var j = 0; j < 10000; j++) {\n"
+ " t.add(new List(100));\n"
+ " }\n"
+ " v = t;\n"
+ " notifyLowMemory();\n"
+ " }\n"
+ "}\n";
+ Dart_Handle lib =
+ TestCase::LoadTestScript(kScriptChars, &NotifyLowMemory_native_lookup);
+ Dart_Handle result = Dart_Invoke(lib, NewString("main"), 0, NULL);
EXPECT_VALID(result);
}
diff --git a/runtime/vm/dart_entry.cc b/runtime/vm/dart_entry.cc
index 5e548a6..5fab765 100644
--- a/runtime/vm/dart_entry.cc
+++ b/runtime/vm/dart_entry.cc
@@ -189,9 +189,7 @@
function ^= cls.LookupDynamicFunction(getter_name);
if (!function.IsNull()) {
Isolate* isolate = thread->isolate();
- uword c_stack_pos = Thread::GetCurrentStackPointer();
- uword c_stack_limit = OSThread::Current()->stack_limit_with_headroom();
- if (c_stack_pos < c_stack_limit) {
+ if (!OSThread::Current()->HasStackHeadroom()) {
const Instance& exception =
Instance::Handle(zone, isolate->object_store()->stack_overflow());
return UnhandledException::New(exception, StackTrace::Handle(zone));
diff --git a/runtime/vm/dart_entry.h b/runtime/vm/dart_entry.h
index 1bea3cf..79ba34b 100644
--- a/runtime/vm/dart_entry.h
+++ b/runtime/vm/dart_entry.h
@@ -229,7 +229,7 @@
const Function& function,
const Array& arguments,
const Array& arguments_descriptor,
- uword current_sp = Thread::GetCurrentStackPointer());
+ uword current_sp = OSThread::GetCurrentStackPointer());
// Invokes the closure object given as the first argument.
// On success, returns a RawInstance. On failure, a RawError.
diff --git a/runtime/vm/exceptions.cc b/runtime/vm/exceptions.cc
index 12197d8..01ff1c8 100644
--- a/runtime/vm/exceptions.cc
+++ b/runtime/vm/exceptions.cc
@@ -478,7 +478,7 @@
StubCode::JumpToFrame_entry()->EntryPoint());
// Unpoison the stack before we tear it down in the generated stub code.
- uword current_sp = Thread::GetCurrentStackPointer() - 1024;
+ uword current_sp = OSThread::GetCurrentStackPointer() - 1024;
ASAN_UNPOISON(reinterpret_cast<void*>(current_sp),
stack_pointer - current_sp);
diff --git a/runtime/vm/gc_sweeper.cc b/runtime/vm/gc_sweeper.cc
index a064f2d..57e5463 100644
--- a/runtime/vm/gc_sweeper.cc
+++ b/runtime/vm/gc_sweeper.cc
@@ -115,7 +115,7 @@
ASSERT(last_ != NULL);
ASSERT(freelist_ != NULL);
MonitorLocker ml(old_space_->tasks_lock());
- old_space_->set_tasks(old_space_->tasks() + 1);
+ old_space_->set_sweeper_tasks(old_space_->sweeper_tasks() + 1);
}
virtual void Run() {
@@ -155,7 +155,7 @@
// This sweeper task is done. Notify the original isolate.
{
MonitorLocker ml(old_space_->tasks_lock());
- old_space_->set_tasks(old_space_->tasks() - 1);
+ old_space_->set_sweeper_tasks(old_space_->sweeper_tasks() - 1);
ml.NotifyAll();
}
}
diff --git a/runtime/vm/globals.h b/runtime/vm/globals.h
index e7471bc..3a5441d 100644
--- a/runtime/vm/globals.h
+++ b/runtime/vm/globals.h
@@ -114,7 +114,7 @@
#elif defined(HOST_ARCH_X64)
// We don't have the asm equivalent to get at the frame pointer on
// windows x64, return the stack pointer instead.
-#define COPY_FP_REGISTER(fp) fp = Thread::GetCurrentStackPointer();
+#define COPY_FP_REGISTER(fp) fp = OSThread::GetCurrentStackPointer();
#else
#error Unknown host architecture.
#endif
diff --git a/runtime/vm/heap.cc b/runtime/vm/heap.cc
index 2cb66ff..cb10990f 100644
--- a/runtime/vm/heap.cc
+++ b/runtime/vm/heap.cc
@@ -21,6 +21,7 @@
#include "vm/service_isolate.h"
#include "vm/stack_frame.h"
#include "vm/tags.h"
+#include "vm/thread_pool.h"
#include "vm/timeline.h"
#include "vm/verifier.h"
#include "vm/virtual_memory.h"
@@ -204,14 +205,14 @@
// We currently don't support nesting of HeapIterationScopes.
ASSERT(old_space_->iterating_thread_ != thread);
#endif
- while (old_space_->tasks() > 0) {
+ while (old_space_->sweeper_tasks() > 0) {
ml.WaitWithSafepointCheck(thread);
}
#if defined(DEBUG)
ASSERT(old_space_->iterating_thread_ == NULL);
old_space_->iterating_thread_ = thread;
#endif
- old_space_->set_tasks(1);
+ old_space_->set_sweeper_tasks(1);
}
isolate()->safepoint_handler()->SafepointThreads(thread);
@@ -233,8 +234,8 @@
ASSERT(old_space_->iterating_thread_ == thread());
old_space_->iterating_thread_ = NULL;
#endif
- ASSERT(old_space_->tasks() == 1);
- old_space_->set_tasks(0);
+ ASSERT(old_space_->sweeper_tasks() == 1);
+ old_space_->set_sweeper_tasks(0);
ml.NotifyAll();
}
@@ -349,17 +350,6 @@
ml.NotifyAll();
}
-#ifndef PRODUCT
-void Heap::UpdateClassHeapStatsBeforeGC(Heap::Space space) {
- ClassTable* class_table = isolate()->class_table();
- if (space == kNew) {
- class_table->ResetCountersNew();
- } else {
- class_table->ResetCountersOld();
- }
-}
-#endif
-
void Heap::NotifyIdle(int64_t deadline) {
Thread* thread = Thread::Current();
if (new_space_.ShouldPerformIdleScavenge(deadline)) {
@@ -375,15 +365,58 @@
}
}
+class LowMemoryTask : public ThreadPool::Task {
+ public:
+ explicit LowMemoryTask(Isolate* isolate) : task_isolate_(isolate) {}
+
+ virtual void Run() {
+ bool result =
+ Thread::EnterIsolateAsHelper(task_isolate_, Thread::kLowMemoryTask);
+ ASSERT(result);
+ Heap* heap = task_isolate_->heap();
+ {
+ TIMELINE_FUNCTION_GC_DURATION(Thread::Current(), "LowMemoryTask");
+ heap->CollectAllGarbage(Heap::kLowMemory);
+ }
+ // Exit isolate cleanly *before* notifying it, to avoid shutdown race.
+ Thread::ExitIsolateAsHelper();
+ // This compactor task is done. Notify the original isolate.
+ {
+ MonitorLocker ml(heap->old_space()->tasks_lock());
+ heap->old_space()->set_low_memory_tasks(
+ heap->old_space()->low_memory_tasks() - 1);
+ ml.NotifyAll();
+ }
+ }
+
+ private:
+ Isolate* task_isolate_;
+};
+
+void Heap::NotifyLowMemory() {
+ {
+ MonitorLocker ml(old_space_.tasks_lock());
+ if (old_space_.low_memory_tasks() > 0) {
+ return;
+ }
+ old_space_.set_low_memory_tasks(old_space_.low_memory_tasks() + 1);
+ }
+
+ bool success = Dart::thread_pool()->Run(new LowMemoryTask(isolate()));
+ if (!success) {
+ MonitorLocker ml(old_space_.tasks_lock());
+ old_space_.set_low_memory_tasks(old_space_.low_memory_tasks() - 1);
+ ml.NotifyAll();
+ }
+}
+
void Heap::EvacuateNewSpace(Thread* thread, GCReason reason) {
- ASSERT(reason == kFull);
+ ASSERT((reason == kFull) || (reason == kLowMemory));
if (BeginNewSpaceGC(thread)) {
- RecordBeforeGC(kNew, kFull);
+ RecordBeforeGC(kNew, reason);
VMTagScope tagScope(thread, VMTag::kGCNewSpaceTagId);
TIMELINE_FUNCTION_GC_DURATION(thread, "EvacuateNewGeneration");
- NOT_IN_PRODUCT(UpdateClassHeapStatsBeforeGC(kNew));
new_space_.Evacuate();
- NOT_IN_PRODUCT(isolate()->class_table()->UpdatePromoted());
RecordAfterGC(kNew);
PrintStats();
NOT_IN_PRODUCT(PrintStatsToTimeline(&tds, reason));
@@ -393,15 +426,13 @@
void Heap::CollectNewSpaceGarbage(Thread* thread,
GCReason reason) {
- ASSERT((reason == kNewSpace) || (reason == kFull) || (reason == kIdle));
+ ASSERT((reason != kOldSpace) && (reason != kPromotion));
if (BeginNewSpaceGC(thread)) {
RecordBeforeGC(kNew, reason);
{
VMTagScope tagScope(thread, VMTag::kGCNewSpaceTagId);
TIMELINE_FUNCTION_GC_DURATION_BASIC(thread, "CollectNewGeneration");
- NOT_IN_PRODUCT(UpdateClassHeapStatsBeforeGC(kNew));
new_space_.Scavenge();
- NOT_IN_PRODUCT(isolate()->class_table()->UpdatePromoted());
RecordAfterGC(kNew);
PrintStats();
NOT_IN_PRODUCT(PrintStatsToTimeline(&tds, reason));
@@ -420,8 +451,8 @@
RecordBeforeGC(kOld, reason);
VMTagScope tagScope(thread, VMTag::kGCOldSpaceTagId);
TIMELINE_FUNCTION_GC_DURATION_BASIC(thread, "CollectOldGeneration");
- NOT_IN_PRODUCT(UpdateClassHeapStatsBeforeGC(kOld));
- bool compact = (reason == kCompaction) || FLAG_use_compactor;
+ bool compact =
+ (reason == kCompaction) || (reason == kLowMemory) || FLAG_use_compactor;
old_space_.CollectGarbage(compact);
RecordAfterGC(kOld);
PrintStats();
@@ -461,18 +492,18 @@
}
}
-void Heap::CollectAllGarbage() {
+void Heap::CollectAllGarbage(GCReason reason) {
Thread* thread = Thread::Current();
// New space is evacuated so this GC will collect all dead objects
// kept alive by a cross-generational pointer.
- EvacuateNewSpace(thread, kFull);
- CollectOldSpaceGarbage(thread, kFull);
+ EvacuateNewSpace(thread, reason);
+ CollectOldSpaceGarbage(thread, reason);
}
void Heap::WaitForSweeperTasks(Thread* thread) {
MonitorLocker ml(old_space_.tasks_lock());
- while (old_space_.tasks() > 0) {
+ while (old_space_.sweeper_tasks() > 0) {
ml.WaitWithSafepointCheck(thread);
}
}
@@ -643,6 +674,8 @@
return "full";
case kIdle:
return "idle";
+ case kLowMemory:
+ return "low memory";
case kGCAtAlloc:
return "debugging";
case kGCTestCase:
diff --git a/runtime/vm/heap.h b/runtime/vm/heap.h
index b8bcf3a..79e81b2 100644
--- a/runtime/vm/heap.h
+++ b/runtime/vm/heap.h
@@ -48,6 +48,7 @@
kCompaction,
kFull,
kIdle,
+ kLowMemory,
kGCAtAlloc,
kGCTestCase,
};
@@ -106,10 +107,11 @@
RawObject* FindObject(FindObjectVisitor* visitor) const;
void NotifyIdle(int64_t deadline);
+ void NotifyLowMemory();
void CollectGarbage(Space space);
void CollectGarbage(Space space, GCReason reason);
- void CollectAllGarbage();
+ void CollectAllGarbage(GCReason reason = kFull);
bool NeedsGarbageCollection() const {
return old_space_.NeedsGarbageCollection();
}
@@ -321,7 +323,6 @@
void RecordBeforeGC(Space space, GCReason reason);
void RecordAfterGC(Space space);
void PrintStats();
- void UpdateClassHeapStatsBeforeGC(Heap::Space space);
void PrintStatsToTimeline(TimelineEventScope* event, GCReason reason);
// Updates gc in progress flags.
diff --git a/runtime/vm/instructions_arm.cc b/runtime/vm/instructions_arm.cc
index 3002c16..a605542 100644
--- a/runtime/vm/instructions_arm.cc
+++ b/runtime/vm/instructions_arm.cc
@@ -199,7 +199,7 @@
if (IsLoadWithOffset(instr, PP, &offset, &dst)) {
intptr_t index = ObjectPool::IndexFromOffset(offset);
const ObjectPool& pool = ObjectPool::Handle(code.object_pool());
- if (pool.InfoAt(index) == ObjectPool::kTaggedObject) {
+ if (pool.TypeAt(index) == ObjectPool::kTaggedObject) {
*obj = pool.ObjectAt(index);
return true;
}
diff --git a/runtime/vm/instructions_arm64.cc b/runtime/vm/instructions_arm64.cc
index f35ae9b..8ac564f 100644
--- a/runtime/vm/instructions_arm64.cc
+++ b/runtime/vm/instructions_arm64.cc
@@ -258,7 +258,7 @@
ASSERT(Utils::IsAligned(offset, 8));
intptr_t index = ObjectPool::IndexFromOffset(offset - kHeapObjectTag);
const ObjectPool& pool = ObjectPool::Handle(code.object_pool());
- if (pool.InfoAt(index) == ObjectPool::kTaggedObject) {
+ if (pool.TypeAt(index) == ObjectPool::kTaggedObject) {
*obj = pool.ObjectAt(index);
return true;
}
diff --git a/runtime/vm/instructions_dbc.cc b/runtime/vm/instructions_dbc.cc
index b44cfec..40877c7 100644
--- a/runtime/vm/instructions_dbc.cc
+++ b/runtime/vm/instructions_dbc.cc
@@ -43,7 +43,7 @@
Instr instr = Bytecode::At(pc);
if (HasLoadFromPool(instr)) {
uint16_t index = Bytecode::DecodeD(instr);
- if (object_pool.InfoAt(index) == ObjectPool::kTaggedObject) {
+ if (object_pool.TypeAt(index) == ObjectPool::kTaggedObject) {
*obj = object_pool.ObjectAt(index);
return true;
}
diff --git a/runtime/vm/instructions_x64.cc b/runtime/vm/instructions_x64.cc
index d998642..da8a4cb 100644
--- a/runtime/vm/instructions_x64.cc
+++ b/runtime/vm/instructions_x64.cc
@@ -25,7 +25,7 @@
if ((bytes[2] & 0xc7) == (0x80 | (PP & 7))) { // [r15+disp32]
intptr_t index = IndexFromPPLoad(pc + 3);
const ObjectPool& pool = ObjectPool::Handle(code.object_pool());
- if (pool.InfoAt(index) == ObjectPool::kTaggedObject) {
+ if (pool.TypeAt(index) == ObjectPool::kTaggedObject) {
*obj = pool.ObjectAt(index);
return true;
}
@@ -33,7 +33,7 @@
if ((bytes[2] & 0xc7) == (0x40 | (PP & 7))) { // [r15+disp8]
intptr_t index = IndexFromPPLoadDisp8(pc + 3);
const ObjectPool& pool = ObjectPool::Handle(code.object_pool());
- if (pool.InfoAt(index) == ObjectPool::kTaggedObject) {
+ if (pool.TypeAt(index) == ObjectPool::kTaggedObject) {
*obj = pool.ObjectAt(index);
return true;
}
diff --git a/runtime/vm/isolate.cc b/runtime/vm/isolate.cc
index 2431072..0c98b61 100644
--- a/runtime/vm/isolate.cc
+++ b/runtime/vm/isolate.cc
@@ -84,9 +84,6 @@
if (value) {
FLAG_background_compilation = false;
FLAG_collect_code = false;
- // Parallel marking doesn't introduce non-determinism in the object
- // iteration order.
- FLAG_concurrent_sweep = false;
FLAG_random_seed = 0x44617274; // "Dart"
#if !defined(PRODUCT) && !defined(DART_PRECOMPILED_RUNTIME)
FLAG_load_deferred_eagerly = true;
@@ -1204,7 +1201,8 @@
return !ServiceIsolate::IsServiceIsolateDescendant(this) && is_runnable() &&
!IsReloading() &&
(AtomicOperations::LoadRelaxed(&no_reload_scope_depth_) == 0) &&
- IsolateCreationEnabled();
+ IsolateCreationEnabled() &&
+ OSThread::Current()->HasStackHeadroom(64 * KB);
}
bool Isolate::ReloadSources(JSONStream* js,
@@ -1700,6 +1698,25 @@
DISALLOW_COPY_AND_ASSIGN(FinalizeWeakPersistentHandlesVisitor);
};
+// static
+void Isolate::NotifyLowMemory() {
+ MonitorLocker ml(isolates_list_monitor_);
+ if (!creation_enabled_) {
+ return; // VM is shutting down
+ }
+ for (Isolate* isolate = isolates_list_head_; isolate != NULL;
+ isolate = isolate->next_) {
+ if (isolate == Dart::vm_isolate()) {
+ // Nothing to compact / isolate structure not completely initialized.
+ } else if (isolate == Isolate::Current()) {
+ isolate->heap()->NotifyLowMemory();
+ } else {
+ MutexLocker ml(isolate->mutex_);
+ isolate->heap()->NotifyLowMemory();
+ }
+ }
+}
+
void Isolate::LowLevelShutdown() {
// Ensure we have a zone and handle scope so that we can call VM functions,
// but we no longer allocate new heap objects.
@@ -1829,8 +1846,9 @@
// TODO(koda): Support faster sweeper shutdown (e.g., after current page).
PageSpace* old_space = heap_->old_space();
MonitorLocker ml(old_space->tasks_lock());
- while (old_space->tasks() > 0) {
- ml.Wait();
+ while (old_space->sweeper_tasks() > 0 ||
+ old_space->low_memory_tasks() > 0) {
+ ml.WaitWithSafepointCheck(thread);
}
}
@@ -1853,7 +1871,8 @@
if (heap_ != NULL) {
PageSpace* old_space = heap_->old_space();
MonitorLocker ml(old_space->tasks_lock());
- ASSERT(old_space->tasks() == 0);
+ ASSERT(old_space->sweeper_tasks() == 0);
+ ASSERT(old_space->low_memory_tasks() == 0);
}
#endif
diff --git a/runtime/vm/isolate.h b/runtime/vm/isolate.h
index f91655f..e87a521 100644
--- a/runtime/vm/isolate.h
+++ b/runtime/vm/isolate.h
@@ -748,6 +748,8 @@
void MaybeIncreaseReloadEveryNStackOverflowChecks();
+ static void NotifyLowMemory();
+
private:
friend class Dart; // Init, InitOnce, Shutdown.
friend class IsolateKillerVisitor; // Kill().
diff --git a/runtime/vm/longjump.cc b/runtime/vm/longjump.cc
index 8ea1415..e0a3ca7 100644
--- a/runtime/vm/longjump.cc
+++ b/runtime/vm/longjump.cc
@@ -25,7 +25,7 @@
// We do not want to jump past Dart frames. Note that this code
// assumes the stack grows from high to low.
Thread* thread = Thread::Current();
- uword jumpbuf_addr = Thread::GetCurrentStackPointer();
+ uword jumpbuf_addr = OSThread::GetCurrentStackPointer();
#if defined(USING_SIMULATOR)
Simulator* sim = Simulator::Current();
// When using simulator, only mutator thread should refer to Simulator
diff --git a/runtime/vm/native_api_impl.cc b/runtime/vm/native_api_impl.cc
index 53178ce..49db21a 100644
--- a/runtime/vm/native_api_impl.cc
+++ b/runtime/vm/native_api_impl.cc
@@ -106,46 +106,40 @@
// --- Verification tools ---
-static void CompileAll(Thread* thread, Dart_Handle* result) {
- ASSERT(thread != NULL);
- const Error& error = Error::Handle(thread->zone(), Library::CompileAll());
- if (error.IsNull()) {
- *result = Api::Success();
- } else {
- *result = Api::NewHandle(thread, error.raw());
- }
-}
-
DART_EXPORT Dart_Handle Dart_CompileAll() {
+#if defined(DART_PRECOMPILED_RUNTIME)
+ return Api::NewError("%s: Cannot compile on an AOT runtime.", CURRENT_FUNC);
+#else
DARTSCOPE(Thread::Current());
Dart_Handle result = Api::CheckAndFinalizePendingClasses(T);
if (::Dart_IsError(result)) {
return result;
}
CHECK_CALLBACK_STATE(T);
- CompileAll(T, &result);
- return result;
-}
-
-static void ParseAll(Thread* thread, Dart_Handle* result) {
- ASSERT(thread != NULL);
- const Error& error = Error::Handle(thread->zone(), Library::ParseAll(thread));
- if (error.IsNull()) {
- *result = Api::Success();
- } else {
- *result = Api::NewHandle(thread, error.raw());
+ const Error& error = Error::Handle(T->zone(), Library::CompileAll());
+ if (!error.IsNull()) {
+ return Api::NewHandle(T, error.raw());
}
+ return Api::Success();
+#endif // defined(DART_PRECOMPILED_RUNTIME)
}
DART_EXPORT Dart_Handle Dart_ParseAll() {
+#if defined(DART_PRECOMPILED_RUNTIME)
+ return Api::NewError("%s: Cannot compile on an AOT runtime.", CURRENT_FUNC);
+#else
DARTSCOPE(Thread::Current());
Dart_Handle result = Api::CheckAndFinalizePendingClasses(T);
if (::Dart_IsError(result)) {
return result;
}
CHECK_CALLBACK_STATE(T);
- ParseAll(T, &result);
- return result;
+ const Error& error = Error::Handle(T->zone(), Library::ParseAll(T));
+ if (!error.IsNull()) {
+ return Api::NewHandle(T, error.raw());
+ }
+ return Api::Success();
+#endif // defined(DART_PRECOMPILED_RUNTIME)
}
} // namespace dart
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
index 3493bc2..863fd5c 100644
--- a/runtime/vm/object.cc
+++ b/runtime/vm/object.cc
@@ -3798,6 +3798,16 @@
return raw() == Type::Handle(Type::DartFunctionType()).type_class();
}
+bool Class::IsFutureClass() const {
+ return (library() == Library::AsyncLibrary()) &&
+ (Name() == Symbols::Future().raw());
+}
+
+bool Class::IsFutureOrClass() const {
+ return (library() == Library::AsyncLibrary()) &&
+ (Name() == Symbols::FutureOr().raw());
+}
+
// If test_kind == kIsSubtypeOf, checks if type S is a subtype of type T.
// If test_kind == kIsMoreSpecificThan, checks if S is more specific than T.
// Type S is specified by this class parameterized with 'type_arguments', and
@@ -3812,12 +3822,12 @@
Error* bound_error,
TrailPtr bound_trail,
Heap::Space space) {
- // Use the thsi object as if it was the receiver of this method, but instead
- // of recursing reset it to the super class and loop.
+ // Use the 'this_class' object as if it was the receiver of this method, but
+ // instead of recursing, reset it to the super class and loop.
Thread* thread = Thread::Current();
Zone* zone = thread->zone();
Isolate* isolate = thread->isolate();
- Class& thsi = Class::Handle(zone, cls.raw());
+ Class& this_class = Class::Handle(zone, cls.raw());
while (true) {
// Check for DynamicType.
// Each occurrence of DynamicType in type T is interpreted as the dynamic
@@ -3827,14 +3837,25 @@
}
// Check for NullType, which, as of Dart 1.5, is a subtype of (and is more
// specific than) any type. Note that the null instance is not handled here.
- if (thsi.IsNullClass()) {
+ if (this_class.IsNullClass()) {
+ return true;
+ }
+ // Class FutureOr is mapped to dynamic in non-strong mode.
+ // Detect snapshots compiled in strong mode and run in non-strong mode.
+ ASSERT(isolate->strong() || !other.IsFutureOrClass());
+ // In strong mode, check if 'other' is 'FutureOr'.
+ // If so, apply additional subtyping rules.
+ if (isolate->strong() &&
+ this_class.FutureOrTypeTest(zone, type_arguments, other,
+ other_type_arguments, bound_error,
+ bound_trail, space)) {
return true;
}
// In the case of a subtype test, each occurrence of DynamicType in type S
// is interpreted as the bottom type, a subtype of all types, but not in
// strong mode.
// However, DynamicType is not more specific than any type.
- if (thsi.IsDynamicClass()) {
+ if (this_class.IsDynamicClass()) {
return !isolate->strong() && (test_kind == Class::kIsSubtypeOf);
}
// Check for ObjectType. Any type that is not NullType or DynamicType
@@ -3844,16 +3865,16 @@
}
// If other is neither Object, dynamic or void, then ObjectType/VoidType
// can't be a subtype of other.
- if (thsi.IsObjectClass() || thsi.IsVoidClass()) {
+ if (this_class.IsObjectClass() || this_class.IsVoidClass()) {
return false;
}
// Check for reflexivity.
- if (thsi.raw() == other.raw()) {
- const intptr_t num_type_params = thsi.NumTypeParameters();
+ if (this_class.raw() == other.raw()) {
+ const intptr_t num_type_params = this_class.NumTypeParameters();
if (num_type_params == 0) {
return true;
}
- const intptr_t num_type_args = thsi.NumTypeArguments();
+ const intptr_t num_type_args = this_class.NumTypeArguments();
const intptr_t from_index = num_type_args - num_type_params;
// Since we do not truncate the type argument vector of a subclass (see
// below), we only check a subvector of the proper length.
@@ -3876,14 +3897,14 @@
if (other.IsDartFunctionClass()) {
// Check if type S has a call() method.
const Function& call_function =
- Function::Handle(zone, thsi.LookupCallFunctionForTypeTest());
+ Function::Handle(zone, this_class.LookupCallFunctionForTypeTest());
if (!call_function.IsNull()) {
return true;
}
}
// Check for 'direct super type' specified in the implements clause
// and check for transitivity at the same time.
- Array& interfaces = Array::Handle(zone, thsi.interfaces());
+ Array& interfaces = Array::Handle(zone, this_class.interfaces());
AbstractType& interface = AbstractType::Handle(zone);
Class& interface_class = Class::Handle(zone);
TypeArguments& interface_args = TypeArguments::Handle(zone);
@@ -3899,7 +3920,7 @@
// runtime if this type test returns false at compile time.
continue;
}
- ClassFinalizer::FinalizeType(thsi, interface);
+ ClassFinalizer::FinalizeType(this_class, interface);
interfaces.SetAt(i, interface);
}
if (interface.IsMalbounded()) {
@@ -3939,8 +3960,8 @@
}
}
// "Recurse" up the class hierarchy until we have reached the top.
- thsi = thsi.SuperClass();
- if (thsi.IsNull()) {
+ this_class = this_class.SuperClass();
+ if (this_class.IsNull()) {
return false;
}
}
@@ -3966,6 +3987,41 @@
space);
}
+bool Class::FutureOrTypeTest(Zone* zone,
+ const TypeArguments& type_arguments,
+ const Class& other,
+ const TypeArguments& other_type_arguments,
+ Error* bound_error,
+ TrailPtr bound_trail,
+ Heap::Space space) const {
+ // In strong mode, there is no difference between 'is subtype of' and
+ // 'is more specific than'.
+ ASSERT(Isolate::Current()->strong());
+ if (other.IsFutureOrClass()) {
+ if (other_type_arguments.IsNull()) {
+ return true;
+ }
+ const AbstractType& other_type_arg =
+ AbstractType::Handle(zone, other_type_arguments.TypeAt(0));
+ if (!type_arguments.IsNull() && IsFutureClass()) {
+ const AbstractType& type_arg =
+ AbstractType::Handle(zone, type_arguments.TypeAt(0));
+ if (type_arg.TypeTest(Class::kIsSubtypeOf, other_type_arg, bound_error,
+ bound_trail, space)) {
+ return true;
+ }
+ }
+ if (other_type_arg.IsType() &&
+ TypeTest(Class::kIsSubtypeOf, type_arguments,
+ Class::Handle(zone, other_type_arg.type_class()),
+ TypeArguments::Handle(other_type_arg.arguments()), bound_error,
+ bound_trail, space)) {
+ return true;
+ }
+ }
+ return false;
+}
+
bool Class::IsTopLevel() const {
return Name() == Symbols::TopLevel().raw();
}
@@ -6626,6 +6682,13 @@
if (!other_res_type.IsDynamicType() && !other_res_type.IsVoidType()) {
const AbstractType& res_type = AbstractType::Handle(zone, result_type());
if (res_type.IsVoidType()) {
+ // In strong mode, check if 'other' is 'FutureOr'.
+ // If so, apply additional subtyping rules.
+ if (isolate->strong() &&
+ res_type.FutureOrTypeTest(zone, other_res_type, bound_error,
+ bound_trail, space)) {
+ return true;
+ }
return false;
}
if (test_kind == kIsSubtypeOf) {
@@ -12328,25 +12391,14 @@
NoSafepointScope no_safepoint;
result ^= raw;
result.SetLength(len);
+ for (intptr_t i = 0; i < len; i++) {
+ result.SetTypeAt(i, ObjectPool::kImmediate);
+ }
}
- // TODO(fschneider): Compress info array to just use just enough bits for
- // the entry type enum.
- const TypedData& info_array = TypedData::Handle(
- TypedData::New(kTypedDataInt8ArrayCid, len, Heap::kOld));
- result.set_info_array(info_array);
return result.raw();
}
-void ObjectPool::set_info_array(const TypedData& info_array) const {
- StorePointer(&raw_ptr()->info_array_, info_array.raw());
-}
-
-ObjectPool::EntryType ObjectPool::InfoAt(intptr_t index) const {
- ObjectPoolInfo pool_info(*this);
- return pool_info.InfoAt(index);
-}
-
const char* ObjectPool::ToCString() const {
Zone* zone = Thread::Current()->zone();
return zone->PrintToString("ObjectPool len:%" Pd, Length());
@@ -12357,11 +12409,11 @@
for (intptr_t i = 0; i < Length(); i++) {
intptr_t offset = OffsetFromIndex(i);
THR_Print(" %" Pd " PP+0x%" Px ": ", i, offset);
- if (InfoAt(i) == kTaggedObject) {
+ if (TypeAt(i) == kTaggedObject) {
RawObject* obj = ObjectAt(i);
THR_Print("0x%" Px " %s (obj)\n", reinterpret_cast<uword>(obj),
Object::Handle(obj).ToCString());
- } else if (InfoAt(i) == kNativeEntry) {
+ } else if (TypeAt(i) == kNativeEntry) {
THR_Print("0x%" Px " (native entry)\n", RawValueAt(i));
} else {
THR_Print("0x%" Px " (raw)\n", RawValueAt(i));
@@ -15673,7 +15725,9 @@
if (other.IsVoidType()) {
return true;
}
- Zone* zone = Thread::Current()->zone();
+ Thread* thread = Thread::Current();
+ Zone* zone = thread->zone();
+ Isolate* isolate = thread->isolate();
const Class& cls = Class::Handle(zone, clazz());
if (cls.IsClosureClass()) {
if (other.IsObjectType() || other.IsDartFunctionType() ||
@@ -15700,6 +15754,10 @@
return true;
}
}
+ if (isolate->strong() &&
+ IsFutureOrInstanceOf(zone, instantiated_other, bound_error)) {
+ return true;
+ }
if (!instantiated_other.IsFunctionType()) {
return false;
}
@@ -15789,12 +15847,50 @@
ASSERT(cls.IsNullClass());
// As of Dart 1.5, the null instance and Null type are handled differently.
// We already checked other for dynamic and void.
+ if (isolate->strong() &&
+ IsFutureOrInstanceOf(zone, instantiated_other, bound_error)) {
+ return true;
+ }
return other_class.IsNullClass() || other_class.IsObjectClass();
}
return cls.IsSubtypeOf(type_arguments, other_class, other_type_arguments,
bound_error, NULL, Heap::kOld);
}
+bool Instance::IsFutureOrInstanceOf(Zone* zone,
+ const AbstractType& other,
+ Error* bound_error) const {
+ ASSERT(Isolate::Current()->strong());
+ if (other.IsType() &&
+ Class::Handle(zone, other.type_class()).IsFutureOrClass()) {
+ if (other.arguments() == TypeArguments::null()) {
+ return true;
+ }
+ const TypeArguments& other_type_arguments =
+ TypeArguments::Handle(zone, other.arguments());
+ const AbstractType& other_type_arg =
+ AbstractType::Handle(zone, other_type_arguments.TypeAt(0));
+ if (Class::Handle(zone, clazz()).IsFutureClass()) {
+ const TypeArguments& type_arguments =
+ TypeArguments::Handle(zone, GetTypeArguments());
+ if (!type_arguments.IsNull()) {
+ const AbstractType& type_arg =
+ AbstractType::Handle(zone, type_arguments.TypeAt(0));
+ if (type_arg.IsSubtypeOf(other_type_arg, bound_error, NULL,
+ Heap::kOld)) {
+ return true;
+ }
+ }
+ }
+ // Retry the IsInstanceOf function after unwrapping type arg of FutureOr.
+ if (IsInstanceOf(other_type_arg, Object::null_type_arguments(),
+ Object::null_type_arguments(), bound_error)) {
+ return true;
+ }
+ }
+ return false;
+}
+
bool Instance::OperatorEquals(const Instance& other) const {
// TODO(koda): Optimize for all builtin classes and all classes
// that do not override operator==.
@@ -16455,7 +16551,9 @@
IsNullType()) {
return true;
}
- Zone* zone = Thread::Current()->zone();
+ Thread* thread = Thread::Current();
+ Zone* zone = thread->zone();
+ Isolate* isolate = thread->isolate();
if (IsBoundedType() || other.IsBoundedType()) {
if (Equals(other)) {
return true;
@@ -16533,6 +16631,12 @@
if (bound.IsMoreSpecificThan(other, bound_error, NULL, space)) {
return true;
}
+ // In strong mode, check if 'other' is 'FutureOr'.
+ // If so, apply additional subtyping rules.
+ if (isolate->strong() &&
+ FutureOrTypeTest(zone, other, bound_error, bound_trail, space)) {
+ return true;
+ }
return false; // TODO(regis): We should return "maybe after instantiation".
}
if (other.IsTypeParameter()) {
@@ -16574,6 +16678,12 @@
}
}
if (IsFunctionType()) {
+ // In strong mode, check if 'other' is 'FutureOr'.
+ // If so, apply additional subtyping rules.
+ if (isolate->strong() &&
+ FutureOrTypeTest(zone, other, bound_error, bound_trail, space)) {
+ return true;
+ }
return false;
}
return type_cls.TypeTest(test_kind, TypeArguments::Handle(zone, arguments()),
@@ -16582,6 +16692,36 @@
bound_error, bound_trail, space);
}
+bool AbstractType::FutureOrTypeTest(Zone* zone,
+ const AbstractType& other,
+ Error* bound_error,
+ TrailPtr bound_trail,
+ Heap::Space space) const {
+ // In strong mode, there is no difference between 'is subtype of' and
+ // 'is more specific than'.
+ ASSERT(Isolate::Current()->strong());
+ if (other.IsType() &&
+ Class::Handle(zone, other.type_class()).IsFutureOrClass()) {
+ if (other.arguments() == TypeArguments::null()) {
+ return true;
+ }
+ // This function is only called with a receiver that is void type, a
+ // function type, or an uninstantiated type parameter, therefore, it cannot
+ // be of class Future and we can spare the check.
+ ASSERT(IsVoidType() || IsFunctionType() || IsTypeParameter());
+ const TypeArguments& other_type_arguments =
+ TypeArguments::Handle(zone, other.arguments());
+ const AbstractType& other_type_arg =
+ AbstractType::Handle(zone, other_type_arguments.TypeAt(0));
+ // Retry the TypeTest function after unwrapping type arg of FutureOr.
+ if (TypeTest(Class::kIsSubtypeOf, other_type_arg, bound_error, bound_trail,
+ space)) {
+ return true;
+ }
+ }
+ return false;
+}
+
intptr_t AbstractType::Hash() const {
// AbstractType is an abstract class.
UNREACHABLE();
diff --git a/runtime/vm/object.h b/runtime/vm/object.h
index 9b9958f..9da8f8c 100644
--- a/runtime/vm/object.h
+++ b/runtime/vm/object.h
@@ -1111,6 +1111,12 @@
// Check if this class represents the 'Function' class.
bool IsDartFunctionClass() const;
+ // Check if this class represents the 'Future' class.
+ bool IsFutureClass() const;
+
+ // Check if this class represents the 'FutureOr' class.
+ bool IsFutureOrClass() const;
+
// Check if this class represents the 'Closure' class.
bool IsClosureClass() const { return id() == kClosureCid; }
static bool IsClosureClass(RawClass* cls) {
@@ -1540,6 +1546,17 @@
TrailPtr bound_trail,
Heap::Space space) const;
+ // Returns true if the type specified by this class and type_arguments is a
+ // subtype of FutureOr<T> specified by other class and other_type_arguments.
+ // Returns false if other class is not a FutureOr.
+ bool FutureOrTypeTest(Zone* zone,
+ const TypeArguments& type_arguments,
+ const Class& other,
+ const TypeArguments& other_type_arguments,
+ Error* bound_error,
+ TrailPtr bound_trail,
+ Heap::Space space) const;
+
static bool TypeTestNonRecursive(const Class& cls,
TypeTestKind test_kind,
const TypeArguments& type_arguments,
@@ -1555,7 +1572,7 @@
friend class Object;
friend class Type;
friend class Intrinsifier;
- friend class ProgramVisitor;
+ friend class ClassFunctionVisitor;
};
// Unresolved class is used for storing unresolved names which will be resolved
@@ -4007,9 +4024,9 @@
friend class Class;
};
-// ObjectPool contains constants, immediates and addresses embedded in code
-// and deoptimization infos. Each entry has an type-info associated with it
-// which is stored in a typed data array (info_array).
+// ObjectPool contains constants, immediates and addresses referenced by
+// generated code and deoptimization infos. Each entry has an type associated
+// with it which is stored in-inline after all the entries.
class ObjectPool : public Object {
public:
enum EntryType {
@@ -4034,36 +4051,38 @@
StoreNonPointer(&raw_ptr()->length_, value);
}
- RawTypedData* info_array() const { return raw_ptr()->info_array_; }
-
- void set_info_array(const TypedData& info_array) const;
-
static intptr_t length_offset() { return OFFSET_OF(RawObjectPool, length_); }
static intptr_t data_offset() {
return OFFSET_OF_RETURNED_VALUE(RawObjectPool, data);
}
static intptr_t element_offset(intptr_t index) {
return OFFSET_OF_RETURNED_VALUE(RawObjectPool, data) +
- kBytesPerElement * index;
+ sizeof(RawObjectPool::Entry) * index;
}
- EntryType InfoAt(intptr_t index) const;
+ EntryType TypeAt(intptr_t index) const {
+ return static_cast<EntryType>(raw_ptr()->entry_types()[index]);
+ }
+ void SetTypeAt(intptr_t index, EntryType type) const {
+ StoreNonPointer(&raw_ptr()->entry_types()[index],
+ static_cast<uint8_t>(type));
+ }
RawObject* ObjectAt(intptr_t index) const {
- ASSERT(InfoAt(index) == kTaggedObject);
+ ASSERT(TypeAt(index) == kTaggedObject);
return EntryAddr(index)->raw_obj_;
}
void SetObjectAt(intptr_t index, const Object& obj) const {
- ASSERT(InfoAt(index) == kTaggedObject);
+ ASSERT(TypeAt(index) == kTaggedObject);
StorePointer(&EntryAddr(index)->raw_obj_, obj.raw());
}
uword RawValueAt(intptr_t index) const {
- ASSERT(InfoAt(index) != kTaggedObject);
+ ASSERT(TypeAt(index) != kTaggedObject);
return EntryAddr(index)->raw_value_;
}
void SetRawValueAt(intptr_t index, uword raw_value) const {
- ASSERT(InfoAt(index) != kTaggedObject);
+ ASSERT(TypeAt(index) != kTaggedObject);
StoreNonPointer(&EntryAddr(index)->raw_value_, raw_value);
}
@@ -4073,12 +4092,13 @@
return 0;
}
- static const intptr_t kBytesPerElement = sizeof(RawObjectPool::Entry);
+ static const intptr_t kBytesPerElement =
+ sizeof(RawObjectPool::Entry) + sizeof(uint8_t);
static const intptr_t kMaxElements = kSmiMax / kBytesPerElement;
static intptr_t InstanceSize(intptr_t len) {
// Ensure that variable length data is not adding to the object length.
- ASSERT(sizeof(RawObjectPool) == (sizeof(RawObject) + (2 * kWordSize)));
+ ASSERT(sizeof(RawObjectPool) == (sizeof(RawObject) + (1 * kWordSize)));
ASSERT(0 <= len && len <= kMaxElements);
return RoundedAllocationSize(sizeof(RawObjectPool) +
(len * kBytesPerElement));
@@ -4090,7 +4110,8 @@
// adjusting for the tag-bit.
static intptr_t IndexFromOffset(intptr_t offset) {
ASSERT(Utils::IsAligned(offset + kHeapObjectTag, kWordSize));
- return (offset + kHeapObjectTag - data_offset()) / kBytesPerElement;
+ return (offset + kHeapObjectTag - data_offset()) /
+ sizeof(RawObjectPool::Entry);
}
static intptr_t OffsetFromIndex(intptr_t index) {
@@ -5441,6 +5462,13 @@
const TypeArguments& other_function_type_arguments,
Error* bound_error) const;
+ // Returns true if the type of this instance is a subtype of FutureOr<T>
+ // specified by instantiated type 'other'.
+ // Returns false if other type is not a FutureOr.
+ bool IsFutureOrInstanceOf(Zone* zone,
+ const AbstractType& other,
+ Error* bound_error) const;
+
bool IsValidNativeIndex(int index) const {
return ((index >= 0) && (index < clazz()->ptr()->num_native_fields_));
}
@@ -6025,13 +6053,21 @@
const TypeArguments& function_type_args);
private:
- // Check the subtype or 'more specific' relationship.
+ // Check the 'is subtype of' or 'is more specific than' relationship.
bool TypeTest(TypeTestKind test_kind,
const AbstractType& other,
Error* bound_error,
TrailPtr bound_trail,
Heap::Space space) const;
+ // Returns true if this type is a subtype of FutureOr<T> specified by 'other'.
+ // Returns false if other type is not a FutureOr.
+ bool FutureOrTypeTest(Zone* zone,
+ const AbstractType& other,
+ Error* bound_error,
+ TrailPtr bound_trail,
+ Heap::Space space) const;
+
// Return the internal or public name of this type, including the names of its
// type arguments, if any.
RawString* BuildName(NameVisibility visibility) const;
@@ -8944,25 +8980,6 @@
friend class Class;
};
-class ObjectPoolInfo : public ValueObject {
- public:
- explicit ObjectPoolInfo(const ObjectPool& pool)
- : array_(TypedData::Handle(pool.info_array())) {}
-
- explicit ObjectPoolInfo(const TypedData& info_array) : array_(info_array) {}
-
- ObjectPool::EntryType InfoAt(intptr_t i) {
- return static_cast<ObjectPool::EntryType>(array_.GetInt8(i));
- }
-
- void SetInfoAt(intptr_t i, ObjectPool::EntryType info) {
- array_.SetInt8(i, static_cast<int8_t>(info));
- }
-
- private:
- const TypedData& array_;
-};
-
// Breaking cycles and loops.
RawClass* Object::clazz() const {
uword raw_value = reinterpret_cast<uword>(raw_);
diff --git a/runtime/vm/object_reload.cc b/runtime/vm/object_reload.cc
index f5e33c0..8ce4190 100644
--- a/runtime/vm/object_reload.cc
+++ b/runtime/vm/object_reload.cc
@@ -85,7 +85,7 @@
Object& object = Object::Handle(zone);
ASSERT(!pool.IsNull());
for (intptr_t i = 0; i < pool.Length(); i++) {
- ObjectPool::EntryType entry_type = pool.InfoAt(i);
+ ObjectPool::EntryType entry_type = pool.TypeAt(i);
if (entry_type != ObjectPool::kTaggedObject) {
continue;
}
diff --git a/runtime/vm/object_service.cc b/runtime/vm/object_service.cc
index fa7bced..a8efe0c 100644
--- a/runtime/vm/object_service.cc
+++ b/runtime/vm/object_service.cc
@@ -646,7 +646,7 @@
for (intptr_t i = 0; i < Length(); i++) {
JSONObject jsentry(stream);
jsentry.AddProperty("offset", OffsetFromIndex(i));
- switch (InfoAt(i)) {
+ switch (TypeAt(i)) {
case ObjectPool::kTaggedObject:
obj = ObjectAt(i);
jsentry.AddProperty("kind", "Object");
diff --git a/runtime/vm/os_thread.cc b/runtime/vm/os_thread.cc
index 57bd0c6..bcc7115 100644
--- a/runtime/vm/os_thread.cc
+++ b/runtime/vm/os_thread.cc
@@ -40,14 +40,14 @@
// Try to get accurate stack bounds from pthreads, etc.
if (!GetCurrentStackBounds(&stack_limit_, &stack_base_)) {
// Fall back to a guess based on the stack pointer.
- RefineStackBoundsFromSP(Thread::GetCurrentStackPointer());
+ RefineStackBoundsFromSP(GetCurrentStackPointer());
}
ASSERT(stack_base_ != 0);
ASSERT(stack_limit_ != 0);
ASSERT(stack_base_ > stack_limit_);
- ASSERT(stack_base_ > Thread::GetCurrentStackPointer());
- ASSERT(stack_limit_ < Thread::GetCurrentStackPointer());
+ ASSERT(stack_base_ > GetCurrentStackPointer());
+ ASSERT(stack_limit_ < GetCurrentStackPointer());
}
OSThread* OSThread::CreateOSThread() {
@@ -85,6 +85,17 @@
set_name(name);
}
+// Disable AdressSanitizer and SafeStack transformation on this function. In
+// particular, taking the address of a local gives an address on the stack
+// instead of an address in the shadow memory (AddressSanitizer) or the safe
+// stack (SafeStack).
+NO_SANITIZE_ADDRESS
+NO_SANITIZE_SAFE_STACK
+uword OSThread::GetCurrentStackPointer() {
+ uword stack_allocated_local = reinterpret_cast<uword>(&stack_allocated_local);
+ return stack_allocated_local;
+}
+
void OSThread::DisableThreadInterrupts() {
ASSERT(OSThread::Current() == this);
AtomicOperations::FetchAndIncrement(&thread_interrupt_disabled_);
diff --git a/runtime/vm/os_thread.h b/runtime/vm/os_thread.h
index 533c3b3..cdf3985 100644
--- a/runtime/vm/os_thread.h
+++ b/runtime/vm/os_thread.h
@@ -100,6 +100,10 @@
return stack_limit_ + kStackSizeBuffer;
}
+ bool HasStackHeadroom(intptr_t headroom = kStackSizeBuffer) {
+ return GetCurrentStackPointer() > (stack_limit_ + headroom);
+ }
+
void RefineStackBoundsFromSP(uword sp) {
if (sp > stack_base_) {
stack_base_ = sp;
@@ -110,6 +114,12 @@
// May fail for the main thread on Linux and Android.
static bool GetCurrentStackBounds(uword* lower, uword* upper);
+ // Returns the current C++ stack pointer. Equivalent taking the address of a
+ // stack allocated local, but plays well with AddressSanitizer and SafeStack.
+ // Accurate enough for stack overflow checks but not accurate enough for
+ // alignment checks.
+ static uword GetCurrentStackPointer();
+
#if defined(USING_SAFE_STACK)
static uword GetCurrentSafestackPointer();
static void SetCurrentSafestackPointer(uword ssp);
diff --git a/runtime/vm/pages.cc b/runtime/vm/pages.cc
index 05a6dbb..07d95b9 100644
--- a/runtime/vm/pages.cc
+++ b/runtime/vm/pages.cc
@@ -182,7 +182,8 @@
max_capacity_in_words_(max_capacity_in_words),
max_external_in_words_(max_external_in_words),
tasks_lock_(new Monitor()),
- tasks_(0),
+ sweeper_tasks_(0),
+ low_memory_tasks_(0),
#if defined(DEBUG)
iterating_thread_(NULL),
#endif
@@ -201,7 +202,7 @@
PageSpace::~PageSpace() {
{
MonitorLocker ml(tasks_lock());
- while (tasks() > 0) {
+ while (sweeper_tasks() > 0) {
ml.Wait();
}
}
@@ -851,7 +852,7 @@
{
MonitorLocker locker(tasks_lock());
- if (tasks() > 0) {
+ if (sweeper_tasks() > 0) {
// A concurrent sweeper is running. If we start a mark sweep now
// we'll have to wait for it, and this wait time is not included in
// mark_sweep_words_per_micro_.
@@ -875,10 +876,10 @@
// Wait for pending tasks to complete and then account for the driver task.
{
MonitorLocker locker(tasks_lock());
- while (tasks() > 0) {
+ while (sweeper_tasks() > 0) {
locker.WaitWithSafepointCheck(thread);
}
- set_tasks(1);
+ set_sweeper_tasks(1);
}
const int64_t pre_safe_point = OS::GetCurrentMonotonicMicros();
@@ -892,6 +893,7 @@
const int64_t start = OS::GetCurrentMonotonicMicros();
+ NOT_IN_PRODUCT(isolate->class_table()->ResetCountersOld());
// Perform various cleanup that relies on no tasks interfering.
isolate->class_table()->FreeOldTables();
@@ -1035,13 +1037,15 @@
// Done, reset the task count.
{
MonitorLocker ml(tasks_lock());
- set_tasks(tasks() - 1);
+ set_sweeper_tasks(sweeper_tasks() - 1);
ml.NotifyAll();
}
if (compact) {
// Const object tables are hashed by address: rehash.
SafepointOperationScope safepoint(thread);
+ StackZone zone(thread);
+ HANDLESCOPE(thread);
thread->isolate()->RehashConstants();
}
}
diff --git a/runtime/vm/pages.h b/runtime/vm/pages.h
index ed48824..1702aca 100644
--- a/runtime/vm/pages.h
+++ b/runtime/vm/pages.h
@@ -330,10 +330,15 @@
}
Monitor* tasks_lock() const { return tasks_lock_; }
- intptr_t tasks() const { return tasks_; }
- void set_tasks(intptr_t val) {
+ intptr_t sweeper_tasks() const { return sweeper_tasks_; }
+ void set_sweeper_tasks(intptr_t val) {
ASSERT(val >= 0);
- tasks_ = val;
+ sweeper_tasks_ = val;
+ }
+ intptr_t low_memory_tasks() const { return low_memory_tasks_; }
+ void set_low_memory_tasks(intptr_t val) {
+ ASSERT(val >= 0);
+ low_memory_tasks_ = val;
}
// Attempt to allocate from bump block rather than normal freelist.
@@ -434,7 +439,8 @@
// Keep track of running MarkSweep tasks.
Monitor* tasks_lock_;
- intptr_t tasks_;
+ int32_t sweeper_tasks_;
+ int32_t low_memory_tasks_;
#if defined(DEBUG)
Thread* iterating_thread_;
#endif
diff --git a/runtime/vm/profiler.cc b/runtime/vm/profiler.cc
index 0d4159a..2b2537c 100644
--- a/runtime/vm/profiler.cc
+++ b/runtime/vm/profiler.cc
@@ -1078,7 +1078,7 @@
}
void Profiler::DumpStackTrace(bool for_crash) {
- uintptr_t sp = Thread::GetCurrentStackPointer();
+ uintptr_t sp = OSThread::GetCurrentStackPointer();
uintptr_t fp = 0;
uintptr_t pc = OS::GetProgramCounter();
@@ -1153,7 +1153,7 @@
return;
}
- uintptr_t sp = Thread::GetCurrentStackPointer();
+ uintptr_t sp = OSThread::GetCurrentStackPointer();
uintptr_t fp = 0;
uintptr_t pc = OS::GetProgramCounter();
@@ -1202,7 +1202,7 @@
return NULL;
}
- uintptr_t sp = Thread::GetCurrentStackPointer();
+ uintptr_t sp = OSThread::GetCurrentStackPointer();
uintptr_t fp = 0;
uintptr_t pc = OS::GetProgramCounter();
diff --git a/runtime/vm/program_visitor.cc b/runtime/vm/program_visitor.cc
index 49e42cc..197d55a 100644
--- a/runtime/vm/program_visitor.cc
+++ b/runtime/vm/program_visitor.cc
@@ -20,6 +20,8 @@
GrowableObjectArray::Handle(zone, isolate->object_store()->libraries());
Library& lib = Library::Handle(zone);
Class& cls = Class::Handle(zone);
+ Object& entry = Object::Handle(zone);
+ GrowableObjectArray& patches = GrowableObjectArray::Handle(zone);
for (intptr_t i = 0; i < libraries.Length(); i++) {
lib ^= libraries.At(i);
@@ -31,64 +33,82 @@
}
visitor->Visit(cls);
}
+ patches = lib.patch_classes();
+ for (intptr_t j = 0; j < patches.Length(); j++) {
+ entry = patches.At(j);
+ if (entry.IsClass()) {
+ visitor->Visit(Class::Cast(entry));
+ }
+ }
}
}
+class ClassFunctionVisitor : public ClassVisitor {
+ public:
+ ClassFunctionVisitor(Zone* zone, FunctionVisitor* visitor)
+ : visitor_(visitor),
+ functions_(Array::Handle(zone)),
+ function_(Function::Handle(zone)),
+ object_(Object::Handle(zone)),
+ fields_(Array::Handle(zone)),
+ field_(Field::Handle(zone)) {}
+
+ void Visit(const Class& cls) {
+ if (cls.IsDynamicClass()) {
+ return; // class 'dynamic' is in the read-only VM isolate.
+ }
+
+ functions_ = cls.functions();
+ for (intptr_t j = 0; j < functions_.Length(); j++) {
+ function_ ^= functions_.At(j);
+ visitor_->Visit(function_);
+ if (function_.HasImplicitClosureFunction()) {
+ function_ = function_.ImplicitClosureFunction();
+ visitor_->Visit(function_);
+ }
+ }
+
+ functions_ = cls.invocation_dispatcher_cache();
+ for (intptr_t j = 0; j < functions_.Length(); j++) {
+ object_ = functions_.At(j);
+ if (object_.IsFunction()) {
+ function_ ^= functions_.At(j);
+ visitor_->Visit(function_);
+ }
+ }
+
+ fields_ = cls.fields();
+ for (intptr_t j = 0; j < fields_.Length(); j++) {
+ field_ ^= fields_.At(j);
+ if (field_.is_static() && field_.HasPrecompiledInitializer()) {
+ function_ ^= field_.PrecompiledInitializer();
+ visitor_->Visit(function_);
+ }
+ }
+ }
+
+ private:
+ FunctionVisitor* visitor_;
+ Array& functions_;
+ Function& function_;
+ Object& object_;
+ Array& fields_;
+ Field& field_;
+};
+
void ProgramVisitor::VisitFunctions(FunctionVisitor* visitor) {
Thread* thread = Thread::Current();
Isolate* isolate = thread->isolate();
Zone* zone = thread->zone();
- GrowableObjectArray& libraries =
- GrowableObjectArray::Handle(zone, isolate->object_store()->libraries());
- Library& lib = Library::Handle(zone);
- Class& cls = Class::Handle(zone);
- Array& functions = Array::Handle(zone);
- Array& fields = Array::Handle(zone);
- Field& field = Field::Handle(zone);
- Object& object = Object::Handle(zone);
+
+ ClassFunctionVisitor class_visitor(zone, visitor);
+ VisitClasses(&class_visitor);
+
Function& function = Function::Handle(zone);
- GrowableObjectArray& closures = GrowableObjectArray::Handle(zone);
-
- for (intptr_t i = 0; i < libraries.Length(); i++) {
- lib ^= libraries.At(i);
- ClassDictionaryIterator it(lib, ClassDictionaryIterator::kIteratePrivate);
- while (it.HasNext()) {
- cls = it.GetNextClass();
- if (cls.IsDynamicClass()) {
- continue; // class 'dynamic' is in the read-only VM isolate.
- }
-
- functions = cls.functions();
- for (intptr_t j = 0; j < functions.Length(); j++) {
- function ^= functions.At(j);
- visitor->Visit(function);
- if (function.HasImplicitClosureFunction()) {
- function = function.ImplicitClosureFunction();
- visitor->Visit(function);
- }
- }
-
- functions = cls.invocation_dispatcher_cache();
- for (intptr_t j = 0; j < functions.Length(); j++) {
- object = functions.At(j);
- if (object.IsFunction()) {
- function ^= functions.At(j);
- visitor->Visit(function);
- }
- }
- fields = cls.fields();
- for (intptr_t j = 0; j < fields.Length(); j++) {
- field ^= fields.At(j);
- if (field.is_static() && field.HasPrecompiledInitializer()) {
- function ^= field.PrecompiledInitializer();
- visitor->Visit(function);
- }
- }
- }
- }
- closures = isolate->object_store()->closure_functions();
- for (intptr_t j = 0; j < closures.Length(); j++) {
- function ^= closures.At(j);
+ const GrowableObjectArray& closures = GrowableObjectArray::Handle(
+ zone, isolate->object_store()->closure_functions());
+ for (intptr_t i = 0; i < closures.Length(); i++) {
+ function ^= closures.At(i);
visitor->Visit(function);
ASSERT(!function.HasImplicitClosureFunction());
}
diff --git a/runtime/vm/raw_object.cc b/runtime/vm/raw_object.cc
index 5946d18..e0e03b0 100644
--- a/runtime/vm/raw_object.cc
+++ b/runtime/vm/raw_object.cc
@@ -527,20 +527,15 @@
intptr_t RawObjectPool::VisitObjectPoolPointers(RawObjectPool* raw_obj,
ObjectPointerVisitor* visitor) {
- visitor->VisitPointers(raw_obj->from(), raw_obj->to());
- const intptr_t len = raw_obj->ptr()->length_;
- RawTypedData* info_array = raw_obj->ptr()->info_array_;
- ASSERT(!info_array->IsForwardingCorpse());
-
- Entry* first = raw_obj->first_entry();
- for (intptr_t i = 0; i < len; ++i) {
+ const intptr_t length = raw_obj->ptr()->length_;
+ for (intptr_t i = 0; i < length; ++i) {
ObjectPool::EntryType entry_type =
- static_cast<ObjectPool::EntryType>(info_array->ptr()->data()[i]);
+ static_cast<ObjectPool::EntryType>(raw_obj->ptr()->entry_types()[i]);
if (entry_type == ObjectPool::kTaggedObject) {
- visitor->VisitPointer(&(first + i)->raw_obj_);
+ visitor->VisitPointer(&raw_obj->ptr()->data()[i].raw_obj_);
}
}
- return ObjectPool::InstanceSize(raw_obj->ptr()->length_);
+ return ObjectPool::InstanceSize(length);
}
bool RawInstructions::ContainsPC(RawInstructions* raw_instr, uword pc) {
diff --git a/runtime/vm/raw_object.h b/runtime/vm/raw_object.h
index 0e9af5f..9278da2 100644
--- a/runtime/vm/raw_object.h
+++ b/runtime/vm/raw_object.h
@@ -1276,10 +1276,6 @@
intptr_t length_;
- VISIT_FROM(RawObject*, info_array_);
- RawTypedData* info_array_;
- VISIT_TO(RawObject*, info_array_);
-
struct Entry {
union {
RawObject* raw_obj_;
@@ -1289,7 +1285,14 @@
Entry* data() { OPEN_ARRAY_START(Entry, Entry); }
Entry const* data() const { OPEN_ARRAY_START(Entry, Entry); }
- Entry* first_entry() { return &ptr()->data()[0]; }
+ // The entry types are located after the last entry. They are interpreted
+ // as ObjectPool::EntryType.
+ uint8_t* entry_types() {
+ return reinterpret_cast<uint8_t*>(&data()[length_]);
+ }
+ uint8_t const* entry_types() const {
+ return reinterpret_cast<uint8_t const*>(&data()[length_]);
+ }
friend class Object;
};
diff --git a/runtime/vm/runtime_entry.cc b/runtime/vm/runtime_entry.cc
index df1dcdb..3a2a1d2 100644
--- a/runtime/vm/runtime_entry.cc
+++ b/runtime/vm/runtime_entry.cc
@@ -1611,32 +1611,13 @@
arguments.SetReturn(result);
}
-DEFINE_RUNTIME_ENTRY(StackOverflow, 0) {
-#if defined(USING_SIMULATOR)
- uword stack_pos = Simulator::Current()->get_sp();
-#else
- uword stack_pos = Thread::GetCurrentStackPointer();
-#endif
- // Always clear the stack overflow flags. They are meant for this
- // particular stack overflow runtime call and are not meant to
- // persist.
- uword stack_overflow_flags = thread->GetAndClearStackOverflowFlags();
-
- // If an interrupt happens at the same time as a stack overflow, we
- // process the stack overflow now and leave the interrupt for next
- // time.
- if (IsCalleeFrameOf(thread->saved_stack_limit(), stack_pos)) {
- // Use the preallocated stack overflow exception to avoid calling
- // into dart code.
- const Instance& exception =
- Instance::Handle(isolate->object_store()->stack_overflow());
- Exceptions::Throw(thread, exception);
- UNREACHABLE();
- }
-
#if !defined(PRODUCT) && !defined(DART_PRECOMPILED_RUNTIME)
- // The following code is used to stress test deoptimization and
- // debugger stack tracing.
+// The following code is used to stress test
+// - deoptimization
+// - debugger stack tracing
+// - hot reload
+static void HandleStackOverflowTestCases(Thread* thread) {
+ Isolate* isolate = thread->isolate();
bool do_deopt = false;
bool do_stacktrace = false;
bool do_reload = false;
@@ -1744,70 +1725,113 @@
}
FLAG_stacktrace_every = saved_stacktrace_every;
}
+}
#endif // !defined(PRODUCT) && !defined(DART_PRECOMPILED_RUNTIME)
+#if !defined(DART_PRECOMPILED_RUNTIME)
+static void HandleOSRRequest(Thread* thread) {
+ Isolate* isolate = thread->isolate();
+ ASSERT(isolate->use_osr());
+ DartFrameIterator iterator(thread,
+ StackFrameIterator::kNoCrossThreadIteration);
+ StackFrame* frame = iterator.NextFrame();
+ ASSERT(frame != NULL);
+ const Code& code = Code::ZoneHandle(frame->LookupDartCode());
+ ASSERT(!code.IsNull());
+ ASSERT(!code.is_optimized());
+ const Function& function = Function::Handle(code.function());
+ ASSERT(!function.IsNull());
+
+ // If the code of the frame does not match the function's unoptimized code,
+ // we bail out since the code was reset by an isolate reload.
+ if (code.raw() != function.unoptimized_code()) {
+ return;
+ }
+
+ // Since the code is referenced from the frame and the ZoneHandle,
+ // it cannot have been removed from the function.
+ ASSERT(function.HasCode());
+ // Don't do OSR on intrinsified functions: The intrinsic code expects to be
+ // called like a regular function and can't be entered via OSR.
+ if (!Compiler::CanOptimizeFunction(thread, function) ||
+ function.is_intrinsic()) {
+ return;
+ }
+
+ // The unoptimized code is on the stack and should never be detached from
+ // the function at this point.
+ ASSERT(function.unoptimized_code() != Object::null());
+ intptr_t osr_id =
+ Code::Handle(function.unoptimized_code()).GetDeoptIdForOsr(frame->pc());
+ ASSERT(osr_id != Compiler::kNoOSRDeoptId);
+ if (FLAG_trace_osr) {
+ OS::Print("Attempting OSR for %s at id=%" Pd ", count=%" Pd "\n",
+ function.ToFullyQualifiedCString(), osr_id,
+ function.usage_counter());
+ }
+
+ // Since the code is referenced from the frame and the ZoneHandle,
+ // it cannot have been removed from the function.
+ const Object& result = Object::Handle(
+ Compiler::CompileOptimizedFunction(thread, function, osr_id));
+ if (result.IsError()) {
+ Exceptions::PropagateError(Error::Cast(result));
+ }
+
+ if (!result.IsNull()) {
+ const Code& code = Code::Cast(result);
+ uword optimized_entry =
+ Instructions::UncheckedEntryPoint(code.instructions());
+ frame->set_pc(optimized_entry);
+ frame->set_pc_marker(code.raw());
+ }
+}
+#endif // !defined(DART_PRECOMPILED_RUNTIME)
+
+DEFINE_RUNTIME_ENTRY(StackOverflow, 0) {
+#if defined(USING_SIMULATOR)
+ uword stack_pos = Simulator::Current()->get_sp();
+#else
+ uword stack_pos = OSThread::GetCurrentStackPointer();
+#endif
+ // Always clear the stack overflow flags. They are meant for this
+ // particular stack overflow runtime call and are not meant to
+ // persist.
+ uword stack_overflow_flags = thread->GetAndClearStackOverflowFlags();
+
+ // If an interrupt happens at the same time as a stack overflow, we
+ // process the stack overflow now and leave the interrupt for next
+ // time.
+ if (IsCalleeFrameOf(thread->saved_stack_limit(), stack_pos)) {
+ // Use the preallocated stack overflow exception to avoid calling
+ // into dart code.
+ const Instance& exception =
+ Instance::Handle(isolate->object_store()->stack_overflow());
+ Exceptions::Throw(thread, exception);
+ UNREACHABLE();
+ }
+
+#if !defined(PRODUCT) && !defined(DART_PRECOMPILED_RUNTIME)
+ HandleStackOverflowTestCases(thread);
+#endif // !defined(PRODUCT) && !defined(DART_PRECOMPILED_RUNTIME)
+
+ // Handle interrupts:
+ // - store buffer overflow
+ // - OOB message (vm-service or dart:isolate)
+ // - Dart_InterruptIsolate
const Error& error = Error::Handle(thread->HandleInterrupts());
if (!error.IsNull()) {
Exceptions::PropagateError(error);
UNREACHABLE();
}
+#if !defined(DART_PRECOMPILED_RUNTIME)
if ((stack_overflow_flags & Thread::kOsrRequest) != 0) {
- ASSERT(isolate->use_osr());
- DartFrameIterator iterator(thread,
- StackFrameIterator::kNoCrossThreadIteration);
- StackFrame* frame = iterator.NextFrame();
- ASSERT(frame != NULL);
- const Code& code = Code::ZoneHandle(frame->LookupDartCode());
- ASSERT(!code.IsNull());
- ASSERT(!code.is_optimized());
- const Function& function = Function::Handle(code.function());
- ASSERT(!function.IsNull());
-
- // If the code of the frame does not match the function's unoptimized code,
- // we bail out since the code was reset by an isolate reload.
- if (code.raw() != function.unoptimized_code()) {
- return;
- }
-
- // Since the code is referenced from the frame and the ZoneHandle,
- // it cannot have been removed from the function.
- ASSERT(function.HasCode());
- // Don't do OSR on intrinsified functions: The intrinsic code expects to be
- // called like a regular function and can't be entered via OSR.
- if (!Compiler::CanOptimizeFunction(thread, function) ||
- function.is_intrinsic()) {
- return;
- }
-
- // The unoptimized code is on the stack and should never be detached from
- // the function at this point.
- ASSERT(function.unoptimized_code() != Object::null());
- intptr_t osr_id =
- Code::Handle(function.unoptimized_code()).GetDeoptIdForOsr(frame->pc());
- ASSERT(osr_id != Compiler::kNoOSRDeoptId);
- if (FLAG_trace_osr) {
- OS::Print("Attempting OSR for %s at id=%" Pd ", count=%" Pd "\n",
- function.ToFullyQualifiedCString(), osr_id,
- function.usage_counter());
- }
-
- // Since the code is referenced from the frame and the ZoneHandle,
- // it cannot have been removed from the function.
- const Object& result = Object::Handle(
- Compiler::CompileOptimizedFunction(thread, function, osr_id));
- if (result.IsError()) {
- Exceptions::PropagateError(Error::Cast(result));
- }
-
- if (!result.IsNull()) {
- const Code& code = Code::Cast(result);
- uword optimized_entry =
- Instructions::UncheckedEntryPoint(code.instructions());
- frame->set_pc(optimized_entry);
- frame->set_pc_marker(code.raw());
- }
+ HandleOSRRequest(thread);
}
+#else
+ ASSERT((stack_overflow_flags & Thread::kOsrRequest) == 0);
+#endif // !defined(DART_PRECOMPILED_RUNTIME)
}
DEFINE_RUNTIME_ENTRY(TraceICCall, 2) {
diff --git a/runtime/vm/scavenger.cc b/runtime/vm/scavenger.cc
index b626fd6..b61c763 100644
--- a/runtime/vm/scavenger.cc
+++ b/runtime/vm/scavenger.cc
@@ -394,6 +394,8 @@
}
SemiSpace* Scavenger::Prologue(Isolate* isolate) {
+ NOT_IN_PRODUCT(isolate->class_table()->ResetCountersNew());
+
isolate->PrepareForGC();
// Flip the two semi-spaces so that to_ is always the space for allocating
@@ -496,7 +498,7 @@
{
PageSpace* page_space = heap_->old_space();
MonitorLocker ml(page_space->tasks_lock());
- if (page_space->tasks() == 0) {
+ if (page_space->sweeper_tasks() == 0) {
VerifyStoreBufferPointerVisitor verify_store_buffer_visitor(isolate, to_);
heap_->old_space()->VisitObjectPointers(&verify_store_buffer_visitor);
}
@@ -507,6 +509,8 @@
if (heap_ != NULL) {
heap_->UpdateGlobalMaxUsed();
}
+
+ NOT_IN_PRODUCT(isolate->class_table()->UpdatePromoted());
}
bool Scavenger::ShouldPerformIdleScavenge(int64_t deadline) {
diff --git a/runtime/vm/simulator_arm.cc b/runtime/vm/simulator_arm.cc
index e0eacf1..c244c40 100644
--- a/runtime/vm/simulator_arm.cc
+++ b/runtime/vm/simulator_arm.cc
@@ -1393,7 +1393,7 @@
(redirection->call_kind() == kBootstrapNativeCall) ||
(redirection->call_kind() == kNativeCall)) {
// Set the top_exit_frame_info of this simulator to the native stack.
- set_top_exit_frame_info(Thread::GetCurrentStackPointer());
+ set_top_exit_frame_info(OSThread::GetCurrentStackPointer());
}
if (redirection->call_kind() == kRuntimeCall) {
NativeArguments arguments;
diff --git a/runtime/vm/simulator_arm64.cc b/runtime/vm/simulator_arm64.cc
index afe9d42..c07ae21 100644
--- a/runtime/vm/simulator_arm64.cc
+++ b/runtime/vm/simulator_arm64.cc
@@ -1532,7 +1532,7 @@
(redirection->call_kind() == kBootstrapNativeCall) ||
(redirection->call_kind() == kNativeCall)) {
// Set the top_exit_frame_info of this simulator to the native stack.
- set_top_exit_frame_info(Thread::GetCurrentStackPointer());
+ set_top_exit_frame_info(OSThread::GetCurrentStackPointer());
}
if (redirection->call_kind() == kRuntimeCall) {
NativeArguments* arguments =
diff --git a/runtime/vm/simulator_dbc.cc b/runtime/vm/simulator_dbc.cc
index 5d21b6d..fc2e385e 100644
--- a/runtime/vm/simulator_dbc.cc
+++ b/runtime/vm/simulator_dbc.cc
@@ -195,10 +195,13 @@
static bool ObjectArraySetIndexed(Thread* thread,
RawObject** FP,
RawObject** result) {
- if (thread->isolate()->type_checks()) {
- return false;
- }
+ return !thread->isolate()->type_checks() &&
+ ObjectArraySetIndexedUnchecked(thread, FP, result);
+ }
+ static bool ObjectArraySetIndexedUnchecked(Thread* thread,
+ RawObject** FP,
+ RawObject** result) {
RawObject** args = FrameArguments(FP, 3);
RawSmi* index = static_cast<RawSmi*>(args[1]);
RawArray* array = static_cast<RawArray*>(args[0]);
@@ -225,10 +228,13 @@
static bool GrowableArraySetIndexed(Thread* thread,
RawObject** FP,
RawObject** result) {
- if (thread->isolate()->type_checks()) {
- return false;
- }
+ return !thread->isolate()->type_checks() &&
+ GrowableArraySetIndexedUnchecked(thread, FP, result);
+ }
+ static bool GrowableArraySetIndexedUnchecked(Thread* thread,
+ RawObject** FP,
+ RawObject** result) {
RawObject** args = FrameArguments(FP, 3);
RawSmi* index = static_cast<RawSmi*>(args[1]);
RawGrowableObjectArray* array =
@@ -508,10 +514,14 @@
intrinsics_[kObjectArraySetIndexedIntrinsic] =
SimulatorHelpers::ObjectArraySetIndexed;
+ intrinsics_[kObjectArraySetIndexedUncheckedIntrinsic] =
+ SimulatorHelpers::ObjectArraySetIndexedUnchecked;
intrinsics_[kObjectArrayGetIndexedIntrinsic] =
SimulatorHelpers::ObjectArrayGetIndexed;
intrinsics_[kGrowableArraySetIndexedIntrinsic] =
SimulatorHelpers::GrowableArraySetIndexed;
+ intrinsics_[kGrowableArraySetIndexedUncheckedIntrinsic] =
+ SimulatorHelpers::GrowableArraySetIndexedUnchecked;
intrinsics_[kGrowableArrayGetIndexedIntrinsic] =
SimulatorHelpers::GrowableArrayGetIndexed;
intrinsics_[kObjectEqualsIntrinsic] = SimulatorHelpers::ObjectEquals;
diff --git a/runtime/vm/thread.cc b/runtime/vm/thread.cc
index a848703..51f3cd9 100644
--- a/runtime/vm/thread.cc
+++ b/runtime/vm/thread.cc
@@ -4,8 +4,6 @@
#include "vm/thread.h"
-#include "platform/address_sanitizer.h"
-#include "platform/safe_stack.h"
#include "vm/compiler_stats.h"
#include "vm/dart_api_state.h"
#include "vm/growable_array.h"
@@ -411,17 +409,6 @@
SetStackLimit(~static_cast<uword>(0));
}
-// Disable AdressSanitizer and SafeStack transformation on this function. In
-// particular, taking the address of a local gives an address on the stack
-// instead of an address in the shadow memory (AddressSanitizer) or the safe
-// stack (SafeStack).
-NO_SANITIZE_ADDRESS
-NO_SANITIZE_SAFE_STACK
-uword Thread::GetCurrentStackPointer() {
- uword stack_allocated_local = reinterpret_cast<uword>(&stack_allocated_local);
- return stack_allocated_local;
-}
-
void Thread::ScheduleInterrupts(uword interrupt_bits) {
MonitorLocker ml(thread_lock_);
ScheduleInterruptsLocked(interrupt_bits);
diff --git a/runtime/vm/thread.h b/runtime/vm/thread.h
index 570f1e8..720a9a8 100644
--- a/runtime/vm/thread.h
+++ b/runtime/vm/thread.h
@@ -168,6 +168,7 @@
kCompilerTask = 0x2,
kSweeperTask = 0x4,
kMarkerTask = 0x8,
+ kLowMemoryTask = 0x10,
};
// Converts a TaskKind to its corresponding C-String name.
static const char* TaskKindToCString(TaskKind kind);
@@ -204,12 +205,6 @@
void SetStackLimitFromStackBase(uword stack_base);
void ClearStackLimit();
- // Returns the current C++ stack pointer. Equivalent taking the address of a
- // stack allocated local, but plays well with AddressSanitizer and SafeStack.
- // Accurate enough for stack overflow checks but not accurate enough for
- // alignment checks.
- static uword GetCurrentStackPointer();
-
// Access to the current stack limit for generated code. This may be
// overwritten with a special value to trigger interrupts.
uword stack_limit_address() const {
diff --git a/runtime/vm/thread_pool.cc b/runtime/vm/thread_pool.cc
index 92518e55..3a085ae 100644
--- a/runtime/vm/thread_pool.cc
+++ b/runtime/vm/thread_pool.cc
@@ -424,7 +424,7 @@
ThreadPool* pool;
// Set the thread's stack_base based on the current stack pointer.
- os_thread->RefineStackBoundsFromSP(Thread::GetCurrentStackPointer());
+ os_thread->RefineStackBoundsFromSP(OSThread::GetCurrentStackPointer());
{
MonitorLocker ml(&worker->monitor_);
diff --git a/samples/samples.status b/samples/samples.status
index cf6350d..51914af 100644
--- a/samples/samples.status
+++ b/samples/samples.status
@@ -29,6 +29,11 @@
[ $compiler == none && $runtime == vm && $system == windows && $mode == debug ]
sample_extension/test/sample_extension_app_snapshot_test: Pass, RuntimeError # Issue 28842
+[ $compiler == dartk && $strong ]
+sample_extension/test/sample_extension_app_snapshot_test: RuntimeError
+sample_extension/test/sample_extension_script_snapshot_test: RuntimeError
+sample_extension/test/sample_extension_test: RuntimeError
+
[ $compiler == dartkp ]
sample_extension/test/sample_extension_app_snapshot_test: RuntimeError
sample_extension/test/sample_extension_script_snapshot_test: RuntimeError
diff --git a/sdk/bin/dartdevk_sdk.bat b/sdk/bin/dartdevk_sdk.bat
index d1a480f..8e490ef 100644
--- a/sdk/bin/dartdevk_sdk.bat
+++ b/sdk/bin/dartdevk_sdk.bat
@@ -20,7 +20,7 @@
rem Remove trailing backslash if there is one
if %SDK_DIR:~-1%==\ set SDK_DIR=%SDK_DIR:~0,-1%
-"%DART%" "%SNAPSHOT%" "--packages=%SDK_DIR%\.packages" %*
+"%DART%" "%SNAPSHOT%" "--packages=%SDK_DIR%\..\..\..\.packages" %*
endlocal
diff --git a/sdk/lib/_http/http_impl.dart b/sdk/lib/_http/http_impl.dart
index 75157eb..ee8f0c2 100644
--- a/sdk/lib/_http/http_impl.dart
+++ b/sdk/lib/_http/http_impl.dart
@@ -2347,7 +2347,7 @@
_HttpConnection(this._socket, this._httpServer)
: _httpParser = new _HttpParser.requestParser() {
_connections[_serviceId] = this;
- _httpParser.listenToStream(_socket as Object/*=Socket*/);
+ _httpParser.listenToStream(_socket);
_subscription = _httpParser.listen((incoming) {
_httpServer._markActive(this);
// If the incoming was closed, close the connection.
diff --git a/sdk/lib/_internal/js_runtime/lib/internal_patch.dart b/sdk/lib/_internal/js_runtime/lib/internal_patch.dart
index 144a54d..05a9d39 100644
--- a/sdk/lib/_internal/js_runtime/lib/internal_patch.dart
+++ b/sdk/lib/_internal/js_runtime/lib/internal_patch.dart
@@ -45,3 +45,9 @@
List<T> makeFixedListUnmodifiable<T>(List<T> fixedLengthList) {
return JSArray.markUnmodifiableList(fixedLengthList);
}
+
+@patch
+Object extractTypeArguments<T>(T instance, Function extract) {
+ // TODO(31371): Implement this.
+ throw new UnimplementedError();
+}
diff --git a/sdk/lib/core/uri.dart b/sdk/lib/core/uri.dart
index dd4fe11..ef20c8d 100644
--- a/sdk/lib/core/uri.dart
+++ b/sdk/lib/core/uri.dart
@@ -2689,7 +2689,7 @@
return sb.toString();
}
- bool operator ==(other) {
+ bool operator ==(Object other) {
if (identical(this, other)) return true;
if (other is Uri) {
Uri uri = other;
diff --git a/sdk/lib/html/dart2js/html_dart2js.dart b/sdk/lib/html/dart2js/html_dart2js.dart
index 2129a68..0c46647 100644
--- a/sdk/lib/html/dart2js/html_dart2js.dart
+++ b/sdk/lib/html/dart2js/html_dart2js.dart
@@ -10722,9 +10722,8 @@
* For details about CSS selector syntax, see the
* [CSS selector specification](http://www.w3.org/TR/css3-selectors/).
*/
- ElementList<Element/*=T*/ > querySelectorAll/*<T extends Element>*/(
- String selectors) =>
- new _FrozenElementList/*<T>*/ ._wrap(_querySelectorAll(selectors));
+ ElementList<T> querySelectorAll<T extends Element>(String selectors) =>
+ new _FrozenElementList<T>._wrap(_querySelectorAll(selectors));
/**
* Alias for [querySelector]. Note this function is deprecated because its
@@ -10742,8 +10741,7 @@
@deprecated
@Experimental()
@DomName('Document.querySelectorAll')
- ElementList<Element/*=T*/ > queryAll/*<T extends Element>*/(
- String relativeSelectors) =>
+ ElementList<T> queryAll<T extends Element>(String relativeSelectors) =>
querySelectorAll(relativeSelectors);
/// Checks if [registerElement] is supported on the current platform.
@@ -10865,9 +10863,8 @@
* For details about CSS selector syntax, see the
* [CSS selector specification](http://www.w3.org/TR/css3-selectors/).
*/
- ElementList<Element/*=T*/ > querySelectorAll/*<T extends Element>*/(
- String selectors) =>
- new _FrozenElementList/*<T>*/ ._wrap(_querySelectorAll(selectors));
+ ElementList<T> querySelectorAll<T extends Element>(String selectors) =>
+ new _FrozenElementList<T>._wrap(_querySelectorAll(selectors));
String get innerHtml {
final e = new DivElement();
@@ -10922,8 +10919,7 @@
@deprecated
@Experimental()
@DomName('DocumentFragment.querySelectorAll')
- ElementList<Element/*=T*/ > queryAll/*<T extends Element>*/(
- String relativeSelectors) =>
+ ElementList<T> queryAll<T extends Element>(String relativeSelectors) =>
querySelectorAll(relativeSelectors);
// To suppress missing implicit constructor warnings.
factory DocumentFragment._() {
@@ -11671,11 +11667,11 @@
another.y <= top + height;
}
- Point get topLeft => new Point/*<num>*/(this.left, this.top);
- Point get topRight => new Point/*<num>*/(this.left + this.width, this.top);
+ Point get topLeft => new Point(this.left, this.top);
+ Point get topRight => new Point(this.left + this.width, this.top);
Point get bottomRight =>
- new Point/*<num>*/(this.left + this.width, this.top + this.height);
- Point get bottomLeft => new Point/*<num>*/(this.left, this.top + this.height);
+ new Point(this.left + this.width, this.top + this.height);
+ Point get bottomLeft => new Point(this.left, this.top + this.height);
// To suppress missing implicit constructor warnings.
factory DomRectReadOnly._() {
@@ -13464,9 +13460,8 @@
* [CSS selector specification](http://www.w3.org/TR/css3-selectors/).
*/
@DomName('Element.querySelectorAll')
- ElementList<Element/*=T*/ > querySelectorAll/*<T extends Element>*/(
- String selectors) =>
- new _FrozenElementList/*<T>*/ ._wrap(_querySelectorAll(selectors));
+ ElementList<T> querySelectorAll<T extends Element>(String selectors) =>
+ new _FrozenElementList<T>._wrap(_querySelectorAll(selectors));
/**
* Alias for [querySelector]. Note this function is deprecated because its
@@ -13484,8 +13479,7 @@
@deprecated
@DomName('Element.querySelectorAll')
@Experimental()
- ElementList<Element/*=T*/ > queryAll/*<T extends Element>*/(
- String relativeSelectors) =>
+ ElementList<T> queryAll<T extends Element>(String relativeSelectors) =>
querySelectorAll(relativeSelectors);
/**
@@ -14101,14 +14095,13 @@
bool sameAsParent = identical(current, parent);
bool foundAsParent = sameAsParent || parent.tagName == 'HTML';
if (current == null || sameAsParent) {
- if (foundAsParent) return new Point/*<num>*/(0, 0);
+ if (foundAsParent) return new Point(0, 0);
throw new ArgumentError("Specified element is not a transitive offset "
"parent of this element.");
}
Element parentOffset = current.offsetParent;
Point p = Element._offsetToHelper(parentOffset, parent);
- return new Point/*<num>*/(
- p.x + current.offsetLeft, p.y + current.offsetTop);
+ return new Point(p.x + current.offsetLeft, p.y + current.offsetTop);
}
static HtmlDocument _parseDocument;
@@ -25347,14 +25340,14 @@
@DomName('MouseEvent.clientX')
@DomName('MouseEvent.clientY')
- Point get client => new Point/*<num>*/(_clientX, _clientY);
+ Point get client => new Point(_clientX, _clientY);
@DomName('MouseEvent.movementX')
@DomName('MouseEvent.movementY')
@SupportedBrowser(SupportedBrowser.CHROME)
@SupportedBrowser(SupportedBrowser.FIREFOX)
@Experimental()
- Point get movement => new Point/*<num>*/(_movementX, _movementY);
+ Point get movement => new Point(_movementX, _movementY);
/**
* The coordinates of the mouse pointer in target node coordinates.
@@ -25367,7 +25360,7 @@
if (JS('bool', '!!#.offsetX', this)) {
var x = JS('int', '#.offsetX', this);
var y = JS('int', '#.offsetY', this);
- return new Point/*<num>*/(x, y);
+ return new Point(x, y);
} else {
// Firefox does not support offsetX.
if (!(this.target is Element)) {
@@ -25375,21 +25368,21 @@
}
Element target = this.target;
var point = (this.client - target.getBoundingClientRect().topLeft);
- return new Point/*<num>*/(point.x.toInt(), point.y.toInt());
+ return new Point(point.x.toInt(), point.y.toInt());
}
}
@DomName('MouseEvent.screenX')
@DomName('MouseEvent.screenY')
- Point get screen => new Point/*<num>*/(_screenX, _screenY);
+ Point get screen => new Point(_screenX, _screenY);
@DomName('MouseEvent.layerX')
@DomName('MouseEvent.layerY')
- Point get layer => new Point/*<num>*/(_layerX, _layerY);
+ Point get layer => new Point(_layerX, _layerY);
@DomName('MouseEvent.pageX')
@DomName('MouseEvent.pageY')
- Point get page => new Point/*<num>*/(_pageX, _pageY);
+ Point get page => new Point(_pageX, _pageY);
@DomName('MouseEvent.dataTransfer')
DataTransfer get dataTransfer =>
@@ -34833,15 +34826,15 @@
@DomName('Touch.clientX')
@DomName('Touch.clientY')
- Point get client => new Point/*<num>*/(__clientX, __clientY);
+ Point get client => new Point(__clientX, __clientY);
@DomName('Touch.pageX')
@DomName('Touch.pageY')
- Point get page => new Point/*<num>*/(__pageX, __pageY);
+ Point get page => new Point(__pageX, __pageY);
@DomName('Touch.screenX')
@DomName('Touch.screenY')
- Point get screen => new Point/*<num>*/(__screenX, __screenY);
+ Point get screen => new Point(__screenX, __screenY);
@DomName('Touch.radiusX')
@DocsEditable()
@@ -39010,7 +39003,7 @@
e, _eventType, useCapture);
}
- ElementStream<BeforeUnloadEvent> _forElementList(ElementList e,
+ ElementStream<BeforeUnloadEvent> _forElementList(ElementList<Element> e,
{bool useCapture: false}) {
// Specify the generic type for _ElementEventStreamImpl only in dart2js.
return new _ElementListEventStreamImpl<BeforeUnloadEvent>(
@@ -40025,11 +40018,11 @@
another.y <= top + height;
}
- Point get topLeft => new Point/*<num>*/(this.left, this.top);
- Point get topRight => new Point/*<num>*/(this.left + this.width, this.top);
+ Point get topLeft => new Point(this.left, this.top);
+ Point get topRight => new Point(this.left + this.width, this.top);
Point get bottomRight =>
- new Point/*<num>*/(this.left + this.width, this.top + this.height);
- Point get bottomLeft => new Point/*<num>*/(this.left, this.top + this.height);
+ new Point(this.left + this.width, this.top + this.height);
+ Point get bottomLeft => new Point(this.left, this.top + this.height);
// To suppress missing implicit constructor warnings.
factory _ClientRect._() {
@@ -42768,7 +42761,8 @@
*
* [addEventListener](http://docs.webplatform.org/wiki/dom/methods/addEventListener)
*/
- ElementStream<T> _forElementList(ElementList e, {bool useCapture: false}) {
+ ElementStream<T> _forElementList(ElementList<Element> e,
+ {bool useCapture: false}) {
return new _ElementListEventStreamImpl<T>(e, _eventType, useCapture);
}
@@ -43126,7 +43120,8 @@
return new _ElementEventStreamImpl<T>(e, _eventTypeGetter(e), useCapture);
}
- ElementStream<T> _forElementList(ElementList e, {bool useCapture: false}) {
+ ElementStream<T> _forElementList(ElementList<Element> e,
+ {bool useCapture: false}) {
return new _ElementListEventStreamImpl<T>(
e, _eventTypeGetter(e), useCapture);
}
@@ -45075,9 +45070,9 @@
Iterable<String> uriAttributes}) {
var tagNameUpper = tagName.toUpperCase();
var attrs = attributes
- ?.map/*<String>*/((name) => '$tagNameUpper::${name.toLowerCase()}');
+ ?.map<String>((name) => '$tagNameUpper::${name.toLowerCase()}');
var uriAttrs = uriAttributes
- ?.map/*<String>*/((name) => '$tagNameUpper::${name.toLowerCase()}');
+ ?.map<String>((name) => '$tagNameUpper::${name.toLowerCase()}');
if (uriPolicy == null) {
uriPolicy = new UriPolicy();
}
@@ -45101,9 +45096,9 @@
var baseNameUpper = baseName.toUpperCase();
var tagNameUpper = tagName.toUpperCase();
var attrs = attributes
- ?.map/*<String>*/((name) => '$baseNameUpper::${name.toLowerCase()}');
+ ?.map<String>((name) => '$baseNameUpper::${name.toLowerCase()}');
var uriAttrs = uriAttributes
- ?.map/*<String>*/((name) => '$baseNameUpper::${name.toLowerCase()}');
+ ?.map<String>((name) => '$baseNameUpper::${name.toLowerCase()}');
if (uriPolicy == null) {
uriPolicy = new UriPolicy();
}
diff --git a/sdk/lib/html/html_common/conversions_dart2js.dart b/sdk/lib/html/html_common/conversions_dart2js.dart
index 0292cf5..c98b73c 100644
--- a/sdk/lib/html/html_common/conversions_dart2js.dart
+++ b/sdk/lib/html/html_common/conversions_dart2js.dart
@@ -19,7 +19,7 @@
if (postCreate != null) {
postCreate(object);
}
- dict.forEach((String key, value) {
+ dict.forEach((key, value) {
JS('void', '#[#] = #', object, key, value);
});
return object;
diff --git a/sdk/lib/html/html_common/filtered_element_list.dart b/sdk/lib/html/html_common/filtered_element_list.dart
index f70d820..fba6ad7 100644
--- a/sdk/lib/html/html_common/filtered_element_list.dart
+++ b/sdk/lib/html/html_common/filtered_element_list.dart
@@ -26,9 +26,8 @@
// We can't memoize this, since it's possible that children will be messed
// with externally to this class.
- Iterable<Element> get _iterable => _childNodes
- .where((n) => n is Element)
- .map/*<Element>*/((n) => n as Element);
+ Iterable<Element> get _iterable =>
+ _childNodes.where((n) => n is Element).map<Element>((n) => n as Element);
List<Element> get _filtered =>
new List<Element>.from(_iterable, growable: false);
diff --git a/sdk/lib/indexed_db/dart2js/indexed_db_dart2js.dart b/sdk/lib/indexed_db/dart2js/indexed_db_dart2js.dart
index d9a81dd..466366f 100644
--- a/sdk/lib/indexed_db/dart2js/indexed_db_dart2js.dart
+++ b/sdk/lib/indexed_db/dart2js/indexed_db_dart2js.dart
@@ -639,12 +639,12 @@
* Ties a request to a completer, so the completer is completed when it succeeds
* and errors out when the request errors.
*/
-Future/*<T>*/ _completeRequest/*<T>*/(Request request) {
- var completer = new Completer/*<T>*/ .sync();
+Future<T> _completeRequest<T>(Request request) {
+ var completer = new Completer<T>.sync();
// TODO: make sure that completer.complete is synchronous as transactions
// may be committed if the result is not processed immediately.
request.onSuccess.listen((e) {
- dynamic/*=T*/ result = request.result;
+ T result = request.result;
completer.complete(result);
});
request.onError.listen(completer.completeError);
diff --git a/sdk/lib/internal/internal.dart b/sdk/lib/internal/internal.dart
index 4f47c5c..eeb0f85 100644
--- a/sdk/lib/internal/internal.dart
+++ b/sdk/lib/internal/internal.dart
@@ -96,3 +96,56 @@
int digit2 = hexDigitValue(source.codeUnitAt(index + 1));
return digit1 * 16 + digit2 - (digit2 & 256);
}
+
+/// Given an [instance] of some generic type [T], and [extract], a first-class
+/// generic function that takes the same number of type parameters as [T],
+/// invokes the function with the same type arguments that were passed to T
+/// when [instance] was constructed.
+///
+/// Example:
+///
+/// ```dart
+/// class Two<A, B> {}
+///
+/// print(extractTypeArguments<List>(<int>[], <T>() => new Set<T>()));
+/// // Prints: Instance of 'Set<int>'.
+///
+/// print(extractTypeArguments<Map>(<String, bool>{},
+/// <T, S>() => new Two<T, S>));
+/// // Prints: Instance of 'Two<String, bool>'.
+/// ```
+///
+/// The type argument T is important to choose which specific type parameter
+/// list in [instance]'s type hierarchy is being extracted. Consider:
+///
+/// ```dart
+/// class A<T> {}
+/// class B<T> {}
+///
+/// class C implements A<int>, B<String> {}
+///
+/// main() {
+/// var c = new C();
+/// print(extractTypeArguments<A>(c, <T>() => <T>[]));
+/// // Prints: Instance of 'List<int>'.
+///
+/// print(extractTypeArguments<B>(c, <T>() => <T>[]));
+/// // Prints: Instance of 'List<String>'.
+/// }
+/// ```
+///
+/// A caller must not:
+///
+/// * Pass `null` for [instance].
+/// * Use a non-class type (i.e. a function type) for [T].
+/// * Use a non-generic type for [T].
+/// * Pass an instance of a generic type and a function that don't both take
+/// the same number of type arguments:
+///
+/// ```dart
+/// extractTypeArguments<List>(<int>[], <T, S>() => null);
+/// ```
+///
+/// See this issue for more context:
+/// https://github.com/dart-lang/sdk/issues/31371
+external Object extractTypeArguments<T>(T instance, Function extract);
diff --git a/sdk/lib/io/platform.dart b/sdk/lib/io/platform.dart
index 01be4ca..a5978e6 100644
--- a/sdk/lib/io/platform.dart
+++ b/sdk/lib/io/platform.dart
@@ -72,7 +72,6 @@
static final _operatingSystemVersion = _Platform.operatingSystemVersion;
static final _localHostname = _Platform.localHostname;
static final _version = _Platform.version;
- static final _localeName = _Platform.localeName;
/**
* The number of individual execution units of the machine.
@@ -88,7 +87,7 @@
/**
* Get the name of the current locale.
*/
- static String get localeName => _localeName;
+ static String get localeName => _Platform.localeName();
/**
* A string representing the operating system or platform.
diff --git a/sdk/lib/io/platform_impl.dart b/sdk/lib/io/platform_impl.dart
index 38beecd..3ee7757 100644
--- a/sdk/lib/io/platform_impl.dart
+++ b/sdk/lib/io/platform_impl.dart
@@ -41,16 +41,13 @@
static String packageRoot = _packageRoot();
static String packageConfig = _packageConfig();
- static String _cachedLocaleName;
- static String get localeName {
- if (_cachedLocaleName == null) {
- var result = _localeName();
- if (result is OSError) {
- throw result;
- }
- _cachedLocaleName = result;
+ static String Function() _localeClosure;
+ static String localeName() {
+ final result = (_localeClosure == null) ? _localeName() : _localeClosure();
+ if (result is OSError) {
+ throw result;
}
- return _cachedLocaleName;
+ return result;
}
// Cache the OS environment. This can be an OSError instance if
diff --git a/sdk/lib/js/dart2js/js_dart2js.dart b/sdk/lib/js/dart2js/js_dart2js.dart
index d97523b..f7ef054 100644
--- a/sdk/lib/js/dart2js/js_dart2js.dart
+++ b/sdk/lib/js/dart2js/js_dart2js.dart
@@ -707,7 +707,7 @@
return Function.apply(callback, [self]..addAll(arguments));
}
-Function/*=F*/ allowInterop/*<F extends Function>*/(Function/*=F*/ f) {
+F allowInterop<F extends Function>(F f) {
if (JS('bool', 'typeof(#) == "function"', f)) {
// Already supports interop, just use the existing function.
return f;
diff --git a/tests/co19/co19-analyzer2.status b/tests/co19/co19-analyzer2.status
index c657b23..85a56bd 100644
--- a/tests/co19/co19-analyzer2.status
+++ b/tests/co19/co19-analyzer2.status
@@ -3,7 +3,6 @@
# BSD-style license that can be found in the LICENSE file.
[ $compiler == dart2analyzer ]
-
Language/Classes/Classes/method_definition_t06: MissingStaticWarning # Please triage this failure.
Language/Classes/Getters/static_getter_t02: CompileTimeError # Issue 24534
Language/Classes/Getters/static_t01: StaticWarning # Please triage this failure.
@@ -16,8 +15,8 @@
Language/Enums/syntax_t08: MissingCompileTimeError # Please triage this failure.
Language/Enums/syntax_t09: MissingCompileTimeError # Please triage this failure.
Language/Expressions/Assignment/super_assignment_static_warning_t03: StaticWarning # Issue 15467
-Language/Expressions/Constants/exception_t01: fail, OK # co19 issue #438, Static variables are initialized lazily, need not be constants
-Language/Expressions/Constants/exception_t02: fail, OK # co19 issue #438, Static variables are initialized lazily, need not be constants
+Language/Expressions/Constants/exception_t01: Fail, OK # co19 issue #438, Static variables are initialized lazily, need not be constants
+Language/Expressions/Constants/exception_t02: Fail, OK # co19 issue #438, Static variables are initialized lazily, need not be constants
Language/Expressions/Function_Invocation/Unqualified_Invocation/instance_context_invocation_t03: MissingCompileTimeError # Please triage this failure.
Language/Expressions/Function_Invocation/Unqualified_Invocation/instance_context_invocation_t04: MissingCompileTimeError # Please triage this failure.
Language/Expressions/Function_Invocation/Unqualified_Invocation/invocation_t17: MissingCompileTimeError # Please triage this failure
@@ -66,7 +65,7 @@
Language/Libraries_and_Scripts/Parts/compilation_t01: Pass, MissingCompileTimeError # Issue 26692
Language/Libraries_and_Scripts/Parts/compilation_t02: Pass, MissingCompileTimeError # Issue 26692
Language/Libraries_and_Scripts/Parts/compilation_t04: Pass, CompileTimeError # Issue 26592
-Language/Libraries_and_Scripts/Parts/compilation_t15: fail, pass # Issue 23595
+Language/Libraries_and_Scripts/Parts/compilation_t15: Fail, Pass # Issue 23595
Language/Libraries_and_Scripts/Scripts/syntax_t11: Pass, CompileTimeError # Issue 26592
Language/Mixins/Mixin_Application/error_t01: MissingCompileTimeError # Please triage this failure.
Language/Mixins/Mixin_Application/error_t02: MissingCompileTimeError # Please triage this failure.
@@ -93,7 +92,7 @@
Language/Statements/Yield_and_Yield_Each/Yield_Each/location_t01: MissingCompileTimeError # Issue 25495
Language/Statements/Yield_and_Yield_Each/Yield_Each/location_t03: MissingCompileTimeError # Issue 25495
Language/Statements/Yield_and_Yield_Each/Yield_Each/location_t05: MissingCompileTimeError # Issue 25495
-Language/Types/Interface_Types/subtype_t12: fail, OK # co19 issue #442, undefined name "Expect"
+Language/Types/Interface_Types/subtype_t12: Fail, OK # co19 issue #442, undefined name "Expect"
Language/Types/Type_Void/syntax_t01: MissingCompileTimeError # Issue co19/30264
Language/Types/Type_Void/syntax_t02: MissingCompileTimeError # Issue co19/30264
Language/Types/Type_Void/syntax_t04: MissingCompileTimeError # Issue co19/30264
@@ -173,12 +172,11 @@
LayoutTests/fast/dom/text-api-arguments_t01: StaticWarning # Please triage this failure.
LayoutTests/fast/events/event-creation_t01: Skip # Roll 45 OverflowEvent removed
LayoutTests/fast/events/initkeyboardevent-crash_t01: StaticWarning # Please triage this failure.
-LayoutTests/fast/forms/checkValidity-001_t01: fail
LayoutTests/fast/html/article-element_t01: StaticWarning # Please triage this failure.
LayoutTests/fast/html/aside-element_t01: StaticWarning # Please triage this failure.
LayoutTests/fast/html/imports/import-element-removed-flag_t01: StaticWarning # Please triage this failure.
-LayoutTests/fast/html/imports/import-events_t01: CompileTimeError # Please triage this failure.
LayoutTests/fast/html/imports/import-events_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/html/imports/import-events_t01: CompileTimeError # Please triage this failure.
LayoutTests/fast/html/select-dropdown-consistent-background-color_t01: StaticWarning # Please triage this failure.
LayoutTests/fast/html/text-field-input-types_t01: StaticWarning # Please triage this failure.
LayoutTests/fast/inline/boundingBox-with-continuation_t01: StaticWarning # Please triage this failure.
@@ -324,7 +322,6 @@
WebPlatformTest/html/semantics/forms/the-datalist-element/datalistoptions_t01: StaticWarning # Please triage this failure.
WebPlatformTest/html/semantics/forms/the-fieldset-element/disabled_t01: StaticWarning # Please triage this failure.
WebPlatformTest/html/semantics/forms/the-input-element/email_t02: StaticWarning # co19 issue 701
-WebPlatformTest/html/semantics/forms/the-textarea-element/textarea-type_t01: fail
WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t01: StaticWarning # Please triage this failure.
WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t02: StaticWarning # Please triage this failure.
WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t03: StaticWarning # Please triage this failure.
@@ -431,5 +428,6 @@
WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-009_t01: StaticWarning # Please triage this failure.
WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-011_t01: StaticWarning # Please triage this failure.
-[ $compiler == dart2analyzer && $builder_tag == strong ]
+[ $builder_tag == strong && $compiler == dart2analyzer ]
*: Skip # Issue 28649
+
diff --git a/tests/co19/co19-co19.status b/tests/co19/co19-co19.status
index 39d3d02..2f30364 100644
--- a/tests/co19/co19-co19.status
+++ b/tests/co19/co19-co19.status
@@ -1,32 +1,14 @@
# 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.
-
# This file contains the tests that have been identified as broken and
# have been filed on the co19 issue tracker at
# https://code.google.com/p/co19/issues/list (read-only).
# https://github.com/dart-lang/co19/issues .
#
# In order to qualify here these tests need to fail both on the VM and dart2js.
-
### GENERAL FAILURES ###
-# Tests that fail everywhere, including the analyzer.
-[ $runtime == vm || $runtime != vm ]
-Language/Classes/Getters/type_object_t01: Fail # co19 issue 115
-Language/Classes/Getters/type_object_t02: Fail # co19 issue 115
-Language/Classes/Setters/type_object_t01: Fail # co19 issue 115
-Language/Classes/Setters/type_object_t02: Fail # co19 issue 115
-Language/Classes/Static_Methods/type_object_t01: Fail # co19 issue 115
-Language/Classes/Static_Methods/type_object_t02: Fail # co19 issue 115
-Language/Statements/Assert/syntax_t04: Pass, Fail # assert now has an optional second parameter.
-LibTest/typed_data/ByteData/buffer_A01_t01: Fail # co19 r736 bug - sent comment.
-LibTest/core/RegExp/firstMatch_A01_t01: Fail # co19 issue 742
-
-LibTest/async/Zone/bindBinaryCallback_A01_t02: Fail # co19 issue 126
-LibTest/async/Zone/bindCallback_A01_t02: Fail # co19 issue 126
-LibTest/async/Zone/bindUnaryCallback_A01_t02: Fail # co19 issue 126
-
# Tests that fail on every runtime, but not on the analyzer.
[ $compiler != dart2analyzer ]
Language/Classes/same_name_type_variable_t04: Pass, MissingCompileTimeError, Fail # Issue 14513,25525
@@ -63,16 +45,32 @@
LibTest/isolate/ReceivePort/receive_A01_t03: Fail # Co19 issue 639
LibTest/isolate/ReceivePort/sendPort_A01_t01: Fail # Co19 issue 639
LibTest/isolate/SendPort/call_A01_t01: Fail # Co19 issue 639
-LibTest/isolate/SendPort/send_A02_t02: SKIP # co19 issue 493 (not fixed in r672)
-LibTest/isolate/SendPort/send_A02_t03: SKIP # co19 issue 495 (not fixed in r672)
+LibTest/isolate/SendPort/send_A02_t02: Skip # co19 issue 493 (not fixed in r672)
+LibTest/isolate/SendPort/send_A02_t03: Skip # co19 issue 495 (not fixed in r672)
LibTest/isolate/SendPort/send_A02_t04: Fail # Co19 issue 639
LibTest/isolate/SendPort/send_A02_t05: Fail # Co19 issue 639
LibTest/isolate/SendPort/send_A02_t06: Fail # Co19 issue 639
LibTest/isolate/SendPort/send_A03_t01: Fail # Co19 issue 639
LibTest/isolate/SendPort/send_A03_t02: Fail # Co19 issue 639
-LibTest/math/acos_A01_t01: PASS, FAIL, OK # Issue 26261
-LibTest/math/asin_A01_t01: PASS, FAIL, OK # Issue 26261
-LibTest/math/atan_A01_t01: PASS, FAIL, OK # Issue 26261
-LibTest/math/cos_A01_t01: PASS, FAIL, OK # Issue 26261
-LibTest/math/tan_A01_t01: PASS, FAIL, OK # Issue 26261
-LibTest/math/log_A01_t01: PASS, FAIL, OK # Issue 26261
+LibTest/math/acos_A01_t01: Pass, Fail, OK # Issue 26261
+LibTest/math/asin_A01_t01: Pass, Fail, OK # Issue 26261
+LibTest/math/atan_A01_t01: Pass, Fail, OK # Issue 26261
+LibTest/math/cos_A01_t01: Pass, Fail, OK # Issue 26261
+LibTest/math/log_A01_t01: Pass, Fail, OK # Issue 26261
+LibTest/math/tan_A01_t01: Pass, Fail, OK # Issue 26261
+
+# Tests that fail everywhere, including the analyzer.
+[ $runtime == vm || $runtime != vm ]
+Language/Classes/Getters/type_object_t01: Fail # co19 issue 115
+Language/Classes/Getters/type_object_t02: Fail # co19 issue 115
+Language/Classes/Setters/type_object_t01: Fail # co19 issue 115
+Language/Classes/Setters/type_object_t02: Fail # co19 issue 115
+Language/Classes/Static_Methods/type_object_t01: Fail # co19 issue 115
+Language/Classes/Static_Methods/type_object_t02: Fail # co19 issue 115
+Language/Statements/Assert/syntax_t04: Pass, Fail # assert now has an optional second parameter.
+LibTest/async/Zone/bindBinaryCallback_A01_t02: Fail # co19 issue 126
+LibTest/async/Zone/bindCallback_A01_t02: Fail # co19 issue 126
+LibTest/async/Zone/bindUnaryCallback_A01_t02: Fail # co19 issue 126
+LibTest/core/RegExp/firstMatch_A01_t01: Fail # co19 issue 742
+LibTest/typed_data/ByteData/buffer_A01_t01: Fail # co19 r736 bug - sent comment.
+
diff --git a/tests/co19/co19-dart2js.status b/tests/co19/co19-dart2js.status
index fa19cf5..2dc6f9c 100644
--- a/tests/co19/co19-dart2js.status
+++ b/tests/co19/co19-dart2js.status
@@ -2,75 +2,19 @@
# 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 && $builder_tag != run_webgl_tests ]
-LayoutTests/fast/canvas/webgl*: Skip # Only run WebGL on special builders, issue 29961
-
[ $compiler == dart2js ]
-Language/Classes/Constructors/Generative_Constructors/execution_t03: RuntimeError # https://github.com/dart-lang/sdk/issues/29596
-Language/Expressions/Function_Invocation/async_cleanup_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-Language/Expressions/Function_Invocation/async_cleanup_t03: Skip # https://github.com/dart-lang/sdk/issues/28873
-Language/Expressions/Function_Invocation/async_cleanup_t05: Skip # https://github.com/dart-lang/sdk/issues/28873
-Language/Expressions/Function_Invocation/async_cleanup_t06: Skip # https://github.com/dart-lang/sdk/issues/28873
-Language/Expressions/Function_Invocation/async_cleanup_t08: Skip # https://github.com/dart-lang/sdk/issues/28873
-Language/Expressions/Instance_Creation/New/execution_t04: RuntimeError # https://github.com/dart-lang/sdk/issues/29596
-Language/Expressions/Instance_Creation/New/execution_t06: RuntimeError # https://github.com/dart-lang/sdk/issues/29596
-Language/Statements/Yield_and_Yield_Each/Yield/execution_async_t03: Skip # https://github.com/dart-lang/sdk/issues/28873
-Language/Statements/Yield_and_Yield_Each/Yield/execution_async_t05: Skip # https://github.com/dart-lang/sdk/issues/28873
-Language/Statements/Yield_and_Yield_Each/Yield/execution_async_t06: Skip # https://github.com/dart-lang/sdk/issues/28873
-Language/Statements/Yield_and_Yield_Each/Yield/execution_async_t08: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/css/font-face-cache-bug_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/dom/HTMLLinkElement/link-onload-stylesheet-with-import_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/dom/mutation-event-remove-inserted-node_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/dom/shadow/event-path-not-in-document_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/dom/subtree-modified-attributes_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/files/file-reader-done-reading-abort_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/forms/search-popup-crasher_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/loader/stateobjects/replacestate-in-onunload_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/media/mq-parsing_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/mediastream/getusermedia_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/replaced/preferred-widths_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/replaced/table-percent-height_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/replaced/table-percent-width_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-image-margin_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/table/css-table-max-height_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/table/hittest-tablecell-right-edge_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/table/hittest-tablecell-with-borders-right-edge_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/table/table-all-rowspans-height-distribution-in-rows-except-overlapped_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/table/table-colgroup-present-after-table-row_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/table/table-rowspan-height-distribution-in-rows_t02: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/table/table-size-integer-overflow_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/table/table-with-content-width-exceeding-max-width_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/text/find-case-folding_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/text/find-hidden-text_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/text/find-quotes_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/text/find-spaces_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/text/international/cjk-segmentation_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/text/zero-width-characters-complex-script_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/transforms/hit-test-large-scale_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/transforms/scrollIntoView-transformed_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/writing-mode/percentage-margins-absolute_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-abort_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/xpath/4XPath/Core/test_core_functions_t02: Skip # https://github.com/dart-lang/sdk/issues/28873
-LayoutTests/fast/xpath/ambiguous-operators_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-LibTest/async/Future/Future.delayed_A01_t02: Pass, Fail # Issue 15524
-LibTest/html/Element/addEventListener_A01_t04: Skip # https://github.com/dart-lang/sdk/issues/28873
-LibTest/html/IFrameElement/addEventListener_A01_t04: Skip # https://github.com/dart-lang/sdk/issues/28873
-LibTest/html/Window/postMessage_A01_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-WebPlatformTest/Utils/test/asyncTestFail_t02: Skip # https://github.com/dart-lang/sdk/issues/28873
-WebPlatformTest/dom/EventTarget/dispatchEvent_A02_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-WebPlatformTest/webstorage/event_local_storageeventinit_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
-
Language/Classes/Constructors/Generative_Constructors/execution_of_a_superinitializer_t01: RuntimeError # compiler cancelled: cannot resolve type T
Language/Classes/Constructors/Generative_Constructors/execution_of_a_superinitializer_t01: RuntimeError, OK # co19 issue 258
-Language/Classes/Constructors/Generative_Constructors/execution_of_an_initializer_t02: fail # Issue 13363
-Language/Classes/Constructors/Generative_Constructors/initializing_formals_execution_t02: fail # Issue 13363
+Language/Classes/Constructors/Generative_Constructors/execution_of_an_initializer_t02: Fail # Issue 13363
+Language/Classes/Constructors/Generative_Constructors/execution_t03: RuntimeError # https://github.com/dart-lang/sdk/issues/29596
+Language/Classes/Constructors/Generative_Constructors/initializing_formals_execution_t02: Fail # Issue 13363
Language/Classes/Getters/static_getter_t02: CompileTimeError # Should be fixed with unified frontend. Issue 24534
-Language/Classes/Instance_Methods/same_name_setter_t01: fail # Issue 21201
+Language/Classes/Instance_Methods/same_name_setter_t01: Fail # Issue 21201
Language/Classes/Setters/name_t01: CompileTimeError # Issue 5023
Language/Classes/Setters/name_t02: CompileTimeError # Issue 5023
Language/Classes/Setters/name_t03: RuntimeError # Issue 5023
Language/Classes/Setters/name_t07: CompileTimeError # Issue 5023
-Language/Classes/Setters/static_setter_t06: RuntimeError # Should be fixed with unified frontend. Issue 23749
+Language/Classes/Setters/static_setter_t06: RuntimeError # Should be fixed with unified frontend. Issue 23749
Language/Classes/Static_Methods/same_name_method_and_setter_t01: CompileTimeError # Should be fixed with unified frontend. Issue 23749
Language/Classes/definition_t23: CompileTimeError # Please triage this failure
Language/Classes/same_name_type_variable_t01: Fail # Missing CT error on class with same name a type parameter
@@ -90,19 +34,26 @@
Language/Expressions/Await_Expressions/evaluation_throws_t07: RuntimeError # Please triage this failure
Language/Expressions/Constants/identifier_denotes_a_constant_t06: MissingCompileTimeError # Issue 26580
Language/Expressions/Constants/identifier_denotes_a_constant_t07: MissingCompileTimeError # Issue 26580
+Language/Expressions/Function_Invocation/async_cleanup_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+Language/Expressions/Function_Invocation/async_cleanup_t03: Skip # https://github.com/dart-lang/sdk/issues/28873
+Language/Expressions/Function_Invocation/async_cleanup_t05: Skip # https://github.com/dart-lang/sdk/issues/28873
+Language/Expressions/Function_Invocation/async_cleanup_t06: Skip # https://github.com/dart-lang/sdk/issues/28873
+Language/Expressions/Function_Invocation/async_cleanup_t08: Skip # https://github.com/dart-lang/sdk/issues/28873
Language/Expressions/Function_Invocation/async_generator_invokation_t08: Skip # Issue 25967
Language/Expressions/Function_Invocation/async_generator_invokation_t10: Skip # Issue 25967
Language/Expressions/Function_Invocation/async_invokation_t04: RuntimeError, Pass # co19 issue 57
Language/Expressions/Instance_Creation/New/evaluation_t19: RuntimeError # Please triage this failure
Language/Expressions/Instance_Creation/New/evaluation_t20: RuntimeError # Please triage this failure
+Language/Expressions/Instance_Creation/New/execution_t04: RuntimeError # https://github.com/dart-lang/sdk/issues/29596
+Language/Expressions/Instance_Creation/New/execution_t06: RuntimeError # https://github.com/dart-lang/sdk/issues/29596
Language/Expressions/Maps/key_value_equals_operator_t02: CompileTimeError # Please triage this failure
Language/Expressions/Maps/static_type_dynamic_t01: CompileTimeError # Maybe ok. Issue 17207
Language/Expressions/Method_Invocation/Ordinary_Invocation/object_method_invocation_t01: MissingCompileTimeError # Issue 25496
Language/Expressions/Method_Invocation/Ordinary_Invocation/object_method_invocation_t02: MissingCompileTimeError # Issue 25496
-Language/Expressions/Numbers/syntax_t06: fail # Issue 21098
-Language/Expressions/Numbers/syntax_t09: fail # Issue 21098
-Language/Expressions/Object_Identity/Object_Identity/constant_objects_t01: fail # Issue 11551, also related to issue 563, 18738
-Language/Expressions/Object_Identity/Object_Identity/double_t02: fail # Issue 11551, also related to issue 563, 18738
+Language/Expressions/Numbers/syntax_t06: Fail # Issue 21098
+Language/Expressions/Numbers/syntax_t09: Fail # Issue 21098
+Language/Expressions/Object_Identity/Object_Identity/constant_objects_t01: Fail # Issue 11551, also related to issue 563, 18738
+Language/Expressions/Object_Identity/Object_Identity/double_t02: Fail # Issue 11551, also related to issue 563, 18738
Language/Expressions/Object_Identity/constant_objects_t01: RuntimeError # Please triage this failure
Language/Expressions/Object_Identity/double_t02: RuntimeError # Please triage this failure
Language/Expressions/Object_Identity/double_t03: RuntimeError # Please triage this failure
@@ -157,6 +108,10 @@
Language/Statements/Local_Function_Declaration/reference_before_declaration_t03: MissingCompileTimeError # Issue 21050
Language/Statements/Try/catch_scope_t01: RuntimeError # Please triage this failure
Language/Statements/Yield_and_Yield_Each/Yield/execution_async_t02: RuntimeError # Please triage this failure
+Language/Statements/Yield_and_Yield_Each/Yield/execution_async_t03: Skip # https://github.com/dart-lang/sdk/issues/28873
+Language/Statements/Yield_and_Yield_Each/Yield/execution_async_t05: Skip # https://github.com/dart-lang/sdk/issues/28873
+Language/Statements/Yield_and_Yield_Each/Yield/execution_async_t06: Skip # https://github.com/dart-lang/sdk/issues/28873
+Language/Statements/Yield_and_Yield_Each/Yield/execution_async_t08: Skip # https://github.com/dart-lang/sdk/issues/28873
Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_sync_t05: RuntimeError # Issue 25662,25634
Language/Statements/Yield_and_Yield_Each/Yield_Each/location_t01: MissingCompileTimeError # Issue 25495
Language/Statements/Yield_and_Yield_Each/Yield_Each/location_t03: MissingCompileTimeError # Issue 25495
@@ -164,13 +119,48 @@
Language/Types/Dynamic_Type_System/deferred_type_error_t01: RuntimeError # Please triage this failure
Language/Types/Interface_Types/subtype_t27: Skip # Times out or crashes. Issue 21174
Language/Types/Interface_Types/subtype_t28: Pass, Fail, Crash # Stack overflow. Issue 25282
-Language/Types/Interface_Types/subtype_t30: fail # Issue 14654
+Language/Types/Interface_Types/subtype_t30: Fail # Issue 14654
Language/Variables/final_t01/01: CompileTimeError # co19 issue 77
Language/Variables/final_t02/01: CompileTimeError # co19 issue 77
Language/Variables/local_variable_t01: MissingCompileTimeError # Issue 21050
+LayoutTests/fast/css/font-face-cache-bug_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/dom/HTMLLinkElement/link-onload-stylesheet-with-import_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
LayoutTests/fast/dom/css-innerHTML_t01: SkipByDesign # Test is incorrect.
-LayoutTests/fast/loader/loadInProgress_t01: Skip # Issue 23466
+LayoutTests/fast/dom/mutation-event-remove-inserted-node_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/dom/shadow/event-path-not-in-document_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/dom/subtree-modified-attributes_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/files/file-reader-done-reading-abort_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
LayoutTests/fast/forms/input-implicit-length-limit_t01: SkipByDesign # Test is not about Dart, but about a DOM-only webkit bug that has been fixed.
+LayoutTests/fast/forms/search-popup-crasher_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/loader/loadInProgress_t01: Skip # Issue 23466
+LayoutTests/fast/loader/stateobjects/replacestate-in-onunload_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/media/mq-parsing_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/mediastream/getusermedia_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/replaced/preferred-widths_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/replaced/table-percent-height_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/replaced/table-percent-width_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-image-margin_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/table/css-table-max-height_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/table/hittest-tablecell-right-edge_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/table/hittest-tablecell-with-borders-right-edge_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/table/table-all-rowspans-height-distribution-in-rows-except-overlapped_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/table/table-colgroup-present-after-table-row_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/table/table-rowspan-height-distribution-in-rows_t02: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/table/table-size-integer-overflow_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/table/table-with-content-width-exceeding-max-width_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/text/find-case-folding_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/text/find-hidden-text_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/text/find-quotes_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/text/find-spaces_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/text/international/cjk-segmentation_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/text/zero-width-characters-complex-script_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/transforms/hit-test-large-scale_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/transforms/scrollIntoView-transformed_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/writing-mode/percentage-margins-absolute_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-abort_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/xpath/4XPath/Core/test_core_functions_t02: Skip # https://github.com/dart-lang/sdk/issues/28873
+LayoutTests/fast/xpath/ambiguous-operators_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
+LibTest/async/Future/Future.delayed_A01_t02: Pass, Fail # Issue 15524
LibTest/collection/LinkedHashSet/LinkedHashSet.from_A03_t01: RuntimeError # Please triage this failure.
LibTest/collection/LinkedList/add_A01_t01: Pass, Slow # Slow tests that needs extra time to finish.
LibTest/collection/ListBase/ListBase_class_A01_t01: RuntimeError # Please triage this failure
@@ -190,6 +180,7 @@
LibTest/core/List/getRange_A03_t01: RuntimeError, OK # Tests that fail because they use the legacy try-catch syntax. co19 issue 184.
LibTest/core/List/removeAt_A02_t01: RuntimeError # Issue 1533
LibTest/core/List/sort_A01_t06: Slow, Pass # Slow tests that needs extra time to finish.
+LibTest/core/RegExp/Pattern_semantics/splitQueryString_A02_t01: Pass, RuntimeError # https://github.com/dart-lang/sdk/issues/29814
LibTest/core/double/INFINITY_A01_t04: RuntimeError # Expected to fail because double.INFINITY is int.
LibTest/core/double/NEGATIVE_INFINITY_A01_t04: RuntimeError # Expected to fail because double.NEGATIVE_INFINITY is int.
LibTest/core/int/hashCode_A01_t01: RuntimeError, OK # co19 issue 308
@@ -205,9 +196,11 @@
LibTest/core/int/operator_remainder_A01_t01: RuntimeError, OK # Requires bigints.
LibTest/core/int/operator_right_shift_A01_t01: RuntimeError, OK # Expects negative result from bit-operation.
LibTest/core/int/toDouble_A01_t01: RuntimeError, OK # co19 issue 200
-LibTest/core/RegExp/Pattern_semantics/splitQueryString_A02_t01: Pass,RuntimeError # https://github.com/dart-lang/sdk/issues/29814
+LibTest/html/Element/addEventListener_A01_t04: Skip # https://github.com/dart-lang/sdk/issues/28873
LibTest/html/HttpRequest/responseType_A01_t03: CompileTimeError # co19-roll r706: Please triage this failure
+LibTest/html/IFrameElement/addEventListener_A01_t04: Skip # https://github.com/dart-lang/sdk/issues/28873
LibTest/html/IFrameElement/enteredView_A01_t01: CompileTimeError # co19-roll r706: Please triage this failure
+LibTest/html/Window/postMessage_A01_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
LibTest/isolate/Isolate/spawnUri_A01_t01: Fail # Dart issue 15974
LibTest/isolate/Isolate/spawnUri_A01_t02: Fail # Dart issue 15974
LibTest/isolate/Isolate/spawnUri_A01_t03: Fail # Dart issue 15974
@@ -224,62 +217,62 @@
LibTest/isolate/SendPort/send_A01_t03: CompileTimeError # co19-roll r706: Please triage this failure
LibTest/math/MutableRectangle/boundingBox_A01_t01: RuntimeError, Pass # co19-roll r706: Please triage this failure.
LibTest/math/Rectangle/boundingBox_A01_t01: RuntimeError, Pass # co19-roll r706: Please triage this failure.
-LibTest/math/pow_A04_t01: fail # co19-roll r587: Please triage this failure
-LibTest/math/pow_A14_t01: fail # co19-roll r587: Please triage this failure
-LibTest/math/pow_A16_t01: fail # co19-roll r587: Please triage this failure
-LibTest/typed_data/ByteData/*Int64*: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/*Uint64*: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/ByteData.view_A01_t02: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/ByteData.view_A03_t01: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/ByteData.view_A04_t01: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/ByteData.view_A05_t01: fail # Issue 12989
-LibTest/typed_data/ByteData/ByteData.view_A05_t02: fail # Issue 12989
-LibTest/typed_data/ByteData/ByteData.view_A05_t03: fail # Issue 12989
-LibTest/typed_data/ByteData/ByteData_A01_t01: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/ByteData_A02_t01: fail # co19-roll r576: Please triage this failure
-LibTest/typed_data/ByteData/getFloat32_A02_t01: fail # Issue 12989
-LibTest/typed_data/ByteData/getFloat32_A02_t02: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/getFloat64_A02_t01: fail # Issue 12989
-LibTest/typed_data/ByteData/getFloat64_A02_t02: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/getInt16_A02_t01: fail # Issue 12989
-LibTest/typed_data/ByteData/getInt16_A02_t02: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/getInt32_A02_t01: fail # Issue 12989
-LibTest/typed_data/ByteData/getInt32_A02_t02: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/getInt64_A02_t02: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/getInt8_A02_t01: fail # Issue 12989
-LibTest/typed_data/ByteData/getInt8_A02_t02: fail # Issue 12989
-LibTest/typed_data/ByteData/getUint16_A02_t01: fail # Issue 12989
-LibTest/typed_data/ByteData/getUint16_A02_t02: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/getUint32_A02_t01: fail # Issue 12989
-LibTest/typed_data/ByteData/getUint32_A02_t02: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/getUint64_A02_t02: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/getUint8_A02_t01: fail # Issue 12989
-LibTest/typed_data/ByteData/getUint8_A02_t02: fail # Issue 12989
-LibTest/typed_data/ByteData/setFloat32_A02_t01: fail # Issue 12989
-LibTest/typed_data/ByteData/setFloat32_A02_t02: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/setFloat64_A02_t01: fail # Issue 12989
-LibTest/typed_data/ByteData/setFloat64_A02_t02: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/setInt16_A02_t01: fail # Issue 12989
-LibTest/typed_data/ByteData/setInt16_A02_t02: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/setInt32_A02_t01: fail # Issue 12989
-LibTest/typed_data/ByteData/setInt32_A02_t02: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/setInt64_A02_t02: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/setInt8_A02_t01: fail # Issue 12989
-LibTest/typed_data/ByteData/setInt8_A02_t02: fail # Issue 12989
-LibTest/typed_data/ByteData/setUint16_A02_t01: fail # Issue 12989
-LibTest/typed_data/ByteData/setUint16_A02_t02: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/setUint32_A02_t01: fail # Issue 12989
-LibTest/typed_data/ByteData/setUint32_A02_t02: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/setUint64_A02_t02: fail # co19-roll r569: Please triage this failure
-LibTest/typed_data/ByteData/setUint8_A02_t01: fail # Issue 12989
-LibTest/typed_data/ByteData/setUint8_A02_t02: fail # Issue 12989
+LibTest/math/pow_A04_t01: Fail # co19-roll r587: Please triage this failure
+LibTest/math/pow_A14_t01: Fail # co19-roll r587: Please triage this failure
+LibTest/math/pow_A16_t01: Fail # co19-roll r587: Please triage this failure
+LibTest/typed_data/ByteData/*Int64*: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/*Uint64*: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/ByteData.view_A01_t02: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/ByteData.view_A03_t01: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/ByteData.view_A04_t01: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/ByteData.view_A05_t01: Fail # Issue 12989
+LibTest/typed_data/ByteData/ByteData.view_A05_t02: Fail # Issue 12989
+LibTest/typed_data/ByteData/ByteData.view_A05_t03: Fail # Issue 12989
+LibTest/typed_data/ByteData/ByteData_A01_t01: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/ByteData_A02_t01: Fail # co19-roll r576: Please triage this failure
+LibTest/typed_data/ByteData/getFloat32_A02_t01: Fail # Issue 12989
+LibTest/typed_data/ByteData/getFloat32_A02_t02: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/getFloat64_A02_t01: Fail # Issue 12989
+LibTest/typed_data/ByteData/getFloat64_A02_t02: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/getInt16_A02_t01: Fail # Issue 12989
+LibTest/typed_data/ByteData/getInt16_A02_t02: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/getInt32_A02_t01: Fail # Issue 12989
+LibTest/typed_data/ByteData/getInt32_A02_t02: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/getInt64_A02_t02: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/getInt8_A02_t01: Fail # Issue 12989
+LibTest/typed_data/ByteData/getInt8_A02_t02: Fail # Issue 12989
+LibTest/typed_data/ByteData/getUint16_A02_t01: Fail # Issue 12989
+LibTest/typed_data/ByteData/getUint16_A02_t02: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/getUint32_A02_t01: Fail # Issue 12989
+LibTest/typed_data/ByteData/getUint32_A02_t02: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/getUint64_A02_t02: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/getUint8_A02_t01: Fail # Issue 12989
+LibTest/typed_data/ByteData/getUint8_A02_t02: Fail # Issue 12989
+LibTest/typed_data/ByteData/setFloat32_A02_t01: Fail # Issue 12989
+LibTest/typed_data/ByteData/setFloat32_A02_t02: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/setFloat64_A02_t01: Fail # Issue 12989
+LibTest/typed_data/ByteData/setFloat64_A02_t02: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/setInt16_A02_t01: Fail # Issue 12989
+LibTest/typed_data/ByteData/setInt16_A02_t02: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/setInt32_A02_t01: Fail # Issue 12989
+LibTest/typed_data/ByteData/setInt32_A02_t02: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/setInt64_A02_t02: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/setInt8_A02_t01: Fail # Issue 12989
+LibTest/typed_data/ByteData/setInt8_A02_t02: Fail # Issue 12989
+LibTest/typed_data/ByteData/setUint16_A02_t01: Fail # Issue 12989
+LibTest/typed_data/ByteData/setUint16_A02_t02: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/setUint32_A02_t01: Fail # Issue 12989
+LibTest/typed_data/ByteData/setUint32_A02_t02: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/setUint64_A02_t02: Fail # co19-roll r569: Please triage this failure
+LibTest/typed_data/ByteData/setUint8_A02_t01: Fail # Issue 12989
+LibTest/typed_data/ByteData/setUint8_A02_t02: Fail # Issue 12989
LibTest/typed_data/Float32List/Float32List.view_A05_t01: RuntimeError # co19-roll r559: Please triage this failure
LibTest/typed_data/Float32List/Float32List.view_A05_t02: RuntimeError # co19-roll r559: Please triage this failure
LibTest/typed_data/Float32List/Float32List.view_A05_t03: RuntimeError # co19-roll r559: Please triage this failure
-LibTest/typed_data/Float32List/Float32List_A02_t01: fail # co19-roll r576: Please triage this failure
-LibTest/typed_data/Float32List/fold_A01_t01: fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Float32List/join_A01_t01: fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Float32List/join_A01_t02: fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Float32List/Float32List_A02_t01: Fail # co19-roll r576: Please triage this failure
+LibTest/typed_data/Float32List/fold_A01_t01: Fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Float32List/join_A01_t01: Fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Float32List/join_A01_t02: Fail # co19-roll r559: Please triage this failure
LibTest/typed_data/Float32x4/equal_A01_t01: Skip # co19 issue 656
LibTest/typed_data/Float32x4/greaterThanOrEqual_A01_t01: Skip # co19 issue 656
LibTest/typed_data/Float32x4/greaterThan_A01_t01: Skip # co19 issue 656
@@ -289,539 +282,76 @@
LibTest/typed_data/Float32x4List/Float32x4List.view_A05_t01: RuntimeError # co19-roll r559: Please triage this failure
LibTest/typed_data/Float32x4List/Float32x4List.view_A05_t02: RuntimeError # co19-roll r559: Please triage this failure
LibTest/typed_data/Float32x4List/Float32x4List.view_A05_t03: RuntimeError # co19-roll r559: Please triage this failure
-LibTest/typed_data/Float32x4List/Float32x4List_A02_t01: fail # co19-roll r576: Please triage this failure
-LibTest/typed_data/Float32x4List/fold_A01_t01: fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Float32x4List/join_A01_t01: fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Float32x4List/join_A01_t02: fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Float32x4List/Float32x4List_A02_t01: Fail # co19-roll r576: Please triage this failure
+LibTest/typed_data/Float32x4List/fold_A01_t01: Fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Float32x4List/join_A01_t01: Fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Float32x4List/join_A01_t02: Fail # co19-roll r559: Please triage this failure
LibTest/typed_data/Float64List/Float64List.view_A05_t01: RuntimeError # co19-roll r559: Please triage this failure
LibTest/typed_data/Float64List/Float64List.view_A05_t02: RuntimeError # co19-roll r559: Please triage this failure
LibTest/typed_data/Float64List/Float64List.view_A05_t03: RuntimeError # co19-roll r559: Please triage this failure
-LibTest/typed_data/Float64List/Float64List_A02_t01: fail # co19-roll r576: Please triage this failure
-LibTest/typed_data/Float64List/fold_A01_t01: fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Float64List/join_A01_t01: fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Float64List/join_A01_t02: fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Float64List/Float64List_A02_t01: Fail # co19-roll r576: Please triage this failure
+LibTest/typed_data/Float64List/fold_A01_t01: Fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Float64List/join_A01_t01: Fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Float64List/join_A01_t02: Fail # co19-roll r559: Please triage this failure
LibTest/typed_data/Int16List/Int16List.view_A05_t01: RuntimeError # co19-roll r559: Please triage this failure
LibTest/typed_data/Int16List/Int16List.view_A05_t02: RuntimeError # co19-roll r559: Please triage this failure
LibTest/typed_data/Int16List/Int16List.view_A05_t03: RuntimeError # co19-roll r559: Please triage this failure
-LibTest/typed_data/Int16List/Int16List_A02_t01: fail # co19-roll r576: Please triage this failure
+LibTest/typed_data/Int16List/Int16List_A02_t01: Fail # co19-roll r576: Please triage this failure
LibTest/typed_data/Int32List/Int32List.view_A05_t01: RuntimeError # co19-roll r559: Please triage this failure
LibTest/typed_data/Int32List/Int32List.view_A05_t02: RuntimeError # co19-roll r559: Please triage this failure
LibTest/typed_data/Int32List/Int32List.view_A05_t03: RuntimeError # co19-roll r559: Please triage this failure
-LibTest/typed_data/Int32List/Int32List_A02_t01: fail # co19-roll r576: Please triage this failure
+LibTest/typed_data/Int32List/Int32List_A02_t01: Fail # co19-roll r576: Please triage this failure
LibTest/typed_data/Int64List/*: Fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Int64List/Int64List_A02_t01: pass # co19-roll r559: Please triage this failure
+LibTest/typed_data/Int64List/Int64List_A02_t01: Pass # co19-roll r559: Please triage this failure
LibTest/typed_data/Int8List/Int8List.view_A05_t01: RuntimeError # co19-roll r559: Please triage this failure
LibTest/typed_data/Int8List/Int8List.view_A05_t02: RuntimeError # co19-roll r559: Please triage this failure
LibTest/typed_data/Int8List/Int8List.view_A05_t03: RuntimeError # co19-roll r559: Please triage this failure
-LibTest/typed_data/Int8List/Int8List_A02_t01: fail # co19-roll r576: Please triage this failure
+LibTest/typed_data/Int8List/Int8List_A02_t01: Fail # co19-roll r576: Please triage this failure
LibTest/typed_data/Uint16List/Uint16List.view_A05_t01: RuntimeError # co19-roll r559: Please triage this failure
LibTest/typed_data/Uint16List/Uint16List.view_A05_t02: RuntimeError # co19-roll r559: Please triage this failure
LibTest/typed_data/Uint16List/Uint16List.view_A05_t03: RuntimeError # co19-roll r559: Please triage this failure
-LibTest/typed_data/Uint16List/Uint16List_A02_t01: fail # co19-roll r576: Please triage this failure
+LibTest/typed_data/Uint16List/Uint16List_A02_t01: Fail # co19-roll r576: Please triage this failure
LibTest/typed_data/Uint32List/Uint32List.view_A05_t01: RuntimeError # co19-roll r559: Please triage this failure
LibTest/typed_data/Uint32List/Uint32List.view_A05_t02: RuntimeError # co19-roll r559: Please triage this failure
LibTest/typed_data/Uint32List/Uint32List.view_A05_t03: RuntimeError # co19-roll r559: Please triage this failure
-LibTest/typed_data/Uint32List/Uint32List_A02_t01: fail # co19-roll r576: Please triage this failure
+LibTest/typed_data/Uint32List/Uint32List_A02_t01: Fail # co19-roll r576: Please triage this failure
LibTest/typed_data/Uint64List/*: Fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Uint64List/Uint64List_A02_t01: pass # co19-roll r559: Please triage this failure
+LibTest/typed_data/Uint64List/Uint64List_A02_t01: Pass # co19-roll r559: Please triage this failure
LibTest/typed_data/Uint8ClampedList/Uint8ClampedList.view_A05_t01: RuntimeError # co19-roll r559: Please triage this failure
LibTest/typed_data/Uint8ClampedList/Uint8ClampedList.view_A05_t02: RuntimeError # co19-roll r559: Please triage this failure
LibTest/typed_data/Uint8ClampedList/Uint8ClampedList.view_A05_t03: RuntimeError # co19-roll r559: Please triage this failure
-LibTest/typed_data/Uint8ClampedList/Uint8ClampedList_A02_t01: Pass, fail # co19-roll r576: Passes on ie10. Please triage this failure
+LibTest/typed_data/Uint8ClampedList/Uint8ClampedList_A02_t01: Pass, Fail # co19-roll r576: Passes on ie10. Please triage this failure
LibTest/typed_data/Uint8List/Uint8List.view_A05_t01: RuntimeError # co19-roll r559: Please triage this failure
LibTest/typed_data/Uint8List/Uint8List.view_A05_t02: RuntimeError # co19-roll r559: Please triage this failure
LibTest/typed_data/Uint8List/Uint8List.view_A05_t03: RuntimeError # co19-roll r559: Please triage this failure
-LibTest/typed_data/Uint8List/Uint8List_A02_t01: fail # co19-roll r576: Please triage this failure
-Utils/tests/Expect/identical_A01_t01: fail # co19-roll r546: Please triage this failure
+LibTest/typed_data/Uint8List/Uint8List_A02_t01: Fail # co19-roll r576: Please triage this failure
+Utils/tests/Expect/identical_A01_t01: Fail # co19-roll r546: Please triage this failure
+WebPlatformTest/Utils/test/asyncTestFail_t02: Skip # https://github.com/dart-lang/sdk/issues/28873
WebPlatformTest/Utils/test/testFail_t01: RuntimeError # co19-roll r722: Please triage this failure.
+WebPlatformTest/dom/EventTarget/dispatchEvent_A02_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
WebPlatformTest/dom/nodes/DOMImplementation-createHTMLDocument_t01: CompileTimeError # co19-roll r722: Please triage this failure.
WebPlatformTest/dom/nodes/Document-createElement_t01: CompileTimeError # co19-roll r722: Please triage this failure.
WebPlatformTest/dom/nodes/Element-childElementCount-nochild_t01: CompileTimeError # co19-roll r722: Please triage this failure.
-WebPlatformTest/webstorage/storage_session_setitem_quotaexceedederr_t01: Skip # Times out. Please triage this failure
+WebPlatformTest/webstorage/event_local_storageeventinit_t01: Skip # https://github.com/dart-lang/sdk/issues/28873
WebPlatformTest/webstorage/storage_local_setitem_quotaexceedederr_t01: Skip # Times out. Please triage this failure.
+WebPlatformTest/webstorage/storage_session_setitem_quotaexceedederr_t01: Skip # Times out. Please triage this failure
-[ $compiler == dart2js && $checked ]
-Language/Errors_and_Warnings/static_warning_t02: RuntimeError # Please triage this failure
-Language/Errors_and_Warnings/static_warning_t03: RuntimeError # Please triage this failure
-Language/Errors_and_Warnings/static_warning_t04: RuntimeError # Please triage this failure
-Language/Errors_and_Warnings/static_warning_t05: RuntimeError # Please triage this failure
-Language/Errors_and_Warnings/static_warning_t06: RuntimeError # Please triage this failure
-Language/Expressions/Assignment/Compound_Assignment/null_aware_static_warning_super_t01/01: Fail # Please triage this failure
-Language/Expressions/Assignment/Compound_Assignment/null_aware_static_warning_variable_t01/01: Fail # Please triage this failure
-Language/Expressions/Assignment/super_assignment_static_warning_t04/01: Fail # Please triage this failure
-Language/Expressions/Assignment/super_assignment_dynamic_error_t01: RuntimeError # Please triage this failure
-Language/Expressions/Function_Expressions/static_type_dynamic_async_t03: RuntimeError # Please triage this failure
-Language/Expressions/Function_Expressions/static_type_dynamic_asyncs_t03: RuntimeError # Please triage this failure
-Language/Expressions/Function_Expressions/static_type_dynamic_syncs_t03: RuntimeError # Please triage this failure
-Language/Expressions/Function_Expressions/static_type_form_3_async_t03: RuntimeError # Please triage this failure
-Language/Expressions/Function_Expressions/static_type_form_3_asyncs_t03: RuntimeError # Please triage this failure
-Language/Expressions/Function_Expressions/static_type_form_3_syncs_t03: RuntimeError # Please triage this failure
-Language/Expressions/If_null_Expressions/static_type_t01: RuntimeError # Please triage this failure
-Language/Expressions/If_null_Expressions/static_type_t02: RuntimeError # Please triage this failure
-Language/Functions/async_return_type_t01: RuntimeError # Please triage this failure
-Language/Functions/generator_return_type_t01: RuntimeError # Please triage this failure
-Language/Functions/generator_return_type_t02: RuntimeError # Please triage this failure
-Language/Statements/Assert/execution_t03: RuntimeError # Please triage this failure
-Language/Statements/Assert/execution_t11: RuntimeError # Please triage this failure
-Language/Statements/Switch/execution_t01: Fail # Missing type check in switch expression
-Language/Statements/Switch/type_t01: RuntimeError # Issue 16089
-Language/Statements/Return/runtime_type_t04: RuntimeError # Issue 26584
-Language/Types/Static_Types/malformed_type_t01: RuntimeError # Issue 21089
-Language/Types/Dynamic_Type_System/malbounded_type_error_t01: RuntimeError # Issue 21088
-Language/Types/Parameterized_Types/malbounded_t06: RuntimeError # Issue 21088
-LibTest/collection/DoubleLinkedQueue/DoubleLinkedQueue_class_A01_t01: Skip # Timesout. Please triage this failure.
-LibTest/core/Map/Map_class_A01_t04: Slow, Pass # Please triage this failure
-LibTest/core/Uri/Uri_A06_t03: Slow, Pass # Please triage this failure
-LibTest/math/Point/operator_mult_A02_t01: RuntimeError # Issue 1533
+[ $builder_tag != run_webgl_tests && $compiler == dart2js ]
+LayoutTests/fast/canvas/webgl*: Skip # Only run WebGL on special builders, issue 29961
-[ $compiler == dart2js && ! $checked && $enable_asserts ]
-Language/Statements/Assert/execution_t01: SkipByDesign # Unspec'd feature.
-Language/Statements/Assert/execution_t02: SkipByDesign # Unspec'd feature.
-Language/Statements/Assert/execution_t03: SkipByDesign # Unspec'd feature.
-Language/Statements/Assert/execution_t04: SkipByDesign # Unspec'd feature.
-Language/Statements/Assert/execution_t05: SkipByDesign # Unspec'd feature.
-Language/Statements/Assert/execution_t06: SkipByDesign # Unspec'd feature.
-Language/Statements/Assert/execution_t11: SkipByDesign # Unspec'd feature.
-Language/Statements/Assert/production_mode_t01: SkipByDesign # Unspec'd feature.
-Language/Statements/Assert/type_t02: SkipByDesign # Unspec'd feature.
-Language/Statements/Assert/type_t03: SkipByDesign # Unspec'd feature.
-Language/Statements/Assert/type_t04: SkipByDesign # Unspec'd feature.
-Language/Statements/Assert/type_t05: SkipByDesign # Unspec'd feature.
-Language/Statements/Assert/type_t06: SkipByDesign # Unspec'd feature.
+[ $builder_tag == win7 && $compiler == dart2js && $runtime == ie11 ]
+LayoutTests/fast/files/file-reader-result-twice_t01: Pass, RuntimeError # Issue 31430
-[ $compiler == dart2js && $checked && $runtime != d8]
-LayoutTests/fast/canvas/webgl/framebuffer-object-attachment_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/read-pixels-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/inline/empty-inline-before-collapsed-space_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/trivial_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/trivial-segments_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/writing-mode/auto-sizing-orthogonal-flows_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-body-context_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-context_t01: RuntimeError # Please triage this failure
-
-[ $compiler == dart2js && $checked && $runtime != drt && $runtime != d8]
-WebPlatformTest/custom-elements/instantiating/createElement_A04_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElementNS_A04_t01: RuntimeError # Please triage this failure
-
-[ $compiler == dart2js && $fast_startup ]
-Language/Classes/Instance_Methods/Operators/unary_minus: Fail # mirrors not supported
-Language/Expressions/Null/instance_of_class_null_t01: Fail # mirrors not supported
-Language/Metadata/before_class_t01: Fail # mirrors not supported
-Language/Metadata/before_ctor_t01: Fail # mirrors not supported
-Language/Metadata/before_ctor_t02: Fail # mirrors not supported
-Language/Metadata/before_export_t01: Fail # mirrors not supported
-Language/Metadata/before_factory_t01: Fail # mirrors not supported
-Language/Metadata/before_function_t01: Fail # mirrors not supported
-Language/Metadata/before_function_t02: Fail # mirrors not supported
-Language/Metadata/before_function_t03: Fail # mirrors not supported
-Language/Metadata/before_function_t04: Fail # mirrors not supported
-Language/Metadata/before_function_t05: Fail # mirrors not supported
-Language/Metadata/before_function_t06: Fail # mirrors not supported
-Language/Metadata/before_function_t07: Fail # mirrors not supported
-Language/Metadata/before_import_t01: Fail # mirrors not supported
-Language/Metadata/before_library_t01: Fail # mirrors not supported
-Language/Metadata/before_param_t01: Fail # mirrors not supported
-Language/Metadata/before_param_t02: Fail # mirrors not supported
-Language/Metadata/before_param_t03: Fail # mirrors not supported
-Language/Metadata/before_param_t04: Fail # mirrors not supported
-Language/Metadata/before_param_t05: Fail # mirrors not supported
-Language/Metadata/before_param_t06: Fail # mirrors not supported
-Language/Metadata/before_param_t07: Fail # mirrors not supported
-Language/Metadata/before_param_t08: Fail # mirrors not supported
-Language/Metadata/before_param_t09: Fail # mirrors not supported
-Language/Metadata/before_type_param_t01: Fail # mirrors not supported
-Language/Metadata/before_typedef_t01: Fail # mirrors not supported
-Language/Metadata/before_variable_t01: Fail # mirrors not supported
-Language/Metadata/before_variable_t02: Fail # mirrors not supported
-Language/Metadata/compilation_t01: Pass # mirrors not supported, fails for the wrong reason
-Language/Metadata/compilation_t02: Pass # mirrors not supported, fails for the wrong reason
-Language/Metadata/compilation_t03: Pass # mirrors not supported, fails for the wrong reason
-Language/Metadata/compilation_t04: Pass # mirrors not supported, fails for the wrong reason
-Language/Metadata/compilation_t05: Pass # mirrors not supported, fails for the wrong reason
-Language/Metadata/compilation_t06: Pass # mirrors not supported, fails for the wrong reason
-Language/Metadata/compilation_t07: Pass # mirrors not supported, fails for the wrong reason
-Language/Metadata/compilation_t08: Pass # mirrors not supported, fails for the wrong reason
-Language/Metadata/compilation_t09: Pass # mirrors not supported, fails for the wrong reason
-Language/Metadata/compilation_t10: Pass # mirrors not supported, fails for the wrong reason
-Language/Metadata/compilation_t11: Pass # mirrors not supported, fails for the wrong reason
-WebPlatformTest/shadow-dom/testcommon: Fail # mirrors not supported
-
-[ $compiler == dart2js && $runtime == jsshell ]
-LibTest/isolate/Isolate/spawn_A04_t04: Fail # Issue 27558
-
-[ $compiler == dart2js && $fast_startup && $runtime == d8]
-LibTest/isolate/Isolate/spawn_A04_t04: Fail # Issue 27558
-
-[ $compiler == dart2js && $fast_startup && $runtime == jsshell ]
-LibTest/isolate/ReceivePort/asBroadcastStream_A03_t01: Fail # please triage
-
-[ $compiler == dart2js && $fast_startup && $browser ]
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-001_t01: Fail # custom elements not supported
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-004_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-004_t02: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/elements-001_t01: Fail # custom elements not supported
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-004_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-004_t02: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-006_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-003_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-003_t02: Fail # custom elements not supported
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-005_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/event-dispatch/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/event-dispatch/test-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/event-dispatch/test-003_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/event-retargeting/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/event-retargeting/test-002_t01: Fail # custom elements not supported
-WebPlatformTest/shadow-dom/events/event-retargeting/test-004_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-003_t01: Fail # please triage
-WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-003_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/custom-pseudo-elements/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/distributed-pseudo-element/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/distributed-pseudo-element/test-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-004_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/selectors-api-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/selectors-api-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-009_t01: Fail # please triage
-
-[ $compiler == dart2js && $fast_startup && $browser && $runtime != chrome && $runtime != drt]
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-005_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-003_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-event-interface/event-path-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-007_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-008_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-009_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-010_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-011_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-012_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-013_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-001_t01: Fail # custom elements not supported
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-007_t01: Fail # custom elements not supported
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-010_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-003_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-005_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-004_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/event-retargeting/test-003_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t03: Fail # please triage
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t04: Fail # please triage
-WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/html-forms/test-001_t01: Fail # custom elements not supported
-WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/html-forms/test-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/inert-html-elements/test-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/composition/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-003_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/distribution-003_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-003_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-005_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/nested-shadow-trees/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/rendering-shadow-trees/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/reprojection/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-003_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-004_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-005_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-006_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-017_t01: Fail # custom elements not supported
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/dom-tree-accessors-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/shadow-root-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-011_t01: Fail # please triage
-
-[ $compiler == dart2js && $fast_startup && $browser && $runtime != chrome ]
-WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-003_t01: Fail # please triage
-
-[ $compiler == dart2js && $fast_startup && $browser && $runtime != drt ]
-WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-004_t01: Fail # custom elements not supported
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-003_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-004_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-005_t01: Fail # custom elements not supported
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-006_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-007_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-008_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-009_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t02: Fail # please triage
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t05: Fail # please triage
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t06: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-005_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-007_t01: Fail # please triage
-
-[ $compiler == dart2js && ! $checked && $runtime != d8 && $runtime != jsshell]
-LayoutTests/fast/xpath/invalid-resolver_t01: RuntimeError # Please triage this failure
-
-[ $compiler == dart2js && $minified ]
-LibTest/typed_data/Float32List/runtimeType_A01_t01: fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Float32x4List/runtimeType_A01_t01: fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Float64List/runtimeType_A01_t01: fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Int16List/runtimeType_A01_t01: fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Int32List/runtimeType_A01_t01: fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Int8List/runtimeType_A01_t01: fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Uint16List/runtimeType_A01_t01: fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Uint32List/runtimeType_A01_t01: fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Uint8ClampedList/runtimeType_A01_t01: fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Uint8List/runtimeType_A01_t01: fail # co19-roll r559: Please triage this failure
+[ $builder_tag == win8 && $compiler == dart2js && $runtime == ie11 ]
+LayoutTests/fast/dom/XMLSerializer-attribute-entities_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/serialize-attribute_t01: RuntimeError # Please triage this failure
+LibTest/typed_data/ByteData/offsetInBytes_A01_t01: RuntimeError # Please triage this failure
[ $compiler == dart2js && $mode == debug ]
LibTest/collection/ListBase/ListBase_class_A01_t01: Skip
LibTest/collection/ListMixin/ListMixin_class_A01_t01: Skip
LibTest/core/List/List_class_A01_t01: Skip
-[ $compiler == dart2js && $runtime == jsshell ]
-Language/Expressions/Await_Expressions/execution_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-Language/Expressions/Await_Expressions/execution_t02: RuntimeError # Issue 7728, timer not supported in jsshell
-Language/Expressions/Await_Expressions/execution_t03: RuntimeError # Issue 7728, timer not supported in jsshell
-Language/Expressions/Await_Expressions/execution_t04: RuntimeError # Issue 7728, timer not supported in jsshell
-Language/Expressions/Await_Expressions/execution_t05: RuntimeError # Issue 7728, timer not supported in jsshell
-Language/Expressions/Await_Expressions/execution_t06: RuntimeError # Issue 7728, timer not supported in jsshell
-Language/Statements/For/Asynchronous_For_in/execution_t04: RuntimeError # Issue 7728, timer not supported in jsshell
-Language/Statements/Yield_and_Yield_Each/Yield/execution_async_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-Language/Statements/Yield_and_Yield_Each/Yield/execution_async_t04: RuntimeError # Issue 7728, timer not supported in jsshell
-Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t02: RuntimeError # Issue 7728, timer not supported in jsshell
-Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t03: RuntimeError # Issue 7728, timer not supported in jsshell
-Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t04: RuntimeError # Issue 7728, timer not supported in jsshell
-Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t05: RuntimeError # Issue 7728, timer not supported in jsshell
-Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t06: RuntimeError # Issue 7728, timer not supported in jsshell
-Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t07: RuntimeError # Issue 7728, timer not supported in jsshell
-Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t08: RuntimeError # Issue 7728, timer not supported in jsshell
-Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t09: RuntimeError # Issue 7728, timer not supported in jsshell
-Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t10: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/async/Future/Future.delayed_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/async/Future/Future.delayed_A03_t01: fail # Issue 7728, timer not supported in jsshell
-LibTest/async/Future/doWhile_A05_t01: RuntimeError # Please triage. May be unsupported timer issue 7728.
-LibTest/async/Future/forEach_A04_t02: RuntimeError # Please triage. May be unsupported timer issue 7728.
-LibTest/async/Future/timeout_A01_t01: RuntimeError # Please triage. May be unsupported timer issue 7728.
-LibTest/async/Future/wait_A01_t07: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/async/Stream/Stream.periodic_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/async/Stream/Stream.periodic_A02_t01: fail # Issue 7728, timer not supported in jsshell
-LibTest/async/Stream/Stream.periodic_A03_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/async/Stream/asBroadcastStream_A03_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/async/Stream/asBroadcastStream_A04_t03: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/async/Stream/first_A01_t01: fail # co19-roll r546: Please triage this failure
-LibTest/async/Stream/first_A02_t02: fail # co19-roll r546: Please triage this failure
-LibTest/async/Stream/timeout_A01_t01: RuntimeError # Please triage. May be unsupported timer issue 7728.
-LibTest/async/Stream/timeout_A02_t01: RuntimeError # Please triage. May be unsupported timer issue 7728.
-LibTest/async/Stream/timeout_A03_t01: RuntimeError # Please triage. May be unsupported timer issue 7728.
-LibTest/async/Stream/timeout_A04_t01: RuntimeError # Please triage. May be unsupported timer issue 7728.
-LibTest/async/Timer/Timer.periodic_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/async/Timer/Timer.periodic_A02_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/async/Timer/Timer_A01_t01: fail # Issue 7728, timer not supported in jsshell
-LibTest/async/Timer/cancel_A01_t01: fail # Issue 7728, timer not supported in jsshell
-LibTest/async/Timer/isActive_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/async/Timer/isActive_A01_t02: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/async/Zone/createPeriodicTimer_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/async/Zone/createTimer_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/core/List/sort_A01_t04: Skip # Must be a bug in jsshell, test sometimes times out.
-LibTest/core/Map/Map_class_A01_t04: Pass, Slow # Issue 8096
-LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: Fail # co19-roll r706: Please triage this failure.
-LibTest/core/Stopwatch/elapsedInMs_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/core/Stopwatch/elapsedInUs_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/core/Stopwatch/elapsedTicks_A01_t01: RuntimeError # Please triage this failure
-LibTest/core/Stopwatch/elapsedTicks_A01_t02: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/core/Stopwatch/elapsedTicks_A01_t03: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/core/Stopwatch/elapsed_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/core/Stopwatch/elapsed_A01_t02: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/core/Stopwatch/elapsed_A01_t03: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/core/Stopwatch/start_A01_t01: RuntimeError # Please triage this failure
-LibTest/core/Stopwatch/start_A01_t02: RuntimeError # Please triage this failure
-LibTest/core/Stopwatch/start_A01_t03: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/core/Stopwatch/stop_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/core/Uri/Uri_A06_t03: Pass, Slow
-LibTest/isolate/Isolate/spawn_A03_t01: RuntimeError # Please triage this failure
-LibTest/isolate/Isolate/spawn_A03_t03: RuntimeError # Please triage this failure
-LibTest/isolate/Isolate/spawn_A03_t04: RuntimeError # Please triage this failure
-LibTest/isolate/Isolate/spawn_A04_t02: RuntimeError # Please triage this failure
-LibTest/isolate/Isolate/spawn_A04_t03: Fail # Please triage this failure
-LibTest/isolate/Isolate/spawn_A04_t05: Fail # Please triage this failure
-LibTest/isolate/Isolate/spawn_A06_t02: Fail # Please triage this failure
-LibTest/isolate/Isolate/spawn_A06_t03: Fail # Please triage this failure
-LibTest/isolate/Isolate/spawn_A06_t04: RuntimeError # Please triage this failure
-LibTest/isolate/Isolate/spawn_A06_t05: RuntimeError # Please triage this failure
-LibTest/isolate/Isolate/spawn_A06_t07: Fail # Please triage this failure
-LibTest/isolate/RawReceivePort/close_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/isolate/ReceivePort/asBroadcastStream_A03_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/isolate/ReceivePort/asBroadcastStream_A04_t03: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/isolate/ReceivePort/close_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/typed_data/Float32List/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
-LibTest/typed_data/Float32x4List/Float32x4List.view_A06_t01: fail # co19-roll r587: Please triage this failure
-LibTest/typed_data/Float64List/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
-LibTest/typed_data/Int16List/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
-LibTest/typed_data/Int16List/toList_A01_t01: fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Int32List/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
-LibTest/typed_data/Int32List/toList_A01_t01: fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Int32x4/operator_OR_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-LibTest/typed_data/Int8List/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
-LibTest/typed_data/Uint16List/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
-LibTest/typed_data/Uint16List/toList_A01_t01: fail # co19-roll r559: Please triage this failure
-LibTest/typed_data/Uint32List/toList_A01_t01: Skip # issue 16934, co19-roll r559: Please triage this failure
-LibTest/typed_data/Uint8ClampedList/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
-LibTest/typed_data/Uint8List/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
-
-[ $compiler == dart2js && $checked && $runtime == jsshell]
-LibTest/core/Map/Map_class_A01_t04: Skip # Issue 18093, timeout.
-LibTest/core/Uri/Uri_A06_t03: Skip # Issue 18093, timeout.
-LibTest/core/Uri/encodeQueryComponent_A01_t02: Skip # Issue 18093, timeout.
-
-[ $compiler == dart2js && $jscl ]
-LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: Fail, Pass # issue 3333
-LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t01: RuntimeError, OK # This is not rejected by V8. Issue 22200
-LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t05: RuntimeError # Issue 22200
-LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t06: RuntimeError # Issue 22200
-LibTest/core/int/compareTo_A01_t01: RuntimeError, OK # Requires big int.
-LibTest/core/int/hashCode_A01_t01: RuntimeError, OK # co19 testing missing assertion.
-LibTest/core/int/isEven_A01_t01: RuntimeError, OK # Not in API.
-LibTest/core/int/isOdd_A01_t01: RuntimeError, OK # Not in API.
-LibTest/core/int/operator_left_shift_A01_t01: RuntimeError, OK # Requires big int.
-LibTest/core/int/operator_remainder_A01_t03: RuntimeError, OK # Leg only has double.
-LibTest/core/int/operator_truncating_division_A01_t02: RuntimeError, OK # Leg only has double.
-LibTest/core/int/remainder_A01_t01: RuntimeError, OK # Requires big int.
-LibTest/core/int/remainder_A01_t03: RuntimeError, OK # Leg only has double.
-LibTest/core/int/toDouble_A01_t01: RuntimeError, OK # Requires big int.
-LibTest/core/int/toRadixString_A01_t01: RuntimeError, OK # Bad test: uses Expect.fail, Expect.throws, assumes case of result, and uses unsupported radixes.
-
-[ $compiler == dart2js && $runtime == d8 ]
-LibTest/isolate/Isolate/spawn_A03_t01: Pass # co19 issue 77
-LibTest/isolate/Isolate/spawn_A04_t02: RuntimeError # Please triage this failure.
-LibTest/typed_data/Float32x4List/Float32x4List.view_A06_t01: fail # co19-roll r587: Please triage this failure
-LibTest/typed_data/Int32x4/operator_OR_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
-
-
-[ $compiler == dart2js && $runtime == d8 && $system == windows ]
-LibTest/async/DeferredLibrary/*: Skip # Issue 17458
-
-[ $compiler == dart2js && $browser ]
-LayoutTests/fast/mediastream/getusermedia_t01: Skip # Please triage this failure.
-LayoutTests/fast/css-generated-content/bug91547_t01: Skip # Test reloads itself. Issue 18558.
-LayoutTests/fast/filesystem/file-after-reload-crash_t01: Skip # Test reloads itself. Issue 18558.
-LayoutTests/fast/dom/HTMLButtonElement/change-type_t01: Skip # Test reloads itself. Issue 18558.
-LayoutTests/fast/dom/StyleSheet/discarded-sheet-owner-null_t01: Skip # Test reloads itself. Issue 18558.
-LayoutTests/fast/dom/css-cached-import-rule_t01: Skip # Test reloads itself. Issue 18558.
-LayoutTests/fast/dom/cssTarget-crash_t01: Skip # Test reloads itself. Issue 18558.
-LayoutTests/fast/dom/empty-hash-and-search_t01: Skip # Test reloads itself. Issue 18558.
-LayoutTests/fast/dom/shadow/form-in-shadow_t01: Skip # Test reloads itself. Issue 18558.
-LayoutTests/fast/forms/date/date-interactive-validation-required_t01: Skip # Test reloads itself. Issue 18558.
-LayoutTests/fast/forms/datetimelocal/datetimelocal-interactive-validation-required_t01: Skip # Test reloads itself. Issue 18558.
-LayoutTests/fast/forms/form-submission-create-crash_t01: Skip # Test reloads itself. Issue 18558.
-LayoutTests/fast/forms/formmethod-attribute-button-html_t01: Skip # Test reloads itself. Issue 18558.
-LayoutTests/fast/forms/formmethod-attribute-input-html_t01: Skip # Test reloads itself. Issue 18558.
-LayoutTests/fast/forms/formmethod-attribute-input-2_t01: Skip # Test reloads itself. Issue 18558.
-LayoutTests/fast/forms/missing-action_t01: Skip # Test reloads itself. Issue 18558.
-LayoutTests/fast/forms/submit-form-with-dirname-attribute_t01: Skip # Test reloads itself. Issue 18558.
-LayoutTests/fast/forms/submit-form-with-dirname-attribute-with-ancestor-dir-attribute_t01: Skip # Test reloads itself. Issue 18558.
-LayoutTests/fast/forms/submit-form-with-dirname-attribute-with-nonhtml-ancestor_t01: Skip # Test reloads itself. Issue 18558.
-LayoutTests/fast/forms/submit-nil-value-field-assert_t01: Skip # Test reloads itself. Issue 18558.
-LayoutTests/fast/forms/textarea-submit-crash_t01: Skip # Test reloads itself. Issue 18558.
-LibTest/html/IFrameElement/appendHtml_A01_t01: Pass, RuntimeError # Issue 23462
-LibTest/html/IFrameElement/appendHtml_A01_t02: Pass, RuntimeError # Issue 23462
-
-LayoutTests/fast/dynamic/insertAdjacentHTML_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/multicol/balance-unbreakable_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/multicol/newmulticol/balance_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/multicol/newmulticol/balance-maxheight_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/multicol/newmulticol/balance_t02: Pass, RuntimeError # Issue 747
-LayoutTests/fast/multicol/newmulticol/balance_t04: Pass, RuntimeError # Issue 747
-LayoutTests/fast/multicol/newmulticol/balance_t05: Pass, RuntimeError # Issue 747
-LayoutTests/fast/multicol/newmulticol/balance_t06: Pass, RuntimeError # Issue 747
-LayoutTests/fast/multicol/newmulticol/balance_t07: Pass, RuntimeError # Issue 747
-LayoutTests/fast/multicol/newmulticol/balance_t08: Pass, RuntimeError # Issue 747
-LayoutTests/fast/multicol/newmulticol/balance_t09: Pass, RuntimeError # Issue 747
-LayoutTests/fast/multicol/newmulticol/balance_t10: Pass, RuntimeError # Issue 747, I don't understand how, but sometimes passes.
-LayoutTests/fast/multicol/newmulticol/balance-images_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/multicol/column-width-zero_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/multicol/widows_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/multicol/orphans-relayout_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/media/mq-parsing_t01: Pass, RuntimeError # Issue 747, False passes on Firefox, but trying to keep these grouped with the issue.
-LayoutTests/fast/mediastream/RTCPeerConnection-AddRemoveStream_t01: Skip # Passes on Safari, Issue 23475
-LayoutTests/fast/overflow/replaced-child-100percent-height-inside-fixed-container-with-overflow-auto_t01: Pass, RuntimeError # Issue 747, False pass on Safari
-LayoutTests/fast/lists/list-style-position-inside_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/overflow/overflow-rtl-vertical-origin_t01: Pass, RuntimeError # Issue 747, False passes on Firefox, but trying to keep these grouped with the issue.
-LayoutTests/fast/replaced/computed-image-width-with-percent-height-and-fixed-ancestor_t01: Pass # Issue 747, False pass
-LayoutTests/fast/table/col-width-span-expand_t01: Skip # Issue 747
-LayoutTests/fast/text/font-fallback-synthetic-italics_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/text/glyph-reordering_t01: Pass, RuntimeError # Issue 747, This is a false pass. The font gets sanitized, so whether it works or not probably depends on default sizes.
-LayoutTests/fast/text/international/rtl-text-wrapping_t01: Pass # Issue 747, This is a false pass. All the content gets sanitized, so there's nothing to assert fail on. If the code did anything it would fail.
-LayoutTests/fast/text/line-break-after-empty-inline-hebrew_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/text/regional-indicator-symobls_t01: Pass, Fail # Issue 747
-LayoutTests/fast/text/font-fallback-synthetic-italics_t01: RuntimeError # Issue 747
-LayoutTests/fast/text/font-ligatures-linebreak_t01: Skip # Issue 747
-LayoutTests/fast/text/font-ligatures-linebreak-word_t01: Skip # Issue 747
-LayoutTests/fast/text/ipa-tone-letters_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/writing-mode/percentage-margins-absolute-replaced_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/writing-mode/positionForPoint_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/text/font-ligatures-linebreak-word_t01: Skip # Issue 747
-LayoutTests/fast/html/adjacent-html-context-element_t01:RuntimeError # Issue 747
-LayoutTests/fast/dom/HTMLElement/insertAdjacentHTML-errors_t01: RuntimeError # Issue 747
-LayoutTests/fast/transforms/transform-hit-test-flipped_t01: Pass, RuntimeError # Issue 747, Passes on Firefox, but is clearly not testing what it's trying to test.
-LayoutTests/fast/transforms/scrollIntoView-transformed_t01: Pass, RuntimeError # Issue 747, False passes on Firefox.
-LayoutTests/fast/transforms/bounding-rect-zoom_t01: RuntimeError, Pass # Issue 747, Erratic, but only passes because divs have been entirely removed.
-LayoutTests/fast/table/anonymous-table-section-removed_t01: Skip # Issue 747
-LayoutTests/fast/table/hittest-tablecell-bottom-edge_t01: Skip # Issue 747
-LayoutTests/fast/table/hittest-tablecell-with-borders-bottom-edge_t01: Skip # Issue 747
-LayoutTests/fast/table/table-width-exceeding-max-width_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/table/min-max-width-preferred-size_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/table/margins-flipped-text-direction_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/table/html-table-width-max-width-constrained_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/table/fixed-table-layout-width-change_t01: Pass, RuntimeError # Issue 747, False passes on Firefox
-LayoutTests/fast/sub-pixel/replaced-element-baseline_t01: Pass, RuntimeError # Issue 747, Fails on Safari, false pass on others
-LayoutTests/fast/ruby/parse-rp_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/replaced/iframe-with-percentage-height-within-table-with-table-cell-ignore-height_t01: RuntimeError, Pass # Issue 747, Spurious intermittent pass
-LayoutTests/fast/replaced/iframe-with-percentage-height-within-table-with-anonymous-table-cell_t01: RuntimeError, Pass # Issue 747, Spurious intermittent pass.
-LayoutTests/fast/replaced/computed-image-width-with-percent-height-inside-table-cell-and-fixed-ancestor_t01: RuntimeError, Pass # Issue 747, Spurious intermittent pass
-LayoutTests/fast/replaced/computed-image-width-with-percent-height-inside-table-cell-and-fixed-ancestor-vertical-lr_t01: RuntimeError, Pass # Issue 747, Spurious intermittent pass
-LayoutTests/fast/replaced/computed-image-width-with-percent-height-and-fixed-ancestor_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/replaced/computed-image-width-with-percent-height-and-fixed-ancestor-vertical-lr_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/parser/parse-wbr_t01: Pass, RuntimeError # Issue 747
-WebPlatformTest/html/syntax/parsing/Document.getElementsByTagName-foreign_t01: RuntimeError, Pass # Issue 747
-WebPlatformTest/html/semantics/document-metadata/styling/LinkStyle_t01: Pass,RuntimeError # Issue 747
-WebPlatformTest/html/semantics/grouping-content/the-ol-element/ol.start-reflection_t02: Skip # Issue 747
-WebPlatformTest/html/semantics/scripting-1/the-script-element/async_t11: Skip # Issue 747
-WebPlatformTest/html/semantics/selectors/pseudo-classes/disabled_t01: Pass, RuntimeError # Issue 747, Spurious pass
-WebPlatformTest/html/semantics/selectors/pseudo-classes/link_t01: Pass,RuntimeError # Issue 747
-WebPlatformTest/html/semantics/forms/the-form-element/form-nameditem_t01: RuntimeError # Issue 747
-
-[ $compiler == dart2js && $runtime == chromeOnAndroid ]
-LayoutTests/fast/multicol/newmulticol/balance-maxheight_t02: RuntimeError
-Language/Expressions/Strings/escape_backspace_t01: Pass, Slow # Please triage this failure.
-LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t01: Fail # Issue 22200.
-LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t05: Fail # Issue 22200.
-LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t06: Fail # Issue 22200.
-LibTest/core/Set/removeAll_A01_t02: Pass, Slow # Please triage this failure.
-LibTest/core/int/compareTo_A01_t01: Fail # Please triage this failure.
-LibTest/core/int/operator_left_shift_A01_t01: Fail # Please triage this failure.
-LibTest/core/int/operator_remainder_A01_t03: Fail # Please triage this failure.
-LibTest/core/int/operator_truncating_division_A01_t02: Fail # Please triage this failure.
-LibTest/core/int/remainder_A01_t01: Fail # Please triage this failure.
-LibTest/core/int/remainder_A01_t03: Fail # Please triage this failure.
-LibTest/core/int/toRadixString_A01_t01: Fail # Please triage this failure.
-LibTest/isolate/Isolate/spawnUri_A01_t01: Skip # Please triage this failure.
-LibTest/isolate/Isolate/spawnUri_A01_t02: Skip # Please triage this failure.
-LibTest/isolate/Isolate/spawnUri_A01_t03: Skip # Please triage this failure.
-LibTest/isolate/Isolate/spawnUri_A02_t01: RuntimeError # Please triage this failure.
-LibTest/isolate/Isolate/spawnUri_A02_t02: Skip # Please triage this failure.
-LibTest/isolate/Isolate/spawnUri_A02_t03: Skip # Please triage this failure.
-LibTest/isolate/Isolate/spawnUri_A02_t04: Skip # Please triage this failure.
-LibTest/math/log_A01_t01: Fail # Please triage this failure.
-LibTest/typed_data/Float32x4List/Float32x4List.view_A01_t02: RuntimeError # Please triage this failure.
-LibTest/typed_data/Float32x4List/Float32x4List.view_A06_t01: RuntimeError # Please triage this failure.
-LibTest/typed_data/Float64List/join_A01_t01: Pass, Slow # Please triage this failure.
-LibTest/typed_data/Int16List/single_A01_t02: Pass, Slow # Please triage this failure.
-LibTest/typed_data/Int32x4/operator_OR_A01_t01: RuntimeError # Please triage this failure.
-LibTest/typed_data/Int8List/sublist_A02_t01: Pass, Slow # Please triage this failure.
-LibTest/typed_data/Uint8ClampedList/map_A02_t01: Pass, Slow # Please triage this failure.
-
[ $compiler == dart2js && $runtime == chrome ]
Language/Statements/Yield_and_Yield_Each/Yield/execution_async_t01: Pass, RuntimeError # Issue 26615
Language/Statements/Yield_and_Yield_Each/Yield/execution_async_t04: Pass, RuntimeError # Issue 26615
@@ -956,6 +486,7 @@
LayoutTests/fast/css/child-selector-implicit-tbody_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/content/content-none_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/content/content-normal_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/counters/complex-before_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/css-escaped-identifier_t01: RuntimeError # co19 issue 14
LayoutTests/fast/css/css-properties-case-insensitive_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/css3-nth-tokens-style_t01: RuntimeError # Please triage this failure
@@ -987,6 +518,7 @@
LayoutTests/fast/css/insertRule-media_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/invalid-hex-color_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/invalid-predefined-color_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/invalidation/targeted-class-shadow-combinator_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/max-device-aspect-ratio_t01: RuntimeError, Pass # Issue 28998
LayoutTests/fast/css/media-query-recovery_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/parsing-at-rule-recovery_t01: RuntimeError # Please triage this failure
@@ -1042,6 +574,8 @@
LayoutTests/fast/dom/HTMLBaseElement/href-attribute-resolves-with-respect-to-document_t01: RuntimeError # Please triage this failure
LayoutTests/fast/dom/HTMLDialogElement/dialog-autofocus_t01: RuntimeError # Please triage this failure
LayoutTests/fast/dom/HTMLDialogElement/dialog-close-event_t01: RuntimeError
+LayoutTests/fast/dom/HTMLDialogElement/dialog-open_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/dialog-return-value_t01: RuntimeError # Please triage this failure
LayoutTests/fast/dom/HTMLDialogElement/dialog-scrolled-viewport_t01: RuntimeError # Please triage this failure
LayoutTests/fast/dom/HTMLDialogElement/inert-node-is-unfocusable_t01: RuntimeError # Please triage this failure
LayoutTests/fast/dom/HTMLDialogElement/inert-node-is-unselectable_t01: RuntimeError # Please triage this failure
@@ -1400,6 +934,7 @@
LayoutTests/fast/text/zero-width-characters_t01: RuntimeError # Please triage this failure
LayoutTests/fast/transforms/bounding-rect-zoom_t01: RuntimeError # Please triage this failure
LayoutTests/fast/transforms/hit-test-large-scale_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/anchor_t01: RuntimeError # Please triage this failure
LayoutTests/fast/url/file-http-base_t01: RuntimeError # Please triage this failure
LayoutTests/fast/url/file_t01: RuntimeError # Please triage this failure
LayoutTests/fast/url/host_t01: RuntimeError # Please triage this failure
@@ -1447,7 +982,7 @@
LayoutTests/fast/xpath/py-dom-xpath/paths_t01: RuntimeError # Please triage this failure
LayoutTests/fast/xpath/reverse-axes_t01: RuntimeError # Please triage this failure
LayoutTests/fast/xsl/default-html_t01: RuntimeError # Please triage this failure
-LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: Pass,RuntimeError # https://github.com/dart-lang/sdk/issues/29814
+LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: Pass, RuntimeError # https://github.com/dart-lang/sdk/issues/29814
LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t01: RuntimeError # Issue 22200
LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t05: RuntimeError # Issue 22200
LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t06: RuntimeError # Issue 22200
@@ -1644,7 +1179,7 @@
WebPlatformTest/html/semantics/selectors/pseudo-classes/dir_t01: RuntimeError # Please triage this failure
WebPlatformTest/html/semantics/selectors/pseudo-classes/disabled_t01: RuntimeError # Please triage this failure
WebPlatformTest/html/semantics/selectors/pseudo-classes/enabled_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/selectors/pseudo-classes/focus_t01: Pass,RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/focus_t01: Pass, RuntimeError # Please triage this failure
WebPlatformTest/html/semantics/selectors/pseudo-classes/indeterminate_t01: RuntimeError # Please triage this failure
WebPlatformTest/html/semantics/tabular-data/the-table-element/table-rows_t01: RuntimeError # Please triage this failure
WebPlatformTest/html/syntax/parsing/Document.getElementsByTagName-foreign_t01: Pass, RuntimeError # Please triage this failure
@@ -1710,7 +1245,52 @@
WebPlatformTest/webstorage/event_constructor_t01: RuntimeError # Please triage this failure
WebPlatformTest/webstorage/event_constructor_t02: RuntimeError # Please triage this failure
-[ $compiler == dart2js && $runtime == chrome && $checked]
+[ $compiler == dart2js && $runtime == chrome && $system == linux ]
+LayoutTests/fast/canvas/canvas-before-css_t01: RuntimeError, Pass # Please triage this flake
+LayoutTests/fast/canvas/canvas-ellipse_t01: RuntimeError, Pass # Please triage this flake
+LayoutTests/fast/canvas/canvas-scale-fillRect-shadow_t01: RuntimeError, Pass # Please triage this flake
+LayoutTests/fast/canvas/canvas-transforms-fillRect-shadow_t01: RuntimeError, Pass # Please triage this flake
+LayoutTests/fast/canvas/webgl/WebGLContextEvent_t01: Pass, RuntimeError # 30174
+LayoutTests/fast/canvas/webgl/index-validation-verifies-too-many-indices_t01: RuntimeError, Pass # Please triage this flake
+LayoutTests/fast/canvas/webgl/premultiplyalpha-test_t01: RuntimeError, Pass # Please triage this flake
+LayoutTests/fast/canvas/webgl/triangle_t01: RuntimeError, Pass # Please triage this flake
+LayoutTests/fast/multicol/newmulticol/balance_t04: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-left_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-rounded-boxes_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/text/international/combining-marks-position_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/line-break-after-question-mark_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/regional-indicator-symobls_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/text-combine-shrink-to-fit_t01: RuntimeError # Please triage this failure
+LibTest/math/log_A01_t01: RuntimeError # Please triage this failure
+
+[ $compiler == dart2js && $runtime == chrome && $system == macos ]
+Language/Expressions/Function_Invocation/async_invokation_t04: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/canvas-test_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/canvas/webgl/context-lost-restored_t01: Skip # Times out. Please triage this failure.
+LayoutTests/fast/canvas/webgl/draw-webgl-to-canvas-2d_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/oes-vertex-array-object_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/MutationObserver/observe-attributes_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/forms/percent-height-auto-width-form-controls_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/newmulticol/balance_t04: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-left_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-rounded-boxes_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/text/glyph-reordering_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/line-break-after-question-mark_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/text-combine-shrink-to-fit_t01: RuntimeError # Please triage this failure
+LibTest/async/Timer/Timer.periodic_A01_t01: Skip # Times out. Please triage this failure
+LibTest/isolate/Isolate/spawn_A01_t05: Skip # Times out. Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-002_t01: Skip # Times out. Please triage this failure
+
+[ $compiler == dart2js && $runtime == chrome && $system != macos ]
+LayoutTests/fast/canvas/webgl/context-lost-restored_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/zero-width-characters-complex-script_t01: RuntimeError # Please triage this failure
+
+[ $compiler == dart2js && $runtime == chrome && $system == windows ]
+Language/Classes/Constructors/Generative_Constructors/execution_of_an_initializer_t04: Pass, Slow # Issue 25940
+Language/Expressions/Bitwise_Expressions/method_invocation_super_t01: Pass, Slow # Issue 25940
+LayoutTests/fast/css-grid-layout/grid-element-shrink-to-fit_t01: RuntimeError # Please triage this failure
+
+[ $compiler == dart2js && $runtime == chrome && $checked ]
LayoutTests/fast/canvas/webgl/framebuffer-object-attachment_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/webgl/read-pixels-test_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css-intrinsic-dimensions/css-tables_t01: RuntimeError # Please triage this failure
@@ -1726,11 +1306,15 @@
LayoutTests/fast/css/display-inline-block-scrollbar_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/fixed-width-intrinsic-width-excludes-scrollbars_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/style-scoped/style-scoped-scoping-nodes-different-order_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/submit-dialog-close-event_t01: Skip # Roll 50 failure
LayoutTests/fast/dom/HTMLDialogElement/top-layer-position-relative_t01: RuntimeError # Please triage this failure
LayoutTests/fast/dom/HTMLDialogElement/top-layer-position-static_t01: RuntimeError # Please triage this failure
LayoutTests/fast/dom/HTMLLabelElement/form/test1_t01: RuntimeError # Please triage this failure
LayoutTests/fast/dom/HTMLTableElement/insert-row_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/MutationObserver/database-callback-delivery_t01: Skip # Roll 50 failure
+LayoutTests/fast/dom/icon-size-property_t01: Skip # Roll 50 failure
LayoutTests/fast/events/scroll-event-phase_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/filesystem/*: Skip # Roll 50 failure
LayoutTests/fast/filesystem/file-writer-abort_t01: RuntimeError # Please triage this failure
LayoutTests/fast/filesystem/file-writer-events_t01: RuntimeError # Please triage this failure
LayoutTests/fast/filesystem/op-copy_t01: RuntimeError # Please triage this failure
@@ -1772,62 +1356,127 @@
LayoutTests/fast/xpath/xpath-result-eventlistener-crash_t01: RuntimeError # Please triage this failure
LibTest/html/Element/Element.tag_A01_t01: RuntimeError # Please triage this failure
LibTest/html/Node/ownerDocument_A01_t01: RuntimeError # Issue 18251
+LibTest/html/Window/requestFileSystem_A01_t01: Skip # Roll 50 failure
+LibTest/html/Window/requestFileSystem_A01_t02: Skip # Roll 50 failure
WebPlatformTest/DOMEvents/approved/Propagation.path.target.removed_t01: RuntimeError # Please triage this failure
WebPlatformTest/custom-elements/instantiating/createElementNS_A05_t01: RuntimeError # Please triage this failure
WebPlatformTest/custom-elements/instantiating/createElement_A05_t01: RuntimeError # Please triage this failure
WebPlatformTest/html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-row-context_t01: RuntimeError # Please triage this failure
WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-001_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/submit-dialog-close-event_t01: Skip # Roll 50 failure
-LayoutTests/fast/dom/icon-size-property_t01: Skip # Roll 50 failure
-LayoutTests/fast/dom/MutationObserver/database-callback-delivery_t01: Skip # Roll 50 failure
-LayoutTests/fast/filesystem/*: Skip # Roll 50 failure
-LibTest/html/Window/requestFileSystem_A01_t01: Skip # Roll 50 failure
-LibTest/html/Window/requestFileSystem_A01_t02: Skip # Roll 50 failure
-[ $compiler == dart2js && $runtime == chrome && $system == macos ]
-Language/Expressions/Function_Invocation/async_invokation_t04: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/canvas-test_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/canvas/webgl/context-lost-restored_t01: Skip # Times out. Please triage this failure.
-LayoutTests/fast/canvas/webgl/draw-webgl-to-canvas-2d_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/oes-vertex-array-object_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/MutationObserver/observe-attributes_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/forms/percent-height-auto-width-form-controls_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/newmulticol/balance_t04: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-left_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-rounded-boxes_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/text/glyph-reordering_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/line-break-after-question-mark_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/text-combine-shrink-to-fit_t01: RuntimeError # Please triage this failure
-LibTest/async/Timer/Timer.periodic_A01_t01: Skip # Times out. Please triage this failure
-LibTest/isolate/Isolate/spawn_A01_t05: Skip # Times out. Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-002_t01: Skip # Times out. Please triage this failure
+[ $compiler == dart2js && $runtime != chrome && $runtime != drt && $browser && $fast_startup ]
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-005_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-003_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-event-interface/event-path-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-007_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-008_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-009_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-010_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-011_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-012_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-013_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-001_t01: Fail # custom elements not supported
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-007_t01: Fail # custom elements not supported
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-010_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-003_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-005_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-004_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/event-retargeting/test-003_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t03: Fail # please triage
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t04: Fail # please triage
+WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/html-forms/test-001_t01: Fail # custom elements not supported
+WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/html-forms/test-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/inert-html-elements/test-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/composition/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-003_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/distribution-003_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-003_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-005_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/nested-shadow-trees/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/rendering-shadow-trees/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/reprojection/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-003_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-004_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-005_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-006_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-017_t01: Fail # custom elements not supported
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/dom-tree-accessors-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/shadow-root-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-011_t01: Fail # please triage
-[ $compiler == dart2js && $runtime == chrome && $system == windows ]
-Language/Classes/Constructors/Generative_Constructors/execution_of_an_initializer_t04: Pass, Slow # Issue 25940
-Language/Expressions/Bitwise_Expressions/method_invocation_super_t01: Pass, Slow # Issue 25940
-LayoutTests/fast/css-grid-layout/grid-element-shrink-to-fit_t01: RuntimeError # Please triage this failure
+[ $compiler == dart2js && $runtime != chrome && $browser && $fast_startup ]
+WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-003_t01: Fail # please triage
-[ $compiler == dart2js && $runtime == chrome && $system != macos ]
-LayoutTests/fast/canvas/webgl/context-lost-restored_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/zero-width-characters-complex-script_t01: RuntimeError # Please triage this failure
+[ $compiler == dart2js && $runtime == chromeOnAndroid ]
+Language/Expressions/Strings/escape_backspace_t01: Pass, Slow # Please triage this failure.
+LayoutTests/fast/multicol/newmulticol/balance-maxheight_t02: RuntimeError
+LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t01: Fail # Issue 22200.
+LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t05: Fail # Issue 22200.
+LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t06: Fail # Issue 22200.
+LibTest/core/Set/removeAll_A01_t02: Pass, Slow # Please triage this failure.
+LibTest/core/int/compareTo_A01_t01: Fail # Please triage this failure.
+LibTest/core/int/operator_left_shift_A01_t01: Fail # Please triage this failure.
+LibTest/core/int/operator_remainder_A01_t03: Fail # Please triage this failure.
+LibTest/core/int/operator_truncating_division_A01_t02: Fail # Please triage this failure.
+LibTest/core/int/remainder_A01_t01: Fail # Please triage this failure.
+LibTest/core/int/remainder_A01_t03: Fail # Please triage this failure.
+LibTest/core/int/toRadixString_A01_t01: Fail # Please triage this failure.
+LibTest/isolate/Isolate/spawnUri_A01_t01: Skip # Please triage this failure.
+LibTest/isolate/Isolate/spawnUri_A01_t02: Skip # Please triage this failure.
+LibTest/isolate/Isolate/spawnUri_A01_t03: Skip # Please triage this failure.
+LibTest/isolate/Isolate/spawnUri_A02_t01: RuntimeError # Please triage this failure.
+LibTest/isolate/Isolate/spawnUri_A02_t02: Skip # Please triage this failure.
+LibTest/isolate/Isolate/spawnUri_A02_t03: Skip # Please triage this failure.
+LibTest/isolate/Isolate/spawnUri_A02_t04: Skip # Please triage this failure.
+LibTest/math/log_A01_t01: Fail # Please triage this failure.
+LibTest/typed_data/Float32x4List/Float32x4List.view_A01_t02: RuntimeError # Please triage this failure.
+LibTest/typed_data/Float32x4List/Float32x4List.view_A06_t01: RuntimeError # Please triage this failure.
+LibTest/typed_data/Float64List/join_A01_t01: Pass, Slow # Please triage this failure.
+LibTest/typed_data/Int16List/single_A01_t02: Pass, Slow # Please triage this failure.
+LibTest/typed_data/Int32x4/operator_OR_A01_t01: RuntimeError # Please triage this failure.
+LibTest/typed_data/Int8List/sublist_A02_t01: Pass, Slow # Please triage this failure.
+LibTest/typed_data/Uint8ClampedList/map_A02_t01: Pass, Slow # Please triage this failure.
-[ $compiler == dart2js && $runtime == chrome && $system == linux]
-LayoutTests/fast/canvas/webgl/WebGLContextEvent_t01: Pass, RuntimeError # 30174
-LayoutTests/fast/multicol/newmulticol/balance_t04: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-left_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-rounded-boxes_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/text/international/combining-marks-position_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/line-break-after-question-mark_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/regional-indicator-symobls_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/text-combine-shrink-to-fit_t01: RuntimeError # Please triage this failure
-LibTest/math/log_A01_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/index-validation-verifies-too-many-indices_t01: RuntimeError, Pass # Please triage this flake
-LayoutTests/fast/canvas/webgl/premultiplyalpha-test_t01: RuntimeError, Pass # Please triage this flake
-LayoutTests/fast/canvas/canvas-transforms-fillRect-shadow_t01: RuntimeError, Pass # Please triage this flake
-LayoutTests/fast/canvas/canvas-ellipse_t01: RuntimeError, Pass # Please triage this flake
-LayoutTests/fast/canvas/canvas-before-css_t01: RuntimeError, Pass # Please triage this flake
-LayoutTests/fast/canvas/webgl/triangle_t01: RuntimeError, Pass # Please triage this flake
-LayoutTests/fast/canvas/canvas-scale-fillRect-shadow_t01: RuntimeError, Pass # Please triage this flake
+[ $compiler == dart2js && $runtime == d8 ]
+LibTest/isolate/Isolate/spawn_A03_t01: Pass # co19 issue 77
+LibTest/isolate/Isolate/spawn_A04_t02: RuntimeError # Please triage this failure.
+LibTest/typed_data/Float32x4List/Float32x4List.view_A06_t01: Fail # co19-roll r587: Please triage this failure
+LibTest/typed_data/Int32x4/operator_OR_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+
+[ $compiler == dart2js && $runtime == d8 && $system == windows ]
+LibTest/async/DeferredLibrary/*: Skip # Issue 17458
+
+[ $compiler == dart2js && $runtime == d8 && $fast_startup ]
+LibTest/isolate/Isolate/spawn_A04_t04: Fail # Issue 27558
+
+[ $compiler == dart2js && $runtime != d8 && $runtime != drt && $checked ]
+WebPlatformTest/custom-elements/instantiating/createElementNS_A04_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElement_A04_t01: RuntimeError # Please triage this failure
+
+[ $compiler == dart2js && $runtime != d8 && $runtime != jsshell && !$checked ]
+LayoutTests/fast/xpath/invalid-resolver_t01: RuntimeError # Please triage this failure
+
+[ $compiler == dart2js && $runtime != d8 && $checked ]
+LayoutTests/fast/canvas/webgl/framebuffer-object-attachment_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/read-pixels-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/inline/empty-inline-before-collapsed-space_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/trivial-segments_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/trivial_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/writing-mode/auto-sizing-orthogonal-flows_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-body-context_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-context_t01: RuntimeError # Please triage this failure
[ $compiler == dart2js && $runtime == drt ]
Language/Statements/Yield_and_Yield_Each/Yield/execution_async_t02: Pass # Fails on _all_ other platforms. Please triage
@@ -1840,6 +1489,7 @@
LayoutTests/fast/canvas/canvas-as-image-incremental-repaint_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/canvas-as-image_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/canvas-css-crazy_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-currentTransform_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/canvas-empty-image-pattern_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/canvas-getImageData-invalid_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/canvas-getImageData-large-crash_t01: RuntimeError # Please triage this failure
@@ -1849,112 +1499,207 @@
LayoutTests/fast/canvas/crash-set-font_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/draw-custom-focus-ring_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/webgl/WebGLContextEvent_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/WebGLContextEvent_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/array-bounds-clamping_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/array-bounds-clamping_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/attrib-location-length-limits_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/attrib-location-length-limits_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/bad-arguments-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/bad-arguments-test_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/canvas/webgl/buffer-bind-test_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/buffer-bind-test_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/webgl/buffer-data-array-buffer_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/webgl/canvas-2d-webgl-texture_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/canvas-2d-webgl-texture_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/canvas/webgl/canvas-resize-crash_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/canvas-resize-crash_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/webgl/canvas-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/canvas-test_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/canvas-zero-size_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/canvas-zero-size_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/canvas/webgl/compressed-tex-image_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/compressed-tex-image_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/webgl/context-attributes-alpha-depth-stencil-antialias-t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/context-destroyed-crash_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/context-destroyed-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/context-lost-restored_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/context-lost-restored_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/context-lost_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/context-lost_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/webgl/copy-tex-image-and-sub-image-2d_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/copy-tex-image-and-sub-image-2d_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/css-webkit-canvas-repaint_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/webgl/css-webkit-canvas_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/webgl/draw-arrays-out-of-bounds_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/draw-arrays-out-of-bounds_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/canvas/webgl/draw-elements-out-of-bounds_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/draw-elements-out-of-bounds_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/webgl/draw-webgl-to-canvas-2d_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/drawingbuffer-test_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/drawingbuffer-test_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/webgl/error-reporting_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/error-reporting_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/canvas/webgl/framebuffer-bindings-unaffected-on-resize_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/framebuffer-bindings-unaffected-on-resize_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/framebuffer-object-attachment_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/framebuffer-object-attachment_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/webgl/framebuffer-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/framebuffer-test_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/functions-returning-strings_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/functions-returning-strings_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/canvas/webgl/get-active-test_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/get-active-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-bind-attrib-location-test_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/gl-bind-attrib-location-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-enable-enum-test_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/canvas/webgl/gl-enum-tests_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/gl-enum-tests_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-get-calls_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/gl-get-calls_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/webgl/gl-getshadersource_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-getshadersource_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/gl-getstring_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-getstring_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/gl-object-get-calls_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-object-get-calls_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/gl-pixelstorei_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-pixelstorei_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/gl-teximage_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-teximage_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/gl-uniformmatrix4fv_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-uniformmatrix4fv_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/gl-vertex-attrib-zero-issues_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-vertex-attrib-zero-issues_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/gl-vertex-attrib_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-vertex-attrib_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/gl-vertexattribpointer_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-vertexattribpointer_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/glsl-conformance_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/glsl-conformance_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/incorrect-context-object-behaviour_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/incorrect-context-object-behaviour_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/index-validation-copies-indices_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/index-validation-copies-indices_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/canvas/webgl/index-validation-crash-with-buffer-sub-data_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/index-validation-crash-with-buffer-sub-data_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/webgl/index-validation-verifies-too-many-indices_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/index-validation-verifies-too-many-indices_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/index-validation-with-resized-buffer_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/index-validation-with-resized-buffer_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/canvas/webgl/index-validation_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/index-validation_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/webgl/invalid-UTF-16_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/invalid-UTF-16_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/invalid-passed-params_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/invalid-passed-params_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/is-object_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/is-object_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/canvas/webgl/null-object-behaviour_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/null-object-behaviour_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/null-uniform-location_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/null-uniform-location_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/object-deletion-behaviour_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/object-deletion-behaviour_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/oes-element-index-uint_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/oes-element-index-uint_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/webgl/oes-vertex-array-object_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/oes-vertex-array-object_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/point-size_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/point-size_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/premultiplyalpha-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/premultiplyalpha-test_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/program-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/program-test_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/canvas/webgl/read-pixels-pack-alignment_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/read-pixels-pack-alignment_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/webgl/read-pixels-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/read-pixels-test_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/renderbuffer-initialization_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/renderbuffer-initialization_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/canvas/webgl/renderer-and-vendor-strings_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/renderer-and-vendor-strings_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/webgl/shader-precision-format_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/shader-precision-format_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-array-buffer-view_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-array-buffer-view_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas-rgb565_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas-rgba4444_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas-rgba4444_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas-rgba5551_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas-rgba5551_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgb565_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgb565_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgba4444_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgba4444_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgba5551_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgba5551_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-rgb565_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-rgba4444_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-rgba5551_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgb565_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgb565_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba4444_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba4444_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba5551_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba5551_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/canvas/webgl/tex-image-and-uniform-binding-bugs_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/tex-image-and-uniform-binding-bugs_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-webgl_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/tex-image-webgl_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/webgl/tex-input-validation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-sub-image-2d-bad-args_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/tex-sub-image-2d-bad-args_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-sub-image-2d_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/tex-sub-image-2d_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-sub-image-cube-maps_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/tex-sub-image-cube-maps_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/webgl/texImage2DImageDataTest_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/texImage2DImageDataTest_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/texImageTest_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/texImageTest_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/canvas/webgl/texture-active-bind_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/texture-active-bind_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/texture-bindings-uneffected-on-resize_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/texture-bindings-uneffected-on-resize_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/texture-color-profile_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/texture-color-profile_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/texture-complete_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/texture-complete_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/texture-npot_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/texture-npot_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/webgl/texture-transparent-pixels-initialized_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/triangle_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/triangle_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/uniform-location-length-limits_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/uniform-location-length-limits_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/webgl/uniform-location_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/webgl/uninitialized-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/viewport-unchanged-upon-resize_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/viewport-unchanged-upon-resize_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-composite-modes-repaint_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/webgl-composite-modes-repaint_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-composite-modes_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/webgl-composite-modes_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/webgl/webgl-depth-texture_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/webgl/webgl-exceptions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-exceptions_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/webgl-large-texture_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-layer-update_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/webgl-layer-update_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-specific_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/webgl-specific_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-texture-binding-preserved_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/webgl-texture-binding-preserved_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/webgl/webgl-unprefixed-context-id_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-unprefixed-context-id_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/canvas/webgl/webgl-viewport-parameters-preserved_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/canvas/webgl/webgl-viewport-parameters-preserved_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css-generated-content/pseudo-element-events_t01: Skip # Times out.
LayoutTests/fast/css-generated-content/pseudo-transition-event_t01: Skip # Times out.
@@ -1982,23 +1727,31 @@
LayoutTests/fast/css-grid-layout/percent-padding-margin-resolution-grid-item-update_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css-grid-layout/percent-padding-margin-resolution-grid-item_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css-grid-layout/place-cell-by-index_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-intrinsic-dimensions/multicol_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/css/MarqueeLayoutTest_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/aspect-ratio-inheritance_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/aspect-ratio-parsing-tests_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/auto-min-size_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/checked-pseudo-selector_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/counters/complex-before_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/css-escaped-identifier_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/css/css3-nth-tokens-style_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/deprecated-flexbox-auto-min-size_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/font-face-unicode-range-load_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/font-shorthand-from-longhands_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/css/getComputedStyle/computed-style-border-image_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/css/getComputedStyle/computed-style-cross-fade_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/css/html-attr-case-sensitivity_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/id-or-class-before-stylesheet_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/inherit-initial-shorthand-values_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/invalid-predefined-color_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/parsing-css-allowed-string-characters_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/parsing-css-nonascii_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/css/parsing-object-position_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/css/parsing-object-position_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/pseudo-target-indirect-sibling-001_t01: Skip # Times out.
LayoutTests/fast/css/pseudo-target-indirect-sibling-002_t01: Skip # Times out.
+LayoutTests/fast/css/selector-text-escape_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/css/sticky/parsing-position-sticky_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/sticky/remove-inline-sticky-crash_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/style-scoped/style-scoped-nested_t01: RuntimeError # Please triage this failure
@@ -2006,8 +1759,11 @@
LayoutTests/fast/css/style-scoped/style-scoped-with-important-rule_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/stylesheet-enable-first-alternate-on-load-sheet_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/stylesheet-enable-second-alternate-link_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/unicode-bidi-computed-value_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/css/url-with-multi-byte-unicode-escape_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/dom/52776_t01: RuntimeError # Please triage this failure
LayoutTests/fast/dom/DOMException/XPathException_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/DOMException/dispatch-event-exception_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/dom/DOMImplementation/createDocument-namespace-err_t01: RuntimeError # Please triage this failure
LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-zoom-and-scroll_t01: RuntimeError # Please triage this failure
LayoutTests/fast/dom/Document/CaretRangeFromPoint/replace-element_t01: RuntimeError # Please triage this failure
@@ -2046,6 +1802,7 @@
LayoutTests/fast/dom/HTMLScriptElement/isURLAttribute_t01: Skip # Times out. Please triage this failure
LayoutTests/fast/dom/HTMLScriptElement/remove-in-beforeload_t01: RuntimeError # Please triage this failure
LayoutTests/fast/dom/HTMLSelectElement/remove-element-from-within-focus-handler-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLSelectElement/selected-index-preserved-when-option-text-changes_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/dom/HTMLSelectElement/selected-index-preserved-when-option-text-changes_t01: RuntimeError # Please triage this failure
LayoutTests/fast/dom/HTMLTemplateElement/custom-element-wrapper-gc_t01: RuntimeError # Please triage this failure
LayoutTests/fast/dom/HTMLTemplateElement/innerHTML_t01: RuntimeError # Please triage this failure
@@ -2067,8 +1824,10 @@
LayoutTests/fast/dom/StyleSheet/css-medialist-item_t01: RuntimeError # Please triage this failure
LayoutTests/fast/dom/StyleSheet/detached-stylesheet-without-wrapper_t01: RuntimeError # Please triage this failure
LayoutTests/fast/dom/TreeWalker/TreeWalker-basic_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Window/getMatchedCSSRules-with-pseudo-elements-complex_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/dom/Window/window-resize-contents_t01: RuntimeError # Please triage this failure
LayoutTests/fast/dom/Window/window-scroll-arguments_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/anchor-without-content_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/dom/anchor-without-content_t01: RuntimeError # Please triage this failure
LayoutTests/fast/dom/attribute-namespaces-get-set_t01: RuntimeError # Please triage this failure
LayoutTests/fast/dom/characterdata-api-arguments_t01: RuntimeError # Please triage this failure
@@ -2087,20 +1846,26 @@
LayoutTests/fast/dom/navigatorcontentutils/is-protocol-handler-registered_t01: RuntimeError # Please triage this failure
LayoutTests/fast/dom/navigatorcontentutils/unregister-protocol-handler_t01: RuntimeError # Please triage this failure
LayoutTests/fast/dom/object-plugin-hides-properties_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/offset-position-writing-modes_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/dom/partial-layout-overlay-scrollbars_t01: RuntimeError # Please triage this failure
LayoutTests/fast/dom/set-innerHTML_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-pseudo-element-css-text_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/dom/shadow/event-path_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/host-context-pseudo-class-css-text_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/dom/shadow/host-pseudo-class-css-text_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/dom/shadow/pseudoclass-update-checked-option_t01: RuntimeError # Please triage this failure
LayoutTests/fast/dom/shadow/pseudoclass-update-disabled-optgroup_t01: RuntimeError # Please triage this failure
LayoutTests/fast/dom/shadow/pseudoclass-update-disabled-option_t01: RuntimeError # Please triage this failure
LayoutTests/fast/dom/shadow/pseudoclass-update-enabled-optgroup_t01: RuntimeError # Please triage this failure
LayoutTests/fast/dom/shadow/pseudoclass-update-enabled-option_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dynamic/ancestor-to-absolute_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/dynamic/ancestor-to-absolute_t01: RuntimeError # Please triage this failure
LayoutTests/fast/events/add-event-without-document_t01: RuntimeError # Please triage this failure
LayoutTests/fast/events/change-overflow-on-overflow-change_t01: Skip # Times out.
LayoutTests/fast/events/document-elementFromPoint_t01: RuntimeError # Please triage this failure
LayoutTests/fast/events/event-creation_t01: RuntimeError # Please triage this failure
LayoutTests/fast/events/event-trace_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/fire-scroll-event_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/events/initkeyboardevent-crash_t01: RuntimeError # Please triage this failure
LayoutTests/fast/events/invalid-003_t01: RuntimeError # Please triage this failure
LayoutTests/fast/events/invalid-004_t01: RuntimeError # Please triage this failure
@@ -2117,10 +1882,13 @@
LayoutTests/fast/filesystem/directory-entry-to-uri_t01: RuntimeError # Please triage this failure
LayoutTests/fast/filesystem/file-entry-to-uri_t01: RuntimeError # Please triage this failure
LayoutTests/fast/filesystem/file-writer-abort-continue_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/ValidityState-tooLong-input_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/forms/ValidityState-tooLong-textarea_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/forms/autofocus-focus-only-once_t01: Skip # Times out.
LayoutTests/fast/forms/date/input-valueasdate-date_t01: RuntimeError # Please triage this failure
LayoutTests/fast/forms/datetimelocal/input-valueasdate-datetimelocal_t01: RuntimeError # Please triage this failure
LayoutTests/fast/forms/file/file-input-capture_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/formnovalidate-attribute_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/forms/input-appearance-elementFromPoint_t01: RuntimeError # Please triage this failure
LayoutTests/fast/forms/input-width-height-attributes-without-renderer-loaded-image_t01: RuntimeError # Please triage this failure
LayoutTests/fast/forms/listbox-selection-2_t01: RuntimeError # Please triage this failure
@@ -2128,7 +1896,9 @@
LayoutTests/fast/forms/parser-associated-form-removal_t01: RuntimeError # Please triage this failure
LayoutTests/fast/forms/select-clientheight-large-size_t01: RuntimeError # Please triage this failure
LayoutTests/fast/forms/select-clientheight-with-multiple-attr_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/select-max-length_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/forms/setrangetext_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/submit-form-attributes_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/html/details-add-child-2_t01: RuntimeError # Please triage this failure
LayoutTests/fast/html/imports/import-element-removed-flag_t01: RuntimeError # Please triage this failure
LayoutTests/fast/html/imports/import-events_t01: RuntimeError # Please triage this failure
@@ -2137,6 +1907,7 @@
LayoutTests/fast/inline/continuation-inlines-inserted-in-reverse-after-block_t01: RuntimeError # Please triage this failure
LayoutTests/fast/inline/inline-position-top-align_t01: RuntimeError # Please triage this failure
LayoutTests/fast/inline/out-of-flow-objects-and-whitespace-after-empty-inline_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/innerHTML/innerHTML-uri-resolution_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/loader/about-blank-hash-change_t01: Skip # Times out.
LayoutTests/fast/loader/about-blank-hash-kept_t01: Skip # Times out.
LayoutTests/fast/loader/hashchange-event-properties_t01: RuntimeError # Please triage this failure
@@ -2149,6 +1920,7 @@
LayoutTests/fast/media/media-query-list-syntax_t01: RuntimeError # Please triage this failure
LayoutTests/fast/multicol/break-properties_t01: RuntimeError # Please triage this failure
LayoutTests/fast/multicol/cssom-view_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/flipped-blocks-hit-test_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/multicol/hit-test-above-or-below_t01: RuntimeError # Please triage this failure
LayoutTests/fast/multicol/hit-test-end-of-column-with-line-height_t01: RuntimeError # Please triage this failure
LayoutTests/fast/multicol/hit-test-float_t01: RuntimeError # Please triage this failure
@@ -2204,6 +1976,7 @@
LayoutTests/fast/table/table-with-content-width-exceeding-max-width_t01: RuntimeError # Please triage this failure
LayoutTests/fast/text-autosizing/vertical-writing-mode_t01: RuntimeError # Please triage this failure
LayoutTests/fast/text/find-spaces_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/font-ligature-letter-spacing_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/text/international/cjk-segmentation_t01: RuntimeError # Please triage this failure
LayoutTests/fast/text/international/iso-8859-8_t01: RuntimeError # Please triage this failure
LayoutTests/fast/text/international/thai-offsetForPosition-inside-character_t01: RuntimeError # Please triage this failure
@@ -2232,6 +2005,8 @@
LayoutTests/fast/url/segments_t01: RuntimeError # Please triage this failure
LayoutTests/fast/url/standard-url_t01: RuntimeError # Please triage this failure
LayoutTests/fast/writing-mode/display-mutation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/writing-mode/flipped-blocks-hit-test-overflow-scroll_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/writing-mode/flipped-blocks-hit-test-overflow_t01: Pass, RuntimeError # Issue 29634
LayoutTests/fast/writing-mode/table-hit-test_t01: RuntimeError # Please triage this failure
LayoutTests/fast/xmlhttprequest/xmlhttprequest-responseXML-xml-text-responsetype_t01: RuntimeError # Please triage this failure
LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-arraybuffer_t01: RuntimeError # Please triage this failure
@@ -2400,8 +2175,10 @@
WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLTrackElement/src_t01: RuntimeError # Please triage this failure
WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/TextTrack/cues_t01: Skip # Times out.
WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/TextTrack/mode_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/attributes-common-to-form-controls/formAction_document_address_t01: Pass, RuntimeError # Issue 29634
WebPlatformTest/html/semantics/forms/attributes-common-to-form-controls/formAction_document_address_t01: RuntimeError # Please triage this failure
WebPlatformTest/html/semantics/forms/attributes-common-to-form-controls/formaction_t01: RuntimeError, Pass # Please triage this failure
+WebPlatformTest/html/semantics/forms/textfieldselection/selection_t01: Pass, RuntimeError # Issue 29634
WebPlatformTest/html/semantics/forms/textfieldselection/selection_t01: RuntimeError # Please triage this failure
WebPlatformTest/html/semantics/forms/textfieldselection/textfieldselection-setRangeText_t01: RuntimeError # Please triage this failure
WebPlatformTest/html/semantics/forms/textfieldselection/textfieldselection-setSelectionRange_t01: RuntimeError # Please triage this failure
@@ -2425,6 +2202,7 @@
WebPlatformTest/html/semantics/forms/the-input-element/time_t02: RuntimeError # Please triage this failure
WebPlatformTest/html/semantics/forms/the-input-element/type-change-state_t01: RuntimeError # Please triage this failure
WebPlatformTest/html/semantics/forms/the-input-element/url_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/url_t01: Pass, RuntimeError # Issue 29634
WebPlatformTest/html/semantics/forms/the-input-element/valueMode_t01: RuntimeError # Please triage this failure
WebPlatformTest/html/semantics/forms/the-input-element/week_t01: RuntimeError # Please triage this failure
WebPlatformTest/html/semantics/forms/the-meter-element/meter_t01: RuntimeError # Please triage this failure
@@ -2441,6 +2219,7 @@
WebPlatformTest/html/semantics/selectors/pseudo-classes/indeterminate_t01: RuntimeError # Please triage this failure
WebPlatformTest/html/semantics/selectors/pseudo-classes/inrange-outofrange_t01: RuntimeError # Please triage this failure
WebPlatformTest/html/semantics/tabular-data/the-table-element/table-rows_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/tabular-data/the-tr-element/rowIndex_t01: Pass, RuntimeError # Issue 29634
WebPlatformTest/html/semantics/tabular-data/the-tr-element/rowIndex_t01: RuntimeError # Please triage this failure
WebPlatformTest/html/syntax/parsing/Document.getElementsByTagName-foreign_t02: RuntimeError # Please triage this failure
WebPlatformTest/html/syntax/serializing-html-fragments/outerHTML_t01: RuntimeError # Please triage this failure
@@ -2467,6 +2246,15 @@
WebPlatformTest/shadow-dom/events/event-retargeting/test-001_t01: RuntimeError # Please triage this failure
WebPlatformTest/shadow-dom/events/event-retargeting/test-002_t01: RuntimeError # Please triage this failure
WebPlatformTest/shadow-dom/events/event-retargeting/test-004_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-001_t01: Pass, RuntimeError # Issue 29634
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-002_t01: Pass, RuntimeError # Issue 29634
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-003_t01: Pass, RuntimeError # Issue 29634
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-004_t01: Pass, RuntimeError # Issue 29634
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-005_t01: Pass, RuntimeError # Issue 29634
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-006_t01: Pass, RuntimeError # Issue 29634
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-007_t01: Pass, RuntimeError # Issue 29634
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-008_t01: Pass, RuntimeError # Issue 29634
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-009_t01: Pass, RuntimeError # Issue 29634
WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-002_t01: RuntimeError # Please triage this failure
WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-003_t01: RuntimeError # Please triage this failure
WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-003_t01: RuntimeError # Please triage this failure
@@ -2493,157 +2281,8 @@
WebPlatformTest/webstorage/event_session_oldvalue_t01: Skip # Times out. Please triage this failure
WebPlatformTest/webstorage/event_session_storagearea_t01: Skip # Times out. Please triage this failure
WebPlatformTest/webstorage/event_session_url_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/canvas/canvas-currentTransform_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/WebGLContextEvent_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/array-bounds-clamping_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/attrib-location-length-limits_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/bad-arguments-test_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/buffer-bind-test_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/canvas-2d-webgl-texture_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/canvas-resize-crash_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/canvas-test_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/canvas-zero-size_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/compressed-tex-image_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/context-destroyed-crash_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/context-lost-restored_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/context-lost_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/copy-tex-image-and-sub-image-2d_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/draw-arrays-out-of-bounds_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/draw-elements-out-of-bounds_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/drawingbuffer-test_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/error-reporting_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/framebuffer-bindings-unaffected-on-resize_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/framebuffer-object-attachment_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/framebuffer-test_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/functions-returning-strings_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/get-active-test_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/gl-bind-attrib-location-test_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/gl-enable-enum-test_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/gl-enum-tests_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/gl-get-calls_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/gl-getshadersource_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/gl-getstring_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/gl-object-get-calls_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/gl-pixelstorei_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/gl-teximage_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/gl-uniformmatrix4fv_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/gl-vertex-attrib-zero-issues_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/gl-vertex-attrib_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/gl-vertexattribpointer_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/glsl-conformance_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/incorrect-context-object-behaviour_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/index-validation-copies-indices_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/index-validation-crash-with-buffer-sub-data_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/index-validation-verifies-too-many-indices_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/index-validation-with-resized-buffer_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/index-validation_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/invalid-UTF-16_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/invalid-passed-params_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/is-object_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/null-object-behaviour_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/null-uniform-location_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/object-deletion-behaviour_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/oes-element-index-uint_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/oes-vertex-array-object_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/point-size_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/premultiplyalpha-test_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/program-test_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/read-pixels-pack-alignment_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/read-pixels-test_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/renderbuffer-initialization_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/renderer-and-vendor-strings_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/shader-precision-format_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-array-buffer-view_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas-rgb565_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas-rgba4444_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas-rgba5551_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgb565_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgba4444_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgba5551_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgb565_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba4444_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba5551_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/tex-image-and-uniform-binding-bugs_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/tex-image-webgl_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/tex-sub-image-2d-bad-args_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/tex-sub-image-2d_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/tex-sub-image-cube-maps_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/texImage2DImageDataTest_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/texImageTest_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/texture-active-bind_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/texture-bindings-uneffected-on-resize_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/texture-color-profile_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/texture-complete_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/texture-npot_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/triangle_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/uniform-location-length-limits_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/viewport-unchanged-upon-resize_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/webgl-composite-modes-repaint_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/webgl-composite-modes_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/webgl-exceptions_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/webgl-layer-update_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/webgl-specific_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/webgl-texture-binding-preserved_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/webgl-unprefixed-context-id_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/canvas/webgl/webgl-viewport-parameters-preserved_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/css-intrinsic-dimensions/multicol_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/css/css-escaped-identifier_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/css/font-shorthand-from-longhands_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/css/getComputedStyle/computed-style-border-image_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/css/getComputedStyle/computed-style-cross-fade_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/css/parsing-css-nonascii_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/css/parsing-object-position_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/css/selector-text-escape_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/css/unicode-bidi-computed-value_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/css/url-with-multi-byte-unicode-escape_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/dom/DOMException/dispatch-event-exception_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/dom/HTMLSelectElement/selected-index-preserved-when-option-text-changes_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/dom/Window/getMatchedCSSRules-with-pseudo-elements-complex_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/dom/anchor-without-content_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/dom/offset-position-writing-modes_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/dom/shadow/content-pseudo-element-css-text_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/dom/shadow/host-context-pseudo-class-css-text_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/dom/shadow/host-pseudo-class-css-text_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/dynamic/ancestor-to-absolute_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/events/fire-scroll-event_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/forms/ValidityState-tooLong-input_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/forms/ValidityState-tooLong-textarea_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/forms/formnovalidate-attribute_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/forms/select-max-length_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/forms/submit-form-attributes_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/innerHTML/innerHTML-uri-resolution_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/multicol/flipped-blocks-hit-test_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/text/font-ligature-letter-spacing_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/writing-mode/flipped-blocks-hit-test-overflow-scroll_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/writing-mode/flipped-blocks-hit-test-overflow_t01: Pass, RuntimeError # Issue 29634
-WebPlatformTest/html/semantics/forms/attributes-common-to-form-controls/formAction_document_address_t01: Pass, RuntimeError # Issue 29634
-WebPlatformTest/html/semantics/forms/textfieldselection/selection_t01: Pass, RuntimeError # Issue 29634
-WebPlatformTest/html/semantics/forms/the-input-element/url_t01: Pass, RuntimeError # Issue 29634
-WebPlatformTest/html/semantics/tabular-data/the-tr-element/rowIndex_t01: Pass, RuntimeError # Issue 29634
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-001_t01: Pass, RuntimeError # Issue 29634
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-002_t01: Pass, RuntimeError # Issue 29634
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-003_t01: Pass, RuntimeError # Issue 29634
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-004_t01: Pass, RuntimeError # Issue 29634
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-005_t01: Pass, RuntimeError # Issue 29634
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-006_t01: Pass, RuntimeError # Issue 29634
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-007_t01: Pass, RuntimeError # Issue 29634
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-008_t01: Pass, RuntimeError # Issue 29634
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-009_t01: Pass, RuntimeError # Issue 29634
-[ $compiler == dart2js && $runtime == drt && $minified && $csp ]
-LayoutTests/fast/dom/HTMLScriptElement/script-for-attribute-unexpected-execution_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLScriptElement/script-reexecution_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLTemplateElement/inertContents_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/create-contextual-fragment-script-unmark-already-started_t01: RuntimeError # Please triage this failure
-
-[ $compiler == dart2js && $runtime == drt && ! $minified && ! $csp]
-LayoutTests/fast/dom/HTMLScriptElement/remove-source_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/event-listener-html-non-html-confusion_t01: RuntimeError # Please triage this failure
-
-[ $compiler == dart2js && $runtime == drt && $fast_startup && $checked ]
+[ $compiler == dart2js && $runtime == drt && $checked && $fast_startup ]
LayoutTests/fast/css-grid-layout/auto-content-resolution-rows_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css-grid-layout/breadth-size-resolution-grid_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css-grid-layout/calc-resolution-grid-item_t01: RuntimeError # Please triage this failure
@@ -2722,9 +2361,37 @@
WebPlatformTest/html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-row-context_t01: RuntimeError # Please triage this failure
WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-001_t01: RuntimeError # Please triage this failure
-[ $compiler == dart2js && $runtime == drt && ! $checked ]
+[ $compiler == dart2js && $runtime == drt && !$checked ]
LayoutTests/fast/xpath/invalid-resolver_t01: RuntimeError # Please triage this failure
+[ $compiler == dart2js && $runtime == drt && $csp && $minified ]
+LayoutTests/fast/dom/HTMLScriptElement/script-for-attribute-unexpected-execution_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLScriptElement/script-reexecution_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLTemplateElement/inertContents_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/create-contextual-fragment-script-unmark-already-started_t01: RuntimeError # Please triage this failure
+
+[ $compiler == dart2js && $runtime == drt && !$csp && !$minified ]
+LayoutTests/fast/dom/HTMLScriptElement/remove-source_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/event-listener-html-non-html-confusion_t01: RuntimeError # Please triage this failure
+
+[ $compiler == dart2js && $runtime != drt && $browser && $fast_startup ]
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-003_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-004_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-005_t01: Fail # custom elements not supported
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-006_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-007_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-008_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-009_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t02: Fail # please triage
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t05: Fail # please triage
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t06: Fail # please triage
+WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-004_t01: Fail # custom elements not supported
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-005_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-007_t01: Fail # please triage
+
[ $compiler == dart2js && $runtime == ff ]
Language/Expressions/Postfix_Expressions/property_decrement_t02: Skip # Times out. Please triage this failure
Language/Statements/Yield_and_Yield_Each/Yield/execution_async_t01: Pass, RuntimeError # Issue 26615
@@ -3610,7 +3277,7 @@
LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-right_t01: RuntimeError # Please triage this failure
LayoutTests/fast/shapes/shape-outside-floats/shape-outside-rounded-boxes_t01: RuntimeError # Please triage this failure
LayoutTests/fast/shapes/shape-outside-floats/shape-outside-rounded-boxes_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/speechsynthesis/speech-synthesis-boundary-events_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/speechsynthesis/speech-synthesis-boundary-events_t01: Skip # Times out. Please triage this failure
LayoutTests/fast/speechsynthesis/speech-synthesis-cancel_t01: Skip # Times out. Please triage this failure
LayoutTests/fast/speechsynthesis/speech-synthesis-pause-resume_t01: Skip # Times out. Please triage this failure
LayoutTests/fast/speechsynthesis/speech-synthesis-speak_t01: Skip # Times out. Please triage this failure
@@ -3716,7 +3383,7 @@
LayoutTests/fast/xsl/default-html_t01: RuntimeError # Please triage this failure
LibTest/async/Stream/Stream.periodic_A01_t01: Pass, RuntimeError # Please triage this failure
LibTest/async/Timer/Timer.periodic_A01_t01: Pass, RuntimeError # Please triage this failure
-LibTest/core/RegExp/Pattern_semantics/firstMatch_Atom_A03_t03: Pass,RuntimeError # Please triage this failure
+LibTest/core/RegExp/Pattern_semantics/firstMatch_Atom_A03_t03: Pass, RuntimeError # Please triage this failure
LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t01: RuntimeError # Issue 22200
LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t05: RuntimeError # Issue 22200
LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t06: RuntimeError # Issue 22200
@@ -3883,7 +3550,7 @@
WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-head-insertion-mode/generating-of-implied-end-tags_t01: RuntimeError # Please triage this failure
WebPlatformTest/html-templates/parsing-html-templates/creating-an-element-for-the-token/template-owner-document_t01: RuntimeError # Please triage this failure
WebPlatformTest/html-templates/template-element/node-document-changes_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/template-element/template-as-a-descendant_t01 : RuntimeError # In Firefox, setting innerHTML on a Frameset element does nothing.
+WebPlatformTest/html-templates/template-element/template-as-a-descendant_t01: RuntimeError # In Firefox, setting innerHTML on a Frameset element does nothing.
WebPlatformTest/html-templates/template-element/template-content_t01: RuntimeError # Please triage this failure
WebPlatformTest/html/browsers/browsing-the-web/read-media/pageload-image_t01: RuntimeError # Please triage this failure
WebPlatformTest/html/browsers/browsing-the-web/read-media/pageload-video_t01: RuntimeError # Please triage this failure
@@ -3895,7 +3562,7 @@
WebPlatformTest/html/dom/documents/dom-tree-accessors/document.title_t01: RuntimeError # Please triage this failure
WebPlatformTest/html/dom/documents/dom-tree-accessors/document.title_t07: RuntimeError # Please triage this failure
WebPlatformTest/html/dom/documents/dom-tree-accessors/nameditem_t02: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/documents/dom-tree-accessors/nameditem_t05: Pass,RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/documents/dom-tree-accessors/nameditem_t05: Pass, RuntimeError # Please triage this failure
WebPlatformTest/html/dom/elements/global-attributes/dataset-delete_t01: RuntimeError # Please triage this failure
WebPlatformTest/html/dom/elements/global-attributes/dataset-get_t01: RuntimeError # Please triage this failure
WebPlatformTest/html/dom/elements/global-attributes/dataset-set_t01: RuntimeError # Please triage this failure
@@ -4056,24 +3723,48 @@
WebPlatformTest/webstorage/event_constructor_t01: RuntimeError # Please triage this failure
WebPlatformTest/webstorage/event_constructor_t02: RuntimeError # Please triage this failure
-[ $compiler == dart2js && $runtime == ff && ! $checked]
-LayoutTests/fast/xpath/invalid-resolver_t01: RuntimeError # Please triage this failure
+[ $compiler == dart2js && $runtime == ff && $system == linux ]
+LayoutTests/fast/canvas/webgl/*: Skip # Issue 26725
+LayoutTests/fast/canvas/webgl/oes-element-index-uint_t01: Skip # Times out always
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-input-validation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-sub-image-2d-bad-args_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/texture-complete_t01: Skip # Times out sometimes
+LayoutTests/fast/canvas/webgl/texture-npot_t01: Skip # Times out sometimes
+LayoutTests/fast/forms/submit-form-attributes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/whitespace/nowrap-line-break-after-white-space_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/4XPath/Core/test_parser_t01: RuntimeError # Dartium JSInterop failure
+LayoutTests/fast/xpath/py-dom-xpath/abbreviations_t01: RuntimeError # Dartium JSInterop failure
-[ $compiler == dart2js && $runtime == ff && $checked]
-LayoutTests/fast/css-intrinsic-dimensions/width-shrinks-avoid-floats_t01: RuntimeError # Please triage this failure
+[ $compiler == dart2js && $runtime == ff && $system == windows ]
+Language/Classes/Abstract_Instance_Members/override_no_named_parameters_t06: Pass, Slow # Issue 25940
+Language/Classes/Constructors/Factories/return_type_t03: Pass, Slow # Issue 25940
+Language/Classes/Constructors/Factories/return_type_t05: Pass, Slow # Issue 25940
+Language/Classes/Constructors/Factories/return_wrong_type_t02: Pass, Slow # Issue 25940
+LayoutTests/fast/canvas/webgl/draw-webgl-to-canvas-2d_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/drawingbuffer-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/device-aspect-ratio_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/font-face-multiple-ranges-for-unicode-range_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/media-rule-screenDepthPerComponent_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/submit-form-attributes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/media/color-does-not-include-alpha_t01: RuntimeError # Issue 31161
+LayoutTests/fast/media/media-query-list_t01: RuntimeError # Please triage this failure
+
+[ $compiler == dart2js && $runtime == ff && $checked ]
LayoutTests/fast/canvas/webgl/framebuffer-object-attachment_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/webgl/oes-vertex-array-object_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/webgl/read-pixels-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-intrinsic-dimensions/intrinsic-sized-column-flex-items_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-intrinsic-dimensions/intrinsic-sized-flex-items_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css-grid-layout/auto-content-resolution-rows_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css-grid-layout/implicit-rows-auto-resolution_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css-grid-layout/percent-grid-item-in-percent-grid-track-update_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-intrinsic-dimensions/intrinsic-sized-column-flex-items_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-intrinsic-dimensions/intrinsic-sized-flex-items_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-intrinsic-dimensions/width-shrinks-avoid-floats_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/box-sizing-border-box-dynamic-padding-border-update_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/display-inline-block-scrollbar_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/fixed-width-intrinsic-width-excludes-scrollbars_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/flexbox/flexing-overflow-scroll-item_t01: RuntimeError # Please triage this failure
LayoutTests/fast/dom/HTMLTableElement/insert-row_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/flexbox/flexing-overflow-scroll-item_t01: RuntimeError # Please triage this failure
LayoutTests/fast/flexbox/intrinsic-min-width-applies-with-fixed-width_t01: RuntimeError # Please triage this failure
LayoutTests/fast/lists/marker-preferred-margins_t01: RuntimeError # Please triage this failure
LayoutTests/fast/multicol/fixed-column-percent-logical-height-orthogonal-writing-mode_t01: RuntimeError # Please triage this failure
@@ -4090,2500 +3781,8 @@
WebPlatformTest/dom/nodes/DOMImplementation-createDocumentType_t01: RuntimeError # Please triage this failure
WebPlatformTest/html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-row-context_t01: RuntimeError # Please triage this failure
-[ $compiler == dart2js && $runtime == ff && $system == windows ]
-Language/Classes/Abstract_Instance_Members/override_no_named_parameters_t06: Pass, Slow # Issue 25940
-Language/Classes/Constructors/Factories/return_type_t03: Pass, Slow # Issue 25940
-Language/Classes/Constructors/Factories/return_type_t05: Pass, Slow # Issue 25940
-Language/Classes/Constructors/Factories/return_wrong_type_t02: Pass, Slow # Issue 25940
-LayoutTests/fast/canvas/webgl/draw-webgl-to-canvas-2d_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/drawingbuffer-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/device-aspect-ratio_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/font-face-multiple-ranges-for-unicode-range_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/media-rule-screenDepthPerComponent_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/submit-form-attributes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/media/color-does-not-include-alpha_t01: RuntimeError # Issue 31161
-LayoutTests/fast/media/media-query-list_t01: RuntimeError # Please triage this failure
-
-[ $compiler == dart2js && $runtime == ff && $system == linux]
-LayoutTests/fast/canvas/webgl/*: Skip # Issue 26725
-LayoutTests/fast/canvas/webgl/oes-element-index-uint_t01: Skip # Times out always
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-input-validation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-sub-image-2d-bad-args_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/texture-complete_t01: Skip # Times out sometimes
-LayoutTests/fast/canvas/webgl/texture-npot_t01: Skip # Times out sometimes
-LayoutTests/fast/forms/submit-form-attributes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/whitespace/nowrap-line-break-after-white-space_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/4XPath/Core/test_parser_t01: RuntimeError # Dartium JSInterop failure
-LayoutTests/fast/xpath/py-dom-xpath/abbreviations_t01: RuntimeError # Dartium JSInterop failure
-
-[ $compiler == dart2js && $runtime == safari ]
-LayoutTests/fast/alignment/parse-align-items_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/alignment/parse-align-self_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/alignment/parse-justify-self_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/animation/request-animation-frame-cancel2_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/animation/request-animation-frame-cancel_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/animation/request-animation-frame-timestamps-advance_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/animation/request-animation-frame-timestamps_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/animation/request-animation-frame-within-callback_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/backgrounds/background-repeat-computed-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/backgrounds/repeat/parsing-background-repeat_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/borders/border-image-width-numbers-computed-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/2d.fillText.gradient_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/2d.text.draw.fill.maxWidth.gradient_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/2d.text.draw.fill.maxWidth.negative_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/2d.text.draw.fill.maxWidth.veryLarge_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/2d.text.draw.fill.maxWidth.verySmall_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/alpha_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-arc-negative-radius_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-as-image-incremental-repaint_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/canvas/canvas-blend-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blend-solid_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-clipping_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-color-over-color_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-color-over-gradient_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-color-over-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-color-over-pattern_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-fill-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-global-alpha_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-gradient-over-color_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-gradient-over-gradient_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-gradient-over-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-gradient-over-pattern_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-image-over-color_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-image-over-gradient_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-image-over-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-image-over-pattern_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-pattern-over-color_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-pattern-over-gradient_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-pattern-over-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-pattern-over-pattern_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-shadow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-text_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-transforms_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-currentTransform_t01: RuntimeError # Feature is not implemented
-LayoutTests/fast/canvas/canvas-drawImage-scaled-copy-to-self_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-ellipse-zero-lineto_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-empty-image-pattern_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-fillStyle-no-quirks-parsing_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-font-consistency_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-getImageData-invalid_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-getImageData-large-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-getImageData-largeNonintegralDimensions_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-large-dimensions_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-large-fills_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-lineDash-input-sequence_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-lose-restore-googol-size_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-lose-restore-max-int-size_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-putImageData_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-quadratic-same-endpoint_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-resetTransform_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-scale-shadowBlur_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-scale-strokePath-shadow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-setTransform_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/draw-custom-focus-ring_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/drawImage-with-broken-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/drawImage-with-valid-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/getPutImageDataPairTest_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/setWidthResetAfterForcedRender_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/canvas/webgl/context-attributes-alpha-depth-stencil-antialias-t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/context-lost_t01: Skip
-LayoutTests/fast/canvas/webgl/context-lost-restored_t01: Skip # Issue 28640
-LayoutTests/fast/canvas/webgl/glsl-conformance_t01: Skip # Times out 1 out of 20.
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-rgb565_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-rgba4444_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-rgba5551_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgb565_t01: Skip # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba4444_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba5551_t01: Skip # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video_t01: Skip
-LayoutTests/fast/canvas/webgl/texture-transparent-pixels-initialized_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/uniform-location_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/webgl-depth-texture_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/webgl-large-texture_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/WebGLContextEvent_t01: Skip # Issue 29010
-LayoutTests/fast/css-generated-content/malformed-url_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-generated-content/pseudo-animation-before-onload_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/css-generated-content/pseudo-animation_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/css-generated-content/pseudo-element-events_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/css-generated-content/pseudo-transition-event_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/css-generated-content/pseudo-transition_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/auto-content-resolution-rows_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/breadth-size-resolution-grid_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/calc-resolution-grid-item_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/display-grid-set-get_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/flex-and-minmax-content-resolution-rows_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/flex-content-resolution-columns_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/flex-content-resolution-rows_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-auto-columns-rows-get-set_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-auto-flow-get-set_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-auto-flow-update_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-container-change-explicit-grid-recompute-child_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-element-border-grid-item_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-element-border-padding-grid-item_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-element-empty-row-column_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-element-min-max-height_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-element-padding-grid-item_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-element-padding-margin_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-element-shrink-to-fit_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-area-get-set_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-bad-named-area-auto-placement_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-bad-resolution-double-span_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-change-order-auto-flow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-display_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-horiz-bt_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-vert-lr_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-vert-rl_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-margin-resolution_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-order-auto-flow-resolution_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-template-areas-get-set_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/implicit-rows-auto-resolution_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/justify-self-cell_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/minmax-fixed-logical-height-only_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/minmax-fixed-logical-width-only_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/percent-grid-item-in-percent-grid-track-in-percent-grid_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/percent-grid-item-in-percent-grid-track-update_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/percent-grid-item-in-percent-grid-track_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/percent-padding-margin-resolution-grid-item-update_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/percent-padding-margin-resolution-grid-item_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/percent-resolution-grid-item_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/place-cell-by-index_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/MarqueeLayoutTest_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/aspect-ratio-inheritance_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/aspect-ratio-parsing-tests_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/background-serialize_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/border-image-style-length_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/checked-pseudo-selector_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/computed-offset-with-zoom_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/content/content-none_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/content/content-normal_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/content/content-quotes-01_t01: Pass, RuntimeError # Fails on 7.1. Please triage this failure
-LayoutTests/fast/css/content/content-quotes-05_t01: Pass, RuntimeError # Fails on 7.1. Please triage this failure
-LayoutTests/fast/css/counters/counter-cssText_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/css-escaped-identifier_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/css3-nth-tokens-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/cssText-shorthand_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/csstext-of-content-string_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/deprecated-flexbox-auto-min-size_t01: Pass,RuntimeError # Please triage this failure
-LayoutTests/fast/css/draggable-region-parser_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/dynamic-class-backdrop-pseudo_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/first-child-display-change-inverse_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/focus-display-block-inline_t01: Pass, RuntimeError # Fails 5 out of 10.
-LayoutTests/fast/css/focus-display-block-inline_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/font-face-cache-bug_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/font-face-unicode-range-load_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/font-face-unicode-range-monospace_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/font-face-unicode-range-overlap-load_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/font-property-priority_t01: RuntimeError # Fails 10 out of 10.
-LayoutTests/fast/css/font-shorthand-from-longhands_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/fontface-properties_t01: RuntimeError # Uses FontFace class, not defined for this browser.
-LayoutTests/fast/css/fontfaceset-download-error_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/fontfaceset-events_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/fontfaceset-loadingdone_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/getComputedStyle/computed-style-border-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/getComputedStyle/computed-style-cross-fade_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/getComputedStyle/computed-style-font_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/getComputedStyle/computed-style-with-zoom_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/getComputedStyle/counterIncrement-without-counter_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/getPropertyValue-clip_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/getPropertyValue-columns_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/html-attr-case-sensitivity_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/id-or-class-before-stylesheet_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/important-js-override_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/inherit-initial-shorthand-values_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/inherited-properties-rare-text_t01: RuntimeError # Fails 10 out of 10.
-LayoutTests/fast/css/invalid-not-with-simple-selector-sequence_t01: RuntimeError # Fails 10 out of 10.
-LayoutTests/fast/css/invalid-predefined-color_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/invalidation/detach-reattach-shadow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/invalidation/shadow-host-toggle_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/invalidation/targeted-class-host-pseudo_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/invalidation/targeted-class-shadow-combinator_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/invalidation/toggle-style-inside-shadow-root_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/link-alternate-stylesheet-1_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/link-alternate-stylesheet-2_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/link-alternate-stylesheet-3_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/link-alternate-stylesheet-4_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/link-alternate-stylesheet-5_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/media-query-recovery_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/media-rule-no-whitespace_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/parse-color-int-or-percent-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/parsing-at-rule-recovery_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/parsing-css-nonascii_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/parsing-css-nth-child_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/parsing-font-variant-ligatures_t01: RuntimeError # Fails 10 out of 10.
-LayoutTests/fast/css/parsing-object-position_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/parsing-page-rule_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/parsing-selector-error-recovery_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/parsing-unexpected-eof_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/pseudo-any_t01: Pass, RuntimeError # Fails 4 out of 10.
-LayoutTests/fast/css/pseudo-any_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/pseudo-target-indirect-sibling-001_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/css/pseudo-target-indirect-sibling-002_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/css/readonly-pseudoclass-opera-001_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/readonly-pseudoclass-opera-002_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/readonly-pseudoclass-opera-003_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/readonly-pseudoclass-opera-004_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/readonly-pseudoclass-opera-005_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/selector-text-escape_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/css/shorthand-setProperty-important_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/sticky/parsing-position-sticky_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/string-quote-binary_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/style-scoped/style-scoped-in-shadow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/style-scoped/style-scoped-nested_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/style-scoped/style-scoped-scoping-nodes-different-order_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/style-scoped/style-scoped-shadow-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/style-scoped/style-scoped-with-dom-operation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/style-scoped/style-scoped-with-important-rule_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/stylesheet-enable-first-alternate-on-load-sheet_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/stylesheet-enable-second-alternate-link_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/transform-origin-parsing_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/unicode-bidi-computed-value_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/webkit-keyframes-errors_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last-inherited_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-color_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-line_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-underline-position_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css3-text/css3-text-indent/getComputedStyle/getComputedStyle-text-indent-inherited_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css3-text/css3-text-indent/getComputedStyle/getComputedStyle-text-indent_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css3-text/css3-text-justify/getComputedStyle/getComputedStyle-text-justify_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/52776_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Attr/direction-attribute-set-and-cleared_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/DOMException/XPathException_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/DOMException/dispatch-event-exception_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/DOMImplementation/createDocument-namespace-err_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Document/CaretRangeFromPoint/basic_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-strict-mode-wtih-checkbox_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-user-select-none_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-zoom-and-scroll_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-with-first-letter-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Document/createElementNS-namespace-err_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Element/getClientRects_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Element/offsetTop-table-cell_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Element/setAttributeNS-namespace-err_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLAnchorElement/remove-href-from-focused-anchor_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-host_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-hostname_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-pathname_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/dialog-autofocus_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/dialog-close-event_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/dialog-enabled_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/dialog-open_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/dialog-return-value_t01: RuntimeError # Dartium JSInterop failure
-LayoutTests/fast/dom/HTMLDialogElement/dialog-scrolled-viewport_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/dialog-show-modal_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/inert-does-not-match-disabled-selector_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/inert-node-is-unfocusable_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/inert-node-is-unselectable_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/multiple-centered-dialogs_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/non-anchored-dialog-positioning_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/show-modal-focusing-steps_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/submit-dialog-close-event_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/synthetic-click-inert_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/top-layer-position-relative_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/top-layer-position-static_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDocument/active-element-gets-unforcusable_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/dom/HTMLDocument/set-focus-on-valid-element_t01: Skip
-LayoutTests/fast/dom/HTMLElement/insertAdjacentHTML-errors_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLElement/set-inner-outer-optimization_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLElement/spellcheck_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLFormElement/move-option-between-documents_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLImageElement/image-alt-text_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLImageElement/parse-src_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLInputElement/input-image-alt-text_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLLinkElement/link-and-subresource-test-nonexistent_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/dom/HTMLLinkElement/link-and-subresource-test_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/dom/HTMLLinkElement/prefetch-onerror_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/dom/HTMLLinkElement/prefetch-onload_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/dom/HTMLLinkElement/prefetch_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/dom/HTMLLinkElement/resolve-url-on-insertion_t01: RuntimeError # Fails 10 out of 10.
-LayoutTests/fast/dom/HTMLOptionElement/collection-setter-getter_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLOutputElement/dom-settable-token-list_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLScriptElement/async-false-inside-async-false-load_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLScriptElement/async-inline-script_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLScriptElement/async-onbeforeload_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLScriptElement/defer-inline-script_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLScriptElement/defer-onbeforeload_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLScriptElement/script-set-src_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLSelectElement/selected-index-preserved-when-option-text-changes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLTemplateElement/custom-element-wrapper-gc_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLTemplateElement/cycles-in-shadow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLTemplateElement/innerHTML_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLTemplateElement/ownerDocumentXHTML_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/MutationObserver/observe-childList_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/MutationObserver/observe-options-attributes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/MutationObserver/observe-options-character-data_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/MutationObserver/weak-callback-gc-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Node/initial-values_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/NodeIterator/NodeIterator-basic_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/bug-19527_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/insertNode-empty-fragment-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/mutation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/range-comparePoint_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/range-constructor_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/range-created-during-remove-children_t01: RuntimeError
-LayoutTests/fast/dom/Range/range-detached-exceptions_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/range-exceptions_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/range-expand_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/range-insertNode-separate-endContainer_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/range-insertNode-splittext_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/range-isPointInRange_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/range-on-detached-node_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/remove-twice-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/surroundContents-for-detached-node_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/SelectorAPI/dumpNodeList-2_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/SelectorAPI/dumpNodeList_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/StyleSheet/css-insert-import-rule-to-shadow-stylesheets_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/StyleSheet/css-medialist-item_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/StyleSheet/detached-shadow-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/StyleSheet/empty-shadow-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/TreeWalker/TreeWalker-basic_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Window/atob-btoa_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Window/getMatchedCSSRules-parent-stylesheets_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Window/window-resize-contents_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Window/window-resize_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Window/window-scroll-arguments_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/XMLSerializer-attribute-entities_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/XMLSerializer-double-xmlns_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/anchor-without-content_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/attribute-namespaces-get-set_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/background-shorthand-csstext_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/characterdata-api-arguments_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/client-width-height-quirks_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/css-selectorText_t01: RuntimeError # Fails 10 out of 10.
-LayoutTests/fast/dom/custom/attribute-changed-callback_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/constructor-calls-created-synchronously_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/created-callback_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/document-register-basic_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/document-register-namespace_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/document-register-on-create-callback_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/document-register-svg-extends_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/document-register-type-extensions_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/element-names_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/element-type_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/element-upgrade_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/lifecycle-created-createElement-recursion_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/type-extensions_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/unresolved-pseudoclass_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/upgrade-candidate-remove-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/dataset-xhtml_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/dataset_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/document-set-title-mutations_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/document-set-title-no-reuse_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/domparser-parsefromstring-mimetype-support_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/fragment-activation-focuses-target_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/getElementsByClassName/dumpNodeList_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/horizontal-scrollbar-in-rtl-doesnt-fire-onscroll_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/horizontal-scrollbar-in-rtl_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/horizontal-scrollbar-when-dir-change_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/html-collections-named-getter-mandatory-arg_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/implementation-api-args_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/importNode-unsupported-node-type_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/location-hash_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/dom/mutation-event-remove-inserted-node_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/navigatorcontentutils/is-protocol-handler-registered_t01: Skip # API not supported.
-LayoutTests/fast/dom/navigatorcontentutils/register-protocol-handler_t01: Skip # API not supported.
-LayoutTests/fast/dom/navigatorcontentutils/unregister-protocol-handler_t01: Skip # API not supported.
-LayoutTests/fast/dom/object-plugin-hides-properties_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/dom/option-properties_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/partial-layout-non-overlay-scrollbars_t01: Pass, RuntimeError # Issue 53
-LayoutTests/fast/dom/partial-layout-overlay-scrollbars_t01: Pass, RuntimeError # Fails 8 out of 10.
-LayoutTests/fast/dom/set-innerHTML_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/access-document-of-detached-stylesheetlist-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/base-in-shadow-tree_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/content-element-api_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/content-element-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/content-element-includer_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/content-element-outside-shadow-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/content-pseudo-element-css-text_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/content-pseudo-element-dynamic-attribute-change_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/content-pseudo-element-overridden_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/content-pseudo-element-relative-selector-css-text_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/content-pseudo-element-with-host-pseudo-class_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/content-reprojection-fallback-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/custom-pseudo-in-selector-api_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/distribution-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/distribution-for-event-path_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/distribution-update-recalcs-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/elementfrompoint_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/elements-in-frameless-document_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/event-path-not-in-document_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/event-path_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/form-in-shadow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/get-distributed-nodes-orphan_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/get-element-by-id-in-shadow-mutation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/getComputedStyle-composed-parent-dirty_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/getelementbyid-in-orphan_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/getelementbyid-shadow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/host-context-pseudo-class-css-text_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/host-pseudo-class-css-text_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/host-wrapper-reclaimed_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/insertion-point-list-menu-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/insertion-point-shadow-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/insertion-point-video-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/link-in-shadow-tree_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/nested-reprojection-inconsistent_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/no-renderers-for-light-children_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/offsetWidth-host-style-change_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/olderShadowRoot_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/pseudoclass-update-checked-option_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/pseudoclass-update-disabled-optgroup_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/pseudoclass-update-disabled-option_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/pseudoclass-update-enabled-optgroup_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/pseudoclass-update-enabled-option_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/reinsert-insertion-point_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/remove-and-insert-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/remove-styles-in-shadow-crash-2_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/remove-styles-in-shadow-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-aware-shadow-root_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-content-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-disable_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-element-inactive_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-element_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-hierarchy-exception_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-removechild-and-blur-event_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-root-append_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-root-js-api_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-root-node-list_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-root-text-child_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-ul-li_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadowdom-dynamic-styling_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadowdom-for-input-spellcheck_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadowdom-for-input-type-change_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadowdom-for-unknown-with-form_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadowhost-keyframes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadowroot-clonenode_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadowroot-host_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadowroot-keyframes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/sibling-rules-dynamic-changes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/stale-distribution-after-shadow-removal_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/style-insertion-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/style-of-distributed-node_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/style-sharing-sibling-shadow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/style-sharing-styles-in-older-shadow-roots_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/suppress-mutation-events-in-shadow-characterdata_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/title-element-in-shadow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dynamic/crash-generated-counter_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dynamic/crash-generated-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dynamic/crash-generated-quote_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dynamic/crash-generated-text_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dynamic/insertAdjacentElement_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dynamic/insertAdjacentHTML_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dynamic/recursive-layout_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/add-event-without-document_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/clipboard-clearData_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/events/clipboard-dataTransferItemList_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/events/dispatch-event-being-dispatched_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/document-elementFromPoint_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/event-creation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/event-listener-html-non-html-confusion_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/event-on-created-document_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/event-on-xhr-document_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/event-trace_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/initkeyboardevent-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/invalid-003_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/invalid-004_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/mutation-during-replace-child-2_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/mutation-during-replace-child_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/overflowchanged-event-raf-timing_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/events/scoped/editing-commands_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/scroll-event-does-not-bubble_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/tabindex-removal-from-focused-element_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/exclusions/parsing/parsing-wrap-flow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/exclusions/parsing/parsing-wrap-through_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/blob-close-read_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/blob-close-revoke_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/blob-close_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/blob-constructor_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/blob-parts-slice-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/blob-slice-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/file-reader-abort-in-last-progress_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/file-reader-done-reading-abort_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/files/file-reader-methods-illegal-arguments_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/file-reader-readystate_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/url-null_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/xhr-response-blob_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/async-operations_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/directory-entry-to-uri_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-entry-to-uri_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-from-file-entry_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-metadata-after-write_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-writer-abort-continue_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-writer-abort-depth_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-writer-abort_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-writer-empty-blob_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-writer-events_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-writer-gc-blob_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-writer-truncate-extend_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-writer-write-overlapped_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/filesystem-reference_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/filesystem-unserializable_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/filesystem-uri-origin_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/input-access-entries_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/op-copy_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/op-get-entry_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/op-get-metadata_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/op-get-parent_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/op-move_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/op-read-directory_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/op-remove_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/op-restricted-chars_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/op-restricted-names_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/op-restricted-unicode_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/read-directory-many_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/read-directory_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/simple-readonly-file-object_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/simple-readonly_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/simple-required-arguments-getdirectory_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/simple-required-arguments-getfile_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/simple-temporary_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/snapshot-file-with-gc_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/flexbox/repaint-scrollbar_t01: Pass, RuntimeError # Fails 2 out of 10.
-LayoutTests/fast/flexbox/repaint-scrollbar_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/ValidityState-customError_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/ValidityState-typeMismatch-email_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/autocomplete_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/autofocus-input-css-style-change_t01: Pass, RuntimeError # Fails 7 out of 10.
-LayoutTests/fast/forms/autofocus-input-css-style-change_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/button-baseline-and-collapsing_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/button/button-disabled-blur_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/clone-input-with-dirty-value_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/color/color-setrangetext_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/color/input-value-sanitization-color_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/datalist/datalist-child-validation_t01: RuntimeError # Fails 10 out of 10.
-LayoutTests/fast/forms/datalist/datalist_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/datalist/input-list_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/date-multiple-fields/date-multiple-fields-change-layout-by-value_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/date-multiple-fields/date-multiple-fields-onblur-setvalue-onfocusremoved_t01: Pass, RuntimeError # Fails 6 out of 10.
-LayoutTests/fast/forms/date-multiple-fields/date-multiple-fields-onblur-setvalue-onfocusremoved_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/date/ValidityState-rangeOverflow-date_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/date/ValidityState-rangeUnderflow-date_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/date/ValidityState-stepMismatch-date_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/date/ValidityState-typeMismatch-date_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/date/date-input-type_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/date/date-pseudo-classes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/date/date-setrangetext_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/date/input-date-validation-message_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/date/input-valueasdate-date_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/date/input-valueasnumber-date_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-change-layout-by-value_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/datetimelocal/ValidityState-rangeOverflow-datetimelocal_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/datetimelocal/ValidityState-rangeUnderflow-datetimelocal_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/datetimelocal/ValidityState-stepMismatch-datetimelocal_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/datetimelocal/ValidityState-typeMismatch-datetimelocal_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/datetimelocal/datetimelocal-input-type_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/datetimelocal/datetimelocal-pseudo-classes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/datetimelocal/datetimelocal-setrangetext_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/datetimelocal/input-valueasdate-datetimelocal_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/datetimelocal/input-valueasnumber-datetimelocal_t01: RuntimeError # Dartium JSInterop failure
-LayoutTests/fast/forms/file/file-input-capture_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/form-attribute_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/input-appearance-elementFromPoint_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/input-inputmode_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/input-type-change3_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/input-value-sanitization_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/input-width-height-attributes-without-renderer-loaded-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/interactive-validation-assertion-by-validate-twice_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/forms/interactive-validation-attach-assertion_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/forms/interactive-validation-select-crash_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/forms/select-max-length_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/forms/menulist-disabled-selected-option_t01: Pass, RuntimeError # Fails on 7.1. Please triage this failure
-LayoutTests/fast/forms/menulist-selection-reset_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/menulist-submit-without-selection_t01: Pass, RuntimeError # Fails on 7.1. Please triage this failure
-LayoutTests/fast/forms/multiple-selected-options-innerHTML_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/option-change-single-selected_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/option-strip-unicode-spaces_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/parser-associated-form-removal_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/plaintext-mode-1_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/search-popup-crasher_t01: Pass, RuntimeError # Fails on 7.1. Please triage this failure
-LayoutTests/fast/forms/select-set-length-with-mutation-remove_t01: RuntimeError
-LayoutTests/fast/forms/select-set-length-with-mutation-reparent_t01: RuntimeError
-LayoutTests/fast/forms/selection-wrongtype_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/setrangetext_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/textarea-maxlength_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/textarea-paste-newline_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/textarea-selection-preservation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/html/hidden-attr_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/html/imports/import-element-removed-flag_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/html/imports/import-events_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/html/select-dropdown-consistent-background-color_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/inline/boundingBox-with-continuation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/inline/continuation-inlines-inserted-in-reverse-after-block_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/inline/inline-position-top-align_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/inline/inline-with-empty-inline-children_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/inline/out-of-flow-objects-and-whitespace-after-empty-inline_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/inline/parent-inline-element-padding-contributes-width_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/inline/positioned-element-padding-contributes-width_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/innerHTML/innerHTML-uri-resolution_t01: Pass, RuntimeError # Issue 29634
-LayoutTests/fast/innerHTML/innerHTML-svg-write_t01: RuntimeError # Issue 25941
-LayoutTests/fast/innerHTML/javascript-url_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/loader/about-blank-hash-change_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/loader/about-blank-hash-kept_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/loader/hashchange-event-properties_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/loader/onhashchange-attribute-listeners_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/loader/scroll-position-restored-on-back_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/loader/scroll-position-restored-on-reload-at-load-event_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/loader/stateobjects/replacestate-in-onunload_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/masking/parsing-clip-path-shape_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/masking/parsing-mask_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/media/matchmedium-query-api_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/media/media-query-list-syntax_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/media/media-query-list_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/media/mq-append-delete_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/media/mq-js-media-except_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/media/mq-js-media-except_t03: RuntimeError # Please triage this failure
-LayoutTests/fast/media/mq-parsing_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/mediastream/RTCIceCandidate_t01: Skip # Please triage this failure
-LayoutTests/fast/mediastream/RTCPeerConnection_t01: Skip # Issue 23475
-LayoutTests/fast/mediastream/constructors_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/balance-short-trailing-empty-block_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/balance-trailing-border_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/balance-trailing-border_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/balance-unbreakable_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/break-after-always-bottom-margin_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/break-properties_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/columns-shorthand-parsing_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/cssom-view_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/float-truncation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/hit-test-above-or-below_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/hit-test-end-of-column-with-line-height_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/hit-test-end-of-column_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/hit-test-float_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/newmulticol/balance-images_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/orphans-relayout_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/vertical-lr/float-truncation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/vertical-rl/float-truncation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/overflow/child-100percent-height-inside-fixed-container-with-overflow-auto_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/overflow/replaced-child-100percent-height-inside-fixed-container-with-overflow-auto_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/overflow/scrollbar-restored_t01: RuntimeError # Fails 10 out of 10.
-LayoutTests/fast/parser/foster-parent-adopted_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/parser/fragment-parser-doctype_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/parser/innerhtml-with-prefixed-elements_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/replaced/available-height-for-content_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/replaced/container-width-zero_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/replaced/iframe-with-percentage-height-within-table-with-anonymous-table-cell_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/replaced/iframe-with-percentage-height-within-table-with-table-cell-ignore-height_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/replaced/preferred-widths_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/replaced/table-percent-height-text-controls_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/replaced/table-percent-height_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/replaced/table-percent-width_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/ruby/ruby-line-height_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/scrolling/scroll-element-into-view_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/parsing/parsing-shape-lengths_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/parsing/parsing-shape-margin_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/parsing/parsing-shape-outside_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-big-box-border-radius_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-diamond-margin-polygon_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-ellipse-margin-left_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-ellipse-margin-right_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-image-margin_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-image-margin_t02: Pass, RuntimeError # Fails on 6.2. Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-left_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-right_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-rounded-boxes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-rounded-boxes_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/speechsynthesis/speech-synthesis-boundary-events_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/speechsynthesis/speech-synthesis-cancel_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/speechsynthesis/speech-synthesis-pause-resume_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/speechsynthesis/speech-synthesis-speak_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/speechsynthesis/speech-synthesis-utterance-uses-voice_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/speechsynthesis/speech-synthesis-voices_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/storage/disallowed-storage_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/storage/storage-disallowed-in-data-url_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/sub-pixel/cssom-subpixel-precision_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/sub-pixel/shadows-computed-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/svg/tabindex-focus_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/svg/whitespace-angle_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/svg/whitespace-integer_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/svg/whitespace-length_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/svg/whitespace-number_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/absolute-table-percent-lengths_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/anonymous-table-section-removed_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/caption-orthogonal-writing-mode-sizing_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/col-width-span-expand_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/css-table-max-height_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/css-table-max-width_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/fixed-table-layout-width-change_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/hittest-tablecell-bottom-edge_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/hittest-tablecell-right-edge_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/hittest-tablecell-with-borders-bottom-edge_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/hittest-tablecell-with-borders-right-edge_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/html-table-width-max-width-constrained_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/large-shrink-wrapped-width_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/margins-perpendicular-containing-block_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/min-width-css-block-table_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/table/min-width-css-inline-table_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/table/min-width-html-block-table_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/table/min-width-html-inline-table_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/table/nested-tables-with-div-offset_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/padding-height-and-override-height_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/switch-table-layout-dynamic-cells_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/switch-table-layout-multiple-section_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/switch-table-layout_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/table-all-rowspans-height-distribution-in-rows-except-overlapped_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/table-all-rowspans-height-distribution-in-rows_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/table-cell-offset-width_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/table-colgroup-present-after-table-row_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/table-rowspan-cell-with-empty-cell_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/table-rowspan-height-distribution-in-rows_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/table-rowspan-height-distribution-in-rows_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/table/table-with-content-width-exceeding-max-width_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text-autosizing/vertical-writing-mode_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/find-case-folding_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/find-russian_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/find-soft-hyphen_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/find-spaces_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/font-ligature-letter-spacing_t01: Pass, RuntimeError # Fails on 6.2. Please triage this failure
-LayoutTests/fast/text/font-ligatures-linebreak-word_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/text/font-ligatures-linebreak_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/text/glyph-reordering_t01: Pass, RuntimeError # Fails on 7.1. Please triage this failure
-LayoutTests/fast/text/international/cjk-segmentation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/international/iso-8859-8_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/international/listbox-width-rtl_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/international/rtl-text-wrapping_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/international/thai-offsetForPosition-inside-character_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/line-break-after-question-mark_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/offsetForPosition-cluster-at-zero_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/remove-zero-length-run_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/sub-pixel/text-scaling-ltr_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/sub-pixel/text-scaling-pixel_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/sub-pixel/text-scaling-rtl_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/sub-pixel/text-scaling-vertical_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/sub-pixel/text-scaling-webfont_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/text-combine-shrink-to-fit_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/transforms/bounding-rect-zoom_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/transforms/hit-test-large-scale_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/anchor_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/file-http-base_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/file_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/host-lowercase-per-scheme_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/host_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/idna2003_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/idna2008_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/invalid-urls-utf8_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/ipv4_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/ipv6_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/path_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/port_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/query_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/relative-unix_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/relative-win_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/relative_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/safari-extension_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/segments-from-data-url_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/segments_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/standard-url_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/writing-mode/positionForPoint_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/writing-mode/table-hit-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/writing-mode/vertical-font-vmtx-units-per-em_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xmlhttprequest/xmlhttprequest-responseXML-xml-text-responsetype_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-arraybuffer_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-before-open-sync-request_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-sync-request_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/4XPath/Borrowed/cz_20030217_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/4XPath/Borrowed/namespace-nodes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/4XPath/Core/test_core_functions_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/4XPath/Core/test_core_functions_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/4XPath/Core/test_node_test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/4XPath/Core/test_node_test_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/4XPath/Core/test_parser_t01: RuntimeError # Dartium JSInterop failure
-LayoutTests/fast/xpath/ambiguous-operators_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/attr-namespace_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/ensure-null-namespace_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/implicit-node-args_t01: RuntimeError # Please triage this failure
+[ $compiler == dart2js && $runtime == ff && !$checked ]
LayoutTests/fast/xpath/invalid-resolver_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/node-name-case-sensitivity_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/node-name-case-sensitivity_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/position_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/py-dom-xpath/abbreviations_t01: RuntimeError # Dartium JSInterop failure
-LayoutTests/fast/xpath/py-dom-xpath/axes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/py-dom-xpath/data_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/py-dom-xpath/expressions_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/py-dom-xpath/paths_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/reverse-axes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xsl/default-html_t01: RuntimeError # Please triage this failure
-LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: RuntimeError # Please triage this failure
-LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t01: RuntimeError # Issue 22200
-LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t05: RuntimeError # Issue 22200
-LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t06: RuntimeError # Issue 22200
-LibTest/core/double/roundToDouble_A01_t01: RuntimeError # Please triage this failure
-LibTest/core/double/round_A01_t01: RuntimeError # Please triage this failure
-LibTest/core/int/compareTo_A01_t01: RuntimeError # Please triage this failure
-LibTest/core/int/operator_left_shift_A01_t01: RuntimeError # Please triage this failure
-LibTest/core/int/operator_remainder_A01_t03: RuntimeError # Please triage this failure
-LibTest/core/int/operator_truncating_division_A01_t02: RuntimeError # Please triage this failure
-LibTest/core/int/remainder_A01_t01: RuntimeError # Please triage this failure
-LibTest/core/int/remainder_A01_t03: RuntimeError # Please triage this failure
-LibTest/core/int/toRadixString_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/CanvasRenderingContext2D/addEventListener_A01_t03: RuntimeError # Please triage this failure
-LibTest/html/CanvasRenderingContext2D/addEventListener_A01_t06: RuntimeError # Please triage this failure
-LibTest/html/Document/childNodes_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Document/clone_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Document/clone_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/Document/getElementsByTagName_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Document/securityPolicy_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/Element.tag_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/attributeChanged_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/borderEdge_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/contentEdge_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/dataset_A02_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/enteredView_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/getAttributeNS_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/getAttributeNS_A02_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/getBoundingClientRect_A01_t02: Pass, RuntimeError # Issue 53
-LibTest/html/Element/getClientRects_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/Element/getNamespacedAttributes_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/isContentEditable_A01_t01: Pass, RuntimeError # Issue 28187
-LibTest/html/Element/isContentEditable_A02_t01: Pass, RuntimeError # Issue 28187
-LibTest/html/Element/isTagSupported_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/isTagSupported_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/Element/leftView_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/marginEdge_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/mouseWheelEvent_A01_t01: Skip # Times out. Please triage this failure
-LibTest/html/Element/onMouseWheel_A01_t01: Skip # Times out. Please triage this failure
-LibTest/html/Element/onTransitionEnd_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/paddingEdge_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/querySelectorAll_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/Element/replaceWith_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/Element/tagName_A01_t03: RuntimeError # Please triage this failure
-LibTest/html/Element/transitionEndEvent_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/HttpRequest/getAllResponseHeaders_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/HttpRequest/getResponseHeader_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/HttpRequest/getString_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/HttpRequest/onError_A01_t02: Skip # Times out. Please triage this failure
-LibTest/html/HttpRequest/request_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/HttpRequest/responseText_A01_t02: Skip # Times out. Please triage this failure
-LibTest/html/HttpRequest/responseType_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/HttpRequest/setRequestHeader_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/HttpRequest/statusText_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/HttpRequest/status_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/HttpRequestUpload/onError_A01_t02: Skip # Times out. Please triage this failure
-LibTest/html/HttpRequestUpload/onLoadEnd_A01_t01: Skip # Times out. Please triage this failure
-LibTest/html/HttpRequestUpload/onLoadStart_A01_t01: Skip # Times out. Please triage this failure
-LibTest/html/HttpRequestUpload/onLoad_A01_t01: Skip # Times out. Please triage this failure
-LibTest/html/IFrameElement/IFrameElement.created_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/attributeChanged_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/attributes_setter_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/blur_A01_t01: Skip # Times out. Please triage this failure
-LibTest/html/IFrameElement/borderEdge_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/clone_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/contentWindow_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/createFragment_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/createFragment_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/createFragment_A01_t03: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/createShadowRoot_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/getClientRects_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/getNamespacedAttributes_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/innerHtml_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/isContentEditable_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/isContentEditable_A01_t01: RuntimeError, Pass # Fails 19 out of 20.
-LibTest/html/IFrameElement/leftView_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/marginEdge_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/offsetTo_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/onMouseWheel_A01_t01: Skip # Times out. Please triage this failure
-LibTest/html/IFrameElement/onTransitionEnd_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/outerHtml_setter_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/paddingEdge_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/querySelector_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/setInnerHtml_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/tagName_A01_t03: RuntimeError # Please triage this failure
-LibTest/html/Node/append_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/Node/nodes_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Node/nodes_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/Node/parent_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Node/previousNode_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/animationFrame_A01_t01: Skip # Times out. Please triage this failure
-LibTest/html/Window/close_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/document_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/find_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/find_A03_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/find_A06_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/moveBy_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/moveTo_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/moveTo_A02_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/postMessage_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/postMessage_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/Window/requestFileSystem_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/requestFileSystem_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/Window/requestFileSystem_A02_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/resizeBy_A01_t01: Skip # Times out. Please triage this failure
-LibTest/html/Window/resizeTo_A01_t01: RuntimeError # Please triage this failure
-LibTest/typed_data/Float32x4List/Float32x4List.view_A06_t01: RuntimeError # Please triage this failure
-LibTest/typed_data/Int32x4/operator_OR_A01_t01: RuntimeError # Please triage this failure
-WebPlatformTest/DOMEvents/approved/EventObject.after.dispatchEvenr_t01: RuntimeError # Please triage this failure
-WebPlatformTest/DOMEvents/approved/EventObject.multiple.dispatchEvent_t01: RuntimeError # Please triage this failure
-WebPlatformTest/DOMEvents/approved/ProcessingInstruction.DOMCharacterDataModified_t01: Skip # Times out. Please triage this failure
-WebPlatformTest/DOMEvents/approved/addEventListener.optional.useCapture_t01: RuntimeError # Please triage this failure
-WebPlatformTest/Utils/test/asyncTestFail_t01: RuntimeError # Please triage this failure
-WebPlatformTest/Utils/test/asyncTestFail_t02: RuntimeError # Please triage this failure
-WebPlatformTest/Utils/test/asyncTestTimeout_t01: Skip # Times out. Please triage this failure
-WebPlatformTest/custom-elements/concepts/type_A01_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/concepts/type_A04_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/concepts/type_A05_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/concepts/type_A06_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/concepts/type_A07_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/concepts/type_A08_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElementNS_A01_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElementNS_A02_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElementNS_A03_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElementNS_A04_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElementNS_A05_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElement_A01_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElement_A02_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElement_A03_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElement_A04_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElement_A05_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/isAttribute_A01_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/isAttribute_A01_t02: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/isAttribute_A02_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/isAttribute_A03_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/localName_A01_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/namespace_A01_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/EventTarget/dispatchEvent_A01_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/EventTarget/dispatchEvent_A02_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/EventTarget/dispatchEvent_A03_t01: Skip # Times out. Please triage this failure
-WebPlatformTest/dom/events/type_A01_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/DOMImplementation-createDocument_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/DOMImplementation-hasFeature_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/Document-adoptNode_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/Document-getElementsByTagName_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/Document-importNode_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/Element-childElementCount_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/Node-appendChild_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/Node-appendChild_t02: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/Node-insertBefore_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/Node-isEqualNode_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/Node-replaceChild_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/attributes_A04_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/attributes_A05_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A05_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A06_t03: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A07_t02: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A07_t03: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A08_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A09_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A09_t02: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/setAttribute_A02_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/setAttribute_A02_t02: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/setAttribute_A03_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/ranges/Range-attributes_t02: RuntimeError # Please triage this failure
-WebPlatformTest/dom/ranges/Range-comparePoint_t02: RuntimeError # Please triage this failure
-WebPlatformTest/dom/ranges/Range-comparePoint_t03: RuntimeError # Please triage this failure
-WebPlatformTest/dom/ranges/Range-detach_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-imports/link-import_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-imports/link-import_t02: RuntimeError # Please triage this failure
-WebPlatformTest/html-imports/loading-import_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/definitions/template-contents-owner-test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/innerhtml-on-templates/innerhtml_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-head-insertion-mode/generating-of-implied-end-tags_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/parsing-html-templates/creating-an-element-for-the-token/template-owner-document_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/template-element/node-document-changes_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/browsers/browsing-the-web/read-media/pageload-image_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/browsers/browsing-the-web/read-media/pageload-video_t01: Skip # Times out. Please triage this failure
-WebPlatformTest/html/browsers/browsing-the-web/read-text/load-text-plain_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.body-getter_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.body-setter_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.getElementsByName-namespace_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.title_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.title_t05: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.title_t07: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/documents/dom-tree-accessors/nameditem_t02: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/elements/global-attributes/dataset-delete_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/elements/global-attributes/dataset-get_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/elements/global-attributes/dataset-set_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/document-metadata/styling/LinkStyle_t01: Pass, RuntimeError # Fails on 7.1. Please triage this failure
-WebPlatformTest/html/semantics/embedded-content/media-elements/error-codes/error_t01: Skip # Times out. Please triage this failure
-WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLTrackElement/src_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/TextTrack/cues_t01: Skip # Times out. Please triage this failure
-WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/TextTrack/mode_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/attributes-common-to-form-controls/formAction_document_address_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/attributes-common-to-form-controls/formaction_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/textfieldselection/selection_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/textfieldselection/textfieldselection-setRangeText_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-button-element/button-validation_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-datalist-element/datalistelement_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-datalist-element/datalistoptions_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-form-element/form-autocomplete_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-form-element/form-elements-matches_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-form-element/form-elements-nameditem_t02: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/color_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/date_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/datetime-local_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/datetime_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/datetime_t02: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/email_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/hidden_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/input-textselection_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/month_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/password_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/range_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/text_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/time_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/time_t02: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/type-change-state_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/url_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/valueMode_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/week_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-meter-element/meter_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-option-element/option-text-recurse_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-option-element/option-text-spaces_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/grouping-content/the-blockquote-element/grouping-blockquote_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/grouping-content/the-ol-element/ol.start-reflection_t02: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/interactive-elements/the-details-element/toggleEvent_t01: Skip # Times out. Please triage this failure
-WebPlatformTest/html/semantics/interactive-elements/the-dialog-element/dialog-close_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/interactive-elements/the-dialog-element/dialog-showModal_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/scripting-1/the-script-element/async_t11: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/scripting-1/the-script-element/script-text_t02: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/selectors/pseudo-classes/checked_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/selectors/pseudo-classes/default_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/selectors/pseudo-classes/dir_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/selectors/pseudo-classes/disabled_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/selectors/pseudo-classes/enabled_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/selectors/pseudo-classes/focus_t01: Pass,RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/selectors/pseudo-classes/indeterminate_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/selectors/pseudo-classes/inrange-outofrange_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/tabular-data/the-table-element/table-insertRow_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/tabular-data/the-table-element/table-rows_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/tabular-data/the-tr-element/rowIndex_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/syntax/parsing/Document.getElementsByTagName-foreign_t02: RuntimeError # Please triage this failure
-WebPlatformTest/html/syntax/serializing-html-fragments/outerHTML_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t02: RuntimeError # Please triage this failure
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t03: RuntimeError # Please triage this failure
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t04: RuntimeError # Please triage this failure
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t05: RuntimeError # Please triage this failure
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t06: RuntimeError # Please triage this failure
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol_t00: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-004_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-004_t02: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-005_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/elements-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-event-interface/event-path-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-007_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-008_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-009_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-010_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-011_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-012_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-013_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-005_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-007_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-010_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-004_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-004_t02: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-005_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-006_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-003_t02: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-004_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-005_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/event-dispatch/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/event-dispatch/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/event-dispatch/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/event-retargeting/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/event-retargeting/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/event-retargeting/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/event-retargeting/test-004_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-004_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-005_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-006_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-007_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-008_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-009_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t02: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t03: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t04: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t05: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t06: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-004_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/html-forms/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/html-forms/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/inert-html-elements/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/composition/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/custom-pseudo-elements/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/distributed-pseudo-element/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/distributed-pseudo-element/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/distribution-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-004_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-005_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/nested-shadow-trees/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/rendering-shadow-trees/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/reprojection/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-004_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-005_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-006_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-017_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/dom-tree-accessors-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/selectors-api-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/selectors-api-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/shadow-root-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-005_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-007_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-009_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-011_t01: RuntimeError # Please triage this failure
-WebPlatformTest/webstorage/event_constructor_t01: RuntimeError # Please triage this failure
-WebPlatformTest/webstorage/event_constructor_t02: RuntimeError # Please triage this failure
-WebPlatformTest/webstorage/event_local_key_t01: RuntimeError # Please triage this failure
-WebPlatformTest/webstorage/event_session_key_t01: RuntimeError # Please triage this failure
-WebPlatformTest/webstorage/event_session_storagearea_t01: Pass, RuntimeError # Fails on 7.1. Please triage this failure
-WebPlatformTest/webstorage/event_session_url_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/xmlhttprequest/xmlhttprequest-get_t01: RuntimeError # Roll 50 failure
-LayoutTests/fast/dom/HTMLOutputElement/htmloutputelement_t01: Pass, RuntimeError # Issue 29632
-LayoutTests/fast/dom/icon-size-property_t01: Pass, RuntimeError # Issue 29632
-LayoutTests/fast/events/event-fire-order_t01: Pass, RuntimeError # Issue 29632
-
-[ $compiler == dart2js && $runtime == safarimobilesim ]
-LayoutTests/fast/alignment/parse-align-items_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/alignment/parse-align-self_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/alignment/parse-justify-self_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/backgrounds/background-repeat-computed-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/backgrounds/repeat/parsing-background-repeat_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/borders/border-image-width-numbers-computed-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/2d.composite.globalAlpha.fillPath_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/2d.fillText.gradient_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/2d.text.draw.fill.maxWidth.gradient_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/2d.text.draw.fill.maxWidth.negative_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/2d.text.draw.fill.maxWidth.veryLarge_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/2d.text.draw.fill.maxWidth.verySmall_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/alpha_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-alphaImageData-behavior_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-arc-negative-radius_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-arc-zero-lineto_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-before-css_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-bezier-same-endpoint_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blend-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blend-solid_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-clipping_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-color-over-color_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-color-over-gradient_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-color-over-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-color-over-pattern_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-fill-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-global-alpha_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-gradient-over-color_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-gradient-over-gradient_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-gradient-over-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-gradient-over-pattern_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-image-over-color_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-image-over-gradient_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-image-over-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-image-over-pattern_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-pattern-over-color_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-pattern-over-gradient_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-pattern-over-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-pattern-over-pattern_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-shadow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-text_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-blending-transforms_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-composite-canvas_t01: Skip # Times out on Windows 8. Please triage this failure
-LayoutTests/fast/canvas/canvas-composite-stroke-alpha_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-composite-text-alpha_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-currentTransform_t01: RuntimeError # Feature is not implemented
-LayoutTests/fast/canvas/canvas-drawImage-scaled-copy-to-self_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-ellipse-360-winding_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-ellipse-negative-radius_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-ellipse-zero-lineto_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-ellipse_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-empty-image-pattern_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-fillStyle-no-quirks-parsing_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-font-consistency_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-getImageData-invalid_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-getImageData-large-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-getImageData-largeNonintegralDimensions_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-imageSmoothingEnabled-repaint_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-imageSmoothingEnabled_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-invalid-fillstyle_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-invalid-strokestyle_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-large-dimensions_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-large-fills_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-lineDash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-lose-restore-googol-size_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-lose-restore-max-int-size_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-putImageData_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-quadratic-same-endpoint_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-resetTransform_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-scale-shadowBlur_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-scale-strokePath-shadow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/canvas-setTransform_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/draw-custom-focus-ring_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/drawImage-with-broken-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/drawImage-with-negative-source-destination_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/drawImage-with-valid-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/drawImageFromRect_withToDataURLAsSource_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/fillText-shadow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/getPutImageDataPairTest_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/pointInPath_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/WebGLContextEvent_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/array-bounds-clamping_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/attrib-location-length-limits_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/bad-arguments-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/buffer-bind-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/buffer-data-array-buffer_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/canvas-2d-webgl-texture_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/canvas-resize-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/canvas-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/canvas-zero-size_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/compressed-tex-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/context-attributes-alpha-depth-stencil-antialias-t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/context-destroyed-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/context-lost-restored_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/context-lost_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/copy-tex-image-and-sub-image-2d_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/css-webkit-canvas-repaint_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/css-webkit-canvas_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/draw-arrays-out-of-bounds_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/draw-elements-out-of-bounds_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/draw-webgl-to-canvas-2d_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/drawingbuffer-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/error-reporting_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/framebuffer-bindings-unaffected-on-resize_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/framebuffer-object-attachment_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/framebuffer-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/functions-returning-strings_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/get-active-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/gl-bind-attrib-location-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/gl-enable-enum-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/gl-enum-tests_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/gl-get-calls_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/gl-getshadersource_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/gl-getstring_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/gl-object-get-calls_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/gl-pixelstorei_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/gl-teximage_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/gl-uniformmatrix4fv_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/gl-vertex-attrib-zero-issues_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/gl-vertex-attrib_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/gl-vertexattribpointer_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/glsl-conformance_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/incorrect-context-object-behaviour_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/index-validation-copies-indices_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/index-validation-crash-with-buffer-sub-data_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/index-validation-verifies-too-many-indices_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/index-validation-with-resized-buffer_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/index-validation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/invalid-UTF-16_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/invalid-passed-params_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/is-object_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/null-object-behaviour_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/null-uniform-location_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/object-deletion-behaviour_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/oes-element-index-uint_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/oes-vertex-array-object_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/point-size_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/premultiplyalpha-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/program-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/read-pixels-pack-alignment_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/read-pixels-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/renderbuffer-initialization_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/renderer-and-vendor-strings_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/shader-precision-format_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-array-buffer-view_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas-rgb565_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas-rgba4444_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas-rgba5551_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgb565_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgba4444_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgba5551_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-rgb565_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-rgba4444_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-rgba5551_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgb565_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba4444_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba5551_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-and-uniform-binding-bugs_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-image-webgl_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-input-validation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-sub-image-2d-bad-args_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-sub-image-2d_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/tex-sub-image-cube-maps_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/texImage2DImageDataTest_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/texImageTest_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/texture-active-bind_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/texture-bindings-uneffected-on-resize_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/texture-color-profile_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/texture-complete_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/texture-npot_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/texture-transparent-pixels-initialized_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/triangle_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/uniform-location-length-limits_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/uniform-location_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/uninitialized-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/viewport-unchanged-upon-resize_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/webgl-composite-modes-repaint_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/webgl-composite-modes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/webgl-depth-texture_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/webgl-exceptions_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/webgl-large-texture_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/webgl-layer-update_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/webgl-specific_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/webgl-texture-binding-preserved_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/webgl-unprefixed-context-id_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/canvas/webgl/webgl-viewport-parameters-preserved_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-generated-content/malformed-url_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-generated-content/pseudo-element-events_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/css-generated-content/pseudo-transition-event_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/css-generated-content/pseudo-transition_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/auto-content-resolution-rows_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/breadth-size-resolution-grid_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/calc-resolution-grid-item_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/display-grid-set-get_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/flex-and-minmax-content-resolution-rows_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/flex-content-resolution-columns_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/flex-content-resolution-rows_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-auto-columns-rows-get-set_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-auto-flow-get-set_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-auto-flow-update_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-container-change-explicit-grid-recompute-child_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-element-border-grid-item_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-element-border-padding-grid-item_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-element-empty-row-column_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-element-min-max-height_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-element-padding-grid-item_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-element-padding-margin_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-element-shrink-to-fit_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-area-get-set_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-bad-named-area-auto-placement_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-bad-resolution-double-span_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-change-order-auto-flow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-display_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-horiz-bt_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-vert-lr_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-vert-rl_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-margin-resolution_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-item-order-auto-flow-resolution_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/grid-template-areas-get-set_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/implicit-rows-auto-resolution_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/justify-self-cell_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/minmax-fixed-logical-height-only_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/minmax-fixed-logical-width-only_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/percent-grid-item-in-percent-grid-track-in-percent-grid_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/percent-grid-item-in-percent-grid-track-update_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/percent-grid-item-in-percent-grid-track_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/percent-padding-margin-resolution-grid-item-update_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/percent-padding-margin-resolution-grid-item_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/percent-resolution-grid-item_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-grid-layout/place-cell-by-index_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-intrinsic-dimensions/height-property-value_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css-intrinsic-dimensions/multicol_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/add-remove-stylesheets-at-once-minimal-recalc-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/background-position-serialize_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/background-serialize_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/border-image-style-length_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/button-height_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/checked-pseudo-selector_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/collapsed-whitespace-reattach-in-style-recalc_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/computed-offset-with-zoom_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/content/content-none_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/content/content-normal_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/content/content-quotes-05_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/css-escaped-identifier_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/css-properties-case-insensitive_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/css3-nth-tokens-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/csstext-of-content-string_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/cursor-parsing-quirks_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/deprecated-flexbox-auto-min-size_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/display-inline-block-scrollbar_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/draggable-region-parser_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/dynamic-class-backdrop-pseudo_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/first-child-display-change-inverse_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/focus-display-block-inline_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/font-face-cache-bug_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/font-face-unicode-range-load_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/font-face-unicode-range-overlap-load_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/font-shorthand-from-longhands_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/fontface-properties_t01: RuntimeError # Uses FontFace class not defined for this browser
-LayoutTests/fast/css/fontfaceset-download-error_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/fontfaceset-events_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/fontfaceset-loadingdone_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/getComputedStyle/computed-style-font_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/getComputedStyle/computed-style-with-zoom_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/getComputedStyle/getComputedStyle-border-radius-shorthand_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/getComputedStyle/getComputedStyle-borderRadius-2_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/html-attr-case-sensitivity_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/id-or-class-before-stylesheet_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/inherit-initial-shorthand-values_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/invalid-predefined-color_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/invalidation/detach-reattach-shadow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/invalidation/shadow-host-toggle_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/invalidation/targeted-class-any-pseudo_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/invalidation/targeted-class-host-pseudo_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/invalidation/targeted-class-shadow-combinator_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/invalidation/toggle-style-inside-shadow-root_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/link-alternate-stylesheet-1_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/link-alternate-stylesheet-2_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/link-alternate-stylesheet-3_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/link-alternate-stylesheet-4_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/link-alternate-stylesheet-5_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/media-query-recovery_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/media-rule-no-whitespace_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/modify-ua-rules-from-javascript_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/parse-color-int-or-percent-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/parsing-at-rule-recovery_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/parsing-expr-error-recovery_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/parsing-object-fit_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/parsing-object-position_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/parsing-page-rule_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/parsing-selector-error-recovery_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/parsing-unexpected-eof_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/pseudo-any_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/pseudo-target-indirect-sibling-001_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/css/pseudo-target-indirect-sibling-002_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/css/readonly-pseudoclass-opera-001_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/readonly-pseudoclass-opera-002_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/readonly-pseudoclass-opera-003_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/readonly-pseudoclass-opera-004_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/readonly-pseudoclass-opera-005_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/readwrite-contenteditable-recalc_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/shorthand-setProperty-important_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/sibling-selectors-dynamic_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/sticky/parsing-position-sticky_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/style-scoped/style-scoped-in-shadow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/style-scoped/style-scoped-nested_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/style-scoped/style-scoped-scoping-nodes-different-order_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/style-scoped/style-scoped-shadow-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/style-scoped/style-scoped-with-dom-operation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/style-scoped/style-scoped-with-important-rule_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/style-sharing-type-and-readonly_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/stylesheet-enable-first-alternate-on-load-sheet_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/stylesheet-enable-second-alternate-link_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/webkit-keyframes-errors_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/word-break-user-modify-allowed-values_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last-inherited_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-color_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-line_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-underline-position_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css3-text/css3-text-indent/getComputedStyle/getComputedStyle-text-indent-inherited_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css3-text/css3-text-indent/getComputedStyle/getComputedStyle-text-indent_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css3-text/css3-text-justify/getComputedStyle/getComputedStyle-text-justify_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/52776_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Attr/direction-attribute-set-and-cleared_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/DOMException/XPathException_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/DOMException/dispatch-event-exception_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/DOMImplementation/createDocument-namespace-err_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Document/CaretRangeFromPoint/basic_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-strict-mode-wtih-checkbox_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-user-select-none_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-zoom-and-scroll_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-with-first-letter-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Document/clone-node_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Document/createElementNS-namespace-err_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Document/title-property-creates-title-element_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Document/title-property-set-multiple-times_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Document/title-with-multiple-children_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Element/attribute-uppercase_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Element/getBoundingClientRect-getClientRects-relative-to-viewport_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Element/getClientRects_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Element/setAttributeNS-namespace-err_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLAnchorElement/remove-href-from-focused-anchor_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-host_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-hostname_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-pathname_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/dialog-autofocus_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/dialog-close-event_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/dialog-enabled_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/dialog-open_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/dialog-scrolled-viewport_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/dialog-show-modal_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/inert-does-not-match-disabled-selector_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/inert-node-is-unfocusable_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/inert-node-is-unselectable_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/multiple-centered-dialogs_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/non-anchored-dialog-positioning_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/show-modal-focusing-steps_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/submit-dialog-close-event_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/synthetic-click-inert_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/top-layer-position-relative_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/top-layer-position-static_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDocument/active-element-gets-unforcusable_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/dom/HTMLDocument/clone-node_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDocument/set-focus-on-valid-element_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/dom/HTMLDocument/title-get_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDocument/title-set_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLElement/insertAdjacentHTML-errors_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLElement/set-inner-outer-optimization_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLElement/spellcheck_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLFormElement/move-option-between-documents_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLImageElement/image-alt-text_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLImageElement/parse-src_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLInputElement/input-image-alt-text_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLLinkElement/link-and-subresource-test-nonexistent_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/dom/HTMLLinkElement/link-and-subresource-test_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/dom/HTMLLinkElement/link-beforeload-recursive_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/dom/HTMLLinkElement/prefetch-onerror_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/dom/HTMLLinkElement/prefetch-onload_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/dom/HTMLLinkElement/prefetch_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/dom/HTMLLinkElement/resolve-url-on-insertion_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLMeterElement/set-meter-properties_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLOptionElement/collection-setter-getter_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLOutputElement/dom-settable-token-list_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLScriptElement/async-false-inside-async-false-load_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLScriptElement/async-inline-script_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLScriptElement/async-onbeforeload_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLScriptElement/defer-inline-script_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLScriptElement/defer-onbeforeload_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLScriptElement/script-set-src_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLSelectElement/selected-index-preserved-when-option-text-changes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLTemplateElement/cloneNode_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLTemplateElement/content-outlives-template-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLTemplateElement/contentWrappers_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLTemplateElement/custom-element-wrapper-gc_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLTemplateElement/cycles-in-shadow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLTemplateElement/cycles_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLTemplateElement/inertContents_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLTemplateElement/innerHTML-inert_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLTemplateElement/innerHTML_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLTemplateElement/no-form-association_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLTemplateElement/ownerDocumentXHTML_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLTemplateElement/ownerDocument_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLTemplateElement/xhtml-parsing-and-serialization_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/MutationObserver/observe-childList_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/MutationObserver/observe-options-attributes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/MutationObserver/observe-options-character-data_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/MutationObserver/weak-callback-gc-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Node/initial-values_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/NodeIterator/NodeIterator-basic_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/bug-19527_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/insertNode-empty-fragment-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/mutation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/range-comparePoint_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/range-constructor_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/range-detached-exceptions_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/range-exceptions_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/range-expand_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/range-insertNode-separate-endContainer_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/range-insertNode-splittext_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/range-isPointInRange_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/range-on-detached-node_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Range/surroundContents-for-detached-node_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/SelectorAPI/caseID-almost-strict_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/SelectorAPI/caseID_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/SelectorAPI/dumpNodeList-2_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/SelectorAPI/dumpNodeList-almost-strict_t01: RuntimeError # Dartium JSInterop failure
-LayoutTests/fast/dom/SelectorAPI/dumpNodeList_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/SelectorAPI/id-fastpath-almost-strict_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/SelectorAPI/id-fastpath-strict_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/StyleSheet/css-insert-import-rule-to-shadow-stylesheets_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/StyleSheet/css-medialist-item_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/StyleSheet/detached-shadow-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/StyleSheet/empty-shadow-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Text/next-element-sibling_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Text/previous-element-sibling_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/TreeWalker/TreeWalker-basic_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Window/atob-btoa_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Window/getMatchedCSSRules-nested-rules_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Window/getMatchedCSSRules-parent-stylesheets_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Window/window-resize-contents_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Window/window-resize_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Window/window-scroll-arguments_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/XMLSerializer-attribute-entities_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/XMLSerializer-attribute-namespaces_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/XMLSerializer-doctype2_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/XMLSerializer-double-xmlns_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/anchor-without-content_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/assertion-on-node-removal_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/attribute-namespaces-get-set_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/characterdata-api-arguments_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/client-width-height-quirks_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/comment-not-documentElement_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/createDocumentType-ownerDocument_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/createElementNS-namespace-errors_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/attribute-changed-callback_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/constructor-calls-created-synchronously_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/created-callback_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/document-register-basic_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/document-register-namespace_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/document-register-on-create-callback_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/document-register-svg-extends_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/document-register-type-extensions_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/element-names_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/element-type_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/element-upgrade_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/lifecycle-created-createElement-recursion_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/type-extension-undo-assert_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/dom/custom/type-extensions_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/unresolved-pseudoclass_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/custom/upgrade-candidate-remove-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/dataset-xhtml_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/dataset_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/document-set-title-mutations_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/document-set-title-no-child-on-empty_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/document-set-title-no-reuse_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/domparser-parsefromstring-mimetype-support_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/elementFromPoint-scaled-scrolled_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/getElementsByClassName/014_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/getElementsByClassName/dumpNodeList_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/horizontal-scrollbar-in-rtl-doesnt-fire-onscroll_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/horizontal-scrollbar-in-rtl_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/horizontal-scrollbar-when-dir-change_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/html-collections-named-getter-mandatory-arg_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/HTMLDialogElement/dialog-return-value_t01: RuntimeError # Dartium JSInterop failure
-LayoutTests/fast/dom/implementation-api-args_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/importNode-unsupported-node-type_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/jsDevicePixelRatio_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/location-hash_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/dom/navigatorcontentutils/is-protocol-handler-registered_t01: Skip # API not supported.
-LayoutTests/fast/dom/navigatorcontentutils/register-protocol-handler_t01: Skip # API not supported.
-LayoutTests/fast/dom/navigatorcontentutils/unregister-protocol-handler_t01: Skip # API not supported.
-LayoutTests/fast/dom/node-iterator-with-doctype-root_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/option-properties_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/partial-layout-non-overlay-scrollbars_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/set-innerHTML_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/access-document-of-detached-stylesheetlist-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/base-in-shadow-tree_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/content-element-api_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/content-element-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/content-element-includer_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/content-element-outside-shadow-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/content-pseudo-element-css-text_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/content-pseudo-element-dynamic-attribute-change_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/content-pseudo-element-overridden_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/content-pseudo-element-relative-selector-css-text_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/content-pseudo-element-with-host-pseudo-class_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/content-reprojection-fallback-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/custom-pseudo-in-selector-api_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/distribution-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/distribution-for-event-path_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/distribution-update-recalcs-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/elementfrompoint_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/elements-in-frameless-document_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/event-path-not-in-document_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/event-path_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/form-in-shadow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/get-distributed-nodes-orphan_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/get-element-by-id-in-shadow-mutation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/getComputedStyle-composed-parent-dirty_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/getelementbyid-in-orphan_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/getelementbyid-shadow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/host-context-pseudo-class-css-text_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/host-pseudo-class-css-text_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/host-wrapper-reclaimed_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/insertion-point-list-menu-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/insertion-point-shadow-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/insertion-point-video-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/link-in-shadow-tree_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/nested-reprojection-inconsistent_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/no-renderers-for-light-children_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/offsetWidth-host-style-change_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/olderShadowRoot_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/pseudoclass-update-checked-option_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/pseudoclass-update-disabled-optgroup_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/pseudoclass-update-disabled-option_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/pseudoclass-update-enabled-optgroup_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/pseudoclass-update-enabled-option_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/reinsert-insertion-point_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/remove-and-insert-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/remove-styles-in-shadow-crash-2_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/remove-styles-in-shadow-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-aware-shadow-root_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-content-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-disable_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-element-inactive_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-element_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-hierarchy-exception_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-removechild-and-blur-event_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-root-append_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-root-js-api_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-root-node-list_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-root-text-child_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadow-ul-li_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadowdom-dynamic-styling_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadowdom-for-input-spellcheck_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadowdom-for-input-type-change_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadowdom-for-unknown-with-form_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadowhost-keyframes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadowroot-clonenode_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadowroot-host_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/shadowroot-keyframes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/sibling-rules-dynamic-changes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/stale-distribution-after-shadow-removal_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/style-insertion-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/style-of-distributed-node_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/style-sharing-sibling-shadow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/style-sharing-styles-in-older-shadow-roots_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/suppress-mutation-events-in-shadow-characterdata_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/shadow/title-element-in-shadow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/vertical-scrollbar-when-dir-change_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/xmlserializer-serialize-to-string-exception_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dynamic/crash-generated-counter_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dynamic/crash-generated-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dynamic/crash-generated-quote_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dynamic/crash-generated-text_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dynamic/insertAdjacentElement_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dynamic/insertAdjacentHTML_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dynamic/recursive-layout_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/add-event-without-document_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/clipboard-clearData_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/events/clipboard-dataTransferItemList_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/events/dispatch-event-being-dispatched_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/dispatch-event-no-document_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/events/document-elementFromPoint_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/event-creation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/event-listener-html-non-html-confusion_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/event-on-created-document_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/event-on-xhr-document_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/event-trace_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/fire-scroll-event_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/events/initkeyboardevent-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/invalid-003_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/invalid-004_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/mutation-during-replace-child-2_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/mutation-during-replace-child_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/scroll-event-does-not-bubble_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/events/scroll-event-phase_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/events/wheelevent-constructor_t01: RuntimeError # Safarimobilesim does not support WheelEvent
-LayoutTests/fast/events/tabindex-removal-from-focused-element_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/exclusions/parsing/parsing-wrap-flow_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/exclusions/parsing/parsing-wrap-through_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/blob-close-read_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/blob-close-revoke_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/blob-close_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/blob-constructor_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/blob-parts-slice-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/blob-slice-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/file-reader-abort-in-last-progress_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/file-reader-methods-illegal-arguments_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/file-reader-readystate_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/url-null_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/files/xhr-response-blob_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/async-operations_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/directory-entry-to-uri_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-entry-to-uri_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-from-file-entry_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-metadata-after-write_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-writer-abort-continue_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-writer-abort-depth_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-writer-abort_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-writer-empty-blob_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-writer-events_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-writer-gc-blob_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-writer-truncate-extend_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/file-writer-write-overlapped_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/filesystem-reference_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/filesystem-unserializable_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/filesystem-uri-origin_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/input-access-entries_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/op-copy_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/op-get-entry_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/op-get-metadata_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/op-get-parent_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/op-move_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/op-read-directory_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/op-remove_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/op-restricted-chars_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/op-restricted-names_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/op-restricted-unicode_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/read-directory-many_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/read-directory_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/simple-readonly-file-object_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/simple-readonly_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/simple-required-arguments-getdirectory_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/simple-required-arguments-getfile_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/simple-temporary_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/filesystem/snapshot-file-with-gc_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/flexbox/vertical-box-form-controls_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/ValidityState-typeMismatch-email_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/autocomplete_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/autofocus-input-css-style-change_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/button-baseline-and-collapsing_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/button/button-disabled-blur_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/clone-input-with-dirty-value_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/color/color-setrangetext_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/color/input-value-sanitization-color_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/control-detach-crash_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/datalist/datalist_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/datalist/input-list_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/date-multiple-fields/date-multiple-fields-change-layout-by-value_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/date-multiple-fields/date-multiple-fields-onblur-setvalue-onfocusremoved_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/date/input-date-validation-message_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/date/input-valueasdate-date_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/date/input-valueasnumber-date_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-change-layout-by-value_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/datetimelocal/input-valueasdate-datetimelocal_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/datetimelocal/input-valueasnumber-datetimelocal_t01: RuntimeError # Dartium JSInterop failure
-LayoutTests/fast/forms/file/file-input-capture_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/focus-style-pending_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/forms/form-attribute_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/input-appearance-elementFromPoint_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/input-inputmode_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/input-select-webkit-user-select-none_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/input-type-change3_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/input-value-sanitization_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/input-width-height-attributes-without-renderer-loaded-image_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/interactive-validation-assertion-by-validate-twice_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/forms/interactive-validation-attach-assertion_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/forms/interactive-validation-select-crash_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/forms/listbox-selection-2_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/menulist-disabled-selected-option_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/menulist-selection-reset_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/menulist-submit-without-selection_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/multiple-selected-options-innerHTML_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/option-change-single-selected_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/option-strip-unicode-spaces_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/plaintext-mode-1_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/search-popup-crasher_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/select-clientheight-large-size_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/select-clientheight-with-multiple-attr_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/selection-direction_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/selection-wrongtype_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/setrangetext_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/shadow-tree-exposure_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/textarea-maxlength_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/textarea-paste-newline_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/textarea-selection-preservation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/textarea-set-defaultvalue-after-value_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/html/hidden-attr_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/html/imports/import-element-removed-flag_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/html/imports/import-events_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/html/select-dropdown-consistent-background-color_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/inline/boundingBox-with-continuation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/inline/continuation-inlines-inserted-in-reverse-after-block_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/inline/inline-position-top-align_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/inline/inline-relative-offset-boundingbox_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/inline/inline-with-empty-inline-children_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/inline/out-of-flow-objects-and-whitespace-after-empty-inline_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/inline/parent-inline-element-padding-contributes-width_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/inline/positioned-element-padding-contributes-width_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/innerHTML/innerHTML-custom-tag_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/layers/normal-flow-hit-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/lists/list-style-position-inside_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/loader/about-blank-hash-change_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/loader/about-blank-hash-kept_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/loader/hashchange-event-properties_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/loader/onhashchange-attribute-listeners_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/loader/scroll-position-restored-on-back_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/loader/scroll-position-restored-on-reload-at-load-event_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/loader/stateobjects/replacestate-in-onunload_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/masking/parsing-clip-path-shape_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/masking/parsing-mask-source-type_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/masking/parsing-mask_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/media/matchmedium-query-api_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/media/media-query-list-syntax_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/media/media-query-list_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/media/mq-append-delete_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/media/mq-js-media-except_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/media/mq-js-media-except_t03: RuntimeError # Please triage this failure
-LayoutTests/fast/media/mq-parsing_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/mediastream/RTCIceCandidate_t01: Skip # Please triage this failure
-LayoutTests/fast/mediastream/RTCPeerConnection_t01: Skip # Issue 23475
-LayoutTests/fast/mediastream/constructors_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/balance-short-trailing-empty-block_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/balance-trailing-border_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/balance-trailing-border_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/break-after-always-bottom-margin_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/break-properties_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/columns-shorthand-parsing_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/cssom-view_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/float-truncation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/hit-test-above-or-below_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/hit-test-end-of-column-with-line-height_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/hit-test-end-of-column_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/hit-test-float_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/hit-test-gap-between-pages-flipped_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/newmulticol/balance-maxheight_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/newmulticol/balance_t07: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/newmulticol/balance_t08: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/newmulticol/balance_t09: Skip # Times out. Please triage this failure
-LayoutTests/fast/multicol/newmulticol/balance_t10: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/vertical-lr/break-properties_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/vertical-lr/float-truncation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/vertical-rl/break-properties_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/vertical-rl/float-truncation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/widows_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/widows_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/overflow/child-100percent-height-inside-fixed-container-with-overflow-auto_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/overflow/replaced-child-100percent-height-inside-fixed-container-with-overflow-auto_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/overflow/scrollbar-restored_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/parser/foster-parent-adopted_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/parser/fragment-parser-doctype_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/parser/innerhtml-with-prefixed-elements_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/parser/pre-first-line-break_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/replaced/available-height-for-content_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/replaced/container-width-zero_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/replaced/iframe-with-percentage-height-within-table-with-anonymous-table-cell_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/replaced/preferred-widths_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/replaced/table-percent-height-text-controls_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/replaced/table-percent-height_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/replaced/table-percent-width_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/ruby/ruby-line-height_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/scrolling/scroll-element-into-view_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/parsing/parsing-shape-image-threshold_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/parsing/parsing-shape-lengths_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/parsing/parsing-shape-margin_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/parsing/parsing-shape-outside-none_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/parsing/parsing-shape-outside_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/parsing/parsing-shape-property-aliases_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-big-box-border-radius_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-diamond-margin-polygon_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-ellipse-margin-left_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-ellipse-margin-right_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-image-margin_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-image-margin_t02: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-left_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-right_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-rounded-boxes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-rounded-boxes_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/speechsynthesis/speech-synthesis-boundary-events_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/speechsynthesis/speech-synthesis-cancel_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/speechsynthesis/speech-synthesis-pause-resume_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/speechsynthesis/speech-synthesis-speak_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/speechsynthesis/speech-synthesis-utterance-uses-voice_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/speechsynthesis/speech-synthesis-voices_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/storage/disallowed-storage_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/storage/storage-disallowed-in-data-url_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/sub-pixel/boundingclientrect-subpixel-margin_t01: Skip # Issue 747
-LayoutTests/fast/sub-pixel/computedstylemargin_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/sub-pixel/cssom-subpixel-precision_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/sub-pixel/float-list-inside_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/sub-pixel/inline-block-with-padding_t01: Skip # Issue 747
-LayoutTests/fast/sub-pixel/layout-boxes-with-zoom_t01: Pass, RuntimeError # Issue 747
-LayoutTests/fast/sub-pixel/shadows-computed-style_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/sub-pixel/size-of-span-with-different-positions_t01: Skip # Issue 747
-LayoutTests/fast/svg/getbbox_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/svg/tabindex-focus_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/svg/whitespace-angle_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/svg/whitespace-integer_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/svg/whitespace-length_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/svg/whitespace-number_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/absolute-table-percent-lengths_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/caption-orthogonal-writing-mode-sizing_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/css-table-max-height_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/css-table-max-width_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/css-table-width-with-border-padding_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/fixed-table-layout-width-change_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/hittest-tablecell-right-edge_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/hittest-tablecell-with-borders-right-edge_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/html-table-width-max-width-constrained_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/incorrect-colgroup-span-values_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/large-shrink-wrapped-width_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/margins-perpendicular-containing-block_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/min-width-css-block-table_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/table/min-width-css-inline-table_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/table/min-width-html-block-table_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/table/min-width-html-inline-table_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/table/nested-tables-with-div-offset_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/padding-height-and-override-height_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/switch-table-layout-dynamic-cells_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/switch-table-layout-multiple-section_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/switch-table-layout_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/table-all-rowspans-height-distribution-in-rows-except-overlapped_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/table-all-rowspans-height-distribution-in-rows_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/table-cell-offset-width_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/table-colgroup-present-after-table-row_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/table-rowspan-cell-with-empty-cell_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/table-rowspan-height-distribution-in-rows_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/table-rowspan-height-distribution-in-rows_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/table/table-sections-border-spacing_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/table/table-with-content-width-exceeding-max-width_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/find-case-folding_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/find-russian_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/find-soft-hyphen_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/find-spaces_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/font-ligature-letter-spacing_t01: Pass, RuntimeError # Please triage this failure
-LayoutTests/fast/text/font-ligatures-linebreak-word_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/font-ligatures-linebreak_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/glyph-reordering_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/international/cjk-segmentation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/international/iso-8859-8_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/international/listbox-width-rtl_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/international/thai-offsetForPosition-inside-character_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/ipa-tone-letters_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/line-break-after-question-mark_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/line-breaks-after-hyphen-before-number_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/offsetForPosition-cluster-at-zero_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/remove-zero-length-run_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/sub-pixel/text-scaling-ltr_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/sub-pixel/text-scaling-pixel_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/sub-pixel/text-scaling-rtl_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/sub-pixel/text-scaling-vertical_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/sub-pixel/text-scaling-webfont_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/text/text-combine-shrink-to-fit_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/tokenizer/entities_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/tokenizer/entities_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/tokenizer/entities_t03: RuntimeError # Please triage this failure
-LayoutTests/fast/transforms/bounding-rect-zoom_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/transforms/hit-test-large-scale_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/anchor_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/file-http-base_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/file_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/host-lowercase-per-scheme_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/host_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/idna2003_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/idna2008_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/invalid-urls-utf8_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/ipv4_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/ipv6_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/path_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/port_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/query_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/relative-unix_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/relative-win_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/relative_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/safari-extension_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/segments-from-data-url_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/segments_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/url/standard-url_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/writing-mode/auto-sizing-orthogonal-flows_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/writing-mode/table-hit-test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/writing-mode/vertical-font-vmtx-units-per-em_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xmlhttprequest/xmlhttprequest-get_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xmlhttprequest/xmlhttprequest-responseXML-xml-text-responsetype_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-arraybuffer_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-before-open-sync-request_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-sync-request_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xmlhttprequest/xmlhttprequest-set-responsetype_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/4XPath/Borrowed/cz_20030217_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/4XPath/Borrowed/namespace-nodes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/4XPath/Core/test_core_functions_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/4XPath/Core/test_core_functions_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/4XPath/Core/test_node_test_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/4XPath/Core/test_node_test_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/4XPath/Core/test_parser_t01: RuntimeError # Dartium JSInterop failure
-LayoutTests/fast/xpath/ambiguous-operators_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/attr-namespace_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/ensure-null-namespace_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/implicit-node-args_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/invalid-resolver_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/node-name-case-sensitivity_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/node-name-case-sensitivity_t02: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/position_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/py-dom-xpath/abbreviations_t01: RuntimeError # Dartium JSInterop failure
-LayoutTests/fast/xpath/py-dom-xpath/axes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/py-dom-xpath/data_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/py-dom-xpath/expressions_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/py-dom-xpath/paths_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/reverse-axes_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xpath/xpath-template-element_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/xsl/default-html_t01: RuntimeError # Please triage this failure
-LibTest/async/Future/doWhile_A05_t01: RuntimeError # Please triage this failure
-LibTest/async/Future/forEach_A04_t02: RuntimeError # Please triage this failure
-LibTest/async/Stream/timeout_A01_t01: Pass, RuntimeError # Please triage this failure
-LibTest/async/Stream/timeout_A03_t01: Pass, RuntimeError # Please triage this failure
-LibTest/async/Stream/timeout_A04_t01: Pass, RuntimeError # Please triage this failure
-LibTest/core/List/List_A02_t01: RuntimeError # Please triage this failure
-LibTest/core/List/List_A03_t01: RuntimeError # Please triage this failure
-LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t01: RuntimeError # Issue 22200
-LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t05: RuntimeError # Issue 22200
-LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t06: RuntimeError # Issue 22200
-LibTest/core/double/roundToDouble_A01_t01: RuntimeError # Please triage this failure
-LibTest/core/double/round_A01_t01: RuntimeError # Please triage this failure
-LibTest/core/int/compareTo_A01_t01: RuntimeError # Please triage this failure
-LibTest/core/int/operator_left_shift_A01_t01: RuntimeError # Please triage this failure
-LibTest/core/int/operator_remainder_A01_t03: RuntimeError # Please triage this failure
-LibTest/core/int/operator_truncating_division_A01_t02: RuntimeError # Please triage this failure
-LibTest/core/int/remainder_A01_t01: RuntimeError # Please triage this failure
-LibTest/core/int/remainder_A01_t03: RuntimeError # Please triage this failure
-LibTest/core/int/toRadixString_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/CanvasRenderingContext2D/addEventListener_A01_t03: RuntimeError # Please triage this failure
-LibTest/html/CanvasRenderingContext2D/addEventListener_A01_t06: RuntimeError # Please triage this failure
-LibTest/html/Document/childNodes_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Document/clone_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Document/clone_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/Document/getElementsByTagName_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Document/securityPolicy_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/Element.tag_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/attributeChanged_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/borderEdge_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/contentEdge_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/dataset_A02_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/enteredView_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/getAttributeNS_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/getAttributeNS_A02_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/getBoundingClientRect_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/Element/getClientRects_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/Element/getNamespacedAttributes_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/isContentEditable_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/isContentEditable_A02_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/isTagSupported_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/isTagSupported_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/Element/leftView_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/marginEdge_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/mouseWheelEvent_A01_t01: Skip # Safari mobile sim does not support WheelEvent
-LibTest/html/Element/onMouseWheel_A01_t01: Skip # Safari mobile sim does not support WheelEvent
-LibTest/html/Element/onTransitionEnd_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/paddingEdge_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Element/querySelectorAll_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/Element/replaceWith_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/Element/tagName_A01_t03: RuntimeError # Please triage this failure
-LibTest/html/Element/transitionEndEvent_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/HttpRequest/getAllResponseHeaders_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/HttpRequest/getResponseHeader_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/HttpRequest/getString_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/HttpRequest/onError_A01_t02: Skip # Times out. Please triage this failure
-LibTest/html/HttpRequest/request_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/HttpRequest/responseText_A01_t02: Skip # Times out. Please triage this failure
-LibTest/html/HttpRequest/responseType_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/HttpRequest/responseType_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/HttpRequest/setRequestHeader_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/HttpRequest/statusText_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/HttpRequest/status_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/HttpRequestUpload/onError_A01_t02: Skip # Times out. Please triage this failure
-LibTest/html/HttpRequestUpload/onLoadEnd_A01_t01: Skip # Times out. Please triage this failure
-LibTest/html/HttpRequestUpload/onLoadStart_A01_t01: Skip # Times out. Please triage this failure
-LibTest/html/HttpRequestUpload/onLoad_A01_t01: Skip # Times out. Please triage this failure
-LibTest/html/IFrameElement/IFrameElement.created_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/attributeChanged_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/attributes_setter_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/blur_A01_t01: Skip # Times out. Please triage this failure
-LibTest/html/IFrameElement/borderEdge_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/clone_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/contentWindow_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/createFragment_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/createFragment_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/createFragment_A01_t03: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/createShadowRoot_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/getNamespacedAttributes_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/innerHtml_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/isContentEditable_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/leftView_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/marginEdge_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/mouseWheelEvent_A01_t01: Skip # Safari mobile sim does not support WheelEvent
-LibTest/html/IFrameElement/onMouseWheel_A01_t01: Skip # Safari mobile sim does not support WheelEvent
-LibTest/html/IFrameElement/offsetTo_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/onTransitionEnd_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/outerHtml_setter_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/paddingEdge_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/querySelector_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/setInnerHtml_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/IFrameElement/tagName_A01_t03: RuntimeError # Please triage this failure
-LibTest/html/Node/append_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/Node/nodes_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Node/nodes_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/Node/parent_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Node/previousNode_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/close_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/document_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/find_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/find_A03_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/find_A06_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/moveBy_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/moveTo_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/moveTo_A02_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/open_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/postMessage_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/postMessage_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/Window/requestFileSystem_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/requestFileSystem_A01_t02: RuntimeError # Please triage this failure
-LibTest/html/Window/requestFileSystem_A02_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/resizeBy_A01_t01: RuntimeError # Please triage this failure
-LibTest/html/Window/resizeTo_A01_t01: RuntimeError # Please triage this failure
-LibTest/typed_data/Float32x4List/Float32x4List.view_A06_t01: RuntimeError # Please triage this failure
-LibTest/typed_data/Int32x4/operator_OR_A01_t01: RuntimeError # Please triage this failure
-WebPlatformTest/DOMEvents/approved/EventObject.after.dispatchEvenr_t01: RuntimeError # Please triage this failure
-WebPlatformTest/DOMEvents/approved/EventObject.multiple.dispatchEvent_t01: RuntimeError # Please triage this failure
-WebPlatformTest/DOMEvents/approved/ProcessingInstruction.DOMCharacterDataModified_t01: Skip # Times out. Please triage this failure
-WebPlatformTest/DOMEvents/approved/addEventListener.optional.useCapture_t01: RuntimeError # Please triage this failure
-WebPlatformTest/Utils/test/asyncTestFail_t01: RuntimeError # Please triage this failure
-WebPlatformTest/Utils/test/asyncTestFail_t02: RuntimeError # Please triage this failure
-WebPlatformTest/Utils/test/asyncTestTimeout_t01: Skip # Times out. Please triage this failure
-WebPlatformTest/custom-elements/concepts/type_A01_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/concepts/type_A04_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/concepts/type_A05_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/concepts/type_A06_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/concepts/type_A07_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/concepts/type_A08_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElementNS_A01_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElementNS_A02_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElementNS_A03_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElementNS_A04_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElementNS_A05_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElement_A01_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElement_A02_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElement_A03_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElement_A04_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/createElement_A05_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/isAttribute_A01_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/isAttribute_A01_t02: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/isAttribute_A02_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/isAttribute_A03_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/localName_A01_t01: RuntimeError # Please triage this failure
-WebPlatformTest/custom-elements/instantiating/namespace_A01_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/EventTarget/dispatchEvent_A01_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/EventTarget/dispatchEvent_A02_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/EventTarget/dispatchEvent_A03_t01: Skip # Times out. Please triage this failure
-WebPlatformTest/dom/events/type_A01_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/DOMImplementation-createDocumentType_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/DOMImplementation-createDocument_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/DOMImplementation-hasFeature_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/Document-adoptNode_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/Document-createElementNS_t02: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/Document-getElementsByTagName_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/Document-importNode_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/Element-childElementCount_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/Node-appendChild_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/Node-appendChild_t02: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/Node-insertBefore_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/Node-isEqualNode_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/Node-replaceChild_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/attributes_A04_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/attributes_A05_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A05_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A06_t03: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A07_t02: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A07_t03: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A08_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A09_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/setAttributeNS_A09_t02: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/setAttribute_A02_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/setAttribute_A02_t02: RuntimeError # Please triage this failure
-WebPlatformTest/dom/nodes/attributes/setAttribute_A03_t01: RuntimeError # Please triage this failure
-WebPlatformTest/dom/ranges/Range-attributes_t02: RuntimeError # Please triage this failure
-WebPlatformTest/dom/ranges/Range-comparePoint_t02: RuntimeError # Please triage this failure
-WebPlatformTest/dom/ranges/Range-comparePoint_t03: RuntimeError # Please triage this failure
-WebPlatformTest/dom/ranges/Range-detach_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-imports/link-import_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-imports/link-import_t02: RuntimeError # Please triage this failure
-WebPlatformTest/html-imports/loading-import_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/additions-to-the-steps-to-clone-a-node/template-clone-children_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/additions-to-the-steps-to-clone-a-node/templates-copy-document-owner_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/definitions/template-contents-owner-document-type_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/definitions/template-contents-owner-test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/definitions/template-contents_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/innerhtml-on-templates/innerhtml_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/parsing-html-templates/additions-to-foster-parenting/template-is-a-foster-parent-element_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/parsing-html-templates/additions-to-foster-parenting/template-is-not-a-foster-parent-element_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/generating-of-implied-end-tags_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/ignore-body-token_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/ignore-frameset-token_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/ignore-head-token_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/ignore-html-token_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/start-tag-body_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-head-insertion-mode/generating-of-implied-end-tags_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-table-insertion-mode/end-tag-table_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/parsing-html-templates/appending-to-a-template/template-child-nodes_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-body-context_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-context_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-row-context_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/parsing-html-templates/creating-an-element-for-the-token/template-owner-document_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/serializing-html-templates/outerhtml_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/template-element/content-attribute_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/template-element/node-document-changes_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/template-element/template-as-a-descendant_t01 : RuntimeError # In Safari mobile sim, setting innerHTML on a Frameset element does nothing.
-WebPlatformTest/html-templates/template-element/template-content-node-document_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/template-element/template-content_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/browsers/browsing-the-web/read-media/pageload-image_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/browsers/browsing-the-web/read-media/pageload-video_t01: Skip # Times out. Please triage this failure
-WebPlatformTest/html/browsers/browsing-the-web/read-text/load-text-plain_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.body-getter_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.body-setter_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.getElementsByName-namespace_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.title_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.title_t05: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.title_t07: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/documents/dom-tree-accessors/nameditem_t02: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/elements/global-attributes/dataset-delete_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/elements/global-attributes/dataset-get_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/dom/elements/global-attributes/dataset-set_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/document-metadata/styling/LinkStyle_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/embedded-content/media-elements/error-codes/error_t01: Skip # Times out. Please triage this failure
-WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLTrackElement/src_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/TextTrack/cues_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/TextTrack/mode_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/attributes-common-to-form-controls/formAction_document_address_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/attributes-common-to-form-controls/formaction_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/textfieldselection/selection_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/textfieldselection/textfieldselection-setRangeText_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-button-element/button-validation_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-datalist-element/datalistelement_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-datalist-element/datalistoptions_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-fieldset-element/disabled_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-form-element/form-autocomplete_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-form-element/form-elements-matches_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-form-element/form-elements-nameditem_t02: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/color_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/date_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/datetime-local_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/datetime_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/datetime_t02: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/email_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/hidden_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/input-textselection_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/month_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/password_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/range_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/text_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/time_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/time_t02: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/type-change-state_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/url_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/valueMode_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-input-element/week_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-meter-element/meter_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-option-element/option-text-recurse_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/forms/the-option-element/option-text-spaces_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/grouping-content/the-blockquote-element/grouping-blockquote_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/interactive-elements/the-details-element/toggleEvent_t01: Skip # Times out. Please triage this failure
-WebPlatformTest/html/semantics/interactive-elements/the-dialog-element/dialog-close_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/interactive-elements/the-dialog-element/dialog-showModal_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/scripting-1/the-script-element/async_t11: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/scripting-1/the-script-element/script-text_t02: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/selectors/pseudo-classes/checked_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/selectors/pseudo-classes/default_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/selectors/pseudo-classes/dir_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/selectors/pseudo-classes/disabled_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/selectors/pseudo-classes/enabled_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/selectors/pseudo-classes/focus_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/selectors/pseudo-classes/indeterminate_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/selectors/pseudo-classes/inrange-outofrange_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/selectors/pseudo-classes/valid-invalid_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/tabular-data/the-table-element/table-insertRow_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/tabular-data/the-table-element/table-rows_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/semantics/tabular-data/the-tr-element/rowIndex_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/syntax/parsing/Document.getElementsByTagName-foreign_t02: RuntimeError # Please triage this failure
-WebPlatformTest/html/syntax/serializing-html-fragments/outerHTML_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t01: Skip # Times out. Please triage this failure
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t02: RuntimeError # Please triage this failure
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t03: RuntimeError # Please triage this failure
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t04: RuntimeError # Please triage this failure
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t05: RuntimeError # Please triage this failure
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t06: RuntimeError # Please triage this failure
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol_t00: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-004_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-004_t02: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-005_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/elements-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-event-interface/event-path-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-007_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-008_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-009_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-010_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-011_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-012_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-013_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-005_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-007_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-010_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-004_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-004_t02: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-005_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-006_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-003_t02: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-004_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-005_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/event-dispatch/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/event-dispatch/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/event-dispatch/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/event-retargeting/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/event-retargeting/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/event-retargeting/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/event-retargeting/test-004_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-004_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-005_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-006_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-007_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-008_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-009_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t02: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t03: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t04: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t05: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t06: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-004_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/html-forms/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/html-forms/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/inert-html-elements/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/composition/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/custom-pseudo-elements/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/distributed-pseudo-element/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/distributed-pseudo-element/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/distribution-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-004_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-005_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/nested-shadow-trees/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/rendering-shadow-trees/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/reprojection/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-003_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-004_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-005_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-006_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-017_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/dom-tree-accessors-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/selectors-api-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/selectors-api-002_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/shadow-root-001_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-005_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-007_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-009_t01: RuntimeError # Please triage this failure
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-011_t01: RuntimeError # Please triage this failure
-WebPlatformTest/webstorage/event_constructor_t01: RuntimeError # Please triage this failure
-WebPlatformTest/webstorage/event_constructor_t02: RuntimeError # Please triage this failure
-WebPlatformTest/webstorage/event_local_key_t01: RuntimeError # Please triage this failure
-WebPlatformTest/webstorage/event_session_key_t01: RuntimeError # Please triage this failure
[ $compiler == dart2js && $runtime == ie11 ]
Language/Expressions/Conditional/type_t04: Skip # Times out. Please triage this failure
@@ -6910,7 +4109,7 @@
LayoutTests/fast/css/id-or-class-before-stylesheet_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/image-set-setting_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/implicit-attach-marking_t01: Skip # Times out. Please triage this failure
-LayoutTests/fast/css/important-js-override_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/important-js-override_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/inherit-initial-shorthand-values_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/inherited-properties-rare-text_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/insertRule-font-face_t01: RuntimeError # Please triage this failure
@@ -8197,7 +5396,7 @@
WebPlatformTest/html-templates/serializing-html-templates/outerhtml_t01: RuntimeError # Please triage this failure
WebPlatformTest/html-templates/template-element/content-attribute_t01: RuntimeError # Please triage this failure
WebPlatformTest/html-templates/template-element/node-document-changes_t01: RuntimeError # Please triage this failure
-WebPlatformTest/html-templates/template-element/template-as-a-descendant_t01 : RuntimeError # In IE, setting innerHTML on a Frameset element does nothing.
+WebPlatformTest/html-templates/template-element/template-as-a-descendant_t01: RuntimeError # In IE, setting innerHTML on a Frameset element does nothing.
WebPlatformTest/html-templates/template-element/template-content-node-document_t01: RuntimeError # Please triage this failure
WebPlatformTest/html-templates/template-element/template-content_t01: RuntimeError # Please triage this failure
WebPlatformTest/html/browsers/browsing-the-web/read-media/pageload-image_t01: Skip # Times out. Please triage this failure
@@ -8404,13 +5603,2814 @@
WebPlatformTest/webstorage/event_session_url_t01: RuntimeError # Please triage this failure
WebPlatformTest/webstorage/storage_builtins_t01: RuntimeError # Please triage this failure
-[ $compiler == dart2js && $runtime == ie11 && $builder_tag == win8]
-LibTest/typed_data/ByteData/offsetInBytes_A01_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/XMLSerializer-attribute-entities_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/serialize-attribute_t01: RuntimeError # Please triage this failure
+[ $compiler == dart2js && $runtime == jsshell ]
+Language/Expressions/Await_Expressions/execution_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+Language/Expressions/Await_Expressions/execution_t02: RuntimeError # Issue 7728, timer not supported in jsshell
+Language/Expressions/Await_Expressions/execution_t03: RuntimeError # Issue 7728, timer not supported in jsshell
+Language/Expressions/Await_Expressions/execution_t04: RuntimeError # Issue 7728, timer not supported in jsshell
+Language/Expressions/Await_Expressions/execution_t05: RuntimeError # Issue 7728, timer not supported in jsshell
+Language/Expressions/Await_Expressions/execution_t06: RuntimeError # Issue 7728, timer not supported in jsshell
+Language/Statements/For/Asynchronous_For_in/execution_t04: RuntimeError # Issue 7728, timer not supported in jsshell
+Language/Statements/Yield_and_Yield_Each/Yield/execution_async_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+Language/Statements/Yield_and_Yield_Each/Yield/execution_async_t04: RuntimeError # Issue 7728, timer not supported in jsshell
+Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t02: RuntimeError # Issue 7728, timer not supported in jsshell
+Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t03: RuntimeError # Issue 7728, timer not supported in jsshell
+Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t04: RuntimeError # Issue 7728, timer not supported in jsshell
+Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t05: RuntimeError # Issue 7728, timer not supported in jsshell
+Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t06: RuntimeError # Issue 7728, timer not supported in jsshell
+Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t07: RuntimeError # Issue 7728, timer not supported in jsshell
+Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t08: RuntimeError # Issue 7728, timer not supported in jsshell
+Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t09: RuntimeError # Issue 7728, timer not supported in jsshell
+Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t10: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/async/Future/Future.delayed_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/async/Future/Future.delayed_A03_t01: Fail # Issue 7728, timer not supported in jsshell
+LibTest/async/Future/doWhile_A05_t01: RuntimeError # Please triage. May be unsupported timer issue 7728.
+LibTest/async/Future/forEach_A04_t02: RuntimeError # Please triage. May be unsupported timer issue 7728.
+LibTest/async/Future/timeout_A01_t01: RuntimeError # Please triage. May be unsupported timer issue 7728.
+LibTest/async/Future/wait_A01_t07: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/async/Stream/Stream.periodic_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/async/Stream/Stream.periodic_A02_t01: Fail # Issue 7728, timer not supported in jsshell
+LibTest/async/Stream/Stream.periodic_A03_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/async/Stream/asBroadcastStream_A03_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/async/Stream/asBroadcastStream_A04_t03: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/async/Stream/first_A01_t01: Fail # co19-roll r546: Please triage this failure
+LibTest/async/Stream/first_A02_t02: Fail # co19-roll r546: Please triage this failure
+LibTest/async/Stream/timeout_A01_t01: RuntimeError # Please triage. May be unsupported timer issue 7728.
+LibTest/async/Stream/timeout_A02_t01: RuntimeError # Please triage. May be unsupported timer issue 7728.
+LibTest/async/Stream/timeout_A03_t01: RuntimeError # Please triage. May be unsupported timer issue 7728.
+LibTest/async/Stream/timeout_A04_t01: RuntimeError # Please triage. May be unsupported timer issue 7728.
+LibTest/async/Timer/Timer.periodic_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/async/Timer/Timer.periodic_A02_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/async/Timer/Timer_A01_t01: Fail # Issue 7728, timer not supported in jsshell
+LibTest/async/Timer/cancel_A01_t01: Fail # Issue 7728, timer not supported in jsshell
+LibTest/async/Timer/isActive_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/async/Timer/isActive_A01_t02: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/async/Zone/createPeriodicTimer_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/async/Zone/createTimer_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/core/List/sort_A01_t04: Skip # Must be a bug in jsshell, test sometimes times out.
+LibTest/core/Map/Map_class_A01_t04: Pass, Slow # Issue 8096
+LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: Fail # co19-roll r706: Please triage this failure.
+LibTest/core/Stopwatch/elapsedInMs_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/core/Stopwatch/elapsedInUs_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/core/Stopwatch/elapsedTicks_A01_t01: RuntimeError # Please triage this failure
+LibTest/core/Stopwatch/elapsedTicks_A01_t02: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/core/Stopwatch/elapsedTicks_A01_t03: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/core/Stopwatch/elapsed_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/core/Stopwatch/elapsed_A01_t02: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/core/Stopwatch/elapsed_A01_t03: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/core/Stopwatch/start_A01_t01: RuntimeError # Please triage this failure
+LibTest/core/Stopwatch/start_A01_t02: RuntimeError # Please triage this failure
+LibTest/core/Stopwatch/start_A01_t03: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/core/Stopwatch/stop_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/core/Uri/Uri_A06_t03: Pass, Slow
+LibTest/isolate/Isolate/spawn_A03_t01: RuntimeError # Please triage this failure
+LibTest/isolate/Isolate/spawn_A03_t03: RuntimeError # Please triage this failure
+LibTest/isolate/Isolate/spawn_A03_t04: RuntimeError # Please triage this failure
+LibTest/isolate/Isolate/spawn_A04_t02: RuntimeError # Please triage this failure
+LibTest/isolate/Isolate/spawn_A04_t03: Fail # Please triage this failure
+LibTest/isolate/Isolate/spawn_A04_t04: Fail # Issue 27558
+LibTest/isolate/Isolate/spawn_A04_t05: Fail # Please triage this failure
+LibTest/isolate/Isolate/spawn_A06_t02: Fail # Please triage this failure
+LibTest/isolate/Isolate/spawn_A06_t03: Fail # Please triage this failure
+LibTest/isolate/Isolate/spawn_A06_t04: RuntimeError # Please triage this failure
+LibTest/isolate/Isolate/spawn_A06_t05: RuntimeError # Please triage this failure
+LibTest/isolate/Isolate/spawn_A06_t07: Fail # Please triage this failure
+LibTest/isolate/RawReceivePort/close_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/isolate/ReceivePort/asBroadcastStream_A03_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/isolate/ReceivePort/asBroadcastStream_A04_t03: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/isolate/ReceivePort/close_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/typed_data/Float32List/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
+LibTest/typed_data/Float32x4List/Float32x4List.view_A06_t01: Fail # co19-roll r587: Please triage this failure
+LibTest/typed_data/Float64List/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
+LibTest/typed_data/Int16List/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
+LibTest/typed_data/Int16List/toList_A01_t01: Fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Int32List/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
+LibTest/typed_data/Int32List/toList_A01_t01: Fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Int32x4/operator_OR_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+LibTest/typed_data/Int8List/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
+LibTest/typed_data/Uint16List/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
+LibTest/typed_data/Uint16List/toList_A01_t01: Fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Uint32List/toList_A01_t01: Skip # issue 16934, co19-roll r559: Please triage this failure
+LibTest/typed_data/Uint8ClampedList/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
+LibTest/typed_data/Uint8List/toList_A01_t01: Skip # co19-roll r559: Please triage this failure
-[ $compiler == dart2js && $runtime == ie11 && $builder_tag == win7]
-LayoutTests/fast/files/file-reader-result-twice_t01: Pass, RuntimeError # Issue 31430
+[ $compiler == dart2js && $runtime == jsshell && $checked ]
+LibTest/core/Map/Map_class_A01_t04: Skip # Issue 18093, timeout.
+LibTest/core/Uri/Uri_A06_t03: Skip # Issue 18093, timeout.
+LibTest/core/Uri/encodeQueryComponent_A01_t02: Skip # Issue 18093, timeout.
+
+[ $compiler == dart2js && $runtime == jsshell && $fast_startup ]
+LibTest/isolate/ReceivePort/asBroadcastStream_A03_t01: Fail # please triage
+
+[ $compiler == dart2js && $runtime == safari ]
+LayoutTests/fast/alignment/parse-align-items_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/alignment/parse-align-self_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/alignment/parse-justify-self_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/animation/request-animation-frame-cancel2_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/animation/request-animation-frame-cancel_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/animation/request-animation-frame-timestamps-advance_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/animation/request-animation-frame-timestamps_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/animation/request-animation-frame-within-callback_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/backgrounds/background-repeat-computed-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/backgrounds/repeat/parsing-background-repeat_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/borders/border-image-width-numbers-computed-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/2d.fillText.gradient_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/2d.text.draw.fill.maxWidth.gradient_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/2d.text.draw.fill.maxWidth.negative_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/2d.text.draw.fill.maxWidth.veryLarge_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/2d.text.draw.fill.maxWidth.verySmall_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/alpha_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-arc-negative-radius_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-as-image-incremental-repaint_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/canvas/canvas-blend-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blend-solid_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-clipping_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-color-over-color_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-color-over-gradient_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-color-over-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-color-over-pattern_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-fill-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-global-alpha_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-gradient-over-color_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-gradient-over-gradient_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-gradient-over-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-gradient-over-pattern_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-image-over-color_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-image-over-gradient_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-image-over-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-image-over-pattern_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-pattern-over-color_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-pattern-over-gradient_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-pattern-over-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-pattern-over-pattern_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-shadow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-text_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-transforms_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-currentTransform_t01: RuntimeError # Feature is not implemented
+LayoutTests/fast/canvas/canvas-drawImage-scaled-copy-to-self_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-ellipse-zero-lineto_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-empty-image-pattern_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-fillStyle-no-quirks-parsing_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-font-consistency_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-getImageData-invalid_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-getImageData-large-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-getImageData-largeNonintegralDimensions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-large-dimensions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-large-fills_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-lineDash-input-sequence_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-lose-restore-googol-size_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-lose-restore-max-int-size_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-putImageData_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-quadratic-same-endpoint_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-resetTransform_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-scale-shadowBlur_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-scale-strokePath-shadow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-setTransform_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/draw-custom-focus-ring_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/drawImage-with-broken-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/drawImage-with-valid-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/getPutImageDataPairTest_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/setWidthResetAfterForcedRender_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/canvas/webgl/WebGLContextEvent_t01: Skip # Issue 29010
+LayoutTests/fast/canvas/webgl/context-attributes-alpha-depth-stencil-antialias-t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/context-lost-restored_t01: Skip # Issue 28640
+LayoutTests/fast/canvas/webgl/context-lost_t01: Skip
+LayoutTests/fast/canvas/webgl/glsl-conformance_t01: Skip # Times out 1 out of 20.
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-rgb565_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-rgba4444_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-rgba5551_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgb565_t01: Skip # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba4444_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba5551_t01: Skip # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video_t01: Skip
+LayoutTests/fast/canvas/webgl/texture-transparent-pixels-initialized_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/uniform-location_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-depth-texture_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-large-texture_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-generated-content/malformed-url_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-generated-content/pseudo-animation-before-onload_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/css-generated-content/pseudo-animation_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/css-generated-content/pseudo-element-events_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/css-generated-content/pseudo-transition-event_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/css-generated-content/pseudo-transition_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/auto-content-resolution-rows_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/breadth-size-resolution-grid_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/calc-resolution-grid-item_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/display-grid-set-get_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/flex-and-minmax-content-resolution-rows_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/flex-content-resolution-columns_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/flex-content-resolution-rows_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-auto-columns-rows-get-set_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-auto-flow-get-set_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-auto-flow-update_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-container-change-explicit-grid-recompute-child_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-element-border-grid-item_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-element-border-padding-grid-item_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-element-empty-row-column_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-element-min-max-height_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-element-padding-grid-item_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-element-padding-margin_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-element-shrink-to-fit_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-area-get-set_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-bad-named-area-auto-placement_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-bad-resolution-double-span_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-change-order-auto-flow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-display_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-horiz-bt_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-vert-lr_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-vert-rl_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-margin-resolution_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-order-auto-flow-resolution_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-template-areas-get-set_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/implicit-rows-auto-resolution_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/justify-self-cell_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/minmax-fixed-logical-height-only_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/minmax-fixed-logical-width-only_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/percent-grid-item-in-percent-grid-track-in-percent-grid_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/percent-grid-item-in-percent-grid-track-update_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/percent-grid-item-in-percent-grid-track_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/percent-padding-margin-resolution-grid-item-update_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/percent-padding-margin-resolution-grid-item_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/percent-resolution-grid-item_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/place-cell-by-index_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/MarqueeLayoutTest_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/aspect-ratio-inheritance_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/aspect-ratio-parsing-tests_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/background-serialize_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/border-image-style-length_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/checked-pseudo-selector_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/computed-offset-with-zoom_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/content/content-none_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/content/content-normal_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/content/content-quotes-01_t01: Pass, RuntimeError # Fails on 7.1. Please triage this failure
+LayoutTests/fast/css/content/content-quotes-05_t01: Pass, RuntimeError # Fails on 7.1. Please triage this failure
+LayoutTests/fast/css/counters/counter-cssText_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/css-escaped-identifier_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/css3-nth-tokens-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/cssText-shorthand_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/csstext-of-content-string_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/deprecated-flexbox-auto-min-size_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/css/draggable-region-parser_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/dynamic-class-backdrop-pseudo_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/first-child-display-change-inverse_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/focus-display-block-inline_t01: Pass, RuntimeError # Fails 5 out of 10.
+LayoutTests/fast/css/focus-display-block-inline_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/font-face-cache-bug_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/font-face-unicode-range-load_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/font-face-unicode-range-monospace_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/font-face-unicode-range-overlap-load_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/font-property-priority_t01: RuntimeError # Fails 10 out of 10.
+LayoutTests/fast/css/font-shorthand-from-longhands_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/fontface-properties_t01: RuntimeError # Uses FontFace class, not defined for this browser.
+LayoutTests/fast/css/fontfaceset-download-error_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/fontfaceset-events_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/fontfaceset-loadingdone_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/getComputedStyle/computed-style-border-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/getComputedStyle/computed-style-cross-fade_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/getComputedStyle/computed-style-font_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/getComputedStyle/computed-style-with-zoom_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/getComputedStyle/counterIncrement-without-counter_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/getPropertyValue-clip_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/getPropertyValue-columns_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/html-attr-case-sensitivity_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/id-or-class-before-stylesheet_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/important-js-override_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/inherit-initial-shorthand-values_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/inherited-properties-rare-text_t01: RuntimeError # Fails 10 out of 10.
+LayoutTests/fast/css/invalid-not-with-simple-selector-sequence_t01: RuntimeError # Fails 10 out of 10.
+LayoutTests/fast/css/invalid-predefined-color_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/invalidation/detach-reattach-shadow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/invalidation/shadow-host-toggle_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/invalidation/targeted-class-host-pseudo_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/invalidation/targeted-class-shadow-combinator_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/invalidation/toggle-style-inside-shadow-root_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/link-alternate-stylesheet-1_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/link-alternate-stylesheet-2_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/link-alternate-stylesheet-3_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/link-alternate-stylesheet-4_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/link-alternate-stylesheet-5_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/media-query-recovery_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/media-rule-no-whitespace_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/parse-color-int-or-percent-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/parsing-at-rule-recovery_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/parsing-css-nonascii_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/parsing-css-nth-child_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/parsing-font-variant-ligatures_t01: RuntimeError # Fails 10 out of 10.
+LayoutTests/fast/css/parsing-object-position_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/parsing-page-rule_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/parsing-selector-error-recovery_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/parsing-unexpected-eof_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/pseudo-any_t01: Pass, RuntimeError # Fails 4 out of 10.
+LayoutTests/fast/css/pseudo-any_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/pseudo-target-indirect-sibling-001_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/css/pseudo-target-indirect-sibling-002_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/css/readonly-pseudoclass-opera-001_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/readonly-pseudoclass-opera-002_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/readonly-pseudoclass-opera-003_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/readonly-pseudoclass-opera-004_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/readonly-pseudoclass-opera-005_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/selector-text-escape_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/css/shorthand-setProperty-important_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/sticky/parsing-position-sticky_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/string-quote-binary_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/style-scoped/style-scoped-in-shadow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/style-scoped/style-scoped-nested_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/style-scoped/style-scoped-scoping-nodes-different-order_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/style-scoped/style-scoped-shadow-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/style-scoped/style-scoped-with-dom-operation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/style-scoped/style-scoped-with-important-rule_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/stylesheet-enable-first-alternate-on-load-sheet_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/stylesheet-enable-second-alternate-link_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/transform-origin-parsing_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/unicode-bidi-computed-value_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/webkit-keyframes-errors_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last-inherited_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-color_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-line_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-underline-position_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css3-text/css3-text-indent/getComputedStyle/getComputedStyle-text-indent-inherited_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css3-text/css3-text-indent/getComputedStyle/getComputedStyle-text-indent_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css3-text/css3-text-justify/getComputedStyle/getComputedStyle-text-justify_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/52776_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Attr/direction-attribute-set-and-cleared_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/DOMException/XPathException_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/DOMException/dispatch-event-exception_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/DOMImplementation/createDocument-namespace-err_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Document/CaretRangeFromPoint/basic_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-strict-mode-wtih-checkbox_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-user-select-none_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-zoom-and-scroll_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-with-first-letter-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Document/createElementNS-namespace-err_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Element/getClientRects_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Element/offsetTop-table-cell_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Element/setAttributeNS-namespace-err_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLAnchorElement/remove-href-from-focused-anchor_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-host_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-hostname_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-pathname_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/dialog-autofocus_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/dialog-close-event_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/dialog-enabled_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/dialog-open_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/dialog-return-value_t01: RuntimeError # Dartium JSInterop failure
+LayoutTests/fast/dom/HTMLDialogElement/dialog-scrolled-viewport_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/dialog-show-modal_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/inert-does-not-match-disabled-selector_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/inert-node-is-unfocusable_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/inert-node-is-unselectable_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/multiple-centered-dialogs_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/non-anchored-dialog-positioning_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/show-modal-focusing-steps_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/submit-dialog-close-event_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/synthetic-click-inert_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/top-layer-position-relative_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/top-layer-position-static_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDocument/active-element-gets-unforcusable_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/dom/HTMLDocument/set-focus-on-valid-element_t01: Skip
+LayoutTests/fast/dom/HTMLElement/insertAdjacentHTML-errors_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLElement/set-inner-outer-optimization_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLElement/spellcheck_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLFormElement/move-option-between-documents_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLImageElement/image-alt-text_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLImageElement/parse-src_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLInputElement/input-image-alt-text_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLLinkElement/link-and-subresource-test-nonexistent_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/dom/HTMLLinkElement/link-and-subresource-test_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/dom/HTMLLinkElement/prefetch-onerror_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/dom/HTMLLinkElement/prefetch-onload_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/dom/HTMLLinkElement/prefetch_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/dom/HTMLLinkElement/resolve-url-on-insertion_t01: RuntimeError # Fails 10 out of 10.
+LayoutTests/fast/dom/HTMLOptionElement/collection-setter-getter_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLOutputElement/dom-settable-token-list_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLOutputElement/htmloutputelement_t01: Pass, RuntimeError # Issue 29632
+LayoutTests/fast/dom/HTMLScriptElement/async-false-inside-async-false-load_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLScriptElement/async-inline-script_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLScriptElement/async-onbeforeload_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLScriptElement/defer-inline-script_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLScriptElement/defer-onbeforeload_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLScriptElement/script-set-src_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLSelectElement/selected-index-preserved-when-option-text-changes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLTemplateElement/custom-element-wrapper-gc_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLTemplateElement/cycles-in-shadow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLTemplateElement/innerHTML_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLTemplateElement/ownerDocumentXHTML_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/MutationObserver/observe-childList_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/MutationObserver/observe-options-attributes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/MutationObserver/observe-options-character-data_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/MutationObserver/weak-callback-gc-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Node/initial-values_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/NodeIterator/NodeIterator-basic_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/bug-19527_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/insertNode-empty-fragment-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/mutation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/range-comparePoint_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/range-constructor_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/range-created-during-remove-children_t01: RuntimeError
+LayoutTests/fast/dom/Range/range-detached-exceptions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/range-exceptions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/range-expand_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/range-insertNode-separate-endContainer_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/range-insertNode-splittext_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/range-isPointInRange_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/range-on-detached-node_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/remove-twice-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/surroundContents-for-detached-node_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/SelectorAPI/dumpNodeList-2_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/SelectorAPI/dumpNodeList_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/StyleSheet/css-insert-import-rule-to-shadow-stylesheets_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/StyleSheet/css-medialist-item_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/StyleSheet/detached-shadow-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/StyleSheet/empty-shadow-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/TreeWalker/TreeWalker-basic_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Window/atob-btoa_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Window/getMatchedCSSRules-parent-stylesheets_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Window/window-resize-contents_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Window/window-resize_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Window/window-scroll-arguments_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/XMLSerializer-attribute-entities_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/XMLSerializer-double-xmlns_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/anchor-without-content_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/attribute-namespaces-get-set_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/background-shorthand-csstext_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/characterdata-api-arguments_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/client-width-height-quirks_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/css-selectorText_t01: RuntimeError # Fails 10 out of 10.
+LayoutTests/fast/dom/custom/attribute-changed-callback_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/constructor-calls-created-synchronously_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/created-callback_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/document-register-basic_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/document-register-namespace_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/document-register-on-create-callback_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/document-register-svg-extends_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/document-register-type-extensions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/element-names_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/element-type_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/element-upgrade_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/lifecycle-created-createElement-recursion_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/type-extensions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/unresolved-pseudoclass_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/upgrade-candidate-remove-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/dataset-xhtml_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/dataset_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/document-set-title-mutations_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/document-set-title-no-reuse_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/domparser-parsefromstring-mimetype-support_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/fragment-activation-focuses-target_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/getElementsByClassName/dumpNodeList_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/horizontal-scrollbar-in-rtl-doesnt-fire-onscroll_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/horizontal-scrollbar-in-rtl_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/horizontal-scrollbar-when-dir-change_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/html-collections-named-getter-mandatory-arg_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/icon-size-property_t01: Pass, RuntimeError # Issue 29632
+LayoutTests/fast/dom/implementation-api-args_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/importNode-unsupported-node-type_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/location-hash_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/dom/mutation-event-remove-inserted-node_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/navigatorcontentutils/is-protocol-handler-registered_t01: Skip # API not supported.
+LayoutTests/fast/dom/navigatorcontentutils/register-protocol-handler_t01: Skip # API not supported.
+LayoutTests/fast/dom/navigatorcontentutils/unregister-protocol-handler_t01: Skip # API not supported.
+LayoutTests/fast/dom/object-plugin-hides-properties_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/dom/option-properties_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/partial-layout-non-overlay-scrollbars_t01: Pass, RuntimeError # Issue 53
+LayoutTests/fast/dom/partial-layout-overlay-scrollbars_t01: Pass, RuntimeError # Fails 8 out of 10.
+LayoutTests/fast/dom/set-innerHTML_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/access-document-of-detached-stylesheetlist-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/base-in-shadow-tree_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-element-api_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-element-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-element-includer_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-element-outside-shadow-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-pseudo-element-css-text_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-pseudo-element-dynamic-attribute-change_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-pseudo-element-overridden_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-pseudo-element-relative-selector-css-text_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-pseudo-element-with-host-pseudo-class_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-reprojection-fallback-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/custom-pseudo-in-selector-api_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/distribution-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/distribution-for-event-path_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/distribution-update-recalcs-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/elementfrompoint_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/elements-in-frameless-document_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/event-path-not-in-document_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/event-path_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/form-in-shadow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/get-distributed-nodes-orphan_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/get-element-by-id-in-shadow-mutation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/getComputedStyle-composed-parent-dirty_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/getelementbyid-in-orphan_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/getelementbyid-shadow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/host-context-pseudo-class-css-text_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/host-pseudo-class-css-text_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/host-wrapper-reclaimed_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/insertion-point-list-menu-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/insertion-point-shadow-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/insertion-point-video-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/link-in-shadow-tree_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/nested-reprojection-inconsistent_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/no-renderers-for-light-children_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/offsetWidth-host-style-change_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/olderShadowRoot_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/pseudoclass-update-checked-option_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/pseudoclass-update-disabled-optgroup_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/pseudoclass-update-disabled-option_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/pseudoclass-update-enabled-optgroup_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/pseudoclass-update-enabled-option_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/reinsert-insertion-point_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/remove-and-insert-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/remove-styles-in-shadow-crash-2_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/remove-styles-in-shadow-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-aware-shadow-root_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-content-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-disable_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-element-inactive_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-element_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-hierarchy-exception_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-removechild-and-blur-event_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-root-append_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-root-js-api_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-root-node-list_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-root-text-child_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-ul-li_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadowdom-dynamic-styling_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadowdom-for-input-spellcheck_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadowdom-for-input-type-change_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadowdom-for-unknown-with-form_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadowhost-keyframes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadowroot-clonenode_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadowroot-host_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadowroot-keyframes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/sibling-rules-dynamic-changes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/stale-distribution-after-shadow-removal_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/style-insertion-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/style-of-distributed-node_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/style-sharing-sibling-shadow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/style-sharing-styles-in-older-shadow-roots_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/suppress-mutation-events-in-shadow-characterdata_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/title-element-in-shadow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dynamic/crash-generated-counter_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dynamic/crash-generated-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dynamic/crash-generated-quote_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dynamic/crash-generated-text_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dynamic/insertAdjacentElement_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dynamic/insertAdjacentHTML_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dynamic/recursive-layout_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/add-event-without-document_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/clipboard-clearData_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/events/clipboard-dataTransferItemList_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/events/dispatch-event-being-dispatched_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/document-elementFromPoint_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/event-creation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/event-fire-order_t01: Pass, RuntimeError # Issue 29632
+LayoutTests/fast/events/event-listener-html-non-html-confusion_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/event-on-created-document_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/event-on-xhr-document_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/event-trace_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/initkeyboardevent-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/invalid-003_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/invalid-004_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/mutation-during-replace-child-2_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/mutation-during-replace-child_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/overflowchanged-event-raf-timing_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/events/scoped/editing-commands_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/scroll-event-does-not-bubble_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/tabindex-removal-from-focused-element_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/exclusions/parsing/parsing-wrap-flow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/exclusions/parsing/parsing-wrap-through_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/blob-close-read_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/blob-close-revoke_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/blob-close_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/blob-constructor_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/blob-parts-slice-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/blob-slice-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/file-reader-abort-in-last-progress_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/file-reader-done-reading-abort_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/files/file-reader-methods-illegal-arguments_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/file-reader-readystate_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/url-null_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/xhr-response-blob_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/async-operations_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/directory-entry-to-uri_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-entry-to-uri_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-from-file-entry_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-metadata-after-write_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-writer-abort-continue_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-writer-abort-depth_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-writer-abort_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-writer-empty-blob_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-writer-events_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-writer-gc-blob_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-writer-truncate-extend_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-writer-write-overlapped_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/filesystem-reference_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/filesystem-unserializable_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/filesystem-uri-origin_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/input-access-entries_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-copy_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-get-entry_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-get-metadata_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-get-parent_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-move_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-read-directory_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-remove_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-restricted-chars_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-restricted-names_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-restricted-unicode_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/read-directory-many_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/read-directory_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/simple-readonly-file-object_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/simple-readonly_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/simple-required-arguments-getdirectory_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/simple-required-arguments-getfile_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/simple-temporary_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/snapshot-file-with-gc_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/flexbox/repaint-scrollbar_t01: Pass, RuntimeError # Fails 2 out of 10.
+LayoutTests/fast/flexbox/repaint-scrollbar_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/ValidityState-customError_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/ValidityState-typeMismatch-email_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/autocomplete_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/autofocus-input-css-style-change_t01: Pass, RuntimeError # Fails 7 out of 10.
+LayoutTests/fast/forms/autofocus-input-css-style-change_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/button-baseline-and-collapsing_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/button/button-disabled-blur_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/clone-input-with-dirty-value_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/color/color-setrangetext_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/color/input-value-sanitization-color_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/datalist/datalist-child-validation_t01: RuntimeError # Fails 10 out of 10.
+LayoutTests/fast/forms/datalist/datalist_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/datalist/input-list_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/date-multiple-fields/date-multiple-fields-change-layout-by-value_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/date-multiple-fields/date-multiple-fields-onblur-setvalue-onfocusremoved_t01: Pass, RuntimeError # Fails 6 out of 10.
+LayoutTests/fast/forms/date-multiple-fields/date-multiple-fields-onblur-setvalue-onfocusremoved_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/date/ValidityState-rangeOverflow-date_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/date/ValidityState-rangeUnderflow-date_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/date/ValidityState-stepMismatch-date_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/date/ValidityState-typeMismatch-date_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/date/date-input-type_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/date/date-pseudo-classes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/date/date-setrangetext_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/date/input-date-validation-message_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/date/input-valueasdate-date_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/date/input-valueasnumber-date_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-change-layout-by-value_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/datetimelocal/ValidityState-rangeOverflow-datetimelocal_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/datetimelocal/ValidityState-rangeUnderflow-datetimelocal_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/datetimelocal/ValidityState-stepMismatch-datetimelocal_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/datetimelocal/ValidityState-typeMismatch-datetimelocal_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/datetimelocal/datetimelocal-input-type_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/datetimelocal/datetimelocal-pseudo-classes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/datetimelocal/datetimelocal-setrangetext_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/datetimelocal/input-valueasdate-datetimelocal_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/datetimelocal/input-valueasnumber-datetimelocal_t01: RuntimeError # Dartium JSInterop failure
+LayoutTests/fast/forms/file/file-input-capture_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/form-attribute_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/input-appearance-elementFromPoint_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/input-inputmode_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/input-type-change3_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/input-value-sanitization_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/input-width-height-attributes-without-renderer-loaded-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/interactive-validation-assertion-by-validate-twice_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/forms/interactive-validation-attach-assertion_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/forms/interactive-validation-select-crash_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/forms/menulist-disabled-selected-option_t01: Pass, RuntimeError # Fails on 7.1. Please triage this failure
+LayoutTests/fast/forms/menulist-selection-reset_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/menulist-submit-without-selection_t01: Pass, RuntimeError # Fails on 7.1. Please triage this failure
+LayoutTests/fast/forms/multiple-selected-options-innerHTML_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/option-change-single-selected_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/option-strip-unicode-spaces_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/parser-associated-form-removal_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/plaintext-mode-1_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/search-popup-crasher_t01: Pass, RuntimeError # Fails on 7.1. Please triage this failure
+LayoutTests/fast/forms/select-max-length_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/forms/select-set-length-with-mutation-remove_t01: RuntimeError
+LayoutTests/fast/forms/select-set-length-with-mutation-reparent_t01: RuntimeError
+LayoutTests/fast/forms/selection-wrongtype_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/setrangetext_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/textarea-maxlength_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/textarea-paste-newline_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/textarea-selection-preservation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/html/hidden-attr_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/html/imports/import-element-removed-flag_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/html/imports/import-events_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/html/select-dropdown-consistent-background-color_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/inline/boundingBox-with-continuation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/inline/continuation-inlines-inserted-in-reverse-after-block_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/inline/inline-position-top-align_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/inline/inline-with-empty-inline-children_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/inline/out-of-flow-objects-and-whitespace-after-empty-inline_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/inline/parent-inline-element-padding-contributes-width_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/inline/positioned-element-padding-contributes-width_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/innerHTML/innerHTML-svg-write_t01: RuntimeError # Issue 25941
+LayoutTests/fast/innerHTML/innerHTML-uri-resolution_t01: Pass, RuntimeError # Issue 29634
+LayoutTests/fast/innerHTML/javascript-url_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/loader/about-blank-hash-change_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/loader/about-blank-hash-kept_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/loader/hashchange-event-properties_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/loader/onhashchange-attribute-listeners_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/loader/scroll-position-restored-on-back_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/loader/scroll-position-restored-on-reload-at-load-event_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/loader/stateobjects/replacestate-in-onunload_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/masking/parsing-clip-path-shape_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/masking/parsing-mask_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/media/matchmedium-query-api_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/media/media-query-list-syntax_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/media/media-query-list_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/media/mq-append-delete_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/media/mq-js-media-except_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/media/mq-js-media-except_t03: RuntimeError # Please triage this failure
+LayoutTests/fast/media/mq-parsing_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/mediastream/RTCIceCandidate_t01: Skip # Please triage this failure
+LayoutTests/fast/mediastream/RTCPeerConnection_t01: Skip # Issue 23475
+LayoutTests/fast/mediastream/constructors_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/balance-short-trailing-empty-block_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/balance-trailing-border_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/balance-trailing-border_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/balance-unbreakable_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/break-after-always-bottom-margin_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/break-properties_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/columns-shorthand-parsing_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/cssom-view_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/float-truncation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/hit-test-above-or-below_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/hit-test-end-of-column-with-line-height_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/hit-test-end-of-column_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/hit-test-float_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/newmulticol/balance-images_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/orphans-relayout_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/vertical-lr/float-truncation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/vertical-rl/float-truncation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/overflow/child-100percent-height-inside-fixed-container-with-overflow-auto_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/overflow/replaced-child-100percent-height-inside-fixed-container-with-overflow-auto_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/overflow/scrollbar-restored_t01: RuntimeError # Fails 10 out of 10.
+LayoutTests/fast/parser/foster-parent-adopted_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/parser/fragment-parser-doctype_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/parser/innerhtml-with-prefixed-elements_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/replaced/available-height-for-content_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/replaced/container-width-zero_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/replaced/iframe-with-percentage-height-within-table-with-anonymous-table-cell_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/replaced/iframe-with-percentage-height-within-table-with-table-cell-ignore-height_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/replaced/preferred-widths_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/replaced/table-percent-height-text-controls_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/replaced/table-percent-height_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/replaced/table-percent-width_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/ruby/ruby-line-height_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/scrolling/scroll-element-into-view_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/parsing/parsing-shape-lengths_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/parsing/parsing-shape-margin_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/parsing/parsing-shape-outside_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-big-box-border-radius_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-diamond-margin-polygon_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-ellipse-margin-left_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-ellipse-margin-right_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-image-margin_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-image-margin_t02: Pass, RuntimeError # Fails on 6.2. Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-left_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-right_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-rounded-boxes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-rounded-boxes_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/speechsynthesis/speech-synthesis-boundary-events_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/speechsynthesis/speech-synthesis-cancel_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/speechsynthesis/speech-synthesis-pause-resume_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/speechsynthesis/speech-synthesis-speak_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/speechsynthesis/speech-synthesis-utterance-uses-voice_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/speechsynthesis/speech-synthesis-voices_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/storage/disallowed-storage_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/storage/storage-disallowed-in-data-url_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/sub-pixel/cssom-subpixel-precision_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/sub-pixel/shadows-computed-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/svg/tabindex-focus_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/svg/whitespace-angle_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/svg/whitespace-integer_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/svg/whitespace-length_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/svg/whitespace-number_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/absolute-table-percent-lengths_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/anonymous-table-section-removed_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/caption-orthogonal-writing-mode-sizing_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/col-width-span-expand_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/css-table-max-height_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/css-table-max-width_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/fixed-table-layout-width-change_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/hittest-tablecell-bottom-edge_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/hittest-tablecell-right-edge_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/hittest-tablecell-with-borders-bottom-edge_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/hittest-tablecell-with-borders-right-edge_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/html-table-width-max-width-constrained_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/large-shrink-wrapped-width_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/margins-perpendicular-containing-block_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/min-width-css-block-table_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/table/min-width-css-inline-table_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/table/min-width-html-block-table_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/table/min-width-html-inline-table_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/table/nested-tables-with-div-offset_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/padding-height-and-override-height_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/switch-table-layout-dynamic-cells_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/switch-table-layout-multiple-section_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/switch-table-layout_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-all-rowspans-height-distribution-in-rows-except-overlapped_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-all-rowspans-height-distribution-in-rows_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-cell-offset-width_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-colgroup-present-after-table-row_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-rowspan-cell-with-empty-cell_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-rowspan-height-distribution-in-rows_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-rowspan-height-distribution-in-rows_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-with-content-width-exceeding-max-width_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text-autosizing/vertical-writing-mode_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/find-case-folding_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/find-russian_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/find-soft-hyphen_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/find-spaces_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/font-ligature-letter-spacing_t01: Pass, RuntimeError # Fails on 6.2. Please triage this failure
+LayoutTests/fast/text/font-ligatures-linebreak-word_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/text/font-ligatures-linebreak_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/text/glyph-reordering_t01: Pass, RuntimeError # Fails on 7.1. Please triage this failure
+LayoutTests/fast/text/international/cjk-segmentation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/international/iso-8859-8_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/international/listbox-width-rtl_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/international/rtl-text-wrapping_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/international/thai-offsetForPosition-inside-character_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/line-break-after-question-mark_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/offsetForPosition-cluster-at-zero_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/remove-zero-length-run_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/sub-pixel/text-scaling-ltr_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/sub-pixel/text-scaling-pixel_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/sub-pixel/text-scaling-rtl_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/sub-pixel/text-scaling-vertical_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/sub-pixel/text-scaling-webfont_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/text-combine-shrink-to-fit_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/transforms/bounding-rect-zoom_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/transforms/hit-test-large-scale_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/anchor_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/file-http-base_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/file_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/host-lowercase-per-scheme_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/host_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/idna2003_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/idna2008_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/invalid-urls-utf8_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/ipv4_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/ipv6_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/path_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/port_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/query_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/relative-unix_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/relative-win_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/relative_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/safari-extension_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/segments-from-data-url_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/segments_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/standard-url_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/writing-mode/positionForPoint_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/writing-mode/table-hit-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/writing-mode/vertical-font-vmtx-units-per-em_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xmlhttprequest/xmlhttprequest-get_t01: RuntimeError # Roll 50 failure
+LayoutTests/fast/xmlhttprequest/xmlhttprequest-responseXML-xml-text-responsetype_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-arraybuffer_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-before-open-sync-request_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-sync-request_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/4XPath/Borrowed/cz_20030217_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/4XPath/Borrowed/namespace-nodes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/4XPath/Core/test_core_functions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/4XPath/Core/test_core_functions_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/4XPath/Core/test_node_test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/4XPath/Core/test_node_test_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/4XPath/Core/test_parser_t01: RuntimeError # Dartium JSInterop failure
+LayoutTests/fast/xpath/ambiguous-operators_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/attr-namespace_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/ensure-null-namespace_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/implicit-node-args_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/invalid-resolver_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/node-name-case-sensitivity_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/node-name-case-sensitivity_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/position_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/py-dom-xpath/abbreviations_t01: RuntimeError # Dartium JSInterop failure
+LayoutTests/fast/xpath/py-dom-xpath/axes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/py-dom-xpath/data_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/py-dom-xpath/expressions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/py-dom-xpath/paths_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/reverse-axes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xsl/default-html_t01: RuntimeError # Please triage this failure
+LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: RuntimeError # Please triage this failure
+LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t01: RuntimeError # Issue 22200
+LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t05: RuntimeError # Issue 22200
+LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t06: RuntimeError # Issue 22200
+LibTest/core/double/roundToDouble_A01_t01: RuntimeError # Please triage this failure
+LibTest/core/double/round_A01_t01: RuntimeError # Please triage this failure
+LibTest/core/int/compareTo_A01_t01: RuntimeError # Please triage this failure
+LibTest/core/int/operator_left_shift_A01_t01: RuntimeError # Please triage this failure
+LibTest/core/int/operator_remainder_A01_t03: RuntimeError # Please triage this failure
+LibTest/core/int/operator_truncating_division_A01_t02: RuntimeError # Please triage this failure
+LibTest/core/int/remainder_A01_t01: RuntimeError # Please triage this failure
+LibTest/core/int/remainder_A01_t03: RuntimeError # Please triage this failure
+LibTest/core/int/toRadixString_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/CanvasRenderingContext2D/addEventListener_A01_t03: RuntimeError # Please triage this failure
+LibTest/html/CanvasRenderingContext2D/addEventListener_A01_t06: RuntimeError # Please triage this failure
+LibTest/html/Document/childNodes_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Document/clone_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Document/clone_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Document/getElementsByTagName_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Document/securityPolicy_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/Element.tag_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/attributeChanged_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/borderEdge_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/contentEdge_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/dataset_A02_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/enteredView_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/getAttributeNS_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/getAttributeNS_A02_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/getBoundingClientRect_A01_t02: Pass, RuntimeError # Issue 53
+LibTest/html/Element/getClientRects_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Element/getNamespacedAttributes_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/isContentEditable_A01_t01: Pass, RuntimeError # Issue 28187
+LibTest/html/Element/isContentEditable_A02_t01: Pass, RuntimeError # Issue 28187
+LibTest/html/Element/isTagSupported_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/isTagSupported_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Element/leftView_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/marginEdge_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/mouseWheelEvent_A01_t01: Skip # Times out. Please triage this failure
+LibTest/html/Element/onMouseWheel_A01_t01: Skip # Times out. Please triage this failure
+LibTest/html/Element/onTransitionEnd_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/paddingEdge_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/querySelectorAll_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Element/replaceWith_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Element/tagName_A01_t03: RuntimeError # Please triage this failure
+LibTest/html/Element/transitionEndEvent_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/getAllResponseHeaders_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/getResponseHeader_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/getString_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/onError_A01_t02: Skip # Times out. Please triage this failure
+LibTest/html/HttpRequest/request_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/responseText_A01_t02: Skip # Times out. Please triage this failure
+LibTest/html/HttpRequest/responseType_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/setRequestHeader_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/statusText_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/status_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequestUpload/onError_A01_t02: Skip # Times out. Please triage this failure
+LibTest/html/HttpRequestUpload/onLoadEnd_A01_t01: Skip # Times out. Please triage this failure
+LibTest/html/HttpRequestUpload/onLoadStart_A01_t01: Skip # Times out. Please triage this failure
+LibTest/html/HttpRequestUpload/onLoad_A01_t01: Skip # Times out. Please triage this failure
+LibTest/html/IFrameElement/IFrameElement.created_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/attributeChanged_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/attributes_setter_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/blur_A01_t01: Skip # Times out. Please triage this failure
+LibTest/html/IFrameElement/borderEdge_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/clone_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/contentWindow_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/createFragment_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/createFragment_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/createFragment_A01_t03: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/createShadowRoot_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/getClientRects_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/getNamespacedAttributes_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/innerHtml_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/isContentEditable_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/isContentEditable_A01_t01: RuntimeError, Pass # Fails 19 out of 20.
+LibTest/html/IFrameElement/leftView_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/marginEdge_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/offsetTo_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/onMouseWheel_A01_t01: Skip # Times out. Please triage this failure
+LibTest/html/IFrameElement/onTransitionEnd_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/outerHtml_setter_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/paddingEdge_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/querySelector_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/setInnerHtml_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/tagName_A01_t03: RuntimeError # Please triage this failure
+LibTest/html/Node/append_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Node/nodes_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Node/nodes_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Node/parent_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Node/previousNode_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/animationFrame_A01_t01: Skip # Times out. Please triage this failure
+LibTest/html/Window/close_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/document_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/find_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/find_A03_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/find_A06_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/moveBy_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/moveTo_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/moveTo_A02_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/postMessage_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/postMessage_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Window/requestFileSystem_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/requestFileSystem_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Window/requestFileSystem_A02_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/resizeBy_A01_t01: Skip # Times out. Please triage this failure
+LibTest/html/Window/resizeTo_A01_t01: RuntimeError # Please triage this failure
+LibTest/typed_data/Float32x4List/Float32x4List.view_A06_t01: RuntimeError # Please triage this failure
+LibTest/typed_data/Int32x4/operator_OR_A01_t01: RuntimeError # Please triage this failure
+WebPlatformTest/DOMEvents/approved/EventObject.after.dispatchEvenr_t01: RuntimeError # Please triage this failure
+WebPlatformTest/DOMEvents/approved/EventObject.multiple.dispatchEvent_t01: RuntimeError # Please triage this failure
+WebPlatformTest/DOMEvents/approved/ProcessingInstruction.DOMCharacterDataModified_t01: Skip # Times out. Please triage this failure
+WebPlatformTest/DOMEvents/approved/addEventListener.optional.useCapture_t01: RuntimeError # Please triage this failure
+WebPlatformTest/Utils/test/asyncTestFail_t01: RuntimeError # Please triage this failure
+WebPlatformTest/Utils/test/asyncTestFail_t02: RuntimeError # Please triage this failure
+WebPlatformTest/Utils/test/asyncTestTimeout_t01: Skip # Times out. Please triage this failure
+WebPlatformTest/custom-elements/concepts/type_A01_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/concepts/type_A04_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/concepts/type_A05_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/concepts/type_A06_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/concepts/type_A07_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/concepts/type_A08_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElementNS_A01_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElementNS_A02_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElementNS_A03_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElementNS_A04_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElementNS_A05_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElement_A01_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElement_A02_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElement_A03_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElement_A04_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElement_A05_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/isAttribute_A01_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/isAttribute_A01_t02: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/isAttribute_A02_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/isAttribute_A03_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/localName_A01_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/namespace_A01_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/EventTarget/dispatchEvent_A01_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/EventTarget/dispatchEvent_A02_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/EventTarget/dispatchEvent_A03_t01: Skip # Times out. Please triage this failure
+WebPlatformTest/dom/events/type_A01_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/DOMImplementation-createDocument_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/DOMImplementation-hasFeature_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Document-adoptNode_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Document-getElementsByTagName_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Document-importNode_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Element-childElementCount_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Node-appendChild_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Node-appendChild_t02: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Node-insertBefore_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Node-isEqualNode_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Node-replaceChild_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/attributes_A04_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/attributes_A05_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttributeNS_A05_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttributeNS_A06_t03: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttributeNS_A07_t02: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttributeNS_A07_t03: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttributeNS_A08_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttributeNS_A09_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttributeNS_A09_t02: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttribute_A02_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttribute_A02_t02: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttribute_A03_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/ranges/Range-attributes_t02: RuntimeError # Please triage this failure
+WebPlatformTest/dom/ranges/Range-comparePoint_t02: RuntimeError # Please triage this failure
+WebPlatformTest/dom/ranges/Range-comparePoint_t03: RuntimeError # Please triage this failure
+WebPlatformTest/dom/ranges/Range-detach_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-imports/link-import_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-imports/link-import_t02: RuntimeError # Please triage this failure
+WebPlatformTest/html-imports/loading-import_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/definitions/template-contents-owner-test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/innerhtml-on-templates/innerhtml_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-head-insertion-mode/generating-of-implied-end-tags_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/creating-an-element-for-the-token/template-owner-document_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/template-element/node-document-changes_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/browsers/browsing-the-web/read-media/pageload-image_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/browsers/browsing-the-web/read-media/pageload-video_t01: Skip # Times out. Please triage this failure
+WebPlatformTest/html/browsers/browsing-the-web/read-text/load-text-plain_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/documents/dom-tree-accessors/document.body-getter_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/documents/dom-tree-accessors/document.body-setter_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/documents/dom-tree-accessors/document.getElementsByName-namespace_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/documents/dom-tree-accessors/document.title_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/documents/dom-tree-accessors/document.title_t05: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/documents/dom-tree-accessors/document.title_t07: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/documents/dom-tree-accessors/nameditem_t02: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/elements/global-attributes/dataset-delete_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/elements/global-attributes/dataset-get_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/elements/global-attributes/dataset-set_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/document-metadata/styling/LinkStyle_t01: Pass, RuntimeError # Fails on 7.1. Please triage this failure
+WebPlatformTest/html/semantics/embedded-content/media-elements/error-codes/error_t01: Skip # Times out. Please triage this failure
+WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLTrackElement/src_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/TextTrack/cues_t01: Skip # Times out. Please triage this failure
+WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/TextTrack/mode_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/attributes-common-to-form-controls/formAction_document_address_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/attributes-common-to-form-controls/formaction_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/textfieldselection/selection_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/textfieldselection/textfieldselection-setRangeText_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-button-element/button-validation_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-datalist-element/datalistelement_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-datalist-element/datalistoptions_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-form-element/form-autocomplete_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-form-element/form-elements-matches_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-form-element/form-elements-nameditem_t02: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/color_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/date_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/datetime-local_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/datetime_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/datetime_t02: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/email_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/hidden_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/input-textselection_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/month_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/password_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/range_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/text_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/time_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/time_t02: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/type-change-state_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/url_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/valueMode_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/week_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-meter-element/meter_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-option-element/option-text-recurse_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-option-element/option-text-spaces_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/grouping-content/the-blockquote-element/grouping-blockquote_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/grouping-content/the-ol-element/ol.start-reflection_t02: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/interactive-elements/the-details-element/toggleEvent_t01: Skip # Times out. Please triage this failure
+WebPlatformTest/html/semantics/interactive-elements/the-dialog-element/dialog-close_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/interactive-elements/the-dialog-element/dialog-showModal_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/scripting-1/the-script-element/async_t11: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/scripting-1/the-script-element/script-text_t02: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/checked_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/default_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/dir_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/disabled_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/enabled_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/focus_t01: Pass, RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/indeterminate_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/inrange-outofrange_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/tabular-data/the-table-element/table-insertRow_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/tabular-data/the-table-element/table-rows_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/tabular-data/the-tr-element/rowIndex_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/syntax/parsing/Document.getElementsByTagName-foreign_t02: RuntimeError # Please triage this failure
+WebPlatformTest/html/syntax/serializing-html-fragments/outerHTML_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t02: RuntimeError # Please triage this failure
+WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t03: RuntimeError # Please triage this failure
+WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t04: RuntimeError # Please triage this failure
+WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t05: RuntimeError # Please triage this failure
+WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t06: RuntimeError # Please triage this failure
+WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol_t00: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-004_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-004_t02: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-005_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/elements-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-event-interface/event-path-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-007_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-008_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-009_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-010_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-011_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-012_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-013_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-005_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-007_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-010_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-004_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-004_t02: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-005_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-006_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-003_t02: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-004_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-005_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/event-dispatch/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/event-dispatch/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/event-dispatch/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/event-retargeting/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/event-retargeting/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/event-retargeting/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/event-retargeting/test-004_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-004_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-005_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-006_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-007_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-008_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-009_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t02: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t03: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t04: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t05: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t06: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-004_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/html-forms/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/html-forms/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/inert-html-elements/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/composition/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/custom-pseudo-elements/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/distributed-pseudo-element/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/distributed-pseudo-element/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/distribution-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-004_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-005_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/nested-shadow-trees/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/rendering-shadow-trees/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/reprojection/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-004_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-005_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-006_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-017_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/dom-tree-accessors-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/selectors-api-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/selectors-api-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/shadow-root-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-005_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-007_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-009_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-011_t01: RuntimeError # Please triage this failure
+WebPlatformTest/webstorage/event_constructor_t01: RuntimeError # Please triage this failure
+WebPlatformTest/webstorage/event_constructor_t02: RuntimeError # Please triage this failure
+WebPlatformTest/webstorage/event_local_key_t01: RuntimeError # Please triage this failure
+WebPlatformTest/webstorage/event_session_key_t01: RuntimeError # Please triage this failure
+WebPlatformTest/webstorage/event_session_storagearea_t01: Pass, RuntimeError # Fails on 7.1. Please triage this failure
+WebPlatformTest/webstorage/event_session_url_t01: Skip # Times out. Please triage this failure
+
+[ $compiler == dart2js && $runtime == safarimobilesim ]
+LayoutTests/fast/alignment/parse-align-items_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/alignment/parse-align-self_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/alignment/parse-justify-self_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/backgrounds/background-repeat-computed-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/backgrounds/repeat/parsing-background-repeat_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/borders/border-image-width-numbers-computed-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/2d.composite.globalAlpha.fillPath_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/2d.fillText.gradient_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/2d.text.draw.fill.maxWidth.gradient_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/2d.text.draw.fill.maxWidth.negative_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/2d.text.draw.fill.maxWidth.veryLarge_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/2d.text.draw.fill.maxWidth.verySmall_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/alpha_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-alphaImageData-behavior_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-arc-negative-radius_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-arc-zero-lineto_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-before-css_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-bezier-same-endpoint_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blend-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blend-solid_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-clipping_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-color-over-color_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-color-over-gradient_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-color-over-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-color-over-pattern_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-fill-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-global-alpha_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-gradient-over-color_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-gradient-over-gradient_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-gradient-over-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-gradient-over-pattern_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-image-over-color_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-image-over-gradient_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-image-over-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-image-over-pattern_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-pattern-over-color_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-pattern-over-gradient_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-pattern-over-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-pattern-over-pattern_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-shadow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-text_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-blending-transforms_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-composite-canvas_t01: Skip # Times out on Windows 8. Please triage this failure
+LayoutTests/fast/canvas/canvas-composite-stroke-alpha_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-composite-text-alpha_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-currentTransform_t01: RuntimeError # Feature is not implemented
+LayoutTests/fast/canvas/canvas-drawImage-scaled-copy-to-self_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-ellipse-360-winding_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-ellipse-negative-radius_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-ellipse-zero-lineto_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-ellipse_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-empty-image-pattern_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-fillStyle-no-quirks-parsing_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-font-consistency_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-getImageData-invalid_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-getImageData-large-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-getImageData-largeNonintegralDimensions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-imageSmoothingEnabled-repaint_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-imageSmoothingEnabled_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-invalid-fillstyle_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-invalid-strokestyle_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-large-dimensions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-large-fills_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-lineDash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-lose-restore-googol-size_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-lose-restore-max-int-size_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-putImageData_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-quadratic-same-endpoint_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-resetTransform_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-scale-shadowBlur_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-scale-strokePath-shadow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-setTransform_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/draw-custom-focus-ring_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/drawImage-with-broken-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/drawImage-with-negative-source-destination_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/drawImage-with-valid-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/drawImageFromRect_withToDataURLAsSource_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/fillText-shadow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/getPutImageDataPairTest_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/pointInPath_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/WebGLContextEvent_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/array-bounds-clamping_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/attrib-location-length-limits_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/bad-arguments-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/buffer-bind-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/buffer-data-array-buffer_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/canvas-2d-webgl-texture_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/canvas-resize-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/canvas-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/canvas-zero-size_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/compressed-tex-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/context-attributes-alpha-depth-stencil-antialias-t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/context-destroyed-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/context-lost-restored_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/context-lost_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/copy-tex-image-and-sub-image-2d_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/css-webkit-canvas-repaint_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/css-webkit-canvas_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/draw-arrays-out-of-bounds_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/draw-elements-out-of-bounds_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/draw-webgl-to-canvas-2d_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/drawingbuffer-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/error-reporting_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/framebuffer-bindings-unaffected-on-resize_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/framebuffer-object-attachment_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/framebuffer-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/functions-returning-strings_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/get-active-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-bind-attrib-location-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-enable-enum-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-enum-tests_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-get-calls_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-getshadersource_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-getstring_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-object-get-calls_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-pixelstorei_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-teximage_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-uniformmatrix4fv_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-vertex-attrib-zero-issues_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-vertex-attrib_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-vertexattribpointer_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/glsl-conformance_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/incorrect-context-object-behaviour_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/index-validation-copies-indices_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/index-validation-crash-with-buffer-sub-data_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/index-validation-verifies-too-many-indices_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/index-validation-with-resized-buffer_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/index-validation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/invalid-UTF-16_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/invalid-passed-params_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/is-object_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/null-object-behaviour_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/null-uniform-location_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/object-deletion-behaviour_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/oes-element-index-uint_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/oes-vertex-array-object_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/point-size_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/premultiplyalpha-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/program-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/read-pixels-pack-alignment_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/read-pixels-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/renderbuffer-initialization_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/renderer-and-vendor-strings_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/shader-precision-format_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-array-buffer-view_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas-rgb565_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas-rgba4444_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas-rgba5551_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgb565_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgba4444_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgba5551_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-rgb565_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-rgba4444_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-rgba5551_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgb565_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba4444_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba5551_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-uniform-binding-bugs_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-webgl_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-input-validation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-sub-image-2d-bad-args_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-sub-image-2d_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-sub-image-cube-maps_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/texImage2DImageDataTest_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/texImageTest_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/texture-active-bind_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/texture-bindings-uneffected-on-resize_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/texture-color-profile_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/texture-complete_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/texture-npot_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/texture-transparent-pixels-initialized_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/triangle_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/uniform-location-length-limits_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/uniform-location_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/uninitialized-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/viewport-unchanged-upon-resize_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-composite-modes-repaint_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-composite-modes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-depth-texture_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-exceptions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-large-texture_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-layer-update_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-specific_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-texture-binding-preserved_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-unprefixed-context-id_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-viewport-parameters-preserved_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-generated-content/malformed-url_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-generated-content/pseudo-element-events_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/css-generated-content/pseudo-transition-event_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/css-generated-content/pseudo-transition_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/auto-content-resolution-rows_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/breadth-size-resolution-grid_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/calc-resolution-grid-item_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/display-grid-set-get_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/flex-and-minmax-content-resolution-rows_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/flex-content-resolution-columns_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/flex-content-resolution-rows_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-auto-columns-rows-get-set_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-auto-flow-get-set_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-auto-flow-update_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-container-change-explicit-grid-recompute-child_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-element-border-grid-item_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-element-border-padding-grid-item_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-element-empty-row-column_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-element-min-max-height_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-element-padding-grid-item_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-element-padding-margin_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-element-shrink-to-fit_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-area-get-set_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-bad-named-area-auto-placement_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-bad-resolution-double-span_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-change-order-auto-flow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-display_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-horiz-bt_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-vert-lr_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-vert-rl_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-margin-resolution_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-order-auto-flow-resolution_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-template-areas-get-set_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/implicit-rows-auto-resolution_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/justify-self-cell_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/minmax-fixed-logical-height-only_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/minmax-fixed-logical-width-only_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/percent-grid-item-in-percent-grid-track-in-percent-grid_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/percent-grid-item-in-percent-grid-track-update_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/percent-grid-item-in-percent-grid-track_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/percent-padding-margin-resolution-grid-item-update_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/percent-padding-margin-resolution-grid-item_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/percent-resolution-grid-item_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/place-cell-by-index_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-intrinsic-dimensions/height-property-value_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-intrinsic-dimensions/multicol_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/add-remove-stylesheets-at-once-minimal-recalc-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/background-position-serialize_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/background-serialize_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/border-image-style-length_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/button-height_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/checked-pseudo-selector_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/collapsed-whitespace-reattach-in-style-recalc_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/computed-offset-with-zoom_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/content/content-none_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/content/content-normal_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/content/content-quotes-05_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/css-escaped-identifier_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/css-properties-case-insensitive_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/css3-nth-tokens-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/csstext-of-content-string_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/cursor-parsing-quirks_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/deprecated-flexbox-auto-min-size_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/display-inline-block-scrollbar_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/draggable-region-parser_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/dynamic-class-backdrop-pseudo_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/first-child-display-change-inverse_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/focus-display-block-inline_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/font-face-cache-bug_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/font-face-unicode-range-load_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/font-face-unicode-range-overlap-load_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/font-shorthand-from-longhands_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/fontface-properties_t01: RuntimeError # Uses FontFace class not defined for this browser
+LayoutTests/fast/css/fontfaceset-download-error_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/fontfaceset-events_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/fontfaceset-loadingdone_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/getComputedStyle/computed-style-font_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/getComputedStyle/computed-style-with-zoom_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/getComputedStyle/getComputedStyle-border-radius-shorthand_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/getComputedStyle/getComputedStyle-borderRadius-2_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/html-attr-case-sensitivity_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/id-or-class-before-stylesheet_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/inherit-initial-shorthand-values_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/invalid-predefined-color_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/invalidation/detach-reattach-shadow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/invalidation/shadow-host-toggle_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/invalidation/targeted-class-any-pseudo_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/invalidation/targeted-class-host-pseudo_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/invalidation/targeted-class-shadow-combinator_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/invalidation/toggle-style-inside-shadow-root_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/link-alternate-stylesheet-1_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/link-alternate-stylesheet-2_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/link-alternate-stylesheet-3_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/link-alternate-stylesheet-4_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/link-alternate-stylesheet-5_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/media-query-recovery_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/media-rule-no-whitespace_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/modify-ua-rules-from-javascript_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/parse-color-int-or-percent-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/parsing-at-rule-recovery_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/parsing-expr-error-recovery_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/parsing-object-fit_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/parsing-object-position_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/parsing-page-rule_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/parsing-selector-error-recovery_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/parsing-unexpected-eof_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/pseudo-any_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/pseudo-target-indirect-sibling-001_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/css/pseudo-target-indirect-sibling-002_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/css/readonly-pseudoclass-opera-001_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/readonly-pseudoclass-opera-002_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/readonly-pseudoclass-opera-003_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/readonly-pseudoclass-opera-004_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/readonly-pseudoclass-opera-005_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/readwrite-contenteditable-recalc_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/shorthand-setProperty-important_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/sibling-selectors-dynamic_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/sticky/parsing-position-sticky_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/style-scoped/style-scoped-in-shadow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/style-scoped/style-scoped-nested_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/style-scoped/style-scoped-scoping-nodes-different-order_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/style-scoped/style-scoped-shadow-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/style-scoped/style-scoped-with-dom-operation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/style-scoped/style-scoped-with-important-rule_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/style-sharing-type-and-readonly_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/stylesheet-enable-first-alternate-on-load-sheet_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/stylesheet-enable-second-alternate-link_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/webkit-keyframes-errors_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/word-break-user-modify-allowed-values_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last-inherited_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-color_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-line_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-underline-position_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css3-text/css3-text-indent/getComputedStyle/getComputedStyle-text-indent-inherited_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css3-text/css3-text-indent/getComputedStyle/getComputedStyle-text-indent_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css3-text/css3-text-justify/getComputedStyle/getComputedStyle-text-justify_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/52776_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Attr/direction-attribute-set-and-cleared_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/DOMException/XPathException_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/DOMException/dispatch-event-exception_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/DOMImplementation/createDocument-namespace-err_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Document/CaretRangeFromPoint/basic_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-strict-mode-wtih-checkbox_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-user-select-none_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-zoom-and-scroll_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-with-first-letter-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Document/clone-node_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Document/createElementNS-namespace-err_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Document/title-property-creates-title-element_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Document/title-property-set-multiple-times_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Document/title-with-multiple-children_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Element/attribute-uppercase_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Element/getBoundingClientRect-getClientRects-relative-to-viewport_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Element/getClientRects_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Element/setAttributeNS-namespace-err_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLAnchorElement/remove-href-from-focused-anchor_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-host_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-hostname_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-pathname_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/dialog-autofocus_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/dialog-close-event_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/dialog-enabled_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/dialog-open_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/dialog-return-value_t01: RuntimeError # Dartium JSInterop failure
+LayoutTests/fast/dom/HTMLDialogElement/dialog-scrolled-viewport_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/dialog-show-modal_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/inert-does-not-match-disabled-selector_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/inert-node-is-unfocusable_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/inert-node-is-unselectable_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/multiple-centered-dialogs_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/non-anchored-dialog-positioning_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/show-modal-focusing-steps_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/submit-dialog-close-event_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/synthetic-click-inert_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/top-layer-position-relative_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/top-layer-position-static_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDocument/active-element-gets-unforcusable_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/dom/HTMLDocument/clone-node_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDocument/set-focus-on-valid-element_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/dom/HTMLDocument/title-get_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDocument/title-set_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLElement/insertAdjacentHTML-errors_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLElement/set-inner-outer-optimization_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLElement/spellcheck_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLFormElement/move-option-between-documents_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLImageElement/image-alt-text_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLImageElement/parse-src_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLInputElement/input-image-alt-text_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLLinkElement/link-and-subresource-test-nonexistent_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/dom/HTMLLinkElement/link-and-subresource-test_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/dom/HTMLLinkElement/link-beforeload-recursive_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/dom/HTMLLinkElement/prefetch-onerror_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/dom/HTMLLinkElement/prefetch-onload_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/dom/HTMLLinkElement/prefetch_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/dom/HTMLLinkElement/resolve-url-on-insertion_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLMeterElement/set-meter-properties_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLOptionElement/collection-setter-getter_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLOutputElement/dom-settable-token-list_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLScriptElement/async-false-inside-async-false-load_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLScriptElement/async-inline-script_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLScriptElement/async-onbeforeload_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLScriptElement/defer-inline-script_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLScriptElement/defer-onbeforeload_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLScriptElement/script-set-src_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLSelectElement/selected-index-preserved-when-option-text-changes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLTemplateElement/cloneNode_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLTemplateElement/content-outlives-template-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLTemplateElement/contentWrappers_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLTemplateElement/custom-element-wrapper-gc_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLTemplateElement/cycles-in-shadow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLTemplateElement/cycles_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLTemplateElement/inertContents_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLTemplateElement/innerHTML-inert_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLTemplateElement/innerHTML_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLTemplateElement/no-form-association_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLTemplateElement/ownerDocumentXHTML_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLTemplateElement/ownerDocument_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLTemplateElement/xhtml-parsing-and-serialization_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/MutationObserver/observe-childList_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/MutationObserver/observe-options-attributes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/MutationObserver/observe-options-character-data_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/MutationObserver/weak-callback-gc-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Node/initial-values_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/NodeIterator/NodeIterator-basic_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/bug-19527_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/insertNode-empty-fragment-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/mutation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/range-comparePoint_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/range-constructor_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/range-detached-exceptions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/range-exceptions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/range-expand_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/range-insertNode-separate-endContainer_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/range-insertNode-splittext_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/range-isPointInRange_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/range-on-detached-node_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/surroundContents-for-detached-node_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/SelectorAPI/caseID-almost-strict_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/SelectorAPI/caseID_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/SelectorAPI/dumpNodeList-2_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/SelectorAPI/dumpNodeList-almost-strict_t01: RuntimeError # Dartium JSInterop failure
+LayoutTests/fast/dom/SelectorAPI/dumpNodeList_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/SelectorAPI/id-fastpath-almost-strict_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/SelectorAPI/id-fastpath-strict_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/StyleSheet/css-insert-import-rule-to-shadow-stylesheets_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/StyleSheet/css-medialist-item_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/StyleSheet/detached-shadow-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/StyleSheet/empty-shadow-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Text/next-element-sibling_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Text/previous-element-sibling_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/TreeWalker/TreeWalker-basic_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Window/atob-btoa_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Window/getMatchedCSSRules-nested-rules_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Window/getMatchedCSSRules-parent-stylesheets_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Window/window-resize-contents_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Window/window-resize_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Window/window-scroll-arguments_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/XMLSerializer-attribute-entities_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/XMLSerializer-attribute-namespaces_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/XMLSerializer-doctype2_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/XMLSerializer-double-xmlns_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/anchor-without-content_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/assertion-on-node-removal_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/attribute-namespaces-get-set_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/characterdata-api-arguments_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/client-width-height-quirks_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/comment-not-documentElement_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/createDocumentType-ownerDocument_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/createElementNS-namespace-errors_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/attribute-changed-callback_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/constructor-calls-created-synchronously_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/created-callback_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/document-register-basic_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/document-register-namespace_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/document-register-on-create-callback_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/document-register-svg-extends_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/document-register-type-extensions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/element-names_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/element-type_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/element-upgrade_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/lifecycle-created-createElement-recursion_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/type-extension-undo-assert_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/dom/custom/type-extensions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/unresolved-pseudoclass_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/upgrade-candidate-remove-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/dataset-xhtml_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/dataset_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/document-set-title-mutations_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/document-set-title-no-child-on-empty_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/document-set-title-no-reuse_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/domparser-parsefromstring-mimetype-support_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/elementFromPoint-scaled-scrolled_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/getElementsByClassName/014_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/getElementsByClassName/dumpNodeList_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/horizontal-scrollbar-in-rtl-doesnt-fire-onscroll_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/horizontal-scrollbar-in-rtl_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/horizontal-scrollbar-when-dir-change_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/html-collections-named-getter-mandatory-arg_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/implementation-api-args_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/importNode-unsupported-node-type_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/jsDevicePixelRatio_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/location-hash_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/dom/navigatorcontentutils/is-protocol-handler-registered_t01: Skip # API not supported.
+LayoutTests/fast/dom/navigatorcontentutils/register-protocol-handler_t01: Skip # API not supported.
+LayoutTests/fast/dom/navigatorcontentutils/unregister-protocol-handler_t01: Skip # API not supported.
+LayoutTests/fast/dom/node-iterator-with-doctype-root_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/option-properties_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/partial-layout-non-overlay-scrollbars_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/set-innerHTML_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/access-document-of-detached-stylesheetlist-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/base-in-shadow-tree_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-element-api_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-element-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-element-includer_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-element-outside-shadow-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-pseudo-element-css-text_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-pseudo-element-dynamic-attribute-change_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-pseudo-element-overridden_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-pseudo-element-relative-selector-css-text_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-pseudo-element-with-host-pseudo-class_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/content-reprojection-fallback-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/custom-pseudo-in-selector-api_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/distribution-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/distribution-for-event-path_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/distribution-update-recalcs-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/elementfrompoint_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/elements-in-frameless-document_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/event-path-not-in-document_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/event-path_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/form-in-shadow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/get-distributed-nodes-orphan_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/get-element-by-id-in-shadow-mutation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/getComputedStyle-composed-parent-dirty_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/getelementbyid-in-orphan_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/getelementbyid-shadow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/host-context-pseudo-class-css-text_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/host-pseudo-class-css-text_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/host-wrapper-reclaimed_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/insertion-point-list-menu-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/insertion-point-shadow-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/insertion-point-video-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/link-in-shadow-tree_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/nested-reprojection-inconsistent_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/no-renderers-for-light-children_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/offsetWidth-host-style-change_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/olderShadowRoot_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/pseudoclass-update-checked-option_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/pseudoclass-update-disabled-optgroup_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/pseudoclass-update-disabled-option_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/pseudoclass-update-enabled-optgroup_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/pseudoclass-update-enabled-option_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/reinsert-insertion-point_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/remove-and-insert-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/remove-styles-in-shadow-crash-2_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/remove-styles-in-shadow-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-aware-shadow-root_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-content-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-disable_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-element-inactive_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-element_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-hierarchy-exception_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-removechild-and-blur-event_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-root-append_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-root-js-api_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-root-node-list_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-root-text-child_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadow-ul-li_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadowdom-dynamic-styling_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadowdom-for-input-spellcheck_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadowdom-for-input-type-change_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadowdom-for-unknown-with-form_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadowhost-keyframes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadowroot-clonenode_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadowroot-host_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadowroot-keyframes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/sibling-rules-dynamic-changes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/stale-distribution-after-shadow-removal_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/style-insertion-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/style-of-distributed-node_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/style-sharing-sibling-shadow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/style-sharing-styles-in-older-shadow-roots_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/suppress-mutation-events-in-shadow-characterdata_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/title-element-in-shadow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/vertical-scrollbar-when-dir-change_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/xmlserializer-serialize-to-string-exception_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dynamic/crash-generated-counter_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dynamic/crash-generated-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dynamic/crash-generated-quote_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dynamic/crash-generated-text_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dynamic/insertAdjacentElement_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dynamic/insertAdjacentHTML_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dynamic/recursive-layout_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/add-event-without-document_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/clipboard-clearData_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/events/clipboard-dataTransferItemList_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/events/dispatch-event-being-dispatched_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/dispatch-event-no-document_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/events/document-elementFromPoint_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/event-creation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/event-listener-html-non-html-confusion_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/event-on-created-document_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/event-on-xhr-document_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/event-trace_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/fire-scroll-event_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/events/initkeyboardevent-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/invalid-003_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/invalid-004_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/mutation-during-replace-child-2_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/mutation-during-replace-child_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/scroll-event-does-not-bubble_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/scroll-event-phase_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/events/tabindex-removal-from-focused-element_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/wheelevent-constructor_t01: RuntimeError # Safarimobilesim does not support WheelEvent
+LayoutTests/fast/exclusions/parsing/parsing-wrap-flow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/exclusions/parsing/parsing-wrap-through_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/blob-close-read_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/blob-close-revoke_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/blob-close_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/blob-constructor_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/blob-parts-slice-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/blob-slice-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/file-reader-abort-in-last-progress_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/file-reader-methods-illegal-arguments_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/file-reader-readystate_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/url-null_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/xhr-response-blob_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/async-operations_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/directory-entry-to-uri_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-entry-to-uri_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-from-file-entry_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-metadata-after-write_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-writer-abort-continue_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-writer-abort-depth_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-writer-abort_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-writer-empty-blob_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-writer-events_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-writer-gc-blob_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-writer-truncate-extend_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-writer-write-overlapped_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/filesystem-reference_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/filesystem-unserializable_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/filesystem-uri-origin_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/input-access-entries_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-copy_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-get-entry_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-get-metadata_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-get-parent_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-move_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-read-directory_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-remove_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-restricted-chars_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-restricted-names_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-restricted-unicode_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/read-directory-many_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/read-directory_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/simple-readonly-file-object_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/simple-readonly_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/simple-required-arguments-getdirectory_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/simple-required-arguments-getfile_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/simple-temporary_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/snapshot-file-with-gc_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/flexbox/vertical-box-form-controls_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/ValidityState-typeMismatch-email_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/autocomplete_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/autofocus-input-css-style-change_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/button-baseline-and-collapsing_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/button/button-disabled-blur_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/clone-input-with-dirty-value_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/color/color-setrangetext_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/color/input-value-sanitization-color_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/control-detach-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/datalist/datalist_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/datalist/input-list_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/date-multiple-fields/date-multiple-fields-change-layout-by-value_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/date-multiple-fields/date-multiple-fields-onblur-setvalue-onfocusremoved_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/date/input-date-validation-message_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/date/input-valueasdate-date_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/date/input-valueasnumber-date_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-change-layout-by-value_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/datetimelocal/input-valueasdate-datetimelocal_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/datetimelocal/input-valueasnumber-datetimelocal_t01: RuntimeError # Dartium JSInterop failure
+LayoutTests/fast/forms/file/file-input-capture_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/focus-style-pending_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/forms/form-attribute_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/input-appearance-elementFromPoint_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/input-inputmode_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/input-select-webkit-user-select-none_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/input-type-change3_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/input-value-sanitization_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/input-width-height-attributes-without-renderer-loaded-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/interactive-validation-assertion-by-validate-twice_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/forms/interactive-validation-attach-assertion_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/forms/interactive-validation-select-crash_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/forms/listbox-selection-2_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/menulist-disabled-selected-option_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/menulist-selection-reset_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/menulist-submit-without-selection_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/multiple-selected-options-innerHTML_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/option-change-single-selected_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/option-strip-unicode-spaces_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/plaintext-mode-1_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/search-popup-crasher_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/select-clientheight-large-size_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/select-clientheight-with-multiple-attr_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/selection-direction_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/selection-wrongtype_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/setrangetext_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/shadow-tree-exposure_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/textarea-maxlength_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/textarea-paste-newline_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/textarea-selection-preservation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/textarea-set-defaultvalue-after-value_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/html/hidden-attr_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/html/imports/import-element-removed-flag_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/html/imports/import-events_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/html/select-dropdown-consistent-background-color_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/inline/boundingBox-with-continuation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/inline/continuation-inlines-inserted-in-reverse-after-block_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/inline/inline-position-top-align_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/inline/inline-relative-offset-boundingbox_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/inline/inline-with-empty-inline-children_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/inline/out-of-flow-objects-and-whitespace-after-empty-inline_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/inline/parent-inline-element-padding-contributes-width_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/inline/positioned-element-padding-contributes-width_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/innerHTML/innerHTML-custom-tag_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/layers/normal-flow-hit-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/lists/list-style-position-inside_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/loader/about-blank-hash-change_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/loader/about-blank-hash-kept_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/loader/hashchange-event-properties_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/loader/onhashchange-attribute-listeners_t01: Skip # Times out. Please triage this failure
+LayoutTests/fast/loader/scroll-position-restored-on-back_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/loader/scroll-position-restored-on-reload-at-load-event_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/loader/stateobjects/replacestate-in-onunload_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/masking/parsing-clip-path-shape_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/masking/parsing-mask-source-type_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/masking/parsing-mask_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/media/matchmedium-query-api_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/media/media-query-list-syntax_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/media/media-query-list_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/media/mq-append-delete_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/media/mq-js-media-except_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/media/mq-js-media-except_t03: RuntimeError # Please triage this failure
+LayoutTests/fast/media/mq-parsing_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/mediastream/RTCIceCandidate_t01: Skip # Please triage this failure
+LayoutTests/fast/mediastream/RTCPeerConnection_t01: Skip # Issue 23475
+LayoutTests/fast/mediastream/constructors_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/balance-short-trailing-empty-block_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/balance-trailing-border_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/balance-trailing-border_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/break-after-always-bottom-margin_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/break-properties_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/columns-shorthand-parsing_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/cssom-view_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/float-truncation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/hit-test-above-or-below_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/hit-test-end-of-column-with-line-height_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/hit-test-end-of-column_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/hit-test-float_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/hit-test-gap-between-pages-flipped_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/newmulticol/balance-maxheight_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/newmulticol/balance_t07: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/newmulticol/balance_t08: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/newmulticol/balance_t09: Skip # Times out. Please triage this failure
+LayoutTests/fast/multicol/newmulticol/balance_t10: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/vertical-lr/break-properties_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/vertical-lr/float-truncation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/vertical-rl/break-properties_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/vertical-rl/float-truncation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/widows_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/widows_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/overflow/child-100percent-height-inside-fixed-container-with-overflow-auto_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/overflow/replaced-child-100percent-height-inside-fixed-container-with-overflow-auto_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/overflow/scrollbar-restored_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/parser/foster-parent-adopted_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/parser/fragment-parser-doctype_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/parser/innerhtml-with-prefixed-elements_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/parser/pre-first-line-break_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/replaced/available-height-for-content_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/replaced/container-width-zero_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/replaced/iframe-with-percentage-height-within-table-with-anonymous-table-cell_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/replaced/preferred-widths_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/replaced/table-percent-height-text-controls_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/replaced/table-percent-height_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/replaced/table-percent-width_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/ruby/ruby-line-height_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/scrolling/scroll-element-into-view_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/parsing/parsing-shape-image-threshold_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/parsing/parsing-shape-lengths_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/parsing/parsing-shape-margin_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/parsing/parsing-shape-outside-none_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/parsing/parsing-shape-outside_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/parsing/parsing-shape-property-aliases_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-big-box-border-radius_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-diamond-margin-polygon_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-ellipse-margin-left_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-ellipse-margin-right_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-image-margin_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-image-margin_t02: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-left_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-right_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-rounded-boxes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-rounded-boxes_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/speechsynthesis/speech-synthesis-boundary-events_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/speechsynthesis/speech-synthesis-cancel_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/speechsynthesis/speech-synthesis-pause-resume_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/speechsynthesis/speech-synthesis-speak_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/speechsynthesis/speech-synthesis-utterance-uses-voice_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/speechsynthesis/speech-synthesis-voices_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/storage/disallowed-storage_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/storage/storage-disallowed-in-data-url_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/sub-pixel/boundingclientrect-subpixel-margin_t01: Skip # Issue 747
+LayoutTests/fast/sub-pixel/computedstylemargin_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/sub-pixel/cssom-subpixel-precision_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/sub-pixel/float-list-inside_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/sub-pixel/inline-block-with-padding_t01: Skip # Issue 747
+LayoutTests/fast/sub-pixel/layout-boxes-with-zoom_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/sub-pixel/shadows-computed-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/sub-pixel/size-of-span-with-different-positions_t01: Skip # Issue 747
+LayoutTests/fast/svg/getbbox_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/svg/tabindex-focus_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/svg/whitespace-angle_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/svg/whitespace-integer_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/svg/whitespace-length_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/svg/whitespace-number_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/absolute-table-percent-lengths_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/caption-orthogonal-writing-mode-sizing_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/css-table-max-height_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/css-table-max-width_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/css-table-width-with-border-padding_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/fixed-table-layout-width-change_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/hittest-tablecell-right-edge_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/hittest-tablecell-with-borders-right-edge_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/html-table-width-max-width-constrained_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/incorrect-colgroup-span-values_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/large-shrink-wrapped-width_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/margins-perpendicular-containing-block_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/min-width-css-block-table_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/table/min-width-css-inline-table_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/table/min-width-html-block-table_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/table/min-width-html-inline-table_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/table/nested-tables-with-div-offset_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/padding-height-and-override-height_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/switch-table-layout-dynamic-cells_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/switch-table-layout-multiple-section_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/switch-table-layout_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-all-rowspans-height-distribution-in-rows-except-overlapped_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-all-rowspans-height-distribution-in-rows_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-cell-offset-width_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-colgroup-present-after-table-row_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-rowspan-cell-with-empty-cell_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-rowspan-height-distribution-in-rows_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-rowspan-height-distribution-in-rows_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-sections-border-spacing_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-with-content-width-exceeding-max-width_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/find-case-folding_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/find-russian_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/find-soft-hyphen_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/find-spaces_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/font-ligature-letter-spacing_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/text/font-ligatures-linebreak-word_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/font-ligatures-linebreak_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/glyph-reordering_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/international/cjk-segmentation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/international/iso-8859-8_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/international/listbox-width-rtl_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/international/thai-offsetForPosition-inside-character_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/ipa-tone-letters_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/line-break-after-question-mark_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/line-breaks-after-hyphen-before-number_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/offsetForPosition-cluster-at-zero_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/remove-zero-length-run_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/sub-pixel/text-scaling-ltr_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/sub-pixel/text-scaling-pixel_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/sub-pixel/text-scaling-rtl_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/sub-pixel/text-scaling-vertical_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/sub-pixel/text-scaling-webfont_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/text-combine-shrink-to-fit_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/tokenizer/entities_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/tokenizer/entities_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/tokenizer/entities_t03: RuntimeError # Please triage this failure
+LayoutTests/fast/transforms/bounding-rect-zoom_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/transforms/hit-test-large-scale_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/anchor_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/file-http-base_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/file_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/host-lowercase-per-scheme_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/host_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/idna2003_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/idna2008_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/invalid-urls-utf8_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/ipv4_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/ipv6_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/path_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/port_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/query_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/relative-unix_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/relative-win_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/relative_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/safari-extension_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/segments-from-data-url_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/segments_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/standard-url_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/writing-mode/auto-sizing-orthogonal-flows_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/writing-mode/table-hit-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/writing-mode/vertical-font-vmtx-units-per-em_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xmlhttprequest/xmlhttprequest-get_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xmlhttprequest/xmlhttprequest-responseXML-xml-text-responsetype_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-arraybuffer_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-before-open-sync-request_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-sync-request_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xmlhttprequest/xmlhttprequest-set-responsetype_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/4XPath/Borrowed/cz_20030217_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/4XPath/Borrowed/namespace-nodes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/4XPath/Core/test_core_functions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/4XPath/Core/test_core_functions_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/4XPath/Core/test_node_test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/4XPath/Core/test_node_test_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/4XPath/Core/test_parser_t01: RuntimeError # Dartium JSInterop failure
+LayoutTests/fast/xpath/ambiguous-operators_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/attr-namespace_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/ensure-null-namespace_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/implicit-node-args_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/invalid-resolver_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/node-name-case-sensitivity_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/node-name-case-sensitivity_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/position_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/py-dom-xpath/abbreviations_t01: RuntimeError # Dartium JSInterop failure
+LayoutTests/fast/xpath/py-dom-xpath/axes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/py-dom-xpath/data_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/py-dom-xpath/expressions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/py-dom-xpath/paths_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/reverse-axes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/xpath-template-element_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xsl/default-html_t01: RuntimeError # Please triage this failure
+LibTest/async/Future/doWhile_A05_t01: RuntimeError # Please triage this failure
+LibTest/async/Future/forEach_A04_t02: RuntimeError # Please triage this failure
+LibTest/async/Stream/timeout_A01_t01: Pass, RuntimeError # Please triage this failure
+LibTest/async/Stream/timeout_A03_t01: Pass, RuntimeError # Please triage this failure
+LibTest/async/Stream/timeout_A04_t01: Pass, RuntimeError # Please triage this failure
+LibTest/core/List/List_A02_t01: RuntimeError # Please triage this failure
+LibTest/core/List/List_A03_t01: RuntimeError # Please triage this failure
+LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t01: RuntimeError # Issue 22200
+LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t05: RuntimeError # Issue 22200
+LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t06: RuntimeError # Issue 22200
+LibTest/core/double/roundToDouble_A01_t01: RuntimeError # Please triage this failure
+LibTest/core/double/round_A01_t01: RuntimeError # Please triage this failure
+LibTest/core/int/compareTo_A01_t01: RuntimeError # Please triage this failure
+LibTest/core/int/operator_left_shift_A01_t01: RuntimeError # Please triage this failure
+LibTest/core/int/operator_remainder_A01_t03: RuntimeError # Please triage this failure
+LibTest/core/int/operator_truncating_division_A01_t02: RuntimeError # Please triage this failure
+LibTest/core/int/remainder_A01_t01: RuntimeError # Please triage this failure
+LibTest/core/int/remainder_A01_t03: RuntimeError # Please triage this failure
+LibTest/core/int/toRadixString_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/CanvasRenderingContext2D/addEventListener_A01_t03: RuntimeError # Please triage this failure
+LibTest/html/CanvasRenderingContext2D/addEventListener_A01_t06: RuntimeError # Please triage this failure
+LibTest/html/Document/childNodes_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Document/clone_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Document/clone_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Document/getElementsByTagName_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Document/securityPolicy_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/Element.tag_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/attributeChanged_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/borderEdge_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/contentEdge_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/dataset_A02_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/enteredView_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/getAttributeNS_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/getAttributeNS_A02_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/getBoundingClientRect_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Element/getClientRects_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Element/getNamespacedAttributes_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/isContentEditable_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/isContentEditable_A02_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/isTagSupported_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/isTagSupported_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Element/leftView_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/marginEdge_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/mouseWheelEvent_A01_t01: Skip # Safari mobile sim does not support WheelEvent
+LibTest/html/Element/onMouseWheel_A01_t01: Skip # Safari mobile sim does not support WheelEvent
+LibTest/html/Element/onTransitionEnd_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/paddingEdge_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/querySelectorAll_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Element/replaceWith_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Element/tagName_A01_t03: RuntimeError # Please triage this failure
+LibTest/html/Element/transitionEndEvent_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/getAllResponseHeaders_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/getResponseHeader_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/getString_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/onError_A01_t02: Skip # Times out. Please triage this failure
+LibTest/html/HttpRequest/request_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/responseText_A01_t02: Skip # Times out. Please triage this failure
+LibTest/html/HttpRequest/responseType_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/responseType_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/setRequestHeader_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/statusText_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/status_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequestUpload/onError_A01_t02: Skip # Times out. Please triage this failure
+LibTest/html/HttpRequestUpload/onLoadEnd_A01_t01: Skip # Times out. Please triage this failure
+LibTest/html/HttpRequestUpload/onLoadStart_A01_t01: Skip # Times out. Please triage this failure
+LibTest/html/HttpRequestUpload/onLoad_A01_t01: Skip # Times out. Please triage this failure
+LibTest/html/IFrameElement/IFrameElement.created_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/attributeChanged_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/attributes_setter_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/blur_A01_t01: Skip # Times out. Please triage this failure
+LibTest/html/IFrameElement/borderEdge_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/clone_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/contentWindow_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/createFragment_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/createFragment_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/createFragment_A01_t03: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/createShadowRoot_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/getNamespacedAttributes_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/innerHtml_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/isContentEditable_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/leftView_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/marginEdge_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/mouseWheelEvent_A01_t01: Skip # Safari mobile sim does not support WheelEvent
+LibTest/html/IFrameElement/offsetTo_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/onMouseWheel_A01_t01: Skip # Safari mobile sim does not support WheelEvent
+LibTest/html/IFrameElement/onTransitionEnd_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/outerHtml_setter_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/paddingEdge_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/querySelector_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/setInnerHtml_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/tagName_A01_t03: RuntimeError # Please triage this failure
+LibTest/html/Node/append_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Node/nodes_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Node/nodes_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Node/parent_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Node/previousNode_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/close_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/document_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/find_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/find_A03_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/find_A06_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/moveBy_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/moveTo_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/moveTo_A02_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/open_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/postMessage_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/postMessage_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Window/requestFileSystem_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/requestFileSystem_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Window/requestFileSystem_A02_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/resizeBy_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/resizeTo_A01_t01: RuntimeError # Please triage this failure
+LibTest/typed_data/Float32x4List/Float32x4List.view_A06_t01: RuntimeError # Please triage this failure
+LibTest/typed_data/Int32x4/operator_OR_A01_t01: RuntimeError # Please triage this failure
+WebPlatformTest/DOMEvents/approved/EventObject.after.dispatchEvenr_t01: RuntimeError # Please triage this failure
+WebPlatformTest/DOMEvents/approved/EventObject.multiple.dispatchEvent_t01: RuntimeError # Please triage this failure
+WebPlatformTest/DOMEvents/approved/ProcessingInstruction.DOMCharacterDataModified_t01: Skip # Times out. Please triage this failure
+WebPlatformTest/DOMEvents/approved/addEventListener.optional.useCapture_t01: RuntimeError # Please triage this failure
+WebPlatformTest/Utils/test/asyncTestFail_t01: RuntimeError # Please triage this failure
+WebPlatformTest/Utils/test/asyncTestFail_t02: RuntimeError # Please triage this failure
+WebPlatformTest/Utils/test/asyncTestTimeout_t01: Skip # Times out. Please triage this failure
+WebPlatformTest/custom-elements/concepts/type_A01_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/concepts/type_A04_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/concepts/type_A05_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/concepts/type_A06_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/concepts/type_A07_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/concepts/type_A08_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElementNS_A01_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElementNS_A02_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElementNS_A03_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElementNS_A04_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElementNS_A05_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElement_A01_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElement_A02_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElement_A03_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElement_A04_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElement_A05_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/isAttribute_A01_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/isAttribute_A01_t02: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/isAttribute_A02_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/isAttribute_A03_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/localName_A01_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/namespace_A01_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/EventTarget/dispatchEvent_A01_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/EventTarget/dispatchEvent_A02_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/EventTarget/dispatchEvent_A03_t01: Skip # Times out. Please triage this failure
+WebPlatformTest/dom/events/type_A01_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/DOMImplementation-createDocumentType_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/DOMImplementation-createDocument_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/DOMImplementation-hasFeature_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Document-adoptNode_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Document-createElementNS_t02: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Document-getElementsByTagName_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Document-importNode_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Element-childElementCount_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Node-appendChild_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Node-appendChild_t02: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Node-insertBefore_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Node-isEqualNode_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Node-replaceChild_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/attributes_A04_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/attributes_A05_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttributeNS_A05_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttributeNS_A06_t03: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttributeNS_A07_t02: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttributeNS_A07_t03: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttributeNS_A08_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttributeNS_A09_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttributeNS_A09_t02: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttribute_A02_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttribute_A02_t02: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttribute_A03_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/ranges/Range-attributes_t02: RuntimeError # Please triage this failure
+WebPlatformTest/dom/ranges/Range-comparePoint_t02: RuntimeError # Please triage this failure
+WebPlatformTest/dom/ranges/Range-comparePoint_t03: RuntimeError # Please triage this failure
+WebPlatformTest/dom/ranges/Range-detach_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-imports/link-import_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-imports/link-import_t02: RuntimeError # Please triage this failure
+WebPlatformTest/html-imports/loading-import_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/additions-to-the-steps-to-clone-a-node/template-clone-children_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/additions-to-the-steps-to-clone-a-node/templates-copy-document-owner_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/definitions/template-contents-owner-document-type_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/definitions/template-contents-owner-test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/definitions/template-contents_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/innerhtml-on-templates/innerhtml_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/additions-to-foster-parenting/template-is-a-foster-parent-element_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/additions-to-foster-parenting/template-is-not-a-foster-parent-element_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/generating-of-implied-end-tags_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/ignore-body-token_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/ignore-frameset-token_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/ignore-head-token_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/ignore-html-token_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-body-insertion-mode/start-tag-body_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-head-insertion-mode/generating-of-implied-end-tags_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-table-insertion-mode/end-tag-table_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/appending-to-a-template/template-child-nodes_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-body-context_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-context_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-row-context_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/creating-an-element-for-the-token/template-owner-document_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/serializing-html-templates/outerhtml_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/template-element/content-attribute_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/template-element/node-document-changes_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/template-element/template-as-a-descendant_t01: RuntimeError # In Safari mobile sim, setting innerHTML on a Frameset element does nothing.
+WebPlatformTest/html-templates/template-element/template-content-node-document_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/template-element/template-content_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/browsers/browsing-the-web/read-media/pageload-image_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/browsers/browsing-the-web/read-media/pageload-video_t01: Skip # Times out. Please triage this failure
+WebPlatformTest/html/browsers/browsing-the-web/read-text/load-text-plain_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/documents/dom-tree-accessors/document.body-getter_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/documents/dom-tree-accessors/document.body-setter_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/documents/dom-tree-accessors/document.getElementsByName-namespace_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/documents/dom-tree-accessors/document.title_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/documents/dom-tree-accessors/document.title_t05: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/documents/dom-tree-accessors/document.title_t07: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/documents/dom-tree-accessors/nameditem_t02: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/elements/global-attributes/dataset-delete_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/elements/global-attributes/dataset-get_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/elements/global-attributes/dataset-set_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/document-metadata/styling/LinkStyle_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/embedded-content/media-elements/error-codes/error_t01: Skip # Times out. Please triage this failure
+WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLTrackElement/src_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/TextTrack/cues_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/TextTrack/mode_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/attributes-common-to-form-controls/formAction_document_address_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/attributes-common-to-form-controls/formaction_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/textfieldselection/selection_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/textfieldselection/textfieldselection-setRangeText_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-button-element/button-validation_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-datalist-element/datalistelement_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-datalist-element/datalistoptions_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-fieldset-element/disabled_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-form-element/form-autocomplete_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-form-element/form-elements-matches_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-form-element/form-elements-nameditem_t02: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/color_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/date_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/datetime-local_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/datetime_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/datetime_t02: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/email_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/hidden_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/input-textselection_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/month_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/password_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/range_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/text_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/time_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/time_t02: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/type-change-state_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/url_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/valueMode_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/week_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-meter-element/meter_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-option-element/option-text-recurse_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-option-element/option-text-spaces_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/grouping-content/the-blockquote-element/grouping-blockquote_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/interactive-elements/the-details-element/toggleEvent_t01: Skip # Times out. Please triage this failure
+WebPlatformTest/html/semantics/interactive-elements/the-dialog-element/dialog-close_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/interactive-elements/the-dialog-element/dialog-showModal_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/scripting-1/the-script-element/async_t11: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/scripting-1/the-script-element/script-text_t02: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/checked_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/default_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/dir_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/disabled_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/enabled_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/focus_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/indeterminate_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/inrange-outofrange_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/valid-invalid_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/tabular-data/the-table-element/table-insertRow_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/tabular-data/the-table-element/table-rows_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/tabular-data/the-tr-element/rowIndex_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/syntax/parsing/Document.getElementsByTagName-foreign_t02: RuntimeError # Please triage this failure
+WebPlatformTest/html/syntax/serializing-html-fragments/outerHTML_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t01: Skip # Times out. Please triage this failure
+WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t02: RuntimeError # Please triage this failure
+WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t03: RuntimeError # Please triage this failure
+WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t04: RuntimeError # Please triage this failure
+WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t05: RuntimeError # Please triage this failure
+WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t06: RuntimeError # Please triage this failure
+WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol_t00: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-004_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-004_t02: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-005_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/elements-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-event-interface/event-path-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-007_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-008_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-009_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-010_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-011_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-012_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-013_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-005_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-007_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-010_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-004_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-004_t02: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-005_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-006_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-003_t02: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-004_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-005_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/event-dispatch/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/event-dispatch/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/event-dispatch/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/event-retargeting/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/event-retargeting/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/event-retargeting/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/event-retargeting/test-004_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-004_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-005_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-006_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-007_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-008_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-009_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t02: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t03: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t04: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t05: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t06: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-004_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/html-forms/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/html-forms/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/inert-html-elements/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/composition/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/custom-pseudo-elements/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/distributed-pseudo-element/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/distributed-pseudo-element/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/distribution-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-004_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-005_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/nested-shadow-trees/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/rendering-shadow-trees/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/reprojection/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-004_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-005_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-006_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-017_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/dom-tree-accessors-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/selectors-api-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/selectors-api-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/shadow-root-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-005_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-007_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-009_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-011_t01: RuntimeError # Please triage this failure
+WebPlatformTest/webstorage/event_constructor_t01: RuntimeError # Please triage this failure
+WebPlatformTest/webstorage/event_constructor_t02: RuntimeError # Please triage this failure
+WebPlatformTest/webstorage/event_local_key_t01: RuntimeError # Please triage this failure
+WebPlatformTest/webstorage/event_session_key_t01: RuntimeError # Please triage this failure
+
+[ $compiler == dart2js && $browser ]
+LayoutTests/fast/css-generated-content/bug91547_t01: Skip # Test reloads itself. Issue 18558.
+LayoutTests/fast/dom/HTMLButtonElement/change-type_t01: Skip # Test reloads itself. Issue 18558.
+LayoutTests/fast/dom/HTMLElement/insertAdjacentHTML-errors_t01: RuntimeError # Issue 747
+LayoutTests/fast/dom/StyleSheet/discarded-sheet-owner-null_t01: Skip # Test reloads itself. Issue 18558.
+LayoutTests/fast/dom/css-cached-import-rule_t01: Skip # Test reloads itself. Issue 18558.
+LayoutTests/fast/dom/cssTarget-crash_t01: Skip # Test reloads itself. Issue 18558.
+LayoutTests/fast/dom/empty-hash-and-search_t01: Skip # Test reloads itself. Issue 18558.
+LayoutTests/fast/dom/shadow/form-in-shadow_t01: Skip # Test reloads itself. Issue 18558.
+LayoutTests/fast/dynamic/insertAdjacentHTML_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/filesystem/file-after-reload-crash_t01: Skip # Test reloads itself. Issue 18558.
+LayoutTests/fast/forms/date/date-interactive-validation-required_t01: Skip # Test reloads itself. Issue 18558.
+LayoutTests/fast/forms/datetimelocal/datetimelocal-interactive-validation-required_t01: Skip # Test reloads itself. Issue 18558.
+LayoutTests/fast/forms/form-submission-create-crash_t01: Skip # Test reloads itself. Issue 18558.
+LayoutTests/fast/forms/formmethod-attribute-button-html_t01: Skip # Test reloads itself. Issue 18558.
+LayoutTests/fast/forms/formmethod-attribute-input-2_t01: Skip # Test reloads itself. Issue 18558.
+LayoutTests/fast/forms/formmethod-attribute-input-html_t01: Skip # Test reloads itself. Issue 18558.
+LayoutTests/fast/forms/missing-action_t01: Skip # Test reloads itself. Issue 18558.
+LayoutTests/fast/forms/submit-form-with-dirname-attribute-with-ancestor-dir-attribute_t01: Skip # Test reloads itself. Issue 18558.
+LayoutTests/fast/forms/submit-form-with-dirname-attribute-with-nonhtml-ancestor_t01: Skip # Test reloads itself. Issue 18558.
+LayoutTests/fast/forms/submit-form-with-dirname-attribute_t01: Skip # Test reloads itself. Issue 18558.
+LayoutTests/fast/forms/submit-nil-value-field-assert_t01: Skip # Test reloads itself. Issue 18558.
+LayoutTests/fast/forms/textarea-submit-crash_t01: Skip # Test reloads itself. Issue 18558.
+LayoutTests/fast/html/adjacent-html-context-element_t01: RuntimeError # Issue 747
+LayoutTests/fast/lists/list-style-position-inside_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/media/mq-parsing_t01: Pass, RuntimeError # Issue 747, False passes on Firefox, but trying to keep these grouped with the issue.
+LayoutTests/fast/mediastream/RTCPeerConnection-AddRemoveStream_t01: Skip # Passes on Safari, Issue 23475
+LayoutTests/fast/mediastream/getusermedia_t01: Skip # Please triage this failure.
+LayoutTests/fast/multicol/balance-unbreakable_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/multicol/column-width-zero_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/multicol/newmulticol/balance-images_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/multicol/newmulticol/balance-maxheight_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/multicol/newmulticol/balance_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/multicol/newmulticol/balance_t02: Pass, RuntimeError # Issue 747
+LayoutTests/fast/multicol/newmulticol/balance_t04: Pass, RuntimeError # Issue 747
+LayoutTests/fast/multicol/newmulticol/balance_t05: Pass, RuntimeError # Issue 747
+LayoutTests/fast/multicol/newmulticol/balance_t06: Pass, RuntimeError # Issue 747
+LayoutTests/fast/multicol/newmulticol/balance_t07: Pass, RuntimeError # Issue 747
+LayoutTests/fast/multicol/newmulticol/balance_t08: Pass, RuntimeError # Issue 747
+LayoutTests/fast/multicol/newmulticol/balance_t09: Pass, RuntimeError # Issue 747
+LayoutTests/fast/multicol/newmulticol/balance_t10: Pass, RuntimeError # Issue 747, I don't understand how, but sometimes passes.
+LayoutTests/fast/multicol/orphans-relayout_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/multicol/widows_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/overflow/overflow-rtl-vertical-origin_t01: Pass, RuntimeError # Issue 747, False passes on Firefox, but trying to keep these grouped with the issue.
+LayoutTests/fast/overflow/replaced-child-100percent-height-inside-fixed-container-with-overflow-auto_t01: Pass, RuntimeError # Issue 747, False pass on Safari
+LayoutTests/fast/parser/parse-wbr_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/replaced/computed-image-width-with-percent-height-and-fixed-ancestor-vertical-lr_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/replaced/computed-image-width-with-percent-height-and-fixed-ancestor_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/replaced/computed-image-width-with-percent-height-and-fixed-ancestor_t01: Pass # Issue 747, False pass
+LayoutTests/fast/replaced/computed-image-width-with-percent-height-inside-table-cell-and-fixed-ancestor-vertical-lr_t01: RuntimeError, Pass # Issue 747, Spurious intermittent pass
+LayoutTests/fast/replaced/computed-image-width-with-percent-height-inside-table-cell-and-fixed-ancestor_t01: RuntimeError, Pass # Issue 747, Spurious intermittent pass
+LayoutTests/fast/replaced/iframe-with-percentage-height-within-table-with-anonymous-table-cell_t01: RuntimeError, Pass # Issue 747, Spurious intermittent pass.
+LayoutTests/fast/replaced/iframe-with-percentage-height-within-table-with-table-cell-ignore-height_t01: RuntimeError, Pass # Issue 747, Spurious intermittent pass
+LayoutTests/fast/ruby/parse-rp_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/sub-pixel/replaced-element-baseline_t01: Pass, RuntimeError # Issue 747, Fails on Safari, false pass on others
+LayoutTests/fast/table/anonymous-table-section-removed_t01: Skip # Issue 747
+LayoutTests/fast/table/col-width-span-expand_t01: Skip # Issue 747
+LayoutTests/fast/table/fixed-table-layout-width-change_t01: Pass, RuntimeError # Issue 747, False passes on Firefox
+LayoutTests/fast/table/hittest-tablecell-bottom-edge_t01: Skip # Issue 747
+LayoutTests/fast/table/hittest-tablecell-with-borders-bottom-edge_t01: Skip # Issue 747
+LayoutTests/fast/table/html-table-width-max-width-constrained_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/table/margins-flipped-text-direction_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/table/min-max-width-preferred-size_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/table/table-width-exceeding-max-width_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/text/font-fallback-synthetic-italics_t01: RuntimeError # Issue 747
+LayoutTests/fast/text/font-fallback-synthetic-italics_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/text/font-ligatures-linebreak-word_t01: Skip # Issue 747
+LayoutTests/fast/text/font-ligatures-linebreak_t01: Skip # Issue 747
+LayoutTests/fast/text/glyph-reordering_t01: Pass, RuntimeError # Issue 747, This is a false pass. The font gets sanitized, so whether it works or not probably depends on default sizes.
+LayoutTests/fast/text/international/rtl-text-wrapping_t01: Pass # Issue 747, This is a false pass. All the content gets sanitized, so there's nothing to assert fail on. If the code did anything it would fail.
+LayoutTests/fast/text/ipa-tone-letters_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/text/line-break-after-empty-inline-hebrew_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/text/regional-indicator-symobls_t01: Pass, Fail # Issue 747
+LayoutTests/fast/transforms/bounding-rect-zoom_t01: RuntimeError, Pass # Issue 747, Erratic, but only passes because divs have been entirely removed.
+LayoutTests/fast/transforms/scrollIntoView-transformed_t01: Pass, RuntimeError # Issue 747, False passes on Firefox.
+LayoutTests/fast/transforms/transform-hit-test-flipped_t01: Pass, RuntimeError # Issue 747, Passes on Firefox, but is clearly not testing what it's trying to test.
+LayoutTests/fast/writing-mode/percentage-margins-absolute-replaced_t01: Pass, RuntimeError # Issue 747
+LayoutTests/fast/writing-mode/positionForPoint_t01: Pass, RuntimeError # Issue 747
+LibTest/html/IFrameElement/appendHtml_A01_t01: Pass, RuntimeError # Issue 23462
+LibTest/html/IFrameElement/appendHtml_A01_t02: Pass, RuntimeError # Issue 23462
+WebPlatformTest/html/semantics/document-metadata/styling/LinkStyle_t01: Pass, RuntimeError # Issue 747
+WebPlatformTest/html/semantics/forms/the-form-element/form-nameditem_t01: RuntimeError # Issue 747
+WebPlatformTest/html/semantics/grouping-content/the-ol-element/ol.start-reflection_t02: Skip # Issue 747
+WebPlatformTest/html/semantics/scripting-1/the-script-element/async_t11: Skip # Issue 747
+WebPlatformTest/html/semantics/selectors/pseudo-classes/disabled_t01: Pass, RuntimeError # Issue 747, Spurious pass
+WebPlatformTest/html/semantics/selectors/pseudo-classes/link_t01: Pass, RuntimeError # Issue 747
+WebPlatformTest/html/syntax/parsing/Document.getElementsByTagName-foreign_t01: RuntimeError, Pass # Issue 747
+
+[ $compiler == dart2js && $browser && $fast_startup ]
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-001_t01: Fail # custom elements not supported
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-004_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-004_t02: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/elements-001_t01: Fail # custom elements not supported
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-004_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-004_t02: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-006_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-003_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-003_t02: Fail # custom elements not supported
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-005_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/event-dispatch/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/event-dispatch/test-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/event-dispatch/test-003_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/event-retargeting/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/event-retargeting/test-002_t01: Fail # custom elements not supported
+WebPlatformTest/shadow-dom/events/event-retargeting/test-004_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-003_t01: Fail # please triage
+WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-003_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/custom-pseudo-elements/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/distributed-pseudo-element/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/distributed-pseudo-element/test-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-004_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/selectors-api-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/selectors-api-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-009_t01: Fail # please triage
+
+[ $compiler == dart2js && $checked ]
+Language/Errors_and_Warnings/static_warning_t02: RuntimeError # Please triage this failure
+Language/Errors_and_Warnings/static_warning_t03: RuntimeError # Please triage this failure
+Language/Errors_and_Warnings/static_warning_t04: RuntimeError # Please triage this failure
+Language/Errors_and_Warnings/static_warning_t05: RuntimeError # Please triage this failure
+Language/Errors_and_Warnings/static_warning_t06: RuntimeError # Please triage this failure
+Language/Expressions/Assignment/Compound_Assignment/null_aware_static_warning_super_t01/01: Fail # Please triage this failure
+Language/Expressions/Assignment/Compound_Assignment/null_aware_static_warning_variable_t01/01: Fail # Please triage this failure
+Language/Expressions/Assignment/super_assignment_dynamic_error_t01: RuntimeError # Please triage this failure
+Language/Expressions/Assignment/super_assignment_static_warning_t04/01: Fail # Please triage this failure
+Language/Expressions/Function_Expressions/static_type_dynamic_async_t03: RuntimeError # Please triage this failure
+Language/Expressions/Function_Expressions/static_type_dynamic_asyncs_t03: RuntimeError # Please triage this failure
+Language/Expressions/Function_Expressions/static_type_dynamic_syncs_t03: RuntimeError # Please triage this failure
+Language/Expressions/Function_Expressions/static_type_form_3_async_t03: RuntimeError # Please triage this failure
+Language/Expressions/Function_Expressions/static_type_form_3_asyncs_t03: RuntimeError # Please triage this failure
+Language/Expressions/Function_Expressions/static_type_form_3_syncs_t03: RuntimeError # Please triage this failure
+Language/Expressions/If_null_Expressions/static_type_t01: RuntimeError # Please triage this failure
+Language/Expressions/If_null_Expressions/static_type_t02: RuntimeError # Please triage this failure
+Language/Functions/async_return_type_t01: RuntimeError # Please triage this failure
+Language/Functions/generator_return_type_t01: RuntimeError # Please triage this failure
+Language/Functions/generator_return_type_t02: RuntimeError # Please triage this failure
+Language/Statements/Assert/execution_t03: RuntimeError # Please triage this failure
+Language/Statements/Assert/execution_t11: RuntimeError # Please triage this failure
+Language/Statements/Return/runtime_type_t04: RuntimeError # Issue 26584
+Language/Statements/Switch/execution_t01: Fail # Missing type check in switch expression
+Language/Statements/Switch/type_t01: RuntimeError # Issue 16089
+Language/Types/Dynamic_Type_System/malbounded_type_error_t01: RuntimeError # Issue 21088
+Language/Types/Parameterized_Types/malbounded_t06: RuntimeError # Issue 21088
+Language/Types/Static_Types/malformed_type_t01: RuntimeError # Issue 21089
+LibTest/collection/DoubleLinkedQueue/DoubleLinkedQueue_class_A01_t01: Skip # Timesout. Please triage this failure.
+LibTest/core/Map/Map_class_A01_t04: Slow, Pass # Please triage this failure
+LibTest/core/Uri/Uri_A06_t03: Slow, Pass # Please triage this failure
+LibTest/math/Point/operator_mult_A02_t01: RuntimeError # Issue 1533
+
+[ $compiler == dart2js && !$checked && $enable_asserts ]
+Language/Statements/Assert/execution_t01: SkipByDesign # Unspec'd feature.
+Language/Statements/Assert/execution_t02: SkipByDesign # Unspec'd feature.
+Language/Statements/Assert/execution_t03: SkipByDesign # Unspec'd feature.
+Language/Statements/Assert/execution_t04: SkipByDesign # Unspec'd feature.
+Language/Statements/Assert/execution_t05: SkipByDesign # Unspec'd feature.
+Language/Statements/Assert/execution_t06: SkipByDesign # Unspec'd feature.
+Language/Statements/Assert/execution_t11: SkipByDesign # Unspec'd feature.
+Language/Statements/Assert/production_mode_t01: SkipByDesign # Unspec'd feature.
+Language/Statements/Assert/type_t02: SkipByDesign # Unspec'd feature.
+Language/Statements/Assert/type_t03: SkipByDesign # Unspec'd feature.
+Language/Statements/Assert/type_t04: SkipByDesign # Unspec'd feature.
+Language/Statements/Assert/type_t05: SkipByDesign # Unspec'd feature.
+Language/Statements/Assert/type_t06: SkipByDesign # Unspec'd feature.
+
+[ $compiler == dart2js && $fast_startup ]
+Language/Classes/Instance_Methods/Operators/unary_minus: Fail # mirrors not supported
+Language/Expressions/Null/instance_of_class_null_t01: Fail # mirrors not supported
+Language/Metadata/before_class_t01: Fail # mirrors not supported
+Language/Metadata/before_ctor_t01: Fail # mirrors not supported
+Language/Metadata/before_ctor_t02: Fail # mirrors not supported
+Language/Metadata/before_export_t01: Fail # mirrors not supported
+Language/Metadata/before_factory_t01: Fail # mirrors not supported
+Language/Metadata/before_function_t01: Fail # mirrors not supported
+Language/Metadata/before_function_t02: Fail # mirrors not supported
+Language/Metadata/before_function_t03: Fail # mirrors not supported
+Language/Metadata/before_function_t04: Fail # mirrors not supported
+Language/Metadata/before_function_t05: Fail # mirrors not supported
+Language/Metadata/before_function_t06: Fail # mirrors not supported
+Language/Metadata/before_function_t07: Fail # mirrors not supported
+Language/Metadata/before_import_t01: Fail # mirrors not supported
+Language/Metadata/before_library_t01: Fail # mirrors not supported
+Language/Metadata/before_param_t01: Fail # mirrors not supported
+Language/Metadata/before_param_t02: Fail # mirrors not supported
+Language/Metadata/before_param_t03: Fail # mirrors not supported
+Language/Metadata/before_param_t04: Fail # mirrors not supported
+Language/Metadata/before_param_t05: Fail # mirrors not supported
+Language/Metadata/before_param_t06: Fail # mirrors not supported
+Language/Metadata/before_param_t07: Fail # mirrors not supported
+Language/Metadata/before_param_t08: Fail # mirrors not supported
+Language/Metadata/before_param_t09: Fail # mirrors not supported
+Language/Metadata/before_type_param_t01: Fail # mirrors not supported
+Language/Metadata/before_typedef_t01: Fail # mirrors not supported
+Language/Metadata/before_variable_t01: Fail # mirrors not supported
+Language/Metadata/before_variable_t02: Fail # mirrors not supported
+Language/Metadata/compilation_t01: Pass # mirrors not supported, fails for the wrong reason
+Language/Metadata/compilation_t02: Pass # mirrors not supported, fails for the wrong reason
+Language/Metadata/compilation_t03: Pass # mirrors not supported, fails for the wrong reason
+Language/Metadata/compilation_t04: Pass # mirrors not supported, fails for the wrong reason
+Language/Metadata/compilation_t05: Pass # mirrors not supported, fails for the wrong reason
+Language/Metadata/compilation_t06: Pass # mirrors not supported, fails for the wrong reason
+Language/Metadata/compilation_t07: Pass # mirrors not supported, fails for the wrong reason
+Language/Metadata/compilation_t08: Pass # mirrors not supported, fails for the wrong reason
+Language/Metadata/compilation_t09: Pass # mirrors not supported, fails for the wrong reason
+Language/Metadata/compilation_t10: Pass # mirrors not supported, fails for the wrong reason
+Language/Metadata/compilation_t11: Pass # mirrors not supported, fails for the wrong reason
+WebPlatformTest/shadow-dom/testcommon: Fail # mirrors not supported
[ $compiler == dart2js && $host_checked ]
Language/Types/Function_Types/call_t01: Crash # Issue 28894
+
+[ $compiler == dart2js && $jscl ]
+LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: Fail, Pass # issue 3333
+LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t01: RuntimeError, OK # This is not rejected by V8. Issue 22200
+LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t05: RuntimeError # Issue 22200
+LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t06: RuntimeError # Issue 22200
+LibTest/core/int/compareTo_A01_t01: RuntimeError, OK # Requires big int.
+LibTest/core/int/hashCode_A01_t01: RuntimeError, OK # co19 testing missing assertion.
+LibTest/core/int/isEven_A01_t01: RuntimeError, OK # Not in API.
+LibTest/core/int/isOdd_A01_t01: RuntimeError, OK # Not in API.
+LibTest/core/int/operator_left_shift_A01_t01: RuntimeError, OK # Requires big int.
+LibTest/core/int/operator_remainder_A01_t03: RuntimeError, OK # Leg only has double.
+LibTest/core/int/operator_truncating_division_A01_t02: RuntimeError, OK # Leg only has double.
+LibTest/core/int/remainder_A01_t01: RuntimeError, OK # Requires big int.
+LibTest/core/int/remainder_A01_t03: RuntimeError, OK # Leg only has double.
+LibTest/core/int/toDouble_A01_t01: RuntimeError, OK # Requires big int.
+LibTest/core/int/toRadixString_A01_t01: RuntimeError, OK # Bad test: uses Expect.fail, Expect.throws, assumes case of result, and uses unsupported radixes.
+
+[ $compiler == dart2js && $minified ]
+LibTest/typed_data/Float32List/runtimeType_A01_t01: Fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Float32x4List/runtimeType_A01_t01: Fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Float64List/runtimeType_A01_t01: Fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Int16List/runtimeType_A01_t01: Fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Int32List/runtimeType_A01_t01: Fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Int8List/runtimeType_A01_t01: Fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Uint16List/runtimeType_A01_t01: Fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Uint32List/runtimeType_A01_t01: Fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Uint8ClampedList/runtimeType_A01_t01: Fail # co19-roll r559: Please triage this failure
+LibTest/typed_data/Uint8List/runtimeType_A01_t01: Fail # co19-roll r559: Please triage this failure
+
diff --git a/tests/co19/co19-kernel.status b/tests/co19/co19-kernel.status
index 3c26710..c643a7b 100644
--- a/tests/co19/co19-kernel.status
+++ b/tests/co19/co19-kernel.status
@@ -2,6 +2,64 @@
# 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.
+# dartk: JIT failures
+[ $compiler == dartk ]
+Language/Expressions/Instance_Creation/Const/canonicalized_t05: RuntimeError
+Language/Expressions/Object_Identity/string_t01: RuntimeError
+Language/Expressions/Strings/adjacent_strings_t02: RuntimeError
+Language/Metadata/before_type_param_t01: RuntimeError
+LibTest/isolate/Isolate/spawnUri_A01_t03: Pass, Timeout
+
+# dartk: precompilation failures
+[ $compiler == dartkp ]
+Language/Classes/Constructors/Generative_Constructors/execution_of_an_initializer_t02: Pass
+Language/Expressions/Constants/bitwise_operators_t05: Crash
+Language/Expressions/Constants/depending_on_itself_t01: MissingCompileTimeError
+Language/Expressions/Constants/depending_on_itself_t02: MissingCompileTimeError
+Language/Expressions/Constants/logical_expression_t04: Crash
+Language/Overview/Scoping/hiding_declaration_t11: Crash
+Language/Overview/Scoping/hiding_declaration_t11: Pass
+Language/Overview/Scoping/hiding_declaration_t12: Crash
+Language/Overview/Scoping/hiding_declaration_t12: Pass
+
+# dartk: JIT failures (debug)
+[ $compiler == dartk && $mode == debug ]
+LibTest/isolate/Isolate/spawnUri_A01_t04: Pass, Slow, Timeout
+
+[ $compiler == dartk && $strong ]
+*: SkipByDesign
+
+# dartk: precompilation failures (debug)
+[ $compiler == dartkp && $mode == debug ]
+Language/Functions/External_Functions/not_connected_to_a_body_t01: Crash
+Language/Statements/For/Asynchronous_For_in/execution_t04: Crash
+
+[ $compiler == dartkp && $strong ]
+*: SkipByDesign
+
+[ $mode == debug && ($compiler == dartk || $compiler == dartkp) ]
+Language/Classes/Constructors/Generative_Constructors/execution_t04: Crash
+Language/Classes/Instance_Variables/constant_t01: Crash
+
+# dartk: checked mode failures
+[ $checked && ($compiler == dartk || $compiler == dartkp) ]
+Language/Classes/Constructors/Factories/arguments_type_t01: RuntimeError
+Language/Classes/Constructors/Factories/function_type_t02: Fail # dartbug.com/30527
+Language/Expressions/Constants/exception_t04: Pass
+Language/Expressions/Function_Expressions/static_type_dynamic_async_t03: RuntimeError # dartbgug.com/30667
+Language/Expressions/Function_Expressions/static_type_dynamic_asyncs_t03: RuntimeError # dartbgug.com/30667
+Language/Expressions/Function_Expressions/static_type_dynamic_syncs_t03: RuntimeError # dartbug.com/30667
+Language/Expressions/Function_Expressions/static_type_form_3_async_t03: RuntimeError # dartbgug.com/30667
+Language/Expressions/Function_Expressions/static_type_form_3_asyncs_t03: RuntimeError # dartbgug.com/30667
+Language/Expressions/Function_Expressions/static_type_form_3_syncs_t03: RuntimeError # dartbgug.com/30667
+Language/Generics/malformed_t02: RuntimeError
+Language/Statements/Return/runtime_type_t04: RuntimeError
+Language/Statements/Switch/execution_t01: RuntimeError
+Language/Statements/Switch/type_t01: RuntimeError
+Language/Types/Dynamic_Type_System/malbounded_type_error_t01: RuntimeError
+Language/Types/Parameterized_Types/malbounded_t06: RuntimeError
+Language/Types/Static_Types/malformed_type_t04: RuntimeError
+
[ $compiler == dartk || $compiler == dartkp ]
Language/Classes/Constructors/Constant_Constructors/initializer_not_a_constant_t03: MissingCompileTimeError
Language/Classes/Constructors/Factories/const_modifier_t01: MissingCompileTimeError
@@ -72,23 +130,25 @@
Language/Functions/Formal_Parameters/Required_Formals/syntax_t06: MissingCompileTimeError
Language/Functions/Formal_Parameters/Required_Formals/syntax_t07: MissingCompileTimeError
Language/Libraries_and_Scripts/Exports/reexport_t01: MissingCompileTimeError
+Language/Libraries_and_Scripts/Imports/deferred_import_t01: CompileTimeError # Deferred loading kernel issue 28335.
+Language/Libraries_and_Scripts/Imports/deferred_import_t02: CompileTimeError # Deferred loading kernel issue 28335.
Language/Libraries_and_Scripts/Imports/invalid_uri_deferred_t02: CompileTimeError
Language/Libraries_and_Scripts/Imports/invalid_uri_t01: MissingCompileTimeError
Language/Libraries_and_Scripts/Imports/same_name_t10: RuntimeError
Language/Libraries_and_Scripts/Imports/static_type_t01: Skip # No support for deferred libraries.
-Language/Metadata/before_export_t01: RuntimeError # Issue 28434: Kernel IR misses these annotations.
-Language/Metadata/before_import_t01: RuntimeError # Issue 28434: Kernel IR misses these annotations.
-Language/Metadata/before_library_t01: RuntimeError # Issue 28434: Kernel IR misses these annotations.
-Language/Metadata/before_param_t01: RuntimeError # Issue 28434: Kernel IR misses these annotations.
-Language/Metadata/before_param_t02: RuntimeError # Issue 28434: Kernel IR misses these annotations.
-Language/Metadata/before_param_t03: RuntimeError # Issue 28434: Kernel IR misses these annotations.
-Language/Metadata/before_param_t04: RuntimeError # Issue 28434: Kernel IR misses these annotations.
-Language/Metadata/before_param_t05: RuntimeError # Issue 28434: Kernel IR misses these annotations.
-Language/Metadata/before_param_t06: RuntimeError # Issue 28434: Kernel IR misses these annotations.
-Language/Metadata/before_param_t07: RuntimeError # Issue 28434: Kernel IR misses these annotations.
-Language/Metadata/before_param_t08: RuntimeError # Issue 28434: Kernel IR misses these annotations.
-Language/Metadata/before_param_t09: RuntimeError # Issue 28434: Kernel IR misses these annotations.
-Language/Metadata/before_typedef_t01: RuntimeError # Issue 28434: Kernel IR misses these annotations.
+Language/Metadata/before_export_t01: RuntimeError # Issue 28434: Kernel IR misses these annotations.
+Language/Metadata/before_import_t01: RuntimeError # Issue 28434: Kernel IR misses these annotations.
+Language/Metadata/before_library_t01: RuntimeError # Issue 28434: Kernel IR misses these annotations.
+Language/Metadata/before_param_t01: RuntimeError # Issue 28434: Kernel IR misses these annotations.
+Language/Metadata/before_param_t02: RuntimeError # Issue 28434: Kernel IR misses these annotations.
+Language/Metadata/before_param_t03: RuntimeError # Issue 28434: Kernel IR misses these annotations.
+Language/Metadata/before_param_t04: RuntimeError # Issue 28434: Kernel IR misses these annotations.
+Language/Metadata/before_param_t05: RuntimeError # Issue 28434: Kernel IR misses these annotations.
+Language/Metadata/before_param_t06: RuntimeError # Issue 28434: Kernel IR misses these annotations.
+Language/Metadata/before_param_t07: RuntimeError # Issue 28434: Kernel IR misses these annotations.
+Language/Metadata/before_param_t08: RuntimeError # Issue 28434: Kernel IR misses these annotations.
+Language/Metadata/before_param_t09: RuntimeError # Issue 28434: Kernel IR misses these annotations.
+Language/Metadata/before_typedef_t01: RuntimeError # Issue 28434: Kernel IR misses these annotations.
Language/Mixins/Mixin_Application/deferred_t01: MissingCompileTimeError
Language/Mixins/Mixin_Application/syntax_t16: CompileTimeError # Issue 25765
Language/Mixins/declaring_constructor_t05: MissingCompileTimeError # Issue 24767
@@ -119,60 +179,3 @@
LibTest/async/DeferredLibrary/DeferredLibrary_A01_t01: Skip # No support for deferred libraries.
LibTest/isolate/Isolate/spawnUri_A01_t06: Skip
-[ ($compiler == dartk || $compiler == dartkp) && $mode == debug ]
-Language/Classes/Constructors/Generative_Constructors/execution_t04: Crash
-Language/Classes/Instance_Variables/constant_t01: Crash
-
-# dartk: JIT failures
-[ $compiler == dartk ]
-Language/Expressions/Instance_Creation/Const/canonicalized_t05: RuntimeError
-Language/Expressions/Object_Identity/string_t01: RuntimeError
-Language/Expressions/Strings/adjacent_strings_t02: RuntimeError
-Language/Metadata/before_type_param_t01: RuntimeError
-LibTest/isolate/Isolate/spawnUri_A01_t03: Pass, Timeout
-
-# dartk: JIT failures (debug)
-[ $compiler == dartk && $mode == debug ]
-LibTest/isolate/Isolate/spawnUri_A01_t04: Pass, Slow, Timeout
-
-# dartk: precompilation failures
-[ $compiler == dartkp ]
-Language/Overview/Scoping/hiding_declaration_t11: Crash
-Language/Overview/Scoping/hiding_declaration_t12: Crash
-Language/Expressions/Constants/depending_on_itself_t01: MissingCompileTimeError
-Language/Expressions/Constants/depending_on_itself_t02: MissingCompileTimeError
-Language/Classes/Constructors/Generative_Constructors/execution_of_an_initializer_t02: Pass
-Language/Expressions/Constants/bitwise_operators_t05: Crash
-Language/Expressions/Constants/logical_expression_t04: Crash
-Language/Overview/Scoping/hiding_declaration_t11: Pass
-Language/Overview/Scoping/hiding_declaration_t12: Pass
-
-
-# dartk: precompilation failures (debug)
-[ $compiler == dartkp && $mode == debug ]
-Language/Functions/External_Functions/not_connected_to_a_body_t01: Crash
-Language/Statements/For/Asynchronous_For_in/execution_t04: Crash
-
-# dartk: checked mode failures
-[ $checked && ($compiler == dartk || $compiler == dartkp) ]
-Language/Classes/Constructors/Factories/arguments_type_t01: RuntimeError
-Language/Classes/Constructors/Factories/function_type_t02: Fail # dartbug.com/30527
-Language/Expressions/Constants/exception_t04: Pass
-Language/Expressions/Function_Expressions/static_type_dynamic_asyncs_t03: RuntimeError # dartbgug.com/30667
-Language/Expressions/Function_Expressions/static_type_dynamic_async_t03: RuntimeError # dartbgug.com/30667
-Language/Expressions/Function_Expressions/static_type_dynamic_syncs_t03: RuntimeError # dartbug.com/30667
-Language/Expressions/Function_Expressions/static_type_form_3_asyncs_t03: RuntimeError # dartbgug.com/30667
-Language/Expressions/Function_Expressions/static_type_form_3_async_t03: RuntimeError # dartbgug.com/30667
-Language/Expressions/Function_Expressions/static_type_form_3_syncs_t03: RuntimeError # dartbgug.com/30667
-Language/Generics/malformed_t02: RuntimeError
-Language/Statements/Return/runtime_type_t04: RuntimeError
-Language/Statements/Switch/execution_t01: RuntimeError
-Language/Statements/Switch/type_t01: RuntimeError
-Language/Types/Dynamic_Type_System/malbounded_type_error_t01: RuntimeError
-Language/Types/Parameterized_Types/malbounded_t06: RuntimeError
-Language/Types/Static_Types/malformed_type_t04: RuntimeError
-
-# Deferred loading kernel issue 28335.
-[ $compiler == dartk || $compiler == dartkp ]
-Language/Libraries_and_Scripts/Imports/deferred_import_t01: CompileTimeError # Deferred loading kernel issue 28335.
-Language/Libraries_and_Scripts/Imports/deferred_import_t02: CompileTimeError # Deferred loading kernel issue 28335.
diff --git a/tests/co19/co19-runtime.status b/tests/co19/co19-runtime.status
index fb18e00..92571b0 100644
--- a/tests/co19/co19-runtime.status
+++ b/tests/co19/co19-runtime.status
@@ -2,236 +2,23 @@
# 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.
-[ $runtime == vm ]
-LibTest/isolate/Isolate/spawnUri_A01_t06: Pass, Fail # Issue 28269, These tests are timing dependent and should be non-flaky once the fix for https://github.com/dart-lang/co19/issues/86 is merged into master. (They are skipped on $runtime == pre_compiled below.)
-LibTest/isolate/Isolate/spawnUri_A01_t07: Pass, Fail # Issue 28269, These tests are timing dependent and should be non-flaky once the fix for https://github.com/dart-lang/co19/issues/86 is merged into master. (They are skipped on $runtime == pre_compiled below.)
-LibTest/isolate/Isolate/spawn_A04_t01: Pass, Fail # Issue 28269, These tests are timing dependent and should be non-flaky once the fix for https://github.com/dart-lang/co19/issues/86 is merged into master. (They are skipped on $runtime == pre_compiled below.)
-
-[ $runtime == vm && $checked ]
-LibTest/typed_data/Float64List/firstWhere_A02_t01: Fail # These tests fail in checked mode because they are incorrect.
-LibTest/typed_data/Float64List/reduce_A01_t01: Fail # These tests fail in checked mode because they are incorrect.
-LibTest/typed_data/Float64List/add_A01_t01: Fail # These tests fail in checked mode because they are incorrect.
-LibTest/typed_data/Float32List/reduce_A01_t01: Fail # These tests fail in checked mode because they are incorrect.
-
-[$runtime == vm && $compiler == none && $system == fuchsia]
-*: Skip # Tests not included in the image.
-
-[ ($runtime == vm || $runtime == dart_precompiled) && ($compiler != dartk && $compiler != dartkp) ]
-Language/Classes/Constructors/Generative_Constructors/initializing_formals_execution_t02: CompileTimeError # Issue 114
-
-[ $runtime == dart_precompiled ]
-Language/Classes/Constructors/Generative_Constructors/execution_of_an_initializer_t02: CompileTimeError # Issue 114
-
-[ $runtime == vm || $runtime == flutter || $runtime == dart_precompiled ]
-LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: RuntimeError # Issue 1296
-LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t01: RuntimeError, Fail # Issue 22200
-LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t05: RuntimeError, Fail # Issue 22200
-LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t06: RuntimeError, Fail # Issue 22200
-LibTest/core/RegExp/Pattern_semantics/splitQueryString_A02_t01: RuntimeError # Issue 1296
-
-LibTest/core/int/toRadixString_A01_t01: Fail # co19 issue 492
-
-Language/Libraries_and_Scripts/Exports/reexport_t02: MissingCompileTimeError, fail # Dart issue 12916
-
-Language/Libraries_and_Scripts/Scripts/top_level_main_t01: skip # Issue 29895
-
-Language/Statements/Assert/execution_t02: skip # co19 issue 734
-Language/Statements/Assert/execution_t03: skip # co19 issue 734
-Language/Statements/Assert/type_t02: skip # co19 issue 734
-Language/Statements/Assert/type_t05: skip # co19 issue 734
-
-LibTest/isolate/Isolate/spawnUri_A02_t02: Skip # Issue 15974
-LibTest/isolate/Isolate/spawnUri_A02_t03: Skip # Issue 15974
-LibTest/isolate/Isolate/spawn_A03_t02: Skip # Issue 15974
-LibTest/isolate/Isolate/spawn_A04_t01: Skip # Issue 15974
-LibTest/isolate/Isolate/spawn_A04_t04: Skip # Issue 15974
-LibTest/isolate/Isolate/spawn_A06_t03: Skip # Issue 15974
-LibTest/isolate/Isolate/spawn_A06_t05: Skip # Issue 15974
-LibTest/isolate/Isolate/spawn_A04_t03: Skip # Flaky, Issue 15974
-
-LibTest/core/Symbol/Symbol_A01_t03: RuntimeError # Issue 13596
-LibTest/core/Symbol/Symbol_A01_t05: RuntimeError # Issue 13596
-
-[ $runtime == vm || $runtime == flutter || $runtime == dart_precompiled ]
-LibTest/typed_data/Float32x4/reciprocalSqrt_A01_t01: Pass, Fail # co19 issue 599
-LibTest/typed_data/Float32x4/reciprocal_A01_t01: Pass, Fail # co19 issue 599
-
-[ ($runtime == vm || $runtime == dart_precompiled ) && $mode == debug ]
-LibTest/core/List/List_class_A01_t02: Pass, Slow
-
-[ ($runtime == vm || $runtime == dart_precompiled) && ($arch != x64 && $arch != simarm64 && $arch != arm64 && $arch != simdbc64 && $arch != simdbc) ]
-LibTest/core/int/operator_left_shift_A01_t02: Fail # co19 issue 129
-
-[ ($compiler == none || $compiler == precompiler) && ($runtime == vm || $runtime == dart_precompiled) && $arch == arm64 ]
-LibTest/core/List/List_class_A01_t02: Skip # co19 issue 673, These tests take too much memory (300 MB) for our 1 GB test machine co19 issue 673. http://code.google.com/p/co19/issues/detail?id=673
-LibTest/collection/ListMixin/ListMixin_class_A01_t02: Skip # co19 issue 673, These tests take too much memory (300 MB) for our 1 GB test machine co19 issue 673. http://code.google.com/p/co19/issues/detail?id=673
-LibTest/collection/ListBase/ListBase_class_A01_t02: Skip # co19 issue 673, These tests take too much memory (300 MB) for our 1 GB test machine co19 issue 673. http://code.google.com/p/co19/issues/detail?id=673
-
-[ ($runtime == vm || $runtime == dart_precompiled) && ($arch == simarm || $arch == simarmv6 || $arch == simarmv5te || $arch == simarm64 || $arch == simdbc || $arch == simdbc64) ]
-LibTest/collection/DoubleLinkedQueue/DoubleLinkedQueue_class_A01_t01: Skip # Timeout
-LibTest/collection/IterableBase/IterableBase_class_A01_t02: Skip # Timeout
-LibTest/collection/IterableMixin/IterableMixin_class_A02_t01: Skip # Timeout
-LibTest/collection/ListBase/ListBase_class_A01_t01: Skip # Timeout
-LibTest/collection/ListBase/ListBase_class_A01_t02: Skip # Timeout
-LibTest/collection/ListMixin/ListMixin_class_A01_t01: Skip # Timeout
-LibTest/collection/ListMixin/ListMixin_class_A01_t02: Skip # Timeout
-LibTest/core/Uri/Uri_A06_t03: Skip # Timeout
-
-[ $system == windows ]
-LibTest/collection/ListMixin/ListMixin_class_A01_t02: Pass, Slow
-LibTest/collection/ListBase/ListBase_class_A01_t02: Pass, Slow
-
-[ $runtime == vm || $runtime == dart_precompiled || $runtime == flutter]
-LibTest/isolate/Isolate/spawn_A02_t01: Skip # co19 issue 667
-LibTest/html/*: SkipByDesign # dart:html not supported on VM.
-LayoutTests/fast/*: SkipByDesign # DOM not supported on VM.
-WebPlatformTest/*: SkipByDesign # dart:html not supported on VM.
-Language/Expressions/Function_Invocation/async_generator_invokation_t08: Fail # Issue 25967
-Language/Expressions/Function_Invocation/async_generator_invokation_t10: Fail # Issue 25967
-Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t08: RuntimeError # Issue 25748
-Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t09: RuntimeError # Issue 25748
-Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t10: RuntimeError # Issue 25748
-Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_sync_t05: RuntimeError # Issue 25662,25634
-Language/Expressions/Assignment/super_assignment_failed_t05: RuntimeError # Issue 25671
-
-[ ($runtime == vm || $runtime == dart_precompiled) && $mode == debug && $builder_tag == asan ]
-Language/Types/Interface_Types/subtype_t27: Skip # Issue 21174.
-
-#
-# flutter runs with --error-on-bad-type so the following two tests end up
-# with errors and pass
-#
-[ $runtime == flutter ]
-Language/Expressions/Identifier_Reference/built_in_not_dynamic_t14: Pass
-Language/Expressions/Identifier_Reference/built_in_not_dynamic_t19: Pass
-Language/Statements/Yield_and_Yield_Each/Yield_Each/location_t01: Pass
-Language/Statements/Yield_and_Yield_Each/Yield_Each/location_t03: Pass
-Language/Statements/Yield_and_Yield_Each/Yield_Each/location_t05: Pass
-
-[ ($runtime == vm || $runtime == dart_precompiled || $runtime == flutter) && $compiler != dartk && $compiler != dartkp ]
-Language/Expressions/Method_Invocation/Ordinary_Invocation/object_method_invocation_t01: MissingCompileTimeError # Issue 25496
-Language/Expressions/Method_Invocation/Ordinary_Invocation/object_method_invocation_t02: MissingCompileTimeError # Issue 25496
-Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t01: MissingCompileTimeError # Issue 24332
-Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t02: MissingCompileTimeError # Issue 24332
-Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t03: MissingCompileTimeError # Issue 24332
-Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t04: MissingCompileTimeError # Issue 24332
-Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t05: MissingCompileTimeError # Issue 24332
-Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t06: MissingCompileTimeError # Issue 24332
-Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t07: MissingCompileTimeError # Issue 24332
-Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t08: MissingCompileTimeError # Issue 24332
-Language/Mixins/Mixin_Application/syntax_t16: CompileTimeError # Issue 25765
-Language/Mixins/declaring_constructor_t05: MissingCompileTimeError # Issue 24767
-Language/Mixins/declaring_constructor_t06: MissingCompileTimeError # Issue 24767
-Language/Statements/Yield_and_Yield_Each/Yield_Each/location_t01: MissingCompileTimeError # Issue 25495
-Language/Statements/Yield_and_Yield_Each/Yield_Each/location_t03: MissingCompileTimeError # Issue 25495
-Language/Statements/Yield_and_Yield_Each/Yield_Each/location_t05: MissingCompileTimeError # Issue 25495
-
-Language/Libraries_and_Scripts/Exports/invalid_uri_t02: Fail
-Language/Libraries_and_Scripts/Exports/reexport_t01: fail # Dart issue 12916
-Language/Libraries_and_Scripts/Imports/invalid_uri_t02: Fail
-Language/Libraries_and_Scripts/Parts/syntax_t06: Fail
-Language/Statements/Labels/syntax_t03: fail # Dart issue 2238
-Language/Statements/Switch/syntax_t02: fail # Dart issue 12908
-
-[ $runtime == dart_precompiled ]
-Language/Metadata/*: SkipByDesign # Uses dart:mirrors
-Language/Expressions/Null/instance_of_class_null_t01: Skip # Uses dart:mirrors
-
-[ $compiler == precompiler || $compiler == app_jit || $mode == product || $runtime == flutter]
-Language/Libraries_and_Scripts/Imports/deferred_import_t01: Skip # Eager loading
-Language/Libraries_and_Scripts/Imports/deferred_import_t02: Skip # Eager loading
-Language/Libraries_and_Scripts/Imports/invalid_uri_deferred_t01: Skip # Eager loading
-Language/Libraries_and_Scripts/Imports/invalid_uri_deferred_t02: Skip # Eager loading
-
-[ $runtime == dart_precompiled ]
-LibTest/isolate/Isolate/spawnUri*: SkipByDesign # Isolate.spawnUri
-
[ $compiler == precompiler ]
LibTest/collection/ListBase/ListBase_class_A01_t02: Pass, Timeout
LibTest/collection/ListMixin/ListMixin_class_A01_t02: Pass, Timeout
LibTest/core/Map/Map_class_A01_t04: Pass, Timeout
LibTest/core/Uri/encodeQueryComponent_A01_t02: Pass, Timeout
-[ $compiler == precompiler || $compiler == app_jit ]
-Language/Mixins/Mixin_Application/error_t01: Pass
-Language/Mixins/Mixin_Application/error_t02: Pass
-Language/Mixins/declaring_constructor_t01: Pass
+[ $runtime == dart_precompiled ]
+Language/Classes/Constructors/Generative_Constructors/execution_of_an_initializer_t02: CompileTimeError # Issue 114
+Language/Expressions/Null/instance_of_class_null_t01: Skip # Uses dart:mirrors
+Language/Metadata/*: SkipByDesign # Uses dart:mirrors
+LibTest/isolate/Isolate/spawnUri*: SkipByDesign # Isolate.spawnUri
-[ ($arch == simdbc || $arch == simdbc64) && $mode == debug ]
-LibTest/collection/ListMixin/ListMixin_class_A01_t02: Timeout # TODO(vegorov) These tests are very slow on unoptimized SIMDBC
-LibTest/collection/ListBase/ListBase_class_A01_t02: Timeout # TODO(vegorov) These tests are very slow on unoptimized SIMDBC
-
-[ $compiler == precompiler && $runtime == dart_precompiled && $system == android ]
-*: Skip # Issue 27294
-
-LibTest/math/log_A01_t01: RuntimeError # Precision of Math.log (Issue #18998)
-Language/Expressions/Object_Identity/double_t02: RuntimeError # Issue #26374
-
-[ $compiler == precompiler && $runtime == dart_precompiled && $arch == simarm ]
-LibTest/typed_data/Float32x4/operator_division_A01_t02: RuntimeError # Issue #26675
-
-[ $hot_reload || $hot_reload_rollback || $runtime == flutter ]
-Language/Expressions/Assignment/prefix_object_t02: Skip # Requires deferred libraries
-Language/Expressions/Constants/constant_constructor_t03: Skip # Requires deferred libraries
-Language/Expressions/Constants/identifier_denotes_a_constant_t06: Skip # Requires deferred libraries
-Language/Expressions/Constants/identifier_denotes_a_constant_t07: Skip # Requires deferred libraries
-Language/Expressions/Constants/static_constant_t06: Skip # Requires deferred libraries
-Language/Expressions/Constants/static_constant_t07: Skip # Requires deferred libraries
-Language/Expressions/Constants/top_level_function_t04: Skip # Requires deferred libraries
-Language/Expressions/Constants/top_level_function_t05: Skip # Requires deferred libraries
-Language/Expressions/Instance_Creation/Const/deferred_type_t01: Skip # Requires deferred libraries
-Language/Expressions/Instance_Creation/Const/deferred_type_t02: Skip # Requires deferred libraries
-Language/Expressions/Instance_Creation/New/evaluation_t19: Skip # Requires deferred libraries
-Language/Expressions/Instance_Creation/New/evaluation_t20: Skip # Requires deferred libraries
-Language/Expressions/Type_Cast/evaluation_t10: Skip # Requires deferred libraries
-Language/Expressions/Type_Test/evaluation_t10: Skip # Requires deferred libraries
-Language/Libraries_and_Scripts/Imports/deferred_import_t01: Skip # Requires deferred libraries
-Language/Libraries_and_Scripts/Imports/deferred_import_t02: Skip # Requires deferred libraries
-Language/Libraries_and_Scripts/Imports/invalid_uri_deferred_t01: Skip # Requires deferred libraries
-Language/Libraries_and_Scripts/Imports/invalid_uri_deferred_t02: Skip # Requires deferred libraries
-Language/Libraries_and_Scripts/Imports/invalid_uri_deferred_t03: Skip # Requires deferred libraries
-Language/Libraries_and_Scripts/Imports/static_type_t01: Skip # Requires deferred libraries
-Language/Types/Dynamic_Type_System/deferred_type_error_t01: Skip # Requires deferred libraries
-Language/Types/Static_Types/deferred_type_t01: Skip # Requires deferred libraries
-LibTest/async/DeferredLibrary/DeferredLibrary_A01_t01: Skip # Requires deferred libraries
-LibTest/collection/IterableBase/IterableBase_class_A01_t02: Pass, Timeout
-LibTest/collection/IterableMixin/IterableMixin_class_A02_t01: Pass, Timeout
-LibTest/collection/ListBase/ListBase_class_A01_t01: Pass, Timeout
-LibTest/collection/ListBase/ListBase_class_A01_t02: Pass, Timeout
-LibTest/collection/ListMixin/ListMixin_class_A01_t01: Pass, Timeout
-LibTest/collection/ListMixin/ListMixin_class_A01_t02: Pass, Timeout
-LibTest/core/List/List_class_A01_t01: Pass, Timeout
-LibTest/core/List/List_class_A01_t02: Pass, Timeout
-LibTest/core/Map/Map_class_A01_t04: Pass, Timeout
-LibTest/core/Uri/Uri_A06_t03: Pass, Timeout
-LibTest/core/Uri/encodeQueryComponent_A01_t02: Pass, Timeout
-LibTest/isolate/Isolate/spawn_A01_t04: Pass, Timeout
-LibTest/isolate/ReceivePort/take_A01_t02: Skip # Issue 27773
-LibTest/collection/DoubleLinkedQueue/DoubleLinkedQueue_class_A01_t01: Pass, Slow
-
-[ $runtime == vm && $mode == release && $system == linux && ($arch == x64 || $arch == ia32)]
-LibTest/isolate/Isolate/spawn_A04_t05: Pass, Slow
-
-[ $runtime == vm && $mode == release && $system == linux && $arch == ia32]
-service/dev_fs_spawn_test: Pass, Fail # Issue 28411
-
-# flutter uses --error_on_bad_type, --error_on_bad_override and
-# --await_is_keyword so that tests failing with a Compilation Error is fine.
+#
+# flutter runs with --error-on-bad-type so the following two tests end up
+# with errors and pass
+#
[ $runtime == flutter ]
-LibTest/isolate/Isolate/spawnUri* : Skip # spawnUri is not supported by flutter
-LibTest/collection/SplayTreeSet/SplayTreeSet.from_A02_t04: Pass, Timeout
-LibTest/collection/LinkedList/addFirst_A01_t01: Pass, Timeout # Flutter Issue 9109
-LibTest/typed_data/Int32List/buffer_A01_t02: Pass, Timeout # Flutter Issue 9109
-LibTest/collection/DoubleLinkedQueueEntry/append_A01_t01: Pass, Timeout # Flutter Issue 9109
-
-LibTest/async/Future/doWhile_A05_t01: Pass, RuntimeError # Flutter Issue 9109
-LibTest/async/Future/forEach_A04_t02: Pass, RuntimeError # Flutter Issue 9109
-LibTest/async/StreamController/StreamController.broadcast_A04_t01: Pass, RuntimeError # Flutter Issue 9109
-LibTest/async/Stream/timeout_A01_t01: Pass, RuntimeError # Flutter Issue 9109
-LibTest/async/Stream/timeout_A03_t01: Pass, RuntimeError # Flutter Issue 9109
-LibTest/async/Stream/timeout_A04_t01: Pass, RuntimeError # Flutter Issue 9109
-LibTest/isolate/ReceivePort/sendPort_A01_t01: Pass, Timeout # Flutter Issue 9109
-
Language/Classes/Abstract_Instance_Members/override_more_required_parameters_t01: CompileTimeError
Language/Classes/Abstract_Instance_Members/override_no_named_parameters_t01: CompileTimeError
Language/Classes/Abstract_Instance_Members/override_not_a_subtype_t01: CompileTimeError
@@ -258,9 +45,12 @@
Language/Errors_and_Warnings/static_warning_t01: CompileTimeError
Language/Expressions/Assignment/expression_assignment_failed_t06: CompileTimeError
Language/Expressions/Assignment/super_assignment_failed_t05: CompileTimeError
-Language/Expressions/Instance_Creation/malformed_or_malbounded_t01: CompileTimeError
-Language/Expressions/Instance_Creation/malformed_or_malbounded_t03: CompileTimeError
-Language/Expressions/Instance_Creation/malformed_or_malbounded_t07: CompileTimeError
+Language/Expressions/Await_Expressions/syntax_t07: CompileTimeError
+Language/Expressions/Await_Expressions/syntax_t08: CompileTimeError
+Language/Expressions/Await_Expressions/syntax_t09: CompileTimeError
+Language/Expressions/Identifier_Reference/async_and_generator_t01: CompileTimeError
+Language/Expressions/Identifier_Reference/built_in_not_dynamic_t14: Pass
+Language/Expressions/Identifier_Reference/built_in_not_dynamic_t19: Pass
Language/Expressions/Instance_Creation/New/evaluation_t03: CompileTimeError
Language/Expressions/Instance_Creation/New/evaluation_t16: CompileTimeError
Language/Expressions/Instance_Creation/New/evaluation_t17: CompileTimeError
@@ -274,6 +64,9 @@
Language/Expressions/Instance_Creation/New/type_t02: CompileTimeError
Language/Expressions/Instance_Creation/New/type_t03: CompileTimeError
Language/Expressions/Instance_Creation/New/type_t05: CompileTimeError
+Language/Expressions/Instance_Creation/malformed_or_malbounded_t01: CompileTimeError
+Language/Expressions/Instance_Creation/malformed_or_malbounded_t03: CompileTimeError
+Language/Expressions/Instance_Creation/malformed_or_malbounded_t07: CompileTimeError
Language/Expressions/Null/instance_of_class_null_t01: CompileTimeError
Language/Expressions/Type_Cast/evaluation_t04: CompileTimeError
Language/Expressions/Type_Cast/evaluation_t05: CompileTimeError
@@ -323,8 +116,8 @@
Language/Metadata/before_param_t07: CompileTimeError
Language/Metadata/before_param_t08: CompileTimeError
Language/Metadata/before_param_t09: CompileTimeError
-Language/Metadata/before_typedef_t01: CompileTimeError
Language/Metadata/before_type_param_t01: CompileTimeError
+Language/Metadata/before_typedef_t01: CompileTimeError
Language/Metadata/before_variable_t01: CompileTimeError
Language/Metadata/before_variable_t02: CompileTimeError
Language/Mixins/Mixin_Application/syntax_t21: CompileTimeError
@@ -337,6 +130,9 @@
Language/Statements/Try/malformed_type_t01: CompileTimeError
Language/Statements/Try/malformed_type_t02: CompileTimeError
Language/Statements/Try/malformed_type_t03: CompileTimeError
+Language/Statements/Yield_and_Yield_Each/Yield_Each/location_t01: Pass
+Language/Statements/Yield_and_Yield_Each/Yield_Each/location_t03: Pass
+Language/Statements/Yield_and_Yield_Each/Yield_Each/location_t05: Pass
Language/Types/Dynamic_Type_System/malbounded_type_error_t01: CompileTimeError
Language/Types/Parameterized_Types/Actual_Type_of_Declaration/actual_type_t02: CompileTimeError
Language/Types/Parameterized_Types/Actual_Type_of_Declaration/actual_type_t03: CompileTimeError
@@ -358,13 +154,196 @@
Language/Types/Static_Types/malformed_type_t04: CompileTimeError
Language/Types/Static_Types/malformed_type_t05: CompileTimeError
Language/Types/Static_Types/malformed_type_t06: CompileTimeError
-Language/Expressions/Await_Expressions/syntax_t07: CompileTimeError
-Language/Expressions/Await_Expressions/syntax_t08: CompileTimeError
-Language/Expressions/Await_Expressions/syntax_t09: CompileTimeError
-Language/Expressions/Identifier_Reference/async_and_generator_t01: CompileTimeError
+LibTest/async/Future/doWhile_A05_t01: Pass, RuntimeError # Flutter Issue 9109
+LibTest/async/Future/forEach_A04_t02: Pass, RuntimeError # Flutter Issue 9109
+LibTest/async/Stream/timeout_A01_t01: Pass, RuntimeError # Flutter Issue 9109
+LibTest/async/Stream/timeout_A03_t01: Pass, RuntimeError # Flutter Issue 9109
+LibTest/async/Stream/timeout_A04_t01: Pass, RuntimeError # Flutter Issue 9109
+LibTest/async/StreamController/StreamController.broadcast_A04_t01: Pass, RuntimeError # Flutter Issue 9109
+LibTest/collection/DoubleLinkedQueueEntry/append_A01_t01: Pass, Timeout # Flutter Issue 9109
+LibTest/collection/LinkedList/addFirst_A01_t01: Pass, Timeout # Flutter Issue 9109
+LibTest/collection/SplayTreeSet/SplayTreeSet.from_A02_t04: Pass, Timeout
+LibTest/isolate/Isolate/spawnUri*: Skip # spawnUri is not supported by flutter
+LibTest/isolate/ReceivePort/sendPort_A01_t01: Pass, Timeout # Flutter Issue 9109
+LibTest/typed_data/Int32List/buffer_A01_t02: Pass, Timeout # Flutter Issue 9109
+
+[ $runtime == vm ]
+LibTest/isolate/Isolate/spawnUri_A01_t06: Pass, Fail # Issue 28269, These tests are timing dependent and should be non-flaky once the fix for https://github.com/dart-lang/co19/issues/86 is merged into master. (They are skipped on $runtime == pre_compiled below.)
+LibTest/isolate/Isolate/spawnUri_A01_t07: Pass, Fail # Issue 28269, These tests are timing dependent and should be non-flaky once the fix for https://github.com/dart-lang/co19/issues/86 is merged into master. (They are skipped on $runtime == pre_compiled below.)
+LibTest/isolate/Isolate/spawn_A04_t01: Pass, Fail # Issue 28269, These tests are timing dependent and should be non-flaky once the fix for https://github.com/dart-lang/co19/issues/86 is merged into master. (They are skipped on $runtime == pre_compiled below.)
+
+[ $system == windows ]
+LibTest/collection/ListBase/ListBase_class_A01_t02: Pass, Slow
+LibTest/collection/ListMixin/ListMixin_class_A01_t02: Pass, Slow
+
+[ $arch == arm64 && ($compiler == none || $compiler == precompiler) && ($runtime == dart_precompiled || $runtime == vm) ]
+LibTest/collection/ListBase/ListBase_class_A01_t02: Skip # co19 issue 673, These tests take too much memory (300 MB) for our 1 GB test machine co19 issue 673. http://code.google.com/p/co19/issues/detail?id=673
+LibTest/collection/ListMixin/ListMixin_class_A01_t02: Skip # co19 issue 673, These tests take too much memory (300 MB) for our 1 GB test machine co19 issue 673. http://code.google.com/p/co19/issues/detail?id=673
+LibTest/core/List/List_class_A01_t02: Skip # co19 issue 673, These tests take too much memory (300 MB) for our 1 GB test machine co19 issue 673. http://code.google.com/p/co19/issues/detail?id=673
+
+[ $arch != arm64 && $arch != simarm64 && $arch != simdbc && $arch != simdbc64 && $arch != x64 && ($runtime == dart_precompiled || $runtime == vm) ]
+LibTest/core/int/operator_left_shift_A01_t02: Fail # co19 issue 129
+
+[ $arch == ia32 && $mode == release && $runtime == vm && $system == linux ]
+service/dev_fs_spawn_test: Pass, Fail # Issue 28411
+
+[ $arch == simarm && $compiler == precompiler && $runtime == dart_precompiled ]
+LibTest/typed_data/Float32x4/operator_division_A01_t02: RuntimeError # Issue #26675
+
+[ $builder_tag == asan && $mode == debug && ($runtime == dart_precompiled || $runtime == vm) ]
+Language/Types/Interface_Types/subtype_t27: Skip # Issue 21174.
+
+[ $compiler != dartk && $compiler != dartkp && ($runtime == dart_precompiled || $runtime == flutter || $runtime == vm) ]
+Language/Expressions/Method_Invocation/Ordinary_Invocation/object_method_invocation_t01: MissingCompileTimeError # Issue 25496
+Language/Expressions/Method_Invocation/Ordinary_Invocation/object_method_invocation_t02: MissingCompileTimeError # Issue 25496
+Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t01: MissingCompileTimeError # Issue 24332
+Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t02: MissingCompileTimeError # Issue 24332
+Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t03: MissingCompileTimeError # Issue 24332
+Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t04: MissingCompileTimeError # Issue 24332
+Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t05: MissingCompileTimeError # Issue 24332
+Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t06: MissingCompileTimeError # Issue 24332
+Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t07: MissingCompileTimeError # Issue 24332
+Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t08: MissingCompileTimeError # Issue 24332
+Language/Libraries_and_Scripts/Exports/invalid_uri_t02: Fail
+Language/Libraries_and_Scripts/Exports/reexport_t01: Fail # Dart issue 12916
+Language/Libraries_and_Scripts/Imports/invalid_uri_t02: Fail
+Language/Libraries_and_Scripts/Parts/syntax_t06: Fail
+Language/Mixins/Mixin_Application/syntax_t16: CompileTimeError # Issue 25765
+Language/Mixins/declaring_constructor_t05: MissingCompileTimeError # Issue 24767
+Language/Mixins/declaring_constructor_t06: MissingCompileTimeError # Issue 24767
+Language/Statements/Labels/syntax_t03: Fail # Dart issue 2238
+Language/Statements/Switch/syntax_t02: Fail # Dart issue 12908
+Language/Statements/Yield_and_Yield_Each/Yield_Each/location_t01: MissingCompileTimeError # Issue 25495
+Language/Statements/Yield_and_Yield_Each/Yield_Each/location_t03: MissingCompileTimeError # Issue 25495
+Language/Statements/Yield_and_Yield_Each/Yield_Each/location_t05: MissingCompileTimeError # Issue 25495
+
+[ $compiler != dartk && $compiler != dartkp && ($runtime == dart_precompiled || $runtime == vm) ]
+Language/Classes/Constructors/Generative_Constructors/initializing_formals_execution_t02: CompileTimeError # Issue 114
+
+[ $compiler == none && $runtime == vm && $system == fuchsia ]
+*: Skip # Tests not included in the image.
+
+[ $compiler == precompiler && $runtime == dart_precompiled && $system == android ]
+*: Skip # Issue 27294
+Language/Expressions/Object_Identity/double_t02: RuntimeError # Issue #26374
+LibTest/math/log_A01_t01: RuntimeError # Precision of Math.log (Issue #18998)
+
+[ $mode == debug && ($arch == simdbc || $arch == simdbc64) ]
+LibTest/collection/ListBase/ListBase_class_A01_t02: Timeout # TODO(vegorov) These tests are very slow on unoptimized SIMDBC
+LibTest/collection/ListMixin/ListMixin_class_A01_t02: Timeout # TODO(vegorov) These tests are very slow on unoptimized SIMDBC
+
+[ $mode == debug && ($runtime == dart_precompiled || $runtime == vm) ]
+LibTest/core/List/List_class_A01_t02: Pass, Slow
+
+[ $mode == release && $runtime == vm && $system == linux && ($arch == ia32 || $arch == x64) ]
+LibTest/isolate/Isolate/spawn_A04_t05: Pass, Slow
# Obfuscated mode expectations
[ $runtime == dart_precompiled && $minified ]
-Language/Enums/declaration_equivalent_t01: Skip # Enum.toString is obfuscated.
-Language/Expressions/Property_Extraction/Super_Getter_Access_and_Method_Closurization/no_such_method_t01: Skip # Uses new Symbol() instead of const Symbol()
-LibTest/core/Symbol/Symbol_A01_t01: Skip # Uses new Symbol()
+Language/Enums/declaration_equivalent_t01: Skip # Enum.toString is obfuscated.
+Language/Expressions/Property_Extraction/Super_Getter_Access_and_Method_Closurization/no_such_method_t01: Skip # Uses new Symbol() instead of const Symbol()
+LibTest/core/Symbol/Symbol_A01_t01: Skip # Uses new Symbol()
+
+[ $runtime == vm && $checked ]
+LibTest/typed_data/Float32List/reduce_A01_t01: Fail # These tests fail in checked mode because they are incorrect.
+LibTest/typed_data/Float64List/add_A01_t01: Fail # These tests fail in checked mode because they are incorrect.
+LibTest/typed_data/Float64List/firstWhere_A02_t01: Fail # These tests fail in checked mode because they are incorrect.
+LibTest/typed_data/Float64List/reduce_A01_t01: Fail # These tests fail in checked mode because they are incorrect.
+
+[ ($arch == simarm || $arch == simarm64 || $arch == simarmv5te || $arch == simarmv6 || $arch == simdbc || $arch == simdbc64) && ($runtime == dart_precompiled || $runtime == vm) ]
+LibTest/collection/DoubleLinkedQueue/DoubleLinkedQueue_class_A01_t01: Skip # Timeout
+LibTest/collection/IterableBase/IterableBase_class_A01_t02: Skip # Timeout
+LibTest/collection/IterableMixin/IterableMixin_class_A02_t01: Skip # Timeout
+LibTest/collection/ListBase/ListBase_class_A01_t01: Skip # Timeout
+LibTest/collection/ListBase/ListBase_class_A01_t02: Skip # Timeout
+LibTest/collection/ListMixin/ListMixin_class_A01_t01: Skip # Timeout
+LibTest/collection/ListMixin/ListMixin_class_A01_t02: Skip # Timeout
+LibTest/core/Uri/Uri_A06_t03: Skip # Timeout
+
+[ $compiler == app_jit || $compiler == precompiler ]
+Language/Mixins/Mixin_Application/error_t01: Pass
+Language/Mixins/Mixin_Application/error_t02: Pass
+Language/Mixins/declaring_constructor_t01: Pass
+
+[ $compiler == app_jit || $compiler == precompiler || $mode == product || $runtime == flutter ]
+Language/Libraries_and_Scripts/Imports/deferred_import_t01: Skip # Eager loading
+Language/Libraries_and_Scripts/Imports/deferred_import_t02: Skip # Eager loading
+Language/Libraries_and_Scripts/Imports/invalid_uri_deferred_t01: Skip # Eager loading
+Language/Libraries_and_Scripts/Imports/invalid_uri_deferred_t02: Skip # Eager loading
+
+[ $runtime == dart_precompiled || $runtime == flutter || $runtime == vm ]
+Language/Expressions/Assignment/super_assignment_failed_t05: RuntimeError # Issue 25671
+Language/Expressions/Function_Invocation/async_generator_invokation_t08: Fail # Issue 25967
+Language/Expressions/Function_Invocation/async_generator_invokation_t10: Fail # Issue 25967
+Language/Libraries_and_Scripts/Exports/reexport_t02: MissingCompileTimeError, Fail # Dart issue 12916
+Language/Libraries_and_Scripts/Scripts/top_level_main_t01: Skip # Issue 29895
+Language/Statements/Assert/execution_t02: Skip # co19 issue 734
+Language/Statements/Assert/execution_t03: Skip # co19 issue 734
+Language/Statements/Assert/type_t02: Skip # co19 issue 734
+Language/Statements/Assert/type_t05: Skip # co19 issue 734
+Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t08: RuntimeError # Issue 25748
+Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t09: RuntimeError # Issue 25748
+Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t10: RuntimeError # Issue 25748
+Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_sync_t05: RuntimeError # Issue 25662,25634
+LayoutTests/fast/*: SkipByDesign # DOM not supported on VM.
+LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A03_t01: RuntimeError # Issue 1296
+LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t01: RuntimeError, Fail # Issue 22200
+LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t05: RuntimeError, Fail # Issue 22200
+LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t06: RuntimeError, Fail # Issue 22200
+LibTest/core/RegExp/Pattern_semantics/splitQueryString_A02_t01: RuntimeError # Issue 1296
+LibTest/core/Symbol/Symbol_A01_t03: RuntimeError # Issue 13596
+LibTest/core/Symbol/Symbol_A01_t05: RuntimeError # Issue 13596
+LibTest/core/int/toRadixString_A01_t01: Fail # co19 issue 492
+LibTest/html/*: SkipByDesign # dart:html not supported on VM.
+LibTest/isolate/Isolate/spawnUri_A02_t02: Skip # Issue 15974
+LibTest/isolate/Isolate/spawnUri_A02_t03: Skip # Issue 15974
+LibTest/isolate/Isolate/spawn_A02_t01: Skip # co19 issue 667
+LibTest/isolate/Isolate/spawn_A03_t02: Skip # Issue 15974
+LibTest/isolate/Isolate/spawn_A04_t01: Skip # Issue 15974
+LibTest/isolate/Isolate/spawn_A04_t03: Skip # Flaky, Issue 15974
+LibTest/isolate/Isolate/spawn_A04_t04: Skip # Issue 15974
+LibTest/isolate/Isolate/spawn_A06_t03: Skip # Issue 15974
+LibTest/isolate/Isolate/spawn_A06_t05: Skip # Issue 15974
+LibTest/typed_data/Float32x4/reciprocalSqrt_A01_t01: Pass, Fail # co19 issue 599
+LibTest/typed_data/Float32x4/reciprocal_A01_t01: Pass, Fail # co19 issue 599
+WebPlatformTest/*: SkipByDesign # dart:html not supported on VM.
+
+[ $runtime == flutter || $hot_reload || $hot_reload_rollback ]
+Language/Expressions/Assignment/prefix_object_t02: Skip # Requires deferred libraries
+Language/Expressions/Constants/constant_constructor_t03: Skip # Requires deferred libraries
+Language/Expressions/Constants/identifier_denotes_a_constant_t06: Skip # Requires deferred libraries
+Language/Expressions/Constants/identifier_denotes_a_constant_t07: Skip # Requires deferred libraries
+Language/Expressions/Constants/static_constant_t06: Skip # Requires deferred libraries
+Language/Expressions/Constants/static_constant_t07: Skip # Requires deferred libraries
+Language/Expressions/Constants/top_level_function_t04: Skip # Requires deferred libraries
+Language/Expressions/Constants/top_level_function_t05: Skip # Requires deferred libraries
+Language/Expressions/Instance_Creation/Const/deferred_type_t01: Skip # Requires deferred libraries
+Language/Expressions/Instance_Creation/Const/deferred_type_t02: Skip # Requires deferred libraries
+Language/Expressions/Instance_Creation/New/evaluation_t19: Skip # Requires deferred libraries
+Language/Expressions/Instance_Creation/New/evaluation_t20: Skip # Requires deferred libraries
+Language/Expressions/Type_Cast/evaluation_t10: Skip # Requires deferred libraries
+Language/Expressions/Type_Test/evaluation_t10: Skip # Requires deferred libraries
+Language/Libraries_and_Scripts/Imports/deferred_import_t01: Skip # Requires deferred libraries
+Language/Libraries_and_Scripts/Imports/deferred_import_t02: Skip # Requires deferred libraries
+Language/Libraries_and_Scripts/Imports/invalid_uri_deferred_t01: Skip # Requires deferred libraries
+Language/Libraries_and_Scripts/Imports/invalid_uri_deferred_t02: Skip # Requires deferred libraries
+Language/Libraries_and_Scripts/Imports/invalid_uri_deferred_t03: Skip # Requires deferred libraries
+Language/Libraries_and_Scripts/Imports/static_type_t01: Skip # Requires deferred libraries
+Language/Types/Dynamic_Type_System/deferred_type_error_t01: Skip # Requires deferred libraries
+Language/Types/Static_Types/deferred_type_t01: Skip # Requires deferred libraries
+LibTest/async/DeferredLibrary/DeferredLibrary_A01_t01: Skip # Requires deferred libraries
+LibTest/collection/DoubleLinkedQueue/DoubleLinkedQueue_class_A01_t01: Pass, Slow
+LibTest/collection/IterableBase/IterableBase_class_A01_t02: Pass, Timeout
+LibTest/collection/IterableMixin/IterableMixin_class_A02_t01: Pass, Timeout
+LibTest/collection/ListBase/ListBase_class_A01_t01: Pass, Timeout
+LibTest/collection/ListBase/ListBase_class_A01_t02: Pass, Timeout
+LibTest/collection/ListMixin/ListMixin_class_A01_t01: Pass, Timeout
+LibTest/collection/ListMixin/ListMixin_class_A01_t02: Pass, Timeout
+LibTest/core/List/List_class_A01_t01: Pass, Timeout
+LibTest/core/List/List_class_A01_t02: Pass, Timeout
+LibTest/core/Map/Map_class_A01_t04: Pass, Timeout
+LibTest/core/Uri/Uri_A06_t03: Pass, Timeout
+LibTest/core/Uri/encodeQueryComponent_A01_t02: Pass, Timeout
+LibTest/isolate/Isolate/spawn_A01_t04: Pass, Timeout
+LibTest/isolate/ReceivePort/take_A01_t02: Skip # Issue 27773
+
diff --git a/tests/compiler/dart2js/const_exp_test.dart b/tests/compiler/dart2js/const_exp_test.dart
index 45d212c..21d977e 100644
--- a/tests/compiler/dart2js/const_exp_test.dart
+++ b/tests/compiler/dart2js/const_exp_test.dart
@@ -30,6 +30,8 @@
""", expectNoWarningsOrErrors: true).then((env) {
dynamic element = env.getElement('constant');
Expect.isNotNull(element, "Element 'constant' not found.");
+
+ /// ignore: undefined_getter
var constant = element.constant;
var value = env.compiler.constants.getConstantValue(constant);
Expect.isNotNull(constant, "No constant computed for '$element'.");
diff --git a/tests/compiler/dart2js/dart2js.status b/tests/compiler/dart2js/dart2js.status
index 9c1324e..d189e0d 100644
--- a/tests/compiler/dart2js/dart2js.status
+++ b/tests/compiler/dart2js/dart2js.status
@@ -1,78 +1,77 @@
-# 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.
-
-packages/*: Skip # Skip packages folder
-
-analyze_test: Slow, Pass
-
+# Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
analyze_dart_test: Slow, Pass
-
+analyze_test: Slow, Pass
+async_await_syntax_test: Pass # DON'T CHANGE THIS LINE -- Don't mark these tests as failing. Instead, fix the errors/warnings that they report or update the whitelist in the test-files to temporarily allow digression.
+backend_dart/opt_cyclic_redundant_phi_test: Fail # Issue 20159
+boolified_operator_test: Fail # Issue 8001
+check_elements_invariants_test: Skip # Times out even with Slow marker. Slow due to inlining in the CPS backend
compile_with_empty_libraries_test: Fail # Issue 24223
-
+equivalence/id_equivalence_test: Pass, Slow
+gvn_dynamic_field_get_test: Fail # Issue 18519
inference/inference_test: Slow, Pass
inference/swarm_test: Slow, Pass
-
+inlining/inlining_test: Slow, Pass
kernel/*: Slow, Pass
-
-boolified_operator_test: Fail # Issue 8001
-
+logical_expression_test: Fail # Issue 17027
+mirrors/library_exports_hidden_test: Fail
+mirrors/library_exports_shown_test: Fail
+mirrors/library_imports_hidden_test: Fail
+mirrors/library_imports_prefixed_show_hide_test: Fail
+mirrors/library_imports_prefixed_test: Fail
+mirrors/library_imports_shown_test: Fail
+packages/*: Skip # Skip packages folder
+patch_test/bug: RuntimeError # Issue 21132
+quarantined/http_test: Pass, Slow
serialization/analysis1_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
serialization/analysis3_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
serialization/analysis4_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
serialization/analysis5_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
-serialization/compilation_1_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
serialization/compilation0_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
serialization/compilation1_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
-serialization/compilation4_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
serialization/compilation3_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
+serialization/compilation4_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
serialization/compilation5_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
+serialization/compilation_1_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
serialization/library_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
-serialization/model_1_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
serialization/model1_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
serialization/model3_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
serialization/model4_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
serialization/model5_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
+serialization/model_1_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
serialization/native_data_test: Skip # Skip most serialization tests. These are very slow and are no longer a priority.
-
-async_await_syntax_test: Pass # DON'T CHANGE THIS LINE -- Don't mark these tests as failing. Instead, fix the errors/warnings that they report or update the whitelist in the test-files to temporarily allow digression.
-
simple_function_subtype_test: Fail # simple_function_subtype_test is temporarily(?) disabled due to new method for building function type tests.
-
-simple_inferrer_const_closure_test: Fail # Issue 16507
simple_inferrer_const_closure2_test: Fail # Issue 16507
+simple_inferrer_const_closure_test: Fail # Issue 16507
simple_inferrer_global_field_closure_test: Fail # Issue 16507
-
-logical_expression_test: Fail # Issue 17027
-
-gvn_dynamic_field_get_test: Fail # Issue 18519
-
-backend_dart/opt_cyclic_redundant_phi_test: Fail # Issue 20159
-
-mirrors/library_exports_hidden_test: Fail
-mirrors/library_exports_shown_test: Fail
-mirrors/library_imports_hidden_test: Fail
-mirrors/library_imports_prefixed_test: Fail
-mirrors/library_imports_prefixed_show_hide_test: Fail
-mirrors/library_imports_shown_test: Fail
-
-patch_test/bug: RuntimeError # Issue 21132
-
-quarantined/http_test: Pass, Slow
-
-sourcemaps/source_mapping_operators_test: Pass, Slow
sourcemaps/source_mapping_invokes_test: Pass, Slow
+sourcemaps/source_mapping_operators_test: Pass, Slow
sourcemaps/source_mapping_test: Pass, Slow
-
-check_elements_invariants_test: Skip # Times out even with Slow marker. Slow due to inlining in the CPS backend
-
+subtype_test: Slow, Pass
uri_retention_test: Fail # Issue 26504
-equivalence/id_equivalence_test: Pass, Slow
-[ ! $checked ]
-exit_code_test: Skip # This tests requires checked mode.
-serialization*: Slow, Pass
-jsinterop/declaration_test: Slow, Pass
+[ $mode == debug ]
+analyze_api_test: Pass, Slow # DON'T CHANGE THIS LINE -- Don't mark these tests as failing. Instead, fix the errors/warnings that they report or update the whitelist in the test-files to temporarily allow digression.
+analyze_dart2js_test: Pass, Slow # DON'T CHANGE THIS LINE -- Don't mark these tests as failing. Instead, fix the errors/warnings that they report or update the whitelist in the test-files to temporarily allow digression.
+analyze_unused_dart2js_test: Pass, Slow
+check_elements_invariants_test: Skip # Slow and only needs to be run in one configuration
+check_members_test: Pass, Slow
+dart2js_batch_test: Pass, Slow
+deferred_load_graph_segmentation_test: Pass, Slow
+deferred_load_mapping_test: Pass, Slow
+deferred_mirrors_test: Pass, Slow
+duplicate_library_test: Pass, Slow
+exit_code_test: Pass, Slow
+import_mirrors_test: Pass, Slow
+in_user_code_test: Pass, Slow
+message_kind_test: Pass, Slow
+mirror_final_field_inferrer2_test: Crash, Pass, Slow # Issue 15581
+show_package_warnings_test: Pass, Slow
+source_map_pub_build_validity_test: Pass, Slow
+
+[ $system == linux ]
+dart2js_batch2_test: Pass, RuntimeError # Issue 29021
[ $checked ]
analyze_dart2js_helpers_test: Pass, Slow
@@ -85,41 +84,22 @@
import_mirrors_test: Slow, Pass
interop_anonymous_unreachable_test: Pass, Slow
jsinterop/declaration_test: Slow, Pass
-mirror_final_field_inferrer2_test: Pass, Slow
-source_map_pub_build_validity_test: Pass, Slow
-serialization*: Slow, Pass
-uri_retention_test: Pass, Slow
-value_range_test: Pass, Slow
jsinterop/world_test: Pass, Slow
-sourcemaps/stacktrace_test: Pass, Slow
kernel/visitor_test: Pass, Slow
+mirror_final_field_inferrer2_test: Pass, Slow
output_type_test: Pass, Slow
preserve_uris_test: Pass, Slow
-
-[ $mode == debug ]
-check_elements_invariants_test: Skip # Slow and only needs to be run in one configuration
-
-mirror_final_field_inferrer2_test: Crash, Pass, Slow # Issue 15581
-
-analyze_unused_dart2js_test: Pass, Slow
-check_members_test: Pass, Slow
-dart2js_batch_test: Pass, Slow
-deferred_load_graph_segmentation_test: Pass, Slow
-deferred_load_mapping_test: Pass, Slow
-deferred_mirrors_test: Pass, Slow
-duplicate_library_test: Pass, Slow
-exit_code_test: Pass, Slow
-import_mirrors_test: Pass, Slow
-in_user_code_test: Pass, Slow
-message_kind_test: Pass, Slow
-show_package_warnings_test: Pass, Slow
+serialization*: Slow, Pass
source_map_pub_build_validity_test: Pass, Slow
+sourcemaps/stacktrace_test: Pass, Slow
+uri_retention_test: Pass, Slow
+value_range_test: Pass, Slow
-analyze_api_test: Pass, Slow # DON'T CHANGE THIS LINE -- Don't mark these tests as failing. Instead, fix the errors/warnings that they report or update the whitelist in the test-files to temporarily allow digression.
-analyze_dart2js_test: Pass, Slow # DON'T CHANGE THIS LINE -- Don't mark these tests as failing. Instead, fix the errors/warnings that they report or update the whitelist in the test-files to temporarily allow digression.
+[ !$checked ]
+exit_code_test: Skip # This tests requires checked mode.
+jsinterop/declaration_test: Slow, Pass
+serialization*: Slow, Pass
-[ $jscl || $runtime == ff || $runtime == firefox || $runtime == chrome || $runtime == safari ]
+[ $runtime == chrome || $runtime == ff || $runtime == firefox || $runtime == safari || $jscl ]
*: Skip # dart2js uses #import('dart:io'); and it is not self-hosted (yet).
-[ $system == linux ]
-dart2js_batch2_test: Pass, RuntimeError # Issue 29021
diff --git a/tests/compiler/dart2js/deferred_closures_test.dart b/tests/compiler/dart2js/deferred_closures_test.dart
new file mode 100644
index 0000000..f65fc1c
--- /dev/null
+++ b/tests/compiler/dart2js/deferred_closures_test.dart
@@ -0,0 +1,61 @@
+// 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.
+
+// Ensures that closures are in the output unit of their enclosing element.
+
+import 'package:async_helper/async_helper.dart';
+import 'package:compiler/compiler_new.dart';
+import 'package:compiler/src/commandline_options.dart';
+import 'package:expect/expect.dart';
+
+import 'memory_compiler.dart';
+import 'output_collector.dart';
+
+void main() {
+ asyncTest(() async {
+ await runTest(false);
+ await runTest(true);
+ });
+}
+
+runTest(bool useKernel) async {
+ OutputCollector collector = new OutputCollector();
+ var options = useKernel ? [Flags.useKernel] : [];
+ await runCompiler(
+ memorySourceFiles: sources, outputProvider: collector, options: options);
+ String mainOutput = collector.getOutput("", OutputType.js);
+ String deferredOutput = collector.getOutput("out_1", OutputType.jsPart);
+
+ Expect.isTrue(mainOutput.contains("other_method_name:"));
+ Expect.isFalse(mainOutput.contains("unique_method_name:"));
+ Expect.isFalse(mainOutput.contains("unique_method_name_closure:"));
+ Expect.isFalse(mainOutput.contains("unique-string"));
+
+ Expect.isFalse(deferredOutput.contains("other_method_name:"));
+ Expect.isTrue(deferredOutput.contains("unique_method_name:"));
+ Expect.isTrue(deferredOutput.contains("unique_method_name_closure:"));
+ Expect.isTrue(deferredOutput.contains("unique-string"));
+}
+
+// Make sure that deferred constants are not inlined into the main hunk.
+const Map sources = const {
+ "main.dart": """
+ import 'lib.dart' deferred as lib;
+
+ main() async {
+ await (lib.loadLibrary)();
+ lib.unique_method_name();
+ other_method_name();
+ }
+ other_method_name() { throw "hi"; }""",
+ "lib.dart": """
+ library deferred;
+
+ unique_method_name() {
+ return (() => print("unique-string"))();
+ // TODO(sigmund): this line prevents inlining, but it should not be
+ // necessary: the kernel pipeline is incorrectly inlining this method.
+ return "1";
+ }"""
+};
diff --git a/tests/compiler/dart2js/equivalence/id_equivalence_helper.dart b/tests/compiler/dart2js/equivalence/id_equivalence_helper.dart
index 02219c1..c3d22e2 100644
--- a/tests/compiler/dart2js/equivalence/id_equivalence_helper.dart
+++ b/tests/compiler/dart2js/equivalence/id_equivalence_helper.dart
@@ -115,8 +115,7 @@
if (member is ConstructorElement && member.isRedirectingFactory) {
return;
}
- if (skipUnprocessedMembers &&
- !closedWorld.processedMembers.contains(member)) {
+ if (!closedWorld.processedMembers.contains(member)) {
return;
}
if (member.enclosingClass != null) {
@@ -138,8 +137,7 @@
if (forMainLibraryOnly) {
LibraryEntity mainLibrary = elementEnvironment.mainLibrary;
elementEnvironment.forEachClass(mainLibrary, (ClassEntity cls) {
- if (closedWorld.isInstantiated(cls) &&
- !elementEnvironment.isEnumClass(cls)) {
+ if (!elementEnvironment.isEnumClass(cls)) {
elementEnvironment.forEachConstructor(cls, processMember);
}
elementEnvironment.forEachLocalClassMember(cls, processMember);
diff --git a/tests/compiler/dart2js/function_type_variable_test.dart b/tests/compiler/dart2js/function_type_variable_test.dart
new file mode 100644
index 0000000..0193b35
--- /dev/null
+++ b/tests/compiler/dart2js/function_type_variable_test.dart
@@ -0,0 +1,86 @@
+// 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.
+
+import 'package:async_helper/async_helper.dart';
+import 'package:compiler/src/elements/types.dart';
+import 'package:compiler/src/kernel/element_map_impl.dart';
+import 'package:expect/expect.dart';
+import 'type_test_helper.dart';
+
+const List<FunctionTypeData> existentialTypeData = const <FunctionTypeData>[
+ // TODO(johnniwinther): Test generic bounds when #31531 is fixed.
+ const FunctionTypeData('void', 'F1', '<T>(T t)'),
+ const FunctionTypeData('void', 'F2', '<S>(S s)'),
+ const FunctionTypeData('void', 'F3', '<U, V>(U u, V v)'),
+ const FunctionTypeData('void', 'F4', '<U, V>(V v, U u)'),
+];
+
+main() {
+ DartTypeConverter.enableFunctionTypeVariables = true;
+ asyncTest(() async {
+ var env = await TypeEnvironment
+ .create(createTypedefs(existentialTypeData, additionalData: """
+ class C1 {}
+ class C2 {}
+ """), compileMode: CompileMode.dill);
+
+ testToString(FunctionType type, String expectedToString) {
+ Expect.equals(expectedToString, type.toString());
+ }
+
+ testInstantiate(FunctionType type, List<DartType> instantiation,
+ String expectedToString) {
+ DartType result = type.instantiate(instantiation);
+ Expect.equals(expectedToString, result.toString(),
+ "Unexpected instantiation of $type with $instantiation: $result");
+ }
+
+ testEquals(DartType a, DartType b, bool expectedEquals) {
+ Expect.equals(
+ expectedEquals, a == b, "Unexpected equality for $a and $b.");
+ }
+
+ InterfaceType C1 = instantiate(env.getClass('C1'), []);
+ InterfaceType C2 = instantiate(env.getClass('C2'), []);
+ FunctionType F1 = env.getFieldType('F1');
+ FunctionType F2 = env.getFieldType('F2');
+ FunctionType F3 = env.getFieldType('F3');
+ FunctionType F4 = env.getFieldType('F4');
+
+ testToString(F1, 'void Function<#A>(#A)');
+ testToString(F2, 'void Function<#A>(#A)');
+ testToString(F3, 'void Function<#A,#B>(#A,#B)');
+ testToString(F4, 'void Function<#A,#B>(#B,#A)');
+
+ testInstantiate(F1, [C1], 'void Function(C1)');
+ testInstantiate(F2, [C2], 'void Function(C2)');
+ testInstantiate(F3, [C1, C2], 'void Function(C1,C2)');
+ testInstantiate(F4, [C1, C2], 'void Function(C2,C1)');
+
+ testEquals(F1, F1, true);
+ testEquals(F1, F2, true);
+ testEquals(F1, F3, false);
+ testEquals(F1, F4, false);
+
+ testEquals(F2, F1, true);
+ testEquals(F2, F2, true);
+ testEquals(F2, F3, false);
+ testEquals(F2, F4, false);
+
+ testEquals(F3, F1, false);
+ testEquals(F3, F2, false);
+ testEquals(F3, F3, true);
+ testEquals(F3, F4, false);
+
+ testEquals(F4, F1, false);
+ testEquals(F4, F2, false);
+ testEquals(F4, F3, false);
+ testEquals(F4, F4, true);
+
+ testEquals(F1.typeVariables.first, F1.typeVariables.first, true);
+ testEquals(F1.typeVariables.first, F2.typeVariables.first, false);
+
+ // TODO(johnniwinther): Test subtyping.
+ });
+}
diff --git a/tests/compiler/dart2js/generic_method_test.dart b/tests/compiler/dart2js/generic_method_test.dart
new file mode 100644
index 0000000..69412bd
--- /dev/null
+++ b/tests/compiler/dart2js/generic_method_test.dart
@@ -0,0 +1,52 @@
+// 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.
+
+import 'package:async_helper/async_helper.dart';
+import 'package:compiler/src/elements/entities.dart';
+import 'package:compiler/src/elements/types.dart';
+import 'package:compiler/src/kernel/element_map_impl.dart';
+import 'package:compiler/src/universe/call_structure.dart';
+import 'package:expect/expect.dart';
+import 'type_test_helper.dart';
+
+List<FunctionTypeData> signatures = const <FunctionTypeData>[
+ const FunctionTypeData("void", "0", "()"),
+ const FunctionTypeData("void", "1", "<T>(T t)"),
+ const FunctionTypeData("void", "2", "<T, S>(T t, S s)"),
+ const FunctionTypeData("void", "3", "<T, S>(T t, [S s])"),
+ const FunctionTypeData("void", "4", "<T, S>(T t, {S s})"),
+];
+
+main() {
+ DartTypeConverter.enableFunctionTypeVariables = true;
+
+ asyncTest(() async {
+ TypeEnvironment env = await TypeEnvironment.create("""
+ ${createTypedefs(signatures, prefix: 't')}
+ ${createMethods(signatures, prefix: 'm')}
+ """, compileMode: CompileMode.dill);
+
+ for (FunctionTypeData data in signatures) {
+ FunctionType functionType = env.getElementType('t${data.name}');
+ FunctionEntity method = env.getElement('m${data.name}');
+ FunctionType methodType = env.getElementType('m${data.name}');
+ ParameterStructure parameterStructure = method.parameterStructure;
+ Expect.equals(functionType, methodType, "Type mismatch on $data");
+ Expect.equals(
+ parameterStructure.typeParameters,
+ methodType.typeVariables.length,
+ "Type parameter mismatch on $data with $parameterStructure.");
+ CallStructure callStructure = parameterStructure.callStructure;
+ Expect.isTrue(callStructure.signatureApplies(parameterStructure));
+ CallStructure noTypeArguments = new CallStructure(
+ callStructure.argumentCount, callStructure.namedArguments, 0);
+ Expect.isTrue(noTypeArguments.signatureApplies(parameterStructure));
+ CallStructure tooManyTypeArguments = new CallStructure(
+ callStructure.argumentCount,
+ callStructure.namedArguments,
+ callStructure.typeArgumentCount + 1);
+ Expect.isFalse(tooManyTypeArguments.signatureApplies(parameterStructure));
+ }
+ });
+}
diff --git a/tests/compiler/dart2js/inlining/data/constructor.dart b/tests/compiler/dart2js/inlining/data/constructor.dart
index e4e9cad..d65c500 100644
--- a/tests/compiler/dart2js/inlining/data/constructor.dart
+++ b/tests/compiler/dart2js/inlining/data/constructor.dart
@@ -8,6 +8,9 @@
/*element: main:[]*/
main() {
forceInlineConstructor();
+ forceInlineConstructorBody();
+ forceInlineGenericConstructor();
+ forceInlineGenericFactory();
}
////////////////////////////////////////////////////////////////////////////////
@@ -15,7 +18,7 @@
////////////////////////////////////////////////////////////////////////////////
class Class1 {
- /*element: Class1.:[forceInlineConstructor]*/
+ /*element: Class1.:[forceInlineConstructor:Class1]*/
@ForceInline()
Class1();
}
@@ -25,3 +28,59 @@
forceInlineConstructor() {
new Class1();
}
+
+////////////////////////////////////////////////////////////////////////////////
+// Force inline a constructor call with non-empty constructor body.
+////////////////////////////////////////////////////////////////////////////////
+
+class Class2 {
+ /*element: Class2.:[forceInlineConstructorBody+,forceInlineConstructorBody:Class2]*/
+ @ForceInline()
+ Class2() {
+ print('foo');
+ }
+}
+
+/*element: forceInlineConstructorBody:[]*/
+@NoInline()
+forceInlineConstructorBody() {
+ new Class2();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// Force inline a generic constructor call.
+////////////////////////////////////////////////////////////////////////////////
+
+class Class3<T> {
+ /*element: Class3.:[forceInlineGenericConstructor:Class3<int>]*/
+ @ForceInline()
+ Class3();
+}
+
+/*element: forceInlineGenericConstructor:[]*/
+@NoInline()
+forceInlineGenericConstructor() {
+ new Class3<int>();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// Force inline a generic factory call.
+////////////////////////////////////////////////////////////////////////////////
+
+class Class4a<T> implements Class4b<T> {
+ /*element: Class4a.:[forceInlineGenericFactory:Class4a<int>]*/
+ @ForceInline()
+ Class4a();
+}
+
+class Class4b<T> {
+ /*element: Class4b.:[forceInlineGenericFactory:Class4b<int>]*/
+ @ForceInline()
+ factory Class4b() => new Class4a<T>();
+}
+
+/*element: forceInlineGenericFactory:[]*/
+@NoInline()
+forceInlineGenericFactory() {
+ new Class4b<int>();
+}
diff --git a/tests/compiler/dart2js/inlining/data/dynamic.dart b/tests/compiler/dart2js/inlining/data/dynamic.dart
index 58b5800..99d6861 100644
--- a/tests/compiler/dart2js/inlining/data/dynamic.dart
+++ b/tests/compiler/dart2js/inlining/data/dynamic.dart
@@ -8,6 +8,7 @@
/*element: main:[]*/
main() {
forceInlineDynamic();
+ forceInlineOptional();
}
////////////////////////////////////////////////////////////////////////////////
@@ -29,3 +30,23 @@
forceInlineDynamic() {
new Class1().method();
}
+
+////////////////////////////////////////////////////////////////////////////////
+// Force inline a instance method with optional argument.
+////////////////////////////////////////////////////////////////////////////////
+
+class Class2 {
+ /*element: Class2.:[]*/
+ @NoInline()
+ Class2();
+
+ /*element: Class2.method:[forceInlineOptional]*/
+ @ForceInline()
+ method([x]) {}
+}
+
+/*element: forceInlineOptional:[]*/
+@NoInline()
+forceInlineOptional() {
+ new Class2().method();
+}
diff --git a/tests/compiler/dart2js/inlining/data/force_inline.dart b/tests/compiler/dart2js/inlining/data/force_inline.dart
index 604359d..3932fa2 100644
--- a/tests/compiler/dart2js/inlining/data/force_inline.dart
+++ b/tests/compiler/dart2js/inlining/data/force_inline.dart
@@ -11,6 +11,7 @@
forceInlineTwice1();
forceInlineTwice2();
forceInlineNested();
+ forceInlineOptional();
}
////////////////////////////////////////////////////////////////////////////////
@@ -66,3 +67,17 @@
forceInlineNested() {
_forceInlineNested2();
}
+
+////////////////////////////////////////////////////////////////////////////////
+// Force inline a top level method with optional argument.
+////////////////////////////////////////////////////////////////////////////////
+
+/*element: _forceInlineOptional:[forceInlineOptional]*/
+@ForceInline()
+_forceInlineOptional([x]) {}
+
+/*element: forceInlineOptional:[]*/
+@NoInline()
+forceInlineOptional() {
+ _forceInlineOptional();
+}
diff --git a/tests/compiler/dart2js/inlining/data/force_inline_loops.dart b/tests/compiler/dart2js/inlining/data/force_inline_loops.dart
index b45dadd..782b867 100644
--- a/tests/compiler/dart2js/inlining/data/force_inline_loops.dart
+++ b/tests/compiler/dart2js/inlining/data/force_inline_loops.dart
@@ -13,7 +13,7 @@
// Force inline a top level method with loops.
////////////////////////////////////////////////////////////////////////////////
-/*element: _forLoop:[forceInlineLoops]*/
+/*element: _forLoop:loop,[forceInlineLoops]*/
@ForceInline()
_forLoop() {
for (int i = 0; i < 10; i++) {
@@ -21,7 +21,7 @@
}
}
-/*element: _forInLoop:[forceInlineLoops]*/
+/*element: _forInLoop:loop,[forceInlineLoops]*/
@ForceInline()
_forInLoop() {
for (var e in [0, 1, 2]) {
@@ -29,7 +29,7 @@
}
}
-/*element: _whileLoop:[forceInlineLoops]*/
+/*element: _whileLoop:loop,[forceInlineLoops]*/
@ForceInline()
_whileLoop() {
int i = 0;
@@ -39,7 +39,7 @@
}
}
-/*element: _doLoop:[forceInlineLoops]*/
+/*element: _doLoop:loop,[forceInlineLoops]*/
@ForceInline()
_doLoop() {
int i = 0;
diff --git a/tests/compiler/dart2js/inlining/data/heuristics.dart b/tests/compiler/dart2js/inlining/data/heuristics.dart
new file mode 100644
index 0000000..76e346d
--- /dev/null
+++ b/tests/compiler/dart2js/inlining/data/heuristics.dart
@@ -0,0 +1,147 @@
+// 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.
+
+/// ignore: IMPORT_INTERNAL_LIBRARY
+import 'dart:_js_helper';
+
+/*element: main:[]*/
+main() {
+ outsideLoopNoArgsCalledOnce();
+ outsideLoopNoArgsCalledTwice();
+ outsideLoopOneArgCalledOnce();
+ outsideLoopOneArgCalledTwice();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// Inline a method with no parameters called once based regardless the number of
+// static no-arg calls in its body.
+////////////////////////////////////////////////////////////////////////////////
+
+/*element: _method1:[outsideLoopNoArgsCalledOnce]*/
+_method1() {}
+
+/*element: _outsideLoopNoArgsCalledOnce:[outsideLoopNoArgsCalledOnce]*/
+_outsideLoopNoArgsCalledOnce() {
+ _method1();
+ _method1();
+ _method1();
+ _method1();
+ // This would be one too many calls if this method were called twice.
+ _method1();
+}
+
+/*element: outsideLoopNoArgsCalledOnce:[]*/
+@NoInline()
+outsideLoopNoArgsCalledOnce() {
+ _outsideLoopNoArgsCalledOnce();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// Inline a method with no parameters called twice based on the number of
+// static no-arg calls in its body.
+////////////////////////////////////////////////////////////////////////////////
+
+/*element: _method2:[_outsideLoopNoArgs2,outsideLoopNoArgsCalledTwice]*/
+_method2() {}
+
+/*element: _outsideLoopNoArgs1:[outsideLoopNoArgsCalledTwice]*/
+_outsideLoopNoArgs1() {
+ _method2();
+ _method2();
+ _method2();
+ _method2();
+}
+
+/*element: _outsideLoopNoArgs2:[]*/
+_outsideLoopNoArgs2() {
+ _method2();
+ _method2();
+ _method2();
+ _method2();
+ // One too many calls:
+ _method2();
+}
+
+/*element: outsideLoopNoArgsCalledTwice:[]*/
+@NoInline()
+outsideLoopNoArgsCalledTwice() {
+ _outsideLoopNoArgs1();
+ _outsideLoopNoArgs1();
+ _outsideLoopNoArgs2();
+ _outsideLoopNoArgs2();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// Inline a method with one parameter called once based regardless the number of
+// static no-arg calls in its body.
+////////////////////////////////////////////////////////////////////////////////
+
+/*element: _method3:[outsideLoopOneArgCalledOnce]*/
+_method3() {}
+
+/*element: _outsideLoopOneArgCalledOnce:[outsideLoopOneArgCalledOnce]*/
+_outsideLoopOneArgCalledOnce(arg) {
+ _method3();
+ _method3();
+ _method3();
+ _method3();
+ _method3();
+ // This would be too many calls if this method were called twice.
+ _method3();
+ _method3();
+ _method3();
+ _method3();
+ _method3();
+ _method3();
+ _method3();
+ _method3();
+ _method3();
+ _method3();
+ _method3();
+}
+
+/*element: outsideLoopOneArgCalledOnce:[]*/
+@NoInline()
+outsideLoopOneArgCalledOnce() {
+ _outsideLoopOneArgCalledOnce(0);
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// Inline a method with one parameter called twice based on the number of
+// static no-arg calls in its body.
+////////////////////////////////////////////////////////////////////////////////
+
+/*element: _method4:[_outsideLoopOneArg2,outsideLoopOneArgCalledTwice]*/
+_method4() {}
+
+/*element: _outsideLoopOneArg1:[outsideLoopOneArgCalledTwice]*/
+_outsideLoopOneArg1(arg) {
+ _method4();
+ _method4();
+ _method4();
+ _method4();
+ // Extra call granted by one parameter.
+ _method4();
+}
+
+/*element: _outsideLoopOneArg2:[]*/
+_outsideLoopOneArg2(arg) {
+ _method4();
+ _method4();
+ _method4();
+ _method4();
+ // Extra call granted by one parameter.
+ _method4();
+ // One too many calls:
+ _method4();
+}
+
+/*element: outsideLoopOneArgCalledTwice:[]*/
+@NoInline()
+outsideLoopOneArgCalledTwice() {
+ _outsideLoopOneArg1(0);
+ _outsideLoopOneArg1(0);
+ _outsideLoopOneArg2(0);
+ _outsideLoopOneArg2(0);
+}
diff --git a/tests/compiler/dart2js/inlining/data/native.dart b/tests/compiler/dart2js/inlining/data/native.dart
new file mode 100644
index 0000000..1c907e1
--- /dev/null
+++ b/tests/compiler/dart2js/inlining/data/native.dart
@@ -0,0 +1,73 @@
+// 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.
+
+import 'dart:html';
+
+/// ignore: IMPORT_INTERNAL_LIBRARY
+import 'dart:_js_helper';
+
+/*element: main:[]*/
+main() {
+ document.createElement(CustomElement.tag);
+ newCustom();
+ newCustomCreated();
+ newNormal();
+ newNormalCreated();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// Create a custom element. The factory is inlined but the generative
+// constructor isn't.
+////////////////////////////////////////////////////////////////////////////////
+
+/*element: newCustom:[]*/
+@NoInline()
+newCustom() {
+ new CustomElement();
+}
+
+/*element: newCustomCreated:[]*/
+@NoInline()
+newCustomCreated() {
+ new CustomElement.created();
+}
+
+class CustomElement extends HtmlElement {
+ static final tag = 'x-foo';
+
+ /*element: CustomElement.:[newCustom:CustomElement]*/
+ factory CustomElement() => new Element.tag(tag);
+
+ /*element: CustomElement.created:[]*/
+ CustomElement.created() : super.created() {
+ print('boo');
+ }
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// Create a normal class, similar to a custom element. Both the factory and
+// the generative constructor are inlined.
+////////////////////////////////////////////////////////////////////////////////
+
+/*element: newNormal:[]*/
+@NoInline()
+newNormal() {
+ new NormalElement();
+}
+
+/*element: newNormalCreated:[]*/
+@NoInline()
+newNormalCreated() {
+ new NormalElement.created();
+}
+
+class NormalElement {
+ /*element: NormalElement.:[newNormal:NormalElement]*/
+ factory NormalElement() => null;
+
+ /*element: NormalElement.created:[newNormalCreated+,newNormalCreated:NormalElement]*/
+ NormalElement.created() {
+ print('foo');
+ }
+}
diff --git a/tests/compiler/dart2js/inlining/data/nested.dart b/tests/compiler/dart2js/inlining/data/nested.dart
new file mode 100644
index 0000000..6357ede
--- /dev/null
+++ b/tests/compiler/dart2js/inlining/data/nested.dart
@@ -0,0 +1,94 @@
+// 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.
+
+/// ignore: IMPORT_INTERNAL_LIBRARY
+import 'dart:_js_helper';
+
+/*element: main:[]*/
+main() {
+ nestedGenericInlining();
+ nestedGenericFactoryInlining();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// Force inline a generic constructor calls.
+////////////////////////////////////////////////////////////////////////////////
+
+class Class1<T> {
+ /*element: Class1.:[nestedGenericInlining:Class1<int>]*/
+ @ForceInline()
+ Class1();
+
+ /*element: Class1.method:[nestedGenericInlining]*/
+ @ForceInline()
+ method() {
+ new Class2<List<T>>().method();
+ }
+}
+
+class Class2<T> {
+ // TODO(johnniwinther): Should the type have been Class<List<int>>?
+ // Similarly below.
+ /*element: Class2.:[nestedGenericInlining:Class2<List<Class1.T>>]*/
+ @ForceInline()
+ Class2();
+
+ /*element: Class2.method:[nestedGenericInlining]*/
+ @ForceInline()
+ method() {}
+}
+
+/*element: nestedGenericInlining:[]*/
+@NoInline()
+nestedGenericInlining() {
+ new Class1<int>().method();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// Force inline of generic factories.
+////////////////////////////////////////////////////////////////////////////////
+
+class Class3a<T> implements Class3b<T> {
+ /*element: Class3a.:[nestedGenericFactoryInlining:Class3a<int>]*/
+ @ForceInline()
+ Class3a();
+
+ /*element: Class3a.method:[nestedGenericFactoryInlining]*/
+ @ForceInline()
+ method() {
+ new Class4b<List<T>>().method();
+ }
+}
+
+abstract class Class3b<T> {
+ /*element: Class3b.:[nestedGenericFactoryInlining:Class3b<int>]*/
+ @ForceInline()
+ factory Class3b() => new Class3a<T>();
+
+ method();
+}
+
+class Class4a<T> implements Class4b<T> {
+ /*element: Class4a.:[nestedGenericFactoryInlining:Class4a<Class4b.T>]*/
+ @ForceInline()
+ Class4a();
+
+ /*element: Class4a.method:[nestedGenericFactoryInlining]*/
+ @ForceInline()
+ method() {}
+}
+
+abstract class Class4b<T> {
+ /*element: Class4b.:[nestedGenericFactoryInlining:Class4b<List<Class3a.T>>]*/
+ @ForceInline()
+ factory Class4b() => new Class4a<T>();
+
+ method();
+}
+
+/*element: nestedGenericFactoryInlining:[]*/
+@NoInline()
+nestedGenericFactoryInlining() {
+ new Class3b<int>().method();
+}
diff --git a/tests/compiler/dart2js/inlining/data/too_difficult.dart b/tests/compiler/dart2js/inlining/data/too_difficult.dart
index 86d758e..5033474 100644
--- a/tests/compiler/dart2js/inlining/data/too_difficult.dart
+++ b/tests/compiler/dart2js/inlining/data/too_difficult.dart
@@ -2,13 +2,11 @@
// 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.
+/// ignore: IMPORT_INTERNAL_LIBRARY
+import 'dart:_js_helper';
+
/*element: main:[]*/
main() {
- multipleReturns(true);
- codeAfterReturn(true);
- multipleThrows(true);
- codeAfterThrow(true);
- throwAndReturn(true);
asyncMethod();
asyncStarMethod();
syncStarMethod();
@@ -21,96 +19,123 @@
forInLoop();
whileLoop();
doLoop();
+
+ multipleReturns();
+ codeAfterReturn();
+ multipleThrows();
+ returnAndThrow();
}
-/*element: multipleReturns:[]*/
-multipleReturns(c) {
+/*element: _multipleReturns:code after return*/
+_multipleReturns(c) {
if (c)
return;
else
return;
}
-/*element: codeAfterReturn:[]*/
-codeAfterReturn(c) {
+/*element: multipleReturns:[]*/
+@NoInline()
+multipleReturns() {
+ _multipleReturns(true);
+ _multipleReturns(false);
+}
+
+/*element: _codeAfterReturn:code after return*/
+_codeAfterReturn(c) {
if (c) return;
print(c);
}
+/*element: codeAfterReturn:[]*/
+@NoInline()
+codeAfterReturn() {
+ _codeAfterReturn(true);
+ _codeAfterReturn(false);
+}
+
+/*element: _multipleThrows:[]*/
+_multipleThrows(c) {
+ if (c)
+ throw '';
+ else
+ throw '';
+}
+
/*element: multipleThrows:[]*/
-multipleThrows(c) {
- if (c)
- throw '';
- else
- throw '';
+@NoInline()
+multipleThrows() {
+ _multipleThrows(true);
+ _multipleThrows(false);
}
-/*element: codeAfterThrow:[]*/
-codeAfterThrow(c) {
- if (c) throw '';
- print(c);
-}
-
-/*element: throwAndReturn:[]*/
-throwAndReturn(c) {
+/*element: _returnAndThrow:code after return*/
+_returnAndThrow(c) {
if (c)
- throw '';
- else
return;
+ else
+ throw '';
}
-/*element: asyncMethod:[]*/
+/*element: returnAndThrow:[]*/
+@NoInline()
+returnAndThrow() {
+ _returnAndThrow(true);
+ _returnAndThrow(false);
+}
+
+/*element: asyncMethod:async/await*/
asyncMethod() async {}
-/*element: asyncStarMethod:[]*/
+/*element: asyncStarMethod:async/await*/
asyncStarMethod() async* {}
-/*element: syncStarMethod:[]*/
+/*element: syncStarMethod:async/await*/
syncStarMethod() sync* {}
-/*element: localFunction:[]*/
+/*element: localFunction:closure*/
localFunction() {
// ignore: UNUSED_ELEMENT
/*[]*/ local() {}
}
-/*element: anonymousFunction:[]*/
+/*element: anonymousFunction:closure*/
anonymousFunction() {
/*[]*/ () {};
}
-/*element: tryCatch:[]*/
+/*element: tryCatch:try*/
tryCatch() {
try {} catch (e) {}
}
-/*element: tryFinally:[]*/
+/*element: tryFinally:try*/
tryFinally() {
- try {} catch (e) {}
+ try {} finally {}
}
-/*element: tryWithRethrow:[]*/
+/*element: tryWithRethrow:try*/
tryWithRethrow() {
try {} catch (e) {
rethrow;
}
}
-/*element: forLoop:[]*/
+/*element: forLoop:loop*/
forLoop() {
for (int i = 0; i < 10; i++) {
print(i);
}
}
-/*element: forInLoop:[]*/
+/*element: forInLoop:loop*/
forInLoop() {
for (var e in [0, 1, 2]) {
print(e);
}
}
-/*element: whileLoop:[]*/
+/*element: whileLoop:loop*/
whileLoop() {
int i = 0;
while (i < 10) {
@@ -119,7 +144,7 @@
}
}
-/*element: doLoop:[]*/
+/*element: doLoop:loop*/
doLoop() {
int i = 0;
do {
diff --git a/tests/compiler/dart2js/inlining/inlining_test.dart b/tests/compiler/dart2js/inlining/inlining_test.dart
index 77511ea..c602214 100644
--- a/tests/compiler/dart2js/inlining/inlining_test.dart
+++ b/tests/compiler/dart2js/inlining/inlining_test.dart
@@ -14,6 +14,8 @@
import 'package:compiler/src/js_backend/backend.dart';
import 'package:compiler/src/kernel/element_map.dart';
import 'package:compiler/src/kernel/kernel_backend_strategy.dart';
+import 'package:compiler/src/ssa/builder.dart' as ast;
+import 'package:compiler/src/ssa/builder_kernel.dart' as kernel;
import 'package:compiler/src/universe/world_impact.dart';
import 'package:compiler/src/universe/use.dart';
import 'package:kernel/ast.dart' as ir;
@@ -26,7 +28,7 @@
Directory dataDir = new Directory.fromUri(Platform.script.resolve('data'));
await checkTests(
dataDir, computeMemberAstInlinings, computeMemberIrInlinings,
- args: args);
+ args: args, skipForKernel: []);
});
}
@@ -48,17 +50,51 @@
abstract class ComputeValueMixin<T> {
JavaScriptBackend get backend;
+ ConstructorBodyEntity getConstructorBody(ConstructorEntity constructor);
+
+ String getTooDifficultReason(MemberEntity member);
+
String getMemberValue(MemberEntity member) {
- StaticUse use = new StaticUse.inlining(member);
- List<String> inlinedIn = <String>[];
- backend.codegenImpactsForTesting
- .forEach((MemberEntity member, WorldImpact impact) {
- if (impact.staticUses.contains(use)) {
- inlinedIn.add(member.name);
+ if (member is FunctionEntity) {
+ ConstructorBodyEntity constructorBody;
+ if (member is ConstructorEntity && member.isGenerativeConstructor) {
+ constructorBody = getConstructorBody(member);
}
- });
- inlinedIn.sort();
- return '[${inlinedIn.join(',')}]';
+ List<String> inlinedIn = <String>[];
+ backend.codegenImpactsForTesting
+ .forEach((MemberEntity user, WorldImpact impact) {
+ for (StaticUse use in impact.staticUses) {
+ if (use.kind == StaticUseKind.INLINING) {
+ if (use.element == member) {
+ if (use.type != null) {
+ inlinedIn.add('${user.name}:${use.type}');
+ } else {
+ inlinedIn.add(user.name);
+ }
+ } else if (use.element == constructorBody) {
+ if (use.type != null) {
+ inlinedIn.add('${user.name}+:${use.type}');
+ } else {
+ inlinedIn.add('${user.name}+');
+ }
+ }
+ }
+ }
+ });
+ StringBuffer sb = new StringBuffer();
+ String tooDifficultReason = getTooDifficultReason(member);
+ inlinedIn.sort();
+ if (tooDifficultReason != null) {
+ sb.write(tooDifficultReason);
+ if (inlinedIn.isNotEmpty) {
+ sb.write(',[${inlinedIn.join(',')}]');
+ }
+ } else {
+ sb.write('[${inlinedIn.join(',')}]');
+ }
+ return sb.toString();
+ }
+ return null;
}
}
@@ -72,6 +108,21 @@
: super(reporter, actualMap, resolvedAst);
@override
+ ConstructorBodyEntity getConstructorBody(
+ covariant ConstructorElement constructor) {
+ return constructor.enclosingClass.lookupConstructorBody(constructor.name);
+ }
+
+ @override
+ String getTooDifficultReason(MemberEntity member) {
+ if (member is MethodElement) {
+ return ast.InlineWeeder.cannotBeInlinedReason(member.resolvedAst, null,
+ enableUserAssertions: true);
+ }
+ return null;
+ }
+
+ @override
String computeElementValue(Id id, AstElement element) {
if (element.isParameter) {
return null;
@@ -128,6 +179,18 @@
this._closureDataLookup)
: super(reporter, actualMap);
+ ConstructorBodyEntity getConstructorBody(ConstructorEntity constructor) {
+ return _elementMap
+ .getConstructorBody(_elementMap.getMemberDefinition(constructor).node);
+ }
+
+ @override
+ String getTooDifficultReason(MemberEntity member) {
+ if (member is! FunctionEntity) return null;
+ return kernel.InlineWeeder.cannotBeInlinedReason(_elementMap, member, null,
+ enableUserAssertions: true);
+ }
+
@override
String computeMemberValue(Id id, ir.Member node) {
return getMemberValue(_elementMap.getMember(node));
diff --git a/tests/compiler/dart2js/subtype_test.dart b/tests/compiler/dart2js/subtype_test.dart
index 127c0e7..ddacca5 100644
--- a/tests/compiler/dart2js/subtype_test.dart
+++ b/tests/compiler/dart2js/subtype_test.dart
@@ -4,370 +4,363 @@
library subtype_test;
-import 'package:expect/expect.dart';
-import "package:async_helper/async_helper.dart";
-import 'type_test_helper.dart';
+import 'dart:async';
+import 'package:async_helper/async_helper.dart';
+import 'package:compiler/src/elements/entities.dart' show ClassEntity;
+import 'package:compiler/src/elements/types.dart';
import 'package:compiler/src/elements/resolution_types.dart';
-import "package:compiler/src/elements/elements.dart" show ClassElement;
+import 'package:expect/expect.dart';
+import 'type_test_helper.dart';
void main() {
- testInterfaceSubtype();
- testCallableSubtype();
- testFunctionSubtyping();
- testTypedefSubtyping();
- testFunctionSubtypingOptional();
- testTypedefSubtypingOptional();
- testFunctionSubtypingNamed();
- testTypedefSubtypingNamed();
- testTypeVariableSubtype();
+ asyncTest(() async {
+ await runTests(CompileMode.memory);
+ await runTests(CompileMode.dill);
+ });
}
-void testTypes(TypeEnvironment env, ResolutionDartType subtype,
- ResolutionDartType supertype, bool expectSubtype, bool expectMoreSpecific) {
+Future runTests(CompileMode compileMode) async {
+ await testInterfaceSubtype(compileMode);
+ await testCallableSubtype(compileMode);
+ await testFunctionSubtyping(compileMode);
+ await testTypedefSubtyping(compileMode);
+ await testFunctionSubtypingOptional(compileMode);
+ await testTypedefSubtypingOptional(compileMode);
+ await testFunctionSubtypingNamed(compileMode);
+ await testTypedefSubtypingNamed(compileMode);
+ await testTypeVariableSubtype(compileMode);
+}
+
+void testTypes(TypeEnvironment env, DartType subtype, DartType supertype,
+ bool expectSubtype, bool expectMoreSpecific) {
if (expectMoreSpecific == null) expectMoreSpecific = expectSubtype;
Expect.equals(expectSubtype, env.isSubtype(subtype, supertype),
'$subtype <: $supertype');
- Expect.equals(expectMoreSpecific, env.isMoreSpecific(subtype, supertype),
- '$subtype << $supertype');
+ if (env.types is Types) {
+ Expect.equals(expectMoreSpecific, env.isMoreSpecific(subtype, supertype),
+ '$subtype << $supertype');
+ }
}
void testElementTypes(TypeEnvironment env, String subname, String supername,
bool expectSubtype, bool expectMoreSpecific) {
- ResolutionDartType subtype = env.getElementType(subname);
- ResolutionDartType supertype = env.getElementType(supername);
+ DartType subtype = env.getElementType(subname);
+ DartType supertype = env.getElementType(supername);
testTypes(env, subtype, supertype, expectSubtype, expectMoreSpecific);
}
-void testInterfaceSubtype() {
- asyncTest(() => TypeEnvironment.create(r"""
+Future testInterfaceSubtype(CompileMode compileMode) async {
+ await TypeEnvironment.create(r"""
class A<T> {}
class B<T1, T2> extends A<T1> {}
// TODO(johnniwinther): Inheritance with different type arguments is
// currently not supported by the implementation.
class C<T1, T2> extends B<T2, T1> /*implements A<A<T1>>*/ {}
- """).then((env) {
- void expect(
- bool expectSubtype, ResolutionDartType T, ResolutionDartType S,
- {bool expectMoreSpecific}) {
- testTypes(env, T, S, expectSubtype, expectMoreSpecific);
- }
+ """, compileMode: compileMode).then((env) {
+ void expect(bool expectSubtype, DartType T, DartType S,
+ {bool expectMoreSpecific}) {
+ testTypes(env, T, S, expectSubtype, expectMoreSpecific);
+ }
- ClassElement A = env.getElement('A');
- ClassElement B = env.getElement('B');
- ClassElement C = env.getElement('C');
- ResolutionDartType Object_ = env['Object'];
- ResolutionDartType num_ = env['num'];
- ResolutionDartType int_ = env['int'];
- ResolutionDartType String_ = env['String'];
- ResolutionDartType dynamic_ = env['dynamic'];
- ResolutionDartType void_ = env['void'];
- ResolutionDartType Null_ = env['Null'];
+ ClassEntity A = env.getClass('A');
+ ClassEntity B = env.getClass('B');
+ ClassEntity C = env.getClass('C');
+ DartType Object_ = env['Object'];
+ DartType num_ = env['num'];
+ DartType int_ = env['int'];
+ DartType String_ = env['String'];
+ DartType dynamic_ = env['dynamic'];
+ DartType void_ = env['void'];
+ DartType Null_ = env['Null'];
- expect(true, void_, void_);
- expect(true, void_, dynamic_);
- // Unsure about the next one, see dartbug.com/14933.
- expect(true, dynamic_, void_, expectMoreSpecific: false);
- expect(false, void_, Object_);
- expect(false, Object_, void_);
- expect(true, Null_, void_);
+ expect(true, void_, void_);
+ expect(true, void_, dynamic_);
+ // Unsure about the next one, see dartbug.com/14933.
+ expect(true, dynamic_, void_, expectMoreSpecific: false);
+ expect(false, void_, Object_);
+ expect(false, Object_, void_);
+ expect(true, Null_, void_);
- expect(true, Object_, Object_);
- expect(true, num_, Object_);
- expect(true, int_, Object_);
- expect(true, String_, Object_);
- expect(true, dynamic_, Object_, expectMoreSpecific: false);
- expect(true, Null_, Object_);
+ expect(true, Object_, Object_);
+ expect(true, num_, Object_);
+ expect(true, int_, Object_);
+ expect(true, String_, Object_);
+ expect(true, dynamic_, Object_, expectMoreSpecific: false);
+ expect(true, Null_, Object_);
- expect(false, Object_, num_);
- expect(true, num_, num_);
- expect(true, int_, num_);
- expect(false, String_, num_);
- expect(true, dynamic_, num_, expectMoreSpecific: false);
- expect(true, Null_, num_);
+ expect(false, Object_, num_);
+ expect(true, num_, num_);
+ expect(true, int_, num_);
+ expect(false, String_, num_);
+ expect(true, dynamic_, num_, expectMoreSpecific: false);
+ expect(true, Null_, num_);
- expect(false, Object_, int_);
- expect(false, num_, int_);
- expect(true, int_, int_);
- expect(false, String_, int_);
- expect(true, dynamic_, int_, expectMoreSpecific: false);
- expect(true, Null_, int_);
+ expect(false, Object_, int_);
+ expect(false, num_, int_);
+ expect(true, int_, int_);
+ expect(false, String_, int_);
+ expect(true, dynamic_, int_, expectMoreSpecific: false);
+ expect(true, Null_, int_);
- expect(false, Object_, String_);
- expect(false, num_, String_);
- expect(false, int_, String_);
- expect(true, String_, String_);
- expect(true, dynamic_, String_, expectMoreSpecific: false);
- expect(true, Null_, String_);
+ expect(false, Object_, String_);
+ expect(false, num_, String_);
+ expect(false, int_, String_);
+ expect(true, String_, String_);
+ expect(true, dynamic_, String_, expectMoreSpecific: false);
+ expect(true, Null_, String_);
- expect(true, Object_, dynamic_);
- expect(true, num_, dynamic_);
- expect(true, int_, dynamic_);
- expect(true, String_, dynamic_);
- expect(true, dynamic_, dynamic_);
- expect(true, Null_, dynamic_);
+ expect(true, Object_, dynamic_);
+ expect(true, num_, dynamic_);
+ expect(true, int_, dynamic_);
+ expect(true, String_, dynamic_);
+ expect(true, dynamic_, dynamic_);
+ expect(true, Null_, dynamic_);
- expect(false, Object_, Null_);
- expect(false, num_, Null_);
- expect(false, int_, Null_);
- expect(false, String_, Null_);
- expect(true, dynamic_, Null_, expectMoreSpecific: false);
- expect(true, Null_, Null_);
+ expect(false, Object_, Null_);
+ expect(false, num_, Null_);
+ expect(false, int_, Null_);
+ expect(false, String_, Null_);
+ expect(true, dynamic_, Null_, expectMoreSpecific: false);
+ expect(true, Null_, Null_);
- ResolutionDartType A_Object = instantiate(A, [Object_]);
- ResolutionDartType A_num = instantiate(A, [num_]);
- ResolutionDartType A_int = instantiate(A, [int_]);
- ResolutionDartType A_String = instantiate(A, [String_]);
- ResolutionDartType A_dynamic = instantiate(A, [dynamic_]);
- ResolutionDartType A_Null = instantiate(A, [Null_]);
+ DartType A_Object = instantiate(A, [Object_]);
+ DartType A_num = instantiate(A, [num_]);
+ DartType A_int = instantiate(A, [int_]);
+ DartType A_String = instantiate(A, [String_]);
+ DartType A_dynamic = instantiate(A, [dynamic_]);
+ DartType A_Null = instantiate(A, [Null_]);
- expect(true, A_Object, Object_);
- expect(false, A_Object, num_);
- expect(false, A_Object, int_);
- expect(false, A_Object, String_);
- expect(true, A_Object, dynamic_);
- expect(false, A_Object, Null_);
+ expect(true, A_Object, Object_);
+ expect(false, A_Object, num_);
+ expect(false, A_Object, int_);
+ expect(false, A_Object, String_);
+ expect(true, A_Object, dynamic_);
+ expect(false, A_Object, Null_);
- expect(true, A_Object, A_Object);
- expect(true, A_num, A_Object);
- expect(true, A_int, A_Object);
- expect(true, A_String, A_Object);
- expect(true, A_dynamic, A_Object, expectMoreSpecific: false);
- expect(true, A_Null, A_Object);
+ expect(true, A_Object, A_Object);
+ expect(true, A_num, A_Object);
+ expect(true, A_int, A_Object);
+ expect(true, A_String, A_Object);
+ expect(true, A_dynamic, A_Object, expectMoreSpecific: false);
+ expect(true, A_Null, A_Object);
- expect(false, A_Object, A_num);
- expect(true, A_num, A_num);
- expect(true, A_int, A_num);
- expect(false, A_String, A_num);
- expect(true, A_dynamic, A_num, expectMoreSpecific: false);
- expect(true, A_Null, A_num);
+ expect(false, A_Object, A_num);
+ expect(true, A_num, A_num);
+ expect(true, A_int, A_num);
+ expect(false, A_String, A_num);
+ expect(true, A_dynamic, A_num, expectMoreSpecific: false);
+ expect(true, A_Null, A_num);
- expect(false, A_Object, A_int);
- expect(false, A_num, A_int);
- expect(true, A_int, A_int);
- expect(false, A_String, A_int);
- expect(true, A_dynamic, A_int, expectMoreSpecific: false);
- expect(true, A_Null, A_int);
+ expect(false, A_Object, A_int);
+ expect(false, A_num, A_int);
+ expect(true, A_int, A_int);
+ expect(false, A_String, A_int);
+ expect(true, A_dynamic, A_int, expectMoreSpecific: false);
+ expect(true, A_Null, A_int);
- expect(false, A_Object, A_String);
- expect(false, A_num, A_String);
- expect(false, A_int, A_String);
- expect(true, A_String, A_String);
- expect(true, A_dynamic, A_String, expectMoreSpecific: false);
- expect(true, A_Null, A_String);
+ expect(false, A_Object, A_String);
+ expect(false, A_num, A_String);
+ expect(false, A_int, A_String);
+ expect(true, A_String, A_String);
+ expect(true, A_dynamic, A_String, expectMoreSpecific: false);
+ expect(true, A_Null, A_String);
- expect(true, A_Object, A_dynamic);
- expect(true, A_num, A_dynamic);
- expect(true, A_int, A_dynamic);
- expect(true, A_String, A_dynamic);
- expect(true, A_dynamic, A_dynamic);
- expect(true, A_Null, A_dynamic);
+ expect(true, A_Object, A_dynamic);
+ expect(true, A_num, A_dynamic);
+ expect(true, A_int, A_dynamic);
+ expect(true, A_String, A_dynamic);
+ expect(true, A_dynamic, A_dynamic);
+ expect(true, A_Null, A_dynamic);
- expect(false, A_Object, A_Null);
- expect(false, A_num, A_Null);
- expect(false, A_int, A_Null);
- expect(false, A_String, A_Null);
- expect(true, A_dynamic, A_Null, expectMoreSpecific: false);
- expect(true, A_Null, A_Null);
+ expect(false, A_Object, A_Null);
+ expect(false, A_num, A_Null);
+ expect(false, A_int, A_Null);
+ expect(false, A_String, A_Null);
+ expect(true, A_dynamic, A_Null, expectMoreSpecific: false);
+ expect(true, A_Null, A_Null);
- ResolutionDartType B_Object_Object = instantiate(B, [Object_, Object_]);
- ResolutionDartType B_num_num = instantiate(B, [num_, num_]);
- ResolutionDartType B_int_num = instantiate(B, [int_, num_]);
- ResolutionDartType B_dynamic_dynamic =
- instantiate(B, [dynamic_, dynamic_]);
- ResolutionDartType B_String_dynamic =
- instantiate(B, [String_, dynamic_]);
+ DartType B_Object_Object = instantiate(B, [Object_, Object_]);
+ DartType B_num_num = instantiate(B, [num_, num_]);
+ DartType B_int_num = instantiate(B, [int_, num_]);
+ DartType B_dynamic_dynamic = instantiate(B, [dynamic_, dynamic_]);
+ DartType B_String_dynamic = instantiate(B, [String_, dynamic_]);
- expect(true, B_Object_Object, Object_);
- expect(true, B_Object_Object, A_Object);
- expect(false, B_Object_Object, A_num);
- expect(false, B_Object_Object, A_int);
- expect(false, B_Object_Object, A_String);
- expect(true, B_Object_Object, A_dynamic);
+ expect(true, B_Object_Object, Object_);
+ expect(true, B_Object_Object, A_Object);
+ expect(false, B_Object_Object, A_num);
+ expect(false, B_Object_Object, A_int);
+ expect(false, B_Object_Object, A_String);
+ expect(true, B_Object_Object, A_dynamic);
- expect(true, B_num_num, Object_);
- expect(true, B_num_num, A_Object);
- expect(true, B_num_num, A_num);
- expect(false, B_num_num, A_int);
- expect(false, B_num_num, A_String);
- expect(true, B_num_num, A_dynamic);
+ expect(true, B_num_num, Object_);
+ expect(true, B_num_num, A_Object);
+ expect(true, B_num_num, A_num);
+ expect(false, B_num_num, A_int);
+ expect(false, B_num_num, A_String);
+ expect(true, B_num_num, A_dynamic);
- expect(true, B_int_num, Object_);
- expect(true, B_int_num, A_Object);
- expect(true, B_int_num, A_num);
- expect(true, B_int_num, A_int);
- expect(false, B_int_num, A_String);
- expect(true, B_int_num, A_dynamic);
+ expect(true, B_int_num, Object_);
+ expect(true, B_int_num, A_Object);
+ expect(true, B_int_num, A_num);
+ expect(true, B_int_num, A_int);
+ expect(false, B_int_num, A_String);
+ expect(true, B_int_num, A_dynamic);
- expect(true, B_dynamic_dynamic, Object_);
- expect(true, B_dynamic_dynamic, A_Object, expectMoreSpecific: false);
- expect(true, B_dynamic_dynamic, A_num, expectMoreSpecific: false);
- expect(true, B_dynamic_dynamic, A_int, expectMoreSpecific: false);
- expect(true, B_dynamic_dynamic, A_String, expectMoreSpecific: false);
- expect(true, B_dynamic_dynamic, A_dynamic);
+ expect(true, B_dynamic_dynamic, Object_);
+ expect(true, B_dynamic_dynamic, A_Object, expectMoreSpecific: false);
+ expect(true, B_dynamic_dynamic, A_num, expectMoreSpecific: false);
+ expect(true, B_dynamic_dynamic, A_int, expectMoreSpecific: false);
+ expect(true, B_dynamic_dynamic, A_String, expectMoreSpecific: false);
+ expect(true, B_dynamic_dynamic, A_dynamic);
- expect(true, B_String_dynamic, Object_);
- expect(true, B_String_dynamic, A_Object);
- expect(false, B_String_dynamic, A_num);
- expect(false, B_String_dynamic, A_int);
- expect(true, B_String_dynamic, A_String);
- expect(true, B_String_dynamic, A_dynamic);
+ expect(true, B_String_dynamic, Object_);
+ expect(true, B_String_dynamic, A_Object);
+ expect(false, B_String_dynamic, A_num);
+ expect(false, B_String_dynamic, A_int);
+ expect(true, B_String_dynamic, A_String);
+ expect(true, B_String_dynamic, A_dynamic);
- expect(true, B_Object_Object, B_Object_Object);
- expect(true, B_num_num, B_Object_Object);
- expect(true, B_int_num, B_Object_Object);
- expect(true, B_dynamic_dynamic, B_Object_Object,
- expectMoreSpecific: false);
- expect(true, B_String_dynamic, B_Object_Object,
- expectMoreSpecific: false);
+ expect(true, B_Object_Object, B_Object_Object);
+ expect(true, B_num_num, B_Object_Object);
+ expect(true, B_int_num, B_Object_Object);
+ expect(true, B_dynamic_dynamic, B_Object_Object, expectMoreSpecific: false);
+ expect(true, B_String_dynamic, B_Object_Object, expectMoreSpecific: false);
- expect(false, B_Object_Object, B_num_num);
- expect(true, B_num_num, B_num_num);
- expect(true, B_int_num, B_num_num);
- expect(true, B_dynamic_dynamic, B_num_num, expectMoreSpecific: false);
- expect(false, B_String_dynamic, B_num_num);
+ expect(false, B_Object_Object, B_num_num);
+ expect(true, B_num_num, B_num_num);
+ expect(true, B_int_num, B_num_num);
+ expect(true, B_dynamic_dynamic, B_num_num, expectMoreSpecific: false);
+ expect(false, B_String_dynamic, B_num_num);
- expect(false, B_Object_Object, B_int_num);
- expect(false, B_num_num, B_int_num);
- expect(true, B_int_num, B_int_num);
- expect(true, B_dynamic_dynamic, B_int_num, expectMoreSpecific: false);
- expect(false, B_String_dynamic, B_int_num);
+ expect(false, B_Object_Object, B_int_num);
+ expect(false, B_num_num, B_int_num);
+ expect(true, B_int_num, B_int_num);
+ expect(true, B_dynamic_dynamic, B_int_num, expectMoreSpecific: false);
+ expect(false, B_String_dynamic, B_int_num);
- expect(true, B_Object_Object, B_dynamic_dynamic);
- expect(true, B_num_num, B_dynamic_dynamic);
- expect(true, B_int_num, B_dynamic_dynamic);
- expect(true, B_dynamic_dynamic, B_dynamic_dynamic);
- expect(true, B_String_dynamic, B_dynamic_dynamic);
+ expect(true, B_Object_Object, B_dynamic_dynamic);
+ expect(true, B_num_num, B_dynamic_dynamic);
+ expect(true, B_int_num, B_dynamic_dynamic);
+ expect(true, B_dynamic_dynamic, B_dynamic_dynamic);
+ expect(true, B_String_dynamic, B_dynamic_dynamic);
- expect(false, B_Object_Object, B_String_dynamic);
- expect(false, B_num_num, B_String_dynamic);
- expect(false, B_int_num, B_String_dynamic);
- expect(true, B_dynamic_dynamic, B_String_dynamic,
- expectMoreSpecific: false);
- expect(true, B_String_dynamic, B_String_dynamic);
+ expect(false, B_Object_Object, B_String_dynamic);
+ expect(false, B_num_num, B_String_dynamic);
+ expect(false, B_int_num, B_String_dynamic);
+ expect(true, B_dynamic_dynamic, B_String_dynamic,
+ expectMoreSpecific: false);
+ expect(true, B_String_dynamic, B_String_dynamic);
- ResolutionDartType C_Object_Object = instantiate(C, [Object_, Object_]);
- ResolutionDartType C_num_num = instantiate(C, [num_, num_]);
- ResolutionDartType C_int_String = instantiate(C, [int_, String_]);
- ResolutionDartType C_dynamic_dynamic =
- instantiate(C, [dynamic_, dynamic_]);
+ DartType C_Object_Object = instantiate(C, [Object_, Object_]);
+ DartType C_num_num = instantiate(C, [num_, num_]);
+ DartType C_int_String = instantiate(C, [int_, String_]);
+ DartType C_dynamic_dynamic = instantiate(C, [dynamic_, dynamic_]);
- expect(true, C_Object_Object, B_Object_Object);
- expect(false, C_Object_Object, B_num_num);
- expect(false, C_Object_Object, B_int_num);
- expect(true, C_Object_Object, B_dynamic_dynamic);
- expect(false, C_Object_Object, B_String_dynamic);
+ expect(true, C_Object_Object, B_Object_Object);
+ expect(false, C_Object_Object, B_num_num);
+ expect(false, C_Object_Object, B_int_num);
+ expect(true, C_Object_Object, B_dynamic_dynamic);
+ expect(false, C_Object_Object, B_String_dynamic);
- expect(true, C_num_num, B_Object_Object);
- expect(true, C_num_num, B_num_num);
- expect(false, C_num_num, B_int_num);
- expect(true, C_num_num, B_dynamic_dynamic);
- expect(false, C_num_num, B_String_dynamic);
+ expect(true, C_num_num, B_Object_Object);
+ expect(true, C_num_num, B_num_num);
+ expect(false, C_num_num, B_int_num);
+ expect(true, C_num_num, B_dynamic_dynamic);
+ expect(false, C_num_num, B_String_dynamic);
- expect(true, C_int_String, B_Object_Object);
- expect(false, C_int_String, B_num_num);
- expect(false, C_int_String, B_int_num);
- expect(true, C_int_String, B_dynamic_dynamic);
- expect(true, C_int_String, B_String_dynamic);
+ expect(true, C_int_String, B_Object_Object);
+ expect(false, C_int_String, B_num_num);
+ expect(false, C_int_String, B_int_num);
+ expect(true, C_int_String, B_dynamic_dynamic);
+ expect(true, C_int_String, B_String_dynamic);
- expect(true, C_dynamic_dynamic, B_Object_Object,
- expectMoreSpecific: false);
- expect(true, C_dynamic_dynamic, B_num_num, expectMoreSpecific: false);
- expect(true, C_dynamic_dynamic, B_int_num, expectMoreSpecific: false);
- expect(true, C_dynamic_dynamic, B_dynamic_dynamic);
- expect(true, C_dynamic_dynamic, B_String_dynamic,
- expectMoreSpecific: false);
+ expect(true, C_dynamic_dynamic, B_Object_Object, expectMoreSpecific: false);
+ expect(true, C_dynamic_dynamic, B_num_num, expectMoreSpecific: false);
+ expect(true, C_dynamic_dynamic, B_int_num, expectMoreSpecific: false);
+ expect(true, C_dynamic_dynamic, B_dynamic_dynamic);
+ expect(true, C_dynamic_dynamic, B_String_dynamic,
+ expectMoreSpecific: false);
- expect(false, C_int_String, A_int);
- expect(true, C_int_String, A_String);
- // TODO(johnniwinther): Inheritance with different type arguments is
- // currently not supported by the implementation.
- //expect(true, C_int_String, instantiate(A, [A_int]));
- expect(false, C_int_String, instantiate(A, [A_String]));
- }));
+ expect(false, C_int_String, A_int);
+ expect(true, C_int_String, A_String);
+ // TODO(johnniwinther): Inheritance with different type arguments is
+ // currently not supported by the implementation.
+ //expect(true, C_int_String, instantiate(A, [A_int]));
+ expect(false, C_int_String, instantiate(A, [A_String]));
+ });
}
-void testCallableSubtype() {
- asyncTest(() => TypeEnvironment.create(r"""
+Future testCallableSubtype(CompileMode compileMode) async {
+ await TypeEnvironment.create(r"""
class U {}
class V extends U {}
class W extends V {}
class A {
- int call(V v, int i);
+ int call(V v, int i) => null;
- int m1(U u, int i);
- int m2(W w, num n);
- U m3(V v, int i);
- int m4(V v, U u);
- void m5(V v, int i);
+ int m1(U u, int i) => null;
+ int m2(W w, num n) => null;
+ U m3(V v, int i) => null;
+ int m4(V v, U u) => null;
+ void m5(V v, int i) => null;
}
- """).then((env) {
- void expect(
- bool expectSubtype, ResolutionDartType T, ResolutionDartType S,
- {bool expectMoreSpecific}) {
- testTypes(env, T, S, expectSubtype, expectMoreSpecific);
- }
+ """, compileMode: compileMode).then((env) {
+ void expect(bool expectSubtype, DartType T, DartType S,
+ {bool expectMoreSpecific}) {
+ testTypes(env, T, S, expectSubtype, expectMoreSpecific);
+ }
- ClassElement classA = env.getElement('A');
- ResolutionDartType A = classA.rawType;
- ResolutionDartType function = env['Function'];
- ResolutionDartType call = env.getMemberType(classA, 'call');
- ResolutionDartType m1 = env.getMemberType(classA, 'm1');
- ResolutionDartType m2 = env.getMemberType(classA, 'm2');
- ResolutionDartType m3 = env.getMemberType(classA, 'm3');
- ResolutionDartType m4 = env.getMemberType(classA, 'm4');
- ResolutionDartType m5 = env.getMemberType(classA, 'm5');
+ ClassEntity classA = env.getClass('A');
+ DartType A = env.elementEnvironment.getRawType(classA);
+ DartType function = env['Function'];
+ DartType call = env.getMemberType(classA, 'call');
+ DartType m1 = env.getMemberType(classA, 'm1');
+ DartType m2 = env.getMemberType(classA, 'm2');
+ DartType m3 = env.getMemberType(classA, 'm3');
+ DartType m4 = env.getMemberType(classA, 'm4');
+ DartType m5 = env.getMemberType(classA, 'm5');
- expect(true, A, function);
- expect(true, A, call);
- expect(true, call, m1);
- expect(true, A, m1);
- expect(true, A, m2, expectMoreSpecific: false);
- expect(false, A, m3);
- expect(false, A, m4);
- expect(true, A, m5);
- }));
+ expect(true, A, function);
+ expect(true, A, call);
+ expect(true, call, m1);
+ expect(true, A, m1);
+ expect(true, A, m2, expectMoreSpecific: false);
+ expect(false, A, m3);
+ expect(false, A, m4);
+ expect(true, A, m5);
+ });
}
-testFunctionSubtyping() {
- asyncTest(() => TypeEnvironment.create(r"""
- _() => null;
- void void_() {}
- void void_2() {}
- int int_() => 0;
- int int_2() => 0;
- Object Object_() => null;
- double double_() => 0.0;
- void void__int(int i) {}
- int int__int(int i) => 0;
- int int__int2(int i) => 0;
- int int__Object(Object o) => 0;
- Object Object__int(int i) => null;
- int int__double(double d) => 0;
- int int__int_int(int i1, int i2) => 0;
- void inline_void_(void f()) {}
- void inline_void__int(void f(int i)) {}
- """).then(functionSubtypingHelper));
+const List<FunctionTypeData> functionTypesData = const <FunctionTypeData>[
+ const FunctionTypeData('', '_', '()'),
+ const FunctionTypeData('void', 'void_', '()'),
+ const FunctionTypeData('void', 'void_2', '()'),
+ const FunctionTypeData('int', 'int_', '()'),
+ const FunctionTypeData('int', 'int_2', '()'),
+ const FunctionTypeData('Object', 'Object_', '()'),
+ const FunctionTypeData('double', 'double_', '()'),
+ const FunctionTypeData('void', 'void__int', '(int i)'),
+ const FunctionTypeData('int', 'int__int', '(int i)'),
+ const FunctionTypeData('int', 'int__int2', '(int i)'),
+ const FunctionTypeData('int', 'int__Object', '(Object o)'),
+ const FunctionTypeData('Object', 'Object__int', '(int i)'),
+ const FunctionTypeData('int', 'int__double', '(double d)'),
+ const FunctionTypeData('int', 'int__int_int', '(int i1, int i2)'),
+ const FunctionTypeData('void', 'inline_void_', '(void Function() f)'),
+ const FunctionTypeData(
+ 'void', 'inline_void__int', '(void Function(int i) f)'),
+];
+
+Future testFunctionSubtyping(CompileMode compileMode) async {
+ await TypeEnvironment
+ .create(createMethods(functionTypesData), compileMode: compileMode)
+ .then(functionSubtypingHelper);
}
-testTypedefSubtyping() {
- asyncTest(() => TypeEnvironment.create(r"""
- typedef _();
- typedef void void_();
- typedef void void_2();
- typedef int int_();
- typedef int int_2();
- typedef Object Object_();
- typedef double double_();
- typedef void void__int(int i);
- typedef int int__int(int i);
- typedef int int__int2(int i);
- typedef int int__Object(Object o);
- typedef Object Object__int(int i);
- typedef int int__double(double d);
- typedef int int__int_int(int i1, int i2);
- typedef void inline_void_(void f());
- typedef void inline_void__int(void f(int i));
- """).then(functionSubtypingHelper));
+Future testTypedefSubtyping(CompileMode compileMode) async {
+ await TypeEnvironment
+ .create(createTypedefs(functionTypesData), compileMode: compileMode)
+ .then(functionSubtypingHelper);
}
functionSubtypingHelper(TypeEnvironment env) {
@@ -424,38 +417,36 @@
expect(false, 'inline_void__int', 'inline_void_');
}
-testFunctionSubtypingOptional() {
- asyncTest(() => TypeEnvironment.create(r"""
- void void_() {}
- void void__int(int i) {}
- void void___int([int i]) {}
- void void___int2([int i]) {}
- void void___Object([Object o]) {}
- void void__int__int(int i1, [int i2]) {}
- void void__int__int2(int i1, [int i2]) {}
- void void__int__int_int(int i1, [int i2, int i3]);
- void void___double(double d) {}
- void void___int_int([int i1, int i2]) {}
- void void___int_int_int([int i1, int i2, int i3]);
- void void___Object_int([Object o, int i]) {}
- """).then(functionSubtypingOptionalHelper));
+const List<FunctionTypeData> optionalFunctionTypesData =
+ const <FunctionTypeData>[
+ const FunctionTypeData('void', 'void_', '()'),
+ const FunctionTypeData('void', 'void__int', '(int i)'),
+ const FunctionTypeData('void', 'void___int', '([int i])'),
+ const FunctionTypeData('void', 'void___int2', '([int i])'),
+ const FunctionTypeData('void', 'void___Object', '([Object o])'),
+ const FunctionTypeData('void', 'void__int__int', '(int i1, [int i2])'),
+ const FunctionTypeData('void', 'void__int__int2', '(int i1, [int i2])'),
+ const FunctionTypeData(
+ 'void', 'void__int__int_int', '(int i1, [int i2, int i3])'),
+ const FunctionTypeData('void', 'void___double', '(double d)'),
+ const FunctionTypeData('void', 'void___int_int', '([int i1, int i2])'),
+ const FunctionTypeData(
+ 'void', 'void___int_int_int', '([int i1, int i2, int i3])'),
+ const FunctionTypeData('void', 'void___Object_int', '([Object o, int i])'),
+];
+
+Future testFunctionSubtypingOptional(CompileMode compileMode) async {
+ await TypeEnvironment
+ .create(createMethods(optionalFunctionTypesData),
+ compileMode: compileMode)
+ .then(functionSubtypingOptionalHelper);
}
-testTypedefSubtypingOptional() {
- asyncTest(() => TypeEnvironment.create(r"""
- typedef void void_();
- typedef void void__int(int i);
- typedef void void___int([int i]);
- typedef void void___int2([int i]);
- typedef void void___Object([Object o]);
- typedef void void__int__int(int i1, [int i2]);
- typedef void void__int__int2(int i1, [int i2]);
- typedef void void__int__int_int(int i1, [int i2, int i3]);
- typedef void void___double(double d);
- typedef void void___int_int([int i1, int i2]);
- typedef void void___int_int_int([int i1, int i2, int i3]);
- typedef void void___Object_int([Object o, int i]);
- """).then(functionSubtypingOptionalHelper));
+Future testTypedefSubtypingOptional(CompileMode compileMode) async {
+ await TypeEnvironment
+ .create(createTypedefs(optionalFunctionTypesData),
+ compileMode: compileMode)
+ .then(functionSubtypingOptionalHelper);
}
functionSubtypingOptionalHelper(TypeEnvironment env) {
@@ -500,42 +491,34 @@
expect(true, 'void___Object_int', 'void___int', expectMoreSpecific: false);
}
-testFunctionSubtypingNamed() {
- asyncTest(() => TypeEnvironment.create(r"""
- void void_() {}
- void void__int(int i) {}
- void void___a_int({int a}) {}
- void void___a_int2({int a}) {}
- void void___b_int({int b}) {}
- void void___a_Object({Object a}) {}
- void void__int__a_int(int i1, {int a}) {}
- void void__int__a_int2(int i1, {int a}) {}
- void void___a_double({double a}) {}
- void void___a_int_b_int({int a, int b}) {}
- void void___a_int_b_int_c_int({int a, int b, int c}) {}
- void void___a_int_c_int({int a, int c}) {}
- void void___b_int_c_int({int b, int c}) {}
- void void___c_int({int c}) {}
- """).then(functionSubtypingNamedHelper));
+const List<FunctionTypeData> namedFunctionTypesData = const <FunctionTypeData>[
+ const FunctionTypeData('void', 'void_', '()'),
+ const FunctionTypeData('void', 'void__int', '(int i)'),
+ const FunctionTypeData('void', 'void___a_int', '({int a})'),
+ const FunctionTypeData('void', 'void___a_int2', '({int a})'),
+ const FunctionTypeData('void', 'void___b_int', '({int b})'),
+ const FunctionTypeData('void', 'void___a_Object', '({Object a})'),
+ const FunctionTypeData('void', 'void__int__a_int', '(int i1, {int a})'),
+ const FunctionTypeData('void', 'void__int__a_int2', '(int i1, {int a})'),
+ const FunctionTypeData('void', 'void___a_double', '({double a})'),
+ const FunctionTypeData('void', 'void___a_int_b_int', '({int a, int b})'),
+ const FunctionTypeData(
+ 'void', 'void___a_int_b_int_c_int', '({int a, int b, int c})'),
+ const FunctionTypeData('void', 'void___a_int_c_int', '({int a, int c})'),
+ const FunctionTypeData('void', 'void___b_int_c_int', '({int b, int c})'),
+ const FunctionTypeData('void', 'void___c_int', '({int c})'),
+];
+
+Future testFunctionSubtypingNamed(CompileMode compileMode) async {
+ await TypeEnvironment
+ .create(createMethods(namedFunctionTypesData), compileMode: compileMode)
+ .then(functionSubtypingNamedHelper);
}
-testTypedefSubtypingNamed() {
- asyncTest(() => TypeEnvironment.create(r"""
- typedef void void_();
- typedef void void__int(int i);
- typedef void void___a_int({int a});
- typedef void void___a_int2({int a});
- typedef void void___b_int({int b});
- typedef void void___a_Object({Object a});
- typedef void void__int__a_int(int i1, {int a});
- typedef void void__int__a_int2(int i1, {int a});
- typedef void void___a_double({double a});
- typedef void void___a_int_b_int({int a, int b});
- typedef void void___a_int_b_int_c_int({int a, int b, int c});
- typedef void void___a_int_c_int({int a, int c});
- typedef void void___b_int_c_int({int b, int c});
- typedef void void___c_int({int c});
- """).then(functionSubtypingNamedHelper));
+Future testTypedefSubtypingNamed(CompileMode compileMode) async {
+ await TypeEnvironment
+ .create(createTypedefs(namedFunctionTypesData), compileMode: compileMode)
+ .then(functionSubtypingNamedHelper);
}
functionSubtypingNamedHelper(TypeEnvironment env) {
@@ -574,8 +557,8 @@
expect(true, 'void___a_int_b_int_c_int', 'void___c_int');
}
-void testTypeVariableSubtype() {
- asyncTest(() => TypeEnvironment.create(r"""
+Future testTypeVariableSubtype(CompileMode compileMode) async {
+ await TypeEnvironment.create(r"""
class A<T> {}
class B<T extends Object> {}
class C<T extends num> {}
@@ -586,209 +569,212 @@
class H<T extends S, S extends T> {}
class I<T extends S, S extends U, U extends T> {}
class J<T extends S, S extends U, U extends S> {}
- """).then((env) {
- void expect(
- bool expectSubtype, ResolutionDartType T, ResolutionDartType S,
- {bool expectMoreSpecific}) {
- testTypes(env, T, S, expectSubtype, expectMoreSpecific);
- }
+ """, compileMode: compileMode).then((env) {
+ void expect(bool expectSubtype, DartType T, DartType S,
+ {bool expectMoreSpecific}) {
+ testTypes(env, T, S, expectSubtype, expectMoreSpecific);
+ }
- ClassElement A = env.getElement('A');
- ResolutionTypeVariableType A_T = A.thisType.typeArguments[0];
- ClassElement B = env.getElement('B');
- ResolutionTypeVariableType B_T = B.thisType.typeArguments[0];
- ClassElement C = env.getElement('C');
- ResolutionTypeVariableType C_T = C.thisType.typeArguments[0];
- ClassElement D = env.getElement('D');
- ResolutionTypeVariableType D_T = D.thisType.typeArguments[0];
- ClassElement E = env.getElement('E');
- ResolutionTypeVariableType E_T = E.thisType.typeArguments[0];
- ResolutionTypeVariableType E_S = E.thisType.typeArguments[1];
- ClassElement F = env.getElement('F');
- ResolutionTypeVariableType F_T = F.thisType.typeArguments[0];
- ResolutionTypeVariableType F_S = F.thisType.typeArguments[1];
- ClassElement G = env.getElement('G');
- ResolutionTypeVariableType G_T = G.thisType.typeArguments[0];
- ClassElement H = env.getElement('H');
- ResolutionTypeVariableType H_T = H.thisType.typeArguments[0];
- ResolutionTypeVariableType H_S = H.thisType.typeArguments[1];
- ClassElement I = env.getElement('I');
- ResolutionTypeVariableType I_T = I.thisType.typeArguments[0];
- ResolutionTypeVariableType I_S = I.thisType.typeArguments[1];
- ResolutionTypeVariableType I_U = I.thisType.typeArguments[2];
- ClassElement J = env.getElement('J');
- ResolutionTypeVariableType J_T = J.thisType.typeArguments[0];
- ResolutionTypeVariableType J_S = J.thisType.typeArguments[1];
- ResolutionTypeVariableType J_U = J.thisType.typeArguments[2];
+ TypeVariableType getTypeVariable(ClassEntity cls, int index) {
+ return env.elementEnvironment.getThisType(cls).typeArguments[index];
+ }
- ResolutionDartType Object_ = env['Object'];
- ResolutionDartType num_ = env['num'];
- ResolutionDartType int_ = env['int'];
- ResolutionDartType String_ = env['String'];
- ResolutionDartType dynamic_ = env['dynamic'];
+ ClassEntity A = env.getClass('A');
+ TypeVariableType A_T = getTypeVariable(A, 0);
+ ClassEntity B = env.getClass('B');
+ TypeVariableType B_T = getTypeVariable(B, 0);
+ ClassEntity C = env.getClass('C');
+ TypeVariableType C_T = getTypeVariable(C, 0);
+ ClassEntity D = env.getClass('D');
+ TypeVariableType D_T = getTypeVariable(D, 0);
+ ClassEntity E = env.getClass('E');
+ TypeVariableType E_T = getTypeVariable(E, 0);
+ TypeVariableType E_S = getTypeVariable(E, 1);
+ ClassEntity F = env.getClass('F');
+ TypeVariableType F_T = getTypeVariable(F, 0);
+ TypeVariableType F_S = getTypeVariable(F, 1);
+ ClassEntity G = env.getClass('G');
+ TypeVariableType G_T = getTypeVariable(G, 0);
+ ClassEntity H = env.getClass('H');
+ TypeVariableType H_T = getTypeVariable(H, 0);
+ TypeVariableType H_S = getTypeVariable(H, 1);
+ ClassEntity I = env.getClass('I');
+ TypeVariableType I_T = getTypeVariable(I, 0);
+ TypeVariableType I_S = getTypeVariable(I, 1);
+ TypeVariableType I_U = getTypeVariable(I, 2);
+ ClassEntity J = env.getClass('J');
+ TypeVariableType J_T = getTypeVariable(J, 0);
+ TypeVariableType J_S = getTypeVariable(J, 1);
+ TypeVariableType J_U = getTypeVariable(J, 2);
- // class A<T> {}
- expect(true, A_T, Object_);
- expect(false, A_T, num_);
- expect(false, A_T, int_);
- expect(false, A_T, String_);
- expect(true, A_T, dynamic_);
- expect(true, A_T, A_T);
- expect(false, A_T, B_T);
+ DartType Object_ = env['Object'];
+ DartType num_ = env['num'];
+ DartType int_ = env['int'];
+ DartType String_ = env['String'];
+ DartType dynamic_ = env['dynamic'];
- // class B<T extends Object> {}
- expect(true, B_T, Object_);
- expect(false, B_T, num_);
- expect(false, B_T, int_);
- expect(false, B_T, String_);
- expect(true, B_T, dynamic_);
- expect(true, B_T, B_T);
- expect(false, B_T, A_T);
+ // class A<T> {}
+ expect(true, A_T, Object_);
+ expect(false, A_T, num_);
+ expect(false, A_T, int_);
+ expect(false, A_T, String_);
+ expect(true, A_T, dynamic_);
+ expect(true, A_T, A_T);
+ expect(false, A_T, B_T);
- // class C<T extends num> {}
- expect(true, C_T, Object_);
- expect(true, C_T, num_);
- expect(false, C_T, int_);
- expect(false, C_T, String_);
- expect(true, C_T, dynamic_);
- expect(true, C_T, C_T);
- expect(false, C_T, A_T);
+ // class B<T extends Object> {}
+ expect(true, B_T, Object_);
+ expect(false, B_T, num_);
+ expect(false, B_T, int_);
+ expect(false, B_T, String_);
+ expect(true, B_T, dynamic_);
+ expect(true, B_T, B_T);
+ expect(false, B_T, A_T);
- // class D<T extends int> {}
- expect(true, D_T, Object_);
- expect(true, D_T, num_);
- expect(true, D_T, int_);
- expect(false, D_T, String_);
- expect(true, D_T, dynamic_);
- expect(true, D_T, D_T);
- expect(false, D_T, A_T);
+ // class C<T extends num> {}
+ expect(true, C_T, Object_);
+ expect(true, C_T, num_);
+ expect(false, C_T, int_);
+ expect(false, C_T, String_);
+ expect(true, C_T, dynamic_);
+ expect(true, C_T, C_T);
+ expect(false, C_T, A_T);
- // class E<T extends S, S extends num> {}
- expect(true, E_T, Object_);
- expect(true, E_T, num_);
- expect(false, E_T, int_);
- expect(false, E_T, String_);
- expect(true, E_T, dynamic_);
- expect(true, E_T, E_T);
- expect(true, E_T, E_S);
- expect(false, E_T, A_T);
+ // class D<T extends int> {}
+ expect(true, D_T, Object_);
+ expect(true, D_T, num_);
+ expect(true, D_T, int_);
+ expect(false, D_T, String_);
+ expect(true, D_T, dynamic_);
+ expect(true, D_T, D_T);
+ expect(false, D_T, A_T);
- expect(true, E_S, Object_);
- expect(true, E_S, num_);
- expect(false, E_S, int_);
- expect(false, E_S, String_);
- expect(true, E_S, dynamic_);
- expect(false, E_S, E_T);
- expect(true, E_S, E_S);
- expect(false, E_S, A_T);
+ // class E<T extends S, S extends num> {}
+ expect(true, E_T, Object_);
+ expect(true, E_T, num_);
+ expect(false, E_T, int_);
+ expect(false, E_T, String_);
+ expect(true, E_T, dynamic_);
+ expect(true, E_T, E_T);
+ expect(true, E_T, E_S);
+ expect(false, E_T, A_T);
- // class F<T extends num, S extends T> {}
- expect(true, F_T, Object_);
- expect(true, F_T, num_);
- expect(false, F_T, int_);
- expect(false, F_T, String_);
- expect(true, F_T, dynamic_);
- expect(false, F_T, F_S);
- expect(true, F_T, F_T);
- expect(false, F_T, A_T);
+ expect(true, E_S, Object_);
+ expect(true, E_S, num_);
+ expect(false, E_S, int_);
+ expect(false, E_S, String_);
+ expect(true, E_S, dynamic_);
+ expect(false, E_S, E_T);
+ expect(true, E_S, E_S);
+ expect(false, E_S, A_T);
- expect(true, F_S, Object_);
- expect(true, F_S, num_);
- expect(false, F_S, int_);
- expect(false, F_S, String_);
- expect(true, F_S, dynamic_);
- expect(true, F_S, F_S);
- expect(true, F_S, F_T);
- expect(false, F_S, A_T);
+ // class F<T extends num, S extends T> {}
+ expect(true, F_T, Object_);
+ expect(true, F_T, num_);
+ expect(false, F_T, int_);
+ expect(false, F_T, String_);
+ expect(true, F_T, dynamic_);
+ expect(false, F_T, F_S);
+ expect(true, F_T, F_T);
+ expect(false, F_T, A_T);
- // class G<T extends T> {}
- expect(true, G_T, Object_);
- expect(false, G_T, num_);
- expect(false, G_T, int_);
- expect(false, G_T, String_);
- expect(true, G_T, dynamic_);
- expect(true, G_T, G_T);
- expect(false, G_T, A_T);
+ expect(true, F_S, Object_);
+ expect(true, F_S, num_);
+ expect(false, F_S, int_);
+ expect(false, F_S, String_);
+ expect(true, F_S, dynamic_);
+ expect(true, F_S, F_S);
+ expect(true, F_S, F_T);
+ expect(false, F_S, A_T);
- // class H<T extends S, S extends T> {}
- expect(true, H_T, Object_);
- expect(false, H_T, num_);
- expect(false, H_T, int_);
- expect(false, H_T, String_);
- expect(true, H_T, dynamic_);
- expect(true, H_T, H_T);
- expect(true, H_T, H_S);
- expect(false, H_T, A_T);
+ // class G<T extends T> {}
+ expect(true, G_T, Object_);
+ expect(false, G_T, num_);
+ expect(false, G_T, int_);
+ expect(false, G_T, String_);
+ expect(true, G_T, dynamic_);
+ expect(true, G_T, G_T);
+ expect(false, G_T, A_T);
- expect(true, H_S, Object_);
- expect(false, H_S, num_);
- expect(false, H_S, int_);
- expect(false, H_S, String_);
- expect(true, H_S, dynamic_);
- expect(true, H_S, H_T);
- expect(true, H_S, H_S);
- expect(false, H_S, A_T);
+ // class H<T extends S, S extends T> {}
+ expect(true, H_T, Object_);
+ expect(false, H_T, num_);
+ expect(false, H_T, int_);
+ expect(false, H_T, String_);
+ expect(true, H_T, dynamic_);
+ expect(true, H_T, H_T);
+ expect(true, H_T, H_S);
+ expect(false, H_T, A_T);
- // class I<T extends S, S extends U, U extends T> {}
- expect(true, I_T, Object_);
- expect(false, I_T, num_);
- expect(false, I_T, int_);
- expect(false, I_T, String_);
- expect(true, I_T, dynamic_);
- expect(true, I_T, I_T);
- expect(true, I_T, I_S);
- expect(true, I_T, I_U);
- expect(false, I_T, A_T);
+ expect(true, H_S, Object_);
+ expect(false, H_S, num_);
+ expect(false, H_S, int_);
+ expect(false, H_S, String_);
+ expect(true, H_S, dynamic_);
+ expect(true, H_S, H_T);
+ expect(true, H_S, H_S);
+ expect(false, H_S, A_T);
- expect(true, I_S, Object_);
- expect(false, I_S, num_);
- expect(false, I_S, int_);
- expect(false, I_S, String_);
- expect(true, I_S, dynamic_);
- expect(true, I_S, I_T);
- expect(true, I_S, I_S);
- expect(true, I_S, I_U);
- expect(false, I_S, A_T);
+ // class I<T extends S, S extends U, U extends T> {}
+ expect(true, I_T, Object_);
+ expect(false, I_T, num_);
+ expect(false, I_T, int_);
+ expect(false, I_T, String_);
+ expect(true, I_T, dynamic_);
+ expect(true, I_T, I_T);
+ expect(true, I_T, I_S);
+ expect(true, I_T, I_U);
+ expect(false, I_T, A_T);
- expect(true, I_U, Object_);
- expect(false, I_U, num_);
- expect(false, I_U, int_);
- expect(false, I_U, String_);
- expect(true, I_U, dynamic_);
- expect(true, I_U, I_T);
- expect(true, I_U, I_S);
- expect(true, I_U, I_U);
- expect(false, I_U, A_T);
+ expect(true, I_S, Object_);
+ expect(false, I_S, num_);
+ expect(false, I_S, int_);
+ expect(false, I_S, String_);
+ expect(true, I_S, dynamic_);
+ expect(true, I_S, I_T);
+ expect(true, I_S, I_S);
+ expect(true, I_S, I_U);
+ expect(false, I_S, A_T);
- // class J<T extends S, S extends U, U extends S> {}
- expect(true, J_T, Object_);
- expect(false, J_T, num_);
- expect(false, J_T, int_);
- expect(false, J_T, String_);
- expect(true, J_T, dynamic_);
- expect(true, J_T, J_T);
- expect(true, J_T, J_S);
- expect(true, J_T, J_U);
- expect(false, J_T, A_T);
+ expect(true, I_U, Object_);
+ expect(false, I_U, num_);
+ expect(false, I_U, int_);
+ expect(false, I_U, String_);
+ expect(true, I_U, dynamic_);
+ expect(true, I_U, I_T);
+ expect(true, I_U, I_S);
+ expect(true, I_U, I_U);
+ expect(false, I_U, A_T);
- expect(true, J_S, Object_);
- expect(false, J_S, num_);
- expect(false, J_S, int_);
- expect(false, J_S, String_);
- expect(true, J_S, dynamic_);
- expect(false, J_S, J_T);
- expect(true, J_S, J_S);
- expect(true, J_S, J_U);
- expect(false, J_S, A_T);
+ // class J<T extends S, S extends U, U extends S> {}
+ expect(true, J_T, Object_);
+ expect(false, J_T, num_);
+ expect(false, J_T, int_);
+ expect(false, J_T, String_);
+ expect(true, J_T, dynamic_);
+ expect(true, J_T, J_T);
+ expect(true, J_T, J_S);
+ expect(true, J_T, J_U);
+ expect(false, J_T, A_T);
- expect(true, J_U, Object_);
- expect(false, J_U, num_);
- expect(false, J_U, int_);
- expect(false, J_U, String_);
- expect(true, J_U, dynamic_);
- expect(false, J_U, J_T);
- expect(true, J_U, J_S);
- expect(true, J_U, J_U);
- expect(false, J_U, A_T);
- }));
+ expect(true, J_S, Object_);
+ expect(false, J_S, num_);
+ expect(false, J_S, int_);
+ expect(false, J_S, String_);
+ expect(true, J_S, dynamic_);
+ expect(false, J_S, J_T);
+ expect(true, J_S, J_S);
+ expect(true, J_S, J_U);
+ expect(false, J_S, A_T);
+
+ expect(true, J_U, Object_);
+ expect(false, J_U, num_);
+ expect(false, J_U, int_);
+ expect(false, J_U, String_);
+ expect(true, J_U, dynamic_);
+ expect(false, J_U, J_T);
+ expect(true, J_U, J_S);
+ expect(true, J_U, J_U);
+ expect(false, J_U, A_T);
+ });
}
diff --git a/tests/compiler/dart2js/type_test_helper.dart b/tests/compiler/dart2js/type_test_helper.dart
index 4b6e58c..8dde099 100644
--- a/tests/compiler/dart2js/type_test_helper.dart
+++ b/tests/compiler/dart2js/type_test_helper.dart
@@ -14,7 +14,8 @@
import 'package:compiler/src/compiler.dart' show Compiler;
import 'package:compiler/src/elements/entities.dart';
import 'package:compiler/src/elements/elements.dart'
- show Element, MemberElement, ClassElement, LibraryElement, TypedefElement;
+ show ClassElement, LibraryElement, TypedefElement;
+import 'package:compiler/src/kernel/kernel_strategy.dart';
import 'package:compiler/src/world.dart' show ClosedWorld;
import 'compiler_helper.dart' as mock;
import 'memory_compiler.dart' as memory;
@@ -39,8 +40,6 @@
Resolution get resolution => compiler.resolution;
- Types get types => resolution.types;
-
static Future<TypeEnvironment> create(String source,
{CompileMode compileMode: CompileMode.mock,
bool useDillCompiler: false,
@@ -48,7 +47,8 @@
bool expectNoWarningsOrErrors: false,
bool stopAfterTypeInference: false,
String mainSource,
- bool testBackendWorld: false}) async {
+ bool testBackendWorld: false,
+ Map<String, String> fieldTypeMap: const <String, String>{}}) async {
Uri uri;
Compiler compiler;
if (mainSource != null) {
@@ -128,13 +128,40 @@
}
}
- Element getElement(String name) {
- LibraryElement mainApp = elementEnvironment.mainLibrary;
- dynamic element = mainApp.find(name);
- Expect.isNotNull(element);
- if (element.isClass) {
+ CommonElements get commonElements {
+ if (testBackendWorld) {
+ return compiler.backendClosedWorldForTesting.commonElements;
+ } else {
+ return compiler.frontendStrategy.commonElements;
+ }
+ }
+
+ DartTypes get types {
+ if (resolution != null) {
+ return resolution.types;
+ } else {
+ if (testBackendWorld) {
+ return compiler.backendClosedWorldForTesting.dartTypes;
+ } else {
+ KernelFrontEndStrategy frontendStrategy = compiler.frontendStrategy;
+ return frontendStrategy.elementMap.types;
+ }
+ }
+ }
+
+ Entity getElement(String name) {
+ LibraryEntity mainLibrary = elementEnvironment.mainLibrary;
+ dynamic element = elementEnvironment.lookupLibraryMember(mainLibrary, name);
+ element ??= elementEnvironment.lookupClass(mainLibrary, name);
+ element ??=
+ elementEnvironment.lookupClass(commonElements.coreLibrary, name);
+ if (element == null && mainLibrary is LibraryElement) {
+ element = mainLibrary.find(name);
+ }
+ Expect.isNotNull(element, "No element named '$name' found.");
+ if (element is ClassElement) {
element.ensureResolved(compiler.resolution);
- } else if (element.isTypedef) {
+ } else if (element is TypedefElement) {
element.computeType(compiler.resolution);
}
return element;
@@ -143,44 +170,78 @@
ClassEntity getClass(String name) {
LibraryEntity mainLibrary = elementEnvironment.mainLibrary;
ClassEntity element = elementEnvironment.lookupClass(mainLibrary, name);
- Expect.isNotNull(element);
+ Expect.isNotNull(element, "No class named '$name' found.");
if (element is ClassElement) {
element.ensureResolved(compiler.resolution);
}
return element;
}
- ResolutionDartType getElementType(String name) {
+ DartType getElementType(String name) {
dynamic element = getElement(name);
- return element.computeType(compiler.resolution);
+ if (element is FieldEntity) {
+ return elementEnvironment.getFieldType(element);
+ } else if (element is FunctionEntity) {
+ return elementEnvironment.getFunctionType(element);
+ } else if (element is ClassEntity) {
+ return elementEnvironment.getThisType(element);
+ } else {
+ /// ignore: undefined_method
+ return element.computeType(compiler.resolution);
+ }
}
- ResolutionDartType operator [](String name) {
- if (name == 'dynamic') return const ResolutionDynamicType();
- if (name == 'void') return const ResolutionVoidType();
+ DartType operator [](String name) {
+ if (name == 'dynamic') {
+ if (resolution != null) {
+ return const ResolutionDynamicType();
+ } else {
+ return const DynamicType();
+ }
+ }
+ if (name == 'void') {
+ if (resolution != null) {
+ return const ResolutionVoidType();
+ } else {
+ return const VoidType();
+ }
+ }
return getElementType(name);
}
- ResolutionDartType getMemberType(ClassElement element, String name) {
- MemberElement member = element.localLookup(name);
- return member.computeType(compiler.resolution);
+ DartType getMemberType(ClassEntity cls, String name) {
+ MemberEntity member = elementEnvironment.lookupLocalClassMember(cls, name);
+ if (member is FieldEntity) {
+ return elementEnvironment.getFieldType(member);
+ } else if (member is FunctionEntity) {
+ return elementEnvironment.getFunctionType(member);
+ }
+ throw 'Unexpected member: $member';
}
- bool isSubtype(ResolutionDartType T, ResolutionDartType S) {
+ DartType getFieldType(String name) {
+ LibraryEntity mainLibrary = elementEnvironment.mainLibrary;
+ FieldEntity field =
+ elementEnvironment.lookupLibraryMember(mainLibrary, name);
+ Expect.isNotNull(field);
+ return elementEnvironment.getFieldType(field);
+ }
+
+ bool isSubtype(DartType T, DartType S) {
return types.isSubtype(T, S);
}
bool isMoreSpecific(ResolutionDartType T, ResolutionDartType S) {
- return types.isMoreSpecific(T, S);
+ return (types as Types).isMoreSpecific(T, S);
}
ResolutionDartType computeLeastUpperBound(
ResolutionDartType T, ResolutionDartType S) {
- return types.computeLeastUpperBound(T, S);
+ return (types as Types).computeLeastUpperBound(T, S);
}
ResolutionDartType flatten(ResolutionDartType T) {
- return types.flatten(T);
+ return (types as Types).flatten(T);
}
ResolutionFunctionType functionType(
@@ -208,3 +269,53 @@
}
}
}
+
+/// Data used to create a function type either as method declaration or a
+/// typedef declaration.
+class FunctionTypeData {
+ final String returnType;
+ final String name;
+ final String parameters;
+
+ const FunctionTypeData(this.returnType, this.name, this.parameters);
+
+ String toString() => '$returnType $name$parameters';
+}
+
+/// Return source code that declares the function types in [dataList] as
+/// method declarations of the form:
+///
+/// $returnType $name$parameters => null;
+String createMethods(List<FunctionTypeData> dataList,
+ {String additionalData: '', String prefix: ''}) {
+ StringBuffer sb = new StringBuffer();
+ for (FunctionTypeData data in dataList) {
+ sb.writeln(
+ '${data.returnType} $prefix${data.name}${data.parameters} => null;');
+ }
+ sb.write(additionalData);
+ return sb.toString();
+}
+
+/// Return source code that declares the function types in [dataList] as
+/// typedefs of the form:
+///
+/// typedef fx = $returnType Function$parameters;
+/// fx $name;
+///
+/// where a field using the typedef is add to make the type accessible by name.
+String createTypedefs(List<FunctionTypeData> dataList,
+ {String additionalData: '', String prefix: ''}) {
+ StringBuffer sb = new StringBuffer();
+ for (int index = 0; index < dataList.length; index++) {
+ FunctionTypeData data = dataList[index];
+ sb.writeln(
+ 'typedef f$index = ${data.returnType} Function${data.parameters};');
+ }
+ for (int index = 0; index < dataList.length; index++) {
+ FunctionTypeData data = dataList[index];
+ sb.writeln('f$index $prefix${data.name};');
+ }
+ sb.write(additionalData);
+ return sb.toString();
+}
diff --git a/tests/compiler/dart2js_extra/dart2js_extra.status b/tests/compiler/dart2js_extra/dart2js_extra.status
index b84425a..e6eedf8 100644
--- a/tests/compiler/dart2js_extra/dart2js_extra.status
+++ b/tests/compiler/dart2js_extra/dart2js_extra.status
@@ -2,147 +2,154 @@
# 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
-dummy_compiler_test: Slow, Pass
-recursive_import_test: Slow, Pass
-
-[ $compiler == dart2js && $browser ]
-dummy_compiler_test: Skip
-recursive_import_test: Skip
-
-[ $compiler == dart2js && $runtime == d8 && $host_checked ]
-dummy_compiler_test: Skip # Issue 30773
-recursive_import_test: Skip # Issue 30773
-
-[ $compiler == dart2analyzer && $builder_tag == strong ]
-dummy_compiler_test: Skip # Issue 28649
-recursive_import_test: Skip # Issue 28649
-
-[ $hot_reload || $hot_reload_rollback ]
-recursive_import_test: Skip # Running dart2js under frequent reloads is slow.
-dummy_compiler_test: Skip # Running dart2js under frequent reloads is slow.
-
[ $builder_tag == asan ]
recursive_import_test: Skip # Issue 27441
-[ ($compiler == dartk || $compiler == dartkp) && $mode == debug ]
+[ $compiler == dart2js ]
+class_test: Fail
+constant_javascript_semantics4_test: Fail, OK
dummy_compiler_test: Slow, Pass
+mirror_printer_test: Pass, Slow # Issue 25940, 16473
+mirrors_used_closure_test: Fail # Issue 17939
+no_such_method_test: Fail # Wrong Invocation.memberName.
recursive_import_test: Slow, Pass
+statements_test: Fail
+typed_locals_test: Fail
-[ $compiler == dart2js && $checked ]
-variable_type_test/03: Fail, OK
-variable_type_test/01: Fail, OK
+[ $runtime == jsshell ]
+deferred/load_in_correct_order_test: SkipByDesign # jsshell preamble does not support this test.
+timer_test: Fail # Issue 7728.
-[ $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
-deferred/reflect_multiple_annotations_test: CompileTimeError # mirrors not supported
-deferred/reflect_multiple_default_arg_test: CompileTimeError # 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
-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
+[ $runtime == none ]
+timer_negative_test: Fail, OK # A negative runtime test.
-[ $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
+[ $builder_tag == strong && $compiler == dart2analyzer ]
+dummy_compiler_test: Skip # Issue 28649
+recursive_import_test: Skip # Issue 28649
[ $compiler == dart2js && $mode == debug ]
operator_test: Skip
string_interpolation_test: Skip
+[ $compiler == dart2js && $runtime == chrome && $system == windows ]
+class_test: Pass, Slow # Issue 25940
+closure_capture3_test: Pass, Slow # Issue 25940
+closure_capture5_test: Pass, Slow # Issue 25940
+conditional_test: Pass, Slow # Issue 25940
+consistent_codeUnitAt_error_test: Pass, Slow # Issue 25940
+constant_javascript_semantics2_test: Pass, Slow # Issue 25940
+deferred_split_test: Pass, Slow # Issue 25940
+
[ $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 && $runtime == d8 && $host_checked ]
+dummy_compiler_test: Skip # Issue 30773
+recursive_import_test: Skip # Issue 30773
-[ $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.
-deferred/reflect_multiple_annotations_test: Fail
-deferred/reflect_multiple_default_arg_test: Fail
-
-
-[ $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.
-deferred/load_in_correct_order_test: SkipByDesign # jsshell preamble does not support this test.
-
-[ $runtime == none ]
-timer_negative_test: Fail, OK # A negative runtime test.
-
-[ $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
-js_interop_test: RuntimeError # Issue 31082
-
-[ $compiler == none && $runtime == vm ]
-invalid_annotation_test/01: MissingCompileTimeError, OK # vm is lazy
-unconditional_dartio_import_test: SkipByDesign # dart2js only test
-new_from_env_test: SkipByDesign # dart2js only test
-
-[ $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 == drt && $csp ]
+deferred/load_in_correct_order_test: SkipByDesign # Purposely uses `eval`
[ $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
+[ $compiler == dart2js && $runtime == none ]
+*: Fail, Pass # TODO(ahe): Triage these tests.
-[ $compiler == dart2js && !$dart2js_with_kernel ]
-expose_this1_test: RuntimeError # Issue 31254
-expose_this2_test: RuntimeError # Issue 31254
+[ $compiler == dart2js && $runtime == safari ]
+deferred_fail_and_retry_worker_test: Timeout # Issue 22106
+
+[ $compiler == dart2js && $browser ]
+dummy_compiler_test: Skip
+recursive_import_test: Skip
+
+[ $compiler == dart2js && $checked ]
+variable_type_test/01: Fail, OK
+variable_type_test/03: Fail, OK
+
+[ $compiler == dart2js && $checked && $dart2js_with_kernel ]
+21666_test: RuntimeError
+closure_capture2_test: RuntimeError
+closure_type_reflection2_test: RuntimeError
+closure_type_reflection_test: RuntimeError
+constant_javascript_semantics_test/01: MissingCompileTimeError
+deferred/deferred_mirrors1_test: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
+deferred/deferred_mirrors2_test: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
+deferred/reflect_multiple_annotations_test: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
+deferred/reflect_multiple_default_arg_test: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
+deferred/uninstantiated_type_variable_test: Crash # NoSuchMethodError: The method 'hasSubclass' was called on null.
+deferred_custom_loader_test: RuntimeError
+deferred_fail_and_retry_test: RuntimeError
+deferred_fail_and_retry_worker_test: Fail
+dummy_compiler_test: CompileTimeError
+invalid_annotation2_test/none: RuntimeError
+label_test/06: MissingCompileTimeError
+minus_zero_test/01: MissingCompileTimeError
+mirror_invalid_field_access2_test: RuntimeError
+mirror_invalid_field_access3_test: RuntimeError
+mirror_invalid_field_access4_test: RuntimeError
+mirror_invalid_field_access_test: RuntimeError
+mirror_invalid_invoke2_test: RuntimeError
+mirror_invalid_invoke3_test: RuntimeError
+mirror_invalid_invoke_test: RuntimeError
+mirror_printer_test/01: RuntimeError
+mirror_printer_test/none: RuntimeError
+mirror_test: RuntimeError
+mirror_type_inference_field2_test: RuntimeError
+mirror_type_inference_field_test: RuntimeError
+mirror_type_inference_function_test: RuntimeError
+mirrors_declarations_filtering_test: RuntimeError
+mirrors_used_metatargets_test: RuntimeError
+mirrors_used_native_test: RuntimeError
+mirrors_used_warning2_test: RuntimeError
+mirrors_used_warning_test/minif: RuntimeError
+mirrors_used_warning_test/none: RuntimeError
+private_symbol_literal_test/01: MissingCompileTimeError
+private_symbol_literal_test/02: MissingCompileTimeError
+private_symbol_literal_test/03: MissingCompileTimeError
+private_symbol_literal_test/04: MissingCompileTimeError
+private_symbol_literal_test/05: MissingCompileTimeError
+private_symbol_literal_test/06: MissingCompileTimeError
+recursive_import_test: CompileTimeError
+reflect_native_types_test: RuntimeError
+regress/4562_test/none: CompileTimeError
+string_interpolation_dynamic_test: RuntimeError
+string_interpolation_test: RuntimeError
+type_constant_switch_test/01: MissingCompileTimeError
+unconditional_dartio_import_test: RuntimeError
+
+[ $compiler == dart2js && $csp ]
+deferred_custom_loader_test: SkipByDesign # Issue 25683
+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.
+js_interop_test: RuntimeError # Issue 31082
+
+[ $compiler == dart2js && $dart2js_with_kernel && $fast_startup ]
+23056_test: Pass
+closure_capture2_test: RuntimeError
+constant_javascript_semantics_test/01: MissingCompileTimeError
+deferred/deferred_mirrors1_test: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
+deferred/deferred_mirrors2_test: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
+deferred/reflect_multiple_annotations_test: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
+deferred/reflect_multiple_default_arg_test: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
+deferred_custom_loader_test: RuntimeError
+deferred_fail_and_retry_test: RuntimeError
+deferred_fail_and_retry_worker_test: Fail
+dummy_compiler_test: CompileTimeError
+label_test/06: MissingCompileTimeError
+mirror_enqueuer_regression_test: Pass
+private_symbol_literal_test/01: MissingCompileTimeError
+private_symbol_literal_test/02: MissingCompileTimeError
+private_symbol_literal_test/03: MissingCompileTimeError
+private_symbol_literal_test/04: MissingCompileTimeError
+private_symbol_literal_test/05: MissingCompileTimeError
+private_symbol_literal_test/06: MissingCompileTimeError
+recursive_import_test: CompileTimeError
+regress/4562_test/none: CompileTimeError
+string_interpolation_dynamic_test: RuntimeError
+string_interpolation_test: RuntimeError
+type_constant_switch_test/01: MissingCompileTimeError
+unconditional_dartio_import_test: RuntimeError
[ $compiler == dart2js && $dart2js_with_kernel && $host_checked ]
21666_test: RuntimeError
@@ -155,8 +162,8 @@
deferred/reflect_multiple_annotations_test: Crash # Assertion failure: Missing scope info for j:method(_loadLibraryWrapper).
deferred/reflect_multiple_default_arg_test: Crash # Assertion failure: Missing scope info for j:method(_loadLibraryWrapper).
deferred_custom_loader_test: RuntimeError
-deferred_fail_and_retry_test: RuntimeError
-deferred_fail_and_retry_worker_test: Fail
+deferred_fail_and_retry_test: Crash # type 'Class' is not a subtype of type 'Member' of 'key' where
+deferred_fail_and_retry_worker_test: Crash # type 'Class' is not a subtype of type 'Member' of 'key' where
invalid_annotation2_test/none: RuntimeError
label_test/06: MissingCompileTimeError
mirror_invalid_field_access2_test: RuntimeError
@@ -238,86 +245,74 @@
type_constant_switch_test/01: MissingCompileTimeError
unconditional_dartio_import_test: RuntimeError # Issue 30902
-[ $compiler == dart2js && $dart2js_with_kernel && $fast_startup ]
-23056_test: Pass
-mirror_enqueuer_regression_test: Pass
-closure_capture2_test: RuntimeError
-constant_javascript_semantics_test/01: MissingCompileTimeError
-deferred/deferred_constant3_test: RuntimeError
-deferred/deferred_constant4_test: RuntimeError
-deferred/deferred_mirrors1_test: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
-deferred/deferred_mirrors2_test: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
-deferred/reflect_multiple_annotations_test: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
-deferred/reflect_multiple_default_arg_test: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
-deferred/uninstantiated_type_variable_test: Crash # NoSuchMethodError: The method 'hasSubclass' was called on null.
-deferred_custom_loader_test: RuntimeError
-deferred_fail_and_retry_test: RuntimeError
-deferred_fail_and_retry_worker_test: Fail
-dummy_compiler_test: CompileTimeError
-label_test/06: MissingCompileTimeError
-private_symbol_literal_test/01: MissingCompileTimeError
-private_symbol_literal_test/02: MissingCompileTimeError
-private_symbol_literal_test/03: MissingCompileTimeError
-private_symbol_literal_test/04: MissingCompileTimeError
-private_symbol_literal_test/05: MissingCompileTimeError
-private_symbol_literal_test/06: MissingCompileTimeError
-recursive_import_test: CompileTimeError
-regress/4562_test/none: CompileTimeError
-string_interpolation_dynamic_test: RuntimeError
-string_interpolation_test: RuntimeError
-type_constant_switch_test/01: MissingCompileTimeError
-unconditional_dartio_import_test: RuntimeError
+[ $compiler == dart2js && !$dart2js_with_kernel ]
+expose_this1_test: RuntimeError # Issue 31254
+expose_this2_test: RuntimeError # Issue 31254
-[ $compiler == dart2js && $dart2js_with_kernel && $checked ]
-21666_test: RuntimeError
-closure_capture2_test: RuntimeError
-closure_type_reflection2_test: RuntimeError
-closure_type_reflection_test: RuntimeError
-constant_javascript_semantics_test/01: MissingCompileTimeError
-deferred/deferred_mirrors1_test: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
-deferred/deferred_mirrors2_test: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
-deferred/reflect_multiple_annotations_test: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
-deferred/reflect_multiple_default_arg_test: Crash # Unsupported operation: KernelDeferredLoadTask.addMirrorElementsForLibrary
-deferred/uninstantiated_type_variable_test: Crash # NoSuchMethodError: The method 'hasSubclass' was called on null.
-deferred_custom_loader_test: RuntimeError
-deferred_fail_and_retry_test: RuntimeError
-deferred_fail_and_retry_worker_test: Fail
-dummy_compiler_test: CompileTimeError
-invalid_annotation2_test/none: RuntimeError
-label_test/06: MissingCompileTimeError
-minus_zero_test/01: MissingCompileTimeError
-mirror_invalid_field_access2_test: RuntimeError
-mirror_invalid_field_access3_test: RuntimeError
-mirror_invalid_field_access4_test: RuntimeError
-mirror_invalid_field_access_test: RuntimeError
-mirror_invalid_invoke2_test: RuntimeError
-mirror_invalid_invoke3_test: RuntimeError
-mirror_invalid_invoke_test: RuntimeError
-mirror_printer_test/01: RuntimeError
-mirror_printer_test/none: RuntimeError
-mirror_test: RuntimeError
-mirror_type_inference_field2_test: RuntimeError
-mirror_type_inference_field_test: RuntimeError
-mirror_type_inference_function_test: RuntimeError
-mirrors_declarations_filtering_test: RuntimeError
-mirrors_used_metatargets_test: RuntimeError
-mirrors_used_native_test: RuntimeError
-mirrors_used_warning2_test: RuntimeError
-mirrors_used_warning_test/minif: RuntimeError
-mirrors_used_warning_test/none: RuntimeError
-private_symbol_literal_test/01: MissingCompileTimeError
-private_symbol_literal_test/02: MissingCompileTimeError
-private_symbol_literal_test/03: MissingCompileTimeError
-private_symbol_literal_test/04: MissingCompileTimeError
-private_symbol_literal_test/05: MissingCompileTimeError
-private_symbol_literal_test/06: MissingCompileTimeError
-recursive_import_test: CompileTimeError
-reflect_native_types_test: RuntimeError
-regress/4562_test/none: CompileTimeError
-string_interpolation_dynamic_test: RuntimeError
-string_interpolation_test: RuntimeError
-type_constant_switch_test/01: MissingCompileTimeError
-unconditional_dartio_import_test: RuntimeError
+[ $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
+deferred/reflect_multiple_annotations_test: CompileTimeError # mirrors not supported
+deferred/reflect_multiple_default_arg_test: CompileTimeError # mirrors not supported
+inference_nsm_mirrors_test: Fail # mirrors not supported
+invalid_annotation2_test/01: Pass # mirrors not supported, passes for the wrong reason
+invalid_annotation2_test/none: 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 == drt && $csp ]
-deferred/load_in_correct_order_test: SkipByDesign # Purposely uses `eval`
+[ $compiler == dart2js && $minified ]
+code_motion_exception_test: Skip # Requires unminified operator names.
+deferred/reflect_multiple_annotations_test: Fail
+deferred/reflect_multiple_default_arg_test: Fail
+mirrors_used_warning_test/minif: Fail, OK # Tests warning that minified code will be broken.
+runtime_type_test: Fail, OK # Tests extected output of Type.toString().
+to_string_test: Fail # Issue 7179.
+
+[ $compiler == dart2js && ($runtime == chrome || $runtime == chromeOnAndroid || $runtime == drt || $runtime == ff || $runtime == safari || $runtime == safarimobilesim) ]
+isolate2_test/01: Fail # Issue 14458.
+
+[ $compiler == dart2js && ($runtime == chrome || $runtime == d8 || $runtime == drt) ]
+bound_closure_interceptor_type_test: Fail, Pass # v8 issue 3084. https://code.google.com/p/v8/issues/detail?id=3084
+
+[ $compiler == dart2js && ($runtime == drt || $runtime == ff || $runtime == jsshell || $runtime == safari) ]
+code_motion_exception_test: Skip # Required V8 specific format of JavaScript errors.
+
+[ $compiler == none && $runtime == vm ]
+invalid_annotation_test/01: MissingCompileTimeError, OK # vm is lazy
+new_from_env_test: SkipByDesign # dart2js only test
+unconditional_dartio_import_test: SkipByDesign # dart2js only test
+
+[ $mode == debug && ($compiler == dartk || $compiler == dartkp) ]
+dummy_compiler_test: Slow, Pass
+recursive_import_test: Slow, Pass
+
+[ $hot_reload || $hot_reload_rollback ]
+dummy_compiler_test: Skip # Running dart2js under frequent reloads is slow.
+recursive_import_test: Skip # Running dart2js under frequent reloads is slow.
+
diff --git a/tests/compiler/dart2js_extra/deferred/deferred_metadata_lib.dart b/tests/compiler/dart2js_extra/deferred/deferred_metadata_lib.dart
new file mode 100644
index 0000000..2bb5573
--- /dev/null
+++ b/tests/compiler/dart2js_extra/deferred/deferred_metadata_lib.dart
@@ -0,0 +1,18 @@
+// 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.
+
+class Annotation {
+ final annotationField;
+ const Annotation([this.annotationField]);
+}
+
+class X {
+ @Annotation()
+ int xvalue = 3;
+}
+
+foo() {
+ X x = new X();
+ return x.xvalue++;
+}
diff --git a/tests/compiler/dart2js_extra/deferred/deferred_metadata_test.dart b/tests/compiler/dart2js_extra/deferred/deferred_metadata_test.dart
new file mode 100644
index 0000000..03c1b50
--- /dev/null
+++ b/tests/compiler/dart2js_extra/deferred/deferred_metadata_test.dart
@@ -0,0 +1,23 @@
+// 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.
+
+/// Regression tests to ensure that member metadata is not considered by the
+/// deferred loading algorithm, unless mirrors are available.
+///
+/// This test was failing in the past because the deferred-loading algorithm was
+/// adding entities to the K-element-map after we had closed the world and we
+/// had created the J-element-map. Later, when we convert the K annotation to
+/// its J conterpart, we couldn't find it in the conversion maps because it was
+/// added too late.
+///
+/// If we add support for mirrors in the future, we just need to ensure that
+/// such K annotations are discovered during resolution, before the deferred
+/// loading phase.
+
+import 'deferred_metadata_lib.dart' deferred as d show foo;
+
+main() async {
+ await d.loadLibrary();
+ print(d.foo());
+}
diff --git a/tests/compiler/dart2js_extra/inline_generic_test.dart b/tests/compiler/dart2js_extra/inline_generic_test.dart
new file mode 100644
index 0000000..a5a8c38
--- /dev/null
+++ b/tests/compiler/dart2js_extra/inline_generic_test.dart
@@ -0,0 +1,23 @@
+// 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.
+
+/// Test that inlining of constructors with `double` as type argument registers
+/// that double is need for checking passed values.
+
+class C<T> implements D<T> {
+ T a;
+
+ C.gen(this.a);
+}
+
+class D<T> {
+ factory D.fact(T a) => new C<T>.gen(a);
+}
+
+main() {
+ new C<double>.gen(0.5); //# 01: ok
+ new D<double>.fact(0.5); //# 02: ok
+ <double>[].add(0.5); //# 03: ok
+ <int, double>{}[0] = 0.5; //# 04: ok
+}
diff --git a/tests/compiler/dart2js_native/dart2js_native.status b/tests/compiler/dart2js_native/dart2js_native.status
index c21b5b3..fb8f6dd 100644
--- a/tests/compiler/dart2js_native/dart2js_native.status
+++ b/tests/compiler/dart2js_native/dart2js_native.status
@@ -5,25 +5,38 @@
[ $browser ]
*: Skip
-[ $compiler == dart2js && !$dart2js_with_kernel ]
-native_no_such_method_exception4_frog_test: CompileTimeError # Issue 9631
-native_no_such_method_exception5_frog_test: CompileTimeError # Issue 9631
-bound_closure_super_test: Fail
-fake_thing_test: Fail # Issue 13010
-
-[ $compiler == dart2js && $fast_startup && !$dart2js_with_kernel ]
-mirror_intercepted_field_test: Fail # mirrors not supported
-native_mirror_test: Fail # mirrors not supported
-native_no_such_method_exception3_frog_test: Fail # mirrors not supported
-native_no_such_method_exception4_frog_test: Fail # mirrors not supported
-native_no_such_method_exception5_frog_test: Fail # mirrors not supported
-
-[ $compiler == dart2js && $minified && !$dart2js_with_kernel ]
-optimization_hints_test: Fail, OK # Test relies on unminified names.
-
[ $compiler == dart2js && $runtime == d8 && $system == windows && !$dart2js_with_kernel ]
compute_this_script_test: Skip # Issue 17458
+[ $compiler == dart2js && $checked && $dart2js_with_kernel ]
+bound_closure_super_test: RuntimeError
+fake_thing_test: RuntimeError
+mirror_intercepted_field_test: RuntimeError
+native_library_same_name_used_frog_test: CompileTimeError
+native_mirror_test: RuntimeError
+native_no_such_method_exception4_frog_test: RuntimeError
+native_no_such_method_exception5_frog_test: RuntimeError
+optimization_hints_test: RuntimeError
+subclassing_constructor_1_test: RuntimeError
+subclassing_super_call_test: RuntimeError
+subclassing_super_field_1_test: RuntimeError
+subclassing_super_field_2_test: RuntimeError
+
+[ $compiler == dart2js && $dart2js_with_kernel && $fast_startup ]
+bound_closure_super_test: RuntimeError
+fake_thing_test: RuntimeError
+mirror_intercepted_field_test: RuntimeError
+native_library_same_name_used_frog_test: CompileTimeError
+native_mirror_test: RuntimeError
+native_no_such_method_exception3_frog_test: RuntimeError
+native_no_such_method_exception4_frog_test: RuntimeError
+native_no_such_method_exception5_frog_test: RuntimeError
+optimization_hints_test: RuntimeError
+subclassing_constructor_1_test: RuntimeError
+subclassing_super_call_test: RuntimeError
+subclassing_super_field_1_test: RuntimeError
+subclassing_super_field_2_test: RuntimeError
+
[ $compiler == dart2js && $dart2js_with_kernel && $host_checked ]
bound_closure_super_test: RuntimeError
compute_this_script_test: Crash # 'file:*/pkg/compiler/lib/src/ssa/types.dart': Failed assertion: line 63 pos 12: '!result.isEmpty': is not true.
@@ -53,34 +66,19 @@
subclassing_super_field_1_test: RuntimeError
subclassing_super_field_2_test: RuntimeError
-[ $compiler == dart2js && $dart2js_with_kernel && $fast_startup ]
-bound_closure_super_test: RuntimeError
-fake_thing_test: RuntimeError
-mirror_intercepted_field_test: RuntimeError
-native_library_same_name_used_frog_test: CompileTimeError
-native_method_inlining_test: RuntimeError
-native_mirror_test: RuntimeError
-native_mixin_field_test: RuntimeError
-native_no_such_method_exception3_frog_test: RuntimeError
-native_no_such_method_exception4_frog_test: RuntimeError
-native_no_such_method_exception5_frog_test: RuntimeError
-optimization_hints_test: RuntimeError
-subclassing_constructor_1_test: RuntimeError
-subclassing_super_call_test: RuntimeError
-subclassing_super_field_1_test: RuntimeError
-subclassing_super_field_2_test: RuntimeError
+[ $compiler == dart2js && !$dart2js_with_kernel ]
+bound_closure_super_test: Fail
+fake_thing_test: Fail # Issue 13010
+native_no_such_method_exception4_frog_test: CompileTimeError # Issue 9631
+native_no_such_method_exception5_frog_test: CompileTimeError # Issue 9631
-[ $compiler == dart2js && $dart2js_with_kernel && $checked ]
-bound_closure_super_test: RuntimeError
-fake_thing_test: RuntimeError
-mirror_intercepted_field_test: RuntimeError
-native_library_same_name_used_frog_test: CompileTimeError
-native_mirror_test: RuntimeError
-native_no_such_method_exception4_frog_test: RuntimeError
-native_no_such_method_exception5_frog_test: RuntimeError
-optimization_hints_test: RuntimeError
-subclassing_constructor_1_test: RuntimeError
-subclassing_super_call_test: RuntimeError
-subclassing_super_field_1_test: RuntimeError
-subclassing_super_field_2_test: RuntimeError
+[ $compiler == dart2js && !$dart2js_with_kernel && $fast_startup ]
+mirror_intercepted_field_test: Fail # mirrors not supported
+native_mirror_test: Fail # mirrors not supported
+native_no_such_method_exception3_frog_test: Fail # mirrors not supported
+native_no_such_method_exception4_frog_test: Fail # mirrors not supported
+native_no_such_method_exception5_frog_test: Fail # mirrors not supported
+
+[ $compiler == dart2js && !$dart2js_with_kernel && $minified ]
+optimization_hints_test: Fail, OK # Test relies on unminified names.
diff --git a/tests/corelib/corelib.status b/tests/corelib/corelib.status
index 6b3dab8..9c4289e 100644
--- a/tests/corelib/corelib.status
+++ b/tests/corelib/corelib.status
@@ -2,168 +2,20 @@
# 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.
-[ $strong ]
-*: SkipByDesign # tests/corelib_strong has the strong mode versions of these tests.
-
-[ $compiler == none || $compiler == precompiler || $compiler == app_jit ]
-compare_to2_test: Fail # Bug 4018
-symbol_test/01: Fail, Pass # bug 11669
-unicode_test: Fail # Bug 6706
-
-symbol_reserved_word_test/05: CompileTimeError # bug 20191
-symbol_reserved_word_test/06: RuntimeError # bug 11669
-symbol_reserved_word_test/09: RuntimeError # bug 11669
-symbol_reserved_word_test/12: RuntimeError # bug 11669
-
-symbol_test/none: Fail # bug 11669
-symbol_operator_test/03: Fail # bug 11669
-string_case_test/01: Fail # Bug 18061
-
-[ $compiler == none && ($runtime == vm || $runtime == flutter)]
-string_trimlr_test/02: RuntimeError # Issue 29060
-
-[ $compiler == precompiler || $compiler == app_jit ]
-string_trimlr_test/02: RuntimeError # Issue 29060
-
-[ $compiler == none || $compiler == precompiler || $compiler == app_jit ]
-symbol_reserved_word_test/02: CompileTimeError # bug 20191
-
-symbol_reserved_word_test/04: MissingCompileTimeError # bug 11669, 19972
-symbol_reserved_word_test/07: MissingCompileTimeError # bug 11669, 19972
-symbol_reserved_word_test/10: MissingCompileTimeError # bug 11669, 19972
-
-[ $compiler == dart2js && !$dart2js_with_kernel ]
-double_parse_test/01: Pass, Fail # JS implementations disagree on U+0085 being whitespace.
-int_modulo_arith_test/bignum: RuntimeError # No bigints.
-int_modulo_arith_test/modPow: RuntimeError # No bigints.
-int_parse_radix_test/01: Pass, Fail # JS implementations disagree on U+0085 being whitespace.
-int_parse_radix_test/02: Fail # No bigints.
-integer_to_radix_string_test: RuntimeError # issue 22045
-list_unmodifiable_test: Pass, RuntimeError # Issue 28712
-symbol_reserved_word_test/02: CompileTimeError # bug 20191
-symbol_reserved_word_test/03: RuntimeError # bug 19972, new Symbol('void') should be allowed.
-symbol_reserved_word_test/05: Crash # bug 20191
-
-[ $compiler == dart2js && $fast_startup ]
-apply3_test: Fail # mirrors not supported
-
-[ ($compiler == none || $compiler == precompiler || $compiler == app_jit) && $runtime != drt ]
-symbol_test/02: MissingCompileTimeError # bug 11669
-symbol_test/03: MissingCompileTimeError # bug 11669
-
-# Firefox takes advantage of the ECMAScript number parsing cop-out clause
-# (presumably added to allow Mozilla's existing behavior)
-# and only looks at the first 20 significant digits.
-# The Dart VM and the other ECMAScript implementations follow the correct
-# IEEE-754 rounding algorithm.
-[ $runtime == ff || $runtime == jsshell ]
-double_parse_test/02: Fail, OK
-
-[ $runtime == safari || $runtime == safarimobilesim ]
-double_round3_test: RuntimeError
-double_round_to_double2_test: Pass, Fail, OK
-string_trimlr_test/02: RuntimeError # Uses Unicode 6.2.0 or earlier.
-
-[ $runtime == ff ]
-double_round3_test: Pass, Fail, OK # Fails on ff 34, passes on ff 35. Runtime rounds 0.49999999999999994 to 1.
-double_round_to_double2_test: Pass, Fail, OK # Fails on ff 34, passes on ff 35. Runtime rounds 0.49999999999999994 to 1.
-
-[ $runtime == jsshell ]
-string_case_test/01: RuntimeError # jsshell does not recognize character 223 aka \xdf
-unicode_test: RuntimeError # jsshell does not recognize character 223 aka \xdf
-
-[ $compiler == dart2js && $runtime == drt && $csp && $minified ]
-core_runtime_types_test: Pass, Fail # Issue 27913
-
-[ $compiler == dart2js && !$dart2js_with_kernel ]
-error_stack_trace1_test: RuntimeError # Issue 12399
-hash_set_test/01: RuntimeError # Issue 11551
-integer_to_string_test/01: RuntimeError # Issue 1533
-iterable_return_type_test/01: RuntimeError # Issue 20085
-iterable_return_type_test/02: RuntimeError # Dart2js does not support Uint64*.
-iterable_to_list_test/01: RuntimeError # Issue 26501
-
-big_integer_*: Skip # VM specific test.
-bit_twiddling_bigint_test: RuntimeError # Requires bigint support.
-compare_to2_test: RuntimeError, OK # Requires bigint support.
-string_base_vm_test: RuntimeError, OK # VM specific test.
-nan_infinity_test/01: Fail # Issue 11551
-regress_r21715_test: RuntimeError # Requires bigint support.
+[ $compiler == dart2analyzer ]
+duration2_test: StaticWarning, OK # Test generates error on purpose.
+error_stack_trace_test: StaticWarning, OK # Test generates errors on purpose.
+hash_set_type_check_test: StaticWarning, OK # Tests failing type tests.
+int_parse_radix_bad_handler_test: Fail
+iterable_element_at_test: StaticWarning, OK # Test generates errors on purpose.
+num_clamp_test: StaticWarning, OK # Test generates errors on purpose.
+string_test: StaticWarning, OK # Test generates error on purpose.
[ $compiler == dart2js ]
regexp/pcre_test: Pass, Slow # Issue 21593
-[ $compiler == dart2js && $runtime == none ]
-*: Fail, Pass # TODO(ahe): Triage these tests.
-
-[ $compiler == dart2js && $runtime == chromeOnAndroid ]
-list_as_map_test: Pass, Slow # TODO(kasperl): Please triage.
-string_trimlr_test/02: RuntimeError # Uses Unicode 6.2.0 or earlier.
-
-[ $compiler == dart2js && $runtime == drt ]
-string_trimlr_test/02: RuntimeError # Uses Unicode 6.2.0 or earlier.
-
-[ $compiler == dart2js && $runtime == safarimobilesim ]
-string_split_test: RuntimeError # Issue 21431
-
-[ $compiler == dart2js && $runtime == safarimobilesim ]
-list_test/01: Fail # Safari bug: Array(-2) seen as dead code.
-string_trimlr_test/01: Fail
-string_trimlr_test/02: RuntimeError # Uses Unicode 6.2.0 or earlier.
-
-# Analyzer's implementation of fromEnvironment assumes that undefined
-# environment variables have an unspecified value (rather than being
-# null) because it is expected that the user will supply a value when
-# the code is run. This means that it produces slightly different
-# error messages than the VM and Dart2js.
-[ $compiler == dart2analyzer && $checked ]
-from_environment_const_type_undefined_test/09: CompileTimeError
-from_environment_const_type_undefined_test/11: CompileTimeError
-from_environment_const_type_undefined_test/12: CompileTimeError
-from_environment_const_type_undefined_test/13: CompileTimeError
-from_environment_const_type_undefined_test/14: CompileTimeError
-from_environment_const_type_undefined_test/16: CompileTimeError
-
-[ $compiler == dart2analyzer ]
-int_parse_radix_bad_handler_test: fail
-hash_set_type_check_test: StaticWarning, OK # Tests failing type tests.
-error_stack_trace_test: StaticWarning, OK # Test generates errors on purpose.
-iterable_element_at_test: StaticWarning, OK # Test generates errors on purpose.
-num_clamp_test: StaticWarning, OK # Test generates errors on purpose.
-string_test: StaticWarning, OK # Test generates error on purpose.
-duration2_test: StaticWarning, OK # Test generates error on purpose.
-
-[ $compiler == dart2analyzer && $builder_tag == strong ]
-*: Skip # Issue 28649
-
-[ $system == windows && $arch == x64 ]
-stopwatch_test: Skip # Flaky test due to expected performance behaviour.
-
-[ $runtime != d8 && $runtime != vm && $runtime != dart_precompiled ]
-regexp/*: Skip # The regexp tests are not verified to work on non d8/vm platforms yet.
-
-[ $runtime == d8 ]
-uri_base_test: RuntimeError # d8 preamble uses custom URI scheme "org-dartlang-d8-preamble:".
-
-[ $runtime == vm || $runtime == dart_precompiled || $runtime == flutter]
-regexp/global_test: Skip # Timeout. Issue 21709 and 21708
-regexp/pcre_test: Pass, Slow, Timeout # Issues 21593 and 22008
-regexp/capture-3: Pass, Slow, Timeout # Issues 21593 and 22008
-
-[ $runtime != vm && $runtime != dart_precompiled && $compiler != dart2analyzer]
-data_resource_test: RuntimeError # Issue 23825 (not implemented yet).
-file_resource_test: Skip, OK # VM specific test, uses dart:io.
-http_resource_test: Skip, OK # VM specific test, uses dart:io.
-
-[ $compiler == dart2js && !$browser ]
-package_resource_test: RuntimeError # Issue 26842
-
-[ $mode == debug ]
-regexp/pcre_test: Pass, Slow # Timeout. Issue 22008
-
-[ ($runtime == vm || $runtime == dart_precompiled) && $arch == simarmv5te ]
-int_parse_radix_test/*: Pass, Slow
-big_integer_parsed_mul_div_vm_test: Pass, Slow
+[ $compiler == dartkp ]
+apply3_test: CompileTimeError # No support for mirrors
[ $compiler == precompiler ]
apply3_test: SkipByDesign # Imports dart:mirrors
@@ -171,85 +23,18 @@
big_integer_parsed_mul_div_vm_test: Pass, Timeout # --no_intrinsify
int_parse_radix_test: Pass, Timeout # --no_intrinsify
-[ $compiler == precompiler || $compiler == dartkp ]
-regexp/stack-overflow_test: RuntimeError, OK # Smaller limit with irregex interpreter
+[ $mode == debug ]
+regexp/pcre_test: Pass, Slow # Timeout. Issue 22008
-[ $compiler == precompiler || $compiler == app_jit ]
-data_resource_test: Skip # Resolve URI not supported yet in product mode.
-package_resource_test: Skip # Resolve URI not supported yet in product mode.
-file_resource_test: Skip # Resolve URI not supported yet in product mode.
-http_resource_test: Skip # Resolve URI not supported yet in product mode.
+[ $runtime == d8 ]
+uri_base_test: RuntimeError # d8 preamble uses custom URI scheme "org-dartlang-d8-preamble:".
-[ $arch == simdbc || $arch == simdbc64 ]
-regexp/stack-overflow_test: RuntimeError, OK # Smaller limit with irregex interpreter
-
-[ $hot_reload || $hot_reload_rollback ]
-big_integer_parsed_mul_div_vm_test: Pass, Slow # Slow.
-big_integer_huge_mul_vm_test: Pass, Slow # Slow
-
-[ $compiler == dart2js && !$dart2js_with_kernel ]
-symbol_reserved_word_test/04: MissingCompileTimeError
-symbol_reserved_word_test/07: MissingCompileTimeError
-symbol_reserved_word_test/10: MissingCompileTimeError
-
-[ ($compiler == dartk || $compiler == dartkp) && ($runtime == vm || $runtime == dart_precompiled) ]
-bool_from_environment2_test/01: MissingCompileTimeError
-bool_from_environment2_test/02: MissingCompileTimeError
-bool_from_environment2_test/03: MissingCompileTimeError
-bool_from_environment2_test/04: MissingCompileTimeError
-compare_to2_test: RuntimeError
-int_from_environment3_test/01: MissingCompileTimeError
-int_from_environment3_test/02: MissingCompileTimeError
-int_from_environment3_test/03: MissingCompileTimeError
-int_from_environment3_test/04: MissingCompileTimeError
-string_case_test/01: RuntimeError
-string_from_environment3_test/01: MissingCompileTimeError
-string_from_environment3_test/02: MissingCompileTimeError
-string_from_environment3_test/03: MissingCompileTimeError
-string_from_environment3_test/04: MissingCompileTimeError
-string_trimlr_test/02: RuntimeError
-symbol_operator_test/03: RuntimeError
-symbol_reserved_word_test/04: MissingCompileTimeError
-symbol_reserved_word_test/06: RuntimeError
-symbol_reserved_word_test/07: MissingCompileTimeError
-symbol_reserved_word_test/09: RuntimeError
-symbol_reserved_word_test/10: MissingCompileTimeError
-symbol_reserved_word_test/12: RuntimeError
-symbol_test/01: MissingCompileTimeError
-symbol_test/02: MissingCompileTimeError
-symbol_test/03: MissingCompileTimeError
-symbol_test/none: RuntimeError
-unicode_test: Fail # Bug 6706
-
-# dartk: checked mode failures
-[ $checked && ($compiler == dartk || $compiler == dartkp) ]
-symbol_test/01: Pass
-symbol_test/02: Pass
-from_environment_const_type_test/02: MissingCompileTimeError
-from_environment_const_type_test/03: MissingCompileTimeError
-from_environment_const_type_test/04: MissingCompileTimeError
-from_environment_const_type_test/06: MissingCompileTimeError
-from_environment_const_type_test/07: MissingCompileTimeError
-from_environment_const_type_test/08: MissingCompileTimeError
-from_environment_const_type_test/09: MissingCompileTimeError
-from_environment_const_type_test/11: MissingCompileTimeError
-from_environment_const_type_test/12: MissingCompileTimeError
-from_environment_const_type_test/13: MissingCompileTimeError
-from_environment_const_type_test/14: MissingCompileTimeError
-from_environment_const_type_test/16: MissingCompileTimeError
-from_environment_const_type_undefined_test/02: MissingCompileTimeError
-from_environment_const_type_undefined_test/03: MissingCompileTimeError
-from_environment_const_type_undefined_test/04: MissingCompileTimeError
-from_environment_const_type_undefined_test/06: MissingCompileTimeError
-from_environment_const_type_undefined_test/07: MissingCompileTimeError
-from_environment_const_type_undefined_test/08: MissingCompileTimeError
-
-[ $compiler == dartkp ]
-apply3_test: CompileTimeError # No support for mirrors
+[ $runtime == ff ]
+double_round3_test: Pass, Fail, OK # Fails on ff 34, passes on ff 35. Runtime rounds 0.49999999999999994 to 1.
+double_round_to_double2_test: Pass, Fail, OK # Fails on ff 34, passes on ff 35. Runtime rounds 0.49999999999999994 to 1.
[ $runtime == flutter ]
apply3_test: CompileTimeError # No support for mirrors
-
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
@@ -276,6 +61,164 @@
string_from_environment_test: Fail # Flutter Issue 9111
string_trimlr_test/02: RuntimeError # Flutter Issue 9111
+[ $runtime == jsshell ]
+string_case_test/01: RuntimeError # jsshell does not recognize character 223 aka \xdf
+unicode_test: RuntimeError # jsshell does not recognize character 223 aka \xdf
+
+[ $strong ]
+*: SkipByDesign # tests/corelib_strong has the strong mode versions of these tests.
+
+[ $arch == simarmv5te && ($runtime == dart_precompiled || $runtime == vm) ]
+big_integer_parsed_mul_div_vm_test: Pass, Slow
+int_parse_radix_test/*: Pass, Slow
+
+[ $arch == x64 && $system == windows ]
+stopwatch_test: Skip # Flaky test due to expected performance behaviour.
+
+[ $builder_tag == strong && $compiler == dart2analyzer ]
+*: Skip # Issue 28649
+
+# Analyzer's implementation of fromEnvironment assumes that undefined
+# environment variables have an unspecified value (rather than being
+# null) because it is expected that the user will supply a value when
+# the code is run. This means that it produces slightly different
+# error messages than the VM and Dart2js.
+[ $compiler == dart2analyzer && $checked ]
+from_environment_const_type_undefined_test/09: CompileTimeError
+from_environment_const_type_undefined_test/11: CompileTimeError
+from_environment_const_type_undefined_test/12: CompileTimeError
+from_environment_const_type_undefined_test/13: CompileTimeError
+from_environment_const_type_undefined_test/14: CompileTimeError
+from_environment_const_type_undefined_test/16: CompileTimeError
+
+[ $compiler != dart2analyzer && $runtime != dart_precompiled && $runtime != vm ]
+data_resource_test: RuntimeError # Issue 23825 (not implemented yet).
+file_resource_test: Skip, OK # VM specific test, uses dart:io.
+http_resource_test: Skip, OK # VM specific test, uses dart:io.
+
+[ $compiler == dart2js && $runtime == chromeOnAndroid ]
+list_as_map_test: Pass, Slow # TODO(kasperl): Please triage.
+string_trimlr_test/02: RuntimeError # Uses Unicode 6.2.0 or earlier.
+
+[ $compiler == dart2js && $runtime == drt ]
+string_trimlr_test/02: RuntimeError # Uses Unicode 6.2.0 or earlier.
+
+[ $compiler == dart2js && $runtime == drt && $csp && $minified ]
+core_runtime_types_test: Pass, Fail # Issue 27913
+
+[ $compiler == dart2js && $runtime == none ]
+*: Fail, Pass # TODO(ahe): Triage these tests.
+
+[ $compiler == dart2js && $runtime == safarimobilesim ]
+list_test/01: Fail # Safari bug: Array(-2) seen as dead code.
+string_split_test: RuntimeError # Issue 21431
+string_trimlr_test/01: Fail
+string_trimlr_test/02: RuntimeError # Uses Unicode 6.2.0 or earlier.
+
+[ $compiler == dart2js && !$browser ]
+package_resource_test: RuntimeError # Issue 26842
+
+[ $compiler == dart2js && $checked && $dart2js_with_kernel ]
+apply3_test: RuntimeError
+big_integer_arith_vm_test/add: RuntimeError
+big_integer_arith_vm_test/div: RuntimeError
+big_integer_arith_vm_test/gcd: RuntimeError
+big_integer_arith_vm_test/mod: RuntimeError
+big_integer_arith_vm_test/modInv: RuntimeError
+big_integer_arith_vm_test/modPow: RuntimeError
+big_integer_arith_vm_test/mul: RuntimeError
+big_integer_arith_vm_test/negate: RuntimeError
+big_integer_arith_vm_test/none: RuntimeError
+big_integer_arith_vm_test/overflow: RuntimeError
+big_integer_arith_vm_test/shift: RuntimeError
+big_integer_arith_vm_test/sub: RuntimeError
+big_integer_arith_vm_test/trunDiv: RuntimeError
+big_integer_parsed_arith_vm_test: RuntimeError
+big_integer_parsed_div_rem_vm_test: RuntimeError
+big_integer_parsed_mul_div_vm_test: RuntimeError
+bit_twiddling_bigint_test: RuntimeError
+compare_to2_test: RuntimeError
+double_parse_test/01: RuntimeError
+from_environment_const_type_test/02: MissingCompileTimeError
+from_environment_const_type_test/03: MissingCompileTimeError
+from_environment_const_type_test/04: MissingCompileTimeError
+from_environment_const_type_test/06: MissingCompileTimeError
+from_environment_const_type_test/07: MissingCompileTimeError
+from_environment_const_type_test/08: MissingCompileTimeError
+from_environment_const_type_test/09: MissingCompileTimeError
+from_environment_const_type_test/11: MissingCompileTimeError
+from_environment_const_type_test/12: MissingCompileTimeError
+from_environment_const_type_test/13: MissingCompileTimeError
+from_environment_const_type_test/14: MissingCompileTimeError
+from_environment_const_type_test/16: MissingCompileTimeError
+from_environment_const_type_undefined_test/02: MissingCompileTimeError
+from_environment_const_type_undefined_test/03: MissingCompileTimeError
+from_environment_const_type_undefined_test/04: MissingCompileTimeError
+from_environment_const_type_undefined_test/06: MissingCompileTimeError
+from_environment_const_type_undefined_test/07: MissingCompileTimeError
+from_environment_const_type_undefined_test/08: MissingCompileTimeError
+hash_set_test/01: RuntimeError
+int_modulo_arith_test/bignum: RuntimeError
+int_modulo_arith_test/modPow: RuntimeError
+int_parse_radix_test/01: RuntimeError
+int_parse_radix_test/02: RuntimeError
+integer_to_radix_string_test: RuntimeError
+integer_to_string_test/01: RuntimeError
+iterable_return_type_test/01: RuntimeError
+iterable_return_type_test/02: RuntimeError
+iterable_to_list_test/01: RuntimeError
+map_test: Crash # tests/corelib/map_test.dart:866:7: Internal problem: Unhandled Null in installDefaultConstructor.
+nan_infinity_test/01: RuntimeError
+regress_r21715_test: RuntimeError
+string_base_vm_test: RuntimeError
+symbol_reserved_word_test/03: RuntimeError
+symbol_reserved_word_test/04: MissingCompileTimeError
+symbol_reserved_word_test/07: MissingCompileTimeError
+symbol_reserved_word_test/10: MissingCompileTimeError
+symbol_test/02: MissingCompileTimeError
+symbol_test/03: MissingCompileTimeError
+
+[ $compiler == dart2js && $dart2js_with_kernel && $fast_startup ]
+big_integer_arith_vm_test/add: RuntimeError
+big_integer_arith_vm_test/div: RuntimeError
+big_integer_arith_vm_test/gcd: RuntimeError
+big_integer_arith_vm_test/mod: RuntimeError
+big_integer_arith_vm_test/modInv: RuntimeError
+big_integer_arith_vm_test/modPow: RuntimeError
+big_integer_arith_vm_test/mul: RuntimeError
+big_integer_arith_vm_test/negate: RuntimeError
+big_integer_arith_vm_test/none: RuntimeError
+big_integer_arith_vm_test/overflow: RuntimeError
+big_integer_arith_vm_test/shift: RuntimeError
+big_integer_arith_vm_test/sub: RuntimeError
+big_integer_arith_vm_test/trunDiv: RuntimeError
+big_integer_parsed_arith_vm_test: RuntimeError
+big_integer_parsed_div_rem_vm_test: RuntimeError
+big_integer_parsed_mul_div_vm_test: RuntimeError
+bit_twiddling_bigint_test: RuntimeError
+compare_to2_test: RuntimeError
+double_parse_test/01: RuntimeError
+hash_set_test/01: RuntimeError
+int_modulo_arith_test/bignum: RuntimeError
+int_modulo_arith_test/modPow: RuntimeError
+int_parse_radix_test/01: RuntimeError
+int_parse_radix_test/02: RuntimeError
+integer_to_radix_string_test: RuntimeError
+integer_to_string_test/01: RuntimeError
+iterable_return_type_test/01: RuntimeError
+iterable_return_type_test/02: RuntimeError
+iterable_to_list_test/01: RuntimeError
+map_test: Crash # tests/corelib/map_test.dart:866:7: Internal problem: Unhandled Null in installDefaultConstructor.
+nan_infinity_test/01: RuntimeError
+regress_r21715_test: RuntimeError
+string_base_vm_test: RuntimeError
+symbol_reserved_word_test/03: RuntimeError
+symbol_reserved_word_test/04: MissingCompileTimeError
+symbol_reserved_word_test/07: MissingCompileTimeError
+symbol_reserved_word_test/10: MissingCompileTimeError
+symbol_test/02: MissingCompileTimeError
+symbol_test/03: MissingCompileTimeError
+
[ $compiler == dart2js && $dart2js_with_kernel && $host_checked ]
apply3_test: RuntimeError
big_integer_arith_vm_test/add: RuntimeError
@@ -364,68 +307,48 @@
symbol_test/02: MissingCompileTimeError
symbol_test/03: MissingCompileTimeError
-[ $compiler == dart2js && $dart2js_with_kernel && $fast_startup ]
-big_integer_arith_vm_test/add: RuntimeError
-big_integer_arith_vm_test/div: RuntimeError
-big_integer_arith_vm_test/gcd: RuntimeError
-big_integer_arith_vm_test/mod: RuntimeError
-big_integer_arith_vm_test/modInv: RuntimeError
-big_integer_arith_vm_test/modPow: RuntimeError
-big_integer_arith_vm_test/mul: RuntimeError
-big_integer_arith_vm_test/negate: RuntimeError
-big_integer_arith_vm_test/none: RuntimeError
-big_integer_arith_vm_test/overflow: RuntimeError
-big_integer_arith_vm_test/shift: RuntimeError
-big_integer_arith_vm_test/sub: RuntimeError
-big_integer_arith_vm_test/trunDiv: RuntimeError
-big_integer_parsed_arith_vm_test: RuntimeError
-big_integer_parsed_div_rem_vm_test: RuntimeError
-big_integer_parsed_mul_div_vm_test: RuntimeError
-bit_twiddling_bigint_test: RuntimeError
-compare_to2_test: RuntimeError
-double_parse_test/01: RuntimeError
-hash_set_test/01: RuntimeError
-int_modulo_arith_test/bignum: RuntimeError
-int_modulo_arith_test/modPow: RuntimeError
-int_parse_radix_test/01: RuntimeError
-int_parse_radix_test/02: RuntimeError
-integer_to_radix_string_test: RuntimeError
-integer_to_string_test/01: RuntimeError
-iterable_return_type_test/01: RuntimeError
-iterable_return_type_test/02: RuntimeError
-iterable_to_list_test/01: RuntimeError
-map_test: Crash # tests/corelib/map_test.dart:866:7: Internal problem: Unhandled Null in installDefaultConstructor.
-nan_infinity_test/01: RuntimeError
-regress_r21715_test: RuntimeError
-string_base_vm_test: RuntimeError
-symbol_reserved_word_test/03: RuntimeError
+[ $compiler == dart2js && !$dart2js_with_kernel ]
+big_integer_*: Skip # VM specific test.
+bit_twiddling_bigint_test: RuntimeError # Requires bigint support.
+compare_to2_test: RuntimeError, OK # Requires bigint support.
+double_parse_test/01: Pass, Fail # JS implementations disagree on U+0085 being whitespace.
+error_stack_trace1_test: RuntimeError # Issue 12399
+hash_set_test/01: RuntimeError # Issue 11551
+int_modulo_arith_test/bignum: RuntimeError # No bigints.
+int_modulo_arith_test/modPow: RuntimeError # No bigints.
+int_parse_radix_test/01: Pass, Fail # JS implementations disagree on U+0085 being whitespace.
+int_parse_radix_test/02: Fail # No bigints.
+integer_to_radix_string_test: RuntimeError # issue 22045
+integer_to_string_test/01: RuntimeError # Issue 1533
+iterable_return_type_test/01: RuntimeError # Issue 20085
+iterable_return_type_test/02: RuntimeError # Dart2js does not support Uint64*.
+iterable_to_list_test/01: RuntimeError # Issue 26501
+list_unmodifiable_test: Pass, RuntimeError # Issue 28712
+nan_infinity_test/01: Fail # Issue 11551
+regress_r21715_test: RuntimeError # Requires bigint support.
+string_base_vm_test: RuntimeError, OK # VM specific test.
+symbol_reserved_word_test/02: CompileTimeError # bug 20191
+symbol_reserved_word_test/03: RuntimeError # bug 19972, new Symbol('void') should be allowed.
symbol_reserved_word_test/04: MissingCompileTimeError
+symbol_reserved_word_test/05: Crash # bug 20191
symbol_reserved_word_test/07: MissingCompileTimeError
symbol_reserved_word_test/10: MissingCompileTimeError
-symbol_test/02: MissingCompileTimeError
-symbol_test/03: MissingCompileTimeError
-[ $compiler == dart2js && $dart2js_with_kernel && $checked ]
-apply3_test: RuntimeError
-big_integer_arith_vm_test/add: RuntimeError
-big_integer_arith_vm_test/div: RuntimeError
-big_integer_arith_vm_test/gcd: RuntimeError
-big_integer_arith_vm_test/mod: RuntimeError
-big_integer_arith_vm_test/modInv: RuntimeError
-big_integer_arith_vm_test/modPow: RuntimeError
-big_integer_arith_vm_test/mul: RuntimeError
-big_integer_arith_vm_test/negate: RuntimeError
-big_integer_arith_vm_test/none: RuntimeError
-big_integer_arith_vm_test/overflow: RuntimeError
-big_integer_arith_vm_test/shift: RuntimeError
-big_integer_arith_vm_test/sub: RuntimeError
-big_integer_arith_vm_test/trunDiv: RuntimeError
-big_integer_parsed_arith_vm_test: RuntimeError
-big_integer_parsed_div_rem_vm_test: RuntimeError
-big_integer_parsed_mul_div_vm_test: RuntimeError
-bit_twiddling_bigint_test: RuntimeError
-compare_to2_test: RuntimeError
-double_parse_test/01: RuntimeError
+[ $compiler == dart2js && $fast_startup ]
+apply3_test: Fail # mirrors not supported
+
+[ $compiler == none && ($runtime == flutter || $runtime == vm) ]
+string_trimlr_test/02: RuntimeError # Issue 29060
+
+[ $runtime != d8 && $runtime != dart_precompiled && $runtime != vm ]
+regexp/*: Skip # The regexp tests are not verified to work on non d8/vm platforms yet.
+
+[ $runtime != drt && ($compiler == app_jit || $compiler == none || $compiler == precompiler) ]
+symbol_test/02: MissingCompileTimeError # bug 11669
+symbol_test/03: MissingCompileTimeError # bug 11669
+
+# dartk: checked mode failures
+[ $checked && ($compiler == dartk || $compiler == dartkp) ]
from_environment_const_type_test/02: MissingCompileTimeError
from_environment_const_type_test/03: MissingCompileTimeError
from_environment_const_type_test/04: MissingCompileTimeError
@@ -444,23 +367,86 @@
from_environment_const_type_undefined_test/06: MissingCompileTimeError
from_environment_const_type_undefined_test/07: MissingCompileTimeError
from_environment_const_type_undefined_test/08: MissingCompileTimeError
-hash_set_test/01: RuntimeError
-int_modulo_arith_test/bignum: RuntimeError
-int_modulo_arith_test/modPow: RuntimeError
-int_parse_radix_test/01: RuntimeError
-int_parse_radix_test/02: RuntimeError
-integer_to_radix_string_test: RuntimeError
-integer_to_string_test/01: RuntimeError
-iterable_return_type_test/01: RuntimeError
-iterable_return_type_test/02: RuntimeError
-iterable_to_list_test/01: RuntimeError
-map_test: Crash # tests/corelib/map_test.dart:866:7: Internal problem: Unhandled Null in installDefaultConstructor.
-nan_infinity_test/01: RuntimeError
-regress_r21715_test: RuntimeError
-string_base_vm_test: RuntimeError
-symbol_reserved_word_test/03: RuntimeError
+symbol_test/01: Pass
+symbol_test/02: Pass
+
+[ ($compiler == dartk || $compiler == dartkp) && ($runtime == dart_precompiled || $runtime == vm) ]
+bool_from_environment2_test/01: MissingCompileTimeError
+bool_from_environment2_test/02: MissingCompileTimeError
+bool_from_environment2_test/03: MissingCompileTimeError
+bool_from_environment2_test/04: MissingCompileTimeError
+compare_to2_test: RuntimeError
+int_from_environment3_test/01: MissingCompileTimeError
+int_from_environment3_test/02: MissingCompileTimeError
+int_from_environment3_test/03: MissingCompileTimeError
+int_from_environment3_test/04: MissingCompileTimeError
+string_case_test/01: RuntimeError
+string_from_environment3_test/01: MissingCompileTimeError
+string_from_environment3_test/02: MissingCompileTimeError
+string_from_environment3_test/03: MissingCompileTimeError
+string_from_environment3_test/04: MissingCompileTimeError
+string_trimlr_test/02: RuntimeError
+symbol_operator_test/03: RuntimeError
symbol_reserved_word_test/04: MissingCompileTimeError
+symbol_reserved_word_test/06: RuntimeError
symbol_reserved_word_test/07: MissingCompileTimeError
+symbol_reserved_word_test/09: RuntimeError
symbol_reserved_word_test/10: MissingCompileTimeError
+symbol_reserved_word_test/12: RuntimeError
+symbol_test/01: MissingCompileTimeError
symbol_test/02: MissingCompileTimeError
symbol_test/03: MissingCompileTimeError
+symbol_test/none: RuntimeError
+unicode_test: Fail # Bug 6706
+
+[ $arch == simdbc || $arch == simdbc64 ]
+regexp/stack-overflow_test: RuntimeError, OK # Smaller limit with irregex interpreter
+
+[ $compiler == app_jit || $compiler == none || $compiler == precompiler ]
+compare_to2_test: Fail # Bug 4018
+string_case_test/01: Fail # Bug 18061
+symbol_operator_test/03: Fail # bug 11669
+symbol_reserved_word_test/02: CompileTimeError # bug 20191
+symbol_reserved_word_test/04: MissingCompileTimeError # bug 11669, 19972
+symbol_reserved_word_test/05: CompileTimeError # bug 20191
+symbol_reserved_word_test/06: RuntimeError # bug 11669
+symbol_reserved_word_test/07: MissingCompileTimeError # bug 11669, 19972
+symbol_reserved_word_test/09: RuntimeError # bug 11669
+symbol_reserved_word_test/10: MissingCompileTimeError # bug 11669, 19972
+symbol_reserved_word_test/12: RuntimeError # bug 11669
+symbol_test/01: Fail, Pass # bug 11669
+symbol_test/none: Fail # bug 11669
+unicode_test: Fail # Bug 6706
+
+[ $compiler == app_jit || $compiler == precompiler ]
+data_resource_test: Skip # Resolve URI not supported yet in product mode.
+file_resource_test: Skip # Resolve URI not supported yet in product mode.
+http_resource_test: Skip # Resolve URI not supported yet in product mode.
+package_resource_test: Skip # Resolve URI not supported yet in product mode.
+string_trimlr_test/02: RuntimeError # Issue 29060
+
+[ $compiler == dartkp || $compiler == precompiler ]
+regexp/stack-overflow_test: RuntimeError, OK # Smaller limit with irregex interpreter
+
+[ $runtime == dart_precompiled || $runtime == flutter || $runtime == vm ]
+regexp/capture-3: Pass, Slow, Timeout # Issues 21593 and 22008
+regexp/global_test: Skip # Timeout. Issue 21709 and 21708
+regexp/pcre_test: Pass, Slow, Timeout # Issues 21593 and 22008
+
+# Firefox takes advantage of the ECMAScript number parsing cop-out clause
+# (presumably added to allow Mozilla's existing behavior)
+# and only looks at the first 20 significant digits.
+# The Dart VM and the other ECMAScript implementations follow the correct
+# IEEE-754 rounding algorithm.
+[ $runtime == ff || $runtime == jsshell ]
+double_parse_test/02: Fail, OK
+
+[ $runtime == safari || $runtime == safarimobilesim ]
+double_round3_test: RuntimeError
+double_round_to_double2_test: Pass, Fail, OK
+string_trimlr_test/02: RuntimeError # Uses Unicode 6.2.0 or earlier.
+
+[ $hot_reload || $hot_reload_rollback ]
+big_integer_huge_mul_vm_test: Pass, Slow # Slow
+big_integer_parsed_mul_div_vm_test: Pass, Slow # Slow.
+
diff --git a/tests/corelib_2/corelib_2.status b/tests/corelib_2/corelib_2.status
index 6474974..ccb021f 100644
--- a/tests/corelib_2/corelib_2.status
+++ b/tests/corelib_2/corelib_2.status
@@ -2,298 +2,125 @@
# 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.
-# All static_tests have expected compile-time errors.
-[ $strong && $compiler != dart2analyzer && $compiler != dartdevc && $compiler != dartk && $compiler != dartkp ]
-core_runtime_types_static_test: MissingCompileTimeError
-splay_tree_test/01: MissingCompileTimeError
-splay_tree_test/02: MissingCompileTimeError
-string_base_vm_static_test: MissingCompileTimeError
-string_replace_static_test: MissingCompileTimeError
-string_static_test: MissingCompileTimeError
-
-[ !$strong && $compiler != dartdevc && $checked ]
-core_runtime_types_static_test: MissingCompileTimeError
-splay_tree_test/01: MissingCompileTimeError
-splay_tree_test/02: MissingCompileTimeError
-string_base_vm_static_test: MissingCompileTimeError
-string_replace_static_test: MissingCompileTimeError
-string_static_test: MissingCompileTimeError
-
-[ !$checked && !$strong && $compiler != dartdevc && $runtime != none ]
-null_nosuchmethod_test: RuntimeError # needs Dart 2 or checked mode
-
-[ $compiler != dartdevc && $runtime != none && $compiler != dartk && $compiler != dartkp ]
-map_keys2_test: RuntimeError # needs Dart 2 is checks
-
-[ (!$checked && !$strong && $runtime == vm) || (!$checked && $compiler == dart2js) || $compiler == precompiler ]
-int_parse_radix_test/badTypes: RuntimeError # wrong exception returned
-
-[ ($compiler == dart2analyzer && $strong) || $compiler == dartdevc ]
-iterable_reduce_test/01: CompileTimeError
-
-double_parse_test/01: Skip # Temporarily disable the following tests until we figure out why they started failing.
-double_parse_test/02: Skip # Temporarily disable the following tests until we figure out why they started failing.
-double_parse_test/03: Skip # Temporarily disable the following tests until we figure out why they started failing.
-double_parse_test/04: Skip # Temporarily disable the following tests until we figure out why they started failing.
-double_parse_test/none: Skip # Temporarily disable the following tests until we figure out why they started failing.
-
-[ !$strong && !$checked ]
-core_runtime_types_static_test: MissingCompileTimeError
-splay_tree_test/01: MissingCompileTimeError
-splay_tree_test/02: MissingCompileTimeError
-string_base_vm_static_test: MissingCompileTimeError
-string_replace_static_test: MissingCompileTimeError
-string_static_test: MissingCompileTimeError
-
-[ $compiler == none || $compiler == app_jit || $compiler == precompiler || $compiler == dart2js ]
+[ $compiler == dart2analyzer ]
int_parse_radix_bad_handler_test: MissingCompileTimeError
+iterable_element_at_test/static: Pass
-[ $compiler == dart2analyzer && !$strong ]
-symbol_reserved_word_test/05: MissingCompileTimeError # Issue 30245
-
-[ $compiler != dartdevc && $compiler != dartk && $compiler != dartkp && ($compiler != dart2analyzer || !$strong) ]
-iterable_mapping_test/01: MissingCompileTimeError
-
-[ $compiler == dart2analyzer && !$strong && !$checked ]
-from_environment_const_type_test/02: MissingCompileTimeError
-from_environment_const_type_test/03: MissingCompileTimeError
-from_environment_const_type_test/04: MissingCompileTimeError
-from_environment_const_type_test/06: MissingCompileTimeError
-from_environment_const_type_test/07: MissingCompileTimeError
-from_environment_const_type_test/08: MissingCompileTimeError
-from_environment_const_type_test/09: MissingCompileTimeError
-from_environment_const_type_test/11: MissingCompileTimeError
-from_environment_const_type_test/12: MissingCompileTimeError
-from_environment_const_type_test/13: MissingCompileTimeError
-from_environment_const_type_test/14: MissingCompileTimeError
-from_environment_const_type_test/16: MissingCompileTimeError
-from_environment_const_type_undefined_test/02: MissingCompileTimeError
-from_environment_const_type_undefined_test/03: MissingCompileTimeError
-from_environment_const_type_undefined_test/04: MissingCompileTimeError
-from_environment_const_type_undefined_test/06: MissingCompileTimeError
-from_environment_const_type_undefined_test/07: MissingCompileTimeError
-from_environment_const_type_undefined_test/08: MissingCompileTimeError
-from_environment_const_type_undefined_test/09: MissingCompileTimeError
-from_environment_const_type_undefined_test/11: MissingCompileTimeError
-from_environment_const_type_undefined_test/12: MissingCompileTimeError
-from_environment_const_type_undefined_test/13: MissingCompileTimeError
-from_environment_const_type_undefined_test/14: MissingCompileTimeError
-from_environment_const_type_undefined_test/16: MissingCompileTimeError
-
-[ $compiler == dart2js && $fast_startup ]
-apply3_test: Fail # mirrors not supported
-dynamic_nosuchmethod_test: Fail # mirrors not supported
-
-[ $compiler == precompiler ]
-regexp/stack-overflow_test: RuntimeError, OK # Smaller limit with irregex interpreter
-int_parse_radix_test: Pass, Timeout # --no_intrinsify
-
-[ $compiler == precompiler || $compiler == dartkp ]
-apply3_test: SkipByDesign
-dynamic_nosuchmethod_test: SkipByDesign
-
-[ $compiler == dart2js && $runtime != none && !$checked ]
-growable_list_test: RuntimeError # Concurrent modifications test always runs
-
-[ $compiler == dartdevc && $runtime != none ]
-apply2_test: RuntimeError # Issue 29921
-apply3_test: RuntimeError # Issue 29921
-integer_arith_vm_test/modPow: RuntimeError # Issue 30170
-integer_parsed_arith_vm_test: RuntimeError # Issue 29921
-compare_to2_test: RuntimeError # Issue 30170
-date_time10_test: RuntimeError # Issue 29921
-hash_set_test/01: RuntimeError # Issue 29921
-iterable_reduce_test/none: RuntimeError
-iterable_to_list_test/*: RuntimeError
-list_concurrent_modify_test: RuntimeError # DDC uses ES6 array iterators so it does not issue this
-nan_infinity_test/01: RuntimeError # Issue 29921
-main_test: RuntimeError # Issue 29921
-null_nosuchmethod_test/01: RuntimeError # DDC checks type before too many arguments, so TypeError instead of NSM
-regexp/bol-with-multiline_test: RuntimeError # Issue 29921
-regexp/invalid-range-in-class_test: RuntimeError # Issue 29921
-regexp/look-ahead_test: RuntimeError # Issue 29921
-regexp/loop-capture_test: RuntimeError # Issue 29921
-regexp/malformed-escapes_test: RuntimeError # Issue 29921
-regexp/many-brackets_test: RuntimeError # Issue 29921
-regexp/negative-special-characters_test: RuntimeError # Issue 29921
-regexp/no-extensions_test: RuntimeError # Issue 29921
-regexp/non-bmp_test: RuntimeError # Issue 29921
-regexp/non-capturing-backtracking_test: RuntimeError # Issue 29921
-regexp/non-capturing-groups_test: RuntimeError # Issue 29921
-regexp/non-character_test: RuntimeError # Issue 29921
-regexp/non-greedy-parentheses_test: RuntimeError # Issue 29921
-regexp/pcre-test-4_test: RuntimeError # Issue 29921
-regexp/alternative-length-miscalculation_test: RuntimeError # Issue 29921
-regexp/ascii-regexp-subject_test: RuntimeError # Issue 29921
-regexp/capture-3_test: RuntimeError # Issue 29921
-regexp/char-insensitive_test: RuntimeError # Issue 29921
-regexp/character-match-out-of-order_test: RuntimeError # Issue 29921
-regexp/compile-crash_test: RuntimeError # Issue 29921
-regexp/default_arguments_test: RuntimeError # Issue 29921
-regexp/early-acid3-86_test: RuntimeError # Issue 29921
-regexp/ecma-regex-examples_test: RuntimeError # Issue 29921
-regexp/extended-characters-match_test: RuntimeError # Issue 29921
-regexp/extended-characters-more_test: RuntimeError # Issue 29921
-regexp/find-first-asserted_test: RuntimeError # Issue 29921
-regexp/quantified-assertions_test: RuntimeError # Issue 29921
-regexp/range-bound-ffff_test: RuntimeError # Issue 29921
-regexp/range-out-of-order_test: RuntimeError # Issue 29921
-regexp/ranges-and-escaped-hyphens_test: RuntimeError # Issue 29921
-regexp/regress-6-9-regexp_test: RuntimeError # Issue 29921
-regexp/regress-regexp-codeflush_test: RuntimeError # Issue 29921
-regexp/regress-regexp-construct-result_test: RuntimeError # Issue 29921
-regexp/repeat-match-waldemar_test: RuntimeError # Issue 29921
-regexp/results-cache_test: RuntimeError # Issue 29921
-regexp/stack-overflow2_test: RuntimeError # Issue 29921
-regexp/stack-overflow_test: RuntimeError # Issue 29921
-regexp/unicode-handling_test: RuntimeError # Issue 29921
-regexp/zero-length-alternatives_test: RuntimeError # Issue 29921
-regress_r21715_test: RuntimeError # Issue 29921
-string_operations_with_null_test: RuntimeError # Issue 29921
-symbol_operator_test: RuntimeError # Issue 29921
-symbol_operator_test/03: RuntimeError # Issue 29921
-symbol_test/none: RuntimeError # Issue 29921
-symbol_reserved_word_test/06: RuntimeError # Issue 29921
-symbol_reserved_word_test/09: RuntimeError # Issue 29921
-symbol_reserved_word_test/12: RuntimeError # Issue 29921
-int_parse_with_limited_ints_test: Skip # dartdevc doesn't know about --limit-ints-to-64-bits
-typed_data_with_limited_ints_test: Skip # dartdevc doesn't know about --limit-ints-to-64-bits
-int_modulo_arith_test/none: RuntimeError # Issue 29921
-iterable_return_type_test/02: RuntimeError # Issue 29921
-
-[ ($compiler == dart2js || $compiler == dartdevc) && $runtime != none ]
-integer_arith_vm_test/modPow: RuntimeError # Issues 10245, 30170
-integer_parsed_arith_vm_test: RuntimeError # Issues 10245, 29921
-integer_parsed_div_rem_vm_test: RuntimeError # Issue 29921
-integer_parsed_mul_div_vm_test: RuntimeError # Issue 29921
-bit_twiddling_test/int64: RuntimeError, OK # Requires fixed-size int64 support.
-double_ceil_test/int64: RuntimeError, OK # Requires fixed-size int64 support.
-double_floor_test/int64: RuntimeError, OK # Requires fixed-size int64 support.
-double_round_test/int64: RuntimeError, OK # Requires fixed-size int64 support.
-double_truncate_test/int64: RuntimeError, OK # Requires fixed-size int64 support.
-json_map_test: RuntimeError
-compare_to2_test: RuntimeError, OK # Requires fixed-size int64 support.
+[ $compiler == dart2js ]
+date_time11_test: RuntimeError, Pass # Fails when US is on winter time, issue 31285.
hash_set_test/01: RuntimeError # Issue 11551
-int_modulo_arith_test/modPow: RuntimeError # Issue 29921
-regress_r21715_test: RuntimeError # Requires fixed-size int64 support.
-int_parse_with_limited_ints_test: Skip # dart2js and dartdevc don't know about --limit-ints-to-64-bits
-typed_data_with_limited_ints_test: Skip # dart2js and dartdevc don't know about --limit-ints-to-64-bits
-
-[ $compiler == dart2js && $runtime != none ]
-nan_infinity_test/01: RuntimeError
-integer_to_string_test/01: RuntimeError
-iterable_to_set_test: RuntimeError # is-checks do not implement strong mode type system
-int_parse_radix_test/01: RuntimeError
-int_parse_radix_test/02: RuntimeError
-list_test/*: RuntimeError # dart2js doesn't implement strong mode covariance checks
-string_split_test: RuntimeError # does not return List<String>
-list_concurrent_modify_test: RuntimeError # dart2js does not fully implement these
-
-[ $compiler == dart2js && $runtime == drt && $csp && $minified ]
-core_runtime_types_test: Pass, Fail # Issue 27913
+integer_to_radix_string_test: RuntimeError # Issue 29921
+string_static_test: MissingCompileTimeError
[ $compiler != dartdevc ]
error_stack_trace_test/static: MissingCompileTimeError
-[ $compiler != dartdevc && $compiler != dartk && $compiler != dartkp ]
-iterable_element_at_test/static: MissingCompileTimeError
+[ $compiler == dartdevk ]
+bool_from_environment2_test/01: MissingCompileTimeError
+bool_from_environment2_test/02: MissingCompileTimeError
+bool_from_environment2_test/03: MissingCompileTimeError
+bool_from_environment2_test/04: MissingCompileTimeError
+from_environment_const_type_test/01: Pass
+from_environment_const_type_test/02: MissingCompileTimeError
+from_environment_const_type_test/03: MissingCompileTimeError
+from_environment_const_type_test/04: MissingCompileTimeError
+from_environment_const_type_test/05: Pass
+from_environment_const_type_test/06: MissingCompileTimeError
+from_environment_const_type_test/07: MissingCompileTimeError
+from_environment_const_type_test/08: MissingCompileTimeError
+from_environment_const_type_test/09: MissingCompileTimeError
+from_environment_const_type_test/10: Pass
+from_environment_const_type_test/11: MissingCompileTimeError
+from_environment_const_type_test/12: MissingCompileTimeError
+from_environment_const_type_test/13: MissingCompileTimeError
+from_environment_const_type_test/14: MissingCompileTimeError
+from_environment_const_type_test/15: Pass
+from_environment_const_type_test/16: MissingCompileTimeError
+from_environment_const_type_test/none: Pass
+from_environment_const_type_undefined_test/02: MissingCompileTimeError
+from_environment_const_type_undefined_test/03: MissingCompileTimeError
+from_environment_const_type_undefined_test/04: MissingCompileTimeError
+from_environment_const_type_undefined_test/06: MissingCompileTimeError
+from_environment_const_type_undefined_test/07: MissingCompileTimeError
+from_environment_const_type_undefined_test/08: MissingCompileTimeError
+from_environment_const_type_undefined_test/09: MissingCompileTimeError
+from_environment_const_type_undefined_test/11: MissingCompileTimeError
+from_environment_const_type_undefined_test/12: MissingCompileTimeError
+from_environment_const_type_undefined_test/13: MissingCompileTimeError
+from_environment_const_type_undefined_test/14: MissingCompileTimeError
+from_environment_const_type_undefined_test/16: MissingCompileTimeError
+int_parse_radix_bad_handler_test: MissingCompileTimeError
+map_test: Crash # crash in front_end.
+string_from_environment3_test/01: MissingCompileTimeError
+string_from_environment3_test/02: MissingCompileTimeError
+string_from_environment3_test/03: MissingCompileTimeError
+string_from_environment3_test/04: MissingCompileTimeError
+symbol_reserved_word_test/04: MissingCompileTimeError
+symbol_reserved_word_test/05: MissingCompileTimeError
+symbol_reserved_word_test/07: MissingCompileTimeError
+symbol_reserved_word_test/10: MissingCompileTimeError
+symbol_test/01: MissingCompileTimeError
+symbol_test/02: MissingCompileTimeError
+symbol_test/03: MissingCompileTimeError
-[ $compiler == dartdevc && $runtime != none ]
-error_stack_trace_test/nullThrown: RuntimeError # .stackTrace not present for exception caught from 'throw null;'
-list_removeat_test: RuntimeError # Issue 29921
-list_replace_range_test: RuntimeError # Issue 29921
-list_set_all_test: RuntimeError # Issue 29921
-json_map_test: RuntimeError # Issue 29921
-int_parse_radix_test/01: RuntimeError # Issue 29921
-int_parse_radix_test/02: RuntimeError # Issue 29921
-integer_to_radix_string_test: RuntimeError # Issue 29921
-integer_to_string_test/01: RuntimeError # Issue 29921
-iterable_fold_test/02: RuntimeError # different type inference problem
+[ $compiler == dartkp ]
+bit_twiddling_test/int64: CompileTimeError # Issue 31339
+integer_to_radix_string_test/01: CompileTimeError # Issue 31339
+integer_to_radix_string_test/02: CompileTimeError # Issue 31339
+integer_to_string_test/01: CompileTimeError # Issue 31339
+num_sign_test: CompileTimeError, Crash # Issue 31339
+
+[ $compiler == precompiler ]
+int_parse_radix_test: Pass, Timeout # --no_intrinsify
+integer_parsed_mul_div_vm_test: Pass, Timeout # --no_intrinsify
+regexp/stack-overflow_test: RuntimeError, OK # Smaller limit with irregex interpreter
+
+[ $mode == debug ]
+regexp/pcre_test: Pass, Slow # Issue 22008
[ $runtime == flutter ]
apply3_test: CompileTimeError # mirrors not supported
bool_from_environment_test: Fail # Flutter Issue 9111
-int_from_environment_test: Fail # Flutter Issue 9111
-int_from_environment2_test: Fail # Flutter Issue 9111
format_exception_test: RuntimeError # Flutter Issue 9111
-from_environment_const_type_test/none: Fail # Flutter Issue 9111
from_environment_const_type_test/01: Fail # Flutter Issue 9111
-from_environment_const_type_test/05: Fail # Flutter Issue 9111
-from_environment_const_type_test/10: Fail # Flutter Issue 9111
-from_environment_const_type_test/15: Fail # Flutter Issue 9111
from_environment_const_type_test/02: MissingCompileTimeError # Flutter Issue 9111
from_environment_const_type_test/03: MissingCompileTimeError # Flutter Issue 9111
from_environment_const_type_test/04: MissingCompileTimeError # Flutter Issue 9111
+from_environment_const_type_test/05: Fail # Flutter Issue 9111
from_environment_const_type_test/06: MissingCompileTimeError # Flutter Issue 9111
from_environment_const_type_test/07: MissingCompileTimeError # Flutter Issue 9111
from_environment_const_type_test/08: MissingCompileTimeError # Flutter Issue 9111
from_environment_const_type_test/09: MissingCompileTimeError # Flutter Issue 9111
-from_environment_const_type_test/12: MissingCompileTimeError # Flutter Issue 9111
+from_environment_const_type_test/10: Fail # Flutter Issue 9111
from_environment_const_type_test/11: MissingCompileTimeError # Flutter Issue 9111
+from_environment_const_type_test/12: MissingCompileTimeError # Flutter Issue 9111
from_environment_const_type_test/13: MissingCompileTimeError # Flutter Issue 9111
from_environment_const_type_test/14: MissingCompileTimeError # Flutter Issue 9111
+from_environment_const_type_test/15: Fail # Flutter Issue 9111
from_environment_const_type_test/16: MissingCompileTimeError # Flutter Issue 9111
-string_trimlr_test/02: RuntimeError # Flutter Issue 9111
-string_from_environment_test: Fail # Flutter Issue 9111
-string_from_environment2_test: Fail # Flutter Issue 9111
+from_environment_const_type_test/none: Fail # Flutter Issue 9111
+int_from_environment2_test: Fail # Flutter Issue 9111
+int_from_environment_test: Fail # Flutter Issue 9111
main_test: RuntimeError # Flutter Issue 9111
-
-[ $hot_reload || $hot_reload_rollback ]
-integer_parsed_mul_div_vm_test: Pass, Slow # Slow
-
-[ $compiler == none || $compiler == precompiler || $compiler == app_jit ]
-compare_to2_test: Fail # Issue 4018
-unicode_test: Fail # Issue 6706
-symbol_test/01: Fail, Pass # Issue 11669
-
-symbol_reserved_word_test/06: RuntimeError # Issue 11669, With the exception of 'void', new Symbol() should not accept reserved words.
-symbol_reserved_word_test/09: RuntimeError # Issue 11669, With the exception of 'void', new Symbol() should not accept reserved words.
-symbol_reserved_word_test/12: RuntimeError # Issue 11669, With the exception of 'void', new Symbol() should not accept reserved words.
-
-symbol_test/none: Fail # Issue 11669
-symbol_operator_test/03: Fail # Issue 11669
-string_case_test/01: Fail # Bug 18061
-
-[ $runtime == ff || $runtime == jsshell ]
-double_parse_test/02: Fail, OK # Issue 30468
-regexp/UC16_test: RuntimeError
+string_from_environment2_test: Fail # Flutter Issue 9111
+string_from_environment_test: Fail # Flutter Issue 9111
+string_trimlr_test/02: RuntimeError # Flutter Issue 9111
[ $runtime == jsshell ]
-unicode_test: Fail
string_case_test/01: Fail, OK
+unicode_test: Fail
-[ ($runtime == vm || $runtime == dart_precompiled) && $arch == simarmv5te ]
-integer_parsed_mul_div_vm_test: Pass, Slow
+[ $runtime == vm ]
+string_case_test/01: RuntimeError
+
+[ $arch == simarmv5te && ($runtime == dart_precompiled || $runtime == vm) ]
int_parse_radix_test/*: Pass, Slow
+integer_parsed_mul_div_vm_test: Pass, Slow
-[ $compiler == precompiler ]
-integer_parsed_mul_div_vm_test: Pass, Timeout # --no_intrinsify
+[ $arch == x64 && $system == windows ]
+stopwatch_test: Skip # Flaky test due to expected performance behaviour.
-[ $compiler == none && ($runtime == vm || $runtime == flutter)]
-string_trimlr_test/02: RuntimeError # Issue 29060
-iterable_to_set_test: RuntimeError # is-checks do not implement strong mode type system
-
-[ $compiler == precompiler || $compiler == app_jit ]
-string_trimlr_test/02: RuntimeError # Issue 29060
-
-# void should be a valid symbol.
-[ $compiler == none || $compiler == precompiler || $compiler == app_jit || ($compiler == dart2js && !$dart2js_with_kernel) ]
-symbol_reserved_word_test/02: CompileTimeError # Issue 20191
-
-symbol_reserved_word_test/04: MissingCompileTimeError # Issue 11669, 19972, With the exception of 'void', const Symbol() should not accept reserved words.
-symbol_reserved_word_test/07: MissingCompileTimeError # Issue 11669, 19972, With the exception of 'void', const Symbol() should not accept reserved words.
-symbol_reserved_word_test/10: MissingCompileTimeError # Issue 11669, 19972, With the exception of 'void', const Symbol() should not accept reserved words.
-
-[ $compiler == dart2js ]
-hash_set_test/01: RuntimeError # Issue 11551
-integer_to_radix_string_test: RuntimeError # Issue 29921
-string_static_test: MissingCompileTimeError
-
-[ ($compiler == none || $compiler == precompiler || $compiler == app_jit) && $runtime != drt ]
-symbol_test/02: MissingCompileTimeError # Issue 11669
-symbol_test/03: MissingCompileTimeError # Issue 11669
-
-[ $compiler == app_jit || $compiler == precompiler ]
+[ $compiler == dart2analyzer && !$checked && !$strong ]
from_environment_const_type_test/02: MissingCompileTimeError
from_environment_const_type_test/03: MissingCompileTimeError
from_environment_const_type_test/04: MissingCompileTimeError
@@ -318,48 +145,70 @@
from_environment_const_type_undefined_test/13: MissingCompileTimeError
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 == dart2js ]
-date_time11_test: RuntimeError, Pass # Fails when US is on winter time, issue 31285.
+[ $compiler == dart2analyzer && $strong ]
+int_parse_radix_bad_handler_test: Pass
-[ $compiler == dart2js && $runtime == safari ]
-regexp/no-extensions_test: RuntimeError
-regexp/lookahead_test: RuntimeError
-regexp/overflow_test: RuntimeError
+[ $compiler == dart2analyzer && !$strong ]
+symbol_reserved_word_test/05: MissingCompileTimeError # Issue 30245
-[ $runtime == safari || $runtime == safarimobilesim ]
-string_trimlr_test/02: RuntimeError # Uses Unicode 6.2.0 or earlier.
-double_round3_test: Fail, OK # Runtime rounds 0.49999999999999994 to 1.
-double_round_to_double2_test: Fail, OK # Runtime rounds 0.49999999999999994 to 1.
+# All static_tests have expected compile-time errors.
+[ $compiler != dart2analyzer && $compiler != dartdevc && $compiler != dartk && $compiler != dartkp && $strong ]
+core_runtime_types_static_test: MissingCompileTimeError
+splay_tree_test/01: MissingCompileTimeError
+splay_tree_test/02: MissingCompileTimeError
+string_base_vm_static_test: MissingCompileTimeError
+string_replace_static_test: MissingCompileTimeError
+string_static_test: MissingCompileTimeError
[ $compiler == dart2js && $runtime == chromeOnAndroid ]
list_as_map_test: Pass, Slow # TODO(kasperl): Please triage.
string_trimlr_test/02: RuntimeError # Uses Unicode 6.2.0 or earlier.
-[ ($compiler == dart2js || $compiler == dartdevc) && $runtime == drt ]
-string_trimlr_test/02: RuntimeError # Uses Unicode 6.2.0 or earlier.
-
-[ $compiler == dart2js && $runtime == safarimobilesim ]
-string_trimlr_test/01: Fail
-string_trimlr_test/02: RuntimeError # Uses Unicode 6.2.0 or earlier.
-list_test/01: Fail # Safari bug: Array(-2) seen as dead code.
-
[ $compiler == dart2js && $runtime == d8 ]
string_trimlr_test/02: RuntimeError, Pass # Uses Unicode 6.2.0 or earlier, issue 30279.
uri_base_test: RuntimeError # D8 uses a custom uri scheme for Uri.base
-[ $compiler == none && $runtime == vm ]
-string_static_test: MissingCompileTimeError
+[ $compiler == dart2js && $runtime == drt && $csp && $minified ]
+core_runtime_types_test: Pass, Fail # Issue 27913
-[ $compiler == dart2js && $runtime != none && !$dart2js_with_kernel]
+[ $compiler == dart2js && $runtime != none ]
+int_parse_radix_test/01: RuntimeError
+int_parse_radix_test/02: RuntimeError
+integer_to_string_test/01: RuntimeError
+iterable_to_set_test: RuntimeError # is-checks do not implement strong mode type system
+list_concurrent_modify_test: RuntimeError # dart2js does not fully implement these
+list_test/*: RuntimeError # dart2js doesn't implement strong mode covariance checks
+nan_infinity_test/01: RuntimeError
+regexp/pcre_test: Pass, Slow # Issue 21593
+string_split_test: RuntimeError # does not return List<String>
+
+[ $compiler == dart2js && $runtime != none && !$checked ]
+growable_list_test: RuntimeError # Concurrent modifications test always runs
+splay_tree_from_iterable_test: RuntimeError
+
+[ $compiler == dart2js && $runtime != none && $dart2js_with_kernel ]
+list_concurrent_modify_test: Crash # Issue 30559
+
+[ $compiler == dart2js && $runtime != none && !$dart2js_with_kernel ]
error_stack_trace1_test: RuntimeError # Issue 12399
symbol_reserved_word_test/03: RuntimeError # Issue 19972, new Symbol('void') should be allowed.
-[ $compiler == dart2js && $runtime != none ]
-regexp/pcre_test: Pass, Slow # Issue 21593
+[ $compiler == dart2js && $runtime == safari ]
+regexp/lookahead_test: RuntimeError
+regexp/no-extensions_test: RuntimeError
+regexp/overflow_test: RuntimeError
-[ !$checked && (($compiler == none && $runtime == vm) || $compiler == dart2js) ]
+[ $compiler == dart2js && $runtime == safarimobilesim ]
+list_test/01: Fail # Safari bug: Array(-2) seen as dead code.
+string_trimlr_test/01: Fail
+string_trimlr_test/02: RuntimeError # Uses Unicode 6.2.0 or earlier.
+
+[ $compiler == dart2js && !$browser ]
+package_resource_test: RuntimeError # Issue 26842
+
+[ $compiler == dart2js && $checked && $dart2js_with_kernel ]
+apply3_test: RuntimeError
from_environment_const_type_test/02: MissingCompileTimeError
from_environment_const_type_test/03: MissingCompileTimeError
from_environment_const_type_test/04: MissingCompileTimeError
@@ -378,36 +227,35 @@
from_environment_const_type_undefined_test/06: MissingCompileTimeError
from_environment_const_type_undefined_test/07: MissingCompileTimeError
from_environment_const_type_undefined_test/08: MissingCompileTimeError
-iterable_generate_test/01: RuntimeError
+iterable_return_type_test/01: RuntimeError
+iterable_return_type_test/02: RuntimeError
+iterable_to_list_test/01: RuntimeError
+list_test/01: Crash # Unsupported operation: Unsupported type parameter type node T.
+list_test/none: Crash # Unsupported operation: Unsupported type parameter type node T.
+map_test: Crash # tests/corelib_2/map_test.dart:903:7: Internal problem: Unhandled Null in installDefaultConstructor.
+symbol_reserved_word_test/03: RuntimeError
+symbol_reserved_word_test/04: MissingCompileTimeError
+symbol_reserved_word_test/05: MissingCompileTimeError
+symbol_reserved_word_test/07: MissingCompileTimeError
+symbol_reserved_word_test/10: MissingCompileTimeError
+symbol_test/02: MissingCompileTimeError
+symbol_test/03: MissingCompileTimeError
-
-[ ($compiler == none && $runtime == vm) || $compiler == dart2js ]
-from_environment_const_type_undefined_test/09: MissingCompileTimeError
-from_environment_const_type_undefined_test/11: MissingCompileTimeError
-from_environment_const_type_undefined_test/12: MissingCompileTimeError
-from_environment_const_type_undefined_test/13: MissingCompileTimeError
-from_environment_const_type_undefined_test/14: MissingCompileTimeError
-from_environment_const_type_undefined_test/16: MissingCompileTimeError
-
-[ ($compiler == none && $runtime == vm) || $compiler == dart2js ]
-string_base_vm_static_test: MissingCompileTimeError
-
-[ $compiler == none && $runtime == drt ]
-string_from_environment2_test: Skip
-string_from_environment3_test: Skip
-string_from_environment_test: Skip
-
-[ $system == windows && $arch == x64 ]
-stopwatch_test: Skip # Flaky test due to expected performance behaviour.
-
-[ $runtime == vm ]
-string_case_test/01: RuntimeError
-
-[ ($runtime == vm || $runtime == dart_precompiled) ]
-string_split_test: RuntimeError # does not return List<String>
-
-[ ($runtime == vm || $runtime == dart_precompiled) && !$strong ]
-list_test/*: RuntimeError # VM doesn't implement strong mode covariance checks
+[ $compiler == dart2js && $dart2js_with_kernel && $fast_startup ]
+iterable_return_type_test/01: RuntimeError
+iterable_return_type_test/02: RuntimeError
+iterable_to_list_test/01: RuntimeError
+list_test/01: Crash # Unsupported operation: Unsupported type parameter type node T.
+list_test/none: Crash # Unsupported operation: Unsupported type parameter type node T.
+map_test: Crash # tests/corelib_2/map_test.dart:903:7: Internal problem: Unhandled Null in installDefaultConstructor.
+symbol_reserved_word_test/03: RuntimeError
+symbol_reserved_word_test/04: MissingCompileTimeError
+symbol_reserved_word_test/05: MissingCompileTimeError
+symbol_reserved_word_test/07: MissingCompileTimeError
+symbol_reserved_word_test/10: MissingCompileTimeError
+symbol_test/02: MissingCompileTimeError
+symbol_test/03: MissingCompileTimeError
+uri_base_test: Crash # RangeError (index): Invalid value: Valid value range is empty: 0
[ $compiler == dart2js && $dart2js_with_kernel && $host_checked ]
apply3_test: RuntimeError
@@ -453,76 +301,111 @@
symbol_test/03: MissingCompileTimeError
uri_base_test: Crash # RangeError (index): Invalid value: Valid value range is empty: 0
-[ $compiler == dart2js && $dart2js_with_kernel && $fast_startup ]
-iterable_return_type_test/01: RuntimeError
-iterable_return_type_test/02: RuntimeError
-iterable_to_list_test/01: RuntimeError
-list_test/01: Crash # Unsupported operation: Unsupported type parameter type node T.
-list_test/none: Crash # Unsupported operation: Unsupported type parameter type node T.
-map_test: Crash # tests/corelib_2/map_test.dart:903:7: Internal problem: Unhandled Null in installDefaultConstructor.
-symbol_reserved_word_test/03: RuntimeError
-symbol_reserved_word_test/04: MissingCompileTimeError
-symbol_reserved_word_test/05: MissingCompileTimeError
-symbol_reserved_word_test/07: MissingCompileTimeError
-symbol_reserved_word_test/10: MissingCompileTimeError
-symbol_test/02: MissingCompileTimeError
-symbol_test/03: MissingCompileTimeError
-uri_base_test: Crash # RangeError (index): Invalid value: Valid value range is empty: 0
-
-[$arch == simdbc || $arch == simdbc64]
-regexp/stack-overflow_test: RuntimeError, OK # Smaller limit with irregex interpreter
-
-[ $compiler == dart2js && $runtime != none && !$checked ]
-splay_tree_from_iterable_test: RuntimeError
-
-[ ($compiler == none || $compiler == app_jit) && $runtime == vm && !$checked ]
-iterable_generate_test/01: RuntimeError
-splay_tree_from_iterable_test: RuntimeError
-
-[ $compiler == precompiler && $runtime == dart_precompiled && !$checked ]
-iterable_generate_test/01: RuntimeError
-splay_tree_from_iterable_test: RuntimeError
-
-[ $runtime == vm || $runtime == dart_precompiled || $runtime == flutter ]
-regexp/pcre_test: Pass, Slow, Timeout
-regexp/global_test: Skip # Issue 21709
-
-[ $mode == debug ]
-regexp/pcre_test: Pass, Slow # Issue 22008
-
-[ $compiler == dart2js && ! $browser ]
-package_resource_test: RuntimeError # Issue 26842
-
-[ $compiler == dart2js && ! $dart2js_with_kernel ]
-list_unmodifiable_test: Pass, RuntimeError # Issue 28712
-iterable_to_list_test/01: RuntimeError # Issue 26501
+[ $compiler == dart2js && !$dart2js_with_kernel ]
iterable_return_type_test/01: RuntimeError # Issue 20085
iterable_return_type_test/02: RuntimeError # Dart2js does not support Uint64*.
+iterable_to_list_test/01: RuntimeError # Issue 26501
+list_unmodifiable_test: Pass, RuntimeError # Issue 28712
-[ $compiler == dart2analyzer ]
-int_parse_radix_bad_handler_test: MissingCompileTimeError
-iterable_element_at_test/static: Pass
+[ $compiler == dart2js && $fast_startup ]
+apply3_test: Fail # mirrors not supported
+dynamic_nosuchmethod_test: Fail # mirrors not supported
-[ $compiler == dart2analyzer && $strong ]
-int_parse_radix_bad_handler_test: Pass
+[ $compiler == dartdevc && $runtime != none ]
+apply2_test: RuntimeError # Issue 29921
+apply3_test: RuntimeError # Issue 29921
+compare_to2_test: RuntimeError # Issue 30170
+date_time10_test: RuntimeError # Issue 29921
+error_stack_trace_test/nullThrown: RuntimeError # .stackTrace not present for exception caught from 'throw null;'
+hash_set_test/01: RuntimeError # Issue 29921
+int_modulo_arith_test/none: RuntimeError # Issue 29921
+int_parse_radix_test/01: RuntimeError # Issue 29921
+int_parse_radix_test/02: RuntimeError # Issue 29921
+int_parse_with_limited_ints_test: Skip # dartdevc doesn't know about --limit-ints-to-64-bits
+integer_arith_vm_test/modPow: RuntimeError # Issue 30170
+integer_parsed_arith_vm_test: RuntimeError # Issue 29921
+integer_to_radix_string_test: RuntimeError # Issue 29921
+integer_to_string_test/01: RuntimeError # Issue 29921
+iterable_fold_test/02: RuntimeError # different type inference problem
+iterable_reduce_test/none: RuntimeError
+iterable_return_type_test/02: RuntimeError # Issue 29921
+iterable_to_list_test/*: RuntimeError
+json_map_test: RuntimeError # Issue 29921
+list_concurrent_modify_test: RuntimeError # DDC uses ES6 array iterators so it does not issue this
+list_removeat_test: RuntimeError # Issue 29921
+list_replace_range_test: RuntimeError # Issue 29921
+list_set_all_test: RuntimeError # Issue 29921
+main_test: RuntimeError # Issue 29921
+nan_infinity_test/01: RuntimeError # Issue 29921
+null_nosuchmethod_test/01: RuntimeError # DDC checks type before too many arguments, so TypeError instead of NSM
+regexp/alternative-length-miscalculation_test: RuntimeError # Issue 29921
+regexp/ascii-regexp-subject_test: RuntimeError # Issue 29921
+regexp/bol-with-multiline_test: RuntimeError # Issue 29921
+regexp/capture-3_test: RuntimeError # Issue 29921
+regexp/char-insensitive_test: RuntimeError # Issue 29921
+regexp/character-match-out-of-order_test: RuntimeError # Issue 29921
+regexp/compile-crash_test: RuntimeError # Issue 29921
+regexp/default_arguments_test: RuntimeError # Issue 29921
+regexp/early-acid3-86_test: RuntimeError # Issue 29921
+regexp/ecma-regex-examples_test: RuntimeError # Issue 29921
+regexp/extended-characters-match_test: RuntimeError # Issue 29921
+regexp/extended-characters-more_test: RuntimeError # Issue 29921
+regexp/find-first-asserted_test: RuntimeError # Issue 29921
+regexp/invalid-range-in-class_test: RuntimeError # Issue 29921
+regexp/look-ahead_test: RuntimeError # Issue 29921
+regexp/loop-capture_test: RuntimeError # Issue 29921
+regexp/malformed-escapes_test: RuntimeError # Issue 29921
+regexp/many-brackets_test: RuntimeError # Issue 29921
+regexp/negative-special-characters_test: RuntimeError # Issue 29921
+regexp/no-extensions_test: RuntimeError # Issue 29921
+regexp/non-bmp_test: RuntimeError # Issue 29921
+regexp/non-capturing-backtracking_test: RuntimeError # Issue 29921
+regexp/non-capturing-groups_test: RuntimeError # Issue 29921
+regexp/non-character_test: RuntimeError # Issue 29921
+regexp/non-greedy-parentheses_test: RuntimeError # Issue 29921
+regexp/pcre-test-4_test: RuntimeError # Issue 29921
+regexp/quantified-assertions_test: RuntimeError # Issue 29921
+regexp/range-bound-ffff_test: RuntimeError # Issue 29921
+regexp/range-out-of-order_test: RuntimeError # Issue 29921
+regexp/ranges-and-escaped-hyphens_test: RuntimeError # Issue 29921
+regexp/regress-6-9-regexp_test: RuntimeError # Issue 29921
+regexp/regress-regexp-codeflush_test: RuntimeError # Issue 29921
+regexp/regress-regexp-construct-result_test: RuntimeError # Issue 29921
+regexp/repeat-match-waldemar_test: RuntimeError # Issue 29921
+regexp/results-cache_test: RuntimeError # Issue 29921
+regexp/stack-overflow2_test: RuntimeError # Issue 29921
+regexp/stack-overflow_test: RuntimeError # Issue 29921
+regexp/unicode-handling_test: RuntimeError # Issue 29921
+regexp/zero-length-alternatives_test: RuntimeError # Issue 29921
+regress_r21715_test: RuntimeError # Issue 29921
+string_operations_with_null_test: RuntimeError # Issue 29921
+symbol_operator_test: RuntimeError # Issue 29921
+symbol_operator_test/03: RuntimeError # Issue 29921
+symbol_reserved_word_test/06: RuntimeError # Issue 29921
+symbol_reserved_word_test/09: RuntimeError # Issue 29921
+symbol_reserved_word_test/12: RuntimeError # Issue 29921
+symbol_test/none: RuntimeError # Issue 29921
+typed_data_with_limited_ints_test: Skip # dartdevc doesn't know about --limit-ints-to-64-bits
-[ $runtime == dart_precompiled && $minified ]
-apply_test: Skip # Uses new Symbol via symbolMapToStringMap helper
-error_stack_trace1_test: Skip # Expects unobfuscated stack trace
+[ $compiler != dartdevc && $compiler != dartk && $compiler != dartkp ]
+iterable_element_at_test/static: MissingCompileTimeError
-[ $compiler == dart2js && $runtime != none && $dart2js_with_kernel ]
-list_concurrent_modify_test: Crash # Issue 30559
+[ $compiler != dartdevc && $compiler != dartk && $compiler != dartkp && $runtime != none ]
+map_keys2_test: RuntimeError # needs Dart 2 is checks
-# Sections for dartk and dartkp.
-#
-# Note: these sections are normalized so we can update them with automated
-# tools. Please add any new status lines affecting those two compilers in the
-# existing sections, if possible keep the alphabetic ordering. If we are missing
-# a section you need, please reach out to sigmund@ to see the best way to add
-# them.
-# ===== Skip dartk and darkp in !$strong mode ====
-[ ($compiler == dartk || $compiler == dartkp) && !$strong ]
-*: SkipByDesign
+[ $compiler != dartdevc && $compiler != dartk && $compiler != dartkp && ($compiler != dart2analyzer || !$strong) ]
+iterable_mapping_test/01: MissingCompileTimeError
+
+[ $compiler != dartdevc && $runtime != none && !$checked && !$strong ]
+null_nosuchmethod_test: RuntimeError # needs Dart 2 or checked mode
+
+[ $compiler != dartdevc && $checked && !$strong ]
+core_runtime_types_static_test: MissingCompileTimeError
+splay_tree_test/01: MissingCompileTimeError
+splay_tree_test/02: MissingCompileTimeError
+string_base_vm_static_test: MissingCompileTimeError
+string_replace_static_test: MissingCompileTimeError
+string_static_test: MissingCompileTimeError
# ===== dartk + vm status lines =====
[ $compiler == dartk && $runtime == vm && $strong ]
@@ -564,23 +447,36 @@
symbol_test/none: RuntimeError
unicode_test: RuntimeError
+[ $compiler == dartkp && $mode == debug && $runtime == dart_precompiled && $strong ]
+bit_twiddling_test/int64: CompileTimeError
+integer_parsed_arith_vm_test/01: RuntimeError
+integer_parsed_arith_vm_test/02: RuntimeError
+
# ===== dartkp + dart_precompiled status lines =====
[ $compiler == dartkp && $runtime == dart_precompiled && $strong ]
bool_from_environment2_test/03: MissingCompileTimeError
+collection_removes_test: RuntimeError
compare_to2_test: RuntimeError
+hash_set_test/01: RuntimeError
+hash_set_test/none: RuntimeError
int_modulo_arith_test/modPow: CompileTimeError # Issue 31402 (Assert statement)
int_modulo_arith_test/none: CompileTimeError # Issue 31402 (Assert statement)
+iterable_empty_test: RuntimeError
iterable_fold_test/02: RuntimeError
-iterable_generate_test/01: RuntimeError # Issue 31385 (--strong is not passed to the runtime)
+iterable_mapping_test/none: RuntimeError
iterable_reduce_test/01: CompileTimeError # Issue 31533
iterable_reduce_test/none: RuntimeError
iterable_to_list_test/01: RuntimeError
iterable_to_list_test/none: RuntimeError
-iterable_to_set_test: RuntimeError # Issue 31385 (--strong is not passed to the runtime)
-map_keys2_test: RuntimeError # Issue 31385 (--strong is not passed to the runtime)
+json_map_test: RuntimeError
+list_replace_range_test: RuntimeError
+list_set_all_test: RuntimeError
null_nosuchmethod_test/01: CompileTimeError # Issue 31402 (Invocation arguments)
null_nosuchmethod_test/none: CompileTimeError # Issue 31402 (Invocation arguments)
regexp/stack-overflow_test: RuntimeError
+set_test: RuntimeError
+splay_tree_from_iterable_test: RuntimeError
+splay_tree_test/none: RuntimeError
string_case_test/01: RuntimeError
string_from_environment3_test/03: MissingCompileTimeError
string_trimlr_test/02: RuntimeError
@@ -596,33 +492,135 @@
symbol_test/none: RuntimeError
unicode_test: RuntimeError
-[ $compiler == dartkp && $runtime == dart_precompiled && $strong && $mode == debug ]
-bit_twiddling_test/int64: CompileTimeError
-integer_parsed_arith_vm_test/01: RuntimeError
-integer_parsed_arith_vm_test/02: RuntimeError
+[ $compiler == none && $runtime == drt ]
+string_from_environment2_test: Skip
+string_from_environment3_test: Skip
+string_from_environment_test: Skip
-[ $compiler == dartdevk ]
-bool_from_environment2_test/01: MissingCompileTimeError
-bool_from_environment2_test/02: MissingCompileTimeError
-bool_from_environment2_test/03: MissingCompileTimeError
-bool_from_environment2_test/04: MissingCompileTimeError
-from_environment_const_type_test/01: Pass
+[ $compiler == none && $runtime == vm ]
+string_static_test: MissingCompileTimeError
+
+[ $compiler == none && ($runtime == flutter || $runtime == vm) ]
+iterable_to_set_test: RuntimeError # is-checks do not implement strong mode type system
+string_trimlr_test/02: RuntimeError # Issue 29060
+
+[ $compiler == precompiler && $runtime == dart_precompiled && !$checked ]
+iterable_generate_test/01: RuntimeError
+splay_tree_from_iterable_test: RuntimeError
+
+[ $runtime == dart_precompiled && $minified ]
+apply_test: Skip # Uses new Symbol via symbolMapToStringMap helper
+error_stack_trace1_test: Skip # Expects unobfuscated stack trace
+
+[ $runtime == drt && ($compiler == dart2js || $compiler == dartdevc) ]
+string_trimlr_test/02: RuntimeError # Uses Unicode 6.2.0 or earlier.
+
+[ $runtime != drt && ($compiler == app_jit || $compiler == none || $compiler == precompiler) ]
+symbol_test/02: MissingCompileTimeError # Issue 11669
+symbol_test/03: MissingCompileTimeError # Issue 11669
+
+[ $runtime != none && ($compiler == dart2js || $compiler == dartdevc) ]
+bit_twiddling_test/int64: RuntimeError, OK # Requires fixed-size int64 support.
+compare_to2_test: RuntimeError, OK # Requires fixed-size int64 support.
+double_ceil_test/int64: RuntimeError, OK # Requires fixed-size int64 support.
+double_floor_test/int64: RuntimeError, OK # Requires fixed-size int64 support.
+double_round_test/int64: RuntimeError, OK # Requires fixed-size int64 support.
+double_truncate_test/int64: RuntimeError, OK # Requires fixed-size int64 support.
+hash_set_test/01: RuntimeError # Issue 11551
+int_modulo_arith_test/modPow: RuntimeError # Issue 29921
+int_parse_with_limited_ints_test: Skip # dart2js and dartdevc don't know about --limit-ints-to-64-bits
+integer_arith_vm_test/modPow: RuntimeError # Issues 10245, 30170
+integer_parsed_arith_vm_test: RuntimeError # Issues 10245, 29921
+integer_parsed_div_rem_vm_test: RuntimeError # Issue 29921
+integer_parsed_mul_div_vm_test: RuntimeError # Issue 29921
+json_map_test: RuntimeError
+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 == vm && !$checked && ($compiler == app_jit || $compiler == none) ]
+iterable_generate_test/01: RuntimeError
+splay_tree_from_iterable_test: RuntimeError
+
+[ !$checked && !$strong ]
+core_runtime_types_static_test: MissingCompileTimeError
+splay_tree_test/01: MissingCompileTimeError
+splay_tree_test/02: MissingCompileTimeError
+string_base_vm_static_test: MissingCompileTimeError
+string_replace_static_test: MissingCompileTimeError
+string_static_test: MissingCompileTimeError
+
+[ !$checked && ($compiler == dart2js || $compiler == none && $runtime == vm) ]
from_environment_const_type_test/02: MissingCompileTimeError
from_environment_const_type_test/03: MissingCompileTimeError
from_environment_const_type_test/04: MissingCompileTimeError
-from_environment_const_type_test/05: Pass
from_environment_const_type_test/06: MissingCompileTimeError
from_environment_const_type_test/07: MissingCompileTimeError
from_environment_const_type_test/08: MissingCompileTimeError
from_environment_const_type_test/09: MissingCompileTimeError
-from_environment_const_type_test/10: Pass
from_environment_const_type_test/11: MissingCompileTimeError
from_environment_const_type_test/12: MissingCompileTimeError
from_environment_const_type_test/13: MissingCompileTimeError
from_environment_const_type_test/14: MissingCompileTimeError
-from_environment_const_type_test/15: Pass
from_environment_const_type_test/16: MissingCompileTimeError
-from_environment_const_type_test/none: Pass
+from_environment_const_type_undefined_test/02: MissingCompileTimeError
+from_environment_const_type_undefined_test/03: MissingCompileTimeError
+from_environment_const_type_undefined_test/04: MissingCompileTimeError
+from_environment_const_type_undefined_test/06: MissingCompileTimeError
+from_environment_const_type_undefined_test/07: MissingCompileTimeError
+from_environment_const_type_undefined_test/08: MissingCompileTimeError
+iterable_generate_test/01: RuntimeError
+
+# Sections for dartk and dartkp.
+#
+# Note: these sections are normalized so we can update them with automated
+# tools. Please add any new status lines affecting those two compilers in the
+# existing sections, if possible keep the alphabetic ordering. If we are missing
+# a section you need, please reach out to sigmund@ to see the best way to add
+# them.
+# ===== Skip dartk and darkp in !$strong mode ====
+[ !$strong && ($compiler == dartk || $compiler == dartkp) ]
+*: SkipByDesign
+
+[ !$strong && ($runtime == dart_precompiled || $runtime == vm) ]
+list_test/*: RuntimeError # VM doesn't implement strong mode covariance checks
+
+[ $arch == simdbc || $arch == simdbc64 ]
+regexp/stack-overflow_test: RuntimeError, OK # Smaller limit with irregex interpreter
+
+[ $compiler == app_jit || $compiler == dart2js || $compiler == none || $compiler == precompiler ]
+int_parse_radix_bad_handler_test: MissingCompileTimeError
+
+[ $compiler == app_jit || $compiler == none || $compiler == precompiler ]
+compare_to2_test: Fail # Issue 4018
+string_case_test/01: Fail # Bug 18061
+symbol_operator_test/03: Fail # Issue 11669
+symbol_reserved_word_test/06: RuntimeError # Issue 11669, With the exception of 'void', new Symbol() should not accept reserved words.
+symbol_reserved_word_test/09: RuntimeError # Issue 11669, With the exception of 'void', new Symbol() should not accept reserved words.
+symbol_reserved_word_test/12: RuntimeError # Issue 11669, With the exception of 'void', new Symbol() should not accept reserved words.
+symbol_test/01: Fail, Pass # Issue 11669
+symbol_test/none: Fail # Issue 11669
+unicode_test: Fail # Issue 6706
+
+# void should be a valid symbol.
+[ $compiler == app_jit || $compiler == none || $compiler == precompiler || $compiler == dart2js && !$dart2js_with_kernel ]
+symbol_reserved_word_test/02: CompileTimeError # Issue 20191
+symbol_reserved_word_test/04: MissingCompileTimeError # Issue 11669, 19972, With the exception of 'void', const Symbol() should not accept reserved words.
+symbol_reserved_word_test/07: MissingCompileTimeError # Issue 11669, 19972, With the exception of 'void', const Symbol() should not accept reserved words.
+symbol_reserved_word_test/10: MissingCompileTimeError # Issue 11669, 19972, With the exception of 'void', const Symbol() should not accept reserved words.
+
+[ $compiler == app_jit || $compiler == precompiler ]
+from_environment_const_type_test/02: MissingCompileTimeError
+from_environment_const_type_test/03: MissingCompileTimeError
+from_environment_const_type_test/04: MissingCompileTimeError
+from_environment_const_type_test/06: MissingCompileTimeError
+from_environment_const_type_test/07: MissingCompileTimeError
+from_environment_const_type_test/08: MissingCompileTimeError
+from_environment_const_type_test/09: MissingCompileTimeError
+from_environment_const_type_test/11: MissingCompileTimeError
+from_environment_const_type_test/12: MissingCompileTimeError
+from_environment_const_type_test/13: MissingCompileTimeError
+from_environment_const_type_test/14: MissingCompileTimeError
+from_environment_const_type_test/16: MissingCompileTimeError
from_environment_const_type_undefined_test/02: MissingCompileTimeError
from_environment_const_type_undefined_test/03: MissingCompileTimeError
from_environment_const_type_undefined_test/04: MissingCompileTimeError
@@ -635,65 +633,53 @@
from_environment_const_type_undefined_test/13: MissingCompileTimeError
from_environment_const_type_undefined_test/14: MissingCompileTimeError
from_environment_const_type_undefined_test/16: MissingCompileTimeError
-int_parse_radix_bad_handler_test: MissingCompileTimeError
-string_from_environment3_test/01: MissingCompileTimeError
-string_from_environment3_test/02: MissingCompileTimeError
-string_from_environment3_test/03: MissingCompileTimeError
-string_from_environment3_test/04: MissingCompileTimeError
-symbol_reserved_word_test/04: MissingCompileTimeError
-symbol_reserved_word_test/05: MissingCompileTimeError
-symbol_reserved_word_test/07: MissingCompileTimeError
-symbol_reserved_word_test/10: MissingCompileTimeError
-symbol_test/01: MissingCompileTimeError
-symbol_test/02: MissingCompileTimeError
-symbol_test/03: MissingCompileTimeError
-map_test: Crash # crash in front_end.
+iterable_to_set_test: RuntimeError # is-checks do not implement strong mode type system
+string_trimlr_test/02: RuntimeError # Issue 29060
-[ $compiler == dart2js && $dart2js_with_kernel && $checked ]
-apply3_test: RuntimeError
-from_environment_const_type_test/02: MissingCompileTimeError
-from_environment_const_type_test/03: MissingCompileTimeError
-from_environment_const_type_test/04: MissingCompileTimeError
-from_environment_const_type_test/06: MissingCompileTimeError
-from_environment_const_type_test/07: MissingCompileTimeError
-from_environment_const_type_test/08: MissingCompileTimeError
-from_environment_const_type_test/09: MissingCompileTimeError
-from_environment_const_type_test/11: MissingCompileTimeError
-from_environment_const_type_test/12: MissingCompileTimeError
-from_environment_const_type_test/13: MissingCompileTimeError
-from_environment_const_type_test/14: MissingCompileTimeError
-from_environment_const_type_test/16: MissingCompileTimeError
-from_environment_const_type_undefined_test/02: MissingCompileTimeError
-from_environment_const_type_undefined_test/03: MissingCompileTimeError
-from_environment_const_type_undefined_test/04: MissingCompileTimeError
-from_environment_const_type_undefined_test/06: MissingCompileTimeError
-from_environment_const_type_undefined_test/07: MissingCompileTimeError
-from_environment_const_type_undefined_test/08: MissingCompileTimeError
-iterable_return_type_test/01: RuntimeError
-iterable_return_type_test/02: RuntimeError
-iterable_to_list_test/01: RuntimeError
-list_test/01: Crash # Unsupported operation: Unsupported type parameter type node T.
-list_test/none: Crash # Unsupported operation: Unsupported type parameter type node T.
-map_test: Crash # tests/corelib_2/map_test.dart:903:7: Internal problem: Unhandled Null in installDefaultConstructor.
-symbol_reserved_word_test/03: RuntimeError
-symbol_reserved_word_test/04: MissingCompileTimeError
-symbol_reserved_word_test/05: MissingCompileTimeError
-symbol_reserved_word_test/07: MissingCompileTimeError
-symbol_reserved_word_test/10: MissingCompileTimeError
-symbol_test/02: MissingCompileTimeError
-symbol_test/03: MissingCompileTimeError
+[ $compiler == dart2js || $compiler == none && $runtime == vm ]
+from_environment_const_type_undefined_test/09: MissingCompileTimeError
+from_environment_const_type_undefined_test/11: MissingCompileTimeError
+from_environment_const_type_undefined_test/12: MissingCompileTimeError
+from_environment_const_type_undefined_test/13: MissingCompileTimeError
+from_environment_const_type_undefined_test/14: MissingCompileTimeError
+from_environment_const_type_undefined_test/16: MissingCompileTimeError
+string_base_vm_static_test: MissingCompileTimeError
-[ $runtime == vm || $runtime == dart_precompiled ]
-integer_to_radix_string_test/01: RuntimeError # Issue 31346
+[ $compiler == dartdevc || $compiler == dart2analyzer && $strong ]
+double_parse_test/01: Skip # Temporarily disable the following tests until we figure out why they started failing.
+double_parse_test/02: Skip # Temporarily disable the following tests until we figure out why they started failing.
+double_parse_test/03: Skip # Temporarily disable the following tests until we figure out why they started failing.
+double_parse_test/04: Skip # Temporarily disable the following tests until we figure out why they started failing.
+double_parse_test/none: Skip # Temporarily disable the following tests until we figure out why they started failing.
+iterable_reduce_test/01: CompileTimeError
+
+[ $compiler == dartkp || $compiler == precompiler ]
+apply3_test: SkipByDesign
+dynamic_nosuchmethod_test: SkipByDesign
+
+[ $compiler == precompiler || $compiler == dart2js && !$checked || $runtime == vm && !$checked && !$strong ]
+int_parse_radix_test/badTypes: RuntimeError # wrong exception returned
+
+[ $runtime == dart_precompiled || $runtime == flutter || $runtime == vm ]
+regexp/global_test: Skip # Issue 21709
+regexp/pcre_test: Pass, Slow, Timeout
+
+[ $runtime == dart_precompiled || $runtime == vm ]
+integer_parsed_arith_vm_test/01: RuntimeError # Issue 31346
+integer_parsed_arith_vm_test/02: RuntimeError # Issue 31369
integer_parsed_div_rem_vm_test/01: RuntimeError # Issue 31346
-integer_parsed_arith_vm_test/01: RuntimeError # Issue 31346
+integer_to_radix_string_test/01: RuntimeError # Issue 31346
+string_split_test: RuntimeError # does not return List<String>
-[ $runtime == vm || $runtime == dart_precompiled ]
-integer_parsed_arith_vm_test/02: RuntimeError # Issue 31369
+[ $runtime == ff || $runtime == jsshell ]
+double_parse_test/02: Fail, OK # Issue 30468
+regexp/UC16_test: RuntimeError
-[ $compiler == dartkp ]
-integer_to_radix_string_test/01: CompileTimeError # Issue 31339
-integer_to_radix_string_test/02: CompileTimeError # Issue 31339
-integer_to_string_test/01: CompileTimeError # Issue 31339
-bit_twiddling_test/int64: CompileTimeError # Issue 31339
-num_sign_test: CompileTimeError, Crash # Issue 31339
+[ $runtime == safari || $runtime == safarimobilesim ]
+double_round3_test: Fail, OK # Runtime rounds 0.49999999999999994 to 1.
+double_round_to_double2_test: Fail, OK # Runtime rounds 0.49999999999999994 to 1.
+string_trimlr_test/02: RuntimeError # Uses Unicode 6.2.0 or earlier.
+
+[ $hot_reload || $hot_reload_rollback ]
+integer_parsed_mul_div_vm_test: Pass, Slow # Slow
+
diff --git a/tests/html/html.status b/tests/html/html.status
index 9122f62..663af62 100644
--- a/tests/html/html.status
+++ b/tests/html/html.status
@@ -1,20 +1,31 @@
# 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.
-
-interactive_test: Skip # Must be run manually.
cross_frame_test: Skip # Test reloads itself. Issue 18558
+interactive_test: Skip # Must be run manually.
+
+[ $compiler == dart2analyzer ]
+custom/document_register_basic_test: StaticWarning
+custom/element_upgrade_test: StaticWarning
+datalistelement_test: StaticWarning
+documentfragment_test: StaticWarning
+element_add_test: StaticWarning
+element_test: StaticWarning
+events_test: StaticWarning
+htmlelement_test: StaticWarning
+js_function_getter_trust_types_test: Skip # dart2js specific flags.
+js_typed_interop_default_arg_test/default_value: MissingCompileTimeError # Issue #25759
+localstorage_test: StaticWarning
+mutationobserver_test: StaticWarning
+queryall_test: Fail
+track_element_constructor_test: StaticWarning
+transferables_test: StaticWarning
+typed_arrays_range_checks_test: StaticWarning
+typing_test: StaticWarning
+webgl_1_test: StaticWarning
+window_nosuchmethod_test: StaticWarning
[ $compiler == dart2js ]
-input_element_test/attributes: Fail # Issue 21555
-wrapping_collections_test: SkipByDesign # Testing an issue that is only relevant to Dartium
-js_typed_interop_default_arg_test/default_value: MissingCompileTimeError # Issue #25759
-mirrors_js_typed_interop_test: Pass, Slow
-js_type_test/dynamic-null-not-Foo: Fail # Issue 26838
-js_type_test/dynamic-String-not-Foo: Fail # Issue 26838
-js_type_test/dynamic-String-not-dynamic-Foo: Fail # Issue 26838
-js_interop_constructor_name_test/HTMLDivElement-types-erroneous1: Fail # Issue 26838
-js_interop_constructor_name_test/HTMLDivElement-types-erroneous2: Fail # Issue 26838
custom/document_register_type_extensions_test/construction: Pass, Timeout # Roll 50 failure
custom/document_register_type_extensions_test/registration: Pass, Timeout # Roll 50 failure
custom/entered_left_view_test/shadow_dom: Pass, Timeout # Roll 50 failure
@@ -28,26 +39,118 @@
indexeddb_3_test: Pass, Timeout # Roll 50 failure
indexeddb_4_test: Pass, Timeout # Roll 50 failure
indexeddb_5_test: Pass, Timeout # Roll 50 failure
+input_element_test/attributes: Fail # Issue 21555
+js_interop_constructor_name_test/HTMLDivElement-types-erroneous1: Fail # Issue 26838
+js_interop_constructor_name_test/HTMLDivElement-types-erroneous2: Fail # Issue 26838
+js_type_test/dynamic-String-not-Foo: Fail # Issue 26838
+js_type_test/dynamic-String-not-dynamic-Foo: Fail # Issue 26838
+js_type_test/dynamic-null-not-Foo: Fail # Issue 26838
+js_typed_interop_default_arg_test/default_value: MissingCompileTimeError # Issue #25759
js_typed_interop_side_cast_exp_test: Pass, RuntimeError # Roll 50 failure
+mirrors_js_typed_interop_test: Pass, Slow
svgelement_test/PathElement: Pass, RuntimeError # Roll 50 failure
websql_test/functional: Pass, Timeout # Roll 50 failure
+wrapping_collections_test: SkipByDesign # Testing an issue that is only relevant to Dartium
xhr_test/xhr: Pass, RuntimeError # Roll 50 failure
-[ $compiler == dart2js && $checked ]
-js_function_getter_trust_types_test: Skip # --trust-type-annotations incompatible with --checked
+[ $runtime == drt ]
+webgl_extensions_test: Skip # webgl does not work properly on DRT, which is 'headless'.
-[ $compiler == dart2js && $csp && $browser ]
-custom/js_custom_test: Fail # Issue 14643
-custom/element_upgrade_test: Fail # Issue 17298
+[ $runtime == ie11 ]
+audiobuffersourcenode_test/supported: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+audiocontext_test/supported: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+canvasrenderingcontext2d_test/arc: Pass, Fail # Pixel unexpected value. Please triage this failure.
+canvasrenderingcontext2d_test/drawImage_video_element: Fail # IE does not support drawImage w/ video element
+canvasrenderingcontext2d_test/drawImage_video_element_dataUrl: Fail # IE does not support drawImage w/ video element
+crypto_test/supported: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+css_test/supportsPointConversions: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+custom/document_register_type_extensions_test/single-parameter: Fail # Issue 13193.
+deferred_multi_app_htmltest: Skip # Times out on IE. Issue 21537
+element_animate_test: Fail # Element.animate not supported on these browsers.
+element_test/click: Fail # IE does not support firing this event.
+element_types_test/supported_content: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+element_types_test/supported_details: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+element_types_test/supported_keygen: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+element_types_test/supported_meter: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+element_types_test/supported_output: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+element_types_test/supported_shadow: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+element_types_test/supported_template: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+event_test: RuntimeError # Issue 23437. Only three failures, but hard to break them out.
+fileapi_test/supported: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+gamepad_test: Fail # IE does not support Navigator.getGamepads()
+history_test/supported_HashChangeEvent: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+indexeddb_5_test: Fail # Issue 12893
+input_element_test/supported_date: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+input_element_test/supported_datetime-local: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+input_element_test/supported_month: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+input_element_test/supported_time: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+input_element_test/supported_week: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+js_test/transferrables: RuntimeError # Issue 14246
+js_util_test/callConstructor: RuntimeError # Issue 26978
+localstorage_test: Pass, RuntimeError # Issue 22166
+media_stream_test/supported_MediaStreamEvent: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+media_stream_test/supported_MediaStreamTrackEvent: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+media_stream_test/supported_media: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+mediasource_test/functional: Pass, Fail # Fails on Windows 8
+mediasource_test/supported: Pass, Fail # Should pass on Windows 8
+no_linked_scripts_htmltest: Skip # Times out on IE. Issue 21537
+notification_test/supported_notification: Fail # Notification not supported on IE
+postmessage_structured_test/more_primitives: Fail # Does not support the MessageEvent constructor.
+request_animation_frame_test: Skip # Times out. Issue 22167
+rtc_test/supported: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+scripts_htmltest: Skip # Times out on IE. Issue 21537
+serialized_script_value_test: Fail
+shadow_dom_test/supported: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+speechrecognition_test/supported: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+storage_test: Pass, RuntimeError # Issue 22166
+svgelement_test/supported_altGlyph: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+svgelement_test/supported_animate: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+svgelement_test/supported_animateMotion: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+svgelement_test/supported_animateTransform: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+svgelement_test/supported_foreignObject: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+svgelement_test/supported_set: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+text_event_test: RuntimeError # Issue 23437
+touchevent_test/supported: Fail # IE does not support TouchEvents
+transferables_test: Pass, Fail # Issues 20659.
+transition_event_test/functional: Skip # Times out. Issue 22167
+two_scripts_htmltest: Skip # Times out on IE. Issue 21537
+webgl_1_test/functional: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+websocket_test/websocket: Fail # Issue 7875. Closed with "working as intended".
+websql_test/supported: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
+wheelevent_test: RuntimeError # Issue 23437
+worker_test/functional: Pass, Fail # Issues 20659.
+xhr_test/json: Fail # IE10 returns string, not JSON object
+xsltprocessor_test/supported: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-[ $compiler == dart2js && $browser ]
-custom/created_callback_test: Fail # Support for created constructor. Issue 14835
-fontface_loaded_test: Fail # Support for promises.
+[ $runtime == safari ]
+audiobuffersourcenode_test/functional: RuntimeError
+indexeddb_1_test/functional: Skip # Times out. Issue 21433
+indexeddb_2_test: RuntimeError # Issue 21433
+indexeddb_3_test: Skip # Times out 1 out of 10.
+indexeddb_4_test: RuntimeError # Issue 21433
+indexeddb_5_test: RuntimeError # Issue 21433
+input_element_test/supported_date: Fail
+input_element_test/supported_datetime-local: Fail
+input_element_test/supported_month: RuntimeError
+input_element_test/supported_time: RuntimeError
+input_element_test/supported_week: RuntimeError
+notification_test/constructors: Fail # Safari doesn't let us access the fields of the Notification to verify them.
+touchevent_test/supported: Fail # Safari does not support TouchEvents
-[ $compiler == dart2js && ($runtime == safari || $runtime == safarimobilesim || $runtime == ff || $ie) ]
-custom/entered_left_view_test/viewless_document: Fail # Polyfill does not handle this
-fontface_test: Fail # Fontface not supported on these.
-custom/attribute_changed_callback_test/unsupported_on_polyfill: Fail # Polyfill does not support
+[ $runtime == safarimobilesim ]
+element_offset_test/offset: RuntimeError # Issue 18573
+element_types_test/supported_meter: RuntimeError # Issue 18573
+element_types_test/supported_template: Fail
+event_test: RuntimeError # Safarimobilesim does not support WheelEvent
+indexeddb_1_test/supported: Fail
+notification_test/constructors: Pass # Safari mobile will pass this test on the basis that notifications aren't supported at all.
+notification_test/supported_notification: RuntimeError # Issue 22869
+performance_api_test/supported: Fail
+wheelevent_test: RuntimeError # Safarimobilesim does not support WheelEvent
+xhr_test/json: Fail # Safari doesn't support JSON response type
+
+[ $builder_tag == strong && $compiler == dart2analyzer ]
+*: Skip # Issue 28649
[ $compiler == dart2js && $runtime == chrome ]
element_animate_test/timing_dict: RuntimeError # Issue 26730
@@ -64,20 +167,18 @@
touchevent_test/supported: Fail # Touch events are only supported on touch devices
[ $compiler == dart2js && $runtime == chromeOnAndroid ]
+audiobuffersourcenode_test/supported: Fail # TODO(dart2js-team): Please triage this failure.
+audiocontext_test/supported: RuntimeError # TODO(dart2js-team): Please triage this failure.
+canvasrenderingcontext2d_test/drawImage_video_element: Fail # TODO(dart2js-team): Please triage this failure.
+canvasrenderingcontext2d_test/drawImage_video_element_dataUrl: Fail # TODO(dart2js-team): Please triage this failure.
+canvasrenderingcontext2d_test/fillText: Fail # TODO(dart2js-team): Please triage this failure.
crypto_test/functional: Pass, Slow # TODO(dart2js-team): Please triage this failure.
-input_element_test/supported_datetime-local: Pass, Slow # TODO(dart2js-team): Please triage this failure.
-
+element_types_test/supported_datalist: Fail # TODO(dart2js-team): Please triage this failure.
fileapi_test/entry: Fail, Pass # TODO(dart2js-team): Please triage this failure.
fileapi_test/fileEntry: Fail, Pass # TODO(dart2js-team): Please triage this failure.
fileapi_test/getDirectory: Fail, Pass # TODO(dart2js-team): Please triage this failure.
fileapi_test/getFile: Fail, Pass # TODO(dart2js-team): Please triage this failure.
-
-audiocontext_test/supported: RuntimeError # TODO(dart2js-team): Please triage this failure.
-audiobuffersourcenode_test/supported: Fail # TODO(dart2js-team): Please triage this failure.
-canvasrenderingcontext2d_test/drawImage_video_element: Fail # TODO(dart2js-team): Please triage this failure.
-canvasrenderingcontext2d_test/drawImage_video_element_dataUrl: Fail # TODO(dart2js-team): Please triage this failure.
-canvasrenderingcontext2d_test/fillText: Fail # TODO(dart2js-team): Please triage this failure.
-element_types_test/supported_datalist: Fail # TODO(dart2js-team): Please triage this failure.
+input_element_test/supported_datetime-local: Pass, Slow # TODO(dart2js-team): Please triage this failure.
input_element_test/supported_week: Fail # TODO(dart2js-team): Please triage this failure.
media_stream_test/supported_media: Fail # TODO(dart2js-team): Please triage this failure.
rtc_test/supported: Fail # TODO(dart2js-team): Please triage this failure.
@@ -85,253 +186,45 @@
speechrecognition_test/types: Fail # TODO(dart2js-team): Please triage this failure.
xhr_test/json: Fail # TODO(dart2js-team): Please triage this failure.
-[ $runtime == safarimobilesim ]
-element_offset_test/offset: RuntimeError # Issue 18573
-element_types_test/supported_meter: RuntimeError # Issue 18573
-
-[ $runtime == chrome && $system == macos ]
-canvasrenderingcontext2d_test/drawImage_video_element: Skip # Times out. Please triage this failure.
-canvasrenderingcontext2d_test/drawImage_video_element_dataUrl: Skip # Times out. Please triage this failure.
-transition_event_test/functional: Skip # Times out. Issue 22167
-request_animation_frame_test: Skip # Times out. Issue 22167
-custom/*: Pass, Timeout # Issue 26789
-custom_elements_test: Pass, Timeout # Issue 26789
-custom_element_method_clash_test: Pass, Timeout # Issue 26789
-custom_element_name_clash_test: Pass, Timeout # Issue 26789
-
-[$runtime == drt || $runtime == chrome || $runtime == chromeOnAndroid ]
-webgl_1_test: Pass, Fail # Issue 8219
-
-[ $compiler == dart2js && $minified ]
-canvas_pixel_array_type_alias_test/types2_runtimeTypeName: Fail, OK # Issue 12605
-
-[ $runtime == ie11 ]
-canvasrenderingcontext2d_test/arc: Pass, Fail # Pixel unexpected value. Please triage this failure.
-canvasrenderingcontext2d_test/drawImage_video_element: Fail # IE does not support drawImage w/ video element
-canvasrenderingcontext2d_test/drawImage_video_element_dataUrl: Fail # IE does not support drawImage w/ video element
-custom/document_register_type_extensions_test/single-parameter: Fail # Issue 13193.
-deferred_multi_app_htmltest: Skip # Times out on IE. Issue 21537
-element_animate_test: Fail # Element.animate not supported on these browsers.
-element_test/click: Fail # IE does not support firing this event.
-event_test: RuntimeError # Issue 23437. Only three failures, but hard to break them out.
-gamepad_test: Fail # IE does not support Navigator.getGamepads()
-indexeddb_5_test: Fail # Issue 12893
-js_test/transferrables: RuntimeError # Issue 14246
-js_util_test/callConstructor: RuntimeError # Issue 26978
-localstorage_test: Pass, RuntimeError # Issue 22166
-no_linked_scripts_htmltest: Skip # Times out on IE. Issue 21537
-notification_test/supported_notification: Fail # Notification not supported on IE
-postmessage_structured_test/more_primitives: Fail # Does not support the MessageEvent constructor.
-request_animation_frame_test: Skip # Times out. Issue 22167
-scripts_htmltest: Skip # Times out on IE. Issue 21537
-serialized_script_value_test: Fail
-storage_test: Pass, RuntimeError # Issue 22166
-text_event_test: RuntimeError # Issue 23437
-transferables_test: Pass, Fail # Issues 20659.
-transition_event_test/functional: Skip # Times out. Issue 22167
-two_scripts_htmltest: Skip # Times out on IE. Issue 21537
-websocket_test/websocket: Fail # Issue 7875. Closed with "working as intended".
-wheelevent_test: RuntimeError # Issue 23437
-worker_test/functional: Pass, Fail # Issues 20659.
-
-audiobuffersourcenode_test/supported: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-audiocontext_test/supported: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-crypto_test/supported: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-css_test/supportsPointConversions: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-element_types_test/supported_content: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-element_types_test/supported_details: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-element_types_test/supported_keygen: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-element_types_test/supported_meter: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-element_types_test/supported_output: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-element_types_test/supported_shadow: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-element_types_test/supported_template: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-fileapi_test/supported: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-history_test/supported_HashChangeEvent: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-input_element_test/supported_date: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-input_element_test/supported_datetime-local: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-input_element_test/supported_month: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-input_element_test/supported_time: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-input_element_test/supported_week: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-media_stream_test/supported_MediaStreamEvent: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-media_stream_test/supported_MediaStreamTrackEvent: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-media_stream_test/supported_media: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-mediasource_test/supported: Pass, Fail # Should pass on Windows 8
-mediasource_test/functional: Pass, Fail # Fails on Windows 8
-rtc_test/supported: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-shadow_dom_test/supported: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-speechrecognition_test/supported: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-svgelement_test/supported_altGlyph: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-svgelement_test/supported_animate: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-svgelement_test/supported_animateMotion: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-svgelement_test/supported_animateTransform: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-svgelement_test/supported_foreignObject: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-svgelement_test/supported_set: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-touchevent_test/supported: Fail # IE does not support TouchEvents
-webgl_1_test/functional: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-websql_test/supported: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-xhr_test/json: Fail # IE10 returns string, not JSON object
-xsltprocessor_test/supported: Fail # IE11 Feature support statuses - These results not yet noted in platform support annotations. All changes should be accompanied by platform support annotation changes.
-
-[ $compiler == dart2js && $runtime == drt && ! $checked ]
+[ $compiler == dart2js && $runtime == drt && !$checked ]
audiocontext_test/functional: Pass, Fail
-[ $runtime == safari || $runtime == safarimobilesim ]
-worker_api_test: Skip # Issue 13221
-webgl_1_test: Pass, Fail # Issue 8219
-canvasrenderingcontext2d_test/drawImage_video_element: Fail # Safari does not support drawImage w/ video element
-canvasrenderingcontext2d_test/drawImage_video_element_dataUrl: Fail # Safari does not support drawImage w/ video element
-element_test: Pass, Fail # Issue 21434
-mediasource_test: Pass, Fail # MediaSource only available on Safari 8 desktop, we can't express that.
-element_animate_test: Fail # Element.animate not supported on these browsers.
-gamepad_test: Fail # Safari does not support Navigator.getGamepads()
-
-element_types_test/supported_content: Fail # Safari Feature support statuses - All changes should be accompanied by platform support annotation changes.
-element_types_test/supported_datalist: Fail # Safari Feature support statuses - All changes should be accompanied by platform support annotation changes.
-element_types_test/supported_shadow: Fail # Safari Feature support statuses - All changes should be accompanied by platform support annotation changes.
-fileapi_test/supported: Fail # Safari Feature support statuses - All changes should be accompanied by platform support annotation changes.
-media_stream_test/supported_MediaStreamEvent: Fail # Safari Feature support statuses - All changes should be accompanied by platform support annotation changes.
-media_stream_test/supported_MediaStreamTrackEvent: Fail # Safari Feature support statuses - All changes should be accompanied by platform support annotation changes.
-media_stream_test/supported_media: Fail # Safari Feature support statuses - All changes should be accompanied by platform support annotation changes.
-rtc_test/supported: Fail # Safari Feature support statuses - All changes should be accompanied by platform support annotation changes.
-shadow_dom_test/supported: Fail # Safari Feature support statuses - All changes should be accompanied by platform support annotation changes.
-speechrecognition_test/supported: Fail # Safari Feature support statuses - All changes should be accompanied by platform support annotation changes.
-
-[ $runtime == safarimobilesim ]
-performance_api_test/supported: Fail
-indexeddb_1_test/supported: Fail
-element_types_test/supported_template: Fail
-xhr_test/json: Fail # Safari doesn't support JSON response type
-notification_test/constructors: Pass # Safari mobile will pass this test on the basis that notifications aren't supported at all.
-notification_test/supported_notification: RuntimeError # Issue 22869
-wheelevent_test: RuntimeError # Safarimobilesim does not support WheelEvent
-event_test: RuntimeError # Safarimobilesim does not support WheelEvent
-
-[ $runtime == safari ]
-audiobuffersourcenode_test/functional: RuntimeError
-input_element_test/supported_month: RuntimeError
-input_element_test/supported_time: RuntimeError
-input_element_test/supported_week: RuntimeError
-input_element_test/supported_date: Fail
-input_element_test/supported_datetime-local: Fail
-touchevent_test/supported: Fail # Safari does not support TouchEvents
-notification_test/constructors: Fail # Safari doesn't let us access the fields of the Notification to verify them.
-indexeddb_1_test/functional: Skip # Times out. Issue 21433
-indexeddb_2_test: RuntimeError # Issue 21433
-indexeddb_4_test: RuntimeError # Issue 21433
-indexeddb_5_test: RuntimeError # Issue 21433
-indexeddb_3_test: Skip # Times out 1 out of 10.
-
-[ $compiler == dart2js && $runtime == ff ]
-history_test/history: Skip # Issue 22050
-xhr_test/xhr: Pass, Fail # Issue 11602
-dart_object_local_storage_test: Skip # sessionStorage NS_ERROR_DOM_NOT_SUPPORTED_ERR
-webgl_1_test: Pass, Fail # Issue 8219
-text_event_test: Fail # Issue 17893
+[ $compiler == dart2js && $runtime == ff ]
+dart_object_local_storage_test: Skip # sessionStorage NS_ERROR_DOM_NOT_SUPPORTED_ERR
element_animate_test/timing_dict: RuntimeError # Issue 26730
-messageevent_test: Pass, RuntimeError # Issue 28983
-serialized_script_value_test: Pass, RuntimeError # Issue 28983
-element_types_test/supported_content: Pass, RuntimeError # Issue 28983
-element_types_test/supported_shadow: Pass, RuntimeError # Issue 28983
-
element_classes_test: RuntimeError # Issue 27535
+element_types_test/supported_content: Pass, RuntimeError # Issue 28983
element_types_test/supported_keygen: Fail # Firefox Feature support statuses - All changes should be accompanied by platform support annotation changes.
+element_types_test/supported_shadow: Pass, RuntimeError # Issue 28983
fileapi_test/supported: Fail # Firefox Feature support statuses - All changes should be accompanied by platform support annotation changes.
+history_test/history: Skip # Issue 22050
input_element_test/supported_datetime-local: Fail # Firefox Feature support statuses - All changes should be accompanied by platform support annotation changes.
input_element_test/supported_month: Fail # Firefox Feature support statuses - All changes should be accompanied by platform support annotation changes.
input_element_test/supported_week: Fail # Firefox Feature support statuses - All changes should be accompanied by platform support annotation changes.
media_stream_test/supported_MediaStreamEvent: Fail # Firefox Feature support statuses - All changes should be accompanied by platform support annotation changes.
media_stream_test/supported_MediaStreamTrackEvent: Fail # Firefox Feature support statuses - All changes should be accompanied by platform support annotation changes.
+messageevent_test: Pass, RuntimeError # Issue 28983
+serialized_script_value_test: Pass, RuntimeError # Issue 28983
shadow_dom_test/supported: Fail # Firefox Feature support statuses - All changes should be accompanied by platform support annotation changes.
speechrecognition_test/supported: Fail # Firefox Feature support statuses - All changes should be accompanied by platform support annotation changes.
+text_event_test: Fail # Issue 17893
touchevent_test/supported: Fail # Firefox Feature support statuses - All changes should be accompanied by platform support annotation changes.
+webgl_1_test: Pass, Fail # Issue 8219
websql_test/supported: Fail # Firefox Feature support statuses - All changes should be accompanied by platform support annotation changes.
+xhr_test/xhr: Pass, Fail # Issue 11602
-# 'html' tests import the HTML library, so they only make sense in
-# a browser environment.
-[ $runtime == vm || $runtime == dart_precompiled ]
-*: Skip
+[ $compiler == dart2js && $browser ]
+custom/created_callback_test: Fail # Support for created constructor. Issue 14835
+fontface_loaded_test: Fail # Support for promises.
-[ $compiler == dart2js && ($runtime == drt || $runtime == ff) ]
-request_animation_frame_test: Skip # Async test hangs.
+[ $compiler == dart2js && $browser && $csp ]
+custom/element_upgrade_test: Fail # Issue 17298
+custom/js_custom_test: Fail # Issue 14643
-[ $runtime == drt ]
-webgl_extensions_test: Skip # webgl does not work properly on DRT, which is 'headless'.
+[ $compiler == dart2js && $checked ]
+js_function_getter_trust_types_test: Skip # --trust-type-annotations incompatible with --checked
-# Note: these tests are all injecting scripts by design. This is not allowed under CSP.
-# TODO(sra): Change these tests to use a same-origin JavaScript script file.
-[ $compiler == dart2js && $csp && ($runtime == drt || $runtime == safari || $runtime == ff || $runtime == chrome || $runtime == chromeOnAndroid) ]
-event_customevent_test: SkipByDesign
-js_interop_1_test: SkipByDesign
-js_test: SkipByDesign
-js_array_test: SkipByDesign
-js_util_test: SkipByDesign
-js_typed_interop_bind_this_test: SkipByDesign
-js_typed_interop_callable_object_test: SkipByDesign
-js_typed_interop_test: SkipByDesign
-js_typed_interop_default_arg_test: SkipByDesign
-js_typed_interop_type_test: SkipByDesign
-js_typed_interop_type1_test: SkipByDesign
-js_typed_interop_type3_test: SkipByDesign
-js_typed_interop_window_property_test: SkipByDesign
-js_function_getter_test: SkipByDesign
-js_function_getter_trust_types_test: SkipByDesign
-js_dart_to_string_test: SkipByDesign
-mirrors_js_typed_interop_test: SkipByDesign
-postmessage_structured_test: SkipByDesign
-
-[ $compiler == dart2js && ($runtime == chrome || $runtime == drt) ]
-svgelement_test/supported_altGlyph: RuntimeError # Issue 25787
-
-[ ($runtime == drt && $system == macos) || $system == windows ]
-xhr_test/xhr: Skip # Times out. Issue 21527
-
-[ $compiler == dart2analyzer ]
-custom/document_register_basic_test: StaticWarning
-custom/element_upgrade_test: StaticWarning
-datalistelement_test: StaticWarning
-documentfragment_test: StaticWarning
-element_add_test: StaticWarning
-element_test: StaticWarning
-events_test: StaticWarning
-htmlelement_test: StaticWarning
-js_function_getter_trust_types_test: skip # dart2js specific flags.
-localstorage_test: StaticWarning
-mutationobserver_test: StaticWarning
-queryall_test: fail
-track_element_constructor_test: StaticWarning
-transferables_test: StaticWarning
-typed_arrays_range_checks_test: StaticWarning
-typing_test: StaticWarning
-webgl_1_test: StaticWarning
-window_nosuchmethod_test: StaticWarning
-js_typed_interop_default_arg_test/default_value: MissingCompileTimeError # Issue #25759
-
-[ $compiler == dart2analyzer && $builder_tag == strong ]
-*: Skip # Issue 28649
-
-[ $compiler == dart2js && $dart2js_with_kernel && $host_checked ]
-custom/mirrors_2_test: RuntimeError
-custom/mirrors_test: RuntimeError
-fileapi_test/entry: RuntimeError
-js_typed_interop_default_arg_test/explicit_argument: RuntimeError
-js_typed_interop_test/static_method_tearoff_1: RuntimeError
-
-[ $compiler == dart2js && $dart2js_with_kernel && $minified ]
-custom/mirrors_2_test: RuntimeError
-custom/mirrors_test: RuntimeError
-fileapi_test/entry: RuntimeError
-js_typed_interop_default_arg_test/explicit_argument: RuntimeError
-js_typed_interop_test/static_method_tearoff_1: RuntimeError
-
-[ $compiler == dart2js && $dart2js_with_kernel && $fast_startup ]
-js_typed_interop_default_arg_test/explicit_argument: RuntimeError
-js_typed_interop_default_arg_test/none: RuntimeError
-js_typed_interop_test/object literal: RuntimeError
-js_typed_interop_test/static_method_call: RuntimeError
-js_typed_interop_test/static_method_tearoff_1: RuntimeError
-js_util_test/hasProperty: RuntimeError
-
-[ $compiler == dart2js && $dart2js_with_kernel && $checked ]
+[ $compiler == dart2js && $checked && $dart2js_with_kernel ]
canvasrenderingcontext2d_test/drawImage_image_element: Timeout
canvasrenderingcontext2d_test/drawImage_video_element: Timeout
canvasrenderingcontext2d_test/drawImage_video_element_dataUrl: Timeout
@@ -390,12 +283,112 @@
xhr_test/headers: RuntimeError
xhr_test/json: Timeout
xhr_test/xhr: Timeout
-xhr_test/xhr_requestBlob/xhr_requestBlob: Pass
xhr_test/xhr_requestBlob: RuntimeError
+xhr_test/xhr_requestBlob/xhr_requestBlob: Pass
+
+# Note: these tests are all injecting scripts by design. This is not allowed under CSP.
+# TODO(sra): Change these tests to use a same-origin JavaScript script file.
+[ $compiler == dart2js && $csp && ($runtime == chrome || $runtime == chromeOnAndroid || $runtime == drt || $runtime == ff || $runtime == safari) ]
+event_customevent_test: SkipByDesign
+js_array_test: SkipByDesign
+js_dart_to_string_test: SkipByDesign
+js_function_getter_test: SkipByDesign
+js_function_getter_trust_types_test: SkipByDesign
+js_interop_1_test: SkipByDesign
+js_test: SkipByDesign
+js_typed_interop_bind_this_test: SkipByDesign
+js_typed_interop_callable_object_test: SkipByDesign
+js_typed_interop_default_arg_test: SkipByDesign
+js_typed_interop_test: SkipByDesign
+js_typed_interop_type1_test: SkipByDesign
+js_typed_interop_type3_test: SkipByDesign
+js_typed_interop_type_test: SkipByDesign
+js_typed_interop_window_property_test: SkipByDesign
+js_util_test: SkipByDesign
+mirrors_js_typed_interop_test: SkipByDesign
+postmessage_structured_test: SkipByDesign
+
+[ $compiler == dart2js && $dart2js_with_kernel && $fast_startup ]
+js_typed_interop_default_arg_test/explicit_argument: RuntimeError
+js_typed_interop_default_arg_test/none: RuntimeError
+js_typed_interop_test/object literal: RuntimeError
+js_typed_interop_test/static_method_call: RuntimeError
+js_typed_interop_test/static_method_tearoff_1: RuntimeError
+js_util_test/hasProperty: RuntimeError
+
+[ $compiler == dart2js && $dart2js_with_kernel && $host_checked ]
+custom/mirrors_2_test: RuntimeError
+custom/mirrors_test: RuntimeError
+fileapi_test/entry: RuntimeError
+js_typed_interop_default_arg_test/explicit_argument: RuntimeError
+js_typed_interop_test/static_method_tearoff_1: RuntimeError
+
+[ $compiler == dart2js && $dart2js_with_kernel && $minified ]
+custom/mirrors_2_test: RuntimeError
+custom/mirrors_test: RuntimeError
+fileapi_test/entry: RuntimeError
+js_typed_interop_default_arg_test/explicit_argument: RuntimeError
+js_typed_interop_test/static_method_tearoff_1: RuntimeError
[ $compiler == dart2js && $fast_startup ]
custom/constructor_calls_created_synchronously_test: Fail # mirrors not supported
custom/js_custom_test: Fail # mirrors not supported
-custom/mirrors_test: Fail # mirrors not supported
custom/mirrors_2_test: Fail # mirrors not supported
+custom/mirrors_test: Fail # mirrors not supported
mirrors_js_typed_interop_test: Fail # mirrors not supported
+
+[ $compiler == dart2js && $minified ]
+canvas_pixel_array_type_alias_test/types2_runtimeTypeName: Fail, OK # Issue 12605
+
+[ $compiler == dart2js && ($runtime == chrome || $runtime == drt) ]
+svgelement_test/supported_altGlyph: RuntimeError # Issue 25787
+
+[ $compiler == dart2js && ($runtime == drt || $runtime == ff) ]
+request_animation_frame_test: Skip # Async test hangs.
+
+[ $compiler == dart2js && ($runtime == ff || $runtime == safari || $runtime == safarimobilesim || $ie) ]
+custom/attribute_changed_callback_test/unsupported_on_polyfill: Fail # Polyfill does not support
+custom/entered_left_view_test/viewless_document: Fail # Polyfill does not handle this
+fontface_test: Fail # Fontface not supported on these.
+
+[ $runtime == chrome && $system == macos ]
+canvasrenderingcontext2d_test/drawImage_video_element: Skip # Times out. Please triage this failure.
+canvasrenderingcontext2d_test/drawImage_video_element_dataUrl: Skip # Times out. Please triage this failure.
+custom/*: Pass, Timeout # Issue 26789
+custom_element_method_clash_test: Pass, Timeout # Issue 26789
+custom_element_name_clash_test: Pass, Timeout # Issue 26789
+custom_elements_test: Pass, Timeout # Issue 26789
+request_animation_frame_test: Skip # Times out. Issue 22167
+transition_event_test/functional: Skip # Times out. Issue 22167
+
+[ $runtime == chrome || $runtime == chromeOnAndroid || $runtime == drt ]
+webgl_1_test: Pass, Fail # Issue 8219
+
+# 'html' tests import the HTML library, so they only make sense in
+# a browser environment.
+[ $runtime == dart_precompiled || $runtime == vm ]
+*: Skip
+
+[ $runtime == safari || $runtime == safarimobilesim ]
+canvasrenderingcontext2d_test/drawImage_video_element: Fail # Safari does not support drawImage w/ video element
+canvasrenderingcontext2d_test/drawImage_video_element_dataUrl: Fail # Safari does not support drawImage w/ video element
+element_animate_test: Fail # Element.animate not supported on these browsers.
+element_test: Pass, Fail # Issue 21434
+element_types_test/supported_content: Fail # Safari Feature support statuses - All changes should be accompanied by platform support annotation changes.
+element_types_test/supported_datalist: Fail # Safari Feature support statuses - All changes should be accompanied by platform support annotation changes.
+element_types_test/supported_shadow: Fail # Safari Feature support statuses - All changes should be accompanied by platform support annotation changes.
+fileapi_test/supported: Fail # Safari Feature support statuses - All changes should be accompanied by platform support annotation changes.
+gamepad_test: Fail # Safari does not support Navigator.getGamepads()
+media_stream_test/supported_MediaStreamEvent: Fail # Safari Feature support statuses - All changes should be accompanied by platform support annotation changes.
+media_stream_test/supported_MediaStreamTrackEvent: Fail # Safari Feature support statuses - All changes should be accompanied by platform support annotation changes.
+media_stream_test/supported_media: Fail # Safari Feature support statuses - All changes should be accompanied by platform support annotation changes.
+mediasource_test: Pass, Fail # MediaSource only available on Safari 8 desktop, we can't express that.
+rtc_test/supported: Fail # Safari Feature support statuses - All changes should be accompanied by platform support annotation changes.
+shadow_dom_test/supported: Fail # Safari Feature support statuses - All changes should be accompanied by platform support annotation changes.
+speechrecognition_test/supported: Fail # Safari Feature support statuses - All changes should be accompanied by platform support annotation changes.
+webgl_1_test: Pass, Fail # Issue 8219
+worker_api_test: Skip # Issue 13221
+
+[ $system == windows || $runtime == drt && $system == macos ]
+xhr_test/xhr: Skip # Times out. Issue 21527
+
diff --git a/tests/isolate/isolate.status b/tests/isolate/isolate.status
index bb7c9b2..9b965dd 100644
--- a/tests/isolate/isolate.status
+++ b/tests/isolate/isolate.status
@@ -2,47 +2,17 @@
# 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.
-[$runtime == vm && $compiler == none && $system == fuchsia]
-*: Skip # Not yet triaged.
-
-[ $runtime == vm || $runtime == flutter || $runtime == dart_precompiled ]
-browser/*: SkipByDesign # Browser specific tests
-isolate_stress_test: Skip # Issue 12588: Uses dart:html. This should be able to pass when we have wrapper-less tests.
-stacktrace_message_test: RuntimeError # Fails to send stacktrace object.
-
-[ $runtime != vm || $mode == product || $compiler == app_jit ]
-checked_test: Skip # Unsupported.
-
-[ $compiler == none || $compiler == precompiler || $compiler == app_jit ]
-compile_time_error_test/01: Skip # Issue 12587
-ping_test: Skip # Resolve test issues
-ping_pause_test: Skip # Resolve test issues
-kill3_test: Pass, Fail # Bad test: expects total message order
-
-message3_test/int32x4: Fail, Crash, Timeout # Issue 21818
-
-[ $compiler == dart2js && $runtime == safarimobilesim ]
-compile_time_error_test/none: Pass, Slow
-
-[ $compiler == dart2js && $jscl ]
-browser/*: SkipByDesign # Browser specific tests
-
-[ $compiler == dart2js && $runtime == jsshell ]
-pause_test: Fail, OK # non-zero timer not supported.
-timer_isolate_test: Fail, OK # Needs Timer to run.
-
-[ $compiler == dart2js && $runtime == safari ]
-cross_isolate_message_test: Skip # Issue 12627
-message_test: Skip # Issue 12627
+[ $compiler == dart2analyzer ]
+browser/typed_data_message_test: StaticWarning
+mint_maker_test: StaticWarning
[ $compiler == dart2js ]
-stacktrace_message_test: RuntimeError # Fails to send stacktrace object.
browser/issue_12474_test: CompileTimeError # Issue 22529
enum_const_test/02: RuntimeError # Issue 21817
-error_at_spawnuri_test: SkipByDesign # Test uses a ".dart" URI.
-error_exit_at_spawnuri_test: SkipByDesign # Test uses a ".dart" URI.
-exit_at_spawnuri_test: SkipByDesign # Test uses a ".dart" URI.
-function_send1_test: SkipByDesign # Test uses a ".dart" URI.
+error_at_spawnuri_test: SkipByDesign # Test uses a ".dart" URI.
+error_exit_at_spawnuri_test: SkipByDesign # Test uses a ".dart" URI.
+exit_at_spawnuri_test: SkipByDesign # Test uses a ".dart" URI.
+function_send1_test: SkipByDesign # Test uses a ".dart" URI.
issue_21398_parent_isolate1_test: SkipByDesign # Test uses a ".dart" URI.
issue_21398_parent_isolate2_test: SkipByDesign # Test uses a ".dart" URI.
issue_21398_parent_isolate_test: SkipByDesign # Test uses a ".dart" URI.
@@ -51,22 +21,60 @@
message3_test/constInstance: RuntimeError # Issue 21817
message3_test/constList: RuntimeError # Issue 21817
message3_test/constList_identical: RuntimeError # Issue 21817
-message3_test/constMap: RuntimeError # Issue 21817
+message3_test/constMap: RuntimeError # Issue 21817
non_fatal_exception_in_timer_callback_test: Skip # Issue 23876
spawn_uri_exported_main_test: SkipByDesign # Test uses a ".dart" URI.
spawn_uri_nested_vm_test: SkipByDesign # Test uses a ".dart" URI.
spawn_uri_vm_test: SkipByDesign # Test uses a ".dart" URI.
+stacktrace_message_test: RuntimeError # Fails to send stacktrace object.
+
+[ $mode == product ]
+issue_24243_parent_isolate_test: Skip # Requires checked mode
+
+[ $runtime == flutter ]
+isolate_import_test/01: Skip # Flutter Issue 9114
+issue_21398_parent_isolate2_test/01: Skip # Flutter Issue 9114
+simple_message_test/01: Skip # Flutter Issue 9114
+
+[ $csp ]
+browser/package_resolve_browser_hook_test: SkipByDesign # Test written in a way that violates CSP.
+deferred_in_isolate2_test: Skip # Issue 16898. Deferred loading does not work from an isolate in CSP-mode
+
+[ $jscl ]
+spawn_uri_multi_test/none: RuntimeError # Issue 13544
+
+[ $builder_tag == strong && $compiler == dart2analyzer ]
+*: Skip # Issue 28649
+
+[ $compiler == dart2js && $runtime == chrome ]
+function_send_test: Skip # Crashes Chrome 62: https://bugs.chromium.org/p/chromium/issues/detail?id=775506
+
+[ $compiler == dart2js && $runtime == chromeOnAndroid ]
+isolate_stress_test: Pass, Slow # TODO(kasperl): Please triage.
+mandel_isolate_test: Pass, Timeout # TODO(kasperl): Please triage.
+unresolved_ports_test: Pass, Timeout # Issue 15610
[ $compiler == dart2js && $runtime != d8 ]
-error_exit_at_spawn_test: Skip # Issue 23876
error_at_spawn_test: Skip # Issue 23876
+error_exit_at_spawn_test: Skip # Issue 23876
exit_at_spawn_test: Skip # Issue 23876
message4_test: Skip # Issue 30247
-[ $compiler == dart2js && $jscl ]
-spawn_uri_test: SkipByDesign # Loading another file is not supported in JS shell
+[ $compiler == dart2js && $runtime == jsshell ]
+pause_test: Fail, OK # non-zero timer not supported.
+timer_isolate_test: Fail, OK # Needs Timer to run.
-[ ($compiler == dart2js && $fast_startup) ]
+[ $compiler == dart2js && $runtime == safari ]
+cross_isolate_message_test: Skip # Issue 12627
+message_test: Skip # Issue 12627
+
+[ $compiler == dart2js && $runtime == safarimobilesim ]
+compile_time_error_test/none: Pass, Slow
+
+[ $compiler == dart2js && !$browser && $fast_startup ]
+isolate_current_test: Fail # please triage
+
+[ $compiler == dart2js && $fast_startup ]
browser/compute_this_script_browser_test: Fail # mirrors not supported
browser/typed_data_message_test: Fail # mirrors not supported
count_test: Fail # mirrors not supported
@@ -89,46 +97,97 @@
static_function_test: Fail # mirrors not supported
unresolved_ports_test: Fail # mirrors not supported
-[ $compiler == dart2js && $fast_startup && ! $browser ]
-isolate_current_test: Fail # please triage
+[ $compiler == dart2js && $jscl ]
+browser/*: SkipByDesign # Browser specific tests
+spawn_uri_test: SkipByDesign # Loading another file is not supported in JS shell
-[ $csp ]
-deferred_in_isolate2_test: Skip # Issue 16898. Deferred loading does not work from an isolate in CSP-mode
-browser/package_resolve_browser_hook_test: SkipByDesign # Test written in a way that violates CSP.
-
-[ $compiler == dart2js && $runtime == chrome ]
-function_send_test: Skip # Crashes Chrome 62: https://bugs.chromium.org/p/chromium/issues/detail?id=775506
-
-[ $compiler == dart2js && $runtime == chromeOnAndroid ]
-isolate_stress_test: Pass, Slow # TODO(kasperl): Please triage.
-
-mandel_isolate_test: Pass, Timeout # TODO(kasperl): Please triage.
-
-[ $compiler == dart2js && ( $runtime == ff || $runtime == safari || $runtime == drt || $runtime == chrome || $runtime == chromeOnAndroid) ]
+[ $compiler == dart2js && ($runtime == chrome || $runtime == chromeOnAndroid || $runtime == drt || $runtime == ff || $runtime == safari) ]
isolate_stress_test: Pass, Slow # Issue 10697
-[ $compiler == dart2js && $runtime == chromeOnAndroid ]
-unresolved_ports_test: Pass, Timeout # Issue 15610
+[ $compiler == dartk && $strong ]
+checked_test: RuntimeError
+count_test: CompileTimeError
+cross_isolate_message_test: CompileTimeError
+error_at_spawnuri_test: RuntimeError
+error_exit_at_spawnuri_test: RuntimeError
+exit_at_spawnuri_test: RuntimeError
+function_send1_test: CompileTimeError
+function_send_test: CompileTimeError
+handle_error2_test: CompileTimeError
+handle_error3_test: CompileTimeError
+illegal_msg_function_test: CompileTimeError
+illegal_msg_mirror_test: CompileTimeError
+isolate_complex_messages_test: CompileTimeError
+isolate_current_test: CompileTimeError
+issue_21398_parent_isolate1_test: RuntimeError
+issue_21398_parent_isolate_test: RuntimeError
+issue_22778_test: Crash
+issue_24243_parent_isolate_test: RuntimeError
+kill_self_synchronously_test: RuntimeError
+kill_test: CompileTimeError
+mandel_isolate_test: CompileTimeError
+message2_test: CompileTimeError
+message3_test/byteBuffer: CompileTimeError
+message3_test/constInstance: CompileTimeError
+message3_test/constList: CompileTimeError
+message3_test/constList_identical: CompileTimeError
+message3_test/constMap: CompileTimeError
+message3_test/fun: CompileTimeError
+message3_test/int32x4: CompileTimeError
+message3_test/none: CompileTimeError
+message_test: CompileTimeError
+mint_maker_test: CompileTimeError
+nested_spawn2_test: CompileTimeError
+nested_spawn_test: CompileTimeError
+raw_port_test: CompileTimeError
+request_reply_test: CompileTimeError
+spawn_function_custom_class_test: CompileTimeError
+spawn_function_test: CompileTimeError
+spawn_uri_exported_main_test: RuntimeError
+spawn_uri_multi_test/none: CompileTimeError
+spawn_uri_nested_vm_test: CompileTimeError
+spawn_uri_test: CompileTimeError
+spawn_uri_vm_test: CompileTimeError
+static_function_test: CompileTimeError
+timer_isolate_test: CompileTimeError
+typed_message_test: CompileTimeError
+unresolved_ports_test: CompileTimeError
-[ $jscl ]
-spawn_uri_multi_test/none: RuntimeError # Issue 13544
+[ $compiler == none && $runtime == vm && $system == fuchsia ]
+*: Skip # Not yet triaged.
-[ $compiler == dart2analyzer ]
-browser/typed_data_message_test: StaticWarning
-mint_maker_test: StaticWarning
+[ $compiler == none && ($runtime == flutter || $runtime == vm) ]
+scenarios/short_package/short_package_test: Fail, OK # We do not plan to support the tested behavior anyway.
-[ $compiler == dart2analyzer && $builder_tag == strong ]
-*: Skip # Issue 28649
+[ $mode == debug && ($compiler == dartk || $compiler == dartkp) ]
+static_function_test: Skip # Flaky (https://github.com/dart-lang/sdk/issues/30063).
-[ $compiler == none && ($runtime == vm || $runtime == flutter) ]
-scenarios/short_package/short_package_test: Fail, OK # We do not plan to support the tested behavior anyway.
+[ $compiler == app_jit || $compiler == none || $compiler == precompiler ]
+compile_time_error_test/01: Skip # Issue 12587
+kill3_test: Pass, Fail # Bad test: expects total message order
+message3_test/int32x4: Fail, Crash, Timeout # Issue 21818
+ping_pause_test: Skip # Resolve test issues
+ping_test: Skip # Resolve test issues
+
+[ $compiler == app_jit || $mode == product || $runtime != vm ]
+checked_test: Skip # Unsupported.
+
+[ $compiler == dartk || $compiler == dartkp ]
+compile_time_error_test/01: MissingCompileTimeError
+deferred_in_isolate2_test: Skip # Timeout. Deferred loading kernel issue 28335.
+deferred_in_isolate_test: Skip # Timeout. Deferred loading kernel issue 28335.
+issue_21398_parent_isolate2_test/01: Skip # Timeout. Deferred loading kernel issue 28335.
+message3_test/int32x4: Crash
+ping_pause_test: Pass, Timeout
+spawn_function_custom_class_test: Pass, Timeout
+spawn_uri_nested_vm_test: Pass, Timeout
[ $compiler != none || $runtime != vm ]
-package_root_test: SkipByDesign # Uses Isolate.packageRoot
-package_config_test: SkipByDesign # Uses Isolate.packageConfig
-package_resolve_test: SkipByDesign # Uses Isolate.resolvePackageUri
-spawn_uri_fail_test: SkipByDesign # Uses dart:io.
-scenarios/*: SkipByDesign # Use automatic package resolution, spawnFunction and .dart URIs.
+package_config_test: SkipByDesign # Uses Isolate.packageConfig
+package_resolve_test: SkipByDesign # Uses Isolate.resolvePackageUri
+package_root_test: SkipByDesign # Uses Isolate.packageRoot
+scenarios/*: SkipByDesign # Use automatic package resolution, spawnFunction and .dart URIs.
+spawn_uri_fail_test: SkipByDesign # Uses dart:io.
[ $compiler == precompiler || $runtime == flutter ]
count_test: SkipByDesign # Imports dart:mirrors
@@ -185,34 +244,16 @@
static_function_test: Skip # Isolate.spawnUri
unresolved_ports_test: Skip # Isolate.spawnUri
-[ $mode == product ]
-issue_24243_parent_isolate_test: Skip # Requires checked mode
+[ $runtime == dart_precompiled || $runtime == flutter || $runtime == vm ]
+browser/*: SkipByDesign # Browser specific tests
+isolate_stress_test: Skip # Issue 12588: Uses dart:html. This should be able to pass when we have wrapper-less tests.
+stacktrace_message_test: RuntimeError # Fails to send stacktrace object.
[ $hot_reload || $hot_reload_rollback ]
-function_send_test: Pass, Fail # Closure identity
-message3_test/fun: Pass, Fail # Closure identity
-deferred_in_isolate_test: Crash # Requires deferred libraries
deferred_in_isolate2_test: Crash # Requires deferred libraries
+deferred_in_isolate_test: Crash # Requires deferred libraries
+function_send_test: Pass, Fail # Closure identity
issue_21398_parent_isolate2_test: Crash # Requires deferred libraries
+message3_test/fun: Pass, Fail # Closure identity
spawn_uri_nested_vm_test: Pass, Crash # Issue 28192
-[ ($compiler == dartk || $compiler == dartkp) ]
-compile_time_error_test/01: MissingCompileTimeError
-message3_test/int32x4: Crash
-ping_pause_test: Pass, Timeout
-spawn_function_custom_class_test: Pass, Timeout
-spawn_uri_nested_vm_test: Pass, Timeout
-
-[ ($compiler == dartk || $compiler == dartkp) && $mode == debug ]
-static_function_test: Skip # Flaky (https://github.com/dart-lang/sdk/issues/30063).
-
-[ $runtime == flutter ]
-issue_21398_parent_isolate2_test/01: Skip # Flutter Issue 9114
-simple_message_test/01: Skip # Flutter Issue 9114
-isolate_import_test/01: Skip # Flutter Issue 9114
-
-# Deferred loading kernel issue 28335.
-[ ($compiler == dartk || $compiler == dartkp) ]
-deferred_in_isolate2_test: Skip # Timeout. Deferred loading kernel issue 28335.
-deferred_in_isolate_test: Skip # Timeout. Deferred loading kernel issue 28335.
-issue_21398_parent_isolate2_test/01: Skip # Timeout. Deferred loading kernel issue 28335.
diff --git a/tests/kernel/kernel.status b/tests/kernel/kernel.status
index 38ca3b0..3f36f5d 100644
--- a/tests/kernel/kernel.status
+++ b/tests/kernel/kernel.status
@@ -1,22 +1,26 @@
# Copyright (c) 2016, 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.
-
unsorted/invocation_errors_test: RuntimeError
+[ $compiler == dart2js ]
+unsorted/invocation_errors_test: Pass
+unsorted/loop_test: Skip
+unsorted/nsm_dispatcher_test: Skip # The test uses Symbol without MirrorsUsed
+unsorted/super_initializer_test: Skip
+unsorted/super_mixin_test: CompileTimeError
+
+[ $builder_tag == strong && $compiler == dart2analyzer ]
+*: Skip # Issue 28649
+
[ $compiler == dart2analyzer && $runtime == none ]
unsorted/invocation_errors_test: StaticWarning
unsorted/super_mixin_test: CompileTimeError
-[ $compiler == dart2analyzer && $builder_tag == strong ]
-*: Skip # Issue 28649
-
-[ $compiler == dart2js ]
-unsorted/invocation_errors_test: Pass
-unsorted/nsm_dispatcher_test: Skip # The test uses Symbol without MirrorsUsed
-unsorted/super_initializer_test: Skip
-unsorted/super_mixin_test: CompileTimeError
-unsorted/loop_test: Skip
+[ $compiler == dartk && $strong ]
+unsorted/loop_test: RuntimeError
+unsorted/nsm_dispatcher_test: CompileTimeError
+unsorted/types_test: RuntimeError
[ $runtime == dart_precompiled && $minified ]
-unsorted/symbol_literal_test: Skip # Expects unobfuscated Symbol.toString.
+unsorted/symbol_literal_test: Skip # Expects unobfuscated Symbol.toString.
diff --git a/tests/language/built_in_identifier_illegal_test.dart b/tests/language/built_in_identifier_illegal_test.dart
index 36cdeec..d3bb320 100644
--- a/tests/language/built_in_identifier_illegal_test.dart
+++ b/tests/language/built_in_identifier_illegal_test.dart
@@ -4,20 +4,20 @@
// Check that we cannot use a pseudo keyword at the class level code.
// Pseudo keywords are not allowed to be used as class names.
-class abstract { } // //# 01: compile-time error
-class as { } // //# 19: compile-time error
+class abstract { } // //# 01: syntax error
+class as { } // //# 19: syntax error
class dynamic { } // //# 04: compile-time error
-class export { } // //# 17: compile-time error
-class external { } // //# 20: compile-time error
-class factory { } // //# 05: compile-time error
-class get { } // //# 06: compile-time error
-class implements { } // //# 07: compile-time error
-class import { } // //# 08: compile-time error
-class library { } // //# 10: compile-time error
-class operator { } // //# 12: compile-time error
-class part { } // //# 18: compile-time error
-class set { } // //# 13: compile-time error
-class static { } // //# 15: compile-time error
-class typedef { } // //# 16: compile-time error
+class export { } // //# 17: syntax error
+class external { } // //# 20: syntax error
+class factory { } // //# 05: syntax error
+class get { } // //# 06: syntax error
+class implements { } // //# 07: syntax error
+class import { } // //# 08: syntax error
+class library { } // //# 10: syntax error
+class operator { } // //# 12: syntax error
+class part { } // //# 18: syntax error
+class set { } // //# 13: syntax error
+class static { } // //# 15: syntax error
+class typedef { } // //# 16: syntax error
main() {}
diff --git a/tests/language/generic_function_typedef2_test.dart b/tests/language/generic_function_typedef2_test.dart
index 4e322eb..ea58c89 100644
--- a/tests/language/generic_function_typedef2_test.dart
+++ b/tests/language/generic_function_typedef2_test.dart
@@ -19,16 +19,16 @@
));
typedef L = Function(
{
- /* // //# 05: compile-time error
+ /* // //# 05: syntax error
bool
- */ // //# 05: compile-time error
+ */ // //# 05: continued
x});
typedef M = Function(
{
- /* // //# 06: compile-time error
+ /* // //# 06: syntax error
bool
- */ // //# 06: compile-time error
+ */ // //# 06: continued
int});
foo({bool int}) {}
diff --git a/tests/language/language.status b/tests/language/language.status
index 987c8d0..fcc41e1 100644
--- a/tests/language/language.status
+++ b/tests/language/language.status
@@ -1,117 +1,37 @@
# 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.
-
# This directory contains tests that are intended to show the
# current state of the language.
-[ $strong ]
-*: SkipByDesign # tests/language_2 has the strong mode versions of these tests.
+[ $compiler == app_jit ]
+deferred_inheritance_constraints_test/redirecting_constructor: Crash
-[ $compiler == precompiler && $runtime == dart_precompiled ]
-stacktrace_demangle_ctors_test: RuntimeError
+[ $compiler == dart2analyzer ]
+config_import_corelib_test: StaticWarning, OK
+vm/regress_27201_test: SkipByDesign # Loads bad library, so will always crash.
-[ $compiler == precompiler && $runtime == dart_precompiled && $checked ]
-assertion_initializer_const_error2_test/cc02: Crash
+[ $compiler == precompiler ]
+deferred_global_test: Fail # Deferred loading happens eagerly. Issue #27587
+deopt_inlined_function_lazy_test: Skip # Incompatible flag: --deoptimize-alot
+implicit_closure_test: Skip # Incompatible flag: --use_slow_path
+regress_23408_test: RuntimeError
+vm/regress_27201_test: Fail # Deferred loading happens eagerly. Issue #27587
-[$compiler == none && $runtime == vm && !$checked]
-assertion_initializer_const_error_test/01: MissingCompileTimeError
-assertion_initializer_const_function_error_test/01: MissingCompileTimeError
-
-[$compiler == app_jit && $runtime == vm && !$checked]
-assertion_initializer_const_error_test/01: MissingCompileTimeError
-assertion_initializer_const_function_error_test/01: MissingCompileTimeError
-
-[ ($runtime == vm || $runtime == flutter || $runtime == dart_precompiled) && $compiler != dartk && $compiler != dartkp ]
-abstract_beats_arguments2_test/01: Crash # Issue 29171
-
-# These test entries will be valid for vm (with and without kernel).
-[ $compiler == none || $compiler == app_jit || $compiler == dartk || $runtime == dart_precompiled ]
-async_star_cancel_while_paused_test: RuntimeError
-async_star_pause_test: Fail, OK # This is OK for now, but we may want to change the semantics to match the test.
-
-mixin_illegal_super_use_test: Skip # Issues 24478 and 23773, # These tests are skipped in the VM because it has "--supermixin" functionality enabled unconditionally. The tests should be removed once the same is true for analyzer (#24478) and dart2js (#23773)
-mixin_illegal_superclass_test: Skip # Issues 24478 and 23773, # These tests are skipped in the VM because it has "--supermixin" functionality enabled unconditionally. The tests should be removed once the same is true for analyzer (#24478) and dart2js (#23773)
-
-constructor5_test: Fail # Issue 6422, These bugs refer currently ongoing language discussions.
-constructor6_test: Fail # Issue 6422, These bugs refer currently ongoing language discussions.
-
-generalized_void_syntax_test: CompileTimeError
-generic_methods_type_expression_test: RuntimeError # Issue 25869 / 27460
-
-super_test: Fail, OK # Failures related to super call in ctor initializer list
-final_field_initialization_order_test: Fail, OK # Failures related to super call in ctor initializer list
-field_initialization_order_test: Fail, OK # Failures related to super call in ctor initializer list
-example_constructor_test: Fail, OK # Failures related to super call in ctor initializer list
-constructor3_test: Fail, OK # Failures related to super call in ctor initializer list
-constructor2_test: Fail, OK # Failures related to super call in ctor initializer list
-
-duplicate_export_negative_test: Fail # Issue 6134
-
-cyclic_type_test/02: Fail, OK # Non-contractive types are not supported in the vm.
-cyclic_type_test/04: Fail, OK # Non-contractive types are not supported in the vm.
-cyclic_type2_test: Fail, OK # Non-contractive types are not supported in the vm.
-least_upper_bound_expansive_test/*: Fail, OK # Non-contractive types are not supported in the vm.
-
-vm/regress_29145_test: Skip # Issue 29145
-
-no_main_test/01: Skip # Skipped temporaril until Issue 29895 is fixed.
-main_not_a_function_test/01: Skip # Skipped temporaril until Issue 29895 is fixed.
-
-[ $compiler == none || $compiler == precompiler || $compiler == app_jit ]
-dynamic_prefix_core_test/01: RuntimeError # Issue 12478
-multiline_strings_test: Fail # Issue 23020
-
-deferred_redirecting_factory_test: Fail, Crash # Issue 23408
-redirecting_constructor_initializer_test: RuntimeError # Issue 23488
-
-async_star_regression_2238_test: CompileTimeError
-
-[ ($compiler == none || $compiler == precompiler || $compiler == app_jit) && $checked ]
-generic_methods_function_type_test: Pass # Issue 25869, These generic functions tests pass for the wrong reason in checked mode, because the parsed type parameters are mapped to dynamic type.
-generic_methods_test: Pass # Issue 25869, These generic functions tests pass for the wrong reason in checked mode, because the parsed type parameters are mapped to dynamic type.
-generic_methods_new_test: Pass # Issue 25869, These generic functions tests pass for the wrong reason in checked mode, because the parsed type parameters are mapped to dynamic type.
-generic_local_functions_test: Pass # Issue 25869, These generic functions tests pass for the wrong reason in checked mode, because the parsed type parameters are mapped to dynamic type.
-generic_functions_test: Pass # Issue 25869, These generic functions tests pass for the wrong reason in checked mode, because the parsed type parameters are mapped to dynamic type.
-generic_methods_generic_function_parameter_test: Pass # Issue 25869, These generic functions tests pass for the wrong reason in checked mode, because the parsed type parameters are mapped to dynamic type.
-
-[ ($compiler == none || $compiler == precompiler || $compiler == app_jit) && ($runtime == vm || $runtime == dart_precompiled || $runtime == flutter) ]
-class_keyword_test/02: MissingCompileTimeError # Issue 13627
-unicode_bom_test: Fail # Issue 16067
-vm/debug_break_enabled_vm_test/01: Crash, OK # Expected to hit breakpoint.
-
-[ ($compiler == none || $compiler == precompiler || $compiler == app_jit) && $checked ]
-type_variable_bounds4_test/01: Fail # Issue 14006
-
-[ ($compiler == none || $compiler == precompiler || $compiler == app_jit) && ($runtime == vm || $runtime == dart_precompiled || $runtime == flutter) ]
-export_ambiguous_main_negative_test: Fail # Issue 14763
-
-[ ($compiler == none || $compiler == precompiler || $compiler == app_jit || $compiler == dartk || $compiler == dartkp) && (($runtime == vm || $runtime == dart_precompiled) || $runtime == flutter) ]
-dynamic_prefix_core_test/none: Fail # Issue 12478
-
-[ ($runtime == vm || $runtime == flutter || $runtime == dart_precompiled) && $arch == arm64 ]
-large_class_declaration_test: SkipSlow # Uses too much memory.
-closure_cycles_test: Pass, Slow
-
-[ $runtime == vm || $runtime == dart_precompiled ]
-vm/load_to_load_unaligned_forwarding_vm_test: Pass, Crash # Unaligned offset. Issue 22151
-vm/unaligned_float_access_literal_index_test: Pass, Crash # Unaligned offset. Issue 22151
-
-[ ($compiler == none || $compiler == precompiler || $compiler == app_jit) && (($runtime == vm || $runtime == dart_precompiled)) && $arch == ia32 ]
-vm/regress_24517_test: Pass, Fail # Issue 24517.
-
-[ $compiler == precompiler && $runtime == dart_precompiled ]
-vm/regress_27671_test: Skip # Unsupported
-export_double_same_main_test: Skip # Issue 29895
-export_ambiguous_main_negative_test: Skip # Issue 29895
-vm/optimized_stacktrace_test: Skip # Issue 30198
-
-[ $compiler == precompiler && $runtime == dart_precompiled && !$checked]
-assertion_initializer_const_error_test/01: MissingCompileTimeError
-assertion_initializer_const_function_error_test/01: MissingCompileTimeError
-
-[ $compiler == precompiler && $runtime == dart_precompiled && $mode == debug ]
-regress_29025_test: Crash # Issue dartbug.com/29331
+[ $mode == product ]
+assertion_test: SkipByDesign # Requires checked mode.
+generic_test: SkipByDesign # Requires checked mode.
+issue13474_test: SkipByDesign # Requires checked mode.
+list_literal4_test: SkipByDesign # Requires checked mode.
+map_literal4_test: SkipByDesign # Requires checked mode.
+named_parameters_type_test/01: SkipByDesign # Requires checked mode.
+named_parameters_type_test/02: SkipByDesign # Requires checked mode.
+named_parameters_type_test/03: SkipByDesign # Requires checked mode.
+positional_parameters_type_test/01: SkipByDesign # Requires checked mode.
+positional_parameters_type_test/02: SkipByDesign # Requires checked mode.
+stacktrace_demangle_ctors_test: SkipByDesign # Names are not scrubbed.
+type_checks_in_factory_method_test: SkipByDesign # Requires checked mode.
+vm/type_vm_test: Fail, OK # Expects exact type name.
[ $runtime == dart_precompiled ]
const_evaluation_test: SkipByDesign # Imports dart:mirrors
@@ -123,6 +43,7 @@
invocation_mirror_invoke_on2_test: SkipByDesign # Imports dart:mirrors
invocation_mirror_invoke_on_test: SkipByDesign # Imports dart:mirrors
issue21079_test: SkipByDesign # Imports dart:mirrors
+library_env_test/has_mirror_support: RuntimeError, OK # The test is supposed to fail.
many_overridden_no_such_method_test: SkipByDesign # Imports dart:mirrors
no_such_method_test: SkipByDesign # Imports dart:mirrors
null_test/none: SkipByDesign # Imports dart:mirrors
@@ -131,78 +52,422 @@
regress_13462_0_test: SkipByDesign # Imports dart:mirrors
regress_13462_1_test: SkipByDesign # Imports dart:mirrors
regress_18535_test: SkipByDesign # Imports dart:mirrors
+regress_28255_test: SkipByDesign # Imports dart:mirrors
super_call4_test: SkipByDesign # Imports dart:mirrors
super_getter_setter_test: SkipByDesign # Imports dart:mirrors
vm/reflect_core_vm_test: SkipByDesign # Imports dart:mirrors
-regress_28255_test: SkipByDesign # Imports dart:mirrors
-[ $runtime == dart_precompiled || $mode == product ]
-vm/causal_async_exception_stack_test: SkipByDesign # Causal async stacks are not supported in product mode
-vm/causal_async_exception_stack2_test: SkipByDesign # Causal async stacks are not supported in product mode
+# flutter uses --error_on_bad_type, --error_on_bad_override
+# and --await_is_keyword so # the following tests fail with
+# a Compilation Error
+[ $runtime == flutter ]
+async_await_syntax_test/a05c: CompileTimeError
+async_await_syntax_test/a05e: CompileTimeError
+async_await_syntax_test/d08c: CompileTimeError
+async_await_test: CompileTimeError
+async_return_types_test/nestedFuture: Skip # Flutter Issue 9110
+async_return_types_test/return_value_sync_star: Skip # Flutter Issue 9110
+async_return_types_test/tooManyTypeParameters: CompileTimeError
+async_return_types_test/wrongReturnType: Skip # Flutter Issue 9110
+async_return_types_test/wrongTypeParameter: Skip # Flutter Issue 9110
+async_star_cancel_while_paused_test: Skip # Flutter Issue 9110
+async_star_no_cancel_test: Skip # Flutter Issue 9110
+asyncstar_yield_test: Skip # Flutter Issue 9110
+await_backwards_compatibility_test/none: CompileTimeError
+await_for_cancel_test: Skip # Flutter Issue 9110
+await_for_test: Skip # Flutter Issue 9110
+await_test: CompileTimeError
+bad_override_test/06: CompileTimeError
+call_constructor_on_unresolvable_class_test/01: CompileTimeError
+call_constructor_on_unresolvable_class_test/02: CompileTimeError
+call_constructor_on_unresolvable_class_test/03: CompileTimeError
+call_constructor_on_unresolvable_class_test/07: CompileTimeError
+check_method_override_test/01: CompileTimeError
+check_method_override_test/02: CompileTimeError
+class_keyword_test/02: CompileTimeError
+class_override_test/00: CompileTimeError
+conditional_import_string_test: CompileTimeError
+conditional_import_test: CompileTimeError
+config_import_test: RuntimeError # Flutter Issue 9110
+const_evaluation_test/01: CompileTimeError
+const_evaluation_test/none: CompileTimeError
+const_types_test/01: CompileTimeError
+const_types_test/02: CompileTimeError
+const_types_test/03: CompileTimeError
+const_types_test/04: CompileTimeError
+const_types_test/05: CompileTimeError
+const_types_test/06: CompileTimeError
+const_types_test/13: CompileTimeError
+const_types_test/35: CompileTimeError
+const_types_test/40: CompileTimeError
+default_factory_test/01: CompileTimeError
+deferred_closurize_load_library_test: Skip # Timeout, deferred loading is not supported by Flutter
+deferred_constant_list_test: Skip # Timeout, deferred loading is not supported by Flutter
+deferred_constraints_constants_test/none: CompileTimeError
+deferred_constraints_constants_test/reference_after_load: CompileTimeError
+deferred_constraints_type_annotation_test/as_operation: CompileTimeError
+deferred_constraints_type_annotation_test/catch_check: CompileTimeError
+deferred_constraints_type_annotation_test/is_check: CompileTimeError
+deferred_constraints_type_annotation_test/new: CompileTimeError
+deferred_constraints_type_annotation_test/new_before_load: CompileTimeError
+deferred_constraints_type_annotation_test/new_generic1: CompileTimeError
+deferred_constraints_type_annotation_test/new_generic2: CompileTimeError
+deferred_constraints_type_annotation_test/new_generic3: CompileTimeError
+deferred_constraints_type_annotation_test/none: Skip # Timeout, deferred loading is not supported by Flutter
+deferred_constraints_type_annotation_test/static_method: Skip # Timeout, deferred loading is not supported by Flutter
+deferred_constraints_type_annotation_test/type_annotation_generic2: CompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_generic3: CompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_null: CompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_top_level: CompileTimeError
+deferred_global_test: Skip # Timeout, deferred loading is not supported by Flutter
+deferred_inheritance_constraints_test/redirecting_constructor: CompileTimeError
+deferred_mixin_test: CompileTimeError
+deferred_no_such_method_test: CompileTimeError
+deferred_not_loaded_check_test: CompileTimeError
+deferred_redirecting_factory_test: Skip # Timeout, deferred loading is not supported by Flutter
+deferred_shadow_load_library_test: Skip # Timeout, deferred loading is not supported by Flutter
+deferred_shared_and_unshared_classes_test: Skip # Timeout, deferred loading is not supported by Flutter
+deferred_static_seperate_test: CompileTimeError
+deferred_super_dependency_test/01: CompileTimeError
+deferred_type_dependency_test/as: Skip # Timeout, deferred loading is not supported by Flutter
+deferred_type_dependency_test/is: Skip # Timeout, deferred loading is not supported by Flutter
+deferred_type_dependency_test/none: Skip # Timeout, deferred loading is not supported by Flutter
+deferred_type_dependency_test/type_annotation: Skip # Timeout, deferred loading is not supported by Flutter
+enum_mirror_test: CompileTimeError
+f_bounded_quantification5_test: CompileTimeError
+f_bounded_quantification_test/01: CompileTimeError
+f_bounded_quantification_test/02: CompileTimeError
+factory2_test: CompileTimeError
+factory4_test: CompileTimeError
+factory6_test/00: CompileTimeError
+field_increment_bailout_test: CompileTimeError
+field_override_test/01: CompileTimeError
+function_malformed_result_type_test: CompileTimeError
+generic_function_typedef2_test/04: CompileTimeError
+instance_creation_in_function_annotation_test: CompileTimeError
+instanceof3_test: CompileTimeError
+internal_library_test/01: MissingCompileTimeError
+internal_library_test/01: CompileTimeError
+internal_library_test/02: CompileTimeError
+internal_library_test/02: MissingCompileTimeError
+invocation_mirror2_test: CompileTimeError
+invocation_mirror_invoke_on2_test: CompileTimeError
+invocation_mirror_invoke_on_test: CompileTimeError
+is_malformed_type_test/94: CompileTimeError
+is_malformed_type_test/95: CompileTimeError
+is_malformed_type_test/96: CompileTimeError
+is_malformed_type_test/97: CompileTimeError
+is_malformed_type_test/98: CompileTimeError
+is_malformed_type_test/99: CompileTimeError
+is_not_class2_test: RuntimeError
+isnot_malformed_type_test: RuntimeError
+issue21079_test: CompileTimeError
+issue_25671a_test/01: CompileTimeError
+issue_25671b_test/01: CompileTimeError
+library_env_test/has_mirror_support: RuntimeError, OK # No mirrors support in Flutter.
+library_env_test/has_no_mirror_support: Pass # No mirrors support in Flutter.
+list_literal_syntax_test/01: CompileTimeError
+list_literal_syntax_test/02: CompileTimeError
+list_literal_syntax_test/03: CompileTimeError
+malbounded_instantiation_test/01: CompileTimeError
+malbounded_redirecting_factory2_test/01: CompileTimeError
+malbounded_redirecting_factory2_test/none: CompileTimeError
+malbounded_redirecting_factory_test/01: CompileTimeError
+malbounded_redirecting_factory_test/none: CompileTimeError
+malbounded_type_cast_test: CompileTimeError
+malbounded_type_literal_test: CompileTimeError
+malbounded_type_test_test/02: CompileTimeError
+malformed2_test/00: CompileTimeError
+malformed_inheritance_test/02: CompileTimeError
+malformed_inheritance_test/04: CompileTimeError
+malformed_inheritance_test/06: CompileTimeError
+malformed_test/none: CompileTimeError
+malformed_type_test: CompileTimeError
+many_overridden_no_such_method_test: CompileTimeError
+method_override2_test/01: CompileTimeError
+method_override3_test/00: CompileTimeError
+method_override3_test/01: CompileTimeError
+method_override3_test/02: CompileTimeError
+method_override4_test: CompileTimeError
+method_override5_test: CompileTimeError
+method_override6_test: CompileTimeError
+mixin_invalid_bound2_test/01: CompileTimeError
+mixin_invalid_bound2_test/04: CompileTimeError
+mixin_invalid_bound2_test/07: CompileTimeError
+mixin_invalid_bound2_test/none: CompileTimeError
+mixin_invalid_bound_test/01: CompileTimeError
+mixin_invalid_bound_test/03: CompileTimeError
+mixin_invalid_bound_test/05: CompileTimeError
+mixin_invalid_bound_test/none: CompileTimeError
+mixin_super_bound2_test/01: CompileTimeError
+mixin_super_bound_test: CompileTimeError
+mixin_type_parameters_errors_test/01: CompileTimeError
+mixin_type_parameters_errors_test/02: CompileTimeError
+mixin_type_parameters_errors_test/03: CompileTimeError
+mixin_type_parameters_errors_test/04: CompileTimeError
+mixin_type_parameters_errors_test/05: CompileTimeError
+new_expression_type_args_test/02: CompileTimeError
+no_such_method_test: CompileTimeError
+non_parameterized_factory2_test: CompileTimeError
+non_parameterized_factory_test: CompileTimeError
+null_test/none: CompileTimeError
+on_catch_malformed_type_test: CompileTimeError
+overridden_no_such_method_test: CompileTimeError
+override_inheritance_field_test/05: CompileTimeError
+override_inheritance_field_test/06: CompileTimeError
+override_inheritance_field_test/07: CompileTimeError
+override_inheritance_field_test/08: CompileTimeError
+override_inheritance_field_test/09: CompileTimeError
+override_inheritance_field_test/10: CompileTimeError
+override_inheritance_field_test/11: CompileTimeError
+override_inheritance_field_test/28: CompileTimeError
+override_inheritance_field_test/29: CompileTimeError
+override_inheritance_field_test/30: CompileTimeError
+override_inheritance_field_test/31: CompileTimeError
+override_inheritance_field_test/32: CompileTimeError
+override_inheritance_field_test/33: CompileTimeError
+override_inheritance_field_test/33a: CompileTimeError
+override_inheritance_field_test/34: CompileTimeError
+override_inheritance_field_test/44: CompileTimeError
+override_inheritance_field_test/45: CompileTimeError
+override_inheritance_field_test/47: CompileTimeError
+override_inheritance_field_test/48: CompileTimeError
+override_inheritance_field_test/53: CompileTimeError
+override_inheritance_field_test/54: CompileTimeError
+override_inheritance_method_test/04: CompileTimeError
+override_inheritance_method_test/05: CompileTimeError
+override_inheritance_method_test/06: CompileTimeError
+override_inheritance_method_test/11: CompileTimeError
+override_inheritance_method_test/12: CompileTimeError
+override_inheritance_method_test/13: CompileTimeError
+override_inheritance_method_test/14: CompileTimeError
+override_inheritance_method_test/19: CompileTimeError
+override_inheritance_method_test/20: CompileTimeError
+override_inheritance_method_test/21: CompileTimeError
+override_inheritance_method_test/27: CompileTimeError
+override_inheritance_method_test/28: CompileTimeError
+override_inheritance_method_test/29: CompileTimeError
+override_inheritance_method_test/30: CompileTimeError
+override_inheritance_method_test/31: CompileTimeError
+override_inheritance_method_test/32: CompileTimeError
+override_inheritance_method_test/33: CompileTimeError
+prefix16_test: CompileTimeError
+prefix22_test: CompileTimeError
+private_access_test/03: CompileTimeError
+private_access_test/04: CompileTimeError
+redirecting_factory_incompatible_signature_test: CompileTimeError
+redirecting_factory_reflection_test: CompileTimeError
+regress_12561_test: CompileTimeError
+regress_13462_0_test: CompileTimeError
+regress_13462_1_test: CompileTimeError
+regress_18535_test: CompileTimeError
+regress_22438_test: CompileTimeError
+regress_23408_test: CompileTimeError
+regress_28255_test: CompileTimeError
+static_initializer_type_error_test: CompileTimeError
+super_call4_test: CompileTimeError
+super_getter_setter_test: CompileTimeError
+try_catch_on_syntax_test/07: CompileTimeError
+try_catch_syntax_test/08: CompileTimeError
+type_parameter_test/none: CompileTimeError
+type_variable_bounds_test/00: CompileTimeError
+type_variable_bounds_test/06: CompileTimeError
+type_variable_bounds_test/07: CompileTimeError
+type_variable_bounds_test/08: CompileTimeError
+type_variable_bounds_test/09: CompileTimeError
+type_variable_bounds_test/10: CompileTimeError
+type_variable_scope2_test: CompileTimeError
+type_variable_scope_test/00: CompileTimeError
+type_variable_scope_test/01: CompileTimeError
+type_variable_scope_test/02: CompileTimeError
+type_variable_scope_test/03: CompileTimeError
+type_variable_scope_test/04: CompileTimeError
+type_variable_scope_test/05: CompileTimeError
+type_variable_scope_test/none: CompileTimeError
+unicode_bom_test: CompileTimeError
+vm/debug_break_enabled_vm_test/01: CompileTimeError
+vm/debug_break_enabled_vm_test/none: CompileTimeError
+vm/no_such_method_error_message_callable_vm_test: RuntimeError # Flutter Issue 9110
+vm/reflect_core_vm_test: CompileTimeError
+vm/regress_27201_test: Fail # Flutter Issue 9110
+wrong_number_type_arguments_test/00: CompileTimeError
+wrong_number_type_arguments_test/01: CompileTimeError
+wrong_number_type_arguments_test/02: CompileTimeError
-[ $mode == product || $compiler == app_jit || $compiler == precompiler ]
+[ $strong ]
+*: SkipByDesign # tests/language_2 has the strong mode versions of these tests.
+
+[ $arch == arm64 && ($runtime == dart_precompiled || $runtime == flutter || $runtime == vm) ]
+closure_cycles_test: Pass, Slow
+large_class_declaration_test: SkipSlow # Uses too much memory.
+
+[ $arch == ia32 && $compiler == none && $runtime == vm && $system == windows ]
+vm/optimized_stacktrace_test: Pass, Crash # Issue 28276
+
+[ $arch == ia32 && $mode == release && $runtime == vm ]
+deep_nesting1_negative_test: Crash, Pass # Issue 31496
+
+[ $arch == ia32 && ($compiler == app_jit || $compiler == none || $compiler == precompiler) && ($runtime == dart_precompiled || $runtime == vm) ]
+vm/regress_24517_test: Pass, Fail # Issue 24517.
+
+[ $compiler == app_jit && $runtime == vm && !$checked ]
+assertion_initializer_const_error_test/01: MissingCompileTimeError
+assertion_initializer_const_function_error_test/01: MissingCompileTimeError
+
+[ $compiler != dartk && $compiler != dartkp && ($runtime == dart_precompiled || $runtime == flutter || $runtime == vm) ]
+abstract_beats_arguments2_test/01: Crash # Issue 29171
+
+[ $compiler == none && $runtime == vm && $system == fuchsia ]
+async_await_test: RuntimeError # Use package:unittest
+async_star_test: RuntimeError # Use package:unittest
+closure_cycles_test: Pass, Crash # TODO(zra): Investigate
+vm/causal_async_exception_stack2_test: RuntimeError # Use package:unittest
+vm/causal_async_exception_stack_test: RuntimeError # Use package:unittest
+vm/math_vm_test: Crash # TODO(zra): Investigate
+
+[ $compiler == none && $runtime == vm && !$checked ]
+assertion_initializer_const_error_test/01: MissingCompileTimeError
+assertion_initializer_const_function_error_test/01: MissingCompileTimeError
+
+[ $compiler == none && $checked && ($runtime == flutter || $runtime == vm) ]
+assert_initializer_test/4*: MissingCompileTimeError # Issue 392. The VM doesn't enforce that potentially const expressions are actually const expressions when the constructor is called with `const`.
+
+[ $compiler == none && ($runtime == flutter || $runtime == vm) ]
+duplicate_part_test/01: MissingCompileTimeError # Issue 27516
+
+[ $compiler == precompiler && $mode == debug && $runtime == dart_precompiled ]
+regress_29025_test: Crash # Issue dartbug.com/29331
+
+[ $compiler == precompiler && $runtime == dart_precompiled ]
+export_ambiguous_main_negative_test: Skip # Issue 29895
+export_double_same_main_test: Skip # Issue 29895
+stacktrace_demangle_ctors_test: RuntimeError
+vm/optimized_stacktrace_test: Skip # Issue 30198
+vm/regress_27671_test: Skip # Unsupported
+
+[ $compiler == precompiler && $runtime == dart_precompiled && $checked ]
+assertion_initializer_const_error2_test/cc02: Crash
+
+[ $compiler == precompiler && $runtime == dart_precompiled && !$checked ]
+assertion_initializer_const_error_test/01: MissingCompileTimeError
+assertion_initializer_const_function_error_test/01: MissingCompileTimeError
+
+[ $runtime == dart_precompiled && $minified ]
+cyclic_type_test/*: Skip # Tests below rely on Type.toString()
+enum_duplicate_test/*: Skip # Uses Enum.toString()
+enum_private_test/*: Skip # Uses Enum.toString()
+enum_test: Skip # Uses Enum.toString()
+f_bounded_quantification4_test: Skip # Tests below rely on Type.toString()
+f_bounded_quantification5_test: Skip # Tests below rely on Type.toString()
+full_stacktrace1_test: Skip # Tests below rely on Stacktrace.toString()
+full_stacktrace2_test: Skip # Tests below rely on Stacktrace.toString()
+full_stacktrace3_test: Skip # Tests below rely on Stacktrace.toString()
+mixin_generic_test: Skip # Tests below rely on Type.toString()
+mixin_mixin2_test: Skip # Tests below rely on Type.toString()
+mixin_mixin3_test: Skip # Tests below rely on Type.toString()
+mixin_mixin5_test: Skip # Tests below rely on Type.toString()
+mixin_mixin6_test: Skip # Tests below rely on Type.toString()
+mixin_mixin_bound2_test: Skip # Tests below rely on Type.toString()
+mixin_mixin_type_arguments_test: Skip # Tests below rely on Type.toString()
+mixin_super_2_test: Skip # Tests below rely on Type.toString()
+no_such_method_dispatcher_test: Skip # Uses new Symbol()
+stacktrace_rethrow_error_test: Skip # Tests below rely on Stacktrace.toString()
+stacktrace_rethrow_nonerror_test: Skip # Tests below rely on Stacktrace.toString()
+vm/no_such_args_error_message_vm_test: Skip # Tests below rely on Stacktrace.toString()
+vm/no_such_method_error_message_callable_vm_test: Skip # Tests below rely on Stacktrace.toString()
+vm/no_such_method_error_message_vm_test: Skip # Tests below rely on Stacktrace.toString()
+vm/regress_28325_test: Skip # Tests below rely on Stacktrace.toString()
+
+[ $browser && ($compiler == app_jit || $compiler == none || $compiler == precompiler) ]
+library_env_test/has_io_support: RuntimeError, OK # The test is supposed to fail.
+library_env_test/has_no_html_support: RuntimeError, OK # The test is supposed to fail.
+
+[ !$browser && ($compiler == app_jit || $compiler == none || $compiler == precompiler) ]
+library_env_test/has_html_support: RuntimeError, OK # The test is supposed to fail.
+library_env_test/has_no_io_support: RuntimeError, OK # The test is supposed to fail.
+
+[ $checked && ($compiler == app_jit || $compiler == none || $compiler == precompiler) ]
+generic_functions_test: Pass # Issue 25869, These generic functions tests pass for the wrong reason in checked mode, because the parsed type parameters are mapped to dynamic type.
+generic_local_functions_test: Pass # Issue 25869, These generic functions tests pass for the wrong reason in checked mode, because the parsed type parameters are mapped to dynamic type.
+generic_methods_function_type_test: Pass # Issue 25869, These generic functions tests pass for the wrong reason in checked mode, because the parsed type parameters are mapped to dynamic type.
+generic_methods_generic_function_parameter_test: Pass # Issue 25869, These generic functions tests pass for the wrong reason in checked mode, because the parsed type parameters are mapped to dynamic type.
+generic_methods_new_test: Pass # Issue 25869, These generic functions tests pass for the wrong reason in checked mode, because the parsed type parameters are mapped to dynamic type.
+generic_methods_test: Pass # Issue 25869, These generic functions tests pass for the wrong reason in checked mode, because the parsed type parameters are mapped to dynamic type.
+type_variable_bounds4_test/01: Fail # Issue 14006
+
+[ ($compiler == app_jit || $compiler == dartk || $compiler == dartkp || $compiler == none || $compiler == precompiler) && ($runtime == dart_precompiled || $runtime == flutter || $runtime == vm) ]
+dynamic_prefix_core_test/none: Fail # Issue 12478
+
+[ ($compiler == app_jit || $compiler == none || $compiler == precompiler) && ($runtime == dart_precompiled || $runtime == flutter || $runtime == vm) ]
+await_for_test: RuntimeError # issue 28974
+class_keyword_test/02: MissingCompileTimeError # Issue 13627
+export_ambiguous_main_negative_test: Fail # Issue 14763
+syntax_test/none: CompileTimeError # Issue #30176.
+unicode_bom_test: Fail # Issue 16067
+vm/debug_break_enabled_vm_test/01: Crash, OK # Expected to hit breakpoint.
+
+# These test entries will be valid for vm (with and without kernel).
+[ $compiler == app_jit || $compiler == dartk || $compiler == none || $runtime == dart_precompiled ]
+async_star_cancel_while_paused_test: RuntimeError
+async_star_pause_test: Fail, OK # This is OK for now, but we may want to change the semantics to match the test.
+constructor2_test: Fail, OK # Failures related to super call in ctor initializer list
+constructor3_test: Fail, OK # Failures related to super call in ctor initializer list
+constructor5_test: Fail # Issue 6422, These bugs refer currently ongoing language discussions.
+constructor6_test: Fail # Issue 6422, These bugs refer currently ongoing language discussions.
+cyclic_type2_test: Fail, OK # Non-contractive types are not supported in the vm.
+cyclic_type_test/02: Fail, OK # Non-contractive types are not supported in the vm.
+cyclic_type_test/04: Fail, OK # Non-contractive types are not supported in the vm.
+duplicate_export_negative_test: Fail # Issue 6134
+example_constructor_test: Fail, OK # Failures related to super call in ctor initializer list
+field_initialization_order_test: Fail, OK # Failures related to super call in ctor initializer list
+final_field_initialization_order_test: Fail, OK # Failures related to super call in ctor initializer list
+generalized_void_syntax_test: CompileTimeError
+generic_methods_type_expression_test: RuntimeError # Issue 25869 / 27460
+least_upper_bound_expansive_test/*: Fail, OK # Non-contractive types are not supported in the vm.
+main_not_a_function_test/01: Skip # Skipped temporaril until Issue 29895 is fixed.
+mixin_illegal_super_use_test: Skip # Issues 24478 and 23773, # These tests are skipped in the VM because it has "--supermixin" functionality enabled unconditionally. The tests should be removed once the same is true for analyzer (#24478) and dart2js (#23773)
+mixin_illegal_superclass_test: Skip # Issues 24478 and 23773, # These tests are skipped in the VM because it has "--supermixin" functionality enabled unconditionally. The tests should be removed once the same is true for analyzer (#24478) and dart2js (#23773)
+no_main_test/01: Skip # Skipped temporaril until Issue 29895 is fixed.
+super_test: Fail, OK # Failures related to super call in ctor initializer list
+vm/regress_29145_test: Skip # Issue 29145
+
+[ $compiler == app_jit || $compiler == none ]
+library_env_test/has_no_mirror_support: RuntimeError, OK # The test is supposed to fail.
+
+[ $compiler == app_jit || $compiler == none || $compiler == precompiler ]
+async_star_regression_2238_test: CompileTimeError
+deferred_redirecting_factory_test: Fail, Crash # Issue 23408
+dynamic_prefix_core_test/01: RuntimeError # Issue 12478
+multiline_strings_test: Fail # Issue 23020
+redirecting_constructor_initializer_test: RuntimeError # Issue 23488
+
+[ $compiler == app_jit || $compiler == precompiler || $mode == product ]
deferred_load_constants_test/02: Fail # Deferred loading happens eagerly. Issue #27587
deferred_load_constants_test/03: Fail # Deferred loading happens eagerly. Issue #27587
deferred_load_constants_test/05: Fail # Deferred loading happens eagerly. Issue #27587
deferred_not_loaded_check_test: Fail # Deferred loading happens eagerly. Issue #27587
vm/regress_27201_test: Fail
-[ $compiler == app_jit ]
-deferred_inheritance_constraints_test/redirecting_constructor: Crash
-
-[ $compiler == precompiler ]
-deferred_global_test: Fail # Deferred loading happens eagerly. Issue #27587
-vm/regress_27201_test: Fail # Deferred loading happens eagerly. Issue #27587
-regress_23408_test: RuntimeError
-
-[ $compiler == precompiler ]
-implicit_closure_test: Skip # Incompatible flag: --use_slow_path
-deopt_inlined_function_lazy_test: Skip # Incompatible flag: --deoptimize-alot
-
-[ $runtime == dart_precompiled || $compiler == app_jit ]
+[ $compiler == app_jit || $runtime == dart_precompiled ]
ct_const2_test: Skip # Incompatible flag: --compile_all
hello_dart_test: Skip # Incompatible flag: --compile_all
-vm/type_vm_test: RuntimeError # Expects line and column numbers
vm/type_cast_vm_test: RuntimeError # Expects line and column numbers
+vm/type_vm_test: RuntimeError # Expects line and column numbers
-[ $mode == product ]
-assertion_test: SkipByDesign # Requires checked mode.
-issue13474_test: SkipByDesign # Requires checked mode.
-named_parameters_type_test/01: SkipByDesign # Requires checked mode.
-named_parameters_type_test/02: SkipByDesign # Requires checked mode.
-named_parameters_type_test/03: SkipByDesign # Requires checked mode.
-type_checks_in_factory_method_test: SkipByDesign # Requires checked mode.
-positional_parameters_type_test/01: SkipByDesign # Requires checked mode.
-positional_parameters_type_test/02: SkipByDesign # Requires checked mode.
-list_literal4_test: SkipByDesign # Requires checked mode.
-generic_test: SkipByDesign # Requires checked mode.
-map_literal4_test: SkipByDesign # Requires checked mode.
+[ $mode == product || $runtime == dart_precompiled ]
+vm/causal_async_exception_stack2_test: SkipByDesign # Causal async stacks are not supported in product mode
+vm/causal_async_exception_stack_test: SkipByDesign # Causal async stacks are not supported in product mode
-vm/type_vm_test: Fail,OK # Expects exact type name.
-
-stacktrace_demangle_ctors_test: SkipByDesign # Names are not scrubbed.
-
-[ ($compiler == none || $compiler == precompiler || $compiler == app_jit) && $browser ]
-library_env_test/has_io_support: RuntimeError, OK # The test is supposed to fail.
-library_env_test/has_no_html_support: RuntimeError, OK # The test is supposed to fail.
-
-[ ($compiler == none || $compiler == precompiler || $compiler == app_jit) && ! $browser ]
-library_env_test/has_html_support: RuntimeError, OK # The test is supposed to fail.
-library_env_test/has_no_io_support: RuntimeError, OK # The test is supposed to fail.
-
-[ $compiler == none || $compiler == app_jit ]
-library_env_test/has_no_mirror_support: RuntimeError, OK # The test is supposed to fail.
-
-[ $runtime == dart_precompiled ]
-library_env_test/has_mirror_support: RuntimeError, OK # The test is supposed to fail.
+[ $runtime == dart_precompiled || $runtime == vm ]
+vm/load_to_load_unaligned_forwarding_vm_test: Pass, Crash # Unaligned offset. Issue 22151
+vm/unaligned_float_access_literal_index_test: Pass, Crash # Unaligned offset. Issue 22151
[ $hot_reload || $hot_reload_rollback ]
-issue21159_test: Pass, Crash # Issue 29094
-issue_22780_test/01: Pass, Crash # Issue 29094
-static_closure_identical_test: Pass, Fail # Closure identity
cha_deopt1_test: Crash # Requires deferred libraries
cha_deopt2_test: Crash # Requires deferred libraries
cha_deopt3_test: Crash # Requires deferred libraries
+conditional_import_string_test: Crash # Requires deferred libraries
+conditional_import_test: Crash # Requires deferred libraries
deferred_call_empty_before_load_test: Crash # Requires deferred libraries
deferred_closurize_load_library_test: Crash # Requires deferred libraries
deferred_constant_list_test: Crash # Requires deferred libraries
@@ -211,8 +476,8 @@
deferred_function_type_test: Crash # Requires deferred libraries
deferred_global_test: Crash # Requires deferred libraries
deferred_import_core_test: Crash # Requires deferred libraries
-deferred_inlined_test: Crash # Requires deferred libraries
deferred_inheritance_constraints_test: Crash # Requires deferred libraries
+deferred_inlined_test: Crash # Requires deferred libraries
deferred_load_constants_test: Crash # Requires deferred libraries
deferred_load_inval_code_test: Crash # Requires deferred libraries
deferred_load_library_wrong_args_test: Crash # Requires deferred libraries
@@ -229,310 +494,16 @@
deferred_static_seperate_test: Crash # Requires deferred libraries
deferred_super_dependency_test: Pass, Crash # Requires deferred libraries
deferred_type_dependency_test: Crash # Requires deferred libraries
+issue21159_test: Pass, Crash # Issue 29094
issue_1751477_test: Crash # Requires deferred libraries
-regress_23408_test: Crash # Requires deferred libraries
+issue_22780_test/01: Pass, Crash # Issue 29094
regress_22443_test: Crash # Requires deferred libraries
+regress_23408_test: Crash # Requires deferred libraries
regress_28278_test: Crash # Requires deferred libraries
-conditional_import_test: Crash # Requires deferred libraries
-conditional_import_string_test: Crash # Requires deferred libraries
-vm/regress_27201_test: Pass, Crash # Requires deferred libraries
+static_closure_identical_test: Pass, Fail # Closure identity
vm/optimized_stacktrace_test: Pass, Slow
+vm/regress_27201_test: Pass, Crash # Requires deferred libraries
-[ ($runtime != vm && $compiler != dartk && $compiler != dartkp ) || ($compiler != none && $compiler != dartk && $compiler != dartkp )]
-assert_initializer_test/*: SKIP # not implemented yet, experiment is VM only.
+[ $compiler != dartk && $compiler != dartkp && $compiler != none || $compiler != dartk && $compiler != dartkp && $runtime != vm ]
+assert_initializer_test/*: Skip # not implemented yet, experiment is VM only.
-[($runtime == vm || $runtime == flutter) && $compiler == none && $checked]
-assert_initializer_test/4*: MissingCompileTimeError # Issue 392. The VM doesn't enforce that potentially const expressions are actually const expressions when the constructor is called with `const`.
-
-[($runtime == vm || $runtime == flutter) && $compiler == none]
-duplicate_part_test/01: MissingCompileTimeError # Issue 27516
-
-[$runtime == vm && $compiler == none && $system == windows && $arch == ia32]
-vm/optimized_stacktrace_test: Pass, Crash # Issue 28276
-
-[$runtime == vm && $compiler == none && $system == fuchsia]
-async_await_test: RuntimeError # Use package:unittest
-async_star_test: RuntimeError # Use package:unittest
-vm/causal_async_exception_stack_test: RuntimeError # Use package:unittest
-vm/causal_async_exception_stack2_test: RuntimeError # Use package:unittest
-closure_cycles_test: Pass, Crash # TODO(zra): Investigate
-vm/math_vm_test: Crash # TODO(zra): Investigate
-
-[$compiler == dart2analyzer]
-vm/regress_27201_test: SkipByDesign # Loads bad library, so will always crash.
-config_import_corelib_test: StaticWarning, OK
-
-[ ($runtime == vm || $runtime == flutter || $runtime == dart_precompiled) && ($compiler == none || $compiler == app_jit || $compiler == precompiler) ]
-await_for_test: RuntimeError # issue 28974
-syntax_test/none: CompileTimeError # Issue #30176.
-
-# flutter uses --error_on_bad_type, --error_on_bad_override
-# and --await_is_keyword so # the following tests fail with
-# a Compilation Error
-[ $runtime == flutter ]
-await_backwards_compatibility_test/none: CompileTimeError
-await_test: CompileTimeError
-async_await_test: CompileTimeError
-async_await_syntax_test/a05c: CompileTimeError
-async_await_syntax_test/a05e: CompileTimeError
-async_await_syntax_test/d08c: CompileTimeError
-static_initializer_type_error_test: CompileTimeError
-new_expression_type_args_test/02: CompileTimeError
-super_getter_setter_test: CompileTimeError
-malformed_test/none: CompileTimeError
-malbounded_type_test_test/02: CompileTimeError
-factory6_test/00: CompileTimeError
-method_override2_test/01: CompileTimeError
-regress_22438_test: CompileTimeError
-regress_13462_1_test: CompileTimeError
-instance_creation_in_function_annotation_test: CompileTimeError
-type_variable_scope_test/none: CompileTimeError
-type_variable_scope_test/00: CompileTimeError
-type_variable_scope_test/01: CompileTimeError
-type_variable_scope_test/03: CompileTimeError
-type_variable_scope_test/02: CompileTimeError
-type_variable_scope_test/04: CompileTimeError
-type_variable_scope_test/05: CompileTimeError
-invocation_mirror_invoke_on_test: CompileTimeError
-method_override3_test/00: CompileTimeError
-method_override3_test/01: CompileTimeError
-method_override3_test/02: CompileTimeError
-type_variable_bounds_test/00: CompileTimeError
-type_variable_bounds_test/06: CompileTimeError
-type_variable_bounds_test/07: CompileTimeError
-type_variable_bounds_test/09: CompileTimeError
-type_variable_bounds_test/10: CompileTimeError
-type_variable_bounds_test/08: CompileTimeError
-factory4_test: CompileTimeError
-factory2_test: CompileTimeError
-regress_18535_test: CompileTimeError
-prefix22_test: CompileTimeError
-regress_28255_test: CompileTimeError
-enum_mirror_test: CompileTimeError
-field_override_test/01: CompileTimeError
-override_inheritance_field_test/05: CompileTimeError
-override_inheritance_field_test/07: CompileTimeError
-override_inheritance_field_test/06: CompileTimeError
-override_inheritance_field_test/08: CompileTimeError
-override_inheritance_field_test/28: CompileTimeError
-override_inheritance_field_test/29: CompileTimeError
-override_inheritance_field_test/30: CompileTimeError
-override_inheritance_field_test/31: CompileTimeError
-override_inheritance_field_test/44: CompileTimeError
-override_inheritance_field_test/45: CompileTimeError
-override_inheritance_field_test/48: CompileTimeError
-override_inheritance_field_test/47: CompileTimeError
-override_inheritance_field_test/53: CompileTimeError
-override_inheritance_field_test/10: CompileTimeError
-override_inheritance_field_test/54: CompileTimeError
-override_inheritance_field_test/09: CompileTimeError
-override_inheritance_field_test/33a: CompileTimeError
-override_inheritance_field_test/34: CompileTimeError
-override_inheritance_field_test/32: CompileTimeError
-override_inheritance_field_test/11: CompileTimeError
-override_inheritance_field_test/33: CompileTimeError
-issue_25671b_test/01: CompileTimeError
-mixin_super_bound2_test/01: CompileTimeError
-override_inheritance_method_test/04: CompileTimeError
-override_inheritance_method_test/06: CompileTimeError
-override_inheritance_method_test/11: CompileTimeError
-override_inheritance_method_test/12: CompileTimeError
-override_inheritance_method_test/13: CompileTimeError
-override_inheritance_method_test/14: CompileTimeError
-override_inheritance_method_test/19: CompileTimeError
-override_inheritance_method_test/20: CompileTimeError
-override_inheritance_method_test/21: CompileTimeError
-override_inheritance_method_test/27: CompileTimeError
-override_inheritance_method_test/28: CompileTimeError
-override_inheritance_method_test/29: CompileTimeError
-override_inheritance_method_test/05: CompileTimeError
-override_inheritance_method_test/31: CompileTimeError
-override_inheritance_method_test/33: CompileTimeError
-override_inheritance_method_test/32: CompileTimeError
-override_inheritance_method_test/30: CompileTimeError
-redirecting_factory_reflection_test: CompileTimeError
-method_override6_test: CompileTimeError
-try_catch_syntax_test/08: CompileTimeError
-async_return_types_test/tooManyTypeParameters: CompileTimeError
-method_override4_test: CompileTimeError
-super_call4_test: CompileTimeError
-wrong_number_type_arguments_test/00: CompileTimeError
-wrong_number_type_arguments_test/02: CompileTimeError
-wrong_number_type_arguments_test/01: CompileTimeError
-is_malformed_type_test/97: CompileTimeError
-class_keyword_test/02: CompileTimeError
-is_malformed_type_test/98: CompileTimeError
-is_malformed_type_test/99: CompileTimeError
-is_malformed_type_test/95: CompileTimeError
-is_malformed_type_test/96: CompileTimeError
-is_malformed_type_test/94: CompileTimeError
-field_increment_bailout_test: CompileTimeError
-on_catch_malformed_type_test: CompileTimeError
-f_bounded_quantification_test/01: CompileTimeError
-f_bounded_quantification_test/02: CompileTimeError
-mixin_type_parameters_errors_test/02: CompileTimeError
-mixin_type_parameters_errors_test/05: CompileTimeError
-mixin_type_parameters_errors_test/01: CompileTimeError
-mixin_type_parameters_errors_test/03: CompileTimeError
-mixin_type_parameters_errors_test/04: CompileTimeError
-issue21079_test: CompileTimeError
-f_bounded_quantification5_test: CompileTimeError
-malformed_type_test: CompileTimeError
-issue_25671a_test/01: CompileTimeError
-regress_13462_0_test: CompileTimeError
-overridden_no_such_method_test: CompileTimeError
-deferred_constraints_type_annotation_test/new_before_load: CompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_null: CompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_generic2: CompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_generic3: CompileTimeError
-deferred_constraints_type_annotation_test/new: CompileTimeError
-deferred_constraints_type_annotation_test/new_generic1: CompileTimeError
-deferred_constraints_type_annotation_test/new_generic2: CompileTimeError
-deferred_constraints_type_annotation_test/new_generic3: CompileTimeError
-deferred_constraints_type_annotation_test/is_check: CompileTimeError
-deferred_constraints_type_annotation_test/as_operation: CompileTimeError
-deferred_constraints_type_annotation_test/catch_check: CompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_top_level: CompileTimeError
-deferred_constraints_constants_test/none: CompileTimeError
-deferred_constraints_constants_test/reference_after_load: CompileTimeError
-no_such_method_test: CompileTimeError
-conditional_import_string_test: CompileTimeError
-try_catch_on_syntax_test/07: CompileTimeError
-non_parameterized_factory_test: CompileTimeError
-instanceof3_test: CompileTimeError
-malbounded_redirecting_factory_test/none: CompileTimeError
-malbounded_redirecting_factory_test/01: CompileTimeError
-null_test/none: CompileTimeError
-check_method_override_test/01: CompileTimeError
-check_method_override_test/02: CompileTimeError
-malformed_inheritance_test/02: CompileTimeError
-malformed_inheritance_test/04: CompileTimeError
-malformed_inheritance_test/06: CompileTimeError
-call_constructor_on_unresolvable_class_test/01: CompileTimeError
-call_constructor_on_unresolvable_class_test/03: CompileTimeError
-call_constructor_on_unresolvable_class_test/02: CompileTimeError
-call_constructor_on_unresolvable_class_test/07: CompileTimeError
-unicode_bom_test: CompileTimeError
-prefix16_test: CompileTimeError
-deferred_not_loaded_check_test: CompileTimeError
-regress_23408_test: CompileTimeError
-redirecting_factory_incompatible_signature_test: CompileTimeError
-malbounded_instantiation_test/01: CompileTimeError
-const_evaluation_test/none: CompileTimeError
-mixin_invalid_bound_test/01: CompileTimeError
-const_evaluation_test/01: CompileTimeError
-mixin_invalid_bound_test/none: CompileTimeError
-mixin_invalid_bound_test/05: CompileTimeError
-mixin_invalid_bound_test/03: CompileTimeError
-malformed2_test/00: CompileTimeError
-conditional_import_test: CompileTimeError
-non_parameterized_factory2_test: CompileTimeError
-private_access_test/03: CompileTimeError
-private_access_test/04: CompileTimeError
-function_malformed_result_type_test: CompileTimeError
-mixin_invalid_bound2_test/none: CompileTimeError
-mixin_invalid_bound2_test/01: CompileTimeError
-mixin_invalid_bound2_test/04: CompileTimeError
-mixin_invalid_bound2_test/07: CompileTimeError
-deferred_super_dependency_test/01: CompileTimeError
-method_override5_test: CompileTimeError
-deferred_static_seperate_test: CompileTimeError
-default_factory_test/01: CompileTimeError
-internal_library_test/01: CompileTimeError
-internal_library_test/02: CompileTimeError
-type_variable_scope2_test: CompileTimeError
-mixin_super_bound_test: CompileTimeError
-bad_override_test/06: CompileTimeError
-invocation_mirror2_test: CompileTimeError
-deferred_inheritance_constraints_test/redirecting_constructor: CompileTimeError
-deferred_no_such_method_test: CompileTimeError
-malbounded_type_literal_test: CompileTimeError
-deferred_mixin_test: CompileTimeError
-many_overridden_no_such_method_test: CompileTimeError
-malbounded_redirecting_factory2_test/none: CompileTimeError
-malbounded_redirecting_factory2_test/01: CompileTimeError
-malbounded_type_cast_test: CompileTimeError
-type_parameter_test/none: CompileTimeError
-list_literal_syntax_test/03: CompileTimeError
-list_literal_syntax_test/01: CompileTimeError
-list_literal_syntax_test/02: CompileTimeError
-vm/reflect_core_vm_test: CompileTimeError
-vm/debug_break_enabled_vm_test/01: CompileTimeError
-vm/debug_break_enabled_vm_test/none: CompileTimeError
-generic_function_typedef2_test/04: CompileTimeError
-class_override_test/00: CompileTimeError
-const_types_test/01: CompileTimeError
-const_types_test/02: CompileTimeError
-const_types_test/03: CompileTimeError
-const_types_test/04: CompileTimeError
-const_types_test/05: CompileTimeError
-const_types_test/06: CompileTimeError
-const_types_test/13: CompileTimeError
-const_types_test/35: CompileTimeError
-const_types_test/40: CompileTimeError
-regress_12561_test: CompileTimeError
-invocation_mirror_invoke_on2_test: CompileTimeError
-
-isnot_malformed_type_test: RuntimeError
-is_not_class2_test: RuntimeError
-
-library_env_test/has_no_mirror_support: Pass # No mirrors support in Flutter.
-library_env_test/has_mirror_support: RuntimeError, Ok # No mirrors support in Flutter.
-
-internal_library_test/01: MissingCompileTimeError
-internal_library_test/02: MissingCompileTimeError
-
-deferred_type_dependency_test/is: Skip # Timeout, deferred loading is not supported by Flutter
-deferred_type_dependency_test/none: Skip # Timeout, deferred loading is not supported by Flutter
-deferred_type_dependency_test/as: Skip # Timeout, deferred loading is not supported by Flutter
-deferred_type_dependency_test/type_annotation: Skip # Timeout, deferred loading is not supported by Flutter
-deferred_closurize_load_library_test: Skip # Timeout, deferred loading is not supported by Flutter
-deferred_constraints_type_annotation_test/none: Skip # Timeout, deferred loading is not supported by Flutter
-deferred_constraints_type_annotation_test/static_method: Skip # Timeout, deferred loading is not supported by Flutter
-deferred_shared_and_unshared_classes_test: Skip # Timeout, deferred loading is not supported by Flutter
-deferred_constant_list_test: Skip # Timeout, deferred loading is not supported by Flutter
-deferred_redirecting_factory_test: Skip # Timeout, deferred loading is not supported by Flutter
-deferred_shadow_load_library_test: Skip # Timeout, deferred loading is not supported by Flutter
-deferred_global_test: Skip # Timeout, deferred loading is not supported by Flutter
-
-config_import_test: RuntimeError # Flutter Issue 9110
-vm/no_such_method_error_message_callable_vm_test: RuntimeError # Flutter Issue 9110
-vm/regress_27201_test: Fail # Flutter Issue 9110
-async_return_types_test/nestedFuture: Skip # Flutter Issue 9110
-async_return_types_test/wrongTypeParameter: Skip # Flutter Issue 9110
-async_return_types_test/wrongReturnType: Skip # Flutter Issue 9110
-async_return_types_test/return_value_sync_star: Skip # Flutter Issue 9110
-asyncstar_yield_test: Skip # Flutter Issue 9110
-async_star_no_cancel_test: Skip # Flutter Issue 9110
-async_star_cancel_while_paused_test: Skip # Flutter Issue 9110
-await_for_test: Skip # Flutter Issue 9110
-await_for_cancel_test: Skip # Flutter Issue 9110
-
-[ $runtime == dart_precompiled && $minified ]
-enum_duplicate_test/*: Skip # Uses Enum.toString()
-enum_private_test/*: Skip # Uses Enum.toString()
-enum_test: Skip # Uses Enum.toString()
-no_such_method_dispatcher_test: Skip # Uses new Symbol()
-cyclic_type_test/*: Skip # Tests below rely on Type.toString()
-f_bounded_quantification4_test: Skip # Tests below rely on Type.toString()
-f_bounded_quantification5_test: Skip # Tests below rely on Type.toString()
-mixin_generic_test: Skip # Tests below rely on Type.toString()
-mixin_mixin2_test: Skip # Tests below rely on Type.toString()
-mixin_mixin3_test: Skip # Tests below rely on Type.toString()
-mixin_mixin5_test: Skip # Tests below rely on Type.toString()
-mixin_mixin6_test: Skip # Tests below rely on Type.toString()
-mixin_mixin_bound2_test: Skip # Tests below rely on Type.toString()
-mixin_mixin_type_arguments_test: Skip # Tests below rely on Type.toString()
-mixin_super_2_test: Skip # Tests below rely on Type.toString()
-full_stacktrace1_test: Skip # Tests below rely on Stacktrace.toString()
-full_stacktrace2_test: Skip # Tests below rely on Stacktrace.toString()
-full_stacktrace3_test: Skip # Tests below rely on Stacktrace.toString()
-stacktrace_rethrow_error_test: Skip # Tests below rely on Stacktrace.toString()
-stacktrace_rethrow_nonerror_test: Skip # Tests below rely on Stacktrace.toString()
-vm/no_such_args_error_message_vm_test: Skip # Tests below rely on Stacktrace.toString()
-vm/no_such_method_error_message_callable_vm_test: Skip # Tests below rely on Stacktrace.toString()
-vm/no_such_method_error_message_vm_test: Skip # Tests below rely on Stacktrace.toString()
-vm/regress_28325_test:Skip # Tests below rely on Stacktrace.toString()
-
-[ $runtime == vm && $mode == release && $arch == ia32 ]
-deep_nesting1_negative_test: Crash, Pass # Issue 31496
diff --git a/tests/language/language_analyzer2.status b/tests/language/language_analyzer2.status
index eec8134..21780f3 100644
--- a/tests/language/language_analyzer2.status
+++ b/tests/language/language_analyzer2.status
@@ -3,117 +3,67 @@
# BSD-style license that can be found in the LICENSE file.
[ $compiler == dart2analyzer ]
-
-generic_methods_generic_function_parameter_test: CompileTimeError # Issue 28515
-generic_local_functions_test: CompileTimeError # Issue 28515
-
-regress_26668_test: Fail # Issue 26678
-regress_27617_test/1: MissingCompileTimeError
-regress_29025_test: StaticWarning # Issue 29081
-regress_29405_test: StaticWarning # Issue 29421
-regress_29349_test: CompileTimeError # Issue 29744
-
-closure_call_wrong_argument_count_negative_test: skip # Runtime negative test. No static errors or warnings.
-
-deep_nesting1_negative_test: CompileTimeError # Issue 25558
-deep_nesting2_negative_test: CompileTimeError # Issue 25558
-
-enum_syntax_test/05: Fail # Issue 21649
-enum_syntax_test/06: Fail # Issue 21649
-
-regress_17382_test: Skip # don't care about the static warning.
-regress_23408_test: Skip # don't care about the static warning.
-regress_25246_test: Skip
-getter_setter_in_lib_test: Fail # Issue 23286
-
-final_attempt_reinitialization_test/01: MissingCompileTimeError # Issue 29657
-final_attempt_reinitialization_test/02: MissingCompileTimeError # Issue 29657
+abstract_beats_arguments_test: StaticWarning
+accessor_conflict_export2_test: StaticWarning # Issue 25624
+accessor_conflict_export_test: StaticWarning # Issue 25624
+accessor_conflict_import2_test: StaticWarning # Issue 25624
+accessor_conflict_import_prefixed2_test: StaticWarning # Issue 25624
+accessor_conflict_import_prefixed_test: StaticWarning # Issue 25624
+accessor_conflict_import_test: StaticWarning # Issue 25624
+application_negative_test: CompileTimeError # Issue 14528, The following tests are currently assumed to be failing because the test is wrong.
+bad_initializer1_negative_test: CompileTimeError # Issue 14529, The following tests are currently assumed to be failing because the test is wrong.
+bad_initializer2_negative_test: Fail # Issue 14880
+bad_named_constructor_negative_test: CompileTimeError # Issue 18693, The following tests are currently assumed to be failing because the test is wrong.
+black_listed_test/none: Fail # Issue 14228
+body_less_constructor_wrong_arg_negative_test: CompileTimeError # Issue 18695, The following tests are currently assumed to be failing because the test is wrong.
+cascade_test/none: Fail # Issue 11577
+closure_call_wrong_argument_count_negative_test: Skip # Runtime negative test. No static errors or warnings.
+conflicting_type_variable_and_setter_test: CompileTimeError # Issue 25525
+const_counter_negative_test: CompileTimeError
const_error_multiply_initialized_test/02: MissingCompileTimeError # Issue 29657
const_error_multiply_initialized_test/04: MissingCompileTimeError # Issue 29657
-
-override_field_test/03: Fail # Issue 29703
-method_override7_test/03: Fail # Issue 11497
-
+const_for_in_variable_test/01: MissingCompileTimeError # Issue 25161
+const_optional_args_negative_test: CompileTimeError
+constructor3_negative_test: Fail # Issue 11585
+constructor_call_wrong_argument_count_negative_test: Fail # Issue 11585
+constructor_duplicate_final_test/03: MissingCompileTimeError
+constructor_redirect1_negative_test: CompileTimeError
+constructor_redirect2_negative_test: CompileTimeError
+constructor_setter_negative_test: CompileTimeError
+deep_nesting1_negative_test: CompileTimeError # Issue 25558
+deep_nesting2_negative_test: CompileTimeError # Issue 25558
+default_factory2_test/none: Fail # Issue 13956
+duplicate_export_negative_test: CompileTimeError
+duplicate_interface_negative_test: CompileTimeError
+empty_block_case_test: StaticWarning # Issue 18701, The following tests are currently assumed to be failing because the test is wrong.
+enum_syntax_test/05: Fail # Issue 21649
+enum_syntax_test/06: Fail # Issue 21649
+error_stacktrace_test: StaticWarning # Issue 18702, The following tests are currently assumed to be failing because the test is wrong.
+export_ambiguous_main_negative_test: CompileTimeError
+extend_type_parameter2_negative_test: CompileTimeError
+extend_type_parameter_negative_test: CompileTimeError
external_test/21: Fail
external_test/24: Fail
external_test/25: Fail
-constructor_duplicate_final_test/03: MissingCompileTimeError
-reify_typevar_static_test/00: MissingCompileTimeError # Issue 21565
-
-multiline_newline_test/01: CompileTimeError # Issue 23888
-multiline_newline_test/02: CompileTimeError # Issue 23888
-multiline_newline_test/03: CompileTimeError # Issue 23888
-multiline_newline_test/04: MissingCompileTimeError # Issue 23888
-multiline_newline_test/05: MissingCompileTimeError # Issue 23888
-multiline_newline_test/06: MissingCompileTimeError # Issue 23888
-multiline_newline_test/01r: CompileTimeError # Issue 23888
-multiline_newline_test/02r: CompileTimeError # Issue 23888
-multiline_newline_test/03r: CompileTimeError # Issue 23888
-multiline_newline_test/04r: MissingCompileTimeError # Issue 23888
-multiline_newline_test/05r: MissingCompileTimeError # Issue 23888
-multiline_newline_test/06r: MissingCompileTimeError # Issue 23888
-
-const_for_in_variable_test/01: MissingCompileTimeError # Issue 25161
-
-bad_initializer2_negative_test: fail # Issue 14880
-field3a_negative_test: Fail # Issue 11124
-final_syntax_test/01: Fail # Issue 11124
-final_syntax_test/04: Fail # Issue 11124
-final_syntax_test/02: Fail # Issue 11124
-final_syntax_test/03: Fail # Issue 11124
-get_set_syntax_test/none: fail # Issue 11575
-implicit_this_test/none: fail # Issue 11575
-interface_test/none: fail # Issue 11575
-syntax_test/none: fail # Issue 11575
-cascade_test/none: fail # Issue 11577
-factory5_test/none: fail # Issue 11578
-type_variable_bounds_test/none: fail # Issue 11578
-type_variable_scope_test/none: fail # Issue 11578
-factory_implementation_test/none: fail # Issue 11578
-malbounded_redirecting_factory_test/none: fail # Issue 11578
-malbounded_redirecting_factory2_test/none: fail # Issue 11578
-getter_no_setter_test/none: fail # Issue 11579
-constructor3_negative_test: fail # Issue 11585
-constructor_call_wrong_argument_count_negative_test: fail # Issue 11585
-instance_call_wrong_argument_count_negative_test: fail # Issue 11585
-field_method4_negative_test: fail # Issue 11590
-import_combinators_negative_test: fail # Issue 11594
-interface_static_non_final_fields_negative_test: fail # Issue 11594
-prefix1_negative_test: fail # Issue 11962
-prefix2_negative_test: fail # Issue 11962
-prefix4_negative_test: fail # Issue 11962
-prefix5_negative_test: fail # Issue 11962
-prefix12_negative_test: fail # Issue 11962
-prefix8_negative_test: fail # Issue 11964
-prefix11_negative_test: fail # Issue 11964
-static_call_wrong_argument_count_negative_test: fail # Issue 12156
-type_parameter_test/none: fail # Issue 12160
-type_variable_static_context_negative_test: fail # Issue 12161
-unresolved_in_factory_negative_test: fail # Issue 12163
-unresolved_top_level_var_negative_test: fail # Issue 12163
-prefix3_negative_test: fail # Issue 12191
-issue11724_test: fail # Issue 12381
-static_field_test/01: fail # Issue 12541
-static_field_test/02: fail # Issue 12541
-static_field_test/03: fail # Issue 12541
-static_field_test/04: fail # Issue 12541
-redirecting_factory_infinite_steps_test/01: fail # Issue 13916
-redirecting_factory_default_values_test/none: StaticWarning # Issue 14471
-default_factory2_test/none: fail # Issue 13956
-private_member1_negative_test: fail # Issue 14021
-private_member2_negative_test: fail # Issue 14021
-private_member3_negative_test: fail # Issue 14021
-malformed_test/none: fail # Issue 14079
-malformed_test/05: fail # Issue 14079
-malformed_test/06: fail # Issue 14079
-regress_22438_test: fail # Issue 14079
-black_listed_test/none: fail # Issue 14228
-setter4_test: StaticWarning # Issue 14736
-proxy_test/05: StaticWarning # Issue 15467
-proxy_test/06: StaticWarning # Issue 15467
-proxy3_test/03: StaticWarning # Issue 15467
-proxy3_test/04: StaticWarning # Issue 15467
+f_bounded_quantification4_test: StaticWarning
+f_bounded_quantification5_test: StaticWarning
+factory1_test/00: StaticWarning # Issue 18726 # Issues to be fixed now that type parameters have been fixed (issues 14221, 15553)
+factory1_test/01: StaticWarning # Issue 18726 # Issues to be fixed now that type parameters have been fixed (issues 14221, 15553)
+factory1_test/none: StaticWarning # Issue 18726 # Issues to be fixed now that type parameters have been fixed (issues 14221, 15553)
+factory2_negative_test: CompileTimeError
+factory2_test: StaticWarning # Issue 18727
+factory3_negative_test: CompileTimeError
+factory3_test: StaticWarning # Issue 18727
+factory4_test: StaticWarning # Issue 18727
+factory5_test/none: Fail # Issue 11578
+factory_implementation_test/00: StaticWarning
+factory_implementation_test/none: Fail # Issue 11578
+factory_negative_test: CompileTimeError
+factory_redirection_test/01: StaticWarning # Issue 11578
factory_redirection_test/02: StaticWarning # Issue 18230
+factory_redirection_test/03: StaticWarning # Issue 11578
+factory_redirection_test/05: StaticWarning # Issue 11578
+factory_redirection_test/06: StaticWarning # Issue 11578
factory_redirection_test/08: StaticWarning # Issue 18230
factory_redirection_test/09: StaticWarning # Issue 18230
factory_redirection_test/10: StaticWarning # Issue 18230
@@ -122,46 +72,24 @@
factory_redirection_test/13: StaticWarning # Issue 18230
factory_redirection_test/14: StaticWarning # Issue 18230
factory_redirection_test/none: StaticWarning # Issue 18230
-
-application_negative_test: CompileTimeError # Issue 14528, The following tests are currently assumed to be failing because the test is wrong.
-bad_initializer1_negative_test: CompileTimeError # Issue 14529, The following tests are currently assumed to be failing because the test is wrong.
-bad_named_constructor_negative_test: CompileTimeError # Issue 18693, The following tests are currently assumed to be failing because the test is wrong.
-body_less_constructor_wrong_arg_negative_test: CompileTimeError # Issue 18695, The following tests are currently assumed to be failing because the test is wrong.
-empty_block_case_test: StaticWarning # Issue 18701, The following tests are currently assumed to be failing because the test is wrong.
-error_stacktrace_test: StaticWarning # Issue 18702, The following tests are currently assumed to be failing because the test is wrong.
-
-abstract_beats_arguments_test: StaticWarning
-const_counter_negative_test: CompileTimeError
-const_optional_args_negative_test: CompileTimeError
-constructor_redirect1_negative_test: CompileTimeError
-constructor_redirect2_negative_test: CompileTimeError
-constructor_setter_negative_test: CompileTimeError
-duplicate_export_negative_test: CompileTimeError
-duplicate_interface_negative_test: CompileTimeError
-export_ambiguous_main_negative_test: CompileTimeError
-extend_type_parameter2_negative_test: CompileTimeError
-extend_type_parameter_negative_test: CompileTimeError
-factory2_negative_test: CompileTimeError
-factory2_test: StaticWarning # Issue 18727
-factory3_negative_test: CompileTimeError
-factory3_test: StaticWarning # Issue 18727
-factory4_test: StaticWarning # Issue 18727
-factory_implementation_test/00: StaticWarning
-factory_negative_test: CompileTimeError
-factory_redirection_test/01: StaticWarning # Issue 11578
-factory_redirection_test/03: StaticWarning # Issue 11578
-factory_redirection_test/05: StaticWarning # Issue 11578
-factory_redirection_test/06: StaticWarning # Issue 11578
factory_return_type_checked_test: StaticWarning # Issue 18728
-f_bounded_quantification4_test: StaticWarning
-f_bounded_quantification5_test: StaticWarning
field1_negative_test: CompileTimeError
field2_negative_test: CompileTimeError
field3_negative_test: CompileTimeError
+field3a_negative_test: Fail # Issue 11124
field4_negative_test: CompileTimeError
field5_negative_test: CompileTimeError
-field6a_negative_test: CompileTimeError
field6_negative_test: CompileTimeError
+field6a_negative_test: CompileTimeError
+field_method4_negative_test: Fail # Issue 11590
+final_attempt_reinitialization_test/01: MissingCompileTimeError # Issue 29657
+final_attempt_reinitialization_test/02: MissingCompileTimeError # Issue 29657
+final_syntax_test/01: Fail # Issue 11124
+final_syntax_test/02: Fail # Issue 11124
+final_syntax_test/03: Fail # Issue 11124
+final_syntax_test/04: Fail # Issue 11124
+for_in3_test: StaticWarning, OK # Test should have warning by design.
+for_in_side_effects_test: StaticWarning, OK # Test uses custom class that does not implement Iterable in for-in.
function_malformed_result_type_test: StaticWarning
function_subtype_bound_closure7_test: StaticWarning
function_subtype_checked0_test: StaticWarning
@@ -172,34 +100,49 @@
function_type2_test: StaticWarning
function_type_parameter2_negative_test: CompileTimeError
function_type_parameter_negative_test: CompileTimeError
+generalized_void_syntax_test: Skip # TODO, Issue #30177.
+generic_closure_test: StaticWarning
generic_list_checked_test: StaticWarning
-generics_test: StaticWarning
+generic_local_functions_test: CompileTimeError # Issue 28515
+generic_methods_generic_function_parameter_test: CompileTimeError # Issue 28515
generic_test: StaticWarning
+generics_test: StaticWarning
+get_set_syntax_test/none: Fail # Issue 11575
getter_declaration_negative_test: CompileTimeError
getter_no_setter2_test/01: StaticWarning
getter_no_setter_test/01: StaticWarning
+getter_no_setter_test/none: Fail # Issue 11579
+getter_setter_in_lib_test: Fail # Issue 23286
implicit_this_test/02: StaticWarning
+implicit_this_test/none: Fail # Issue 11575
implied_interface_test: StaticWarning
+import_combinators_negative_test: Fail # Issue 11594
import_combinators_test: StaticWarning
import_core_prefix_test: StaticWarning
inferrer_this_access_test: StaticWarning
+initializing_formal_type_test: StaticWarning # Issue 26658 # Experimental feature: Use initializing formals in initializers and constructor body.
inlined_throw_test: StaticWarning
+inst_field_initializer1_negative_test: CompileTimeError
+instance_call_wrong_argument_count_negative_test: Fail # Issue 11585
instance_method2_negative_test: CompileTimeError
instance_method_negative_test: CompileTimeError
instanceof3_test: StaticWarning
instantiate_type_variable_test/01: StaticWarning
-inst_field_initializer1_negative_test: CompileTimeError
interceptor6_test: StaticWarning
interface2_negative_test: CompileTimeError
interface_inherit_field_test: StaticWarning
interface_injection1_negative_test: CompileTimeError
interface_injection2_negative_test: CompileTimeError
interface_static_method_negative_test: CompileTimeError
+interface_static_non_final_fields_negative_test: Fail # Issue 11594
+interface_test/none: Fail # Issue 11575
invocation_mirror_test: StaticWarning
is_not_class1_negative_test: CompileTimeError
is_not_class2_test: StaticWarning
is_not_class4_negative_test: CompileTimeError
isnot_malformed_type_test: StaticWarning
+issue11724_test: Fail # Issue 12381
+issue13474_test: StaticWarning, OK # Issue 13474
issue1363_test: StaticWarning
issue1578_negative_test: CompileTimeError
label2_negative_test: CompileTimeError
@@ -217,10 +160,18 @@
list_literal4_test: StaticWarning
list_literal_negative_test: CompileTimeError
list_test: StaticWarning
-malbounded_type_cast_test: StaticWarning
+local_function2_test: StaticWarning
+main_not_a_function_test/01: Fail # Issue 20030
+main_test/03: Fail # Issue 20030
+malbounded_redirecting_factory2_test/none: Fail # Issue 11578
+malbounded_redirecting_factory_test/none: Fail # Issue 11578
malbounded_type_cast2_test: StaticWarning
+malbounded_type_cast_test: StaticWarning
malbounded_type_literal_test: StaticWarning
malbounded_type_test2_test: StaticWarning
+malformed_test/05: Fail # Issue 14079
+malformed_test/06: Fail # Issue 14079
+malformed_test/none: Fail # Issue 14079
malformed_type_test: StaticWarning
map_literal2_negative_test: CompileTimeError
map_literal3_test: StaticWarning
@@ -231,16 +182,40 @@
method_override4_test: StaticWarning
method_override5_test: StaticWarning
method_override6_test: StaticWarning
+method_override7_test/03: Fail # Issue 11497
method_override_test: StaticWarning
mixin_illegal_static_access_test: StaticWarning
+mixin_invalid_bound2_test/none: StaticWarning # legitimate StaticWarning, cannot be annotated
+mixin_invalid_bound_test/none: StaticWarning # legitimate StaticWarning, cannot be annotated
+mixin_super_bound_test: StaticWarning # legitimate StaticWarning, cannot be annotated
+mixin_supertype_subclass2_test/02: MissingStaticWarning # Issue 25614
+mixin_supertype_subclass2_test/05: MissingStaticWarning # Issue 25614
+mixin_supertype_subclass3_test/02: MissingStaticWarning # Issue 25614
+mixin_supertype_subclass3_test/05: MissingStaticWarning # Issue 25614
+mixin_supertype_subclass4_test/01: MissingStaticWarning # Issue 25614
+mixin_supertype_subclass4_test/02: MissingStaticWarning # Issue 25614
+mixin_supertype_subclass4_test/03: MissingStaticWarning # Issue 25614
+mixin_supertype_subclass4_test/04: MissingStaticWarning # Issue 25614
+mixin_supertype_subclass4_test/05: MissingStaticWarning # Issue 25614
+mixin_supertype_subclass_test/02: MissingStaticWarning # Issue 25614
+mixin_supertype_subclass_test/05: MissingStaticWarning # Issue 25614
mixin_type_parameters_mixin_extends_test: StaticWarning
mixin_type_parameters_mixin_test: StaticWarning
mixin_type_parameters_super_extends_test: StaticWarning
mixin_type_parameters_super_test: StaticWarning
mixin_with_two_implicit_constructors_test: StaticWarning
-mixin_invalid_bound_test/none: StaticWarning # legitimate StaticWarning, cannot be annotated
-mixin_invalid_bound2_test/none: StaticWarning # legitimate StaticWarning, cannot be annotated
-mixin_super_bound_test: StaticWarning # legitimate StaticWarning, cannot be annotated
+multiline_newline_test/01: CompileTimeError # Issue 23888
+multiline_newline_test/01r: CompileTimeError # Issue 23888
+multiline_newline_test/02: CompileTimeError # Issue 23888
+multiline_newline_test/02r: CompileTimeError # Issue 23888
+multiline_newline_test/03: CompileTimeError # Issue 23888
+multiline_newline_test/03r: CompileTimeError # Issue 23888
+multiline_newline_test/04: MissingCompileTimeError # Issue 23888
+multiline_newline_test/04r: MissingCompileTimeError # Issue 23888
+multiline_newline_test/05: MissingCompileTimeError # Issue 23888
+multiline_newline_test/05r: MissingCompileTimeError # Issue 23888
+multiline_newline_test/06: MissingCompileTimeError # Issue 23888
+multiline_newline_test/06r: MissingCompileTimeError # Issue 23888
named_constructor_test/01: StaticWarning
named_constructor_test/03: StaticWarning
named_parameters2_test: StaticWarning
@@ -260,12 +235,13 @@
new_expression1_negative_test: CompileTimeError
new_expression2_negative_test: CompileTimeError
new_expression3_negative_test: CompileTimeError
-non_const_super_negative_test: CompileTimeError
-non_parameterized_factory2_test: StaticWarning
-non_parameterized_factory_test: StaticWarning
+no_main_test/01: Fail # Issue 20030
no_such_constructor2_test: StaticWarning
no_such_method2_test: StaticWarning
no_such_method_dispatcher_test: StaticWarning
+non_const_super_negative_test: CompileTimeError
+non_parameterized_factory2_test: StaticWarning
+non_parameterized_factory_test: StaticWarning
not_enough_positional_arguments_test/00: StaticWarning
not_enough_positional_arguments_test/01: CompileTimeError
not_enough_positional_arguments_test/02: StaticWarning
@@ -292,6 +268,7 @@
override_field_method2_negative_test: CompileTimeError
override_field_method4_negative_test: CompileTimeError
override_field_method5_negative_test: CompileTimeError
+override_field_test/03: Fail # Issue 29703
parameter_initializer1_negative_test: CompileTimeError
parameter_initializer2_negative_test: CompileTimeError
parameter_initializer3_negative_test: CompileTimeError
@@ -299,25 +276,62 @@
parameter_initializer6_negative_test: CompileTimeError
parser_quirks_test: StaticWarning
part2_test: StaticWarning
+part_refers_to_core_library_test/01: MissingCompileTimeError # Issue 29709
positional_parameters_type_test/01: StaticWarning
+prefix11_negative_test: Fail # Issue 11964
+prefix12_negative_test: Fail # Issue 11962
prefix13_negative_test: CompileTimeError
prefix15_negative_test: CompileTimeError
prefix15_test: StaticWarning
prefix16_test: StaticWarning
prefix18_negative_test: CompileTimeError
+prefix1_negative_test: Fail # Issue 11962
prefix22_test: StaticWarning
prefix23_test: StaticWarning
+prefix2_negative_test: Fail # Issue 11962
+prefix3_negative_test: Fail # Issue 12191
+prefix4_negative_test: Fail # Issue 11962
+prefix5_negative_test: Fail # Issue 11962
prefix7_negative_test: CompileTimeError
+prefix8_negative_test: Fail # Issue 11964
+private_member1_negative_test: Fail # Issue 14021
+private_member2_negative_test: Fail # Issue 14021
+private_member3_negative_test: Fail # Issue 14021
property_field_override_test: StaticWarning
+proxy3_test/03: StaticWarning # Issue 15467
+proxy3_test/04: StaticWarning # Issue 15467
+proxy_test/05: StaticWarning # Issue 15467
+proxy_test/06: StaticWarning # Issue 15467
+redirecting_factory_default_values_test/none: StaticWarning # Issue 14471
redirecting_factory_incompatible_signature_test: StaticWarning
+redirecting_factory_infinite_steps_test/01: Fail # Issue 13916
+redirecting_factory_long_test: StaticWarning
+regress_12561_test: StaticWarning # This test is expected to have warnings because of noSuchMethod overriding.
regress_13494_test: StaticWarning
+regress_17382_test: Skip # don't care about the static warning.
+regress_22438_test: Fail # Issue 14079
+regress_23408_test: Skip # don't care about the static warning.
+regress_25246_test: Skip
+regress_26668_test: Fail # Issue 26678
+regress_27572_test: StaticWarning # Warning about undefined method expected.
+regress_27617_test/1: MissingCompileTimeError
+regress_29025_test: StaticWarning # Issue 29081
+regress_29349_test: CompileTimeError # Issue 29744
+regress_29405_test: StaticWarning # Issue 29421
+reify_typevar_static_test/00: MissingCompileTimeError # Issue 21565
return_type_test: StaticWarning
script1_negative_test: CompileTimeError
script2_negative_test: CompileTimeError
+setter4_test: StaticWarning # Issue 14736
setter_declaration2_negative_test: CompileTimeError
setter_declaration_negative_test: CompileTimeError
setter_no_getter_call_test/01: StaticWarning
source_self_negative_test: CompileTimeError
+static_call_wrong_argument_count_negative_test: Fail # Issue 12156
+static_field_test/01: Fail # Issue 12541
+static_field_test/02: Fail # Issue 12541
+static_field_test/03: Fail # Issue 12541
+static_field_test/04: Fail # Issue 12541
static_initializer_type_error_test: StaticWarning
string_escape4_negative_test: CompileTimeError
string_interpolate1_negative_test: CompileTimeError
@@ -349,90 +363,49 @@
switch5_negative_test: CompileTimeError
switch7_negative_test: CompileTimeError
switch_fallthru_test: StaticWarning
+syntax_test/none: Fail # Issue 11575
test_negative_test: CompileTimeError
+transitive_private_library_access_test: StaticWarning # This test is expected to generate a warning, since it's intentionally referring to a variable that's not in scope.
try_catch4_test: StaticWarning # Note: test is in error but analyzer doesn't notice due to bug #24502 top_level_non_prefixed_library_test: StaticWarning
try_catch5_test: StaticWarning # Note: test is in error but analyzer doesn't notice due to bug #24502 top_level_non_prefixed_library_test: StaticWarning
type_argument_in_super_type_test: StaticWarning
-typed_selector2_test: StaticWarning
-type_variable_identifier_expression_test: StaticWarning
-type_variable_scope2_test: StaticWarning
+type_parameter_test/none: Fail # Issue 12160
+type_variable_bounds_test/none: Fail # Issue 11578
type_variable_conflict2_test/02: MissingCompileTimeError
type_variable_conflict2_test/06: MissingCompileTimeError
type_variable_conflict2_test/08: MissingCompileTimeError
type_variable_conflict2_test/10: MissingCompileTimeError
+type_variable_identifier_expression_test: StaticWarning
+type_variable_scope2_test: StaticWarning
+type_variable_scope_test/none: Fail # Issue 11578
+type_variable_static_context_negative_test: Fail # Issue 12161
+typed_selector2_test: StaticWarning
unary_plus_negative_test: CompileTimeError
unbound_getter_test: StaticWarning
unhandled_exception_negative_test: CompileTimeError
+unresolved_in_factory_negative_test: Fail # Issue 12163
unresolved_top_level_method_negative_test: StaticWarning
-vm/debug_break_vm_test/*: Skip
+unresolved_top_level_var_negative_test: Fail # Issue 12163
vm/debug_break_enabled_vm_test: Skip
+vm/debug_break_vm_test/*: Skip
+vm/reflect_core_vm_test: CompileTimeError # This test uses "const Symbol('_setAt')"
vm/type_cast_vm_test: StaticWarning
vm/type_vm_test: StaticWarning
void_type_test: StaticWarning
-issue13474_test: StaticWarning, OK # Issue 13474
-
-factory1_test/00: StaticWarning # Issue 18726 # Issues to be fixed now that type parameters have been fixed (issues 14221, 15553)
-factory1_test/01: StaticWarning # Issue 18726 # Issues to be fixed now that type parameters have been fixed (issues 14221, 15553)
-factory1_test/none: StaticWarning # Issue 18726 # Issues to be fixed now that type parameters have been fixed (issues 14221, 15553)
-generic_closure_test: StaticWarning
-local_function2_test: StaticWarning
-redirecting_factory_long_test: StaticWarning
-
-vm/reflect_core_vm_test: CompileTimeError # This test uses "const Symbol('_setAt')"
-
-regress_12561_test: StaticWarning # This test is expected to have warnings because of noSuchMethod overriding.
-
-main_not_a_function_test/01: Fail # Issue 20030
-main_test/03: Fail # Issue 20030
-no_main_test/01: Fail # Issue 20030
-
-transitive_private_library_access_test: StaticWarning # This test is expected to generate a warning, since it's intentionally referring to a variable that's not in scope.
-
-conflicting_type_variable_and_setter_test: CompileTimeError # Issue 25525
-
-mixin_supertype_subclass_test/02: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass_test/05: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass2_test/02: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass2_test/05: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass3_test/02: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass3_test/05: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass4_test/01: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass4_test/02: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass4_test/03: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass4_test/04: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass4_test/05: MissingStaticWarning # Issue 25614
-
-accessor_conflict_export2_test: StaticWarning # Issue 25624
-accessor_conflict_export_test: StaticWarning # Issue 25624
-accessor_conflict_import2_test: StaticWarning # Issue 25624
-accessor_conflict_import_prefixed2_test: StaticWarning # Issue 25624
-accessor_conflict_import_prefixed_test: StaticWarning # Issue 25624
-accessor_conflict_import_test: StaticWarning # Issue 25624
-
-for_in3_test: StaticWarning, OK # Test should have warning by design.
-for_in_side_effects_test: StaticWarning, OK # Test uses custom class that does not implement Iterable in for-in.
-
-initializing_formal_type_test: StaticWarning # Issue 26658 # Experimental feature: Use initializing formals in initializers and constructor body.
-
-regress_27572_test: StaticWarning # Warning about undefined method expected.
-
-part_refers_to_core_library_test/01: MissingCompileTimeError # Issue 29709
-
-generalized_void_syntax_test: Skip # TODO, Issue #30177.
-
-[ $compiler == dart2analyzer && $builder_tag == strong ]
+[ $builder_tag == strong && $compiler == dart2analyzer ]
*: Skip # Issue 28649
-[$compiler == dart2analyzer && $runtime == none]
+[ $compiler == dart2analyzer && $runtime == none ]
assertion_initializer_const_error2_test/cc10: CompileTimeError # Issue #31320
assertion_initializer_const_error2_test/cc11: CompileTimeError # Issue #31320
assertion_initializer_const_function_error_test/01: MissingCompileTimeError
assertion_initializer_const_function_test/01: MissingStaticWarning
assertion_initializer_test: CompileTimeError
-[$compiler == dart2analyzer && $runtime == none && $checked]
-assertion_initializer_const_error2_test/none: Pass
+[ $compiler == dart2analyzer && $runtime == none && $checked ]
assertion_initializer_const_error2_test/*: MissingCompileTimeError # Issue #
assertion_initializer_const_error2_test/cc10: Pass # Issue #31321
assertion_initializer_const_error2_test/cc11: Pass # Issue #31321
+assertion_initializer_const_error2_test/none: Pass
+
diff --git a/tests/language/language_dart2js.status b/tests/language/language_dart2js.status
index a0b4bae..96b01ad 100644
--- a/tests/language/language_dart2js.status
+++ b/tests/language/language_dart2js.status
@@ -2,264 +2,36 @@
# 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.
-# VM specific tests that should not be run by dart2js.
-[ $compiler == dart2js ]
-vm/*: Skip # Issue 12699
+[ $compiler != dart2analyzer ]
+switch_case_warn_test: Skip # Analyzer only, see language_analyzer2.status
+# VM specific tests that should not be run by dart2js.
[ $compiler == dart2js ]
assertion_initializer_test: Crash
generalized_void_syntax_test: CompileTimeError
+vm/*: Skip # Issue 12699
-[ $compiler == dart2js && $arch == ia32 && $runtime == d8 ]
+[ $arch == ia32 && $compiler == dart2js && $runtime == d8 ]
new_expression2_negative_test: Pass, Crash # Flaky, issue 31131
-[ $compiler == dart2js && !$dart2js_with_kernel ]
-accessor_conflict_export2_test: Crash # Issue 25626
-accessor_conflict_export_test: Crash # Issue 25626
-accessor_conflict_import2_test: RuntimeError # Issue 25626
-accessor_conflict_import_prefixed2_test: RuntimeError # Issue 25626
-accessor_conflict_import_prefixed_test: RuntimeError # Issue 25626
-accessor_conflict_import_test: RuntimeError # Issue 25626
-assertion_initializer_const_error2_test/none: Pass
-assertion_initializer_const_error2_test/*: Crash
-assertion_initializer_const_function_test/01: CompileTimeError
-assertion_initializer_const_function_error_test/01: Crash
-async_star_cancel_while_paused_test: RuntimeError # Issue 22853
-bad_constructor_test/05: CompileTimeError # Issue 13639
-bad_typedef_test/00: Crash # Issue 28214
-bit_operations_test: RuntimeError, OK # Issue 1533
-branch_canonicalization_test: RuntimeError # Issue 638.
-call_function_apply_test: RuntimeError # Issue 23873
-canonical_const2_test: RuntimeError, OK # Issue 1533
-closure_in_field_test/01: RuntimeError # Issue 30467
-closure_in_field_test/02: RuntimeError # Issue 30467
-const_dynamic_type_literal_test/02: CompileTimeError # Issue 23009
-const_dynamic_type_literal_test/03: CompileTimeError # Issue 23009
-const_switch_test/02: RuntimeError # Issue 17960
-const_switch_test/04: RuntimeError # Issue 17960
-constructor_duplicate_final_test/01: Fail # Issue 13363
-constructor_duplicate_final_test/02: Fail # Issue 13363
-constructor_named_arguments_test/01: CompileTimeError # Issue 25225
-deferred_not_loaded_check_test: Fail # Issue 27577
-double_int_to_string_test: RuntimeError # Issue 1533
-duplicate_part_test/01: MissingCompileTimeError # Issue 27517
-enum_test: Fail # Issue 28340
-expect_test: RuntimeError, OK # Issue 13080
-external_test/10: CompileTimeError # Issue 12887
-external_test/13: CompileTimeError # Issue 12887
-external_test/20: CompileTimeError # Issue 12887
-final_attempt_reinitialization_test.dart: Skip # Issue 29659
-full_stacktrace1_test: Pass, RuntimeError # Issue 12698
-full_stacktrace2_test: Pass, RuntimeError # Issue 12698
-full_stacktrace3_test: Pass, RuntimeError # Issue 12698
-generic_field_mixin4_test: Crash # Issue 18651
-generic_field_mixin5_test: Crash # Issue 18651
-generic_function_typedef2_test/00: Crash # Issue 28214
-generic_function_typedef2_test/01: Crash # Issue 28214
-generic_function_typedef2_test/02: Crash # Issue 28214
-generic_function_typedef2_test/03: Crash # Issue 28214
-generic_function_typedef2_test/05: Crash # Issue 28214
-generic_function_typedef2_test/06: Crash # Issue 28214
-getter_setter_in_lib_test: Fail # Issue 23288
-identical_closure2_test: RuntimeError # Issue 1533, Issue 12596
-if_null_assignment_behavior_test/13: Crash # Issue 23491
-if_null_assignment_behavior_test/14: Crash # Issue 23491
-infinity_test: RuntimeError # Issue 4984
-integer_division_by_zero_test: RuntimeError # Issue 8301
-invocation_mirror2_test: RuntimeError # Issue 6490 (wrong retval).
-invocation_mirror_empty_arguments_test: Fail # Issue 24331
-left_shift_test: RuntimeError # Issue 1533
-list_literal4_test: RuntimeError # Issue 12890
-malformed_test/none: Fail # Expect failure in lib/_internal/js_runtime/lib/preambles/d8.js
-method_name_test: Fail # issue 25574
-method_override5_test: RuntimeError # Issue 12809
-mint_arithmetic_test: RuntimeError # Issue 1533
-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_mixin2_test: RuntimeError # Issue 13109.
-mixin_mixin3_test: RuntimeError # Issue 13109.
-mixin_mixin_type_arguments_test: RuntimeError # Issue 29587
-mixin_of_mixin_test: CompileTimeError # Issue 23773
-mixin_super_2_test: CompileTimeError # Issue 23773
-mixin_super_bound2_test: CompileTimeError # Issue 23773
-mixin_super_constructor_named_test/01: Fail # Issue 15101
-mixin_super_constructor_positionals_test/01: Fail # Issue 15101
-mixin_super_test: CompileTimeError # Issue 23773
-mixin_super_use_test: CompileTimeError # Issue 23773
-mixin_superclass_test: CompileTimeError # Issue 23773
-mixin_supertype_subclass2_test: CompileTimeError # Issue 23773
-mixin_supertype_subclass3_test: CompileTimeError # Issue 23773
-mixin_supertype_subclass4_test: CompileTimeError # Issue 23773
-mixin_supertype_subclass_test: CompileTimeError # Issue 23773
-modulo_test: RuntimeError # Issue 15246
-multiline_newline_test/01: CompileTimeError # Issue 23888
-multiline_newline_test/01r: CompileTimeError # Issue 23888
-multiline_newline_test/02: CompileTimeError # Issue 23888
-multiline_newline_test/02r: CompileTimeError # Issue 23888
-multiline_newline_test/03: CompileTimeError # Issue 23888
-multiline_newline_test/03r: CompileTimeError # Issue 23888
-multiline_newline_test/04: MissingCompileTimeError # Issue 23888
-multiline_newline_test/04r: MissingCompileTimeError # Issue 23888
-multiline_newline_test/05: MissingCompileTimeError # Issue 23888
-multiline_newline_test/05r: MissingCompileTimeError # Issue 23888
-multiline_newline_test/06: MissingCompileTimeError # Issue 23888
-multiline_newline_test/06r: MissingCompileTimeError # Issue 23888
-multiline_newline_test/none: RuntimeError # Issue 23888
-nan_identical_test: Fail # Issue 11551
-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
-number_identity2_test: RuntimeError # Issue 12596
-numbers_test: RuntimeError, OK # Issue 1533
-override_inheritance_mixed_test/08: Fail # Issue 18124
-override_inheritance_mixed_test/09: Fail # Issue 18124
-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
-regress_22976_test: CompileTimeError # Issue 23132
-regress_24283_test: RuntimeError # Issue 1533
-regress_28341_test: Fail # Issue 28340
-regress_29481_test: Crash # Issue 29754
-scope_variable_test/01: MissingCompileTimeError # Issue 13016
-setter4_test: CompileTimeError # issue 13639
-stacktrace_demangle_ctors_test: Fail # dart2js stack traces are not always compliant.
-stacktrace_rethrow_error_test: Pass, RuntimeError # Issue 12698
-stacktrace_rethrow_nonerror_test: Pass, RuntimeError # Issue 12698
-stacktrace_test: Pass, RuntimeError # # Issue 12698
-symbol_literal_test/*: Fail # Issue 21825
-truncdiv_test: RuntimeError # Issue 15246
-try_catch_on_syntax_test/10: Fail # Issue 19823
-try_catch_on_syntax_test/11: Fail # Issue 19823
-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
-syntax_test/none: CompileTimeError # Issue #30176.
+[ $compiler == dart2js && $runtime == chrome && $system == macos ]
+await_future_test: Pass, Timeout # Issue 26735
-library_env_test/has_no_html_support: RuntimeError, OK # The following tests are supposed to fail. In testing-mode, dart2js supports all dart:X libraries (because it uses '--categories=all').
-library_env_test/has_no_io_support: RuntimeError, OK # The following tests are supposed to fail. In testing-mode, dart2js supports all dart:X libraries (because it uses '--categories=all').
-library_env_test/has_no_mirror_support: RuntimeError, OK # The following tests are supposed to fail. In testing-mode, dart2js supports all dart:X libraries (because it uses '--categories=all').
+[ $compiler == dart2js && $runtime == chromeOnAndroid ]
+override_field_test/02: Pass, Slow # TODO(kasperl): Please triage.
+[ $compiler == dart2js && $runtime != drt ]
+issue23244_test: RuntimeError # 23244
-[ $compiler == dart2js && $csp && $browser && !$fast_startup ]
-conditional_import_string_test: Fail # Issue 30615
-conditional_import_test: Fail # Issue 30615
-
-[ $compiler == dart2js && $fast_startup && !$dart2js_with_kernel ]
-assertion_initializer_const_error2_test/none: Pass
-assertion_initializer_const_error2_test/*: Crash
-assertion_initializer_const_error2_test/cc10: CompileTimeError # Issue #31321
-assertion_initializer_const_error2_test/cc11: CompileTimeError # Issue #31321
-assertion_initializer_const_function_error_test/01: Crash
-assertion_initializer_const_function_test/01: CompileTimeError
-assertion_initializer_test: Crash
-const_evaluation_test/*: Fail # mirrors not supported
-deferred_constraints_constants_test/none: Fail # mirrors not supported
-deferred_constraints_constants_test/reference_after_load: Fail # mirrors not supported
-deferred_constraints_constants_test: Pass # mirrors not supported, passes for the wrong reason
-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: Fail # mirrors not supported
-vm/reflect_core_vm_test: Fail # mirrors not supported
+[ $compiler == dart2js && $runtime == ff ]
+round_test: Pass, Fail, OK # Fixed in ff 35. Common JavaScript engine Math.round bug.
[ $compiler == dart2js && $runtime == jsshell && !$dart2js_with_kernel ]
-await_for_test: Skip # Jsshell does not provide periodic timers, Issue 7728
-async_star_test: RuntimeError # Jsshell does not provide non-zero timers, Issue 7728
-regress_23996_test: RuntimeError # Jsshell does not provide non-zero timers, Issue 7728
-async_star_no_cancel_test: RuntimeError # Need triage
async_star_no_cancel2_test: RuntimeError # Need triage
-
-[ $compiler == dart2js && $browser && !$dart2js_with_kernel ]
-config_import_test: Fail # Test flag is not passed to the compiler.
-
-library_env_test/has_no_io_support: Pass # Issue 27398
-library_env_test/has_io_support: RuntimeError # Issue 27398
-
-
-[ $compiler == dart2js && $checked && !$dart2js_with_kernel ]
-async_return_types_test/nestedFuture: Fail # Issue 26429
-async_return_types_test/wrongTypeParameter: Fail # Issue 26429
-regress_26133_test: RuntimeError # Issue 26429
-regress_29405_test: Fail # Issue 29422
-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 && !$checked && !$dart2js_with_kernel ]
-assertion_test: RuntimeError
-type_checks_in_factory_method_test: RuntimeError # Issue 12746
-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
-
-[ $compiler == dart2js && !$checked && $enable_asserts && !$dart2js_with_kernel ]
-assertion_test: RuntimeError # Issue 12748
-
-[ $compiler == dart2js && !$checked && $enable_asserts ]
-bool_check_test: RuntimeError # Issue 29647
-
-[ $compiler == dart2js && !$checked && $minified && !$dart2js_with_kernel ]
-f_bounded_quantification5_test: Fail, OK # Issue 12605
-
-[ $compiler == dart2js && $minified && !$dart2js_with_kernel ]
-cyclic_type_test/0*: Fail # Issue 12605
-cyclic_type2_test: Fail # Issue 12605
-f_bounded_quantification4_test: Fail, Pass # Issue 12605
-generic_closure_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
-symbol_conflict_test: RuntimeError # Issue 23857
-
+async_star_no_cancel_test: RuntimeError # Need triage
+async_star_test: RuntimeError # Jsshell does not provide non-zero timers, Issue 7728
+await_for_test: Skip # Jsshell does not provide periodic timers, Issue 7728
+regress_23996_test: RuntimeError # Jsshell does not provide non-zero timers, Issue 7728
[ $compiler == dart2js && $runtime == none ]
*: Fail, Pass # TODO(ahe): Triage these tests.
@@ -267,63 +39,30 @@
[ $compiler == dart2js && $runtime == none && $dart2js_with_kernel ]
*: Fail, Pass, Crash # TODO(sigmund): we should have no crashes when migration completes
-[ $compiler == dart2js && ($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 == chrome && $system == macos ]
-await_future_test: Pass, Timeout # Issue 26735
-
-[ $compiler == dart2js && ($runtime == chrome || $runtime == ff) && $system == windows ]
-string_literals_test: RuntimeError # Issue 27533
-
[ $compiler == dart2js && $runtime == safarimobilesim ]
call_through_getter_test: Fail, OK # Safari codegen bug, fixed on some versions of Safari 7.1 (Version 7.1 (9537.85.10.17.1))
-[ $compiler == dart2js && $runtime == chromeOnAndroid ]
-override_field_test/02: Pass, Slow # TODO(kasperl): Please triage.
+[ $compiler == dart2js && $system == windows && ($runtime == chrome || $runtime == ff) ]
+string_literals_test: RuntimeError # Issue 27533
-[ $minified && !$dart2js_with_kernel ]
-stack_trace_test: Fail, OK # Stack trace not preserved in minified code.
-regress_21795_test: RuntimeError # Issue 12605
+[ $compiler == dart2js && $browser && $csp && !$fast_startup ]
+conditional_import_string_test: Fail # Issue 30615
+conditional_import_test: Fail # Issue 30615
-[ $compiler == dart2js && $runtime != drt ]
-issue23244_test: RuntimeError # 23244
+[ $compiler == dart2js && $browser && !$dart2js_with_kernel ]
+config_import_test: Fail # Test flag is not passed to the compiler.
+library_env_test/has_io_support: RuntimeError # Issue 27398
+library_env_test/has_no_io_support: Pass # Issue 27398
-[ $compiler == dart2js && $host_checked && !$dart2js_with_kernel ]
-assertion_initializer_const_error2_test/cc01: Crash
-assertion_initializer_const_error2_test/cc02: Crash
-assertion_initializer_const_error2_test/cc03: Crash
-assertion_initializer_const_error2_test/cc04: Crash
-assertion_initializer_const_error2_test/cc05: Crash
-assertion_initializer_const_error2_test/cc06: Crash
-assertion_initializer_const_error2_test/cc07: Crash
-assertion_initializer_const_error2_test/cc08: Crash
-assertion_initializer_const_error2_test/cc09: Crash
-assertion_initializer_const_error2_test/cc10: Crash
-assertion_initializer_const_error2_test/cc11: Crash
-assertion_initializer_const_function_error_test/01: Crash
-assertion_initializer_const_function_test/01: Crash
-assertion_initializer_test: Crash
-regress_26855_test/1: Crash # Issue 26867
-regress_26855_test/2: Crash # Issue 26867
-regress_26855_test/3: Crash # Issue 26867
-regress_26855_test/4: Crash # Issue 26867
-
-[ $compiler != dart2analyzer ]
-switch_case_warn_test: SKIP # Analyzer only, see language_analyzer2.status
-
-[ $compiler == dart2js && $dart2js_with_kernel && !$checked ]
-assertion_initializer_const_error2_test/none: Pass
-assertion_initializer_const_error2_test/*: CompileTimeError # Issue #31321
-
-[ $compiler == dart2js && $dart2js_with_kernel && $host_checked ]
+[ $compiler == dart2js && $checked && $dart2js_with_kernel ]
arithmetic_canonicalization_test: RuntimeError
+assertion_initializer_const_function_test/01: RuntimeError
assertion_initializer_test: CompileTimeError
-assertion_test: RuntimeError
-async_await_test: Crash # 'file:*/pkg/compiler/lib/src/ssa/locals_handler.dart': Failed assertion: line 296 pos 12: 'local != null': is not true.
+assign_static_type_test/01: Fail
+assign_static_type_test/02: MissingCompileTimeError
+async_await_test: Crash # NoSuchMethodError: The method 'generateBreak' was called on null.
+async_return_types_test/nestedFuture: Fail # Issue 26429
+async_return_types_test/wrongTypeParameter: Fail # Issue 26429
async_star_cancel_while_paused_test: RuntimeError
bad_constructor_test/06: Crash # NoSuchMethodError: The getter 'iterator' was called on null.
bad_override_test/03: MissingCompileTimeError
@@ -344,6 +83,752 @@
class_cycle_test/03: MissingCompileTimeError
closure_in_field_test/01: RuntimeError
closure_in_field_test/02: RuntimeError
+closure_type_test/01: RuntimeError # Issue 12745
+closure_type_test/none: RuntimeError # Issue 12745
+compile_time_constant_checked2_test/01: MissingCompileTimeError
+compile_time_constant_checked2_test/02: MissingCompileTimeError
+compile_time_constant_checked2_test/03: MissingCompileTimeError
+compile_time_constant_checked2_test/04: MissingCompileTimeError
+compile_time_constant_checked2_test/05: MissingCompileTimeError
+compile_time_constant_checked2_test/06: MissingCompileTimeError
+compile_time_constant_checked3_test/01: MissingCompileTimeError
+compile_time_constant_checked3_test/02: MissingCompileTimeError
+compile_time_constant_checked3_test/03: MissingCompileTimeError
+compile_time_constant_checked3_test/04: MissingCompileTimeError
+compile_time_constant_checked3_test/05: MissingCompileTimeError
+compile_time_constant_checked3_test/06: MissingCompileTimeError
+compile_time_constant_checked4_test/01: MissingCompileTimeError
+compile_time_constant_checked4_test/02: MissingCompileTimeError
+compile_time_constant_checked4_test/03: MissingCompileTimeError
+compile_time_constant_checked5_test/03: MissingCompileTimeError
+compile_time_constant_checked5_test/04: MissingCompileTimeError
+compile_time_constant_checked5_test/08: MissingCompileTimeError
+compile_time_constant_checked5_test/09: MissingCompileTimeError
+compile_time_constant_checked5_test/13: MissingCompileTimeError
+compile_time_constant_checked5_test/14: MissingCompileTimeError
+compile_time_constant_checked5_test/18: MissingCompileTimeError
+compile_time_constant_checked5_test/19: MissingCompileTimeError
+compile_time_constant_checked_test/01: Fail
+compile_time_constant_checked_test/02: MissingCompileTimeError
+compile_time_constant_checked_test/03: Fail
+conditional_import_string_test: RuntimeError
+conditional_import_test: RuntimeError
+config_import_corelib_test: RuntimeError
+config_import_test: RuntimeError
+const_constructor2_test/13: MissingCompileTimeError
+const_constructor2_test/14: MissingCompileTimeError
+const_constructor2_test/15: MissingCompileTimeError
+const_constructor2_test/16: MissingCompileTimeError
+const_constructor2_test/17: MissingCompileTimeError
+const_constructor2_test/20: MissingCompileTimeError
+const_constructor2_test/22: MissingCompileTimeError
+const_constructor2_test/24: MissingCompileTimeError
+const_constructor3_test/02: MissingCompileTimeError
+const_constructor3_test/04: MissingCompileTimeError
+const_error_multiply_initialized_test/02: MissingCompileTimeError
+const_error_multiply_initialized_test/04: MissingCompileTimeError
+const_evaluation_test/01: RuntimeError
+const_factory_with_body_test/01: MissingCompileTimeError
+const_init2_test/02: MissingCompileTimeError
+const_instance_field_test/01: MissingCompileTimeError
+const_map2_test/00: MissingCompileTimeError
+const_map3_test/00: MissingCompileTimeError
+const_switch2_test/01: MissingCompileTimeError
+const_switch_test/02: RuntimeError
+const_switch_test/04: RuntimeError
+constants_test/05: MissingCompileTimeError
+constructor2_test: RuntimeError
+constructor3_test: RuntimeError
+constructor5_test: RuntimeError
+constructor6_test: RuntimeError
+constructor_named_arguments_test/none: RuntimeError
+constructor_redirect1_negative_test: Crash # Issue 30856
+constructor_redirect2_negative_test: Crash # Issue 30856
+constructor_redirect2_test/01: MissingCompileTimeError
+constructor_redirect_test/01: Crash # Assertion failure: Cannot find value Instance of 'ThisLocal' in (local(A.named2#x), local(A.named2#y), local(A.named2#z)) for j:constructor(A.named2).
+cyclic_constructor_test/01: Crash # Issue 30856
+deferred_closurize_load_library_test: RuntimeError
+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: RuntimeError
+deferred_constraints_type_annotation_test/catch_check: RuntimeError
+deferred_constraints_type_annotation_test/is_check: RuntimeError
+deferred_constraints_type_annotation_test/type_annotation1: Fail
+deferred_constraints_type_annotation_test/type_annotation_generic1: Fail
+deferred_constraints_type_annotation_test/type_annotation_generic4: Fail
+deferred_inheritance_constraints_test/extends: MissingCompileTimeError
+deferred_inheritance_constraints_test/implements: MissingCompileTimeError
+deferred_inheritance_constraints_test/mixin: MissingCompileTimeError
+deferred_load_constants_test/none: RuntimeError
+deferred_load_library_wrong_args_test/01: MissingRuntimeError
+deferred_not_loaded_check_test: RuntimeError
+deferred_redirecting_factory_test: RuntimeError
+double_int_to_string_test: RuntimeError
+duplicate_export_negative_test: Fail
+duplicate_implements_test/01: MissingCompileTimeError
+duplicate_implements_test/02: MissingCompileTimeError
+duplicate_implements_test/03: MissingCompileTimeError
+duplicate_implements_test/04: MissingCompileTimeError
+dynamic_prefix_core_test/01: RuntimeError
+dynamic_prefix_core_test/none: RuntimeError
+enum_mirror_test: RuntimeError
+example_constructor_test: RuntimeError
+expect_test: RuntimeError
+external_test/10: MissingRuntimeError
+external_test/13: MissingRuntimeError
+external_test/20: MissingRuntimeError
+factory_redirection_test/07: MissingCompileTimeError
+factory_redirection_test/08: Fail
+factory_redirection_test/09: Fail
+factory_redirection_test/10: Fail
+factory_redirection_test/12: Fail
+factory_redirection_test/13: Fail
+factory_redirection_test/14: Fail
+fauxverride_test/03: MissingCompileTimeError
+fauxverride_test/05: MissingCompileTimeError
+field_initialization_order_test: RuntimeError
+field_override3_test/00: MissingCompileTimeError
+field_override3_test/01: MissingCompileTimeError
+field_override3_test/02: MissingCompileTimeError
+field_override3_test/03: MissingCompileTimeError
+field_override4_test/02: MissingCompileTimeError
+final_attempt_reinitialization_test/01: MissingCompileTimeError
+final_attempt_reinitialization_test/02: MissingCompileTimeError
+final_field_initialization_order_test: RuntimeError
+generic_field_mixin4_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in (Instance of 'ThisLocal') for j:field(M.field).
+generic_field_mixin5_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in (Instance of 'ThisLocal') for j:field(M.field).
+generic_field_mixin_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in () for j:constructor(C3.).
+generic_local_functions_test: Crash # Unsupported operation: Unsupported type parameter type node Y.
+generic_methods_type_expression_test/01: RuntimeError
+generic_methods_type_expression_test/03: RuntimeError
+generic_methods_type_expression_test/none: RuntimeError
+getter_override2_test/02: MissingCompileTimeError
+getter_override_test/00: MissingCompileTimeError
+getter_override_test/01: MissingCompileTimeError
+getter_override_test/02: MissingCompileTimeError
+identical_closure2_test: RuntimeError
+if_null_assignment_behavior_test/14: RuntimeError
+infinite_switch_label_test: Crash # NoSuchMethodError: The method 'generateBreak' was called on null.
+infinity_test: RuntimeError
+instance_creation_in_function_annotation_test: RuntimeError
+integer_division_by_zero_test: RuntimeError
+internal_library_test/02: Crash # NoSuchMethodError: Class 'DillLibraryBuilder' has no instance getter 'mixinApplicationClasses'.
+invocation_mirror2_test: RuntimeError
+invocation_mirror_empty_arguments_test: RuntimeError
+invocation_mirror_test: RuntimeError
+issue21079_test: RuntimeError
+left_shift_test: RuntimeError
+library_env_test/has_mirror_support: RuntimeError
+library_env_test/has_no_html_support: RuntimeError
+library_env_test/has_no_io_support: RuntimeError
+list_literal1_test/01: MissingCompileTimeError
+list_literal4_test: RuntimeError
+main_not_a_function_test/01: CompileTimeError
+malbounded_instantiation_test/01: RuntimeError # Issue 12702
+malbounded_type_cast2_test: RuntimeError # Issue 14121
+malbounded_type_cast_test: RuntimeError # Issue 14121
+malbounded_type_test2_test: RuntimeError # Issue 14121
+malbounded_type_test_test/03: Fail # Issue 14121
+malbounded_type_test_test/04: Fail # Issue 14121
+malformed2_test/00: RuntimeError
+malformed2_test/01: MissingCompileTimeError
+map_literal1_test/01: MissingCompileTimeError
+method_name_test: CompileTimeError
+method_override5_test: RuntimeError
+method_override7_test/00: MissingCompileTimeError
+method_override7_test/01: MissingCompileTimeError
+method_override7_test/02: MissingCompileTimeError
+method_override8_test/00: MissingCompileTimeError
+method_override8_test/01: MissingCompileTimeError
+mint_arithmetic_test: RuntimeError
+mixin_black_listed_test/02: MissingCompileTimeError
+mixin_forwarding_constructor4_test/01: MissingCompileTimeError
+mixin_forwarding_constructor4_test/02: MissingCompileTimeError
+mixin_forwarding_constructor4_test/03: MissingCompileTimeError
+mixin_illegal_super_use_test/01: MissingCompileTimeError
+mixin_illegal_super_use_test/02: MissingCompileTimeError
+mixin_illegal_super_use_test/03: MissingCompileTimeError
+mixin_illegal_super_use_test/04: MissingCompileTimeError
+mixin_illegal_super_use_test/05: MissingCompileTimeError
+mixin_illegal_super_use_test/06: MissingCompileTimeError
+mixin_illegal_super_use_test/07: MissingCompileTimeError
+mixin_illegal_super_use_test/08: MissingCompileTimeError
+mixin_illegal_super_use_test/09: MissingCompileTimeError
+mixin_illegal_super_use_test/10: MissingCompileTimeError
+mixin_illegal_super_use_test/11: MissingCompileTimeError
+mixin_illegal_superclass_test/01: MissingCompileTimeError
+mixin_illegal_superclass_test/02: MissingCompileTimeError
+mixin_illegal_superclass_test/03: MissingCompileTimeError
+mixin_illegal_superclass_test/04: MissingCompileTimeError
+mixin_illegal_superclass_test/05: MissingCompileTimeError
+mixin_illegal_superclass_test/06: MissingCompileTimeError
+mixin_illegal_superclass_test/07: MissingCompileTimeError
+mixin_illegal_superclass_test/08: MissingCompileTimeError
+mixin_illegal_superclass_test/09: MissingCompileTimeError
+mixin_illegal_superclass_test/10: MissingCompileTimeError
+mixin_illegal_superclass_test/11: MissingCompileTimeError
+mixin_illegal_superclass_test/12: MissingCompileTimeError
+mixin_illegal_superclass_test/13: MissingCompileTimeError
+mixin_illegal_superclass_test/14: MissingCompileTimeError
+mixin_illegal_superclass_test/15: MissingCompileTimeError
+mixin_illegal_superclass_test/16: MissingCompileTimeError
+mixin_illegal_superclass_test/17: MissingCompileTimeError
+mixin_illegal_superclass_test/18: MissingCompileTimeError
+mixin_illegal_superclass_test/19: MissingCompileTimeError
+mixin_illegal_superclass_test/20: MissingCompileTimeError
+mixin_illegal_superclass_test/21: MissingCompileTimeError
+mixin_illegal_superclass_test/22: MissingCompileTimeError
+mixin_illegal_superclass_test/23: MissingCompileTimeError
+mixin_illegal_superclass_test/24: MissingCompileTimeError
+mixin_illegal_superclass_test/25: MissingCompileTimeError
+mixin_illegal_superclass_test/26: MissingCompileTimeError
+mixin_illegal_superclass_test/27: MissingCompileTimeError
+mixin_illegal_superclass_test/28: MissingCompileTimeError
+mixin_illegal_superclass_test/29: MissingCompileTimeError
+mixin_illegal_superclass_test/30: MissingCompileTimeError
+mixin_issue10216_2_test: RuntimeError
+mixin_mixin2_test: RuntimeError
+mixin_mixin3_test: RuntimeError
+mixin_mixin4_test: RuntimeError
+mixin_mixin5_test: RuntimeError
+mixin_mixin6_test: RuntimeError
+mixin_mixin7_test: RuntimeError
+mixin_mixin_bound2_test: RuntimeError
+mixin_mixin_bound_test: RuntimeError
+mixin_mixin_test: RuntimeError
+mixin_mixin_type_arguments_test: Crash # NoSuchMethodError: The method 'hasSubclass' was called on null.
+mixin_of_mixin_test/01: CompileTimeError
+mixin_of_mixin_test/02: CompileTimeError
+mixin_of_mixin_test/03: CompileTimeError
+mixin_of_mixin_test/04: CompileTimeError
+mixin_of_mixin_test/05: CompileTimeError
+mixin_of_mixin_test/06: CompileTimeError
+mixin_of_mixin_test/07: CompileTimeError
+mixin_of_mixin_test/08: CompileTimeError
+mixin_of_mixin_test/09: CompileTimeError
+mixin_of_mixin_test/10: CompileTimeError
+mixin_of_mixin_test/11: CompileTimeError
+mixin_of_mixin_test/12: CompileTimeError
+mixin_of_mixin_test/13: CompileTimeError
+mixin_of_mixin_test/14: CompileTimeError
+mixin_of_mixin_test/15: CompileTimeError
+mixin_of_mixin_test/16: CompileTimeError
+mixin_of_mixin_test/17: CompileTimeError
+mixin_of_mixin_test/18: CompileTimeError
+mixin_of_mixin_test/19: CompileTimeError
+mixin_of_mixin_test/20: CompileTimeError
+mixin_of_mixin_test/21: CompileTimeError
+mixin_of_mixin_test/22: CompileTimeError
+mixin_of_mixin_test/none: CompileTimeError
+mixin_super_2_test: CompileTimeError
+mixin_super_bound2_test/01: CompileTimeError
+mixin_super_bound2_test/none: CompileTimeError
+mixin_super_constructor_named_test/01: MissingCompileTimeError
+mixin_super_constructor_positionals_test/01: MissingCompileTimeError
+mixin_super_test: CompileTimeError
+mixin_super_use_test: CompileTimeError
+mixin_superclass_test: CompileTimeError
+mixin_supertype_subclass2_test/01: CompileTimeError
+mixin_supertype_subclass2_test/02: CompileTimeError
+mixin_supertype_subclass2_test/03: CompileTimeError
+mixin_supertype_subclass2_test/04: CompileTimeError
+mixin_supertype_subclass2_test/05: CompileTimeError
+mixin_supertype_subclass2_test/none: CompileTimeError
+mixin_supertype_subclass3_test/01: CompileTimeError
+mixin_supertype_subclass3_test/02: CompileTimeError
+mixin_supertype_subclass3_test/03: CompileTimeError
+mixin_supertype_subclass3_test/04: CompileTimeError
+mixin_supertype_subclass3_test/05: CompileTimeError
+mixin_supertype_subclass3_test/none: CompileTimeError
+mixin_supertype_subclass4_test/01: CompileTimeError
+mixin_supertype_subclass4_test/02: CompileTimeError
+mixin_supertype_subclass4_test/03: CompileTimeError
+mixin_supertype_subclass4_test/04: CompileTimeError
+mixin_supertype_subclass4_test/05: CompileTimeError
+mixin_supertype_subclass4_test/none: CompileTimeError
+mixin_supertype_subclass_test/01: CompileTimeError
+mixin_supertype_subclass_test/02: CompileTimeError
+mixin_supertype_subclass_test/03: CompileTimeError
+mixin_supertype_subclass_test/04: CompileTimeError
+mixin_supertype_subclass_test/05: CompileTimeError
+mixin_supertype_subclass_test/none: CompileTimeError
+modulo_test: RuntimeError
+multiline_newline_test/04: MissingCompileTimeError
+multiline_newline_test/04r: MissingCompileTimeError
+multiline_newline_test/05: MissingCompileTimeError
+multiline_newline_test/05r: MissingCompileTimeError
+multiline_newline_test/06: MissingCompileTimeError
+multiline_newline_test/06r: MissingCompileTimeError
+named_constructor_test/01: MissingRuntimeError
+named_parameters_default_eq_test/02: MissingCompileTimeError
+nan_identical_test: RuntimeError
+nested_switch_label_test: Crash # NoSuchMethodError: The method 'generateBreak' was called on null.
+no_main_test/01: CompileTimeError
+null_test/02: MissingCompileTimeError
+null_test/03: MissingCompileTimeError
+null_test/none: RuntimeError
+number_identity2_test: RuntimeError
+numbers_test: RuntimeError
+override_field_method1_negative_test: Fail
+override_field_method2_negative_test: Fail
+override_field_method4_negative_test: Fail
+override_field_method5_negative_test: Fail
+override_field_test/01: MissingCompileTimeError
+override_inheritance_mixed_test/01: MissingCompileTimeError
+override_inheritance_mixed_test/02: MissingCompileTimeError
+override_inheritance_mixed_test/03: MissingCompileTimeError
+override_inheritance_mixed_test/04: MissingCompileTimeError
+override_method_with_field_test/01: MissingCompileTimeError
+private_super_constructor_test/01: MissingCompileTimeError
+redirecting_constructor_initializer_test: RuntimeError
+redirecting_factory_default_values_test/01: MissingCompileTimeError
+redirecting_factory_default_values_test/02: MissingCompileTimeError
+redirecting_factory_infinite_steps_test/01: Fail
+redirecting_factory_long_test: RuntimeError
+redirecting_factory_reflection_test: RuntimeError
+regress_13494_test: RuntimeError
+regress_17382_test: RuntimeError
+regress_20394_test/01: MissingCompileTimeError
+regress_22936_test/01: RuntimeError
+regress_22976_test/01: CompileTimeError
+regress_22976_test/02: CompileTimeError
+regress_22976_test/none: CompileTimeError
+regress_24283_test: RuntimeError
+regress_26133_test: RuntimeError # Issue 26429
+regress_27572_test: RuntimeError
+regress_27617_test/1: Crash # Assertion failure: Unexpected constructor j:constructor(Foo._) in ConstructorDataImpl._getConstructorConstant
+regress_28217_test/01: MissingCompileTimeError
+regress_28217_test/none: MissingCompileTimeError
+regress_28255_test: RuntimeError
+regress_29405_test: RuntimeError # Issue 29422
+setter_override_test/00: MissingCompileTimeError
+setter_override_test/03: MissingCompileTimeError
+stacktrace_demangle_ctors_test: RuntimeError
+stacktrace_test: RuntimeError
+static_getter_no_setter1_test/01: RuntimeError
+static_getter_no_setter2_test/01: RuntimeError
+static_getter_no_setter3_test/01: RuntimeError
+super_call4_test: Crash # NoSuchMethodError: The getter 'thisLocal' was called on null.
+super_test: RuntimeError
+switch_bad_case_test/01: MissingCompileTimeError
+switch_bad_case_test/02: MissingCompileTimeError
+switch_case_test/00: MissingCompileTimeError
+switch_case_test/01: MissingCompileTimeError
+switch_case_test/02: MissingCompileTimeError
+syntax_test/none: CompileTimeError
+top_level_getter_no_setter1_test/01: RuntimeError
+top_level_getter_no_setter2_test/01: RuntimeError
+truncdiv_test: RuntimeError
+try_catch_test/01: MissingCompileTimeError
+type_check_const_function_typedef2_test/00: MissingCompileTimeError
+type_parameter_test/01: Crash # Internal Error: Unexpected type variable in static context.
+type_parameter_test/02: Crash # Internal Error: Unexpected type variable in static context.
+type_parameter_test/03: Crash # Internal Error: Unexpected type variable in static context.
+type_parameter_test/04: Crash # Internal Error: Unexpected type variable in static context.
+type_parameter_test/05: Crash # Internal Error: Unexpected type variable in static context.
+type_parameter_test/06: Crash # Internal Error: Unexpected type variable in static context.
+type_parameter_test/none: Crash # Internal Error: Unexpected type variable in static context.
+type_variable_bounds2_test/01: RuntimeError # Issue 12702
+type_variable_bounds2_test/04: RuntimeError # Issue 12702
+type_variable_bounds3_test/00: Fail # Issue 12702
+type_variable_bounds_test/02: Fail # Issue 12702
+type_variable_scope_test/03: Crash # Internal Error: Unexpected type variable in static context.
+
+[ $compiler == dart2js && $checked && !$dart2js_with_kernel ]
+async_return_types_test/nestedFuture: Fail # Issue 26429
+async_return_types_test/wrongTypeParameter: Fail # Issue 26429
+closure_type_test: Fail # Issue 12745
+default_factory2_test/01: Fail # Issue 14121
+malbounded_instantiation_test/01: Fail # Issue 12702
+malbounded_redirecting_factory2_test/02: Fail # Issue 12825
+malbounded_redirecting_factory2_test/03: Fail # Issue 12825
+malbounded_redirecting_factory_test/02: Fail # Issue 12825
+malbounded_redirecting_factory_test/03: Fail # Issue 12825
+malbounded_type_cast2_test: Fail # Issue 14121
+malbounded_type_cast_test: Fail # Issue 14121
+malbounded_type_test2_test: Fail # Issue 14121
+malbounded_type_test_test/03: Fail # Issue 14121
+malbounded_type_test_test/04: Fail # Issue 14121
+regress_26133_test: RuntimeError # Issue 26429
+regress_29405_test: Fail # Issue 29422
+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
+type_variable_bounds_test/02: Fail # Issue 12702
+
+[ $compiler == dart2js && !$checked && $dart2js_with_kernel ]
+assertion_initializer_const_error2_test/*: CompileTimeError # Issue #31321
+assertion_initializer_const_error2_test/none: Pass
+
+[ $compiler == dart2js && !$checked && !$dart2js_with_kernel ]
+assertion_test: RuntimeError
+generic_test: RuntimeError, OK
+issue13474_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
+type_checks_in_factory_method_test: RuntimeError # Issue 12746
+
+[ $compiler == dart2js && !$checked && !$dart2js_with_kernel && $enable_asserts ]
+assertion_test: RuntimeError # Issue 12748
+
+[ $compiler == dart2js && !$checked && !$dart2js_with_kernel && $minified ]
+f_bounded_quantification5_test: Fail, OK # Issue 12605
+
+[ $compiler == dart2js && !$checked && $enable_asserts ]
+bool_check_test: RuntimeError # Issue 29647
+
+[ $compiler == dart2js && $dart2js_with_kernel && $fast_startup ]
+arithmetic_canonicalization_test: RuntimeError
+assertion_initializer_const_error2_test/none: CompileTimeError
+assertion_initializer_test: CompileTimeError
+assertion_test: RuntimeError
+async_await_test: Crash # NoSuchMethodError: The method 'generateBreak' was called on null.
+async_star_cancel_while_paused_test: RuntimeError
+bad_constructor_test/06: Crash # NoSuchMethodError: The getter 'iterator' was called on null.
+bad_override_test/03: MissingCompileTimeError
+bad_override_test/04: MissingCompileTimeError
+bad_override_test/05: MissingCompileTimeError
+bit_operations_test/01: RuntimeError
+bit_operations_test/02: RuntimeError
+bit_operations_test/03: RuntimeError
+bit_operations_test/04: RuntimeError
+bit_operations_test/none: RuntimeError
+branch_canonicalization_test: RuntimeError
+call_function_apply_test: RuntimeError
+call_nonexistent_constructor_test/01: RuntimeError
+canonical_const2_test: RuntimeError
+canonical_const3_test: CompileTimeError
+check_member_static_test/02: MissingCompileTimeError
+class_cycle_test/02: MissingCompileTimeError
+class_cycle_test/03: MissingCompileTimeError
+closure_in_field_test/01: RuntimeError
+closure_in_field_test/02: RuntimeError
+conditional_import_string_test: RuntimeError
+conditional_import_test: RuntimeError
+config_import_corelib_test: RuntimeError
+config_import_test: RuntimeError
+const_error_multiply_initialized_test/02: MissingCompileTimeError
+const_error_multiply_initialized_test/04: MissingCompileTimeError
+const_evaluation_test/01: RuntimeError
+const_factory_with_body_test/01: MissingCompileTimeError
+const_instance_field_test/01: MissingCompileTimeError
+const_map2_test/00: MissingCompileTimeError
+const_map3_test/00: MissingCompileTimeError
+const_switch2_test/01: MissingCompileTimeError
+const_switch_test/02: RuntimeError
+const_switch_test/04: RuntimeError
+constants_test/05: MissingCompileTimeError
+constructor2_test: RuntimeError
+constructor3_test: RuntimeError
+constructor5_test: RuntimeError
+constructor6_test: RuntimeError
+constructor_named_arguments_test/none: RuntimeError
+constructor_redirect1_negative_test: Crash # Stack Overflow
+constructor_redirect2_negative_test: Crash # Stack Overflow
+constructor_redirect2_test/01: MissingCompileTimeError
+constructor_redirect_test/01: Crash # Assertion failure: Cannot find value Instance of 'ThisLocal' in (local(A.named2#x), local(A.named2#y), local(A.named2#z)) for j:constructor(A.named2).
+cyclic_constructor_test/01: Crash # Stack Overflow
+deferred_closurize_load_library_test: RuntimeError
+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: RuntimeError
+deferred_constraints_type_annotation_test/catch_check: RuntimeError
+deferred_constraints_type_annotation_test/is_check: RuntimeError
+deferred_inheritance_constraints_test/extends: MissingCompileTimeError
+deferred_inheritance_constraints_test/implements: MissingCompileTimeError
+deferred_inheritance_constraints_test/mixin: MissingCompileTimeError
+deferred_load_constants_test/none: RuntimeError
+deferred_load_library_wrong_args_test/01: MissingRuntimeError
+deferred_not_loaded_check_test: RuntimeError
+deferred_redirecting_factory_test: RuntimeError
+double_int_to_string_test: RuntimeError
+duplicate_export_negative_test: Fail
+duplicate_implements_test/01: MissingCompileTimeError
+duplicate_implements_test/02: MissingCompileTimeError
+duplicate_implements_test/03: MissingCompileTimeError
+duplicate_implements_test/04: MissingCompileTimeError
+dynamic_prefix_core_test/01: RuntimeError
+dynamic_prefix_core_test/none: RuntimeError
+enum_mirror_test: RuntimeError
+example_constructor_test: RuntimeError
+expect_test: RuntimeError
+external_test/10: MissingRuntimeError
+external_test/13: MissingRuntimeError
+external_test/20: MissingRuntimeError
+factory_redirection_test/07: MissingCompileTimeError
+fauxverride_test/03: MissingCompileTimeError
+fauxverride_test/05: MissingCompileTimeError
+field_increment_bailout_test: RuntimeError
+field_initialization_order_test: RuntimeError
+field_override3_test/00: MissingCompileTimeError
+field_override3_test/01: MissingCompileTimeError
+field_override3_test/02: MissingCompileTimeError
+field_override3_test/03: MissingCompileTimeError
+field_override4_test/02: MissingCompileTimeError
+final_attempt_reinitialization_test/01: MissingCompileTimeError
+final_attempt_reinitialization_test/02: MissingCompileTimeError
+final_field_initialization_order_test: RuntimeError
+generic_field_mixin4_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in () for j:constructor(C3.).
+generic_field_mixin5_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in () for j:constructor(C3.).
+generic_field_mixin_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in () for j:constructor(C3.).
+generic_local_functions_test: Crash # Unsupported operation: Unsupported type parameter type node Y.
+generic_methods_type_expression_test/01: RuntimeError
+generic_methods_type_expression_test/03: RuntimeError
+generic_methods_type_expression_test/none: RuntimeError
+generic_test: RuntimeError
+getter_override2_test/02: MissingCompileTimeError
+getter_override_test/00: MissingCompileTimeError
+getter_override_test/01: MissingCompileTimeError
+getter_override_test/02: MissingCompileTimeError
+identical_closure2_test: RuntimeError
+if_null_assignment_behavior_test/14: RuntimeError
+infinite_switch_label_test: Crash # NoSuchMethodError: The method 'generateBreak' was called on null.
+infinity_test: RuntimeError
+instance_creation_in_function_annotation_test: RuntimeError
+integer_division_by_zero_test: RuntimeError
+internal_library_test/02: Crash # NoSuchMethodError: Class 'DillLibraryBuilder' has no instance getter 'mixinApplicationClasses'.
+invocation_mirror2_test: RuntimeError
+invocation_mirror_empty_arguments_test: RuntimeError
+invocation_mirror_invoke_on2_test: RuntimeError
+invocation_mirror_invoke_on_test: RuntimeError
+invocation_mirror_test: RuntimeError
+issue13474_test: RuntimeError
+issue21079_test: RuntimeError
+left_shift_test: RuntimeError
+library_env_test/has_mirror_support: RuntimeError
+library_env_test/has_no_html_support: RuntimeError
+library_env_test/has_no_io_support: RuntimeError
+list_literal4_test: RuntimeError
+main_not_a_function_test/01: CompileTimeError
+many_overridden_no_such_method_test: RuntimeError
+map_literal4_test: RuntimeError
+method_name_test: CompileTimeError
+method_override5_test: RuntimeError
+method_override7_test/00: MissingCompileTimeError
+method_override7_test/01: MissingCompileTimeError
+method_override7_test/02: MissingCompileTimeError
+method_override8_test/00: MissingCompileTimeError
+method_override8_test/01: MissingCompileTimeError
+mint_arithmetic_test: RuntimeError
+mixin_black_listed_test/02: MissingCompileTimeError
+mixin_forwarding_constructor4_test/01: MissingCompileTimeError
+mixin_forwarding_constructor4_test/02: MissingCompileTimeError
+mixin_forwarding_constructor4_test/03: MissingCompileTimeError
+mixin_illegal_super_use_test/01: MissingCompileTimeError
+mixin_illegal_super_use_test/02: MissingCompileTimeError
+mixin_illegal_super_use_test/03: MissingCompileTimeError
+mixin_illegal_super_use_test/04: MissingCompileTimeError
+mixin_illegal_super_use_test/05: MissingCompileTimeError
+mixin_illegal_super_use_test/06: MissingCompileTimeError
+mixin_illegal_super_use_test/07: MissingCompileTimeError
+mixin_illegal_super_use_test/08: MissingCompileTimeError
+mixin_illegal_super_use_test/09: MissingCompileTimeError
+mixin_illegal_super_use_test/10: MissingCompileTimeError
+mixin_illegal_super_use_test/11: MissingCompileTimeError
+mixin_illegal_superclass_test/01: MissingCompileTimeError
+mixin_illegal_superclass_test/02: MissingCompileTimeError
+mixin_illegal_superclass_test/03: MissingCompileTimeError
+mixin_illegal_superclass_test/04: MissingCompileTimeError
+mixin_illegal_superclass_test/05: MissingCompileTimeError
+mixin_illegal_superclass_test/06: MissingCompileTimeError
+mixin_illegal_superclass_test/07: MissingCompileTimeError
+mixin_illegal_superclass_test/08: MissingCompileTimeError
+mixin_illegal_superclass_test/09: MissingCompileTimeError
+mixin_illegal_superclass_test/10: MissingCompileTimeError
+mixin_illegal_superclass_test/11: MissingCompileTimeError
+mixin_illegal_superclass_test/12: MissingCompileTimeError
+mixin_illegal_superclass_test/13: MissingCompileTimeError
+mixin_illegal_superclass_test/14: MissingCompileTimeError
+mixin_illegal_superclass_test/15: MissingCompileTimeError
+mixin_illegal_superclass_test/16: MissingCompileTimeError
+mixin_illegal_superclass_test/17: MissingCompileTimeError
+mixin_illegal_superclass_test/18: MissingCompileTimeError
+mixin_illegal_superclass_test/19: MissingCompileTimeError
+mixin_illegal_superclass_test/20: MissingCompileTimeError
+mixin_illegal_superclass_test/21: MissingCompileTimeError
+mixin_illegal_superclass_test/22: MissingCompileTimeError
+mixin_illegal_superclass_test/23: MissingCompileTimeError
+mixin_illegal_superclass_test/24: MissingCompileTimeError
+mixin_illegal_superclass_test/25: MissingCompileTimeError
+mixin_illegal_superclass_test/26: MissingCompileTimeError
+mixin_illegal_superclass_test/27: MissingCompileTimeError
+mixin_illegal_superclass_test/28: MissingCompileTimeError
+mixin_illegal_superclass_test/29: MissingCompileTimeError
+mixin_illegal_superclass_test/30: MissingCompileTimeError
+mixin_issue10216_2_test: RuntimeError
+mixin_mixin2_test: RuntimeError
+mixin_mixin3_test: RuntimeError
+mixin_mixin4_test: RuntimeError
+mixin_mixin5_test: RuntimeError
+mixin_mixin6_test: RuntimeError
+mixin_mixin7_test: RuntimeError
+mixin_mixin_bound2_test: RuntimeError
+mixin_mixin_bound_test: RuntimeError
+mixin_mixin_test: RuntimeError
+mixin_mixin_type_arguments_test: RuntimeError
+mixin_of_mixin_test/01: CompileTimeError
+mixin_of_mixin_test/02: CompileTimeError
+mixin_of_mixin_test/03: CompileTimeError
+mixin_of_mixin_test/04: CompileTimeError
+mixin_of_mixin_test/05: CompileTimeError
+mixin_of_mixin_test/06: CompileTimeError
+mixin_of_mixin_test/07: CompileTimeError
+mixin_of_mixin_test/08: CompileTimeError
+mixin_of_mixin_test/09: CompileTimeError
+mixin_of_mixin_test/10: CompileTimeError
+mixin_of_mixin_test/11: CompileTimeError
+mixin_of_mixin_test/12: CompileTimeError
+mixin_of_mixin_test/13: CompileTimeError
+mixin_of_mixin_test/14: CompileTimeError
+mixin_of_mixin_test/15: CompileTimeError
+mixin_of_mixin_test/16: CompileTimeError
+mixin_of_mixin_test/17: CompileTimeError
+mixin_of_mixin_test/18: CompileTimeError
+mixin_of_mixin_test/19: CompileTimeError
+mixin_of_mixin_test/20: CompileTimeError
+mixin_of_mixin_test/21: CompileTimeError
+mixin_of_mixin_test/22: CompileTimeError
+mixin_of_mixin_test/none: CompileTimeError
+mixin_super_2_test: CompileTimeError
+mixin_super_bound2_test/01: CompileTimeError
+mixin_super_bound2_test/none: CompileTimeError
+mixin_super_constructor_named_test/01: MissingCompileTimeError
+mixin_super_constructor_positionals_test/01: MissingCompileTimeError
+mixin_super_test: CompileTimeError
+mixin_super_use_test: CompileTimeError
+mixin_superclass_test: CompileTimeError
+mixin_supertype_subclass2_test/01: CompileTimeError
+mixin_supertype_subclass2_test/02: CompileTimeError
+mixin_supertype_subclass2_test/03: CompileTimeError
+mixin_supertype_subclass2_test/04: CompileTimeError
+mixin_supertype_subclass2_test/05: CompileTimeError
+mixin_supertype_subclass2_test/none: CompileTimeError
+mixin_supertype_subclass3_test/01: CompileTimeError
+mixin_supertype_subclass3_test/02: CompileTimeError
+mixin_supertype_subclass3_test/03: CompileTimeError
+mixin_supertype_subclass3_test/04: CompileTimeError
+mixin_supertype_subclass3_test/05: CompileTimeError
+mixin_supertype_subclass3_test/none: CompileTimeError
+mixin_supertype_subclass4_test/01: CompileTimeError
+mixin_supertype_subclass4_test/02: CompileTimeError
+mixin_supertype_subclass4_test/03: CompileTimeError
+mixin_supertype_subclass4_test/04: CompileTimeError
+mixin_supertype_subclass4_test/05: CompileTimeError
+mixin_supertype_subclass4_test/none: CompileTimeError
+mixin_supertype_subclass_test/01: CompileTimeError
+mixin_supertype_subclass_test/02: CompileTimeError
+mixin_supertype_subclass_test/03: CompileTimeError
+mixin_supertype_subclass_test/04: CompileTimeError
+mixin_supertype_subclass_test/05: CompileTimeError
+mixin_supertype_subclass_test/none: CompileTimeError
+modulo_test: RuntimeError
+multiline_newline_test/04: MissingCompileTimeError
+multiline_newline_test/04r: MissingCompileTimeError
+multiline_newline_test/05: MissingCompileTimeError
+multiline_newline_test/05r: MissingCompileTimeError
+multiline_newline_test/06: MissingCompileTimeError
+multiline_newline_test/06r: MissingCompileTimeError
+named_constructor_test/01: MissingRuntimeError
+named_parameters_default_eq_test/02: MissingCompileTimeError
+named_parameters_type_test/01: MissingRuntimeError
+named_parameters_type_test/02: MissingRuntimeError
+named_parameters_type_test/03: MissingRuntimeError
+nan_identical_test: RuntimeError
+nested_switch_label_test: Crash # NoSuchMethodError: The method 'generateBreak' was called on null.
+no_main_test/01: CompileTimeError
+no_such_method_test: RuntimeError
+null_test/02: MissingCompileTimeError
+null_test/03: MissingCompileTimeError
+null_test/none: RuntimeError
+number_identity2_test: RuntimeError
+numbers_test: RuntimeError
+overridden_no_such_method_test: RuntimeError
+override_field_method1_negative_test: Fail
+override_field_method2_negative_test: Fail
+override_field_method4_negative_test: Fail
+override_field_method5_negative_test: Fail
+override_field_test/01: MissingCompileTimeError
+override_inheritance_mixed_test/01: MissingCompileTimeError
+override_inheritance_mixed_test/02: MissingCompileTimeError
+override_inheritance_mixed_test/03: MissingCompileTimeError
+override_inheritance_mixed_test/04: MissingCompileTimeError
+override_method_with_field_test/01: MissingCompileTimeError
+positional_parameters_type_test/01: MissingRuntimeError
+positional_parameters_type_test/02: MissingRuntimeError
+private_super_constructor_test/01: MissingCompileTimeError
+redirecting_constructor_initializer_test: RuntimeError
+redirecting_factory_default_values_test/01: MissingCompileTimeError
+redirecting_factory_default_values_test/02: MissingCompileTimeError
+redirecting_factory_long_test: RuntimeError
+redirecting_factory_reflection_test: RuntimeError
+regress_13494_test: RuntimeError
+regress_17382_test: RuntimeError
+regress_20394_test/01: MissingCompileTimeError
+regress_22936_test/01: RuntimeError
+regress_22976_test/01: CompileTimeError
+regress_22976_test/02: CompileTimeError
+regress_22976_test/none: CompileTimeError
+regress_24283_test: RuntimeError
+regress_27572_test: RuntimeError
+regress_27617_test/1: Crash # Assertion failure: Unexpected constructor j:constructor(Foo._) in ConstructorDataImpl._getConstructorConstant
+regress_28217_test/01: MissingCompileTimeError
+regress_28217_test/none: MissingCompileTimeError
+regress_28255_test: RuntimeError
+setter_override_test/00: MissingCompileTimeError
+setter_override_test/03: MissingCompileTimeError
+stacktrace_demangle_ctors_test: RuntimeError
+stacktrace_test: RuntimeError
+static_getter_no_setter1_test/01: RuntimeError
+static_getter_no_setter2_test/01: RuntimeError
+static_getter_no_setter3_test/01: RuntimeError
+super_call4_test: Crash # NoSuchMethodError: The getter 'thisLocal' was called on null.
+super_test: RuntimeError
+switch_bad_case_test/01: MissingCompileTimeError
+switch_bad_case_test/02: MissingCompileTimeError
+switch_case_test/00: MissingCompileTimeError
+switch_case_test/01: MissingCompileTimeError
+switch_case_test/02: MissingCompileTimeError
+syntax_test/none: CompileTimeError
+top_level_getter_no_setter1_test/01: RuntimeError
+top_level_getter_no_setter2_test/01: RuntimeError
+truncdiv_test: RuntimeError
+try_catch_test/01: MissingCompileTimeError
+type_checks_in_factory_method_test: RuntimeError
+
+[ $compiler == dart2js && $dart2js_with_kernel && $host_checked ]
+arithmetic_canonicalization_test: RuntimeError
+assertion_initializer_test: CompileTimeError
+assertion_test: RuntimeError
+async_await_test: Crash # 'file:*/pkg/compiler/lib/src/ssa/locals_handler.dart': Failed assertion: line 296 pos 12: 'local != null': is not true.
+async_star_cancel_while_paused_test: RuntimeError
+async_test/setter1: Crash # 'file:*/pkg/compiler/lib/src/kernel/element_map_impl.dart': Failed assertion: line 939 pos 18: 'asyncMarker == AsyncMarker.SYNC': is not true.
+bad_constructor_test/06: Crash # NoSuchMethodError: The getter 'iterator' was called on null.
+bad_override_test/03: MissingCompileTimeError
+bad_override_test/04: MissingCompileTimeError
+bad_override_test/05: MissingCompileTimeError
+bit_operations_test/01: RuntimeError
+bit_operations_test/02: RuntimeError
+bit_operations_test/03: RuntimeError
+bit_operations_test/04: RuntimeError
+bit_operations_test/none: RuntimeError
+branch_canonicalization_test: RuntimeError
+branches_test: Crash # 'package:front_end/src/fasta/kernel/kernel_shadow_ast.dart': Failed assertion: line 441 pos 16: 'identical(combiner.arguments.positional[0], rhs)': is not true.
+call_function_apply_test: RuntimeError
+call_nonexistent_constructor_test/01: RuntimeError
+canonical_const2_test: RuntimeError
+canonical_const3_test: CompileTimeError
+check_member_static_test/02: MissingCompileTimeError
+class_cycle_test/02: MissingCompileTimeError
+class_cycle_test/03: MissingCompileTimeError
+closure_in_field_test/01: RuntimeError
+closure_in_field_test/02: RuntimeError
closure_self_reference_test: Crash # 'file:*/pkg/compiler/lib/src/ssa/nodes.dart': Failed assertion: line 641 pos 12: 'isClosed()': is not true.
conditional_import_string_test: RuntimeError
conditional_import_test: RuntimeError
@@ -414,9 +899,10 @@
generic_field_mixin5_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in ()in j:constructor(C3.).
generic_field_mixin_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in ()in j:constructor(C3.).
generic_local_functions_test: Crash # Unsupported operation: Unsupported type parameter type node Y.
-generic_methods_type_expression_test/01: RuntimeError
-generic_methods_type_expression_test/03: RuntimeError
-generic_methods_type_expression_test/none: RuntimeError
+generic_methods_generic_function_parameter_test: Crash # 'file:*/pkg/compiler/lib/src/ssa/builder_kernel.dart': Failed assertion: line 1728 pos 16: 'type is MethodTypeVariableType': is not true.
+generic_methods_type_expression_test/01: Crash # 'file:*/pkg/compiler/lib/src/ssa/builder_kernel.dart': Failed assertion: line 1728 pos 16: 'type is MethodTypeVariableType': is not true.
+generic_methods_type_expression_test/03: Crash # 'file:*/pkg/compiler/lib/src/ssa/builder_kernel.dart': Failed assertion: line 1728 pos 16: 'type is MethodTypeVariableType': is not true.
+generic_methods_type_expression_test/none: Crash # 'file:*/pkg/compiler/lib/src/ssa/builder_kernel.dart': Failed assertion: line 1728 pos 16: 'type is MethodTypeVariableType': is not true.
generic_test: RuntimeError
getter_override2_test/02: MissingCompileTimeError
getter_override_test/00: MissingCompileTimeError
@@ -435,9 +921,9 @@
issue13474_test: RuntimeError
issue21079_test: RuntimeError
left_shift_test: RuntimeError
+library_env_test/has_mirror_support: RuntimeError
library_env_test/has_no_html_support: RuntimeError
library_env_test/has_no_io_support: RuntimeError
-library_env_test/has_no_mirror_support: RuntimeError
list_literal4_test: RuntimeError
main_not_a_function_test/01: CompileTimeError
map_literal4_test: RuntimeError
@@ -580,6 +1066,7 @@
null_test/none: RuntimeError
number_identity2_test: RuntimeError
numbers_test: RuntimeError
+operator_test: Crash # 'package:front_end/src/fasta/kernel/kernel_shadow_ast.dart': Failed assertion: line 441 pos 16: 'identical(combiner.arguments.positional[0], rhs)': is not true.
override_field_method1_negative_test: Fail
override_field_method2_negative_test: Fail
override_field_method4_negative_test: Fail
@@ -592,6 +1079,7 @@
override_method_with_field_test/01: MissingCompileTimeError
positional_parameters_type_test/01: MissingRuntimeError
positional_parameters_type_test/02: MissingRuntimeError
+prefix5_negative_test: Crash # 'package:front_end/src/fasta/kernel/kernel_shadow_ast.dart': Failed assertion: line 441 pos 16: 'identical(combiner.arguments.positional[0], rhs)': is not true.
private_super_constructor_test/01: MissingCompileTimeError
redirecting_constructor_initializer_test: RuntimeError
redirecting_factory_default_values_test/01: MissingCompileTimeError
@@ -625,6 +1113,8 @@
switch_case_test/00: MissingCompileTimeError
switch_case_test/01: MissingCompileTimeError
switch_case_test/02: MissingCompileTimeError
+sync_generator2_test/41: Crash # 'file:*/pkg/compiler/lib/src/kernel/element_map_impl.dart': Failed assertion: line 939 pos 18: 'asyncMarker == AsyncMarker.SYNC': is not true.
+sync_generator2_test/52: Crash # 'file:*/pkg/compiler/lib/src/kernel/element_map_impl.dart': Failed assertion: line 939 pos 18: 'asyncMarker == AsyncMarker.SYNC': is not true.
syntax_test/none: CompileTimeError
top_level_getter_no_setter1_test/01: RuntimeError
top_level_getter_no_setter2_test/01: RuntimeError
@@ -769,9 +1259,9 @@
issue13474_test: RuntimeError
issue21079_test: RuntimeError
left_shift_test: RuntimeError
+library_env_test/has_mirror_support: RuntimeError
library_env_test/has_no_html_support: RuntimeError
library_env_test/has_no_io_support: RuntimeError
-library_env_test/has_no_mirror_support: RuntimeError
list_literal4_test: RuntimeError
main_not_a_function_test/01: CompileTimeError
map_literal4_test: RuntimeError
@@ -973,749 +1463,213 @@
try_catch_test/01: MissingCompileTimeError
type_checks_in_factory_method_test: RuntimeError
-[ $compiler == dart2js && $dart2js_with_kernel && $fast_startup ]
-assertion_initializer_const_error2_test/none: CompileTimeError
-assertion_initializer_test: CompileTimeError
-assertion_test: RuntimeError
-async_await_test: Crash # NoSuchMethodError: The method 'generateBreak' was called on null.
-async_star_cancel_while_paused_test: RuntimeError
-bad_constructor_test/06: Crash # NoSuchMethodError: The getter 'iterator' was called on null.
-bad_override_test/03: MissingCompileTimeError
-bad_override_test/04: MissingCompileTimeError
-bad_override_test/05: MissingCompileTimeError
-bit_operations_test/01: RuntimeError
-bit_operations_test/02: RuntimeError
-bit_operations_test/03: RuntimeError
-bit_operations_test/04: RuntimeError
-bit_operations_test/none: RuntimeError
-branch_canonicalization_test: RuntimeError
-call_function_apply_test: RuntimeError
-call_nonexistent_constructor_test/01: RuntimeError
-call_with_no_such_method_test: RuntimeError
-canonical_const2_test: RuntimeError
-canonical_const3_test: CompileTimeError
-cast_test/02: MissingRuntimeError
-cast_test/03: MissingRuntimeError
-check_member_static_test/02: MissingCompileTimeError
-class_cycle_test/02: MissingCompileTimeError
-class_cycle_test/03: MissingCompileTimeError
-closure_in_field_test/01: RuntimeError
-closure_in_field_test/02: RuntimeError
-conditional_import_string_test: RuntimeError
-conditional_import_test: RuntimeError
-config_import_corelib_test: RuntimeError
-config_import_test: RuntimeError
-const_error_multiply_initialized_test/02: MissingCompileTimeError
-const_error_multiply_initialized_test/04: MissingCompileTimeError
-const_evaluation_test/01: RuntimeError
-const_factory_with_body_test/01: MissingCompileTimeError
-const_instance_field_test/01: MissingCompileTimeError
-const_map2_test/00: MissingCompileTimeError
-const_map3_test/00: MissingCompileTimeError
-const_switch2_test/01: MissingCompileTimeError
-const_switch_test/02: RuntimeError
-const_switch_test/04: RuntimeError
-constants_test/05: MissingCompileTimeError
-constructor2_test: RuntimeError
-constructor3_test: RuntimeError
-constructor5_test: RuntimeError
-constructor6_test: RuntimeError
-constructor_named_arguments_test/none: RuntimeError
-constructor_redirect1_negative_test: Crash # Stack Overflow
-constructor_redirect2_negative_test: Crash # Stack Overflow
-constructor_redirect2_test/01: MissingCompileTimeError
-constructor_redirect_test/01: Crash # Assertion failure: Cannot find value Instance of 'ThisLocal' in (local(A.named2#x), local(A.named2#y), local(A.named2#z)) for j:constructor(A.named2).
-cyclic_constructor_test/01: Crash # Stack Overflow
-deferred_closurize_load_library_test: RuntimeError
-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: RuntimeError
-deferred_constraints_type_annotation_test/catch_check: RuntimeError
-deferred_constraints_type_annotation_test/is_check: RuntimeError
-deferred_inheritance_constraints_test/extends: MissingCompileTimeError
-deferred_inheritance_constraints_test/implements: MissingCompileTimeError
-deferred_inheritance_constraints_test/mixin: MissingCompileTimeError
-deferred_load_constants_test/none: RuntimeError
-deferred_load_library_wrong_args_test/01: MissingRuntimeError
-deferred_not_loaded_check_test: RuntimeError
-deferred_redirecting_factory_test: RuntimeError
-double_int_to_string_test: RuntimeError
-duplicate_export_negative_test: Fail
-duplicate_implements_test/01: MissingCompileTimeError
-duplicate_implements_test/02: MissingCompileTimeError
-duplicate_implements_test/03: MissingCompileTimeError
-duplicate_implements_test/04: MissingCompileTimeError
-dynamic_prefix_core_test/01: RuntimeError
-dynamic_prefix_core_test/none: RuntimeError
-enum_mirror_test: RuntimeError
-example_constructor_test: RuntimeError
-expect_test: RuntimeError
-external_test/10: MissingRuntimeError
-external_test/13: MissingRuntimeError
-external_test/20: MissingRuntimeError
-factory_redirection_test/07: MissingCompileTimeError
-fauxverride_test/03: MissingCompileTimeError
-fauxverride_test/05: MissingCompileTimeError
-field_increment_bailout_test: RuntimeError
-field_initialization_order_test: RuntimeError
-field_override3_test/00: MissingCompileTimeError
-field_override3_test/01: MissingCompileTimeError
-field_override3_test/02: MissingCompileTimeError
-field_override3_test/03: MissingCompileTimeError
-field_override4_test/02: MissingCompileTimeError
-final_attempt_reinitialization_test/01: MissingCompileTimeError
-final_attempt_reinitialization_test/02: MissingCompileTimeError
-final_field_initialization_order_test: RuntimeError
-generic_field_mixin4_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in () for j:constructor(C3.).
-generic_field_mixin5_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in () for j:constructor(C3.).
-generic_field_mixin_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in () for j:constructor(C3.).
-generic_local_functions_test: Crash # Unsupported operation: Unsupported type parameter type node Y.
-generic_methods_type_expression_test/01: RuntimeError
-generic_methods_type_expression_test/03: RuntimeError
-generic_methods_type_expression_test/none: RuntimeError
-generic_test: RuntimeError
-getter_override2_test/02: MissingCompileTimeError
-getter_override_test/00: MissingCompileTimeError
-getter_override_test/01: MissingCompileTimeError
-getter_override_test/02: MissingCompileTimeError
-identical_closure2_test: RuntimeError
-if_null_assignment_behavior_test/14: RuntimeError
-infinite_switch_label_test: Crash # NoSuchMethodError: The method 'generateBreak' was called on null.
-infinity_test: RuntimeError
-instance_creation_in_function_annotation_test: RuntimeError
-integer_division_by_zero_test: RuntimeError
-internal_library_test/02: Crash # NoSuchMethodError: Class 'DillLibraryBuilder' has no instance getter 'mixinApplicationClasses'.
-invocation_mirror2_test: RuntimeError
-invocation_mirror_empty_arguments_test: RuntimeError
-invocation_mirror_invoke_on2_test: RuntimeError
-invocation_mirror_invoke_on_test: RuntimeError
-invocation_mirror_test: RuntimeError
-issue13474_test: RuntimeError
-issue21079_test: RuntimeError
-left_shift_test: RuntimeError
-library_env_test/has_mirror_support: RuntimeError
-library_env_test/has_no_html_support: RuntimeError
-library_env_test/has_no_io_support: RuntimeError
-list_literal4_test: RuntimeError
-main_not_a_function_test/01: CompileTimeError
-many_overridden_no_such_method_test: RuntimeError
-map_literal4_test: RuntimeError
-method_name_test: CompileTimeError
-method_override4_test: RuntimeError
-method_override5_test: RuntimeError
-method_override7_test/00: MissingCompileTimeError
-method_override7_test/01: MissingCompileTimeError
-method_override7_test/02: MissingCompileTimeError
-method_override8_test/00: MissingCompileTimeError
-method_override8_test/01: MissingCompileTimeError
-mint_arithmetic_test: RuntimeError
-mixin_black_listed_test/02: MissingCompileTimeError
-mixin_bound_test: RuntimeError
-mixin_forwarding_constructor4_test/01: MissingCompileTimeError
-mixin_forwarding_constructor4_test/02: MissingCompileTimeError
-mixin_forwarding_constructor4_test/03: MissingCompileTimeError
-mixin_illegal_super_use_test/01: MissingCompileTimeError
-mixin_illegal_super_use_test/02: MissingCompileTimeError
-mixin_illegal_super_use_test/03: MissingCompileTimeError
-mixin_illegal_super_use_test/04: MissingCompileTimeError
-mixin_illegal_super_use_test/05: MissingCompileTimeError
-mixin_illegal_super_use_test/06: MissingCompileTimeError
-mixin_illegal_super_use_test/07: MissingCompileTimeError
-mixin_illegal_super_use_test/08: MissingCompileTimeError
-mixin_illegal_super_use_test/09: MissingCompileTimeError
-mixin_illegal_super_use_test/10: MissingCompileTimeError
-mixin_illegal_super_use_test/11: MissingCompileTimeError
-mixin_illegal_superclass_test/01: MissingCompileTimeError
-mixin_illegal_superclass_test/02: MissingCompileTimeError
-mixin_illegal_superclass_test/03: MissingCompileTimeError
-mixin_illegal_superclass_test/04: MissingCompileTimeError
-mixin_illegal_superclass_test/05: MissingCompileTimeError
-mixin_illegal_superclass_test/06: MissingCompileTimeError
-mixin_illegal_superclass_test/07: MissingCompileTimeError
-mixin_illegal_superclass_test/08: MissingCompileTimeError
-mixin_illegal_superclass_test/09: MissingCompileTimeError
-mixin_illegal_superclass_test/10: MissingCompileTimeError
-mixin_illegal_superclass_test/11: MissingCompileTimeError
-mixin_illegal_superclass_test/12: MissingCompileTimeError
-mixin_illegal_superclass_test/13: MissingCompileTimeError
-mixin_illegal_superclass_test/14: MissingCompileTimeError
-mixin_illegal_superclass_test/15: MissingCompileTimeError
-mixin_illegal_superclass_test/16: MissingCompileTimeError
-mixin_illegal_superclass_test/17: MissingCompileTimeError
-mixin_illegal_superclass_test/18: MissingCompileTimeError
-mixin_illegal_superclass_test/19: MissingCompileTimeError
-mixin_illegal_superclass_test/20: MissingCompileTimeError
-mixin_illegal_superclass_test/21: MissingCompileTimeError
-mixin_illegal_superclass_test/22: MissingCompileTimeError
-mixin_illegal_superclass_test/23: MissingCompileTimeError
-mixin_illegal_superclass_test/24: MissingCompileTimeError
-mixin_illegal_superclass_test/25: MissingCompileTimeError
-mixin_illegal_superclass_test/26: MissingCompileTimeError
-mixin_illegal_superclass_test/27: MissingCompileTimeError
-mixin_illegal_superclass_test/28: MissingCompileTimeError
-mixin_illegal_superclass_test/29: MissingCompileTimeError
-mixin_illegal_superclass_test/30: MissingCompileTimeError
-mixin_issue10216_2_test: RuntimeError
-mixin_mixin2_test: RuntimeError
-mixin_mixin3_test: RuntimeError
-mixin_mixin4_test: RuntimeError
-mixin_mixin5_test: RuntimeError
-mixin_mixin6_test: RuntimeError
-mixin_mixin7_test: RuntimeError
-mixin_mixin_bound2_test: RuntimeError
-mixin_mixin_bound_test: RuntimeError
-mixin_mixin_test: RuntimeError
-mixin_mixin_type_arguments_test: RuntimeError
-mixin_of_mixin_test/01: CompileTimeError
-mixin_of_mixin_test/02: CompileTimeError
-mixin_of_mixin_test/03: CompileTimeError
-mixin_of_mixin_test/04: CompileTimeError
-mixin_of_mixin_test/05: CompileTimeError
-mixin_of_mixin_test/06: CompileTimeError
-mixin_of_mixin_test/07: CompileTimeError
-mixin_of_mixin_test/08: CompileTimeError
-mixin_of_mixin_test/09: CompileTimeError
-mixin_of_mixin_test/10: CompileTimeError
-mixin_of_mixin_test/11: CompileTimeError
-mixin_of_mixin_test/12: CompileTimeError
-mixin_of_mixin_test/13: CompileTimeError
-mixin_of_mixin_test/14: CompileTimeError
-mixin_of_mixin_test/15: CompileTimeError
-mixin_of_mixin_test/16: CompileTimeError
-mixin_of_mixin_test/17: CompileTimeError
-mixin_of_mixin_test/18: CompileTimeError
-mixin_of_mixin_test/19: CompileTimeError
-mixin_of_mixin_test/20: CompileTimeError
-mixin_of_mixin_test/21: CompileTimeError
-mixin_of_mixin_test/22: CompileTimeError
-mixin_of_mixin_test/none: CompileTimeError
-mixin_super_2_test: CompileTimeError
-mixin_super_bound2_test/01: CompileTimeError
-mixin_super_bound2_test/none: CompileTimeError
-mixin_super_constructor2_test: RuntimeError
-mixin_super_constructor_default_test: RuntimeError
-mixin_super_constructor_named_test/01: MissingCompileTimeError
-mixin_super_constructor_named_test/none: RuntimeError
-mixin_super_constructor_positionals_test/01: MissingCompileTimeError
-mixin_super_constructor_positionals_test/none: RuntimeError
-mixin_super_constructor_test: RuntimeError
-mixin_super_test: CompileTimeError
-mixin_super_use_test: CompileTimeError
-mixin_superclass_test: CompileTimeError
-mixin_supertype_subclass2_test/01: CompileTimeError
-mixin_supertype_subclass2_test/02: CompileTimeError
-mixin_supertype_subclass2_test/03: CompileTimeError
-mixin_supertype_subclass2_test/04: CompileTimeError
-mixin_supertype_subclass2_test/05: CompileTimeError
-mixin_supertype_subclass2_test/none: CompileTimeError
-mixin_supertype_subclass3_test/01: CompileTimeError
-mixin_supertype_subclass3_test/02: CompileTimeError
-mixin_supertype_subclass3_test/03: CompileTimeError
-mixin_supertype_subclass3_test/04: CompileTimeError
-mixin_supertype_subclass3_test/05: CompileTimeError
-mixin_supertype_subclass3_test/none: CompileTimeError
-mixin_supertype_subclass4_test/01: CompileTimeError
-mixin_supertype_subclass4_test/02: CompileTimeError
-mixin_supertype_subclass4_test/03: CompileTimeError
-mixin_supertype_subclass4_test/04: CompileTimeError
-mixin_supertype_subclass4_test/05: CompileTimeError
-mixin_supertype_subclass4_test/none: CompileTimeError
-mixin_supertype_subclass_test/01: CompileTimeError
-mixin_supertype_subclass_test/02: CompileTimeError
-mixin_supertype_subclass_test/03: CompileTimeError
-mixin_supertype_subclass_test/04: CompileTimeError
-mixin_supertype_subclass_test/05: CompileTimeError
-mixin_supertype_subclass_test/none: CompileTimeError
-modulo_test: RuntimeError
-multiline_newline_test/04: MissingCompileTimeError
-multiline_newline_test/04r: MissingCompileTimeError
-multiline_newline_test/05: MissingCompileTimeError
-multiline_newline_test/05r: MissingCompileTimeError
-multiline_newline_test/06: MissingCompileTimeError
-multiline_newline_test/06r: MissingCompileTimeError
-named_constructor_test/01: MissingRuntimeError
-named_parameters_default_eq_test/02: MissingCompileTimeError
-named_parameters_type_test/01: MissingRuntimeError
-named_parameters_type_test/02: MissingRuntimeError
-named_parameters_type_test/03: MissingRuntimeError
-nan_identical_test: RuntimeError
-nested_switch_label_test: Crash # NoSuchMethodError: The method 'generateBreak' was called on null.
-no_main_test/01: CompileTimeError
-no_such_method_test: RuntimeError
-null_test/02: MissingCompileTimeError
-null_test/03: MissingCompileTimeError
-null_test/none: RuntimeError
-number_identity2_test: RuntimeError
-numbers_test: RuntimeError
-overridden_no_such_method_test: RuntimeError
-override_field_method1_negative_test: Fail
-override_field_method2_negative_test: Fail
-override_field_method4_negative_test: Fail
-override_field_method5_negative_test: Fail
-override_field_test/01: MissingCompileTimeError
-override_inheritance_mixed_test/01: MissingCompileTimeError
-override_inheritance_mixed_test/02: MissingCompileTimeError
-override_inheritance_mixed_test/03: MissingCompileTimeError
-override_inheritance_mixed_test/04: MissingCompileTimeError
-override_method_with_field_test/01: MissingCompileTimeError
-positional_parameters_type_test/01: MissingRuntimeError
-positional_parameters_type_test/02: MissingRuntimeError
-private_super_constructor_test/01: MissingCompileTimeError
-redirecting_constructor_initializer_test: RuntimeError
-redirecting_factory_default_values_test/01: MissingCompileTimeError
-redirecting_factory_default_values_test/02: MissingCompileTimeError
-redirecting_factory_long_test: RuntimeError
-redirecting_factory_reflection_test: RuntimeError
-regress_13494_test: RuntimeError
-regress_17382_test: RuntimeError
-regress_20394_test/01: MissingCompileTimeError
-regress_22936_test/01: RuntimeError
-regress_22976_test/01: CompileTimeError
-regress_22976_test/02: CompileTimeError
-regress_22976_test/none: CompileTimeError
-regress_24283_test: RuntimeError
-regress_27572_test: RuntimeError
-regress_27617_test/1: Crash # Assertion failure: Unexpected constructor j:constructor(Foo._) in ConstructorDataImpl._getConstructorConstant
-regress_28217_test/01: MissingCompileTimeError
-regress_28217_test/none: MissingCompileTimeError
-regress_28255_test: RuntimeError
-setter_override_test/00: MissingCompileTimeError
-setter_override_test/03: MissingCompileTimeError
-stacktrace_demangle_ctors_test: RuntimeError
-stacktrace_test: RuntimeError
-static_getter_no_setter1_test/01: RuntimeError
-static_getter_no_setter2_test/01: RuntimeError
-static_getter_no_setter3_test/01: RuntimeError
-super_call4_test: Crash # NoSuchMethodError: The getter 'thisLocal' was called on null.
-super_test: RuntimeError
-switch_bad_case_test/01: MissingCompileTimeError
-switch_bad_case_test/02: MissingCompileTimeError
-switch_case_test/00: MissingCompileTimeError
-switch_case_test/01: MissingCompileTimeError
-switch_case_test/02: MissingCompileTimeError
-syntax_test/none: CompileTimeError
-top_level_getter_no_setter1_test/01: RuntimeError
-top_level_getter_no_setter2_test/01: RuntimeError
-truncdiv_test: RuntimeError
-try_catch_test/01: MissingCompileTimeError
-type_checks_in_factory_method_test: RuntimeError
+[ $compiler == dart2js && !$dart2js_with_kernel ]
+accessor_conflict_export2_test: Crash # Issue 25626
+accessor_conflict_export_test: Crash # Issue 25626
+accessor_conflict_import2_test: RuntimeError # Issue 25626
+accessor_conflict_import_prefixed2_test: RuntimeError # Issue 25626
+accessor_conflict_import_prefixed_test: RuntimeError # Issue 25626
+accessor_conflict_import_test: RuntimeError # Issue 25626
+assertion_initializer_const_error2_test/*: Crash
+assertion_initializer_const_error2_test/none: Pass
+assertion_initializer_const_function_error_test/01: Crash
+assertion_initializer_const_function_test/01: CompileTimeError
+async_star_cancel_while_paused_test: RuntimeError # Issue 22853
+bad_constructor_test/05: CompileTimeError # Issue 13639
+bad_typedef_test/00: Crash # Issue 28214
+bit_operations_test: RuntimeError, OK # Issue 1533
+branch_canonicalization_test: RuntimeError # Issue 638.
+call_function_apply_test: RuntimeError # Issue 23873
+canonical_const2_test: RuntimeError, OK # Issue 1533
+closure_in_field_test/01: RuntimeError # Issue 30467
+closure_in_field_test/02: RuntimeError # Issue 30467
+const_dynamic_type_literal_test/02: CompileTimeError # Issue 23009
+const_dynamic_type_literal_test/03: CompileTimeError # Issue 23009
+const_switch_test/02: RuntimeError # Issue 17960
+const_switch_test/04: RuntimeError # Issue 17960
+constructor_duplicate_final_test/01: Fail # Issue 13363
+constructor_duplicate_final_test/02: Fail # Issue 13363
+constructor_named_arguments_test/01: CompileTimeError # Issue 25225
+deferred_not_loaded_check_test: Fail # Issue 27577
+double_int_to_string_test: RuntimeError # Issue 1533
+duplicate_part_test/01: MissingCompileTimeError # Issue 27517
+enum_test: Fail # Issue 28340
+expect_test: RuntimeError, OK # Issue 13080
+external_test/10: CompileTimeError # Issue 12887
+external_test/13: CompileTimeError # Issue 12887
+external_test/20: CompileTimeError # Issue 12887
+final_attempt_reinitialization_test.dart: Skip # Issue 29659
+full_stacktrace1_test: Pass, RuntimeError # Issue 12698
+full_stacktrace2_test: Pass, RuntimeError # Issue 12698
+full_stacktrace3_test: Pass, RuntimeError # Issue 12698
+generic_field_mixin4_test: Crash # Issue 18651
+generic_field_mixin5_test: Crash # Issue 18651
+generic_function_typedef2_test/00: Crash # Issue 28214
+generic_function_typedef2_test/01: Crash # Issue 28214
+generic_function_typedef2_test/02: Crash # Issue 28214
+generic_function_typedef2_test/03: Crash # Issue 28214
+generic_function_typedef2_test/05: Crash # Issue 28214
+generic_function_typedef2_test/06: Crash # Issue 28214
+getter_setter_in_lib_test: Fail # Issue 23288
+identical_closure2_test: RuntimeError # Issue 1533, Issue 12596
+if_null_assignment_behavior_test/13: Crash # Issue 23491
+if_null_assignment_behavior_test/14: Crash # Issue 23491
+infinity_test: RuntimeError # Issue 4984
+integer_division_by_zero_test: RuntimeError # Issue 8301
+invocation_mirror2_test: RuntimeError # Issue 6490 (wrong retval).
+invocation_mirror_empty_arguments_test: Fail # Issue 24331
+left_shift_test: RuntimeError # Issue 1533
+library_env_test/has_no_html_support: RuntimeError, OK # The following tests are supposed to fail. In testing-mode, dart2js supports all dart:X libraries (because it uses '--categories=all').
+library_env_test/has_no_io_support: RuntimeError, OK # The following tests are supposed to fail. In testing-mode, dart2js supports all dart:X libraries (because it uses '--categories=all').
+library_env_test/has_no_mirror_support: RuntimeError, OK # The following tests are supposed to fail. In testing-mode, dart2js supports all dart:X libraries (because it uses '--categories=all').
+list_literal4_test: RuntimeError # Issue 12890
+malformed_test/none: Fail # Expect failure in lib/_internal/js_runtime/lib/preambles/d8.js
+method_name_test: Fail # issue 25574
+method_override5_test: RuntimeError # Issue 12809
+mint_arithmetic_test: RuntimeError # Issue 1533
+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_mixin2_test: RuntimeError # Issue 13109.
+mixin_mixin3_test: RuntimeError # Issue 13109.
+mixin_mixin_type_arguments_test: RuntimeError # Issue 29587
+mixin_of_mixin_test: CompileTimeError # Issue 23773
+mixin_super_2_test: CompileTimeError # Issue 23773
+mixin_super_bound2_test: CompileTimeError # Issue 23773
+mixin_super_constructor_named_test/01: Fail # Issue 15101
+mixin_super_constructor_positionals_test/01: Fail # Issue 15101
+mixin_super_test: CompileTimeError # Issue 23773
+mixin_super_use_test: CompileTimeError # Issue 23773
+mixin_superclass_test: CompileTimeError # Issue 23773
+mixin_supertype_subclass2_test: CompileTimeError # Issue 23773
+mixin_supertype_subclass3_test: CompileTimeError # Issue 23773
+mixin_supertype_subclass4_test: CompileTimeError # Issue 23773
+mixin_supertype_subclass_test: CompileTimeError # Issue 23773
+modulo_test: RuntimeError # Issue 15246
+multiline_newline_test/01: CompileTimeError # Issue 23888
+multiline_newline_test/01r: CompileTimeError # Issue 23888
+multiline_newline_test/02: CompileTimeError # Issue 23888
+multiline_newline_test/02r: CompileTimeError # Issue 23888
+multiline_newline_test/03: CompileTimeError # Issue 23888
+multiline_newline_test/03r: CompileTimeError # Issue 23888
+multiline_newline_test/04: MissingCompileTimeError # Issue 23888
+multiline_newline_test/04r: MissingCompileTimeError # Issue 23888
+multiline_newline_test/05: MissingCompileTimeError # Issue 23888
+multiline_newline_test/05r: MissingCompileTimeError # Issue 23888
+multiline_newline_test/06: MissingCompileTimeError # Issue 23888
+multiline_newline_test/06r: MissingCompileTimeError # Issue 23888
+multiline_newline_test/none: RuntimeError # Issue 23888
+nan_identical_test: Fail # Issue 11551
+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
+number_identity2_test: RuntimeError # Issue 12596
+numbers_test: RuntimeError, OK # Issue 1533
+override_inheritance_mixed_test/08: Fail # Issue 18124
+override_inheritance_mixed_test/09: Fail # Issue 18124
+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
+regress_22976_test: CompileTimeError # Issue 23132
+regress_24283_test: RuntimeError # Issue 1533
+regress_28341_test: Fail # Issue 28340
+regress_29481_test: Crash # Issue 29754
+scope_variable_test/01: MissingCompileTimeError # Issue 13016
+setter4_test: CompileTimeError # issue 13639
+stacktrace_demangle_ctors_test: Fail # dart2js stack traces are not always compliant.
+stacktrace_rethrow_error_test: Pass, RuntimeError # Issue 12698
+stacktrace_rethrow_nonerror_test: Pass, RuntimeError # Issue 12698
+stacktrace_test: Pass, RuntimeError # # Issue 12698
+symbol_literal_test/*: Fail # Issue 21825
+syntax_test/none: CompileTimeError # Issue #30176.
+truncdiv_test: RuntimeError # Issue 15246
+try_catch_on_syntax_test/10: Fail # Issue 19823
+try_catch_on_syntax_test/11: Fail # Issue 19823
+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
-[ $compiler == dart2js && $dart2js_with_kernel && $checked ]
-arithmetic_canonicalization_test: RuntimeError
-assertion_initializer_const_function_test/01: RuntimeError
-assertion_initializer_test: CompileTimeError
-assign_static_type_test/01: Fail
-assign_static_type_test/02: MissingCompileTimeError
-async_await_test: Crash # NoSuchMethodError: The method 'generateBreak' was called on null.
-async_return_types_test/nestedFuture: Fail
-async_return_types_test/wrongTypeParameter: Fail
-async_star_cancel_while_paused_test: RuntimeError
-bad_constructor_test/06: Crash # NoSuchMethodError: The getter 'iterator' was called on null.
-bad_override_test/03: MissingCompileTimeError
-bad_override_test/04: MissingCompileTimeError
-bad_override_test/05: MissingCompileTimeError
-bit_operations_test/01: RuntimeError
-bit_operations_test/02: RuntimeError
-bit_operations_test/03: RuntimeError
-bit_operations_test/04: RuntimeError
-bit_operations_test/none: RuntimeError
-branch_canonicalization_test: RuntimeError
-call_function_apply_test: RuntimeError
-call_nonexistent_constructor_test/01: RuntimeError
-canonical_const2_test: RuntimeError
-canonical_const3_test: CompileTimeError
-check_member_static_test/02: MissingCompileTimeError
-class_cycle_test/02: MissingCompileTimeError
-class_cycle_test/03: MissingCompileTimeError
-closure_in_field_test/01: RuntimeError
-closure_in_field_test/02: RuntimeError
-closure_type_test/01: RuntimeError
-closure_type_test/none: RuntimeError
-compile_time_constant_checked2_test/01: MissingCompileTimeError
-compile_time_constant_checked2_test/02: MissingCompileTimeError
-compile_time_constant_checked2_test/03: MissingCompileTimeError
-compile_time_constant_checked2_test/04: MissingCompileTimeError
-compile_time_constant_checked2_test/05: MissingCompileTimeError
-compile_time_constant_checked2_test/06: MissingCompileTimeError
-compile_time_constant_checked3_test/01: MissingCompileTimeError
-compile_time_constant_checked3_test/02: MissingCompileTimeError
-compile_time_constant_checked3_test/03: MissingCompileTimeError
-compile_time_constant_checked3_test/04: MissingCompileTimeError
-compile_time_constant_checked3_test/05: MissingCompileTimeError
-compile_time_constant_checked3_test/06: MissingCompileTimeError
-compile_time_constant_checked4_test/01: MissingCompileTimeError
-compile_time_constant_checked4_test/02: MissingCompileTimeError
-compile_time_constant_checked4_test/03: MissingCompileTimeError
-compile_time_constant_checked5_test/03: MissingCompileTimeError
-compile_time_constant_checked5_test/04: MissingCompileTimeError
-compile_time_constant_checked5_test/08: MissingCompileTimeError
-compile_time_constant_checked5_test/09: MissingCompileTimeError
-compile_time_constant_checked5_test/13: MissingCompileTimeError
-compile_time_constant_checked5_test/14: MissingCompileTimeError
-compile_time_constant_checked5_test/18: MissingCompileTimeError
-compile_time_constant_checked5_test/19: MissingCompileTimeError
-compile_time_constant_checked_test/01: Fail
-compile_time_constant_checked_test/02: MissingCompileTimeError
-compile_time_constant_checked_test/03: Fail
-conditional_import_string_test: RuntimeError
-conditional_import_test: RuntimeError
-config_import_corelib_test: RuntimeError
-config_import_test: RuntimeError
-const_constructor2_test/13: MissingCompileTimeError
-const_constructor2_test/14: MissingCompileTimeError
-const_constructor2_test/15: MissingCompileTimeError
-const_constructor2_test/16: MissingCompileTimeError
-const_constructor2_test/17: MissingCompileTimeError
-const_constructor2_test/20: MissingCompileTimeError
-const_constructor2_test/22: MissingCompileTimeError
-const_constructor2_test/24: MissingCompileTimeError
-const_constructor3_test/02: MissingCompileTimeError
-const_constructor3_test/04: MissingCompileTimeError
-const_error_multiply_initialized_test/02: MissingCompileTimeError
-const_error_multiply_initialized_test/04: MissingCompileTimeError
-const_evaluation_test/01: RuntimeError
-const_factory_with_body_test/01: MissingCompileTimeError
-const_init2_test/02: MissingCompileTimeError
-const_instance_field_test/01: MissingCompileTimeError
-const_map2_test/00: MissingCompileTimeError
-const_map3_test/00: MissingCompileTimeError
-const_switch2_test/01: MissingCompileTimeError
-const_switch_test/02: RuntimeError
-const_switch_test/04: RuntimeError
-constants_test/05: MissingCompileTimeError
-constructor2_test: RuntimeError
-constructor3_test: RuntimeError
-constructor5_test: RuntimeError
-constructor6_test: RuntimeError
-constructor_named_arguments_test/none: RuntimeError
-constructor_redirect1_negative_test: Crash # Issue 30856
-constructor_redirect2_negative_test: Crash # Issue 30856
-constructor_redirect2_test/01: MissingCompileTimeError
-constructor_redirect_test/01: Crash # Assertion failure: Cannot find value Instance of 'ThisLocal' in (local(A.named2#x), local(A.named2#y), local(A.named2#z)) for j:constructor(A.named2).
-cyclic_constructor_test/01: Crash # Issue 30856
-default_factory2_test/01: Fail
-deferred_closurize_load_library_test: RuntimeError
-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: RuntimeError
-deferred_constraints_type_annotation_test/catch_check: RuntimeError
-deferred_constraints_type_annotation_test/is_check: RuntimeError
-deferred_constraints_type_annotation_test/type_annotation1: Fail
-deferred_constraints_type_annotation_test/type_annotation_generic1: Fail
-deferred_constraints_type_annotation_test/type_annotation_generic4: Fail
-deferred_inheritance_constraints_test/extends: MissingCompileTimeError
-deferred_inheritance_constraints_test/implements: MissingCompileTimeError
-deferred_inheritance_constraints_test/mixin: MissingCompileTimeError
-deferred_load_constants_test/none: RuntimeError
-deferred_load_library_wrong_args_test/01: MissingRuntimeError
-deferred_not_loaded_check_test: RuntimeError
-deferred_redirecting_factory_test: RuntimeError
-double_int_to_string_test: RuntimeError
-duplicate_export_negative_test: Fail
-duplicate_implements_test/01: MissingCompileTimeError
-duplicate_implements_test/02: MissingCompileTimeError
-duplicate_implements_test/03: MissingCompileTimeError
-duplicate_implements_test/04: MissingCompileTimeError
-dynamic_prefix_core_test/01: RuntimeError
-dynamic_prefix_core_test/none: RuntimeError
-enum_mirror_test: RuntimeError
-example_constructor_test: RuntimeError
-expect_test: RuntimeError
-external_test/10: MissingRuntimeError
-external_test/13: MissingRuntimeError
-external_test/20: MissingRuntimeError
-f_bounded_quantification5_test: RuntimeError
-f_bounded_quantification_test/01: RuntimeError
-f_bounded_quantification_test/02: RuntimeError
-factory_redirection_test/07: MissingCompileTimeError
-factory_redirection_test/08: Fail
-factory_redirection_test/09: Fail
-factory_redirection_test/10: Fail
-factory_redirection_test/12: Fail
-factory_redirection_test/13: Fail
-factory_redirection_test/14: Fail
-fauxverride_test/03: MissingCompileTimeError
-fauxverride_test/05: MissingCompileTimeError
-field_initialization_order_test: RuntimeError
-field_override3_test/00: MissingCompileTimeError
-field_override3_test/01: MissingCompileTimeError
-field_override3_test/02: MissingCompileTimeError
-field_override3_test/03: MissingCompileTimeError
-field_override4_test/02: MissingCompileTimeError
-final_attempt_reinitialization_test/01: MissingCompileTimeError
-final_attempt_reinitialization_test/02: MissingCompileTimeError
-final_field_initialization_order_test: RuntimeError
-generic_field_mixin4_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in (Instance of 'ThisLocal') for j:field(M.field).
-generic_field_mixin5_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in (Instance of 'ThisLocal') for j:field(M.field).
-generic_field_mixin_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in () for j:constructor(C3.).
-generic_local_functions_test: Crash # Unsupported operation: Unsupported type parameter type node Y.
-generic_methods_type_expression_test/01: RuntimeError
-generic_methods_type_expression_test/03: RuntimeError
-generic_methods_type_expression_test/none: RuntimeError
-getter_override2_test/02: MissingCompileTimeError
-getter_override_test/00: MissingCompileTimeError
-getter_override_test/01: MissingCompileTimeError
-getter_override_test/02: MissingCompileTimeError
-identical_closure2_test: RuntimeError
-if_null_assignment_behavior_test/14: RuntimeError
-infinite_switch_label_test: Crash # NoSuchMethodError: The method 'generateBreak' was called on null.
-infinity_test: RuntimeError
-instance_creation_in_function_annotation_test: RuntimeError
-integer_division_by_zero_test: RuntimeError
-internal_library_test/02: Crash # NoSuchMethodError: Class 'DillLibraryBuilder' has no instance getter 'mixinApplicationClasses'.
-invocation_mirror2_test: RuntimeError
-invocation_mirror_empty_arguments_test: RuntimeError
-invocation_mirror_test: RuntimeError
-issue21079_test: RuntimeError
-left_shift_test: RuntimeError
-library_env_test/has_no_html_support: RuntimeError
-library_env_test/has_no_io_support: RuntimeError
-library_env_test/has_no_mirror_support: RuntimeError
-list_literal1_test/01: MissingCompileTimeError
-list_literal4_test: RuntimeError
-main_not_a_function_test/01: CompileTimeError
-malbounded_instantiation_test/02: Fail
-malbounded_instantiation_test/03: Fail
-malbounded_redirecting_factory2_test/02: Fail
-malbounded_redirecting_factory2_test/03: Fail
-malbounded_redirecting_factory2_test/04: Fail
-malbounded_redirecting_factory_test/02: Fail
-malbounded_redirecting_factory_test/03: Fail
-malbounded_redirecting_factory_test/04: Fail
-malbounded_type_cast2_test: RuntimeError
-malbounded_type_cast_test: RuntimeError
-malbounded_type_test2_test: RuntimeError
-malbounded_type_test_test/01: Fail
-malbounded_type_test_test/03: Fail
-malbounded_type_test_test/04: Fail
-malformed2_test/00: RuntimeError
-malformed2_test/01: MissingCompileTimeError
-map_literal1_test/01: MissingCompileTimeError
-method_name_test: CompileTimeError
-method_override5_test: RuntimeError
-method_override7_test/00: MissingCompileTimeError
-method_override7_test/01: MissingCompileTimeError
-method_override7_test/02: MissingCompileTimeError
-method_override8_test/00: MissingCompileTimeError
-method_override8_test/01: MissingCompileTimeError
-mint_arithmetic_test: RuntimeError
-mixin_black_listed_test/02: MissingCompileTimeError
-mixin_forwarding_constructor4_test/01: MissingCompileTimeError
-mixin_forwarding_constructor4_test/02: MissingCompileTimeError
-mixin_forwarding_constructor4_test/03: MissingCompileTimeError
-mixin_illegal_super_use_test/01: MissingCompileTimeError
-mixin_illegal_super_use_test/02: MissingCompileTimeError
-mixin_illegal_super_use_test/03: MissingCompileTimeError
-mixin_illegal_super_use_test/04: MissingCompileTimeError
-mixin_illegal_super_use_test/05: MissingCompileTimeError
-mixin_illegal_super_use_test/06: MissingCompileTimeError
-mixin_illegal_super_use_test/07: MissingCompileTimeError
-mixin_illegal_super_use_test/08: MissingCompileTimeError
-mixin_illegal_super_use_test/09: MissingCompileTimeError
-mixin_illegal_super_use_test/10: MissingCompileTimeError
-mixin_illegal_super_use_test/11: MissingCompileTimeError
-mixin_illegal_superclass_test/01: MissingCompileTimeError
-mixin_illegal_superclass_test/02: MissingCompileTimeError
-mixin_illegal_superclass_test/03: MissingCompileTimeError
-mixin_illegal_superclass_test/04: MissingCompileTimeError
-mixin_illegal_superclass_test/05: MissingCompileTimeError
-mixin_illegal_superclass_test/06: MissingCompileTimeError
-mixin_illegal_superclass_test/07: MissingCompileTimeError
-mixin_illegal_superclass_test/08: MissingCompileTimeError
-mixin_illegal_superclass_test/09: MissingCompileTimeError
-mixin_illegal_superclass_test/10: MissingCompileTimeError
-mixin_illegal_superclass_test/11: MissingCompileTimeError
-mixin_illegal_superclass_test/12: MissingCompileTimeError
-mixin_illegal_superclass_test/13: MissingCompileTimeError
-mixin_illegal_superclass_test/14: MissingCompileTimeError
-mixin_illegal_superclass_test/15: MissingCompileTimeError
-mixin_illegal_superclass_test/16: MissingCompileTimeError
-mixin_illegal_superclass_test/17: MissingCompileTimeError
-mixin_illegal_superclass_test/18: MissingCompileTimeError
-mixin_illegal_superclass_test/19: MissingCompileTimeError
-mixin_illegal_superclass_test/20: MissingCompileTimeError
-mixin_illegal_superclass_test/21: MissingCompileTimeError
-mixin_illegal_superclass_test/22: MissingCompileTimeError
-mixin_illegal_superclass_test/23: MissingCompileTimeError
-mixin_illegal_superclass_test/24: MissingCompileTimeError
-mixin_illegal_superclass_test/25: MissingCompileTimeError
-mixin_illegal_superclass_test/26: MissingCompileTimeError
-mixin_illegal_superclass_test/27: MissingCompileTimeError
-mixin_illegal_superclass_test/28: MissingCompileTimeError
-mixin_illegal_superclass_test/29: MissingCompileTimeError
-mixin_illegal_superclass_test/30: MissingCompileTimeError
-mixin_invalid_bound2_test/02: Fail
-mixin_invalid_bound2_test/03: Fail
-mixin_invalid_bound2_test/05: Fail
-mixin_invalid_bound2_test/06: Fail
-mixin_invalid_bound2_test/08: Fail
-mixin_invalid_bound2_test/09: Fail
-mixin_invalid_bound2_test/10: Fail
-mixin_invalid_bound2_test/11: Fail
-mixin_invalid_bound2_test/12: Fail
-mixin_invalid_bound2_test/13: Fail
-mixin_invalid_bound2_test/14: Fail
-mixin_invalid_bound_test/02: Fail
-mixin_invalid_bound_test/04: Fail
-mixin_invalid_bound_test/06: Fail
-mixin_invalid_bound_test/07: Fail
-mixin_invalid_bound_test/08: Fail
-mixin_invalid_bound_test/09: Fail
-mixin_invalid_bound_test/10: Fail
-mixin_issue10216_2_test: RuntimeError
-mixin_mixin2_test: RuntimeError
-mixin_mixin3_test: RuntimeError
-mixin_mixin4_test: RuntimeError
-mixin_mixin5_test: RuntimeError
-mixin_mixin6_test: RuntimeError
-mixin_mixin7_test: RuntimeError
-mixin_mixin_bound2_test: RuntimeError
-mixin_mixin_bound_test: RuntimeError
-mixin_mixin_test: RuntimeError
-mixin_mixin_type_arguments_test: Crash # NoSuchMethodError: The method 'hasSubclass' was called on null.
-mixin_of_mixin_test/01: CompileTimeError
-mixin_of_mixin_test/02: CompileTimeError
-mixin_of_mixin_test/03: CompileTimeError
-mixin_of_mixin_test/04: CompileTimeError
-mixin_of_mixin_test/05: CompileTimeError
-mixin_of_mixin_test/06: CompileTimeError
-mixin_of_mixin_test/07: CompileTimeError
-mixin_of_mixin_test/08: CompileTimeError
-mixin_of_mixin_test/09: CompileTimeError
-mixin_of_mixin_test/10: CompileTimeError
-mixin_of_mixin_test/11: CompileTimeError
-mixin_of_mixin_test/12: CompileTimeError
-mixin_of_mixin_test/13: CompileTimeError
-mixin_of_mixin_test/14: CompileTimeError
-mixin_of_mixin_test/15: CompileTimeError
-mixin_of_mixin_test/16: CompileTimeError
-mixin_of_mixin_test/17: CompileTimeError
-mixin_of_mixin_test/18: CompileTimeError
-mixin_of_mixin_test/19: CompileTimeError
-mixin_of_mixin_test/20: CompileTimeError
-mixin_of_mixin_test/21: CompileTimeError
-mixin_of_mixin_test/22: CompileTimeError
-mixin_of_mixin_test/none: CompileTimeError
-mixin_super_2_test: CompileTimeError
-mixin_super_bound2_test/01: CompileTimeError
-mixin_super_bound2_test/none: CompileTimeError
-mixin_super_bound_test: RuntimeError
-mixin_super_constructor_named_test/01: MissingCompileTimeError
-mixin_super_constructor_positionals_test/01: MissingCompileTimeError
-mixin_super_test: CompileTimeError
-mixin_super_use_test: CompileTimeError
-mixin_superclass_test: CompileTimeError
-mixin_supertype_subclass2_test/01: CompileTimeError
-mixin_supertype_subclass2_test/02: CompileTimeError
-mixin_supertype_subclass2_test/03: CompileTimeError
-mixin_supertype_subclass2_test/04: CompileTimeError
-mixin_supertype_subclass2_test/05: CompileTimeError
-mixin_supertype_subclass2_test/none: CompileTimeError
-mixin_supertype_subclass3_test/01: CompileTimeError
-mixin_supertype_subclass3_test/02: CompileTimeError
-mixin_supertype_subclass3_test/03: CompileTimeError
-mixin_supertype_subclass3_test/04: CompileTimeError
-mixin_supertype_subclass3_test/05: CompileTimeError
-mixin_supertype_subclass3_test/none: CompileTimeError
-mixin_supertype_subclass4_test/01: CompileTimeError
-mixin_supertype_subclass4_test/02: CompileTimeError
-mixin_supertype_subclass4_test/03: CompileTimeError
-mixin_supertype_subclass4_test/04: CompileTimeError
-mixin_supertype_subclass4_test/05: CompileTimeError
-mixin_supertype_subclass4_test/none: CompileTimeError
-mixin_supertype_subclass_test/01: CompileTimeError
-mixin_supertype_subclass_test/02: CompileTimeError
-mixin_supertype_subclass_test/03: CompileTimeError
-mixin_supertype_subclass_test/04: CompileTimeError
-mixin_supertype_subclass_test/05: CompileTimeError
-mixin_supertype_subclass_test/none: CompileTimeError
-modulo_test: RuntimeError
-multiline_newline_test/04: MissingCompileTimeError
-multiline_newline_test/04r: MissingCompileTimeError
-multiline_newline_test/05: MissingCompileTimeError
-multiline_newline_test/05r: MissingCompileTimeError
-multiline_newline_test/06: MissingCompileTimeError
-multiline_newline_test/06r: MissingCompileTimeError
-named_constructor_test/01: MissingRuntimeError
-named_parameters_default_eq_test/02: MissingCompileTimeError
-nan_identical_test: RuntimeError
-nested_switch_label_test: Crash # NoSuchMethodError: The method 'generateBreak' was called on null.
-no_main_test/01: CompileTimeError
-null_test/02: MissingCompileTimeError
-null_test/03: MissingCompileTimeError
-null_test/none: RuntimeError
-number_identity2_test: RuntimeError
-numbers_test: RuntimeError
-override_field_method1_negative_test: Fail
-override_field_method2_negative_test: Fail
-override_field_method4_negative_test: Fail
-override_field_method5_negative_test: Fail
-override_field_test/01: MissingCompileTimeError
-override_inheritance_mixed_test/01: MissingCompileTimeError
-override_inheritance_mixed_test/02: MissingCompileTimeError
-override_inheritance_mixed_test/03: MissingCompileTimeError
-override_inheritance_mixed_test/04: MissingCompileTimeError
-override_method_with_field_test/01: MissingCompileTimeError
-private_super_constructor_test/01: MissingCompileTimeError
-redirecting_constructor_initializer_test: RuntimeError
-redirecting_factory_default_values_test/01: MissingCompileTimeError
-redirecting_factory_default_values_test/02: MissingCompileTimeError
-redirecting_factory_infinite_steps_test/01: Fail
-redirecting_factory_long_test: RuntimeError
-redirecting_factory_malbounded_test/01: Fail
-redirecting_factory_reflection_test: RuntimeError
-regress_13494_test: RuntimeError
-regress_17382_test: RuntimeError
-regress_20394_test/01: MissingCompileTimeError
-regress_22936_test/01: RuntimeError
-regress_22976_test/01: CompileTimeError
-regress_22976_test/02: CompileTimeError
-regress_22976_test/none: CompileTimeError
-regress_24283_test: RuntimeError
-regress_26133_test: RuntimeError # Issue 26429
-regress_27572_test: RuntimeError
-regress_27617_test/1: Crash # Assertion failure: Unexpected constructor j:constructor(Foo._) in ConstructorDataImpl._getConstructorConstant
-regress_28217_test/01: MissingCompileTimeError
-regress_28217_test/none: MissingCompileTimeError
-regress_28255_test: RuntimeError
-regress_29405_test: RuntimeError
-setter_override_test/00: MissingCompileTimeError
-setter_override_test/03: MissingCompileTimeError
-stacktrace_demangle_ctors_test: RuntimeError
-stacktrace_test: RuntimeError
-static_getter_no_setter1_test/01: RuntimeError
-static_getter_no_setter2_test/01: RuntimeError
-static_getter_no_setter3_test/01: RuntimeError
-super_call4_test: Crash # NoSuchMethodError: The getter 'thisLocal' was called on null.
-super_test: RuntimeError
-switch_bad_case_test/01: MissingCompileTimeError
-switch_bad_case_test/02: MissingCompileTimeError
-switch_case_test/00: MissingCompileTimeError
-switch_case_test/01: MissingCompileTimeError
-switch_case_test/02: MissingCompileTimeError
-syntax_test/none: CompileTimeError
-top_level_getter_no_setter1_test/01: RuntimeError
-top_level_getter_no_setter2_test/01: RuntimeError
-truncdiv_test: RuntimeError
-try_catch_test/01: MissingCompileTimeError
-type_check_const_function_typedef2_test/00: MissingCompileTimeError
-type_parameter_test/01: Crash # Internal Error: Unexpected type variable in static context.
-type_parameter_test/02: Crash # Internal Error: Unexpected type variable in static context.
-type_parameter_test/03: Crash # Internal Error: Unexpected type variable in static context.
-type_parameter_test/04: Crash # Internal Error: Unexpected type variable in static context.
-type_parameter_test/05: Crash # Internal Error: Unexpected type variable in static context.
-type_parameter_test/06: Crash # Internal Error: Unexpected type variable in static context.
-type_parameter_test/none: Crash # Internal Error: Unexpected type variable in static context.
-type_variable_bounds2_test/00: Fail
-type_variable_bounds2_test/03: Fail
-type_variable_bounds2_test/05: Fail
-type_variable_bounds3_test/00: Fail
-type_variable_bounds4_test/01: RuntimeError
-type_variable_bounds_test/01: Fail
-type_variable_bounds_test/02: Fail
-type_variable_bounds_test/04: Fail
-type_variable_bounds_test/05: Fail
-type_variable_scope_test/03: Crash # Internal Error: Unexpected type variable in static context.
+[ $compiler == dart2js && !$dart2js_with_kernel && $fast_startup ]
+assertion_initializer_const_error2_test/*: Crash
+assertion_initializer_const_error2_test/cc10: CompileTimeError # Issue #31321
+assertion_initializer_const_error2_test/cc11: CompileTimeError # Issue #31321
+assertion_initializer_const_error2_test/none: Pass
+assertion_initializer_const_function_error_test/01: Crash
+assertion_initializer_const_function_test/01: CompileTimeError
+assertion_initializer_test: Crash
+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: Fail # mirrors not supported
+vm/reflect_core_vm_test: Fail # mirrors not supported
+
+[ $compiler == dart2js && !$dart2js_with_kernel && $host_checked ]
+assertion_initializer_const_error2_test/cc01: Crash
+assertion_initializer_const_error2_test/cc02: Crash
+assertion_initializer_const_error2_test/cc03: Crash
+assertion_initializer_const_error2_test/cc04: Crash
+assertion_initializer_const_error2_test/cc05: Crash
+assertion_initializer_const_error2_test/cc06: Crash
+assertion_initializer_const_error2_test/cc07: Crash
+assertion_initializer_const_error2_test/cc08: Crash
+assertion_initializer_const_error2_test/cc09: Crash
+assertion_initializer_const_error2_test/cc10: Crash
+assertion_initializer_const_error2_test/cc11: Crash
+assertion_initializer_const_function_error_test/01: Crash
+assertion_initializer_const_function_test/01: Crash
+assertion_initializer_test: Crash
+regress_26855_test/1: Crash # Issue 26867
+regress_26855_test/2: Crash # Issue 26867
+regress_26855_test/3: Crash # Issue 26867
+regress_26855_test/4: Crash # Issue 26867
+
+[ $compiler == dart2js && !$dart2js_with_kernel && $minified ]
+cyclic_type2_test: Fail # Issue 12605
+cyclic_type_test/0*: Fail # Issue 12605
+f_bounded_quantification4_test: Fail, Pass # Issue 12605
+generic_closure_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_bound2_test: RuntimeError # Issue 12605
+mixin_mixin_bound_test: RuntimeError # Issue 12605
+symbol_conflict_test: RuntimeError # Issue 23857
+
+[ $compiler == dart2js && ($runtime == safari || $runtime == safarimobilesim) ]
+round_test: Fail, OK # Common JavaScript engine Math.round bug.
+
+[ !$dart2js_with_kernel && $minified ]
+regress_21795_test: RuntimeError # Issue 12605
+stack_trace_test: Fail, OK # Stack trace not preserved in minified code.
diff --git a/tests/language/language_kernel.status b/tests/language/language_kernel.status
index 67df84b..b3e68f2 100644
--- a/tests/language/language_kernel.status
+++ b/tests/language/language_kernel.status
@@ -2,200 +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.
-[$compiler == dartk && $runtime == vm]
-assertion_initializer_const_function_error_test/01: MissingCompileTimeError
-disassemble_test: Pass, Slow
-
-[ $compiler == dartk || $compiler == dartkp ]
-const_error_multiply_initialized_test/02: MissingCompileTimeError # Issue 29900
-const_error_multiply_initialized_test/04: MissingCompileTimeError # Issue 29900
-
-[$compiler == dartk && $runtime == vm && $checked]
-assertion_initializer_const_function_test/01: RuntimeError
-
-[$compiler == dartkp && $runtime == dart_precompiled && !$checked]
-assertion_initializer_const_function_error_test/01: MissingCompileTimeError
-
-[$compiler == dartkp && $runtime == dart_precompiled && $checked]
-assertion_initializer_const_error2_test/none: Pass
-assertion_initializer_const_error2_test/*: Crash
-assertion_initializer_const_error_test/none: Crash
-assertion_initializer_const_function_error_test/01: Crash
-assertion_initializer_const_function_error_test/none: Crash
-assertion_initializer_const_function_test/01: Crash
-assertion_initializer_const_function_test/none: Crash
-assertion_initializer_test: CompileTimeError
-
-[ !$checked && ($compiler == dartk || $compiler == dartkp) ]
-
-deferred_constraints_type_annotation_test/type_annotation1: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/type_annotation_generic1: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/type_annotation_generic4: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-
-cha_deopt1_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-cha_deopt2_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-cha_deopt3_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-conditional_import_string_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-conditional_import_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_call_empty_before_load_test: RuntimeError # Fasta/KernelVM bug: Deferred loading kernel issue 28335.
-deferred_closurize_load_library_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constant_list_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_constants_test/none: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_constants_test/reference_after_load: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_constants_test/default_argument2: Pass # Passes by mistake. KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/as_operation: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/catch_check: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/is_check: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/new: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/new_before_load: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/new_generic1: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/new_generic2: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/new_generic3: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/none: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/static_method: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/type_annotation_generic2: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/type_annotation_generic3: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/type_annotation_non_deferred: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/type_annotation_null: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/type_annotation_top_level: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_function_type_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_global_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_import_core_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_inheritance_constraints_test/extends: MissingCompileTimeError # Fasta/KernelVM bug: Deferred loading kernel issue 28335.
-deferred_inheritance_constraints_test/implements: MissingCompileTimeError # Fasta/KernelVM bug: Deferred loading kernel issue 28335.
-deferred_inheritance_constraints_test/mixin: MissingCompileTimeError # Fasta/KernelVM bug: Deferred loading kernel issue 28335.
-deferred_inheritance_constraints_test/redirecting_constructor: RuntimeError # Fasta/KernelVM bug: Deferred loading kernel issue 28335.
-deferred_inlined_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_load_constants_test/none: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_load_inval_code_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_load_library_wrong_args_test/none: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_load_library_wrong_args_test/01: Pass # Passes by mistake. KernelVM bug: Deferred loading kernel issue 28335.
-deferred_mixin_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_no_such_method_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_not_loaded_check_test: RuntimeError # Fasta/KernelVM bug: Deferred loading kernel issue 28335.
-deferred_only_constant_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_optimized_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_redirecting_factory_test: RuntimeError # Fasta/KernelVM bug: Deferred loading kernel issue 28335.
-deferred_regression_22995_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_regression_28678_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_shadow_load_library_test: CompileTimeError # Fasta/KernelVM bug: Deferred loading kernel issue 28335.
-deferred_shared_and_unshared_classes_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_static_seperate_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_super_dependency_test/01: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_type_dependency_test/as: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_type_dependency_test/is: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_type_dependency_test/none: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_type_dependency_test/type_annotation: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-final_attempt_reinitialization_test/01: MissingCompileTimeError # Issue 29900
-final_attempt_reinitialization_test/02: MissingCompileTimeError # Issue 29900
-issue_1751477_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-regress_22443_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-regress_23408_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-regress_28278_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-vm/regress_27201_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-
-config_import_corelib_test: RuntimeError # KernelVM bug: Configurable imports.
-config_import_test: RuntimeError # KernelVM bug: Configurable imports.
-library_env_test/has_html_support: RuntimeError # KernelVM bug: Configurable imports.
-library_env_test/has_no_io_support: RuntimeError # KernelVM bug: Configurable imports.
-
-compile_time_constant_c_test/02: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-const_map2_test/00: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-const_map3_test/00: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-const_nested_test: RuntimeError # KernelVM bug: Constant evaluation.
-const_switch2_test/01: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-const_syntax_test/05: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-constant_expression_test/01: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-constant_expression_test/03: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-switch_bad_case_test/01: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-switch_bad_case_test/02: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-switch_case_test/00: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-switch_case_test/01: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-switch_case_test/02: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-
-compile_time_constant_k_test/01: RuntimeError # KernelVM bug: Constant map duplicated key.
-compile_time_constant_k_test/02: RuntimeError # KernelVM bug: Constant map duplicated key.
-compile_time_constant_k_test/03: RuntimeError # KernelVM bug: Constant map duplicated key.
-compile_time_constant_o_test/01: RuntimeError # KernelVM bug: Constant map duplicated key.
-compile_time_constant_o_test/02: RuntimeError # KernelVM bug: Constant map duplicated key.
-const_dynamic_type_literal_test/02: RuntimeError # KernelVM bug: Constant map duplicated key.
-map_literal3_test: RuntimeError # KernelVM bug: Constant map duplicated key.
-map_literal6_test: RuntimeError # KernelVM bug: Constant map duplicated key.
-
-dynamic_prefix_core_test/01: RuntimeError # KernelVM bug: Blocked on language issue 29125.
-
-external_test/10: MissingRuntimeError # KernelVM bug: Unbound external.
-external_test/13: MissingRuntimeError # KernelVM bug: Unbound external.
-external_test/20: MissingRuntimeError # KernelVM bug: Unbound external.
-
-mixin_forwarding_constructor4_test/01: MissingCompileTimeError # KernelVM bug: Issue 15101
-mixin_forwarding_constructor4_test/02: MissingCompileTimeError # KernelVM bug: Issue 15101
-mixin_forwarding_constructor4_test/03: MissingCompileTimeError # KernelVM bug: Issue 15101
-mixin_super_constructor_named_test/01: MissingCompileTimeError # KernelVM bug: Issue 15101
-mixin_super_constructor_positionals_test/01: MissingCompileTimeError # KernelVM bug: Issue 15101
-
-redirecting_constructor_initializer_test: RuntimeError # Super is evaluated last; same result as source-based pipeline.
-
-vm/debug_break_enabled_vm_test/01: CompileTimeError # KernelVM bug: Bad test using extended break syntax.
-vm/debug_break_enabled_vm_test/none: CompileTimeError # KernelVM bug: Bad test using extended break syntax.
-
-vm/closure_memory_retention_test: Skip # KernelVM bug: Hits OOM
-
-redirecting_factory_long_test: RuntimeError # Fasta bug: Bad compilation of type arguments for redirecting factory.
-
-factory_redirection_test/07: MissingCompileTimeError # Fasta bug: Bad constructor redirection.
-regress_27617_test/1: MissingCompileTimeError # Fasta bug: Bad constructor redirection.
-regress_28217_test/01: MissingCompileTimeError # Fasta bug: Bad constructor redirection.
-regress_28217_test/none: MissingCompileTimeError # Fasta bug: Bad constructor redirection.
-
-vm/type_vm_test: RuntimeError # Fasta bug: Bad position information in stack trace.
-
-constructor_redirect2_test/01: MissingCompileTimeError # Fasta bug: Body on redirecting constructor.
-
-const_factory_with_body_test/01: MissingCompileTimeError # Fasta bug: Const factory with body.
-
-const_instance_field_test/01: MissingCompileTimeError # Fasta bug: Const instance field.
-
-cyclic_constructor_test/01: MissingCompileTimeError # Fasta bug: Cyclic constructor redirection.
-
-const_optional_args_negative_test: Fail # Fasta bug: Default parameter values must be const.
-
-named_parameters_default_eq_test/02: MissingCompileTimeError # Fasta bug: Default values are not allowed on redirecting factory constructors.
-redirecting_factory_default_values_test/01: MissingCompileTimeError # Fasta bug: Default values are not allowed on redirecting factory constructors.
-redirecting_factory_default_values_test/02: MissingCompileTimeError # Fasta bug: Default values are not allowed on redirecting factory constructors.
-
-private_super_constructor_test/01: MissingCompileTimeError # Fasta bug: Illegal access to private constructor.
-regress_20394_test/01: MissingCompileTimeError # Fasta bug: Illegal access to private constructor.
-
-constructor_redirect_test/01: MissingCompileTimeError # Fasta bug: Initializer refers to this.
-
-const_constructor_nonconst_field_test/01: MissingCompileTimeError # Fasta bug: Non-const expression in field initializer.
-
-method_name_test: CompileTimeError # Fasta bug: Parser bug.
-
-named_constructor_test/01: MissingRuntimeError # Fasta bug: Bad compilation of constructor reference.
-
-const_native_factory_test/01: MissingCompileTimeError # Fasta bug: Issue 29763
-
-syntax_test/none: CompileTimeError # Issue #30176.
-syntax_test/64: MissingCompileTimeError # Test bug: Test doesn't execute erroneous code.
-syntax_test/65: MissingCompileTimeError # Test bug: Test doesn't execute erroneous code.
-
-# dartk: JIT & AOT failures (debug)
-[ ($compiler == dartk || $compiler == dartkp) && $mode == debug ]
-const_instance_field_test/01: Crash
-cyclic_type_variable_test/01: Crash
-cyclic_type_variable_test/02: Crash
-cyclic_type_variable_test/03: Crash
-cyclic_type_variable_test/04: Crash
-cyclic_type_variable_test/none: Crash
-type_parameter_test/04: Crash
-type_parameter_test/05: Crash
-
-# Triaged checked mode failures
-[ ($compiler == dartk || $compiler == dartkp) && $checked ]
-regress_22728_test: Fail # Dartk Issue 28498
-
# dartk: JIT failures
[ $compiler == dartk ]
const_locals_test: RuntimeError
@@ -208,35 +14,68 @@
vm/lazy_deopt_vm_test: Pass, Slow, Timeout
vm/optimized_stacktrace_test: Skip # Issue 28788
-# dartk: JIT failures (debug)
-[ $compiler == dartk && $mode == debug ]
-deopt_inlined_function_lazy_test: Skip
-hello_dart_test: Crash # error: expected: cls.is_type_finalized()
-vm/lazy_deopt_vm_test: Crash
-
# dartk: precompilation failures
[ $compiler == dartkp ]
const_syntax_test/08: Crash
+deferred_redirecting_factory_test: CompileTimeError # Issue 31296
+export_double_same_main_test: Crash # Issue 29895
final_syntax_test/09: Crash
-ref_before_declaration_test/none: Pass
final_syntax_test/09: MissingCompileTimeError
+ref_before_declaration_test/none: Pass
ref_before_declaration_test/none: Crash
stacktrace_demangle_ctors_test: RuntimeError
vm/optimized_stacktrace_test: Crash
vm/regress_27671_test: Crash
-vm/type_vm_test: Crash
-deferred_redirecting_factory_test: CompileTimeError # Issue 31296
vm/regress_27671_test: Skip # Unsupported
+vm/type_vm_test: Crash
+
+# dartk: JIT failures (debug)
+[ $compiler == dartk && $mode == debug ]
+deopt_inlined_function_lazy_test: Skip
+hello_dart_test: Crash # error: expected: cls.is_type_finalized()
+vm/lazy_deopt_vm_test: Crash
+
+[ $compiler == dartk && $runtime == vm ]
+assertion_initializer_const_function_error_test/01: MissingCompileTimeError
+disassemble_test: Pass, Slow
+
+[ $compiler == dartk && $runtime == vm && $checked ]
+assertion_initializer_const_function_test/01: RuntimeError
# dartk: precompilation failures (debug)
[ $compiler == dartkp && $mode == debug ]
+assertion_test: Crash
external_test/13: Crash
final_syntax_test/09: Crash
malbounded_type_cast_test: Crash
regress_29025_test: Crash
vm/async_await_catch_stacktrace_test: Crash
-# dartk: checked mode failures
+[ $compiler == dartkp && $runtime == dart_precompiled && $checked ]
+assertion_initializer_const_error2_test/*: Crash
+assertion_initializer_const_error2_test/none: Pass
+assertion_initializer_const_error_test/none: Crash
+assertion_initializer_const_function_error_test/01: Crash
+assertion_initializer_const_function_error_test/none: Crash
+assertion_initializer_const_function_test/01: Crash
+assertion_initializer_const_function_test/none: Crash
+assertion_initializer_test: CompileTimeError
+
+[ $compiler == dartkp && $runtime == dart_precompiled && !$checked ]
+assertion_initializer_const_function_error_test/01: MissingCompileTimeError
+
+# dartk: JIT & AOT failures (debug)
+[ $mode == debug && ($compiler == dartk || $compiler == dartkp) ]
+const_instance_field_test/01: Crash
+cyclic_type_variable_test/01: Crash
+cyclic_type_variable_test/02: Crash
+cyclic_type_variable_test/03: Crash
+cyclic_type_variable_test/04: Crash
+cyclic_type_variable_test/none: Crash
+type_parameter_test/04: Crash
+type_parameter_test/05: Crash
+
+# Triaged checked mode failures
[ $checked && ($compiler == dartk || $compiler == dartkp) ]
assert_initializer_test/31: MissingCompileTimeError # KernelVM bug: Constant evaluation.
assert_initializer_test/32: MissingCompileTimeError # KernelVM bug: Constant evaluation.
@@ -271,7 +110,6 @@
factory_redirection_test/12: Fail
factory_redirection_test/13: Fail
factory_redirection_test/14: Fail
-function_type2_test: RuntimeError
function_type/function_type0_test: RuntimeError
function_type/function_type10_test: RuntimeError
function_type/function_type11_test: RuntimeError
@@ -372,6 +210,7 @@
function_type/function_type98_test: RuntimeError
function_type/function_type99_test: RuntimeError
function_type/function_type9_test: RuntimeError
+function_type2_test: RuntimeError
list_literal1_test/01: MissingCompileTimeError
malbounded_redirecting_factory2_test/03: Fail
malbounded_redirecting_factory2_test/04: Fail
@@ -393,17 +232,143 @@
msk_bound_test: RuntimeError
redirecting_factory_infinite_steps_test/01: Fail
redirecting_factory_malbounded_test/01: Fail
+regress_22728_test: Fail # Dartk Issue 28498
regress_22728_test: RuntimeError
regress_26133_test: RuntimeError
type_parameter_test/05: MissingCompileTimeError
type_parameter_test/none: RuntimeError
type_variable_bounds4_test/01: RuntimeError
-[ $compiler == dartkp ]
-export_double_same_main_test: Crash # Issue 29895
+[ !$checked && ($compiler == dartk || $compiler == dartkp) ]
+cha_deopt1_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+cha_deopt2_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+cha_deopt3_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+compile_time_constant_c_test/02: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+compile_time_constant_k_test/01: RuntimeError # KernelVM bug: Constant map duplicated key.
+compile_time_constant_k_test/02: RuntimeError # KernelVM bug: Constant map duplicated key.
+compile_time_constant_k_test/03: RuntimeError # KernelVM bug: Constant map duplicated key.
+compile_time_constant_o_test/01: RuntimeError # KernelVM bug: Constant map duplicated key.
+compile_time_constant_o_test/02: RuntimeError # KernelVM bug: Constant map duplicated key.
+conditional_import_string_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+conditional_import_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+config_import_corelib_test: RuntimeError # KernelVM bug: Configurable imports.
+config_import_test: RuntimeError # KernelVM bug: Configurable imports.
+const_constructor_nonconst_field_test/01: MissingCompileTimeError # Fasta bug: Non-const expression in field initializer.
+const_dynamic_type_literal_test/02: RuntimeError # KernelVM bug: Constant map duplicated key.
+const_factory_with_body_test/01: MissingCompileTimeError # Fasta bug: Const factory with body.
+const_instance_field_test/01: MissingCompileTimeError # Fasta bug: Const instance field.
+const_map2_test/00: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+const_map3_test/00: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+const_native_factory_test/01: MissingCompileTimeError # Fasta bug: Issue 29763
+const_nested_test: RuntimeError # KernelVM bug: Constant evaluation.
+const_optional_args_negative_test: Fail # Fasta bug: Default parameter values must be const.
+const_switch2_test/01: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+const_syntax_test/05: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+constant_expression_test/01: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+constant_expression_test/03: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+constructor_redirect2_test/01: MissingCompileTimeError # Fasta bug: Body on redirecting constructor.
+constructor_redirect_test/01: MissingCompileTimeError # Fasta bug: Initializer refers to this.
+cyclic_constructor_test/01: MissingCompileTimeError # Fasta bug: Cyclic constructor redirection.
+deferred_call_empty_before_load_test: RuntimeError # Fasta/KernelVM bug: Deferred loading kernel issue 28335.
+deferred_closurize_load_library_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constant_list_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_constants_test/default_argument2: Pass # Passes by mistake. KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_constants_test/none: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_constants_test/reference_after_load: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/as_operation: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/catch_check: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/is_check: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/new: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/new_before_load: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/new_generic1: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/new_generic2: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/new_generic3: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/none: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/static_method: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/type_annotation1: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/type_annotation_generic1: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/type_annotation_generic2: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/type_annotation_generic3: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/type_annotation_generic4: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/type_annotation_non_deferred: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/type_annotation_null: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/type_annotation_top_level: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_function_type_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_global_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_import_core_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_inheritance_constraints_test/extends: MissingCompileTimeError # Fasta/KernelVM bug: Deferred loading kernel issue 28335.
+deferred_inheritance_constraints_test/implements: MissingCompileTimeError # Fasta/KernelVM bug: Deferred loading kernel issue 28335.
+deferred_inheritance_constraints_test/mixin: MissingCompileTimeError # Fasta/KernelVM bug: Deferred loading kernel issue 28335.
+deferred_inheritance_constraints_test/redirecting_constructor: RuntimeError # Fasta/KernelVM bug: Deferred loading kernel issue 28335.
+deferred_inlined_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_load_constants_test/none: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_load_inval_code_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_load_library_wrong_args_test/01: Pass # Passes by mistake. KernelVM bug: Deferred loading kernel issue 28335.
+deferred_load_library_wrong_args_test/none: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_mixin_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_no_such_method_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_not_loaded_check_test: RuntimeError # Fasta/KernelVM bug: Deferred loading kernel issue 28335.
+deferred_only_constant_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_optimized_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_redirecting_factory_test: RuntimeError # Fasta/KernelVM bug: Deferred loading kernel issue 28335.
+deferred_regression_22995_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_regression_28678_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_shadow_load_library_test: CompileTimeError # Fasta/KernelVM bug: Deferred loading kernel issue 28335.
+deferred_shared_and_unshared_classes_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_static_seperate_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_super_dependency_test/01: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_type_dependency_test/as: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_type_dependency_test/is: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_type_dependency_test/none: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_type_dependency_test/type_annotation: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+dynamic_prefix_core_test/01: RuntimeError # KernelVM bug: Blocked on language issue 29125.
+external_test/10: MissingRuntimeError # KernelVM bug: Unbound external.
+external_test/13: MissingRuntimeError # KernelVM bug: Unbound external.
+external_test/20: MissingRuntimeError # KernelVM bug: Unbound external.
+factory_redirection_test/07: MissingCompileTimeError # Fasta bug: Bad constructor redirection.
+final_attempt_reinitialization_test/01: MissingCompileTimeError # Issue 29900
+final_attempt_reinitialization_test/02: MissingCompileTimeError # Issue 29900
+issue_1751477_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+library_env_test/has_html_support: RuntimeError # KernelVM bug: Configurable imports.
+library_env_test/has_no_io_support: RuntimeError # KernelVM bug: Configurable imports.
+map_literal3_test: RuntimeError # KernelVM bug: Constant map duplicated key.
+map_literal6_test: RuntimeError # KernelVM bug: Constant map duplicated key.
+method_name_test: CompileTimeError # Fasta bug: Parser bug.
+mixin_forwarding_constructor4_test/01: MissingCompileTimeError # KernelVM bug: Issue 15101
+mixin_forwarding_constructor4_test/02: MissingCompileTimeError # KernelVM bug: Issue 15101
+mixin_forwarding_constructor4_test/03: MissingCompileTimeError # KernelVM bug: Issue 15101
+mixin_super_constructor_named_test/01: MissingCompileTimeError # KernelVM bug: Issue 15101
+mixin_super_constructor_positionals_test/01: MissingCompileTimeError # KernelVM bug: Issue 15101
+named_constructor_test/01: MissingRuntimeError # Fasta bug: Bad compilation of constructor reference.
+named_parameters_default_eq_test/02: MissingCompileTimeError # Fasta bug: Default values are not allowed on redirecting factory constructors.
+private_super_constructor_test/01: MissingCompileTimeError # Fasta bug: Illegal access to private constructor.
+redirecting_constructor_initializer_test: RuntimeError # Super is evaluated last; same result as source-based pipeline.
+redirecting_factory_default_values_test/01: MissingCompileTimeError # Fasta bug: Default values are not allowed on redirecting factory constructors.
+redirecting_factory_default_values_test/02: MissingCompileTimeError # Fasta bug: Default values are not allowed on redirecting factory constructors.
+redirecting_factory_long_test: RuntimeError # Fasta bug: Bad compilation of type arguments for redirecting factory.
+regress_20394_test/01: MissingCompileTimeError # Fasta bug: Illegal access to private constructor.
+regress_22443_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+regress_23408_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+regress_27617_test/1: MissingCompileTimeError # Fasta bug: Bad constructor redirection.
+regress_28217_test/01: MissingCompileTimeError # Fasta bug: Bad constructor redirection.
+regress_28217_test/none: MissingCompileTimeError # Fasta bug: Bad constructor redirection.
+regress_28278_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+switch_bad_case_test/01: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+switch_bad_case_test/02: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+switch_case_test/00: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+switch_case_test/01: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+switch_case_test/02: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+syntax_test/64: MissingCompileTimeError # Test bug: Test doesn't execute erroneous code.
+syntax_test/65: MissingCompileTimeError # Test bug: Test doesn't execute erroneous code.
+syntax_test/none: CompileTimeError # Issue #30176.
+vm/closure_memory_retention_test: Skip # KernelVM bug: Hits OOM
+vm/debug_break_enabled_vm_test/01: CompileTimeError # KernelVM bug: Bad test using extended break syntax.
+vm/debug_break_enabled_vm_test/none: CompileTimeError # KernelVM bug: Bad test using extended break syntax.
+vm/regress_27201_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+vm/type_vm_test: RuntimeError # Fasta bug: Bad position information in stack trace.
[ $compiler == dartk || $compiler == dartkp ]
bad_constructor_test/06: DartkCrash # Issue 31299
+const_error_multiply_initialized_test/02: MissingCompileTimeError # Issue 29900
+const_error_multiply_initialized_test/04: MissingCompileTimeError # Issue 29900
-[ $compiler == dartkp && $mode == debug ]
-assertion_test: Crash
diff --git a/tests/language/language_spec_parser.status b/tests/language/language_spec_parser.status
index 2c5182f..f9d31ec 100644
--- a/tests/language/language_spec_parser.status
+++ b/tests/language/language_spec_parser.status
@@ -3,6 +3,13 @@
# BSD-style license that can be found in the LICENSE file.
[ $compiler == spec_parser ]
+conditional_import_string_test: Fail # Not yet supported.
+conditional_import_test: Fail # Not yet supported.
+config_import_corelib_test: Fail # Not yet supported.
+config_import_test: Fail # Not yet supported.
+const_native_factory_test/01: Fail # Uses `native`.
+deep_nesting1_negative_test: Skip # Stack overflow.
+deep_nesting2_negative_test: Skip # Stack overflow.
factory3_negative_test: Fail # Negative, puts `default` in class header.
field3_negative_test: Fail # Negative, uses `final var a`.
getter_declaration_negative_test: Fail # Negative, uses getter with parameter.
@@ -11,6 +18,7 @@
is_not_class1_negative_test: Fail # Negative, uses `a is "A"`.
is_not_class4_negative_test: Fail # Negative, uses `a is A is A`.
issue1578_negative_test: Fail # Negative, is line noise.
+issue_1751477_test: Skip # Times out: 9 levels, exponential blowup => 430 secs.
label8_negative_test: Fail # Negative, uses misplaced label.
list_literal_negative_test: Fail # Negative, uses `new List<int>[1, 2]`.
map_literal_negative_test: Fail # Negative, uses `new Map<int>{..}`.
@@ -27,15 +35,5 @@
test_negative_test: Fail # Negative, uses non-terminated string literal.
unary_plus_negative_test: Fail # Negative, uses non-existing unary plus.
unhandled_exception_negative_test: Fail # Negative, defaults required parameter.
-
vm/debug_break_enabled_vm_test: Fail # Uses debug break.
-const_native_factory_test/01: Fail # Uses `native`.
-conditional_import_string_test: Fail # Not yet supported.
-conditional_import_test: Fail # Not yet supported.
-config_import_corelib_test: Fail # Not yet supported.
-config_import_test: Fail # Not yet supported.
-
-deep_nesting1_negative_test: Skip # Stack overflow.
-deep_nesting2_negative_test: Skip # Stack overflow.
-issue_1751477_test: Skip # Times out: 9 levels, exponential blowup => 430 secs.
diff --git a/tests/language_2/await_test.dart b/tests/language_2/await_test.dart
index e626409..ff1fe91 100644
--- a/tests/language_2/await_test.dart
+++ b/tests/language_2/await_test.dart
@@ -5,6 +5,7 @@
// VMOptions=---optimization-counter-threshold=10
import 'package:expect/expect.dart';
+import 'package:async_helper/async_helper.dart';
import 'dart:async';
@@ -89,9 +90,6 @@
Expect.equals(e, 5);
}
-await() => 4;
-nonAsyncFunction() => await();
-
others() async {
var a = "${globalVariable} ${await dummy()} " + await "someString";
Expect.equals(a, "1 1 someString");
@@ -103,7 +101,6 @@
Expect.equals(b[cnt], 1);
var e = b[0] + await dummy();
Expect.equals(e, 2);
- Expect.equals(nonAsyncFunction(), 4);
}
conditionals() async {
@@ -120,12 +117,124 @@
} catch (e) {}
}
-main() {
- for (int i = 0; i < 10; i++) {
- staticMembers();
- topLevelMembers();
- instanceMembers();
- conditionals();
- others();
+asserts() async {
+ for (final FutureOr<T> Function<T>(T) func in <Function>[id, future]) {
+ assert(await func(true));
+ assert(id(true), await func("message"));
+ assert(await func(true), await (func("message")));
+ bool success = true;
+ try {
+ assert(await func(false), await (func("message")));
+ if (assertStatementsEnabled) Expect.fail("Didn't throw");
+ } on AssertionError catch (e) {
+ Expect.equals("message", e.message);
+ }
}
}
+
+controlFlow() async {
+ for (final FutureOr<T> Function<T>(T) func in <Function>[id, future]) {
+ // For.
+ var c = 0;
+ for (var i = await (func(0)); await func(i < 5); await func(i++)) {
+ c++;
+ }
+ Expect.equals(5, c);
+ // While.
+ c = 0;
+ while (await func(c < 5)) c++;
+ Expect.equals(5, c);
+ // Do-while.
+ c = 0;
+ do {
+ c++;
+ } while (await func(c < 5));
+ Expect.equals(5, c);
+ // If.
+ if (await func(c == 5)) {
+ Expect.equals(5, c);
+ } else {
+ Expect.fail("unreachable");
+ }
+ // Throw.
+ try {
+ throw await func("string");
+ } on String {
+ // OK.
+ }
+
+ try {
+ await (throw "string");
+ } on String {
+ // OK.
+ }
+ // Try/catch/finally
+ try {
+ try {
+ throw "string";
+ } catch (e) {
+ Expect.equals("string", e);
+ Expect.equals(0, await func(0));
+ rethrow;
+ } finally {
+ Expect.equals(0, await func(0));
+ }
+ } catch (e) {
+ Expect.equals(0, await func(0));
+ Expect.equals("string", e);
+ } finally {
+ Expect.equals(0, await func(0));
+ }
+ // Switch
+ switch (await func(2)) {
+ case 2:
+ break;
+ default:
+ Expect.fail("unreachable");
+ }
+ // Return.
+ Expect.equals(
+ 42,
+ await () async {
+ return await func(42);
+ }());
+ Expect.equals(
+ 42,
+ await () async {
+ return func(42);
+ }());
+ // Yield.
+ Stream<int> testStream1() async* {
+ yield await func(42);
+ }
+
+ Expect.listEquals([42], await testStream1().toList());
+ // Yield*
+ Stream<int> testStream2() async* {
+ yield* await func(intStream());
+ }
+
+ Expect.listEquals([42], await testStream2().toList());
+ }
+}
+
+FutureOr<T> future<T>(T value) async => value;
+FutureOr<T> id<T>(T value) => value;
+
+Stream<int> intStream() async* {
+ yield 42;
+}
+
+main() {
+ asyncStart();
+ for (int i = 0; i < 11; i++) {
+ asyncTest(staticMembers);
+ asyncTest(topLevelMembers);
+ asyncTest(instanceMembers);
+ asyncTest(conditionals);
+ asyncTest(others);
+ asyncTest(asserts);
+ asyncTest(controlFlow);
+ }
+ asyncEnd();
+}
diff --git a/tests/language_2/bug31436_test.dart b/tests/language_2/bug31436_test.dart
new file mode 100644
index 0000000..30fec3e
--- /dev/null
+++ b/tests/language_2/bug31436_test.dart
@@ -0,0 +1,67 @@
+// 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.
+
+import "package:expect/expect.dart";
+
+void block_test() {
+ List<Object> Function() g;
+ g = () {
+ return [3];
+ };
+ assert(g is List<Object> Function());
+ assert(g is! List<int> Function());
+ g().add("hello"); // No runtime error
+ List<int> l = [3];
+ g = () {
+ return l;
+ };
+ assert(g is List<Object> Function());
+ assert(g is List<int> Function());
+ Expect.throwsTypeError(() {
+ g().add("hello"); // runtime error
+ });
+ Object o = l;
+ g = () {
+ return o;
+ }; // No implicit downcast on the assignment, implicit downcast on the return
+ assert(g is List<Object> Function());
+ assert(g is! List<int> Function());
+ assert(g is! Object Function());
+ g(); // No runtime error;
+ o = 3;
+ Expect.throwsTypeError(() {
+ g(); // Failed runtime cast on the return type of f
+ });
+}
+
+void arrow_test() {
+ List<Object> Function() g;
+ g = () => [3];
+ assert(g is List<Object> Function());
+ assert(g is! List<int> Function());
+ g().add("hello"); // No runtime error
+ List<int> l = [3];
+ g = () => l;
+ assert(g is List<Object> Function());
+ assert(g is List<int> Function());
+ Expect.throwsTypeError(() {
+ g().add("hello"); // runtime error
+ });
+ Object o = l;
+ g = () =>
+ o; // No implicit downcast on the assignment, implicit downcast on the return
+ assert(g is List<Object> Function());
+ assert(g is! List<int> Function());
+ assert(g is! Object Function());
+ g(); // No runtime error;
+ o = 3;
+ Expect.throwsTypeError(() {
+ g(); // Failed runtime cast on the return type of f
+ });
+}
+
+main() {
+ block_test();
+ arrow_test();
+}
diff --git a/tests/language_2/closure_param_null_to_object_test.dart b/tests/language_2/closure_param_null_to_object_test.dart
new file mode 100644
index 0000000..5a2bbfe
--- /dev/null
+++ b/tests/language_2/closure_param_null_to_object_test.dart
@@ -0,0 +1,16 @@
+// 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.
+
+import "package:expect/expect.dart";
+
+main() {
+ int Function(Null) f = (x) => 1; // Runtime type is int Function(Object)
+ Expect.isTrue(f is int Function(Null));
+ Expect.isTrue(f is int Function(String));
+ Expect.isTrue(f is int Function(Object));
+ int Function(String) g = (x) => 1; // Runtime type is int Function(String)
+ Expect.isTrue(g is int Function(Null));
+ Expect.isTrue(g is int Function(String));
+ Expect.isFalse(g is int Function(Object));
+}
diff --git a/tests/language_2/extract_type_arguments_test.dart b/tests/language_2/extract_type_arguments_test.dart
new file mode 100644
index 0000000..e63bbf3
--- /dev/null
+++ b/tests/language_2/extract_type_arguments_test.dart
@@ -0,0 +1,155 @@
+// 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.
+
+/// Tests the (probably temporary) API for extracting reified type arguments
+/// from an object.
+
+import "package:expect/expect.dart";
+
+// It's weird that a language test is testing code defined in a package. The
+// rationale for putting this test here is:
+//
+// * This package is special and "built-in" to Dart in that the various
+// compilers give it the special privilege of importing "dart:_internal"
+// without error.
+//
+// * Eventually, the API being tested here may be replaced with an actual
+// language feature, in which case this test will become an actual language
+// test.
+//
+// * Placing the test here ensures it is tested on all of the various platforms
+// and configurations where we need the API to work.
+import "package:dart_internal/extract_type_arguments.dart";
+
+main() {
+ testExtractIterableTypeArgument();
+ testExtractMapTypeArguments();
+}
+
+testExtractIterableTypeArgument() {
+ Object object = <int>[];
+
+ // Invokes function with iterable's type argument.
+ var called = false;
+ extractIterableTypeArgument(object, <T>() {
+ Expect.equals(T, int);
+ called = true;
+ });
+ Expect.isTrue(called);
+
+ // Returns result of function.
+ Object result = extractIterableTypeArgument(object, <T>() => new Set<T>());
+ Expect.isTrue(result is Set<int>);
+ Expect.isFalse(result is Set<bool>);
+
+ // Accepts user-defined implementations of Iterable.
+ object = new CustomIterable();
+ result = extractIterableTypeArgument(object, <T>() => new Set<T>());
+ Expect.isTrue(result is Set<String>);
+ Expect.isFalse(result is Set<bool>);
+}
+
+testExtractMapTypeArguments() {
+ Object object = <String, int>{};
+
+ // Invokes function with map's type arguments.
+ var called = false;
+ extractMapTypeArguments(object, <K, V>() {
+ Expect.equals(K, String);
+ Expect.equals(V, int);
+ called = true;
+ });
+ Expect.isTrue(called);
+
+ // Returns result of function.
+ Object result = extractMapTypeArguments(object, <K, V>() => new Two<K, V>());
+ Expect.isTrue(result is Two<String, int>);
+ Expect.isFalse(result is Two<int, String>);
+
+ // Accepts user-defined implementations of Map.
+ object = new CustomMap();
+ result = extractMapTypeArguments(object, <K, V>() => new Two<K, V>());
+ Expect.isTrue(result is Two<int, bool>);
+ Expect.isFalse(result is Two<bool, int>);
+
+ // Uses the type parameter order of Map, not any other type in the hierarchy.
+ object = new FlippedMap<double, Null>();
+ result = extractMapTypeArguments(object, <K, V>() => new Two<K, V>());
+ // Order is reversed here:
+ Expect.isTrue(result is Two<Null, double>);
+ Expect.isFalse(result is Two<double, Null>);
+}
+
+class Two<A, B> {}
+
+// Implementing Iterable from scratch is kind of a chore, but ensures the API
+// works even if the class never bottoms out on a concrete class defining in a
+// "dart:" library.
+class CustomIterable implements Iterable<String> {
+ bool any(Function test) => throw new UnimplementedError();
+ bool contains(Object element) => throw new UnimplementedError();
+ String elementAt(int index) => throw new UnimplementedError();
+ bool every(Function test) => throw new UnimplementedError();
+ Iterable<T> expand<T>(Function f) => throw new UnimplementedError();
+ String get first => throw new UnimplementedError();
+ String firstWhere(Function test, {Function orElse}) =>
+ throw new UnimplementedError();
+ T fold<T>(T initialValue, Function combine) => throw new UnimplementedError();
+ void forEach(Function f) => throw new UnimplementedError();
+ bool get isEmpty => throw new UnimplementedError();
+ bool get isNotEmpty => throw new UnimplementedError();
+ Iterator<String> get iterator => throw new UnimplementedError();
+ String join([String separator = ""]) => throw new UnimplementedError();
+ String get last => throw new UnimplementedError();
+ String lastWhere(Function test, {Function orElse}) =>
+ throw new UnimplementedError();
+ int get length => throw new UnimplementedError();
+ Iterable<T> map<T>(Function f) => throw new UnimplementedError();
+ String reduce(Function combine) => throw new UnimplementedError();
+ String get single => throw new UnimplementedError();
+ String singleWhere(Function test) => throw new UnimplementedError();
+ Iterable<String> skip(int count) => throw new UnimplementedError();
+ Iterable<String> skipWhile(Function test) => throw new UnimplementedError();
+ Iterable<String> take(int count) => throw new UnimplementedError();
+ Iterable<String> takeWhile(Function test) => throw new UnimplementedError();
+ List<String> toList({bool growable: true}) => throw new UnimplementedError();
+ Set<String> toSet() => throw new UnimplementedError();
+ Iterable<String> where(Function test) => throw new UnimplementedError();
+}
+
+class CustomMap implements Map<int, bool> {
+ bool operator [](Object key) => throw new UnimplementedError();
+ void operator []=(int key, bool value) => throw new UnimplementedError();
+ void addAll(Map<int, bool> other) => throw new UnimplementedError();
+ void clear() => throw new UnimplementedError();
+ bool containsKey(Object key) => throw new UnimplementedError();
+ bool containsValue(Object value) => throw new UnimplementedError();
+ void forEach(Function f) => throw new UnimplementedError();
+ bool get isEmpty => throw new UnimplementedError();
+ bool get isNotEmpty => throw new UnimplementedError();
+ Iterable<int> get keys => throw new UnimplementedError();
+ int get length => throw new UnimplementedError();
+ bool putIfAbsent(int key, Function ifAbsent) =>
+ throw new UnimplementedError();
+ bool remove(Object key) => throw new UnimplementedError();
+ Iterable<bool> get values => throw new UnimplementedError();
+}
+
+// Note: Flips order of type parameters.
+class FlippedMap<V, K> implements Map<K, V> {
+ V operator [](Object key) => throw new UnimplementedError();
+ void operator []=(K key, V value) => throw new UnimplementedError();
+ void addAll(Map<K, V> other) => throw new UnimplementedError();
+ void clear() => throw new UnimplementedError();
+ bool containsKey(Object key) => throw new UnimplementedError();
+ bool containsValue(Object value) => throw new UnimplementedError();
+ void forEach(Function f) => throw new UnimplementedError();
+ bool get isEmpty => throw new UnimplementedError();
+ bool get isNotEmpty => throw new UnimplementedError();
+ Iterable<K> get keys => throw new UnimplementedError();
+ int get length => throw new UnimplementedError();
+ V putIfAbsent(K key, Function ifAbsent) => throw new UnimplementedError();
+ V remove(Object key) => throw new UnimplementedError();
+ Iterable<V> get values => throw new UnimplementedError();
+}
diff --git a/tests/language_2/forwarding_stub_tearoff_generic_test.dart b/tests/language_2/forwarding_stub_tearoff_generic_test.dart
new file mode 100644
index 0000000..1bccc6e
--- /dev/null
+++ b/tests/language_2/forwarding_stub_tearoff_generic_test.dart
@@ -0,0 +1,43 @@
+// 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.
+
+import "package:expect/expect.dart";
+
+class A {}
+
+class B extends A {}
+
+class C {
+ void f(B x) {}
+}
+
+abstract class I<T> {
+ void f(T x);
+}
+
+// D contains a forwarding stub for f which ensures that `x` is type checked.
+class D extends C implements I<B> {}
+
+void checkStubTearoff(dynamic tearoff) {
+ // Since the stub's parameter is covariant, its type should be reified as
+ // Object.
+ Expect.isTrue(tearoff is void Function(Object));
+
+ // Verify that the appropriate runtime check occurs.
+ tearoff(new B()); // No error
+ Expect.throwsTypeError(() {
+ tearoff(new A());
+ });
+}
+
+main() {
+ // The same forwarding stub should be torn off from D regardless of what
+ // interface is used to tear it off.
+ D d = new D();
+ C c = d;
+ I i = d;
+ checkStubTearoff(d.f);
+ checkStubTearoff(c.f);
+ checkStubTearoff(i.f);
+}
diff --git a/tests/language_2/forwarding_stub_tearoff_test.dart b/tests/language_2/forwarding_stub_tearoff_test.dart
new file mode 100644
index 0000000..12aa7bf
--- /dev/null
+++ b/tests/language_2/forwarding_stub_tearoff_test.dart
@@ -0,0 +1,43 @@
+// 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.
+
+import "package:expect/expect.dart";
+
+class A {}
+
+class B extends A {}
+
+class C {
+ void f(B x) {}
+}
+
+abstract class I {
+ void f(covariant A x);
+}
+
+// D contains a forwarding stub for f which ensures that `x` is type checked.
+class D extends C implements I {}
+
+void checkStubTearoff(dynamic tearoff) {
+ // Since the stub's parameter is covariant, its type should be reified as
+ // Object.
+ Expect.isTrue(tearoff is void Function(Object));
+
+ // Verify that the appropriate runtime check occurs.
+ tearoff(new B()); // No error
+ Expect.throwsTypeError(() {
+ tearoff(new A());
+ });
+}
+
+main() {
+ // The same forwarding stub should be torn off from D regardless of what
+ // interface is used to tear it off.
+ D d = new D();
+ C c = d;
+ I i = d;
+ checkStubTearoff(d.f);
+ checkStubTearoff(c.f);
+ checkStubTearoff(i.f);
+}
diff --git a/tests/language_2/generic_function_typedef2_test.dart b/tests/language_2/generic_function_typedef2_test.dart
index 4e9acd9..438dfaf 100644
--- a/tests/language_2/generic_function_typedef2_test.dart
+++ b/tests/language_2/generic_function_typedef2_test.dart
@@ -19,16 +19,16 @@
));
typedef L = Function(
{
- /* // //# 05: compile-time error
+ /* // //# 05: syntax error
bool
- */ // //# 05: compile-time error
+ */ // //# 05: continued
x});
typedef M = Function(
{
- /* // //# 06: compile-time error
+ /* // //# 06: syntax error
bool
- */ // //# 06: compile-time error
+ */ // //# 06: continued
int});
foo({bool int}) {}
diff --git a/tests/language_2/invalid_cast_test.dart b/tests/language_2/invalid_cast_test.dart
new file mode 100644
index 0000000..72fc76a
--- /dev/null
+++ b/tests/language_2/invalid_cast_test.dart
@@ -0,0 +1,33 @@
+// 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.
+
+class C {
+ C();
+ factory C.fact() => null;
+ factory C.fact2() = D;
+ C.nonFact();
+ C.nonFact2() : this.nonFact();
+ static void staticFunction(int i) {}
+}
+
+class D extends C {}
+
+void topLevelFunction(int i) {}
+
+test() {
+ void localFunction(int i) {}
+ List<int> a = <Object>[]; //# 01: compile-time error
+ Map<int, String> b = <Object, String>{}; //# 02: compile-time error
+ Map<int, String> c = <int, Object>{}; //# 03: compile-time error
+ int Function(Object) d = (int i) => i; //# 04: compile-time error
+ D e = new C.fact(); //# 05: ok
+ D f = new C.fact2(); //# 06: ok
+ D g = new C.nonFact(); //# 07: compile-time error
+ D h = new C.nonFact2(); //# 08: compile-time error
+ void Function(Object) i = C.staticFunction; //# 09: compile-time error
+ void Function(Object) j = topLevelFunction; //# 10: compile-time error
+ void Function(Object) k = localFunction; //# 11: compile-time error
+}
+
+main() {}
diff --git a/tests/language_2/language_2.status b/tests/language_2/language_2.status
index eb4a0fd..00f785d 100644
--- a/tests/language_2/language_2.status
+++ b/tests/language_2/language_2.status
@@ -2,78 +2,54 @@
# 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 == app_jit ]
+deferred_inheritance_constraints_test/redirecting_constructor: Crash
+
+[ $compiler != dart2analyzer ]
+switch_case_warn_test: Skip # Analyzer only, see language_analyzer2.status
+
[ $mode == product ]
assertion_test: SkipByDesign # Requires checked mode.
-regress_29784_test/02: SkipByDesign # Requires checked mode.
generic_test: SkipByDesign # Requires checked mode.
+issue13474_test: SkipByDesign # Requires checked mode.
+map_literal4_test: SkipByDesign # Requires checked mode.
named_parameters_type_test/01: SkipByDesign # Requires checked mode.
named_parameters_type_test/02: SkipByDesign # Requires checked mode.
named_parameters_type_test/03: SkipByDesign # Requires checked mode.
-issue13474_test: SkipByDesign # Requires checked mode.
-map_literal4_test: SkipByDesign # Requires checked mode.
positional_parameters_type_test/01: SkipByDesign # Requires checked mode.
positional_parameters_type_test/02: SkipByDesign # Requires checked mode.
+regress_29784_test/02: SkipByDesign # Requires checked mode.
stacktrace_demangle_ctors_test: SkipByDesign # Names are not scrubbed.
type_checks_in_factory_method_test: SkipByDesign # Requires checked mode.
+[ $compiler != dartdevc && $compiler != dartdevk && $compiler != dartk && $compiler != dartkp && $strong ]
+type_promotion_functions_test: CompileTimeError # Issue 30895: This test requires a complete rewrite for 2.0.
+
+[ $compiler != dartdevc && !$checked ]
+function_type/*: Skip # Needs checked mode.
+
+[ $compiler != dartdevk && $compiler != dartk && $compiler != dartkp && $strong ]
+compile_time_constant_static5_test/11: CompileTimeError # Issue 30546
+compile_time_constant_static5_test/16: CompileTimeError # Issue 30546
+compile_time_constant_static5_test/21: CompileTimeError # Issue 30546
+compile_time_constant_static5_test/23: CompileTimeError # Issue 30546
+issue_25671a_test/01: CompileTimeError
+issue_25671b_test/01: CompileTimeError
+type_promotion_more_specific_test/04: CompileTimeError # Issue 30906.
+
+[ $compiler != dartk && $compiler != dartkp && $mode == debug && $runtime == vm ]
+built_in_identifier_type_annotation_test/15: Crash # Not supported by legacy VM front-end.
+
[ $compiler == none && $runtime == drt && !$checked ]
assertion_initializer_const_error_test/01: Fail
-[ !$checked && $compiler != dartdevc ]
-function_type/*: Skip # Needs checked mode.
-
-[ $hot_reload || $hot_reload_rollback ]
-cha_deopt1_test: Crash # Requires deferred libraries
-cha_deopt2_test: Crash # Requires deferred libraries
-cha_deopt3_test: Crash # Requires deferred libraries
-deferred_call_empty_before_load_test: Crash # Requires deferred libraries
-deferred_closurize_load_library_test: Crash # Requires deferred libraries
-deferred_constant_list_test: Crash # Requires deferred libraries
-deferred_constraints_constants_test: Crash # Requires deferred libraries
-deferred_constraints_type_annotation_test: Crash # Requires deferred libraries
-deferred_function_type_test: Crash # Requires deferred libraries
-deferred_global_test: Crash # Requires deferred libraries
-deferred_import_core_test: Crash # Requires deferred libraries
-deferred_inlined_test: Crash # Requires deferred libraries
-deferred_inheritance_constraints_test: Crash # Requires deferred libraries
-deferred_load_constants_test: Crash # Requires deferred libraries
-deferred_load_inval_code_test: Crash # Requires deferred libraries
-deferred_load_library_wrong_args_test: Crash # Requires deferred libraries
-deferred_mixin_test: Crash # Requires deferred libraries
-deferred_no_such_method_test: Crash # Requires deferred libraries
-deferred_not_loaded_check_test: Crash # Requires deferred libraries
-deferred_only_constant_test: Crash # Requires deferred libraries
-deferred_optimized_test: Crash # Requires deferred libraries
-deferred_redirecting_factory_test: Crash # Requires deferred libraries
-deferred_regression_22995_test: Crash # Requires deferred libraries
-deferred_regression_28678_test: Crash # Requires deferred libraries
-deferred_shadow_load_library_test: Crash # Requires deferred libraries
-deferred_shared_and_unshared_classes_test: Crash # Requires deferred libraries
-deferred_static_seperate_test: Crash # Requires deferred libraries
-deferred_super_dependency_test: Pass, Crash # Requires deferred libraries
-deferred_type_dependency_test: Crash # Requires deferred libraries
-issue21159_test: Pass, Crash # Issue 29094
-issue_22780_test/01: Pass, Crash # Issue 29094
-issue_1751477_test: Crash # Requires deferred libraries
-regress_23408_test: Crash # Requires deferred libraries
-regress_22443_test: Crash # Requires deferred libraries
-regress_28278_test: Crash # Requires deferred libraries
-static_closure_identical_test: Pass, Fail # Closure identity
-vm/regress_27201_test: Pass, Crash # Requires deferred libraries
-vm/optimized_stacktrace_test: Pass, Slow
-conditional_import_test: Crash # Requires deferred libraries
-conditional_import_string_test: Crash # Requires deferred libraries
-
-[ $checked && ! $strong ]
-type_parameter_test/05: Pass
-
-[ ! $checked && ! $strong && $compiler != spec_parser ]
+[ $compiler != spec_parser && !$checked && !$strong ]
closure_type_test: RuntimeError
map_literal1_test/01: MissingCompileTimeError
-[ ! $strong && $compiler != spec_parser ]
-class_literal_static_test/none: Pass
+[ $compiler != spec_parser && !$strong ]
class_literal_static_test: MissingCompileTimeError # Requires strong mode
+class_literal_static_test/none: Pass
class_override_test: MissingCompileTimeError # Requires strong mode
closure_internals_test/01: MissingCompileTimeError # Requires strong mode
closure_internals_test/02: MissingCompileTimeError # Requires strong mode
@@ -110,8 +86,8 @@
issue15606_test/01: MissingCompileTimeError # Requires strong mode
issue18628_1_test/01: MissingCompileTimeError # Requires strong mode
issue18628_2_test/01: MissingCompileTimeError # Requires strong mode
-known_identifier_prefix_error_test/none: Pass
known_identifier_prefix_error_test/*: MissingCompileTimeError # Requires strong mode
+known_identifier_prefix_error_test/none: Pass
map_literal3_test/01: MissingCompileTimeError
map_literal3_test/02: MissingCompileTimeError
map_literal3_test/03: MissingCompileTimeError
@@ -183,34 +159,59 @@
wrong_number_type_arguments_test/*: MissingCompileTimeError # Requires strong mode
wrong_number_type_arguments_test/none: Pass
-[ !$strong && $runtime != none ]
+[ $runtime != none && !$strong ]
map_literal11_test/none: MissingRuntimeError
map_literal7_test: RuntimeError # Requires strong mode
-[ $strong && $compiler != dartk && $compiler != dartkp && $compiler != dartdevk ]
-compile_time_constant_static5_test/11: CompileTimeError # Issue 30546
-compile_time_constant_static5_test/16: CompileTimeError # Issue 30546
-compile_time_constant_static5_test/21: CompileTimeError # Issue 30546
-compile_time_constant_static5_test/23: CompileTimeError # Issue 30546
-issue_25671a_test/01: CompileTimeError
-issue_25671b_test/01: CompileTimeError
-type_promotion_more_specific_test/04: CompileTimeError # Issue 30906.
+[ $checked && !$strong ]
+type_parameter_test/05: Pass
-[ $strong && $compiler != dartk && $compiler != dartkp && $compiler != dartdevc && $compiler != dartdevk]
-type_promotion_functions_test: CompileTimeError # Issue 30895: This test requires a complete rewrite for 2.0.
-
-[ $compiler == app_jit ]
-deferred_inheritance_constraints_test/redirecting_constructor: Crash
-
-[ $compiler == none || $compiler == app_jit ]
-library_env_test/has_no_mirror_support: RuntimeError, OK
-
-[ $mode == debug && ($compiler != dartk && $compiler != dartkp) && $runtime == vm]
-built_in_identifier_type_annotation_test/15: Crash # Not supported by legacy VM front-end.
-
-[ $minified && !$dart2js_with_kernel ]
+[ !$dart2js_with_kernel && $minified ]
regress_21795_test: RuntimeError # Issue 12605
stack_trace_test: Fail, OK # Stack trace not preserved in minified code.
-[ $compiler != dart2analyzer]
-switch_case_warn_test: SKIP # Analyzer only, see language_analyzer2.status
+[ $compiler == app_jit || $compiler == none ]
+library_env_test/has_no_mirror_support: RuntimeError, OK
+
+[ $hot_reload || $hot_reload_rollback ]
+cha_deopt1_test: Crash # Requires deferred libraries
+cha_deopt2_test: Crash # Requires deferred libraries
+cha_deopt3_test: Crash # Requires deferred libraries
+conditional_import_string_test: Crash # Requires deferred libraries
+conditional_import_test: Crash # Requires deferred libraries
+deferred_call_empty_before_load_test: Crash # Requires deferred libraries
+deferred_closurize_load_library_test: Crash # Requires deferred libraries
+deferred_constant_list_test: Crash # Requires deferred libraries
+deferred_constraints_constants_test: Crash # Requires deferred libraries
+deferred_constraints_type_annotation_test: Crash # Requires deferred libraries
+deferred_function_type_test: Crash # Requires deferred libraries
+deferred_global_test: Crash # Requires deferred libraries
+deferred_import_core_test: Crash # Requires deferred libraries
+deferred_inheritance_constraints_test: Crash # Requires deferred libraries
+deferred_inlined_test: Crash # Requires deferred libraries
+deferred_load_constants_test: Crash # Requires deferred libraries
+deferred_load_inval_code_test: Crash # Requires deferred libraries
+deferred_load_library_wrong_args_test: Crash # Requires deferred libraries
+deferred_mixin_test: Crash # Requires deferred libraries
+deferred_no_such_method_test: Crash # Requires deferred libraries
+deferred_not_loaded_check_test: Crash # Requires deferred libraries
+deferred_only_constant_test: Crash # Requires deferred libraries
+deferred_optimized_test: Crash # Requires deferred libraries
+deferred_redirecting_factory_test: Crash # Requires deferred libraries
+deferred_regression_22995_test: Crash # Requires deferred libraries
+deferred_regression_28678_test: Crash # Requires deferred libraries
+deferred_shadow_load_library_test: Crash # Requires deferred libraries
+deferred_shared_and_unshared_classes_test: Crash # Requires deferred libraries
+deferred_static_seperate_test: Crash # Requires deferred libraries
+deferred_super_dependency_test: Pass, Crash # Requires deferred libraries
+deferred_type_dependency_test: Crash # Requires deferred libraries
+issue21159_test: Pass, Crash # Issue 29094
+issue_1751477_test: Crash # Requires deferred libraries
+issue_22780_test/01: Pass, Crash # Issue 29094
+regress_22443_test: Crash # Requires deferred libraries
+regress_23408_test: Crash # Requires deferred libraries
+regress_28278_test: Crash # Requires deferred libraries
+static_closure_identical_test: Pass, Fail # Closure identity
+vm/optimized_stacktrace_test: Pass, Slow
+vm/regress_27201_test: Pass, Crash # Requires deferred libraries
+
diff --git a/tests/language_2/language_2_analyzer.status b/tests/language_2/language_2_analyzer.status
index afb8c7e..084d0f8 100644
--- a/tests/language_2/language_2_analyzer.status
+++ b/tests/language_2/language_2_analyzer.status
@@ -1,493 +1,172 @@
# 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 == dart2analyzer".
-# Analyzer only implements Dart 2.0 static type checking with "--strong".
-[ $compiler == dart2analyzer && ! $strong && ! $checked ]
-abstract_beats_arguments_test: MissingCompileTimeError
-abstract_exact_selector_test/01: MissingCompileTimeError
-abstract_factory_constructor_test/00: MissingCompileTimeError
-abstract_getter_test/01: MissingCompileTimeError
-abstract_syntax_test/00: MissingCompileTimeError
-assign_static_type_test/01: MissingCompileTimeError
-assign_static_type_test/02: MissingCompileTimeError
-assign_static_type_test/03: MissingCompileTimeError
-assign_static_type_test/04: MissingCompileTimeError
-assign_static_type_test/05: MissingCompileTimeError
-assign_static_type_test/06: MissingCompileTimeError
-assign_to_type_test/01: MissingCompileTimeError
-assign_to_type_test/02: MissingCompileTimeError
-assign_to_type_test/03: MissingCompileTimeError
-assign_to_type_test/04: MissingCompileTimeError
-assign_top_method_test: MissingCompileTimeError
-async_await_syntax_test/a10a: MissingCompileTimeError
-async_await_syntax_test/b10a: MissingCompileTimeError
-async_await_syntax_test/c10a: MissingCompileTimeError
-async_await_syntax_test/d08b: MissingCompileTimeError
-async_await_syntax_test/d10a: MissingCompileTimeError
-async_or_generator_return_type_stacktrace_test/01: MissingCompileTimeError
-async_or_generator_return_type_stacktrace_test/02: MissingCompileTimeError
-async_or_generator_return_type_stacktrace_test/03: MissingCompileTimeError
-async_return_types_test/nestedFuture: MissingCompileTimeError
-async_return_types_test/tooManyTypeParameters: MissingCompileTimeError
-async_return_types_test/wrongReturnType: MissingCompileTimeError
-async_return_types_test/wrongTypeParameter: MissingCompileTimeError
-bad_named_parameters2_test/01: MissingCompileTimeError
-bad_named_parameters_test/01: MissingCompileTimeError
-bad_named_parameters_test/02: MissingCompileTimeError
-bad_named_parameters_test/03: MissingCompileTimeError
-bad_named_parameters_test/04: MissingCompileTimeError
-bad_named_parameters_test/05: MissingCompileTimeError
-bad_override_test/01: MissingCompileTimeError
-bad_override_test/02: MissingCompileTimeError
-bad_override_test/06: MissingCompileTimeError
-bit_operations_test/03: StaticWarning
-bit_operations_test/04: StaticWarning
-call_constructor_on_unresolvable_class_test/01: MissingCompileTimeError
-call_constructor_on_unresolvable_class_test/02: MissingCompileTimeError
-call_constructor_on_unresolvable_class_test/03: MissingCompileTimeError
-call_non_method_field_test/01: MissingCompileTimeError
-call_non_method_field_test/02: MissingCompileTimeError
-call_nonexistent_constructor_test/01: MissingCompileTimeError
-call_nonexistent_constructor_test/02: MissingCompileTimeError
-call_nonexistent_static_test/01: MissingCompileTimeError
-call_nonexistent_static_test/02: MissingCompileTimeError
-call_nonexistent_static_test/03: MissingCompileTimeError
-call_nonexistent_static_test/04: MissingCompileTimeError
-call_nonexistent_static_test/05: MissingCompileTimeError
-call_nonexistent_static_test/06: MissingCompileTimeError
-call_nonexistent_static_test/07: MissingCompileTimeError
-call_nonexistent_static_test/08: MissingCompileTimeError
-call_nonexistent_static_test/09: MissingCompileTimeError
-call_nonexistent_static_test/10: MissingCompileTimeError
-call_through_getter_test/01: MissingCompileTimeError
-call_through_getter_test/02: MissingCompileTimeError
-call_type_literal_test/01: MissingCompileTimeError
-callable_test/00: MissingCompileTimeError
-callable_test/01: MissingCompileTimeError
-check_member_static_test/01: MissingCompileTimeError
-check_method_override_test/01: MissingCompileTimeError
-check_method_override_test/02: MissingCompileTimeError
-const_constructor2_test/13: MissingCompileTimeError
-const_constructor2_test/14: MissingCompileTimeError
-const_constructor2_test/15: MissingCompileTimeError
-const_constructor2_test/16: MissingCompileTimeError
-const_constructor2_test/17: MissingCompileTimeError
-const_constructor2_test/18: MissingCompileTimeError
-const_constructor2_test/20: MissingCompileTimeError
-const_constructor2_test/22: MissingCompileTimeError
-const_constructor2_test/24: MissingCompileTimeError
-const_constructor3_test/02: MissingCompileTimeError
-const_constructor3_test/04: MissingCompileTimeError
-const_init2_test/02: MissingCompileTimeError
-constructor_call_as_function_test/01: MissingCompileTimeError
-constructor_duplicate_final_test/01: MissingCompileTimeError
-constructor_duplicate_final_test/02: MissingCompileTimeError
-constructor_named_arguments_test/01: MissingCompileTimeError
-covariant_subtyping_with_substitution_test: StaticWarning
-cyclic_type_variable_test/01: MissingCompileTimeError
-cyclic_type_variable_test/02: MissingCompileTimeError
-cyclic_type_variable_test/03: MissingCompileTimeError
-cyclic_type_variable_test/04: MissingCompileTimeError
-cyclic_typedef_test/13: MissingCompileTimeError
-default_factory2_test/01: MissingCompileTimeError
-default_factory_test/01: MissingCompileTimeError
-deferred_constraints_type_annotation_test/as_operation: MissingCompileTimeError
-deferred_constraints_type_annotation_test/catch_check: MissingCompileTimeError
-deferred_constraints_type_annotation_test/is_check: MissingCompileTimeError
-deferred_constraints_type_annotation_test/new_before_load: MissingCompileTimeError
-deferred_constraints_type_annotation_test/new_generic2: MissingCompileTimeError
-deferred_constraints_type_annotation_test/new_generic3: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation1: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_generic1: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_generic2: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_generic3: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_generic4: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_null: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_top_level: MissingCompileTimeError
-deferred_inheritance_constraints_test/redirecting_constructor: MissingCompileTimeError
-dynamic_field_test/01: MissingCompileTimeError
-dynamic_field_test/02: MissingCompileTimeError
-dynamic_prefix_core_test/01: MissingCompileTimeError
-emit_const_fields_test: Pass
-empty_block_case_test: MissingCompileTimeError
-enum_private_test/02: MissingCompileTimeError
-field_initialization_order_test/01: MissingCompileTimeError
-field_method4_test: MissingCompileTimeError
-for_in3_test: MissingCompileTimeError
-for_in_side_effects_test/01: MissingCompileTimeError
-function_malformed_result_type_test/00: MissingCompileTimeError
-function_type_call_getter2_test/00: MissingCompileTimeError
-function_type_call_getter2_test/01: MissingCompileTimeError
-function_type_call_getter2_test/02: MissingCompileTimeError
-function_type_call_getter2_test/03: MissingCompileTimeError
-function_type_call_getter2_test/04: MissingCompileTimeError
-function_type_call_getter2_test/05: MissingCompileTimeError
-generic_methods_bounds_test/01: MissingCompileTimeError
-generic_methods_closure_test: StaticWarning
-generic_methods_dynamic_test/01: MissingCompileTimeError
-generic_methods_dynamic_test/03: MissingCompileTimeError
-generic_methods_local_variable_declaration_test: StaticWarning
-generic_methods_overriding_test/01: MissingCompileTimeError
-generic_methods_overriding_test/03: MissingCompileTimeError
-generic_methods_overriding_test/06: StaticWarning
-generic_methods_recursive_bound_test/02: MissingCompileTimeError
-generic_methods_shadowing_test: StaticWarning
-generic_methods_simple_is_expression_test: StaticWarning
-generic_no_such_method_dispatcher_test: StaticWarning
-generic_tearoff_test: CompileTimeError
-getter_no_setter2_test/00: MissingCompileTimeError
-getter_no_setter2_test/01: MissingCompileTimeError
-getter_no_setter2_test/03: MissingCompileTimeError
-getter_no_setter_test/00: MissingCompileTimeError
-getter_no_setter_test/01: MissingCompileTimeError
-getter_no_setter_test/03: MissingCompileTimeError
-getter_override_test/03: MissingCompileTimeError
-getters_setters2_test/02: MissingCompileTimeError
-identical_const_test/01: MissingCompileTimeError
-identical_const_test/02: MissingCompileTimeError
-identical_const_test/03: MissingCompileTimeError
-identical_const_test/04: MissingCompileTimeError
-if_null_assignment_behavior_test/03: MissingCompileTimeError
-if_null_assignment_behavior_test/13: MissingCompileTimeError
-if_null_assignment_behavior_test/15: MissingCompileTimeError
-if_null_assignment_static_test/02: MissingCompileTimeError
-if_null_assignment_static_test/04: MissingCompileTimeError
-if_null_assignment_static_test/06: MissingCompileTimeError
-if_null_assignment_static_test/07: MissingCompileTimeError
-if_null_assignment_static_test/09: MissingCompileTimeError
-if_null_assignment_static_test/11: MissingCompileTimeError
-if_null_assignment_static_test/13: MissingCompileTimeError
-if_null_assignment_static_test/14: MissingCompileTimeError
-if_null_assignment_static_test/16: MissingCompileTimeError
-if_null_assignment_static_test/18: MissingCompileTimeError
-if_null_assignment_static_test/20: MissingCompileTimeError
-if_null_assignment_static_test/21: MissingCompileTimeError
-if_null_assignment_static_test/23: MissingCompileTimeError
-if_null_assignment_static_test/25: MissingCompileTimeError
-if_null_assignment_static_test/27: MissingCompileTimeError
-if_null_assignment_static_test/28: MissingCompileTimeError
-if_null_assignment_static_test/30: MissingCompileTimeError
-if_null_assignment_static_test/32: MissingCompileTimeError
-if_null_assignment_static_test/34: MissingCompileTimeError
-if_null_assignment_static_test/35: MissingCompileTimeError
-if_null_assignment_static_test/37: MissingCompileTimeError
-if_null_assignment_static_test/39: MissingCompileTimeError
-if_null_assignment_static_test/41: MissingCompileTimeError
-if_null_assignment_static_test/42: MissingCompileTimeError
-if_null_precedence_test/06: MissingCompileTimeError
-if_null_precedence_test/07: MissingCompileTimeError
-is_not_class2_test/*: MissingCompileTimeError
-library_ambiguous_test/04: MissingCompileTimeError
-list_literal1_test/01: MissingCompileTimeError
-malformed2_test/00: MissingCompileTimeError
-method_override2_test/00: MissingCompileTimeError
-method_override2_test/01: MissingCompileTimeError
-method_override2_test/02: MissingCompileTimeError
-method_override2_test/03: MissingCompileTimeError
-method_override3_test/00: MissingCompileTimeError
-method_override3_test/01: MissingCompileTimeError
-method_override3_test/02: MissingCompileTimeError
-method_override4_test/01: MissingCompileTimeError
-method_override4_test/02: MissingCompileTimeError
-method_override4_test/03: MissingCompileTimeError
-method_override5_test/01: MissingCompileTimeError
-method_override5_test/02: MissingCompileTimeError
-method_override5_test/03: MissingCompileTimeError
-method_override6_test/01: MissingCompileTimeError
-method_override6_test/02: MissingCompileTimeError
-method_override6_test/03: MissingCompileTimeError
-method_override8_test/03: MissingCompileTimeError
-mixin_of_mixin_test/01: MissingCompileTimeError
-mixin_of_mixin_test/02: MissingCompileTimeError
-mixin_of_mixin_test/03: MissingCompileTimeError
-mixin_of_mixin_test/04: MissingCompileTimeError
-mixin_of_mixin_test/05: MissingCompileTimeError
-mixin_of_mixin_test/06: MissingCompileTimeError
-mixin_super_2_test/01: MissingCompileTimeError
-mixin_super_2_test/03: MissingCompileTimeError
-mixin_super_bound_test/01: MissingCompileTimeError
-mixin_super_bound_test/02: MissingCompileTimeError
-mixin_supertype_subclass_test/02: MissingCompileTimeError
-mixin_supertype_subclass_test/05: MissingCompileTimeError
-mixin_type_parameters_errors_test/01: MissingCompileTimeError
-mixin_type_parameters_errors_test/02: MissingCompileTimeError
-mixin_type_parameters_errors_test/03: MissingCompileTimeError
-mixin_type_parameters_errors_test/04: MissingCompileTimeError
-mixin_type_parameters_errors_test/05: MissingCompileTimeError
-mixin_with_two_implicit_constructors_test: MissingCompileTimeError
-multiline_newline_test/01: CompileTimeError
-multiline_newline_test/01r: CompileTimeError
-multiline_newline_test/02: CompileTimeError
-multiline_newline_test/02r: CompileTimeError
-multiline_newline_test/04: MissingCompileTimeError
-multiline_newline_test/04r: MissingCompileTimeError
-multiline_newline_test/05: MissingCompileTimeError
-multiline_newline_test/05r: MissingCompileTimeError
-named_constructor_test/01: MissingCompileTimeError
-named_constructor_test/03: MissingCompileTimeError
-named_parameters2_test: MissingCompileTimeError
-named_parameters3_test: MissingCompileTimeError
-named_parameters4_test: MissingCompileTimeError
-named_parameters_aggregated_test/05: MissingCompileTimeError
-new_expression_type_args_test/00: MissingCompileTimeError
-new_expression_type_args_test/01: MissingCompileTimeError
-new_expression_type_args_test/02: MissingCompileTimeError
-new_prefix_test/01: MissingCompileTimeError
-no_such_constructor_test/01: MissingCompileTimeError
-not_enough_positional_arguments_test/00: MissingCompileTimeError
-not_enough_positional_arguments_test/02: MissingCompileTimeError
-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
-optional_named_parameters_test/01: MissingCompileTimeError
-optional_named_parameters_test/02: MissingCompileTimeError
-optional_named_parameters_test/03: MissingCompileTimeError
-optional_named_parameters_test/04: MissingCompileTimeError
-optional_named_parameters_test/05: MissingCompileTimeError
-optional_named_parameters_test/06: MissingCompileTimeError
-optional_named_parameters_test/07: MissingCompileTimeError
-optional_named_parameters_test/08: MissingCompileTimeError
-optional_named_parameters_test/09: MissingCompileTimeError
-override_field_test/02: MissingCompileTimeError
-override_inheritance_abstract_test/02: MissingCompileTimeError
-override_inheritance_abstract_test/03: MissingCompileTimeError
-override_inheritance_abstract_test/04: MissingCompileTimeError
-override_inheritance_abstract_test/08: MissingCompileTimeError
-override_inheritance_abstract_test/09: MissingCompileTimeError
-override_inheritance_abstract_test/10: MissingCompileTimeError
-override_inheritance_abstract_test/11: MissingCompileTimeError
-override_inheritance_abstract_test/12: MissingCompileTimeError
-override_inheritance_abstract_test/13: MissingCompileTimeError
-override_inheritance_abstract_test/14: MissingCompileTimeError
-override_inheritance_abstract_test/17: MissingCompileTimeError
-override_inheritance_abstract_test/19: MissingCompileTimeError
-override_inheritance_abstract_test/20: MissingCompileTimeError
-override_inheritance_abstract_test/21: MissingCompileTimeError
-override_inheritance_abstract_test/22: MissingCompileTimeError
-override_inheritance_abstract_test/23: MissingCompileTimeError
-override_inheritance_abstract_test/24: MissingCompileTimeError
-override_inheritance_abstract_test/25: MissingCompileTimeError
-override_inheritance_abstract_test/26: MissingCompileTimeError
-override_inheritance_abstract_test/28: MissingCompileTimeError
-override_inheritance_field_test/05: MissingCompileTimeError
-override_inheritance_field_test/07: MissingCompileTimeError
-override_inheritance_field_test/08: MissingCompileTimeError
-override_inheritance_field_test/09: MissingCompileTimeError
-override_inheritance_field_test/10: MissingCompileTimeError
-override_inheritance_field_test/11: MissingCompileTimeError
-override_inheritance_field_test/28: MissingCompileTimeError
-override_inheritance_field_test/30: MissingCompileTimeError
-override_inheritance_field_test/31: MissingCompileTimeError
-override_inheritance_field_test/32: MissingCompileTimeError
-override_inheritance_field_test/33: MissingCompileTimeError
-override_inheritance_field_test/33a: MissingCompileTimeError
-override_inheritance_field_test/34: MissingCompileTimeError
-override_inheritance_field_test/44: MissingCompileTimeError
-override_inheritance_field_test/47: MissingCompileTimeError
-override_inheritance_field_test/48: MissingCompileTimeError
-override_inheritance_field_test/53: MissingCompileTimeError
-override_inheritance_field_test/54: MissingCompileTimeError
-override_inheritance_generic_test/04: MissingCompileTimeError
-override_inheritance_generic_test/06: MissingCompileTimeError
-override_inheritance_generic_test/07: MissingCompileTimeError
-override_inheritance_generic_test/08: MissingCompileTimeError
-override_inheritance_generic_test/09: MissingCompileTimeError
-override_inheritance_generic_test/10: MissingCompileTimeError
-override_inheritance_method_test/04: MissingCompileTimeError
-override_inheritance_method_test/05: MissingCompileTimeError
-override_inheritance_method_test/06: MissingCompileTimeError
-override_inheritance_method_test/11: MissingCompileTimeError
-override_inheritance_method_test/12: MissingCompileTimeError
-override_inheritance_method_test/13: MissingCompileTimeError
-override_inheritance_method_test/14: MissingCompileTimeError
-override_inheritance_method_test/19: MissingCompileTimeError
-override_inheritance_method_test/20: MissingCompileTimeError
-override_inheritance_method_test/21: MissingCompileTimeError
-override_inheritance_method_test/27: MissingCompileTimeError
-override_inheritance_method_test/30: MissingCompileTimeError
-override_inheritance_method_test/31: MissingCompileTimeError
-override_inheritance_method_test/32: MissingCompileTimeError
-override_inheritance_method_test/33: MissingCompileTimeError
-override_inheritance_mixed_test/06: MissingCompileTimeError
-override_inheritance_mixed_test/07: MissingCompileTimeError
-override_inheritance_mixed_test/08: MissingCompileTimeError
-override_inheritance_mixed_test/09: MissingCompileTimeError
-override_inheritance_no_such_method_test/01: MissingCompileTimeError
-override_inheritance_no_such_method_test/02: MissingCompileTimeError
-override_inheritance_no_such_method_test/06: MissingCompileTimeError
-override_inheritance_no_such_method_test/07: MissingCompileTimeError
-override_inheritance_no_such_method_test/09: MissingCompileTimeError
-override_inheritance_no_such_method_test/10: MissingCompileTimeError
-override_inheritance_no_such_method_test/12: MissingCompileTimeError
-override_inheritance_no_such_method_test/13: MissingCompileTimeError
-override_method_with_field_test/02: MissingCompileTimeError
-parser_quirks_test: StaticWarning
-part2_test/01: MissingCompileTimeError
-static_field1_test/01: MissingCompileTimeError
-static_field1a_test/01: MissingCompileTimeError
-static_field3_test/01: MissingCompileTimeError
-static_field3_test/02: MissingCompileTimeError
-static_field3_test/03: MissingCompileTimeError
-static_field3_test/04: MissingCompileTimeError
-static_field_test/01: MissingCompileTimeError
-static_field_test/02: MissingCompileTimeError
-static_field_test/03: MissingCompileTimeError
-static_field_test/04: MissingCompileTimeError
-static_final_field2_test/01: MissingCompileTimeError
-static_getter_no_setter1_test/01: MissingCompileTimeError
-static_getter_no_setter2_test/01: MissingCompileTimeError
-static_getter_no_setter3_test/01: MissingCompileTimeError
-static_initializer_type_error_test: MissingCompileTimeError
-static_setter_get_test/01: MissingCompileTimeError
-string_interpolate_test: StaticWarning
-string_test/01: MissingCompileTimeError
-string_unicode1_negative_test: CompileTimeError
-string_unicode2_negative_test: CompileTimeError
-string_unicode3_negative_test: CompileTimeError
-string_unicode4_negative_test: CompileTimeError
-super_bound_closure_test/01: MissingCompileTimeError
-super_operator_index_test/01: MissingCompileTimeError
-super_operator_index_test/02: MissingCompileTimeError
-super_operator_index_test/03: MissingCompileTimeError
-super_operator_index_test/04: MissingCompileTimeError
-super_operator_index_test/05: MissingCompileTimeError
-super_operator_index_test/06: MissingCompileTimeError
-super_operator_index_test/07: MissingCompileTimeError
-switch_fallthru_test/01: MissingCompileTimeError
-switch_case_warn_test/01: MissingCompileTimeError
-switch_case_warn_test/02: MissingCompileTimeError
-switch_case_warn_test/03: MissingCompileTimeError
-switch_case_warn_test/04: MissingCompileTimeError
-switch_case_warn_test/05: MissingCompileTimeError
-switch_case_warn_test/06: MissingCompileTimeError
-switch_case_warn_test/07: MissingCompileTimeError
-switch_case_warn_test/08: MissingCompileTimeError
-switch_case_warn_test/09: MissingCompileTimeError
-switch_case_warn_test/10: MissingCompileTimeError
-switch_case_warn_test/11: MissingCompileTimeError
-switch_case_warn_test/12: MissingCompileTimeError
-switch_case_warn_test/13: MissingCompileTimeError
-switch_case_warn_test/14: MissingCompileTimeError
-switch_case_warn_test/15: MissingCompileTimeError
-switch_case_warn_test/16: MissingCompileTimeError
-switch_case_warn_test/17: MissingCompileTimeError
-type_check_const_function_typedef2_test: MissingCompileTimeError
-type_parameter_test/05: MissingCompileTimeError
-type_variable_identifier_expression_test: MissingCompileTimeError
-type_variable_static_context_test: MissingCompileTimeError
-external_test/25: MissingCompileTimeError
-f_bounded_quantification_test/01: MissingCompileTimeError
-f_bounded_quantification_test/02: MissingCompileTimeError
-factory1_test/00: MissingCompileTimeError
-factory1_test/01: MissingCompileTimeError
-factory2_test/03: MissingCompileTimeError
-factory2_test/none: MissingCompileTimeError
-factory3_test/none: MissingCompileTimeError
-factory4_test/00: MissingCompileTimeError
-factory5_test/00: MissingCompileTimeError
-factory6_test/00: MissingCompileTimeError
-factory_redirection_test/01: MissingCompileTimeError
-factory_redirection_test/02: MissingCompileTimeError
-factory_redirection_test/03: MissingCompileTimeError
-factory_redirection_test/05: MissingCompileTimeError
-factory_redirection_test/06: MissingCompileTimeError
-factory_redirection_test/08: MissingCompileTimeError
-factory_redirection_test/09: MissingCompileTimeError
-factory_redirection_test/10: MissingCompileTimeError
-factory_redirection_test/11: MissingCompileTimeError
-factory_redirection_test/12: MissingCompileTimeError
-factory_redirection_test/13: MissingCompileTimeError
-factory_redirection_test/14: MissingCompileTimeError
-factory_redirection_test/none: MissingCompileTimeError
-factory_return_type_checked_test/00: MissingCompileTimeError
-unresolved_in_factory_test: MissingCompileTimeError
-field_override2_test: MissingCompileTimeError
-field_override_test/00: MissingCompileTimeError
-field_override_test/01: MissingCompileTimeError
-field_override_test/02: MissingCompileTimeError
-field_override_test/none: MissingCompileTimeError
-field_type_check_test/01: MissingCompileTimeError
-final_attempt_reinitialization_test/01: MissingCompileTimeError
-final_attempt_reinitialization_test/02: MissingCompileTimeError
-final_syntax_test/10: MissingCompileTimeError
-final_for_in_variable_test: MissingCompileTimeError
-final_param_test: MissingCompileTimeError
-final_super_field_set_test: MissingCompileTimeError
-final_variable_assignment_test/01: MissingCompileTimeError
-final_variable_assignment_test/02: MissingCompileTimeError
-final_variable_assignment_test/03: MissingCompileTimeError
-final_variable_assignment_test/04: MissingCompileTimeError
-first_class_types_literals_test/03: MissingCompileTimeError
-first_class_types_literals_test/04: MissingCompileTimeError
-first_class_types_literals_test/05: MissingCompileTimeError
-first_class_types_literals_test/06: MissingCompileTimeError
-first_class_types_literals_test/07: MissingCompileTimeError
-first_class_types_literals_test/08: MissingCompileTimeError
-first_class_types_literals_test/09: MissingCompileTimeError
-first_class_types_literals_test/10: MissingCompileTimeError
-first_class_types_literals_test/11: MissingCompileTimeError
-first_class_types_literals_test/12: MissingCompileTimeError
-mixin_illegal_constructor_test/13: MissingCompileTimeError
-mixin_illegal_constructor_test/14: MissingCompileTimeError
-mixin_illegal_constructor_test/15: MissingCompileTimeError
-mixin_illegal_constructor_test/16: MissingCompileTimeError
-mixin_illegal_static_access_test/01: MissingCompileTimeError
-mixin_illegal_static_access_test/02: MissingCompileTimeError
-mixin_illegal_syntax_test/13: MissingCompileTimeError
-mixin_invalid_bound2_test/02: MissingCompileTimeError
-mixin_invalid_bound2_test/03: MissingCompileTimeError
-mixin_invalid_bound2_test/04: MissingCompileTimeError
-mixin_invalid_bound2_test/05: MissingCompileTimeError
-mixin_invalid_bound2_test/06: MissingCompileTimeError
-mixin_invalid_bound2_test/07: MissingCompileTimeError
-mixin_invalid_bound2_test/08: MissingCompileTimeError
-mixin_invalid_bound2_test/09: MissingCompileTimeError
-mixin_invalid_bound2_test/10: MissingCompileTimeError
-mixin_invalid_bound2_test/11: MissingCompileTimeError
-mixin_invalid_bound2_test/12: MissingCompileTimeError
-mixin_invalid_bound2_test/13: MissingCompileTimeError
-mixin_invalid_bound2_test/14: MissingCompileTimeError
-mixin_invalid_bound2_test/15: MissingCompileTimeError
-mixin_invalid_bound_test/02: MissingCompileTimeError
-mixin_invalid_bound_test/03: MissingCompileTimeError
-mixin_invalid_bound_test/04: MissingCompileTimeError
-mixin_invalid_bound_test/05: MissingCompileTimeError
-mixin_invalid_bound_test/06: MissingCompileTimeError
-mixin_invalid_bound_test/07: MissingCompileTimeError
-mixin_invalid_bound_test/08: MissingCompileTimeError
-mixin_invalid_bound_test/09: MissingCompileTimeError
-mixin_invalid_bound_test/10: MissingCompileTimeError
-
[ $compiler == dart2analyzer ]
-generic_no_such_method_dispatcher_simple_test: Skip # This test is just for kernel.
-fuzzy_arrows_test/01: MissingCompileTimeError
+abstract_override_adds_optional_args_concrete_subclass_test: MissingCompileTimeError # Issue #30568
+abstract_override_adds_optional_args_concrete_test: MissingCompileTimeError # Issue #30568
+abstract_override_adds_optional_args_supercall_test: MissingCompileTimeError # Issue #30568
+assertion_initializer_const_function_test/01: MissingCompileTimeError
+async_return_types_test/nestedFuture: MissingCompileTimeError
+await_test: Crash # Issue 31540
+bad_initializer1_negative_test: CompileTimeError # Issue 14529
+bad_initializer2_negative_test: Fail # Issue 14880
+black_listed_test/none: Fail # Issue 14228
+built_in_identifier_prefix_test: CompileTimeError
built_in_identifier_type_annotation_test/22: MissingCompileTimeError # Issue 28813
built_in_identifier_type_annotation_test/85: Crash # Issue 28813
+cascade_test/none: Fail # Issue 11577
+config_import_corelib_test: StaticWarning, OK
+conflicting_type_variable_and_setter_test: CompileTimeError # Issue 25525
+const_for_in_variable_test/01: MissingCompileTimeError # Issue 25161
+constructor_call_wrong_argument_count_negative_test: Fail # Issue 11585
+deep_nesting1_negative_test: CompileTimeError # Issue 25558
+deep_nesting2_negative_test: CompileTimeError # Issue 25558
+duplicate_export_negative_test: CompileTimeError
+duplicate_interface_negative_test: CompileTimeError
+emit_const_fields_test: CompileTimeError
+enum_syntax_test/05: Fail # Issue 21649
+enum_syntax_test/06: Fail # Issue 21649
+field3_test/01: MissingCompileTimeError
+final_syntax_test/01: Fail # Issue 11124
+final_syntax_test/02: Fail # Issue 11124
+final_syntax_test/03: Fail # Issue 11124
+final_syntax_test/04: Fail # Issue 11124
+function_type_parameter2_negative_test: CompileTimeError
+function_type_parameter_negative_test: CompileTimeError
+fuzzy_arrows_test/01: MissingCompileTimeError
+generic_function_type_as_type_argument_test/01: MissingCompileTimeError # Issue 30929
+generic_function_type_as_type_argument_test/02: MissingCompileTimeError # Issue 30929
+generic_list_checked_test: StaticWarning
+generic_local_functions_test: CompileTimeError # Issue 28515
+generic_methods_generic_function_parameter_test: CompileTimeError # Issue 28515
+generic_no_such_method_dispatcher_simple_test: Skip # This test is just for kernel.
+generic_test: StaticWarning
+generics_test: StaticWarning
+getter_declaration_negative_test: CompileTimeError
+getter_setter_in_lib_test: Fail # Issue 23286
+import_core_prefix_test: StaticWarning
+initializing_formal_final_test: MissingCompileTimeError
+inst_field_initializer1_negative_test: CompileTimeError
+instance_call_wrong_argument_count_negative_test: Fail # Issue 11585
+instance_method2_negative_test: CompileTimeError
+instance_method_negative_test: CompileTimeError
+interface2_negative_test: CompileTimeError
+interface_injection1_negative_test: CompileTimeError
+interface_injection2_negative_test: CompileTimeError
+interface_static_method_negative_test: CompileTimeError
+interface_static_non_final_fields_negative_test: Fail # Issue 11594
+interface_test/00: MissingCompileTimeError
+is_not_class1_negative_test: CompileTimeError
+is_not_class4_negative_test: CompileTimeError
+issue1578_negative_test: CompileTimeError
+label2_negative_test: CompileTimeError
+label3_negative_test: CompileTimeError
+label5_negative_test: CompileTimeError
+label6_negative_test: CompileTimeError
+label8_negative_test: CompileTimeError
+library_negative_test: CompileTimeError
+list_literal2_negative_test: CompileTimeError
+list_literal_negative_test: CompileTimeError
+map_literal_negative_test: CompileTimeError
+method_override7_test/03: Fail # Issue 11497
+method_override_test: StaticWarning
+method_override_test: CompileTimeError
+mixin_supertype_subclass2_test/02: MissingStaticWarning # Issue 25614
+mixin_supertype_subclass2_test/05: MissingStaticWarning # Issue 25614
+mixin_supertype_subclass3_test/02: MissingStaticWarning # Issue 25614
+mixin_supertype_subclass3_test/05: MissingStaticWarning # Issue 25614
+mixin_supertype_subclass4_test/01: MissingStaticWarning # Issue 25614
+mixin_supertype_subclass4_test/02: MissingStaticWarning # Issue 25614
+mixin_supertype_subclass4_test/03: MissingStaticWarning # Issue 25614
+mixin_supertype_subclass4_test/04: MissingStaticWarning # Issue 25614
+mixin_supertype_subclass4_test/05: MissingStaticWarning # Issue 25614
+mixin_supertype_subclass_test/02: MissingStaticWarning # Issue 25614
+mixin_supertype_subclass_test/05: MissingStaticWarning # Issue 25614
+mock_writable_final_private_field_test: CompileTimeError # Issue 30848
+nested_generic_closure_test: CompileTimeError
+new_expression1_negative_test: CompileTimeError
+new_expression2_negative_test: CompileTimeError
+new_expression3_negative_test: CompileTimeError
+no_main_test/01: Fail # Issue 20030
+no_such_constructor2_test: StaticWarning
+non_const_super_negative_test: CompileTimeError
+operator1_negative_test: CompileTimeError
+operator2_negative_test: CompileTimeError
+override_field_method1_negative_test: CompileTimeError
+override_field_method2_negative_test: CompileTimeError
+override_field_method4_negative_test: CompileTimeError
+override_field_method5_negative_test: CompileTimeError
+override_field_test/03: Fail # Issue 29703
+parameter_initializer1_negative_test: CompileTimeError
+parameter_initializer2_negative_test: CompileTimeError
+parameter_initializer3_negative_test: CompileTimeError
+parameter_initializer4_negative_test: CompileTimeError
+parameter_initializer6_negative_test: CompileTimeError
+part_refers_to_core_library_test/01: MissingCompileTimeError # Issue 29709
+prefix11_negative_test: Fail # Issue 11964
+prefix12_negative_test: Fail # Issue 11962
+prefix1_negative_test: Fail # Issue 11962
+prefix2_negative_test: Fail # Issue 11962
+prefix3_negative_test: Fail # Issue 12191
+prefix4_negative_test: Fail # Issue 11962
+prefix5_negative_test: Fail # Issue 11962
+prefix7_negative_test: CompileTimeError
+prefix8_negative_test: Fail # Issue 11964
+private_member1_negative_test: Fail # Issue 14021
+private_member2_negative_test: Fail # Issue 14021
+private_member3_negative_test: Fail # Issue 14021
+regress_23408_test: Skip # don't care about the static warning.
+regress_27617_test/1: MissingCompileTimeError
+regress_29025_test: CompileTimeError # Issue 29081
+regress_29349_test: CompileTimeError # Issue 29744
+regress_29405_test: CompileTimeError # Issue 29421
+regress_29784_test/02: MissingCompileTimeError # Issue 29784
+reify_typevar_static_test/00: MissingCompileTimeError # Issue 21565
+script1_negative_test: CompileTimeError
+script2_negative_test: CompileTimeError
+setter_declaration2_negative_test: CompileTimeError
+setter_declaration_negative_test: CompileTimeError
+setter_no_getter_call_test/01: CompileTimeError
+source_self_negative_test: CompileTimeError
+static_call_wrong_argument_count_negative_test: Fail # Issue 12156
+string_escape4_negative_test: CompileTimeError
+string_interpolate1_negative_test: CompileTimeError
+string_interpolate2_negative_test: CompileTimeError
+super_setter_test: StaticWarning
+switch1_negative_test: CompileTimeError
+switch3_negative_test: CompileTimeError
+switch4_negative_test: CompileTimeError
+switch5_negative_test: CompileTimeError
+switch7_negative_test: CompileTimeError
+syntax_test/none: Fail # Issue 11575
+test_negative_test: CompileTimeError
+try_catch_on_syntax_test/10: MissingCompileTimeError
+try_catch_on_syntax_test/11: MissingCompileTimeError
+type_variable_scope_test/none: Fail # Issue 11578
+type_variable_static_context_negative_test: Fail # Issue 12161
+vm/debug_break_enabled_vm_test: Skip
+vm/debug_break_vm_test/*: Skip
+vm/lazy_deopt_with_exception_test: Pass
+vm/reflect_core_vm_test: CompileTimeError
+vm/regress_27201_test: SkipByDesign # Loads bad library, so will always crash.
-[ $compiler == dart2analyzer && !$strong ]
-combiner_type_lookup_indexed_test: StaticWarning # Issue #31484
-combiner_type_lookup_instance_test: StaticWarning # Issue #31484
-combiner_type_lookup_static_test: StaticWarning # Issue #31484
-combiner_type_lookup_top_level_test: StaticWarning # Issue #31484
-constructor13_test/01: MissingCompileTimeError
-constructor13_test/02: MissingCompileTimeError
-int64_literal_test/03: MissingCompileTimeError
-int64_literal_test/30: MissingCompileTimeError
-object_has_no_call_method_test/02: MissingCompileTimeError
-object_has_no_call_method_test/05: MissingCompileTimeError
-object_has_no_call_method_test/08: MissingCompileTimeError
+[ $compiler == dart2analyzer && $runtime == none ]
+assertion_initializer_const_error2_test/cc10: CompileTimeError # Issue 31320
+assertion_initializer_const_error2_test/cc11: CompileTimeError # Issue 31320
+assertion_initializer_const_function_test/01: CompileTimeError
+assertion_initializer_test: CompileTimeError
+error_stacktrace_test/00: MissingCompileTimeError
+vm/lazy_deopt_with_exception_test: CompileTimeError
[ $compiler == dart2analyzer && $checked ]
-assertion_initializer_const_error2_test/none: Pass
assertion_initializer_const_error2_test/*: MissingCompileTimeError # Issue #
assertion_initializer_const_error2_test/cc10: Pass # Issue #31321
assertion_initializer_const_error2_test/cc11: Pass # Issue #31321
+assertion_initializer_const_error2_test/none: Pass
-[ $compiler == dart2analyzer && ! $strong && $checked ]
+[ $compiler == dart2analyzer && $checked && !$strong ]
abstract_beats_arguments_test: MissingCompileTimeError
abstract_exact_selector_test/01: MissingCompileTimeError
abstract_factory_constructor_test/00: MissingCompileTimeError
@@ -584,8 +263,59 @@
emit_const_fields_test: Pass
empty_block_case_test: MissingCompileTimeError
enum_private_test/02: MissingCompileTimeError
+external_test/25: MissingCompileTimeError
+f_bounded_quantification_test/01: MissingCompileTimeError
+f_bounded_quantification_test/02: MissingCompileTimeError
+factory1_test/00: MissingCompileTimeError
+factory1_test/01: MissingCompileTimeError
+factory2_test/03: MissingCompileTimeError
+factory2_test/none: MissingCompileTimeError
+factory3_test/none: MissingCompileTimeError
+factory4_test/00: MissingCompileTimeError
+factory5_test/00: MissingCompileTimeError
+factory6_test/00: MissingCompileTimeError
+factory_redirection_test/01: MissingCompileTimeError
+factory_redirection_test/02: MissingCompileTimeError
+factory_redirection_test/03: MissingCompileTimeError
+factory_redirection_test/05: MissingCompileTimeError
+factory_redirection_test/06: MissingCompileTimeError
+factory_redirection_test/08: MissingCompileTimeError
+factory_redirection_test/09: MissingCompileTimeError
+factory_redirection_test/10: MissingCompileTimeError
+factory_redirection_test/11: MissingCompileTimeError
+factory_redirection_test/12: MissingCompileTimeError
+factory_redirection_test/13: MissingCompileTimeError
+factory_redirection_test/14: MissingCompileTimeError
+factory_redirection_test/none: MissingCompileTimeError
+factory_return_type_checked_test/00: MissingCompileTimeError
field_initialization_order_test/01: MissingCompileTimeError
field_method4_test: MissingCompileTimeError
+field_override2_test: MissingCompileTimeError
+field_override_test/00: MissingCompileTimeError
+field_override_test/01: MissingCompileTimeError
+field_override_test/02: MissingCompileTimeError
+field_override_test/none: MissingCompileTimeError
+field_type_check_test/01: MissingCompileTimeError
+final_attempt_reinitialization_test/01: MissingCompileTimeError
+final_attempt_reinitialization_test/02: MissingCompileTimeError
+final_for_in_variable_test: MissingCompileTimeError
+final_param_test: MissingCompileTimeError
+final_super_field_set_test: MissingCompileTimeError
+final_syntax_test/10: MissingCompileTimeError
+final_variable_assignment_test/01: MissingCompileTimeError
+final_variable_assignment_test/02: MissingCompileTimeError
+final_variable_assignment_test/03: MissingCompileTimeError
+final_variable_assignment_test/04: MissingCompileTimeError
+first_class_types_literals_test/03: MissingCompileTimeError
+first_class_types_literals_test/04: MissingCompileTimeError
+first_class_types_literals_test/05: MissingCompileTimeError
+first_class_types_literals_test/06: MissingCompileTimeError
+first_class_types_literals_test/07: MissingCompileTimeError
+first_class_types_literals_test/08: MissingCompileTimeError
+first_class_types_literals_test/09: MissingCompileTimeError
+first_class_types_literals_test/10: MissingCompileTimeError
+first_class_types_literals_test/11: MissingCompileTimeError
+first_class_types_literals_test/12: MissingCompileTimeError
for_in3_test: MissingCompileTimeError
for_in_side_effects_test/01: MissingCompileTimeError
function_malformed_result_type_test/00: MissingCompileTimeError
@@ -619,17 +349,47 @@
getter_no_setter_test/03: MissingCompileTimeError
getter_override_test/03: MissingCompileTimeError
getters_setters2_test/02: MissingCompileTimeError
-method_override2_test/none: Pass
method_override2_test/*: MissingCompileTimeError
-method_override3_test/none: Pass
+method_override2_test/none: Pass
method_override3_test/*: MissingCompileTimeError
-method_override4_test/none: Pass
+method_override3_test/none: Pass
method_override4_test/*: MissingCompileTimeError
-method_override5_test/none: Pass
+method_override4_test/none: Pass
method_override5_test/*: MissingCompileTimeError
-method_override6_test/none: Pass
+method_override5_test/none: Pass
method_override6_test/*: MissingCompileTimeError
+method_override6_test/none: Pass
method_override8_test/03: MissingCompileTimeError
+mixin_illegal_constructor_test/13: MissingCompileTimeError
+mixin_illegal_constructor_test/14: MissingCompileTimeError
+mixin_illegal_constructor_test/15: MissingCompileTimeError
+mixin_illegal_constructor_test/16: MissingCompileTimeError
+mixin_illegal_static_access_test/01: MissingCompileTimeError
+mixin_illegal_static_access_test/02: MissingCompileTimeError
+mixin_illegal_syntax_test/13: MissingCompileTimeError
+mixin_invalid_bound2_test/02: MissingCompileTimeError
+mixin_invalid_bound2_test/03: MissingCompileTimeError
+mixin_invalid_bound2_test/04: MissingCompileTimeError
+mixin_invalid_bound2_test/05: MissingCompileTimeError
+mixin_invalid_bound2_test/06: MissingCompileTimeError
+mixin_invalid_bound2_test/07: MissingCompileTimeError
+mixin_invalid_bound2_test/08: MissingCompileTimeError
+mixin_invalid_bound2_test/09: MissingCompileTimeError
+mixin_invalid_bound2_test/10: MissingCompileTimeError
+mixin_invalid_bound2_test/11: MissingCompileTimeError
+mixin_invalid_bound2_test/12: MissingCompileTimeError
+mixin_invalid_bound2_test/13: MissingCompileTimeError
+mixin_invalid_bound2_test/14: MissingCompileTimeError
+mixin_invalid_bound2_test/15: MissingCompileTimeError
+mixin_invalid_bound_test/02: MissingCompileTimeError
+mixin_invalid_bound_test/03: MissingCompileTimeError
+mixin_invalid_bound_test/04: MissingCompileTimeError
+mixin_invalid_bound_test/05: MissingCompileTimeError
+mixin_invalid_bound_test/06: MissingCompileTimeError
+mixin_invalid_bound_test/07: MissingCompileTimeError
+mixin_invalid_bound_test/08: MissingCompileTimeError
+mixin_invalid_bound_test/09: MissingCompileTimeError
+mixin_invalid_bound_test/10: MissingCompileTimeError
mixin_of_mixin_test/01: MissingCompileTimeError
mixin_of_mixin_test/02: MissingCompileTimeError
mixin_of_mixin_test/03: MissingCompileTimeError
@@ -772,8 +532,8 @@
static_getter_no_setter1_test/01: MissingCompileTimeError
static_getter_no_setter2_test/01: MissingCompileTimeError
static_getter_no_setter3_test/01: MissingCompileTimeError
-static_setter_get_test/01: MissingCompileTimeError
static_initializer_type_error_test: MissingCompileTimeError
+static_setter_get_test/01: MissingCompileTimeError
string_interpolate_test: StaticWarning
string_test/01: MissingCompileTimeError
string_unicode1_negative_test: CompileTimeError
@@ -808,6 +568,118 @@
switch_fallthru_test/01: MissingCompileTimeError
type_variable_identifier_expression_test: MissingCompileTimeError
type_variable_static_context_test: MissingCompileTimeError
+unresolved_in_factory_test: MissingCompileTimeError
+
+# Analyzer only implements Dart 2.0 static type checking with "--strong".
+[ $compiler == dart2analyzer && !$checked && !$strong ]
+abstract_beats_arguments_test: MissingCompileTimeError
+abstract_exact_selector_test/01: MissingCompileTimeError
+abstract_factory_constructor_test/00: MissingCompileTimeError
+abstract_getter_test/01: MissingCompileTimeError
+abstract_syntax_test/00: MissingCompileTimeError
+assign_static_type_test/01: MissingCompileTimeError
+assign_static_type_test/02: MissingCompileTimeError
+assign_static_type_test/03: MissingCompileTimeError
+assign_static_type_test/04: MissingCompileTimeError
+assign_static_type_test/05: MissingCompileTimeError
+assign_static_type_test/06: MissingCompileTimeError
+assign_to_type_test/01: MissingCompileTimeError
+assign_to_type_test/02: MissingCompileTimeError
+assign_to_type_test/03: MissingCompileTimeError
+assign_to_type_test/04: MissingCompileTimeError
+assign_top_method_test: MissingCompileTimeError
+async_await_syntax_test/a10a: MissingCompileTimeError
+async_await_syntax_test/b10a: MissingCompileTimeError
+async_await_syntax_test/c10a: MissingCompileTimeError
+async_await_syntax_test/d08b: MissingCompileTimeError
+async_await_syntax_test/d10a: MissingCompileTimeError
+async_or_generator_return_type_stacktrace_test/01: MissingCompileTimeError
+async_or_generator_return_type_stacktrace_test/02: MissingCompileTimeError
+async_or_generator_return_type_stacktrace_test/03: MissingCompileTimeError
+async_return_types_test/nestedFuture: MissingCompileTimeError
+async_return_types_test/tooManyTypeParameters: MissingCompileTimeError
+async_return_types_test/wrongReturnType: MissingCompileTimeError
+async_return_types_test/wrongTypeParameter: MissingCompileTimeError
+bad_named_parameters2_test/01: MissingCompileTimeError
+bad_named_parameters_test/01: MissingCompileTimeError
+bad_named_parameters_test/02: MissingCompileTimeError
+bad_named_parameters_test/03: MissingCompileTimeError
+bad_named_parameters_test/04: MissingCompileTimeError
+bad_named_parameters_test/05: MissingCompileTimeError
+bad_override_test/01: MissingCompileTimeError
+bad_override_test/02: MissingCompileTimeError
+bad_override_test/06: MissingCompileTimeError
+bit_operations_test/03: StaticWarning
+bit_operations_test/04: StaticWarning
+call_constructor_on_unresolvable_class_test/01: MissingCompileTimeError
+call_constructor_on_unresolvable_class_test/02: MissingCompileTimeError
+call_constructor_on_unresolvable_class_test/03: MissingCompileTimeError
+call_non_method_field_test/01: MissingCompileTimeError
+call_non_method_field_test/02: MissingCompileTimeError
+call_nonexistent_constructor_test/01: MissingCompileTimeError
+call_nonexistent_constructor_test/02: MissingCompileTimeError
+call_nonexistent_static_test/01: MissingCompileTimeError
+call_nonexistent_static_test/02: MissingCompileTimeError
+call_nonexistent_static_test/03: MissingCompileTimeError
+call_nonexistent_static_test/04: MissingCompileTimeError
+call_nonexistent_static_test/05: MissingCompileTimeError
+call_nonexistent_static_test/06: MissingCompileTimeError
+call_nonexistent_static_test/07: MissingCompileTimeError
+call_nonexistent_static_test/08: MissingCompileTimeError
+call_nonexistent_static_test/09: MissingCompileTimeError
+call_nonexistent_static_test/10: MissingCompileTimeError
+call_through_getter_test/01: MissingCompileTimeError
+call_through_getter_test/02: MissingCompileTimeError
+call_type_literal_test/01: MissingCompileTimeError
+callable_test/00: MissingCompileTimeError
+callable_test/01: MissingCompileTimeError
+check_member_static_test/01: MissingCompileTimeError
+check_method_override_test/01: MissingCompileTimeError
+check_method_override_test/02: MissingCompileTimeError
+const_constructor2_test/13: MissingCompileTimeError
+const_constructor2_test/14: MissingCompileTimeError
+const_constructor2_test/15: MissingCompileTimeError
+const_constructor2_test/16: MissingCompileTimeError
+const_constructor2_test/17: MissingCompileTimeError
+const_constructor2_test/18: MissingCompileTimeError
+const_constructor2_test/20: MissingCompileTimeError
+const_constructor2_test/22: MissingCompileTimeError
+const_constructor2_test/24: MissingCompileTimeError
+const_constructor3_test/02: MissingCompileTimeError
+const_constructor3_test/04: MissingCompileTimeError
+const_init2_test/02: MissingCompileTimeError
+constructor_call_as_function_test/01: MissingCompileTimeError
+constructor_duplicate_final_test/01: MissingCompileTimeError
+constructor_duplicate_final_test/02: MissingCompileTimeError
+constructor_named_arguments_test/01: MissingCompileTimeError
+covariant_subtyping_with_substitution_test: StaticWarning
+cyclic_type_variable_test/01: MissingCompileTimeError
+cyclic_type_variable_test/02: MissingCompileTimeError
+cyclic_type_variable_test/03: MissingCompileTimeError
+cyclic_type_variable_test/04: MissingCompileTimeError
+cyclic_typedef_test/13: MissingCompileTimeError
+default_factory2_test/01: MissingCompileTimeError
+default_factory_test/01: MissingCompileTimeError
+deferred_constraints_type_annotation_test/as_operation: MissingCompileTimeError
+deferred_constraints_type_annotation_test/catch_check: MissingCompileTimeError
+deferred_constraints_type_annotation_test/is_check: MissingCompileTimeError
+deferred_constraints_type_annotation_test/new_before_load: MissingCompileTimeError
+deferred_constraints_type_annotation_test/new_generic2: MissingCompileTimeError
+deferred_constraints_type_annotation_test/new_generic3: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation1: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_generic1: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_generic2: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_generic3: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_generic4: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_null: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_top_level: MissingCompileTimeError
+deferred_inheritance_constraints_test/redirecting_constructor: MissingCompileTimeError
+dynamic_field_test/01: MissingCompileTimeError
+dynamic_field_test/02: MissingCompileTimeError
+dynamic_prefix_core_test/01: MissingCompileTimeError
+emit_const_fields_test: Pass
+empty_block_case_test: MissingCompileTimeError
+enum_private_test/02: MissingCompileTimeError
external_test/25: MissingCompileTimeError
f_bounded_quantification_test/01: MissingCompileTimeError
f_bounded_quantification_test/02: MissingCompileTimeError
@@ -833,7 +705,8 @@
factory_redirection_test/14: MissingCompileTimeError
factory_redirection_test/none: MissingCompileTimeError
factory_return_type_checked_test/00: MissingCompileTimeError
-unresolved_in_factory_test: MissingCompileTimeError
+field_initialization_order_test/01: MissingCompileTimeError
+field_method4_test: MissingCompileTimeError
field_override2_test: MissingCompileTimeError
field_override_test/00: MissingCompileTimeError
field_override_test/01: MissingCompileTimeError
@@ -842,10 +715,10 @@
field_type_check_test/01: MissingCompileTimeError
final_attempt_reinitialization_test/01: MissingCompileTimeError
final_attempt_reinitialization_test/02: MissingCompileTimeError
-final_syntax_test/10: MissingCompileTimeError
final_for_in_variable_test: MissingCompileTimeError
final_param_test: MissingCompileTimeError
final_super_field_set_test: MissingCompileTimeError
+final_syntax_test/10: MissingCompileTimeError
final_variable_assignment_test/01: MissingCompileTimeError
final_variable_assignment_test/02: MissingCompileTimeError
final_variable_assignment_test/03: MissingCompileTimeError
@@ -860,6 +733,90 @@
first_class_types_literals_test/10: MissingCompileTimeError
first_class_types_literals_test/11: MissingCompileTimeError
first_class_types_literals_test/12: MissingCompileTimeError
+for_in3_test: MissingCompileTimeError
+for_in_side_effects_test/01: MissingCompileTimeError
+function_malformed_result_type_test/00: MissingCompileTimeError
+function_type_call_getter2_test/00: MissingCompileTimeError
+function_type_call_getter2_test/01: MissingCompileTimeError
+function_type_call_getter2_test/02: MissingCompileTimeError
+function_type_call_getter2_test/03: MissingCompileTimeError
+function_type_call_getter2_test/04: MissingCompileTimeError
+function_type_call_getter2_test/05: MissingCompileTimeError
+generic_methods_bounds_test/01: MissingCompileTimeError
+generic_methods_closure_test: StaticWarning
+generic_methods_dynamic_test/01: MissingCompileTimeError
+generic_methods_dynamic_test/03: MissingCompileTimeError
+generic_methods_local_variable_declaration_test: StaticWarning
+generic_methods_overriding_test/01: MissingCompileTimeError
+generic_methods_overriding_test/03: MissingCompileTimeError
+generic_methods_overriding_test/06: StaticWarning
+generic_methods_recursive_bound_test/02: MissingCompileTimeError
+generic_methods_shadowing_test: StaticWarning
+generic_methods_simple_is_expression_test: StaticWarning
+generic_no_such_method_dispatcher_test: StaticWarning
+generic_tearoff_test: CompileTimeError
+getter_no_setter2_test/00: MissingCompileTimeError
+getter_no_setter2_test/01: MissingCompileTimeError
+getter_no_setter2_test/03: MissingCompileTimeError
+getter_no_setter_test/00: MissingCompileTimeError
+getter_no_setter_test/01: MissingCompileTimeError
+getter_no_setter_test/03: MissingCompileTimeError
+getter_override_test/03: MissingCompileTimeError
+getters_setters2_test/02: MissingCompileTimeError
+identical_const_test/01: MissingCompileTimeError
+identical_const_test/02: MissingCompileTimeError
+identical_const_test/03: MissingCompileTimeError
+identical_const_test/04: MissingCompileTimeError
+if_null_assignment_behavior_test/03: MissingCompileTimeError
+if_null_assignment_behavior_test/13: MissingCompileTimeError
+if_null_assignment_behavior_test/15: MissingCompileTimeError
+if_null_assignment_static_test/02: MissingCompileTimeError
+if_null_assignment_static_test/04: MissingCompileTimeError
+if_null_assignment_static_test/06: MissingCompileTimeError
+if_null_assignment_static_test/07: MissingCompileTimeError
+if_null_assignment_static_test/09: MissingCompileTimeError
+if_null_assignment_static_test/11: MissingCompileTimeError
+if_null_assignment_static_test/13: MissingCompileTimeError
+if_null_assignment_static_test/14: MissingCompileTimeError
+if_null_assignment_static_test/16: MissingCompileTimeError
+if_null_assignment_static_test/18: MissingCompileTimeError
+if_null_assignment_static_test/20: MissingCompileTimeError
+if_null_assignment_static_test/21: MissingCompileTimeError
+if_null_assignment_static_test/23: MissingCompileTimeError
+if_null_assignment_static_test/25: MissingCompileTimeError
+if_null_assignment_static_test/27: MissingCompileTimeError
+if_null_assignment_static_test/28: MissingCompileTimeError
+if_null_assignment_static_test/30: MissingCompileTimeError
+if_null_assignment_static_test/32: MissingCompileTimeError
+if_null_assignment_static_test/34: MissingCompileTimeError
+if_null_assignment_static_test/35: MissingCompileTimeError
+if_null_assignment_static_test/37: MissingCompileTimeError
+if_null_assignment_static_test/39: MissingCompileTimeError
+if_null_assignment_static_test/41: MissingCompileTimeError
+if_null_assignment_static_test/42: MissingCompileTimeError
+if_null_precedence_test/06: MissingCompileTimeError
+if_null_precedence_test/07: MissingCompileTimeError
+is_not_class2_test/*: MissingCompileTimeError
+library_ambiguous_test/04: MissingCompileTimeError
+list_literal1_test/01: MissingCompileTimeError
+malformed2_test/00: MissingCompileTimeError
+method_override2_test/00: MissingCompileTimeError
+method_override2_test/01: MissingCompileTimeError
+method_override2_test/02: MissingCompileTimeError
+method_override2_test/03: MissingCompileTimeError
+method_override3_test/00: MissingCompileTimeError
+method_override3_test/01: MissingCompileTimeError
+method_override3_test/02: MissingCompileTimeError
+method_override4_test/01: MissingCompileTimeError
+method_override4_test/02: MissingCompileTimeError
+method_override4_test/03: MissingCompileTimeError
+method_override5_test/01: MissingCompileTimeError
+method_override5_test/02: MissingCompileTimeError
+method_override5_test/03: MissingCompileTimeError
+method_override6_test/01: MissingCompileTimeError
+method_override6_test/02: MissingCompileTimeError
+method_override6_test/03: MissingCompileTimeError
+method_override8_test/03: MissingCompileTimeError
mixin_illegal_constructor_test/13: MissingCompileTimeError
mixin_illegal_constructor_test/14: MissingCompileTimeError
mixin_illegal_constructor_test/15: MissingCompileTimeError
@@ -890,147 +847,188 @@
mixin_invalid_bound_test/08: MissingCompileTimeError
mixin_invalid_bound_test/09: MissingCompileTimeError
mixin_invalid_bound_test/10: MissingCompileTimeError
+mixin_of_mixin_test/01: MissingCompileTimeError
+mixin_of_mixin_test/02: MissingCompileTimeError
+mixin_of_mixin_test/03: MissingCompileTimeError
+mixin_of_mixin_test/04: MissingCompileTimeError
+mixin_of_mixin_test/05: MissingCompileTimeError
+mixin_of_mixin_test/06: MissingCompileTimeError
+mixin_super_2_test/01: MissingCompileTimeError
+mixin_super_2_test/03: MissingCompileTimeError
+mixin_super_bound_test/01: MissingCompileTimeError
+mixin_super_bound_test/02: MissingCompileTimeError
+mixin_supertype_subclass_test/02: MissingCompileTimeError
+mixin_supertype_subclass_test/05: MissingCompileTimeError
+mixin_type_parameters_errors_test/01: MissingCompileTimeError
+mixin_type_parameters_errors_test/02: MissingCompileTimeError
+mixin_type_parameters_errors_test/03: MissingCompileTimeError
+mixin_type_parameters_errors_test/04: MissingCompileTimeError
+mixin_type_parameters_errors_test/05: MissingCompileTimeError
+mixin_with_two_implicit_constructors_test: MissingCompileTimeError
+multiline_newline_test/01: CompileTimeError
+multiline_newline_test/01r: CompileTimeError
+multiline_newline_test/02: CompileTimeError
+multiline_newline_test/02r: CompileTimeError
+multiline_newline_test/04: MissingCompileTimeError
+multiline_newline_test/04r: MissingCompileTimeError
+multiline_newline_test/05: MissingCompileTimeError
+multiline_newline_test/05r: MissingCompileTimeError
+named_constructor_test/01: MissingCompileTimeError
+named_constructor_test/03: MissingCompileTimeError
+named_parameters2_test: MissingCompileTimeError
+named_parameters3_test: MissingCompileTimeError
+named_parameters4_test: MissingCompileTimeError
+named_parameters_aggregated_test/05: MissingCompileTimeError
+new_expression_type_args_test/00: MissingCompileTimeError
+new_expression_type_args_test/01: MissingCompileTimeError
+new_expression_type_args_test/02: MissingCompileTimeError
+new_prefix_test/01: MissingCompileTimeError
+no_such_constructor_test/01: MissingCompileTimeError
+not_enough_positional_arguments_test/00: MissingCompileTimeError
+not_enough_positional_arguments_test/02: MissingCompileTimeError
+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
+optional_named_parameters_test/01: MissingCompileTimeError
+optional_named_parameters_test/02: MissingCompileTimeError
+optional_named_parameters_test/03: MissingCompileTimeError
+optional_named_parameters_test/04: MissingCompileTimeError
+optional_named_parameters_test/05: MissingCompileTimeError
+optional_named_parameters_test/06: MissingCompileTimeError
+optional_named_parameters_test/07: MissingCompileTimeError
+optional_named_parameters_test/08: MissingCompileTimeError
+optional_named_parameters_test/09: MissingCompileTimeError
+override_field_test/02: MissingCompileTimeError
+override_inheritance_abstract_test/02: MissingCompileTimeError
+override_inheritance_abstract_test/03: MissingCompileTimeError
+override_inheritance_abstract_test/04: MissingCompileTimeError
+override_inheritance_abstract_test/08: MissingCompileTimeError
+override_inheritance_abstract_test/09: MissingCompileTimeError
+override_inheritance_abstract_test/10: MissingCompileTimeError
+override_inheritance_abstract_test/11: MissingCompileTimeError
+override_inheritance_abstract_test/12: MissingCompileTimeError
+override_inheritance_abstract_test/13: MissingCompileTimeError
+override_inheritance_abstract_test/14: MissingCompileTimeError
+override_inheritance_abstract_test/17: MissingCompileTimeError
+override_inheritance_abstract_test/19: MissingCompileTimeError
+override_inheritance_abstract_test/20: MissingCompileTimeError
+override_inheritance_abstract_test/21: MissingCompileTimeError
+override_inheritance_abstract_test/22: MissingCompileTimeError
+override_inheritance_abstract_test/23: MissingCompileTimeError
+override_inheritance_abstract_test/24: MissingCompileTimeError
+override_inheritance_abstract_test/25: MissingCompileTimeError
+override_inheritance_abstract_test/26: MissingCompileTimeError
+override_inheritance_abstract_test/28: MissingCompileTimeError
+override_inheritance_field_test/05: MissingCompileTimeError
+override_inheritance_field_test/07: MissingCompileTimeError
+override_inheritance_field_test/08: MissingCompileTimeError
+override_inheritance_field_test/09: MissingCompileTimeError
+override_inheritance_field_test/10: MissingCompileTimeError
+override_inheritance_field_test/11: MissingCompileTimeError
+override_inheritance_field_test/28: MissingCompileTimeError
+override_inheritance_field_test/30: MissingCompileTimeError
+override_inheritance_field_test/31: MissingCompileTimeError
+override_inheritance_field_test/32: MissingCompileTimeError
+override_inheritance_field_test/33: MissingCompileTimeError
+override_inheritance_field_test/33a: MissingCompileTimeError
+override_inheritance_field_test/34: MissingCompileTimeError
+override_inheritance_field_test/44: MissingCompileTimeError
+override_inheritance_field_test/47: MissingCompileTimeError
+override_inheritance_field_test/48: MissingCompileTimeError
+override_inheritance_field_test/53: MissingCompileTimeError
+override_inheritance_field_test/54: MissingCompileTimeError
+override_inheritance_generic_test/04: MissingCompileTimeError
+override_inheritance_generic_test/06: MissingCompileTimeError
+override_inheritance_generic_test/07: MissingCompileTimeError
+override_inheritance_generic_test/08: MissingCompileTimeError
+override_inheritance_generic_test/09: MissingCompileTimeError
+override_inheritance_generic_test/10: MissingCompileTimeError
+override_inheritance_method_test/04: MissingCompileTimeError
+override_inheritance_method_test/05: MissingCompileTimeError
+override_inheritance_method_test/06: MissingCompileTimeError
+override_inheritance_method_test/11: MissingCompileTimeError
+override_inheritance_method_test/12: MissingCompileTimeError
+override_inheritance_method_test/13: MissingCompileTimeError
+override_inheritance_method_test/14: MissingCompileTimeError
+override_inheritance_method_test/19: MissingCompileTimeError
+override_inheritance_method_test/20: MissingCompileTimeError
+override_inheritance_method_test/21: MissingCompileTimeError
+override_inheritance_method_test/27: MissingCompileTimeError
+override_inheritance_method_test/30: MissingCompileTimeError
+override_inheritance_method_test/31: MissingCompileTimeError
+override_inheritance_method_test/32: MissingCompileTimeError
+override_inheritance_method_test/33: MissingCompileTimeError
+override_inheritance_mixed_test/06: MissingCompileTimeError
+override_inheritance_mixed_test/07: MissingCompileTimeError
+override_inheritance_mixed_test/08: MissingCompileTimeError
+override_inheritance_mixed_test/09: MissingCompileTimeError
+override_inheritance_no_such_method_test/01: MissingCompileTimeError
+override_inheritance_no_such_method_test/02: MissingCompileTimeError
+override_inheritance_no_such_method_test/06: MissingCompileTimeError
+override_inheritance_no_such_method_test/07: MissingCompileTimeError
+override_inheritance_no_such_method_test/09: MissingCompileTimeError
+override_inheritance_no_such_method_test/10: MissingCompileTimeError
+override_inheritance_no_such_method_test/12: MissingCompileTimeError
+override_inheritance_no_such_method_test/13: MissingCompileTimeError
+override_method_with_field_test/02: MissingCompileTimeError
+parser_quirks_test: StaticWarning
+part2_test/01: MissingCompileTimeError
+static_field1_test/01: MissingCompileTimeError
+static_field1a_test/01: MissingCompileTimeError
+static_field3_test/01: MissingCompileTimeError
+static_field3_test/02: MissingCompileTimeError
+static_field3_test/03: MissingCompileTimeError
+static_field3_test/04: MissingCompileTimeError
+static_field_test/01: MissingCompileTimeError
+static_field_test/02: MissingCompileTimeError
+static_field_test/03: MissingCompileTimeError
+static_field_test/04: MissingCompileTimeError
+static_final_field2_test/01: MissingCompileTimeError
+static_getter_no_setter1_test/01: MissingCompileTimeError
+static_getter_no_setter2_test/01: MissingCompileTimeError
+static_getter_no_setter3_test/01: MissingCompileTimeError
+static_initializer_type_error_test: MissingCompileTimeError
+static_setter_get_test/01: MissingCompileTimeError
+string_interpolate_test: StaticWarning
+string_test/01: MissingCompileTimeError
+string_unicode1_negative_test: CompileTimeError
+string_unicode2_negative_test: CompileTimeError
+string_unicode3_negative_test: CompileTimeError
+string_unicode4_negative_test: CompileTimeError
+super_bound_closure_test/01: MissingCompileTimeError
+super_operator_index_test/01: MissingCompileTimeError
+super_operator_index_test/02: MissingCompileTimeError
+super_operator_index_test/03: MissingCompileTimeError
+super_operator_index_test/04: MissingCompileTimeError
+super_operator_index_test/05: MissingCompileTimeError
+super_operator_index_test/06: MissingCompileTimeError
+super_operator_index_test/07: MissingCompileTimeError
+switch_case_warn_test/01: MissingCompileTimeError
+switch_case_warn_test/02: MissingCompileTimeError
+switch_case_warn_test/03: MissingCompileTimeError
+switch_case_warn_test/04: MissingCompileTimeError
+switch_case_warn_test/05: MissingCompileTimeError
+switch_case_warn_test/06: MissingCompileTimeError
+switch_case_warn_test/07: MissingCompileTimeError
+switch_case_warn_test/08: MissingCompileTimeError
+switch_case_warn_test/09: MissingCompileTimeError
+switch_case_warn_test/10: MissingCompileTimeError
+switch_case_warn_test/11: MissingCompileTimeError
+switch_case_warn_test/12: MissingCompileTimeError
+switch_case_warn_test/13: MissingCompileTimeError
+switch_case_warn_test/14: MissingCompileTimeError
+switch_case_warn_test/15: MissingCompileTimeError
+switch_case_warn_test/16: MissingCompileTimeError
+switch_case_warn_test/17: MissingCompileTimeError
+switch_fallthru_test/01: MissingCompileTimeError
+type_check_const_function_typedef2_test: MissingCompileTimeError
+type_parameter_test/05: MissingCompileTimeError
+type_variable_identifier_expression_test: MissingCompileTimeError
+type_variable_static_context_test: MissingCompileTimeError
+unresolved_in_factory_test: MissingCompileTimeError
-[ $compiler == dart2analyzer ]
-abstract_override_adds_optional_args_concrete_subclass_test: MissingCompileTimeError # Issue #30568
-abstract_override_adds_optional_args_concrete_test: MissingCompileTimeError # Issue #30568
-abstract_override_adds_optional_args_supercall_test: MissingCompileTimeError # Issue #30568
-assertion_initializer_const_function_test/01: MissingCompileTimeError
-async_return_types_test/nestedFuture: MissingCompileTimeError
-bad_initializer1_negative_test: CompileTimeError # Issue 14529
-bad_initializer2_negative_test: Fail # Issue 14880
-black_listed_test/none: Fail # Issue 14228
-built_in_identifier_prefix_test: CompileTimeError
-cascade_test/none: Fail # Issue 11577
-constructor_call_wrong_argument_count_negative_test: Fail # Issue 11585
-deep_nesting1_negative_test: CompileTimeError # Issue 25558
-deep_nesting2_negative_test: CompileTimeError # Issue 25558
-duplicate_export_negative_test: CompileTimeError
-duplicate_interface_negative_test: CompileTimeError
-emit_const_fields_test: CompileTimeError
-enum_syntax_test/05: Fail # Issue 21649
-enum_syntax_test/06: Fail # Issue 21649
-field3_test/01: MissingCompileTimeError
-final_syntax_test/01: Fail # Issue 11124
-final_syntax_test/02: Fail # Issue 11124
-final_syntax_test/03: Fail # Issue 11124
-final_syntax_test/04: Fail # Issue 11124
-generic_methods_generic_function_parameter_test: CompileTimeError # Issue 28515
-generic_local_functions_test: CompileTimeError # Issue 28515
-generic_list_checked_test: StaticWarning
-generic_test: StaticWarning
-generics_test: StaticWarning
-getter_declaration_negative_test: CompileTimeError
-getter_setter_in_lib_test: Fail # Issue 23286
-import_core_prefix_test: StaticWarning
-initializing_formal_final_test: MissingCompileTimeError
-inst_field_initializer1_negative_test: CompileTimeError
-instance_call_wrong_argument_count_negative_test: Fail # Issue 11585
-instance_method2_negative_test: CompileTimeError
-instance_method_negative_test: CompileTimeError
-interface2_negative_test: CompileTimeError
-interface_injection1_negative_test: CompileTimeError
-interface_injection2_negative_test: CompileTimeError
-interface_static_method_negative_test: CompileTimeError
-is_not_class1_negative_test: CompileTimeError
-is_not_class4_negative_test: CompileTimeError
-interface_static_non_final_fields_negative_test: Fail # Issue 11594
-interface_test/00: MissingCompileTimeError
-issue1578_negative_test: CompileTimeError
-label2_negative_test: CompileTimeError
-label3_negative_test: CompileTimeError
-label5_negative_test: CompileTimeError
-label6_negative_test: CompileTimeError
-label8_negative_test: CompileTimeError
-method_override_test: CompileTimeError
-mixin_supertype_subclass_test/02: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass_test/05: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass2_test/02: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass2_test/05: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass3_test/02: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass3_test/05: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass4_test/01: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass4_test/02: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass4_test/03: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass4_test/04: MissingStaticWarning # Issue 25614
-mixin_supertype_subclass4_test/05: MissingStaticWarning # Issue 25614
-mock_writable_final_private_field_test: CompileTimeError # Issue 30848
-nested_generic_closure_test: CompileTimeError
-operator1_negative_test: CompileTimeError
-operator2_negative_test: CompileTimeError
-setter_declaration2_negative_test: CompileTimeError
-setter_declaration_negative_test: CompileTimeError
-setter_no_getter_call_test/01: CompileTimeError
-source_self_negative_test: CompileTimeError
-static_call_wrong_argument_count_negative_test: Fail # Issue 12156
-string_escape4_negative_test: CompileTimeError
-string_interpolate1_negative_test: CompileTimeError
-string_interpolate2_negative_test: CompileTimeError
-super_setter_test: StaticWarning
-switch1_negative_test: CompileTimeError
-switch3_negative_test: CompileTimeError
-switch4_negative_test: CompileTimeError
-switch5_negative_test: CompileTimeError
-switch7_negative_test: CompileTimeError
-syntax_test/none: fail # Issue 11575
-type_variable_scope_test/none: fail # Issue 11578
-type_variable_static_context_negative_test: fail # Issue 12161
-vm/debug_break_enabled_vm_test: Skip
-vm/debug_break_vm_test/*: Skip
-vm/lazy_deopt_with_exception_test: Pass
-vm/reflect_core_vm_test: CompileTimeError
-library_negative_test: CompileTimeError
-method_override7_test/03: Fail # Issue 11497
-method_override_test: StaticWarning
-override_field_test/03: Fail # Issue 29703
-override_field_method1_negative_test: CompileTimeError
-override_field_method2_negative_test: CompileTimeError
-override_field_method4_negative_test: CompileTimeError
-override_field_method5_negative_test: CompileTimeError
-list_literal2_negative_test: CompileTimeError
-list_literal_negative_test: CompileTimeError
-map_literal_negative_test: CompileTimeError
-new_expression1_negative_test: CompileTimeError
-new_expression2_negative_test: CompileTimeError
-new_expression3_negative_test: CompileTimeError
-non_const_super_negative_test: CompileTimeError
-no_such_constructor2_test: StaticWarning
-no_main_test/01: Fail # Issue 20030
-parameter_initializer1_negative_test: CompileTimeError
-parameter_initializer2_negative_test: CompileTimeError
-parameter_initializer3_negative_test: CompileTimeError
-parameter_initializer4_negative_test: CompileTimeError
-parameter_initializer6_negative_test: CompileTimeError
-part_refers_to_core_library_test/01: MissingCompileTimeError # Issue 29709
-script1_negative_test: CompileTimeError
-script2_negative_test: CompileTimeError
-prefix1_negative_test: Fail # Issue 11962
-prefix12_negative_test: Fail # Issue 11962
-prefix11_negative_test: Fail # Issue 11964
-prefix2_negative_test: Fail # Issue 11962
-prefix4_negative_test: Fail # Issue 11962
-prefix5_negative_test: Fail # Issue 11962
-prefix8_negative_test: Fail # Issue 11964
-prefix3_negative_test: Fail # Issue 12191
-private_member1_negative_test: Fail # Issue 14021
-private_member2_negative_test: Fail # Issue 14021
-private_member3_negative_test: Fail # Issue 14021
-prefix7_negative_test: CompileTimeError
-regress_27617_test/1: MissingCompileTimeError
-regress_23408_test: Skip # don't care about the static warning.
-regress_29025_test: CompileTimeError # Issue 29081
-regress_29405_test: CompileTimeError # Issue 29421
-regress_29349_test: CompileTimeError # Issue 29744
-reify_typevar_static_test/00: MissingCompileTimeError # Issue 21565
-test_negative_test: CompileTimeError
-try_catch_on_syntax_test/10: MissingCompileTimeError
-try_catch_on_syntax_test/11: MissingCompileTimeError
-const_for_in_variable_test/01: MissingCompileTimeError # Issue 25161
-conflicting_type_variable_and_setter_test: CompileTimeError # Issue 25525
-function_type_parameter2_negative_test: CompileTimeError
-function_type_parameter_negative_test: CompileTimeError
-
-[ $strong && $compiler == dart2analyzer ]
+[ $compiler == dart2analyzer && $strong ]
accessor_conflict_export2_test: CompileTimeError # Issue 25626
accessor_conflict_export_test: CompileTimeError # Issue 25626
accessor_conflict_import2_test: CompileTimeError # Issue 25626
@@ -1038,7 +1036,9 @@
accessor_conflict_import_prefixed_test: CompileTimeError # Issue 25626
accessor_conflict_import_test: CompileTimeError # Issue 25626
additional_interface_adds_optional_args_test: CompileTimeError # Issue #30568
+assertion_initializer_const_function_test/01: MissingStaticWarning
async_return_types_test/nestedFuture: MissingCompileTimeError
+bug31436_test: CompileTimeError
cascaded_forwarding_stubs_test: CompileTimeError
combiner_type_lookup_indexed_test: CompileTimeError # Issue #31484
combiner_type_lookup_instance_test: CompileTimeError # Issue #31484
@@ -1049,18 +1049,29 @@
const_types_test/08: MissingCompileTimeError # Incorrectly allows using type parameter in const expression.
const_types_test/14: MissingCompileTimeError # Incorrectly allows using type parameter in const expression.
const_types_test/15: MissingCompileTimeError # Incorrectly allows using type parameter in const expression.
+constant_type_literal_test/01: MissingCompileTimeError # Issue 28823
error_stacktrace_test/00: Pass
+field3a_negative_test: StaticWarning # Issue 28823
+forwarding_stub_tearoff_test: CompileTimeError
generic_list_checked_test: CompileTimeError
+generic_methods_closure_test: CompileTimeError # Issue 29070
generic_methods_generic_function_result_test/none: CompileTimeError # Issue #30207
+generic_methods_local_variable_declaration_test: CompileTimeError # Issue 29070
+generic_methods_overriding_test/01: MissingCompileTimeError # Issue 29070
+generic_methods_overriding_test/03: MissingCompileTimeError # Issue 29070
+generic_methods_shadowing_test: CompileTimeError # Issue 29070
+generic_methods_simple_is_expression_test: CompileTimeError # Issue 29070
+generic_methods_type_expression_test: CompileTimeError # Incorrectly disallows type parameter in "is" test.
generic_no_such_method_dispatcher_test: CompileTimeError
generic_tearoff_test: CompileTimeError
generic_test: CompileTimeError
generics_test: CompileTimeError
implicit_downcast_during_function_literal_arrow_test: CompileTimeError # Issue #31436
import_core_prefix_test: CompileTimeError # "dynamic" should be defined in core.
+instantiate_type_variable_test/01: CompileTimeError
+int64_literal_test/03: MissingCompileTimeError # http://dartbug.com/31479
+int64_literal_test/30: MissingCompileTimeError # http://dartbug.com/31479
interceptor6_test: CompileTimeError
-int64_literal_test/03: MissingCompileTimeError # http://dartbug.com/31479
-int64_literal_test/30: MissingCompileTimeError # http://dartbug.com/31479
malformed2_test: Pass, MissingCompileTimeError # Issue 31056.
mixin_super_2_test/01: MissingCompileTimeError
mixin_super_2_test/03: MissingCompileTimeError
@@ -1075,6 +1086,8 @@
multiline_newline_test/05: MissingCompileTimeError
multiline_newline_test/05r: MissingCompileTimeError
multiple_interface_inheritance_test: CompileTimeError # Issue 30552
+no_main_test/01: MissingStaticWarning # Issue 28823
+no_such_method_negative_test: CompileTimeError
object_has_no_call_method_test/02: MissingCompileTimeError
override_inheritance_abstract_test/02: MissingCompileTimeError
override_inheritance_abstract_test/03: MissingCompileTimeError
@@ -1113,15 +1126,19 @@
prefix13_negative_test: CompileTimeError, OK
prefix15_negative_test: CompileTimeError, OK
prefix18_negative_test: CompileTimeError, OK
+prefix6_negative_test: CompileTimeError, OK
regress_30121_test: CompileTimeError # Issue 31087
regress_30339_test: CompileTimeError
+reify_typevar_static_test/00: MissingCompileTimeError # Issue 28823
+string_interpolate_test: CompileTimeError
+string_split_test: CompileTimeError
string_supertype_checked_test: CompileTimeError
string_unicode1_negative_test: CompileTimeError
string_unicode2_negative_test: CompileTimeError
string_unicode3_negative_test: CompileTimeError
string_unicode4_negative_test: CompileTimeError
-string_split_test: CompileTimeError
super_bound_closure_test/none: CompileTimeError
+super_setter_test: StaticWarning # Issue 28823
switch_case_test/none: CompileTimeError
type_promotion_functions_test/01: Pass
type_promotion_functions_test/05: Pass
@@ -1129,52 +1146,50 @@
type_promotion_functions_test/07: Pass
type_promotion_functions_test/08: Pass
type_promotion_functions_test/10: Pass
-
vm/lazy_deopt_with_exception_test: CompileTimeError
-prefix6_negative_test: CompileTimeError, OK
+void_type_callbacks_test/00: MissingCompileTimeError # Issue 30177
+void_type_callbacks_test/01: MissingCompileTimeError # Issue 30177
void_type_function_types_test/none: CompileTimeError # Issue 30177
-void_type_usage_test/param_as: CompileTimeError # Issue 30177
-void_type_usage_test/param_for: CompileTimeError # Issue 30177
-void_type_usage_test/none: CompileTimeError # Issue 30177
+void_type_override_test/none: CompileTimeError # Issue 30177
void_type_usage_test/call_as: CompileTimeError # Issue 30177
-void_type_usage_test/call_stmt: CompileTimeError # Issue 30177
void_type_usage_test/call_for: CompileTimeError # Issue 30177
-void_type_usage_test/local_stmt: CompileTimeError # Issue 30177
+void_type_usage_test/call_stmt: CompileTimeError # Issue 30177
+void_type_usage_test/field_assign: CompileTimeError # Issue 30177
+void_type_usage_test/field_assign2: CompileTimeError # Issue 30177
+void_type_usage_test/final_local_as: CompileTimeError # Issue 30177
+void_type_usage_test/final_local_for: CompileTimeError # Issue 30177
+void_type_usage_test/final_local_stmt: CompileTimeError # Issue 30177
+void_type_usage_test/global_as: CompileTimeError # Issue 30177
+void_type_usage_test/global_for: CompileTimeError # Issue 30177
+void_type_usage_test/global_for_in2: CompileTimeError # Issue 30177
+void_type_usage_test/global_stmt: CompileTimeError # Issue 30177
+void_type_usage_test/instance2_as: CompileTimeError # Issue 30177
+void_type_usage_test/instance2_for: CompileTimeError # Issue 30177
+void_type_usage_test/instance2_for_in3: CompileTimeError # Issue 30177
+void_type_usage_test/instance2_stmt: CompileTimeError # Issue 30177
+void_type_usage_test/instance3_as: CompileTimeError # Issue 30177
+void_type_usage_test/instance3_for: CompileTimeError # Issue 30177
+void_type_usage_test/instance3_for_in3: CompileTimeError # Issue 30177
+void_type_usage_test/instance3_stmt: CompileTimeError # Issue 30177
+void_type_usage_test/instance_as: CompileTimeError # Issue 30177
+void_type_usage_test/instance_for: CompileTimeError # Issue 30177
+void_type_usage_test/instance_stmt: CompileTimeError # Issue 30177
+void_type_usage_test/local_as: CompileTimeError # Issue 30177
void_type_usage_test/local_assign: CompileTimeError # Issue 30177
void_type_usage_test/local_for: CompileTimeError # Issue 30177
-void_type_usage_test/local_as: CompileTimeError # Issue 30177
-void_type_usage_test/param_stmt: CompileTimeError # Issue 30177
void_type_usage_test/local_for_in2: CompileTimeError # Issue 30177
-void_type_usage_test/final_local_stmt: CompileTimeError # Issue 30177
-void_type_usage_test/final_local_for: CompileTimeError # Issue 30177
-void_type_usage_test/final_local_as: CompileTimeError # Issue 30177
-void_type_usage_test/global_stmt: CompileTimeError # Issue 30177
-void_type_usage_test/global_for: CompileTimeError # Issue 30177
-void_type_usage_test/global_as: CompileTimeError # Issue 30177
-void_type_usage_test/global_for_in2: CompileTimeError # Issue 30177
-void_type_usage_test/instance_stmt: CompileTimeError # Issue 30177
+void_type_usage_test/local_stmt: CompileTimeError # Issue 30177
+void_type_usage_test/none: CompileTimeError # Issue 30177
+void_type_usage_test/param_as: CompileTimeError # Issue 30177
+void_type_usage_test/param_for: CompileTimeError # Issue 30177
void_type_usage_test/param_for_in2: CompileTimeError # Issue 30177
-void_type_usage_test/instance_for: CompileTimeError # Issue 30177
-void_type_usage_test/instance_as: CompileTimeError # Issue 30177
-void_type_usage_test/instance2_for_in3: CompileTimeError # Issue 30177
-void_type_usage_test/field_assign: CompileTimeError # Issue 30177
-void_type_usage_test/instance3_for_in3: CompileTimeError # Issue 30177
-void_type_usage_test/instance2_stmt: CompileTimeError # Issue 30177
-void_type_usage_test/instance2_for: CompileTimeError # Issue 30177
-void_type_usage_test/field_assign2: CompileTimeError # Issue 30177
-void_type_usage_test/instance2_as: CompileTimeError # Issue 30177
-void_type_usage_test/setter_assign: CompileTimeError # Issue 30177
-void_type_usage_test/instance3_stmt: CompileTimeError # Issue 30177
-void_type_usage_test/instance3_for: CompileTimeError # Issue 30177
-void_type_usage_test/instance3_as: CompileTimeError # Issue 30177
+void_type_usage_test/param_stmt: CompileTimeError # Issue 30177
void_type_usage_test/paren_as: CompileTimeError # Issue 30177
-void_type_usage_test/paren_stmt: CompileTimeError # Issue 30177
void_type_usage_test/paren_for: CompileTimeError # Issue 30177
-void_type_callbacks_test/01: MissingCompileTimeError # Issue 30177
-void_type_callbacks_test/00: MissingCompileTimeError # Issue 30177
-void_type_override_test/none: CompileTimeError # Issue 30177
+void_type_usage_test/paren_stmt: CompileTimeError # Issue 30177
+void_type_usage_test/setter_assign: CompileTimeError # Issue 30177
-[ ! $strong && $compiler == dart2analyzer ]
+[ $compiler == dart2analyzer && !$strong ]
accessor_conflict_export2_test: StaticWarning # Issue 25626
accessor_conflict_export_test: CompileTimeError
accessor_conflict_export_test: StaticWarning # Issue 25626
@@ -1248,6 +1263,10 @@
class_literal_test/24: MissingCompileTimeError
class_literal_test/25: MissingCompileTimeError
closure_type_test: Pass
+combiner_type_lookup_indexed_test: StaticWarning # Issue #31484
+combiner_type_lookup_instance_test: StaticWarning # Issue #31484
+combiner_type_lookup_static_test: StaticWarning # Issue #31484
+combiner_type_lookup_top_level_test: StaticWarning # Issue #31484
compile_time_constant_o_test/01: MissingCompileTimeError
compile_time_constant_o_test/02: MissingCompileTimeError
conditional_method_invocation_test/05: MissingCompileTimeError
@@ -1302,15 +1321,17 @@
const_types_test/05: MissingCompileTimeError
const_types_test/06: MissingCompileTimeError
const_types_test/13: MissingCompileTimeError
-const_types_test/35: MissingCompileTimeError
const_types_test/34: MissingCompileTimeError
+const_types_test/35: MissingCompileTimeError
const_types_test/39: MissingCompileTimeError
const_types_test/40: MissingCompileTimeError
+constructor13_test/01: MissingCompileTimeError
+constructor13_test/02: MissingCompileTimeError
constructor_duplicate_final_test/03: MissingCompileTimeError
create_unresolved_type_test/01: MissingCompileTimeError
-generic_constructor_mixin_test/01: MissingCompileTimeError
generic_constructor_mixin2_test/01: MissingCompileTimeError
generic_constructor_mixin3_test/01: MissingCompileTimeError
+generic_constructor_mixin_test/01: MissingCompileTimeError
generic_field_mixin6_test/01: MissingCompileTimeError
generic_function_typedef2_test/04: MissingCompileTimeError
generic_methods_generic_function_result_test/01: MissingCompileTimeError # Issue #30207
@@ -1348,26 +1369,29 @@
if_null_assignment_static_test/42: MissingCompileTimeError
if_null_precedence_test/06: MissingCompileTimeError
if_null_precedence_test/07: MissingCompileTimeError
-import_combinators2_test/00: MissingCompileTimeError
-list_literal4_test/00: MissingCompileTimeError
-list_literal4_test/01: MissingCompileTimeError
-list_literal4_test/03: MissingCompileTimeError
-list_literal4_test/04: MissingCompileTimeError
-list_literal4_test/05: MissingCompileTimeError
-list_literal_syntax_test/01: MissingCompileTimeError
-list_literal_syntax_test/02: MissingCompileTimeError
-list_literal_syntax_test/03: MissingCompileTimeError
implicit_this_test/01: MissingCompileTimeError
implicit_this_test/02: MissingCompileTimeError
implicit_this_test/04: MissingCompileTimeError
+import_combinators2_test/00: MissingCompileTimeError
import_self_test/01: MissingCompileTimeError
inferrer_constructor5_test/01: MissingCompileTimeError
initializing_formal_type_test: MissingCompileTimeError
instantiate_type_variable_test/01: StaticWarning
+int64_literal_test/03: MissingCompileTimeError
+int64_literal_test/30: MissingCompileTimeError
interceptor6_test: StaticWarning
+invalid_cast_test/01: MissingCompileTimeError
+invalid_cast_test/02: MissingCompileTimeError
+invalid_cast_test/03: MissingCompileTimeError
+invalid_cast_test/04: MissingCompileTimeError
+invalid_cast_test/07: MissingCompileTimeError
+invalid_cast_test/08: MissingCompileTimeError
+invalid_cast_test/09: MissingCompileTimeError
+invalid_cast_test/10: MissingCompileTimeError
+invalid_cast_test/11: MissingCompileTimeError
invocation_mirror_test: StaticWarning
-known_identifier_prefix_error_test/none: Pass
known_identifier_prefix_error_test/*: MissingCompileTimeError # Error only in strong mode.
+known_identifier_prefix_error_test/none: Pass
least_upper_bound_expansive_test/01: MissingCompileTimeError
least_upper_bound_expansive_test/02: MissingCompileTimeError
least_upper_bound_expansive_test/03: MissingCompileTimeError
@@ -1398,6 +1422,30 @@
library_ambiguous_test/02: MissingCompileTimeError
library_ambiguous_test/03: MissingCompileTimeError
library_ambiguous_test/04: MissingCompileTimeError
+list_literal4_test/00: MissingCompileTimeError
+list_literal4_test/01: MissingCompileTimeError
+list_literal4_test/03: MissingCompileTimeError
+list_literal4_test/04: MissingCompileTimeError
+list_literal4_test/05: MissingCompileTimeError
+list_literal_syntax_test/01: MissingCompileTimeError
+list_literal_syntax_test/02: MissingCompileTimeError
+list_literal_syntax_test/03: MissingCompileTimeError
+local_function2_test/01: MissingCompileTimeError
+local_function2_test/02: MissingCompileTimeError
+local_function3_test/01: MissingCompileTimeError
+local_function_test/01: MissingCompileTimeError
+local_function_test/02: MissingCompileTimeError
+local_function_test/03: MissingCompileTimeError
+local_function_test/04: MissingCompileTimeError
+logical_expression3_test: MissingCompileTimeError
+malbounded_instantiation_test/01: MissingCompileTimeError
+malbounded_instantiation_test/02: MissingCompileTimeError
+malbounded_instantiation_test/03: MissingCompileTimeError
+malbounded_redirecting_factory_test/02: MissingCompileTimeError
+malbounded_redirecting_factory_test/03: MissingCompileTimeError
+malbounded_redirecting_factory_test/04: MissingCompileTimeError
+malbounded_redirecting_factory_test/05: MissingCompileTimeError
+malbounded_type_cast2_test: MissingCompileTimeError
malbounded_type_cast_test/00: MissingCompileTimeError
malbounded_type_cast_test/01: MissingCompileTimeError
malbounded_type_cast_test/02: MissingCompileTimeError
@@ -1467,6 +1515,9 @@
named_parameters_type_test/01: MissingCompileTimeError
named_parameters_type_test/02: MissingCompileTimeError
named_parameters_type_test/03: MissingCompileTimeError
+object_has_no_call_method_test/02: MissingCompileTimeError
+object_has_no_call_method_test/05: MissingCompileTimeError
+object_has_no_call_method_test/08: MissingCompileTimeError
positional_parameters_type_test/01: MissingCompileTimeError
positional_parameters_type_test/02: MissingCompileTimeError
prefix13_negative_test: CompileTimeError, OK
@@ -1476,6 +1527,12 @@
prefix18_negative_test: CompileTimeError, OK
prefix22_test/00: MissingCompileTimeError
prefix23_test/00: MissingCompileTimeError
+private_access_test/01: MissingCompileTimeError
+private_access_test/02: MissingCompileTimeError
+private_access_test/03: MissingCompileTimeError
+private_access_test/04: MissingCompileTimeError
+private_access_test/05: MissingCompileTimeError
+private_access_test/06: MissingCompileTimeError
regress_12561_test: MissingCompileTimeError
regress_13494_test: MissingCompileTimeError
regress_17382_test: MissingCompileTimeError
@@ -1515,10 +1572,10 @@
string_no_operator_test/15: MissingCompileTimeError
string_no_operator_test/16: MissingCompileTimeError
string_test/01: MissingCompileTimeError
-super_assign_test/01: MissingCompileTimeError
substring_test/01: MissingCompileTimeError
-sync_generator1_test/01: MissingCompileTimeError
+super_assign_test/01: MissingCompileTimeError
symbol_literal_test/01: MissingCompileTimeError
+sync_generator1_test/01: MissingCompileTimeError
syntax_test/59: MissingCompileTimeError
syntax_test/60: MissingCompileTimeError
syntax_test/61: MissingCompileTimeError
@@ -1528,6 +1585,12 @@
try_catch_on_syntax_test/07: MissingCompileTimeError
try_catch_syntax_test/08: MissingCompileTimeError
type_checks_in_factory_method_test/01: MissingCompileTimeError
+type_promotion_functions_test/01: MissingCompileTimeError
+type_promotion_functions_test/05: MissingCompileTimeError
+type_promotion_functions_test/06: MissingCompileTimeError
+type_promotion_functions_test/07: MissingCompileTimeError
+type_promotion_functions_test/08: MissingCompileTimeError
+type_promotion_functions_test/10: MissingCompileTimeError
type_promotion_parameter_test/01: MissingCompileTimeError
type_promotion_parameter_test/02: MissingCompileTimeError
type_promotion_parameter_test/03: MissingCompileTimeError
@@ -1583,6 +1646,9 @@
type_promotion_parameter_test/54: MissingCompileTimeError
type_promotion_parameter_test/55: MissingCompileTimeError
type_promotion_parameter_test/56: MissingCompileTimeError
+type_variable_bounds2_test: MissingCompileTimeError
+type_variable_bounds3_test/00: MissingCompileTimeError
+type_variable_bounds4_test/01: MissingCompileTimeError
type_variable_bounds_test/00: MissingCompileTimeError
type_variable_bounds_test/01: MissingCompileTimeError
type_variable_bounds_test/02: MissingCompileTimeError
@@ -1595,9 +1661,6 @@
type_variable_bounds_test/09: MissingCompileTimeError
type_variable_bounds_test/10: MissingCompileTimeError
type_variable_bounds_test/11: MissingCompileTimeError
-type_variable_bounds2_test: MissingCompileTimeError
-type_variable_bounds3_test/00: MissingCompileTimeError
-type_variable_bounds4_test/01: MissingCompileTimeError
type_variable_conflict2_test/01: MissingCompileTimeError
type_variable_conflict2_test/02: MissingCompileTimeError
type_variable_conflict2_test/03: MissingCompileTimeError
@@ -1608,77 +1671,17 @@
type_variable_conflict2_test/08: MissingCompileTimeError
type_variable_conflict2_test/09: MissingCompileTimeError
type_variable_conflict2_test/10: MissingCompileTimeError
+type_variable_scope2_test: MissingCompileTimeError
type_variable_scope_test/00: MissingCompileTimeError
type_variable_scope_test/01: MissingCompileTimeError
type_variable_scope_test/02: MissingCompileTimeError
type_variable_scope_test/03: MissingCompileTimeError
type_variable_scope_test/04: MissingCompileTimeError
type_variable_scope_test/05: MissingCompileTimeError
-type_variable_scope2_test: MissingCompileTimeError
typed_selector2_test: MissingCompileTimeError
-private_access_test/01: MissingCompileTimeError
-private_access_test/02: MissingCompileTimeError
-private_access_test/03: MissingCompileTimeError
-private_access_test/04: MissingCompileTimeError
-private_access_test/05: MissingCompileTimeError
-private_access_test/06: MissingCompileTimeError
unbound_getter_test: MissingCompileTimeError
unresolved_default_constructor_test/01: MissingCompileTimeError
unresolved_top_level_method_test: MissingCompileTimeError
unresolved_top_level_var_test: MissingCompileTimeError
vm/type_vm_test: StaticWarning
-local_function2_test/01: MissingCompileTimeError
-local_function2_test/02: MissingCompileTimeError
-local_function3_test/01: MissingCompileTimeError
-local_function_test/01: MissingCompileTimeError
-local_function_test/02: MissingCompileTimeError
-local_function_test/03: MissingCompileTimeError
-local_function_test/04: MissingCompileTimeError
-logical_expression3_test: MissingCompileTimeError
-malbounded_instantiation_test/01: MissingCompileTimeError
-malbounded_instantiation_test/02: MissingCompileTimeError
-malbounded_instantiation_test/03: MissingCompileTimeError
-malbounded_redirecting_factory_test/02: MissingCompileTimeError
-malbounded_redirecting_factory_test/03: MissingCompileTimeError
-malbounded_redirecting_factory_test/04: MissingCompileTimeError
-malbounded_redirecting_factory_test/05: MissingCompileTimeError
-malbounded_type_cast2_test: MissingCompileTimeError
-type_promotion_functions_test/01: MissingCompileTimeError
-type_promotion_functions_test/05: MissingCompileTimeError
-type_promotion_functions_test/06: MissingCompileTimeError
-type_promotion_functions_test/07: MissingCompileTimeError
-type_promotion_functions_test/08: MissingCompileTimeError
-type_promotion_functions_test/10: MissingCompileTimeError
-[ $compiler == dart2analyzer && $runtime == none ]
-assertion_initializer_const_error2_test/cc10: CompileTimeError # Issue 31320
-assertion_initializer_const_error2_test/cc11: CompileTimeError # Issue 31320
-assertion_initializer_const_function_test/01: CompileTimeError
-assertion_initializer_test: CompileTimeError
-error_stacktrace_test/00: MissingCompileTimeError
-vm/lazy_deopt_with_exception_test: CompileTimeError
-
-[ $compiler == dart2analyzer && $strong ]
-assertion_initializer_const_function_test/01: MissingStaticWarning
-constant_type_literal_test/01: MissingCompileTimeError # Issue 28823
-field3a_negative_test: StaticWarning # Issue 28823
-generic_methods_closure_test: CompileTimeError # Issue 29070
-generic_methods_overriding_test/01: MissingCompileTimeError # Issue 29070
-generic_methods_overriding_test/03: MissingCompileTimeError # Issue 29070
-generic_methods_shadowing_test: CompileTimeError # Issue 29070
-generic_methods_simple_is_expression_test: CompileTimeError # Issue 29070
-generic_methods_local_variable_declaration_test: CompileTimeError # Issue 29070
-generic_methods_type_expression_test: CompileTimeError # Incorrectly disallows type parameter in "is" test.
-instantiate_type_variable_test/01: CompileTimeError
-no_main_test/01: MissingStaticWarning # Issue 28823
-no_such_method_negative_test: CompileTimeError
-string_interpolate_test: CompileTimeError
-super_setter_test: StaticWarning # Issue 28823
-reify_typevar_static_test/00: MissingCompileTimeError # Issue 28823
-
-[$compiler == dart2analyzer]
-vm/regress_27201_test: SkipByDesign # Loads bad library, so will always crash.
-generic_function_type_as_type_argument_test/01: MissingCompileTimeError # Issue 30929
-generic_function_type_as_type_argument_test/02: MissingCompileTimeError # Issue 30929
-regress_29784_test/02: MissingCompileTimeError # Issue 29784
-config_import_corelib_test: StaticWarning, OK
diff --git a/tests/language_2/language_2_dart2js.status b/tests/language_2/language_2_dart2js.status
index 08cc5c2..4559a25 100644
--- a/tests/language_2/language_2_dart2js.status
+++ b/tests/language_2/language_2_dart2js.status
@@ -1,15 +1,9 @@
# 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 ]
-vm/*: SkipByDesign # Tests for the VM.
-int64_literal_test/*: Skip # This is testing Dart 2.0 int64 semantics.
-
-# dart2js does not implement the Dart 2.0 static type errors yet.
-[ $compiler == dart2js ]
abstract_beats_arguments_test: MissingCompileTimeError
abstract_exact_selector_test/01: MissingCompileTimeError
abstract_factory_constructor_test/00: MissingCompileTimeError
@@ -42,15 +36,15 @@
async_await_syntax_test/c10a: MissingCompileTimeError
async_await_syntax_test/d08b: MissingCompileTimeError
async_await_syntax_test/d10a: MissingCompileTimeError
-async_congruence_local_test/none: RuntimeError
async_congruence_local_test/01: MissingCompileTimeError
async_congruence_local_test/02: MissingCompileTimeError
-async_congruence_method_test/none: RuntimeError
+async_congruence_local_test/none: RuntimeError
async_congruence_method_test/01: MissingCompileTimeError
+async_congruence_method_test/none: RuntimeError
async_congruence_top_level_test: RuntimeError
-async_congruence_unnamed_test/none: RuntimeError
async_congruence_unnamed_test/01: MissingCompileTimeError
async_congruence_unnamed_test/02: MissingCompileTimeError
+async_congruence_unnamed_test/none: RuntimeError
async_or_generator_return_type_stacktrace_test/01: MissingCompileTimeError
async_or_generator_return_type_stacktrace_test/02: MissingCompileTimeError
async_or_generator_return_type_stacktrace_test/03: MissingCompileTimeError
@@ -148,6 +142,7 @@
example_constructor_test: RuntimeError
external_test/21: CompileTimeError
external_test/24: CompileTimeError
+extract_type_arguments_test: CompileTimeError # Issue 31371
f_bounded_quantification_test/01: MissingCompileTimeError
f_bounded_quantification_test/02: MissingCompileTimeError
factory1_test/00: MissingCompileTimeError
@@ -248,8 +243,8 @@
generic_methods_tearoff_specialization_test: RuntimeError
generic_methods_type_expression_test: RuntimeError
generic_methods_unused_parameter_test: RuntimeError
+generic_no_such_method_dispatcher_simple_test: Skip # This test is just for kernel.
generic_no_such_method_dispatcher_test: RuntimeError
-generic_no_such_method_dispatcher_simple_test: Skip # This test is just for kernel.
generic_tearoff_test: RuntimeError
getter_no_setter2_test/00: MissingCompileTimeError
getter_no_setter2_test/01: MissingCompileTimeError
@@ -300,6 +295,7 @@
inferrer_constructor5_test/01: MissingCompileTimeError
initializing_formal_final_test: MissingCompileTimeError
initializing_formal_type_test: MissingCompileTimeError
+int64_literal_test/*: Skip # This is testing Dart 2.0 int64 semantics.
interface_test/00: MissingCompileTimeError
least_upper_bound_expansive_test/01: MissingCompileTimeError
least_upper_bound_expansive_test/02: MissingCompileTimeError
@@ -329,7 +325,6 @@
library_ambiguous_test/03: MissingCompileTimeError
library_ambiguous_test/04: MissingCompileTimeError
library_env_test/has_no_html_support: RuntimeError, OK
-
library_env_test/has_no_io_support: RuntimeError, OK
library_env_test/has_no_mirror_support: RuntimeError, OK
local_function2_test/01: MissingCompileTimeError
@@ -757,268 +752,163 @@
unresolved_in_factory_test: MissingCompileTimeError
unresolved_top_level_method_test: MissingCompileTimeError
unresolved_top_level_var_test: MissingCompileTimeError
+vm/*: SkipByDesign # Tests for the VM.
void_block_return_test/00: MissingCompileTimeError
wrong_number_type_arguments_test/*: MissingCompileTimeError
[ $compiler != dart2js ]
minify_closure_variable_collision_test: SkipByDesign # Regression test for dart2js
-[ $compiler == dart2js && $runtime != none && !$dart2js_with_kernel ]
-accessor_conflict_import2_test: RuntimeError # Issue 25626
-accessor_conflict_import_prefixed2_test: RuntimeError # Issue 25626
-accessor_conflict_import_prefixed_test: RuntimeError # Issue 25626
-accessor_conflict_import_test: RuntimeError # Issue 25626
-assertion_test: RuntimeError # Issue 30326
-async_star_test/02: RuntimeError
-bit_operations_test: RuntimeError, OK # Issue 1533
-branch_canonicalization_test: RuntimeError # Issue 638.
-covariant_override/runtime_check_test: RuntimeError
-function_type_alias_test: RuntimeError
-generic_closure_test: RuntimeError
-generic_function_typedef_test/01: RuntimeError
-generic_instanceof_test: RuntimeError
-generic_typedef_test: RuntimeError
-implicit_downcast_during_assert_initializer_test: CompileTimeError
-implicit_downcast_during_for_in_iterable_test: RuntimeError
-implicit_downcast_during_function_literal_arrow_test: RuntimeError
-implicit_downcast_during_function_literal_return_test: RuntimeError
-implicit_downcast_during_list_literal_test: RuntimeError
-implicit_downcast_during_redirecting_initializer_test: RuntimeError
-implicit_downcast_during_return_async_test: RuntimeError
-implicit_downcast_during_super_initializer_test: RuntimeError
-implicit_downcast_during_yield_star_test: RuntimeError
-implicit_downcast_during_yield_test: RuntimeError
-instanceof2_test: RuntimeError
-instanceof4_test/01: RuntimeError
-instanceof4_test/none: RuntimeError
-many_generic_instanceof_test: RuntimeError
-map_literal8_test: RuntimeError
-mixin_forwarding_constructor4_test/01: MissingCompileTimeError # Issue 15101
-mixin_forwarding_constructor4_test/02: MissingCompileTimeError # Issue 15101
-mixin_forwarding_constructor4_test/03: MissingCompileTimeError # Issue 15101
-not_enough_positional_arguments_test/00: MissingCompileTimeError
-not_enough_positional_arguments_test/03: MissingCompileTimeError
-not_enough_positional_arguments_test/06: MissingCompileTimeError
-not_enough_positional_arguments_test/07: MissingCompileTimeError
-null_test/mirrors: Skip # Uses mirrors.
-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
-regress_28341_test: Fail # Issue 28340
-symbol_literal_test/none: CompileTimeError
-tearoff_dynamic_test: RuntimeError
-truncdiv_test: RuntimeError # Issue 15246
-type_literal_test: RuntimeError
-vm/*: SkipByDesign # Tests for the VM.
+[ $compiler == dart2js && $runtime == chrome ]
+field_override_optimization_test: RuntimeError
+field_type_check2_test/01: MissingRuntimeError
-[ $compiler == dart2js && !$dart2js_with_kernel ]
-accessor_conflict_export2_test: Crash # Issue 25626
-accessor_conflict_export_test: Crash # Issue 25626
-assertion_initializer_const_error2_test/none: Pass
-assertion_initializer_const_error2_test/*: Crash # Issue 30038
-assertion_initializer_test: Crash
-bad_constructor_test/05: CompileTimeError
-bad_typedef_test/00: Crash # Issue 28214
-built_in_identifier_type_annotation_test/13: Crash # Issue 28815
-built_in_identifier_type_annotation_test/22: MissingCompileTimeError # Error only in strong mode
-built_in_identifier_type_annotation_test/30: Crash # Issue 28815
-built_in_identifier_type_annotation_test/52: Crash # Issue 28815
-built_in_identifier_type_annotation_test/53: Crash # Issue 28815
-built_in_identifier_type_annotation_test/54: Crash # Issue 28815
-built_in_identifier_type_annotation_test/55: Crash # Issue 28815
-built_in_identifier_type_annotation_test/57: Crash # Issue 28815
-built_in_identifier_type_annotation_test/58: Crash # Issue 28815
-built_in_identifier_type_annotation_test/59: Crash # Issue 28815
-built_in_identifier_type_annotation_test/60: Crash # Issue 28815
-built_in_identifier_type_annotation_test/61: Crash # Issue 28815
-built_in_identifier_type_annotation_test/62: Crash # Issue 28815
-built_in_identifier_type_annotation_test/63: Crash # Issue 28815
-built_in_identifier_type_annotation_test/64: Crash # Issue 28815
-built_in_identifier_type_annotation_test/65: Crash # Issue 28815
-built_in_identifier_type_annotation_test/66: Crash # Issue 28815
-built_in_identifier_type_annotation_test/67: Crash # Issue 28815
-built_in_identifier_type_annotation_test/68: Crash # Issue 28815
-built_in_identifier_type_annotation_test/81: Crash # Issue 28815
-call_function_apply_test: RuntimeError # Issue 23873
-canonical_const2_test: RuntimeError, OK # Issue 1533
-compile_time_constant_o_test/01: MissingCompileTimeError
-compile_time_constant_o_test/02: MissingCompileTimeError
-conditional_method_invocation_test/05: MissingCompileTimeError
-conditional_method_invocation_test/06: MissingCompileTimeError
-conditional_method_invocation_test/07: MissingCompileTimeError
-conditional_method_invocation_test/08: MissingCompileTimeError
-conditional_method_invocation_test/12: MissingCompileTimeError
-conditional_method_invocation_test/13: MissingCompileTimeError
-conditional_method_invocation_test/18: MissingCompileTimeError
-conditional_method_invocation_test/19: MissingCompileTimeError
-conditional_property_access_test/04: MissingCompileTimeError
-conditional_property_access_test/05: MissingCompileTimeError
-conditional_property_access_test/06: MissingCompileTimeError
-conditional_property_access_test/10: MissingCompileTimeError
-conditional_property_access_test/11: MissingCompileTimeError
-conditional_property_access_test/16: MissingCompileTimeError
-conditional_property_access_test/17: MissingCompileTimeError
-conditional_property_assignment_test/04: MissingCompileTimeError
-conditional_property_assignment_test/05: MissingCompileTimeError
-conditional_property_assignment_test/06: MissingCompileTimeError
-conditional_property_assignment_test/10: MissingCompileTimeError
-conditional_property_assignment_test/11: MissingCompileTimeError
-conditional_property_assignment_test/12: MissingCompileTimeError
-conditional_property_assignment_test/13: MissingCompileTimeError
-conditional_property_assignment_test/27: MissingCompileTimeError
-conditional_property_assignment_test/28: MissingCompileTimeError
-conditional_property_assignment_test/32: MissingCompileTimeError
-conditional_property_assignment_test/33: MissingCompileTimeError
-conditional_property_assignment_test/34: MissingCompileTimeError
-conditional_property_assignment_test/35: MissingCompileTimeError
-conditional_property_increment_decrement_test/04: MissingCompileTimeError
-conditional_property_increment_decrement_test/08: MissingCompileTimeError
-conditional_property_increment_decrement_test/12: MissingCompileTimeError
-conditional_property_increment_decrement_test/16: MissingCompileTimeError
-conditional_property_increment_decrement_test/21: MissingCompileTimeError
-conditional_property_increment_decrement_test/22: MissingCompileTimeError
-conditional_property_increment_decrement_test/27: MissingCompileTimeError
-conditional_property_increment_decrement_test/28: MissingCompileTimeError
-conditional_property_increment_decrement_test/33: MissingCompileTimeError
-conditional_property_increment_decrement_test/34: MissingCompileTimeError
-conditional_property_increment_decrement_test/39: MissingCompileTimeError
-conditional_property_increment_decrement_test/40: MissingCompileTimeError
-const_constructor2_test/05: MissingCompileTimeError
-const_constructor2_test/06: MissingCompileTimeError
-const_types_test/01: MissingCompileTimeError
-const_types_test/02: MissingCompileTimeError
-const_types_test/03: MissingCompileTimeError
-const_types_test/04: MissingCompileTimeError
-const_types_test/05: MissingCompileTimeError
-const_types_test/06: MissingCompileTimeError
-const_types_test/13: MissingCompileTimeError
-const_types_test/34: MissingCompileTimeError
-const_types_test/35: MissingCompileTimeError
-const_types_test/39: MissingCompileTimeError
-const_types_test/40: MissingCompileTimeError
-const_switch_test/02: RuntimeError # Issue 17960
-const_switch_test/04: RuntimeError # Issue 17960
-deferred_constraints_type_annotation_test/as_operation: MissingCompileTimeError
-deferred_constraints_type_annotation_test/catch_check: MissingCompileTimeError
-deferred_constraints_type_annotation_test/is_check: MissingCompileTimeError
-deferred_constraints_type_annotation_test/new_before_load: MissingCompileTimeError
-deferred_constraints_type_annotation_test/new_generic2: MissingCompileTimeError
-deferred_constraints_type_annotation_test/new_generic3: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation1: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_generic1: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_generic2: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_generic3: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_generic4: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_null: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_top_level: MissingCompileTimeError
-deferred_not_loaded_check_test: Fail # Issue 27577
-double_int_to_string_test: RuntimeError # Issue 1533
-enum_test: Fail # Issue 28340
-final_attempt_reinitialization_test.dart: Skip # Issue 29659
-final_field_override_test: RuntimeError
-generalized_void_syntax_test: CompileTimeError # Issue #30176.
-generic_field_mixin4_test: Crash # Issue 18651
-generic_field_mixin5_test: Crash # Issue 18651
-generic_function_typedef2_test/00: MissingCompileTimeError # Issue 28214
-generic_function_typedef2_test/01: MissingCompileTimeError # Issue 28214
-generic_function_typedef2_test/02: MissingCompileTimeError # Issue 28214
-generic_function_typedef2_test/03: MissingCompileTimeError # Issue 28214
-generic_function_typedef2_test/05: Crash # Issue 28214
-generic_function_typedef2_test/06: Crash # Issue 28214
-generic_methods_local_variable_declaration_test: RuntimeError
-getter_setter_in_lib_test: Fail # Issue 23288
-identical_closure2_test: RuntimeError # Issue 1533, Issue 12596
-if_null_assignment_behavior_test/13: Crash # Issue 23491
-if_null_assignment_behavior_test/14: Crash # Issue 23491
-infinity_test: RuntimeError # Issue 4984
-integer_division_by_zero_test: RuntimeError # Issue 8301
-invocation_mirror2_test: RuntimeError # Issue 6490 (wrong retval).
-method_name_test: Fail # issue 25574
-method_override5_test: RuntimeError # Issue 12809
-mint_arithmetic_test: RuntimeError # Issue 1533
-mixin_of_mixin_test/none: CompileTimeError
-mixin_super_2_test/none: CompileTimeError
-mixin_super_bound2_test: CompileTimeError # Issue 23773
-mixin_mixin_type_arguments_test: RuntimeError # Issue 29587
-mixin_mixin2_test: RuntimeError # Issue 13109.
-mixin_mixin3_test: RuntimeError # Issue 13109.
-mixin_super_constructor_named_test/01: Fail # Issue 15101
-mixin_super_constructor_positionals_test/01: Fail # Issue 15101
-mixin_super_test: CompileTimeError # Issue 23773
-mixin_super_use_test: CompileTimeError # Issue 23773
-mixin_superclass_test: CompileTimeError # Issue 23773
-mixin_supertype_subclass2_test: CompileTimeError # Issue 23773
-mixin_supertype_subclass3_test: CompileTimeError # Issue 23773
-mixin_supertype_subclass4_test: CompileTimeError # Issue 23773
-mixin_type_parameters_super_test: RuntimeError
-mixin_with_two_implicit_constructors_test: MissingCompileTimeError
-mock_writable_final_private_field_test: CompileTimeError # Issue 17526
-modulo_test: RuntimeError # Issue 15246
-multiline_newline_test/01: CompileTimeError # Issue 23888
-multiline_newline_test/01r: CompileTimeError # Issue 23888
-multiline_newline_test/02: CompileTimeError # Issue 23888
-multiline_newline_test/02r: CompileTimeError # Issue 23888
-multiline_newline_test/03: RuntimeError
-multiline_newline_test/03r: RuntimeError
-multiline_newline_test/04: MissingCompileTimeError # Issue 23888
-multiline_newline_test/04r: MissingCompileTimeError # Issue 23888
-multiline_newline_test/05: MissingCompileTimeError # Issue 23888
-multiline_newline_test/05r: MissingCompileTimeError # Issue 23888
-multiline_newline_test/none: RuntimeError # Issue 23888
-number_identity2_test: RuntimeError # Issue 12596
-left_shift_test: RuntimeError # Issue 1533
-numbers_test: RuntimeError, OK # Issue 1533
-full_stacktrace1_test: Pass, RuntimeError # Issue 12698
-full_stacktrace2_test: Pass, RuntimeError # Issue 12698
-nan_identical_test: Fail # Issue 11551
-object_has_no_call_method_test/02: MissingCompileTimeError
-object_has_no_call_method_test/05: MissingCompileTimeError
-object_has_no_call_method_test/08: MissingCompileTimeError
-positional_parameters_type_test/01: MissingCompileTimeError
-positional_parameters_type_test/02: MissingCompileTimeError
-stacktrace_test: Pass, RuntimeError # # Issue 12698
-stacktrace_rethrow_nonerror_test: Pass, RuntimeError # Issue 12698
-stacktrace_rethrow_error_test: Pass, RuntimeError # Issue 12698
-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
-scope_variable_test/01: MissingCompileTimeError # Issue 13016
-list_literal4_test/00: MissingCompileTimeError
-list_literal4_test/01: MissingCompileTimeError
-list_literal4_test/03: MissingCompileTimeError
-list_literal4_test/04: MissingCompileTimeError
-list_literal4_test/05: MissingCompileTimeError
-list_literal_syntax_test/01: MissingCompileTimeError
-list_literal_syntax_test/02: MissingCompileTimeError
-list_literal_syntax_test/03: MissingCompileTimeError
-try_catch_on_syntax_test/10: Fail # Issue 19823
-try_catch_on_syntax_test/11: Fail # Issue 19823
-regress_22976_test: CompileTimeError # Issue 23132
-regress_24283_test: RuntimeError # Issue 1533
-external_test/10: CompileTimeError # Issue 12887
-external_test/13: CompileTimeError # Issue 12887
-external_test/20: CompileTimeError # Issue 12887
-expect_test: RuntimeError, OK # Issue 13080
-setter4_test: CompileTimeError # issue 13639
-stacktrace_demangle_ctors_test: Fail # dart2js stack traces are not always compliant.
-truncdiv_test: RuntimeError # Issue 15246
-const_dynamic_type_literal_test/03: CompileTimeError # Issue 23009
-full_stacktrace3_test: Pass, RuntimeError # Issue 12698
+[ $compiler == dart2js && $runtime == chrome && $system == macos && !$dart2js_with_kernel ]
+await_future_test: Pass, Timeout # Issue 26735
+
+[ $compiler == dart2js && $runtime == chrome && !$dart2js_with_kernel ]
+enum_mirror_test: Pass
+
+[ $compiler == dart2js && $runtime == chromeOnAndroid && !$dart2js_with_kernel ]
+override_field_test/02: Pass, Slow # TODO(kasperl): Please triage.
+
+[ $compiler == dart2js && $runtime == d8 && $checked && !$dart2js_with_kernel ]
+factory_implementation_test/00: Fail
+regress_30339_test: RuntimeError # Issue 26429
+
+[ $compiler == dart2js && $runtime == d8 && !$checked ]
+field_override_optimization_test: RuntimeError
+field_type_check2_test/01: MissingRuntimeError
+
+[ $compiler == dart2js && $runtime == drt && $checked && !$dart2js_with_kernel ]
+regress_30339_test: RuntimeError # Issue 30393
+
+[ $compiler == dart2js && $runtime == drt && !$checked && !$dart2js_with_kernel ]
+field_override_optimization_test: RuntimeError
+field_type_check2_test/01: MissingRuntimeError
+
+[ $compiler == dart2js && $runtime != drt && !$dart2js_with_kernel ]
+issue23244_test: RuntimeError # 23244
+
+[ $compiler == dart2js && $runtime == ff && !$dart2js_with_kernel ]
+field_override_optimization_test: RuntimeError
+field_type_check2_test/01: MissingRuntimeError
+round_test: Pass, Fail, OK # Fixed in ff 35. Common JavaScript engine Math.round bug.
+
+[ $compiler == dart2js && $runtime == jsshell ]
+async_star_test/01: RuntimeError
+async_star_test/02: RuntimeError
+async_star_test/03: RuntimeError
+async_star_test/04: RuntimeError
+async_star_test/05: RuntimeError
+async_star_test/none: RuntimeError
+field_override_optimization_test: RuntimeError
+field_type_check2_test/01: MissingRuntimeError
+
+[ $compiler == dart2js && $runtime == jsshell && !$dart2js_with_kernel ]
+async_star_await_pauses_test: RuntimeError # Need triage
+async_star_no_cancel2_test: RuntimeError # Need triage
+async_star_no_cancel_test: RuntimeError # Need triage
+await_for_test: Skip # Jsshell does not provide periodic timers, Issue 7728
+regress_23996_test: RuntimeError # Jsshell does not provide non-zero timers, Issue 7728
+
+[ $compiler == dart2js && $runtime != none ]
+covariant_subtyping_with_substitution_test: RuntimeError
+covariant_tear_off_type_test: RuntimeError
+
+[ $compiler == dart2js && $runtime != none && $checked ]
+assert_with_message_test: RuntimeError
+function_subtype_bound_closure3_test: RuntimeError
+function_subtype_bound_closure4_test: RuntimeError
+function_subtype_bound_closure7_test: RuntimeError
+function_subtype_call1_test: RuntimeError
+function_subtype_call2_test: RuntimeError
+function_subtype_cast1_test: RuntimeError
+function_subtype_named1_test: RuntimeError
+function_subtype_named2_test: RuntimeError
+function_subtype_not1_test: RuntimeError
+function_subtype_optional1_test: RuntimeError
+function_subtype_optional2_test: RuntimeError
+function_subtype_typearg2_test: RuntimeError
+function_subtype_typearg3_test: RuntimeError
+function_subtype_typearg5_test: RuntimeError
+function_type/function_type0_test: RuntimeError # Issue 30476
+function_type/function_type10_test: RuntimeError # Issue 30476
+function_type/function_type12_test: RuntimeError # Issue 30476
+function_type/function_type13_test: RuntimeError # Issue 30476
+function_type/function_type14_test: RuntimeError # Issue 30476
+function_type/function_type15_test: RuntimeError # Issue 30476
+function_type/function_type16_test: RuntimeError # Issue 30476
+function_type/function_type17_test: RuntimeError # Issue 30476
+function_type/function_type18_test: RuntimeError # Issue 30476
+function_type/function_type19_test: RuntimeError # Issue 30476
+function_type/function_type1_test: RuntimeError # Issue 30476
+function_type/function_type20_test: RuntimeError # Issue 30476
+function_type/function_type21_test: RuntimeError # Issue 30476
+function_type/function_type22_test: RuntimeError # Issue 30476
+function_type/function_type24_test: RuntimeError # Issue 30476
+function_type/function_type25_test: RuntimeError # Issue 30476
+function_type/function_type26_test: RuntimeError # Issue 30476
+function_type/function_type27_test: RuntimeError # Issue 30476
+function_type/function_type28_test: RuntimeError # Issue 30476
+function_type/function_type29_test: RuntimeError # Issue 30476
+function_type/function_type2_test: RuntimeError # Issue 30476
+function_type/function_type30_test: RuntimeError # Issue 30476
+function_type/function_type31_test: RuntimeError # Issue 30476
+function_type/function_type32_test: RuntimeError # Issue 30476
+function_type/function_type33_test: RuntimeError # Issue 30476
+function_type/function_type34_test: RuntimeError # Issue 30476
+function_type/function_type36_test: RuntimeError # Issue 30476
+function_type/function_type3_test: RuntimeError # Issue 30476
+function_type/function_type44_test: RuntimeError # Issue 30476
+function_type/function_type45_test: RuntimeError # Issue 30476
+function_type/function_type46_test: RuntimeError # Issue 30476
+function_type/function_type47_test: RuntimeError # Issue 30476
+function_type/function_type48_test: RuntimeError # Issue 30476
+function_type/function_type49_test: RuntimeError # Issue 30476
+function_type/function_type4_test: RuntimeError # Issue 30476
+function_type/function_type50_test: RuntimeError # Issue 30476
+function_type/function_type51_test: RuntimeError # Issue 30476
+function_type/function_type52_test: RuntimeError # Issue 30476
+function_type/function_type53_test: RuntimeError # Issue 30476
+function_type/function_type54_test: RuntimeError # Issue 30476
+function_type/function_type56_test: RuntimeError # Issue 30476
+function_type/function_type57_test: RuntimeError # Issue 30476
+function_type/function_type58_test: RuntimeError # Issue 30476
+function_type/function_type59_test: RuntimeError # Issue 30476
+function_type/function_type5_test: RuntimeError # Issue 30476
+function_type/function_type60_test: RuntimeError # Issue 30476
+function_type/function_type61_test: RuntimeError # Issue 30476
+function_type/function_type62_test: RuntimeError # Issue 30476
+function_type/function_type63_test: RuntimeError # Issue 30476
+function_type/function_type64_test: RuntimeError # Issue 30476
+function_type/function_type65_test: RuntimeError # Issue 30476
+function_type/function_type66_test: RuntimeError # Issue 30476
+function_type/function_type6_test: RuntimeError # Issue 30476
+function_type/function_type7_test: RuntimeError # Issue 30476
+function_type/function_type80_test: RuntimeError # Issue 30476
+function_type/function_type81_test: RuntimeError # Issue 30476
+function_type/function_type82_test: RuntimeError # Issue 30476
+function_type/function_type83_test: RuntimeError # Issue 30476
+function_type/function_type84_test: RuntimeError # Issue 30476
+function_type/function_type85_test: RuntimeError # Issue 30476
+function_type/function_type86_test: RuntimeError # Issue 30476
+function_type/function_type87_test: RuntimeError # Issue 30476
+function_type/function_type88_test: RuntimeError # Issue 30476
+function_type/function_type89_test: RuntimeError # Issue 30476
+function_type/function_type8_test: RuntimeError # Issue 30476
+function_type/function_type90_test: RuntimeError # Issue 30476
+function_type/function_type96_test: RuntimeError # Issue 30476
+function_type/function_type9_test: RuntimeError # Issue 30476
+function_type_alias2_test: RuntimeError
[ $compiler == dart2js && $runtime != none && !$checked && !$dart2js_with_kernel ]
callable_test/none: RuntimeError
cascaded_forwarding_stubs_generic_test: RuntimeError
cascaded_forwarding_stubs_test: RuntimeError
-checked_setter_test: RuntimeError
checked_setter2_test: RuntimeError
checked_setter3_test: RuntimeError
+checked_setter_test: RuntimeError
covariant_subtyping_tearoff1_test: RuntimeError
covariant_subtyping_tearoff2_test: RuntimeError
covariant_subtyping_tearoff3_test: RuntimeError
@@ -1095,143 +985,97 @@
type_parameter_test/05: MissingCompileTimeError
typevariable_substitution2_test/02: RuntimeError
-[ $compiler == dart2js && !$checked && !$enable_asserts && !$dart2js_with_kernel && $runtime != none ]
+[ $compiler == dart2js && $runtime != none && !$checked && !$dart2js_with_kernel && !$enable_asserts ]
assertion_test: RuntimeError # Issue 12748
-typevariable_substitution2_test/02: RuntimeError
runtime_type_function_test: Pass, RuntimeError # Issue 27394
+typevariable_substitution2_test/02: RuntimeError
-[ $compiler == dart2js && !$checked && !$dart2js_with_kernel ]
-bool_check_test: RuntimeError # Issue 29647
-bool_condition_check_test: RuntimeError
-const_constructor2_test/13: MissingCompileTimeError
-const_constructor2_test/14: MissingCompileTimeError
-const_constructor2_test/15: MissingCompileTimeError
-const_constructor2_test/16: MissingCompileTimeError
-const_constructor2_test/17: MissingCompileTimeError
-const_constructor2_test/18: MissingCompileTimeError
-const_constructor2_test/20: MissingCompileTimeError
-const_constructor2_test/22: MissingCompileTimeError
-const_constructor2_test/24: MissingCompileTimeError
-const_constructor3_test/02: MissingCompileTimeError
-const_constructor3_test/04: MissingCompileTimeError
-const_init2_test/02: MissingCompileTimeError
-function_subtype_inline2_test: RuntimeError
-generic_test: RuntimeError, OK
-list_literal1_test/01: MissingCompileTimeError
+[ $compiler == dart2js && $runtime != none && !$dart2js_with_kernel ]
+accessor_conflict_import2_test: RuntimeError # Issue 25626
+accessor_conflict_import_prefixed2_test: RuntimeError # Issue 25626
+accessor_conflict_import_prefixed_test: RuntimeError # Issue 25626
+accessor_conflict_import_test: RuntimeError # Issue 25626
+assertion_test: RuntimeError # Issue 30326
+async_star_cancel_while_paused_test: RuntimeError # Issue 22853
+async_star_test/02: RuntimeError
+bit_operations_test: RuntimeError, OK # Issue 1533
+branch_canonicalization_test: RuntimeError # Issue 638.
+covariant_override/runtime_check_test: RuntimeError
+function_type_alias_test: RuntimeError
+generic_closure_test: RuntimeError
+generic_function_typedef_test/01: RuntimeError
+generic_instanceof_test: RuntimeError
+generic_typedef_test: RuntimeError
+implicit_downcast_during_assert_initializer_test: CompileTimeError
+implicit_downcast_during_for_in_iterable_test: RuntimeError
+implicit_downcast_during_function_literal_arrow_test: RuntimeError
+implicit_downcast_during_function_literal_return_test: RuntimeError
+implicit_downcast_during_list_literal_test: RuntimeError
+implicit_downcast_during_redirecting_initializer_test: RuntimeError
+implicit_downcast_during_return_async_test: RuntimeError
+implicit_downcast_during_super_initializer_test: RuntimeError
+implicit_downcast_during_yield_star_test: RuntimeError
+implicit_downcast_during_yield_test: RuntimeError
+instanceof2_test: RuntimeError
+instanceof4_test/01: RuntimeError
+instanceof4_test/none: RuntimeError
+invalid_cast_test/01: MissingCompileTimeError
+invalid_cast_test/02: MissingCompileTimeError
+invalid_cast_test/03: MissingCompileTimeError
+invalid_cast_test/04: MissingCompileTimeError
+invalid_cast_test/07: MissingCompileTimeError
+invalid_cast_test/08: MissingCompileTimeError
+invalid_cast_test/09: MissingCompileTimeError
+invalid_cast_test/10: MissingCompileTimeError
+invalid_cast_test/11: MissingCompileTimeError
+many_generic_instanceof_test: RuntimeError
+map_literal8_test: RuntimeError
+mixin_forwarding_constructor4_test/01: MissingCompileTimeError # Issue 15101
+mixin_forwarding_constructor4_test/02: MissingCompileTimeError # Issue 15101
+mixin_forwarding_constructor4_test/03: MissingCompileTimeError # Issue 15101
+not_enough_positional_arguments_test/00: MissingCompileTimeError
+not_enough_positional_arguments_test/03: MissingCompileTimeError
+not_enough_positional_arguments_test/06: MissingCompileTimeError
+not_enough_positional_arguments_test/07: MissingCompileTimeError
+null_test/mirrors: Skip # Uses mirrors.
+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
+regress_28341_test: Fail # Issue 28340
+symbol_literal_test/none: CompileTimeError
+tearoff_dynamic_test: RuntimeError
+truncdiv_test: RuntimeError # Issue 15246
+type_literal_test: RuntimeError
+vm/*: SkipByDesign # Tests for the VM.
-[ $compiler == dart2js && !$checked && $minified && !$dart2js_with_kernel ]
-function_subtype_inline2_test: RuntimeError
+[ $compiler == dart2js && $runtime == safari && !$dart2js_with_kernel ]
+field_override_optimization_test: RuntimeError
+field_type_check2_test/01: MissingRuntimeError
+round_test: Fail, OK # Common JavaScript engine Math.round bug.
-[ $compiler == dart2js && $minified ]
-cyclic_type2_test: RuntimeError # Issue 31054
-cyclic_type_test/0*: RuntimeError # Issue 31054
-f_bounded_quantification5_test: RuntimeError # Issue 31054
-generic_closure_test: RuntimeError # Issue 31054
-mixin_mixin2_test: RuntimeError # Issue 31054
-mixin_mixin3_test: RuntimeError # Issue 31054
-mixin_mixin4_test: RuntimeError # Issue 31054
-mixin_mixin5_test: RuntimeError # Issue 31054
-mixin_mixin6_test: RuntimeError # Issue 31054
-mixin_mixin_bound2_test: RuntimeError # Issue 31054
-mixin_mixin_bound_test: RuntimeError # Issue 31054
+[ $compiler == dart2js && $runtime == safarimobilesim && !$dart2js_with_kernel ]
+call_through_getter_test: Fail, OK
-[ $compiler == dart2js && $runtime == d8 && $checked && !$dart2js_with_kernel ]
-factory_implementation_test/00: Fail
-regress_30339_test: RuntimeError # Issue 26429
+[ $compiler == dart2js && $system == windows && !$dart2js_with_kernel ]
+string_literals_test: Pass, RuntimeError # Failures on dart2js-win7-chrome-4-4-be and dart2js-win7-ie11ff-4-4-be
-[ $compiler == dart2js && $runtime == drt && $checked && !$dart2js_with_kernel ]
-regress_30339_test: RuntimeError # Issue 30393
+[ $compiler == dart2js && $browser && $csp && !$fast_startup ]
+conditional_import_string_test: Fail # Issue 30615
+conditional_import_test: Fail # Issue 30615
-[ $compiler == dart2js && $runtime != none && $checked ]
-assert_with_message_test: RuntimeError
-function_type/function_type0_test: RuntimeError # Issue 30476
-function_type/function_type10_test: RuntimeError # Issue 30476
-function_type/function_type12_test: RuntimeError # Issue 30476
-function_type/function_type13_test: RuntimeError # Issue 30476
-function_type/function_type14_test: RuntimeError # Issue 30476
-function_type/function_type15_test: RuntimeError # Issue 30476
-function_type/function_type16_test: RuntimeError # Issue 30476
-function_type/function_type17_test: RuntimeError # Issue 30476
-function_type/function_type18_test: RuntimeError # Issue 30476
-function_type/function_type19_test: RuntimeError # Issue 30476
-function_type/function_type1_test: RuntimeError # Issue 30476
-function_type/function_type20_test: RuntimeError # Issue 30476
-function_type/function_type21_test: RuntimeError # Issue 30476
-function_type/function_type22_test: RuntimeError # Issue 30476
-function_type/function_type24_test: RuntimeError # Issue 30476
-function_type/function_type25_test: RuntimeError # Issue 30476
-function_type/function_type26_test: RuntimeError # Issue 30476
-function_type/function_type27_test: RuntimeError # Issue 30476
-function_type/function_type28_test: RuntimeError # Issue 30476
-function_type/function_type29_test: RuntimeError # Issue 30476
-function_type/function_type2_test: RuntimeError # Issue 30476
-function_type/function_type30_test: RuntimeError # Issue 30476
-function_type/function_type31_test: RuntimeError # Issue 30476
-function_type/function_type32_test: RuntimeError # Issue 30476
-function_type/function_type33_test: RuntimeError # Issue 30476
-function_type/function_type34_test: RuntimeError # Issue 30476
-function_type/function_type36_test: RuntimeError # Issue 30476
-function_type/function_type3_test: RuntimeError # Issue 30476
-function_type/function_type44_test: RuntimeError # Issue 30476
-function_type/function_type45_test: RuntimeError # Issue 30476
-function_type/function_type46_test: RuntimeError # Issue 30476
-function_type/function_type47_test: RuntimeError # Issue 30476
-function_type/function_type48_test: RuntimeError # Issue 30476
-function_type/function_type49_test: RuntimeError # Issue 30476
-function_type/function_type4_test: RuntimeError # Issue 30476
-function_type/function_type50_test: RuntimeError # Issue 30476
-function_type/function_type51_test: RuntimeError # Issue 30476
-function_type/function_type52_test: RuntimeError # Issue 30476
-function_type/function_type53_test: RuntimeError # Issue 30476
-function_type/function_type54_test: RuntimeError # Issue 30476
-function_type/function_type56_test: RuntimeError # Issue 30476
-function_type/function_type57_test: RuntimeError # Issue 30476
-function_type/function_type58_test: RuntimeError # Issue 30476
-function_type/function_type59_test: RuntimeError # Issue 30476
-function_type/function_type5_test: RuntimeError # Issue 30476
-function_type/function_type60_test: RuntimeError # Issue 30476
-function_type/function_type61_test: RuntimeError # Issue 30476
-function_type/function_type62_test: RuntimeError # Issue 30476
-function_type/function_type63_test: RuntimeError # Issue 30476
-function_type/function_type64_test: RuntimeError # Issue 30476
-function_type/function_type65_test: RuntimeError # Issue 30476
-function_type/function_type66_test: RuntimeError # Issue 30476
-function_type/function_type6_test: RuntimeError # Issue 30476
-function_type/function_type7_test: RuntimeError # Issue 30476
-function_type/function_type80_test: RuntimeError # Issue 30476
-function_type/function_type81_test: RuntimeError # Issue 30476
-function_type/function_type82_test: RuntimeError # Issue 30476
-function_type/function_type83_test: RuntimeError # Issue 30476
-function_type/function_type84_test: RuntimeError # Issue 30476
-function_type/function_type85_test: RuntimeError # Issue 30476
-function_type/function_type86_test: RuntimeError # Issue 30476
-function_type/function_type87_test: RuntimeError # Issue 30476
-function_type/function_type88_test: RuntimeError # Issue 30476
-function_type/function_type89_test: RuntimeError # Issue 30476
-function_type/function_type8_test: RuntimeError # Issue 30476
-function_type/function_type90_test: RuntimeError # Issue 30476
-function_type/function_type96_test: RuntimeError # Issue 30476
-function_type/function_type9_test: RuntimeError # Issue 30476
-function_subtype_bound_closure3_test: RuntimeError
-function_subtype_bound_closure4_test: RuntimeError
-function_subtype_bound_closure7_test: RuntimeError
-function_subtype_call1_test: RuntimeError
-function_subtype_call2_test: RuntimeError
-function_subtype_cast1_test: RuntimeError
-function_subtype_named1_test: RuntimeError
-function_subtype_named2_test: RuntimeError
-function_subtype_not1_test: RuntimeError
-function_subtype_optional1_test: RuntimeError
-function_subtype_optional2_test: RuntimeError
-function_subtype_typearg2_test: RuntimeError
-function_subtype_typearg3_test: RuntimeError
-function_subtype_typearg5_test: RuntimeError
-function_type_alias2_test: RuntimeError
+[ $compiler == dart2js && $browser && !$dart2js_with_kernel ]
+config_import_test: Fail # Test flag is not passed to the compiler.
+library_env_test/has_io_support: RuntimeError # Issue 27398
+library_env_test/has_no_io_support: Pass # Issue 27398
-[ $compiler == dart2js && !$dart2js_with_kernel && !$minified ]
-vm/async_await_catch_stacktrace_test: RuntimeError
+[ $compiler == dart2js && $checked ]
+covariant_subtyping_test: CompileTimeError
-[ $compiler == dart2js && $dart2js_with_kernel && $host_checked ]
+[ $compiler == dart2js && $checked && $dart2js_with_kernel ]
arithmetic_canonicalization_test: RuntimeError
assertion_initializer_const_function_test/01: MissingCompileTimeError
assertion_initializer_test: CompileTimeError
@@ -1241,19 +1085,18 @@
bad_override_test/03: MissingCompileTimeError
bad_override_test/04: MissingCompileTimeError
bad_override_test/05: MissingCompileTimeError
-bit_operations_test: RuntimeError
-bool_check_test: RuntimeError
-bool_condition_check_test: RuntimeError
+bit_operations_test/03: RuntimeError
+bit_operations_test/04: RuntimeError
+bit_operations_test/none: RuntimeError
branch_canonicalization_test: RuntimeError
+built_in_identifier_test: RuntimeError # Issue 28815
call_function_apply_test: RuntimeError
-callable_test/none: RuntimeError
canonical_const2_test: RuntimeError
check_member_static_test/02: MissingCompileTimeError
class_cycle_test/02: MissingCompileTimeError
class_cycle_test/03: MissingCompileTimeError
closure_invoked_through_interface_target_field_test: MissingCompileTimeError
closure_invoked_through_interface_target_getter_test: MissingCompileTimeError
-closure_self_reference_test: Crash # 'file:*/pkg/compiler/lib/src/ssa/nodes.dart': Failed assertion: line 641 pos 12: 'isClosed()': is not true.
compile_time_constant_o_test/01: MissingCompileTimeError
compile_time_constant_o_test/02: MissingCompileTimeError
conditional_import_string_test: RuntimeError
@@ -1343,22 +1186,21 @@
constructor_named_arguments_test/none: RuntimeError
constructor_redirect1_negative_test/01: Crash # Stack Overflow
constructor_redirect1_negative_test/none: MissingCompileTimeError
-constructor_redirect2_negative_test: Crash # Issue 30856
+constructor_redirect2_negative_test: Crash # Stack Overflow
constructor_redirect2_test/01: MissingCompileTimeError
constructor_redirect_test/01: Crash # Assertion failure: Cannot find value Instance of 'ThisLocal' in (local(A.named2#x), local(A.named2#y), local(A.named2#z)) for j:constructor(A.named2).
+covariance_setter_test/none: Crash # NoSuchMethodError: The method 'hasSubclass' was called on null.
+covariance_type_parameter_test/01: Crash # NoSuchMethodError: The method 'hasSubclass' was called on null.
+covariance_type_parameter_test/02: Crash # NoSuchMethodError: The method 'hasSubclass' was called on null.
+covariance_type_parameter_test/03: Crash # NoSuchMethodError: The method 'hasSubclass' was called on null.
+covariance_type_parameter_test/none: Crash # NoSuchMethodError: The method 'hasSubclass' was called on null.
covariant_override/runtime_check_test: RuntimeError
-covariant_subtyping_tearoff1_test: RuntimeError
-covariant_subtyping_tearoff2_test: RuntimeError
-covariant_subtyping_tearoff3_test: RuntimeError
-covariant_subtyping_test: CompileTimeError
-covariant_subtyping_unsafe_call1_test: RuntimeError
-covariant_subtyping_unsafe_call2_test: RuntimeError
-covariant_subtyping_unsafe_call3_test: RuntimeError
-cyclic_constructor_test/01: Crash # Issue 30856
+covariant_subtyping_test: Crash # Unsupported operation: Unsupported type parameter type node E.
+cyclic_constructor_test/01: Crash # Stack Overflow
deferred_closurize_load_library_test: RuntimeError
-deferred_constraints_constants_test/default_argument2: Crash # Assertion failure: Missing scope info for j:method(_loadLibraryWrapper).
-deferred_constraints_constants_test/none: Crash # Assertion failure: Missing scope info for j:method(_loadLibraryWrapper).
-deferred_constraints_constants_test/reference_after_load: Crash # Assertion failure: Missing scope info for j:method(_loadLibraryWrapper).
+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
@@ -1379,7 +1221,6 @@
deferred_load_library_wrong_args_test/01: MissingRuntimeError
deferred_not_loaded_check_test: RuntimeError
deferred_redirecting_factory_test: RuntimeError
-deferred_super_dependency_test/01: Crash # Assertion failure: Missing scope info for j:method(_loadLibraryWrapper).
double_int_to_string_test: RuntimeError
duplicate_export_negative_test: Fail
duplicate_implements_test/01: MissingCompileTimeError
@@ -1402,73 +1243,41 @@
field_override4_test/02: MissingCompileTimeError
final_attempt_reinitialization_test/01: MissingCompileTimeError
final_attempt_reinitialization_test/02: MissingCompileTimeError
-function_subtype_bound_closure3_test: RuntimeError
-function_subtype_bound_closure4_test: RuntimeError
-function_subtype_bound_closure7_test: RuntimeError
-function_subtype_call1_test: RuntimeError
-function_subtype_call2_test: RuntimeError
-function_subtype_cast1_test: RuntimeError
-function_subtype_checked0_test: RuntimeError
-function_subtype_closure0_test: RuntimeError
-function_subtype_closure1_test: RuntimeError
-function_subtype_factory1_test: RuntimeError
-function_subtype_inline1_test: RuntimeError
-function_subtype_inline2_test: RuntimeError
-function_subtype_named1_test: RuntimeError
-function_subtype_named2_test: RuntimeError
-function_subtype_not1_test: RuntimeError
-function_subtype_optional1_test: RuntimeError
-function_subtype_optional2_test: RuntimeError
-function_subtype_regression_ddc_588_test: RuntimeError
-function_subtype_setter0_test: RuntimeError
-function_subtype_typearg2_test: RuntimeError
-function_subtype_typearg3_test: RuntimeError
-function_subtype_typearg5_test: RuntimeError
-function_type2_test: RuntimeError
-function_type_alias2_test: RuntimeError
function_type_alias_test: RuntimeError
-function_type_call_getter2_test/none: RuntimeError
-function_type_test: RuntimeError
generalized_void_syntax_test: CompileTimeError
generic_closure_test/01: RuntimeError
generic_closure_test/none: RuntimeError
-generic_field_mixin4_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in ()in j:constructor(C3.).
-generic_field_mixin5_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in ()in j:constructor(C3.).
-generic_field_mixin6_test/none: RuntimeError
-generic_field_mixin_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in ()in j:constructor(C3.).
+generic_field_mixin4_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in () for j:constructor(C3.).
+generic_field_mixin5_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in () for j:constructor(C3.).
+generic_field_mixin_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in () for j:constructor(C3.).
generic_function_bounds_test: Crash # Unsupported operation: Unsupported type parameter type node T.
generic_function_dcall_test: Crash # Unsupported operation: Unsupported type parameter type node T.
generic_function_typedef_test/01: RuntimeError
generic_instanceof_test: RuntimeError
-generic_list_checked_test: RuntimeError
generic_local_functions_test: Crash # Unsupported operation: Unsupported type parameter type node Y.
generic_methods_closure_test: Crash # Unsupported operation: Unsupported type parameter type node S.
generic_methods_shadowing_test: Crash # Unsupported operation: Unsupported type parameter type node T.
generic_tearoff_test: Crash # Unsupported operation: Unsupported type parameter type node T.
-generic_test: RuntimeError
generic_typedef_test: Crash # Unsupported operation: Unsupported type parameter type node S.
getter_override2_test/02: MissingCompileTimeError
getter_override_test/00: MissingCompileTimeError
getter_override_test/01: MissingCompileTimeError
getter_override_test/02: MissingCompileTimeError
-getters_setters2_test/01: RuntimeError
-getters_setters2_test/none: RuntimeError
identical_closure2_test: RuntimeError
-if_null_precedence_test/none: RuntimeError
-inferrer_synthesized_constructor_test: RuntimeError
-infinite_switch_label_test: Crash # 'file:*/pkg/compiler/lib/src/ssa/locals_handler.dart': Failed assertion: line 296 pos 12: 'local != null': is not true.
+implicit_downcast_during_assert_initializer_test: RuntimeError
+infinite_switch_label_test: Crash # NoSuchMethodError: The method 'generateBreak' was called on null.
infinity_test: RuntimeError
instance_creation_in_function_annotation_test: RuntimeError
instanceof2_test: RuntimeError
instanceof4_test/01: RuntimeError
instanceof4_test/none: RuntimeError
integer_division_by_zero_test: RuntimeError
-interface_test/00: Crash # 'package:front_end/src/fasta/kernel/body_builder.dart': Failed assertion: line 2218 pos 14: '!target.enclosingClass.isAbstract': is not true.
-internal_library_test/02: Crash # type 'DillLibraryBuilder' is not a subtype of type 'SourceLibraryBuilder<KernelTypeBuilder, Library>' of 'value' where
+internal_library_test/02: Crash # NoSuchMethodError: Class 'DillLibraryBuilder' has no instance getter 'mixinApplicationClasses'.
invocation_mirror2_test: RuntimeError
issue21079_test: RuntimeError
issue23244_test: RuntimeError
left_shift_test: RuntimeError
+library_env_test/has_mirror_support: RuntimeError
list_literal1_test/01: MissingCompileTimeError
list_literal4_test/00: MissingCompileTimeError
list_literal4_test/01: MissingCompileTimeError
@@ -1480,6 +1289,7 @@
list_literal_syntax_test/03: MissingCompileTimeError
malformed2_test/00: MissingCompileTimeError
many_generic_instanceof_test: RuntimeError
+map_literal1_test/01: MissingCompileTimeError
map_literal8_test: RuntimeError
method_override7_test/00: MissingCompileTimeError
method_override7_test/01: MissingCompileTimeError
@@ -1542,7 +1352,7 @@
mixin_mixin_bound2_test: RuntimeError
mixin_mixin_bound_test: RuntimeError
mixin_mixin_test: RuntimeError
-mixin_mixin_type_arguments_test: RuntimeError
+mixin_mixin_type_arguments_test: Crash # NoSuchMethodError: The method 'hasSubclass' was called on null.
mixin_of_mixin_test/none: CompileTimeError
mixin_super_2_test/none: CompileTimeError
mixin_super_constructor_named_test/01: MissingCompileTimeError
@@ -1579,425 +1389,8 @@
named_parameters_default_eq_test/02: MissingCompileTimeError
nan_identical_test: RuntimeError
nested_generic_closure_test: Crash # Unsupported operation: Unsupported type parameter type node F.
-nested_switch_label_test: Crash # 'file:*/pkg/compiler/lib/src/ssa/locals_handler.dart': Failed assertion: line 296 pos 12: 'local != null': is not true.
-no_main_test/01: CompileTimeError
-not_enough_positional_arguments_test/00: MissingCompileTimeError
-not_enough_positional_arguments_test/01: MissingCompileTimeError
-not_enough_positional_arguments_test/02: MissingCompileTimeError
-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/02: MissingCompileTimeError
-null_test/03: MissingCompileTimeError
-null_test/mirrors: RuntimeError
-null_test/none: RuntimeError
-number_identity2_test: RuntimeError
-numbers_test: RuntimeError
-override_field_method1_negative_test: Fail
-override_field_method2_negative_test: Fail
-override_field_method4_negative_test: Fail
-override_field_method5_negative_test: Fail
-override_field_test/01: MissingCompileTimeError
-override_inheritance_mixed_test/01: MissingCompileTimeError
-override_inheritance_mixed_test/02: MissingCompileTimeError
-override_inheritance_mixed_test/03: MissingCompileTimeError
-override_inheritance_mixed_test/04: MissingCompileTimeError
-override_inheritance_mixed_test/08: MissingCompileTimeError
-override_inheritance_mixed_test/09: MissingCompileTimeError
-override_method_with_field_test/01: MissingCompileTimeError
-positional_parameters_type_test/01: MissingCompileTimeError
-positional_parameters_type_test/02: MissingCompileTimeError
-private_super_constructor_test/01: MissingCompileTimeError
-redirecting_factory_default_values_test/01: MissingCompileTimeError
-redirecting_factory_default_values_test/02: MissingCompileTimeError
-redirecting_factory_long_test: RuntimeError
-redirecting_factory_reflection_test: RuntimeError
-regress_20394_test/01: MissingCompileTimeError
-regress_22976_test/01: CompileTimeError
-regress_22976_test/02: CompileTimeError
-regress_22976_test/none: CompileTimeError
-regress_23408_test: Crash # Assertion failure: Missing scope info for j:method(_loadLibraryWrapper).
-regress_24283_test: RuntimeError
-regress_27617_test/1: Crash # Assertion failure: Unexpected constructor j:constructor(Foo._) in ConstructorDataImpl._getConstructorConstant
-regress_28217_test/01: MissingCompileTimeError
-regress_28217_test/none: MissingCompileTimeError
-regress_28255_test: RuntimeError
-regress_28341_test: RuntimeError
-regress_29784_test/01: Crash # Assertion failure: Cannot find value Instance of 'ThisLocal' in () for j:constructor(A.ok).
-regress_29784_test/02: MissingCompileTimeError # Issue 29784
-regress_31057_test: Crash # Unsupported operation: Unsupported type parameter type node B.
-setter_override_test/00: MissingCompileTimeError
-setter_override_test/03: MissingCompileTimeError
-stacktrace_demangle_ctors_test: RuntimeError
-stacktrace_test: RuntimeError
-super_call4_test: Crash # Assertion failure: Missing scope info for j:method(E.boz).
-switch_bad_case_test/01: MissingCompileTimeError
-switch_bad_case_test/02: MissingCompileTimeError
-switch_case_test/00: MissingCompileTimeError
-switch_case_test/01: MissingCompileTimeError
-switch_case_test/02: MissingCompileTimeError
-symbol_literal_test/01: MissingCompileTimeError
-syntax_test/28: MissingCompileTimeError
-syntax_test/29: MissingCompileTimeError
-syntax_test/30: MissingCompileTimeError
-syntax_test/31: MissingCompileTimeError
-syntax_test/32: MissingCompileTimeError
-syntax_test/33: MissingCompileTimeError
-tearoff_dynamic_test: Crash # Unsupported operation: Unsupported type parameter type node T.
-truncdiv_test: RuntimeError
-try_catch_test/01: MissingCompileTimeError
-type_literal_test: Crash # 'file:*/pkg/compiler/lib/src/kernel/element_map_mixins.dart': Failed assertion: line 673 pos 14: 'functionType.typedef != null': is not true.
-typevariable_substitution2_test/02: RuntimeError
-
-[ $compiler == dart2js && $dart2js_with_kernel && $minified ]
-arithmetic_canonicalization_test: RuntimeError
-assertion_initializer_const_function_test/01: MissingCompileTimeError
-assertion_initializer_test: CompileTimeError
-assertion_test: RuntimeError
-async_star_cancel_while_paused_test: RuntimeError
-async_star_test/02: RuntimeError
-bad_override_test/03: MissingCompileTimeError
-bad_override_test/04: MissingCompileTimeError
-bad_override_test/05: MissingCompileTimeError
-bit_operations_test: RuntimeError
-bool_check_test: RuntimeError
-bool_condition_check_test: RuntimeError
-branch_canonicalization_test: RuntimeError
-call_function_apply_test: RuntimeError
-callable_test/none: RuntimeError
-canonical_const2_test: RuntimeError
-check_member_static_test/02: MissingCompileTimeError
-class_cycle_test/02: MissingCompileTimeError
-class_cycle_test/03: MissingCompileTimeError
-closure_invoked_through_interface_target_field_test: MissingCompileTimeError
-closure_invoked_through_interface_target_getter_test: MissingCompileTimeError
-compile_time_constant_o_test/01: MissingCompileTimeError
-compile_time_constant_o_test/02: MissingCompileTimeError
-conditional_import_string_test: RuntimeError
-conditional_import_test: RuntimeError
-conditional_method_invocation_test/05: MissingCompileTimeError
-conditional_method_invocation_test/06: MissingCompileTimeError
-conditional_method_invocation_test/07: MissingCompileTimeError
-conditional_method_invocation_test/08: MissingCompileTimeError
-conditional_method_invocation_test/12: MissingCompileTimeError
-conditional_method_invocation_test/13: MissingCompileTimeError
-conditional_method_invocation_test/18: MissingCompileTimeError
-conditional_method_invocation_test/19: MissingCompileTimeError
-conditional_property_access_test/04: MissingCompileTimeError
-conditional_property_access_test/05: MissingCompileTimeError
-conditional_property_access_test/06: MissingCompileTimeError
-conditional_property_access_test/10: MissingCompileTimeError
-conditional_property_access_test/11: MissingCompileTimeError
-conditional_property_access_test/16: MissingCompileTimeError
-conditional_property_access_test/17: MissingCompileTimeError
-conditional_property_assignment_test/04: MissingCompileTimeError
-conditional_property_assignment_test/05: MissingCompileTimeError
-conditional_property_assignment_test/06: MissingCompileTimeError
-conditional_property_assignment_test/10: MissingCompileTimeError
-conditional_property_assignment_test/11: MissingCompileTimeError
-conditional_property_assignment_test/12: MissingCompileTimeError
-conditional_property_assignment_test/13: MissingCompileTimeError
-conditional_property_assignment_test/27: MissingCompileTimeError
-conditional_property_assignment_test/28: MissingCompileTimeError
-conditional_property_assignment_test/32: MissingCompileTimeError
-conditional_property_assignment_test/33: MissingCompileTimeError
-conditional_property_assignment_test/34: MissingCompileTimeError
-conditional_property_assignment_test/35: MissingCompileTimeError
-conditional_property_increment_decrement_test/04: MissingCompileTimeError
-conditional_property_increment_decrement_test/08: MissingCompileTimeError
-conditional_property_increment_decrement_test/12: MissingCompileTimeError
-conditional_property_increment_decrement_test/16: MissingCompileTimeError
-conditional_property_increment_decrement_test/21: MissingCompileTimeError
-conditional_property_increment_decrement_test/22: MissingCompileTimeError
-conditional_property_increment_decrement_test/27: MissingCompileTimeError
-conditional_property_increment_decrement_test/28: MissingCompileTimeError
-conditional_property_increment_decrement_test/33: MissingCompileTimeError
-conditional_property_increment_decrement_test/34: MissingCompileTimeError
-conditional_property_increment_decrement_test/39: MissingCompileTimeError
-conditional_property_increment_decrement_test/40: MissingCompileTimeError
-config_import_corelib_test: RuntimeError
-config_import_test: RuntimeError
-const_constructor2_test/05: MissingCompileTimeError
-const_constructor2_test/06: MissingCompileTimeError
-const_constructor2_test/13: MissingCompileTimeError
-const_constructor2_test/14: MissingCompileTimeError
-const_constructor2_test/15: MissingCompileTimeError
-const_constructor2_test/16: MissingCompileTimeError
-const_constructor2_test/17: MissingCompileTimeError
-const_constructor2_test/18: MissingCompileTimeError
-const_constructor2_test/20: MissingCompileTimeError
-const_constructor2_test/22: MissingCompileTimeError
-const_constructor2_test/24: MissingCompileTimeError
-const_constructor3_test/02: MissingCompileTimeError
-const_constructor3_test/04: MissingCompileTimeError
-const_dynamic_type_literal_test/02: MissingCompileTimeError
-const_error_multiply_initialized_test/02: MissingCompileTimeError
-const_error_multiply_initialized_test/04: MissingCompileTimeError
-const_evaluation_test/01: RuntimeError
-const_factory_with_body_test/01: MissingCompileTimeError
-const_init2_test/02: MissingCompileTimeError
-const_instance_field_test/01: MissingCompileTimeError
-const_map2_test/00: MissingCompileTimeError
-const_map3_test/00: MissingCompileTimeError
-const_switch2_test/01: MissingCompileTimeError
-const_switch_test/02: RuntimeError
-const_switch_test/04: RuntimeError
-const_types_test/01: MissingCompileTimeError
-const_types_test/02: MissingCompileTimeError
-const_types_test/03: MissingCompileTimeError
-const_types_test/04: MissingCompileTimeError
-const_types_test/05: MissingCompileTimeError
-const_types_test/06: MissingCompileTimeError
-const_types_test/13: MissingCompileTimeError
-const_types_test/34: MissingCompileTimeError
-const_types_test/35: MissingCompileTimeError
-const_types_test/39: MissingCompileTimeError
-const_types_test/40: MissingCompileTimeError
-constants_test/05: MissingCompileTimeError
-constructor_duplicate_final_test/01: MissingCompileTimeError
-constructor_duplicate_final_test/02: MissingCompileTimeError
-constructor_named_arguments_test/01: MissingCompileTimeError
-constructor_named_arguments_test/none: RuntimeError
-constructor_redirect1_negative_test/01: Crash # Stack Overflow
-constructor_redirect1_negative_test/none: MissingCompileTimeError
-constructor_redirect2_negative_test: Crash # Issue 30856
-constructor_redirect2_test/01: MissingCompileTimeError
-constructor_redirect_test/01: Crash # Assertion failure: Cannot find value Instance of 'ThisLocal' in (local(A.named2#x), local(A.named2#y), local(A.named2#z)) for j:constructor(A.named2).
-covariant_override/runtime_check_test: RuntimeError
-covariant_subtyping_tearoff1_test: RuntimeError
-covariant_subtyping_tearoff2_test: RuntimeError
-covariant_subtyping_tearoff3_test: RuntimeError
-covariant_subtyping_test: Crash # Unsupported operation: Unsupported type parameter type node E.
-covariant_subtyping_unsafe_call1_test: RuntimeError
-covariant_subtyping_unsafe_call2_test: RuntimeError
-covariant_subtyping_unsafe_call3_test: RuntimeError
-cyclic_constructor_test/01: Crash # Issue 30856
-deferred_closurize_load_library_test: RuntimeError
-deferred_constraints_constants_test/default_argument2: Crash # NoSuchMethodError: The getter 'closureClassEntity' was called on null.
-deferred_constraints_constants_test/none: Crash # NoSuchMethodError: The getter 'closureClassEntity' was called on null.
-deferred_constraints_constants_test/reference_after_load: Crash # NoSuchMethodError: The getter 'closureClassEntity' was called on null.
-deferred_constraints_type_annotation_test/as_operation: MissingCompileTimeError
-deferred_constraints_type_annotation_test/catch_check: MissingCompileTimeError
-deferred_constraints_type_annotation_test/is_check: MissingCompileTimeError
-deferred_constraints_type_annotation_test/new_before_load: MissingCompileTimeError
-deferred_constraints_type_annotation_test/new_generic2: MissingCompileTimeError
-deferred_constraints_type_annotation_test/new_generic3: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation1: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_generic1: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_generic2: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_generic3: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_generic4: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_null: MissingCompileTimeError
-deferred_constraints_type_annotation_test/type_annotation_top_level: MissingCompileTimeError
-deferred_inheritance_constraints_test/extends: MissingCompileTimeError
-deferred_inheritance_constraints_test/implements: MissingCompileTimeError
-deferred_inheritance_constraints_test/mixin: MissingCompileTimeError
-deferred_load_constants_test/none: RuntimeError
-deferred_load_library_wrong_args_test/01: MissingRuntimeError
-deferred_not_loaded_check_test: RuntimeError
-deferred_redirecting_factory_test: RuntimeError
-deferred_super_dependency_test/01: Crash # NoSuchMethodError: The getter 'closureClassEntity' was called on null.
-double_int_to_string_test: RuntimeError
-duplicate_export_negative_test: Fail
-duplicate_implements_test/01: MissingCompileTimeError
-duplicate_implements_test/02: MissingCompileTimeError
-duplicate_implements_test/03: MissingCompileTimeError
-duplicate_implements_test/04: MissingCompileTimeError
-dynamic_prefix_core_test/none: RuntimeError
-enum_mirror_test: RuntimeError
-expect_test: RuntimeError
-external_test/10: MissingRuntimeError
-external_test/13: MissingRuntimeError
-external_test/20: MissingRuntimeError
-f_bounded_quantification4_test: RuntimeError
-factory_redirection_test/07: MissingCompileTimeError
-fauxverride_test/03: MissingCompileTimeError
-fauxverride_test/05: MissingCompileTimeError
-field_override3_test/00: MissingCompileTimeError
-field_override3_test/01: MissingCompileTimeError
-field_override3_test/02: MissingCompileTimeError
-field_override3_test/03: MissingCompileTimeError
-field_override4_test/02: MissingCompileTimeError
-final_attempt_reinitialization_test/01: MissingCompileTimeError
-final_attempt_reinitialization_test/02: MissingCompileTimeError
-full_stacktrace1_test: RuntimeError
-full_stacktrace2_test: RuntimeError
-full_stacktrace3_test: RuntimeError
-function_subtype_bound_closure3_test: RuntimeError
-function_subtype_bound_closure4_test: RuntimeError
-function_subtype_bound_closure7_test: RuntimeError
-function_subtype_call1_test: RuntimeError
-function_subtype_call2_test: RuntimeError
-function_subtype_cast1_test: RuntimeError
-function_subtype_checked0_test: RuntimeError
-function_subtype_closure0_test: RuntimeError
-function_subtype_closure1_test: RuntimeError
-function_subtype_factory1_test: RuntimeError
-function_subtype_inline1_test: RuntimeError
-function_subtype_inline2_test: RuntimeError
-function_subtype_named1_test: RuntimeError
-function_subtype_named2_test: RuntimeError
-function_subtype_not1_test: RuntimeError
-function_subtype_optional1_test: RuntimeError
-function_subtype_optional2_test: RuntimeError
-function_subtype_regression_ddc_588_test: RuntimeError
-function_subtype_setter0_test: RuntimeError
-function_subtype_typearg2_test: RuntimeError
-function_subtype_typearg3_test: RuntimeError
-function_subtype_typearg5_test: RuntimeError
-function_type2_test: RuntimeError
-function_type_alias2_test: RuntimeError
-function_type_alias_test: RuntimeError
-function_type_call_getter2_test/none: RuntimeError
-function_type_test: RuntimeError
-generalized_void_syntax_test: CompileTimeError
-generic_field_mixin4_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in ()in j:constructor(C3.).
-generic_field_mixin5_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in ()in j:constructor(C3.).
-generic_field_mixin6_test/none: RuntimeError
-generic_field_mixin_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in ()in j:constructor(C3.).
-generic_function_bounds_test: Crash # Unsupported operation: Unsupported type parameter type node T.
-generic_function_dcall_test: Crash # Unsupported operation: Unsupported type parameter type node T.
-generic_function_typedef_test/01: RuntimeError
-generic_instanceof_test: RuntimeError
-generic_list_checked_test: RuntimeError
-generic_local_functions_test: Crash # Unsupported operation: Unsupported type parameter type node Y.
-generic_methods_closure_test: Crash # Unsupported operation: Unsupported type parameter type node S.
-generic_methods_shadowing_test: Crash # Unsupported operation: Unsupported type parameter type node T.
-generic_tearoff_test: Crash # Unsupported operation: Unsupported type parameter type node T.
-generic_test: RuntimeError
-generic_typedef_test: Crash # Unsupported operation: Unsupported type parameter type node S.
-getter_override2_test/02: MissingCompileTimeError
-getter_override_test/00: MissingCompileTimeError
-getter_override_test/01: MissingCompileTimeError
-getter_override_test/02: MissingCompileTimeError
-getters_setters2_test/01: RuntimeError
-getters_setters2_test/none: RuntimeError
-identical_closure2_test: RuntimeError
-if_null_precedence_test/none: RuntimeError
-inferrer_synthesized_constructor_test: RuntimeError
-infinite_switch_label_test: Crash # NoSuchMethodError: The method 'generateBreak' was called on null.
-infinity_test: RuntimeError
-instance_creation_in_function_annotation_test: RuntimeError
-instanceof2_test: RuntimeError
-instanceof4_test/01: RuntimeError
-instanceof4_test/none: RuntimeError
-integer_division_by_zero_test: RuntimeError
-internal_library_test/02: Crash # NoSuchMethodError: Class 'DillLibraryBuilder' has no instance getter 'mixinApplicationClasses'.
-invocation_mirror2_test: RuntimeError
-invocation_mirror_test: RuntimeError
-issue21079_test: RuntimeError
-issue23244_test: RuntimeError
-left_shift_test: RuntimeError
-list_literal1_test/01: MissingCompileTimeError
-list_literal4_test/00: MissingCompileTimeError
-list_literal4_test/01: MissingCompileTimeError
-list_literal4_test/03: MissingCompileTimeError
-list_literal4_test/04: MissingCompileTimeError
-list_literal4_test/05: MissingCompileTimeError
-list_literal_syntax_test/01: MissingCompileTimeError
-list_literal_syntax_test/02: MissingCompileTimeError
-list_literal_syntax_test/03: MissingCompileTimeError
-malformed2_test/00: MissingCompileTimeError
-many_generic_instanceof_test: RuntimeError
-map_literal8_test: RuntimeError
-method_override7_test/00: MissingCompileTimeError
-method_override7_test/01: MissingCompileTimeError
-method_override7_test/02: MissingCompileTimeError
-method_override8_test/00: MissingCompileTimeError
-method_override8_test/01: MissingCompileTimeError
-mint_arithmetic_test: RuntimeError
-mixin_black_listed_test/02: MissingCompileTimeError
-mixin_forwarding_constructor4_test/01: MissingCompileTimeError
-mixin_forwarding_constructor4_test/02: MissingCompileTimeError
-mixin_forwarding_constructor4_test/03: MissingCompileTimeError
-mixin_generic_test: RuntimeError
-mixin_illegal_super_use_test/01: MissingCompileTimeError
-mixin_illegal_super_use_test/02: MissingCompileTimeError
-mixin_illegal_super_use_test/03: MissingCompileTimeError
-mixin_illegal_super_use_test/04: MissingCompileTimeError
-mixin_illegal_super_use_test/05: MissingCompileTimeError
-mixin_illegal_super_use_test/06: MissingCompileTimeError
-mixin_illegal_super_use_test/07: MissingCompileTimeError
-mixin_illegal_super_use_test/08: MissingCompileTimeError
-mixin_illegal_super_use_test/09: MissingCompileTimeError
-mixin_illegal_super_use_test/10: MissingCompileTimeError
-mixin_illegal_super_use_test/11: MissingCompileTimeError
-mixin_illegal_superclass_test/01: MissingCompileTimeError
-mixin_illegal_superclass_test/02: MissingCompileTimeError
-mixin_illegal_superclass_test/03: MissingCompileTimeError
-mixin_illegal_superclass_test/04: MissingCompileTimeError
-mixin_illegal_superclass_test/05: MissingCompileTimeError
-mixin_illegal_superclass_test/06: MissingCompileTimeError
-mixin_illegal_superclass_test/07: MissingCompileTimeError
-mixin_illegal_superclass_test/08: MissingCompileTimeError
-mixin_illegal_superclass_test/09: MissingCompileTimeError
-mixin_illegal_superclass_test/10: MissingCompileTimeError
-mixin_illegal_superclass_test/11: MissingCompileTimeError
-mixin_illegal_superclass_test/12: MissingCompileTimeError
-mixin_illegal_superclass_test/13: MissingCompileTimeError
-mixin_illegal_superclass_test/14: MissingCompileTimeError
-mixin_illegal_superclass_test/15: MissingCompileTimeError
-mixin_illegal_superclass_test/16: MissingCompileTimeError
-mixin_illegal_superclass_test/17: MissingCompileTimeError
-mixin_illegal_superclass_test/18: MissingCompileTimeError
-mixin_illegal_superclass_test/19: MissingCompileTimeError
-mixin_illegal_superclass_test/20: MissingCompileTimeError
-mixin_illegal_superclass_test/21: MissingCompileTimeError
-mixin_illegal_superclass_test/22: MissingCompileTimeError
-mixin_illegal_superclass_test/23: MissingCompileTimeError
-mixin_illegal_superclass_test/24: MissingCompileTimeError
-mixin_illegal_superclass_test/25: MissingCompileTimeError
-mixin_illegal_superclass_test/26: MissingCompileTimeError
-mixin_illegal_superclass_test/27: MissingCompileTimeError
-mixin_illegal_superclass_test/28: MissingCompileTimeError
-mixin_illegal_superclass_test/29: MissingCompileTimeError
-mixin_illegal_superclass_test/30: MissingCompileTimeError
-mixin_issue10216_2_test: RuntimeError
-mixin_mixin7_test: RuntimeError
-mixin_mixin_test: RuntimeError
-mixin_mixin_type_arguments_test: RuntimeError
-mixin_of_mixin_test/none: CompileTimeError
-mixin_super_2_test/none: CompileTimeError
-mixin_super_constructor_named_test/01: MissingCompileTimeError
-mixin_super_constructor_positionals_test/01: MissingCompileTimeError
-mixin_super_test: CompileTimeError
-mixin_super_use_test: CompileTimeError
-mixin_superclass_test: CompileTimeError
-mixin_supertype_subclass2_test/01: CompileTimeError
-mixin_supertype_subclass2_test/02: CompileTimeError
-mixin_supertype_subclass2_test/03: CompileTimeError
-mixin_supertype_subclass2_test/04: CompileTimeError
-mixin_supertype_subclass2_test/05: CompileTimeError
-mixin_supertype_subclass2_test/none: CompileTimeError
-mixin_supertype_subclass3_test/01: CompileTimeError
-mixin_supertype_subclass3_test/02: CompileTimeError
-mixin_supertype_subclass3_test/03: CompileTimeError
-mixin_supertype_subclass3_test/04: CompileTimeError
-mixin_supertype_subclass3_test/05: CompileTimeError
-mixin_supertype_subclass3_test/none: CompileTimeError
-mixin_supertype_subclass4_test/01: CompileTimeError
-mixin_supertype_subclass4_test/02: CompileTimeError
-mixin_supertype_subclass4_test/03: CompileTimeError
-mixin_supertype_subclass4_test/04: CompileTimeError
-mixin_supertype_subclass4_test/05: CompileTimeError
-mixin_supertype_subclass4_test/none: CompileTimeError
-mixin_type_parameters_super_test: RuntimeError
-mock_writable_final_field_test: RuntimeError # Issue 30847
-mock_writable_final_private_field_test: RuntimeError # Issue 30847
-modulo_test: RuntimeError
-multiline_newline_test/04: MissingCompileTimeError
-multiline_newline_test/04r: MissingCompileTimeError
-multiline_newline_test/05: MissingCompileTimeError
-multiline_newline_test/05r: MissingCompileTimeError
-multiline_newline_test/06: MissingCompileTimeError
-multiline_newline_test/06r: MissingCompileTimeError
-named_parameters_default_eq_test/02: MissingCompileTimeError
-nan_identical_test: RuntimeError
-nested_generic_closure_test: Crash # Unsupported operation: Unsupported type parameter type node F.
nested_switch_label_test: Crash # NoSuchMethodError: The method 'generateBreak' was called on null.
no_main_test/01: CompileTimeError
-no_such_method_native_test: RuntimeError
not_enough_positional_arguments_test/00: MissingCompileTimeError
not_enough_positional_arguments_test/01: MissingCompileTimeError
not_enough_positional_arguments_test/02: MissingCompileTimeError
@@ -2031,27 +1424,23 @@
redirecting_factory_long_test: RuntimeError
redirecting_factory_reflection_test: RuntimeError
regress_20394_test/01: MissingCompileTimeError
-regress_21795_test: RuntimeError
regress_22976_test/01: CompileTimeError
regress_22976_test/02: CompileTimeError
regress_22976_test/none: CompileTimeError
-regress_23408_test: Crash # NoSuchMethodError: The getter 'closureClassEntity' was called on null.
-regress_24283_test: RuntimeError, OK # Requires 64 bit numbers.
+regress_24283_test: RuntimeError
regress_27617_test/1: Crash # Assertion failure: Unexpected constructor j:constructor(Foo._) in ConstructorDataImpl._getConstructorConstant
regress_28217_test/01: MissingCompileTimeError
regress_28217_test/none: MissingCompileTimeError
regress_28255_test: RuntimeError
regress_28341_test: RuntimeError
-regress_29784_test/01: Crash # Issue 29784
+regress_29405_test: RuntimeError
+regress_29784_test/01: Crash # Assertion failure: Cannot find value Instance of 'ThisLocal' in () for j:constructor(A.ok).
regress_29784_test/02: MissingCompileTimeError # Issue 29784
+regress_30339_test: RuntimeError # Issue 26429
regress_31057_test: Crash # Unsupported operation: Unsupported type parameter type node B.
setter_override_test/00: MissingCompileTimeError
setter_override_test/03: MissingCompileTimeError
-stack_trace_test: RuntimeError
stacktrace_demangle_ctors_test: RuntimeError
-stacktrace_rethrow_error_test/none: RuntimeError
-stacktrace_rethrow_error_test/withtraceparameter: RuntimeError
-stacktrace_rethrow_nonerror_test: RuntimeError
stacktrace_test: RuntimeError
super_call4_test: Crash # NoSuchMethodError: The getter 'thisLocal' was called on null.
switch_bad_case_test/01: MissingCompileTimeError
@@ -2059,7 +1448,6 @@
switch_case_test/00: MissingCompileTimeError
switch_case_test/01: MissingCompileTimeError
switch_case_test/02: MissingCompileTimeError
-symbol_conflict_test: RuntimeError
symbol_literal_test/01: MissingCompileTimeError
syntax_test/28: MissingCompileTimeError
syntax_test/29: MissingCompileTimeError
@@ -2070,8 +1458,171 @@
tearoff_dynamic_test: Crash # Unsupported operation: Unsupported type parameter type node T.
truncdiv_test: RuntimeError
try_catch_test/01: MissingCompileTimeError
+type_check_const_function_typedef2_test: MissingCompileTimeError
type_literal_test: RuntimeError
-typevariable_substitution2_test/02: RuntimeError
+type_parameter_test/06: Crash # Internal Error: Unexpected type variable in static context.
+type_parameter_test/09: Crash # Internal Error: Unexpected type variable in static context.
+type_variable_scope_test/03: Crash # Internal Error: Unexpected type variable in static context.
+
+[ $compiler == dart2js && $checked && $dart2js_with_kernel && $minified ]
+inline_super_field_test: Crash
+typedef_is_test: Crash
+
+[ $compiler == dart2js && $checked && !$dart2js_with_kernel ]
+async_return_types_test/nestedFuture: Fail # Issue 26429
+async_return_types_test/wrongTypeParameter: Fail # Issue 26429
+check_member_static_test/01: MissingCompileTimeError
+check_method_override_test/01: MissingCompileTimeError
+check_method_override_test/02: MissingCompileTimeError
+covariant_subtyping_test: CompileTimeError
+default_factory2_test/01: Fail # Issue 14121
+function_malformed_result_type_test/00: MissingCompileTimeError
+function_type_alias_test: RuntimeError
+function_type_call_getter2_test/00: MissingCompileTimeError
+function_type_call_getter2_test/01: MissingCompileTimeError
+function_type_call_getter2_test/02: MissingCompileTimeError
+function_type_call_getter2_test/03: MissingCompileTimeError
+function_type_call_getter2_test/04: MissingCompileTimeError
+function_type_call_getter2_test/05: MissingCompileTimeError
+malbounded_instantiation_test/01: Fail # Issue 12702
+malbounded_redirecting_factory_test/02: Fail # Issue 12825
+malbounded_redirecting_factory_test/03: Fail # Issue 12825
+malbounded_type_cast2_test: Fail # Issue 14121
+malbounded_type_cast_test: Fail # Issue 14121
+malbounded_type_test_test/03: Fail # Issue 14121
+malbounded_type_test_test/04: Fail # Issue 14121
+regress_26133_test: RuntimeError # Issue 26429
+regress_29405_test: Fail # Issue 29422
+
+[ $compiler == dart2js && !$checked ]
+covariance_field_test/01: RuntimeError
+covariance_field_test/02: RuntimeError
+covariance_field_test/03: RuntimeError
+covariance_field_test/04: RuntimeError
+covariance_field_test/05: RuntimeError
+covariance_method_test/01: RuntimeError
+covariance_method_test/02: RuntimeError
+covariance_method_test/03: RuntimeError
+covariance_method_test/04: RuntimeError
+covariance_method_test/05: RuntimeError
+covariance_method_test/06: RuntimeError
+covariance_setter_test/01: RuntimeError
+covariance_setter_test/02: RuntimeError
+covariance_setter_test/03: RuntimeError
+covariance_setter_test/04: RuntimeError
+covariance_setter_test/05: RuntimeError
+recursive_mixin_test: RuntimeError # no check without --checked
+type_argument_in_super_type_test: RuntimeError
+type_check_const_function_typedef2_test: MissingCompileTimeError
+
+[ $compiler == dart2js && !$checked && $dart2js_with_kernel ]
+assertion_initializer_const_error2_test/*: CompileTimeError # Issue #31321
+assertion_initializer_const_error2_test/none: Pass
+cascaded_forwarding_stubs_generic_test: RuntimeError
+cascaded_forwarding_stubs_test: RuntimeError
+checked_setter3_test: RuntimeError # Issue 31128
+forwarding_stub_tearoff_generic_test: RuntimeError
+forwarding_stub_tearoff_test: RuntimeError
+implicit_downcast_during_assignment_test: RuntimeError
+implicit_downcast_during_combiner_test: RuntimeError
+implicit_downcast_during_compound_assignment_test: RuntimeError
+implicit_downcast_during_conditional_expression_test: RuntimeError
+implicit_downcast_during_constructor_initializer_test: RuntimeError
+implicit_downcast_during_do_test: RuntimeError
+implicit_downcast_during_factory_constructor_invocation_test: RuntimeError
+implicit_downcast_during_field_declaration_test: RuntimeError
+implicit_downcast_during_for_condition_test: RuntimeError
+implicit_downcast_during_for_initializer_expression_test: RuntimeError
+implicit_downcast_during_for_initializer_var_test: RuntimeError
+implicit_downcast_during_if_null_assignment_test: RuntimeError
+implicit_downcast_during_if_statement_test: RuntimeError
+implicit_downcast_during_indexed_assignment_test: RuntimeError
+implicit_downcast_during_indexed_compound_assignment_test: RuntimeError
+implicit_downcast_during_indexed_get_test: RuntimeError
+implicit_downcast_during_indexed_if_null_assignment_test: RuntimeError
+implicit_downcast_during_logical_expression_test: RuntimeError
+implicit_downcast_during_map_literal_test: RuntimeError
+implicit_downcast_during_method_invocation_test: RuntimeError
+implicit_downcast_during_not_test: RuntimeError
+implicit_downcast_during_null_aware_method_invocation_test: RuntimeError
+implicit_downcast_during_return_test: RuntimeError
+implicit_downcast_during_static_method_invocation_test: RuntimeError
+implicit_downcast_during_super_method_invocation_test: RuntimeError
+implicit_downcast_during_variable_declaration_test: RuntimeError
+implicit_downcast_during_while_statement_test: RuntimeError
+
+[ $compiler == dart2js && !$checked && !$dart2js_with_kernel ]
+bool_check_test: RuntimeError # Issue 29647
+bool_condition_check_test: RuntimeError
+const_constructor2_test/13: MissingCompileTimeError
+const_constructor2_test/14: MissingCompileTimeError
+const_constructor2_test/15: MissingCompileTimeError
+const_constructor2_test/16: MissingCompileTimeError
+const_constructor2_test/17: MissingCompileTimeError
+const_constructor2_test/18: MissingCompileTimeError
+const_constructor2_test/20: MissingCompileTimeError
+const_constructor2_test/22: MissingCompileTimeError
+const_constructor2_test/24: MissingCompileTimeError
+const_constructor3_test/02: MissingCompileTimeError
+const_constructor3_test/04: MissingCompileTimeError
+const_init2_test/02: MissingCompileTimeError
+forwarding_stub_tearoff_generic_test: RuntimeError
+forwarding_stub_tearoff_test: RuntimeError
+function_subtype_inline2_test: RuntimeError
+generic_test: RuntimeError, OK
+list_literal1_test/01: MissingCompileTimeError
+
+[ $compiler == dart2js && !$checked && !$dart2js_with_kernel && $minified ]
+function_subtype_inline2_test: RuntimeError
+
+[ $compiler == dart2js && $dart2js_with_kernel ]
+bug31436_test: RuntimeError
+built_in_identifier_type_annotation_test/22: Crash # Issue 28815
+built_in_identifier_type_annotation_test/52: MissingCompileTimeError # Issue 28815
+built_in_identifier_type_annotation_test/53: MissingCompileTimeError # Issue 28815
+built_in_identifier_type_annotation_test/54: MissingCompileTimeError # Issue 28815
+built_in_identifier_type_annotation_test/55: MissingCompileTimeError # Issue 28815
+built_in_identifier_type_annotation_test/57: MissingCompileTimeError # Issue 28815
+built_in_identifier_type_annotation_test/58: MissingCompileTimeError # Issue 28815
+built_in_identifier_type_annotation_test/59: MissingCompileTimeError # Issue 28815
+built_in_identifier_type_annotation_test/60: MissingCompileTimeError # Issue 28815
+built_in_identifier_type_annotation_test/61: MissingCompileTimeError # Issue 28815
+built_in_identifier_type_annotation_test/62: MissingCompileTimeError # Issue 28815
+built_in_identifier_type_annotation_test/63: MissingCompileTimeError # Issue 28815
+built_in_identifier_type_annotation_test/64: MissingCompileTimeError # Issue 28815
+built_in_identifier_type_annotation_test/65: MissingCompileTimeError # Issue 28815
+built_in_identifier_type_annotation_test/66: MissingCompileTimeError # Issue 28815
+built_in_identifier_type_annotation_test/67: MissingCompileTimeError # Issue 28815
+built_in_identifier_type_annotation_test/68: MissingCompileTimeError # Issue 28815
+checked_setter2_test: RuntimeError # Issue 31128
+checked_setter_test: RuntimeError # Issue 31128
+closure_param_null_to_object_test: RuntimeError
+extract_type_arguments_test: Crash # Issue 31371
+implicit_downcast_during_constructor_invocation_test: RuntimeError
+implicit_downcast_during_for_in_element_test: RuntimeError
+implicit_downcast_during_for_in_iterable_test: RuntimeError
+implicit_downcast_during_function_literal_arrow_test: RuntimeError
+implicit_downcast_during_function_literal_return_test: RuntimeError
+implicit_downcast_during_invocation_test: RuntimeError
+implicit_downcast_during_list_literal_test: RuntimeError
+implicit_downcast_during_redirecting_initializer_test: RuntimeError
+implicit_downcast_during_return_async_test: RuntimeError
+implicit_downcast_during_super_initializer_test: RuntimeError
+implicit_downcast_during_yield_star_test: RuntimeError
+implicit_downcast_during_yield_test: RuntimeError
+invalid_cast_test/01: MissingCompileTimeError
+invalid_cast_test/02: MissingCompileTimeError
+invalid_cast_test/03: MissingCompileTimeError
+invalid_cast_test/04: MissingCompileTimeError
+invalid_cast_test/07: MissingCompileTimeError
+invalid_cast_test/08: MissingCompileTimeError
+invalid_cast_test/09: MissingCompileTimeError
+invalid_cast_test/10: MissingCompileTimeError
+invalid_cast_test/11: MissingCompileTimeError
+library_env_test/has_no_mirror_support: Pass
+object_has_no_call_method_test/02: MissingCompileTimeError
+object_has_no_call_method_test/05: MissingCompileTimeError
+object_has_no_call_method_test/08: MissingCompileTimeError
[ $compiler == dart2js && $dart2js_with_kernel && $fast_startup ]
arithmetic_canonicalization_test: RuntimeError
@@ -2192,7 +1743,7 @@
covariant_subtyping_tearoff1_test: RuntimeError
covariant_subtyping_tearoff2_test: RuntimeError
covariant_subtyping_tearoff3_test: RuntimeError
-covariant_subtyping_test: CompileTimeError
+covariant_subtyping_test: Crash # Unsupported operation: Unsupported type parameter type node E.
covariant_subtyping_unsafe_call1_test: RuntimeError
covariant_subtyping_unsafe_call2_test: RuntimeError
covariant_subtyping_unsafe_call3_test: RuntimeError
@@ -2496,7 +2047,7 @@
type_literal_test: RuntimeError
typevariable_substitution2_test/02: RuntimeError
-[ $compiler == dart2js && $dart2js_with_kernel && $checked ]
+[ $compiler == dart2js && $dart2js_with_kernel && $host_checked ]
arithmetic_canonicalization_test: RuntimeError
assertion_initializer_const_function_test/01: MissingCompileTimeError
assertion_initializer_test: CompileTimeError
@@ -2506,11 +2057,442 @@
bad_override_test/03: MissingCompileTimeError
bad_override_test/04: MissingCompileTimeError
bad_override_test/05: MissingCompileTimeError
-bit_operations_test/03: RuntimeError
-bit_operations_test/04: RuntimeError
-bit_operations_test/none: RuntimeError
+bit_operations_test: RuntimeError
+bool_check_test: RuntimeError
+bool_condition_check_test: RuntimeError
+branch_canonicalization_test: RuntimeError
+branches_test: Crash # 'package:front_end/src/fasta/kernel/kernel_shadow_ast.dart': Failed assertion: line 441 pos 16: 'identical(combiner.arguments.positional[0], rhs)': is not true.
+call_function_apply_test: RuntimeError
+callable_test/none: RuntimeError
+canonical_const2_test: RuntimeError
+check_member_static_test/02: MissingCompileTimeError
+class_cycle_test/02: MissingCompileTimeError
+class_cycle_test/03: MissingCompileTimeError
+closure_invoked_through_interface_target_field_test: MissingCompileTimeError
+closure_invoked_through_interface_target_getter_test: MissingCompileTimeError
+closure_self_reference_test: Crash # 'file:*/pkg/compiler/lib/src/ssa/nodes.dart': Failed assertion: line 641 pos 12: 'isClosed()': is not true.
+compile_time_constant_o_test/01: MissingCompileTimeError
+compile_time_constant_o_test/02: MissingCompileTimeError
+conditional_import_string_test: RuntimeError
+conditional_import_test: RuntimeError
+conditional_method_invocation_test/05: MissingCompileTimeError
+conditional_method_invocation_test/06: MissingCompileTimeError
+conditional_method_invocation_test/07: MissingCompileTimeError
+conditional_method_invocation_test/08: MissingCompileTimeError
+conditional_method_invocation_test/12: MissingCompileTimeError
+conditional_method_invocation_test/13: MissingCompileTimeError
+conditional_method_invocation_test/18: MissingCompileTimeError
+conditional_method_invocation_test/19: MissingCompileTimeError
+conditional_property_access_test/04: MissingCompileTimeError
+conditional_property_access_test/05: MissingCompileTimeError
+conditional_property_access_test/06: MissingCompileTimeError
+conditional_property_access_test/10: MissingCompileTimeError
+conditional_property_access_test/11: MissingCompileTimeError
+conditional_property_access_test/16: MissingCompileTimeError
+conditional_property_access_test/17: MissingCompileTimeError
+conditional_property_assignment_test/04: MissingCompileTimeError
+conditional_property_assignment_test/05: MissingCompileTimeError
+conditional_property_assignment_test/06: MissingCompileTimeError
+conditional_property_assignment_test/10: MissingCompileTimeError
+conditional_property_assignment_test/11: MissingCompileTimeError
+conditional_property_assignment_test/12: MissingCompileTimeError
+conditional_property_assignment_test/13: MissingCompileTimeError
+conditional_property_assignment_test/27: MissingCompileTimeError
+conditional_property_assignment_test/28: MissingCompileTimeError
+conditional_property_assignment_test/32: MissingCompileTimeError
+conditional_property_assignment_test/33: MissingCompileTimeError
+conditional_property_assignment_test/34: MissingCompileTimeError
+conditional_property_assignment_test/35: MissingCompileTimeError
+conditional_property_increment_decrement_test/04: MissingCompileTimeError
+conditional_property_increment_decrement_test/08: MissingCompileTimeError
+conditional_property_increment_decrement_test/12: MissingCompileTimeError
+conditional_property_increment_decrement_test/16: MissingCompileTimeError
+conditional_property_increment_decrement_test/21: MissingCompileTimeError
+conditional_property_increment_decrement_test/22: MissingCompileTimeError
+conditional_property_increment_decrement_test/27: MissingCompileTimeError
+conditional_property_increment_decrement_test/28: MissingCompileTimeError
+conditional_property_increment_decrement_test/33: MissingCompileTimeError
+conditional_property_increment_decrement_test/34: MissingCompileTimeError
+conditional_property_increment_decrement_test/39: MissingCompileTimeError
+conditional_property_increment_decrement_test/40: MissingCompileTimeError
+config_import_corelib_test: RuntimeError
+config_import_test: RuntimeError
+const_constructor2_test/05: MissingCompileTimeError
+const_constructor2_test/06: MissingCompileTimeError
+const_constructor2_test/13: MissingCompileTimeError
+const_constructor2_test/14: MissingCompileTimeError
+const_constructor2_test/15: MissingCompileTimeError
+const_constructor2_test/16: MissingCompileTimeError
+const_constructor2_test/17: MissingCompileTimeError
+const_constructor2_test/18: MissingCompileTimeError
+const_constructor2_test/20: MissingCompileTimeError
+const_constructor2_test/22: MissingCompileTimeError
+const_constructor2_test/24: MissingCompileTimeError
+const_constructor3_test/02: MissingCompileTimeError
+const_constructor3_test/04: MissingCompileTimeError
+const_dynamic_type_literal_test/02: MissingCompileTimeError
+const_error_multiply_initialized_test/02: MissingCompileTimeError
+const_error_multiply_initialized_test/04: MissingCompileTimeError
+const_evaluation_test/01: RuntimeError
+const_factory_with_body_test/01: MissingCompileTimeError
+const_init2_test/02: MissingCompileTimeError
+const_instance_field_test/01: MissingCompileTimeError
+const_map2_test/00: MissingCompileTimeError
+const_map3_test/00: MissingCompileTimeError
+const_switch2_test/01: MissingCompileTimeError
+const_switch_test/02: RuntimeError
+const_switch_test/04: RuntimeError
+const_types_test/01: MissingCompileTimeError
+const_types_test/02: MissingCompileTimeError
+const_types_test/03: MissingCompileTimeError
+const_types_test/04: MissingCompileTimeError
+const_types_test/05: MissingCompileTimeError
+const_types_test/06: MissingCompileTimeError
+const_types_test/13: MissingCompileTimeError
+const_types_test/34: MissingCompileTimeError
+const_types_test/35: MissingCompileTimeError
+const_types_test/39: MissingCompileTimeError
+const_types_test/40: MissingCompileTimeError
+constants_test/05: MissingCompileTimeError
+constructor_duplicate_final_test/01: MissingCompileTimeError
+constructor_duplicate_final_test/02: MissingCompileTimeError
+constructor_named_arguments_test/01: MissingCompileTimeError
+constructor_named_arguments_test/none: RuntimeError
+constructor_redirect1_negative_test/01: Crash # Stack Overflow
+constructor_redirect1_negative_test/none: MissingCompileTimeError
+constructor_redirect2_negative_test: Crash # Issue 30856
+constructor_redirect2_test/01: MissingCompileTimeError
+constructor_redirect_test/01: Crash # Assertion failure: Cannot find value Instance of 'ThisLocal' in (local(A.named2#x), local(A.named2#y), local(A.named2#z)) for j:constructor(A.named2).
+covariant_override/runtime_check_test: RuntimeError
+covariant_subtyping_tearoff1_test: RuntimeError
+covariant_subtyping_tearoff2_test: RuntimeError
+covariant_subtyping_tearoff3_test: RuntimeError
+covariant_subtyping_test: Crash # Unsupported operation: Unsupported type parameter type node E.
+covariant_subtyping_unsafe_call1_test: RuntimeError
+covariant_subtyping_unsafe_call2_test: RuntimeError
+covariant_subtyping_unsafe_call3_test: RuntimeError
+cyclic_constructor_test/01: Crash # Issue 30856
+deferred_closurize_load_library_test: RuntimeError
+deferred_constraints_constants_test/default_argument2: Crash # Assertion failure: Missing scope info for j:method(_loadLibraryWrapper).
+deferred_constraints_constants_test/none: Crash # Assertion failure: Missing scope info for j:method(_loadLibraryWrapper).
+deferred_constraints_constants_test/reference_after_load: Crash # Assertion failure: Missing scope info for j:method(_loadLibraryWrapper).
+deferred_constraints_type_annotation_test/as_operation: MissingCompileTimeError
+deferred_constraints_type_annotation_test/catch_check: MissingCompileTimeError
+deferred_constraints_type_annotation_test/is_check: MissingCompileTimeError
+deferred_constraints_type_annotation_test/new_before_load: MissingCompileTimeError
+deferred_constraints_type_annotation_test/new_generic2: MissingCompileTimeError
+deferred_constraints_type_annotation_test/new_generic3: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation1: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_generic1: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_generic2: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_generic3: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_generic4: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_null: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_top_level: MissingCompileTimeError
+deferred_inheritance_constraints_test/extends: MissingCompileTimeError
+deferred_inheritance_constraints_test/implements: MissingCompileTimeError
+deferred_inheritance_constraints_test/mixin: MissingCompileTimeError
+deferred_load_constants_test/none: RuntimeError
+deferred_load_library_wrong_args_test/01: MissingRuntimeError
+deferred_not_loaded_check_test: RuntimeError
+deferred_redirecting_factory_test: RuntimeError
+deferred_super_dependency_test/01: Crash # Assertion failure: Missing scope info for j:method(_loadLibraryWrapper).
+double_int_to_string_test: RuntimeError
+duplicate_export_negative_test: Fail
+duplicate_implements_test/01: MissingCompileTimeError
+duplicate_implements_test/02: MissingCompileTimeError
+duplicate_implements_test/03: MissingCompileTimeError
+duplicate_implements_test/04: MissingCompileTimeError
+dynamic_prefix_core_test/none: RuntimeError
+enum_mirror_test: RuntimeError
+enum_test: Crash # 'file:*/pkg/compiler/lib/src/ssa/builder_kernel.dart': Failed assertion: line 1728 pos 16: 'type is MethodTypeVariableType': is not true.
+expect_test: RuntimeError
+external_test/10: MissingRuntimeError
+external_test/13: MissingRuntimeError
+external_test/20: MissingRuntimeError
+factory_redirection_test/07: MissingCompileTimeError
+fauxverride_test/03: MissingCompileTimeError
+fauxverride_test/05: MissingCompileTimeError
+field_override3_test/00: MissingCompileTimeError
+field_override3_test/01: MissingCompileTimeError
+field_override3_test/02: MissingCompileTimeError
+field_override3_test/03: MissingCompileTimeError
+field_override4_test/02: MissingCompileTimeError
+final_attempt_reinitialization_test/01: MissingCompileTimeError
+final_attempt_reinitialization_test/02: MissingCompileTimeError
+function_subtype_bound_closure3_test: RuntimeError
+function_subtype_bound_closure4_test: RuntimeError
+function_subtype_bound_closure7_test: RuntimeError
+function_subtype_call1_test: RuntimeError
+function_subtype_call2_test: RuntimeError
+function_subtype_cast1_test: RuntimeError
+function_subtype_checked0_test: RuntimeError
+function_subtype_closure0_test: RuntimeError
+function_subtype_closure1_test: RuntimeError
+function_subtype_factory1_test: RuntimeError
+function_subtype_inline1_test: RuntimeError
+function_subtype_inline2_test: RuntimeError
+function_subtype_named1_test: RuntimeError
+function_subtype_named2_test: RuntimeError
+function_subtype_not1_test: RuntimeError
+function_subtype_optional1_test: RuntimeError
+function_subtype_optional2_test: RuntimeError
+function_subtype_regression_ddc_588_test: RuntimeError
+function_subtype_setter0_test: RuntimeError
+function_subtype_typearg2_test: RuntimeError
+function_subtype_typearg3_test: RuntimeError
+function_subtype_typearg5_test: RuntimeError
+function_type2_test: RuntimeError
+function_type_alias2_test: RuntimeError
+function_type_alias_test: RuntimeError
+function_type_call_getter2_test/none: RuntimeError
+function_type_test: RuntimeError
+generalized_void_syntax_test: CompileTimeError
+generic_closure_test/01: RuntimeError
+generic_closure_test/none: RuntimeError
+generic_field_mixin4_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in ()in j:constructor(C3.).
+generic_field_mixin5_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in ()in j:constructor(C3.).
+generic_field_mixin6_test/none: RuntimeError
+generic_field_mixin_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in ()in j:constructor(C3.).
+generic_function_bounds_test: Crash # Unsupported operation: Unsupported type parameter type node T.
+generic_function_dcall_test: Crash # Unsupported operation: Unsupported type parameter type node T.
+generic_function_typedef_test/01: RuntimeError
+generic_instanceof_test: RuntimeError
+generic_list_checked_test: RuntimeError
+generic_local_functions_test: Crash # Unsupported operation: Unsupported type parameter type node Y.
+generic_methods_closure_test: Crash # Unsupported operation: Unsupported type parameter type node S.
+generic_methods_generic_function_parameter_test: Crash # 'file:*/pkg/compiler/lib/src/ssa/builder_kernel.dart': Failed assertion: line 1728 pos 16: 'type is MethodTypeVariableType': is not true.
+generic_methods_shadowing_test: Crash # Unsupported operation: Unsupported type parameter type node T.
+generic_methods_simple_as_expression_test/01: Crash # 'file:*/pkg/compiler/lib/src/ssa/builder_kernel.dart': Failed assertion: line 1728 pos 16: 'type is MethodTypeVariableType': is not true.
+generic_methods_simple_as_expression_test/02: Crash # 'file:*/pkg/compiler/lib/src/ssa/builder_kernel.dart': Failed assertion: line 1728 pos 16: 'type is MethodTypeVariableType': is not true.
+generic_methods_type_expression_test: Crash # 'file:*/pkg/compiler/lib/src/ssa/builder_kernel.dart': Failed assertion: line 1728 pos 16: 'type is MethodTypeVariableType': is not true.
+generic_tearoff_test: Crash # Unsupported operation: Unsupported type parameter type node T.
+generic_test: RuntimeError
+generic_typedef_test: Crash # Unsupported operation: Unsupported type parameter type node S.
+getter_override2_test/02: MissingCompileTimeError
+getter_override_test/00: MissingCompileTimeError
+getter_override_test/01: MissingCompileTimeError
+getter_override_test/02: MissingCompileTimeError
+getters_setters2_test/01: RuntimeError
+getters_setters2_test/none: RuntimeError
+identical_closure2_test: RuntimeError
+if_null_precedence_test/none: RuntimeError
+inferrer_synthesized_constructor_test: RuntimeError
+infinite_switch_label_test: Crash # 'file:*/pkg/compiler/lib/src/ssa/locals_handler.dart': Failed assertion: line 296 pos 12: 'local != null': is not true.
+infinity_test: RuntimeError
+instance_creation_in_function_annotation_test: RuntimeError
+instanceof2_test: RuntimeError
+instanceof4_test/01: RuntimeError
+instanceof4_test/none: RuntimeError
+integer_division_by_zero_test: RuntimeError
+interface_test/00: Crash # 'package:front_end/src/fasta/kernel/body_builder.dart': Failed assertion: line 2218 pos 14: '!target.enclosingClass.isAbstract': is not true.
+internal_library_test/02: Crash # type 'DillLibraryBuilder' is not a subtype of type 'SourceLibraryBuilder<KernelTypeBuilder, Library>' of 'value' where
+invocation_mirror2_test: RuntimeError
+issue21079_test: RuntimeError
+issue23244_test: RuntimeError
+left_shift_test: RuntimeError
+library_env_test/has_mirror_support: RuntimeError
+list_literal1_test/01: MissingCompileTimeError
+list_literal4_test/00: MissingCompileTimeError
+list_literal4_test/01: MissingCompileTimeError
+list_literal4_test/03: MissingCompileTimeError
+list_literal4_test/04: MissingCompileTimeError
+list_literal4_test/05: MissingCompileTimeError
+list_literal_syntax_test/01: MissingCompileTimeError
+list_literal_syntax_test/02: MissingCompileTimeError
+list_literal_syntax_test/03: MissingCompileTimeError
+malformed2_test/00: MissingCompileTimeError
+many_generic_instanceof_test: RuntimeError
+map_literal8_test: RuntimeError
+method_override7_test/00: MissingCompileTimeError
+method_override7_test/01: MissingCompileTimeError
+method_override7_test/02: MissingCompileTimeError
+method_override8_test/00: MissingCompileTimeError
+method_override8_test/01: MissingCompileTimeError
+mint_arithmetic_test: RuntimeError
+mixin_black_listed_test/02: MissingCompileTimeError
+mixin_forwarding_constructor4_test/01: MissingCompileTimeError
+mixin_forwarding_constructor4_test/02: MissingCompileTimeError
+mixin_forwarding_constructor4_test/03: MissingCompileTimeError
+mixin_illegal_super_use_test/01: MissingCompileTimeError
+mixin_illegal_super_use_test/02: MissingCompileTimeError
+mixin_illegal_super_use_test/03: MissingCompileTimeError
+mixin_illegal_super_use_test/04: MissingCompileTimeError
+mixin_illegal_super_use_test/05: MissingCompileTimeError
+mixin_illegal_super_use_test/06: MissingCompileTimeError
+mixin_illegal_super_use_test/07: MissingCompileTimeError
+mixin_illegal_super_use_test/08: MissingCompileTimeError
+mixin_illegal_super_use_test/09: MissingCompileTimeError
+mixin_illegal_super_use_test/10: MissingCompileTimeError
+mixin_illegal_super_use_test/11: MissingCompileTimeError
+mixin_illegal_superclass_test/01: MissingCompileTimeError
+mixin_illegal_superclass_test/02: MissingCompileTimeError
+mixin_illegal_superclass_test/03: MissingCompileTimeError
+mixin_illegal_superclass_test/04: MissingCompileTimeError
+mixin_illegal_superclass_test/05: MissingCompileTimeError
+mixin_illegal_superclass_test/06: MissingCompileTimeError
+mixin_illegal_superclass_test/07: MissingCompileTimeError
+mixin_illegal_superclass_test/08: MissingCompileTimeError
+mixin_illegal_superclass_test/09: MissingCompileTimeError
+mixin_illegal_superclass_test/10: MissingCompileTimeError
+mixin_illegal_superclass_test/11: MissingCompileTimeError
+mixin_illegal_superclass_test/12: MissingCompileTimeError
+mixin_illegal_superclass_test/13: MissingCompileTimeError
+mixin_illegal_superclass_test/14: MissingCompileTimeError
+mixin_illegal_superclass_test/15: MissingCompileTimeError
+mixin_illegal_superclass_test/16: MissingCompileTimeError
+mixin_illegal_superclass_test/17: MissingCompileTimeError
+mixin_illegal_superclass_test/18: MissingCompileTimeError
+mixin_illegal_superclass_test/19: MissingCompileTimeError
+mixin_illegal_superclass_test/20: MissingCompileTimeError
+mixin_illegal_superclass_test/21: MissingCompileTimeError
+mixin_illegal_superclass_test/22: MissingCompileTimeError
+mixin_illegal_superclass_test/23: MissingCompileTimeError
+mixin_illegal_superclass_test/24: MissingCompileTimeError
+mixin_illegal_superclass_test/25: MissingCompileTimeError
+mixin_illegal_superclass_test/26: MissingCompileTimeError
+mixin_illegal_superclass_test/27: MissingCompileTimeError
+mixin_illegal_superclass_test/28: MissingCompileTimeError
+mixin_illegal_superclass_test/29: MissingCompileTimeError
+mixin_illegal_superclass_test/30: MissingCompileTimeError
+mixin_issue10216_2_test: RuntimeError
+mixin_mixin2_test: RuntimeError
+mixin_mixin3_test: RuntimeError
+mixin_mixin4_test: RuntimeError
+mixin_mixin5_test: RuntimeError
+mixin_mixin6_test: RuntimeError
+mixin_mixin7_test: RuntimeError
+mixin_mixin_bound2_test: RuntimeError
+mixin_mixin_bound_test: RuntimeError
+mixin_mixin_test: RuntimeError
+mixin_mixin_type_arguments_test: RuntimeError
+mixin_of_mixin_test/none: CompileTimeError
+mixin_super_2_test/none: CompileTimeError
+mixin_super_constructor_named_test/01: MissingCompileTimeError
+mixin_super_constructor_positionals_test/01: MissingCompileTimeError
+mixin_super_test: CompileTimeError
+mixin_super_use_test: CompileTimeError
+mixin_superclass_test: CompileTimeError
+mixin_supertype_subclass2_test/01: CompileTimeError
+mixin_supertype_subclass2_test/02: CompileTimeError
+mixin_supertype_subclass2_test/03: CompileTimeError
+mixin_supertype_subclass2_test/04: CompileTimeError
+mixin_supertype_subclass2_test/05: CompileTimeError
+mixin_supertype_subclass2_test/none: CompileTimeError
+mixin_supertype_subclass3_test/01: CompileTimeError
+mixin_supertype_subclass3_test/02: CompileTimeError
+mixin_supertype_subclass3_test/03: CompileTimeError
+mixin_supertype_subclass3_test/04: CompileTimeError
+mixin_supertype_subclass3_test/05: CompileTimeError
+mixin_supertype_subclass3_test/none: CompileTimeError
+mixin_supertype_subclass4_test/01: CompileTimeError
+mixin_supertype_subclass4_test/02: CompileTimeError
+mixin_supertype_subclass4_test/03: CompileTimeError
+mixin_supertype_subclass4_test/04: CompileTimeError
+mixin_supertype_subclass4_test/05: CompileTimeError
+mixin_supertype_subclass4_test/none: CompileTimeError
+mixin_type_parameters_super_test: RuntimeError
+modulo_test: RuntimeError
+multiline_newline_test/04: MissingCompileTimeError
+multiline_newline_test/04r: MissingCompileTimeError
+multiline_newline_test/05: MissingCompileTimeError
+multiline_newline_test/05r: MissingCompileTimeError
+multiline_newline_test/06: MissingCompileTimeError
+multiline_newline_test/06r: MissingCompileTimeError
+named_parameters_default_eq_test/02: MissingCompileTimeError
+nan_identical_test: RuntimeError
+nested_generic_closure_test: Crash # Unsupported operation: Unsupported type parameter type node F.
+nested_switch_label_test: Crash # 'file:*/pkg/compiler/lib/src/ssa/locals_handler.dart': Failed assertion: line 296 pos 12: 'local != null': is not true.
+no_main_test/01: CompileTimeError
+not_enough_positional_arguments_test/00: MissingCompileTimeError
+not_enough_positional_arguments_test/01: MissingCompileTimeError
+not_enough_positional_arguments_test/02: MissingCompileTimeError
+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/02: MissingCompileTimeError
+null_test/03: MissingCompileTimeError
+null_test/mirrors: RuntimeError
+null_test/none: RuntimeError
+number_identity2_test: RuntimeError
+numbers_test: RuntimeError
+operator_test: Crash # 'package:front_end/src/fasta/kernel/kernel_shadow_ast.dart': Failed assertion: line 441 pos 16: 'identical(combiner.arguments.positional[0], rhs)': is not true.
+override_field_method1_negative_test: Fail
+override_field_method2_negative_test: Fail
+override_field_method4_negative_test: Fail
+override_field_method5_negative_test: Fail
+override_field_test/01: MissingCompileTimeError
+override_inheritance_mixed_test/01: MissingCompileTimeError
+override_inheritance_mixed_test/02: MissingCompileTimeError
+override_inheritance_mixed_test/03: MissingCompileTimeError
+override_inheritance_mixed_test/04: MissingCompileTimeError
+override_inheritance_mixed_test/08: MissingCompileTimeError
+override_inheritance_mixed_test/09: MissingCompileTimeError
+override_method_with_field_test/01: MissingCompileTimeError
+positional_parameters_type_test/01: MissingCompileTimeError
+positional_parameters_type_test/02: MissingCompileTimeError
+prefix5_negative_test: Crash # 'package:front_end/src/fasta/kernel/kernel_shadow_ast.dart': Failed assertion: line 441 pos 16: 'identical(combiner.arguments.positional[0], rhs)': is not true.
+private_super_constructor_test/01: MissingCompileTimeError
+redirecting_factory_default_values_test/01: MissingCompileTimeError
+redirecting_factory_default_values_test/02: MissingCompileTimeError
+redirecting_factory_long_test: RuntimeError
+redirecting_factory_reflection_test: RuntimeError
+regress_20394_test/01: MissingCompileTimeError
+regress_22976_test/01: CompileTimeError
+regress_22976_test/02: CompileTimeError
+regress_22976_test/none: CompileTimeError
+regress_23408_test: Crash # Assertion failure: Missing scope info for j:method(_loadLibraryWrapper).
+regress_24283_test: RuntimeError
+regress_27617_test/1: Crash # Assertion failure: Unexpected constructor j:constructor(Foo._) in ConstructorDataImpl._getConstructorConstant
+regress_28217_test/01: MissingCompileTimeError
+regress_28217_test/none: MissingCompileTimeError
+regress_28255_test: RuntimeError
+regress_28341_test: RuntimeError
+regress_29784_test/01: Crash # Assertion failure: Cannot find value Instance of 'ThisLocal' in () for j:constructor(A.ok).
+regress_29784_test/02: MissingCompileTimeError # Issue 29784
+regress_31057_test: Crash # Unsupported operation: Unsupported type parameter type node B.
+setter_override_test/00: MissingCompileTimeError
+setter_override_test/03: MissingCompileTimeError
+stacktrace_demangle_ctors_test: RuntimeError
+stacktrace_test: RuntimeError
+super_call4_test: Crash # Assertion failure: Missing scope info for j:method(E.boz).
+switch_bad_case_test/01: MissingCompileTimeError
+switch_bad_case_test/02: MissingCompileTimeError
+switch_case_test/00: MissingCompileTimeError
+switch_case_test/01: MissingCompileTimeError
+switch_case_test/02: MissingCompileTimeError
+symbol_literal_test/01: MissingCompileTimeError
+sync_generator2_test/41: Crash # 'file:*/pkg/compiler/lib/src/kernel/element_map_impl.dart': Failed assertion: line 939 pos 18: 'asyncMarker == AsyncMarker.SYNC': is not true.
+sync_generator2_test/52: Crash # 'file:*/pkg/compiler/lib/src/kernel/element_map_impl.dart': Failed assertion: line 939 pos 18: 'asyncMarker == AsyncMarker.SYNC': is not true.
+syntax_test/28: MissingCompileTimeError
+syntax_test/29: MissingCompileTimeError
+syntax_test/30: MissingCompileTimeError
+syntax_test/31: MissingCompileTimeError
+syntax_test/32: MissingCompileTimeError
+syntax_test/33: MissingCompileTimeError
+tearoff_dynamic_test: Crash # Unsupported operation: Unsupported type parameter type node T.
+truncdiv_test: RuntimeError
+try_catch_test/01: MissingCompileTimeError
+type_literal_test: RuntimeError
+typevariable_substitution2_test/02: RuntimeError
+
+[ $compiler == dart2js && $dart2js_with_kernel && $minified ]
+arithmetic_canonicalization_test: RuntimeError
+assertion_initializer_const_function_test/01: MissingCompileTimeError
+assertion_initializer_test: CompileTimeError
+assertion_test: RuntimeError
+async_star_cancel_while_paused_test: RuntimeError
+async_star_test/02: RuntimeError
+bad_override_test/03: MissingCompileTimeError
+bad_override_test/04: MissingCompileTimeError
+bad_override_test/05: MissingCompileTimeError
+bit_operations_test: RuntimeError
+bool_check_test: RuntimeError
+bool_condition_check_test: RuntimeError
branch_canonicalization_test: RuntimeError
call_function_apply_test: RuntimeError
+callable_test/none: RuntimeError
canonical_const2_test: RuntimeError
check_member_static_test/02: MissingCompileTimeError
class_cycle_test/02: MissingCompileTimeError
@@ -2606,21 +2588,22 @@
constructor_named_arguments_test/none: RuntimeError
constructor_redirect1_negative_test/01: Crash # Stack Overflow
constructor_redirect1_negative_test/none: MissingCompileTimeError
-constructor_redirect2_negative_test: Crash # Stack Overflow
+constructor_redirect2_negative_test: Crash # Issue 30856
constructor_redirect2_test/01: MissingCompileTimeError
constructor_redirect_test/01: Crash # Assertion failure: Cannot find value Instance of 'ThisLocal' in (local(A.named2#x), local(A.named2#y), local(A.named2#z)) for j:constructor(A.named2).
-covariance_setter_test/none: Crash # NoSuchMethodError: The method 'hasSubclass' was called on null.
-covariance_type_parameter_test/01: Crash # NoSuchMethodError: The method 'hasSubclass' was called on null.
-covariance_type_parameter_test/02: Crash # NoSuchMethodError: The method 'hasSubclass' was called on null.
-covariance_type_parameter_test/03: Crash # NoSuchMethodError: The method 'hasSubclass' was called on null.
-covariance_type_parameter_test/none: Crash # NoSuchMethodError: The method 'hasSubclass' was called on null.
covariant_override/runtime_check_test: RuntimeError
+covariant_subtyping_tearoff1_test: RuntimeError
+covariant_subtyping_tearoff2_test: RuntimeError
+covariant_subtyping_tearoff3_test: RuntimeError
covariant_subtyping_test: Crash # Unsupported operation: Unsupported type parameter type node E.
-cyclic_constructor_test/01: Crash # Stack Overflow
+covariant_subtyping_unsafe_call1_test: RuntimeError
+covariant_subtyping_unsafe_call2_test: RuntimeError
+covariant_subtyping_unsafe_call3_test: RuntimeError
+cyclic_constructor_test/01: Crash # Issue 30856
deferred_closurize_load_library_test: RuntimeError
-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_constants_test/default_argument2: Crash # NoSuchMethodError: The getter 'closureClassEntity' was called on null.
+deferred_constraints_constants_test/none: Crash # NoSuchMethodError: The getter 'closureClassEntity' was called on null.
+deferred_constraints_constants_test/reference_after_load: Crash # NoSuchMethodError: The getter 'closureClassEntity' was called on null.
deferred_constraints_type_annotation_test/as_operation: MissingCompileTimeError
deferred_constraints_type_annotation_test/catch_check: MissingCompileTimeError
deferred_constraints_type_annotation_test/is_check: MissingCompileTimeError
@@ -2641,6 +2624,7 @@
deferred_load_library_wrong_args_test/01: MissingRuntimeError
deferred_not_loaded_check_test: RuntimeError
deferred_redirecting_factory_test: RuntimeError
+deferred_super_dependency_test/01: Crash # NoSuchMethodError: The getter 'closureClassEntity' was called on null.
double_int_to_string_test: RuntimeError
duplicate_export_negative_test: Fail
duplicate_implements_test/01: MissingCompileTimeError
@@ -2653,6 +2637,7 @@
external_test/10: MissingRuntimeError
external_test/13: MissingRuntimeError
external_test/20: MissingRuntimeError
+f_bounded_quantification4_test: RuntimeError
factory_redirection_test/07: MissingCompileTimeError
fauxverride_test/03: MissingCompileTimeError
fauxverride_test/05: MissingCompileTimeError
@@ -2663,28 +2648,61 @@
field_override4_test/02: MissingCompileTimeError
final_attempt_reinitialization_test/01: MissingCompileTimeError
final_attempt_reinitialization_test/02: MissingCompileTimeError
+full_stacktrace1_test: RuntimeError
+full_stacktrace2_test: RuntimeError
+full_stacktrace3_test: RuntimeError
+function_subtype_bound_closure3_test: RuntimeError
+function_subtype_bound_closure4_test: RuntimeError
+function_subtype_bound_closure7_test: RuntimeError
+function_subtype_call1_test: RuntimeError
+function_subtype_call2_test: RuntimeError
+function_subtype_cast1_test: RuntimeError
+function_subtype_checked0_test: RuntimeError
+function_subtype_closure0_test: RuntimeError
+function_subtype_closure1_test: RuntimeError
+function_subtype_factory1_test: RuntimeError
+function_subtype_inline1_test: RuntimeError
+function_subtype_inline2_test: RuntimeError
+function_subtype_named1_test: RuntimeError
+function_subtype_named2_test: RuntimeError
+function_subtype_not1_test: RuntimeError
+function_subtype_optional1_test: RuntimeError
+function_subtype_optional2_test: RuntimeError
+function_subtype_regression_ddc_588_test: RuntimeError
+function_subtype_setter0_test: RuntimeError
+function_subtype_typearg2_test: RuntimeError
+function_subtype_typearg3_test: RuntimeError
+function_subtype_typearg5_test: RuntimeError
+function_type2_test: RuntimeError
+function_type_alias2_test: RuntimeError
function_type_alias_test: RuntimeError
+function_type_call_getter2_test/none: RuntimeError
+function_type_test: RuntimeError
generalized_void_syntax_test: CompileTimeError
-generic_closure_test/01: RuntimeError
-generic_closure_test/none: RuntimeError
-generic_field_mixin4_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in () for j:constructor(C3.).
-generic_field_mixin5_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in () for j:constructor(C3.).
-generic_field_mixin_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in () for j:constructor(C3.).
+generic_field_mixin4_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in ()in j:constructor(C3.).
+generic_field_mixin5_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in ()in j:constructor(C3.).
+generic_field_mixin6_test/none: RuntimeError
+generic_field_mixin_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(M.T) in ()in j:constructor(C3.).
generic_function_bounds_test: Crash # Unsupported operation: Unsupported type parameter type node T.
generic_function_dcall_test: Crash # Unsupported operation: Unsupported type parameter type node T.
generic_function_typedef_test/01: RuntimeError
generic_instanceof_test: RuntimeError
+generic_list_checked_test: RuntimeError
generic_local_functions_test: Crash # Unsupported operation: Unsupported type parameter type node Y.
generic_methods_closure_test: Crash # Unsupported operation: Unsupported type parameter type node S.
generic_methods_shadowing_test: Crash # Unsupported operation: Unsupported type parameter type node T.
generic_tearoff_test: Crash # Unsupported operation: Unsupported type parameter type node T.
+generic_test: RuntimeError
generic_typedef_test: Crash # Unsupported operation: Unsupported type parameter type node S.
getter_override2_test/02: MissingCompileTimeError
getter_override_test/00: MissingCompileTimeError
getter_override_test/01: MissingCompileTimeError
getter_override_test/02: MissingCompileTimeError
+getters_setters2_test/01: RuntimeError
+getters_setters2_test/none: RuntimeError
identical_closure2_test: RuntimeError
-implicit_downcast_during_assert_initializer_test: RuntimeError
+if_null_precedence_test/none: RuntimeError
+inferrer_synthesized_constructor_test: RuntimeError
infinite_switch_label_test: Crash # NoSuchMethodError: The method 'generateBreak' was called on null.
infinity_test: RuntimeError
instance_creation_in_function_annotation_test: RuntimeError
@@ -2694,9 +2712,11 @@
integer_division_by_zero_test: RuntimeError
internal_library_test/02: Crash # NoSuchMethodError: Class 'DillLibraryBuilder' has no instance getter 'mixinApplicationClasses'.
invocation_mirror2_test: RuntimeError
+invocation_mirror_test: RuntimeError
issue21079_test: RuntimeError
issue23244_test: RuntimeError
left_shift_test: RuntimeError
+library_env_test/has_mirror_support: RuntimeError
list_literal1_test/01: MissingCompileTimeError
list_literal4_test/00: MissingCompileTimeError
list_literal4_test/01: MissingCompileTimeError
@@ -2708,7 +2728,6 @@
list_literal_syntax_test/03: MissingCompileTimeError
malformed2_test/00: MissingCompileTimeError
many_generic_instanceof_test: RuntimeError
-map_literal1_test/01: MissingCompileTimeError
map_literal8_test: RuntimeError
method_override7_test/00: MissingCompileTimeError
method_override7_test/01: MissingCompileTimeError
@@ -2720,6 +2739,7 @@
mixin_forwarding_constructor4_test/01: MissingCompileTimeError
mixin_forwarding_constructor4_test/02: MissingCompileTimeError
mixin_forwarding_constructor4_test/03: MissingCompileTimeError
+mixin_generic_test: RuntimeError
mixin_illegal_super_use_test/01: MissingCompileTimeError
mixin_illegal_super_use_test/02: MissingCompileTimeError
mixin_illegal_super_use_test/03: MissingCompileTimeError
@@ -2762,16 +2782,9 @@
mixin_illegal_superclass_test/29: MissingCompileTimeError
mixin_illegal_superclass_test/30: MissingCompileTimeError
mixin_issue10216_2_test: RuntimeError
-mixin_mixin2_test: RuntimeError
-mixin_mixin3_test: RuntimeError
-mixin_mixin4_test: RuntimeError
-mixin_mixin5_test: RuntimeError
-mixin_mixin6_test: RuntimeError
mixin_mixin7_test: RuntimeError
-mixin_mixin_bound2_test: RuntimeError
-mixin_mixin_bound_test: RuntimeError
mixin_mixin_test: RuntimeError
-mixin_mixin_type_arguments_test: Crash # NoSuchMethodError: The method 'hasSubclass' was called on null.
+mixin_mixin_type_arguments_test: RuntimeError
mixin_of_mixin_test/none: CompileTimeError
mixin_super_2_test/none: CompileTimeError
mixin_super_constructor_named_test/01: MissingCompileTimeError
@@ -2798,6 +2811,8 @@
mixin_supertype_subclass4_test/05: CompileTimeError
mixin_supertype_subclass4_test/none: CompileTimeError
mixin_type_parameters_super_test: RuntimeError
+mock_writable_final_field_test: RuntimeError # Issue 30847
+mock_writable_final_private_field_test: RuntimeError # Issue 30847
modulo_test: RuntimeError
multiline_newline_test/04: MissingCompileTimeError
multiline_newline_test/04r: MissingCompileTimeError
@@ -2810,6 +2825,7 @@
nested_generic_closure_test: Crash # Unsupported operation: Unsupported type parameter type node F.
nested_switch_label_test: Crash # NoSuchMethodError: The method 'generateBreak' was called on null.
no_main_test/01: CompileTimeError
+no_such_method_native_test: RuntimeError
not_enough_positional_arguments_test/00: MissingCompileTimeError
not_enough_positional_arguments_test/01: MissingCompileTimeError
not_enough_positional_arguments_test/02: MissingCompileTimeError
@@ -2843,23 +2859,27 @@
redirecting_factory_long_test: RuntimeError
redirecting_factory_reflection_test: RuntimeError
regress_20394_test/01: MissingCompileTimeError
+regress_21795_test: RuntimeError
regress_22976_test/01: CompileTimeError
regress_22976_test/02: CompileTimeError
regress_22976_test/none: CompileTimeError
-regress_24283_test: RuntimeError
+regress_23408_test: Crash # NoSuchMethodError: The getter 'closureClassEntity' was called on null.
+regress_24283_test: RuntimeError, OK # Requires 64 bit numbers.
regress_27617_test/1: Crash # Assertion failure: Unexpected constructor j:constructor(Foo._) in ConstructorDataImpl._getConstructorConstant
regress_28217_test/01: MissingCompileTimeError
regress_28217_test/none: MissingCompileTimeError
regress_28255_test: RuntimeError
regress_28341_test: RuntimeError
-regress_29405_test: RuntimeError
-regress_29784_test/01: Crash # Assertion failure: Cannot find value Instance of 'ThisLocal' in () for j:constructor(A.ok).
+regress_29784_test/01: Crash # Issue 29784
regress_29784_test/02: MissingCompileTimeError # Issue 29784
-regress_30339_test: RuntimeError # Issue 26429
regress_31057_test: Crash # Unsupported operation: Unsupported type parameter type node B.
setter_override_test/00: MissingCompileTimeError
setter_override_test/03: MissingCompileTimeError
+stack_trace_test: RuntimeError
stacktrace_demangle_ctors_test: RuntimeError
+stacktrace_rethrow_error_test/none: RuntimeError
+stacktrace_rethrow_error_test/withtraceparameter: RuntimeError
+stacktrace_rethrow_nonerror_test: RuntimeError
stacktrace_test: RuntimeError
super_call4_test: Crash # NoSuchMethodError: The getter 'thisLocal' was called on null.
switch_bad_case_test/01: MissingCompileTimeError
@@ -2867,6 +2887,7 @@
switch_case_test/00: MissingCompileTimeError
switch_case_test/01: MissingCompileTimeError
switch_case_test/02: MissingCompileTimeError
+symbol_conflict_test: RuntimeError
symbol_literal_test/01: MissingCompileTimeError
syntax_test/28: MissingCompileTimeError
syntax_test/29: MissingCompileTimeError
@@ -2877,250 +2898,237 @@
tearoff_dynamic_test: Crash # Unsupported operation: Unsupported type parameter type node T.
truncdiv_test: RuntimeError
try_catch_test/01: MissingCompileTimeError
-type_check_const_function_typedef2_test: MissingCompileTimeError
type_literal_test: RuntimeError
-type_parameter_test/06: Crash # Internal Error: Unexpected type variable in static context.
-type_parameter_test/09: Crash # Internal Error: Unexpected type variable in static context.
-type_variable_scope_test/03: Crash # Internal Error: Unexpected type variable in static context.
+typevariable_substitution2_test/02: RuntimeError
-[ $compiler == dart2js && $dart2js_with_kernel ]
-checked_setter_test: RuntimeError # Issue 31128
-checked_setter2_test: RuntimeError # Issue 31128
-built_in_identifier_type_annotation_test/22: Crash # Issue 28815
-built_in_identifier_type_annotation_test/52: MissingCompileTimeError # Issue 28815
-built_in_identifier_type_annotation_test/53: MissingCompileTimeError # Issue 28815
-built_in_identifier_type_annotation_test/54: MissingCompileTimeError # Issue 28815
-built_in_identifier_type_annotation_test/55: MissingCompileTimeError # Issue 28815
-built_in_identifier_type_annotation_test/57: MissingCompileTimeError # Issue 28815
-built_in_identifier_type_annotation_test/58: MissingCompileTimeError # Issue 28815
-built_in_identifier_type_annotation_test/59: MissingCompileTimeError # Issue 28815
-built_in_identifier_type_annotation_test/60: MissingCompileTimeError # Issue 28815
-built_in_identifier_type_annotation_test/61: MissingCompileTimeError # Issue 28815
-built_in_identifier_type_annotation_test/62: MissingCompileTimeError # Issue 28815
-built_in_identifier_type_annotation_test/63: MissingCompileTimeError # Issue 28815
-built_in_identifier_type_annotation_test/64: MissingCompileTimeError # Issue 28815
-built_in_identifier_type_annotation_test/65: MissingCompileTimeError # Issue 28815
-built_in_identifier_type_annotation_test/66: MissingCompileTimeError # Issue 28815
-built_in_identifier_type_annotation_test/67: MissingCompileTimeError # Issue 28815
-built_in_identifier_type_annotation_test/68: MissingCompileTimeError # Issue 28815
-implicit_downcast_during_constructor_invocation_test: RuntimeError
-implicit_downcast_during_for_in_element_test: RuntimeError
-implicit_downcast_during_for_in_iterable_test: RuntimeError
-implicit_downcast_during_function_literal_arrow_test: RuntimeError
-implicit_downcast_during_function_literal_return_test: RuntimeError
-implicit_downcast_during_invocation_test: RuntimeError
-implicit_downcast_during_list_literal_test: RuntimeError
-implicit_downcast_during_redirecting_initializer_test: RuntimeError
-implicit_downcast_during_return_async_test: RuntimeError
-implicit_downcast_during_super_initializer_test: RuntimeError
-implicit_downcast_during_yield_star_test: RuntimeError
-implicit_downcast_during_yield_test: RuntimeError
+[ $compiler == dart2js && !$dart2js_with_kernel ]
+accessor_conflict_export2_test: Crash # Issue 25626
+accessor_conflict_export_test: Crash # Issue 25626
+assertion_initializer_const_error2_test/*: Crash # Issue 30038
+assertion_initializer_const_error2_test/none: Pass
+assertion_initializer_test: Crash
+bad_constructor_test/05: CompileTimeError
+bad_typedef_test/00: Crash # Issue 28214
+bug31436_test: RuntimeError
+built_in_identifier_type_annotation_test/13: Crash # Issue 28815
+built_in_identifier_type_annotation_test/22: MissingCompileTimeError # Error only in strong mode
+built_in_identifier_type_annotation_test/30: Crash # Issue 28815
+built_in_identifier_type_annotation_test/52: Crash # Issue 28815
+built_in_identifier_type_annotation_test/53: Crash # Issue 28815
+built_in_identifier_type_annotation_test/54: Crash # Issue 28815
+built_in_identifier_type_annotation_test/55: Crash # Issue 28815
+built_in_identifier_type_annotation_test/57: Crash # Issue 28815
+built_in_identifier_type_annotation_test/58: Crash # Issue 28815
+built_in_identifier_type_annotation_test/59: Crash # Issue 28815
+built_in_identifier_type_annotation_test/60: Crash # Issue 28815
+built_in_identifier_type_annotation_test/61: Crash # Issue 28815
+built_in_identifier_type_annotation_test/62: Crash # Issue 28815
+built_in_identifier_type_annotation_test/63: Crash # Issue 28815
+built_in_identifier_type_annotation_test/64: Crash # Issue 28815
+built_in_identifier_type_annotation_test/65: Crash # Issue 28815
+built_in_identifier_type_annotation_test/66: Crash # Issue 28815
+built_in_identifier_type_annotation_test/67: Crash # Issue 28815
+built_in_identifier_type_annotation_test/68: Crash # Issue 28815
+built_in_identifier_type_annotation_test/81: Crash # Issue 28815
+call_function_apply_test: RuntimeError # Issue 23873
+canonical_const2_test: RuntimeError, OK # Issue 1533
+closure_param_null_to_object_test: RuntimeError
+compile_time_constant_o_test/01: MissingCompileTimeError
+compile_time_constant_o_test/02: MissingCompileTimeError
+conditional_method_invocation_test/05: MissingCompileTimeError
+conditional_method_invocation_test/06: MissingCompileTimeError
+conditional_method_invocation_test/07: MissingCompileTimeError
+conditional_method_invocation_test/08: MissingCompileTimeError
+conditional_method_invocation_test/12: MissingCompileTimeError
+conditional_method_invocation_test/13: MissingCompileTimeError
+conditional_method_invocation_test/18: MissingCompileTimeError
+conditional_method_invocation_test/19: MissingCompileTimeError
+conditional_property_access_test/04: MissingCompileTimeError
+conditional_property_access_test/05: MissingCompileTimeError
+conditional_property_access_test/06: MissingCompileTimeError
+conditional_property_access_test/10: MissingCompileTimeError
+conditional_property_access_test/11: MissingCompileTimeError
+conditional_property_access_test/16: MissingCompileTimeError
+conditional_property_access_test/17: MissingCompileTimeError
+conditional_property_assignment_test/04: MissingCompileTimeError
+conditional_property_assignment_test/05: MissingCompileTimeError
+conditional_property_assignment_test/06: MissingCompileTimeError
+conditional_property_assignment_test/10: MissingCompileTimeError
+conditional_property_assignment_test/11: MissingCompileTimeError
+conditional_property_assignment_test/12: MissingCompileTimeError
+conditional_property_assignment_test/13: MissingCompileTimeError
+conditional_property_assignment_test/27: MissingCompileTimeError
+conditional_property_assignment_test/28: MissingCompileTimeError
+conditional_property_assignment_test/32: MissingCompileTimeError
+conditional_property_assignment_test/33: MissingCompileTimeError
+conditional_property_assignment_test/34: MissingCompileTimeError
+conditional_property_assignment_test/35: MissingCompileTimeError
+conditional_property_increment_decrement_test/04: MissingCompileTimeError
+conditional_property_increment_decrement_test/08: MissingCompileTimeError
+conditional_property_increment_decrement_test/12: MissingCompileTimeError
+conditional_property_increment_decrement_test/16: MissingCompileTimeError
+conditional_property_increment_decrement_test/21: MissingCompileTimeError
+conditional_property_increment_decrement_test/22: MissingCompileTimeError
+conditional_property_increment_decrement_test/27: MissingCompileTimeError
+conditional_property_increment_decrement_test/28: MissingCompileTimeError
+conditional_property_increment_decrement_test/33: MissingCompileTimeError
+conditional_property_increment_decrement_test/34: MissingCompileTimeError
+conditional_property_increment_decrement_test/39: MissingCompileTimeError
+conditional_property_increment_decrement_test/40: MissingCompileTimeError
+const_constructor2_test/05: MissingCompileTimeError
+const_constructor2_test/06: MissingCompileTimeError
+const_dynamic_type_literal_test/03: CompileTimeError # Issue 23009
+const_switch_test/02: RuntimeError # Issue 17960
+const_switch_test/04: RuntimeError # Issue 17960
+const_types_test/01: MissingCompileTimeError
+const_types_test/02: MissingCompileTimeError
+const_types_test/03: MissingCompileTimeError
+const_types_test/04: MissingCompileTimeError
+const_types_test/05: MissingCompileTimeError
+const_types_test/06: MissingCompileTimeError
+const_types_test/13: MissingCompileTimeError
+const_types_test/34: MissingCompileTimeError
+const_types_test/35: MissingCompileTimeError
+const_types_test/39: MissingCompileTimeError
+const_types_test/40: MissingCompileTimeError
+deferred_constraints_type_annotation_test/as_operation: MissingCompileTimeError
+deferred_constraints_type_annotation_test/catch_check: MissingCompileTimeError
+deferred_constraints_type_annotation_test/is_check: MissingCompileTimeError
+deferred_constraints_type_annotation_test/new_before_load: MissingCompileTimeError
+deferred_constraints_type_annotation_test/new_generic2: MissingCompileTimeError
+deferred_constraints_type_annotation_test/new_generic3: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation1: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_generic1: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_generic2: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_generic3: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_generic4: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_null: MissingCompileTimeError
+deferred_constraints_type_annotation_test/type_annotation_top_level: MissingCompileTimeError
+deferred_not_loaded_check_test: Fail # Issue 27577
+double_int_to_string_test: RuntimeError # Issue 1533
+enum_test: Fail # Issue 28340
+expect_test: RuntimeError, OK # Issue 13080
+external_test/10: CompileTimeError # Issue 12887
+external_test/13: CompileTimeError # Issue 12887
+external_test/20: CompileTimeError # Issue 12887
+final_attempt_reinitialization_test.dart: Skip # Issue 29659
+final_field_override_test: RuntimeError
+full_stacktrace1_test: Pass, RuntimeError # Issue 12698
+full_stacktrace2_test: Pass, RuntimeError # Issue 12698
+full_stacktrace3_test: Pass, RuntimeError # Issue 12698
+generalized_void_syntax_test: CompileTimeError # Issue #30176.
+generic_field_mixin4_test: Crash # Issue 18651
+generic_field_mixin5_test: Crash # Issue 18651
+generic_function_typedef2_test/00: MissingCompileTimeError # Issue 28214
+generic_function_typedef2_test/01: MissingCompileTimeError # Issue 28214
+generic_function_typedef2_test/02: MissingCompileTimeError # Issue 28214
+generic_function_typedef2_test/03: MissingCompileTimeError # Issue 28214
+generic_function_typedef2_test/05: Crash # Issue 28214
+generic_function_typedef2_test/06: Crash # Issue 28214
+generic_methods_local_variable_declaration_test: RuntimeError
+getter_setter_in_lib_test: Fail # Issue 23288
+identical_closure2_test: RuntimeError # Issue 1533, Issue 12596
+if_null_assignment_behavior_test/13: Crash # Issue 23491
+if_null_assignment_behavior_test/14: Crash # Issue 23491
+infinity_test: RuntimeError # Issue 4984
+integer_division_by_zero_test: RuntimeError # Issue 8301
+invocation_mirror2_test: RuntimeError # Issue 6490 (wrong retval).
+left_shift_test: RuntimeError # Issue 1533
+list_literal4_test/00: MissingCompileTimeError
+list_literal4_test/01: MissingCompileTimeError
+list_literal4_test/03: MissingCompileTimeError
+list_literal4_test/04: MissingCompileTimeError
+list_literal4_test/05: MissingCompileTimeError
+list_literal_syntax_test/01: MissingCompileTimeError
+list_literal_syntax_test/02: MissingCompileTimeError
+list_literal_syntax_test/03: MissingCompileTimeError
+method_name_test: Fail # issue 25574
+method_override5_test: RuntimeError # Issue 12809
+mint_arithmetic_test: RuntimeError # Issue 1533
+mixin_mixin2_test: RuntimeError # Issue 13109.
+mixin_mixin3_test: RuntimeError # Issue 13109.
+mixin_mixin_type_arguments_test: RuntimeError # Issue 29587
+mixin_of_mixin_test/none: CompileTimeError
+mixin_super_2_test/none: CompileTimeError
+mixin_super_bound2_test: CompileTimeError # Issue 23773
+mixin_super_constructor_named_test/01: Fail # Issue 15101
+mixin_super_constructor_positionals_test/01: Fail # Issue 15101
+mixin_super_test: CompileTimeError # Issue 23773
+mixin_super_use_test: CompileTimeError # Issue 23773
+mixin_superclass_test: CompileTimeError # Issue 23773
+mixin_supertype_subclass2_test: CompileTimeError # Issue 23773
+mixin_supertype_subclass3_test: CompileTimeError # Issue 23773
+mixin_supertype_subclass4_test: CompileTimeError # Issue 23773
+mixin_type_parameters_super_test: RuntimeError
+mixin_with_two_implicit_constructors_test: MissingCompileTimeError
+mock_writable_final_private_field_test: CompileTimeError # Issue 17526
+modulo_test: RuntimeError # Issue 15246
+multiline_newline_test/01: CompileTimeError # Issue 23888
+multiline_newline_test/01r: CompileTimeError # Issue 23888
+multiline_newline_test/02: CompileTimeError # Issue 23888
+multiline_newline_test/02r: CompileTimeError # Issue 23888
+multiline_newline_test/03: RuntimeError
+multiline_newline_test/03r: RuntimeError
+multiline_newline_test/04: MissingCompileTimeError # Issue 23888
+multiline_newline_test/04r: MissingCompileTimeError # Issue 23888
+multiline_newline_test/05: MissingCompileTimeError # Issue 23888
+multiline_newline_test/05r: MissingCompileTimeError # Issue 23888
+multiline_newline_test/none: RuntimeError # Issue 23888
+nan_identical_test: Fail # Issue 11551
+number_identity2_test: RuntimeError # Issue 12596
+numbers_test: RuntimeError, OK # Issue 1533
object_has_no_call_method_test/02: MissingCompileTimeError
object_has_no_call_method_test/05: MissingCompileTimeError
object_has_no_call_method_test/08: MissingCompileTimeError
+positional_parameters_type_test/01: MissingCompileTimeError
+positional_parameters_type_test/02: MissingCompileTimeError
+regress_22976_test: CompileTimeError # Issue 23132
+regress_24283_test: RuntimeError # Issue 1533
+scope_variable_test/01: MissingCompileTimeError # Issue 13016
+setter4_test: CompileTimeError # issue 13639
+stacktrace_demangle_ctors_test: Fail # dart2js stack traces are not always compliant.
+stacktrace_rethrow_error_test: Pass, RuntimeError # Issue 12698
+stacktrace_rethrow_nonerror_test: Pass, RuntimeError # Issue 12698
+stacktrace_test: Pass, RuntimeError # # Issue 12698
+truncdiv_test: RuntimeError # Issue 15246
+try_catch_on_syntax_test/10: Fail # Issue 19823
+try_catch_on_syntax_test/11: Fail # Issue 19823
+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
-[ $compiler == dart2js && $dart2js_with_kernel && !$checked ]
-assertion_initializer_const_error2_test/none: Pass
-assertion_initializer_const_error2_test/*: CompileTimeError # Issue #31321
-cascaded_forwarding_stubs_generic_test: RuntimeError
-cascaded_forwarding_stubs_test: RuntimeError
-checked_setter3_test: RuntimeError # Issue 31128
-implicit_downcast_during_assignment_test: RuntimeError
-implicit_downcast_during_combiner_test: RuntimeError
-implicit_downcast_during_compound_assignment_test: RuntimeError
-implicit_downcast_during_conditional_expression_test: RuntimeError
-implicit_downcast_during_constructor_initializer_test: RuntimeError
-implicit_downcast_during_do_test: RuntimeError
-implicit_downcast_during_factory_constructor_invocation_test: RuntimeError
-implicit_downcast_during_field_declaration_test: RuntimeError
-implicit_downcast_during_for_condition_test: RuntimeError
-implicit_downcast_during_for_initializer_expression_test: RuntimeError
-implicit_downcast_during_for_initializer_var_test: RuntimeError
-implicit_downcast_during_if_null_assignment_test: RuntimeError
-implicit_downcast_during_if_statement_test: RuntimeError
-implicit_downcast_during_indexed_assignment_test: RuntimeError
-implicit_downcast_during_indexed_compound_assignment_test: RuntimeError
-implicit_downcast_during_indexed_get_test: RuntimeError
-implicit_downcast_during_indexed_if_null_assignment_test: RuntimeError
-implicit_downcast_during_logical_expression_test: RuntimeError
-implicit_downcast_during_map_literal_test: RuntimeError
-implicit_downcast_during_method_invocation_test: RuntimeError
-implicit_downcast_during_not_test: RuntimeError
-implicit_downcast_during_null_aware_method_invocation_test: RuntimeError
-implicit_downcast_during_return_test: RuntimeError
-implicit_downcast_during_static_method_invocation_test: RuntimeError
-implicit_downcast_during_super_method_invocation_test: RuntimeError
-implicit_downcast_during_variable_declaration_test: RuntimeError
-implicit_downcast_during_while_statement_test: RuntimeError
-
-[ $compiler == dart2js && $dart2js_with_kernel && $checked ]
-known_identifier_usage_error_test/none: RuntimeError # Issue 28815
-built_in_identifier_test: RuntimeError # Issue 28815
-built_in_identifier_type_annotation_test/none: RuntimeError # Issue 28815
-built_in_identifier_type_annotation_test/05: RuntimeError # Issue 28815
-built_in_identifier_type_annotation_test/39: RuntimeError # Issue 28815
-built_in_identifier_type_annotation_test/56: RuntimeError # Issue 28815
-built_in_identifier_type_annotation_test/73: RuntimeError # Issue 28815
-
-[ $compiler == dart2js && $dart2js_with_kernel && $minified && $checked ]
-inline_super_field_test: Crash
-typedef_is_test: Crash
-
-[ $compiler == dart2js && !$dart2js_with_kernel && $runtime != none ]
-async_star_cancel_while_paused_test: RuntimeError # Issue 22853
-
-[ $compiler == dart2js && $runtime == jsshell && !$dart2js_with_kernel ]
-async_star_await_pauses_test: RuntimeError # Need triage
-async_star_no_cancel2_test: RuntimeError # Need triage
-async_star_no_cancel_test: RuntimeError # Need triage
-await_for_test: Skip # Jsshell does not provide periodic timers, Issue 7728
-regress_23996_test: RuntimeError # Jsshell does not provide non-zero timers, Issue 7728
-
-[ $compiler == dart2js && $runtime != none ]
-covariant_subtyping_with_substitution_test: RuntimeError
-covariant_tear_off_type_test: RuntimeError
-
-[ $compiler == dart2js && $runtime == jsshell ]
-async_star_test/01: RuntimeError
-async_star_test/02: RuntimeError
-async_star_test/03: RuntimeError
-async_star_test/04: RuntimeError
-async_star_test/05: RuntimeError
-async_star_test/none: RuntimeError
-field_override_optimization_test: RuntimeError
-field_type_check2_test/01: MissingRuntimeError
-
-[ $compiler == dart2js && $runtime == chrome ]
-field_override_optimization_test: RuntimeError
-field_type_check2_test/01: MissingRuntimeError
-
-[ $compiler == dart2js && $runtime == d8 && !$checked ]
-field_override_optimization_test: RuntimeError
-field_type_check2_test/01: MissingRuntimeError
-
-[ $compiler == dart2js && $checked && !$dart2js_with_kernel ]
-async_return_types_test/nestedFuture: Fail # Issue 26429
-async_return_types_test/wrongTypeParameter: Fail # Issue 26429
-check_member_static_test/01: MissingCompileTimeError
-check_method_override_test/01: MissingCompileTimeError
-check_method_override_test/02: MissingCompileTimeError
-covariant_subtyping_test: CompileTimeError
-default_factory2_test/01: Fail # Issue 14121
-function_malformed_result_type_test/00: MissingCompileTimeError
-function_type_alias_test: RuntimeError
-function_type_call_getter2_test/00: MissingCompileTimeError
-function_type_call_getter2_test/01: MissingCompileTimeError
-function_type_call_getter2_test/02: MissingCompileTimeError
-function_type_call_getter2_test/03: MissingCompileTimeError
-function_type_call_getter2_test/04: MissingCompileTimeError
-malbounded_instantiation_test/01: Fail # Issue 12702
-malbounded_redirecting_factory_test/02: Fail # Issue 12825
-malbounded_redirecting_factory_test/03: Fail # Issue 12825
-malbounded_type_cast2_test: Fail # Issue 14121
-malbounded_type_cast_test: Fail # Issue 14121
-malbounded_type_test_test/03: Fail # Issue 14121
-malbounded_type_test_test/04: Fail # Issue 14121
-regress_26133_test: RuntimeError # Issue 26429
-regress_29405_test: Fail # Issue 29422
-function_type_call_getter2_test/05: MissingCompileTimeError
-
-[ $compiler == dart2js && !$checked ]
-covariance_field_test/01: RuntimeError
-covariance_field_test/02: RuntimeError
-covariance_field_test/03: RuntimeError
-covariance_field_test/04: RuntimeError
-covariance_field_test/05: RuntimeError
-covariance_method_test/01: RuntimeError
-covariance_method_test/02: RuntimeError
-covariance_method_test/03: RuntimeError
-covariance_method_test/04: RuntimeError
-covariance_method_test/05: RuntimeError
-covariance_method_test/06: RuntimeError
-covariance_setter_test/01: RuntimeError
-covariance_setter_test/02: RuntimeError
-covariance_setter_test/03: RuntimeError
-covariance_setter_test/04: RuntimeError
-covariance_setter_test/05: RuntimeError
-type_argument_in_super_type_test: RuntimeError
-type_check_const_function_typedef2_test: MissingCompileTimeError
-recursive_mixin_test: RuntimeError # no check without --checked
-
-[ $compiler == dart2js && $checked ]
-covariant_subtyping_test: CompileTimeError
-
-[ $compiler == dart2js && $runtime == safarimobilesim && !$dart2js_with_kernel ]
-call_through_getter_test: Fail, OK
-
-[ $compiler == dart2js && $fast_startup && !$dart2js_with_kernel ]
+[ $compiler == dart2js && !$dart2js_with_kernel && $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
-deferred_constraints_constants_test: Pass # mirrors not supported, passes for the wrong reason
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.
-issue21079_test: Fail # mirrors not supported
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
-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
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 && $runtime == chrome && $system == macos && !$dart2js_with_kernel ]
-await_future_test: Pass, Timeout # Issue 26735
-
-[ $compiler == dart2js && $system == windows && !$dart2js_with_kernel ]
-string_literals_test: Pass, RuntimeError # Failures on dart2js-win7-chrome-4-4-be and dart2js-win7-ie11ff-4-4-be
-
-[ $compiler == dart2js && $runtime != drt && !$dart2js_with_kernel ]
-issue23244_test: RuntimeError # 23244
-
-[ $compiler == dart2js && $runtime == chrome && !$dart2js_with_kernel ]
-enum_mirror_test: pass
-
-[ $compiler == dart2js && $runtime == chromeOnAndroid && !$dart2js_with_kernel ]
-override_field_test/02: Pass, Slow # TODO(kasperl): Please triage.
-
-[ $compiler == dart2js && $browser && !$dart2js_with_kernel ]
-library_env_test/has_no_io_support: Pass # Issue 27398
-library_env_test/has_io_support: RuntimeError # Issue 27398
-config_import_test: Fail # Test flag is not passed to the compiler.
-
-[ $compiler == dart2js && $runtime == safari && !$dart2js_with_kernel ]
-round_test: Fail, OK # Common JavaScript engine Math.round bug.
-
-[ $compiler == dart2js && $runtime == ff && !$dart2js_with_kernel ]
-field_override_optimization_test: RuntimeError
-field_type_check2_test/01: MissingRuntimeError
-round_test: Pass, Fail, OK # Fixed in ff 35. Common JavaScript engine Math.round bug.
-
-[ $compiler == dart2js && $runtime == drt && !$checked && !$dart2js_with_kernel ]
-field_type_check2_test/01: MissingRuntimeError
-field_override_optimization_test: RuntimeError
-
-[ $compiler == dart2js && $runtime == safari && !$dart2js_with_kernel ]
-field_override_optimization_test: RuntimeError
-field_type_check2_test/01: MissingRuntimeError
-
-[ $compiler == dart2js && $minified && !$dart2js_with_kernel ]
-f_bounded_quantification4_test: Fail, Pass # Issue 12605
-symbol_conflict_test: RuntimeError # Issue 23857
-mixin_generic_test: Fail # Issue 12605
-
-[ $compiler == dart2js && $host_checked && !$dart2js_with_kernel ]
+[ $compiler == dart2js && !$dart2js_with_kernel && $host_checked ]
implicit_downcast_during_for_in_element_test: Crash
implicit_downcast_during_for_in_iterable_test: Crash
regress_26855_test/1: Crash # Issue 26867
@@ -3128,6 +3136,24 @@
regress_26855_test/3: Crash # Issue 26867
regress_26855_test/4: Crash # Issue 26867
-[ $compiler == dart2js && $csp && $browser && !$fast_startup ]
-conditional_import_string_test: Fail # Issue 30615
-conditional_import_test: Fail # Issue 30615
+[ $compiler == dart2js && !$dart2js_with_kernel && $minified ]
+f_bounded_quantification4_test: Fail, Pass # Issue 12605
+mixin_generic_test: Fail # Issue 12605
+symbol_conflict_test: RuntimeError # Issue 23857
+
+[ $compiler == dart2js && !$dart2js_with_kernel && !$minified ]
+vm/async_await_catch_stacktrace_test: RuntimeError
+
+[ $compiler == dart2js && $minified ]
+cyclic_type2_test: RuntimeError # Issue 31054
+cyclic_type_test/0*: RuntimeError # Issue 31054
+f_bounded_quantification5_test: RuntimeError # Issue 31054
+generic_closure_test: RuntimeError # Issue 31054
+mixin_mixin2_test: RuntimeError # Issue 31054
+mixin_mixin3_test: RuntimeError # Issue 31054
+mixin_mixin4_test: RuntimeError # Issue 31054
+mixin_mixin5_test: RuntimeError # Issue 31054
+mixin_mixin6_test: RuntimeError # Issue 31054
+mixin_mixin_bound2_test: RuntimeError # Issue 31054
+mixin_mixin_bound_test: RuntimeError # Issue 31054
+
diff --git a/tests/language_2/language_2_dartdevc.status b/tests/language_2/language_2_dartdevc.status
index 5830537..f996cb1 100644
--- a/tests/language_2/language_2_dartdevc.status
+++ b/tests/language_2/language_2_dartdevc.status
@@ -1,112 +1,8 @@
# 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 == dartdevc" or dartdevk.
-# Compiler tests for dartdevc and dartdevk. These contain common expectations
-# for all runtimes including $runtime == none. They are organized by: shared
-# expectations for dartdevc and dartdevk, then expectations for dartdevc, and
-# then expectations for dartdevk.
-[ ($compiler == dartdevc || $compiler == dartdevk) && $runtime == none ]
-unhandled_exception_negative_test: Fail
-closure_call_wrong_argument_count_negative_test: Fail
-
-# Skip Kernel tests on Windows until bot has been fixed (Issue 31539)
-[ $compiler == dartdevk && $system == windows ]
-*: Skip
-
-[ ($compiler == dartdevc && $runtime == none) || $compiler == dartdevk ]
-instantiate_type_variable_test/01: CompileTimeError
-setter_no_getter_call_test/01: CompileTimeError
-
-[ $compiler == dartdevc || $compiler == dartdevk ]
-vm/*: SkipByDesign # VM only tests.; VM only tests.
-abstract_override_adds_optional_args_concrete_subclass_test: MissingCompileTimeError # Issue #30568
-abstract_override_adds_optional_args_concrete_test: MissingCompileTimeError # Issue #30568
-abstract_override_adds_optional_args_supercall_test: MissingCompileTimeError # Issue #30568
-async_return_types_test/nestedFuture: MissingCompileTimeError
-bit_operations_test/01: MissingCompileTimeError
-bit_operations_test/02: MissingCompileTimeError
-built_in_identifier_prefix_test: CompileTimeError
-config_import_corelib_test: CompileTimeError
-field3_test/01: MissingCompileTimeError
-generic_function_type_as_type_argument_test/01: MissingCompileTimeError # Issue 29920
-generic_function_type_as_type_argument_test/02: MissingCompileTimeError # Issue 29920
-generic_list_checked_test: CompileTimeError
-generic_methods_overriding_test/01: MissingCompileTimeError # Issue 29920
-generic_methods_overriding_test/03: MissingCompileTimeError # Issue 29920
-generic_tearoff_test: CompileTimeError
-internal_library_test/02: Crash
-int64_literal_test/*: Skip # This is testing Dart 2.0 int64 semantics.
-method_override7_test/03: MissingCompileTimeError # Issue 30514
-multiline_newline_test/04: MissingCompileTimeError
-multiline_newline_test/04r: MissingCompileTimeError
-multiline_newline_test/05: MissingCompileTimeError
-multiline_newline_test/05r: MissingCompileTimeError
-override_field_test/03: MissingCompileTimeError
-override_inheritance_abstract_test/02: MissingCompileTimeError
-override_inheritance_abstract_test/03: MissingCompileTimeError
-override_inheritance_abstract_test/04: MissingCompileTimeError
-override_inheritance_abstract_test/08: MissingCompileTimeError
-override_inheritance_abstract_test/09: MissingCompileTimeError
-override_inheritance_abstract_test/10: MissingCompileTimeError
-override_inheritance_abstract_test/11: MissingCompileTimeError
-override_inheritance_abstract_test/12: MissingCompileTimeError
-override_inheritance_abstract_test/13: MissingCompileTimeError
-override_inheritance_abstract_test/14: MissingCompileTimeError
-override_inheritance_abstract_test/17: MissingCompileTimeError
-override_inheritance_abstract_test/19: MissingCompileTimeError
-override_inheritance_abstract_test/20: MissingCompileTimeError
-override_inheritance_abstract_test/21: MissingCompileTimeError
-override_inheritance_abstract_test/22: MissingCompileTimeError
-override_inheritance_abstract_test/23: MissingCompileTimeError
-override_inheritance_abstract_test/24: MissingCompileTimeError
-override_inheritance_abstract_test/25: MissingCompileTimeError
-override_inheritance_abstract_test/26: MissingCompileTimeError
-override_inheritance_no_such_method_test/13: MissingCompileTimeError
-parser_quirks_test: CompileTimeError
-regress_27617_test/1: MissingCompileTimeError
-void_type_function_types_test/none: CompileTimeError # Issue 30514
-void_type_override_test/none: CompileTimeError # Issue 30514
-void_type_usage_test/call_as: CompileTimeError # Issue 30514
-void_type_usage_test/call_for: CompileTimeError # Issue 30514
-void_type_usage_test/call_stmt: CompileTimeError # Issue 30514
-void_type_usage_test/field_assign2: CompileTimeError # Issue 30514
-void_type_usage_test/field_assign: CompileTimeError # Issue 30514
-void_type_usage_test/final_local_as: CompileTimeError # Issue 30514
-void_type_usage_test/final_local_for: CompileTimeError # Issue 30514
-void_type_usage_test/final_local_stmt: CompileTimeError # Issue 30514
-void_type_usage_test/global_as: CompileTimeError # Issue 30514
-void_type_usage_test/global_for: CompileTimeError # Issue 30514
-void_type_usage_test/global_for_in2: CompileTimeError # Issue 30514
-void_type_usage_test/global_stmt: CompileTimeError # Issue 30514
-void_type_usage_test/instance2_as: CompileTimeError # Issue 30514
-void_type_usage_test/instance2_for: CompileTimeError # Issue 30514
-void_type_usage_test/instance2_for_in3: CompileTimeError # Issue 30514
-void_type_usage_test/instance2_stmt: CompileTimeError # Issue 30514
-void_type_usage_test/instance3_as: CompileTimeError # Issue 30514
-void_type_usage_test/instance3_for: CompileTimeError # Issue 30514
-void_type_usage_test/instance3_for_in3: CompileTimeError # Issue 30514
-void_type_usage_test/instance3_stmt: CompileTimeError # Issue 30514
-void_type_usage_test/instance_as: CompileTimeError # Issue 30514
-void_type_usage_test/instance_for: CompileTimeError # Issue 30514
-void_type_usage_test/instance_stmt: CompileTimeError # Issue 30514
-void_type_usage_test/local_as: CompileTimeError # Issue 30514
-void_type_usage_test/local_assign: CompileTimeError # Issue 30514
-void_type_usage_test/local_for: CompileTimeError # Issue 30514
-void_type_usage_test/local_for_in2: CompileTimeError # Issue 30514
-void_type_usage_test/local_stmt: CompileTimeError # Issue 30514
-void_type_usage_test/none: CompileTimeError # Issue 30514
-void_type_usage_test/param_as: CompileTimeError # Issue 30514
-void_type_usage_test/param_for: CompileTimeError # Issue 30514
-void_type_usage_test/param_for_in2: CompileTimeError # Issue 30514
-void_type_usage_test/param_stmt: CompileTimeError # Issue 30514
-void_type_usage_test/paren_as: CompileTimeError # Issue 30514
-void_type_usage_test/paren_for: CompileTimeError # Issue 30514
-void_type_usage_test/paren_stmt: CompileTimeError # Issue 30514
-void_type_usage_test/setter_assign: CompileTimeError # Issue 30514
-
[ $compiler == dartdevc ]
accessor_conflict_export2_test: CompileTimeError # Issue 25626
accessor_conflict_export_test: CompileTimeError # Issue 25626
@@ -121,11 +17,14 @@
assertion_initializer_const_error2_test/none: Pass
assertion_initializer_const_function_test/01: Crash
assertion_initializer_test: CompileTimeError
-black_listed_test/none: fail # Issue 14228
+await_test: Crash # Issue 31540
+black_listed_test/none: Fail # Issue 14228
+bug31436_test: CompileTimeError
built_in_identifier_prefix_test: CompileTimeError
built_in_identifier_type_annotation_test/22: MissingCompileTimeError # Issue 28816
cascaded_forwarding_stubs_generic_test: RuntimeError
cascaded_forwarding_stubs_test: CompileTimeError
+closure_param_null_to_object_test: RuntimeError
combiner_type_lookup_indexed_test: CompileTimeError # Issue #31484
combiner_type_lookup_instance_test: CompileTimeError # Issue #31484
combiner_type_lookup_static_test: CompileTimeError # Issue #31484
@@ -146,6 +45,7 @@
final_syntax_test/02: MissingCompileTimeError
final_syntax_test/03: MissingCompileTimeError
final_syntax_test/04: MissingCompileTimeError
+forwarding_stub_tearoff_test: CompileTimeError
fuzzy_arrows_test/01: MissingCompileTimeError
generic_local_functions_test: CompileTimeError
generic_methods_closure_test: CompileTimeError # Issue 29920
@@ -224,10 +124,6 @@
void_type_callbacks_test/00: MissingCompileTimeError # Issue 30514
void_type_callbacks_test/01: MissingCompileTimeError # Issue 30514
-[ $compiler == dartdevk && $runtime == none ]
-no_such_method_negative_test: Fail
-prefix6_negative_test: Fail
-
[ $compiler == dartdevk ]
abstract_factory_constructor_test/00: MissingCompileTimeError
abstract_getter_test/01: MissingCompileTimeError
@@ -256,6 +152,7 @@
async_or_generator_return_type_stacktrace_test/03: MissingCompileTimeError
async_return_types_test/tooManyTypeParameters: MissingCompileTimeError
async_return_types_test/wrongReturnType: Crash # Maltyped input from Fasta, issue 31414
+await_test: CompileTimeError # Issue 31541
bad_named_parameters2_test/01: MissingCompileTimeError
bad_named_parameters_test/01: MissingCompileTimeError
bad_named_parameters_test/02: MissingCompileTimeError
@@ -267,6 +164,7 @@
bad_override_test/03: MissingCompileTimeError
bad_override_test/04: MissingCompileTimeError
bad_override_test/05: MissingCompileTimeError
+bug31436_test: RuntimeError
built_in_identifier_type_annotation_test/22: Crash # Crashes in Fasta, issue 31416
built_in_identifier_type_annotation_test/52: MissingCompileTimeError
built_in_identifier_type_annotation_test/53: MissingCompileTimeError
@@ -284,9 +182,9 @@
built_in_identifier_type_annotation_test/66: MissingCompileTimeError
built_in_identifier_type_annotation_test/67: MissingCompileTimeError
built_in_identifier_type_annotation_test/68: MissingCompileTimeError
+call_function2_test: CompileTimeError # Issue 31402; Error: A value of type '#lib1::Bar' can't be assigned to a variable of type '(dart.core::Object) → dart.core::Object'.
call_function_apply_test: CompileTimeError # Issue 31402 Error: A value of type '#lib1::A' can't be assigned to a variable of type 'dart.core::Function'.
call_function_test: CompileTimeError
-call_function2_test: CompileTimeError # Issue 31402; Error: A value of type '#lib1::Bar' can't be assigned to a variable of type '(dart.core::Object) → dart.core::Object'.
call_non_method_field_test/01: MissingCompileTimeError
call_non_method_field_test/02: MissingCompileTimeError
call_with_no_such_method_test: CompileTimeError # Issue 31402 Error: A value of type '#lib1::F' can't be assigned to a variable of type 'dart.core::Function'.
@@ -308,9 +206,10 @@
compile_time_constant_static3_test/04: MissingCompileTimeError
compile_time_constant_static4_test/02: MissingCompileTimeError
compile_time_constant_static4_test/03: MissingCompileTimeError
-compile_time_constant_static5_test/03: MissingCompileTimeError
-compile_time_constant_static5_test/13: MissingCompileTimeError
-compile_time_constant_static5_test/18: MissingCompileTimeError
+compile_time_constant_static5_test/11: CompileTimeError # Issue 31537
+compile_time_constant_static5_test/16: CompileTimeError # Issue 31537
+compile_time_constant_static5_test/21: CompileTimeError # Issue 31537
+compile_time_constant_static5_test/23: CompileTimeError # Issue 31537
config_import_test: CompileTimeError
const_constructor2_test/20: MissingCompileTimeError
const_constructor2_test/22: MissingCompileTimeError
@@ -387,6 +286,7 @@
export_ambiguous_main_test: MissingCompileTimeError
external_test/21: CompileTimeError
external_test/24: CompileTimeError
+extract_type_arguments_test: CompileTimeError # Issue 31371
f_bounded_quantification_test/01: MissingCompileTimeError
f_bounded_quantification_test/02: MissingCompileTimeError
factory2_test/03: MissingCompileTimeError
@@ -403,80 +303,79 @@
field_override4_test/02: MissingCompileTimeError
field_override_test/00: MissingCompileTimeError
field_override_test/01: MissingCompileTimeError
-field_override_test/none: MissingCompileTimeError
final_attempt_reinitialization_test/01: Crash
final_attempt_reinitialization_test/02: Crash
final_syntax_test/09: Crash
function_propagation_test: CompileTimeError
function_subtype_bound_closure7_test: CompileTimeError
+function_type/function_type10_test: CompileTimeError
+function_type/function_type11_test: CompileTimeError
+function_type/function_type14_test: CompileTimeError
+function_type/function_type15_test: CompileTimeError
+function_type/function_type18_test: CompileTimeError
+function_type/function_type19_test: CompileTimeError
+function_type/function_type20_test: CompileTimeError
+function_type/function_type21_test: CompileTimeError
+function_type/function_type22_test: CompileTimeError
+function_type/function_type23_test: CompileTimeError
+function_type/function_type24_test: CompileTimeError
+function_type/function_type25_test: CompileTimeError
+function_type/function_type26_test: CompileTimeError
+function_type/function_type27_test: CompileTimeError
+function_type/function_type28_test: CompileTimeError
+function_type/function_type29_test: CompileTimeError
+function_type/function_type2_test: CompileTimeError
+function_type/function_type30_test: CompileTimeError
+function_type/function_type31_test: CompileTimeError
+function_type/function_type32_test: CompileTimeError
+function_type/function_type33_test: CompileTimeError
+function_type/function_type34_test: CompileTimeError
+function_type/function_type35_test: CompileTimeError
+function_type/function_type36_test: CompileTimeError
+function_type/function_type37_test: CompileTimeError
+function_type/function_type38_test: CompileTimeError
+function_type/function_type39_test: CompileTimeError
+function_type/function_type3_test: CompileTimeError
+function_type/function_type40_test: CompileTimeError
+function_type/function_type41_test: CompileTimeError
+function_type/function_type42_test: CompileTimeError
+function_type/function_type43_test: CompileTimeError
+function_type/function_type44_test: CompileTimeError
+function_type/function_type45_test: CompileTimeError
+function_type/function_type46_test: CompileTimeError
+function_type/function_type47_test: CompileTimeError
+function_type/function_type48_test: CompileTimeError
+function_type/function_type49_test: CompileTimeError
+function_type/function_type50_test: CompileTimeError
+function_type/function_type51_test: CompileTimeError
+function_type/function_type54_test: CompileTimeError
+function_type/function_type55_test: CompileTimeError
+function_type/function_type58_test: CompileTimeError
+function_type/function_type59_test: CompileTimeError
+function_type/function_type62_test: CompileTimeError
+function_type/function_type63_test: CompileTimeError
+function_type/function_type66_test: CompileTimeError
+function_type/function_type67_test: CompileTimeError
+function_type/function_type6_test: CompileTimeError
+function_type/function_type70_test: CompileTimeError
+function_type/function_type71_test: CompileTimeError
+function_type/function_type74_test: CompileTimeError
+function_type/function_type75_test: CompileTimeError
+function_type/function_type78_test: CompileTimeError
+function_type/function_type79_test: CompileTimeError
+function_type/function_type7_test: CompileTimeError
+function_type/function_type82_test: CompileTimeError
+function_type/function_type83_test: CompileTimeError
+function_type/function_type86_test: CompileTimeError
+function_type/function_type87_test: CompileTimeError
+function_type/function_type90_test: CompileTimeError
+function_type/function_type91_test: CompileTimeError
+function_type/function_type94_test: CompileTimeError
+function_type/function_type95_test: CompileTimeError
+function_type/function_type98_test: CompileTimeError
+function_type/function_type99_test: CompileTimeError
function_type_parameter2_negative_test: Fail
function_type_parameter_negative_test: Fail
-function_type/function_type79_test: CompileTimeError
-function_type/function_type20_test: CompileTimeError
-function_type/function_type71_test: CompileTimeError
-function_type/function_type55_test: CompileTimeError
-function_type/function_type82_test: CompileTimeError
-function_type/function_type25_test: CompileTimeError
-function_type/function_type35_test: CompileTimeError
-function_type/function_type7_test: CompileTimeError
-function_type/function_type54_test: CompileTimeError
-function_type/function_type70_test: CompileTimeError
-function_type/function_type30_test: CompileTimeError
-function_type/function_type58_test: CompileTimeError
-function_type/function_type42_test: CompileTimeError
-function_type/function_type2_test: CompileTimeError
-function_type/function_type11_test: CompileTimeError
-function_type/function_type63_test: CompileTimeError
-function_type/function_type47_test: CompileTimeError
-function_type/function_type83_test: CompileTimeError
-function_type/function_type59_test: CompileTimeError
-function_type/function_type36_test: CompileTimeError
-function_type/function_type10_test: CompileTimeError
-function_type/function_type24_test: CompileTimeError
-function_type/function_type40_test: CompileTimeError
-function_type/function_type75_test: CompileTimeError
-function_type/function_type33_test: CompileTimeError
-function_type/function_type95_test: CompileTimeError
-function_type/function_type34_test: CompileTimeError
-function_type/function_type51_test: CompileTimeError
-function_type/function_type43_test: CompileTimeError
-function_type/function_type41_test: CompileTimeError
-function_type/function_type49_test: CompileTimeError
-function_type/function_type38_test: CompileTimeError
-function_type/function_type67_test: CompileTimeError
-function_type/function_type27_test: CompileTimeError
-function_type/function_type19_test: CompileTimeError
-function_type/function_type46_test: CompileTimeError
-function_type/function_type28_test: CompileTimeError
-function_type/function_type99_test: CompileTimeError
-function_type/function_type44_test: CompileTimeError
-function_type/function_type50_test: CompileTimeError
-function_type/function_type18_test: CompileTimeError
-function_type/function_type29_test: CompileTimeError
-function_type/function_type32_test: CompileTimeError
-function_type/function_type31_test: CompileTimeError
-function_type/function_type14_test: CompileTimeError
-function_type/function_type66_test: CompileTimeError
-function_type/function_type39_test: CompileTimeError
-function_type/function_type48_test: CompileTimeError
-function_type/function_type87_test: CompileTimeError
-function_type/function_type37_test: CompileTimeError
-function_type/function_type21_test: CompileTimeError
-function_type/function_type86_test: CompileTimeError
-function_type/function_type98_test: CompileTimeError
-function_type/function_type91_test: CompileTimeError
-function_type/function_type26_test: CompileTimeError
-function_type/function_type6_test: CompileTimeError
-function_type/function_type74_test: CompileTimeError
-function_type/function_type90_test: CompileTimeError
-function_type/function_type23_test: CompileTimeError
-function_type/function_type45_test: CompileTimeError
-function_type/function_type22_test: CompileTimeError
-function_type/function_type62_test: CompileTimeError
-function_type/function_type15_test: CompileTimeError
-function_type/function_type78_test: CompileTimeError
-function_type/function_type94_test: CompileTimeError
-function_type/function_type3_test: CompileTimeError
generalized_void_syntax_test: CompileTimeError
generic_function_bounds_test: CompileTimeError
generic_function_dcall_test: CompileTimeError
@@ -502,6 +401,7 @@
initializing_formal_type_annotation_test/02: MissingCompileTimeError
instance_call_wrong_argument_count_negative_test: Fail
invocation_mirror_test: CompileTimeError # Issue 31402 Error: A value of type 'dart.core::int' can't be assigned to a variable of type 'dart.core::Invocation'.
+issue13179_test: CompileTimeError # Issue 31537
issue18628_2_test/01: MissingCompileTimeError
issue_25671a_test/01: CompileTimeError # Warning: The method 'A::noSuchMethod' has fewer positional arguments than those of overridden method 'Object::noSuchMethod'.
issue_25671b_test/01: CompileTimeError # Warning: The method 'A::noSuchMethod' has fewer positional arguments than those of overridden method 'Object::noSuchMethod'.
@@ -653,7 +553,6 @@
named_parameters_test/06: MissingCompileTimeError
named_parameters_test/08: MissingCompileTimeError
named_parameters_test/10: MissingCompileTimeError
-named_parameters_type_test/01: MissingCompileTimeError
null_no_such_method_test: CompileTimeError # Issue 31533
null_test/02: MissingCompileTimeError
null_test/03: MissingCompileTimeError
@@ -714,8 +613,6 @@
override_inheritance_no_such_method_test/10: MissingCompileTimeError
override_inheritance_no_such_method_test/12: MissingCompileTimeError
override_method_with_field_test/01: MissingCompileTimeError
-positional_parameters_type_test/01: MissingCompileTimeError
-positional_parameters_type_test/02: MissingCompileTimeError
redirecting_factory_default_values_test/01: MissingCompileTimeError
redirecting_factory_default_values_test/02: MissingCompileTimeError
redirecting_factory_default_values_test/03: MissingCompileTimeError
@@ -766,6 +663,15 @@
syntax_test/32: MissingCompileTimeError
syntax_test/33: MissingCompileTimeError
try_catch_test/01: MissingCompileTimeError
+type_promotion_functions_test/02: CompileTimeError # Issue 31537
+type_promotion_functions_test/03: CompileTimeError # Issue 31537
+type_promotion_functions_test/04: CompileTimeError # Issue 31537
+type_promotion_functions_test/09: CompileTimeError # Issue 31537
+type_promotion_functions_test/11: CompileTimeError # Issue 31537
+type_promotion_functions_test/12: CompileTimeError # Issue 31537
+type_promotion_functions_test/13: CompileTimeError # Issue 31537
+type_promotion_functions_test/14: CompileTimeError # Issue 31537
+type_promotion_functions_test/none: CompileTimeError # Issue 31537
type_promotion_logical_and_test/01: MissingCompileTimeError
type_promotion_more_specific_test/04: CompileTimeError # Issue 31533
type_variable_bounds2_test: MissingCompileTimeError
@@ -783,12 +689,156 @@
void_type_callbacks_test/none: CompileTimeError
wrong_number_type_arguments_test/01: MissingCompileTimeError
+[ $compiler == dartdevc && $runtime != none ]
+async_star_test/01: RuntimeError
+async_star_test/03: RuntimeError
+async_star_test/04: RuntimeError
+async_star_test/05: RuntimeError
+async_star_test/none: RuntimeError
+await_future_test: Pass, Timeout # Issue 29920
+bit_operations_test: RuntimeError # No bigints on web.
+const_evaluation_test/01: RuntimeError # Issue 29920
+covariance_field_test/03: RuntimeError
+covariant_override/tear_off_type_test: RuntimeError # Issue 28395
+deferred_load_library_wrong_args_test/01: MissingRuntimeError, RuntimeError # Issue 29920
+execute_finally6_test: RuntimeError # Issue 29920
+expect_test: RuntimeError # Issue 29920
+f_bounded_quantification3_test: RuntimeError # Issue 29920
+final_field_initialization_order_test: RuntimeError # Issue 31058
+first_class_types_test: RuntimeError, OK # Strong mode reifies inferred type argument.
+forwarding_stub_tearoff_generic_test: RuntimeError
+fuzzy_arrows_test/03: RuntimeError # Issue 29630
+generic_method_types_test/02: RuntimeError
+getter_closure_execution_order_test: RuntimeError # Issue 29920
+implicit_downcast_during_compound_assignment_test: RuntimeError
+implicit_downcast_during_indexed_compound_assignment_test: RuntimeError
+implicit_downcast_during_indexed_if_null_assignment_test: RuntimeError
+label_test: RuntimeError
+lazy_static3_test: RuntimeError # Issue 30852
+lazy_static8_test: RuntimeError # Issue 30852
+left_shift_test: RuntimeError # Ints and doubles are unified.
+library_env_test/has_io_support: RuntimeError, OK
+library_env_test/has_mirror_support: RuntimeError, OK
+library_env_test/has_no_html_support: RuntimeError, OK
+list_is_test: RuntimeError # Issue 29920
+mixin_super_test: RuntimeError
+mixin_super_use_test: RuntimeError
+multiline_newline_test/03: RuntimeError
+multiline_newline_test/03r: RuntimeError
+multiline_newline_test/none: RuntimeError
+regress_24283_test: RuntimeError, OK # Requires 64 bit numbers.
+regress_29784_test/02: Crash # assert initializers not implemented
+stacktrace_test: RuntimeError # Issue 29920
+super_call4_test: RuntimeError
+super_no_such_method1_test: RuntimeError
+super_no_such_method2_test: RuntimeError
+super_no_such_method3_test: RuntimeError
+super_no_such_method4_test: RuntimeError
+super_operator_index5_test: RuntimeError
+super_operator_index7_test: RuntimeError
+super_operator_index8_test: RuntimeError
+truncdiv_test: RuntimeError # Issue 29920
+yieldstar_pause_test: Skip # Times out
+
+[ $compiler == dartdevk && $runtime == none ]
+no_such_method_negative_test: Fail
+prefix6_negative_test: Fail
+
+[ $compiler == dartdevk && $runtime != none ]
+callable_test/none: RuntimeError # Expect.throws(TypeError) fails: Did not throw
+conditional_import_string_test: RuntimeError # Unsupported operation: String.fromEnvironment can only be used as a const constructor
+conditional_import_test: RuntimeError # Unsupported operation: bool.fromEnvironment can only be used as a const constructor
+constant_string_interpolation2_test: RuntimeError # TypeError: Cannot read property 'Symbol(dartx.toString)' of null
+cyclic_type_test/00: RuntimeError # Expect.equals(expected: <Derived>, actual: <dynamic>) fails.
+cyclic_type_test/01: RuntimeError # Expect.equals(at index 0: Expected <Derived<Derived<int>>...>, Found: <dynamic>) fails.
+deferred_closurize_load_library_test: RuntimeError # NoSuchMethodError: method not found: 'then'
+enum_duplicate_test/01: RuntimeError # NoSuchMethodError: method not found: '<Unexpected Null Value>'
+enum_duplicate_test/02: RuntimeError # NoSuchMethodError: method not found: '<Unexpected Null Value>'
+enum_duplicate_test/none: RuntimeError # NoSuchMethodError: method not found: '<Unexpected Null Value>'
+enum_mirror_test: RuntimeError # Expect.equals(expected: <Foo.BAR>, actual: <null>) fails.
+enum_private_test/01: RuntimeError # NoSuchMethodError: method not found: '<Unexpected Null Value>'
+enum_private_test/none: RuntimeError # NoSuchMethodError: method not found: '<Unexpected Null Value>'
+enum_test: RuntimeError # NoSuchMethodError: method not found: '<Unexpected Null Value>'
+f_bounded_equality_test: RuntimeError # Expect.equals(expected: <dynamic>, actual: <Real>) fails.
+field_override_optimization_test: RuntimeError # Expect.fail('This should also be unreachable')
+first_class_types_test: RuntimeError # Expect.equals(expected: <List>, actual: <List<int>>) fails.
+forwarding_stub_tearoff_test: RuntimeError
+function_subtype_bound_closure1_test: RuntimeError # Expect.isTrue(false, 'foo is Foo') fails.
+function_subtype_bound_closure2_test: RuntimeError # ReferenceError: TAndStringToint is not defined
+function_subtype_bound_closure5_test: RuntimeError # ReferenceError: TAndStringToint is not defined
+function_subtype_bound_closure5a_test: RuntimeError # ReferenceError: TAndStringToint is not defined
+function_subtype_bound_closure6_test: RuntimeError # ReferenceError: TAndStringToint is not defined
+function_subtype_bound_closure7_test: RuntimeError # ReferenceError: TTodynamic is not defined
+function_subtype_cast0_test: RuntimeError # CastError: Casting value of type '(int) => void' to type '(dynamic) => void' which is incompatible
+function_subtype_cast2_test: RuntimeError # ReferenceError: TTovoid is not defined
+function_subtype_cast3_test: RuntimeError # ReferenceError: TTovoid is not defined
+function_subtype_checked0_test: RuntimeError # Expect.throws(TypeError) fails: Did not throw
+function_subtype_closure0_test: RuntimeError # Expect.throws(TypeError) fails: Did not throw
+function_subtype_local1_test: RuntimeError # Expect.isTrue(false, 'foo is Foo') fails.
+function_subtype_local2_test: RuntimeError # ReferenceError: TAndStringToint is not defined
+function_subtype_local5_test: RuntimeError # ReferenceError: TAndStringToint is not defined
+function_subtype_not0_test: RuntimeError # Expect.isFalse(true) fails.
+function_subtype_not2_test: RuntimeError # ReferenceError: TTovoid is not defined
+function_subtype_not3_test: RuntimeError # ReferenceError: TTovoid is not defined
+function_subtype_simple1_test: RuntimeError # Expect.isTrue(false) fails.
+function_subtype_top_level1_test: RuntimeError # ReferenceError: TAndStringToint is not defined
+function_subtype_typearg5_test: RuntimeError # ReferenceError: JSArrayOfXAndXToX is not defined
+function_type_alias2_test: RuntimeError # Expect.isTrue(false) fails.
+function_type_alias3_test: RuntimeError # TypeError: library11.Library111$ is not a function
+function_type_alias4_test: RuntimeError # Expect.isTrue(false) fails.
+function_type_alias_test: RuntimeError # Expect.isTrue(false) fails.
+generic_closure_test/01: RuntimeError # ReferenceError: TToT is not defined
+generic_closure_test/none: RuntimeError # ReferenceError: TToT is not defined
+generic_list_checked_test: RuntimeError # Expect.throws fails: Did not throw
+generic_method_types_test/02: RuntimeError
+generic_methods_type_expression_test: RuntimeError # Expect.isTrue(false) fails.
+generic_methods_unused_parameter_test: RuntimeError # Expect.isTrue(false) fails.
+generic_test: RuntimeError # ReferenceError: BOfT is not defined
+library_env_test/has_io_support: RuntimeError # Unsupported operation: bool.fromEnvironment can only be used as a const constructor
+library_env_test/has_mirror_support: RuntimeError # Unsupported operation: bool.fromEnvironment can only be used as a const constructor
+library_env_test/has_no_html_support: RuntimeError # Unsupported operation: bool.fromEnvironment can only be used as a const constructor
+method_override_test: RuntimeError # Expect.isTrue(false) fails.
+mixin_bound_test: RuntimeError
+mixin_extends_field_test: RuntimeError # Expect.equals(expected: <M1-bar>, actual: <null>) fails.
+mixin_field_test: RuntimeError # NoSuchMethodError: method not found: 'bar'
+mixin_forwarding_constructor1_test: RuntimeError # Expect.equals(expected: <2>, actual: <null>) fails.
+mixin_forwarding_constructor2_test: RuntimeError # Expect.equals(expected: <2>, actual: <null>) fails.
+mixin_forwarding_constructor3_test: RuntimeError # Expect.equals(expected: <2>, actual: <null>) fails.
+mixin_illegal_super_use_test/none: RuntimeError # TypeError: e.bar is not a function
+mixin_is_test: RuntimeError # Expect.isTrue(false) fails.
+mixin_method_test: RuntimeError # Expect.equals(expected: <M2-bar>, actual: <M1-bar>) fails.
+mixin_mixin_type_arguments_test: RuntimeError
+mixin_naming_test: RuntimeError # Expect.isTrue(false) fails.
+mixin_regress_13688_test: RuntimeError
+mixin_type_parameter5_test: RuntimeError
+mock_writable_final_field_test: RuntimeError # Expect.listEquals(list length, expected: <1>, actual: <0>) fails: Next element <123>
+mock_writable_final_private_field_test: RuntimeError
+nested_generic_closure_test: RuntimeError # Expect.equals(at index 3: Expected <...(<F>(F) => F) => void>, Found: <...(<F extends Object>(F) => F) => void...>) fails.
+recursive_generic_test: RuntimeError # Unsupported operation: bool.fromEnvironment can only be used as a const constructor
+recursive_inheritance_test: RuntimeError # Expect.isTrue(false) fails.
+redirecting_factory_long_test: RuntimeError # Expect.isTrue(false) fails.
+redirecting_factory_reflection_test: RuntimeError # UnimplementedError: node <InvalidExpression> `invalid-expression`
+regress_24283_test: RuntimeError # Expect.equals(expected: <-1>, actual: <4294967295>) fails.
+regress_30339_test: RuntimeError # Uncaught Expect.isTrue(false) fails.
+runtime_type_function_test: RuntimeError # Expect.fail('Type print string does not match expectation
+syncstar_yield_test/copyParameters: RuntimeError # Expect.equals(expected: <2>, actual: <3>) fails.
+type_literal_test: RuntimeError # Expect.equals(expected: <Func>, actual: <(bool) => int>) fails.
+yieldstar_pause_test: Timeout
+
+# Compiler tests for dartdevc and dartdevk. These contain common expectations
+# for all runtimes including $runtime == none. They are organized by: shared
+# expectations for dartdevc and dartdevk, then expectations for dartdevc, and
+# then expectations for dartdevk.
+[ $runtime == none && ($compiler == dartdevc || $compiler == dartdevk) ]
+closure_call_wrong_argument_count_negative_test: Fail
+unhandled_exception_negative_test: Fail
+
# Runtime tests for dartdevc and dartdevk. These contain expectations for tests
# that fail at run time, so they should not include $runtime == none which
# cannot fail at run time. They are organized by: shared expectations for
# dartdevc and dartdevk, then expectations for dartdevc, and then expectations
# for dartdevk.
-[ ($compiler == dartdevc || $compiler == dartdevk) && $runtime != none ]
+[ $runtime != none && ($compiler == dartdevc || $compiler == dartdevk) ]
assertion_test: RuntimeError # Issue 30326; Expect.equals(expected: <1>, actual: <0>) fails.
async_star_cancel_while_paused_test: RuntimeError # Issue 29920; Uncaught Expect.listEquals(list length, expected: <4>, actual: <3>) fails: Next element <*3>
async_star_pause_test: RuntimeError # Uncaught Expect.listEquals(at index 2, expected: <0+>, actual: <0!>) fails
@@ -889,144 +939,94 @@
switch_try_catch_test: RuntimeError # Issue 29920; Expect.throws: Unexpected 'UnimplementedError: node <ShadowContinueSwitchStatement> see https://github.com/dart-lang/sdk/issues/29352 `continue #L1;
truncdiv_test: RuntimeError # Issue 29920; Expect.throws fails: Did not throw
-[ $compiler == dartdevc && $runtime != none ]
-async_star_test/01: RuntimeError
-async_star_test/03: RuntimeError
-async_star_test/04: RuntimeError
-async_star_test/05: RuntimeError
-async_star_test/none: RuntimeError
-await_future_test: Pass, Timeout # Issue 29920
-bit_operations_test: RuntimeError # No bigints on web.
-const_evaluation_test/01: RuntimeError # Issue 29920
-covariance_field_test/03: RuntimeError
-covariant_override/tear_off_type_test: RuntimeError # Issue 28395
-deferred_load_library_wrong_args_test/01: MissingRuntimeError, RuntimeError # Issue 29920
-execute_finally6_test: RuntimeError # Issue 29920
-expect_test: RuntimeError # Issue 29920
-f_bounded_quantification3_test: RuntimeError # Issue 29920
-final_field_initialization_order_test: RuntimeError # Issue 31058
-first_class_types_test: RuntimeError, OK # Strong mode reifies inferred type argument.
-fuzzy_arrows_test/03: RuntimeError # Issue 29630
-generic_method_types_test/02: RuntimeError
-getter_closure_execution_order_test: RuntimeError # Issue 29920
-implicit_downcast_during_compound_assignment_test: RuntimeError
-implicit_downcast_during_indexed_compound_assignment_test: RuntimeError
-implicit_downcast_during_indexed_if_null_assignment_test: RuntimeError
-label_test: RuntimeError
-lazy_static3_test: RuntimeError # Issue 30852
-lazy_static8_test: RuntimeError # Issue 30852
-left_shift_test: RuntimeError # Ints and doubles are unified.
-library_env_test/has_io_support: RuntimeError, OK
-library_env_test/has_mirror_support: RuntimeError, OK
-library_env_test/has_no_html_support: RuntimeError, OK
-list_is_test: RuntimeError # Issue 29920
-mixin_super_test: RuntimeError
-mixin_super_use_test: RuntimeError
-multiline_newline_test/03: RuntimeError
-multiline_newline_test/03r: RuntimeError
-multiline_newline_test/none: RuntimeError
-regress_24283_test: RuntimeError, OK # Requires 64 bit numbers.
-regress_29784_test/02: Crash # assert initializers not implemented
-stacktrace_test: RuntimeError # Issue 29920
-super_call4_test: RuntimeError
-super_no_such_method1_test: RuntimeError
-super_no_such_method2_test: RuntimeError
-super_no_such_method3_test: RuntimeError
-super_no_such_method4_test: RuntimeError
-super_operator_index5_test: RuntimeError
-super_operator_index7_test: RuntimeError
-super_operator_index8_test: RuntimeError
-truncdiv_test: RuntimeError # Issue 29920
-yieldstar_pause_test: Skip # Times out
+[ $compiler == dartdevc || $compiler == dartdevk ]
+abstract_override_adds_optional_args_concrete_subclass_test: MissingCompileTimeError # Issue #30568
+abstract_override_adds_optional_args_concrete_test: MissingCompileTimeError # Issue #30568
+abstract_override_adds_optional_args_supercall_test: MissingCompileTimeError # Issue #30568
+async_return_types_test/nestedFuture: MissingCompileTimeError
+bit_operations_test/01: MissingCompileTimeError
+bit_operations_test/02: MissingCompileTimeError
+built_in_identifier_prefix_test: CompileTimeError
+config_import_corelib_test: CompileTimeError
+field3_test/01: MissingCompileTimeError
+generic_function_type_as_type_argument_test/01: MissingCompileTimeError # Issue 29920
+generic_function_type_as_type_argument_test/02: MissingCompileTimeError # Issue 29920
+generic_list_checked_test: CompileTimeError
+generic_methods_overriding_test/01: MissingCompileTimeError # Issue 29920
+generic_methods_overriding_test/03: MissingCompileTimeError # Issue 29920
+generic_tearoff_test: CompileTimeError
+int64_literal_test/*: Skip # This is testing Dart 2.0 int64 semantics.
+internal_library_test/02: Crash
+method_override7_test/03: MissingCompileTimeError # Issue 30514
+multiline_newline_test/04: MissingCompileTimeError
+multiline_newline_test/04r: MissingCompileTimeError
+multiline_newline_test/05: MissingCompileTimeError
+multiline_newline_test/05r: MissingCompileTimeError
+override_field_test/03: MissingCompileTimeError
+override_inheritance_abstract_test/02: MissingCompileTimeError
+override_inheritance_abstract_test/03: MissingCompileTimeError
+override_inheritance_abstract_test/04: MissingCompileTimeError
+override_inheritance_abstract_test/08: MissingCompileTimeError
+override_inheritance_abstract_test/09: MissingCompileTimeError
+override_inheritance_abstract_test/10: MissingCompileTimeError
+override_inheritance_abstract_test/11: MissingCompileTimeError
+override_inheritance_abstract_test/12: MissingCompileTimeError
+override_inheritance_abstract_test/13: MissingCompileTimeError
+override_inheritance_abstract_test/14: MissingCompileTimeError
+override_inheritance_abstract_test/17: MissingCompileTimeError
+override_inheritance_abstract_test/19: MissingCompileTimeError
+override_inheritance_abstract_test/20: MissingCompileTimeError
+override_inheritance_abstract_test/21: MissingCompileTimeError
+override_inheritance_abstract_test/22: MissingCompileTimeError
+override_inheritance_abstract_test/23: MissingCompileTimeError
+override_inheritance_abstract_test/24: MissingCompileTimeError
+override_inheritance_abstract_test/25: MissingCompileTimeError
+override_inheritance_abstract_test/26: MissingCompileTimeError
+override_inheritance_no_such_method_test/13: MissingCompileTimeError
+parser_quirks_test: CompileTimeError
+regress_27617_test/1: MissingCompileTimeError
+vm/*: SkipByDesign # VM only tests.; VM only tests.
+void_type_function_types_test/none: CompileTimeError # Issue 30514
+void_type_override_test/none: CompileTimeError # Issue 30514
+void_type_usage_test/call_as: CompileTimeError # Issue 30514
+void_type_usage_test/call_for: CompileTimeError # Issue 30514
+void_type_usage_test/call_stmt: CompileTimeError # Issue 30514
+void_type_usage_test/field_assign: CompileTimeError # Issue 30514
+void_type_usage_test/field_assign2: CompileTimeError # Issue 30514
+void_type_usage_test/final_local_as: CompileTimeError # Issue 30514
+void_type_usage_test/final_local_for: CompileTimeError # Issue 30514
+void_type_usage_test/final_local_stmt: CompileTimeError # Issue 30514
+void_type_usage_test/global_as: CompileTimeError # Issue 30514
+void_type_usage_test/global_for: CompileTimeError # Issue 30514
+void_type_usage_test/global_for_in2: CompileTimeError # Issue 30514
+void_type_usage_test/global_stmt: CompileTimeError # Issue 30514
+void_type_usage_test/instance2_as: CompileTimeError # Issue 30514
+void_type_usage_test/instance2_for: CompileTimeError # Issue 30514
+void_type_usage_test/instance2_for_in3: CompileTimeError # Issue 30514
+void_type_usage_test/instance2_stmt: CompileTimeError # Issue 30514
+void_type_usage_test/instance3_as: CompileTimeError # Issue 30514
+void_type_usage_test/instance3_for: CompileTimeError # Issue 30514
+void_type_usage_test/instance3_for_in3: CompileTimeError # Issue 30514
+void_type_usage_test/instance3_stmt: CompileTimeError # Issue 30514
+void_type_usage_test/instance_as: CompileTimeError # Issue 30514
+void_type_usage_test/instance_for: CompileTimeError # Issue 30514
+void_type_usage_test/instance_stmt: CompileTimeError # Issue 30514
+void_type_usage_test/local_as: CompileTimeError # Issue 30514
+void_type_usage_test/local_assign: CompileTimeError # Issue 30514
+void_type_usage_test/local_for: CompileTimeError # Issue 30514
+void_type_usage_test/local_for_in2: CompileTimeError # Issue 30514
+void_type_usage_test/local_stmt: CompileTimeError # Issue 30514
+void_type_usage_test/none: CompileTimeError # Issue 30514
+void_type_usage_test/param_as: CompileTimeError # Issue 30514
+void_type_usage_test/param_for: CompileTimeError # Issue 30514
+void_type_usage_test/param_for_in2: CompileTimeError # Issue 30514
+void_type_usage_test/param_stmt: CompileTimeError # Issue 30514
+void_type_usage_test/paren_as: CompileTimeError # Issue 30514
+void_type_usage_test/paren_for: CompileTimeError # Issue 30514
+void_type_usage_test/paren_stmt: CompileTimeError # Issue 30514
+void_type_usage_test/setter_assign: CompileTimeError # Issue 30514
-[ $compiler == dartdevk && $runtime != none ]
-callable_test/none: RuntimeError # Expect.throws(TypeError) fails: Did not throw
-compile_time_constant_static5_test/23: RuntimeError # Type 'A' is not a subtype of type 'B', issue 30546
-conditional_import_string_test: RuntimeError # Unsupported operation: String.fromEnvironment can only be used as a const constructor
-conditional_import_test: RuntimeError # Unsupported operation: bool.fromEnvironment can only be used as a const constructor
-constant_string_interpolation2_test: RuntimeError # TypeError: Cannot read property 'Symbol(dartx.toString)' of null
-cyclic_type_test/00: RuntimeError # Expect.equals(expected: <Derived>, actual: <dynamic>) fails.
-cyclic_type_test/01: RuntimeError # Expect.equals(at index 0: Expected <Derived<Derived<int>>...>, Found: <dynamic>) fails.
-deferred_closurize_load_library_test: RuntimeError # NoSuchMethodError: method not found: 'then'
-enum_duplicate_test/01: RuntimeError # NoSuchMethodError: method not found: '<Unexpected Null Value>'
-enum_duplicate_test/02: RuntimeError # NoSuchMethodError: method not found: '<Unexpected Null Value>'
-enum_duplicate_test/none: RuntimeError # NoSuchMethodError: method not found: '<Unexpected Null Value>'
-enum_mirror_test: RuntimeError # Expect.equals(expected: <Foo.BAR>, actual: <null>) fails.
-enum_private_test/01: RuntimeError # NoSuchMethodError: method not found: '<Unexpected Null Value>'
-enum_private_test/none: RuntimeError # NoSuchMethodError: method not found: '<Unexpected Null Value>'
-enum_test: RuntimeError # NoSuchMethodError: method not found: '<Unexpected Null Value>'
-f_bounded_equality_test: RuntimeError # Expect.equals(expected: <dynamic>, actual: <Real>) fails.
-field_override_optimization_test: RuntimeError # Expect.fail('This should also be unreachable')
-first_class_types_test: RuntimeError # Expect.equals(expected: <List>, actual: <List<int>>) fails.
-function_subtype_bound_closure1_test: RuntimeError # Expect.isTrue(false, 'foo is Foo') fails.
-function_subtype_bound_closure2_test: RuntimeError # ReferenceError: TAndStringToint is not defined
-function_subtype_bound_closure5_test: RuntimeError # ReferenceError: TAndStringToint is not defined
-function_subtype_bound_closure5a_test: RuntimeError # ReferenceError: TAndStringToint is not defined
-function_subtype_bound_closure6_test: RuntimeError # ReferenceError: TAndStringToint is not defined
-function_subtype_bound_closure7_test: RuntimeError # ReferenceError: TTodynamic is not defined
-function_subtype_cast0_test: RuntimeError # CastError: Casting value of type '(int) => void' to type '(dynamic) => void' which is incompatible
-function_subtype_cast2_test: RuntimeError # ReferenceError: TTovoid is not defined
-function_subtype_cast3_test: RuntimeError # ReferenceError: TTovoid is not defined
-function_subtype_checked0_test: RuntimeError # Expect.throws(TypeError) fails: Did not throw
-function_subtype_closure0_test: RuntimeError # Expect.throws(TypeError) fails: Did not throw
-function_subtype_local1_test: RuntimeError # Expect.isTrue(false, 'foo is Foo') fails.
-function_subtype_local2_test: RuntimeError # ReferenceError: TAndStringToint is not defined
-function_subtype_local5_test: RuntimeError # ReferenceError: TAndStringToint is not defined
-function_subtype_not0_test: RuntimeError # Expect.isFalse(true) fails.
-function_subtype_not2_test: RuntimeError # ReferenceError: TTovoid is not defined
-function_subtype_not3_test: RuntimeError # ReferenceError: TTovoid is not defined
-function_subtype_simple1_test: RuntimeError # Expect.isTrue(false) fails.
-function_subtype_top_level1_test: RuntimeError # ReferenceError: TAndStringToint is not defined
-function_subtype_typearg5_test: RuntimeError # ReferenceError: JSArrayOfXAndXToX is not defined
-function_type_alias2_test: RuntimeError # Expect.isTrue(false) fails.
-function_type_alias3_test: RuntimeError # TypeError: library11.Library111$ is not a function
-function_type_alias4_test: RuntimeError # Expect.isTrue(false) fails.
-function_type_alias_test: RuntimeError # Expect.isTrue(false) fails.
-generic_closure_test/01: RuntimeError # ReferenceError: TToT is not defined
-generic_closure_test/none: RuntimeError # ReferenceError: TToT is not defined
-generic_list_checked_test: RuntimeError # Expect.throws fails: Did not throw
-generic_method_types_test/02: RuntimeError
-generic_methods_type_expression_test: RuntimeError # Expect.isTrue(false) fails.
-generic_methods_unused_parameter_test: RuntimeError # Expect.isTrue(false) fails.
-generic_test: RuntimeError # ReferenceError: BOfT is not defined
-implicit_downcast_during_function_literal_arrow_test: RuntimeError
-issue13179_test: RuntimeError
-library_env_test/has_io_support: RuntimeError # Unsupported operation: bool.fromEnvironment can only be used as a const constructor
-library_env_test/has_mirror_support: RuntimeError # Unsupported operation: bool.fromEnvironment can only be used as a const constructor
-library_env_test/has_no_html_support: RuntimeError # Unsupported operation: bool.fromEnvironment can only be used as a const constructor
-method_override_test: RuntimeError # Expect.isTrue(false) fails.
-mixin_bound_test: RuntimeError
-mixin_extends_field_test: RuntimeError # Expect.equals(expected: <M1-bar>, actual: <null>) fails.
-mixin_field_test: RuntimeError # NoSuchMethodError: method not found: 'bar'
-mixin_forwarding_constructor1_test: RuntimeError # Expect.equals(expected: <2>, actual: <null>) fails.
-mixin_forwarding_constructor2_test: RuntimeError # Expect.equals(expected: <2>, actual: <null>) fails.
-mixin_forwarding_constructor3_test: RuntimeError # Expect.equals(expected: <2>, actual: <null>) fails.
-mixin_illegal_super_use_test/none: RuntimeError # TypeError: e.bar is not a function
-mixin_is_test: RuntimeError # Expect.isTrue(false) fails.
-mixin_method_test: RuntimeError # Expect.equals(expected: <M2-bar>, actual: <M1-bar>) fails.
-mixin_mixin_type_arguments_test: RuntimeError
-mixin_naming_test: RuntimeError # Expect.isTrue(false) fails.
-mixin_regress_13688_test: RuntimeError
-mixin_type_parameter5_test: RuntimeError
-mock_writable_final_field_test: RuntimeError # Expect.listEquals(list length, expected: <1>, actual: <0>) fails: Next element <123>
-mock_writable_final_private_field_test: RuntimeError
-nested_generic_closure_test: RuntimeError # Expect.equals(at index 3: Expected <...(<F>(F) => F) => void>, Found: <...(<F extends Object>(F) => F) => void...>) fails.
-recursive_generic_test: RuntimeError # Unsupported operation: bool.fromEnvironment can only be used as a const constructor
-recursive_inheritance_test: RuntimeError # Expect.isTrue(false) fails.
-redirecting_factory_long_test: RuntimeError # Expect.isTrue(false) fails.
-redirecting_factory_reflection_test: RuntimeError # UnimplementedError: node <InvalidExpression> `invalid-expression`
-regress_24283_test: RuntimeError # Expect.equals(expected: <-1>, actual: <4294967295>) fails.
-regress_30339_test: RuntimeError # Uncaught Expect.isTrue(false) fails.
-runtime_type_function_test: RuntimeError # Expect.fail('Type print string does not match expectation
-syncstar_yield_test/copyParameters: RuntimeError # Expect.equals(expected: <2>, actual: <3>) fails.
-type_literal_test: RuntimeError # Expect.equals(expected: <Func>, actual: <(bool) => int>) fails.
-type_promotion_functions_test/02: RuntimeError
-type_promotion_functions_test/03: RuntimeError
-type_promotion_functions_test/04: RuntimeError
-type_promotion_functions_test/09: RuntimeError
-type_promotion_functions_test/11: RuntimeError
-type_promotion_functions_test/12: RuntimeError
-type_promotion_functions_test/13: RuntimeError
-type_promotion_functions_test/14: RuntimeError
-type_promotion_functions_test/none: RuntimeError
-yieldstar_pause_test: Timeout
+[ $compiler == dartdevk || $compiler == dartdevc && $runtime == none ]
+instantiate_type_variable_test/01: CompileTimeError
+setter_no_getter_call_test/01: CompileTimeError
+
diff --git a/tests/language_2/language_2_flutter.status b/tests/language_2/language_2_flutter.status
index 051ef48..70037b4 100644
--- a/tests/language_2/language_2_flutter.status
+++ b/tests/language_2/language_2_flutter.status
@@ -1,12 +1,9 @@
# 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 "$runtime == flutter".
-
# What tests does this comment apply to? Please add it to each test's line
# or file an issue an put it there, and add the issue to the relevant tests:
-
# flutter uses --error_on_bad_type, --error_on_bad_override
# and --await_is_keyword so the following tests fail with a Compilation Error
@@ -15,6 +12,7 @@
async_await_syntax_test/a05e: CompileTimeError
async_await_syntax_test/d08c: CompileTimeError
async_await_test: CompileTimeError
+asyncstar_yield_test: Skip # Flutter Issue 9110
await_backwards_compatibility_test/none: CompileTimeError
await_for_cancel_test: Skip # Flutter Issue 9110
await_for_test: Skip # Flutter Issue 9110
@@ -24,6 +22,8 @@
call_constructor_on_unresolvable_class_test/02: CompileTimeError
call_constructor_on_unresolvable_class_test/03: CompileTimeError
call_constructor_on_unresolvable_class_test/07: CompileTimeError
+check_method_override_test/01: CompileTimeError
+check_method_override_test/02: CompileTimeError
class_keyword_test/02: CompileTimeError, MissingCompileTimeError # Issue 13627
class_override_test/00: CompileTimeError
conditional_import_string_test: CompileTimeError
@@ -83,13 +83,14 @@
factory6_test/00: CompileTimeError
field_increment_bailout_test: CompileTimeError
field_override_test/01: CompileTimeError
+function_malformed_result_type_test: CompileTimeError
generalized_void_syntax_test: CompileTimeError # Issue #30176
generic_function_typedef2_test/04: CompileTimeError
instance_creation_in_function_annotation_test: CompileTimeError
internal_library_test/01: CompileTimeError
internal_library_test/01: MissingCompileTimeError
-internal_library_test/02: CompileTimeError
internal_library_test/02: MissingCompileTimeError
+internal_library_test/02: CompileTimeError
invocation_mirror2_test: CompileTimeError
invocation_mirror_invoke_on2_test: CompileTimeError
invocation_mirror_invoke_on_test: CompileTimeError
@@ -102,7 +103,7 @@
is_not_class2_test: RuntimeError
issue21079_test: CompileTimeError
issue_25671b_test/01: CompileTimeError
-library_env_test/has_mirror_support: RuntimeError, Ok
+library_env_test/has_mirror_support: RuntimeError, OK
library_env_test/has_no_mirror_support: Pass
list_literal_syntax_test/01: CompileTimeError
list_literal_syntax_test/02: CompileTimeError
@@ -227,13 +228,10 @@
wrong_number_type_arguments_test/00: CompileTimeError
wrong_number_type_arguments_test/01: CompileTimeError
wrong_number_type_arguments_test/02: CompileTimeError
-check_method_override_test/01: CompileTimeError
-check_method_override_test/02: CompileTimeError
-function_malformed_result_type_test: CompileTimeError
-asyncstar_yield_test: Skip # Flutter Issue 9110
-[ $runtime == flutter && $compiler == none && $checked ]
+[ $arch == arm64 && $runtime == flutter ]
+large_class_declaration_test: SkipSlow # Uses too much memory.
+
+[ $compiler == none && $runtime == flutter && $checked ]
assert_initializer_test/4*: MissingCompileTimeError # Issue 392. The VM doesn't enforce that potentially const expressions are actually const expressions when the constructor is called with `const`.
-[ $runtime == flutter && $arch == arm64 ]
-large_class_declaration_test: SkipSlow # Uses too much memory.
diff --git a/tests/language_2/language_2_kernel.status b/tests/language_2/language_2_kernel.status
index dd9fc36..b8486e7 100644
--- a/tests/language_2/language_2_kernel.status
+++ b/tests/language_2/language_2_kernel.status
@@ -1,7 +1,6 @@
# 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 == dartk" or
# "$compiler == dartkp".
#
@@ -10,14 +9,147 @@
# in the existing sections, if possible keep the alphabetic ordering. If we are
# missing a section you need, please reach out to sigmund@ to see the best way
# to add them.
-
# ===== Skip dartk and darkp in !$strong mode ====
-[ $compiler == dartk && !$strong]
-*: SkipByDesign # language_2 is only supported in strong mode.
+[ $compiler == dartkp ]
+bit_operations_test: CompileTimeError # Issue 31339
+generic_no_such_method_dispatcher_test: RuntimeError # Issue 31424
+identical_closure2_test: CompileTimeError # Issue 31339
+mint_arithmetic_test: CompileTimeError # Issue 31339
+mock_writable_final_field_test: RuntimeError # Issue 31424
+no_such_method_subtype_test: RuntimeError # Issue 31424
+vm/unaligned_integer_access_literal_index_test: CompileTimeError # Issue 31339
+vm/unaligned_integer_access_register_index_test: CompileTimeError # Issue 31339
-[ $compiler == dartkp && !$strong]
-*: SkipByDesign # language_2 is only supported in strong mode.
+[ $compiler == dartk && $mode == debug && $runtime == vm && $strong ]
+const_instance_field_test/01: Crash
+cyclic_type_variable_test/01: Crash
+cyclic_type_variable_test/02: Crash
+cyclic_type_variable_test/03: Crash
+cyclic_type_variable_test/04: Crash
+cyclic_type_variable_test/none: Crash
+deopt_inlined_function_lazy_test: Skip
+flatten_test/04: Crash # Issue #31381
+tearoff_dynamic_test: Crash
+
+[ $compiler == dartk && $mode == product && $runtime == vm ]
+deferred_load_constants_test/02: Fail
+deferred_load_constants_test/03: Fail
+deferred_load_constants_test/05: Fail
+deferred_not_loaded_check_test: RuntimeError
+vm/causal_async_exception_stack2_test: SkipByDesign
+vm/causal_async_exception_stack_test: SkipByDesign
+vm/regress_27201_test: Fail
+vm/type_vm_test/28: MissingRuntimeError
+vm/type_vm_test/29: MissingRuntimeError
+vm/type_vm_test/30: MissingRuntimeError
+vm/type_vm_test/31: MissingRuntimeError
+vm/type_vm_test/32: MissingRuntimeError
+vm/type_vm_test/33: MissingRuntimeError
+vm/type_vm_test/34: MissingRuntimeError
+vm/type_vm_test/35: MissingRuntimeError
+vm/type_vm_test/36: MissingRuntimeError
+
+[ $compiler == dartk && $runtime == vm && $checked && $strong ]
+assert_initializer_test/31: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+assert_initializer_test/32: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+assert_initializer_test/33: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+assert_initializer_test/34: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+assert_initializer_test/35: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+assert_initializer_test/36: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+assert_initializer_test/37: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+assert_initializer_test/38: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+assert_initializer_test/41: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+assert_initializer_test/42: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+assert_initializer_test/43: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+assert_initializer_test/44: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+assert_initializer_test/45: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+assert_initializer_test/46: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+assert_initializer_test/47: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+assert_initializer_test/48: MissingCompileTimeError # KernelVM bug: Constant evaluation.
+assert_initializer_test/none: RuntimeError # KernelVM bug: Constant evaluation.
+assertion_initializer_const_function_test/01: RuntimeError
+assign_static_type_test/02: MissingCompileTimeError
+async_await_test/02: RuntimeError
+async_await_test/03: RuntimeError
+async_await_test/none: RuntimeError
+async_return_types_test/nestedFuture: Fail
+async_return_types_test/wrongTypeParameter: Fail
+async_star_regression_2238_test: RuntimeError
+async_star_test/01: RuntimeError
+async_star_test/03: RuntimeError
+async_star_test/04: RuntimeError
+async_star_test/05: RuntimeError
+async_star_test/none: RuntimeError
+compile_time_constant_checked_test/02: MissingCompileTimeError
+const_constructor2_test/20: MissingCompileTimeError
+const_constructor2_test/22: MissingCompileTimeError
+const_constructor2_test/24: MissingCompileTimeError
+const_init2_test/02: MissingCompileTimeError
+default_factory2_test/01: Fail
+factory_redirection_test/08: Fail
+factory_redirection_test/09: Fail
+factory_redirection_test/10: Fail
+factory_redirection_test/12: Fail
+factory_redirection_test/13: Fail
+factory_redirection_test/14: Fail
+if_null_precedence_test/none: Pass
+known_identifier_usage_error_test/none: RuntimeError # Issue 28814
+list_literal1_test/01: MissingCompileTimeError
+malbounded_redirecting_factory_test/03: Fail
+malbounded_redirecting_factory_test/04: Fail
+malbounded_type_cast_test: RuntimeError
+malbounded_type_test_test/03: Fail
+malbounded_type_test_test/04: Fail
+malformed2_test/00: RuntimeError
+malformed2_test/01: MissingCompileTimeError
+map_literal1_test/01: MissingCompileTimeError
+mixin_invalid_bound2_test/08: Fail
+mixin_invalid_bound2_test/09: Fail
+mixin_invalid_bound2_test/10: Fail
+mixin_invalid_bound_test/06: Fail
+mixin_invalid_bound_test/07: Fail
+recursive_mixin_test: Crash
+redirecting_factory_infinite_steps_test/01: Fail
+redirecting_factory_malbounded_test/01: Fail
+regress_22728_test: Fail # Dartk Issue 28498
+regress_22728_test: RuntimeError
+regress_26133_test: RuntimeError
+regress_30339_test: RuntimeError
+setter_override_test/01: MissingCompileTimeError
+setter_override_test/02: MissingCompileTimeError
+type_parameter_test/05: MissingCompileTimeError
+type_parameter_test/none: RuntimeError
+type_variable_bounds4_test/01: RuntimeError
+
+[ $compiler == dartk && $runtime == vm && !$checked && $strong ]
+bool_check_test: RuntimeError
+bool_condition_check_test: RuntimeError
+callable_test/none: RuntimeError
+checked_setter2_test: RuntimeError
+checked_setter_test: RuntimeError
+covariance_field_test/01: RuntimeError
+covariance_field_test/02: RuntimeError
+covariance_field_test/03: RuntimeError
+covariance_field_test/04: RuntimeError
+covariance_field_test/05: RuntimeError
+deferred_constraints_type_annotation_test/type_annotation1: Crash # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/type_annotation_generic1: Crash # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/type_annotation_generic4: Crash # KernelVM bug: Deferred loading kernel issue 28335.
+field_override_optimization_test: RuntimeError
+field_type_check2_test/01: MissingRuntimeError
+function_subtype_checked0_test: RuntimeError
+function_subtype_inline2_test: RuntimeError
+function_subtype_setter0_test: RuntimeError
+generic_list_checked_test: RuntimeError
+mixin_forwarding_constructor4_test/01: MissingCompileTimeError # KernelVM bug: Issue 15101
+mixin_forwarding_constructor4_test/02: MissingCompileTimeError # KernelVM bug: Issue 15101
+mixin_forwarding_constructor4_test/03: MissingCompileTimeError # KernelVM bug: Issue 15101
+private_super_constructor_test/01: MissingCompileTimeError # Fasta bug: Illegal access to private constructor.
+redirecting_factory_default_values_test/01: MissingCompileTimeError # Fasta bug: Default values are not allowed on redirecting factory constructors.
+redirecting_factory_default_values_test/02: MissingCompileTimeError # Fasta bug: Default values are not allowed on redirecting factory constructors.
+redirecting_factory_long_test: RuntimeError # Fasta bug: Bad compilation of type arguments for redirecting factory.
+regress_20394_test/01: MissingCompileTimeError # Fasta bug: Illegal access to private constructor.
# ===== dartk + vm status lines =====
[ $compiler == dartk && $runtime == vm && $strong ]
@@ -66,6 +198,7 @@
async_star_test/04: CompileTimeError # Issue 31402 (Invocation arguments)
async_star_test/05: CompileTimeError # Issue 31402 (Invocation arguments)
async_star_test/none: CompileTimeError # Issue 31402 (Invocation arguments)
+await_test: CompileTimeError # Issue 31541
bad_named_parameters2_test/01: MissingCompileTimeError
bad_named_parameters_test/01: MissingCompileTimeError
bad_named_parameters_test/02: MissingCompileTimeError
@@ -158,6 +291,9 @@
compile_time_constant_o_test/02: RuntimeError # KernelVM bug: Constant map duplicated key.
compile_time_constant_static2_test/04: MissingCompileTimeError
compile_time_constant_static3_test/04: MissingCompileTimeError
+compile_time_constant_static5_test/11: CompileTimeError # Issue 31537
+compile_time_constant_static5_test/16: CompileTimeError # Issue 31537
+compile_time_constant_static5_test/21: CompileTimeError # Issue 31537
compile_time_constant_static5_test/23: CompileTimeError # Issue 31402 (Field declaration)
conditional_import_string_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
conditional_import_string_test: DartkCompileTimeError
@@ -187,8 +323,8 @@
const_map2_test/00: MissingCompileTimeError # KernelVM bug: Constant evaluation.
const_map3_test/00: MissingCompileTimeError # KernelVM bug: Constant evaluation.
const_map4_test: RuntimeError
-const_native_factory_test/01: MissingCompileTimeError # Fasta bug: Issue 29763
const_native_factory_test: MissingCompileTimeError
+const_native_factory_test/01: MissingCompileTimeError # Fasta bug: Issue 29763
const_nested_test: RuntimeError # KernelVM bug: Constant evaluation.
const_optional_args_test/01: MissingCompileTimeError # Fasta bug: Default parameter values must be const.
const_redirecting_factory_test: CompileTimeError # Issue 31402 (Field declaration)
@@ -213,9 +349,9 @@
constructor_duplicate_final_test/01: MissingCompileTimeError
constructor_duplicate_final_test/02: MissingCompileTimeError
constructor_named_arguments_test/01: MissingCompileTimeError
+constructor_redirect1_negative_test: MissingCompileTimeError
constructor_redirect1_negative_test/01: MissingCompileTimeError
constructor_redirect1_negative_test/none: MissingCompileTimeError
-constructor_redirect1_negative_test: MissingCompileTimeError
constructor_redirect2_negative_test: MissingCompileTimeError
constructor_redirect2_test/01: MissingCompileTimeError # Fasta bug: Body on redirecting constructor.
constructor_redirect_test/01: MissingCompileTimeError # Fasta bug: Initializer refers to this.
@@ -337,6 +473,7 @@
external_test/10: MissingRuntimeError # KernelVM bug: Unbound external.
external_test/13: MissingRuntimeError # KernelVM bug: Unbound external.
external_test/20: MissingRuntimeError # KernelVM bug: Unbound external.
+extract_type_arguments_test: CompileTimeError # Issue 31371
f_bounded_quantification_test/01: MissingCompileTimeError
f_bounded_quantification_test/02: MissingCompileTimeError
factory2_test/03: MissingCompileTimeError
@@ -351,7 +488,6 @@
field_override2_test: MissingCompileTimeError
field_override_test/00: MissingCompileTimeError
field_override_test/01: MissingCompileTimeError
-field_override_test/none: MissingCompileTimeError
final_attempt_reinitialization_test/01: MissingCompileTimeError # Issue 29900
final_attempt_reinitialization_test/02: MissingCompileTimeError # Issue 29900
final_for_in_variable_test: MissingCompileTimeError
@@ -544,8 +680,6 @@
if_null_assignment_behavior_test/15: MissingCompileTimeError
if_null_evaluation_order_test: Pass
if_null_precedence_test/none: RuntimeError
-implicit_downcast_during_function_literal_arrow_test: RuntimeError # Issue #31436
-implicit_downcast_during_return_async_test: RuntimeError
implicit_this_test/01: MissingCompileTimeError
implicit_this_test/02: MissingCompileTimeError
implicit_this_test/04: MissingCompileTimeError
@@ -555,8 +689,8 @@
initializing_formal_type_annotation_test/01: MissingCompileTimeError
initializing_formal_type_annotation_test/02: MissingCompileTimeError
instanceof2_test: RuntimeError
-int64_literal_test/03: MissingCompileTimeError # http://dartbug.com/31479
-int64_literal_test/30: MissingCompileTimeError # http://dartbug.com/31479
+int64_literal_test/03: MissingCompileTimeError # http://dartbug.com/31479
+int64_literal_test/30: MissingCompileTimeError # http://dartbug.com/31479
interface_test/00: MissingCompileTimeError
invocation_mirror_test: CompileTimeError # Issue 31402 (Invocation arguments)
is_malformed_type_test/95: MissingCompileTimeError
@@ -763,7 +897,6 @@
named_parameters_test/08: MissingCompileTimeError
named_parameters_test/09: MissingCompileTimeError
named_parameters_test/10: MissingCompileTimeError
-named_parameters_type_test/01: MissingCompileTimeError
nested_generic_closure_test: RuntimeError
new_expression_type_args_test/00: MissingCompileTimeError
new_expression_type_args_test/01: MissingCompileTimeError
@@ -864,8 +997,6 @@
override_inheritance_no_such_method_test/13: MissingCompileTimeError
parser_quirks_test: CompileTimeError # Issue 31533
part2_test/01: MissingCompileTimeError
-positional_parameters_type_test/01: MissingCompileTimeError
-positional_parameters_type_test/02: MissingCompileTimeError
prefix16_test/00: MissingCompileTimeError
prefix16_test/01: MissingCompileTimeError
prefix22_test/00: MissingCompileTimeError
@@ -970,15 +1101,15 @@
type_parameter_test/07: MissingCompileTimeError
type_parameter_test/08: MissingCompileTimeError
type_parameter_test/09: MissingCompileTimeError
-type_promotion_functions_test/02: RuntimeError # Issue 31402 (Variable declaration)
-type_promotion_functions_test/03: RuntimeError # Issue 31402 (Variable declaration)
-type_promotion_functions_test/04: RuntimeError # Issue 31402 (Variable declaration)
-type_promotion_functions_test/09: RuntimeError # Issue 31402 (Variable declaration)
-type_promotion_functions_test/11: RuntimeError # Issue 31402 (Variable declaration)
-type_promotion_functions_test/12: RuntimeError # Issue 31402 (Variable declaration)
-type_promotion_functions_test/13: RuntimeError # Issue 31402 (Variable declaration)
-type_promotion_functions_test/14: RuntimeError # Issue 31402 (Variable declaration)
-type_promotion_functions_test/none: RuntimeError # Issue 31402 (Variable declaration)
+type_promotion_functions_test/02: CompileTimeError # Issue 31537
+type_promotion_functions_test/03: CompileTimeError # Issue 31537
+type_promotion_functions_test/04: CompileTimeError # Issue 31537
+type_promotion_functions_test/09: CompileTimeError # Issue 31537
+type_promotion_functions_test/11: CompileTimeError # Issue 31537
+type_promotion_functions_test/12: CompileTimeError # Issue 31537
+type_promotion_functions_test/13: CompileTimeError # Issue 31537
+type_promotion_functions_test/14: CompileTimeError # Issue 31537
+type_promotion_functions_test/none: CompileTimeError # Issue 31537
type_promotion_logical_and_test/01: MissingCompileTimeError
type_promotion_more_specific_test/04: CompileTimeError # Issue 31533
type_variable_bounds2_test: MissingCompileTimeError
@@ -1011,14 +1142,13 @@
vm/canonicalization_preserves_deopt_test: CompileTimeError # Issue 31402 (Assert statement)
vm/causal_async_exception_stack2_test: CompileTimeError # Issue 31402 (Invocation arguments)
vm/causal_async_exception_stack_test: CompileTimeError # Issue 31402 (Invocation arguments)
-vm/closure_memory_retention_test: Skip # KernelVM bug: Hits OOM
+vm/closure_memory_retention_test: Skip # KernelVM bug: Hits OOM
vm/debug_break_enabled_vm_test/01: CompileTimeError # KernelVM bug: Bad test using extended break syntax.
vm/debug_break_enabled_vm_test/none: CompileTimeError # KernelVM bug: Bad test using extended break syntax.
vm/optimized_guarded_field_isolates_test: RuntimeError # Issue 31402 (Variable declaration)
vm/regress_27201_test: CompileTimeError # Fasta/KernelVM bug: Deferred loading kernel issue 28335.
vm/regress_29145_test: Skip # Issue 29145
vm/type_cast_vm_test: RuntimeError
-vm/type_vm_test/27: MissingCompileTimeError
vm/type_vm_test/none: RuntimeError
void_block_return_test/00: MissingCompileTimeError
void_type_callbacks_test/none: CompileTimeError
@@ -1027,8 +1157,8 @@
void_type_usage_test/call_as: CompileTimeError
void_type_usage_test/call_for: CompileTimeError
void_type_usage_test/call_stmt: CompileTimeError
-void_type_usage_test/field_assign2: CompileTimeError
void_type_usage_test/field_assign: CompileTimeError
+void_type_usage_test/field_assign2: CompileTimeError
void_type_usage_test/final_local_as: CompileTimeError
void_type_usage_test/final_local_for: CompileTimeError
void_type_usage_test/final_local_stmt: CompileTimeError
@@ -1064,25 +1194,34 @@
wrong_number_type_arguments_test/*: MissingCompileTimeError
wrong_number_type_arguments_test/none: Pass
-[ $compiler == dartk && $runtime == vm && $strong && $mode == debug ]
+[ $compiler == dartk && !$strong ]
+*: SkipByDesign # language_2 is only supported in strong mode.
+
+[ $compiler == dartkp && $mode == debug && $runtime == dart_precompiled && $strong ]
+bad_named_parameters_test/01: Crash
+bad_named_parameters_test/02: Crash
+bad_named_parameters_test/05: Crash
const_instance_field_test/01: Crash
cyclic_type_variable_test/01: Crash
cyclic_type_variable_test/02: Crash
cyclic_type_variable_test/03: Crash
cyclic_type_variable_test/04: Crash
cyclic_type_variable_test/none: Crash
-deopt_inlined_function_lazy_test: Skip
-flatten_test/04: Crash # Issue #31381
+external_test/13: Crash
+final_syntax_test/09: Crash
+flatten_test/04: Crash
+optional_named_parameters_test/06: Crash
+optional_named_parameters_test/08: Crash
+regress_29025_test: Crash
tearoff_dynamic_test: Crash
+type_promotion_functions_test/05: Pass
+type_promotion_functions_test/06: Pass
+type_promotion_functions_test/07: Pass
+type_promotion_functions_test/08: Pass
+type_promotion_functions_test/10: Pass
+vm/async_await_catch_stacktrace_test: Crash
-[ $compiler == dartk && $runtime == vm && $mode == product ]
-deferred_load_constants_test/02: Fail
-deferred_load_constants_test/03: Fail
-deferred_load_constants_test/05: Fail
-deferred_not_loaded_check_test: RuntimeError
-vm/causal_async_exception_stack2_test: SkipByDesign
-vm/causal_async_exception_stack_test: SkipByDesign
-vm/regress_27201_test: Fail
+[ $compiler == dartkp && $mode == product && $runtime == dart_precompiled && $strong ]
vm/type_vm_test/28: MissingRuntimeError
vm/type_vm_test/29: MissingRuntimeError
vm/type_vm_test/30: MissingRuntimeError
@@ -1093,36 +1232,7 @@
vm/type_vm_test/35: MissingRuntimeError
vm/type_vm_test/36: MissingRuntimeError
-[ $compiler == dartk && $runtime == vm && $strong && !$checked ]
-bool_check_test: RuntimeError
-bool_condition_check_test: RuntimeError
-callable_test/none: RuntimeError
-checked_setter2_test: RuntimeError
-checked_setter_test: RuntimeError
-covariance_field_test/01: RuntimeError
-covariance_field_test/02: RuntimeError
-covariance_field_test/03: RuntimeError
-covariance_field_test/04: RuntimeError
-covariance_field_test/05: RuntimeError
-deferred_constraints_type_annotation_test/type_annotation1: Crash # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/type_annotation_generic1: Crash # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/type_annotation_generic4: Crash # KernelVM bug: Deferred loading kernel issue 28335.
-field_override_optimization_test: RuntimeError
-field_type_check2_test/01: MissingRuntimeError
-function_subtype_checked0_test: RuntimeError
-function_subtype_inline2_test: RuntimeError
-function_subtype_setter0_test: RuntimeError
-generic_list_checked_test: RuntimeError
-mixin_forwarding_constructor4_test/01: MissingCompileTimeError # KernelVM bug: Issue 15101
-mixin_forwarding_constructor4_test/02: MissingCompileTimeError # KernelVM bug: Issue 15101
-mixin_forwarding_constructor4_test/03: MissingCompileTimeError # KernelVM bug: Issue 15101
-private_super_constructor_test/01: MissingCompileTimeError # Fasta bug: Illegal access to private constructor.
-redirecting_factory_default_values_test/01: MissingCompileTimeError # Fasta bug: Default values are not allowed on redirecting factory constructors.
-redirecting_factory_default_values_test/02: MissingCompileTimeError # Fasta bug: Default values are not allowed on redirecting factory constructors.
-redirecting_factory_long_test: RuntimeError # Fasta bug: Bad compilation of type arguments for redirecting factory.
-regress_20394_test/01: MissingCompileTimeError # Fasta bug: Illegal access to private constructor.
-
-[ $compiler == dartk && $runtime == vm && $strong && $checked ]
+[ $compiler == dartkp && $runtime == dart_precompiled && $checked && $strong ]
assert_initializer_test/31: MissingCompileTimeError # KernelVM bug: Constant evaluation.
assert_initializer_test/32: MissingCompileTimeError # KernelVM bug: Constant evaluation.
assert_initializer_test/33: MissingCompileTimeError # KernelVM bug: Constant evaluation.
@@ -1140,17 +1250,12 @@
assert_initializer_test/47: MissingCompileTimeError # KernelVM bug: Constant evaluation.
assert_initializer_test/48: MissingCompileTimeError # KernelVM bug: Constant evaluation.
assert_initializer_test/none: RuntimeError # KernelVM bug: Constant evaluation.
-assertion_initializer_const_function_test/01: RuntimeError
+assertion_initializer_const_error2_test/cc02: Crash
+assertion_initializer_const_error_test/none: Crash
+assertion_initializer_const_function_test/01: Crash
+assertion_initializer_const_function_test/none: Crash
assign_static_type_test/02: MissingCompileTimeError
-async_await_test/none: RuntimeError
-async_await_test/02: RuntimeError
-async_await_test/03: RuntimeError
-async_star_regression_2238_test: RuntimeError
-async_star_test/01: RuntimeError
-async_star_test/03: RuntimeError
-async_star_test/04: RuntimeError
-async_star_test/05: RuntimeError
-async_star_test/none: RuntimeError
+async_await_test: RuntimeError
async_return_types_test/nestedFuture: Fail
async_return_types_test/wrongTypeParameter: Fail
compile_time_constant_checked_test/02: MissingCompileTimeError
@@ -1165,8 +1270,20 @@
factory_redirection_test/12: Fail
factory_redirection_test/13: Fail
factory_redirection_test/14: Fail
-if_null_precedence_test/none: Pass
-known_identifier_usage_error_test/none: RuntimeError # Issue 28814
+function_subtype_checked0_test: Pass
+function_subtype_closure0_test: Pass
+function_subtype_closure1_test: Pass
+function_subtype_factory1_test: Pass
+function_subtype_inline1_test: Pass
+function_subtype_inline2_test: Pass
+function_subtype_setter0_test: Pass
+function_type2_test: RuntimeError
+generic_functions_test: Pass # Issue 25869
+generic_local_functions_test: Pass # Issue 25869
+generic_methods_function_type_test: Pass # Issue 25869
+generic_methods_generic_function_parameter_test: Pass # Issue 25869
+generic_methods_new_test: Pass # Issue 25869
+generic_methods_test: Pass # Issue 25869
list_literal1_test/01: MissingCompileTimeError
malbounded_redirecting_factory_test/03: Fail
malbounded_redirecting_factory_test/04: Fail
@@ -1181,19 +1298,63 @@
mixin_invalid_bound2_test/10: Fail
mixin_invalid_bound_test/06: Fail
mixin_invalid_bound_test/07: Fail
-recursive_mixin_test: Crash
redirecting_factory_infinite_steps_test/01: Fail
redirecting_factory_malbounded_test/01: Fail
regress_22728_test: Fail # Dartk Issue 28498
regress_22728_test: RuntimeError
regress_26133_test: RuntimeError
-regress_30339_test: RuntimeError
+regress_30339_test: Crash
setter_override_test/01: MissingCompileTimeError
setter_override_test/02: MissingCompileTimeError
type_parameter_test/05: MissingCompileTimeError
type_parameter_test/none: RuntimeError
type_variable_bounds4_test/01: RuntimeError
+[ $compiler == dartkp && $runtime == dart_precompiled && !$checked && $strong ]
+assertion_initializer_const_error_test/01: MissingCompileTimeError
+assertion_initializer_const_function_error_test/01: MissingCompileTimeError
+callable_test/none: RuntimeError
+checked_setter2_test: RuntimeError
+checked_setter_test: RuntimeError
+covariance_field_test/01: RuntimeError
+covariance_field_test/02: RuntimeError
+covariance_field_test/03: RuntimeError
+covariance_field_test/04: RuntimeError
+covariance_field_test/05: RuntimeError
+deferred_constraints_type_annotation_test/type_annotation1: Crash # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/type_annotation_generic1: Crash # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_type_annotation_test/type_annotation_generic4: Crash # KernelVM bug: Deferred loading kernel issue 28335.
+implicit_downcast_during_assignment_test: RuntimeError
+implicit_downcast_during_combiner_test: RuntimeError
+implicit_downcast_during_compound_assignment_test: RuntimeError
+implicit_downcast_during_conditional_expression_test: RuntimeError
+implicit_downcast_during_do_test: RuntimeError
+implicit_downcast_during_for_condition_test: RuntimeError
+implicit_downcast_during_for_initializer_expression_test: RuntimeError
+implicit_downcast_during_for_initializer_var_test: RuntimeError
+implicit_downcast_during_if_null_assignment_test: RuntimeError
+implicit_downcast_during_if_statement_test: RuntimeError
+implicit_downcast_during_list_literal_test: RuntimeError
+implicit_downcast_during_logical_expression_test: RuntimeError
+implicit_downcast_during_map_literal_test: RuntimeError
+implicit_downcast_during_not_test: RuntimeError
+implicit_downcast_during_return_async_test: RuntimeError
+implicit_downcast_during_return_test: RuntimeError
+implicit_downcast_during_variable_declaration_test: RuntimeError
+implicit_downcast_during_while_statement_test: RuntimeError
+implicit_downcast_during_yield_star_test: RuntimeError
+implicit_downcast_during_yield_test: RuntimeError
+mixin_forwarding_constructor4_test/01: MissingCompileTimeError # KernelVM bug: Issue 15101
+mixin_forwarding_constructor4_test/02: MissingCompileTimeError # KernelVM bug: Issue 15101
+mixin_forwarding_constructor4_test/03: MissingCompileTimeError # KernelVM bug: Issue 15101
+private_super_constructor_test/01: MissingCompileTimeError
+redirecting_factory_default_values_test/01: MissingCompileTimeError # Fasta bug: Default values are not allowed on redirecting factory constructors.
+redirecting_factory_default_values_test/02: MissingCompileTimeError # Fasta bug: Default values are not allowed on redirecting factory constructors.
+redirecting_factory_long_test: RuntimeError # Fasta bug: Bad compilation of type arguments for redirecting factory.
+regress_20394_test/01: MissingCompileTimeError # Fasta bug: Illegal access to private constructor.
+regress_30339_test: RuntimeError
+vm/causal_async_exception_stack_test: RuntimeError
+
# ==== dartkp + dart_precompiled status lines ====
[ $compiler == dartkp && $runtime == dart_precompiled && $strong ]
abstract_beats_arguments_test: MissingCompileTimeError
@@ -1207,9 +1368,6 @@
additional_interface_adds_optional_args_concrete_subclass_test: MissingCompileTimeError
additional_interface_adds_optional_args_concrete_test: MissingCompileTimeError
additional_interface_adds_optional_args_supercall_test: MissingCompileTimeError
-argument_assignability_function_typed_test/03: RuntimeError # Issue 31402 (Invocation arguments)
-argument_assignability_function_typed_test/04: RuntimeError # Issue 31402 (Invocation arguments)
-argument_assignability_function_typed_test/05: RuntimeError # Issue 31402 (Invocation arguments)
assert_message_test: CompileTimeError # Issue 31402 (Assert statement)
assert_with_type_test_or_cast_test: Pass, Crash
assertion_initializer_const_error_test/01: Pass
@@ -1227,10 +1385,6 @@
async_await_test/02: CompileTimeError # Issue 31402 (Invocation arguments)
async_await_test/03: CompileTimeError # Issue 31402 (Invocation arguments)
async_await_test/none: CompileTimeError # Issue 31402 (Invocation arguments)
-async_congruence_local_test/none: RuntimeError
-async_congruence_method_test/none: RuntimeError
-async_congruence_top_level_test: RuntimeError
-async_congruence_unnamed_test/none: RuntimeError
async_or_generator_return_type_stacktrace_test/01: MissingCompileTimeError
async_or_generator_return_type_stacktrace_test/02: MissingCompileTimeError
async_or_generator_return_type_stacktrace_test/03: MissingCompileTimeError
@@ -1239,15 +1393,19 @@
async_return_types_test/wrongReturnType: MissingCompileTimeError
async_star_cancel_while_paused_test: RuntimeError
async_star_pause_test: Fail, OK
+async_star_regression_2238_test: RuntimeError
+async_star_regression_23116_test: RuntimeError
+async_star_regression_fisk_test: RuntimeError
async_star_test/01: CompileTimeError # Issue 2238.
async_star_test/01: Crash
async_star_test/01: Pass
-async_star_test/02: CompileTimeError # Issue 31402 (Invocation arguments)
async_star_test/02: RuntimeError
+async_star_test/02: CompileTimeError # Issue 31402 (Invocation arguments)
async_star_test/03: CompileTimeError # Issue 31402 (Invocation arguments)
async_star_test/04: CompileTimeError # Issue 31402 (Invocation arguments)
async_star_test/05: CompileTimeError # Issue 31402 (Invocation arguments)
async_star_test/none: CompileTimeError # Issue 31402 (Invocation arguments)
+await_test: CompileTimeError # Issue 31541
bad_named_parameters2_test/01: MissingCompileTimeError
bad_named_parameters_test/01: MissingCompileTimeError
bad_named_parameters_test/02: MissingCompileTimeError
@@ -1313,8 +1471,8 @@
checked_setter3_test/03: MissingCompileTimeError
class_cycle_test/02: MissingCompileTimeError
class_cycle_test/03: MissingCompileTimeError
-class_keyword_test/02: MissingCompileTimeError # Issue 13627
class_keyword_test/02: Pass
+class_keyword_test/02: MissingCompileTimeError # Issue 13627
class_literal_static_test/12: MissingCompileTimeError
class_literal_static_test/13: MissingCompileTimeError
class_literal_static_test/17: MissingCompileTimeError
@@ -1348,6 +1506,9 @@
compile_time_constant_o_test/02: RuntimeError # KernelVM bug: Constant map duplicated key.
compile_time_constant_static2_test/04: MissingCompileTimeError
compile_time_constant_static3_test/04: MissingCompileTimeError
+compile_time_constant_static5_test/11: CompileTimeError # Issue 31537
+compile_time_constant_static5_test/16: CompileTimeError # Issue 31537
+compile_time_constant_static5_test/21: CompileTimeError # Issue 31537
compile_time_constant_static5_test/23: CompileTimeError # Issue 31402 (Field declaration)
conditional_import_string_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
conditional_import_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
@@ -1375,8 +1536,8 @@
const_map2_test/00: MissingCompileTimeError # KernelVM bug: Constant evaluation.
const_map3_test/00: MissingCompileTimeError # KernelVM bug: Constant evaluation.
const_map4_test: RuntimeError
-const_native_factory_test/01: MissingCompileTimeError # Fasta bug: Issue 29763
const_native_factory_test: MissingCompileTimeError
+const_native_factory_test/01: MissingCompileTimeError # Fasta bug: Issue 29763
const_nested_test: RuntimeError # KernelVM bug: Constant evaluation.
const_optional_args_test/01: MissingCompileTimeError # Fasta bug: Default parameter values must be const.
const_redirecting_factory_test: CompileTimeError # Issue 31402 (Field declaration)
@@ -1394,6 +1555,7 @@
const_types_test/35: MissingCompileTimeError
const_types_test/39: MissingCompileTimeError
const_types_test/40: MissingCompileTimeError
+constructor12_test: RuntimeError
constructor13_test/01: MissingCompileTimeError
constructor13_test/02: MissingCompileTimeError
constructor3_test: Fail, OK, Pass
@@ -1407,7 +1569,6 @@
constructor_redirect_test/01: MissingCompileTimeError # Fasta bug: Initializer refers to this.
covariant_subtyping_test: CompileTimeError
covariant_subtyping_test: Crash
-covariant_subtyping_with_substitution_test: RuntimeError
create_unresolved_type_test/01: MissingCompileTimeError
ct_const2_test: Skip # Incompatible flag: --compile_all
ct_const_test: RuntimeError
@@ -1420,17 +1581,17 @@
cyclic_type_variable_test/03: MissingCompileTimeError
cyclic_type_variable_test/04: MissingCompileTimeError
cyclic_typedef_test/13: MissingCompileTimeError
-deep_nesting1_negative_test: Skip # Issue 31158
-deep_nesting2_negative_test: Skip # Issue 31158
+deep_nesting1_negative_test: Skip # Issue 31158
+deep_nesting2_negative_test: Skip # Issue 31158
default_factory2_test/01: MissingCompileTimeError
default_factory_test/01: MissingCompileTimeError
deferred_call_empty_before_load_test: RuntimeError # Fasta/KernelVM bug: Deferred loading kernel issue 28335.
deferred_closurize_load_library_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
deferred_constant_list_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
+deferred_constraints_constants_test: SkipByDesign
deferred_constraints_constants_test/default_argument2: Pass # Passes by mistake. KernelVM bug: Deferred loading kernel issue 28335.
deferred_constraints_constants_test/none: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
deferred_constraints_constants_test/reference_after_load: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_constants_test: SkipByDesign
deferred_constraints_type_annotation_test/as_operation: MissingCompileTimeError
deferred_constraints_type_annotation_test/as_operation: Pass
deferred_constraints_type_annotation_test/catch_check: MissingCompileTimeError
@@ -1438,8 +1599,8 @@
deferred_constraints_type_annotation_test/is_check: MissingCompileTimeError
deferred_constraints_type_annotation_test/is_check: Pass
deferred_constraints_type_annotation_test/new: CompileTimeError
-deferred_constraints_type_annotation_test/new_before_load: MissingCompileTimeError
deferred_constraints_type_annotation_test/new_before_load: Pass
+deferred_constraints_type_annotation_test/new_before_load: MissingCompileTimeError
deferred_constraints_type_annotation_test/new_generic1: CompileTimeError
deferred_constraints_type_annotation_test/new_generic2: MissingCompileTimeError
deferred_constraints_type_annotation_test/new_generic2: Pass
@@ -1454,8 +1615,8 @@
deferred_constraints_type_annotation_test/type_annotation_generic1: Pass
deferred_constraints_type_annotation_test/type_annotation_generic2: MissingCompileTimeError
deferred_constraints_type_annotation_test/type_annotation_generic2: Pass
-deferred_constraints_type_annotation_test/type_annotation_generic3: MissingCompileTimeError
deferred_constraints_type_annotation_test/type_annotation_generic3: Pass
+deferred_constraints_type_annotation_test/type_annotation_generic3: MissingCompileTimeError
deferred_constraints_type_annotation_test/type_annotation_generic4: MissingCompileTimeError
deferred_constraints_type_annotation_test/type_annotation_generic4: Pass
deferred_constraints_type_annotation_test/type_annotation_non_deferred: CompileTimeError
@@ -1496,7 +1657,6 @@
deferred_type_dependency_test/none: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
deferred_type_dependency_test/type_annotation: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
deopt_inlined_function_lazy_test: Skip # Incompatible flag: --deoptimize-alot
-disassemble_test: Crash
duplicate_export_negative_test: Fail # Issue 6134
duplicate_implements_test/01: MissingCompileTimeError
duplicate_implements_test/02: MissingCompileTimeError
@@ -1511,22 +1671,23 @@
enum_mirror_test: SkipByDesign
enum_private_test/02: MissingCompileTimeError
example_constructor_test: Fail, OK
-export_ambiguous_main_negative_test: Fail # Issue 14763
export_ambiguous_main_negative_test: Skip # Issue 29895
-export_double_same_main_test: Crash # Issue 29895
+export_ambiguous_main_negative_test: Fail # Issue 14763
export_double_same_main_test: Skip # Issue 29895
+export_double_same_main_test: Crash # Issue 29895
external_test/10: MissingRuntimeError # KernelVM bug: Unbound external.
external_test/13: MissingRuntimeError # KernelVM bug: Unbound external.
external_test/20: MissingRuntimeError # KernelVM bug: Unbound external.
external_test/21: CompileTimeError
external_test/24: CompileTimeError
+extract_type_arguments_test: CompileTimeError # Issue 31371
f_bounded_quantification_test/01: MissingCompileTimeError
f_bounded_quantification_test/02: MissingCompileTimeError
factory2_test/03: MissingCompileTimeError
factory2_test/none: MissingCompileTimeError
+factory3_test: Crash
factory3_test/01: Pass
factory3_test/none: MissingCompileTimeError
-factory3_test: Crash
factory4_test/00: MissingCompileTimeError
factory5_test/00: MissingCompileTimeError
factory6_test/00: MissingCompileTimeError
@@ -1539,7 +1700,6 @@
field_override_optimization_test: RuntimeError
field_override_test/00: MissingCompileTimeError
field_override_test/01: MissingCompileTimeError
-field_override_test/none: MissingCompileTimeError
field_type_check2_test/01: MissingRuntimeError
final_attempt_reinitialization_test/01: MissingCompileTimeError # Issue 29900
final_attempt_reinitialization_test/02: MissingCompileTimeError # Issue 29900
@@ -1563,22 +1723,33 @@
for_in_side_effects_test/01: MissingCompileTimeError
function_malformed_result_type_test/00: MissingCompileTimeError
function_propagation_test: CompileTimeError # Issue 31402 (Variable declaration)
-function_subtype_bound_closure7_test: CompileTimeError # Issue 31402 (Variable declaration)
+function_subtype3_test: RuntimeError
+function_subtype_bound_closure1_test: RuntimeError
+function_subtype_bound_closure2_test: RuntimeError
+function_subtype_bound_closure5_test: RuntimeError
+function_subtype_bound_closure5a_test: RuntimeError
+function_subtype_bound_closure6_test: RuntimeError
function_subtype_bound_closure7_test: RuntimeError
+function_subtype_bound_closure7_test: CompileTimeError # Issue 31402 (Variable declaration)
function_subtype_call1_test: RuntimeError
function_subtype_call2_test: RuntimeError
+function_subtype_cast2_test: RuntimeError
+function_subtype_cast3_test: RuntimeError
+function_subtype_checked0_test: RuntimeError
+function_subtype_inline2_test: RuntimeError
+function_subtype_local1_test: RuntimeError
+function_subtype_local2_test: RuntimeError
+function_subtype_local5_test: RuntimeError
function_subtype_named1_test: Pass
function_subtype_named1_test: RuntimeError
-function_subtype_named2_test: RuntimeError
function_subtype_not0_test: RuntimeError
function_subtype_not2_test: RuntimeError
+function_subtype_not3_test: RuntimeError
function_subtype_optional1_test: Pass
function_subtype_optional1_test: RuntimeError
-function_subtype_optional2_test: RuntimeError
function_subtype_setter0_test: RuntimeError
function_subtype_simple1_test: RuntimeError
-function_subtype_typearg2_test: RuntimeError
-function_subtype_typearg3_test: RuntimeError
+function_subtype_top_level1_test: RuntimeError
function_subtype_typearg5_test: RuntimeError
function_type/function_type0_test: RuntimeError
function_type/function_type10_test: RuntimeError
@@ -1682,12 +1853,15 @@
function_type/function_type9_test: RuntimeError
function_type2_test: RuntimeError
function_type_alias2_test: RuntimeError
+function_type_alias3_test: RuntimeError
function_type_alias4_test: RuntimeError
+function_type_alias6_test/none: RuntimeError
function_type_alias_test: RuntimeError
generalized_void_syntax_test: CompileTimeError # Issue #30176
+generic_async_star_test: RuntimeError
generic_closure_test: RuntimeError
-generic_function_bounds_test: CompileTimeError
generic_function_bounds_test: RuntimeError
+generic_function_bounds_test: CompileTimeError
generic_function_dcall_test: CompileTimeError
generic_function_dcall_test: RuntimeError
generic_function_type_as_type_argument_test/02: MissingCompileTimeError, OK # No type inference
@@ -1695,13 +1869,14 @@
generic_function_typedef2_test/04: MissingCompileTimeError
generic_function_typedef_test/01: Pass
generic_function_typedef_test/01: RuntimeError
+generic_instanceof2_test: RuntimeError
generic_instanceof_test: RuntimeError
-generic_list_checked_test: CompileTimeError # Issue 31402 (Variable declaration)
+generic_is_check_test: RuntimeError
generic_list_checked_test: RuntimeError
+generic_list_checked_test: CompileTimeError # Issue 31402 (Variable declaration)
generic_method_types_test/02: RuntimeError
generic_methods_bounds_test/01: Crash
generic_methods_bounds_test/01: MissingCompileTimeError
-generic_methods_generic_class_tearoff_test: RuntimeError
generic_methods_generic_function_result_test/01: MissingCompileTimeError
generic_methods_optional_parameters_test: Pass
generic_methods_optional_parameters_test: RuntimeError
@@ -1709,12 +1884,12 @@
generic_methods_overriding_test/03: MissingCompileTimeError
generic_methods_recursive_bound_test/02: Crash
generic_methods_recursive_bound_test/02: MissingCompileTimeError
-generic_methods_recursive_bound_test/03: Crash, Pass
-generic_methods_recursive_bound_test/03: MissingRuntimeError
generic_methods_recursive_bound_test/03: Pass
+generic_methods_recursive_bound_test/03: MissingRuntimeError
+generic_methods_recursive_bound_test/03: Crash, Pass
generic_methods_reuse_type_variables_test: Pass
-generic_methods_tearoff_specialization_test: CompileTimeError # Issue 31402 (Variable declaration)
generic_methods_tearoff_specialization_test: RuntimeError
+generic_methods_tearoff_specialization_test: CompileTimeError # Issue 31402 (Variable declaration)
generic_methods_type_expression_test: Crash
generic_methods_type_expression_test: RuntimeError # Issue 25869 / 27460
generic_methods_unused_parameter_test: CompileTimeError # Issue 31402 (Variable declaration)
@@ -1723,6 +1898,7 @@
generic_no_such_method_dispatcher_test: CompileTimeError # Issue 31533
generic_tearoff_test: CompileTimeError
generic_tearoff_test: RuntimeError
+generic_test: RuntimeError
getter_no_setter2_test/01: MissingCompileTimeError
getter_no_setter2_test/03: MissingCompileTimeError
getter_no_setter_test/01: MissingCompileTimeError
@@ -1749,7 +1925,6 @@
implicit_downcast_during_for_condition_test: Pass # Correctly passes.
implicit_downcast_during_for_initializer_expression_test: Pass # Correctly passes.
implicit_downcast_during_for_initializer_var_test: Pass # Correctly passes.
-implicit_downcast_during_function_literal_arrow_test: RuntimeError # Issue #31436
implicit_downcast_during_if_null_assignment_test: Pass # Correctly passes.
implicit_downcast_during_if_statement_test: Pass # Correctly passes.
implicit_downcast_during_list_literal_test: Pass # Correctly passes.
@@ -1776,8 +1951,8 @@
instanceof4_test/01: RuntimeError
instanceof4_test/none: Pass
instanceof4_test/none: RuntimeError
-int64_literal_test/03: MissingCompileTimeError # http://dartbug.com/31479
-int64_literal_test/30: MissingCompileTimeError # http://dartbug.com/31479
+int64_literal_test/03: MissingCompileTimeError # http://dartbug.com/31479
+int64_literal_test/30: MissingCompileTimeError # http://dartbug.com/31479
interface_test/00: MissingCompileTimeError
invocation_mirror2_test: SkipByDesign
invocation_mirror_invoke_on2_test: SkipByDesign
@@ -1824,6 +1999,7 @@
library_env_test/has_mirror_support: RuntimeError, OK
library_env_test/has_no_io_support: RuntimeError # KernelVM bug: Configurable imports.
library_env_test/has_no_io_support: RuntimeError, OK
+list_is_test: RuntimeError
list_literal_syntax_test/01: MissingCompileTimeError
list_literal_syntax_test/02: MissingCompileTimeError
list_literal_syntax_test/03: MissingCompileTimeError
@@ -1845,13 +2021,11 @@
malbounded_type_cast_test/00: MissingCompileTimeError
malbounded_type_cast_test/01: MissingCompileTimeError
malbounded_type_cast_test/02: MissingCompileTimeError
-malbounded_type_cast_test/none: RuntimeError
malbounded_type_literal_test/00: MissingCompileTimeError
malbounded_type_test2_test/00: MissingCompileTimeError
malbounded_type_test_test/00: MissingCompileTimeError
malbounded_type_test_test/01: MissingCompileTimeError
malbounded_type_test_test/02: MissingCompileTimeError
-malbounded_type_test_test/none: RuntimeError
malformed2_test/01: MissingCompileTimeError
malformed2_test/02: MissingCompileTimeError
malformed2_test/03: MissingCompileTimeError
@@ -1984,22 +2158,19 @@
mixin_type_parameters_errors_test/03: MissingCompileTimeError
mixin_type_parameters_errors_test/04: MissingCompileTimeError
mixin_type_parameters_errors_test/05: MissingCompileTimeError
-mixin_type_parameters_mixin_extends_test: RuntimeError
-mixin_type_parameters_mixin_test: RuntimeError
-mixin_type_parameters_super_extends_test: RuntimeError
-mixin_type_parameters_super_test: RuntimeError
mixin_with_two_implicit_constructors_test: MissingCompileTimeError
mock_writable_final_private_field_test: RuntimeError # Issue 30849
-multiline_strings_test: Fail # Issue 23020
multiline_strings_test: Pass
-named_constructor_test/01: MissingCompileTimeError
+multiline_strings_test: Fail # Issue 23020
named_constructor_test/01: MissingRuntimeError # Fasta bug: Bad compilation of constructor reference.
+named_constructor_test/01: MissingCompileTimeError
named_constructor_test/03: MissingCompileTimeError
named_parameters2_test: MissingCompileTimeError
named_parameters3_test: MissingCompileTimeError
named_parameters4_test: MissingCompileTimeError
named_parameters_aggregated_test/05: MissingCompileTimeError
named_parameters_default_eq_test/02: MissingCompileTimeError # Fasta bug: Default values are not allowed on redirecting factory constructors.
+named_parameters_default_eq_test/none: RuntimeError
named_parameters_test/01: MissingCompileTimeError
named_parameters_test/02: MissingCompileTimeError
named_parameters_test/03: MissingCompileTimeError
@@ -2010,8 +2181,6 @@
named_parameters_test/08: MissingCompileTimeError
named_parameters_test/09: MissingCompileTimeError
named_parameters_test/10: MissingCompileTimeError
-named_parameters_type_test/01: Crash
-named_parameters_type_test/01: MissingCompileTimeError
nested_generic_closure_test: Crash
nested_generic_closure_test: RuntimeError
new_expression_type_args_test/00: MissingCompileTimeError
@@ -2020,8 +2189,8 @@
new_prefix_test/01: MissingCompileTimeError
no_main_test/01: Skip
no_such_constructor_test/01: MissingCompileTimeError
-no_such_method_mock_test: Pass
no_such_method_mock_test: RuntimeError
+no_such_method_mock_test: Pass
no_such_method_test: SkipByDesign
not_enough_positional_arguments_test/00: MissingCompileTimeError
not_enough_positional_arguments_test/01: MissingCompileTimeError
@@ -2124,10 +2293,6 @@
override_inheritance_no_such_method_test/13: MissingCompileTimeError
parser_quirks_test: CompileTimeError # Issue 31533
part2_test/01: MissingCompileTimeError
-positional_parameters_type_test/01: Crash
-positional_parameters_type_test/01: MissingCompileTimeError
-positional_parameters_type_test/02: Crash
-positional_parameters_type_test/02: MissingCompileTimeError
positional_parameters_type_test/none: Crash
positional_parameters_type_test/none: Pass
prefix16_test/00: MissingCompileTimeError
@@ -2168,8 +2333,8 @@
regress_28217_test/none: MissingCompileTimeError # Fasta bug: Bad constructor redirection.
regress_28255_test: SkipByDesign
regress_28278_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 28335.
-regress_28341_test: Pass
regress_28341_test: RuntimeError
+regress_28341_test: Pass
regress_29025_test: CompileTimeError # Issue 31402 (Variable declaration)
regress_29405_test: CompileTimeError # Issue 31402 (Invocation arguments)
regress_29784_test/01: MissingCompileTimeError
@@ -2231,17 +2396,15 @@
type_parameter_test/07: MissingCompileTimeError
type_parameter_test/08: MissingCompileTimeError
type_parameter_test/09: MissingCompileTimeError
-type_promotion_functions_test/01: MissingCompileTimeError
-type_promotion_functions_test/01: Pass
-type_promotion_functions_test/02: Pass
-type_promotion_functions_test/03: Pass
-type_promotion_functions_test/04: Pass
-type_promotion_functions_test/09: Pass
-type_promotion_functions_test/11: Pass
-type_promotion_functions_test/12: Pass
-type_promotion_functions_test/13: Pass
-type_promotion_functions_test/14: Pass
-type_promotion_functions_test/none: Pass
+type_promotion_functions_test/02: CompileTimeError # Issue 31537
+type_promotion_functions_test/03: CompileTimeError # Issue 31537
+type_promotion_functions_test/04: CompileTimeError # Issue 31537
+type_promotion_functions_test/09: CompileTimeError # Issue 31537
+type_promotion_functions_test/11: CompileTimeError # Issue 31537
+type_promotion_functions_test/12: CompileTimeError # Issue 31537
+type_promotion_functions_test/13: CompileTimeError # Issue 31537
+type_promotion_functions_test/14: CompileTimeError # Issue 31537
+type_promotion_functions_test/none: CompileTimeError # Issue 31537
type_promotion_logical_and_test/01: MissingCompileTimeError
type_promotion_more_specific_test/04: CompileTimeError # Issue 31533
type_variable_bounds2_test: MissingCompileTimeError
@@ -2261,9 +2424,6 @@
type_variable_bounds_test/11: MissingCompileTimeError
type_variable_conflict2_test/03: MissingCompileTimeError
type_variable_conflict2_test/04: MissingCompileTimeError
-type_variable_nested_test/01: RuntimeError
-type_variable_promotion_test: Pass
-type_variable_promotion_test: RuntimeError
type_variable_scope2_test: MissingCompileTimeError
type_variable_scope_test/00: MissingCompileTimeError
type_variable_scope_test/01: MissingCompileTimeError
@@ -2272,8 +2432,6 @@
type_variable_scope_test/04: MissingCompileTimeError
type_variable_scope_test/05: MissingCompileTimeError
type_variable_static_context_test: MissingCompileTimeError
-unicode_bom_test: Fail # Issue 16067
-unicode_bom_test: Pass
unresolved_default_constructor_test/01: MissingCompileTimeError
unresolved_in_factory_test: MissingCompileTimeError
unresolved_top_level_method_test: MissingCompileTimeError
@@ -2281,19 +2439,22 @@
vm/canonicalization_preserves_deopt_test: CompileTimeError # Issue 31402 (Assert statement)
vm/causal_async_exception_stack2_test: SkipByDesign
vm/causal_async_exception_stack_test: SkipByDesign
-vm/closure_memory_retention_test: Skip # KernelVM bug: Hits OOM
+vm/closure_memory_retention_test: Skip # KernelVM bug: Hits OOM
vm/debug_break_enabled_vm_test/01: CompileTimeError # KernelVM bug: Bad test using extended break syntax.
vm/debug_break_enabled_vm_test/01: Crash, OK # Expected to hit breakpoint.
vm/debug_break_enabled_vm_test/none: CompileTimeError # KernelVM bug: Bad test using extended break syntax.
+vm/optimized_guarded_field_isolates_test: RuntimeError
vm/optimized_stacktrace_test: Crash
vm/optimized_stacktrace_test: Skip # Issue 30198
vm/reflect_core_vm_test: SkipByDesign
vm/regress_27201_test: CompileTimeError # Fasta/KernelVM bug: Deferred loading kernel issue 28335.
vm/regress_27201_test: Fail
-vm/regress_27671_test: Crash
vm/regress_27671_test: Skip # Unsupported
+vm/regress_27671_test: Crash
vm/regress_29145_test: Skip # Issue 29145
vm/type_cast_vm_test: RuntimeError # Expects line and column numbers
+vm/type_vm_test: RuntimeError, Pass # Expects line and column numbers
+vm/type_vm_test: RuntimeError # Expects line and column numbers
vm/type_vm_test/01: MissingCompileTimeError
vm/type_vm_test/02: MissingCompileTimeError
vm/type_vm_test/03: MissingCompileTimeError
@@ -2317,8 +2478,6 @@
vm/type_vm_test/30: MissingRuntimeError
vm/type_vm_test/31: MissingRuntimeError
vm/type_vm_test/32: MissingRuntimeError
-vm/type_vm_test: RuntimeError # Expects line and column numbers
-vm/type_vm_test: RuntimeError, Pass # Expects line and column numbers
void_block_return_test/00: MissingCompileTimeError
void_type_callbacks_test/none: CompileTimeError
void_type_function_types_test/none: CompileTimeError
@@ -2326,8 +2485,8 @@
void_type_usage_test/call_as: CompileTimeError
void_type_usage_test/call_for: CompileTimeError
void_type_usage_test/call_stmt: CompileTimeError
-void_type_usage_test/field_assign2: CompileTimeError
void_type_usage_test/field_assign: CompileTimeError
+void_type_usage_test/field_assign2: CompileTimeError
void_type_usage_test/final_local_as: CompileTimeError
void_type_usage_test/final_local_for: CompileTimeError
void_type_usage_test/final_local_stmt: CompileTimeError
@@ -2363,172 +2522,6 @@
wrong_number_type_arguments_test/*: MissingCompileTimeError
wrong_number_type_arguments_test/none: Pass
-[ $compiler == dartkp && $runtime == dart_precompiled && $strong && $mode == debug ]
-bad_named_parameters_test/01: Crash
-bad_named_parameters_test/02: Crash
-bad_named_parameters_test/05: Crash
-const_instance_field_test/01: Crash
-cyclic_type_variable_test/01: Crash
-cyclic_type_variable_test/02: Crash
-cyclic_type_variable_test/03: Crash
-cyclic_type_variable_test/04: Crash
-cyclic_type_variable_test/none: Crash
-external_test/13: Crash
-final_syntax_test/09: Crash
-flatten_test/04: Crash
-malbounded_type_cast_test: Crash
-optional_named_parameters_test/06: Crash
-optional_named_parameters_test/08: Crash
-regress_29025_test: Crash
-tearoff_dynamic_test: Crash
-type_promotion_functions_test/05: Pass
-type_promotion_functions_test/06: Pass
-type_promotion_functions_test/07: Pass
-type_promotion_functions_test/08: Pass
-type_promotion_functions_test/10: Pass
-vm/async_await_catch_stacktrace_test: Crash
+[ $compiler == dartkp && !$strong ]
+*: SkipByDesign # language_2 is only supported in strong mode.
-[ $compiler == dartkp && $runtime == dart_precompiled && $strong && $mode == product ]
-vm/type_vm_test/28: MissingRuntimeError
-vm/type_vm_test/29: MissingRuntimeError
-vm/type_vm_test/30: MissingRuntimeError
-vm/type_vm_test/31: MissingRuntimeError
-vm/type_vm_test/32: MissingRuntimeError
-vm/type_vm_test/33: MissingRuntimeError
-vm/type_vm_test/34: MissingRuntimeError
-vm/type_vm_test/35: MissingRuntimeError
-vm/type_vm_test/36: MissingRuntimeError
-
-[ $compiler == dartkp && $runtime == dart_precompiled && $strong && $checked ]
-assert_initializer_test/31: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-assert_initializer_test/32: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-assert_initializer_test/33: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-assert_initializer_test/34: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-assert_initializer_test/35: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-assert_initializer_test/36: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-assert_initializer_test/37: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-assert_initializer_test/38: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-assert_initializer_test/41: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-assert_initializer_test/42: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-assert_initializer_test/43: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-assert_initializer_test/44: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-assert_initializer_test/45: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-assert_initializer_test/46: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-assert_initializer_test/47: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-assert_initializer_test/48: MissingCompileTimeError # KernelVM bug: Constant evaluation.
-assert_initializer_test/none: RuntimeError # KernelVM bug: Constant evaluation.
-assertion_initializer_const_error2_test/cc02: Crash
-assertion_initializer_const_error_test/none: Crash
-assertion_initializer_const_function_test/01: Crash
-assertion_initializer_const_function_test/none: Crash
-assign_static_type_test/02: MissingCompileTimeError
-async_await_test: RuntimeError
-async_return_types_test/nestedFuture: Fail
-async_return_types_test/wrongTypeParameter: Fail
-compile_time_constant_checked_test/02: MissingCompileTimeError
-const_constructor2_test/20: MissingCompileTimeError
-const_constructor2_test/22: MissingCompileTimeError
-const_constructor2_test/24: MissingCompileTimeError
-const_init2_test/02: MissingCompileTimeError
-default_factory2_test/01: Fail
-factory_redirection_test/08: Fail
-factory_redirection_test/09: Fail
-factory_redirection_test/10: Fail
-factory_redirection_test/12: Fail
-factory_redirection_test/13: Fail
-factory_redirection_test/14: Fail
-function_subtype_checked0_test: Pass
-function_subtype_closure0_test: Pass
-function_subtype_closure1_test: Pass
-function_subtype_factory1_test: Pass
-function_subtype_inline1_test: Pass
-function_subtype_inline2_test: Pass
-function_subtype_setter0_test: Pass
-function_type2_test: RuntimeError
-generic_functions_test: Pass # Issue 25869
-generic_local_functions_test: Pass # Issue 25869
-generic_methods_function_type_test: Pass # Issue 25869
-generic_methods_generic_function_parameter_test: Pass # Issue 25869
-generic_methods_new_test: Pass # Issue 25869
-generic_methods_test: Pass # Issue 25869
-list_literal1_test/01: MissingCompileTimeError
-malbounded_redirecting_factory_test/03: Fail
-malbounded_redirecting_factory_test/04: Fail
-malbounded_type_cast_test: RuntimeError
-malbounded_type_test_test/03: Fail
-malbounded_type_test_test/04: Fail
-malformed2_test/00: RuntimeError
-malformed2_test/01: MissingCompileTimeError
-map_literal1_test/01: MissingCompileTimeError
-mixin_invalid_bound2_test/08: Fail
-mixin_invalid_bound2_test/09: Fail
-mixin_invalid_bound2_test/10: Fail
-mixin_invalid_bound_test/06: Fail
-mixin_invalid_bound_test/07: Fail
-redirecting_factory_infinite_steps_test/01: Fail
-redirecting_factory_malbounded_test/01: Fail
-regress_22728_test: Fail # Dartk Issue 28498
-regress_22728_test: RuntimeError
-regress_26133_test: RuntimeError
-regress_30339_test: Crash
-setter_override_test/01: MissingCompileTimeError
-setter_override_test/02: MissingCompileTimeError
-type_parameter_test/05: MissingCompileTimeError
-type_parameter_test/none: RuntimeError
-type_variable_bounds4_test/01: RuntimeError
-
-[ $compiler == dartkp && $runtime == dart_precompiled && $strong && !$checked ]
-assertion_initializer_const_error_test/01: MissingCompileTimeError
-assertion_initializer_const_function_error_test/01: MissingCompileTimeError
-callable_test/none: RuntimeError
-checked_setter2_test: RuntimeError
-checked_setter_test: RuntimeError
-covariance_field_test/01: RuntimeError
-covariance_field_test/02: RuntimeError
-covariance_field_test/03: RuntimeError
-covariance_field_test/04: RuntimeError
-covariance_field_test/05: RuntimeError
-covariant_override/runtime_check_test: RuntimeError
-deferred_constraints_type_annotation_test/type_annotation1: Crash # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/type_annotation_generic1: Crash # KernelVM bug: Deferred loading kernel issue 28335.
-deferred_constraints_type_annotation_test/type_annotation_generic4: Crash # KernelVM bug: Deferred loading kernel issue 28335.
-implicit_downcast_during_assignment_test: RuntimeError
-implicit_downcast_during_combiner_test: RuntimeError
-implicit_downcast_during_compound_assignment_test: RuntimeError
-implicit_downcast_during_conditional_expression_test: RuntimeError
-implicit_downcast_during_do_test: RuntimeError
-implicit_downcast_during_for_condition_test: RuntimeError
-implicit_downcast_during_for_initializer_expression_test: RuntimeError
-implicit_downcast_during_for_initializer_var_test: RuntimeError
-implicit_downcast_during_if_null_assignment_test: RuntimeError
-implicit_downcast_during_if_statement_test: RuntimeError
-implicit_downcast_during_list_literal_test: RuntimeError
-implicit_downcast_during_logical_expression_test: RuntimeError
-implicit_downcast_during_map_literal_test: RuntimeError
-implicit_downcast_during_not_test: RuntimeError
-implicit_downcast_during_return_async_test: RuntimeError
-implicit_downcast_during_return_test: RuntimeError
-implicit_downcast_during_variable_declaration_test: RuntimeError
-implicit_downcast_during_while_statement_test: RuntimeError
-implicit_downcast_during_yield_star_test: RuntimeError
-implicit_downcast_during_yield_test: RuntimeError
-mixin_forwarding_constructor4_test/01: MissingCompileTimeError # KernelVM bug: Issue 15101
-mixin_forwarding_constructor4_test/02: MissingCompileTimeError # KernelVM bug: Issue 15101
-mixin_forwarding_constructor4_test/03: MissingCompileTimeError # KernelVM bug: Issue 15101
-private_super_constructor_test/01: MissingCompileTimeError
-redirecting_factory_default_values_test/01: MissingCompileTimeError # Fasta bug: Default values are not allowed on redirecting factory constructors.
-redirecting_factory_default_values_test/02: MissingCompileTimeError # Fasta bug: Default values are not allowed on redirecting factory constructors.
-redirecting_factory_long_test: RuntimeError # Fasta bug: Bad compilation of type arguments for redirecting factory.
-regress_20394_test/01: MissingCompileTimeError # Fasta bug: Illegal access to private constructor.
-regress_30339_test: RuntimeError
-vm/causal_async_exception_stack_test: RuntimeError
-
-[ $compiler == dartkp ]
-bit_operations_test: CompileTimeError # Issue 31339
-vm/unaligned_integer_access_register_index_test: CompileTimeError # Issue 31339
-vm/unaligned_integer_access_literal_index_test: CompileTimeError # Issue 31339
-mint_arithmetic_test: CompileTimeError # Issue 31339
-identical_closure2_test: CompileTimeError # Issue 31339
-mock_writable_final_field_test: RuntimeError # Issue 31424
-no_such_method_subtype_test: RuntimeError # Issue 31424
-generic_no_such_method_dispatcher_test: RuntimeError # Issue 31424
diff --git a/tests/language_2/language_2_precompiled.status b/tests/language_2/language_2_precompiled.status
index db7e865..ec2cac1 100644
--- a/tests/language_2/language_2_precompiled.status
+++ b/tests/language_2/language_2_precompiled.status
@@ -1,12 +1,25 @@
# 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 start with "$runtime == dart_precompiled".
+[ $arch != arm && $arch != simarm64 && $arch != x64 && $compiler == precompiler && $runtime == dart_precompiled ]
+built_in_identifier_type_annotation_test/15: Crash
+
+[ $arch == arm64 && $runtime == dart_precompiled ]
+large_class_declaration_test: SkipSlow # Uses too much memory.
+setter4_test: MissingCompileTimeError
+
+[ $arch == ia32 && $runtime == dart_precompiled ]
+vm/regress_24517_test: Pass, Fail # Issue 24517.
+
+[ $arch == x64 && $compiler == precompiler && $mode == debug && $runtime == dart_precompiled ]
+built_in_identifier_type_annotation_test/15: Crash
+
+[ $compiler == precompiler && $mode == debug && $runtime == dart_precompiled ]
+regress_29025_test: Crash # Issue dartbug.com/29331
+
[ $compiler == precompiler && $runtime == dart_precompiled ]
-constructor13_test/01: MissingCompileTimeError
-constructor13_test/02: MissingCompileTimeError
abstract_beats_arguments_test: MissingCompileTimeError
abstract_exact_selector_test/01: MissingCompileTimeError
abstract_factory_constructor_test/00: MissingCompileTimeError
@@ -41,15 +54,15 @@
async_await_syntax_test/c10a: MissingCompileTimeError
async_await_syntax_test/d08b: MissingCompileTimeError
async_await_syntax_test/d10a: MissingCompileTimeError
-async_congruence_local_test/none: RuntimeError
async_congruence_local_test/01: MissingCompileTimeError
async_congruence_local_test/02: MissingCompileTimeError
-async_congruence_method_test/none: RuntimeError
+async_congruence_local_test/none: RuntimeError
async_congruence_method_test/01: MissingCompileTimeError
+async_congruence_method_test/none: RuntimeError
async_congruence_top_level_test: RuntimeError
-async_congruence_unnamed_test/none: RuntimeError
async_congruence_unnamed_test/01: MissingCompileTimeError
async_congruence_unnamed_test/02: MissingCompileTimeError
+async_congruence_unnamed_test/none: RuntimeError
async_or_generator_return_type_stacktrace_test/01: MissingCompileTimeError
async_or_generator_return_type_stacktrace_test/02: MissingCompileTimeError
async_or_generator_return_type_stacktrace_test/03: MissingCompileTimeError
@@ -73,6 +86,7 @@
bad_override_test/06: MissingCompileTimeError
bool_check_test: RuntimeError
bool_condition_check_test: RuntimeError
+bug31436_test: RuntimeError
built_in_identifier_prefix_test: CompileTimeError
call_constructor_on_unresolvable_class_test/01: MissingCompileTimeError
call_constructor_on_unresolvable_class_test/02: MissingCompileTimeError
@@ -133,6 +147,7 @@
class_literal_test/25: MissingCompileTimeError
closure_invoked_through_interface_target_field_test: MissingCompileTimeError
closure_invoked_through_interface_target_getter_test: MissingCompileTimeError
+closure_param_null_to_object_test: RuntimeError
compile_time_constant_o_test/01: MissingCompileTimeError
compile_time_constant_o_test/02: MissingCompileTimeError
conditional_method_invocation_test/05: MissingCompileTimeError
@@ -202,6 +217,9 @@
const_types_test/35: MissingCompileTimeError
const_types_test/39: MissingCompileTimeError
const_types_test/40: MissingCompileTimeError
+constructor13_test/01: MissingCompileTimeError
+constructor13_test/02: MissingCompileTimeError
+constructor3_test: Fail, OK, Pass
constructor_call_as_function_test/01: MissingCompileTimeError
covariant_override/runtime_check_test: RuntimeError
covariant_subtyping_tearoff1_test: RuntimeError
@@ -215,13 +233,16 @@
covariant_tear_off_type_test: RuntimeError
create_unresolved_type_test/01: MissingCompileTimeError
ct_const2_test: Skip # Incompatible flag: --compile_all
+cyclic_type2_test: Fail, OK # Non-contractive types are not supported in the vm.
+cyclic_type_test/02: Fail, OK # Non-contractive types are not supported in the vm.
+cyclic_type_test/04: Fail, OK # Non-contractive types are not supported in the vm.
cyclic_type_variable_test/01: MissingCompileTimeError
cyclic_type_variable_test/02: MissingCompileTimeError
cyclic_type_variable_test/03: MissingCompileTimeError
cyclic_type_variable_test/04: MissingCompileTimeError
cyclic_typedef_test/13: MissingCompileTimeError
-deep_nesting1_negative_test: Skip # Issue 31158
-deep_nesting2_negative_test: Skip # Issue 31158
+deep_nesting1_negative_test: Skip # Issue 31158
+deep_nesting2_negative_test: Skip # Issue 31158
default_factory2_test/01: MissingCompileTimeError
default_factory_test/01: MissingCompileTimeError
deferred_constraints_constants_test: SkipByDesign
@@ -240,9 +261,13 @@
deferred_constraints_type_annotation_test/type_annotation_top_level: MissingCompileTimeError
deferred_global_test: Fail
deferred_inheritance_constraints_test/redirecting_constructor: MissingCompileTimeError
+deferred_load_constants_test/02: Fail
+deferred_load_constants_test/03: Fail
+deferred_load_constants_test/05: Fail
deferred_not_loaded_check_test: RuntimeError
deferred_redirecting_factory_test: Fail, Crash # Issue 23408
deopt_inlined_function_lazy_test: Skip # Incompatible flag: --deoptimize-alot
+duplicate_export_negative_test: Fail # Issue 6134
dynamic_field_test/01: MissingCompileTimeError
dynamic_field_test/02: MissingCompileTimeError
dynamic_prefix_core_test/01: MissingCompileTimeError
@@ -252,10 +277,12 @@
enum_mirror_test: SkipByDesign
enum_private_test/02: MissingCompileTimeError
error_stacktrace_test/00: MissingCompileTimeError
+example_constructor_test: Fail, OK
export_ambiguous_main_negative_test: Fail # Issue 14763
export_ambiguous_main_negative_test: Skip # Issue 29895
export_ambiguous_main_test: Crash
export_double_same_main_test: Skip # Issue 29895
+extract_type_arguments_test: CompileTimeError # Issue 31371
f_bounded_quantification_test/01: MissingCompileTimeError
f_bounded_quantification_test/02: MissingCompileTimeError
factory1_test/00: MissingCompileTimeError
@@ -282,13 +309,16 @@
factory_return_type_checked_test/00: MissingCompileTimeError
field3_test/01: MissingCompileTimeError
field_increment_bailout_test: SkipByDesign
+field_initialization_order_test: Fail, OK
field_method4_test: MissingCompileTimeError
field_override2_test: MissingCompileTimeError
field_override_optimization_test: RuntimeError
field_override_test/00: MissingCompileTimeError
field_override_test/01: MissingCompileTimeError
+field_override_test/02: MissingCompileTimeError
field_override_test/none: MissingCompileTimeError
field_type_check2_test/01: MissingRuntimeError
+field_type_check_test/01: MissingCompileTimeError
final_for_in_variable_test: MissingCompileTimeError
final_param_test: MissingCompileTimeError
final_super_field_set_test: MissingCompileTimeError
@@ -346,6 +376,7 @@
function_type_call_getter2_test/04: MissingCompileTimeError
function_type_call_getter2_test/05: MissingCompileTimeError
fuzzy_arrows_test/01: MissingCompileTimeError
+fuzzy_arrows_test/03: RuntimeError
generalized_void_syntax_test: CompileTimeError # Issue #30176
generic_closure_test: RuntimeError
generic_constructor_mixin2_test/01: MissingCompileTimeError
@@ -398,25 +429,36 @@
if_null_assignment_static_test/02: MissingCompileTimeError
if_null_assignment_static_test/04: MissingCompileTimeError
if_null_assignment_static_test/06: MissingCompileTimeError
+if_null_assignment_static_test/07: MissingCompileTimeError
if_null_assignment_static_test/09: MissingCompileTimeError
if_null_assignment_static_test/11: MissingCompileTimeError
if_null_assignment_static_test/13: MissingCompileTimeError
+if_null_assignment_static_test/14: MissingCompileTimeError
if_null_assignment_static_test/16: MissingCompileTimeError
if_null_assignment_static_test/18: MissingCompileTimeError
if_null_assignment_static_test/20: MissingCompileTimeError
+if_null_assignment_static_test/21: MissingCompileTimeError
if_null_assignment_static_test/23: MissingCompileTimeError
if_null_assignment_static_test/25: MissingCompileTimeError
if_null_assignment_static_test/27: MissingCompileTimeError
+if_null_assignment_static_test/28: MissingCompileTimeError
if_null_assignment_static_test/30: MissingCompileTimeError
if_null_assignment_static_test/32: MissingCompileTimeError
if_null_assignment_static_test/34: MissingCompileTimeError
+if_null_assignment_static_test/35: MissingCompileTimeError
if_null_assignment_static_test/37: MissingCompileTimeError
if_null_assignment_static_test/39: MissingCompileTimeError
if_null_assignment_static_test/41: MissingCompileTimeError
+if_null_assignment_static_test/42: MissingCompileTimeError
if_null_precedence_test/06: MissingCompileTimeError
if_null_precedence_test/07: MissingCompileTimeError
if_null_precedence_test/none: RuntimeError
implicit_closure_test: Skip # Incompatible flag: --use_slow_path
+implicit_downcast_during_for_in_iterable_test: RuntimeError
+implicit_downcast_during_function_literal_arrow_test: RuntimeError
+implicit_downcast_during_function_literal_return_test: RuntimeError
+implicit_downcast_during_yield_star_test: RuntimeError
+implicit_downcast_during_yield_test: RuntimeError
implicit_this_test/01: MissingCompileTimeError
implicit_this_test/02: MissingCompileTimeError
implicit_this_test/04: MissingCompileTimeError
@@ -431,10 +473,20 @@
instanceof4_test/01: RuntimeError
instanceof4_test/none: RuntimeError
interface_test/00: MissingCompileTimeError
+invalid_cast_test/01: MissingCompileTimeError
+invalid_cast_test/02: MissingCompileTimeError
+invalid_cast_test/03: MissingCompileTimeError
+invalid_cast_test/04: MissingCompileTimeError
+invalid_cast_test/07: MissingCompileTimeError
+invalid_cast_test/08: MissingCompileTimeError
+invalid_cast_test/09: MissingCompileTimeError
+invalid_cast_test/10: MissingCompileTimeError
+invalid_cast_test/11: MissingCompileTimeError
invocation_mirror2_test: SkipByDesign
invocation_mirror_invoke_on2_test: SkipByDesign
invocation_mirror_invoke_on_test: SkipByDesign
issue21079_test: SkipByDesign
+language_2/least_upper_bound_expansive_test/none: CompileTimeError
least_upper_bound_expansive_test/none: CompileTimeError
least_upper_bound_test/03: MissingCompileTimeError
least_upper_bound_test/04: MissingCompileTimeError
@@ -457,6 +509,7 @@
list_literal1_test/01: MissingCompileTimeError
list_literal4_test/00: MissingCompileTimeError
list_literal4_test/01: MissingCompileTimeError
+list_literal4_test/03: MissingCompileTimeError
list_literal4_test/04: MissingCompileTimeError
list_literal4_test/05: MissingCompileTimeError
list_literal_syntax_test/01: MissingCompileTimeError
@@ -470,8 +523,10 @@
local_function_test/01: MissingCompileTimeError
local_function_test/02: MissingCompileTimeError
local_function_test/03: MissingCompileTimeError
+local_function_test/04: MissingCompileTimeError
local_function_test/none: RuntimeError
logical_expression3_test: MissingCompileTimeError
+main_not_a_function_test: Skip
main_test/03: RuntimeError
malbounded_instantiation_test/01: MissingCompileTimeError
malbounded_instantiation_test/02: MissingCompileTimeError
@@ -557,6 +612,8 @@
mixin_illegal_constructor_test/16: MissingCompileTimeError
mixin_illegal_static_access_test/01: MissingCompileTimeError
mixin_illegal_static_access_test/02: MissingCompileTimeError
+mixin_illegal_super_use_test: Skip # Issues 24478 and 23773
+mixin_illegal_superclass_test: Skip # Issues 24478 and 23773
mixin_illegal_syntax_test/13: MissingCompileTimeError
mixin_invalid_bound2_test/02: MissingCompileTimeError
mixin_invalid_bound2_test/03: MissingCompileTimeError
@@ -628,6 +685,7 @@
new_expression_type_args_test/01: MissingCompileTimeError
new_expression_type_args_test/02: MissingCompileTimeError
new_prefix_test/01: MissingCompileTimeError
+no_main_test/01: Skip
no_such_constructor_test/01: MissingCompileTimeError
no_such_method_mock_test: RuntimeError
no_such_method_test: SkipByDesign
@@ -747,7 +805,10 @@
regress_17382_test: MissingCompileTimeError
regress_18535_test: SkipByDesign
regress_19413_test: MissingCompileTimeError
+regress_19728_test: MissingCompileTimeError
regress_21793_test/01: MissingCompileTimeError
+regress_21912_test/01: MissingCompileTimeError
+regress_21912_test/02: MissingCompileTimeError
regress_22438_test: MissingCompileTimeError
regress_22936_test: MissingCompileTimeError
regress_23089_test: MissingCompileTimeError
@@ -808,6 +869,7 @@
super_operator_index_test/05: MissingCompileTimeError
super_operator_index_test/06: MissingCompileTimeError
super_operator_index_test/07: MissingCompileTimeError
+super_test: Fail, OK
switch_fallthru_test/01: MissingCompileTimeError
symbol_literal_test/01: MissingCompileTimeError
sync_generator1_test/01: MissingCompileTimeError
@@ -821,6 +883,11 @@
type_checks_in_factory_method_test/01: MissingCompileTimeError
type_parameter_test/05: MissingCompileTimeError
type_promotion_functions_test/01: MissingCompileTimeError
+type_promotion_functions_test/05: MissingCompileTimeError
+type_promotion_functions_test/06: MissingCompileTimeError
+type_promotion_functions_test/07: MissingCompileTimeError
+type_promotion_functions_test/08: MissingCompileTimeError
+type_promotion_functions_test/10: MissingCompileTimeError
type_promotion_parameter_test/01: MissingCompileTimeError
type_promotion_parameter_test/02: MissingCompileTimeError
type_promotion_parameter_test/03: MissingCompileTimeError
@@ -923,54 +990,12 @@
vm/reflect_core_vm_test: SkipByDesign
vm/regress_27201_test: Fail
vm/regress_27671_test: Skip # Unsupported
+vm/regress_29145_test: Skip # Issue 29145
vm/type_cast_vm_test: RuntimeError # Expects line and column numbers
-vm/type_vm_test: RuntimeError # Expects line and column numbers
vm/type_vm_test: RuntimeError, Pass # Expects line and column numbers
+vm/type_vm_test: RuntimeError # Expects line and column numbers
void_block_return_test/00: MissingCompileTimeError
wrong_number_type_arguments_test/*: MissingCompileTimeError
-cyclic_type_test/02: Fail, OK # Non-contractive types are not supported in the vm.
-cyclic_type_test/04: Fail, OK # Non-contractive types are not supported in the vm.
-cyclic_type2_test: Fail, OK # Non-contractive types are not supported in the vm.
-language_2/least_upper_bound_expansive_test/none: CompileTimeError
-duplicate_export_negative_test: Fail # Issue 6134
-example_constructor_test: Fail, OK
-field_initialization_order_test: Fail, OK
-no_main_test/01: Skip
-constructor3_test: Fail, OK, Pass
-main_not_a_function_test: Skip
-mixin_illegal_super_use_test: Skip # Issues 24478 and 23773
-mixin_illegal_superclass_test: Skip # Issues 24478 and 23773
-super_test: Fail, OK
-vm/regress_29145_test: Skip # Issue 29145
-
-[ $compiler == precompiler && $runtime == dart_precompiled ]
-deferred_load_constants_test/02: Fail
-deferred_load_constants_test/03: Fail
-deferred_load_constants_test/05: Fail
-field_override_test/02: MissingCompileTimeError
-field_type_check_test/01: MissingCompileTimeError
-fuzzy_arrows_test/03: RuntimeError
-if_null_assignment_static_test/07: MissingCompileTimeError
-if_null_assignment_static_test/14: MissingCompileTimeError
-if_null_assignment_static_test/21: MissingCompileTimeError
-if_null_assignment_static_test/28: MissingCompileTimeError
-if_null_assignment_static_test/35: MissingCompileTimeError
-if_null_assignment_static_test/42: MissingCompileTimeError
-implicit_downcast_during_for_in_iterable_test: RuntimeError
-implicit_downcast_during_function_literal_arrow_test: RuntimeError
-implicit_downcast_during_function_literal_return_test: RuntimeError
-implicit_downcast_during_yield_star_test: RuntimeError
-implicit_downcast_during_yield_test: RuntimeError
-list_literal4_test/03: MissingCompileTimeError
-local_function_test/04: MissingCompileTimeError
-regress_19728_test: MissingCompileTimeError
-regress_21912_test/01: MissingCompileTimeError
-regress_21912_test/02: MissingCompileTimeError
-type_promotion_functions_test/05: MissingCompileTimeError
-type_promotion_functions_test/06: MissingCompileTimeError
-type_promotion_functions_test/07: MissingCompileTimeError
-type_promotion_functions_test/08: MissingCompileTimeError
-type_promotion_functions_test/10: MissingCompileTimeError
[ $compiler == precompiler && $runtime == dart_precompiled && $checked ]
covariance_type_parameter_test/01: RuntimeError
@@ -986,11 +1011,11 @@
function_subtype_regression_ddc_588_test: Pass
function_subtype_setter0_test: Pass
generic_functions_test: Pass # Issue 25869
+generic_local_functions_test: Pass # Issue 25869
generic_methods_function_type_test: Pass # Issue 25869
generic_methods_generic_function_parameter_test: Pass # Issue 25869
-generic_methods_test: Pass # Issue 25869
generic_methods_new_test: Pass # Issue 25869
-generic_local_functions_test: Pass # Issue 25869
+generic_methods_test: Pass # Issue 25869
[ $compiler == precompiler && $runtime == dart_precompiled && !$checked ]
assertion_initializer_const_error_test/01: MissingCompileTimeError
@@ -1020,6 +1045,8 @@
covariance_type_parameter_test/01: RuntimeError
covariance_type_parameter_test/02: RuntimeError
covariance_type_parameter_test/03: RuntimeError
+forwarding_stub_tearoff_generic_test: RuntimeError
+forwarding_stub_tearoff_test: RuntimeError
function_type_call_getter2_test/none: RuntimeError
function_type_test: RuntimeError
generic_field_mixin6_test/none: RuntimeError
@@ -1061,28 +1088,16 @@
type_argument_in_super_type_test: RuntimeError
type_check_const_function_typedef2_test: MissingCompileTimeError
-[ $compiler == precompiler && $runtime == dart_precompiled && $arch != arm && $arch != simarm64 && $arch != x64 ]
-built_in_identifier_type_annotation_test/15: Crash
-
-[ $compiler == precompiler && $runtime == dart_precompiled && $arch == x64 && $mode == debug ]
-built_in_identifier_type_annotation_test/15: Crash
-
-[ $runtime == dart_precompiled && $arch == arm64 ]
-large_class_declaration_test: SkipSlow # Uses too much memory.
-setter4_test: MissingCompileTimeError
-
-[ $runtime == dart_precompiled && $arch == ia32 ]
-vm/regress_24517_test: Pass, Fail # Issue 24517.
-
[ $runtime == dart_precompiled && $minified ]
cyclic_type_test/*: Skip
-enum_duplicate_test/*: Skip # Uses Enum.toString()
-enum_private_test/*: Skip # Uses Enum.toString()
-enum_test: Skip # Uses Enum.toString()
+enum_duplicate_test/*: Skip # Uses Enum.toString()
+enum_private_test/*: Skip # Uses Enum.toString()
+enum_test: Skip # Uses Enum.toString()
f_bounded_quantification4_test: Skip
f_bounded_quantification5_test: Skip
full_stacktrace1_test: Skip
full_stacktrace2_test: Skip
+full_stacktrace3_test: Skip
mixin_generic_test: Skip
mixin_mixin2_test: Skip
mixin_mixin3_test: Skip
@@ -1091,14 +1106,11 @@
mixin_mixin_bound2_test: Skip
mixin_mixin_type_arguments_test: Skip
mixin_super_2_test: Skip
-no_such_method_dispatcher_test: Skip # Uses new Symbol()
+no_such_method_dispatcher_test: Skip # Uses new Symbol()
stacktrace_rethrow_error_test: Skip
stacktrace_rethrow_nonerror_test: Skip
vm/no_such_args_error_message_vm_test: Skip
vm/no_such_method_error_message_callable_vm_test: Skip
vm/no_such_method_error_message_vm_test: Skip
-vm/regress_28325_test:Skip
-full_stacktrace3_test: Skip
+vm/regress_28325_test: Skip
-[ $compiler == precompiler && $runtime == dart_precompiled && $mode == debug ]
-regress_29025_test: Crash # Issue dartbug.com/29331
diff --git a/tests/language_2/language_2_spec_parser.status b/tests/language_2/language_2_spec_parser.status
index d53f7c4..55eb1d2 100644
--- a/tests/language_2/language_2_spec_parser.status
+++ b/tests/language_2/language_2_spec_parser.status
@@ -3,53 +3,55 @@
# BSD-style license that can be found in the LICENSE file.
[ $compiler == spec_parser ]
-
-getter_declaration_negative_test: Fail # Negative, uses getter with parameter.
-interface_injection1_negative_test: Fail # Negative, uses interface injection.
-interface_injection2_negative_test: Fail # Negative, uses interface injection.
-issue1578_negative_test: Fail # Negative, is line noise.
-is_not_class1_negative_test: Fail # Negative, uses `a is "A"`.
-is_not_class4_negative_test: Fail # Negative, uses `a is A is A`.
-label8_negative_test: Fail # Negative, uses misplaced label.
-list_literal_negative_test: Fail # Negative, uses `new List<int>[1, 2]`.
-map_literal_negative_test: Fail # Negative, uses `new Map<int>{..}`.
-new_expression1_negative_test: Fail # Negative, uses `new id`.
-new_expression2_negative_test: Fail # Negative, uses `new id(`.
-new_expression3_negative_test: Fail # Negative, uses `new id(...`.
-operator1_negative_test: Fail # Negative, declares static operator.
-operator2_negative_test: Fail # Negative, declares `operator ===`.
-prefix18_negative_test: Fail # Negative, uses `lib1.invalid` as library prefix.
-string_escape4_negative_test: Fail # Negative, uses newline in string literal.
-string_interpolate1_negative_test: Fail # Negative, misplaced '$'.
-string_interpolate2_negative_test: Fail # Negative, misplaced '$'.
-switch1_negative_test: Fail # Negative, `default` clause not last.
-test_negative_test: Fail # Negative, uses non-terminated string literal.
-unary_plus_negative_test: Fail # Negative, uses non-existing unary plus.
-unhandled_exception_negative_test: Fail # Negative, defaults required parameter.
-
+built_in_identifier_prefix_test: Skip # A built-in identifier can _not_ be a prefix.
+closure_type_test: Pass # Marked as RuntimeError for all in language_2.status.
+conditional_import_string_test: Fail # Uses conditional import.
+conditional_import_test: Fail # Uses conditional import.
+config_import_corelib_test: Fail # Uses conditional import.
+config_import_test: Fail # Uses conditional import.
+const_native_factory_test: Skip # Uses `native`.
constructor_call_wrong_argument_count_negative_test: Skip # Negative, not syntax.
constructor_redirect1_negative_test/01: Skip # Negative, not syntax.
constructor_redirect1_negative_test/none: Skip # Negative, not syntax.
constructor_redirect2_negative_test: Skip # Negative, not syntax.
constructor_setter_negative_test: Skip # Negative, not syntax.
+deep_nesting1_negative_test: Skip # Stack overflow.
+deep_nesting2_negative_test: Skip # Stack overflow.
+double_invalid_test: Skip # Contains illegaly formatted double.
duplicate_export_negative_test: Skip # Negative, not syntax.
duplicate_interface_negative_test: Skip # Negative, not syntax.
+external_test/21: Fail # Test expects `runtime error`, it is a syntax error.
+getter_declaration_negative_test: Fail # Negative, uses getter with parameter.
inst_field_initializer1_negative_test: Skip # Negative, not syntax.
instance_call_wrong_argument_count_negative_test: Skip # Negative, not syntax.
instance_method2_negative_test: Skip # Negative, not syntax.
instance_method_negative_test: Skip # Negative, not syntax.
interface2_negative_test: Skip # Negative, not syntax.
+interface_injection1_negative_test: Fail # Negative, uses interface injection.
+interface_injection2_negative_test: Fail # Negative, uses interface injection.
interface_static_method_negative_test: Skip # Negative, not syntax.
interface_static_non_final_fields_negative_test: Skip # Negative, not syntax.
+is_not_class1_negative_test: Fail # Negative, uses `a is "A"`.
+is_not_class4_negative_test: Fail # Negative, uses `a is A is A`.
+issue1578_negative_test: Fail # Negative, is line noise.
+issue_1751477_test: Skip # Times out: 9 levels, exponential blowup => 430 secs.
label2_negative_test: Skip # Negative, not syntax.
label3_negative_test: Skip # Negative, not syntax.
label5_negative_test: Skip # Negative, not syntax.
label6_negative_test: Skip # Negative, not syntax.
+label8_negative_test: Fail # Negative, uses misplaced label.
library_negative_test: Skip # Negative, not syntax.
list_literal2_negative_test: Skip # Negative, not syntax.
+list_literal_negative_test: Fail # Negative, uses `new List<int>[1, 2]`.
map_literal2_negative_test: Skip # Negative, not syntax.
+map_literal_negative_test: Fail # Negative, uses `new Map<int>{..}`.
+new_expression1_negative_test: Fail # Negative, uses `new id`.
+new_expression2_negative_test: Fail # Negative, uses `new id(`.
+new_expression3_negative_test: Fail # Negative, uses `new id(...`.
no_such_method_negative_test: Skip # Negative, not syntax.
non_const_super_negative_test: Skip # Negative, not syntax.
+operator1_negative_test: Fail # Negative, declares static operator.
+operator2_negative_test: Fail # Negative, declares `operator ===`.
override_field_method1_negative_test: Skip # Negative, not syntax.
override_field_method2_negative_test: Skip # Negative, not syntax.
override_field_method4_negative_test: Skip # Negative, not syntax.
@@ -64,6 +66,7 @@
prefix12_negative_test: Skip # Negative, not syntax.
prefix13_negative_test: Skip # Negative, not syntax.
prefix15_negative_test: Skip # Negative, not syntax.
+prefix18_negative_test: Fail # Negative, uses `lib1.invalid` as library prefix.
prefix1_negative_test: Skip # Negative, not syntax.
prefix2_negative_test: Skip # Negative, not syntax.
prefix3_negative_test: Skip # Negative, not syntax.
@@ -77,31 +80,19 @@
private_member3_negative_test: Skip # Negative, not syntax.
script1_negative_test: Skip # Negative, not syntax.
script2_negative_test: Skip # Negative, not syntax.
+string_escape4_negative_test: Fail # Negative, uses newline in string literal.
+string_interpolate1_negative_test: Fail # Negative, misplaced '$'.
+string_interpolate2_negative_test: Fail # Negative, misplaced '$'.
string_unicode1_negative_test: Skip # Negative, not syntax.
string_unicode2_negative_test: Skip # Negative, not syntax.
string_unicode3_negative_test: Skip # Negative, not syntax.
string_unicode4_negative_test: Skip # Negative, not syntax.
+switch1_negative_test: Fail # Negative, `default` clause not last.
+test_negative_test: Fail # Negative, uses non-terminated string literal.
+unary_plus_negative_test: Fail # Negative, uses non-existing unary plus.
+unhandled_exception_negative_test: Fail # Negative, defaults required parameter.
unhandled_exception_negative_test: Skip # Negative, not syntax.
-
-double_invalid_test: Skip # Contains illegaly formatted double.
-
-const_native_factory_test: Skip # Uses `native`.
-
-built_in_identifier_prefix_test: Skip # A built-in identifier can _not_ be a prefix.
-
-external_test/21: Fail # Test expects `runtime error`, it is a syntax error.
-
-conditional_import_string_test: Fail # Uses conditional import.
-conditional_import_test: Fail # Uses conditional import.
-config_import_corelib_test: Fail # Uses conditional import.
-config_import_test: Fail # Uses conditional import.
vm/debug_break_enabled_vm_test/01: Fail # Uses debug break.
vm/debug_break_enabled_vm_test/none: Fail # Uses debug break.
-
void_type_function_types_test: Skip # Not yet supported.
-deep_nesting1_negative_test: Skip # Stack overflow.
-deep_nesting2_negative_test: Skip # Stack overflow.
-issue_1751477_test: Skip # Times out: 9 levels, exponential blowup => 430 secs.
-
-closure_type_test: Pass # Marked as RuntimeError for all in language_2.status.
diff --git a/tests/language_2/language_2_vm.status b/tests/language_2/language_2_vm.status
index e7acdb5..2af057b 100644
--- a/tests/language_2/language_2_vm.status
+++ b/tests/language_2/language_2_vm.status
@@ -1,11 +1,106 @@
# 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 "$runtime == vm".
+[ $arch == arm64 && $runtime == vm ]
+closure_cycles_test: Pass, Slow
+large_class_declaration_test: SkipSlow # Uses too much memory.
+
+[ $arch == ia32 && $compiler == app_jit && $runtime == vm ]
+vm/regress_24517_test: Pass, Fail # Issue 24517.
+
+[ $arch == ia32 && $compiler == none && $runtime == vm ]
+vm/regress_24517_test: Pass, Fail # Issue 24517.
+
+[ $arch == ia32 && $compiler == none && $runtime == vm && $system == windows ]
+vm/optimized_stacktrace_test: Pass, Crash # Issue 28276
+
+[ $arch == ia32 && $mode == release && $runtime == vm ]
+deep_nesting1_negative_test: Crash, Pass # Issue 31496
+
+[ $compiler == app_jit && $mode != product && $runtime == vm ]
+vm/type_vm_test/none: RuntimeError
+
+[ $compiler == app_jit && $runtime == vm ]
+async_star_cancel_while_paused_test: RuntimeError
+async_star_pause_test: Fail, OK
+async_star_regression_2238_test: CompileTimeError, RuntimeError
+class_keyword_test/02: MissingCompileTimeError # Issue 13627
+constructor3_test: Fail, OK, Pass
+ct_const2_test: Skip # Incompatible flag: --compile_all
+cyclic_type2_test: Fail, OK
+cyclic_type_test/02: Fail, OK
+cyclic_type_test/04: Fail, OK
+deferred_load_constants_test/02: Fail
+deferred_load_constants_test/03: Fail
+deferred_load_constants_test/05: Fail
+deferred_not_loaded_check_test: RuntimeError
+deferred_redirecting_factory_test: Fail, Crash # Issue 23408
+duplicate_export_negative_test: Fail # Issue 6134
+dynamic_prefix_core_test/01: RuntimeError # Issue 12478
+example_constructor_test: Fail, OK
+export_ambiguous_main_negative_test: Fail # Issue 14763
+field_initialization_order_test: Fail, OK
+generalized_void_syntax_test: CompileTimeError # Issue #30176
+generic_methods_type_expression_test: RuntimeError # Issue 25869 / 27460
+hello_dart_test: Skip # Incompatible flag: --compile_all
+language_2/least_upper_bound_expansive_test/none: CompileTimeError
+library_env_test/has_html_support: RuntimeError, OK
+library_env_test/has_no_io_support: RuntimeError, OK
+main_not_a_function_test: Skip
+mixin_illegal_super_use_test: Skip # Issues 24478 and 23773
+mixin_illegal_superclass_test: Skip # Issues 24478 and 23773
+multiline_strings_test: Fail # Issue 23020
+no_main_test/01: Skip
+regress_21793_test/01: MissingCompileTimeError
+regress_23408_test: Crash
+super_test: Fail, OK
+type_parameter_test/05: MissingCompileTimeError
+type_variable_scope_test/03: MissingCompileTimeError
+unicode_bom_test: Fail # Issue 16067
+vm/debug_break_enabled_vm_test/01: Crash, OK # Expected to hit breakpoint.
+vm/regress_27201_test: Fail
+vm/regress_29145_test: Skip # Issue 29145
+vm/type_cast_vm_test: RuntimeError # Expects line and column numbers
+
+[ $compiler == app_jit && $runtime == vm && $checked ]
+generic_functions_test: Pass # Issue 25869
+generic_local_functions_test: Pass # Issue 25869
+generic_methods_function_type_test: Pass # Issue 25869
+generic_methods_generic_function_parameter_test: Pass # Issue 25869
+generic_methods_new_test: Pass # Issue 25869
+generic_methods_test: Pass # Issue 25869
+
+[ $compiler == app_jit && $runtime == vm && !$checked ]
+assertion_initializer_const_error_test/01: MissingCompileTimeError
+generic_methods_bounds_test/02: MissingRuntimeError
+generic_methods_dynamic_test/02: MissingRuntimeError
+generic_methods_dynamic_test/04: MissingRuntimeError
+
+[ $compiler != dartk && $mode == debug && $runtime == vm && $checked ]
+tearoff_dynamic_test: Crash
+
+[ $compiler != dartk && $mode == product && $runtime == vm ]
+deferred_load_constants_test/02: Fail
+deferred_load_constants_test/03: Fail
+deferred_load_constants_test/05: Fail
+deferred_not_loaded_check_test: RuntimeError
+vm/causal_async_exception_stack2_test: SkipByDesign
+vm/causal_async_exception_stack_test: SkipByDesign
+vm/regress_27201_test: Fail
+vm/type_vm_test/28: MissingRuntimeError
+vm/type_vm_test/29: MissingRuntimeError
+vm/type_vm_test/30: MissingRuntimeError
+vm/type_vm_test/31: MissingRuntimeError
+vm/type_vm_test/32: MissingRuntimeError
+vm/type_vm_test/33: MissingRuntimeError
+vm/type_vm_test/34: MissingRuntimeError
+vm/type_vm_test/35: MissingRuntimeError
+vm/type_vm_test/36: MissingRuntimeError
+
# The VM does not implement the Dart 2.0 static type errors yet.
-[ $runtime == vm && $compiler != dartk ]
+[ $compiler != dartk && $runtime == vm ]
abstract_beats_arguments_test: MissingCompileTimeError
abstract_exact_selector_test/01: MissingCompileTimeError
abstract_factory_constructor_test/00: MissingCompileTimeError
@@ -42,9 +137,13 @@
async_await_syntax_test/d10a: MissingCompileTimeError
async_congruence_local_test/01: MissingCompileTimeError
async_congruence_local_test/02: MissingCompileTimeError
+async_congruence_local_test/none: RuntimeError
async_congruence_method_test/01: MissingCompileTimeError
+async_congruence_method_test/none: RuntimeError
+async_congruence_top_level_test: RuntimeError
async_congruence_unnamed_test/01: MissingCompileTimeError
async_congruence_unnamed_test/02: MissingCompileTimeError
+async_congruence_unnamed_test/none: RuntimeError
async_or_generator_return_type_stacktrace_test/01: MissingCompileTimeError
async_or_generator_return_type_stacktrace_test/02: MissingCompileTimeError
async_or_generator_return_type_stacktrace_test/03: MissingCompileTimeError
@@ -63,6 +162,7 @@
bad_override_test/01: MissingCompileTimeError
bad_override_test/02: MissingCompileTimeError
bad_override_test/06: MissingCompileTimeError
+bug31436_test: RuntimeError
built_in_identifier_prefix_test: CompileTimeError
call_constructor_on_unresolvable_class_test/01: MissingCompileTimeError
call_constructor_on_unresolvable_class_test/02: MissingCompileTimeError
@@ -119,6 +219,7 @@
class_literal_test/25: MissingCompileTimeError
closure_invoked_through_interface_target_field_test: MissingCompileTimeError
closure_invoked_through_interface_target_getter_test: MissingCompileTimeError
+closure_param_null_to_object_test: RuntimeError
compile_time_constant_o_test/01: MissingCompileTimeError
compile_time_constant_o_test/02: MissingCompileTimeError
conditional_method_invocation_test/05: MissingCompileTimeError
@@ -178,6 +279,7 @@
constructor13_test/01: MissingCompileTimeError
constructor13_test/02: MissingCompileTimeError
constructor_call_as_function_test/01: MissingCompileTimeError
+covariant_override/runtime_check_test: RuntimeError
covariant_tear_off_type_test: RuntimeError
create_unresolved_type_test/01: MissingCompileTimeError
cyclic_type_variable_test/01: MissingCompileTimeError
@@ -209,6 +311,7 @@
enum_private_test/02: MissingCompileTimeError
error_stacktrace_test/00: MissingCompileTimeError
export_ambiguous_main_test: MissingCompileTimeError
+extract_type_arguments_test: CompileTimeError # Issue 31371
f_bounded_quantification_test/01: MissingCompileTimeError
f_bounded_quantification_test/02: MissingCompileTimeError
factory1_test/00: MissingCompileTimeError
@@ -238,7 +341,9 @@
field_override2_test: MissingCompileTimeError
field_override_test/00: MissingCompileTimeError
field_override_test/01: MissingCompileTimeError
+field_override_test/02: MissingCompileTimeError
field_override_test/none: MissingCompileTimeError
+field_type_check_test/01: MissingCompileTimeError
final_for_in_variable_test: MissingCompileTimeError
final_param_test: MissingCompileTimeError
final_super_field_set_test: MissingCompileTimeError
@@ -279,6 +384,8 @@
function_type_call_getter2_test/03: MissingCompileTimeError
function_type_call_getter2_test/04: MissingCompileTimeError
function_type_call_getter2_test/05: MissingCompileTimeError
+fuzzy_arrows_test/01: MissingCompileTimeError
+fuzzy_arrows_test/03: RuntimeError
generic_closure_test: RuntimeError
generic_constructor_mixin2_test/01: MissingCompileTimeError
generic_constructor_mixin3_test/01: MissingCompileTimeError
@@ -298,6 +405,7 @@
generic_methods_recursive_bound_test/02: MissingCompileTimeError
generic_methods_tearoff_specialization_test: RuntimeError
generic_methods_unused_parameter_test: RuntimeError
+generic_no_such_method_dispatcher_simple_test: Skip # This test is only for kernel.
generic_tearoff_test: RuntimeError
getter_no_setter2_test/00: MissingCompileTimeError
getter_no_setter2_test/01: MissingCompileTimeError
@@ -317,21 +425,27 @@
if_null_assignment_static_test/02: MissingCompileTimeError
if_null_assignment_static_test/04: MissingCompileTimeError
if_null_assignment_static_test/06: MissingCompileTimeError
+if_null_assignment_static_test/07: MissingCompileTimeError
if_null_assignment_static_test/09: MissingCompileTimeError
if_null_assignment_static_test/11: MissingCompileTimeError
if_null_assignment_static_test/13: MissingCompileTimeError
+if_null_assignment_static_test/14: MissingCompileTimeError
if_null_assignment_static_test/16: MissingCompileTimeError
if_null_assignment_static_test/18: MissingCompileTimeError
if_null_assignment_static_test/20: MissingCompileTimeError
+if_null_assignment_static_test/21: MissingCompileTimeError
if_null_assignment_static_test/23: MissingCompileTimeError
if_null_assignment_static_test/25: MissingCompileTimeError
if_null_assignment_static_test/27: MissingCompileTimeError
+if_null_assignment_static_test/28: MissingCompileTimeError
if_null_assignment_static_test/30: MissingCompileTimeError
if_null_assignment_static_test/32: MissingCompileTimeError
if_null_assignment_static_test/34: MissingCompileTimeError
+if_null_assignment_static_test/35: MissingCompileTimeError
if_null_assignment_static_test/37: MissingCompileTimeError
if_null_assignment_static_test/39: MissingCompileTimeError
if_null_assignment_static_test/41: MissingCompileTimeError
+if_null_assignment_static_test/42: MissingCompileTimeError
if_null_precedence_test/06: MissingCompileTimeError
if_null_precedence_test/07: MissingCompileTimeError
implicit_downcast_during_for_in_iterable_test: RuntimeError
@@ -349,6 +463,15 @@
initializing_formal_type_test: MissingCompileTimeError
instanceof2_test: RuntimeError
interface_test/00: MissingCompileTimeError
+invalid_cast_test/01: MissingCompileTimeError
+invalid_cast_test/02: MissingCompileTimeError
+invalid_cast_test/03: MissingCompileTimeError
+invalid_cast_test/04: MissingCompileTimeError
+invalid_cast_test/07: MissingCompileTimeError
+invalid_cast_test/08: MissingCompileTimeError
+invalid_cast_test/09: MissingCompileTimeError
+invalid_cast_test/10: MissingCompileTimeError
+invalid_cast_test/11: MissingCompileTimeError
least_upper_bound_expansive_test/none: CompileTimeError
least_upper_bound_test/03: MissingCompileTimeError
least_upper_bound_test/04: MissingCompileTimeError
@@ -367,6 +490,7 @@
library_ambiguous_test/04: MissingCompileTimeError
list_literal4_test/00: MissingCompileTimeError
list_literal4_test/01: MissingCompileTimeError
+list_literal4_test/03: MissingCompileTimeError
list_literal4_test/04: MissingCompileTimeError
list_literal4_test/05: MissingCompileTimeError
list_literal_syntax_test/01: MissingCompileTimeError
@@ -380,6 +504,7 @@
local_function_test/01: MissingCompileTimeError
local_function_test/02: MissingCompileTimeError
local_function_test/03: MissingCompileTimeError
+local_function_test/04: MissingCompileTimeError
local_function_test/none: RuntimeError
logical_expression3_test: MissingCompileTimeError
main_test/03: RuntimeError
@@ -643,6 +768,9 @@
regress_13494_test: MissingCompileTimeError
regress_17382_test: MissingCompileTimeError
regress_19413_test: MissingCompileTimeError
+regress_19728_test: MissingCompileTimeError
+regress_21912_test/01: MissingCompileTimeError
+regress_21912_test/02: MissingCompileTimeError
regress_22438_test: MissingCompileTimeError
regress_22936_test: MissingCompileTimeError
regress_23089_test: MissingCompileTimeError
@@ -709,6 +837,12 @@
try_catch_on_syntax_test/11: MissingCompileTimeError
try_catch_syntax_test/08: MissingCompileTimeError
type_checks_in_factory_method_test/01: MissingCompileTimeError
+type_promotion_functions_test/01: MissingCompileTimeError
+type_promotion_functions_test/05: MissingCompileTimeError
+type_promotion_functions_test/06: MissingCompileTimeError
+type_promotion_functions_test/07: MissingCompileTimeError
+type_promotion_functions_test/08: MissingCompileTimeError
+type_promotion_functions_test/10: MissingCompileTimeError
type_promotion_parameter_test/01: MissingCompileTimeError
type_promotion_parameter_test/02: MissingCompileTimeError
type_promotion_parameter_test/03: MissingCompileTimeError
@@ -800,57 +934,7 @@
unresolved_top_level_method_test: MissingCompileTimeError
unresolved_top_level_var_test: MissingCompileTimeError
-[ ($runtime == vm && $compiler != dartk) || ($runtime == dart_precompiled && $compiler != dartkp) ]
-built_in_identifier_type_annotation_test/22: MissingCompileTimeError # Error only in strong mode
-int64_literal_test/*: Skip # This is testing Dart 2.0 int64 semantics.
-
-[ $runtime == vm && $compiler != dartk ]
-async_congruence_top_level_test: RuntimeError
-async_congruence_unnamed_test/none: RuntimeError
-async_congruence_local_test/none: RuntimeError
-async_congruence_method_test/none: RuntimeError
-covariant_override/runtime_check_test: RuntimeError
-field_override_test/02: MissingCompileTimeError
-field_type_check_test/01: MissingCompileTimeError
-if_null_assignment_static_test/07: MissingCompileTimeError
-if_null_assignment_static_test/14: MissingCompileTimeError
-if_null_assignment_static_test/21: MissingCompileTimeError
-if_null_assignment_static_test/28: MissingCompileTimeError
-if_null_assignment_static_test/35: MissingCompileTimeError
-if_null_assignment_static_test/42: MissingCompileTimeError
-list_literal4_test/03: MissingCompileTimeError
-local_function_test/04: MissingCompileTimeError
-regress_19728_test: MissingCompileTimeError
-regress_21912_test/01: MissingCompileTimeError
-regress_21912_test/02: MissingCompileTimeError
-
-[ $runtime == vm && $compiler != dartk && ! $strong ]
-covariant_subtyping_with_substitution_test: RuntimeError
-function_subtype_named1_test: RuntimeError
-function_subtype_named2_test: RuntimeError
-function_subtype_optional1_test: RuntimeError
-function_subtype_optional2_test: RuntimeError
-function_subtype_typearg2_test: RuntimeError
-function_subtype_typearg3_test: RuntimeError
-generic_function_typedef_test/01: RuntimeError
-generic_methods_named_parameters_test: RuntimeError
-generic_methods_optional_parameters_test: RuntimeError
-instanceof4_test/01: RuntimeError
-instanceof4_test/none: RuntimeError
-malbounded_type_cast_test/none: RuntimeError
-malbounded_type_test_test/none: RuntimeError
-map_literal8_test: RuntimeError
-mixin_type_parameters_mixin_extends_test: RuntimeError
-mixin_type_parameters_mixin_test: RuntimeError
-mixin_type_parameters_super_extends_test: RuntimeError
-mixin_type_parameters_super_test: RuntimeError
-no_such_method_mock_test: RuntimeError
-override_inheritance_mixed_test/08: MissingCompileTimeError
-regress_28341_test: Fail # Issue 28340
-type_variable_nested_test/01: RuntimeError
-type_variable_promotion_test: RuntimeError
-
-[ $runtime == vm && $compiler != dartk && $checked ]
+[ $compiler != dartk && $runtime == vm && $checked ]
constructor_call_as_function_test/01: MissingCompileTimeError
covariance_type_parameter_test/01: RuntimeError
covariance_type_parameter_test/02: RuntimeError
@@ -931,7 +1015,7 @@
# The VM and does not implement the Dart 2.0 runtime checks yet unless
# --checked is explicitly passed).
-[ $runtime == vm && $compiler != dartk && !$checked && !$strong]
+[ $compiler != dartk && $runtime == vm && !$checked && !$strong ]
bool_check_test: RuntimeError
bool_condition_check_test: RuntimeError
callable_test/none: RuntimeError
@@ -980,6 +1064,8 @@
covariant_subtyping_unsafe_call3_test: RuntimeError
field_override_optimization_test: RuntimeError
field_type_check2_test/01: MissingRuntimeError
+forwarding_stub_tearoff_generic_test: RuntimeError
+forwarding_stub_tearoff_test: RuntimeError
function_subtype_checked0_test: RuntimeError
function_subtype_closure0_test: RuntimeError
function_subtype_closure1_test: RuntimeError
@@ -994,23 +1080,43 @@
function_type_test: RuntimeError
generic_field_mixin6_test/none: RuntimeError
generic_list_checked_test: RuntimeError
+getters_setters2_test/01: RuntimeError
+getters_setters2_test/none: RuntimeError
if_null_precedence_test/none: RuntimeError
+implicit_downcast_during_assignment_test: RuntimeError
+implicit_downcast_during_combiner_test: RuntimeError
+implicit_downcast_during_compound_assignment_test: RuntimeError
+implicit_downcast_during_conditional_expression_test: RuntimeError
implicit_downcast_during_constructor_initializer_test: RuntimeError
implicit_downcast_during_constructor_invocation_test: RuntimeError
+implicit_downcast_during_do_test: RuntimeError
implicit_downcast_during_factory_constructor_invocation_test: RuntimeError
implicit_downcast_during_field_declaration_test: RuntimeError
+implicit_downcast_during_for_condition_test: RuntimeError
implicit_downcast_during_for_in_element_test: RuntimeError
+implicit_downcast_during_for_initializer_expression_test: RuntimeError
+implicit_downcast_during_for_initializer_var_test: RuntimeError
+implicit_downcast_during_if_null_assignment_test: RuntimeError
+implicit_downcast_during_if_statement_test: RuntimeError
implicit_downcast_during_indexed_assignment_test: RuntimeError
implicit_downcast_during_indexed_compound_assignment_test: RuntimeError
implicit_downcast_during_indexed_get_test: RuntimeError
implicit_downcast_during_indexed_if_null_assignment_test: RuntimeError
implicit_downcast_during_invocation_test: RuntimeError
+implicit_downcast_during_list_literal_test: RuntimeError
+implicit_downcast_during_logical_expression_test: RuntimeError
+implicit_downcast_during_map_literal_test: RuntimeError
implicit_downcast_during_method_invocation_test: RuntimeError
+implicit_downcast_during_not_test: RuntimeError
implicit_downcast_during_null_aware_method_invocation_test: RuntimeError
implicit_downcast_during_redirecting_initializer_test: RuntimeError
+implicit_downcast_during_return_async_test: RuntimeError
+implicit_downcast_during_return_test: RuntimeError
implicit_downcast_during_static_method_invocation_test: RuntimeError
implicit_downcast_during_super_initializer_test: RuntimeError
implicit_downcast_during_super_method_invocation_test: RuntimeError
+implicit_downcast_during_variable_declaration_test: RuntimeError
+implicit_downcast_during_while_statement_test: RuntimeError
inferrer_synthesized_constructor_test: RuntimeError
list_literal1_test/01: MissingCompileTimeError
malformed2_test/00: MissingCompileTimeError
@@ -1019,42 +1125,57 @@
type_check_const_function_typedef2_test: MissingCompileTimeError
typevariable_substitution2_test/02: RuntimeError
-[ $runtime == vm && $compiler != dartk && !$checked && !$strong]
-getters_setters2_test/01: RuntimeError
-getters_setters2_test/none: RuntimeError
-implicit_downcast_during_assignment_test: RuntimeError
-implicit_downcast_during_combiner_test: RuntimeError
-implicit_downcast_during_compound_assignment_test: RuntimeError
-implicit_downcast_during_conditional_expression_test: RuntimeError
-implicit_downcast_during_do_test: RuntimeError
-implicit_downcast_during_for_condition_test: RuntimeError
-implicit_downcast_during_for_initializer_expression_test: RuntimeError
-implicit_downcast_during_for_initializer_var_test: RuntimeError
-implicit_downcast_during_if_null_assignment_test: RuntimeError
-implicit_downcast_during_if_statement_test: RuntimeError
-implicit_downcast_during_list_literal_test: RuntimeError
-implicit_downcast_during_logical_expression_test: RuntimeError
-implicit_downcast_during_map_literal_test: RuntimeError
-implicit_downcast_during_not_test: RuntimeError
-implicit_downcast_during_return_async_test: RuntimeError
-implicit_downcast_during_return_test: RuntimeError
-implicit_downcast_during_variable_declaration_test: RuntimeError
-implicit_downcast_during_while_statement_test: RuntimeError
+[ $compiler != dartk && $runtime == vm && !$strong ]
+covariant_subtyping_with_substitution_test: RuntimeError
+function_subtype_named1_test: RuntimeError
+function_subtype_named2_test: RuntimeError
+function_subtype_optional1_test: RuntimeError
+function_subtype_optional2_test: RuntimeError
+function_subtype_typearg2_test: RuntimeError
+function_subtype_typearg3_test: RuntimeError
+generic_function_typedef_test/01: RuntimeError
+generic_methods_named_parameters_test: RuntimeError
+generic_methods_optional_parameters_test: RuntimeError
+instanceof4_test/01: RuntimeError
+instanceof4_test/none: RuntimeError
+malbounded_type_cast_test/none: RuntimeError
+malbounded_type_test_test/none: RuntimeError
+map_literal8_test: RuntimeError
+mixin_type_parameters_mixin_extends_test: RuntimeError
+mixin_type_parameters_mixin_test: RuntimeError
+mixin_type_parameters_super_extends_test: RuntimeError
+mixin_type_parameters_super_test: RuntimeError
+no_such_method_mock_test: RuntimeError
+override_inheritance_mixed_test/08: MissingCompileTimeError
+regress_28341_test: Fail # Issue 28340
+type_variable_nested_test/01: RuntimeError
+type_variable_promotion_test: RuntimeError
-[ $runtime == vm && $checked && $mode == debug && $compiler != dartk ]
-tearoff_dynamic_test: Crash
+[ $compiler != dartkp && $mode == product && $runtime == dart_precompiled ]
+vm/type_vm_test/28: MissingRuntimeError
+vm/type_vm_test/29: MissingRuntimeError
+vm/type_vm_test/30: MissingRuntimeError
+vm/type_vm_test/31: MissingRuntimeError
+vm/type_vm_test/32: MissingRuntimeError
+vm/type_vm_test/33: MissingRuntimeError
+vm/type_vm_test/34: MissingRuntimeError
+vm/type_vm_test/35: MissingRuntimeError
+vm/type_vm_test/36: MissingRuntimeError
-[ $runtime == vm && $compiler == none ]
+[ $compiler == none && $mode != product && $runtime == vm ]
+vm/type_vm_test/none: RuntimeError
+
+[ $compiler == none && $runtime == vm ]
async_star_cancel_while_paused_test: RuntimeError
async_star_pause_test: Fail, OK
async_star_regression_2238_test: CompileTimeError, RuntimeError
class_keyword_test/02: MissingCompileTimeError # Issue 13627
constructor3_test: Fail, OK, Pass
+cyclic_type2_test: Fail, OK
cyclic_type_test/02: Fail, OK # Non-contractive types are not supported in the vm.
cyclic_type_test/04: Fail, OK
-cyclic_type2_test: Fail, OK
-duplicate_export_negative_test: Fail # Issue 6134
deferred_redirecting_factory_test: Fail, Crash # Issue 23408
+duplicate_export_negative_test: Fail # Issue 6134
dynamic_prefix_core_test/01: RuntimeError # Issue 12478
example_constructor_test: Fail, OK
export_ambiguous_main_negative_test: Fail # Issue 14763
@@ -1077,7 +1198,15 @@
vm/debug_break_enabled_vm_test/01: Crash, OK # Expected to hit breakpoint.
vm/regress_29145_test: Skip # Issue 29145
-[ $runtime == vm && $compiler == none && $checked ]
+[ $compiler == none && $runtime == vm && $system == fuchsia ]
+async_await_test: RuntimeError
+async_star_test: RuntimeError
+closure_cycles_test: Pass, Crash
+vm/causal_async_exception_stack2_test: RuntimeError
+vm/causal_async_exception_stack_test: RuntimeError
+vm/math_vm_test: Crash
+
+[ $compiler == none && $runtime == vm && $checked ]
assert_initializer_test/4*: MissingCompileTimeError # Issue 392. The VM doesn't enforce that potentially const expressions are actually const expressions when the constructor is called with `const`.
generic_functions_test: Pass # Issue 25869
generic_local_functions_test: Pass # Issue 25869
@@ -1086,137 +1215,14 @@
generic_methods_new_test: Pass # Issue 25869
generic_methods_test: Pass # Issue 25869
-[ $runtime == vm && $compiler == none && !$checked ]
+[ $compiler == none && $runtime == vm && !$checked ]
assertion_initializer_const_error_test/01: MissingCompileTimeError
assertion_initializer_const_function_error_test/01: MissingCompileTimeError
generic_methods_dynamic_test/02: MissingRuntimeError
generic_methods_dynamic_test/04: MissingRuntimeError
type_parameter_test/05: MissingCompileTimeError
-[ $runtime == vm && $compiler == none && $system == windows && $arch == ia32 ]
-vm/optimized_stacktrace_test: Pass, Crash # Issue 28276
+[ $compiler != dartk && $runtime == vm || $compiler != dartkp && $runtime == dart_precompiled ]
+built_in_identifier_type_annotation_test/22: MissingCompileTimeError # Error only in strong mode
+int64_literal_test/*: Skip # This is testing Dart 2.0 int64 semantics.
-[ $runtime == vm && $compiler == none && $arch == ia32 ]
-vm/regress_24517_test: Pass, Fail # Issue 24517.
-
-[ $runtime == vm && $compiler == none && $mode != product ]
-vm/type_vm_test/none: RuntimeError
-
-[ $runtime == vm && $compiler == none && $system == fuchsia ]
-async_await_test: RuntimeError
-async_star_test: RuntimeError
-closure_cycles_test: Pass, Crash
-vm/causal_async_exception_stack_test: RuntimeError
-vm/causal_async_exception_stack2_test: RuntimeError
-vm/math_vm_test: Crash
-
-[ $runtime == vm && $compiler == app_jit ]
-async_star_cancel_while_paused_test: RuntimeError
-async_star_pause_test: Fail, OK
-async_star_regression_2238_test: CompileTimeError, RuntimeError
-class_keyword_test/02: MissingCompileTimeError # Issue 13627
-constructor3_test: Fail, OK, Pass
-ct_const2_test: Skip # Incompatible flag: --compile_all
-cyclic_type2_test: Fail, OK
-cyclic_type_test/02: Fail, OK
-cyclic_type_test/04: Fail, OK
-deferred_load_constants_test/02: Fail
-deferred_load_constants_test/03: Fail
-deferred_load_constants_test/05: Fail
-deferred_not_loaded_check_test: RuntimeError
-deferred_redirecting_factory_test: Fail, Crash # Issue 23408
-duplicate_export_negative_test: Fail # Issue 6134
-dynamic_prefix_core_test/01: RuntimeError # Issue 12478
-example_constructor_test: Fail, OK
-export_ambiguous_main_negative_test: Fail # Issue 14763
-field_initialization_order_test: Fail, OK
-generalized_void_syntax_test: CompileTimeError # Issue #30176
-generic_methods_type_expression_test: RuntimeError # Issue 25869 / 27460
-hello_dart_test: Skip # Incompatible flag: --compile_all
-language_2/least_upper_bound_expansive_test/none: CompileTimeError
-library_env_test/has_html_support: RuntimeError, OK
-library_env_test/has_no_io_support: RuntimeError, OK
-main_not_a_function_test: Skip
-mixin_illegal_super_use_test: Skip # Issues 24478 and 23773
-mixin_illegal_superclass_test: Skip # Issues 24478 and 23773
-multiline_strings_test: Fail # Issue 23020
-no_main_test/01: Skip
-regress_21793_test/01: MissingCompileTimeError
-regress_23408_test: Crash
-super_test: Fail, OK
-type_parameter_test/05: MissingCompileTimeError
-type_variable_scope_test/03: MissingCompileTimeError
-unicode_bom_test: Fail # Issue 16067
-vm/debug_break_enabled_vm_test/01: Crash, OK # Expected to hit breakpoint.
-vm/regress_27201_test: Fail
-vm/regress_29145_test: Skip # Issue 29145
-vm/type_cast_vm_test: RuntimeError # Expects line and column numbers
-
-[ $runtime == vm && $compiler == app_jit && $checked ]
-generic_functions_test: Pass # Issue 25869
-generic_methods_function_type_test: Pass # Issue 25869
-generic_methods_test: Pass # Issue 25869
-generic_methods_new_test: Pass # Issue 25869
-generic_local_functions_test: Pass # Issue 25869
-generic_methods_generic_function_parameter_test: Pass # Issue 25869
-
-[ $runtime == vm && $compiler == app_jit && !$checked ]
-assertion_initializer_const_error_test/01: MissingCompileTimeError
-generic_methods_bounds_test/02: MissingRuntimeError
-generic_methods_dynamic_test/02: MissingRuntimeError
-generic_methods_dynamic_test/04: MissingRuntimeError
-
-[ $runtime == vm && $compiler == app_jit && $arch == ia32 ]
-vm/regress_24517_test: Pass, Fail # Issue 24517.
-
-[ $runtime == vm && $compiler == app_jit && $mode != product ]
-vm/type_vm_test/none: RuntimeError
-
-[ $runtime == vm && $arch == arm64 ]
-closure_cycles_test: Pass, Slow
-large_class_declaration_test: SkipSlow # Uses too much memory.
-
-[ $runtime == vm && $compiler != dartk && $mode == product ]
-vm/causal_async_exception_stack_test: SkipByDesign
-vm/causal_async_exception_stack2_test: SkipByDesign
-vm/regress_27201_test: Fail
-vm/type_vm_test/28: MissingRuntimeError
-vm/type_vm_test/29: MissingRuntimeError
-vm/type_vm_test/30: MissingRuntimeError
-vm/type_vm_test/31: MissingRuntimeError
-vm/type_vm_test/32: MissingRuntimeError
-vm/type_vm_test/33: MissingRuntimeError
-vm/type_vm_test/34: MissingRuntimeError
-vm/type_vm_test/35: MissingRuntimeError
-vm/type_vm_test/36: MissingRuntimeError
-deferred_load_constants_test/02: Fail
-deferred_load_constants_test/03: Fail
-deferred_load_constants_test/05: Fail
-deferred_not_loaded_check_test: RuntimeError
-
-[ $compiler != dartkp && $runtime == dart_precompiled && $mode == product ]
-vm/type_vm_test/28: MissingRuntimeError
-vm/type_vm_test/29: MissingRuntimeError
-vm/type_vm_test/30: MissingRuntimeError
-vm/type_vm_test/31: MissingRuntimeError
-vm/type_vm_test/32: MissingRuntimeError
-vm/type_vm_test/33: MissingRuntimeError
-vm/type_vm_test/34: MissingRuntimeError
-vm/type_vm_test/35: MissingRuntimeError
-vm/type_vm_test/36: MissingRuntimeError
-
-[ $runtime == vm && $compiler != dartk ]
-generic_no_such_method_dispatcher_simple_test: Skip # This test is only for kernel.
-type_promotion_functions_test/01: MissingCompileTimeError
-
-[ $runtime == vm && $compiler != dartk ]
-fuzzy_arrows_test/01: MissingCompileTimeError
-fuzzy_arrows_test/03: RuntimeError
-type_promotion_functions_test/05: MissingCompileTimeError
-type_promotion_functions_test/06: MissingCompileTimeError
-type_promotion_functions_test/07: MissingCompileTimeError
-type_promotion_functions_test/08: MissingCompileTimeError
-type_promotion_functions_test/10: MissingCompileTimeError
-
-[ $runtime == vm && $mode == release && $arch == ia32 ]
-deep_nesting1_negative_test: Crash, Pass # Issue 31496
diff --git a/tests/lib/analyzer/analyze_library.status b/tests/lib/analyzer/analyze_library.status
index c36c18a8..55060cf 100644
--- a/tests/lib/analyzer/analyze_library.status
+++ b/tests/lib/analyzer/analyze_library.status
@@ -2,16 +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.
-[ $compiler == dart2analyzer && $use_sdk ]
-lib/*: Skip # Issue 28620
-lib/analyzer: Skip # Issue 28620
-lib/analysis_server: Skip # Issue 28620
-lib/dev_compiler: Skip # Issue 28620
-lib/front_end: Skip # Issue 28620
-
-[ $compiler == dart2analyzer && $builder_tag == strong ]
-*: Skip # Issue 28649
-
[ $compiler == dart2analyzer ]
lib/_blink/dartium/_blink_dartium: Skip # TODO: Remove Dartium
lib/_chrome/dart2js/chrome_dart2js: CompileTimeError # Issue 16522
@@ -22,6 +12,8 @@
lib/indexed_db/dart2js/indexed_db_dart2js: CompileTimeError # Issue 16522
lib/indexed_db/dartium/indexed_db_dartium: Skip # TODO: Remove Dartium
lib/js/dart2js/js_dart2js: CompileTimeError # Issue 16522
+lib/js/dartium/js_dartium: Skip # TODO: Remove Dartium
+lib/js_util/dartium/js_util_dartium: Skip # TODO: Remove Dartium
lib/svg/dart2js/svg_dart2js: CompileTimeError # Issue 16522
lib/svg/dartium/svg_dartium: Skip # TODO: Remove Dartium
lib/typed_data/dart2js/native_typed_data_dart2js: CompileTimeError # Issue 16522
@@ -32,5 +24,14 @@
lib/web_gl/dartium/web_gl_dartium: Skip # TODO: Remove Dartium
lib/web_sql/dart2js/web_sql_dart2js: CompileTimeError # Issue 16522
lib/web_sql/dartium/web_sql_dartium: Skip # TODO: Remove Dartium
-lib/js/dartium/js_dartium: Skip # TODO: Remove Dartium
-lib/js_util/dartium/js_util_dartium: Skip # TODO: Remove Dartium
+
+[ $builder_tag == strong && $compiler == dart2analyzer ]
+*: Skip # Issue 28649
+
+[ $compiler == dart2analyzer && $use_sdk ]
+lib/*: Skip # Issue 28620
+lib/analysis_server: Skip # Issue 28620
+lib/analyzer: Skip # Issue 28620
+lib/dev_compiler: Skip # Issue 28620
+lib/front_end: Skip # Issue 28620
+
diff --git a/tests/lib/lib.status b/tests/lib/lib.status
index 23b23a2..b7a1b22 100644
--- a/tests/lib/lib.status
+++ b/tests/lib/lib.status
@@ -2,20 +2,36 @@
# 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.
-[ $strong ]
-*: SkipByDesign # tests/lib_strong has the strong mode versions of these tests.
+[ $arch == simarm64 ]
+convert/utf85_test: Skip # Pass, Slow Issue 20111.
-[ ! $checked ]
-mirrors/redirecting_factory_different_type_test: SkipByDesign # Tests type checks.
+[ $arch == simarmv5te ]
+mirrors/mirrors_reader_test: Pass, Slow
+
+[ $compiler == app_jit ]
+mirrors/*: Skip # Issue 27929: Triage
+
+[ $compiler == dart2analyzer ]
+mirrors/generic_f_bounded_mixin_application_test: StaticWarning # Test Issue
+mirrors/immutable_collections_test: StaticWarning, OK # Expect failure for any type of Iterable.
+mirrors/inference_and_no_such_method_test: StaticWarning, OK # Expect to trigger noSuchMethod.
+mirrors/mirrors_nsm_mismatch_test: StaticWarning, OK # Expect to trigger noSuchMethod.
+mirrors/mirrors_nsm_test: StaticWarning, OK # Expect to trigger noSuchMethod.
+mirrors/redirecting_factory_test/01: StaticWarning # test issue X, The return type 'Class<T2, T1>' of the redirected constructor is not assignable to 'Class<T1, T2>'
+mirrors/redirecting_factory_test/none: StaticWarning # test issue X, The return type 'Class<T2, T1>' of the redirected constructor is not assignable to 'Class<T1, T2>
+mirrors/removed_api_test: StaticWarning, OK # Deliberately refers to undeclared members.
+mirrors/repeated_private_anon_mixin_app_test: StaticWarning, OK # Intentional library name conflict.
+profiler/metrics_num_test: Fail # Issue 20309
+profiler/metrics_test: Fail # Issue 20309
[ $compiler == dart2js ]
async/schedule_microtask6_test: RuntimeError # global error handling is not supported. Issue 5958
-
-
+convert/base64_test/01: Fail, OK # Uses bit-wise operations to detect invalid values. Some large invalid values accepted by dart2js.
+convert/chunked_conversion_utf88_test: Slow, Pass
+convert/utf85_test: Slow, Pass
+developer/timeline_test: Skip # Not supported
math/double_pow_test: RuntimeError
math/low_test: RuntimeError
-
-mirrors/invocation_fuzz_test: RuntimeError # Issue 29086
mirrors/class_declarations_test/none: RuntimeError # Issue 13440
mirrors/class_mirror_location_test: RuntimeError # Issue 6490
mirrors/closurization_equivalence_test: RuntimeError # Issue 6490
@@ -25,6 +41,8 @@
mirrors/generic_function_typedef_test: RuntimeError # Issue 12333
mirrors/generic_interface_test: RuntimeError # Issue 12087
mirrors/get_field_static_test/00: RuntimeError # Issue 21323
+mirrors/globalized_closures2_test/00: RuntimeError # Issue 17118. Please remove the multi-test comments when this test starts succeeding.
+mirrors/globalized_closures_test/00: RuntimeError # Issue 17118. Please remove the multi-test comments when this test starts succeeding.
mirrors/hierarchy_invariants_test: RuntimeError # Issue 15262
mirrors/hot_get_field_test: CompileTimeError # Issue 12164
mirrors/hot_set_field_test: CompileTimeError # Issue 12164
@@ -33,77 +51,195 @@
mirrors/initializing_formals_test/03: CompileTimeError # Issue 12164
mirrors/instance_members_test: RuntimeError # Issue 14633
mirrors/instantiate_abstract_class_test: RuntimeError # Issue 6490
+mirrors/invocation_fuzz_test: RuntimeError # Issue 29086
mirrors/invoke_call_on_closure_test: RuntimeError # 6490
-mirrors/invoke_call_through_getter_test/named: RuntimeError # Issue 12863. When updating the status, remove the "///" in the test.
mirrors/invoke_call_through_getter_previously_accessed_test/named: RuntimeError # Issue 12863. When updating the status, remove the "///" in the test.
+mirrors/invoke_call_through_getter_test/named: RuntimeError # Issue 12863. When updating the status, remove the "///" in the test.
mirrors/invoke_call_through_implicit_getter_previously_accessed_test/named: RuntimeError # Issue 12863. When updating the status, remove the "///" in the test.
mirrors/invoke_call_through_implicit_getter_test: RuntimeError # Issue 17638
mirrors/invoke_named_test/none: RuntimeError # Issue 12863
mirrors/invoke_private_test: CompileTimeError # Issue 12164
mirrors/invoke_private_wrong_library_test: CompileTimeError # Issue 12164
mirrors/library_declarations_test/none: RuntimeError # Issue 13439, Issue 13733
-mirrors/library_exports_shown_test: RuntimeError # Issue 6490
mirrors/library_exports_hidden_test: RuntimeError # Issue 6490
+mirrors/library_exports_shown_test: RuntimeError # Issue 6490
mirrors/library_import_deferred_loading_test: RuntimeError # Issue 6490
-mirrors/library_imports_deferred_test: RuntimeError # Issue 6490
-mirrors/library_imports_metadata_test: RuntimeError # Issue 6490
mirrors/library_imports_bad_metadata_test/none: RuntimeError # Issue 6490
-mirrors/library_imports_shown_test: RuntimeError # Issue 6490
+mirrors/library_imports_deferred_test: RuntimeError # Issue 6490
mirrors/library_imports_hidden_test: RuntimeError # Issue 6490
-mirrors/library_imports_prefixed_test: RuntimeError # Issue 6490
+mirrors/library_imports_metadata_test: RuntimeError # Issue 6490
mirrors/library_imports_prefixed_show_hide_test: RuntimeError # Issue 6490
+mirrors/library_imports_prefixed_test: RuntimeError # Issue 6490
+mirrors/library_imports_shown_test: RuntimeError # Issue 6490
mirrors/library_uri_io_test: SkipByDesign # Uses dart:io.
mirrors/load_library_test: RuntimeError # Issue 6335
mirrors/local_function_is_static_test: RuntimeError # Issue 6335
mirrors/lru_test: Skip # dart2js_native/lru_test is used instead
mirrors/metadata_scope_test/none: RuntimeError # Issue 10905
+mirrors/method_mirror_location_test: RuntimeError # Issue 6490
mirrors/method_mirror_name_test: RuntimeError # Issue 6335
mirrors/method_mirror_properties_test: RuntimeError # Issue 11861
-mirrors/method_mirror_source_test : RuntimeError # Issue 6490
-mirrors/method_mirror_source_line_ending_test : RuntimeError # Issue 6490
-mirrors/method_mirror_location_test: RuntimeError # Issue 6490
-mirrors/mirrors_test: RuntimeError # TODO(ahe): I'm working on fixing this. When removing this line please change the "endsWith" to "/mirrors_test.dart".
-mirrors/mirrors_nsm_test/dart2js: RuntimeError # Issue 19353
+mirrors/method_mirror_source_line_ending_test: RuntimeError # Issue 6490
+mirrors/method_mirror_source_test: RuntimeError # Issue 6490
mirrors/mirrors_nsm_mismatch_test: RuntimeError # Issue 19353
-mirrors/mixin_test: RuntimeError # Issue 12464
+mirrors/mirrors_nsm_test/dart2js: RuntimeError # Issue 19353
+mirrors/mirrors_reader_test: Slow, RuntimeError # Issue 16589
+mirrors/mirrors_test: RuntimeError # TODO(ahe): I'm working on fixing this. When removing this line please change the "endsWith" to "/mirrors_test.dart".
mirrors/mixin_application_test: RuntimeError # Issue 12464
+mirrors/mixin_test: RuntimeError # Issue 12464
mirrors/other_declarations_location_test: RuntimeError # Issue 10905
-mirrors/parameter_test/none: RuntimeError # Issue 6490
mirrors/parameter_of_mixin_app_constructor_test: RuntimeError # Issue 6490
+mirrors/parameter_test/none: RuntimeError # Issue 6490
mirrors/private_class_field_test: CompileTimeError
mirrors/private_symbol_test: CompileTimeError # Issue 13597
mirrors/private_types_test: RuntimeError # Issue 6490
-mirrors/redirecting_factory_test/none: RuntimeError # Issue 6490
-mirrors/redirecting_factory_test/02: RuntimeError # Issue 6490
-mirrors/reflected_type_function_type_test: RuntimeError # Issue 12607
-mirrors/reflected_type_special_types_test: RuntimeError # Issue 12607
-mirrors/reflected_type_typedefs_test: RuntimeError # Issue 12607
-mirrors/reflected_type_typevars_test: RuntimeError # Issue 12607
-mirrors/relation_assignable_test: RuntimeError # Issue 6490
-mirrors/relation_assignable2_test: RuntimeError # Issue 6490
-mirrors/relation_subtype_test: RuntimeError # Issue 6490
-mirrors/repeated_private_anon_mixin_app_test: RuntimeError # Issue 14670
-mirrors/symbol_validation_test/01: RuntimeError # Issue 13597
-mirrors/static_members_test: RuntimeError # Issue 14633, Issue 12164
-mirrors/typedef_test: RuntimeError # Issue 6490
-mirrors/typedef_metadata_test: RuntimeError # Issue 12785
-mirrors/typedef_reflected_type_test/01: RuntimeError # Issue 12607
-mirrors/typevariable_mirror_metadata_test: RuntimeError # Issue 10905
-mirrors/type_variable_is_static_test: RuntimeError # Issue 6335
-mirrors/type_variable_owner_test/01: RuntimeError # Issue 12785
-mirrors/variable_is_const_test/none: RuntimeError # Issue 14671
mirrors/raw_type_test/01: RuntimeError # Issue 6490
-mirrors/mirrors_reader_test: Slow, RuntimeError # Issue 16589
-mirrors/regress_26187_test: RuntimeError # Issue 6490
+mirrors/redirecting_factory_test/02: RuntimeError # Issue 6490
+mirrors/redirecting_factory_test/none: RuntimeError # Issue 6490
+mirrors/reflected_type_function_type_test: RuntimeError # Issue 12607
mirrors/reflected_type_generics_test/01: Fail # Issues in reflecting generic typedefs.
mirrors/reflected_type_generics_test/02: Fail # Issues in reflecting bounded type variables.
mirrors/reflected_type_generics_test/03: Fail # Issues in reflecting generic typedefs. The following tests fail because we have disabled a test in `reflectClassByName`. `MirrorsUsed` leads to classes not having the information necessary to correctly handle these checks.
mirrors/reflected_type_generics_test/04: Fail # Issues in reflecting bounded type variables. The following tests fail because we have disabled a test in `reflectClassByName`. `MirrorsUsed` leads to classes not having the information necessary to correctly handle these checks.
mirrors/reflected_type_generics_test/05: Fail # Issues in reflecting generic typedefs. The following tests fail because we have disabled a test in `reflectClassByName`. `MirrorsUsed` leads to classes not having the information necessary to correctly handle these checks.
mirrors/reflected_type_generics_test/06: Fail # Issues in reflecting bounded type variables. The following tests fail because we have disabled a test in `reflectClassByName`. `MirrorsUsed` leads to classes not having the information necessary to correctly handle these checks.
+mirrors/reflected_type_special_types_test: RuntimeError # Issue 12607
+mirrors/reflected_type_typedefs_test: RuntimeError # Issue 12607
+mirrors/reflected_type_typevars_test: RuntimeError # Issue 12607
+mirrors/regress_26187_test: RuntimeError # Issue 6490
+mirrors/relation_assignable2_test: RuntimeError # Issue 6490
+mirrors/relation_assignable_test: RuntimeError # Issue 6490
+mirrors/relation_subtype_test: RuntimeError # Issue 6490
+mirrors/repeated_private_anon_mixin_app_test: RuntimeError # Issue 14670
+mirrors/static_members_test: RuntimeError # Issue 14633, Issue 12164
+mirrors/symbol_validation_test/01: RuntimeError # Issue 13597
+mirrors/type_variable_is_static_test: RuntimeError # Issue 6335
+mirrors/type_variable_owner_test/01: RuntimeError # Issue 12785
+mirrors/typedef_metadata_test: RuntimeError # Issue 12785
+mirrors/typedef_reflected_type_test/01: RuntimeError # Issue 12607
+mirrors/typedef_test: RuntimeError # Issue 6490
+mirrors/typevariable_mirror_metadata_test: RuntimeError # Issue 10905
+mirrors/variable_is_const_test/none: RuntimeError # Issue 14671
+profiler/metrics_num_test: Skip # Because of a int / double type test.
+typed_data/int32x4_bigint_test: RuntimeError # Issue 1533
+typed_data/int64_list_load_store_test: RuntimeError # Issue 10275
+typed_data/typed_data_hierarchy_int64_test: RuntimeError # Issue 10275
-[ $compiler == none && ! $checked ]
-mirrors/reflected_type_generics_test/02: Fail, Ok # Type check for a bounded type argument.
+[ $compiler == dartkp ]
+mirrors/*: Skip # mirrors are not supported by under precompilation
+
+[ $compiler == precompiler ]
+convert/chunked_conversion_utf88_test: Pass, Timeout
+convert/utf85_test: Pass, Timeout
+mirrors/*: SkipByDesign
+
+[ $mode == product ]
+developer/timeline_test: Skip # Not supported
+
+[ $runtime == ff ]
+convert/streamed_conversion_utf8_decode_test: Pass, Slow # Issue 12029, FF setTimeout can fire early: https://bugzilla.mozilla.org/show_bug.cgi?id=291386
+mirrors/mirrors_reader_test: Timeout, Slow, RuntimeError # Issue 16589, FF setTimeout can fire early: https://bugzilla.mozilla.org/show_bug.cgi?id=291386
+
+[ $runtime == flutter ]
+async/catch_errors11_test: Skip # Flutter Issue 9113
+async/intercept_schedule_microtask2_test: Skip # Flutter Issue 9113
+async/intercept_schedule_microtask5_test: Skip # Flutter Issue 9113
+async/intercept_schedule_microtask6_test: Skip # Flutter Issue 9113
+async/stream_empty_test: Skip # Flutter Issue 9113
+async/stream_event_transformed_test: Skip # Flutter Issue 9113
+mirrors/*: Skip # Flutter does not support mirrors.
+
+[ $runtime == vm ]
+convert/streamed_conversion_json_utf8_decode_test: Pass, Slow # Infrequent timeouts.
+
+[ !$checked ]
+mirrors/redirecting_factory_different_type_test: SkipByDesign # Tests type checks.
+
+[ $hot_reload ]
+async/timer_regress22626_test: Pass, RuntimeError # Timing dependent.
+mirrors/generic_bounded_by_type_parameter_test/02: Fail # Type equality - Issue 26869
+mirrors/generic_bounded_test/02: Fail # Type equality - Issue 26869
+
+[ $strong ]
+*: SkipByDesign # tests/lib_strong has the strong mode versions of these tests.
+
+[ $arch == ia32 && $mode == debug && $system == windows ]
+convert/streamed_conversion_json_utf8_decode_test: Skip # Verification OOM.
+
+[ $arch != ia32 && $arch != simarm && $arch != simarmv5te && $arch != simarmv6 && $arch != x64 && $mode == debug ]
+convert/streamed_conversion_json_utf8_decode_test: Skip # Verification not yet implemented.
+
+[ $arch == x64 && $compiler == dartk && $mode == debug && $runtime == vm ]
+mirrors/invocation_fuzz_test: Skip # Because it times out, issue 29439.
+mirrors/variable_is_const_test/01: Crash
+
+[ $arch == x64 && $mode == debug && $system == windows && ($runtime == dart_precompiled || $runtime == vm) ]
+convert/streamed_conversion_json_utf8_decode_test: Pass, Slow
+
+[ $builder_tag == asan && $mode == debug && ($runtime == dart_precompiled || $runtime == vm) ]
+convert/streamed_conversion_json_utf8_decode_test: Skip # Timeout.
+mirrors/immutable_collections_test: SkipSlow # Timeout.
+
+[ $builder_tag == strong && $compiler == dart2analyzer ]
+*: Skip # Issue 28649
+
+[ $compiler == dart2analyzer && $checked ]
+mirrors/regress_16321_test/01: MissingCompileTimeError # Issue 16391
+
+[ $compiler == dart2js && $mode == debug ]
+mirrors/native_class_test: Pass, Slow
+
+[ $compiler == dart2js && $runtime == chromeOnAndroid ]
+typed_data/setRange_2_test: RuntimeError # TODO(dart2js-team): Please triage this failure.
+typed_data/setRange_3_test: RuntimeError # TODO(dart2js-team): Please triage this failure.
+
+[ $compiler == dart2js && $runtime == d8 && $system == windows ]
+async/*deferred*: Pass, RuntimeError # Issue 17458
+mirrors/*deferred*: Pass, RuntimeError # Issue 17458
+
+[ $compiler == dart2js && $runtime == jsshell ]
+async/catch_errors12_test: Fail # Timer interface not supported: Issue 7728.
+async/catch_errors13_test: Fail # Timer interface not supported: Issue 7728.
+async/catch_errors14_test: Fail # Timer interface not supported: Issue 7728.
+async/catch_errors15_test: Fail # Timer interface not supported: Issue 7728.
+async/catch_errors22_test: RuntimeError # Timer interface not supported: Issue 7728.
+async/catch_errors8_test: Fail # Timer interface not supported: Issue 7728.
+async/future_test: RuntimeError # Timer interface not supported; Issue 7728.
+async/stream_asyncexpand_test: RuntimeError # Timer interface not supported: Issue 7728.
+async/stream_asyncmap_test: RuntimeError # Timer interface not supported: Issue 7728.
+async/stream_controller_async_test: RuntimeError # Timer interface not supported; Issue 7728.
+async/stream_controller_test: Fail # Timer interface not supported: Issue 7728.
+async/stream_from_iterable_test: RuntimeError # Timer interface not supported; Issue 7728.
+async/stream_periodic2_test: RuntimeError # Timer interface not supported; Issue 7728.
+async/stream_periodic3_test: RuntimeError # Timer interface not supported; Issue 7728.
+async/stream_periodic4_test: RuntimeError # Timer interface not supported; Issue 7728.
+async/stream_periodic5_test: RuntimeError # Timer interface not supported; Issue 7728.
+async/stream_periodic6_test: RuntimeError # Timer interface not supported; Issue 7728.
+async/stream_periodic_test: RuntimeError # Timer interface not supported; Issue 7728.
+async/stream_state_nonzero_timer_test: RuntimeError # Timer interface not supported; Issue 7728.
+async/stream_subscription_cancel_test: Fail # Timer interface not supported: Issue 7728.
+async/stream_take_test: Fail # Timer interface not supported: Issue 7728.
+async/stream_timeout_test: Fail # Timer interface not supported: Issue 7728.
+async/stream_transformation_broadcast_test: RuntimeError # Timer interface not supported: Issue 7728.
+async/timer_cancel1_test: RuntimeError, OK # Needs Timer to run.
+async/timer_cancel2_test: RuntimeError, OK # Needs Timer to run.
+async/timer_cancel_test: RuntimeError, OK # Needs Timer to run.
+async/timer_isActive_test: RuntimeError # Timer interface not supported: Issue 7728.
+async/timer_regress22626_test: RuntimeError # Non-zero timers not supported; Issue 7728.
+async/timer_repeat_test: RuntimeError, OK # Needs Timer to run.
+async/timer_test: RuntimeError, OK # Needs Timer to run.
+async/zone_bind_test: Fail # Timer interface not supported: Issue 7728.
+async/zone_create_periodic_timer_test: RuntimeError # Timer interface not supported: Issue 7728.
+async/zone_create_timer2_test: RuntimeError # Timer interface not supported: Issue 7728.
+async/zone_empty_description2_test: RuntimeError # Timer interface not supported: Issue 7728.
+mirrors/mirrors_reader_test: Skip # Running in v8 suffices. Issue 16589 - RuntimeError. Issue 22130 - Crash (out of memory).
+
+[ $compiler == dart2js && $runtime == safarimobilesim ]
+mirrors/mirrors_reader_test: SkipSlow # Times out. Issue 20806.
+mirrors/null_test: Fail # Issue 16831
+
+[ $compiler == dart2js && $checked ]
+convert/utf85_test: Pass, Slow # Issue 12029.
[ $compiler == dart2js && $fast_startup ]
mirrors/*: Fail # mirrors not supported
@@ -117,145 +253,53 @@
mirrors/metadata_nested_constructor_call_test/0*: Pass # expects failure, but it fails for the wrong reason
mirrors/metadata_scope_test/01: Pass # expects failure, but it fails for the wrong reason
mirrors/mirror_in_static_init_test/01: Pass # expects failure, but it fails for the wrong reason
+mirrors/model_test: Pass # this is ok
mirrors/parameter_is_const_test/01: Pass # expects failure, but it fails for the wrong reason
+mirrors/regress_16321_test/01: Pass # expects failure, but if fails for the wrong reason
mirrors/syntax_error_test/01: Pass # expects failure, but it fails for the wrong reason
mirrors/variable_is_const_test/01: Pass # expects failure, but it fails for the wrong reason
-mirrors/model_test: Pass # this is ok
-[ $compiler == dart2js && $fast_startup ]
-mirrors/regress_16321_test/01: Pass # expects failure, but if fails for the wrong reason
-
-[ $runtime == safari || $runtime == safarimobilesim ]
-typed_data/int32x4_test: Fail, Pass # Safari has an optimization bug (nightlies are already fine).
-typed_data/float32x4_test: Fail, Pass # Safari has an optimization bug (nightlies are already fine).
-convert/json_test: Fail # https://bugs.webkit.org/show_bug.cgi?id=134920
-
-[ ($runtime == safari && $builder_tag == mac10_7)|| $runtime == safarimobilesim ]
-typed_data/setRange_2_test: Fail # Safari doesn't fully implement spec for TypedArray.set
-typed_data/setRange_3_test: Fail # Safari doesn't fully implement spec for TypedArray.set
-typed_data/setRange_4_test: Fail # Safari doesn't fully implement spec for TypedArray.set
-
-[ $compiler == dart2js && $runtime == chromeOnAndroid ]
-typed_data/setRange_2_test: RuntimeError # TODO(dart2js-team): Please triage this failure.
-typed_data/setRange_3_test: RuntimeError # TODO(dart2js-team): Please triage this failure.
-
-[ $compiler == dart2js && ($runtime == drt || $runtime == ie11) ]
-math/math_test: RuntimeError
-math/math2_test: RuntimeError
-
-[ $compiler == dart2js && $runtime == jsshell ]
-async/timer_regress22626_test: RuntimeError # Non-zero timers not supported; Issue 7728.
-async/future_test: RuntimeError # Timer interface not supported; Issue 7728.
-async/stream_from_iterable_test: RuntimeError # Timer interface not supported; Issue 7728.
-async/stream_state_nonzero_timer_test: RuntimeError # Timer interface not supported; Issue 7728.
-async/timer_cancel_test: RuntimeError,OK # Needs Timer to run.
-async/timer_cancel1_test: RuntimeError,OK # Needs Timer to run.
-async/timer_cancel2_test: RuntimeError,OK # Needs Timer to run.
-async/timer_repeat_test: RuntimeError,OK # Needs Timer to run.
-async/timer_test: RuntimeError,OK # Needs Timer to run.
-async/stream_controller_async_test: RuntimeError # Timer interface not supported; Issue 7728.
-async/stream_periodic_test: RuntimeError # Timer interface not supported; Issue 7728.
-async/stream_periodic2_test: RuntimeError # Timer interface not supported; Issue 7728.
-async/stream_periodic3_test: RuntimeError # Timer interface not supported; Issue 7728.
-async/stream_periodic4_test: RuntimeError # Timer interface not supported; Issue 7728.
-async/stream_periodic5_test: RuntimeError # Timer interface not supported; Issue 7728.
-async/stream_periodic6_test: RuntimeError # Timer interface not supported; Issue 7728.
-async/catch_errors22_test: RuntimeError # Timer interface not supported: Issue 7728.
-async/timer_isActive_test: RuntimeError # Timer interface not supported: Issue 7728.
-async/zone_empty_description2_test: RuntimeError # Timer interface not supported: Issue 7728.
-async/zone_create_timer2_test: RuntimeError # Timer interface not supported: Issue 7728.
-async/zone_create_periodic_timer_test: RuntimeError # Timer interface not supported: Issue 7728.
-async/catch_errors12_test: Fail # Timer interface not supported: Issue 7728.
-async/catch_errors13_test: Fail # Timer interface not supported: Issue 7728.
-async/catch_errors14_test: Fail # Timer interface not supported: Issue 7728.
-async/catch_errors15_test: Fail # Timer interface not supported: Issue 7728.
-async/catch_errors8_test: Fail # Timer interface not supported: Issue 7728.
-async/zone_bind_test: Fail # Timer interface not supported: Issue 7728.
-async/stream_timeout_test: Fail # Timer interface not supported: Issue 7728.
-async/stream_asyncexpand_test: RuntimeError # Timer interface not supported: Issue 7728.
-async/stream_asyncmap_test: RuntimeError # Timer interface not supported: Issue 7728.
-async/stream_transformation_broadcast_test: RuntimeError # Timer interface not supported: Issue 7728.
-async/stream_controller_test: Fail # Timer interface not supported: Issue 7728.
-async/stream_subscription_cancel_test: Fail # Timer interface not supported: Issue 7728.
-async/stream_take_test: Fail # Timer interface not supported: Issue 7728.
-mirrors/mirrors_reader_test: Skip # Running in v8 suffices. Issue 16589 - RuntimeError. Issue 22130 - Crash (out of memory).
-
-[ $compiler == dart2js && $checked ]
-convert/utf85_test: Pass, Slow # Issue 12029.
-
-[ $compiler == dart2js ]
-convert/chunked_conversion_utf88_test: Slow, Pass
-convert/utf85_test: Slow, Pass
-convert/base64_test/01: Fail, OK # Uses bit-wise operations to detect invalid values. Some large invalid values accepted by dart2js.
-mirrors/globalized_closures_test/00: RuntimeError # Issue 17118. Please remove the multi-test comments when this test starts succeeding.
-mirrors/globalized_closures2_test/00: RuntimeError # Issue 17118. Please remove the multi-test comments when this test starts succeeding.
-
-
-[ $compiler == dart2js && ( $browser || $runtime == d8 ) ]
-async/timer_not_available_test: Fail, OK # only meant to test when there is no way to implement timer (currently only in jsshell)
-
-# 'js' tests import the dart:js library, so they only make sense in
-# a browser environment.
-[ $runtime == vm || $runtime == dart_precompiled || $runtime == flutter ]
-js/*: Skip
-
-[ $compiler == app_jit ]
-mirrors/*: Skip # Issue 27929: Triage
-
-[ $runtime == flutter ]
-mirrors/*: Skip # Flutter does not support mirrors.
-async/catch_errors11_test: Skip # Flutter Issue 9113
-async/intercept_schedule_microtask2_test: Skip # Flutter Issue 9113
-async/intercept_schedule_microtask6_test: Skip # Flutter Issue 9113
-async/stream_empty_test: Skip # Flutter Issue 9113
-async/intercept_schedule_microtask5_test: Skip # Flutter Issue 9113
-async/stream_event_transformed_test: Skip # Flutter Issue 9113
+[ $compiler == dart2js && $host_checked ]
+mirrors/metadata_allowed_values_test/28: Crash # Issue 25911
+mirrors/metadata_allowed_values_test/29: Crash # Issue 25911
+mirrors/metadata_allowed_values_test/30: Crash # Issue 25911
+mirrors/metadata_allowed_values_test/31: Crash # Issue 25911
[ $compiler == dart2js && $minified ]
-mirrors/mirrors_used_get_name_test: RuntimeError
mirrors/mirrors_used_get_name2_test: RuntimeError
+mirrors/mirrors_used_get_name_test: RuntimeError
-[ $runtime == ff ]
-convert/streamed_conversion_utf8_decode_test: Pass, Slow # Issue 12029, FF setTimeout can fire early: https://bugzilla.mozilla.org/show_bug.cgi?id=291386
-mirrors/mirrors_reader_test: Timeout, Slow, RuntimeError # Issue 16589, FF setTimeout can fire early: https://bugzilla.mozilla.org/show_bug.cgi?id=291386
+[ $compiler == dart2js && ($runtime == d8 || $browser) ]
+async/timer_not_available_test: Fail, OK # only meant to test when there is no way to implement timer (currently only in jsshell)
-[ $runtime == chrome && $system == macos ]
-async/timer_isActive_test: Fail, Pass, Timeout # Issue 22696
-async/catch_errors11_test: Pass, Timeout # Issue 22696
+[ $compiler == dart2js && ($runtime == drt || $runtime == ie11) ]
+math/math2_test: RuntimeError
+math/math_test: RuntimeError
+
+[ $compiler != dartk && $compiler != dartkp && ($runtime == dart_precompiled || $runtime == flutter || $runtime == vm) ]
+mirrors/initializing_formals_test/01: Fail # initializing formals are implicitly final as of Dart 1.21
+
+[ $compiler == dartkp && $mode == debug ]
+mirrors/variable_is_const_test/01: Crash
+vm/async_await_catch_stacktrace_test/01: Crash
+
+[ $compiler == none && $mode == product ]
+mirrors/library_enumeration_deferred_loading_test: RuntimeError, OK # Deferred loaded eagerly
+mirrors/library_import_deferred_loading_test: RuntimeError, OK # Deferred loaded eagerly
+mirrors/load_library_test: RuntimeError, OK # Deferred loaded eagerly
+
+[ $compiler == none && !$checked ]
+mirrors/reflected_type_generics_test/02: Fail, OK # Type check for a bounded type argument.
+
+[ $mode == debug && ($compiler == dartk || $compiler == dartkp) ]
+mirrors/other_declarations_location_test: Crash # assertion error, TypeParameter not having position.
[ $runtime == chrome && $system == linux ]
mirrors/native_class_test: Pass, Slow
-[ $runtime == chrome || $runtime == ff ]
-convert/streamed_conversion_utf8_encode_test: SkipSlow # Times out. Issue 22050
-convert/streamed_conversion_utf8_decode_test: SkipSlow # Times out. Issue 22050
-convert/streamed_conversion_json_utf8_encode_test: SkipSlow # Times out. Issue 22050
-convert/streamed_conversion_json_utf8_decode_test: SkipSlow # Times out. Issue 22050
-async/stream_timeout_test: SkipSlow # Times out. Issue 22050
-
-[ $compiler == dart2js ]
-typed_data/typed_data_hierarchy_int64_test: RuntimeError # Issue 10275
-typed_data/int32x4_bigint_test: RuntimeError # Issue 1533
-typed_data/int64_list_load_store_test: RuntimeError # Issue 10275
-
-[ $runtime == vm ]
-convert/streamed_conversion_json_utf8_decode_test: Pass, Slow # Infrequent timeouts.
-
-[ $runtime == vm || $runtime == dart_precompiled || $runtime == flutter ]
-async/timer_not_available_test: Fail, OK
-mirrors/native_class_test: Fail, OK # This test is meant to run in a browser.
-mirrors/deferred_type_test: CompileTimeError, OK # Don't have a multitest marker for dynamic compile time errors.
-
-[ ($runtime == vm || $runtime == dart_precompiled || $runtime == flutter) && $compiler != dartk && $compiler != dartkp ]
-mirrors/initializing_formals_test/01: Fail # initializing formals are implicitly final as of Dart 1.21
-
-[ $compiler == none || $compiler == precompiler || $compiler == app_jit ]
-async/timer_not_available_test: SkipByDesign # only meant to test when there is no way to implement timer (currently only in d8)
-
-mirrors/symbol_validation_test: RuntimeError # Issue 13596
-
-mirrors/mirrors_used*: SkipByDesign # Invalid tests. MirrorsUsed does not have a specification, and dart:mirrors is not required to hide declarations that are not covered by any MirrorsUsed annotation.
-
+[ $runtime == chrome && $system == macos ]
+async/catch_errors11_test: Pass, Timeout # Issue 22696
+async/timer_isActive_test: Fail, Pass, Timeout # Issue 22696
[ $runtime == vm && $system == fuchsia ]
async/first_regression_test: RuntimeError # These use package:unittest
@@ -289,116 +333,26 @@
async/timer_repeat_test: RuntimeError # These use package:unittest
async/timer_test: RuntimeError # These use package:unittest
convert/json_lib_test: RuntimeError # These use package:unittest
+mirrors/invocation_fuzz_test: Crash # fstat bug, ZX-479.
mirrors/library_uri_io_test: RuntimeError # These use package:unittest
mirrors/library_uri_package_test: RuntimeError # These use package:unittest
-mirrors/invocation_fuzz_test: Crash # fstat bug, ZX-479.
-[ $compiler == dart2js && $runtime == safarimobilesim ]
-mirrors/mirrors_reader_test: SkipSlow # Times out. Issue 20806.
-mirrors/null_test: Fail # Issue 16831
+# dartk: checked mode failures
+[ $checked && ($compiler == dartk || $compiler == dartkp) ]
+mirrors/invocation_fuzz_test/smi: Crash
+mirrors/redirecting_factory_different_type_test/01: Crash # Issue 28424
+mirrors/redirecting_factory_different_type_test/none: Crash # Issue 28424
+mirrors/reflected_type_generics_test/02: Pass
-[ $compiler == dart2js && $runtime == jsshell ]
+[ $arch == simarm || $arch == simarmv5te || $arch == simarmv6 ]
+convert/chunked_conversion_utf88_test: Skip # Pass, Slow Issue 12644.
+convert/utf85_test: Skip # Pass, Slow Issue 12644.
-[ $compiler == dart2analyzer ]
-mirrors/generic_f_bounded_mixin_application_test: StaticWarning # Test Issue
-
-mirrors/redirecting_factory_test/01: StaticWarning # test issue X, The return type 'Class<T2, T1>' of the redirected constructor is not assignable to 'Class<T1, T2>'
-mirrors/redirecting_factory_test/none: StaticWarning # test issue X, The return type 'Class<T2, T1>' of the redirected constructor is not assignable to 'Class<T1, T2>
-
-mirrors/immutable_collections_test: StaticWarning, OK # Expect failure for any type of Iterable.
-mirrors/inference_and_no_such_method_test: StaticWarning, OK # Expect to trigger noSuchMethod.
-mirrors/mirrors_nsm_test: StaticWarning, OK # Expect to trigger noSuchMethod.
-mirrors/mirrors_nsm_mismatch_test: StaticWarning, OK # Expect to trigger noSuchMethod.
-
-mirrors/repeated_private_anon_mixin_app_test: StaticWarning, OK # Intentional library name conflict.
-mirrors/removed_api_test: StaticWarning, OK # Deliberately refers to undeclared members.
-
-profiler/metrics_test: Fail # Issue 20309
-profiler/metrics_num_test: Fail # Issue 20309
-
-[ $compiler == dart2analyzer && $checked ]
-mirrors/regress_16321_test/01: MissingCompileTimeError # Issue 16391
-
-[ $compiler == dart2analyzer && $builder_tag == strong ]
-*: Skip # Issue 28649
-
-[ $compiler == dart2js && $runtime == d8 && $system == windows ]
-async/*deferred*: Pass,RuntimeError # Issue 17458
-mirrors/*deferred*: Pass,RuntimeError # Issue 17458
-
-[ $compiler == dart2js && $mode == debug ]
-mirrors/native_class_test: Pass, Slow
-
-[ ($compiler == none || $compiler == precompiler || $compiler == app_jit) ]
+[ $compiler == app_jit || $compiler == none || $compiler == precompiler ]
+async/timer_not_available_test: SkipByDesign # only meant to test when there is no way to implement timer (currently only in d8)
async/timer_regress22626_test: Pass, RuntimeError # Issue 28254
-
-[ $arch == simarm || $arch == simarmv6 || $arch == simarmv5te ]
-convert/chunked_conversion_utf88_test: Skip # Pass, Slow Issue 12644.
-convert/utf85_test: Skip # Pass, Slow Issue 12644.
-
-[ $arch == simarmv5te ]
-mirrors/mirrors_reader_test: Pass, Slow
-
-[ $compiler == dart2js ]
-developer/timeline_test: Skip # Not supported
-profiler/metrics_num_test: Skip # Because of a int / double type test.
-
-[ $mode == product ]
-developer/timeline_test: Skip # Not supported
-
-[ $arch == simarm64 ]
-convert/utf85_test: Skip # Pass, Slow Issue 20111.
-
-[ $mode == debug && $arch == ia32 && $system == windows ]
-convert/streamed_conversion_json_utf8_decode_test: Skip # Verification OOM.
-
-[ ($runtime == vm || $runtime == dart_precompiled) && $mode == debug && $arch == x64 && $system == windows ]
-convert/streamed_conversion_json_utf8_decode_test: Pass, Slow
-
-[ $mode == debug && $arch != ia32 && $arch != x64 && $arch != simarm && $arch != simarmv6 && $arch != simarmv5te ]
-convert/streamed_conversion_json_utf8_decode_test: Skip # Verification not yet implemented.
-
-[ ($runtime == vm || $runtime == dart_precompiled) && $mode == debug && $builder_tag == asan ]
-mirrors/immutable_collections_test: SkipSlow # Timeout.
-convert/streamed_conversion_json_utf8_decode_test: Skip # Timeout.
-
-[ $compiler == dart2js && $host_checked ]
-mirrors/metadata_allowed_values_test/28: Crash # Issue 25911
-mirrors/metadata_allowed_values_test/29: Crash # Issue 25911
-mirrors/metadata_allowed_values_test/30: Crash # Issue 25911
-mirrors/metadata_allowed_values_test/31: Crash # Issue 25911
-
-[ $compiler != dart2js ]
-
-[ $compiler == precompiler ]
-mirrors/*: SkipByDesign
-
-[ $compiler == none && $mode == product ]
-mirrors/load_library_test: RuntimeError,OK # Deferred loaded eagerly
-mirrors/library_import_deferred_loading_test: RuntimeError,OK # Deferred loaded eagerly
-mirrors/library_enumeration_deferred_loading_test: RuntimeError,OK # Deferred loaded eagerly
-
-[ $compiler == precompiler ]
-convert/chunked_conversion_utf88_test: Pass, Timeout
-convert/utf85_test: Pass, Timeout
-
-[ $hot_reload || $hot_reload_rollback ]
-async/stream_transformer_test: Pass, Fail # Closure identity
-mirrors/fake_function_with_call_test: SkipByDesign # Method equality
-
-mirrors/library_enumeration_deferred_loading_test: Crash # Deferred loading
-mirrors/library_imports_deferred_test: Crash # Deferred loading
-mirrors/library_import_deferred_loading_test: Crash # Deferred loading
-mirrors/typedef_deferred_library_test: Crash # Deferred loading
-mirrors/load_library_test: Crash # Deferred loading
-
-[ $hot_reload ]
-mirrors/generic_bounded_test/02: Fail # Type equality - Issue 26869
-mirrors/generic_bounded_by_type_parameter_test/02: Fail # Type equality - Issue 26869
-async/timer_regress22626_test: Pass, RuntimeError # Timing dependent.
-
-[ ($compiler == dartk || $compiler == dartkp) && $mode == debug ]
-mirrors/other_declarations_location_test: Crash # assertion error, TypeParameter not having position.
+mirrors/mirrors_used*: SkipByDesign # Invalid tests. MirrorsUsed does not have a specification, and dart:mirrors is not required to hide declarations that are not covered by any MirrorsUsed annotation.
+mirrors/symbol_validation_test: RuntimeError # Issue 13596
[ $compiler == dartk || $compiler == dartkp ]
mirrors/class_declarations_test/01: RuntimeError
@@ -423,8 +377,10 @@
mirrors/invoke_private_wrong_library_test: RuntimeError
mirrors/invoke_throws_test: Crash
mirrors/library_declarations_test/none: RuntimeError
+mirrors/library_enumeration_deferred_loading_test: CompileTimeError # Deferred loading kernel issue 28335.
mirrors/library_exports_hidden_test: RuntimeError
mirrors/library_exports_shown_test: RuntimeError
+mirrors/library_import_deferred_loading_test: CompileTimeError # Deferred loading kernel issue 28335.
mirrors/library_imports_deferred_test: RuntimeError
mirrors/library_imports_hidden_test: RuntimeError
mirrors/library_imports_metadata_test: RuntimeError
@@ -481,6 +437,7 @@
mirrors/symbol_validation_test/none: RuntimeError
mirrors/type_variable_is_static_test: RuntimeError
mirrors/type_variable_owner_test/01: RuntimeError
+mirrors/typedef_deferred_library_test: CompileTimeError # Deferred loading kernel issue 28335.
mirrors/typedef_in_signature_test: RuntimeError
mirrors/typedef_library_test: RuntimeError
mirrors/typedef_metadata_test: RuntimeError
@@ -490,30 +447,35 @@
mirrors/typevariable_mirror_metadata_test: RuntimeError
mirrors/variable_is_const_test/01: MissingCompileTimeError
-[ $compiler == dartkp ]
-mirrors/*: Skip # mirrors are not supported by under precompilation
+[ $runtime == chrome || $runtime == ff ]
+async/stream_timeout_test: SkipSlow # Times out. Issue 22050
+convert/streamed_conversion_json_utf8_decode_test: SkipSlow # Times out. Issue 22050
+convert/streamed_conversion_json_utf8_encode_test: SkipSlow # Times out. Issue 22050
+convert/streamed_conversion_utf8_decode_test: SkipSlow # Times out. Issue 22050
+convert/streamed_conversion_utf8_encode_test: SkipSlow # Times out. Issue 22050
-[ $compiler == dartk && $runtime == vm && $mode == debug && $arch == x64 ]
-mirrors/variable_is_const_test/01: Crash
+[ $runtime == dart_precompiled || $runtime == flutter || $runtime == vm ]
+async/timer_not_available_test: Fail, OK
+js/*: Skip
+mirrors/deferred_type_test: CompileTimeError, OK # Don't have a multitest marker for dynamic compile time errors.
+mirrors/native_class_test: Fail, OK # This test is meant to run in a browser.
-[ $compiler == dartkp && $mode == debug ]
-vm/async_await_catch_stacktrace_test/01: Crash
+[ $runtime == safari || $runtime == safarimobilesim ]
+convert/json_test: Fail # https://bugs.webkit.org/show_bug.cgi?id=134920
+typed_data/float32x4_test: Fail, Pass # Safari has an optimization bug (nightlies are already fine).
+typed_data/int32x4_test: Fail, Pass # Safari has an optimization bug (nightlies are already fine).
-# dartk: checked mode failures
-[ $checked && ($compiler == dartk || $compiler == dartkp) ]
-mirrors/invocation_fuzz_test/smi: Crash
-mirrors/redirecting_factory_different_type_test/01: Crash # Issue 28424
-mirrors/redirecting_factory_different_type_test/none: Crash # Issue 28424
-mirrors/reflected_type_generics_test/02: Pass
+[ $runtime == safarimobilesim || $builder_tag == mac10_7 && $runtime == safari ]
+typed_data/setRange_2_test: Fail # Safari doesn't fully implement spec for TypedArray.set
+typed_data/setRange_3_test: Fail # Safari doesn't fully implement spec for TypedArray.set
+typed_data/setRange_4_test: Fail # Safari doesn't fully implement spec for TypedArray.set
-# Deferred loading kernel issue 28335.
-[ $compiler == dartk || $compiler == dartkp ]
-mirrors/library_enumeration_deferred_loading_test: CompileTimeError # Deferred loading kernel issue 28335.
-mirrors/library_import_deferred_loading_test: CompileTimeError # Deferred loading kernel issue 28335.
-mirrors/typedef_deferred_library_test: CompileTimeError # Deferred loading kernel issue 28335.
+[ $hot_reload || $hot_reload_rollback ]
+async/stream_transformer_test: Pass, Fail # Closure identity
+mirrors/fake_function_with_call_test: SkipByDesign # Method equality
+mirrors/library_enumeration_deferred_loading_test: Crash # Deferred loading
+mirrors/library_import_deferred_loading_test: Crash # Deferred loading
+mirrors/library_imports_deferred_test: Crash # Deferred loading
+mirrors/load_library_test: Crash # Deferred loading
+mirrors/typedef_deferred_library_test: Crash # Deferred loading
-[ $compiler == dartk && $runtime == vm && $mode == debug && $arch == x64 ]
-mirrors/invocation_fuzz_test: Skip # Because it times out, issue 29439.
-
-[ $compiler == dartkp && $mode == debug ]
-mirrors/variable_is_const_test/01: Crash
diff --git a/tests/lib_2/html/custom/attribute_changed_callback_test.dart b/tests/lib_2/html/custom/attribute_changed_callback_test.dart
index 2bca701..5d685c5 100644
--- a/tests/lib_2/html/custom/attribute_changed_callback_test.dart
+++ b/tests/lib_2/html/custom/attribute_changed_callback_test.dart
@@ -10,7 +10,7 @@
import 'package:unittest/unittest.dart';
-import '../utils.dart';
+import 'utils.dart';
class A extends HtmlElement {
static final tag = 'x-a';
diff --git a/tests/lib_2/html/custom/constructor_calls_created_synchronously_test.dart b/tests/lib_2/html/custom/constructor_calls_created_synchronously_test.dart
index bfa9a38..eb0f55b 100644
--- a/tests/lib_2/html/custom/constructor_calls_created_synchronously_test.dart
+++ b/tests/lib_2/html/custom/constructor_calls_created_synchronously_test.dart
@@ -9,7 +9,7 @@
import 'package:unittest/unittest.dart';
-import '../utils.dart';
+import 'utils.dart';
class A extends HtmlElement {
static final tag = 'x-a';
diff --git a/tests/lib_2/html/custom/document_register_template_test.dart b/tests/lib_2/html/custom/document_register_template_test.dart
index 6a8b5ce..f7819fa 100644
--- a/tests/lib_2/html/custom/document_register_template_test.dart
+++ b/tests/lib_2/html/custom/document_register_template_test.dart
@@ -2,7 +2,7 @@
import 'package:unittest/unittest.dart';
-import '../utils.dart';
+import 'utils.dart';
main() {
setUp(() => customElementsReady);
diff --git a/tests/lib_2/html/custom/document_register_type_extensions_test.dart b/tests/lib_2/html/custom/document_register_type_extensions_test.dart
index 38831da..e9143ea 100644
--- a/tests/lib_2/html/custom/document_register_type_extensions_test.dart
+++ b/tests/lib_2/html/custom/document_register_type_extensions_test.dart
@@ -7,7 +7,7 @@
import 'package:unittest/html_individual_config.dart';
import 'package:unittest/unittest.dart';
-import '../utils.dart';
+import 'utils.dart';
class Foo extends HtmlElement {
static const tag = 'x-foo';
diff --git a/tests/lib_2/html/custom/element_upgrade_failure_test.dart b/tests/lib_2/html/custom/element_upgrade_failure_test.dart
index d4d1927..16bb949 100644
--- a/tests/lib_2/html/custom/element_upgrade_failure_test.dart
+++ b/tests/lib_2/html/custom/element_upgrade_failure_test.dart
@@ -9,7 +9,7 @@
import 'package:unittest/html_individual_config.dart';
import 'package:unittest/unittest.dart';
-import '../utils.dart';
+import 'utils.dart';
class FooElement extends HtmlElement {
static final tag = 'x-foo';
diff --git a/tests/lib_2/html/custom/element_upgrade_test.dart b/tests/lib_2/html/custom/element_upgrade_test.dart
index 69a50dc..c025552 100644
--- a/tests/lib_2/html/custom/element_upgrade_test.dart
+++ b/tests/lib_2/html/custom/element_upgrade_test.dart
@@ -9,7 +9,7 @@
import 'package:unittest/html_individual_config.dart';
import 'package:unittest/unittest.dart';
-import '../utils.dart';
+import 'utils.dart';
class FooElement extends HtmlElement {
static final tag = 'x-foo';
diff --git a/tests/lib_2/html/custom/entered_left_view_test.dart b/tests/lib_2/html/custom/entered_left_view_test.dart
index 61de1b9..20d5dc1 100644
--- a/tests/lib_2/html/custom/entered_left_view_test.dart
+++ b/tests/lib_2/html/custom/entered_left_view_test.dart
@@ -7,9 +7,11 @@
import 'dart:async';
import 'dart:html';
import 'dart:js' as js;
+
import 'package:unittest/html_individual_config.dart';
import 'package:unittest/unittest.dart';
-import '../utils.dart';
+
+import 'utils.dart';
var invocations = [];
diff --git a/tests/lib_2/html/custom/js_custom_test.dart b/tests/lib_2/html/custom/js_custom_test.dart
index 25ff35f..9044134 100644
--- a/tests/lib_2/html/custom/js_custom_test.dart
+++ b/tests/lib_2/html/custom/js_custom_test.dart
@@ -2,13 +2,13 @@
// 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 js_custom_test;
+import 'dart:html';
+import 'dart:mirrors';
import 'package:unittest/html_individual_config.dart';
import 'package:unittest/unittest.dart';
-import 'dart:html';
-import '../utils.dart';
-import 'dart:mirrors';
+
+import 'utils.dart';
class A extends HtmlElement {
static final tag = 'x-a';
diff --git a/tests/lib_2/html/custom/mirrors_2_test.dart b/tests/lib_2/html/custom/mirrors_2_test.dart
index 128323d..a489ede 100644
--- a/tests/lib_2/html/custom/mirrors_2_test.dart
+++ b/tests/lib_2/html/custom/mirrors_2_test.dart
@@ -2,16 +2,14 @@
// 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 tests.html.mirrors_2_test;
-
+import 'dart:html';
@MirrorsUsed(targets: "tests.html.mirrors_2_test")
import 'dart:mirrors';
-import 'dart:html';
import 'package:expect/expect.dart' show NoInline;
import 'package:unittest/unittest.dart';
-import '../utils.dart';
+import 'utils.dart';
/// Regression test for http://dartbug/28196
///
diff --git a/tests/lib_2/html/custom/mirrors_test.dart b/tests/lib_2/html/custom/mirrors_test.dart
index f334fc4..e5225af 100644
--- a/tests/lib_2/html/custom/mirrors_test.dart
+++ b/tests/lib_2/html/custom/mirrors_test.dart
@@ -2,14 +2,14 @@
// 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 tests.html.mirrors_test;
-
+import 'dart:html';
@MirrorsUsed(targets: const [A, B])
import 'dart:mirrors';
-import 'dart:html';
+
import 'package:unittest/html_individual_config.dart';
import 'package:unittest/unittest.dart';
-import '../utils.dart';
+
+import 'utils.dart';
/// Regression test for a tricky mirrors+custom_elements issue:
/// dart2js mirrors cache dispatch information on the Object's constructor.
diff --git a/tests/lib_2/html/custom/regress_194523002_test.dart b/tests/lib_2/html/custom/regress_194523002_test.dart
index feda47e..7cb1394 100644
--- a/tests/lib_2/html/custom/regress_194523002_test.dart
+++ b/tests/lib_2/html/custom/regress_194523002_test.dart
@@ -3,13 +3,12 @@
// BSD-style license that can be found in the LICENSE file.
// Regression test for CL 194523002.
-
-library js_custom_test;
+import 'dart:html';
import 'package:unittest/html_individual_config.dart';
import 'package:unittest/unittest.dart';
-import 'dart:html';
-import '../utils.dart';
+
+import 'utils.dart';
class A extends HtmlElement {
static final tag = 'x-a';
diff --git a/tests/lib_2/html/custom/util.dart b/tests/lib_2/html/custom/util.dart
deleted file mode 100644
index 7a1d019..0000000
--- a/tests/lib_2/html/custom/util.dart
+++ /dev/null
@@ -1,20 +0,0 @@
-// 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.
-
-library test.html.util;
-
-import 'dart:html';
-
-import 'package:unittest/unittest.dart';
-
-void expectUnsupported(f) => expect(f, throwsUnsupportedError);
-
-void expectEmptyRect(ClientRect rect) {
- expect(rect.bottom, isZero);
- expect(rect.top, isZero);
- expect(rect.left, isZero);
- expect(rect.right, isZero);
- expect(rect.height, isZero);
- expect(rect.width, isZero);
-}
diff --git a/tests/lib_2/html/custom/utils.dart b/tests/lib_2/html/custom/utils.dart
index ec30902..dc114d7a 100644
--- a/tests/lib_2/html/custom/utils.dart
+++ b/tests/lib_2/html/custom/utils.dart
@@ -3,7 +3,7 @@
import 'dart:js' as js;
import 'dart:typed_data';
-import 'package:unittest/unittest.dart';
+import 'package:expect/minitest.dart';
/**
* Verifies that [actual] has the same graph structure as [expected].
@@ -88,7 +88,8 @@
}
if (expected is List) {
- expect(actual, isList, reason: message(path, '$actual is List'));
+ expect(actual, predicate((v) => v is List),
+ reason: message(path, '$actual is List'));
expect(actual.length, expected.length,
reason: message(path, 'different list lengths'));
for (var i = 0; i < expected.length; i++) {
@@ -98,7 +99,8 @@
}
if (expected is Map) {
- expect(actual, isMap, reason: message(path, '$actual is Map'));
+ expect(actual, predicate((v) => v is Map),
+ reason: message(path, '$actual is Map'));
for (var key in expected.keys) {
if (!actual.containsKey(key)) {
expect(false, isTrue, reason: message(path, 'missing key "$key"'));
diff --git a/tests/lib_2/html/util.dart b/tests/lib_2/html/util.dart
deleted file mode 100644
index 0cf55fb..0000000
--- a/tests/lib_2/html/util.dart
+++ /dev/null
@@ -1,17 +0,0 @@
-// 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.
-
-library test.html.util;
-
-import 'dart:html';
-import 'package:expect/minitest.dart';
-
-void expectEmptyRect(Rectangle rect) {
- expect(rect.bottom, 0);
- expect(rect.top, 0);
- expect(rect.left, 0);
- expect(rect.right, 0);
- expect(rect.height, 0);
- expect(rect.width, 0);
-}
diff --git a/tests/lib_2/html/utils.dart b/tests/lib_2/html/utils.dart
index 8628734..876bc27 100644
--- a/tests/lib_2/html/utils.dart
+++ b/tests/lib_2/html/utils.dart
@@ -1,221 +1,14 @@
-library TestUtils;
-
-import 'dart:async';
-import 'dart:html';
-import 'dart:js' as js;
-import 'dart:typed_data';
-import 'package:expect/minitest.dart';
-
-/**
- * Verifies that [actual] has the same graph structure as [expected].
- * Detects cycles and DAG structure in Maps and Lists.
- */
-verifyGraph(expected, actual) {
- var eItems = [];
- var aItems = [];
-
- message(path, reason) => path == ''
- ? reason
- : reason == null ? "path: $path" : "path: $path, $reason";
-
- walk(path, expected, actual) {
- if (expected is String || expected is num || expected == null) {
- expect(actual, equals(expected), reason: message(path, 'not equal'));
- return;
- }
-
- // Cycle or DAG?
- for (int i = 0; i < eItems.length; i++) {
- if (identical(expected, eItems[i])) {
- expect(actual, same(aItems[i]),
- reason: message(path, 'missing back or side edge'));
- return;
- }
- }
- for (int i = 0; i < aItems.length; i++) {
- if (identical(actual, aItems[i])) {
- expect(expected, same(eItems[i]),
- reason: message(path, 'extra back or side edge'));
- return;
- }
- }
- eItems.add(expected);
- aItems.add(actual);
-
- if (expected is Blob) {
- expect(actual is Blob, isTrue, reason: '$actual is Blob');
- expect(expected.type, equals(actual.type),
- reason: message(path, '.type'));
- expect(expected.size, equals(actual.size),
- reason: message(path, '.size'));
- return;
- }
-
- if (expected is ByteBuffer) {
- expect(actual is ByteBuffer, isTrue, reason: '$actual is ByteBuffer');
- expect(expected.lengthInBytes, equals(actual.lengthInBytes),
- reason: message(path, '.lengthInBytes'));
- // TODO(antonm): one can create a view on top of those
- // and check if contents identical. Let's do it later.
- return;
- }
-
- if (expected is DateTime) {
- expect(actual is DateTime, isTrue, reason: '$actual is DateTime');
- expect(expected.millisecondsSinceEpoch,
- equals(actual.millisecondsSinceEpoch),
- reason: message(path, '.millisecondsSinceEpoch'));
- return;
- }
-
- if (expected is ImageData) {
- expect(actual is ImageData, isTrue, reason: '$actual is ImageData');
- expect(expected.width, equals(actual.width),
- reason: message(path, '.width'));
- expect(expected.height, equals(actual.height),
- reason: message(path, '.height'));
- walk('$path.data', expected.data, actual.data);
- return;
- }
-
- if (expected is TypedData) {
- expect(actual is TypedData, isTrue, reason: '$actual is TypedData');
- walk('$path/.buffer', expected.buffer, actual.buffer);
- expect(expected.offsetInBytes, equals(actual.offsetInBytes),
- reason: message(path, '.offsetInBytes'));
- expect(expected.lengthInBytes, equals(actual.lengthInBytes),
- reason: message(path, '.lengthInBytes'));
- // And also fallback to elements check below.
- }
-
- if (expected is List) {
- expect(actual, predicate((v) => v is List),
- reason: message(path, '$actual is List'));
- expect(actual.length, expected.length,
- reason: message(path, 'different list lengths'));
- for (var i = 0; i < expected.length; i++) {
- walk('$path[$i]', expected[i], actual[i]);
- }
- return;
- }
-
- if (expected is Map) {
- expect(actual, predicate((v) => v is Map),
- reason: message(path, '$actual is Map'));
- for (var key in expected.keys) {
- if (!actual.containsKey(key)) {
- expect(false, isTrue, reason: message(path, 'missing key "$key"'));
- }
- walk('$path["$key"]', expected[key], actual[key]);
- }
- for (var key in actual.keys) {
- if (!expected.containsKey(key)) {
- expect(false, isTrue, reason: message(path, 'extra key "$key"'));
- }
- }
- return;
- }
-
- expect(false, isTrue, reason: 'Unhandled type: $expected');
- }
-
- walk('', expected, actual);
-}
-
-/**
- * Sanitizer which does nothing.
- */
-class NullTreeSanitizer implements NodeTreeSanitizer {
- void sanitizeTree(Node node) {}
-}
-
-/**
- * Validate that two DOM trees are equivalent.
- */
-void validateNodeTree(Node a, Node b, [String path = '']) {
- path = '${path}${a.runtimeType}';
- expect(a.nodeType, b.nodeType, reason: '$path nodeTypes differ');
- expect(a.nodeValue, b.nodeValue, reason: '$path nodeValues differ');
- expect(a.text, b.text, reason: '$path texts differ');
- expect(a.nodes.length, b.nodes.length, reason: '$path nodes.lengths differ');
-
- if (a is Element) {
- Element bE = b;
- Element aE = a;
-
- expect(aE.tagName, bE.tagName, reason: '$path tagNames differ');
- expect(aE.attributes.length, bE.attributes.length,
- reason: '$path attributes.lengths differ');
- for (var key in aE.attributes.keys) {
- expect(aE.attributes[key], bE.attributes[key],
- reason: '$path attribute [$key] values differ');
- }
- }
- for (var i = 0; i < a.nodes.length; ++i) {
- validateNodeTree(a.nodes[i], b.nodes[i], '$path[$i].');
- }
-}
-
-/**
- * Upgrade all custom elements in the subtree which have not been upgraded.
- *
- * This is needed to cover timing scenarios which the custom element polyfill
- * does not cover.
- */
-void upgradeCustomElements(Node node) {
- if (js.context.hasProperty('CustomElements') &&
- js.context['CustomElements'].hasProperty('upgradeAll')) {
- js.context['CustomElements'].callMethod('upgradeAll', [node]);
- }
-}
-
-/**
- * A future that completes once all custom elements in the initial HTML page
- * have been upgraded.
- *
- * This is needed because the native implementation can update the elements
- * while parsing the HTML document, but the custom element polyfill cannot,
- * so it completes this future once all elements are upgraded.
- */
-// TODO(jmesserly): rename to webComponentsReady to match the event?
-Future customElementsReady = () {
- if (_isReady) return new Future.value();
-
- // Not upgraded. Wait for the polyfill to fire the WebComponentsReady event.
- // Note: we listen on document (not on document.body) to allow this polyfill
- // to be loaded in the HEAD element.
- return document.on['WebComponentsReady'].first;
-}();
-
-// Return true if we are using the polyfill and upgrade is complete, or if we
-// have native document.register and therefore the browser took care of it.
-// Otherwise return false, including the case where we can't find the polyfill.
-bool get _isReady {
- // If we don't have dart:js, assume things are ready
- if (js.context == null) return true;
-
- var customElements = js.context['CustomElements'];
- if (customElements == null) {
- // Return true if native document.register, otherwise false.
- // (Maybe the polyfill isn't loaded yet. Wait for it.)
- return document.supportsRegisterElement;
- }
-
- return customElements['ready'] == true;
-}
-
-/**
- * *Note* this API is primarily intended for tests. In other code it is better
- * to write it in a style that works with or without the polyfill, rather than
- * using this method.
- *
- * Synchronously trigger evaluation of pending lifecycle events, which otherwise
- * need to wait for a [MutationObserver] to signal the changes in the polyfill.
- * This method can be used to resolve differences in timing between native and
- * polyfilled custom elements.
- */
-void customElementsTakeRecords([Node node]) {
- var customElements = js.context['CustomElements'];
- if (customElements == null) return;
- customElements.callMethod('takeRecords', [node]);
-}
+/// The test runner for DDC does not handle tests that import files using
+/// relative imports that reach outside of the directory containing the test
+/// (i.e. "../" imports). Since tests both in this directory and in "custom/"
+/// use utils.dart, it needs to be accessible from both places.
+///
+/// We could have every test outside of "custom/" import "custom/utils.dart",
+/// but that feels weird since "utils.dart" doesn't have anything to do with
+/// custom elements.
+///
+/// Instead, it lives there, but is exported from here for the tests in this
+/// directory to import.
+// TODO(rnystrom): If the DDC test runner is fixed to use a different module
+// root that handles "../" imports, move "custom/utils.dart" to here.
+export 'custom/utils.dart';
diff --git a/tests/lib_2/lib_2.status b/tests/lib_2/lib_2.status
index afda8a1..6bcb0a9 100644
--- a/tests/lib_2/lib_2.status
+++ b/tests/lib_2/lib_2.status
@@ -2,6 +2,115 @@
# 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.
+[ $arch == simarm64 ]
+convert/utf85_test: Skip # Pass, Slow Issue 20111.
+
+[ $arch == simarmv5te ]
+mirrors/mirrors_reader_test: Pass, Slow
+
+[ $mode == product ]
+developer/timeline_test: Skip # Not supported
+isolate/issue_24243_parent_isolate_test: Skip # Requires checked mode
+
+[ $runtime == chrome ]
+html/element_animate_test/timing_dict: RuntimeError # Issue 26730
+html/touchevent_test: Fail # Touch events are only supported on touch devices
+
+[ $runtime == drt ]
+html/webgl_extensions_test: Skip # webgl does not work properly on DRT, which is 'headless'.
+
+[ $runtime == ff ]
+convert/streamed_conversion_utf8_decode_test: Pass, Slow # Issue 12029
+mirrors/mirrors_reader_test: Timeout, Slow, RuntimeError # Issue 16589
+
+[ $runtime == ie11 ]
+html/audiobuffersourcenode_test/supported: Fail
+html/audiocontext_test/supported: Fail
+html/canvasrenderingcontext2d_test/arc: Pass, Fail # Pixel unexpected value. Please triage this failure.
+html/canvasrenderingcontext2d_test/drawImage_video_element: Fail # IE does not support drawImage w/ video element
+html/canvasrenderingcontext2d_test/drawImage_video_element_dataUrl: Fail # IE does not support drawImage w/ video element
+html/crypto_test/supported: Fail
+html/css_test/supportsPointConversions: Fail
+html/custom/document_register_type_extensions_test/single-parameter: Fail # Issue 13193.
+html/deferred_multi_app_htmltest: Skip # Times out on IE. Issue 21537
+html/element_animate_test: Fail # Element.animate not supported on these browsers.
+html/element_test/click: Fail # IE does not support firing this event.
+html/event_test: RuntimeError # Issue 23437. Only three failures, but hard to break them out.
+html/fileapi_supported_test: Fail
+html/gamepad_test: Fail # IE does not support Navigator.getGamepads()
+html/history_hash_change_test: Fail
+html/indexeddb_5_test: Fail # Issue 12893
+html/input_element_date_test: Fail
+html/input_element_datetime_test: Fail
+html/input_element_month_test: Fail
+html/input_element_time_test: Fail
+html/input_element_week_test: Fail
+html/js_transferrables_test: RuntimeError # Issue 14246
+html/js_util_test/callConstructor: RuntimeError # Issue 26978
+html/localstorage_test: Pass, RuntimeError # Issue 22166
+html/media_stream_test: Pass, Fail
+html/mediasource_test: Pass, Fail # Windows 8: Supported: yes, functional: no
+html/no_linked_scripts_htmltest: Skip # Times out on IE. Issue 21537
+html/notification_test: Fail # Notification not supported on IE
+html/postmessage_structured_test: Fail # Does not support the MessageEvent constructor.
+html/request_animation_frame_test: Skip # Times out. Issue 22167
+html/rtc_test: Fail
+html/scripts_htmltest: Skip # Times out on IE. Issue 21537
+html/serialized_script_value_test: Fail
+html/shadow_dom_test: Fail
+html/speechrecognition_test: Fail
+html/storage_test: Pass, RuntimeError # Issue 22166
+html/svgelement_test: Fail
+html/text_event_test: RuntimeError # Issue 23437
+html/touchevent_test: Fail # IE does not support TouchEvents
+html/transferables_test: Pass, Fail # Issues 20659.
+html/transition_event_test: Skip # Times out. Issue 22167
+html/two_scripts_htmltest: Skip # Times out on IE. Issue 21537
+html/webgl_1_test: Fail
+html/websocket_test: Fail # Issue 7875. Closed with "working as intended".
+html/websql_test: Fail
+html/wheelevent_test: RuntimeError # Issue 23437
+html/worker_test/functional: Pass, Fail # Issues 20659.
+html/xhr_test/json: Fail # IE10 returns string, not JSON object
+
+[ $runtime == safari ]
+html/audiobuffersourcenode_test/functional: RuntimeError
+html/indexeddb_1_test/functional: Skip # Times out. Issue 21433
+html/indexeddb_2_test: RuntimeError # Issue 21433
+html/indexeddb_3_test: Skip # Times out 1 out of 10.
+html/indexeddb_4_test: RuntimeError # Issue 21433
+html/indexeddb_5_test: RuntimeError # Issue 21433
+html/input_element_date_test: Fail
+html/input_element_datetime_test: Fail
+html/input_element_month_test: RuntimeError
+html/input_element_time_test: RuntimeError
+html/input_element_week_test: RuntimeError
+html/notification_test: Fail # Safari doesn't let us access the fields of the Notification to verify them.
+html/touchevent_test: Fail # Safari does not support TouchEvents
+
+[ $runtime == safarimobilesim ]
+html/element_offset_test/offset: RuntimeError # Issue 18573
+html/event_test: RuntimeError # Safarimobilesim does not support WheelEvent
+html/indexeddb_1_test/supported: Fail
+html/notification_test: RuntimeError # Issue 22869
+html/performance_api_test/supported: Fail
+html/wheelevent_test: RuntimeError # Safarimobilesim does not support WheelEvent
+html/xhr_test/json: Fail # Safari doesn't support JSON response type
+
+[ $csp ]
+isolate/browser/package_resolve_browser_hook_test: SkipByDesign # Test written in a way that violates CSP.
+isolate/deferred_in_isolate2_test: Skip # Issue 16898. Deferred loading does not work from an isolate in CSP-mode
+
+[ $hot_reload ]
+async/stream_periodic4_test: Pass, RuntimeError # Issue 30904
+async/timer_regress22626_test: Pass, RuntimeError # Timing dependent.
+
+[ $jscl ]
+isolate/spawn_uri_multi_test/none: RuntimeError # Issue 13544
+
+[ $strong ]
+mirrors/redirecting_factory_test: CompileTimeError # Issue 30855
+
[ !$strong ]
isolate/isolate_import_test/01: MissingCompileTimeError
mirrors/top_level_accessors_test/01: MissingCompileTimeError
@@ -9,15 +118,22 @@
typed_data/int32x4_static_test/01: MissingCompileTimeError
typed_data/int32x4_static_test/02: MissingCompileTimeError
-[ !$strong && $compiler != dartdevc && $checked ]
+[ $compiler != dart2analyzer && $runtime != none && $checked && !$strong ]
+mirrors/redirecting_factory_different_type_test/02: RuntimeError
+
+[ $compiler != dartdevc && $checked && !$strong ]
async/future_or_only_in_async_test/00: MissingCompileTimeError
-[ !$strong && !$checked]
-async/future_or_only_in_async_test/00: MissingCompileTimeError
-async/multiple_timer_test: Pass, Fail # Timing related
+[ $compiler == none && $mode == product ]
+mirrors/library_enumeration_deferred_loading_test: RuntimeError, OK # Deferred loaded eagerly
+mirrors/library_import_deferred_loading_test: RuntimeError, OK # Deferred loaded eagerly
+mirrors/load_library_test: RuntimeError, OK # Deferred loaded eagerly
-[ $strong ]
-mirrors/redirecting_factory_test: CompileTimeError # Issue 30855
+[ $compiler == none && !$checked ]
+mirrors/reflected_type_generics_test/02: Fail, OK # Type check for a bounded type argument.
+
+[ $runtime == chrome && $system == linux ]
+mirrors/native_class_test: Pass, Slow
[ $runtime == chrome && $system == macos ]
async/catch_errors11_test: Pass, Timeout # Issue 22696
@@ -32,70 +148,33 @@
html/request_animation_frame_test: Skip # Times out. Issue 22167
html/transition_event_test: Skip # Times out. Issue 22167
+[ !$checked && !$strong ]
+async/future_or_only_in_async_test/00: MissingCompileTimeError
+async/multiple_timer_test: Pass, Fail # Timing related
+
+[ ($compiler != precompiler || $runtime != dart_precompiled) && ($runtime != vm || $compiler != dartk && $compiler != none) ]
+isolate/vm_rehash_test: SkipByDesign
+
+[ $arch == simarm || $arch == simarmv5te || $arch == simarmv6 ]
+convert/utf85_test: Skip # Pass, Slow Issue 12644.
+
+[ $compiler == app_jit || $mode == product || $runtime != vm ]
+isolate/checked_test: Skip # Unsupported.
+
+[ $compiler != none || $runtime != vm ]
+isolate/package_config_test: SkipByDesign # Uses Isolate.packageConfig
+isolate/package_resolve_test: SkipByDesign # Uses Isolate.resolvePackageUri
+isolate/package_root_test: SkipByDesign # Uses Isolate.packageRoot
+isolate/scenarios/*: SkipByDesign # Use automatic package resolution, spawnFunction and .dart URIs.
+isolate/spawn_uri_fail_test: SkipByDesign # Uses dart:io.
+
+[ $runtime == chrome || $runtime == chromeOnAndroid || $runtime == drt ]
+html/webgl_1_test: Pass, Fail # Issue 8219
+
[ $runtime == chrome || $runtime == ff ]
async/slow_consumer2_test: SkipSlow # Times out. Issue 22050
async/stream_timeout_test: SkipSlow # Times out. Issue 22050
-[ $hot_reload || $hot_reload_rollback ]
-async/stream_transformer_test: Pass, Fail # Closure identity
-isolate/function_send_test: Pass, Fail # Closure identity
-isolate/issue_21398_parent_isolate2_test: Crash # Requires deferred libraries
-isolate/message3_test/fun: Pass, Fail # Closure identity
-isolate/spawn_uri_nested_vm_test: Pass, Crash # Issue 28192
-mirrors/closurization_equivalence_test: SkipByDesign # Method equality
-mirrors/deferred_mirrors_metadata_test: Crash # Deferred loading
-mirrors/deferred_mirrors_metatarget_test: Crash # Deferred loading
-mirrors/deferred_mirrors_update_test: Crash # Deferred loading
-mirrors/library_enumeration_deferred_loading_test: Crash # Deferred loading
-mirrors/library_import_deferred_loading_test: Crash # Deferred loading
-mirrors/library_imports_deferred_test: Crash # Deferred loading
-mirrors/load_library_test: Crash # Deferred loading
-mirrors/typedef_deferred_library_test: Crash # Deferred loading
-isolate/deferred_in_isolate_test: Crash # Requires deferred libraries
-isolate/deferred_in_isolate2_test: Crash # Requires deferred libraries
-
-[ $runtime == ff ]
-convert/streamed_conversion_utf8_decode_test: Pass, Slow # Issue 12029
-
-[ $runtime == safari || $runtime == safarimobilesim ]
-convert/json_test: Fail # https://bugs.webkit.org/show_bug.cgi?id=134920
-typed_data/float32x4_test: Fail, Pass # Safari has an optimization bug (nightlies are already fine).
-typed_data/int32x4_test: Fail, Pass # Safari has an optimization bug (nightlies are already fine).
-html/element_animate_test: Fail # Element.animate not supported on these browsers.
-html/canvasrenderingcontext2d_test/drawImage_video_element: Fail # Safari does not support drawImage w/ video element
-html/canvasrenderingcontext2d_test/drawImage_video_element_dataUrl: Fail # Safari does not support drawImage w/ video element
-html/element_test: Pass, Fail # Issue 21434
-html/fileapi_supported_test: Fail
-html/gamepad_test: Fail # Safari does not support Navigator.getGamepads()
-html/mediasource_test: Pass, Fail # MediaSource only available on Safari 8 desktop, we can't express that.
-html/media_stream_test: Pass, Fail
-html/rtc_test: Fail
-html/shadow_dom_test: Fail
-html/speechrecognition_test: Fail
-html/webgl_1_test: Pass, Fail # Issue 8219
-html/worker_api_test: Skip # Issue 13221
-
-[ ($runtime == safari && $builder_tag == mac10_7)|| $runtime == safarimobilesim ]
-typed_data/setRange_2_test: Fail # Safari doesn't fully implement spec for TypedArray.set
-typed_data/setRange_3_test: Fail # Safari doesn't fully implement spec for TypedArray.set
-typed_data/setRange_4_test: Fail # Safari doesn't fully implement spec for TypedArray.set
-
-[ $runtime == ff ]
-mirrors/mirrors_reader_test: Timeout, Slow, RuntimeError # Issue 16589
-
-[ $arch == simarmv5te ]
-mirrors/mirrors_reader_test: Pass, Slow
-
-[ $compiler == none && $mode == product ]
-mirrors/load_library_test: RuntimeError,OK # Deferred loaded eagerly
-mirrors/library_import_deferred_loading_test: RuntimeError,OK # Deferred loaded eagerly
-mirrors/library_enumeration_deferred_loading_test: RuntimeError,OK # Deferred loaded eagerly
-
-[ $runtime == vm || $runtime == flutter || $runtime == dart_precompiled ]
-isolate/browser/*: SkipByDesign # Browser specific tests
-isolate/isolate_stress_test: Skip # Issue 12588: Uses dart:html. This should be able to pass when we have wrapper-less tests.
-isolate/stacktrace_message_test: RuntimeError # Fails to send stacktrace object.
-
[ $runtime == dart_precompiled || $runtime == flutter ]
isolate/count_test: Skip # Isolate.spawnUri
isolate/cross_isolate_message_test: Skip # Isolate.spawnUri
@@ -131,132 +210,52 @@
isolate/static_function_test: Skip # Isolate.spawnUri
isolate/unresolved_ports_test: Skip # Isolate.spawnUri
-[ $runtime == chrome && $system == linux ]
-mirrors/native_class_test: Pass, Slow
+[ $runtime == dart_precompiled || $runtime == flutter || $runtime == vm ]
+isolate/browser/*: SkipByDesign # Browser specific tests
+isolate/isolate_stress_test: Skip # Issue 12588: Uses dart:html. This should be able to pass when we have wrapper-less tests.
+isolate/stacktrace_message_test: RuntimeError # Fails to send stacktrace object.
-[ $runtime == ie11 ]
+[ $runtime == safari || $runtime == safarimobilesim ]
+convert/json_test: Fail # https://bugs.webkit.org/show_bug.cgi?id=134920
+html/canvasrenderingcontext2d_test/drawImage_video_element: Fail # Safari does not support drawImage w/ video element
+html/canvasrenderingcontext2d_test/drawImage_video_element_dataUrl: Fail # Safari does not support drawImage w/ video element
html/element_animate_test: Fail # Element.animate not supported on these browsers.
-html/canvasrenderingcontext2d_test/arc: Pass, Fail # Pixel unexpected value. Please triage this failure.
-html/canvasrenderingcontext2d_test/drawImage_video_element: Fail # IE does not support drawImage w/ video element
-html/canvasrenderingcontext2d_test/drawImage_video_element_dataUrl: Fail # IE does not support drawImage w/ video element
-html/crypto_test/supported: Fail
-html/css_test/supportsPointConversions: Fail
-html/custom/document_register_type_extensions_test/single-parameter: Fail # Issue 13193.
-html/deferred_multi_app_htmltest: Skip # Times out on IE. Issue 21537
-html/event_test: RuntimeError # Issue 23437. Only three failures, but hard to break them out.
-html/element_test/click: Fail # IE does not support firing this event.
+html/element_test: Pass, Fail # Issue 21434
html/fileapi_supported_test: Fail
-html/gamepad_test: Fail # IE does not support Navigator.getGamepads()
-html/history_hash_change_test: Fail
-html/indexeddb_5_test: Fail # Issue 12893
-html/input_element_date_test: Fail
-html/input_element_datetime_test: Fail
-html/input_element_month_test: Fail
-html/input_element_time_test: Fail
-html/input_element_week_test: Fail
-html/js_transferrables_test: RuntimeError # Issue 14246
-html/js_util_test/callConstructor: RuntimeError # Issue 26978
-html/localstorage_test: Pass, RuntimeError # Issue 22166
+html/gamepad_test: Fail # Safari does not support Navigator.getGamepads()
html/media_stream_test: Pass, Fail
-html/mediasource_test: Pass, Fail # Windows 8: Supported: yes, functional: no
-html/no_linked_scripts_htmltest: Skip # Times out on IE. Issue 21537
-html/notification_test: Fail # Notification not supported on IE
-html/postmessage_structured_test: Fail # Does not support the MessageEvent constructor.
-html/request_animation_frame_test: Skip # Times out. Issue 22167
+html/mediasource_test: Pass, Fail # MediaSource only available on Safari 8 desktop, we can't express that.
html/rtc_test: Fail
-html/scripts_htmltest: Skip # Times out on IE. Issue 21537
-html/serialized_script_value_test: Fail
html/shadow_dom_test: Fail
html/speechrecognition_test: Fail
-html/storage_test: Pass, RuntimeError # Issue 22166
-html/svgelement_test: Fail
-html/text_event_test: RuntimeError # Issue 23437
-html/transferables_test: Pass, Fail # Issues 20659.
-html/transition_event_test: Skip # Times out. Issue 22167
-html/touchevent_test: Fail # IE does not support TouchEvents
-html/two_scripts_htmltest: Skip # Times out on IE. Issue 21537
-html/webgl_1_test: Fail
-html/websocket_test: Fail # Issue 7875. Closed with "working as intended".
-html/websql_test: Fail
-html/wheelevent_test: RuntimeError # Issue 23437
-html/audiobuffersourcenode_test/supported: Fail
-html/audiocontext_test/supported: Fail
-html/worker_test/functional: Pass, Fail # Issues 20659.
-html/xhr_test/json: Fail # IE10 returns string, not JSON object
-
-[ $hot_reload ]
-async/timer_regress22626_test: Pass, RuntimeError # Timing dependent.
-async/stream_periodic4_test: Pass, RuntimeError # Issue 30904
-
-[ $compiler == none && ! $checked ]
-mirrors/reflected_type_generics_test/02: Fail, Ok # Type check for a bounded type argument.
-
-[ $compiler != dart2analyzer && $runtime != none && !$strong && $checked ]
-mirrors/redirecting_factory_different_type_test/02: RuntimeError
-
-[ $runtime == safarimobilesim ]
-html/element_offset_test/offset: RuntimeError # Issue 18573
-html/event_test: RuntimeError # Safarimobilesim does not support WheelEvent
-html/indexeddb_1_test/supported: Fail
-html/performance_api_test/supported: Fail
-html/notification_test: RuntimeError # Issue 22869
-html/wheelevent_test: RuntimeError # Safarimobilesim does not support WheelEvent
-html/xhr_test/json: Fail # Safari doesn't support JSON response type
-
-[ $runtime == safari ]
-html/indexeddb_1_test/functional: Skip # Times out. Issue 21433
-html/indexeddb_2_test: RuntimeError # Issue 21433
-html/indexeddb_3_test: Skip # Times out 1 out of 10.
-html/indexeddb_4_test: RuntimeError # Issue 21433
-html/indexeddb_5_test: RuntimeError # Issue 21433
-html/input_element_month_test: RuntimeError
-html/input_element_time_test: RuntimeError
-html/input_element_week_test: RuntimeError
-html/input_element_date_test: Fail
-html/input_element_datetime_test: Fail
-html/notification_test: Fail # Safari doesn't let us access the fields of the Notification to verify them.
-html/touchevent_test: Fail # Safari does not support TouchEvents
-html/audiobuffersourcenode_test/functional: RuntimeError
-
-[ $runtime == chrome ]
-html/element_animate_test/timing_dict: RuntimeError # Issue 26730
-html/touchevent_test: Fail # Touch events are only supported on touch devices
-
-[$runtime == drt || $runtime == chrome || $runtime == chromeOnAndroid ]
html/webgl_1_test: Pass, Fail # Issue 8219
+html/worker_api_test: Skip # Issue 13221
+typed_data/float32x4_test: Fail, Pass # Safari has an optimization bug (nightlies are already fine).
+typed_data/int32x4_test: Fail, Pass # Safari has an optimization bug (nightlies are already fine).
-[ $runtime == drt ]
-html/webgl_extensions_test: Skip # webgl does not work properly on DRT, which is 'headless'.
+[ $runtime == safarimobilesim || $builder_tag == mac10_7 && $runtime == safari ]
+typed_data/setRange_2_test: Fail # Safari doesn't fully implement spec for TypedArray.set
+typed_data/setRange_3_test: Fail # Safari doesn't fully implement spec for TypedArray.set
+typed_data/setRange_4_test: Fail # Safari doesn't fully implement spec for TypedArray.set
-[ $runtime != vm || $mode == product || $compiler == app_jit ]
-isolate/checked_test: Skip # Unsupported.
-
-[ $csp ]
-isolate/browser/package_resolve_browser_hook_test: SkipByDesign # Test written in a way that violates CSP.
-isolate/deferred_in_isolate2_test: Skip # Issue 16898. Deferred loading does not work from an isolate in CSP-mode
-
-[ $mode == product ]
-isolate/issue_24243_parent_isolate_test: Skip # Requires checked mode
-developer/timeline_test: Skip # Not supported
-
-[ $compiler != none || $runtime != vm ]
-isolate/package_root_test: SkipByDesign # Uses Isolate.packageRoot
-isolate/package_config_test: SkipByDesign # Uses Isolate.packageConfig
-isolate/package_resolve_test: SkipByDesign # Uses Isolate.resolvePackageUri
-isolate/scenarios/*: SkipByDesign # Use automatic package resolution, spawnFunction and .dart URIs.
-isolate/spawn_uri_fail_test: SkipByDesign # Uses dart:io.
-
-[ (($compiler != none && $compiler != dartk || $runtime != vm) && ($compiler != precompiler || $runtime != dart_precompiled)) ]
-isolate/vm_rehash_test: SkipByDesign
-
-[ $jscl ]
-isolate/spawn_uri_multi_test/none: RuntimeError # Issue 13544
-
-[ $arch == simarm || $arch == simarmv6 || $arch == simarmv5te ]
-convert/utf85_test: Skip # Pass, Slow Issue 12644.
-
-[ $arch == simarm64 ]
-convert/utf85_test: Skip # Pass, Slow Issue 20111.
-
-[ ($runtime == drt && $system == macos) || $system == windows ]
+[ $system == windows || $runtime == drt && $system == macos ]
html/xhr_test/xhr: Skip # Times out. Issue 21527
+
+[ $hot_reload || $hot_reload_rollback ]
+async/stream_transformer_test: Pass, Fail # Closure identity
+isolate/deferred_in_isolate2_test: Crash # Requires deferred libraries
+isolate/deferred_in_isolate_test: Crash # Requires deferred libraries
+isolate/function_send_test: Pass, Fail # Closure identity
+isolate/issue_21398_parent_isolate2_test: Crash # Requires deferred libraries
+isolate/message3_test/fun: Pass, Fail # Closure identity
+isolate/spawn_uri_nested_vm_test: Pass, Crash # Issue 28192
+mirrors/closurization_equivalence_test: SkipByDesign # Method equality
+mirrors/deferred_mirrors_metadata_test: Crash # Deferred loading
+mirrors/deferred_mirrors_metatarget_test: Crash # Deferred loading
+mirrors/deferred_mirrors_update_test: Crash # Deferred loading
+mirrors/library_enumeration_deferred_loading_test: Crash # Deferred loading
+mirrors/library_import_deferred_loading_test: Crash # Deferred loading
+mirrors/library_imports_deferred_test: Crash # Deferred loading
+mirrors/load_library_test: Crash # Deferred loading
+mirrors/typedef_deferred_library_test: Crash # Deferred loading
+
diff --git a/tests/lib_2/lib_2_analyzer.status b/tests/lib_2/lib_2_analyzer.status
index bb71b64..761ea22 100644
--- a/tests/lib_2/lib_2_analyzer.status
+++ b/tests/lib_2/lib_2_analyzer.status
@@ -4,34 +4,34 @@
[ $compiler == dart2analyzer ]
html/debugger_test: CompileTimeError # Issue 28969
+html/js_function_getter_trust_types_test: Skip # dart2js specific flags.
html/js_typed_interop_default_arg_test/default_value: MissingCompileTimeError # Issue #25759
-mirrors/deferred_type_test: StaticWarning, OK # Deliberately refers to a deferred type in a declaration.
mirrors/deferred_mirrors_metadata_test: Fail # Issue 17522
+mirrors/deferred_type_test: StaticWarning, OK # Deliberately refers to a deferred type in a declaration.
mirrors/generic_f_bounded_mixin_application_test: StaticWarning # Test Issue
mirrors/mirrors_nsm_mismatch_test: StaticWarning, OK
-mirrors/mirrors_nsm_test/dart2js: StaticWarning, OK
mirrors/mirrors_nsm_test: StaticWarning, OK
-mirrors/repeated_private_anon_mixin_app_test: StaticWarning, OK # Intentional library name conflict.
+mirrors/mirrors_nsm_test/dart2js: StaticWarning, OK
mirrors/redirecting_factory_test/01: StaticWarning # test issue X, The return type 'Class<T2, T1>' of the redirected constructor is not assignable to 'Class<T1, T2>'
mirrors/redirecting_factory_test/none: StaticWarning # test issue X, The return type 'Class<T2, T1>' of the redirected constructor is not assignable to 'Class<T1, T2>
-html/js_function_getter_trust_types_test: skip # dart2js specific flags.
+mirrors/repeated_private_anon_mixin_app_test: StaticWarning, OK # Intentional library name conflict.
[ $compiler == dart2analyzer && $strong ]
html/transferables_test: CompileTimeError # Issue 30975
-mirrors/deferred_type_test: CompileTimeError, OK # Deliberately refers to a deferred type in a declaration.
mirrors/deferred_mirrors_metadata_test: StaticWarning # Issue 28969
+mirrors/deferred_type_test: CompileTimeError, OK # Deliberately refers to a deferred type in a declaration.
mirrors/generic_f_bounded_mixin_application_test: CompileTimeError
mirrors/mirrors_nsm_mismatch_test: CompileTimeError, OK
-mirrors/mirrors_nsm_test/dart2js: CompileTimeError, OK
mirrors/mirrors_nsm_test: CompileTimeError, OK
+mirrors/mirrors_nsm_test/dart2js: CompileTimeError, OK
mirrors/relation_subclass_test: CompileTimeError, OK
mirrors/repeated_private_anon_mixin_app_test: CompileTimeError, OK # Intentional library name conflict.
[ $compiler == dart2analyzer && !$strong ]
html/custom/element_upgrade_failure_test: MissingCompileTimeError
+mirrors/generic_bounded_by_type_parameter_test/02: MissingCompileTimeError
mirrors/generic_bounded_test/01: MissingCompileTimeError
mirrors/generic_bounded_test/02: MissingCompileTimeError
-mirrors/generic_bounded_by_type_parameter_test/02: MissingCompileTimeError
mirrors/generic_interface_test/01: MissingCompileTimeError
mirrors/redirecting_factory_different_type_test/01: MissingCompileTimeError
mirrors/reflect_class_test/01: MissingCompileTimeError
@@ -43,3 +43,4 @@
mirrors/reflected_type_test/02: MissingCompileTimeError
mirrors/reflected_type_test/03: MissingCompileTimeError
mirrors/regress_16321_test/01: MissingCompileTimeError
+
diff --git a/tests/lib_2/lib_2_dart2js.status b/tests/lib_2/lib_2_dart2js.status
index 0d8a1a0..4c03b62 100644
--- a/tests/lib_2/lib_2_dart2js.status
+++ b/tests/lib_2/lib_2_dart2js.status
@@ -2,6 +2,212 @@
# 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 ]
+async/future_or_bad_type_test: MissingCompileTimeError
+async/future_or_strong_test: RuntimeError
+convert/base64_test/01: Fail, OK # Uses bit-wise operations to detect invalid values. Some large invalid values accepted by dart2js.
+convert/chunked_conversion_utf88_test: Slow, Pass
+convert/utf85_test: Slow, Pass
+developer/timeline_test: Skip # Not supported
+html/custom/document_register_type_extensions_test/construction: Pass, Timeout # Roll 50 failure
+html/custom/document_register_type_extensions_test/registration: Pass, Timeout # Roll 50 failure
+html/custom/element_upgrade_failure_test: MissingCompileTimeError
+html/custom/entered_left_view_test/shadow_dom: Pass, Timeout # Roll 50 failure
+html/custom_elements_test: Pass, Timeout # Issue 26789
+html/debugger_test: CompileTimeError # Issue 30900
+html/fileapi_directory_reader_test: Pass, Timeout # Roll 50 failure
+html/fileapi_directory_test: Pass, Timeout # Roll 50 failure
+html/fileapi_entry_test: Pass, Timeout # Roll 50 failure
+html/fileapi_file_entry_test: Pass, Timeout # Roll 50 failure
+html/fileapi_file_test: Pass, Timeout # Roll 50 failure
+html/indexeddb_1_test/functional: Pass, Timeout # Roll 50 failure
+html/indexeddb_2_test: Pass, Timeout # Roll 50 failure
+html/indexeddb_3_test: Pass, Timeout # Roll 50 failure
+html/indexeddb_4_test: Pass, Timeout # Roll 50 failure
+html/indexeddb_5_test: Pass, Timeout # Roll 50 failure
+html/js_typed_interop_default_arg_test/default_value: MissingCompileTimeError # Issue #25759
+html/js_typed_interop_side_cast_exp_test: Pass, RuntimeError # Roll 50 failure
+html/mirrors_js_typed_interop_test: Pass, Slow
+html/svgelement_test/PathElement: Pass, RuntimeError # Roll 50 failure
+html/websql_test: Pass, Timeout # Roll 50 failure
+html/wrapping_collections_test: SkipByDesign # Testing an issue that is only relevant to Dartium
+html/xhr_test/xhr: Pass, RuntimeError # Roll 50 failure
+isolate/browser/issue_12474_test: CompileTimeError # Issue 22529
+isolate/enum_const_test/02: RuntimeError # Issue 21817
+isolate/error_at_spawnuri_test: SkipByDesign # Test uses a ".dart" URI.
+isolate/error_exit_at_spawnuri_test: SkipByDesign # Test uses a ".dart" URI.
+isolate/exit_at_spawnuri_test: SkipByDesign # Test uses a ".dart" URI.
+isolate/function_send1_test: SkipByDesign # Test uses a ".dart" URI.
+isolate/issue_21398_parent_isolate1_test: SkipByDesign # Test uses a ".dart" URI.
+isolate/issue_21398_parent_isolate2_test: SkipByDesign # Test uses a ".dart" URI.
+isolate/issue_21398_parent_isolate_test: SkipByDesign # Test uses a ".dart" URI.
+isolate/issue_24243_parent_isolate_test: SkipByDesign # Test uses a ".dart" URI.
+isolate/kill_self_synchronously_test: SkipByDesign # Unsupported operation: Platform._resolvedExecutable
+isolate/message3_test/constInstance: RuntimeError # Issue 21817
+isolate/message3_test/constList: RuntimeError # Issue 21817
+isolate/message3_test/constList_identical: RuntimeError # Issue 21817
+isolate/message3_test/constMap: RuntimeError # Issue 21817
+isolate/non_fatal_exception_in_timer_callback_test: Skip # Issue 23876
+isolate/spawn_uri_exported_main_test: SkipByDesign # Test uses a ".dart" URI.
+isolate/spawn_uri_nested_vm_test: SkipByDesign # Test uses a ".dart" URI.
+isolate/spawn_uri_vm_test: SkipByDesign # Test uses a ".dart" URI.
+isolate/stacktrace_message_test: RuntimeError # Fails to send stacktrace object.
+math/double_pow_test: RuntimeError
+math/low_test: RuntimeError
+math/random_big_test: RuntimeError # Using bigint seeds for random.
+mirrors/*: SkipByDesign # Mirrors not supported on web in Dart 2.0.
+mirrors/private_types_test: RuntimeError # Issue 6490
+mirrors/raw_type_test/01: RuntimeError # Issue 6490
+mirrors/redirecting_factory_test/02: RuntimeError # Issue 6490
+mirrors/redirecting_factory_test/none: RuntimeError # Issue 6490
+mirrors/reflected_type_function_type_test: RuntimeError # Issue 12607
+mirrors/reflected_type_generics_test/01: Fail # Issues in reflecting generic typedefs.
+mirrors/reflected_type_generics_test/02: Fail # Issues in reflecting bounded type variables.
+mirrors/reflected_type_generics_test/03: Fail # Issues in reflecting generic typedefs.
+mirrors/reflected_type_generics_test/04: Fail # Issues in reflecting bounded type variables.
+mirrors/reflected_type_generics_test/05: Fail # Issues in reflecting generic typedefs.
+mirrors/reflected_type_generics_test/06: Fail # Issues in reflecting bounded type variables.
+mirrors/reflected_type_special_types_test: RuntimeError # Issue 12607
+mirrors/reflected_type_typedefs_test: RuntimeError # Issue 12607
+mirrors/reflected_type_typevars_test: RuntimeError # Issue 12607
+profiler/metrics_num_test: Skip # Because of an int / double type test.
+typed_data/int32x4_arithmetic_test/int64: RuntimeError # Issue 1533
+typed_data/int64_list_load_store_test: RuntimeError # Issue 10275
+typed_data/typed_data_hierarchy_int64_test: RuntimeError # Issue 10275
+
+[ $compiler != dart2js ]
+async/dart2js_uncaught_error_test: Skip # JS-integration only test
+
+[ $compiler == dart2js && $runtime == chrome ]
+async/slow_consumer2_test: SkipSlow # Times out. Issue 22050
+convert/streamed_conversion_json_utf8_decode_test: SkipSlow # Times out. Issue 22050
+convert/streamed_conversion_json_utf8_encode_test: SkipSlow # Times out. Issue 22050
+convert/streamed_conversion_utf8_decode_test: SkipSlow # Times out. Issue 22050
+html/element_classes_test: RuntimeError # Issue 30291
+html/element_types_keygen_test: RuntimeError # Issue 29055
+html/fileapi_directory_test: Fail # TODO(dart2js-team): Please triage this failure.
+html/fileapi_entry_test: Pass, Fail # TODO(dart2js-team): Please triage this failure.
+html/fileapi_file_test: Fail # TODO(dart2js-team): Please triage this failure.
+html/media_stream_test: RuntimeError # Please triage.
+html/messageevent_test: RuntimeError # Please triage this error. New in Chrome 62.
+html/serialized_script_value_test: RuntimeError # Please triage this error. New in Chrome 62.
+html/speechrecognition_test: RuntimeError # Please triage.
+isolate/function_send_test: Skip # Crashes Chrome 62: https://bugs.chromium.org/p/chromium/issues/detail?id=775506
+isolate/kill_self_synchronously_test: RuntimeError
+
+[ $compiler == dart2js && $runtime == chromeOnAndroid ]
+html/audiobuffersourcenode_test/supported: Fail # TODO(dart2js-team): Please triage this failure.
+html/audiocontext_test/supported: RuntimeError # TODO(dart2js-team): Please triage this failure.
+html/canvasrenderingcontext2d_test/drawImage_video_element: Fail # TODO(dart2js-team): Please triage this failure.
+html/canvasrenderingcontext2d_test/drawImage_video_element_dataUrl: Fail # TODO(dart2js-team): Please triage this failure.
+html/canvasrenderingcontext2d_test/fillText: Fail # TODO(dart2js-team): Please triage this failure.
+html/crypto_test/functional: Pass, Slow # TODO(dart2js-team): Please triage this failure.
+html/element_types_datalist_test: Fail # TODO(dart2js-team): Please triage this failure.
+html/input_element_datetime_test: Pass, Slow # TODO(dart2js-team): Please triage this failure.
+html/input_element_week_test: Fail # TODO(dart2js-team): Please triage this failure.
+html/media_stream_test: Fail # TODO(dart2js-team): Please triage this failure.
+html/rtc_test: Fail # TODO(dart2js-team): Please triage this failure.
+html/speechrecognition_test: Fail # TODO(dart2js-team): Please triage this failure.
+html/xhr_test/json: Fail # TODO(dart2js-team): Please triage this failure.
+isolate/mandel_isolate_test: Pass, Timeout # TODO(kasperl): Please triage.
+isolate/unresolved_ports_test: Pass, Timeout # Issue 15610
+typed_data/setRange_2_test: RuntimeError # TODO(dart2js-team): Please triage this failure.
+typed_data/setRange_3_test: RuntimeError # TODO(dart2js-team): Please triage this failure.
+
+[ $compiler == dart2js && $runtime != d8 ]
+isolate/error_at_spawn_test: Skip # Issue 23876
+isolate/error_exit_at_spawn_test: Skip # Issue 23876
+isolate/exit_at_spawn_test: Skip # Issue 23876
+isolate/message4_test: Skip # Issue 30247
+
+[ $compiler == dart2js && $runtime != d8 && $runtime != jsshell ]
+html/fontface_loaded_test: RuntimeError
+html/html_mock_test: RuntimeError # Issue 31038
+html/input_element_attributes_test: RuntimeError
+html/interactive_media_test: RuntimeError
+html/js_extend_class_test: RuntimeError
+html/js_interop_constructor_name_error1_test: Fail # Issue 26838
+html/js_interop_constructor_name_error2_test: Fail # Issue 26838
+
+[ $compiler == dart2js && $runtime == drt ]
+html/request_animation_frame_test: Skip # Async test hangs.
+html/speechrecognition_test: RuntimeError # Please triage.
+html/svg_test: RuntimeError # Please triage.
+math/math2_test: RuntimeError
+math/math_test: RuntimeError
+
+[ $compiler == dart2js && $runtime == drt && !$checked ]
+html/audiocontext_test/functional: Pass, Fail
+
+[ $compiler == dart2js && $runtime == drt && $csp ]
+html/canvas_pixel_array_type_alias_test: RuntimeError
+html/js_browser_test: RuntimeError
+html/js_caching_test: RuntimeError
+html/js_context_test: RuntimeError
+html/js_dart_functions_test: RuntimeError
+html/js_dart_js_test: RuntimeError
+html/js_identity_test: RuntimeError
+html/js_jsarray_test: RuntimeError
+html/js_jsfunc_callmethod_test: RuntimeError
+html/js_jsify_test: RuntimeError
+html/js_jsobject_test: RuntimeError
+html/js_methods_test: RuntimeError
+html/js_transferrables_test: RuntimeError
+html/js_typed_interop_lazy_test/none: RuntimeError
+html/js_typed_interop_rename_static_test: RuntimeError
+
+[ $compiler == dart2js && $runtime == ff ]
+async/slow_consumer2_test: SkipSlow # Times out. Issue 22050
+convert/streamed_conversion_json_utf8_decode_test: SkipSlow # Times out. Issue 22050
+convert/streamed_conversion_json_utf8_encode_test: SkipSlow # Times out. Issue 22050
+convert/streamed_conversion_utf8_decode_test: SkipSlow # Times out. Issue 22050
+html/custom/attribute_changed_callback_test: Skip # Times out
+html/custom/constructor_calls_created_synchronously_test: Pass, Timeout
+html/custom/created_callback_test: Skip # Times out
+html/custom/document_register_basic_test: Skip # Times out, or unittest times out
+html/dart_object_local_storage_test: Skip # sessionStorage NS_ERROR_DOM_NOT_SUPPORTED_ERR
+html/element_animate_test/timing_dict: RuntimeError # Issue 26730
+html/element_classes_test: RuntimeError # Issue 27535
+html/element_types_content_test: Pass, RuntimeError # Issue 28983
+html/element_types_content_test: RuntimeError # Issue 29922
+html/element_types_keygen_test: RuntimeError # Issue 29922
+html/element_types_keygen_test: Fail
+html/element_types_shadow_test: RuntimeError # Issue 29922
+html/element_types_shadow_test: Pass, RuntimeError # Issue 28983
+html/fileapi_supported_throws_test: Fail
+html/history_test/history: Skip # Issue 22050
+html/input_element_datetime_test: Fail
+html/input_element_month_test: Fail
+html/input_element_week_test: Fail
+html/media_stream_test: Fail
+html/messageevent_test: Pass, RuntimeError # Issue 28983
+html/request_animation_frame_test: Skip # Async test hangs.
+html/serialized_script_value_test: Pass, RuntimeError # Issue 28983
+html/shadow_dom_test: Fail
+html/speechrecognition_test: RuntimeError # Please triage.
+html/text_event_test: Fail # Issue 17893
+html/touchevent_test: Fail
+html/webgl_1_test: Pass, Fail # Issue 8219
+html/websql_test: Fail
+html/xhr_test/xhr: Pass, Fail # Issue 11602
+isolate/kill_self_synchronously_test: RuntimeError
+
+[ $compiler == dart2js && $runtime == ie11 ]
+html/element_types_content_test: RuntimeError # Issue 29922
+html/element_types_datalist_test: RuntimeError # Issue 29922
+html/element_types_details_test: RuntimeError # Issue 29922
+html/element_types_embed_test: RuntimeError # Issue 29922
+html/element_types_keygen_test: RuntimeError # Issue 29922
+html/element_types_meter_test: RuntimeError # Issue 29922
+html/element_types_object_test: RuntimeError # Issue 29922
+html/element_types_output_test: RuntimeError # Issue 29922
+html/element_types_progress_test: RuntimeError # Issue 29922
+html/element_types_shadow_test: RuntimeError # Issue 29922
+html/element_types_template_test: RuntimeError # Issue 29922
+html/element_types_track_test: RuntimeError # Issue 29922
+math/math2_test: RuntimeError
+math/math_test: RuntimeError
+
[ $compiler == dart2js && $runtime == jsshell ]
async/catch_errors12_test: Fail # Timer interface not supported: Issue 7728.
async/catch_errors13_test: Fail # Timer interface not supported: Issue 7728.
@@ -15,11 +221,11 @@
async/catch_errors8_test: Fail # Timer interface not supported: Issue 7728.
async/future_constructor2_test: Fail # Timer interface not supported: Issue 7728.
async/future_test: RuntimeError # Timer interface not supported; Issue 7728.
-async/multiple_timer_test: RuntimeError,OK # Needs Timer to run.
+async/multiple_timer_test: RuntimeError, OK # Needs Timer to run.
async/run_zoned7_test: RuntimeError # Timer interface not supported: Issue 7728.
async/run_zoned8_test: Fail # Timer interface not supported: Issue 7728.
async/schedule_microtask3_test: RuntimeError
-async/schedule_microtask_test: Fail # Preamble file does not correctly implement scheduleImmediate.
+async/schedule_microtask_test: Fail # Preamble file does not correctly implement scheduleImmediate.
async/slow_consumer2_test: RuntimeError # Timer interface not supported; Issue 7728.
async/slow_consumer3_test: RuntimeError # Timer interface not supported; Issue 7728.
async/slow_consumer_test: RuntimeError # Timer interface not supported; Issue 7728.
@@ -48,174 +254,12 @@
async/zone_create_periodic_timer_test: RuntimeError # Timer interface not supported: Issue 7728.
async/zone_create_timer2_test: RuntimeError # Timer interface not supported: Issue 7728.
async/zone_empty_description2_test: RuntimeError # Timer interface not supported: Issue 7728.
-isolate/pause_test: Fail, OK # non-zero timer not supported.
+isolate/pause_test: Fail, OK # non-zero timer not supported.
isolate/timer_isolate_test: Fail, OK # Needs Timer to run.
-[ $compiler == dart2js ]
-async/future_or_bad_type_test: MissingCompileTimeError
-async/future_or_strong_test: RuntimeError
-convert/base64_test/01: Fail, OK # Uses bit-wise operations to detect invalid values. Some large invalid values accepted by dart2js.
-convert/chunked_conversion_utf88_test: Slow, Pass
-convert/utf85_test: Slow, Pass
-developer/timeline_test: Skip # Not supported
-html/custom/document_register_type_extensions_test/construction: Pass, Timeout # Roll 50 failure
-html/custom/document_register_type_extensions_test/registration: Pass, Timeout # Roll 50 failure
-html/custom/element_upgrade_failure_test: MissingCompileTimeError
-html/custom/entered_left_view_test/shadow_dom: Pass, Timeout # Roll 50 failure
-html/custom_elements_test: Pass, Timeout # Issue 26789
-html/debugger_test: CompileTimeError # Issue 30900
-html/fileapi_directory_reader_test: Pass, Timeout # Roll 50 failure
-html/fileapi_entry_test: Pass, Timeout # Roll 50 failure
-html/fileapi_file_entry_test: Pass, Timeout # Roll 50 failure
-html/fileapi_directory_test: Pass, Timeout # Roll 50 failure
-html/fileapi_file_test: Pass, Timeout # Roll 50 failure
-html/indexeddb_1_test/functional: Pass, Timeout # Roll 50 failure
-html/indexeddb_2_test: Pass, Timeout # Roll 50 failure
-html/indexeddb_3_test: Pass, Timeout # Roll 50 failure
-html/indexeddb_4_test: Pass, Timeout # Roll 50 failure
-html/indexeddb_5_test: Pass, Timeout # Roll 50 failure
-html/js_typed_interop_default_arg_test/default_value: MissingCompileTimeError # Issue #25759
-html/js_typed_interop_side_cast_exp_test: Pass, RuntimeError # Roll 50 failure
-html/mirrors_js_typed_interop_test: Pass, Slow
-html/svgelement_test/PathElement: Pass, RuntimeError # Roll 50 failure
-html/wrapping_collections_test: SkipByDesign # Testing an issue that is only relevant to Dartium
-html/websql_test: Pass, Timeout # Roll 50 failure
-html/xhr_test/xhr: Pass, RuntimeError # Roll 50 failure
-isolate/browser/issue_12474_test: CompileTimeError # Issue 22529
-isolate/enum_const_test/02: RuntimeError # Issue 21817
-isolate/error_at_spawnuri_test: SkipByDesign # Test uses a ".dart" URI.
-isolate/error_exit_at_spawnuri_test: SkipByDesign # Test uses a ".dart" URI.
-isolate/exit_at_spawnuri_test: SkipByDesign # Test uses a ".dart" URI.
-isolate/function_send1_test: SkipByDesign # Test uses a ".dart" URI.
-isolate/issue_21398_parent_isolate1_test: SkipByDesign # Test uses a ".dart" URI.
-isolate/issue_21398_parent_isolate2_test: SkipByDesign # Test uses a ".dart" URI.
-isolate/issue_21398_parent_isolate_test: SkipByDesign # Test uses a ".dart" URI.
-isolate/issue_24243_parent_isolate_test: SkipByDesign # Test uses a ".dart" URI.
-isolate/kill_self_synchronously_test: SkipByDesign # Unsupported operation: Platform._resolvedExecutable
-isolate/message3_test/constInstance: RuntimeError # Issue 21817
-isolate/message3_test/constList: RuntimeError # Issue 21817
-isolate/message3_test/constList_identical: RuntimeError # Issue 21817
-isolate/message3_test/constMap: RuntimeError # Issue 21817
-isolate/non_fatal_exception_in_timer_callback_test: Skip # Issue 23876
-isolate/spawn_uri_exported_main_test: SkipByDesign # Test uses a ".dart" URI.
-isolate/spawn_uri_nested_vm_test: SkipByDesign # Test uses a ".dart" URI.
-isolate/spawn_uri_vm_test: SkipByDesign # Test uses a ".dart" URI.
-math/double_pow_test: RuntimeError
-math/low_test: RuntimeError
-math/random_big_test: RuntimeError # Using bigint seeds for random.
-mirrors/*: SkipByDesign # Mirrors not supported on web in Dart 2.0.
-mirrors/private_types_test: RuntimeError # Issue 6490
-mirrors/raw_type_test/01: RuntimeError # Issue 6490
-mirrors/redirecting_factory_test/02: RuntimeError # Issue 6490
-mirrors/redirecting_factory_test/none: RuntimeError # Issue 6490
-mirrors/reflected_type_function_type_test: RuntimeError # Issue 12607
-mirrors/reflected_type_generics_test/01: Fail # Issues in reflecting generic typedefs.
-mirrors/reflected_type_generics_test/02: Fail # Issues in reflecting bounded type variables.
-mirrors/reflected_type_generics_test/03: Fail # Issues in reflecting generic typedefs.
-mirrors/reflected_type_generics_test/04: Fail # Issues in reflecting bounded type variables.
-mirrors/reflected_type_generics_test/05: Fail # Issues in reflecting generic typedefs.
-mirrors/reflected_type_generics_test/06: Fail # Issues in reflecting bounded type variables.
-mirrors/reflected_type_special_types_test: RuntimeError # Issue 12607
-mirrors/reflected_type_typedefs_test: RuntimeError # Issue 12607
-mirrors/reflected_type_typevars_test: RuntimeError # Issue 12607
-profiler/metrics_num_test: Skip # Because of an int / double type test.
-typed_data/int32x4_arithmetic_test/int64: RuntimeError # Issue 1533
-typed_data/int64_list_load_store_test: RuntimeError # Issue 10275
-typed_data/typed_data_hierarchy_int64_test: RuntimeError # Issue 10275
-
-[ $compiler == dart2js ]
-isolate/stacktrace_message_test: RuntimeError # Fails to send stacktrace object.
-
-[ $compiler != dart2js ]
-async/dart2js_uncaught_error_test: Skip # JS-integration only test
-
-[ $compiler == dart2js && $checked ]
-convert/utf85_test: Pass, Slow # Issue 12029.
-html/js_function_getter_trust_types_test: Skip # --trust-type-annotations incompatible with --checked
-
-[ $compiler == dart2js && $runtime == chromeOnAndroid ]
-html/audiocontext_test/supported: RuntimeError # TODO(dart2js-team): Please triage this failure.
-html/audiobuffersourcenode_test/supported: Fail # TODO(dart2js-team): Please triage this failure.
-html/canvasrenderingcontext2d_test/drawImage_video_element: Fail # TODO(dart2js-team): Please triage this failure.
-html/canvasrenderingcontext2d_test/drawImage_video_element_dataUrl: Fail # TODO(dart2js-team): Please triage this failure.
-html/canvasrenderingcontext2d_test/fillText: Fail # TODO(dart2js-team): Please triage this failure.
-html/crypto_test/functional: Pass, Slow # TODO(dart2js-team): Please triage this failure.
-html/element_types_datalist_test: Fail # TODO(dart2js-team): Please triage this failure.
-html/input_element_datetime_test: Pass, Slow # TODO(dart2js-team): Please triage this failure.
-html/input_element_week_test: Fail # TODO(dart2js-team): Please triage this failure.
-html/media_stream_test: Fail # TODO(dart2js-team): Please triage this failure.
-html/rtc_test: Fail # TODO(dart2js-team): Please triage this failure.
-html/speechrecognition_test: Fail # TODO(dart2js-team): Please triage this failure.
-html/xhr_test/json: Fail # TODO(dart2js-team): Please triage this failure.
-isolate/mandel_isolate_test: Pass, Timeout # TODO(kasperl): Please triage.
-isolate/unresolved_ports_test: Pass, Timeout # Issue 15610
-typed_data/setRange_2_test: RuntimeError # TODO(dart2js-team): Please triage this failure.
-typed_data/setRange_3_test: RuntimeError # TODO(dart2js-team): Please triage this failure.
-
-[ $compiler == dart2js && ( $runtime == chrome || $runtime == ff ) ]
-async/slow_consumer2_test: SkipSlow # Times out. Issue 22050
-convert/streamed_conversion_utf8_decode_test: SkipSlow # Times out. Issue 22050
-convert/streamed_conversion_json_utf8_encode_test: SkipSlow # Times out. Issue 22050
-convert/streamed_conversion_json_utf8_decode_test: SkipSlow # Times out. Issue 22050
-isolate/kill_self_synchronously_test: RuntimeError
-
-[ $compiler == dart2js && ( $runtime == d8 || $runtime == jsshell ) ]
-html/fileapi_entry_test: Fail, Pass # TODO(dart2js-team): Please triage this failure.
-html/fileapi_file_entry_test: Fail, Pass # TODO(dart2js-team): Please triage this failure.
-html/fileapi_directory_test: Fail, Pass # TODO(dart2js-team): Please triage this failure.
-html/fileapi_file_test: Fail, Pass # TODO(dart2js-team): Please triage this failure.
-isolate/browser/issue_12474_test: RuntimeError # packageRoot not implemented.
-
-[ $compiler == dart2js && $runtime != d8 ]
-isolate/error_exit_at_spawn_test: Skip # Issue 23876
-isolate/error_at_spawn_test: Skip # Issue 23876
-isolate/exit_at_spawn_test: Skip # Issue 23876
-isolate/message4_test: Skip # Issue 30247
-
-[ $compiler == dart2js && ($runtime != d8 && $runtime != jsshell) ]
-html/fontface_loaded_test: RuntimeError
-html/html_mock_test: RuntimeError # Issue 31038
-html/input_element_attributes_test: RuntimeError
-html/interactive_media_test: RuntimeError
-html/js_extend_class_test: RuntimeError
-html/js_interop_constructor_name_error1_test: Fail # Issue 26838
-html/js_interop_constructor_name_error2_test: Fail # Issue 26838
-
-[ $compiler == dart2js && ($runtime != jsshell) ]
+[ $compiler == dart2js && $runtime != jsshell ]
async/timer_not_available_test: RuntimeError
-[ $compiler == dart2js && $fast_startup ]
-html/custom/constructor_calls_created_synchronously_test: Fail # mirrors not supported
-html/custom/document_register_basic_test: Pass, Slow, RuntimeError # Slow and sometimes times out
-html/custom/js_custom_test: Fail # mirrors not supported
-html/custom/mirrors_2_test: Fail # mirrors not supported
-html/custom/mirrors_test: Fail # mirrors not supported
-isolate/browser/compute_this_script_browser_test: Fail # mirrors not supported
-isolate/browser/typed_data_message_test: Fail # mirrors not supported
-isolate/count_test: Fail # mirrors not supported
-isolate/cross_isolate_message_test: Fail # mirrors not supported
-isolate/illegal_msg_mirror_test: Fail # mirrors not supported
-mirrors/regress_16321_test/01: Pass # expects failure, but if fails for the wrong reason
-
-[ $compiler == dart2js && $fast_startup && ! $browser ]
-isolate/isolate_current_test: Fail # please triage
-
-[ $compiler == dart2js && $runtime == ie11 ]
-html/element_types_content_test: RuntimeError # Issue 29922
-html/element_types_datalist_test: RuntimeError # Issue 29922
-html/element_types_details_test: RuntimeError # Issue 29922
-html/element_types_embed_test: RuntimeError # Issue 29922
-html/element_types_keygen_test: RuntimeError # Issue 29922
-html/element_types_meter_test: RuntimeError # Issue 29922
-html/element_types_object_test: RuntimeError # Issue 29922
-html/element_types_output_test: RuntimeError # Issue 29922
-html/element_types_progress_test: RuntimeError # Issue 29922
-html/element_types_shadow_test: RuntimeError # Issue 29922
-html/element_types_template_test: RuntimeError # Issue 29922
-html/element_types_track_test: RuntimeError # Issue 29922
-math/math_test: RuntimeError
-math/math2_test: RuntimeError
-
[ $compiler == dart2js && $runtime == safari ]
html/audiobuffersourcenode_test: RuntimeError
html/custom/attribute_changed_callback_test: Pass, Timeout
@@ -225,41 +269,41 @@
html/element_types_content_test: RuntimeError # Issue 29922
html/element_types_datalist_test: RuntimeError # Issue 29922
html/element_types_shadow_test: RuntimeError # Issue 29922
+isolate/cross_isolate_message_test: Skip # Issue 12627
isolate/message_test: Skip # Issue 12627
+[ $compiler == dart2js && $runtime == safarimobilesim ]
+isolate/compile_time_error_test/none: Pass, Slow
+
+[ $compiler == dart2js && $system == linux ]
+html/interactive_geolocation_test: Skip # Requires allowing geo location.
+
[ $compiler == dart2js && $browser ]
html/custom/created_callback_test: RuntimeError
+html/fontface_loaded_test: Fail # Support for promises.
html/js_typed_interop_lazy_test/01: RuntimeError
html/private_extension_member_test: RuntimeError
isolate/isolate_stress_test: Pass, Slow # Issue 10697
js/null_test: RuntimeError # Issue 30652
-html/fontface_loaded_test: Fail # Support for promises.
-[ $compiler == dart2js && $csp && $browser ]
+[ $compiler == dart2js && $browser && $csp ]
html/custom/element_upgrade_test: Fail # Issue 17298
html/custom/js_custom_test: Fail # Issue 14643
-[ $compiler == dart2js && ($runtime == safari || $runtime == safarimobilesim || $runtime == ff || $ie) ]
-html/custom/entered_left_view_test/viewless_document: Fail # Polyfill does not handle this
-html/fontface_test: Fail # Fontface not supported on these.
+[ $compiler == dart2js && !$browser && $fast_startup ]
+isolate/isolate_current_test: Fail # please triage
-[ $compiler == dart2js && $fast_startup ]
-html/mirrors_js_typed_interop_test: Fail # mirrors not supported
+[ $compiler == dart2js && $checked ]
+convert/utf85_test: Pass, Slow # Issue 12029.
+html/js_function_getter_trust_types_test: Skip # --trust-type-annotations incompatible with --checked
-[ $compiler == dart2js && $runtime == ff ]
-html/custom/attribute_changed_callback_test: Skip # Times out
-html/custom/constructor_calls_created_synchronously_test: Pass, Timeout
-html/custom/created_callback_test: Skip # Times out
-html/element_animate_test/timing_dict: RuntimeError # Issue 26730
-html/element_types_content_test: RuntimeError # Issue 29922
-html/element_types_keygen_test: RuntimeError # Issue 29922
-html/element_types_shadow_test: RuntimeError # Issue 29922
-html/input_element_datetime_test: Fail
-html/input_element_month_test: Fail
-html/input_element_week_test: Fail
-
-[ $compiler == dart2js && $csp && ($runtime == drt || $runtime == safari || $runtime == ff || $runtime == chrome || $runtime == chromeOnAndroid) ]
+[ $compiler == dart2js && $csp && ($runtime == chrome || $runtime == chromeOnAndroid || $runtime == drt || $runtime == ff || $runtime == safari) ]
html/event_customevent_test: SkipByDesign
+html/js_array_test: SkipByDesign
+html/js_dart_to_string_test: SkipByDesign
+html/js_function_getter_test: SkipByDesign
+html/js_function_getter_trust_types_test: SkipByDesign
+html/js_interop_1_test: SkipByDesign
html/js_typed_interop_bind_this_test: SkipByDesign
html/js_typed_interop_callable_object_test: SkipByDesign
html/js_typed_interop_default_arg_test: SkipByDesign
@@ -271,11 +315,9 @@
html/js_util_test: SkipByDesign
html/mirrors_js_typed_interop_test: SkipByDesign
html/postmessage_structured_test: SkipByDesign
-html/js_array_test: SkipByDesign
-html/js_function_getter_test: SkipByDesign
-html/js_dart_to_string_test: SkipByDesign
-html/js_interop_1_test: SkipByDesign
-html/js_function_getter_trust_types_test: SkipByDesign
+
+[ $compiler == dart2js && $dart2js_with_kernel ]
+async/zone_run_unary_test: Crash
[ $compiler == dart2js && $dart2js_with_kernel && $host_checked ]
html/async_spawnuri_test: Crash # 'file:*/pkg/compiler/lib/src/common_elements.dart': Failed assertion: line 405 pos 12: 'element.name == '=='': is not true.
@@ -357,15 +399,15 @@
html/js_dart_to_string_test: Crash # 'file:*/pkg/compiler/lib/src/common_elements.dart': Failed assertion: line 405 pos 12: 'element.name == '=='': is not true.
html/js_dispatch_property_test: CompileTimeError
html/js_dispatch_property_test: Crash # FileSystemException(uri=file:///usr/local/google/home/efortuna/dart2/sdk/sdk/lib/_internal/dart2js_platform.dill; message=Error reading 'sdk/lib/_internal/dart2js_platform.dill' (No such file or directory))
-html/js_function_getter_test/call getter as function: Crash # FileSystemException(uri=file:///usr/local/google/home/efortuna/dart2/sdk/sdk/lib/_internal/dart2js_platform.dill; message=Error reading 'sdk/lib/_internal/dart2js_platform.dill' (No such file or directory))
html/js_function_getter_test: CompileTimeError
+html/js_function_getter_test/call getter as function: Crash # FileSystemException(uri=file:///usr/local/google/home/efortuna/dart2/sdk/sdk/lib/_internal/dart2js_platform.dill; message=Error reading 'sdk/lib/_internal/dart2js_platform.dill' (No such file or directory))
html/js_function_getter_trust_types_test: Crash # FileSystemException(uri=file:///usr/local/google/home/efortuna/dart2/sdk/sdk/lib/_internal/dart2js_platform.dill; message=Error reading 'sdk/lib/_internal/dart2js_platform.dill' (No such file or directory))
html/js_function_getter_trust_types_test: CompileTimeError
html/js_interop_1_test: Crash # 'file:*/pkg/compiler/lib/src/common_elements.dart': Failed assertion: line 405 pos 12: 'element.name == '=='': is not true.
-html/js_interop_constructor_name_method_test: Crash # FileSystemException(uri=file:///usr/local/google/home/efortuna/dart2/sdk/sdk/lib/_internal/dart2js_platform.dill; message=Error reading 'sdk/lib/_internal/dart2js_platform.dill' (No such file or directory))
+html/js_interop_constructor_name_div_test: Crash # FileSystemException(uri=file:///usr/local/google/home/efortuna/dart2/sdk/sdk/lib/_internal/dart2js_platform.dill; message=Error reading 'sdk/lib/_internal/dart2js_platform.dill' (No such file or directory))
html/js_interop_constructor_name_error1_test: Crash # FileSystemException(uri=file:///usr/local/google/home/efortuna/dart2/sdk/sdk/lib/_internal/dart2js_platform.dill; message=Error reading 'sdk/lib/_internal/dart2js_platform.dill' (No such file or directory))
html/js_interop_constructor_name_error2_test: Crash # FileSystemException(uri=file:///usr/local/google/home/efortuna/dart2/sdk/sdk/lib/_internal/dart2js_platform.dill; message=Error reading 'sdk/lib/_internal/dart2js_platform.dill' (No such file or directory))
-html/js_interop_constructor_name_div_test: Crash # FileSystemException(uri=file:///usr/local/google/home/efortuna/dart2/sdk/sdk/lib/_internal/dart2js_platform.dill; message=Error reading 'sdk/lib/_internal/dart2js_platform.dill' (No such file or directory))
+html/js_interop_constructor_name_method_test: Crash # FileSystemException(uri=file:///usr/local/google/home/efortuna/dart2/sdk/sdk/lib/_internal/dart2js_platform.dill; message=Error reading 'sdk/lib/_internal/dart2js_platform.dill' (No such file or directory))
html/js_typed_interop_anonymous2_exp_test: Crash # 'file:*/pkg/compiler/lib/src/common_elements.dart': Failed assertion: line 405 pos 12: 'element.name == '=='': is not true.
html/js_typed_interop_anonymous2_test: Crash # 'file:*/pkg/compiler/lib/src/common_elements.dart': Failed assertion: line 405 pos 12: 'element.name == '=='': is not true.
html/js_typed_interop_anonymous_exp_test: Crash # 'file:*/pkg/compiler/lib/src/common_elements.dart': Failed assertion: line 405 pos 12: 'element.name == '=='': is not true.
@@ -457,23 +499,23 @@
[ $compiler == dart2js && $dart2js_with_kernel && $minified ]
html/async_spawnuri_test: RuntimeError
html/async_test: RuntimeError
+html/audiobuffersourcenode_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
html/audiobuffersourcenode_test/functional: RuntimeError
html/audiobuffersourcenode_test/supported: RuntimeError
-html/audiobuffersourcenode_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
-html/audiocontext_test/supported: RuntimeError
html/audiocontext_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
+html/audiocontext_test/supported: RuntimeError
html/audioelement_test: RuntimeError
html/b_element_test: RuntimeError
html/blob_constructor_test: RuntimeError
+html/cache_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
html/cache_test/ApplicationCache: RuntimeError
html/cache_test/supported: RuntimeError
-html/cache_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
html/callbacks_test: RuntimeError
+html/canvas_pixel_array_type_alias_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
html/canvas_pixel_array_type_alias_test/basic: RuntimeError
html/canvas_pixel_array_type_alias_test/typed_data: RuntimeError
html/canvas_pixel_array_type_alias_test/types1: RuntimeError
html/canvas_pixel_array_type_alias_test/types2: RuntimeError
-html/canvas_pixel_array_type_alias_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
html/custom/mirrors_2_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
html/custom/mirrors_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
html/custom/regress_194523002_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
@@ -494,8 +536,9 @@
html/element_classes_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
html/element_constructor_1_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
html/element_dimensions_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
-html/element_offset_test/offset: RuntimeError
html/element_offset_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
+html/element_offset_test/offset: RuntimeError
+html/element_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
html/element_test/ElementList: RuntimeError
html/element_test/_ElementList: RuntimeError
html/element_test/attributes: RuntimeError
@@ -508,19 +551,18 @@
html/element_test/matches: RuntimeError
html/element_test/position: RuntimeError
html/element_test/queryAll: RuntimeError
-html/element_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
html/element_types_constructors1_test: RuntimeError
-html/element_types_constructors2_test/constructors: RuntimeError
html/element_types_constructors2_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
-html/element_types_constructors3_test/constructors: RuntimeError
+html/element_types_constructors2_test/constructors: RuntimeError
html/element_types_constructors3_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
-html/element_types_constructors4_test/constructors: RuntimeError
+html/element_types_constructors3_test/constructors: RuntimeError
html/element_types_constructors4_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
-html/element_types_constructors5_test/constructors: RuntimeError
+html/element_types_constructors4_test/constructors: RuntimeError
html/element_types_constructors5_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
+html/element_types_constructors5_test/constructors: RuntimeError
+html/element_types_constructors6_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
html/element_types_constructors6_test/constructors: RuntimeError
html/element_types_constructors6_test/ul: RuntimeError
-html/element_types_constructors6_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
html/element_types_content_test: RuntimeError # Issue 29922
html/element_types_datalist_test: RuntimeError # Issue 29922
html/element_types_details_test: RuntimeError # Issue 29922
@@ -537,35 +579,35 @@
html/event_test: RuntimeError
html/exceptions_test: RuntimeError
html/fileapi_directory_reader_test: RuntimeError
+html/fileapi_directory_test: RuntimeError
html/fileapi_entry_test: RuntimeError
html/fileapi_file_entry_test: RuntimeError
-html/fileapi_directory_test: RuntimeError
html/fileapi_file_test: RuntimeError
html/fileapi_supported_test: RuntimeError
html/filereader_test: RuntimeError
html/filteredelementlist_test: RuntimeError
html/fontface_loaded_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
html/fontface_test: RuntimeError
+html/form_data_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
html/form_data_test/functional: RuntimeError
html/form_data_test/supported: RuntimeError
-html/form_data_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
html/form_element_test: RuntimeError
html/gamepad_test: RuntimeError
html/geolocation_test: RuntimeError
html/hidden_dom_1_test: RuntimeError
html/hidden_dom_2_test: RuntimeError
+html/history_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
html/history_test/history: RuntimeError
html/history_test/supported_HashChangeEvent: RuntimeError
html/history_test/supported_state: RuntimeError
-html/history_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
html/htmlcollection_test: RuntimeError
html/htmlelement_test: RuntimeError
html/htmloptionscollection_test: RuntimeError
+html/indexeddb_1_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
html/indexeddb_1_test/dynamic: RuntimeError
html/indexeddb_1_test/functional: RuntimeError
html/indexeddb_1_test/supported: RuntimeError
html/indexeddb_1_test/typed: RuntimeError
-html/indexeddb_1_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
html/indexeddb_2_test: RuntimeError
html/indexeddb_3_test: RuntimeError
html/indexeddb_4_test: RuntimeError
@@ -585,26 +627,26 @@
html/instance_of_test: RuntimeError
html/isolates_test: RuntimeError
html/js_array_test: RuntimeError
+html/js_browser_test: RuntimeError
+html/js_caching_test: RuntimeError
+html/js_context_test: RuntimeError
+html/js_dart_functions_tests: RuntimeError
+html/js_dart_js_test: RuntimeError
html/js_dart_to_string_test: RuntimeError
html/js_dispatch_property_test: RuntimeError
-html/js_function_getter_test/call getter as function: RuntimeError
html/js_function_getter_test: CompileTimeError
+html/js_function_getter_test/call getter as function: RuntimeError
html/js_function_getter_trust_types_test: Crash # NoSuchMethodError: Class 'InterfaceType' has no instance getter 'isObject'.
html/js_function_getter_trust_types_test: CompileTimeError
+html/js_identity_test: RuntimeError
html/js_interop_1_test: RuntimeError
-html/js_interop_constructor_name_method_test: RuntimeError
html/js_interop_constructor_name_div_test: RuntimeError
-html/js_dart_js_test: RuntimeError
-html/js_dart_functions_tests: RuntimeError
-html/js_caching_test: RuntimeError
+html/js_interop_constructor_name_method_test: RuntimeError
html/js_javascript_function_test: RuntimeError
html/js_jsarray_test: RuntimeError
html/js_jsfunc_callmethod_test: RuntimeError
-html/js_browser_test: RuntimeError
html/js_jsify_test: RuntimeError
html/js_jsobject_test: RuntimeError
-html/js_context_test: RuntimeError
-html/js_identity_test: RuntimeError
html/js_transferrables_test: RuntimeError
html/js_typed_interop_anonymous2_exp_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
html/js_typed_interop_anonymous2_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
@@ -666,12 +708,12 @@
html/track_element_constructor_test: RuntimeError
html/transferables_test: RuntimeError
html/transition_event_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
+html/trusted_html_tree_sanitizer_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
html/trusted_html_tree_sanitizer_test/not_create_document_fragment: RuntimeError
html/trusted_html_tree_sanitizer_test/untrusted: RuntimeError
-html/trusted_html_tree_sanitizer_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
+html/typed_arrays_1_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
html/typed_arrays_1_test/arrays: RuntimeError
html/typed_arrays_1_test/supported: RuntimeError
-html/typed_arrays_1_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
html/typed_arrays_2_test: RuntimeError
html/typed_arrays_3_test: RuntimeError
html/typed_arrays_4_test: RuntimeError
@@ -693,79 +735,18 @@
html/window_mangling_test: RuntimeError
html/window_nosuchmethod_test: RuntimeError
-[ $compiler == dart2js && $runtime == drt && $csp ]
-html/canvas_pixel_array_type_alias_test: RuntimeError
-html/js_browser_test: RuntimeError
-html/js_caching_test: RuntimeError
-html/js_context_test: RuntimeError
-html/js_dart_functions_test: RuntimeError
-html/js_dart_js_test: RuntimeError
-html/js_jsarray_test: RuntimeError
-html/js_jsfunc_callmethod_test: RuntimeError
-html/js_jsify_test: RuntimeError
-html/js_identity_test: RuntimeError
-html/js_methods_test: RuntimeError
-html/js_jsobject_test: RuntimeError
-html/js_transferrables_test: RuntimeError
-html/js_typed_interop_rename_static_test: RuntimeError
-html/js_typed_interop_lazy_test/none: RuntimeError
-
-[ $compiler == dart2js && $runtime == chrome ]
-async/slow_consumer2_test: SkipSlow # Times out. Issue 22050
-convert/streamed_conversion_json_utf8_decode_test: SkipSlow # Times out. Issue 22050
-convert/streamed_conversion_json_utf8_encode_test: SkipSlow # Times out. Issue 22050
-convert/streamed_conversion_utf8_decode_test: SkipSlow # Times out. Issue 22050
-html/element_classes_test: RuntimeError # Issue 30291
-html/element_types_keygen_test: RuntimeError # Issue 29055
-html/media_stream_test: RuntimeError # Please triage.
-html/speechrecognition_test: RuntimeError # Please triage.
-isolate/kill_self_synchronously_test: RuntimeError
-html/fileapi_entry_test: Pass, Fail # TODO(dart2js-team): Please triage this failure.
-html/fileapi_directory_test: Fail # TODO(dart2js-team): Please triage this failure.
-html/fileapi_file_test: Fail # TODO(dart2js-team): Please triage this failure.
-html/messageevent_test: RuntimeError # Please triage this error. New in Chrome 62.
-html/serialized_script_value_test: RuntimeError # Please triage this error. New in Chrome 62.
-isolate/function_send_test: Skip # Crashes Chrome 62: https://bugs.chromium.org/p/chromium/issues/detail?id=775506
-
-[ $compiler == dart2js && $runtime == ff ]
-async/slow_consumer2_test: SkipSlow # Times out. Issue 22050
-convert/streamed_conversion_json_utf8_decode_test: SkipSlow # Times out. Issue 22050
-convert/streamed_conversion_json_utf8_encode_test: SkipSlow # Times out. Issue 22050
-convert/streamed_conversion_utf8_decode_test: SkipSlow # Times out. Issue 22050
-html/custom/document_register_basic_test: Skip # Times out, or unittest times out
-html/element_classes_test: RuntimeError # Issue 27535
-html/messageevent_test: Pass, RuntimeError # Issue 28983
-html/media_stream_test: Fail
-html/request_animation_frame_test: Skip # Async test hangs.
-html/dart_object_local_storage_test: Skip # sessionStorage NS_ERROR_DOM_NOT_SUPPORTED_ERR
-html/serialized_script_value_test: Pass, RuntimeError # Issue 28983
-html/shadow_dom_test: Fail
-html/speechrecognition_test: RuntimeError # Please triage.
-html/text_event_test: Fail # Issue 17893
-html/touchevent_test: Fail
-isolate/kill_self_synchronously_test: RuntimeError
-
-[ $compiler == dart2js && $runtime == drt ]
-html/request_animation_frame_test: Skip # Async test hangs.
-html/speechrecognition_test: RuntimeError # Please triage.
-html/svg_test: RuntimeError # Please triage.
-math/math2_test: RuntimeError
-math/math_test: RuntimeError
-
-[ $compiler == dart2js && $runtime == ff ]
-html/element_types_content_test: Pass, RuntimeError # Issue 28983
-html/element_types_keygen_test: Fail
-html/element_types_shadow_test: Pass, RuntimeError # Issue 28983
-html/webgl_1_test: Pass, Fail # Issue 8219
-html/websql_test: Fail
-
-[ $compiler == dart2js && $runtime == safarimobilesim ]
-isolate/compile_time_error_test/none: Pass, Slow
-
-[ $compiler == dart2js && $runtime == safari ]
-isolate/cross_isolate_message_test: Skip # Issue 12627
-
-[ ($compiler == dart2js && $fast_startup) ]
+[ $compiler == dart2js && $fast_startup ]
+html/custom/constructor_calls_created_synchronously_test: Fail # mirrors not supported
+html/custom/document_register_basic_test: Pass, Slow, RuntimeError # Slow and sometimes times out
+html/custom/js_custom_test: Fail # mirrors not supported
+html/custom/mirrors_2_test: Fail # mirrors not supported
+html/custom/mirrors_test: Fail # mirrors not supported
+html/mirrors_js_typed_interop_test: Fail # mirrors not supported
+isolate/browser/compute_this_script_browser_test: Fail # mirrors not supported
+isolate/browser/typed_data_message_test: Fail # mirrors not supported
+isolate/count_test: Fail # mirrors not supported
+isolate/cross_isolate_message_test: Fail # mirrors not supported
+isolate/illegal_msg_mirror_test: Fail # mirrors not supported
isolate/mandel_isolate_test: Fail # mirrors not supported
isolate/message2_test: Fail # mirrors not supported
isolate/message_test: Fail # mirrors not supported
@@ -777,30 +758,33 @@
isolate/request_reply_test: Fail # mirrors not supported
isolate/spawn_function_custom_class_test: Fail # mirrors not supported
isolate/spawn_function_test: Fail # mirrors not supported
-
-[ $compiler == dart2js && ($runtime == safari || $runtime == safarimobilesim || $runtime == ff || $ie) ]
-html/custom/attribute_changed_callback_test/unsupported_on_polyfill: Fail # Polyfill does not support
+isolate/stacktrace_message_test: Fail # mirrors not supported
+isolate/static_function_test: Fail # mirrors not supported
+isolate/unresolved_ports_test: Fail # mirrors not supported
+mirrors/regress_16321_test/01: Pass # expects failure, but if fails for the wrong reason
[ $compiler == dart2js && $jscl ]
isolate/spawn_uri_test: SkipByDesign # Loading another file is not supported in JS shell
-[ ($compiler == dart2js && $fast_startup) ]
-isolate/stacktrace_message_test: Fail # mirrors not supported
-isolate/static_function_test: Fail # mirrors not supported
-isolate/unresolved_ports_test: Fail # mirrors not supported
-
-[ $compiler == dart2js && $system == linux ]
-html/interactive_geolocation_test: Skip # Requires allowing geo location.
-
-[ $compiler == dart2js && $runtime == ff ]
-html/fileapi_supported_throws_test: Fail
-html/history_test/history: Skip # Issue 22050
-
[ $compiler == dart2js && $minified ]
html/canvas_pixel_array_type_alias_test/types2_runtimeTypeName: Fail, OK # Issue 12605
-[ $compiler == dart2js && $runtime == drt && ! $checked ]
-html/audiocontext_test/functional: Pass, Fail
+[ $compiler == dart2js && ($runtime == chrome || $runtime == ff) ]
+async/slow_consumer2_test: SkipSlow # Times out. Issue 22050
+convert/streamed_conversion_json_utf8_decode_test: SkipSlow # Times out. Issue 22050
+convert/streamed_conversion_json_utf8_encode_test: SkipSlow # Times out. Issue 22050
+convert/streamed_conversion_utf8_decode_test: SkipSlow # Times out. Issue 22050
+isolate/kill_self_synchronously_test: RuntimeError
-[ $compiler == dart2js && $runtime == ff ]
-html/xhr_test/xhr: Pass, Fail # Issue 11602
+[ $compiler == dart2js && ($runtime == d8 || $runtime == jsshell) ]
+html/fileapi_directory_test: Fail, Pass # TODO(dart2js-team): Please triage this failure.
+html/fileapi_entry_test: Fail, Pass # TODO(dart2js-team): Please triage this failure.
+html/fileapi_file_entry_test: Fail, Pass # TODO(dart2js-team): Please triage this failure.
+html/fileapi_file_test: Fail, Pass # TODO(dart2js-team): Please triage this failure.
+isolate/browser/issue_12474_test: RuntimeError # packageRoot not implemented.
+
+[ $compiler == dart2js && ($runtime == ff || $runtime == safari || $runtime == safarimobilesim || $ie) ]
+html/custom/attribute_changed_callback_test/unsupported_on_polyfill: Fail # Polyfill does not support
+html/custom/entered_left_view_test/viewless_document: Fail # Polyfill does not handle this
+html/fontface_test: Fail # Fontface not supported on these.
+
diff --git a/tests/lib_2/lib_2_dartdevc.status b/tests/lib_2/lib_2_dartdevc.status
index 7e378f2..6d2a597 100644
--- a/tests/lib_2/lib_2_dartdevc.status
+++ b/tests/lib_2/lib_2_dartdevc.status
@@ -3,20 +3,22 @@
# BSD-style license that can be found in the LICENSE file.
[ $compiler == dartdevc ]
-html/custom/attribute_changed_callback_test: Crash # Issue 29922
-html/custom/constructor_calls_created_synchronously_test: Crash # Issue 29922
+html/custom/attribute_changed_callback_test: RuntimeError # Issue 31577
+html/custom/constructor_calls_created_synchronously_test: RuntimeError # Issue 31577
html/custom/document_register_basic_test: RuntimeError # Issue 29922
-html/custom/document_register_type_extensions_test/construction: Crash # dartdevc compiler crash Issue 30885
-html/custom/document_register_type_extensions_test/constructors: Crash # dartdevc compiler crash Issue 30885
-html/custom/document_register_type_extensions_test/createElement with type extension: Crash # dartdevc compiler crash Issue 30885
-html/custom/document_register_type_extensions_test/functional: Crash # dartdevc compiler crash Issue 30885
-html/custom/document_register_type_extensions_test/namespaces: Crash # dartdevc compiler crash Issue 30885
-html/custom/document_register_type_extensions_test/parsing: Crash # dartdevc compiler crash Issue 30885
-html/custom/document_register_type_extensions_test/registration: Crash # dartdevc compiler crash Issue 30885
-html/custom/document_register_type_extensions_test/single-parameter createElement: Crash # dartdevc compiler crash Issue 30885
-html/custom/element_upgrade_test: Crash # Crashes compiler Issue ?????
-html/custom/entered_left_view_test: Crash # Issue 29922
+html/custom/document_register_template_test: Skip # Issue 31577
+html/custom/document_register_type_extensions_test/construction: Skip # Issue 31577
+html/custom/document_register_type_extensions_test/constructors: Skip # Issue 31577
+html/custom/document_register_type_extensions_test/createElement with type extension: Skip # Issue 31577
+html/custom/document_register_type_extensions_test/functional: Skip # Issue 31577
+html/custom/document_register_type_extensions_test/namespaces: Skip # Issue 31577
+html/custom/document_register_type_extensions_test/parsing: Skip # Issue 31577
+html/custom/document_register_type_extensions_test/registration: Skip # Issue 31577
+html/custom/document_register_type_extensions_test/single-parameter createElement: Skip # Issue 31577
+html/custom/element_upgrade_test: Skip # Issue 31577
+html/custom/entered_left_view_test: Skip # Issue 31577
html/custom/js_custom_test: Crash # Issue 29922
+html/custom/mirrors_2_test: Skip # Issue 31577
html/custom/mirrors_test: Crash # Issue 29922
html/custom/regress_194523002_test: Crash # Issue 29922
html/deferred_multi_app_htmltest: Skip # Issue 29919
@@ -29,7 +31,7 @@
html/transferables_test: CompileTimeError # Issue 30975
html/two_scripts_htmltest: Skip # Issue 29919
html/websql_test: Pass, RuntimeError # Issue 31036
-isolate/*: SkipByDesign # No support for dart:isolate in dart4web (http://dartbug.com/30538)
+isolate/*: SkipByDesign # No support for dart:isolate in dart4web (http://dartbug.com/30538)
js/null_test: RuntimeError # Issue 30652
math/double_pow_test: RuntimeError # Issue 29922
math/low_test: RuntimeError # Issue 29922
@@ -37,9 +39,19 @@
mirrors/*: SkipByDesign # Mirrors not supported on web in Dart 2.0.
profiler/metrics_num_test: Skip # Because of an int / double type test.
-[ $compiler == dartdevc && $system == linux ]
-html/interactive_media_test: RuntimeError
-html/interactive_geolocation_test: Skip # Requires allowing geo location.
+[ $compiler == dartdevk ]
+async/zone_run_unary_test: CompileTimeError # Issue 31537
+
+[ $compiler == dartdevc && $runtime == chrome ]
+html/element_animate_test/timing_dict: RuntimeError # Issue 29922
+html/element_types_keygen_test: RuntimeError # Issue 29055
+html/js_dispatch_property_test: Skip # Timeout Issue 31030
+html/touchevent_test: RuntimeError # Issue 29922
+
+[ $compiler == dartdevc && $runtime == drt ]
+html/svg_test: RuntimeError # Issue 29922
+math/math2_test: RuntimeError # Issue 29922
+math/math_test: RuntimeError # Issue 29922
[ $compiler == dartdevc && $runtime != none ]
async/async_await_sync_completer_test: RuntimeError # Issue 29922
@@ -63,6 +75,7 @@
convert/utf85_test: Slow, Pass
html/async_spawnuri_test: RuntimeError # Issue 29922
html/async_test: RuntimeError # Issue 29922
+html/client_rect_test: RuntimeError # Issue 29922, seems to be a reified type problem with DOMClientRect
html/custom/created_callback_test: RuntimeError
html/custom_element_method_clash_test: Skip # Issue 29922
html/custom_element_name_clash_test: Skip # Issue 29922
@@ -100,27 +113,13 @@
typed_data/int64_list_load_store_test: RuntimeError # Issue 29922
typed_data/typed_data_hierarchy_int64_test: RuntimeError # Issue 29922
-[ $strong && $compiler == dartdevc ]
-html/custom/document_register_template_test: Crash # Compiler crash issue ????
-html/custom/mirrors_2_test: Crash # Compiler crash issue ????
-
-[ $compiler == dartdevc && $runtime == drt ]
-html/svg_test: RuntimeError # Issue 29922
-math/math_test: RuntimeError # Issue 29922
-math/math2_test: RuntimeError # Issue 29922
-
-[ $compiler == dartdevc && $runtime == chrome ]
-html/element_animate_test/timing_dict: RuntimeError # Issue 29922
-html/element_types_keygen_test: RuntimeError # Issue 29055
-html/js_dispatch_property_test: Skip # Timeout Issue 31030
-html/touchevent_test: RuntimeError # Issue 29922
-
-[ $compiler == dartdevc && $runtime != none ]
-html/client_rect_test: RuntimeError # Issue 29922, seems to be a reified type problem with DOMClientRect
-
[ $compiler == dartdevc && $runtime != none && $system == macos ]
html/client_rect_test: Pass, RuntimeError # Issue 31019
html/css_test: Pass, RuntimeError # Issue 31019
+[ $compiler == dartdevc && $system == linux ]
+html/interactive_geolocation_test: Skip # Requires allowing geo location.
+html/interactive_media_test: RuntimeError
+
[ $compiler == dartdevc && $system == windows ]
html/xhr_test/xhr: Skip # Times out. Issue 21527
diff --git a/tests/lib_2/lib_2_kernel.status b/tests/lib_2/lib_2_kernel.status
index 0c63350..f9de2f7 100644
--- a/tests/lib_2/lib_2_kernel.status
+++ b/tests/lib_2/lib_2_kernel.status
@@ -1,7 +1,6 @@
# 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 == dartk" or
# "$compiler == dartkp".
#
@@ -11,15 +10,27 @@
# missing a section you need, please reach out to sigmund@ to see the best way
# to add them.
-# ===== Skip dartk and darkp in !$strong mode ====
-[ $compiler == dartk && !$strong ]
-*: SkipByDesign
+[ $compiler == dartkp ]
+typed_data/int32x4_arithmetic_test/int64: CompileTimeError # Issue 31339
-[ $compiler == dartkp && !$strong ]
-*: SkipByDesign
+[ $arch == x64 && $compiler == dartk && $mode == debug && $runtime == vm && $strong ]
+mirrors/invocation_fuzz_test: Skip # Because it times out, issue 29439.
+mirrors/variable_is_const_test/01: Crash
+
+[ $compiler == dartk && $mode == debug && $runtime == vm && $strong ]
+isolate/isolate_complex_messages_test: Crash
+isolate/static_function_test: Skip # Flaky (https://github.com/dart-lang/sdk/issues/30063).
+mirrors/other_declarations_location_test: Crash # assertion error, TypeParameter not having position.
+
+[ $compiler == dartk && $runtime == vm && $checked && $strong ]
+mirrors/invocation_fuzz_test/smi: Crash
+mirrors/redirecting_factory_different_type_test/01: Crash # Issue 28424
+mirrors/redirecting_factory_different_type_test/none: Crash # Issue 28424
+mirrors/reflected_type_generics_test/02: Pass
# ===== dartk + vm status lines =====
[ $compiler == dartk && $runtime == vm && $strong ]
+async/async_await_sync_completer_test: RuntimeError
async/future_or_only_in_async_test/00: MissingCompileTimeError
async/future_or_strong_test: RuntimeError
async/slow_consumer2_test: CompileTimeError # Issue 31402 (Invocation arguments)
@@ -53,7 +64,7 @@
async/timer_not_available_test: RuntimeError
async/timer_repeat_test: CompileTimeError # Issue 31402 (Invocation arguments)
async/timer_test: CompileTimeError # Issue 31402 (Invocation arguments)
-async/zone_run_unary_test: RuntimeError # Issue 31402 (Variable declaration)
+async/zone_run_unary_test: CompileTimeError # Issue 31537
convert/streamed_conversion_json_utf8_decode_test: DartkCompileTimeError
convert/streamed_conversion_json_utf8_decode_test: Pass, Slow # Infrequent timeouts.
html/*: DartkCompileTimeError
@@ -118,7 +129,7 @@
mirrors/constructor_optional_args_test: Crash # Issue 29201
mirrors/constructor_private_name_test: RuntimeError
mirrors/constructors_test: CompileTimeError # Issue 31402 (Invocation arguments)
-mirrors/dart2js_mirrors_test: Crash
+mirrors/dart2js_mirrors_test: CompileTimeError # Issue 31537
mirrors/deferred_mirrors_metadata_test: CompileTimeError # Deferred loading kernel issue 28335.
mirrors/deferred_mirrors_metadata_test: RuntimeError
mirrors/deferred_mirrors_metatarget_test: CompileTimeError # Deferred loading kernel issue 28335.
@@ -204,7 +215,7 @@
mirrors/mirrors_nsm_test/dart2js: CompileTimeError # Issue 31533
mirrors/mirrors_nsm_test/none: CompileTimeError # Issue 31533
mirrors/mirrors_reader_test: Crash
-mirrors/mirrors_test: Crash
+mirrors/mirrors_test: CompileTimeError # Issue 31537
mirrors/mirrors_used*: SkipByDesign # Invalid tests. MirrorsUsed does not have a specification, and dart:mirrors is not required to hide declarations that are not covered by any MirrorsUsed annotation.
mirrors/mirrors_used_inheritance_test: RuntimeError
mirrors/mirrors_used_typedef_declaration_test/01: RuntimeError
@@ -252,8 +263,8 @@
mirrors/static_members_easier_test: CompileTimeError # Issue 31402 (Invocation arguments)
mirrors/static_members_test: CompileTimeError # Issue 31402 (Invocation arguments)
mirrors/static_test: CompileTimeError # Issue 31402 (Invocation arguments)
-mirrors/symbol_validation_test/01: RuntimeError
-mirrors/symbol_validation_test/none: RuntimeError
+mirrors/symbol_validation_test/01: CompileTimeError # Issue 31537
+mirrors/symbol_validation_test/none: CompileTimeError # Issue 31537
mirrors/synthetic_accessor_properties_test: CompileTimeError # Issue 31402 (Invocation arguments)
mirrors/type_variable_is_static_test: RuntimeError
mirrors/type_variable_owner_test/01: RuntimeError
@@ -401,29 +412,26 @@
typed_data/int32x4_static_test/01: MissingCompileTimeError
typed_data/int32x4_static_test/02: MissingCompileTimeError
-[ $compiler == dartk && $runtime == vm && $strong && $mode == debug]
-isolate/static_function_test: Skip # Flaky (https://github.com/dart-lang/sdk/issues/30063).
-mirrors/other_declarations_location_test: Crash # assertion error, TypeParameter not having position.
+# ===== Skip dartk and darkp in !$strong mode ====
+[ $compiler == dartk && !$strong ]
+*: SkipByDesign
+
+[ $compiler == dartkp && $mode == debug && $runtime == dart_precompiled && $strong ]
isolate/isolate_complex_messages_test: Crash
-
-[ $compiler == dartk && $runtime == vm && $strong && $mode == debug && $arch == x64 ]
-mirrors/invocation_fuzz_test: Skip # Because it times out, issue 29439.
-mirrors/variable_is_const_test/01: Crash
-
-[ $compiler == dartk && $runtime == vm && $strong && $checked ]
-mirrors/invocation_fuzz_test/smi: Crash
-mirrors/redirecting_factory_different_type_test/01: Crash # Issue 28424
-mirrors/redirecting_factory_different_type_test/none: Crash # Issue 28424
-mirrors/reflected_type_generics_test/02: Pass
+isolate/static_function_test: Skip # Flaky (https://github.com/dart-lang/sdk/issues/30063).
# ===== dartkp + dart_precompiled status lines =====
[ $compiler == dartkp && $runtime == dart_precompiled && $strong ]
+async/async_await_sync_completer_test: RuntimeError
async/future_or_only_in_async_test/00: MissingCompileTimeError
async/future_or_strong_test: RuntimeError
+async/future_test/01: RuntimeError
+async/future_test/none: RuntimeError
async/slow_consumer2_test: CompileTimeError # Issue 31402 (Invocation arguments)
async/slow_consumer3_test: CompileTimeError # Issue 31402 (Invocation arguments)
async/slow_consumer_test: CompileTimeError # Issue 31402 (Invocation arguments)
async/stream_controller_async_test: CompileTimeError # Issue 31402 (Invocation arguments)
+async/stream_distinct_test: RuntimeError
async/stream_first_where_test: CompileTimeError # Issue 31402 (Invocation arguments)
async/stream_from_iterable_test: CompileTimeError # Issue 31402 (Invocation arguments)
async/stream_iterator_test: CompileTimeError # Issue 31402 (Invocation arguments)
@@ -451,7 +459,14 @@
async/timer_not_available_test: RuntimeError
async/timer_repeat_test: CompileTimeError # Issue 31402 (Invocation arguments)
async/timer_test: CompileTimeError # Issue 31402 (Invocation arguments)
+async/zone_run_unary_test: CompileTimeError # Issue 31537
+convert/chunked_conversion_json_decode1_test: RuntimeError
+convert/json_chunk_test: RuntimeError
+convert/json_test: RuntimeError
convert/json_toEncodable_reviver_test: CompileTimeError
+convert/json_utf8_chunk_test: RuntimeError
+convert/streamed_conversion_json_encode1_test: RuntimeError
+convert/streamed_conversion_json_utf8_encode_test: RuntimeError
html/*: SkipByDesign # dart:html not supported on VM.
isolate/compile_time_error_test/01: Crash
isolate/compile_time_error_test/01: MissingCompileTimeError
@@ -463,6 +478,7 @@
isolate/isolate_import_test/01: MissingCompileTimeError
isolate/issue_21398_parent_isolate2_test/01: Skip # Times out. Deferred loading kernel issue 28335.
isolate/issue_22778_test: Crash
+isolate/kill_self_synchronously_test: RuntimeError
isolate/kill_test: CompileTimeError # Issue 31402 (Invocation arguments)
isolate/message3_test/byteBuffer: CompileTimeError # Issue 31402 (Invocation arguments)
isolate/message3_test/constInstance: CompileTimeError # Issue 31402 (Invocation arguments)
@@ -483,9 +499,6 @@
js/prototype_access_test: CompileTimeError
mirrors/*: SkipByDesign # Mirrors are not supported in AOT mode.
-[ $compiler == dartkp && $runtime == dart_precompiled && $strong && $mode == debug]
-isolate/isolate_complex_messages_test: Crash
-isolate/static_function_test: Skip # Flaky (https://github.com/dart-lang/sdk/issues/30063).
+[ $compiler == dartkp && !$strong ]
+*: SkipByDesign
-[ $compiler == dartkp ]
-typed_data/int32x4_arithmetic_test/int64: CompileTimeError # Issue 31339
diff --git a/tests/lib_2/lib_2_precompiled.status b/tests/lib_2/lib_2_precompiled.status
index 2f8ee97..7c47354 100644
--- a/tests/lib_2/lib_2_precompiled.status
+++ b/tests/lib_2/lib_2_precompiled.status
@@ -2,21 +2,22 @@
# 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 == none || $compiler == precompiler || $compiler == app_jit ]
-async/future_or_strong_test: RuntimeError
-isolate/compile_time_error_test/01: Skip # Issue 12587
-isolate/message3_test/int32x4: Fail, Crash, Timeout # Issue 21818
-isolate/ping_pause_test: Skip # Resolve test issues
-isolate/ping_test: Skip # Resolve test issues
-mirrors/symbol_validation_test: RuntimeError # Issue 13596
-async/timer_not_available_test: SkipByDesign # only meant to test when there is no way to implement timer (currently only in d8)
-
[ $compiler == precompiler ]
convert/chunked_conversion_utf88_test: Pass, Timeout
convert/utf85_test: Pass, Timeout
html/*: SkipByDesign # dart:html not supported on AOT.
mirrors/*: SkipByDesign # Mirrors not supported on AOT.
+[ $compiler == app_jit || $compiler == none || $compiler == precompiler ]
+async/future_or_strong_test: RuntimeError
+async/timer_not_available_test: SkipByDesign # only meant to test when there is no way to implement timer (currently only in d8)
+async/timer_regress22626_test: Pass, RuntimeError # Issue 28254
+isolate/compile_time_error_test/01: Skip # Issue 12587
+isolate/message3_test/int32x4: Fail, Crash, Timeout # Issue 21818
+isolate/ping_pause_test: Skip # Resolve test issues
+isolate/ping_test: Skip # Resolve test issues
+mirrors/symbol_validation_test: RuntimeError # Issue 13596
+
[ $compiler == precompiler || $runtime == flutter ]
isolate/count_test: SkipByDesign
isolate/cross_isolate_message_test: SkipByDesign
@@ -40,5 +41,3 @@
js/null_test: CompileTimeError
js/prototype_access_test: CompileTimeError
-[ ($compiler == none || $compiler == precompiler || $compiler == app_jit) ]
-async/timer_regress22626_test: Pass, RuntimeError # Issue 28254
diff --git a/tests/lib_2/lib_2_vm.status b/tests/lib_2/lib_2_vm.status
index 819bd58..d387ae5 100644
--- a/tests/lib_2/lib_2_vm.status
+++ b/tests/lib_2/lib_2_vm.status
@@ -2,6 +2,47 @@
# 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.
+[ $arch == ia32 && $mode == debug && $runtime == vm && $system == windows ]
+convert/streamed_conversion_json_utf8_decode_test: Skip # Verification OOM.
+
+[ $arch != ia32 && $arch != simarm && $arch != simarmv5te && $arch != simarmv6 && $arch != x64 && $mode == debug && $runtime == vm ]
+convert/streamed_conversion_json_utf8_decode_test: Skip # Verification not yet implemented.
+
+[ $arch == simarm64 && $runtime == vm ]
+convert/utf85_test: Skip # Pass, Slow Issue 20111.
+
+[ $compiler != dartk && $runtime == vm ]
+convert/streamed_conversion_json_utf8_decode_test: Pass, Slow # Infrequent timeouts.
+html/*: SkipByDesign # dart:html not supported on VM.
+js/datetime_roundtrip_test: CompileTimeError
+js/null_test: CompileTimeError
+js/prototype_access_test: CompileTimeError
+mirrors/deferred_type_test: CompileTimeError
+mirrors/generic_bounded_by_type_parameter_test/02: MissingCompileTimeError
+mirrors/generic_bounded_test/01: MissingCompileTimeError
+mirrors/generic_bounded_test/02: MissingCompileTimeError
+mirrors/generic_interface_test/01: MissingCompileTimeError
+mirrors/initializing_formals_test/01: Fail # initializing formals are implicitly final as of Dart 1.21
+mirrors/mirrors_used*: SkipByDesign # Invalid tests. MirrorsUsed does not have a specification, and dart:mirrors is not required to hide declarations that are not covered by any MirrorsUsed annotation.
+mirrors/native_class_test: SkipByDesign # Imports dart:html
+mirrors/redirecting_factory_different_type_test/01: MissingCompileTimeError
+
+[ $compiler != dartk && $runtime == vm && !$checked ]
+mirrors/inference_and_no_such_method_test: RuntimeError
+
+[ $compiler != dartk && $runtime == vm && $strong ]
+async/future_or_only_in_async_test/00: MissingCompileTimeError
+
+[ $compiler != dartk && $runtime == vm && !$strong ]
+mirrors/reflect_class_test/01: MissingCompileTimeError
+mirrors/reflect_class_test/02: MissingCompileTimeError
+mirrors/reflected_type_classes_test/01: MissingCompileTimeError
+mirrors/reflected_type_classes_test/02: MissingCompileTimeError
+mirrors/reflected_type_classes_test/03: MissingCompileTimeError
+mirrors/reflected_type_test/01: MissingCompileTimeError
+mirrors/reflected_type_test/02: MissingCompileTimeError
+mirrors/reflected_type_test/03: MissingCompileTimeError
+
[ $runtime == vm && $system == fuchsia ]
async/first_regression_test: RuntimeError
async/future_timeout_test: RuntimeError
@@ -20,20 +61,20 @@
async/stream_periodic5_test: RuntimeError
async/stream_periodic6_test: RuntimeError
async/stream_periodic_test: RuntimeError
-async/stream_transform_test: RuntimeError
-async/stream_transformation_broadcast_test: RuntimeError
-async/stream_state_test: RuntimeError
-async/stream_state_nonzero_timer_test: RuntimeError
async/stream_single_test: RuntimeError
async/stream_single_to_multi_subscriber_test: RuntimeError
+async/stream_state_nonzero_timer_test: RuntimeError
+async/stream_state_test: RuntimeError
async/stream_subscription_as_future_test: RuntimeError
async/stream_subscription_cancel_test: RuntimeError
-async/timer_test: RuntimeError
+async/stream_transform_test: RuntimeError
+async/stream_transformation_broadcast_test: RuntimeError
async/timer_cancel1_test: RuntimeError
async/timer_cancel2_test: RuntimeError
async/timer_cancel_test: RuntimeError
async/timer_isActive_test: RuntimeError
async/timer_repeat_test: RuntimeError
+async/timer_test: RuntimeError
convert/json_lib_test: RuntimeError
math/point_test: RuntimeError
math/rectangle_test: RuntimeError
@@ -41,54 +82,12 @@
mirrors/library_uri_io_test: RuntimeError
mirrors/library_uri_package_test: RuntimeError
-[ $strong && $runtime == vm && $compiler != dartk ]
-async/future_or_only_in_async_test/00: MissingCompileTimeError
-
-[ $runtime == vm && $compiler != dartk ]
-convert/streamed_conversion_json_utf8_decode_test: Pass, Slow # Infrequent timeouts.
-html/*: SkipByDesign # dart:html not supported on VM.
-js/datetime_roundtrip_test: CompileTimeError
-js/null_test: CompileTimeError
-js/prototype_access_test: CompileTimeError
-mirrors/deferred_type_test: CompileTimeError
-mirrors/generic_bounded_by_type_parameter_test/02: MissingCompileTimeError
-mirrors/generic_bounded_test/01: MissingCompileTimeError
-mirrors/generic_bounded_test/02: MissingCompileTimeError
-mirrors/generic_interface_test/01: MissingCompileTimeError
-mirrors/mirrors_used*: SkipByDesign # Invalid tests. MirrorsUsed does not have a specification, and dart:mirrors is not required to hide declarations that are not covered by any MirrorsUsed annotation.
-mirrors/native_class_test: SkipByDesign # Imports dart:html
-mirrors/redirecting_factory_different_type_test/01: MissingCompileTimeError
-
-[ $runtime == vm && $compiler != dartk && !$checked ]
-mirrors/inference_and_no_such_method_test: RuntimeError
-
-[ $runtime == vm && $compiler != dartk && !$strong ]
-mirrors/reflect_class_test/01: MissingCompileTimeError
-mirrors/reflect_class_test/02: MissingCompileTimeError
-mirrors/reflected_type_classes_test/01: MissingCompileTimeError
-mirrors/reflected_type_classes_test/02: MissingCompileTimeError
-mirrors/reflected_type_classes_test/03: MissingCompileTimeError
-mirrors/reflected_type_test/01: MissingCompileTimeError
-mirrors/reflected_type_test/02: MissingCompileTimeError
-mirrors/reflected_type_test/03: MissingCompileTimeError
-
-[ $runtime == vm && !$strong && !$checked ]
+[ $runtime == vm && !$checked && !$strong ]
mirrors/regress_16321_test/01: MissingCompileTimeError
-[ $runtime == vm && $mode == debug && $arch == ia32 && $system == windows ]
-convert/streamed_conversion_json_utf8_decode_test: Skip # Verification OOM.
+[ $runtime == vm && ($arch == simarm || $arch == simarmv5te || $arch == simarmv6) ]
+convert/utf85_test: Skip # Pass, Slow Issue 12644.
-[ $runtime == vm && $mode == debug && $arch != ia32 && $arch != x64 && $arch != simarm && $arch != simarmv6 && $arch != simarmv5te ]
-convert/streamed_conversion_json_utf8_decode_test: Skip # Verification not yet implemented.
+[ $arch == simarmv5te || $arch == simarmv6 || $arch == simarm && $runtime == vm ]
+convert/chunked_conversion_utf88_test: Skip # Pass, Slow Issue 12644.
-[ $runtime == vm && $arch == simarm || $arch == simarmv6 || $arch == simarmv5te ]
-convert/chunked_conversion_utf88_test: Skip # Pass, Slow Issue 12644.
-
-[ $runtime == vm && ( $arch == simarm || $arch == simarmv6 || $arch == simarmv5te ) ]
-convert/utf85_test: Skip # Pass, Slow Issue 12644.
-
-[ $runtime == vm && $arch == simarm64 ]
-convert/utf85_test: Skip # Pass, Slow Issue 20111.
-
-[ $runtime == vm && $compiler != dartk ]
-mirrors/initializing_formals_test/01: Fail # initializing formals are implicitly final as of Dart 1.21
diff --git a/tests/lib_strong/lib_strong.status b/tests/lib_strong/lib_strong.status
index c795e23..7877ef7 100644
--- a/tests/lib_strong/lib_strong.status
+++ b/tests/lib_strong/lib_strong.status
@@ -2,13 +2,32 @@
# 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.
-# Skip entire suite if not running in strong mode.
-[ ! $strong ]
-*: SkipByDesign
+# TODO(29919): HTML tests are not supported on dartdevc in test.dart yet.
+[ $compiler == dartdevc ]
+html/custom/attribute_changed_callback_test: Crash # Issue 29922
+html/custom/constructor_calls_created_synchronously_test: Crash # Issue 29922
+html/custom/created_callback_test: CompileTimeError # Issue 29922
+html/custom/document_register_basic_test: CompileTimeError # Issue 29922
+html/custom/document_register_type_extensions_test/construction: CompileTimeError # Issue 29922
+html/custom/document_register_type_extensions_test/constructors: CompileTimeError # Issue 29922
+html/custom/document_register_type_extensions_test/createElement with type extension: CompileTimeError # Issue 29922
+html/custom/document_register_type_extensions_test/functional: CompileTimeError # Issue 29922
+html/custom/document_register_type_extensions_test/namespaces: CompileTimeError # Issue 29922
+html/custom/document_register_type_extensions_test/parsing: CompileTimeError # Issue 29922
+html/custom/document_register_type_extensions_test/registration: CompileTimeError # Issue 29922
+html/custom/document_register_type_extensions_test/single-parameter createElement: CompileTimeError # Issue 29922
+html/custom/element_upgrade_test: CompileTimeError # Issue 29922
+html/custom/entered_left_view_test: Crash # Issue 29922
+html/custom/js_custom_test: Crash # Issue 29922
+html/custom/mirrors_test: Crash # Issue 29922
+html/custom/regress_194523002_test: Crash # Issue 29922
+html/deferred_multi_app_htmltest: Skip # Issue 29919
+html/no_linked_scripts_htmltest: Skip # Issue 29919
+html/scripts_htmltest: Skip # Issue 29919
+html/two_scripts_htmltest: Skip # Issue 29919
# Skip tests that are not yet strong-mode clean.
[ $strong ]
-
async/print_test/01: Skip # Temporalily disable the following tests until we figure out why they started failing.
async/print_test/none: Skip # Temporalily disable the following tests until we figure out why they started failing.
html/cross_frame_test: Skip # Temporalily disable the following tests until we figure out why they started failing.
@@ -67,29 +86,13 @@
mirrors/regress_16321_test: Skip
mirrors/regress_19731_test: Skip
-# TODO(29919): HTML tests are not supported on dartdevc in test.dart yet.
-[ $compiler == dartdevc ]
-html/custom/attribute_changed_callback_test: Crash # Issue 29922
-html/custom/constructor_calls_created_synchronously_test: Crash # Issue 29922
-html/custom/created_callback_test: CompileTimeError # Issue 29922
-html/custom/document_register_basic_test: CompileTimeError # Issue 29922
-html/custom/document_register_type_extensions_test/construction: CompileTimeError # Issue 29922
-html/custom/document_register_type_extensions_test/constructors: CompileTimeError # Issue 29922
-html/custom/document_register_type_extensions_test/createElement with type extension: CompileTimeError # Issue 29922
-html/custom/document_register_type_extensions_test/functional: CompileTimeError # Issue 29922
-html/custom/document_register_type_extensions_test/namespaces: CompileTimeError # Issue 29922
-html/custom/document_register_type_extensions_test/parsing: CompileTimeError # Issue 29922
-html/custom/document_register_type_extensions_test/registration: CompileTimeError # Issue 29922
-html/custom/document_register_type_extensions_test/single-parameter createElement: CompileTimeError # Issue 29922
-html/custom/element_upgrade_test: CompileTimeError # Issue 29922
-html/custom/entered_left_view_test: Crash # Issue 29922
-html/custom/js_custom_test: Crash # Issue 29922
-html/custom/mirrors_test: Crash # Issue 29922
-html/custom/regress_194523002_test: Crash # Issue 29922
-html/deferred_multi_app_htmltest: Skip # Issue 29919
-html/no_linked_scripts_htmltest: Skip # Issue 29919
-html/scripts_htmltest: Skip # Issue 29919
-html/two_scripts_htmltest: Skip # Issue 29919
+# Skip entire suite if not running in strong mode.
+[ !$strong ]
+*: SkipByDesign
+
+[ $compiler == dartdevc && $runtime == chrome ]
+html/element_animate_test/timing_dict: RuntimeError # Issue 29922
+html/element_types_keygen_test: RuntimeError # Issue 29922
[ $compiler == dartdevc && $runtime != none ]
async/future_or_non_strong_test: RuntimeError # Issue 29922
@@ -140,10 +143,3 @@
mirrors/local_function_is_static_test: RuntimeError # Issue 29922
mirrors/metadata_test: RuntimeError # Issue 29922
-[ $compiler == dartdevc && $runtime == chrome ]
-html/element_animate_test/timing_dict: RuntimeError # Issue 29922
-html/element_types_keygen_test: RuntimeError # Issue 29922
-
-[ $compiler == dartdevc && $runtime == drt ]
-
-[ $compiler == dartdevc && $system == windows ]
diff --git a/tests/standalone/standalone.status b/tests/standalone/standalone.status
index b5758d6..b863bd1 100644
--- a/tests/standalone/standalone.status
+++ b/tests/standalone/standalone.status
@@ -1,92 +1,93 @@
# 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.
-
# WARNING:
# Tests using the multitest feature where failure is expected should *also* be
# listed in tests/lib/analyzer/analyze_tests.status without the "standalone"
# prefix.
-[ $compiler == dart2js || $compiler == dartdevc ]
-*: SkipByDesign
-
-[ $compiler == dart2analyzer && ($builder_tag == strong || $strong) ]
-*: Skip # Issue 28649
-
-[$runtime == vm && $compiler == none && $system == fuchsia]
-*: Skip # Not yet triaged.
-
-[ ($runtime != vm && $runtime != dart_precompiled) && ($compiler != none) ]
-no_assert_test: Fail, OK # This is testing a vm flag.
-
-[ $runtime != vm || $compiler != none ]
-script_snapshot_not_executed_test: SkipByDesign # Only makes sense running from source.
-script_snapshot_depfile_test: SkipByDesign # Only makes sense running from source.
-
-[ $hot_reload || $hot_reload_rollback ]
-script_snapshot_not_executed_test: RuntimeError, OK # Child VM doesn't execute Dart.
-script_snapshot_depfile_test: RuntimeError, OK # Child VM doesn't execute Dart.
-
-[ $system == macos && $builder_tag == swarming ]
-io/*: Skip # Issue 30618
-
-[ ($runtime == vm || $runtime == flutter || $runtime == dart_precompiled) && $checked ]
-io/process_invalid_arguments_test: Fail, OK # These tests have type errors on purpose.
-io/directory_invalid_arguments_test: Fail, OK # These tests have type errors on purpose.
-io/file_invalid_arguments_test: Fail, OK # These tests have type errors on purpose.
-io/internet_address_invalid_arguments_test: Fail, OK # These tests have type errors on purpose.
-io/socket_invalid_arguments_test: Fail, OK # These tests have type errors on purpose.
-io/stdout_bad_argument_test: Fail, OK # These tests have type errors on purpose.
-
-io/file_fuzz_test: Skip # These test have type errors on purpose and take very long to run in checked mode with no benefit. Skip.
-io/directory_fuzz_test: Skip # These test have type errors on purpose and take very long to run in checked mode with no benefit. Skip.
-
-[ ($runtime == vm || $runtime == dart_precompiled) && $system == macos ]
-io/raw_secure_server_socket_test: Pass, Crash # Issue 29524
-
-[ $compiler == dart2analyzer ]
-io/file_constructor_test: fail # Issue 11518
-io/raw_secure_server_socket_argument_test: StaticWarning
-io/stdout_bad_argument_test: StaticWarning
-io/process_invalid_arguments_test: StaticWarning
-io/directory_invalid_arguments_test: StaticWarning
-
-[ $system == windows ]
-verbose_gc_to_bmu_test: Skip
-io/sleep_test: Pass, Fail # Issue 25757
-
-[ $runtime == vm || $runtime == dart_precompiled || $runtime == flutter ]
-io/secure_socket_bad_data_test: RuntimeError # An error in a secure connection just puts a READ_CLOSED on the stream, rather than signaling an error on the stream.
-
-[ $compiler == precompiler || $compiler == app_jit ]
-io/compile_all_test: Skip # Incompatible flag --compile_all
-
-[ $runtime == dart_precompiled && $system == android ]
-io/https_bad_certificate_test: RuntimeError # Issue 31310
-io/raw_secure_server_socket_test: RuntimeError # Issue 31310
-io/raw_datagram_socket_test: RuntimeError # Issue 31310
-
-[ $runtime == dart_precompiled ]
-verbose_gc_to_bmu_test: Skip # These tests attempt to spawn another script using the precompiled runtime.
-
-[ $runtime == dart_precompiled || $mode == product ]
-no_assert_test: SkipByDesign # Requires checked mode.
-
-# Overriding these flags are not supported in product mode.
-[ $mode == product ]
-verbose_gc_to_bmu_test: SkipByDesign # No verbose_gc in product mode
-
-[ $runtime == dart_precompiled && $mode == product ]
-dwarf_stack_trace_test: Pass, RuntimeError # Results will flake due to identical code folding
-
[ $builder_tag == no_ipv6 ]
io/raw_datagram_socket_test: SkipByDesign
-[ $compiler == dartk || $compiler == dartkp ]
-io/raw_datagram_socket_test: Skip # Flaky.
+[ $compiler == dart2analyzer ]
+io/directory_invalid_arguments_test: StaticWarning
+io/file_constructor_test: Fail # Issue 11518
+io/process_invalid_arguments_test: StaticWarning
+io/raw_secure_server_socket_argument_test: StaticWarning
+io/stdout_bad_argument_test: StaticWarning
[ $compiler == dartkp ]
dwarf_stack_trace_test: RuntimeError
io/https_bad_certificate_test: Skip # Flaky.
io/raw_datagram_socket_test: Skip # Flaky.
+# Overriding these flags are not supported in product mode.
+[ $mode == product ]
+verbose_gc_to_bmu_test: SkipByDesign # No verbose_gc in product mode
+
+[ $runtime == dart_precompiled ]
+verbose_gc_to_bmu_test: Skip # These tests attempt to spawn another script using the precompiled runtime.
+
+[ $system == windows ]
+io/sleep_test: Pass, Fail # Issue 25757
+verbose_gc_to_bmu_test: Skip
+
+[ $builder_tag == swarming && $system == macos ]
+io/*: Skip # Issue 30618
+
+[ $compiler == dart2analyzer && ($builder_tag == strong || $strong) ]
+*: Skip # Issue 28649
+
+[ $compiler == dartk && $strong ]
+*: SkipByDesign
+
+[ $compiler == none && $runtime == vm && $system == fuchsia ]
+*: Skip # Not yet triaged.
+
+[ $compiler != none && $runtime != dart_precompiled && $runtime != vm ]
+no_assert_test: Fail, OK # This is testing a vm flag.
+
+[ $mode == product && $runtime == dart_precompiled ]
+dwarf_stack_trace_test: Pass, RuntimeError # Results will flake due to identical code folding
+
+[ $runtime == dart_precompiled && $system == android ]
+io/https_bad_certificate_test: RuntimeError # Issue 31310
+io/raw_datagram_socket_test: RuntimeError # Issue 31310
+io/raw_secure_server_socket_test: RuntimeError # Issue 31310
+
+[ $system == macos && ($runtime == dart_precompiled || $runtime == vm) ]
+io/raw_secure_server_socket_test: Pass, Crash # Issue 29524
+
+[ $checked && ($runtime == dart_precompiled || $runtime == flutter || $runtime == vm) ]
+io/directory_fuzz_test: Skip # These test have type errors on purpose and take very long to run in checked mode with no benefit. Skip.
+io/directory_invalid_arguments_test: Fail, OK # These tests have type errors on purpose.
+io/file_fuzz_test: Skip # These test have type errors on purpose and take very long to run in checked mode with no benefit. Skip.
+io/file_invalid_arguments_test: Fail, OK # These tests have type errors on purpose.
+io/internet_address_invalid_arguments_test: Fail, OK # These tests have type errors on purpose.
+io/process_invalid_arguments_test: Fail, OK # These tests have type errors on purpose.
+io/socket_invalid_arguments_test: Fail, OK # These tests have type errors on purpose.
+io/stdout_bad_argument_test: Fail, OK # These tests have type errors on purpose.
+
+[ $compiler == app_jit || $compiler == precompiler ]
+io/compile_all_test: Skip # Incompatible flag --compile_all
+
+[ $compiler == dart2js || $compiler == dartdevc ]
+*: SkipByDesign
+
+[ $compiler == dartk || $compiler == dartkp ]
+io/raw_datagram_socket_test: Skip # Flaky.
+
+[ $compiler != none || $runtime != vm ]
+script_snapshot_depfile_test: SkipByDesign # Only makes sense running from source.
+script_snapshot_not_executed_test: SkipByDesign # Only makes sense running from source.
+
+[ $mode == product || $runtime == dart_precompiled ]
+no_assert_test: SkipByDesign # Requires checked mode.
+
+[ $runtime == dart_precompiled || $runtime == flutter || $runtime == vm ]
+io/secure_socket_bad_data_test: RuntimeError # An error in a secure connection just puts a READ_CLOSED on the stream, rather than signaling an error on the stream.
+
+[ $hot_reload || $hot_reload_rollback ]
+script_snapshot_depfile_test: RuntimeError, OK # Child VM doesn't execute Dart.
+script_snapshot_not_executed_test: RuntimeError, OK # Child VM doesn't execute Dart.
+
diff --git a/tests/standalone_2/standalone_2.status b/tests/standalone_2/standalone_2.status
index 747c50a..8055590 100644
--- a/tests/standalone_2/standalone_2.status
+++ b/tests/standalone_2/standalone_2.status
@@ -1,83 +1,47 @@
# 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.
-
# WARNING:
# Tests using the multitest feature where failure is expected should *also* be
# listed in tests/lib/analyzer/analyze_tests.status without the "standalone"
# prefix.
-
-io/raw_socket_test: Pass, RuntimeError # Issue 28288
io/http_close_test: Pass, RuntimeError # Issue 28380
-packages_file_test: Skip # Issue 26715
-packages_file_test/none: Skip # contains no tests.
-
+io/raw_socket_test: Pass, RuntimeError # Issue 28288
+issue14236_test: Pass # Do not remove this line. It serves as a marker for Issue 14516 comment #4.
package/invalid_uri_test: Fail, OK # CompileTimeErrors intentionally
-package/scenarios/packages_file_strange_formatting/empty_package_dir_test: Fail, OK # CompileTimeErrors intentionally
package/scenarios/empty_packages_file/empty_packages_file_discovery_test: Fail, OK # CompileTimeErrors intentionally
package/scenarios/empty_packages_file/empty_packages_file_option_test: Fail, OK # CompileTimeErrors intentionally
package/scenarios/invalid/invalid_package_name_test: RuntimeError, CompileTimeError # Errors intentionally
package/scenarios/invalid/same_package_twice_test.dart: RuntimeError, CompileTimeError # Errors intentionally
+package/scenarios/packages_file_strange_formatting/empty_package_dir_test: Fail, OK # CompileTimeErrors intentionally
+packages_file_test: Skip # Issue 26715
+packages_file_test/none: Skip # contains no tests.
-issue14236_test: Pass # Do not remove this line. It serves as a marker for Issue 14516 comment #4.
+[ $builder_tag == asan ]
+io/named_pipe_script_test: RuntimeError
+io/process_detached_test: Pass, Slow
-[$runtime == vm && $compiler == none && $system == fuchsia]
-*: Skip # Not yet triaged.
+[ $builder_tag == no_ipv6 ]
+io/http_ipv6_test: SkipByDesign
+io/http_loopback_test: SkipByDesign
+io/http_proxy_advanced_test: SkipByDesign
+io/socket_bind_test: SkipByDesign
+io/socket_info_ipv6_test: SkipByDesign
+io/socket_ipv6_test: SkipByDesign
+io/socket_source_address_test: SkipByDesign
-[ ($runtime != vm && $runtime != dart_precompiled && $compiler != none) ]
-no_assert_test: Fail, OK # This is testing a vm flag.
-env_test: Skip # This is testing a vm command line parsing scenario.
-
-[ $runtime == vm || $runtime == dart_precompiled || $runtime == flutter ]
-package/package_isolate_test: Fail # Issue 12474
-package/scenarios/invalid/same_package_twice_test: Pass # Issue 24119
-io/non_utf8_output_test: NonUtf8Output, OK # This test checks that the test runner correctly detects and reports non-utf8 output from a test.
-io/https_client_certificate_test: RuntimeError # Issue 24070 Failures in secure networking while NSS is replaced with BoringSSL
-io/secure_socket_renegotiate_test: RuntimeError
-io/secure_socket_bad_data_test: RuntimeError # An error in a secure connection just puts a READ_CLOSED on the stream, rather than signaling an error on the stream.
-
-
-# All static_tests have expected compile-time errors.
-[ $strong && $compiler != dart2analyzer && $compiler != dartdevc && $compiler != dartk && $compiler != dartkp ]
-float_array_static_test: MissingCompileTimeError
-
-[ !$strong ]
-float_array_static_test: MissingCompileTimeError
-
-[ ($runtime == vm || $runtime == dart_precompiled) && $system == macos ]
-io/socket_many_connections_test: Skip # This test fails with "Too many open files" on the Mac OS buildbot. This is expected as MacOS by default runs with a very low number of allowed open files ('ulimit -n' says something like 256).
-io/secure_server_client_certificate_test: Skip # Re-enable once the bots have been updated. Issue #26057
-io/socket_test: Pass, Timeout # Issue 27453
-
-io/raw_server_socket_cancel_test: Skip # Issue 28182 # This test sometimes hangs on Mac.
-io/raw_secure_server_socket_test: Pass, Crash # Issue 29524
-
-[ ((($runtime == vm) || ($runtime == flutter)) && ($system == linux)) ]
-io/http_launch_test: Pass, Slow, Timeout # Issue 28046
-io/http_proxy_test: Skip # These tests have started timing out and issue 25649 has been filed to investigate, skipping these tests temporarily to get the bots to be green again.
-io/secure_builtin_roots_test: Skip # These tests have started timing out and issue 25649 has been filed to investigate, skipping these tests temporarily to get the bots to be green again.
-
-io/http_basic_test: Pass, Slow, Timeout # Issue 28046, These tests might be slow on an opt counter threshold bot. They also time out on the bot occasionally => flaky test issue 28046
-io/http_launch_test: Pass, Slow, Timeout # Issue 28046, These tests might be slow on an opt counter threshold bot. They also time out on the bot occasionally => flaky test issue 28046
-
-[ (((($runtime != vm) || ($arch == arm)) || ($arch == arm64)) || (($system == windows) && ($mode == debug))) ]
-fragmentation_test: Skip
-
-[ ($compiler == dart2analyzer) ]
-deferred_transitive_import_error_test: Skip
-
-[ ($runtime == dart_precompiled) ]
-http_launch_test: Skip
-io/addlatexhash_test: Skip
-
-[ ($compiler == app_jit) ]
+[ $compiler == app_jit ]
assert_test: RuntimeError
-[ (($runtime == dart_precompiled) || ($mode == product)) ]
-assert_test: SkipByDesign
-no_assert_test: SkipByDesign
+[ $compiler == dart2analyzer ]
+deferred_transitive_import_error_test: Skip
-[ ($mode == product) ]
+[ $compiler == dartkp ]
+causal_async_stack_test: Skip # Flaky.
+
+[ $mode == product ]
+dart_developer_env_test: SkipByDesign
+io/stdio_implicit_close_test: Skip # SkipByDesign
no_profiler_test: SkipByDesign
no_support_coverage_test: SkipByDesign
no_support_debugger_test: SkipByDesign
@@ -85,46 +49,56 @@
no_support_il_printer_test: SkipByDesign
no_support_service_test: SkipByDesign
no_support_timeline_test: SkipByDesign
-io/stdio_implicit_close_test: Skip # SkipByDesign
-dart_developer_env_test: SkipByDesign
-verbose_gc_to_bmu_test: SkipByDesign # No verbose_gc in product mode
+verbose_gc_to_bmu_test: SkipByDesign # No verbose_gc in product mode
-[ (($runtime == dart_precompiled) && ($mode == product)) ]
-dwarf_stack_trace_test: Pass, RuntimeError
+[ $runtime == dart_precompiled ]
+http_launch_test: Skip
+io/addlatexhash_test: Skip
-[ ((($runtime == vm) || ($runtime == dart_precompiled)) || ($runtime == flutter)) ]
-deferred_transitive_import_error_test: Skip
+[ !$strong ]
+float_array_static_test: MissingCompileTimeError
-[ (($hot_reload) || ($hot_reload_rollback)) ]
-deferred_transitive_import_error_test: Crash
-package/*: SkipByDesign # Launches VMs in interesting ways.
-io/raw_datagram_read_all_test: Pass, Fail # Timing dependent.
-io/test_runner_test: Pass, Slow # Slow.
-io/skipping_dart2js_compilations_test: Pass, Slow # Slow.
-io/addlatexhash_test: Pass, Crash # Issue 31252
-fragmentation_test: Pass, Crash # Issue 31421
-
-[ $builder_tag == no_ipv6 ]
-io/socket_source_address_test: SkipByDesign
-io/socket_bind_test: SkipByDesign
-io/http_loopback_test: SkipByDesign
-io/http_proxy_advanced_test: SkipByDesign
-io/http_ipv6_test: SkipByDesign
-io/socket_ipv6_test: SkipByDesign
-io/socket_info_ipv6_test: SkipByDesign
-
-[ $runtime == vm && $system == macos && $mode == release ]
-io/named_pipe_script_test: Pass, RuntimeError # Issue 28737
-
-[ $system == macos && $builder_tag == swarming ]
+[ $builder_tag == swarming && $system == macos ]
io/*: Skip # Issue 30618
-[ $builder_tag == asan ]
-io/process_detached_test: Pass, Slow
-io/named_pipe_script_test: RuntimeError
+# All static_tests have expected compile-time errors.
+[ $compiler != dart2analyzer && $compiler != dartdevc && $compiler != dartk && $compiler != dartkp && $strong ]
+float_array_static_test: MissingCompileTimeError
-[ (($compiler == dartk) || ($compiler == dartkp)) && !$strong]
+[ $compiler == none && $runtime == vm && $system == fuchsia ]
+*: Skip # Not yet triaged.
+
+[ $compiler != none && $runtime != dart_precompiled && $runtime != vm ]
+env_test: Skip # This is testing a vm command line parsing scenario.
+no_assert_test: Fail, OK # This is testing a vm flag.
+
+[ $mode == product && $runtime == dart_precompiled ]
+dwarf_stack_trace_test: Pass, RuntimeError
+
+[ $mode == release && $runtime == vm && $system == macos ]
+io/named_pipe_script_test: Pass, RuntimeError # Issue 28737
+
+[ $system == linux && ($runtime == flutter || $runtime == vm) ]
+io/http_basic_test: Pass, Slow, Timeout # Issue 28046, These tests might be slow on an opt counter threshold bot. They also time out on the bot occasionally => flaky test issue 28046
+io/http_launch_test: Pass, Slow, Timeout # Issue 28046, These tests might be slow on an opt counter threshold bot. They also time out on the bot occasionally => flaky test issue 28046
+io/http_proxy_test: Skip # These tests have started timing out and issue 25649 has been filed to investigate, skipping these tests temporarily to get the bots to be green again.
+io/secure_builtin_roots_test: Skip # These tests have started timing out and issue 25649 has been filed to investigate, skipping these tests temporarily to get the bots to be green again.
+
+[ $system == macos && ($runtime == dart_precompiled || $runtime == vm) ]
+io/raw_secure_server_socket_test: Pass, Crash # Issue 29524
+io/raw_server_socket_cancel_test: Skip # Issue 28182 # This test sometimes hangs on Mac.
+io/secure_server_client_certificate_test: Skip # Re-enable once the bots have been updated. Issue #26057
+io/socket_many_connections_test: Skip # This test fails with "Too many open files" on the Mac OS buildbot. This is expected as MacOS by default runs with a very low number of allowed open files ('ulimit -n' says something like 256).
+io/socket_test: Pass, Timeout # Issue 27453
+
+[ $strong && ($compiler == dartk || $compiler == dartkp) ]
assert_test: RuntimeError
+http_launch_test: RuntimeError
+io/*: Skip # Too many errors to triage, io not strong mode clean.
+
+[ !$strong && ($compiler == dartk || $compiler == dartkp) ]
+assert_test: RuntimeError
+io/compile_all_test: Skip # Crashes
io/http_client_connect_test: Skip # Flaky.
io/http_content_length_test: Skip # Flaky.
io/http_proxy_test: Skip # Flaky.
@@ -139,24 +113,40 @@
io/web_socket_error_test: Skip # Flaky
io/web_socket_ping_test: Skip # Flaky.
io/web_socket_test: Skip # Flaky.
-no_support_debugger_test: Skip # kernel-service snapshot not compatible with flag disabled
-regress_29350_test: MissingCompileTimeError
-io/compile_all_test: Skip # Crashes
map_insert_remove_oom_test: Skip # Crashes
+no_support_debugger_test: Skip # kernel-service snapshot not compatible with flag disabled
package/package1_test: CompileTimeError
package/package_test: CompileTimeError
package/scenarios/invalid/invalid_utf8_test: CompileTimeError
package/scenarios/invalid/non_existent_packages_file_test: CompileTimeError
package/scenarios/invalid/same_package_twice_test: CompileTimeError
+regress_29350_test: MissingCompileTimeError
-[ (($compiler == dartk) || ($compiler == dartkp)) && $strong]
-assert_test: RuntimeError
-http_launch_test: RuntimeError
-io/*: Skip # Too many errors to triage, io not strong mode clean.
-
-[ ($compiler == dartkp) ]
-causal_async_stack_test: Skip # Flaky.
+[ $arch == arm || $arch == arm64 || $runtime != vm || $mode == debug && $system == windows ]
+fragmentation_test: Skip
[ $compiler == dart2js || $compiler == dartdevc ]
*: SkipByDesign
+[ $mode == product || $runtime == dart_precompiled ]
+assert_test: SkipByDesign
+no_assert_test: SkipByDesign
+
+[ $runtime == dart_precompiled || $runtime == flutter || $runtime == vm ]
+deferred_transitive_import_error_test: Skip
+io/https_client_certificate_test: RuntimeError # Issue 24070 Failures in secure networking while NSS is replaced with BoringSSL
+io/non_utf8_output_test: NonUtf8Output, OK # This test checks that the test runner correctly detects and reports non-utf8 output from a test.
+io/secure_socket_bad_data_test: RuntimeError # An error in a secure connection just puts a READ_CLOSED on the stream, rather than signaling an error on the stream.
+io/secure_socket_renegotiate_test: RuntimeError
+package/package_isolate_test: Fail # Issue 12474
+package/scenarios/invalid/same_package_twice_test: Pass # Issue 24119
+
+[ $hot_reload || $hot_reload_rollback ]
+deferred_transitive_import_error_test: Crash
+fragmentation_test: Pass, Crash # Issue 31421
+io/addlatexhash_test: Pass, Crash # Issue 31252
+io/raw_datagram_read_all_test: Pass, Fail # Timing dependent.
+io/skipping_dart2js_compilations_test: Pass, Slow # Slow.
+io/test_runner_test: Pass, Slow # Slow.
+package/*: SkipByDesign # Launches VMs in interesting ways.
+
diff --git a/tests/standalone_2/standalone_2_analyzer.status b/tests/standalone_2/standalone_2_analyzer.status
index aa0ce39..b0f4d07 100644
--- a/tests/standalone_2/standalone_2_analyzer.status
+++ b/tests/standalone_2/standalone_2_analyzer.status
@@ -3,31 +3,31 @@
# BSD-style license that can be found in the LICENSE file.
[ $compiler == dart2analyzer ]
-io/process_exit_negative_test: Skip
-io/http_parser_test: Pass, StaticWarning, CompileTimeError # Issue 28843
-io/http_headers_test: Pass, StaticWarning, CompileTimeError # Issue 28843
+deferred_transitive_import_error_test: Skip # Contains intentional errors.
io/http_cookie_date_test: Pass, StaticWarning, CompileTimeError # Issue 28843
+io/http_headers_test: Pass, StaticWarning, CompileTimeError # Issue 28843
+io/http_parser_test: Pass, StaticWarning, CompileTimeError # Issue 28843
+io/process_exit_negative_test: Skip
io/web_socket_protocol_processor_test: Pass, StaticWarning, CompileTimeError # Issue 28843
package/package1_test: StaticWarning
-package/package_test: StaticWarning
-package/scenarios/packages_dir_only/packages_dir_only_test: StaticWarning
-package/scenarios/packages_file_only/packages_file_only_test: StaticWarning
-package/scenarios/both_dir_and_file/prefers_packages_file_test: StaticWarning
-package/scenarios/packages_file_in_parent/sub/packages_file_in_parent_test: StaticWarning
-deferred_transitive_import_error_test: Skip # Contains intentional errors.
package/package1_test: CompileTimeError
-package/package_test: CompileTimeError
package/package_isolate_test: CompileTimeError
-package/scenarios/packages_dir_only/packages_dir_only_test: CompileTimeError
-package/scenarios/packages_file_only/packages_file_only_test: CompileTimeError
+package/package_test: StaticWarning
+package/package_test: CompileTimeError
+package/scenarios/both_dir_and_file/prefers_packages_file_test: StaticWarning
package/scenarios/both_dir_and_file/prefers_packages_file_test: CompileTimeError
-package/scenarios/packages_file_in_parent/sub/packages_file_in_parent_test: CompileTimeError
-package/scenarios/invalid/non_existent_packages_file_test: Crash, OK # Analyzer exits on invalid package config
-package/scenarios/invalid/invalid_utf8_test: Crash, OK # Analyzer exits on invalid package config
package/scenarios/invalid/invalid_package_name_test: Crash, OK # Analyzer exits on invalid package config
+package/scenarios/invalid/invalid_utf8_test: Crash, OK # Analyzer exits on invalid package config
+package/scenarios/invalid/non_existent_packages_file_test: Crash, OK # Analyzer exits on invalid package config
package/scenarios/invalid/same_package_twice_test: Crash, OK # Analyzer exits on invalid package config
+package/scenarios/packages_dir_only/packages_dir_only_test: StaticWarning
+package/scenarios/packages_dir_only/packages_dir_only_test: CompileTimeError
+package/scenarios/packages_file_in_parent/sub/packages_file_in_parent_test: StaticWarning
+package/scenarios/packages_file_in_parent/sub/packages_file_in_parent_test: CompileTimeError
+package/scenarios/packages_file_only/packages_file_only_test: StaticWarning
+package/scenarios/packages_file_only/packages_file_only_test: CompileTimeError
-[ $system == windows && $compiler == dart2analyzer ]
+[ $compiler == dart2analyzer && $system == windows ]
package/package_isolate_test: Crash # Issue 28645
package/scenarios/empty_packages_file/empty_packages_file_noimports_test: Crash # Issue 28645
package/scenarios/empty_packages_file/empty_packages_file_option_test: Crash, Pass # Issue 28645
@@ -37,16 +37,17 @@
package/scenarios/packages_option_only/packages_option_only_noimports_test: Crash # Issue 28645
package/scenarios/packages_option_only/packages_option_only_test: Crash, CompileTimeError # Issue 28645
-[ $compiler == dart2analyzer && !$strong ]
-io/directory_invalid_arguments_test: StaticWarning
-io/secure_socket_argument_test: StaticWarning
-io/stdout_bad_argument_test: StaticWarning
-io/process_invalid_arguments_test: StaticWarning
-io/raw_secure_server_socket_argument_test: StaticWarning
-
[ $compiler == dart2analyzer && $strong ]
io/directory_invalid_arguments_test: CompileTimeError
-io/secure_socket_argument_test: CompileTimeError
-io/stdout_bad_argument_test: CompileTimeError
io/process_invalid_arguments_test: CompileTimeError
io/raw_secure_server_socket_argument_test: CompileTimeError
+io/secure_socket_argument_test: CompileTimeError
+io/stdout_bad_argument_test: CompileTimeError
+
+[ $compiler == dart2analyzer && !$strong ]
+io/directory_invalid_arguments_test: StaticWarning
+io/process_invalid_arguments_test: StaticWarning
+io/raw_secure_server_socket_argument_test: StaticWarning
+io/secure_socket_argument_test: StaticWarning
+io/stdout_bad_argument_test: StaticWarning
+
diff --git a/tests/standalone_2/standalone_2_flutter.status b/tests/standalone_2/standalone_2_flutter.status
index 20cb321..2851328 100644
--- a/tests/standalone_2/standalone_2_flutter.status
+++ b/tests/standalone_2/standalone_2_flutter.status
@@ -3,85 +3,86 @@
# BSD-style license that can be found in the LICENSE file.
[ $runtime == flutter ]
-io/raw_datagram_socket_test: Crash # Flutter Issue 9115
-io/process_check_arguments_test: RuntimeError # Flutter Issue 9115
-io/process_working_directory_test: RuntimeError # Flutter Issue 9115
-io/process_run_output_test: RuntimeError # Flutter Issue 9115
-io/process_run_test: RuntimeError # Flutter Issue 9115
-io/process_sync_test: RuntimeError # Flutter Issue 9115
-io/test_extension_test: RuntimeError # Flutter Issue 9115
-io/test_extension_fail_test: RuntimeError # Flutter Issue 9115
-oom_error_stacktrace_test: RuntimeError # Flutter Issue 9115
-io/raw_socket_cross_process_test: RuntimeError # Flutter Issue 9115
-io/process_exit_test: RuntimeError # Flutter Issue 9115
-io/uri_platform_test: RuntimeError # Flutter Issue 9115
-io/dart_std_io_pipe_test: RuntimeError # Flutter Issue 9115
-io/platform_test: RuntimeError # Flutter Issue 9115
-io/process_stderr_test: RuntimeError # Flutter Issue 9115
-io/process_segfault_test: RuntimeError # Flutter Issue 9115
+dart_developer_disabled_env_test: RuntimeError # Flutter Issue 9115
+http_launch_test: Skip # Timeout Flutter Issue 9115
io/addlatexhash_test: RuntimeError # Flutter Issue 9115
-io/http_server_response_test: Skip # Flaky # Flutter Issue 9115
-io/process_stdout_test: RuntimeError # Flutter Issue 9115
-io/http_cross_process_test: RuntimeError # Flutter Issue 9115
-io/process_set_exit_code_test: RuntimeError # Flutter Issue 9115
-io/stdin_sync_test: RuntimeError # Flutter Issue 9115
-io/raw_server_socket_cancel_test: RuntimeError # Flutter Issue 9115
-io/socket_cross_process_test: RuntimeError # Flutter Issue 9115
io/arguments_test: RuntimeError # Flutter Issue 9115
io/code_collection_test: RuntimeError # Flutter Issue 9115
-io/http_client_stays_alive_test: RuntimeError # Flutter Issue 9115
-io/locale_name_test: RuntimeError # Flutter Issue 9115
-out_of_memory_test: RuntimeError # Flutter Issue 9115
-io/process_pid_test: Skip # Timeout Flutter Issue 9115
-io/socket_info_ipv4_test: Skip # Timeout Flutter Issue 9115
-io/file_test: Skip # Timeout Flutter Issue 9115
-io/named_pipe_script_test: Skip # Timeout Flutter Issue 9115
-io/print_sync_test: Skip # Timeout Flutter Issue 9115
-io/file_uri_test: Skip # Timeout Flutter Issue 9115
-io/file_lock_test: Skip # Timeout Flutter Issue 9115
-io/socket_info_ipv6_test: Skip # Timeout Flutter Issue 9115
-io/stdio_implicit_close_test: Skip # Timeout Flutter Issue 9115
-io/process_environment_test: Skip # Timeout Flutter Issue 9115
-io/secure_socket_renegotiate_test: Skip # Timeout Flutter Issue 9115
-io/process_kill_test: Skip # Timeout Flutter Issue 9115
+io/dart_std_io_pipe_test: RuntimeError # Flutter Issue 9115
+io/dependency_graph_test: CompileTimeError # Imports dart:mirrors
io/directory_uri_test: Skip # Timeout Flutter Issue 9115
-io/raw_socket_test: Skip # Timeout Flutter Issue 9115
-io/http_connection_close_test: Skip # Timeout Flutter Issue 9115
-io/https_unauthorized_test: Skip # Timeout Flutter Issue 9115
-io/file_system_watcher_test: Skip # Timeout Flutter Issue 9115
-io/secure_unauthorized_test: Skip # Timeout Flutter Issue 9115
-io/secure_socket_bad_data_test: Skip # Timeout Flutter Issue 9115
-io/link_uri_test: Skip # Timeout Flutter Issue 9115
-io/file_stream_test: Skip # Timeout Flutter Issue 9115
-io/regress_7191_test: Skip # Timeout Flutter Issue 9115
-io/http_server_close_response_after_error_test: Skip # Flutter Issue 9115Timeout
-io/signals_test: Skip # Timeout Flutter Issue 9115
-io/process_non_ascii_test: Skip # Timeout Flutter Issue 9115
-io/https_client_certificate_test: Skip # Timeout Flutter Issue 9115
-io/socket_finalizer_test: Skip # Timeout Flutter Issue 9115
-io/process_shell_test: Skip # Timeout Flutter Issue 9115
io/file_blocking_lock_test: Skip # Timeout Flutter Issue 9115
-io/socket_invalid_arguments_test: Skip # Timeout Flutter Issue 9115
-io/process_detached_test: Skip # Timeout Flutter Issue 9115
+io/file_lock_test: Skip # Timeout Flutter Issue 9115
+io/file_stream_test: Skip # Timeout Flutter Issue 9115
+io/file_system_watcher_test: Skip # Timeout Flutter Issue 9115
+io/file_test: Skip # Timeout Flutter Issue 9115
+io/file_uri_test: Skip # Timeout Flutter Issue 9115
+io/http_client_stays_alive_test: RuntimeError # Flutter Issue 9115
+io/http_connection_close_test: Skip # Timeout Flutter Issue 9115
+io/http_cross_process_test: RuntimeError # Flutter Issue 9115
+io/http_server_close_response_after_error_test: Skip # Flutter Issue 9115Timeout
+io/http_server_response_test: Skip # Flaky # Flutter Issue 9115
+io/https_client_certificate_test: Skip # Timeout Flutter Issue 9115
+io/https_unauthorized_test: Skip # Timeout Flutter Issue 9115
+io/link_uri_test: Skip # Timeout Flutter Issue 9115
+io/locale_name_test: RuntimeError # Flutter Issue 9115
+io/named_pipe_script_test: Skip # Timeout Flutter Issue 9115
io/platform_resolved_executable_test/00: Skip # Timeout Flutter Issue 9115
io/platform_resolved_executable_test/01: Skip # Timeout Flutter Issue 9115
io/platform_resolved_executable_test/02: Skip # Timeout Flutter Issue 9115
io/platform_resolved_executable_test/03: Skip # Timeout Flutter Issue 9115
io/platform_resolved_executable_test/04: Skip # Timeout Flutter Issue 9115
io/platform_resolved_executable_test/05: Skip # Timeout Flutter Issue 9115
-http_launch_test: Skip # Timeout Flutter Issue 9115
-dart_developer_disabled_env_test: RuntimeError # Flutter Issue 9115
-package/scenarios/packages_file_in_parent/sub/packages_file_in_parent_test: Fail # Unable to parse package files Flutter Issue 9115
-package/package1_test: Fail # Unable to parse package files Flutter Issue 9115
-package/scenarios/packages_option_only/packages_option_only_test: Fail # Unable to parse package files Flutter Issue 9115
-package/scenarios/invalid/invalid_package_name_test: Fail # Unable to parse package files Flutter Issue 9115
-package/scenarios/invalid/same_package_twice_test: Fail # Unable to parse package files Flutter Issue 9115
-package/scenarios/packages_file_only/packages_file_only_test: Fail # Unable to parse package files Flutter Issue 9115
-package/scenarios/packages_dir_only/packages_dir_only_test: Fail # Unable to parse package files Flutter Issue 9115
-package/scenarios/both_dir_and_file/prefers_packages_file_test: Fail # Unable to parse package files Flutter Issue 9115
-package/package_test: Fail # Unable to parse package files Flutter Issue 9115
+io/platform_test: RuntimeError # Flutter Issue 9115
+io/print_sync_test: Skip # Timeout Flutter Issue 9115
+io/process_check_arguments_test: RuntimeError # Flutter Issue 9115
+io/process_detached_test: Skip # Timeout Flutter Issue 9115
+io/process_environment_test: Skip # Timeout Flutter Issue 9115
+io/process_exit_test: RuntimeError # Flutter Issue 9115
+io/process_kill_test: Skip # Timeout Flutter Issue 9115
+io/process_non_ascii_test: Skip # Timeout Flutter Issue 9115
+io/process_pid_test: Skip # Timeout Flutter Issue 9115
io/process_run_output_test: Fail # Unable to parse package files Flutter Issue 9115
-io/dependency_graph_test: CompileTimeError # Imports dart:mirrors
+io/process_run_output_test: RuntimeError # Flutter Issue 9115
+io/process_run_test: RuntimeError # Flutter Issue 9115
+io/process_segfault_test: RuntimeError # Flutter Issue 9115
+io/process_set_exit_code_test: RuntimeError # Flutter Issue 9115
+io/process_shell_test: Skip # Timeout Flutter Issue 9115
+io/process_stderr_test: RuntimeError # Flutter Issue 9115
+io/process_stdout_test: RuntimeError # Flutter Issue 9115
+io/process_sync_test: RuntimeError # Flutter Issue 9115
+io/process_working_directory_test: RuntimeError # Flutter Issue 9115
+io/raw_datagram_socket_test: Crash # Flutter Issue 9115
+io/raw_server_socket_cancel_test: RuntimeError # Flutter Issue 9115
+io/raw_socket_cross_process_test: RuntimeError # Flutter Issue 9115
+io/raw_socket_test: Skip # Timeout Flutter Issue 9115
+io/regress_7191_test: Skip # Timeout Flutter Issue 9115
+io/secure_socket_bad_data_test: Skip # Timeout Flutter Issue 9115
+io/secure_socket_renegotiate_test: Skip # Timeout Flutter Issue 9115
+io/secure_unauthorized_test: Skip # Timeout Flutter Issue 9115
+io/signals_test: Skip # Timeout Flutter Issue 9115
io/skipping_dart2js_compilations_test: CompileTimeError # Uses mirrors
+io/socket_cross_process_test: RuntimeError # Flutter Issue 9115
+io/socket_finalizer_test: Skip # Timeout Flutter Issue 9115
+io/socket_info_ipv4_test: Skip # Timeout Flutter Issue 9115
+io/socket_info_ipv6_test: Skip # Timeout Flutter Issue 9115
+io/socket_invalid_arguments_test: Skip # Timeout Flutter Issue 9115
+io/stdin_sync_test: RuntimeError # Flutter Issue 9115
+io/stdio_implicit_close_test: Skip # Timeout Flutter Issue 9115
+io/test_extension_fail_test: RuntimeError # Flutter Issue 9115
+io/test_extension_test: RuntimeError # Flutter Issue 9115
io/test_harness_analyzer_test: CompileTimeError # Uses mirrors
io/test_runner_test: CompileTimeError # Uses mirrors
+io/uri_platform_test: RuntimeError # Flutter Issue 9115
+oom_error_stacktrace_test: RuntimeError # Flutter Issue 9115
+out_of_memory_test: RuntimeError # Flutter Issue 9115
+package/package1_test: Fail # Unable to parse package files Flutter Issue 9115
+package/package_test: Fail # Unable to parse package files Flutter Issue 9115
+package/scenarios/both_dir_and_file/prefers_packages_file_test: Fail # Unable to parse package files Flutter Issue 9115
+package/scenarios/invalid/invalid_package_name_test: Fail # Unable to parse package files Flutter Issue 9115
+package/scenarios/invalid/same_package_twice_test: Fail # Unable to parse package files Flutter Issue 9115
+package/scenarios/packages_dir_only/packages_dir_only_test: Fail # Unable to parse package files Flutter Issue 9115
+package/scenarios/packages_file_in_parent/sub/packages_file_in_parent_test: Fail # Unable to parse package files Flutter Issue 9115
+package/scenarios/packages_file_only/packages_file_only_test: Fail # Unable to parse package files Flutter Issue 9115
+package/scenarios/packages_option_only/packages_option_only_test: Fail # Unable to parse package files Flutter Issue 9115
+
diff --git a/tests/standalone_2/standalone_2_kernel.status b/tests/standalone_2/standalone_2_kernel.status
index 6b16d28..c65cb4b 100644
--- a/tests/standalone_2/standalone_2_kernel.status
+++ b/tests/standalone_2/standalone_2_kernel.status
@@ -1,7 +1,6 @@
# 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 == dartk" or
# "$compiler == dartkp".
#
@@ -11,12 +10,19 @@
# missing a section you need, please reach out to sigmund@ to see the best way
# to add them.
-# ===== Skip dartk and darkp in !$strong mode ====
-[ $compiler == dartk && !$strong ]
-*: SkipByDesign
+[ $compiler == dartkp ]
+bytedata_test: CompileTimeError # Issue 31339
+typed_array_int64_uint64_test: CompileTimeError, Crash # Issue 31339
+typed_data_view_test: CompileTimeError # Issue 31339
-[ $compiler == dartkp && !$strong ]
-*: SkipByDesign
+[ $compiler == dartk && $mode == debug && $runtime == vm && $strong ]
+io/file_lock_test: Slow, Pass
+io/raw_socket_test: Crash
+io/socket_exception_test: Pass, Crash
+io/socket_finalizer_test: Pass, Crash
+io/socket_info_ipv4_test: Pass, Crash
+io/socket_info_ipv6_test: Pass, Crash
+io/socket_port_test: Pass, Crash
# ===== dartk + vm status lines =====
[ $compiler == dartk && $runtime == vm && $strong ]
@@ -57,10 +63,15 @@
package/scenarios/invalid/non_existent_packages_file_test: CompileTimeError
package/scenarios/invalid/same_package_twice_test: CompileTimeError
regress_29350_test: MissingCompileTimeError
+regress_29350_test/none: Pass # Issue 31537
-[ $compiler == dartk && $runtime == vm && $strong && $mode == debug ]
-io/file_lock_test: Slow, Pass
+# ===== Skip dartk and darkp in !$strong mode ====
+[ $compiler == dartk && !$strong ]
+*: SkipByDesign
+
+[ $compiler == dartkp && $mode == debug && $runtime == dart_precompiled && $strong ]
io/raw_socket_test: Crash
+io/skipping_dart2js_compilations_test: Crash
io/socket_exception_test: Pass, Crash
io/socket_finalizer_test: Pass, Crash
io/socket_info_ipv4_test: Pass, Crash
@@ -106,17 +117,8 @@
package/scenarios/invalid/non_existent_packages_file_test: CompileTimeError
package/scenarios/invalid/same_package_twice_test: CompileTimeError
regress_29350_test: MissingCompileTimeError
+regress_29350_test/none: Pass # Issue 31537
-[ $compiler == dartkp && $runtime == dart_precompiled && $strong && $mode == debug ]
-io/raw_socket_test: Crash
-io/skipping_dart2js_compilations_test: Crash
-io/socket_exception_test: Pass, Crash
-io/socket_finalizer_test: Pass, Crash
-io/socket_info_ipv4_test: Pass, Crash
-io/socket_info_ipv6_test: Pass, Crash
-io/socket_port_test: Pass, Crash
+[ $compiler == dartkp && !$strong ]
+*: SkipByDesign
-[ $compiler == dartkp ]
-typed_array_int64_uint64_test: CompileTimeError, Crash # Issue 31339
-bytedata_test: CompileTimeError # Issue 31339
-typed_data_view_test: CompileTimeError # Issue 31339
diff --git a/tests/standalone_2/standalone_2_precompiled.status b/tests/standalone_2/standalone_2_precompiled.status
index 60734ab..6d4e52c 100644
--- a/tests/standalone_2/standalone_2_precompiled.status
+++ b/tests/standalone_2/standalone_2_precompiled.status
@@ -3,16 +3,14 @@
# BSD-style license that can be found in the LICENSE file.
[ $compiler == precompiler ]
-map_insert_remove_oom_test: Skip # Heap limit too low. Increasing iteration count to make a higher limit a meaningful test makes it too slow for simarm[64] bots.
io/web_socket_test: Pass, RuntimeError # Issue 24674
-
-[ $compiler == precompiler || $compiler == app_jit ]
-io/compile_all_test: Skip # Incompatible flag --compile_all
+map_insert_remove_oom_test: Skip # Heap limit too low. Increasing iteration count to make a higher limit a meaningful test makes it too slow for simarm[64] bots.
[ $runtime == dart_precompiled ]
http_launch_test: Skip
io/addlatexhash_test: Skip
io/dart_std_io_pipe_test: Skip
+io/directory_list_sync_test: Timeout, Skip # Expects to find the test directory relative to the script.
io/file_blocking_lock_test: Skip
io/file_lock_test: Skip
io/file_read_special_device_test: Skip
@@ -22,6 +20,7 @@
io/https_unauthorized_test: Skip
io/named_pipe_script_test: Skip
io/platform_resolved_executable_test: Skip
+io/platform_test: RuntimeError # Expects to be running from 'dart' instead of 'dart_precompiled_runtime'
io/print_sync_test: Skip
io/process_check_arguments_test: Skip
io/process_detached_test: Skip
@@ -39,39 +38,41 @@
io/regress_7679_test: Skip
io/secure_unauthorized_test: Skip
io/signals_test: Skip
+io/skipping_dart2js_compilations_test: RuntimeError # Issue 30008
io/stdin_sync_test: Skip
io/stdio_implicit_close_test: Skip
io/stdio_nonblocking_test: Skip
io/test_extension_fail_test: Skip
io/test_extension_test: Skip
io/windows_environment_test: Skip
-io/platform_test: RuntimeError # Expects to be running from 'dart' instead of 'dart_precompiled_runtime'
-io/directory_list_sync_test: Timeout, Skip # Expects to find the test directory relative to the script.
-io/skipping_dart2js_compilations_test: RuntimeError # Issue 30008
-[ $runtime == dart_precompiled && !$checked ]
-io/file_constructor_test: RuntimeError
+[ $arch == arm && $mode == release && $runtime == dart_precompiled && $system == android ]
+io/stdout_stderr_non_blocking_test: Pass, Timeout # Issue 28426
+
+[ $mode == product && $runtime == dart_precompiled ]
+dwarf_stack_trace_test: Pass, RuntimeError # Results will flake due to identical code folding
[ $runtime == dart_precompiled && $checked ]
io/namespace_test: RuntimeError
io/test_runner_test: RuntimeError
-[ $runtime == dart_precompiled || $mode == product ]
-no_assert_test: SkipByDesign # Requires checked mode.
-io/code_collection_test: Skip # Incompatible flags
+[ $runtime == dart_precompiled && !$checked ]
+io/file_constructor_test: RuntimeError
-[ $runtime == dart_precompiled || $compiler == app_jit ]
-package/scenarios/packages_file_strange_formatting/mixed_line_ends_test: Skip
-package/scenarios/packages_file_strange_formatting/empty_lines_test: Skip
-package/scenarios/invalid/invalid_utf8_test: Skip
-package/scenarios/invalid/same_package_twice_test: Skip
-package/scenarios/invalid/non_existent_packages_file_test: Skip
+[ $compiler == app_jit || $compiler == precompiler ]
+io/compile_all_test: Skip # Incompatible flag --compile_all
+
+[ $compiler == app_jit || $runtime == dart_precompiled ]
package/scenarios/empty_packages_file/empty_packages_file_noimports_test: Skip
+package/scenarios/invalid/invalid_utf8_test: Skip
+package/scenarios/invalid/non_existent_packages_file_test: Skip
+package/scenarios/invalid/same_package_twice_test: Skip
+package/scenarios/packages_file_strange_formatting/empty_lines_test: Skip
+package/scenarios/packages_file_strange_formatting/mixed_line_ends_test: Skip
package/scenarios/packages_option_only/packages_option_only_noimports_test: Skip
package/scenarios/packages_option_only/packages_option_only_test: Skip
-[ $runtime == dart_precompiled && $mode == product ]
-dwarf_stack_trace_test: Pass, RuntimeError # Results will flake due to identical code folding
+[ $mode == product || $runtime == dart_precompiled ]
+io/code_collection_test: Skip # Incompatible flags
+no_assert_test: SkipByDesign # Requires checked mode.
-[ $system == android && $runtime == dart_precompiled && $mode == release && $arch == arm]
-io/stdout_stderr_non_blocking_test: Pass, Timeout # Issue 28426
diff --git a/tests/standalone_2/standalone_2_vm.status b/tests/standalone_2/standalone_2_vm.status
index fd09ed8..c68c181 100644
--- a/tests/standalone_2/standalone_2_vm.status
+++ b/tests/standalone_2/standalone_2_vm.status
@@ -2,87 +2,86 @@
# 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.
-[ $runtime == vm && !$checked ]
-io/file_constructor_test: RuntimeError
-
-[ $runtime == vm && ($arch == arm || $arch == arm64) ]
-io/file_stream_test: Skip # Issue 26109
-io/file_typed_data_test: Skip # Issue 26109
-io/file_input_stream_test: Skip # Issue 26109
-
-[ $runtime == vm && $system == windows && $mode == release ]
-io/http_server_close_response_after_error_test: Pass, Timeout # Issue 28370: timeout.
-io/regress_7191_test: Pass, Timeout # Issue 28374: timeout.
-
-[ $runtime == vm && $system == macos && $mode == release ]
-io/named_pipe_script_test: Pass, RuntimeError # Issue 28737
-
-[ $runtime == vm && $system == linux && $mode == release && $arch == ia32 && $builder_tag == asan ]
-io/socket_close_test: Pass, Timeout # Issue 28502: timeout.
-
[ $arch == ia32 ]
-no_allow_absolute_addresses_test: SkipByDesign # Not supported.
link_natives_lazily_test: SkipByDesign # Not supported.
+no_allow_absolute_addresses_test: SkipByDesign # Not supported.
-[ $arch == simdbc || $arch == simdbc64 ]
-full_coverage_test: Skip # TODO(vegorov) SIMDBC interpreter doesn't support coverage yet.
+[ $compiler == app_jit ]
+full_coverage_test: Skip # Platform.executable
+io/code_collection_test: Skip # Platform.executable
+io/platform_test: Skip # Platform.executable
+io/test_extension_fail_test: Skip # Platform.executable
+io/test_extension_test: Skip # Platform.executable
+regress_26031_test: Skip # Platform.resolvedExecutable
-link_natives_lazily_test: SkipByDesign # SIMDBC interpreter doesn't support lazy linking of natives.
+[ $system == android ]
+io/file_stat_test: Skip # Issue 26376
+io/file_system_watcher_test: Skip # Issue 26376
+io/file_test: Skip # Issue 26376
+io/http_proxy_advanced_test: Skip # Issue 27638
+io/http_proxy_test: Skip # Issue 27638
+io/https_bad_certificate_test: Skip # Issue 27638
+io/https_server_test: Skip # Issue 27638
+io/non_utf8_output_test: Skip # The Android command runner doesn't correctly handle non-UTF8 formatted output. https://github.com/dart-lang/sdk/issues/28872
+io/process_exit_test: Skip # Issue 29578
+io/process_path_environment_test: Skip # Issue 26376
+io/process_path_test: Skip # Issue 26376
+io/process_segfault_test: Skip # Issue 26376
+io/raw_datagram_socket_test: Skip # Issue 27638
+io/raw_secure_server_closing_test: Skip # Issue 27638
+io/raw_secure_server_socket_test: Skip # Issue 27638
+io/raw_secure_socket_pause_test: Skip # Issue 27638
+io/raw_secure_socket_test: Skip # Issue 27638
+io/regress_21160_test: Skip # Issue 27638
+io/resolve_symbolic_links_test: Skip # Issue 26376
+io/secure_bad_certificate_test: Skip # Issue 27638
+io/secure_client_raw_server_test: Skip # Issue 27638
+io/secure_client_server_test: Skip # Issue 27638
+io/secure_multiple_client_server_test: Skip # Issue 27638
+io/secure_server_client_certificate_test: Skip # Issue 27638
+io/secure_server_closing_test: Skip # Issue 27638
+io/secure_server_socket_test: Skip # Issue 27638
+io/secure_session_resume_test: Skip # Issue 27638
+io/secure_socket_alpn_test: Skip # Issue 27638
+io/secure_socket_test: Skip # Issue 27638
+io/socket_upgrade_to_secure_test: Skip # Issue 27638
-no_lazy_dispatchers_test: SkipByDesign # SIMDBC interpreter doesn't support --no_lazy_dispatchers
+[ $system == windows ]
+io/process_sync_test: Pass, Timeout # Issue 24596
+io/skipping_dart2js_compilations_test: Skip # Issue 19551.
+io/sleep_test: Pass, Fail # Issue 25757
+io/socket_info_ipv6_test: Skip
+verbose_gc_to_bmu_test: Skip
+
+[ $arch == arm && $mode == release && $runtime == dart_precompiled && $system == android ]
+io/stdout_stderr_non_blocking_test: Pass, Timeout # Issue 28426
+
+[ $arch == ia32 && $builder_tag == asan && $mode == release && $runtime == vm && $system == linux ]
+io/socket_close_test: Pass, Timeout # Issue 28502: timeout.
[ $arch == simdbc64 && $mode == debug && $checked ]
io/web_socket_test: Pass, RuntimeError # Issue 26814.
-[ $system == windows ]
-io/skipping_dart2js_compilations_test: Skip # Issue 19551.
-verbose_gc_to_bmu_test: Skip
-io/process_sync_test: Pass, Timeout # Issue 24596
-io/sleep_test: Pass, Fail # Issue 25757
-io/socket_info_ipv6_test : Skip
+[ $compiler != dart2analyzer && $system == windows ]
+io/platform_resolved_executable_test/06: RuntimeError # Issue 23641
-[ $system == windows && $compiler != dart2analyzer ]
-io/platform_resolved_executable_test/06: RuntimeError # Issue 23641
+[ $mode == release && $runtime == vm && $system == macos ]
+io/named_pipe_script_test: Pass, RuntimeError # Issue 28737
-[ $compiler == app_jit ]
-io/test_extension_test: Skip # Platform.executable
-io/test_extension_fail_test: Skip # Platform.executable
-io/platform_test: Skip # Platform.executable
-io/code_collection_test: Skip # Platform.executable
-full_coverage_test: Skip # Platform.executable
-regress_26031_test: Skip # Platform.resolvedExecutable
+[ $mode == release && $runtime == vm && $system == windows ]
+io/http_server_close_response_after_error_test: Pass, Timeout # Issue 28370: timeout.
+io/regress_7191_test: Pass, Timeout # Issue 28374: timeout.
-[ $system == android ]
-io/process_exit_test: Skip # Issue 29578
-io/process_path_test: Skip # Issue 26376
-io/process_segfault_test: Skip # Issue 26376
-io/file_test: Skip # Issue 26376
-io/process_path_environment_test: Skip # Issue 26376
-io/file_system_watcher_test: Skip # Issue 26376
-io/resolve_symbolic_links_test: Skip # Issue 26376
-io/file_stat_test: Skip # Issue 26376
-io/raw_datagram_socket_test: Skip # Issue 27638
-io/http_proxy_advanced_test: Skip # Issue 27638
-io/regress_21160_test: Skip # Issue 27638
-io/secure_multiple_client_server_test: Skip # Issue 27638
-io/http_proxy_test: Skip # Issue 27638
-io/secure_session_resume_test: Skip # Issue 27638
-io/raw_secure_server_socket_test: Skip # Issue 27638
-io/raw_secure_server_closing_test: Skip # Issue 27638
-io/raw_secure_socket_pause_test: Skip # Issue 27638
-io/https_server_test: Skip # Issue 27638
-io/secure_server_client_certificate_test: Skip # Issue 27638
-io/secure_socket_alpn_test: Skip # Issue 27638
-io/secure_bad_certificate_test: Skip # Issue 27638
-io/secure_server_socket_test: Skip # Issue 27638
-io/secure_client_server_test: Skip # Issue 27638
-io/socket_upgrade_to_secure_test: Skip # Issue 27638
-io/secure_client_raw_server_test: Skip # Issue 27638
-io/secure_socket_test: Skip # Issue 27638
-io/raw_secure_socket_test: Skip # Issue 27638
-io/https_bad_certificate_test: Skip # Issue 27638
-io/secure_server_closing_test: Skip # Issue 27638
-io/non_utf8_output_test: Skip # The Android command runner doesn't correctly handle non-UTF8 formatted output. https://github.com/dart-lang/sdk/issues/28872
+[ $runtime == vm && !$checked ]
+io/file_constructor_test: RuntimeError
-[ $system == android && $runtime == dart_precompiled && $mode == release && $arch == arm]
-io/stdout_stderr_non_blocking_test: Pass, Timeout # Issue 28426
+[ $runtime == vm && ($arch == arm || $arch == arm64) ]
+io/file_input_stream_test: Skip # Issue 26109
+io/file_stream_test: Skip # Issue 26109
+io/file_typed_data_test: Skip # Issue 26109
+
+[ $arch == simdbc || $arch == simdbc64 ]
+full_coverage_test: Skip # TODO(vegorov) SIMDBC interpreter doesn't support coverage yet.
+link_natives_lazily_test: SkipByDesign # SIMDBC interpreter doesn't support lazy linking of natives.
+no_lazy_dispatchers_test: SkipByDesign # SIMDBC interpreter doesn't support --no_lazy_dispatchers
+
diff --git a/tools/VERSION b/tools/VERSION
index 6644c98..17092b6 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 0
PATCH 0
-PRERELEASE 11
+PRERELEASE 12
PRERELEASE_PATCH 0
diff --git a/tools/bots/dart_tests.isolate b/tools/bots/dart_tests.isolate
index b7c925f..bd529b6 100644
--- a/tools/bots/dart_tests.isolate
+++ b/tools/bots/dart_tests.isolate
@@ -20,6 +20,7 @@
'pkg/meta/',
'pkg/pkg.status',
'pkg/status_file/',
+ 'pkg/vm/',
'runtime/tests/',
'.packages']
}
diff --git a/tools/bots/test_matrix.json b/tools/bots/test_matrix.json
index 0f5186a..c8b4c40 100644
--- a/tools/bots/test_matrix.json
+++ b/tools/bots/test_matrix.json
@@ -20,6 +20,7 @@
"pkg/meta/",
"pkg/pkg.status",
"pkg/status_file/",
+ "pkg/vm/",
"runtime/",
"sdk/",
".packages"
@@ -310,7 +311,6 @@
{
"builders": [
"ddc-linux-release",
- "ddc-mac-release",
"ddc-win-release"
],
"meta": {
@@ -346,6 +346,102 @@
"--use-sdk",
"language_2"
]
+ },
+ {
+ "name": "ddc sourcemap tests",
+ "script": "out/ReleaseX64/dart",
+ "arguments": [
+ "pkg/dev_compiler/test/sourcemap/sourcemaps_ddc_suite.dart"
+ ]
+ },
+ {
+ "name": "ddk sourcemap tests",
+ "script": "out/ReleaseX64/dart",
+ "arguments": [
+ "pkg/dev_compiler/test/sourcemap/sourcemaps_ddk_suite.dart"
+ ]
+ },
+ {
+ "name": "ddc sourcemap stacktrace tests",
+ "script": "out/ReleaseX64/dart",
+ "arguments": [
+ "pkg/dev_compiler/test/sourcemap/stacktrace_ddc_suite.dart"
+ ]
+ },
+ {
+ "name": "ddk sourcemap stacktrace tests",
+ "script": "out/ReleaseX64/dart",
+ "arguments": [
+ "pkg/dev_compiler/test/sourcemap/stacktrace_ddk_suite.dart"
+ ]
+ }
+ ]
+ },
+ {
+ "builders": [
+ "ddc-mac-release"
+ ],
+ "meta": {
+ "description": "This configuration is used by the ddc builder group."
+ },
+ "steps": [
+ {
+ "name": "build dart",
+ "script": "tools/build.py",
+ "arguments": ["dart2js_bot", "dartdevc_test"]
+ },
+ {
+ "name": "ddc tests",
+ "arguments": [
+ "-cdartdevc",
+ "-rchrome",
+ "--checked",
+ "--strong",
+ "--use-sdk",
+ "language_2",
+ "corelib_2",
+ "lib_2",
+ "lib_strong"
+ ]
+ },
+ {
+ "name": "ddc kernel tests",
+ "arguments": [
+ "-cdartdevk",
+ "-rchrome",
+ "--checked",
+ "--strong",
+ "--use-sdk",
+ "language_2"
+ ]
+ },
+ {
+ "name": "ddc sourcemap tests",
+ "script": "out/xcodebuild/dart",
+ "arguments": [
+ "pkg/dev_compiler/test/sourcemap/sourcemaps_ddc_suite.dart"
+ ]
+ },
+ {
+ "name": "ddk sourcemap tests",
+ "script": "out/xcodebuild/dart",
+ "arguments": [
+ "pkg/dev_compiler/test/sourcemap/sourcemaps_ddk_suite.dart"
+ ]
+ },
+ {
+ "name": "ddc sourcemap stacktrace tests",
+ "script": "out/xcodebuild/dart",
+ "arguments": [
+ "pkg/dev_compiler/test/sourcemap/stacktrace_ddc_suite.dart"
+ ]
+ },
+ {
+ "name": "ddk sourcemap stacktrace tests",
+ "script": "out/xcodebuild/dart",
+ "arguments": [
+ "pkg/dev_compiler/test/sourcemap/stacktrace_ddk_suite.dart"
+ ]
}
]
},
diff --git a/tools/dom/src/EventStreamProvider.dart b/tools/dom/src/EventStreamProvider.dart
index bb24647..bc21bfd 100644
--- a/tools/dom/src/EventStreamProvider.dart
+++ b/tools/dom/src/EventStreamProvider.dart
@@ -75,7 +75,8 @@
*
* [addEventListener](http://docs.webplatform.org/wiki/dom/methods/addEventListener)
*/
- ElementStream<T> _forElementList(ElementList e, {bool useCapture: false}) {
+ ElementStream<T> _forElementList(ElementList<Element> e,
+ {bool useCapture: false}) {
return new _ElementListEventStreamImpl<T>(e, _eventType, useCapture);
}
@@ -433,7 +434,8 @@
return new _ElementEventStreamImpl<T>(e, _eventTypeGetter(e), useCapture);
}
- ElementStream<T> _forElementList(ElementList e, {bool useCapture: false}) {
+ ElementStream<T> _forElementList(ElementList<Element> e,
+ {bool useCapture: false}) {
return new _ElementListEventStreamImpl<T>(
e, _eventTypeGetter(e), useCapture);
}
diff --git a/tools/dom/src/NodeValidatorBuilder.dart b/tools/dom/src/NodeValidatorBuilder.dart
index dd1cf56..92cfb3a 100644
--- a/tools/dom/src/NodeValidatorBuilder.dart
+++ b/tools/dom/src/NodeValidatorBuilder.dart
@@ -154,9 +154,9 @@
Iterable<String> uriAttributes}) {
var tagNameUpper = tagName.toUpperCase();
var attrs = attributes
- ?.map/*<String>*/((name) => '$tagNameUpper::${name.toLowerCase()}');
+ ?.map<String>((name) => '$tagNameUpper::${name.toLowerCase()}');
var uriAttrs = uriAttributes
- ?.map/*<String>*/((name) => '$tagNameUpper::${name.toLowerCase()}');
+ ?.map<String>((name) => '$tagNameUpper::${name.toLowerCase()}');
if (uriPolicy == null) {
uriPolicy = new UriPolicy();
}
@@ -180,9 +180,9 @@
var baseNameUpper = baseName.toUpperCase();
var tagNameUpper = tagName.toUpperCase();
var attrs = attributes
- ?.map/*<String>*/((name) => '$baseNameUpper::${name.toLowerCase()}');
+ ?.map<String>((name) => '$baseNameUpper::${name.toLowerCase()}');
var uriAttrs = uriAttributes
- ?.map/*<String>*/((name) => '$baseNameUpper::${name.toLowerCase()}');
+ ?.map<String>((name) => '$baseNameUpper::${name.toLowerCase()}');
if (uriPolicy == null) {
uriPolicy = new UriPolicy();
}
diff --git a/tools/dom/templates/html/dart2js/impl_MouseEvent.darttemplate b/tools/dom/templates/html/dart2js/impl_MouseEvent.darttemplate
index 41a6c49..2b582c6 100644
--- a/tools/dom/templates/html/dart2js/impl_MouseEvent.darttemplate
+++ b/tools/dom/templates/html/dart2js/impl_MouseEvent.darttemplate
@@ -22,16 +22,15 @@
}
$!MEMBERS
- @DomName('MouseEvent.clientX')
- @DomName('MouseEvent.clientY')
- Point get client => new Point/*<num>*/(_clientX, _clientY);
+ @DomName('MouseEvent.clientX') @DomName('MouseEvent.clientY')
+ Point get client => new Point(_clientX, _clientY);
@DomName('MouseEvent.movementX')
@DomName('MouseEvent.movementY')
@SupportedBrowser(SupportedBrowser.CHROME)
@SupportedBrowser(SupportedBrowser.FIREFOX)
@Experimental()
- Point get movement => new Point/*<num>*/(_movementX, _movementY);
+ Point get movement => new Point(_movementX, _movementY);
/**
* The coordinates of the mouse pointer in target node coordinates.
@@ -44,7 +43,7 @@
if (JS('bool', '!!#.offsetX', this)) {
var x = JS('int', '#.offsetX', this);
var y = JS('int', '#.offsetY', this);
- return new Point/*<num>*/(x, y);
+ return new Point(x, y);
} else {
// Firefox does not support offsetX.
if (!(this.target is Element)) {
@@ -53,21 +52,21 @@
}
Element target = this.target;
var point = (this.client - target.getBoundingClientRect().topLeft);
- return new Point/*<num>*/(point.x.toInt(), point.y.toInt());
+ return new Point(point.x.toInt(), point.y.toInt());
}
}
@DomName('MouseEvent.screenX')
@DomName('MouseEvent.screenY')
- Point get screen => new Point/*<num>*/(_screenX, _screenY);
+ Point get screen => new Point(_screenX, _screenY);
@DomName('MouseEvent.layerX')
@DomName('MouseEvent.layerY')
- Point get layer => new Point/*<num>*/(_layerX, _layerY);
+ Point get layer => new Point(_layerX, _layerY);
@DomName('MouseEvent.pageX')
@DomName('MouseEvent.pageY')
- Point get page => new Point/*<num>*/(_pageX, _pageY);
+ Point get page => new Point(_pageX, _pageY);
@DomName('MouseEvent.dataTransfer')
DataTransfer get dataTransfer => JS('DataTransfer', "#['dataTransfer']", this);
diff --git a/tools/dom/templates/html/impl/impl_ClientRect.darttemplate b/tools/dom/templates/html/impl/impl_ClientRect.darttemplate
index f52240a..22f115e 100644
--- a/tools/dom/templates/html/impl/impl_ClientRect.darttemplate
+++ b/tools/dom/templates/html/impl/impl_ClientRect.darttemplate
@@ -89,11 +89,11 @@
another.y <= top + height;
}
- Point get topLeft => new Point/*<num>*/(this.left, this.top);
- Point get topRight => new Point/*<num>*/(this.left + this.width, this.top);
- Point get bottomRight => new Point/*<num>*/(this.left + this.width,
+ Point get topLeft => new Point(this.left, this.top);
+ Point get topRight => new Point(this.left + this.width, this.top);
+ Point get bottomRight => new Point(this.left + this.width,
this.top + this.height);
- Point get bottomLeft => new Point/*<num>*/(this.left,
+ Point get bottomLeft => new Point(this.left,
this.top + this.height);
$!MEMBERS}
diff --git a/tools/dom/templates/html/impl/impl_DOMRectReadOnly.darttemplate b/tools/dom/templates/html/impl/impl_DOMRectReadOnly.darttemplate
index e9bf8a6..b17b5bc 100644
--- a/tools/dom/templates/html/impl/impl_DOMRectReadOnly.darttemplate
+++ b/tools/dom/templates/html/impl/impl_DOMRectReadOnly.darttemplate
@@ -89,11 +89,11 @@
another.y <= top + height;
}
- Point get topLeft => new Point/*<num>*/(this.left, this.top);
- Point get topRight => new Point/*<num>*/(this.left + this.width, this.top);
- Point get bottomRight => new Point/*<num>*/(this.left + this.width,
+ Point get topLeft => new Point(this.left, this.top);
+ Point get topRight => new Point(this.left + this.width, this.top);
+ Point get bottomRight => new Point(this.left + this.width,
this.top + this.height);
- Point get bottomLeft => new Point/*<num>*/(this.left,
+ Point get bottomLeft => new Point(this.left,
this.top + this.height);
$!MEMBERS}
diff --git a/tools/dom/templates/html/impl/impl_Document.darttemplate b/tools/dom/templates/html/impl/impl_Document.darttemplate
index de981bc..a745435 100644
--- a/tools/dom/templates/html/impl/impl_Document.darttemplate
+++ b/tools/dom/templates/html/impl/impl_Document.darttemplate
@@ -25,8 +25,8 @@
* For details about CSS selector syntax, see the
* [CSS selector specification](http://www.w3.org/TR/css3-selectors/).
*/
- ElementList<Element /*=T*/> querySelectorAll/*<T extends Element>*/(String selectors) =>
- new _FrozenElementList/*<T>*/._wrap(_querySelectorAll(selectors));
+ ElementList<T> querySelectorAll<T extends Element>(String selectors) =>
+ new _FrozenElementList<T>._wrap(_querySelectorAll(selectors));
/**
* Alias for [querySelector]. Note this function is deprecated because its
@@ -44,7 +44,7 @@
@deprecated
@Experimental()
@DomName('Document.querySelectorAll')
- ElementList<Element /*=T*/> queryAll/*<T extends Element>*/(String relativeSelectors) =>
+ ElementList<T> queryAll<T extends Element>(String relativeSelectors) =>
querySelectorAll(relativeSelectors);
/// Checks if [registerElement] is supported on the current platform.
diff --git a/tools/dom/templates/html/impl/impl_DocumentFragment.darttemplate b/tools/dom/templates/html/impl/impl_DocumentFragment.darttemplate
index ea1830d..7b38a34 100644
--- a/tools/dom/templates/html/impl/impl_DocumentFragment.darttemplate
+++ b/tools/dom/templates/html/impl/impl_DocumentFragment.darttemplate
@@ -55,8 +55,8 @@
* For details about CSS selector syntax, see the
* [CSS selector specification](http://www.w3.org/TR/css3-selectors/).
*/
- ElementList<Element /*=T*/> querySelectorAll/*<T extends Element>*/(String selectors) =>
- new _FrozenElementList/*<T>*/._wrap(_querySelectorAll(selectors));
+ ElementList<T> querySelectorAll<T extends Element>(String selectors) =>
+ new _FrozenElementList<T>._wrap(_querySelectorAll(selectors));
String get innerHtml {
@@ -114,7 +114,7 @@
@deprecated
@Experimental()
@DomName('DocumentFragment.querySelectorAll')
- ElementList<Element /*=T*/> queryAll/*<T extends Element>*/(String relativeSelectors) =>
+ ElementList<T> queryAll<T extends Element>(String relativeSelectors) =>
querySelectorAll(relativeSelectors);
$!MEMBERS
}
diff --git a/tools/dom/templates/html/impl/impl_Element.darttemplate b/tools/dom/templates/html/impl/impl_Element.darttemplate
index aa72eef..4ec5836 100644
--- a/tools/dom/templates/html/impl/impl_Element.darttemplate
+++ b/tools/dom/templates/html/impl/impl_Element.darttemplate
@@ -599,8 +599,8 @@
* [CSS selector specification](http://www.w3.org/TR/css3-selectors/).
*/
@DomName('Element.querySelectorAll')
- ElementList<Element /*=T*/> querySelectorAll/*<T extends Element>*/(String selectors) =>
- new _FrozenElementList/*<T>*/._wrap(_querySelectorAll(selectors));
+ ElementList<T> querySelectorAll<T extends Element>(String selectors) =>
+ new _FrozenElementList<T>._wrap(_querySelectorAll(selectors));
/**
* Alias for [querySelector]. Note this function is deprecated because its
@@ -618,7 +618,7 @@
@deprecated
@DomName('Element.querySelectorAll')
@Experimental()
- ElementList<Element /*=T*/> queryAll/*<T extends Element>*/(String relativeSelectors) =>
+ ElementList<T> queryAll<T extends Element>(String relativeSelectors) =>
querySelectorAll(relativeSelectors);
/**
@@ -1230,13 +1230,13 @@
bool sameAsParent = identical(current, parent);
bool foundAsParent = sameAsParent || parent.tagName == 'HTML';
if (current == null || sameAsParent) {
- if (foundAsParent) return new Point/*<num>*/(0, 0);
+ if (foundAsParent) return new Point(0, 0);
throw new ArgumentError("Specified element is not a transitive offset "
"parent of this element.");
}
Element parentOffset = current.offsetParent;
Point p = Element._offsetToHelper(parentOffset, parent);
- return new Point/*<num>*/(p.x + current.offsetLeft, p.y + current.offsetTop);
+ return new Point(p.x + current.offsetLeft, p.y + current.offsetTop);
}
static HtmlDocument _parseDocument;
diff --git a/tools/dom/templates/html/impl/impl_IDBFactory.darttemplate b/tools/dom/templates/html/impl/impl_IDBFactory.darttemplate
index 99358a4..eaed1fe 100644
--- a/tools/dom/templates/html/impl/impl_IDBFactory.darttemplate
+++ b/tools/dom/templates/html/impl/impl_IDBFactory.darttemplate
@@ -92,12 +92,12 @@
* Ties a request to a completer, so the completer is completed when it succeeds
* and errors out when the request errors.
*/
-Future/*<T>*/ _completeRequest/*<T>*/(Request request) {
- var completer = new Completer/*<T>*/.sync();
+Future<T> _completeRequest<T>(Request request) {
+ var completer = new Completer<T>.sync();
// TODO: make sure that completer.complete is synchronous as transactions
// may be committed if the result is not processed immediately.
request.onSuccess.listen((e) {
- dynamic/*=T*/ result = request.result;
+ T result = request.result;
completer.complete(result);
});
request.onError.listen(completer.completeError);
diff --git a/tools/dom/templates/html/impl/impl_Touch.darttemplate b/tools/dom/templates/html/impl/impl_Touch.darttemplate
index 091d282..7f599fa 100644
--- a/tools/dom/templates/html/impl/impl_Touch.darttemplate
+++ b/tools/dom/templates/html/impl/impl_Touch.darttemplate
@@ -21,15 +21,15 @@
@DomName('Touch.clientX')
@DomName('Touch.clientY')
- Point get client => new Point/*<num>*/(__clientX, __clientY);
+ Point get client => new Point(__clientX, __clientY);
@DomName('Touch.pageX')
@DomName('Touch.pageY')
- Point get page => new Point/*<num>*/(__pageX, __pageY);
+ Point get page => new Point(__pageX, __pageY);
@DomName('Touch.screenX')
@DomName('Touch.screenY')
- Point get screen => new Point/*<num>*/(__screenX, __screenY);
+ Point get screen => new Point(__screenX, __screenY);
@DomName('Touch.radiusX')
@DocsEditable()
diff --git a/tools/dom/templates/html/impl/impl_Window.darttemplate b/tools/dom/templates/html/impl/impl_Window.darttemplate
index 672988b..d01250e 100644
--- a/tools/dom/templates/html/impl/impl_Window.darttemplate
+++ b/tools/dom/templates/html/impl/impl_Window.darttemplate
@@ -313,7 +313,7 @@
return new _ElementEventStreamImpl<BeforeUnloadEvent>(e, _eventType, useCapture);
}
- ElementStream<BeforeUnloadEvent> _forElementList(ElementList e,
+ ElementStream<BeforeUnloadEvent> _forElementList(ElementList<Element> e,
{bool useCapture: false}) {
// Specify the generic type for _ElementEventStreamImpl only in dart2js.
return new _ElementListEventStreamImpl<BeforeUnloadEvent>(e, _eventType, useCapture);
diff --git a/tools/gardening/README.md b/tools/gardening/README.md
index a4dbf00..c9854d5 100644
--- a/tools/gardening/README.md
+++ b/tools/gardening/README.md
@@ -8,6 +8,7 @@
The current (working) tools are:
- [results](#results)
+- [status_overlapping](#status_overlapping)
- [compare_failures](#compare_failures)
- [status_summary](#status_summary)
- [current_summary](#current_summary)
@@ -140,6 +141,52 @@
To change the output directory, use the `--output-directory` option.
+## status_overlapping ##
+
+If a test appears in multiple sections whose conditions are simultaneously true,
+the test's expectations is the union of the applicable entries. It's often
+unintended and undesirable to have overlapping sections for this reason. To find
+overlapping sections, run:
+
+```console
+dart tools/gardening/bin/status_overlapping.dart <suite>
+```
+
+or
+
+```console
+dart tools/gardening/bin/status_overlapping.dart <suite> <test>
+```
+
+Example output can be:
+```console
+...
+~/dart-sdk/sdk/tests/lib_2/lib_2_analyzer.status
+ 5: [ $compiler == dart2analyzer ]
+ 9: mirrors/deferred_mirrors_metadata_test: [Fail]
+ 10: mirrors/deferred_type_test: [StaticWarning, OK]
+ 11: mirrors/generic_f_bounded_mixin_application_test: [StaticWarning]
+ 12: mirrors/mirrors_nsm_mismatch_test: [StaticWarning, OK]
+ 13: mirrors/mirrors_nsm_test: [StaticWarning, OK]
+ 14: mirrors/mirrors_nsm_test/dart2js: [StaticWarning, OK]
+ 17: mirrors/repeated_private_anon_mixin_app_test: [StaticWarning, OK]
+
+ 19: [ $compiler == dart2analyzer && $strong ]
+ 21: mirrors/deferred_mirrors_metadata_test: [StaticWarning]
+ 22: mirrors/deferred_type_test: [CompileTimeError, OK]
+ 23: mirrors/generic_f_bounded_mixin_application_test: [CompileTimeError]
+ 24: mirrors/mirrors_nsm_mismatch_test: [CompileTimeError, OK]
+ 25: mirrors/mirrors_nsm_test: [CompileTimeError, OK]
+ 26: mirrors/mirrors_nsm_test/dart2js: [CompileTimeError, OK]
+ 28: mirrors/repeated_private_anon_mixin_app_test: [CompileTimeError, OK]
+...
+```
+
+Notice that the sections overlap, but there may not be any relationship between
+entries in a section or file, ex. line 9 and 21. This is easier to see if
+overlapping entries are grouped by tests. To divide overlapping sections and
+entries into tests, use --print-test.
+
## compare_failures ##
This tool compares a test log of a build step with previous builds. This is
particularly useful to detect changes over time, such as flakiness of failures,
diff --git a/tools/gardening/bin/results_get.dart b/tools/gardening/bin/results_get.dart
index 7ac6c98..73b8bb9 100644
--- a/tools/gardening/bin/results_get.dart
+++ b/tools/gardening/bin/results_get.dart
@@ -2,18 +2,15 @@
// 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:async';
-import 'dart:io';
import 'package:args/command_runner.dart';
import 'package:args/args.dart';
-import 'package:gardening/src/luci.dart';
-import 'package:gardening/src/luci_api.dart';
import 'package:gardening/src/results/status_expectations.dart';
import 'package:gardening/src/results/status_files.dart';
+import 'package:gardening/src/results/test_result_helper.dart';
import 'package:gardening/src/results/test_result_service.dart';
import 'package:gardening/src/util.dart';
import 'package:gardening/src/console_table.dart';
-import 'package:gardening/src/results/result_models.dart' as models;
-import 'package:gardening/src/results/util.dart';
+import 'package:gardening/src/results/result_json_models.dart' as models;
import 'package:gardening/src/buildbucket.dart';
import 'package:gardening/src/extended_printer.dart';
@@ -34,17 +31,6 @@
return new ConsoleTable(template: rows);
}
-/// Determine if arguments is a CQ url or commit-number + patchset.
-bool isCqInput(ArgResults argResults) {
- if (argResults.rest.length == 1) {
- return isSwarmingTaskUrl(argResults.rest.first);
- }
- if (argResults.rest.length == 2) {
- return areNumbers(argResults.rest);
- }
- return false;
-}
-
String howToUse(String command) {
return "Use by calling one of the following:\n\n"
"\tget $command <file> : for a local result.log file.\n"
@@ -56,93 +42,6 @@
"\tget $command <builder_group> : for a builder group.\n";
}
-/// Utility method to get a single test-result no matter what has been passed in
-/// as arguments. The test-result can either be from a builder-group, a single
-/// build on a builder or from a log.
-Future<models.TestResult> getTestResult(ArgResults argResults) async {
- if (argResults.rest.length == 0) {
- print("No result.log file given as argument.");
- print(howToUse(argResults.name));
- return null;
- }
-
- var logger = createLogger();
- var cache = createCacheFunction(logger);
- var testResultService = new TestResultService(logger, cache);
-
- String firstArgument = argResults.rest.first;
-
- var luciApi = new LuciApi();
- bool isBuilderGroup = (await getBuilderGroups(luciApi, DART_CLIENT, cache()))
- .any((builder) => builder == firstArgument);
- bool isBuilder = (await getAllBuilders(luciApi, DART_CLIENT, cache()))
- .any((builder) => builder == firstArgument);
-
- if (argResults.rest.length == 1) {
- if (argResults.rest.first.startsWith("http")) {
- return testResultService.fromLogdog(firstArgument);
- } else if (isBuilderGroup) {
- return testResultService.forBuilderGroup(firstArgument);
- } else if (isBuilder) {
- return testResultService.latestForBuilder(BUILDER_PROJECT, firstArgument);
- }
- }
-
- var file = new File(argResults.rest.first);
- if (await file.exists()) {
- return testResultService.getFromFile(file);
- }
-
- if (argResults.rest.length == 2 &&
- isBuilder &&
- isNumber(argResults.rest[1])) {
- var buildNumber = int.parse(argResults.rest[1]);
- return testResultService.forBuild(
- BUILDER_PROJECT, argResults.rest[0], buildNumber);
- }
-
- print("Too many arguments passed to command or arguments were incorrect.");
- print(howToUse(argResults.name));
- return null;
-}
-
-/// Utility method to get test results from the CQ.
-Future<Iterable<BuildBucketTestResult>> getTestResultsFromCq(
- ArgResults argResults) async {
- if (argResults.rest.length == 0) {
- print("No result.log file given as argument.");
- print(howToUse(argResults.name));
- return null;
- }
-
- var logger = createLogger();
- var createCache = createCacheFunction(logger);
- var testResultService = new TestResultService(logger, createCache);
-
- String firstArgument = argResults.rest.first;
-
- if (argResults.rest.length == 1) {
- if (!isSwarmingTaskUrl(firstArgument)) {
- print("URI does not match "
- "`https://ci.chromium.org/swarming/task/<taskid>?server...`.");
- print(howToUse(argResults.name));
- return null;
- }
- String swarmingTaskId = getSwarmingTaskId(firstArgument);
- return await testResultService.getFromSwarmingTaskId(swarmingTaskId);
- }
-
- if (argResults.rest.length == 2 && areNumbers(argResults.rest)) {
- int changeNumber = int.parse(firstArgument);
- int patchset = int.parse(argResults.rest.last);
- return await testResultService.fromGerrit(changeNumber, patchset);
- }
-
- print("Too many arguments passed to command or arguments were incorrect.");
- print(howToUse(argResults.name));
- return null;
-}
-
/// [GetCommand] handles when given command 'get' and expect a sub-command.
class GetCommand extends Command {
@override
@@ -162,7 +61,8 @@
/// returns a list of tests with their respective results.
class GetTestsWithResultCommand extends Command {
@override
- String get description => "Get results for tests.";
+ String get description => "Get a list of tests with their respective "
+ "results from result.logs found from input.";
@override
String get name => "tests";
@@ -172,8 +72,10 @@
}
Future run() async {
- models.TestResult testResults = await getTestResult(argResults);
+ models.TestResult testResults =
+ await getTestResultFromBuilder(argResults.rest);
if (testResults == null) {
+ print(howToUse("tests"));
return;
}
var outputTable = getOutputTable(argResults)
@@ -191,10 +93,11 @@
/// 'result' and returns a list of tests with their result and expectations.
class GetTestsWithResultAndExpectationCommand extends Command {
@override
- String get description => "Get results and expectations for tests.";
+ String get description => "Get a list of tests with their respective "
+ "results and expectations from result.logs found from input.";
@override
- String get name => "results";
+ String get name => "tests-with-expectations";
GetTestsWithResultAndExpectationCommand() {
buildArgs(argParser);
@@ -203,22 +106,27 @@
Future run() async {
models.TestResult testResult = null;
- if (isCqInput(argResults)) {
+ if (isCqInput(argResults.rest)) {
Iterable<BuildBucketTestResult> buildBucketTestResults =
- await getTestResultsFromCq(argResults);
- Iterable<models.TestResult> testResults =
- buildBucketTestResults.map((build) => build.testResult);
- testResult = new models.TestResult()..combineWith(testResults);
+ await getTestResultsFromCq(argResults.rest);
+ if (buildBucketTestResults != null) {
+ testResult = buildBucketTestResults.fold<models.TestResult>(
+ new models.TestResult(),
+ (combined, buildResult) => combined..combineWith([buildResult]));
+ }
} else {
- testResult = await getTestResult(argResults);
+ testResult = await getTestResultFromBuilder(argResults.rest);
}
if (testResult == null) {
+ print(howToUse("results"));
return;
}
+ var statusExpectations = new StatusExpectations(testResult);
+ await statusExpectations.loadStatusFiles();
List<TestExpectationResult> withExpectations =
- await getTestResultsWithExpectation(testResult);
+ statusExpectations.getTestResultsWithExpectation();
var outputTable = getOutputTable(argResults)
..addHeader(new Column("Test", width: 38), (TestExpectationResult item) {
@@ -241,7 +149,8 @@
/// returns only the failing tests.
class GetTestFailuresCommand extends Command {
@override
- String get description => "Get failures of tests.";
+ String get description => "Get a list of tests with their respective "
+ "results and expectations from result.logs found from input.";
@override
String get name => "failures";
@@ -250,52 +159,40 @@
buildArgs(argParser);
}
- Future run() {
- if (isCqInput(argResults)) {
- return handleCqInput(argResults);
+ Future run() async {
+ List<models.TestResult> testResults = [];
+ if (isCqInput(argResults.rest)) {
+ var buildBucketResults = await getTestResultsFromCq(argResults.rest);
+ if (buildBucketResults == null) {
+ print(howToUse("failures"));
+ return;
+ }
+ testResults.addAll(buildBucketResults);
} else {
- return handleBuildbotInput(argResults);
- }
- }
-
- Future handleCqInput(ArgResults argResults) async {
- Iterable<BuildBucketTestResult> buildBucketTestResults =
- await getTestResultsFromCq(argResults);
-
- if (buildBucketTestResults == null) {
- return;
+ var testResult = await getTestResultFromBuilder(argResults.rest);
+ if (testResult == null) {
+ print(howToUse("failures"));
+ return;
+ }
+ testResults.add(testResult);
}
print("All result logs fetched.");
print("Calling test.py to find statuses for each test.");
print("");
- for (var buildResult in buildBucketTestResults) {
- printBuild(buildResult.build);
+ for (var testResult in testResults) {
+ if (testResult is BuildBucketTestResult) {
+ printBuild(testResult.build);
+ }
+ var statusExpectations = new StatusExpectations(testResult);
+ await statusExpectations.loadStatusFiles();
List<TestExpectationResult> results =
- await getTestResultsWithExpectation(buildResult.testResult);
+ statusExpectations.getTestResultsWithExpectation();
printFailingTestExpectationResults(results);
print("");
}
}
-
- Future handleBuildbotInput(ArgResults argResults) async {
- models.TestResult testResult = await getTestResult(argResults);
-
- if (testResult == null) {
- return;
- }
-
- print("All result logs fetched.");
- var estimatedTime =
- new Duration(milliseconds: testResult.results.length * 100 ~/ 1000);
- print("Calling test.py to find status files for the configuration and "
- "the expectation for ${testResult.results.length} tests. ");
- List<TestExpectationResult> withExpectations =
- await getTestResultsWithExpectation(testResult);
- printFailingTestExpectationResults(withExpectations);
- print("");
- }
}
/// Prints a test result.
diff --git a/tools/gardening/bin/results_list.dart b/tools/gardening/bin/results_list.dart
index b05f0de..bf17290 100644
--- a/tools/gardening/bin/results_list.dart
+++ b/tools/gardening/bin/results_list.dart
@@ -6,7 +6,7 @@
import 'package:args/args.dart';
import 'package:args/command_runner.dart';
import 'package:gardening/src/results/configurations.dart';
-import 'package:gardening/src/results/result_models.dart' as models;
+import 'package:gardening/src/results/result_json_models.dart' as models;
import 'package:gardening/src/results/testpy_wrapper.dart';
/// Helper function to add all standard arguments to the [argParser].
diff --git a/tools/gardening/bin/results_status.dart b/tools/gardening/bin/results_status.dart
index acfd07e..1193c41 100644
--- a/tools/gardening/bin/results_status.dart
+++ b/tools/gardening/bin/results_status.dart
@@ -3,214 +3,20 @@
// BSD-style license that can be found in the LICENSE file.
import 'dart:async';
-import 'dart:io';
import 'package:args/command_runner.dart';
-import 'package:gardening/src/cache_new.dart';
-import 'package:gardening/src/extended_printer.dart';
-import 'package:gardening/src/logger.dart';
-import 'package:gardening/src/luci.dart';
-import 'package:gardening/src/luci_api.dart';
-import 'package:gardening/src/results/configuration_environment.dart';
-import 'package:gardening/src/results/result_models.dart' as models;
-import 'package:gardening/src/results/status_files.dart';
-import 'package:gardening/src/results/test_result_service.dart';
-import 'package:gardening/src/results/testpy_wrapper.dart';
-import 'package:gardening/src/results/util.dart';
-import 'package:gardening/src/util.dart';
-import 'package:gardening/src/workflow/workflow.dart';
+import 'package:gardening/src/results_workflow/ask_for_logs.dart';
+import 'package:gardening/src/workflow.dart';
-import 'results_status_workflow.dart';
-
-/// Class [StatusCommand] handles the 'status' subcommand and provides
-/// sub-commands for interacting with status files.
+/// Class [StatusCommand] handles the 'status' sub-command to edit status files
+/// for result logs.
class StatusCommand extends Command {
@override
- String get description => "Tools for checking and updating status files.";
-
- @override
- String get name => "status";
-
- StatusCommand() {
- addSubcommand(new CheckStatusCommand());
- addSubcommand(new UpdateStatusCommand());
- }
-}
-
-/// Class [CheckStatusCommand] checks a suite of status files for overlapping
-/// sections.
-class CheckStatusCommand extends Command {
- String usage = "Usage: check <suite> or check <suite> <test>";
-
- @override
- String get description => "Checks a suite of status files for duplicate "
- "entries. $usage";
-
- @override
- String get name => "check";
-
- CheckStatusCommand() {
- argParser.addFlag("print-test",
- negatable: false, help: "Print entries in status files for each test");
- }
-
- Future run() async {
- if (argResults.rest.length == 0 || argResults.rest.length > 2) {
- print("Incorrect number of arguments.\n$usage");
- return;
- }
-
- var suite = argResults.rest.first;
- bool specificTest = argResults.rest.length == 2;
-
- String testArg = specificTest ? "$suite/${argResults.rest.last}" : suite;
-
- Map<String, Iterable<String>> statusFilesMap =
- await statusFileListerMapFromArgs([testArg]);
-
- var statusFilePaths = statusFilesMap[suite].map((file) {
- return "${PathHelper.sdkRepositoryRoot()}/$file";
- }).where((sf) {
- return new File(sf).existsSync();
- }).toList();
-
- print("We need to download all latest configurations. "
- "This may take some time...");
-
- Logger logger = createLogger();
- CreateCacheFunction createCache = createCacheFunction(logger);
- WithCacheFunction dayCache = createCache(duration: new Duration(days: 1));
-
- var luciApi = new LuciApi();
- var primaryBuilders =
- await getPrimaryBuilders(luciApi, DART_CLIENT, dayCache);
- var testResultService = new TestResultService(logger, createCache);
-
- StatusFiles statusFilesWrapper = StatusFiles.read(statusFilePaths);
-
- List<models.TestResult> testResults =
- await waitWithThrottle(primaryBuilders, 20, (builder) {
- return testResultService.latestForBuilder(BUILDER_PROJECT, builder);
- });
-
- var allResults = testResults.fold<models.TestResult>(
- new models.TestResult(),
- (sum, testResult) => sum..combineWith([testResult]));
-
- var activeConfigurations = await futureWhere(
- allResults.configurations.values, (configuration) async {
- // Check that this configuration is using the suite from arguments.
- var confStatusFiles = await statusFileListerMap(configuration);
- return statusFilesMap.keys
- .any((testSuite) => confStatusFiles.containsKey(testSuite));
- });
-
- if (!specificTest) {
- // Get all tests from test.py and check every one.
- var suiteTests = await testsForSuite(suite);
- _checkTests(
- activeConfigurations,
- suiteTests.map((test) => getQualifiedNameForTest(test)),
- statusFilesWrapper);
- } else {
- _checkTests(
- activeConfigurations, [argResults.rest.last], statusFilesWrapper);
- }
- }
-
- void _checkTests(Iterable<models.Configuration> configurations,
- Iterable<String> tests, StatusFiles statusFiles) {
- int configurationLength = configurations.length;
- int configurationCounter = 1;
- var printer = new ExtendedPrinter();
- for (var configuration in configurations) {
- printer.preceding = "";
- var conf = configuration
- .toArgs(includeSelectors: false)
- .map((arg) => arg.replaceAll("--", ""));
- printer.println("");
- printer.printLinePattern("=");
- printer.println("Configuration $configurationCounter of "
- "$configurationLength: ${conf.join(', ')}");
- printer.printLinePattern("=");
- printer.println("");
- ConfigurationEnvironment environment =
- new ConfigurationEnvironment(configuration);
- Map<String, Iterable<StatusSectionEntry>> results = {};
- for (var test in tests) {
- Iterable<StatusSectionEntry> result =
- statusFiles.sectionsWithTestForConfiguration(environment, test);
- if (result.length > 1) {
- results.putIfAbsent(test, () => result);
- }
- }
- if (results.length > 0) {
- if (argResults["print-test"]) {
- printOverlappingSectionsForTest(printer, results);
- } else {
- printOverlappingSectionsForTestsGrouped(printer, results);
- }
- } else {
- printer.println("No overlapping status sections.");
- }
- configurationCounter++;
- }
- }
-
- void printOverlappingSectionsForTest(ExtendedPrinter printer,
- Map<String, Iterable<StatusSectionEntry>> testSectionEntries) {
- for (var test in testSectionEntries.keys) {
- printer.println(test);
- printer.printLinePattern("*");
- printer.printIterable(testSectionEntries[test],
- (StatusSectionEntry entry) {
- return "${entry.section.lineNumber}: [ ${entry.section.condition} ] \n"
- "\t${entry.entry.lineNumber}: ${entry.entry.path}: ${entry.entry.expectations}";
- }, header: (StatusSectionEntry entry) {
- return entry.statusFile.path;
- }, itemPreceding: "\t");
- }
- }
-
- void printOverlappingSectionsForTestsGrouped(ExtendedPrinter printer,
- Map<String, Iterable<StatusSectionEntry>> testSectionEntries) {
- Iterable<StatusSectionEntry> expandedResult =
- testSectionEntries.values.expand((id) => id);
- var allFiles = expandedResult.map((result) => result.statusFile).toSet();
- for (var file in allFiles) {
- printer.preceding = "";
- printer.println(file.path);
- var all = expandedResult.where((x) => x.statusFile == file).toList();
- all.sort((a, b) => a.entry.lineNumber.compareTo(b.entry.lineNumber));
- var sections = all.map((entry) => entry.section).toSet();
- for (var section in sections) {
- printer.preceding = "\t";
- printer.println("${section.lineNumber}: [ ${section.condition} ]");
- var entries = all
- .where((entry) => entry.section == section)
- .map((entry) => entry.entry)
- .toSet();
- printer.preceding = "\t\t";
- for (var entry in entries) {
- printer.println("${entry.lineNumber}: "
- "${entry.path}: "
- "${entry.expectations}");
- }
- printer.println("");
- }
- }
- }
-}
-
-/// Class [UpdateStatusCommand] handles the 'status update' subcommand and
-/// updates status files.
-class UpdateStatusCommand extends Command {
- @override
String get description => "Update status files, from failure data and "
"existing status entries.";
@override
- String get name => "update";
+ String get name => "status";
Future run() async {
var workflow = new Workflow();
diff --git a/tools/gardening/bin/results_status_workflow.dart b/tools/gardening/bin/results_status_workflow.dart
deleted file mode 100644
index fcc9fe9..0000000
--- a/tools/gardening/bin/results_status_workflow.dart
+++ /dev/null
@@ -1,106 +0,0 @@
-// 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.
-
-import 'dart:async';
-import 'package:gardening/src/results/result_models.dart' as models;
-import 'package:gardening/src/workflow/workflow.dart';
-
-Future<models.TestResult> getTestResults(String input) {
- return new Future.value(new models.TestResult());
-}
-
-class AskForLogs extends WorkflowStep {
- List<Future<models.TestResult>> futureTestResults = new List<Future>();
-
- @override
- Future<WorkflowAction> input(String input) {
- // No input entered.
- if (input == null || input.isEmpty && futureTestResults.length == 0) {
- print("ERROR: Needs to add at least one result log.");
- return new Future.value(new WaitForInputWorkflowAction());
- }
- // Navigate to next step.
- if (input == null || input.isEmpty) {
- return new Future.value(new NavigateStepWorkflowAction(
- new ComputeStep(),
- new ComputeStepPayload(Future.wait(futureTestResults),
- "The tool is fetching result logs...", new PresentFailures())));
- }
-
- // Otherwise, add fetch results via future and return input to the user.
- var newFutureTestResult = getTestResults(input);
- if (newFutureTestResult == null) {
- print("ERROR: The input '$input' is invalid.");
- } else {
- print("The tool is acquiring the logs from the input. Add another log or "
- "<Enter> to continue.");
- futureTestResults.add(newFutureTestResult);
- }
- return new Future.value(new WaitForInputWorkflowAction());
- }
-
- @override
- Future<bool> onLeave() {
- return new Future.value(false);
- }
-
- @override
- Future<WorkflowAction> onShow(payload) async {
- // This is the first step, so payload is disregarded.
- if (futureTestResults.length == 0) {
- askForInputFirstTime();
- // prefetch builders
- } else {
- askForInputOtherTimes();
- }
- return new WaitForInputWorkflowAction();
- }
-
- void askForInputFirstTime() {
- print("The tool needs to lookup tests and their expectations to make "
- "suggestions. The more data-points the tool can find, the better it "
- "can report on potential changes to status files.");
- print("You can add test results by the following commands:");
- print("\t<uri> : Either a relative file path, url to a "
- "try builder or url to result log.");
- print("\t<builder-group> : The builder-group name.");
- print("\t<builder-name> : Name of the builder.");
- print("\t<builder-name> <number> : Name and build number for a builder.");
- print("\tall <commit> : All bots for a commit (slow)");
- print("\t<number> <patchset> : The commit number and patchset "
- "for a CL.");
- print("");
- print("Input one of the above commands to add a log:");
- }
-
- void askForInputOtherTimes() {
- print("Add additional logs or write <Enter> to continue.");
- }
-}
-
-class PresentFailures extends WorkflowStep<List<models.TestResult>> {
- @override
- Future<WorkflowAction> input(String input) {
- if (input == "back") {
- return new Future.value(new BackWorkflowAction());
- }
- return new Future.value(null);
- }
-
- @override
- Future<bool> onLeave() {
- return new Future.value(false);
- }
-
- @override
- Future<WorkflowAction> onShow(List<models.TestResult> payload) {
- print("The tool has observed that the following tests have failed. The "
- "tests are grouped by their resulting expectation and all failing "
- "configurations are shown below.");
- print("If you would like to go back and add more result logs, type the "
- "'back' command.");
- print(payload.length);
- return new Future.value(new WaitForInputWorkflowAction());
- }
-}
diff --git a/tools/gardening/bin/status_overlapping.dart b/tools/gardening/bin/status_overlapping.dart
new file mode 100644
index 0000000..36b6cd9
--- /dev/null
+++ b/tools/gardening/bin/status_overlapping.dart
@@ -0,0 +1,223 @@
+// 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.
+
+import 'dart:async';
+import 'dart:io';
+
+import 'package:args/args.dart';
+import 'package:status_file/src/expression.dart';
+import 'package:status_file/src/disjunctive.dart';
+
+import 'package:gardening/src/extended_printer.dart';
+import 'package:gardening/src/results/status_files.dart';
+import 'package:gardening/src/results/testpy_wrapper.dart';
+import 'package:gardening/src/util.dart';
+
+ArgParser buildParser() {
+ var argParser = new ArgParser();
+ argParser.addFlag("print-test",
+ negatable: false, help: "Print entries in status files for each test");
+ argParser.addFlag("help",
+ negatable: false, help: "Show information about the use of the tool.");
+ return argParser;
+}
+
+void printHelp(ArgParser argParser) {
+ print("Checks a suite of status files for duplicate "
+ "entries. Usage: status.dart <suite> or status.dart <suite> <test>");
+ print(argParser.usage);
+}
+
+Future main(List<String> args) async {
+ var argParser = buildParser();
+ var argResults = argParser.parse(args);
+ if (argResults['help']) {
+ printHelp(argParser);
+ return;
+ }
+ if (argResults.rest.length == 0 || argResults.rest.length > 2) {
+ print("Incorrect number of arguments.\n");
+ printHelp(argParser);
+ return;
+ }
+ var suite = argResults.rest.first;
+ bool hasSpecificTest = argResults.rest.length == 2;
+ String testArg = hasSpecificTest ? "$suite/${argResults.rest.last}" : suite;
+
+ Map<String, Iterable<String>> statusFilesMap =
+ await statusFileListerMapFromArgs([testArg]);
+ var statusFilePaths = statusFilesMap[suite].map((file) {
+ return "${PathHelper.sdkRepositoryRoot()}/$file";
+ }).where((sf) {
+ return new File(sf).existsSync();
+ }).toList();
+
+ StatusFiles statusFilesWrapper = StatusFiles.read(statusFilePaths);
+
+ Map<String, List<StatusSectionEntry>> testsWithOverlappingSections = {};
+ if (!hasSpecificTest) {
+ // Get all tests from test.py and check every one.
+ var suiteTests = await testsForSuite(suite);
+ testsWithOverlappingSections = getTestsThatOverlap(
+ suiteTests.map((test) => getQualifiedNameForTest(test)).toList(),
+ statusFilesWrapper);
+ } else {
+ testsWithOverlappingSections =
+ getTestsThatOverlap([argResults.rest.last], statusFilesWrapper);
+ }
+
+ if (testsWithOverlappingSections.isNotEmpty) {
+ ExtendedPrinter printer = new ExtendedPrinter();
+ if (argResults["print-test"]) {
+ printOverlappingSectionsForTest(printer, testsWithOverlappingSections);
+ } else {
+ printOverlappingSectionsForTestsGrouped(
+ printer, testsWithOverlappingSections);
+ }
+ } else {
+ print("No overlapping sections.");
+ print("");
+ }
+}
+
+/// Checks if [source] is a subset of [target], which is the same as checking
+/// [target] implies [source]. An expression can be either [VariableExpression],
+/// [ComparisonExpression], [NegationExpression] or [LogicExpression].
+///
+/// The only non-unary is [LogicExpression].
+///
+/// We assume [source] and [target] are on disjunctive normal form.
+///
+/// If source is null or have no operands, it is trivially a subset since
+/// everything implies [source].
+/// If target is null (and source is not null) then [source] can never be a
+/// subset.
+///
+/// In all other cases, we check if source or target is LogicExpression and is
+/// joined by or and split these up into smaller tests.
+bool isSubset(Expression source, Expression target) {
+ if (source == null || target == null) {
+ // This happens for the default region, which is always true.
+ return true;
+ }
+ if (source is LogicExpression && source.operands.isEmpty) {
+ return true;
+ }
+ if (target is LogicExpression && target.operands.isEmpty) {
+ return false;
+ }
+ if (source is LogicExpression && source.isOr) {
+ return source.operands.any((exp) => isSubset(exp, target));
+ }
+ if (target is LogicExpression && target.isOr) {
+ return target.operands.any((exp) => isSubsetNoDisjuncts(source, exp));
+ }
+ return isSubsetNoDisjuncts(source, target);
+}
+
+/// Should only be called if [source] and [target] is on disjunctive normal
+/// form and if the [LogicExpression] is not joined by or's.
+///
+/// It is easy to check if subset, by just casing.
+bool isSubsetNoDisjuncts(Expression source, Expression target) {
+ if (source is! LogicExpression && target is! LogicExpression) {
+ return source.compareTo(target) == 0;
+ }
+ if (source is! LogicExpression) {
+ return (target as LogicExpression)
+ .operands
+ .any((exp) => source.compareTo(exp) == 0);
+ }
+ if (source is LogicExpression &&
+ source.operands.length > 1 &&
+ target is! LogicExpression) {
+ return false;
+ }
+ if (source is LogicExpression &&
+ target is LogicExpression &&
+ source.operands.length > target.operands.length) {
+ return false;
+ }
+ var sourceLogic = source as LogicExpression;
+ var targetLogic = target as LogicExpression;
+ return sourceLogic.operands.every(
+ (exp1) => targetLogic.operands.any((exp2) => exp1.compareTo(exp2) == 0));
+}
+
+Map<String, List<StatusSectionEntry>> getTestsThatOverlap(
+ List<String> tests, StatusFiles statusFiles) {
+ var dnfExpressionsCache = <StatusSectionEntry, Expression>{};
+ Map<String, List<StatusSectionEntry>> results = {};
+ for (var test in tests) {
+ var sectionEntries = statusFiles.sectionsWithTest(test);
+ if (sectionEntries.length > 1) {
+ // Find out if two sections overlap
+ var overlapping = <StatusSectionEntry>[];
+ for (var i = 0; i < sectionEntries.length; i++) {
+ for (var j = i + 1; j < sectionEntries.length; j++) {
+ var dnfFirst = dnfExpressionsCache.putIfAbsent(
+ sectionEntries[i],
+ () =>
+ toDisjunctiveNormalForm(sectionEntries[i].section.condition));
+ var dnfOther = dnfExpressionsCache.putIfAbsent(
+ sectionEntries[j],
+ () =>
+ toDisjunctiveNormalForm(sectionEntries[j].section.condition));
+ if (isSubset(dnfFirst, dnfOther) || isSubset(dnfOther, dnfFirst)) {
+ overlapping.add(sectionEntries[i]);
+ overlapping.add(sectionEntries[j]);
+ }
+ }
+ if (overlapping.isNotEmpty) {
+ results[test] = overlapping;
+ }
+ }
+ }
+ }
+ return results;
+}
+
+void printOverlappingSectionsForTest(ExtendedPrinter printer,
+ Map<String, List<StatusSectionEntry>> testSectionEntries) {
+ for (var test in testSectionEntries.keys) {
+ printer.println(test);
+ printer.printLinePattern("*");
+ printer.printIterable(testSectionEntries[test], (StatusSectionEntry entry) {
+ return "${entry.section.lineNumber}: [ ${entry.section.condition} ]\n"
+ "\t${entry.entry.lineNumber}: ${entry.entry.path}: "
+ "${entry.entry.expectations}";
+ }, header: (StatusSectionEntry entry) {
+ return entry.statusFile.path;
+ }, itemPreceding: "\t");
+ }
+}
+
+void printOverlappingSectionsForTestsGrouped(ExtendedPrinter printer,
+ Map<String, List<StatusSectionEntry>> testSectionEntries) {
+ Iterable<StatusSectionEntry> expandedResult =
+ testSectionEntries.values.expand((id) => id);
+ var allFiles = expandedResult.map((result) => result.statusFile).toSet();
+ for (var file in allFiles) {
+ printer.preceding = "";
+ printer.println(file.path);
+ var all = expandedResult.where((x) => x.statusFile == file).toList();
+ all.sort((a, b) => a.entry.lineNumber.compareTo(b.entry.lineNumber));
+ var sections = all.map((entry) => entry.section).toSet();
+ for (var section in sections) {
+ printer.preceding = "\t";
+ printer.println("${section.lineNumber}: [ ${section.condition} ]");
+ var entries = all
+ .where((entry) => entry.section == section)
+ .map((entry) => entry.entry)
+ .toSet();
+ printer.preceding = "\t\t";
+ for (var entry in entries) {
+ printer.println("${entry.lineNumber}: "
+ "${entry.path}: "
+ "${entry.expectations}");
+ }
+ printer.println("");
+ }
+ }
+}
diff --git a/tools/gardening/lib/src/buildbot_loading.dart b/tools/gardening/lib/src/buildbot_loading.dart
index ea4e9e3..6a55fdc 100644
--- a/tools/gardening/lib/src/buildbot_loading.dart
+++ b/tools/gardening/lib/src/buildbot_loading.dart
@@ -6,8 +6,6 @@
import 'dart:io';
import 'cache_new.dart';
import 'logdog_rpc.dart';
-import 'results/util.dart';
-
import 'util.dart';
import 'buildbot_structures.dart';
diff --git a/tools/gardening/lib/src/compare_failures_impl.dart b/tools/gardening/lib/src/compare_failures_impl.dart
index fcef3d5..bc4c895 100644
--- a/tools/gardening/lib/src/compare_failures_impl.dart
+++ b/tools/gardening/lib/src/compare_failures_impl.dart
@@ -7,7 +7,6 @@
/// Use this to detect flakiness of failures, especially timeouts.
import 'dart:async';
-import 'dart:io';
import 'bot.dart';
import 'buildbot_structures.dart';
diff --git a/tools/gardening/lib/src/extended_printer.dart b/tools/gardening/lib/src/extended_printer.dart
index fa76935..c92846b 100644
--- a/tools/gardening/lib/src/extended_printer.dart
+++ b/tools/gardening/lib/src/extended_printer.dart
@@ -42,8 +42,8 @@
}
/// Prints an iterable while maintaining state for index and preceding.
- void printIterable<T>(Iterable<T> items, ItemCallBack cb,
- {ItemCallBack header,
+ void printIterable<T>(Iterable<T> items, ItemCallBack<T> cb,
+ {ItemCallBack<T> header,
String separatorPattern: "",
String itemPreceding: ""}) {
bool isFirst = true;
diff --git a/tools/gardening/lib/src/luci_api.dart b/tools/gardening/lib/src/luci_api.dart
index f3242fc..2a44833 100644
--- a/tools/gardening/lib/src/luci_api.dart
+++ b/tools/gardening/lib/src/luci_api.dart
@@ -91,7 +91,6 @@
/// [_makeGetRequest] performs a get request to [uri].
Future<String> _makeGetRequest(Uri uri) async {
- String uriString = uri.toString();
var request = await _client.getUrl(uri);
var response = await request.close();
if (response.statusCode != 200) {
diff --git a/tools/gardening/lib/src/results/configuration_environment.dart b/tools/gardening/lib/src/results/configuration_environment.dart
index ed50119..fb25d3e 100644
--- a/tools/gardening/lib/src/results/configuration_environment.dart
+++ b/tools/gardening/lib/src/results/configuration_environment.dart
@@ -7,7 +7,7 @@
// and also information about test-suites.
import 'package:status_file/environment.dart';
-import 'result_models.dart';
+import 'result_json_models.dart';
import 'configurations.dart';
typedef String _LookUpFunction(Configuration configuration);
@@ -20,7 +20,7 @@
new _Variable.bool((c) => c.compiler == Compiler.dart2analyzer.name),
"arch": new _Variable((c) => c.arch, Architecture.names),
"browser": new _Variable.bool((c) {
- var runtime = new Runtime.fromName(c.runtime);
+ var runtime = runtimeFromName(c.runtime);
return runtime != null ? runtime.isBrowser : false;
}),
"builder_tag": new _Variable((c) => c.builderTag ?? "", const []),
@@ -35,16 +35,17 @@
"hot_reload": new _Variable.bool((c) => c.hotReload),
"hot_reload_rollback": new _Variable.bool((c) => c.hotReloadRollback),
"ie": new _Variable.bool((c) {
- var runtime = new Runtime.fromName(c.runtime);
+ var runtime = runtimeFromName(c.runtime);
return runtime != null ? runtime.isIE : false;
}),
"jscl": new _Variable.bool((c) {
- var runtime = new Runtime.fromName(c.runtime);
+ var runtime = runtimeFromName(c.runtime);
return runtime != null ? runtime.isJSCommandLine : false;
}),
"minified": new _Variable.bool((c) => c.minified),
"mode": new _Variable((c) => c.mode, Mode.names),
"runtime": new _Variable(_runtimeName, Runtime.names),
+ "spec_parser": new _Variable.bool((c) => c.compiler == Compiler.specParser),
"strong": new _Variable.bool((c) => c.strong),
"system": new _Variable((c) => c.system, System.names),
"use_sdk": new _Variable.bool((c) => c.useSdk)
diff --git a/tools/gardening/lib/src/results/configurations.dart b/tools/gardening/lib/src/results/configurations.dart
index 3c0a68a..09d900b 100644
--- a/tools/gardening/lib/src/results/configurations.dart
+++ b/tools/gardening/lib/src/results/configurations.dart
@@ -2,7 +2,11 @@
// 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.
-// Code from tools/testing/dart/configuration.dart
+Runtime runtimeFromName(name) {
+ return Runtime._all[name];
+}
+
+// Code from tools/testing/dart/configuration.dart starting with Architecture
// TODO(mkroghj) add package with all settings, such as these
// and also information about test-suites
@@ -35,7 +39,7 @@
simarm64,
simdbc,
simdbc64
- ], key: (architecture) => architecture.name);
+ ], key: (architecture) => (architecture as Architecture).name);
static Architecture find(String name) {
var architecture = _all[name];
@@ -57,6 +61,7 @@
static const dart2js = const Compiler._('dart2js');
static const dart2analyzer = const Compiler._('dart2analyzer');
static const dartdevc = const Compiler._('dartdevc');
+ static const dartdevk = const Compiler._('dartdevk');
static const appJit = const Compiler._('app_jit');
static const dartk = const Compiler._('dartk');
static const dartkp = const Compiler._('dartkp');
@@ -70,11 +75,12 @@
dart2js,
dart2analyzer,
dartdevc,
+ dartdevk,
appJit,
dartk,
dartkp,
- specParser
- ], key: (Compiler compiler) => compiler.name);
+ specParser,
+ ], key: (compiler) => (compiler as Compiler).name);
static Compiler find(String name) {
var compiler = _all[name];
@@ -111,8 +117,8 @@
Runtime.safariMobileSim
];
- case Compiler.dart2js:
case Compiler.dartdevc:
+ case Compiler.dartdevk:
// TODO(rnystrom): Expand to support other JS execution environments
// (other browsers, d8) when tested and working.
return const [
@@ -129,6 +135,8 @@
case Compiler.precompiler:
case Compiler.dartkp:
return const [Runtime.dartPrecompiled];
+ case Compiler.specParser:
+ return const [Runtime.none];
case Compiler.none:
return const [
Runtime.vm,
@@ -141,6 +149,32 @@
throw "unreachable";
}
+ /// The preferred runtime to use with this compiler if no other runtime is
+ /// specified.
+ Runtime get defaultRuntime {
+ switch (this) {
+ case Compiler.dart2js:
+ return Runtime.d8;
+ case Compiler.dartdevc:
+ case Compiler.dartdevk:
+ return Runtime.chrome;
+ case Compiler.dart2analyzer:
+ return Runtime.none;
+ case Compiler.appJit:
+ case Compiler.dartk:
+ return Runtime.vm;
+ case Compiler.precompiler:
+ case Compiler.dartkp:
+ return Runtime.dartPrecompiled;
+ case Compiler.specParser:
+ return Runtime.none;
+ case Compiler.none:
+ return Runtime.vm;
+ }
+
+ throw "unreachable";
+ }
+
String toString() => "Compiler($name)";
}
@@ -153,7 +187,7 @@
static final _all = new Map<String, Mode>.fromIterable(
[debug, product, release],
- key: (Mode mode) => mode.name);
+ key: (mode) => (mode as Mode).name);
static Mode find(String name) {
var mode = _all[name];
@@ -185,7 +219,7 @@
static final _all = new Map<String, Progress>.fromIterable(
[compact, color, line, verbose, silent, status, buildbot, diff],
- key: (Progress progress) => progress.name);
+ key: (progress) => (progress as Progress).name);
static Progress find(String name) {
var progress = _all[name];
@@ -242,7 +276,7 @@
contentShellOnAndroid,
selfCheck,
none
- ], key: (Runtime runtime) => runtime.name);
+ ], key: (runtime) => (runtime as Runtime).name);
static Runtime find(String name) {
// Allow "ff" as a synonym for Firefox.
@@ -258,10 +292,6 @@
const Runtime._(this.name);
- factory Runtime.fromName(name) {
- return _all[name];
- }
-
bool get isBrowser => const [
drt,
ie9,
@@ -285,6 +315,43 @@
/// If the runtime doesn't support `Window.open`, we use iframes instead.
bool get requiresIFrame => !const [ie11, ie10].contains(this);
+ /// The preferred compiler to use with this runtime if no other compiler is
+ /// specified.
+ Compiler get defaultCompiler {
+ switch (this) {
+ case vm:
+ case flutter:
+ case drt:
+ return Compiler.none;
+
+ case dartPrecompiled:
+ return Compiler.precompiler;
+
+ case d8:
+ case jsshell:
+ case firefox:
+ case chrome:
+ case safari:
+ case ie9:
+ case ie10:
+ case ie11:
+ case opera:
+ case chromeOnAndroid:
+ case safariMobileSim:
+ case contentShellOnAndroid:
+ return Compiler.dart2js;
+
+ case selfCheck:
+ return Compiler.dartk;
+
+ case none:
+ // If we aren't running it, we probably just want to analyze it.
+ return Compiler.dart2analyzer;
+ }
+
+ throw "unreachable";
+ }
+
String toString() => "Runtime($name)";
}
@@ -299,7 +366,7 @@
static final _all = new Map<String, System>.fromIterable(
[android, fuchsia, linux, macos, windows],
- key: (System system) => system.name);
+ key: (system) => (system as System).name);
static System find(String name) {
var system = _all[name];
@@ -312,5 +379,21 @@
const System._(this.name);
+ /// The root directory name for build outputs on this system.
+ String get outputDirectory {
+ switch (this) {
+ case android:
+ case fuchsia:
+ case linux:
+ case windows:
+ return 'out/';
+
+ case macos:
+ return 'xcodebuild/';
+ }
+
+ throw "unreachable";
+ }
+
String toString() => "System($name)";
}
diff --git a/tools/gardening/lib/src/results/failing_test.dart b/tools/gardening/lib/src/results/failing_test.dart
new file mode 100644
index 0000000..e19a1e3
--- /dev/null
+++ b/tools/gardening/lib/src/results/failing_test.dart
@@ -0,0 +1,285 @@
+// 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.
+
+import 'package:status_file/canonical_status_file.dart';
+
+import 'result_json_models.dart';
+import '../results/configurations.dart';
+import '../results/status_expectations.dart';
+import '../results/status_files.dart';
+import '../util.dart';
+
+typedef SectionsSuggestion ComputeSectionsFunc(
+ List<Configuration> failingConfigurations,
+ List<Configuration> passingConfigurations,
+ StatusExpectations expectations,
+ String testName);
+
+/// [FailingTest] captures the essential information of a failing test, to
+/// suggest sections to be updated.
+class FailingTest {
+ /// [result] holds data from the actual running of the test, such as name and
+ /// outcome.
+ final Result result;
+
+ /// [TestResult] is the combined result for all tests in all configurations,
+ /// gathered from the result.logs.
+ final TestResult testResult;
+ final List<Configuration> failingConfigurations;
+ final List<Configuration> passingConfigurations;
+
+ FailingTest(this.result, this.testResult, this.failingConfigurations,
+ this.passingConfigurations);
+
+ // There are multiple strategies for finding candidate sections, which will
+ // then be presented to the user.
+ List<SectionsSuggestion> computeSections(StatusExpectations expectations) {
+ var computeSectionStrategies = <ComputeSectionsFunc>[
+ _findExistingFailingEntriesStrategy,
+ _failingSectionsIntersectionStrategy,
+ _statusSectionDifferenceStrategy
+ ];
+
+ // We remember all the sections already found by previous strategies. The
+ // most precise strategies should be called first, so a section is printed
+ // with the most accurate description of why it is a good candidate..
+ var seenSections = new Set<StatusSectionWithFile>();
+
+ var computedList = <SectionsSuggestion>[];
+ computeSectionStrategies.forEach((strategy) {
+ var suggestion = strategy(failingConfigurations, passingConfigurations,
+ expectations, result.name);
+ suggestion.sections = suggestion.sections
+ .where((section) => !seenSections.contains(section))
+ .toList();
+ if (suggestion != null && suggestion.sections.isNotEmpty) {
+ computedList.add(suggestion);
+ seenSections.addAll(suggestion.sections);
+ }
+ });
+ return computedList;
+ }
+
+ /// Checks, from [expectations], if the failing test is still failing.
+ bool stillFailing(StatusExpectations expectations) {
+ var testExpectations = expectations.getTestResultsWithExpectation();
+ return testExpectations
+ .where((expectation) =>
+ !expectation.isSuccess() && expectation.result == result)
+ .isNotEmpty;
+ }
+
+ /// Gets the status files for the suite this test belongs to.
+ List<StatusFile> statusFiles(StatusExpectations expectations) {
+ var testSuite = getSuiteNameForTest(result.name);
+ return expectations.statusFilesMaps[testSuite].statusFiles;
+ }
+
+ /// Gets all failing status entries. Test can still fail without having any
+ /// entries.
+ List<StatusSectionEntry> failingStatusEntries(
+ StatusExpectations expectations) {
+ var entries = _sectionEntriesForTestInConfigurations(
+ expectations, failingConfigurations, result.name,
+ success: false);
+ return new Set.from(entries).toList();
+ }
+
+ /// Gets the failing configurations not covered by expressions in [sections].
+ List<Configuration> failingConfigurationsNotCovered(
+ StatusExpectations expectations, List<StatusSectionWithFile> sections) {
+ return _configurationsNotCovered(
+ expectations, sections, this.failingConfigurations);
+ }
+
+ /// Gets the passing configurations not covered by expressions in [sections].
+ List<Configuration> passingConfigurationsNotCovered(
+ StatusExpectations expectations, List<StatusSectionWithFile> sections) {
+ return _configurationsNotCovered(
+ expectations, sections, this.passingConfigurations);
+ }
+
+ List<Configuration> _configurationsNotCovered(
+ StatusExpectations expectations,
+ List<StatusSectionWithFile> sections,
+ List<Configuration> configurations) {
+ List<Configuration> notCovered = [];
+ for (var configuration in configurations) {
+ var environment = expectations.configurationEnvironments[configuration];
+ if (!sections
+ .any((section) => section.section.condition.evaluate(environment))) {
+ notCovered.add(configuration);
+ }
+ }
+ return notCovered;
+ }
+}
+
+/// Finds status section entries (entries with a path and expectation), where
+/// the path matches the test name, in [statusExpectations] for the
+/// [configurations]. [success] can be used to further filter on the entries, by
+/// specifying if the status section entry should be successful, failing or both
+/// (null), when compared with the result from the test, in one of the
+/// configurations.
+List<StatusSectionEntry> _sectionEntriesForTestInConfigurations(
+ StatusExpectations statusExpectations,
+ List<Configuration> configurations,
+ String testName,
+ {bool success: null}) {
+ var expectations = statusExpectations.getTestResultsWithExpectation();
+ return expectations
+ .where((expectation) =>
+ configurations.contains(expectation.configuration) &&
+ expectation.result.name == testName &&
+ (success == null || expectation.isSuccess() == success))
+ .expand((testResult) => testResult.entries)
+ .toList();
+}
+
+/*********************************
+ * Strategies to find sections
+ *********************************/
+
+/// Strategy that returns all status headers that have a failing status entry
+/// for this test. For tests going from some failure to passing, this would be
+/// the preferred option.
+/// We are not guaranteed that any sections will cover all failing sections.
+SectionsSuggestion _findExistingFailingEntriesStrategy(
+ List<Configuration> failingConfigurations,
+ List<Configuration> passingConfigurations,
+ StatusExpectations expectations,
+ String testName) {
+ String description = "These sections already already have entries for this "
+ "test, that apply to at least one failing configuration";
+ var allEntries = new Set<StatusSectionEntry>.from(
+ _sectionEntriesForTestInConfigurations(
+ expectations, failingConfigurations, testName,
+ success: false));
+ var sections = allEntries
+ .map(
+ (entry) => new StatusSectionWithFile(entry.statusFile, entry.section))
+ .toList();
+ return new SectionsSuggestion(description, sections);
+}
+
+/// The [_failingSectionsIntersectionStrategy] will hopefully be the bread and
+/// butter strategy for most. It takes the intersection of all failing
+/// configurations enabled sections and subtracts the set of all sections
+/// enabled for the passing configurations.
+/// If a result is found, it is guaranteed to cover all the failing
+/// configurations and none of the passing configurations.
+SectionsSuggestion _failingSectionsIntersectionStrategy(
+ List<Configuration> failingConfigurations,
+ List<Configuration> passingConfigurations,
+ StatusExpectations expectations,
+ String testName) {
+ String description = "Every section listed here covers all failing"
+ "configurations and none of the passing configurations.";
+ var testSuite = getSuiteNameForTest(testName);
+ var configurationSections = <StatusSectionWithFile, List<Configuration>>{};
+ for (var configuration in failingConfigurations) {
+ var sections =
+ _sectionsFromConfiguration(expectations, configuration, testSuite);
+ for (var section in _filterSections(sections, testSuite, configuration)) {
+ configurationSections.putIfAbsent(section, () => [])..add(configuration);
+ }
+ }
+ var sections = new Set<StatusSectionWithFile>.from(configurationSections.keys
+ .where((key) =>
+ failingConfigurations.length == configurationSections[key].length));
+ if (sections.isEmpty) {
+ return new SectionsSuggestion(description, []);
+ }
+ for (var configuration in passingConfigurations) {
+ var sectionsToRemove =
+ _sectionsFromConfiguration(expectations, configuration, testSuite);
+ sections.removeAll(sectionsToRemove);
+ }
+ var sortedSections = sections.toList()
+ ..sort((a, b) => a.section.condition.compareTo(b.section.condition));
+ return new SectionsSuggestion(description, sortedSections);
+}
+
+/// The [_statusSectionDifferenceStrategy] takes the union of all enabled
+/// failing sections and subtracts all the enabled passing sections. We are
+/// guaranteed to not select a section that is enabled in a passing
+/// configuration, however, it is not guaranteed that a combination of the
+/// sections will cover all failing configurations.
+SectionsSuggestion _statusSectionDifferenceStrategy(
+ List<Configuration> failingConfigurations,
+ List<Configuration> passingConfigurations,
+ StatusExpectations expectations,
+ String testName) {
+ String description = "All sections cover one or more failing "
+ "configuration but none of the passing configurations.";
+ var configurationSections = <Configuration, Set<StatusSectionWithFile>>{};
+ var testSuite = getSuiteNameForTest(testName);
+ for (var configuration in failingConfigurations) {
+ var sections = _filterSections(
+ _sectionsFromConfiguration(expectations, configuration, testSuite),
+ testSuite,
+ configuration);
+ configurationSections[configuration] = new Set.from(sections);
+ }
+ for (var configuration in passingConfigurations) {
+ var sectionsToRemove =
+ _sectionsFromConfiguration(expectations, configuration, testSuite);
+ for (var failingSections in configurationSections.values) {
+ failingSections.removeAll(sectionsToRemove);
+ }
+ }
+ var sortedSections = configurationSections.values
+ .reduce((a, b) => a..addAll(b))
+ .toList()
+ ..sort((a, b) => a.section.condition.compareTo(b.section.condition));
+ return new SectionsSuggestion(description, sortedSections);
+}
+
+List<StatusSectionWithFile> _sectionsFromConfiguration(
+ StatusExpectations expectations,
+ Configuration configuration,
+ String testSuite) {
+ var environment = expectations.configurationEnvironments[configuration];
+ return expectations.statusFilesMaps[testSuite]
+ .sectionsForConfiguration(environment);
+}
+
+/// Filters section by not taking the default section, and also exclude status
+/// files of other compilers.
+List<StatusSectionWithFile> _filterSections(
+ List<StatusSectionWithFile> statusSections,
+ String suite,
+ Configuration configuration) {
+ String specificStatusFile =
+ configuration.compiler == Compiler.none ? "" : configuration.compiler;
+ if (configuration.compiler == Compiler.dartdevk.name) {
+ specificStatusFile = Compiler.dartdevc.name;
+ }
+ if (configuration.compiler == Compiler.dartk ||
+ configuration.compiler == Compiler.dartkp) {
+ specificStatusFile = "kernel";
+ }
+ if (specificStatusFile.isEmpty) {
+ return statusSections
+ .where((statusSection) => statusSection.section.condition != null);
+ } else {
+ return statusSections
+ .where((statusSection) =>
+ statusSection.section.condition != null &&
+ (statusSection.statusFile.path.endsWith("$suite.status") ||
+ statusSection.statusFile.path
+ .endsWith("${suite}-$specificStatusFile.status") ||
+ statusSection.statusFile.path
+ .endsWith("${suite}_$specificStatusFile.status")))
+ .toList();
+ }
+}
+
+/// A [SectionsSuggestion] object holds all the sections suggested by a
+/// strategy, and a description of that strategy.
+class SectionsSuggestion {
+ final String strategy;
+ List<StatusSectionWithFile> sections;
+ SectionsSuggestion(this.strategy, this.sections);
+}
diff --git a/tools/gardening/lib/src/results/result_models.dart b/tools/gardening/lib/src/results/result_json_models.dart
similarity index 100%
rename from tools/gardening/lib/src/results/result_models.dart
rename to tools/gardening/lib/src/results/result_json_models.dart
diff --git a/tools/gardening/lib/src/results/status_expectations.dart b/tools/gardening/lib/src/results/status_expectations.dart
index 9cc09d5..5131a48 100644
--- a/tools/gardening/lib/src/results/status_expectations.dart
+++ b/tools/gardening/lib/src/results/status_expectations.dart
@@ -7,55 +7,77 @@
import 'package:gardening/src/results/configuration_environment.dart';
import 'package:gardening/src/results/status_files.dart';
-import 'result_models.dart';
+import 'result_json_models.dart';
import 'testpy_wrapper.dart';
-import 'util.dart';
+import '../util.dart';
import 'package:status_file/expectation.dart';
-/// Finds the expectation for each test found in the [testResult] results and
-/// outputs if the test succeeded or failed.
-Future<List<TestExpectationResult>> getTestResultsWithExpectation(
- TestResult testResult) async {
- // Build expectations from configurations. Each configuration may test
- // multiple test suites.
- Map<String, ConfigurationEnvironment> configurationEnvironments = {};
- Map<String, Map<String, StatusFiles>> statusFilesMaps = {};
- await Future.wait(testResult.configurations.keys.map((key) async {
- Configuration configuration = testResult.configurations[key];
- configurationEnvironments[key] =
- new ConfigurationEnvironment(configuration);
- var statusFilePathsMap = await statusFileListerMap(configuration);
- statusFilesMaps[key] = {};
- statusFilePathsMap.keys.forEach((suite) {
- var statusFilePaths = statusFilePathsMap[suite].map((file) {
+class StatusExpectations {
+ final TestResult testResult;
+
+ final Map<Configuration, ConfigurationEnvironment> configurationEnvironments =
+ {};
+ final Map<String, StatusFiles> statusFilesMaps = {};
+
+ bool _isLoaded = false;
+
+ StatusExpectations(this.testResult);
+
+ /// Build expectations from configurations. Each configuration may test
+ /// multiple test suites.
+ Future loadStatusFiles() async {
+ if (_isLoaded) {
+ return;
+ }
+
+ Map<String, Iterable<String>> suiteStatusFiles = {};
+
+ await Future.wait(testResult.configurations.keys.map((key) async {
+ Configuration configuration = testResult.configurations[key];
+ if (!configurationEnvironments.containsKey(key)) {
+ configurationEnvironments[configuration] =
+ new ConfigurationEnvironment(configuration);
+ }
+ // We allow overwriting, since status files for a suite does not change.
+ suiteStatusFiles.addAll(await statusFileListerMap(configuration));
+ }));
+
+ suiteStatusFiles.keys.forEach((suite) {
+ var statusFilePaths = suiteStatusFiles[suite].map((file) {
return "${PathHelper.sdkRepositoryRoot()}/$file";
}).where((sf) {
return new File(sf).existsSync();
}).toList();
- statusFilesMaps[key][suite] = StatusFiles.read(statusFilePaths);
+ statusFilesMaps[suite] = StatusFiles.read(statusFilePaths);
});
- }));
- List<TestExpectationResult> expectationResults = [];
- testResult.results.forEach((result) {
- try {
- ConfigurationEnvironment environment =
- configurationEnvironments[result.configuration];
- var testSuite = getSuiteNameForTest(result.name);
- StatusFiles expectationSuite =
- statusFilesMaps[result.configuration][testSuite];
- var qualifiedName = getQualifiedNameForTest(result.name);
- var statusFileEntries = expectationSuite.sectionsWithTestForConfiguration(
- environment, qualifiedName);
- expectationResults.add(new TestExpectationResult(statusFileEntries,
- result, testResult.configurations[result.configuration]));
- } catch (ex, st) {
- print(ex);
- print(st);
- }
- });
+ _isLoaded = true;
+ }
- return expectationResults;
+ /// Finds the expectation for each test found in the [testResult] results and
+ /// outputs if the test succeeded or failed. The status files must have been
+ /// loaded.
+ List<TestExpectationResult> getTestResultsWithExpectation() {
+ assert(_isLoaded);
+ List<TestExpectationResult> expectationResults = [];
+ testResult.results.forEach((result) {
+ try {
+ Configuration configuration =
+ testResult.configurations[result.configuration];
+ ConfigurationEnvironment environment =
+ configurationEnvironments[configuration];
+ var testSuite = getSuiteNameForTest(result.name);
+ StatusFiles expectationSuite = statusFilesMaps[testSuite];
+ var qualifiedName = getQualifiedNameForTest(result.name);
+ var statusFileEntries = expectationSuite
+ .sectionsWithTestForConfiguration(environment, qualifiedName);
+ expectationResults.add(new TestExpectationResult(
+ statusFileEntries, result, configuration));
+ } catch (ex) {}
+ });
+
+ return expectationResults;
+ }
}
/// [TestExpectationResult] contains information about the result of running a
@@ -87,7 +109,8 @@
return _isSuccess;
}
Expectation outcome = Expectation.find(result.result);
- Set<Expectation> testExpectations = _getTestExpectations();
+ Set<Expectation> testExpectations =
+ expectationsFromTest(result.testExpectations);
Set<Expectation> expectationSet = expectations();
_isSuccess = testExpectations.contains(outcome) ||
expectationSet.contains(Expectation.skip) ||
@@ -97,20 +120,20 @@
});
return _isSuccess;
}
+}
- Set<Expectation> _getTestExpectations() {
- if (result.testExpectations == null) {
- return new Set<Expectation>();
- }
- return result.testExpectations.map((exp) {
- if (exp == "static-type-warning") {
- return Expectation.staticWarning;
- } else if (exp == "runtime-error") {
- return Expectation.runtimeError;
- } else if (exp == "compile-time-error") {
- return Expectation.compileTimeError;
- }
- return null;
- }).toSet();
+Set<Expectation> expectationsFromTest(List<String> testExpectations) {
+ if (testExpectations == null) {
+ return new Set<Expectation>();
}
+ return testExpectations.map((exp) {
+ if (exp == "static-type-warning") {
+ return Expectation.staticWarning;
+ } else if (exp == "runtime-error") {
+ return Expectation.runtimeError;
+ } else if (exp == "compile-time-error") {
+ return Expectation.compileTimeError;
+ }
+ return null;
+ }).toSet();
}
diff --git a/tools/gardening/lib/src/results/status_files.dart b/tools/gardening/lib/src/results/status_files.dart
index 65e11cf..2494605 100644
--- a/tools/gardening/lib/src/results/status_files.dart
+++ b/tools/gardening/lib/src/results/status_files.dart
@@ -3,24 +3,28 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:gardening/src/results/configuration_environment.dart';
-import 'package:gardening/src/util.dart';
-import 'package:status_file/status_file.dart';
+import 'package:status_file/canonical_status_file.dart';
class StatusFiles {
Map<String, List<StatusSectionEntry>> _exactEntries = {};
Map<StatusSectionEntry, List<RegExp>> _wildcardEntries = {};
+ List<StatusSectionWithFile> _sections = [];
+ final List<StatusFile> statusFiles;
/// Constructs a [StatusFiles] from a list of status file paths.
static StatusFiles read(Iterable<String> files) {
- return new StatusFiles(files.map((file) {
+ var distinctFiles = new Set.from(files).toList();
+ return new StatusFiles(distinctFiles.map((file) {
return new StatusFile.read(file);
}).toList());
}
- StatusFiles(List<StatusFile> statusFiles) {
+ StatusFiles(this.statusFiles) {
for (var file in statusFiles) {
for (var section in file.sections) {
- for (var entry in section.entries) {
+ _sections.add(new StatusSectionWithFile(file, section));
+ for (StatusEntry entry
+ in section.entries.where((entry) => entry is StatusEntry)) {
var sectionEntry = new StatusSectionEntry(file, section, entry);
if (entry.path.contains("*")) {
_wildcardEntries[sectionEntry] = _processForMatching(entry.path);
@@ -34,20 +38,44 @@
/// Gets all section entries with test-expectations for a configuration
/// environment.
+ List<StatusSectionWithFile> sectionsForConfiguration(
+ ConfigurationEnvironment environment) {
+ return _sections.where((s) => s.section.isEnabled(environment)).toList();
+ }
+
+ /// Gets all section entries with test-expectations for a configuration
+ /// environment.
List<StatusSectionEntry> sectionsWithTestForConfiguration(
ConfigurationEnvironment environment, String testPath) {
+ return sectionsWithTest(testPath)
+ .where((entry) => entry.section.isEnabled(environment))
+ .toList();
+ }
+
+ /// Gets all section entries with test-expectations for a configuration
+ /// environment.
+ List<StatusSectionEntry> sectionsWithTest(String testPath) {
List<StatusSectionEntry> matchingEntries = <StatusSectionEntry>[];
if (_exactEntries.containsKey(testPath)) {
matchingEntries.addAll(_exactEntries[testPath]);
}
- // Test if it is a multi test.
- RegExp isMultiTestMatcher = new RegExp(r"^((.*)_(test|t\d+))\/[^\/]+$");
+ // Test if it is a multi test by matching finding the name of the test
+ // (either by the test name ending with _test/ or _t<nr>/ and cutting out
+ // the remaining, as long as it does not contain the word _test
+ RegExp isMultiTestMatcher = new RegExp(r"^((.*)_(test|t\d+))\/(.+)$");
Match isMultiTestMatch = isMultiTestMatcher.firstMatch(testPath);
if (isMultiTestMatch != null) {
String testFile = isMultiTestMatch.group(1);
if (_exactEntries.containsKey(testFile)) {
matchingEntries.addAll(_exactEntries[testFile]);
}
+ var multiTestParts = isMultiTestMatch.group(4).split('/');
+ for (var part in multiTestParts) {
+ testFile = "$testFile/$part";
+ if (_exactEntries.containsKey(testFile)) {
+ matchingEntries.addAll(_exactEntries[testFile]);
+ }
+ }
}
var parts = testPath.split('/');
@@ -59,9 +87,7 @@
matchingEntries.add(entry);
});
- return matchingEntries
- .where((entry) => entry.section.isEnabled(environment))
- .toList();
+ return matchingEntries;
}
/// Processes the expectations for matching against filenames. Generates
@@ -82,3 +108,11 @@
final StatusEntry entry;
StatusSectionEntry(this.statusFile, this.section, this.entry);
}
+
+/// [StatusSectionWithFile] holds information about a section and the status
+/// file it belongs to.
+class StatusSectionWithFile {
+ final StatusFile statusFile;
+ final StatusSection section;
+ StatusSectionWithFile(this.statusFile, this.section);
+}
diff --git a/tools/gardening/lib/src/results/test_result_helper.dart b/tools/gardening/lib/src/results/test_result_helper.dart
new file mode 100644
index 0000000..b394289
--- /dev/null
+++ b/tools/gardening/lib/src/results/test_result_helper.dart
@@ -0,0 +1,106 @@
+// 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.
+
+import 'dart:async';
+import 'dart:io';
+
+import '../luci.dart';
+import '../luci_api.dart';
+import '../util.dart';
+import 'result_json_models.dart';
+import 'test_result_service.dart';
+
+Future<TestResult> getTestResult(List<String> arguments) async {
+ if (isCqInput(arguments)) {
+ Iterable<BuildBucketTestResult> buildBucketTestResults =
+ await getTestResultsFromCq(arguments);
+ if (buildBucketTestResults != null) {
+ return buildBucketTestResults.fold<TestResult>(new TestResult(),
+ (combined, buildResult) => combined..combineWith([buildResult]));
+ }
+ } else {
+ return await getTestResultFromBuilder(arguments);
+ }
+ return null;
+}
+
+/// Utility method to get a single test-result no matter what has been passed in
+/// as arguments. The test-result can either be from a builder-group, a single
+/// build on a builder or from a log.
+Future<TestResult> getTestResultFromBuilder(List<String> arguments) async {
+ if (arguments.isEmpty) {
+ print("No result.log file given as argument.");
+ return null;
+ }
+
+ var logger = createLogger();
+ var cache = createCacheFunction(logger);
+ var testResultService = new TestResultService(logger, cache);
+
+ String firstArgument = arguments.first;
+
+ var luciApi = new LuciApi();
+ bool isBuilderGroup = (await getBuilderGroups(luciApi, DART_CLIENT, cache()))
+ .any((builder) => builder == firstArgument);
+ bool isBuilder = (await getAllBuilders(luciApi, DART_CLIENT, cache()))
+ .any((builder) => builder == firstArgument);
+
+ if (arguments.length == 1) {
+ if (arguments.first.startsWith("http")) {
+ return testResultService.fromLogdog(firstArgument);
+ } else if (isBuilderGroup) {
+ return testResultService.forBuilderGroup(firstArgument);
+ } else if (isBuilder) {
+ return testResultService.latestForBuilder(BUILDER_PROJECT, firstArgument);
+ }
+ }
+
+ var file = new File(arguments.first);
+ if (await file.exists()) {
+ return testResultService.getFromFile(file);
+ }
+
+ if (arguments.length == 2 && isBuilder && isNumber(arguments.last)) {
+ var buildNumber = int.parse(arguments.last);
+ return testResultService.forBuild(
+ BUILDER_PROJECT, firstArgument, buildNumber);
+ }
+
+ print("Too many arguments passed to command or arguments were incorrect.");
+ return null;
+}
+
+/// Utility method to get test results from the CQ.
+Future<Iterable<BuildBucketTestResult>> getTestResultsFromCq(
+ List<String> arguments) async {
+ if (arguments.isEmpty) {
+ print("No result.log file given as argument.");
+ return null;
+ }
+
+ var logger = createLogger();
+ var createCache = createCacheFunction(logger);
+ var testResultService = new TestResultService(logger, createCache);
+
+ String firstArgument = arguments.first;
+
+ if (arguments.length == 1) {
+ if (!isSwarmingTaskUrl(firstArgument)) {
+ print("URI does not match "
+ "`https://ci.chromium.org/swarming/task/<taskid>?server...`.");
+ return null;
+ }
+ String swarmingTaskId = getSwarmingTaskId(firstArgument);
+ return await testResultService.getFromSwarmingTaskId(swarmingTaskId);
+ }
+
+ if (arguments.length == 2 && areNumbers(arguments)) {
+ int changeNumber = int.parse(firstArgument);
+ int patchset = int.parse(arguments.last);
+ return await testResultService.fromGerrit(changeNumber, patchset);
+ }
+
+ print("Too many arguments passed to command or arguments were incorrect.");
+ return null;
+}
diff --git a/tools/gardening/lib/src/results/test_result_service.dart b/tools/gardening/lib/src/results/test_result_service.dart
index 017ff36..f6a56d7 100644
--- a/tools/gardening/lib/src/results/test_result_service.dart
+++ b/tools/gardening/lib/src/results/test_result_service.dart
@@ -6,7 +6,7 @@
import 'dart:async';
import 'dart:convert';
import 'dart:core';
-import 'result_models.dart';
+import 'result_json_models.dart';
import '../logger.dart';
import '../cache_new.dart';
import '../logdog.dart';
@@ -14,7 +14,6 @@
import '../luci_api.dart';
import '../luci.dart';
import '../buildbucket.dart';
-import 'util.dart';
import '../util.dart';
/// [TestResultService] provides functions to obtain [TestResult]s from logs.
@@ -166,7 +165,7 @@
TestResult result = steps.fold(new TestResult(), (acc, buildStep) {
return acc..combineWith([buildStep.testResult]);
});
- return new BuildBucketTestResult(build, result);
+ return new BuildBucketTestResult(build)..combineWith([result]);
});
}
@@ -228,10 +227,9 @@
}
/// Class that keeps track of a try build and the corresponding test result.
-class BuildBucketTestResult {
+class BuildBucketTestResult extends TestResult {
final BuildBucketBuild build;
- final TestResult testResult;
- BuildBucketTestResult(this.build, this.testResult);
+ BuildBucketTestResult(this.build);
}
/// Class that keeps track of a test step and test result.
diff --git a/tools/gardening/lib/src/results/testpy_wrapper.dart b/tools/gardening/lib/src/results/testpy_wrapper.dart
index 2ec633f..29fb99d 100644
--- a/tools/gardening/lib/src/results/testpy_wrapper.dart
+++ b/tools/gardening/lib/src/results/testpy_wrapper.dart
@@ -2,11 +2,9 @@
// 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:io';
import 'dart:async';
import 'package:path/path.dart' as path;
-import 'result_models.dart';
-import 'util.dart';
+import 'result_json_models.dart';
import '../util.dart';
/// Calls test.py with arguments gathered from a specific [configuration] and
diff --git a/tools/gardening/lib/src/results/util.dart b/tools/gardening/lib/src/results/util.dart
deleted file mode 100644
index b216948..0000000
--- a/tools/gardening/lib/src/results/util.dart
+++ /dev/null
@@ -1,92 +0,0 @@
-// 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.
-
-import 'result_models.dart';
-import 'dart:io';
-
-const String BUILDER_PROJECT = "chromium";
-
-/// [PathHelper] is a utility class holding information about static paths.
-class PathHelper {
- static String testPyPath() {
- var root = sdkRepositoryRoot();
- return "${root}/tools/test.py";
- }
-
- static String _sdkRepositoryRoot;
- static String sdkRepositoryRoot() {
- return _sdkRepositoryRoot ??=
- _findRoot(new Directory.fromUri(Platform.script));
- }
-
- static String _findRoot(Directory current) {
- if (current.path.endsWith("sdk")) {
- return current.path;
- }
- if (current.parent == null) {
- print("Could not find the dart sdk folder. "
- "Please run the tool in the root of the dart-sdk local repository.");
- exit(1);
- }
- return _findRoot(current.parent);
- }
-}
-
-/// Tests if all strings passed in [stringsToTest] are integers.
-bool areNumbers(Iterable<String> stringsToTest) {
- RegExp isNumberRegExp = new RegExp(r"^\d+$");
- return stringsToTest
- .every((string) => isNumberRegExp.firstMatch(string) != null);
-}
-
-bool isNumber(String stringToTest) {
- bool succeeded = true;
- int.parse(stringToTest, onError: (String) {
- succeeded = false;
- return 0;
- });
- return succeeded;
-}
-
-/// Gets if the [url] is a swarming task url.
-bool isSwarmingTaskUrl(String url) {
- return url.startsWith("https://ci.chromium.org/swarming");
-}
-
-/// Gets the swarming task id from the [url].
-String getSwarmingTaskId(String url) {
- RegExp swarmingTaskIdInPathRegExp =
- new RegExp(r"https:\/\/ci\.chromium\.org\/swarming\/task\/(.*)\?server");
- Match swarmingTaskIdMatch = swarmingTaskIdInPathRegExp.firstMatch(url);
- if (swarmingTaskIdMatch == null) {
- return null;
- }
- return swarmingTaskIdMatch.group(1);
-}
-
-/// Returns the test-suite for [name].
-String getSuiteNameForTest(String name) {
- var reg = new RegExp(r"^(.*?)\/.*$");
- var match = reg.firstMatch(name);
- if (match == null) {
- return null;
- }
- return match.group(1);
-}
-
-/// Returns the qualified name (what to use in status-files) for a test with
-/// [name].
-String getQualifiedNameForTest(String name) {
- if (name.startsWith("cc/")) {
- return name;
- }
- return name.substring(name.indexOf("/") + 1);
-}
-
-/// Returns the reproduction command for test.py based on the [configuration]
-/// and [name].
-String getReproductionCommand(Configuration configuration, String name) {
- var allArgs = configuration.toArgs(includeSelectors: false)..add(name);
- return "${PathHelper.testPyPath()} ${allArgs.join(' ')}";
-}
diff --git a/tools/gardening/lib/src/results_workflow/ask_for_logs.dart b/tools/gardening/lib/src/results_workflow/ask_for_logs.dart
new file mode 100644
index 0000000..0f6fe70
--- /dev/null
+++ b/tools/gardening/lib/src/results_workflow/ask_for_logs.dart
@@ -0,0 +1,82 @@
+// 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.
+
+import 'dart:async';
+
+import 'package:gardening/src/results/test_result_helper.dart';
+
+import 'present_failures.dart';
+import '../results/result_json_models.dart';
+import '../workflow.dart';
+
+class AskForLogs extends WorkflowStep {
+ List<TestResult> testResults = [];
+
+ @override
+ Future<WorkflowAction> onShow(payload) async {
+ // This is the first step, so payload is disregarded.
+ if (testResults.isEmpty) {
+ askForInputFirstTime();
+ // prefetch builders
+ } else {
+ askForInputOtherTimes();
+ }
+ return new WaitForInputWorkflowAction();
+ }
+
+ @override
+ Future<WorkflowAction> input(String input) async {
+ // No input entered.
+ if (input == null || input.isEmpty && testResults.length == 0) {
+ print("ERROR: Needs to add at least one result log.");
+ return new Future.value(new WaitForInputWorkflowAction());
+ }
+ // Navigate to next step.
+ if (input == null || input.isEmpty) {
+ return new Future.value(
+ new NavigateStepWorkflowAction(new PresentFailures(), testResults));
+ }
+ await getTestResult(input.split(' ')).then((testResult) {
+ if (testResult == null) {
+ print("ERROR: The input '$input' is invalid.");
+ } else {
+ testResults.add(testResult);
+ }
+ });
+ print("Add another log or press <Enter> to continue.");
+ return new Future.value(new WaitForInputWorkflowAction());
+ }
+
+ @override
+ Future<bool> onLeave() {
+ return new Future.value(false);
+ }
+
+ void askForInputFirstTime() {
+ print("The tool needs to lookup tests and their expectations to make "
+ "suggestions. The more data-points the tool can find, the better it "
+ "can report on potential changes to status files.");
+ print("");
+ print("IMPORTANT: If you experience failures on builders, the tool needs a "
+ "dimensionally close passing configuration, to compute a significant "
+ "difference. ");
+ print("For tests failures discovered locally, a similar configuration with "
+ "non-failing tests will often be available, confusing the tool. If you "
+ "are only relying on local changes, just add that single log and "
+ "continue.");
+ print("You can add test results by the following commands:");
+ print("<file> : for a local result.log file.\n"
+ "<uri_to_result_log> : for direct links to result.logs.\n"
+ "<uri_try_bot> : for links to try bot builders.\n"
+ "<commit_number> <patchset> : for links to try bot builders.\n"
+ "<builder> : for a builder name.\n"
+ "<builder> <build> : for a builder and build number.\n"
+ "<builder_group> : for a builder group.\n");
+ print("Input one of the above commands to add a log:");
+ }
+
+ void askForInputOtherTimes() {
+ print("Add additional logs or write <Enter> to continue.");
+ }
+}
diff --git a/tools/gardening/lib/src/results_workflow/fix_failing_test.dart b/tools/gardening/lib/src/results_workflow/fix_failing_test.dart
new file mode 100644
index 0000000..0dbacea
--- /dev/null
+++ b/tools/gardening/lib/src/results_workflow/fix_failing_test.dart
@@ -0,0 +1,412 @@
+// 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.
+
+import 'dart:async';
+import 'dart:io';
+
+import 'package:status_file/canonical_status_file.dart';
+import 'package:status_file/expectation.dart';
+import 'package:status_file/status_file_normalizer.dart';
+import 'package:status_file/src/expression.dart';
+
+import 'present_failures.dart';
+import '../results/result_json_models.dart';
+import '../results/failing_test.dart';
+import '../results/status_expectations.dart';
+import '../results/status_files.dart';
+import '../util.dart';
+import '../workflow.dart';
+
+final RegExp toggleSectionRegExp = new RegExp(r"^t(\d+)$");
+
+/// This is the main workflow step, where the user is asked what to do with the
+/// failure and input comments etc. For every test, [onShow] is called with the
+/// remaining tests including the one to work on.
+class FixFailingTest extends WorkflowStep<List<FailingTest>> {
+ final TestResult _testResult;
+ FixWorkingItem _currentWorkingItem;
+ List<FailingTest> _remainingTests;
+
+ // These fields are mutated to persist user input.
+ String _lastComment = null;
+ FixWorkingItem _lastWorkingItem;
+ List<StatusSectionWithFile> _customSections = [];
+ bool _fixIfPossible = false;
+
+ FixFailingTest(this._testResult);
+
+ @override
+ Future<WorkflowAction> onShow(List<FailingTest> payload) async {
+ if (payload.isEmpty) {
+ print("Finished updating status files from failing tests.");
+ print("Trying to find if any new errors have arised from the fixes.");
+ return new NavigateStepWorkflowAction(
+ new PresentFailures(), [_testResult]);
+ }
+ // We have to compute status files on every show, because we modify the
+ // status files on every fix.
+ var statusExpectations = new StatusExpectations(_testResult);
+ await statusExpectations.loadStatusFiles();
+
+ _remainingTests = payload.sublist(1);
+ var failingTest = payload.first;
+
+ if (!failingTest.stillFailing(statusExpectations)) {
+ return new NavigateStepWorkflowAction(this, _remainingTests);
+ }
+
+ _currentWorkingItem = new FixWorkingItem(failingTest.result.name,
+ failingTest, statusExpectations, _lastComment, this._customSections);
+ _currentWorkingItem.init();
+
+ if (_lastWorkingItem != null && _fixIfPossible) {
+ // Outcome may be larger from the previous one, but current newOutcome
+ // will always be a singleton list. So we check by matching first
+ // element.
+ var outcomeIsSame = _currentWorkingItem.newOutcome.first ==
+ _lastWorkingItem.newOutcome.first;
+ var lastConfigurations =
+ _lastWorkingItem.failingTest.failingConfigurations;
+ var currentConfigurations =
+ _currentWorkingItem.failingTest.failingConfigurations;
+ var sameConfigurations = lastConfigurations.length ==
+ currentConfigurations.length &&
+ lastConfigurations.every(
+ (configuration) => currentConfigurations.contains(configuration));
+ if (outcomeIsSame && sameConfigurations) {
+ _lastWorkingItem.currentSections.forEach((section) {
+ addExpressionToCustomSections(
+ section.section.condition, section.statusFile.path);
+ });
+ print("Auto-fixing ${_currentWorkingItem.name}");
+ await fixFailingTest();
+ return new NavigateStepWorkflowAction(this, _remainingTests);
+ }
+ }
+
+ print("");
+ print("${_remainingTests.length + 1} tests remaining.");
+ askAboutTest();
+
+ return new WaitForInputWorkflowAction();
+ }
+
+ @override
+ Future<WorkflowAction> input(String input) async {
+ bool error = false;
+ if (input.isEmpty) {
+ await fixFailingTest();
+ return new NavigateStepWorkflowAction(this, _remainingTests);
+ } else if (input == "a") {
+ // Add expression.
+ var expression = getNewExpressionFromCommandLine();
+ if (expression != null) {
+ var statusFile = getStatusFile(_currentWorkingItem);
+ addExpressionToCustomSections(expression, statusFile.path);
+ }
+ } else if (input == "c") {
+ // Change comment.
+ _currentWorkingItem.comment = getNewComment();
+ _lastComment = _currentWorkingItem.comment;
+ } else if (input == "f") {
+ // Fix failing tests and try to fix the coming ones.
+ _fixIfPossible = true;
+ await fixFailingTest();
+ return new NavigateStepWorkflowAction(this, _remainingTests);
+ } else if (input == "o") {
+ // Case change new outcome.
+ _currentWorkingItem.newOutcome = getNewOutcome();
+ } else if (input == "r") {
+ // Case reset.
+ _currentWorkingItem.init();
+ } else if (input == "s") {
+ // Case reset.
+ return new NavigateStepWorkflowAction(this, _remainingTests);
+ } else {
+ error = true;
+ }
+ var toggleMatch = toggleSectionRegExp.firstMatch(input);
+ if (toggleMatch != null) {
+ var index = int.parse(toggleMatch.group(1));
+ error = !_currentWorkingItem.toggleSection(index);
+ }
+ if (error) {
+ print("Input was not correct. Please try again.");
+ } else {
+ askAboutTest();
+ }
+ return new WaitForInputWorkflowAction();
+ }
+
+ @override
+ Future<bool> onLeave() {
+ return new Future.value(false);
+ }
+
+ /// Prints up to date data about [currentWorkItem] and gives information about
+ /// the commands that can be used.
+ void askAboutTest() {
+ _currentWorkingItem.printInfo();
+ print("");
+ print("To modify the above data, the following commands are available:");
+ print("<Enter> : Write new outcome to selected sections in status files.");
+ print("a : Add/Create section.");
+ print("c : Modify the comment.");
+ print("f : Write new outcome to selected sections in status files "
+ "and try to fix remaining tests 'the same way'.");
+ print("o : Modify outcomes.");
+ print("r : Reset to initial state.");
+ print("s : Skip this failure.");
+ print("ti : Toggle selection of section, where i is the index.");
+ }
+
+ /// Fixes the failing test based on the data in [_currentWorkingItem].
+ Future fixFailingTest() async {
+ // Delete all existing entries that are wrong.
+ var statusFiles = new Set<StatusFile>();
+ for (var statusEntry in _currentWorkingItem.statusEntries) {
+ statusEntry.section.entries.remove(statusEntry.entry);
+ statusFiles.add(statusEntry.statusFile);
+ }
+ // Add new expectations to status sections.
+ var path = getQualifiedNameForTest(_currentWorkingItem.name);
+ var expectations = _currentWorkingItem.newOutcome
+ .map((outcome) => Expectation.find(outcome))
+ .toList();
+ var comment = _currentWorkingItem.comment == null
+ ? null
+ : new Comment(_currentWorkingItem.comment);
+ var statusEntry = new StatusEntry(path, 0, expectations, comment);
+ for (var currentSection in _currentWorkingItem.currentSections) {
+ if (!currentSection.statusFile.sections
+ .contains(currentSection.section)) {
+ currentSection.statusFile.sections.add(currentSection.section);
+ }
+ currentSection.section.entries.add(statusEntry);
+ statusFiles.add(currentSection.statusFile);
+ }
+ // Save the modified status files.
+ for (var statusFile in statusFiles) {
+ var normalized = normalizeStatusFile(statusFile);
+ await new File(statusFile.path).writeAsString(normalized.toString());
+ }
+ _lastWorkingItem = _currentWorkingItem;
+ }
+
+ /// Tries to find a section with the [expression] in [statusFilePath]. If it
+ /// cannot find a section, it will create a new section. It selects the new
+ /// section on the [currentWorkItem].
+ void addExpressionToCustomSections(
+ Expression expression, String statusFilePath) {
+ expression = expression.normalize();
+ var statusFile = _currentWorkingItem
+ .statusFiles()
+ .firstWhere((statusFile) => statusFile.path == statusFilePath);
+ var sectionToAdd = statusFile.sections.firstWhere(
+ (section) =>
+ section.condition != null &&
+ section.condition.normalize().compareTo(expression) == 0,
+ orElse: () => null);
+ sectionToAdd ??= new StatusSection(expression, 0, []);
+ var section = new StatusSectionWithFile(statusFile, sectionToAdd);
+ // This mutates the
+ _customSections.add(section);
+ _currentWorkingItem.currentSections.add(section);
+ }
+}
+
+/// Gets a new [Expression] from the commandline. The expression is parsed to
+/// make sure it is syntactically correct. If no input is added it returns
+/// [null].
+Expression getNewExpressionFromCommandLine() {
+ print("Write a new status header expression - <Enter> to cancel:");
+ String input = stdin.readLineSync();
+ if (input.isEmpty) {
+ return null;
+ }
+ try {
+ return Expression.parse(input);
+ } catch (e) {
+ print(e);
+ return getNewExpressionFromCommandLine();
+ }
+}
+
+/// Gets a status file by finding the suite from [workingItem] and asks the
+/// user to pick the correct file.
+StatusFile getStatusFile(FixWorkingItem workingItem) {
+ var statusFiles = workingItem.statusFiles();
+ print("Which status file should the section be added to/exists in?");
+ int i = 0;
+ for (var statusFile in statusFiles) {
+ print(" ${i++}: ${statusFile.path}");
+ }
+ var input = stdin.readLineSync();
+ var index = int.parse(input, onError: (_) => null);
+ if (index >= 0 && index < statusFiles.length) {
+ return statusFiles[index];
+ }
+ print("Input was not between 0-$i. Please try again");
+ return getStatusFile(workingItem);
+}
+
+/// Gets a new outcome from the user. The input is a list of strings, but every
+/// element has been parsed to check if it is an expectation.
+List<String> getNewOutcome() {
+ print("Write new outcomes, separate by ',':");
+ String input = stdin.readLineSync();
+ try {
+ var newOutcomes =
+ input.split(",").map((outcome) => outcome.trim()).toList();
+ newOutcomes.forEach((name) => Expectation.find(name));
+ return newOutcomes;
+ } catch (e) {
+ print(e);
+ return getNewOutcome();
+ }
+}
+
+/// Gets a comment from the user. It automatically adds # if it is not entered
+/// and checks if the input is a number, by which it assumes it is an issue.
+String getNewComment() {
+ print("Write a new comment or github issue. Empty for no comment:");
+ String newComment = stdin.readLineSync();
+ if (newComment.isEmpty) {
+ return null;
+ }
+ if (int.parse(newComment, onError: (input) => null) != null) {
+ return "# Issue $newComment";
+ }
+ if (!newComment.startsWith("#")) {
+ newComment = "# $newComment";
+ }
+ return newComment;
+}
+
+/// [FixWorkingItem] holds the current data about what sections to update,
+/// what configurations are covered, the comment, the outcomes etc.
+class FixWorkingItem {
+ final String name;
+ final FailingTest failingTest;
+ final StatusExpectations statusExpectations;
+ final List<StatusSectionWithFile> customSections;
+
+ List<StatusSectionWithFile> currentSections;
+ List<SectionsSuggestion> suggestedSections;
+ List<String> newOutcome;
+ List<StatusSectionEntry> statusEntries;
+ String comment;
+
+ FixWorkingItem(this.name, this.failingTest, this.statusExpectations,
+ this.comment, this.customSections) {}
+
+ /// init resets all custom data to the standard values from the failing test,
+ /// except the comment and custom added sections.
+ void init() {
+ newOutcome = [failingTest.result.result];
+ statusEntries = failingTest.failingStatusEntries(statusExpectations);
+ suggestedSections = failingTest.computeSections(statusExpectations);
+ currentSections = [];
+ }
+
+ /// Gets the status files for the failing test.
+ List<StatusFile> statusFiles() {
+ return failingTest.statusFiles(statusExpectations);
+ }
+
+ /// Toggles the selection of a section by [index].
+ bool toggleSection(int index) {
+ var sections =
+ suggestedSections.expand((suggested) => suggested.sections).toList();
+ sections.addAll(customSections);
+ if (index < 0 || index >= sections.length) {
+ return false;
+ }
+ var section = sections[index];
+ if (currentSections.contains(section)) {
+ currentSections.remove(section);
+ } else {
+ currentSections.add(section);
+ }
+ return true;
+ }
+
+ /// Prints all information about the current working item.
+ void printInfo() {
+ print("");
+ print("--- ${name} ---");
+ print("New (o)utcome: ${newOutcome}");
+ print("Failing configurations (covered configurations marked by *):");
+ var failingNotCovered = failingTest.failingConfigurationsNotCovered(
+ statusExpectations, currentSections);
+ failingTest.failingConfigurations.forEach((configuration) {
+ String selected = !failingNotCovered.contains(configuration) ? "* " : "";
+ print(" $selected${configuration.toArgs(includeSelectors: false)}");
+ });
+ if (failingTest.passingConfigurations.isEmpty) {
+ print("Passing configurations: None");
+ } else {
+ var passingNotCovered = failingTest.failingConfigurationsNotCovered(
+ statusExpectations, currentSections);
+ print("Passing configurations (covered configurations marked by x - this "
+ "is generally not what you want):");
+ failingTest.passingConfigurations.forEach((configuration) {
+ String selected = passingNotCovered.contains(configuration) ? "x " : "";
+ print(" $selected${configuration.toArgs(includeSelectors: false)}");
+ });
+ }
+ var defaultExpectations =
+ expectationsFromTest(failingTest.result.testExpectations);
+ defaultExpectations.add(Expectation.pass);
+ // Is the outcome the default expectation, i.e. should all entries should be
+ // removed.
+ bool isDefaultExpectation = newOutcome.length == 1 &&
+ defaultExpectations.contains(Expectation.find(newOutcome.first));
+ if (isDefaultExpectation) {
+ print("The new outcome is the default expectation of the test file.");
+ } else {
+ _printSections();
+ }
+ if (statusEntries.isNotEmpty) {
+ print("Status entries to be deleted:");
+ _printStatusEntries(statusEntries);
+ }
+ print("Status entry (c)omment:");
+ if (comment != null) {
+ print(" ${comment}");
+ }
+ }
+
+ void _printSections() {
+ print("Sections to add the new outcome to. The selected sections are "
+ "marked by *:");
+ int groupCounter = "A".codeUnitAt(0);
+ ;
+ int sectionCounter = 0;
+ suggestedSections.forEach((suggestedSection) {
+ print(" ${new String.fromCharCode(groupCounter++)} "
+ "(${suggestedSection.strategy}):");
+ suggestedSection.sections
+ .forEach((section) => _printSection(section, sectionCounter++));
+ });
+ print(" ${new String.fromCharCode(groupCounter)}: Added sections");
+ customSections
+ .forEach((section) => _printSection(section, sectionCounter++));
+ }
+
+ void _printSection(StatusSectionWithFile section, int index) {
+ String selected = currentSections.contains(section) ? "* " : "";
+ print(" $selected${index}: ${section.statusFile.path}: "
+ "[ ${section.section.condition.toString()} ]");
+ }
+
+ void _printStatusEntries(List<StatusSectionEntry> entries) {
+ for (StatusSectionEntry entry in entries) {
+ print(" ${entry.statusFile.path}");
+ print(" [ ${entry.section.condition} ]");
+ print(" line ${entry.entry.lineNumber}: ${entry.entry.path} : "
+ "${entry.entry.expectations} ${entry.entry.comment ?? ""}");
+ }
+ }
+}
diff --git a/tools/gardening/lib/src/results_workflow/present_failures.dart b/tools/gardening/lib/src/results_workflow/present_failures.dart
new file mode 100644
index 0000000..db5f033
--- /dev/null
+++ b/tools/gardening/lib/src/results_workflow/present_failures.dart
@@ -0,0 +1,93 @@
+// 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.
+
+import 'dart:async';
+
+import 'fix_failing_test.dart';
+import '../results/result_json_models.dart';
+import '../results/status_expectations.dart';
+import '../results/failing_test.dart';
+import '../workflow.dart';
+
+class PresentFailures extends WorkflowStep {
+ PresentFailures();
+
+ TestResult testResult;
+ List<FailingTest> failingTests;
+
+ @override
+ Future<WorkflowAction> onShow(payload) async {
+ testResult =
+ (payload as List<TestResult>).reduce((t1, t2) => t1..combineWith([t2]));
+
+ failingTests = await groupFailingTests(testResult);
+
+ if (failingTests.isEmpty) {
+ print("No errors found.. Do you want to add more logs? (y)es or (n)o.");
+ return new WaitForInputWorkflowAction();
+ } else {
+ print("Found ${failingTests.length} status failures. If this number "
+ "seems weird or you find tests that seems to pass, check if your "
+ "branch is up to date.");
+ print("");
+ print("It can take some time navigating from tests to tests, since we "
+ "modify status files for each fix and have to reload them again.");
+ return new Future.value(new NavigateStepWorkflowAction(
+ new FixFailingTest(testResult), failingTests));
+ }
+ }
+
+ @override
+ Future<WorkflowAction> input(String input) {
+ if (input == "y") {
+ return new Future.value(new BackWorkflowAction());
+ }
+ }
+
+ @override
+ Future<bool> onLeave() {
+ return new Future.value(false);
+ }
+}
+
+/// Every failing test is converted to a [FailingTest] to allow grouping passing
+/// and failing configurations.
+Future<List<FailingTest>> groupFailingTests(TestResult testResult) async {
+ var statusExpectations = new StatusExpectations(testResult);
+ await statusExpectations.loadStatusFiles();
+ List<TestExpectationResult> results =
+ statusExpectations.getTestResultsWithExpectation();
+
+ List<TestExpectationResult> failing =
+ results.where((x) => !x.isSuccess()).toList();
+
+ // We group failing by their name and their new outcome.
+ var grouped = <String, List<FailingTest>>{};
+
+ // Add all failing tests configurations first.
+ for (var test in failing) {
+ var key = "${test.result.name}";
+ var failingTests = grouped.putIfAbsent(key, () => []);
+ var failingTest = failingTests.firstWhere(
+ (ft) => ft.result.result == test.result.result,
+ orElse: () => null);
+ if (failingTest == null) {
+ failingTest = new FailingTest(test.result, testResult, [], []);
+ failingTests.add(failingTest);
+ }
+ failingTest.failingConfigurations.add(test.configuration);
+ }
+
+ // Then add all other configurations, to tighten the bound on the failing
+ // configurations.
+ for (var result in results) {
+ if (result.isSuccess() && grouped.containsKey(result.result.name)) {
+ grouped[result.result.name].forEach((failingTest) =>
+ failingTest.passingConfigurations.add(result.configuration));
+ }
+ }
+
+ return grouped.values.expand((failingTests) => failingTests).toList()
+ ..sort((a, b) => a.result.name.compareTo(b.result.name));
+}
diff --git a/tools/gardening/lib/src/try.dart b/tools/gardening/lib/src/try.dart
index ebe8f09..32b47f2 100644
--- a/tools/gardening/lib/src/try.dart
+++ b/tools/gardening/lib/src/try.dart
@@ -2,8 +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:async';
-
/// [Try] is similar to Haskell monad, where
/// a computation may throw an exception.
/// There is no checking of passing null into
diff --git a/tools/gardening/lib/src/util.dart b/tools/gardening/lib/src/util.dart
index a608f62..d0b44cd 100644
--- a/tools/gardening/lib/src/util.dart
+++ b/tools/gardening/lib/src/util.dart
@@ -7,6 +7,7 @@
import 'dart:io';
import 'package:args/args.dart';
+import 'results/result_json_models.dart';
import 'cache.dart';
import 'cache_new.dart';
@@ -246,3 +247,100 @@
/// Regular expression matches a Linux or Windows new line character.
final RegExp newLine = new RegExp(r'\r\n|\n');
+
+/// Determine if arguments is a CQ url or commit-number + patchset.
+bool isCqInput(List<String> arguments) {
+ if (arguments.length == 1) {
+ return isSwarmingTaskUrl(arguments.first);
+ }
+ if (arguments.length == 2) {
+ return areNumbers(arguments);
+ }
+ return false;
+}
+
+const String BUILDER_PROJECT = "chromium";
+
+/// [PathHelper] is a utility class holding information about static paths.
+class PathHelper {
+ static String testPyPath() {
+ var root = sdkRepositoryRoot();
+ return "${root}/tools/test.py";
+ }
+
+ static String _sdkRepositoryRoot;
+ static String sdkRepositoryRoot() {
+ return _sdkRepositoryRoot ??=
+ _findRoot(new Directory.fromUri(Platform.script));
+ }
+
+ static String _findRoot(Directory current) {
+ if (current.path.endsWith("sdk")) {
+ return current.path;
+ }
+ if (current.parent == null) {
+ print("Could not find the dart sdk folder. "
+ "Please run the tool in the root of the dart-sdk local repository.");
+ exit(1);
+ }
+ return _findRoot(current.parent);
+ }
+}
+
+/// Tests if all strings passed in [stringsToTest] are integers.
+bool areNumbers(Iterable<String> stringsToTest) {
+ RegExp isNumberRegExp = new RegExp(r"^\d+$");
+ return stringsToTest
+ .every((string) => isNumberRegExp.firstMatch(string) != null);
+}
+
+bool isNumber(String stringToTest) {
+ bool succeeded = true;
+ int.parse(stringToTest, onError: (String) {
+ succeeded = false;
+ return 0;
+ });
+ return succeeded;
+}
+
+/// Gets if the [url] is a swarming task url.
+bool isSwarmingTaskUrl(String url) {
+ return url.startsWith("https://ci.chromium.org/swarming");
+}
+
+/// Gets the swarming task id from the [url].
+String getSwarmingTaskId(String url) {
+ RegExp swarmingTaskIdInPathRegExp =
+ new RegExp(r"https:\/\/ci\.chromium\.org\/swarming\/task\/(.*)\?server");
+ Match swarmingTaskIdMatch = swarmingTaskIdInPathRegExp.firstMatch(url);
+ if (swarmingTaskIdMatch == null) {
+ return null;
+ }
+ return swarmingTaskIdMatch.group(1);
+}
+
+/// Returns the test-suite for [name].
+String getSuiteNameForTest(String name) {
+ var reg = new RegExp(r"^(.*?)\/.*$");
+ var match = reg.firstMatch(name);
+ if (match == null) {
+ return null;
+ }
+ return match.group(1);
+}
+
+/// Returns the qualified name (what to use in status-files) for a test with
+/// [name].
+String getQualifiedNameForTest(String name) {
+ if (name.startsWith("cc/")) {
+ return name;
+ }
+ return name.substring(name.indexOf("/") + 1);
+}
+
+/// Returns the reproduction command for test.py based on the [configuration]
+/// and [name].
+String getReproductionCommand(Configuration configuration, String name) {
+ var allArgs = configuration.toArgs(includeSelectors: false)..add(name);
+ return "${PathHelper.testPyPath()} ${allArgs.join(' ')}";
+}
diff --git a/tools/gardening/lib/src/workflow/workflow.dart b/tools/gardening/lib/src/workflow.dart
similarity index 95%
rename from tools/gardening/lib/src/workflow/workflow.dart
rename to tools/gardening/lib/src/workflow.dart
index 0acd153..434572e 100644
--- a/tools/gardening/lib/src/workflow/workflow.dart
+++ b/tools/gardening/lib/src/workflow.dart
@@ -88,12 +88,13 @@
return _navigate(action.nextStep, action.payload);
} else if (action is BackWorkflowAction) {
await _navigateLeave();
- var lastStep = _lastSteps.removeLast();
- while (lastStep != null && lastStep is! ComputeStep) {
+ _lastSteps.removeLast();
+ var lastStep = _lastSteps.last;
+ while (_lastSteps.isNotEmpty && lastStep is ComputeStep) {
lastStep = _lastSteps.removeLast();
}
- if (currentStep != null) {
- return _handleWorkflowAction(await currentStep.onShow(null));
+ if (lastStep != null) {
+ return _handleWorkflowAction(await lastStep.onShow(null));
}
}
}
diff --git a/tools/testing/dart/command.dart b/tools/testing/dart/command.dart
index 835de90..0a25554 100644
--- a/tools/testing/dart/command.dart
+++ b/tools/testing/dart/command.dart
@@ -52,14 +52,14 @@
workingDirectory: workingDirectory);
}
- static Command kernelCompilation(
+ static Command vmKernelCompilation(
String outputFile,
bool neverSkipCompilation,
List<Uri> bootstrapDependencies,
String executable,
List<String> arguments,
Map<String, String> environment) {
- return new KernelCompilationCommand._(outputFile, neverSkipCompilation,
+ return new VMKernelCompilationCommand._(outputFile, neverSkipCompilation,
bootstrapDependencies, executable, arguments, environment);
}
@@ -282,15 +282,15 @@
deepJsonCompare(_bootstrapDependencies, other._bootstrapDependencies);
}
-class KernelCompilationCommand extends CompilationCommand {
- KernelCompilationCommand._(
+class VMKernelCompilationCommand extends CompilationCommand {
+ VMKernelCompilationCommand._(
String outputFile,
bool neverSkipCompilation,
List<Uri> bootstrapDependencies,
String executable,
List<String> arguments,
Map<String, String> environmentOverrides)
- : super._('dartk', outputFile, neverSkipCompilation,
+ : super._('vm_compile_to_kernel', outputFile, neverSkipCompilation,
bootstrapDependencies, executable, arguments, environmentOverrides);
int get maxNumRetries => 1;
diff --git a/tools/testing/dart/command_output.dart b/tools/testing/dart/command_output.dart
index f25f1e0..e5593be 100644
--- a/tools/testing/dart/command_output.dart
+++ b/tools/testing/dart/command_output.dart
@@ -108,6 +108,9 @@
/// Called when producing output for a test failure to describe this output.
void describe(Progress progress, OutputWriter output) {
+ output.subsection("exit code");
+ output.write(exitCode.toString());
+
if (diagnostics.isNotEmpty) {
output.subsection("diagnostics");
output.writeAll(diagnostics);
@@ -512,7 +515,7 @@
if (_result.browserOutput.stderr.isNotEmpty) {
output.subsection("Browser stderr");
- output.write(_result.browserOutput.stdout.toString());
+ output.write(_result.browserOutput.stderr.toString());
}
}
@@ -853,8 +856,8 @@
}
}
-class KernelCompilationCommandOutput extends CompilationCommandOutput {
- KernelCompilationCommandOutput(
+class VMKernelCompilationCommandOutput extends CompilationCommandOutput {
+ VMKernelCompilationCommandOutput(
Command command,
int exitCode,
bool timedOut,
@@ -885,7 +888,7 @@
}
/// If the compiler was able to produce a Kernel IR file we want to run the
- /// result on the Dart VM. We therefore mark the [KernelCompilationCommand]
+ /// result on the Dart VM. We therefore mark the [VMKernelCompilationCommand]
/// as successful.
///
/// This ensures we test that the DartVM produces correct CompileTime errors
@@ -951,8 +954,8 @@
} else if (command is VmCommand) {
return new VMCommandOutput(
command, exitCode, timedOut, stdout, stderr, time, pid);
- } else if (command is KernelCompilationCommand) {
- return new KernelCompilationCommandOutput(
+ } else if (command is VMKernelCompilationCommand) {
+ return new VMKernelCompilationCommandOutput(
command, exitCode, timedOut, stdout, stderr, time, compilationSkipped);
} else if (command is AdbPrecompilationCommand) {
return new VMCommandOutput(
diff --git a/tools/testing/dart/compiler_configuration.dart b/tools/testing/dart/compiler_configuration.dart
index c3b8d31..f5bb536 100644
--- a/tools/testing/dart/compiler_configuration.dart
+++ b/tools/testing/dart/compiler_configuration.dart
@@ -149,19 +149,26 @@
var buildDir = _configuration.buildDirectory;
var args = <String>[];
if (useDfe) {
- args.add('--dfe=${buildDir}/gen/kernel-service.dart.snapshot');
- args.add('--kernel-binaries=' +
- (_useSdk
- ? '${_configuration.buildDirectory}/dart-sdk/lib/_internal'
- : '${buildDir}'));
+ // DFE+strong configuration is a Dart 2.0 configuration which uses
+ // pkg/vm/tool/dart2 wrapper script, which takes care of passing
+ // correct arguments to VM binary. No need to pass any additional
+ // arguments.
+ if (!_isStrong) {
+ args.add('--dfe=${buildDir}/gen/kernel-service.dart.snapshot');
+ args.add('--kernel-binaries=' +
+ (_useSdk
+ ? '${_configuration.buildDirectory}/dart-sdk/lib/_internal'
+ : '${buildDir}'));
+ }
if (_isDebug) {
// Temporarily disable background compilation to avoid flaky crashes
// (see http://dartbug.com/30016 for details).
args.add('--no-background-compilation');
}
- }
- if (_isStrong) {
- args.add('--strong');
+ } else {
+ if (_isStrong) {
+ args.add('--strong');
+ }
}
if (_isChecked) {
args.add('--enable_asserts');
@@ -451,7 +458,8 @@
// computeCompilerArguments() to here seems hacky. Is there a cleaner way?
var sharedOptions = arguments.sublist(0, arguments.length - 1);
var inputFile = arguments.last;
- var outputFile = "$tempDir/${inputFile.replaceAll('.dart', '.js')}";
+ var inputFilename = (new Uri.file(inputFile)).pathSegments.last;
+ var outputFile = "$tempDir/${inputFilename.replaceAll('.dart', '.js')}";
return new CommandArtifact(
[createCommand(inputFile, outputFile, sharedOptions, environment)],
@@ -530,7 +538,8 @@
// computeCompilerArguments() to here seems hacky. Is there a cleaner way?
var sharedOptions = arguments.sublist(0, arguments.length - 1);
var inputFile = arguments.last;
- var outputFile = "$tempDir/${inputFile.replaceAll('.dart', '.js')}";
+ var inputFilename = (new Uri.file(inputFile)).pathSegments.last;
+ var outputFile = "$tempDir/${inputFilename.replaceAll('.dart', '.js')}";
return new CommandArtifact(
[createCommand(inputFile, outputFile, sharedOptions, environment)],
@@ -593,19 +602,19 @@
Command computeCompileToKernelCommand(String tempDir, List<String> arguments,
Map<String, String> environmentOverrides) {
- var buildDir = _configuration.buildDirectory;
- String exec = Platform.executable;
+ final genKernel =
+ Platform.script.resolve('../../../pkg/vm/tool/gen_kernel').toFilePath();
+ final dillFile = tempKernelFile(tempDir);
var args = [
'--packages=.packages',
- 'pkg/vm/bin/precompiler_kernel_front_end.dart',
- '--platform=${buildDir}/vm_platform_strong.dill',
+ '--aot',
+ '--platform=${_configuration.buildDirectory}/vm_platform_strong.dill',
'-o',
- tempKernelFile(tempDir),
+ dillFile,
];
- args.addAll(arguments.where((name) => name.endsWith('.dart')));
- return Command.compilation('compile_to_kernel', tempDir,
- bootstrapDependencies(), exec, args, environmentOverrides,
- alwaysCompile: !_useSdk);
+ args.add(arguments.where((name) => name.endsWith('.dart')).single);
+ return Command.vmKernelCompilation(dillFile, true, bootstrapDependencies(),
+ genKernel, args, environmentOverrides);
}
/// Creates a command to clean up large temporary kernel files.
@@ -795,7 +804,9 @@
args.add('--enable_asserts');
args.add('--enable_type_checks');
}
-
+ if (_isStrong) {
+ args.add('--strong');
+ }
var dir = artifact.filename;
if (runtimeConfiguration is DartPrecompiledAdbRuntimeConfiguration) {
// On android the precompiled snapshot will be pushed to a different
diff --git a/tools/testing/dart/configuration.dart b/tools/testing/dart/configuration.dart
index 1eaa8f4..cd1be47 100644
--- a/tools/testing/dart/configuration.dart
+++ b/tools/testing/dart/configuration.dart
@@ -78,7 +78,8 @@
this.builderTag,
this.outputDirectory,
this.reproducingArguments,
- this.fastTestsOnly})
+ this.fastTestsOnly,
+ this.printPassingStdout})
: _packages = packages,
_timeout = timeout;
@@ -122,6 +123,7 @@
final bool writeDebugLog;
final bool writeTestOutcomeLog;
final bool writeResultLog;
+ final bool printPassingStdout;
// Various file paths.
@@ -173,6 +175,13 @@
return _servers;
}
+ /// Returns true if this configuration is considered Dart 2.0 configuration
+ /// by VM (which is identified by using common front-end and strong mode).
+ /// In this case instead of invoking VM binary directly we use
+ /// pkg/vm/tool/dart2 wrapper script, which takes care of passing
+ /// correct arguments to VM binary.
+ bool get usingDart2VMWrapper => isStrong && compiler == Compiler.dartk;
+
/// The base directory named for this configuration, like:
///
/// none_vm_release_x64
diff --git a/tools/testing/dart/options.dart b/tools/testing/dart/options.dart
index 18b6315..451d8d7 100644
--- a/tools/testing/dart/options.dart
+++ b/tools/testing/dart/options.dart
@@ -307,6 +307,9 @@
false positves and negatives, but can be useful for quick and
dirty offline testing when not making changes that affect the
compiler.''',
+ hide: true),
+ new _Option.bool('print_passing_stdout',
+ 'Print the stdout of passing, as well as failing, tests.',
hide: true)
];
@@ -676,7 +679,8 @@
builderTag: data["builder_tag"] as String,
outputDirectory: data["output_directory"] as String,
reproducingArguments: _reproducingCommand(data),
- fastTestsOnly: data["fast_tests"] as bool);
+ fastTestsOnly: data["fast_tests"] as bool,
+ printPassingStdout: data["print_passing_stdout"] as bool);
if (configuration.validate()) {
result.add(configuration);
diff --git a/tools/testing/dart/test_configurations.dart b/tools/testing/dart/test_configurations.dart
index 99acbd2..34c9527 100644
--- a/tools/testing/dart/test_configurations.dart
+++ b/tools/testing/dart/test_configurations.dart
@@ -231,6 +231,9 @@
var printFailureSummary = progressIndicator != Progress.buildbot;
eventListener.add(new TestFailurePrinter(printFailureSummary, formatter));
}
+ if (firstConf.printPassingStdout) {
+ eventListener.add(new PassingStdoutPrinter(formatter));
+ }
eventListener.add(ProgressIndicator.fromProgress(
progressIndicator, startTime, formatter));
if (printTiming) {
diff --git a/tools/testing/dart/test_progress.dart b/tools/testing/dart/test_progress.dart
index 1066681..fb56beb 100644
--- a/tools/testing/dart/test_progress.dart
+++ b/tools/testing/dart/test_progress.dart
@@ -434,6 +434,31 @@
}
}
+class PassingStdoutPrinter extends EventListener {
+ final Formatter _formatter;
+ final _failureSummary = <String>[];
+
+ PassingStdoutPrinter([this._formatter = Formatter.normal]);
+
+ void done(TestCase test) {
+ if (!test.unexpectedOutput) {
+ var lines = <String>[];
+ var output = new OutputWriter(_formatter, lines);
+ for (final command in test.commands) {
+ var commandOutput = test.commandOutputs[command];
+ if (commandOutput == null) continue;
+
+ commandOutput.describe(test.configuration.progress, output);
+ }
+ for (var line in lines) {
+ print(line);
+ }
+ }
+ }
+
+ void allDone() {}
+}
+
class ProgressIndicator extends EventListener {
ProgressIndicator(this._startTime);
diff --git a/tools/testing/dart/test_runner.dart b/tools/testing/dart/test_runner.dart
index 4cdfe6d..ac8b5df 100644
--- a/tools/testing/dart/test_runner.dart
+++ b/tools/testing/dart/test_runner.dart
@@ -1145,10 +1145,10 @@
Future<CommandOutput> _runCommand(Command command, int timeout) {
if (command is BrowserTestCommand) {
return _startBrowserControllerTest(command, timeout);
- } else if (command is KernelCompilationCommand) {
- // For now, we always run dartk in batch mode.
+ } else if (command is VMKernelCompilationCommand) {
+ // For now, we always run vm_compile_to_kernel in batch mode.
var name = command.displayName;
- assert(name == 'dartk');
+ assert(name == 'vm_compile_to_kernel');
return _getBatchRunner(name)
.runCommand(name, command, timeout, command.arguments);
} else if (command is CompilationCommand &&
@@ -1331,7 +1331,7 @@
// The dartk batch compiler sometimes runs out of memory. In such a case we
// will retry running it.
- if (command is KernelCompilationCommand) {
+ if (command is VMKernelCompilationCommand) {
if (output.hasCrashed) {
bool containsOutOfMemoryMessage(String line) {
return line.contains('Exhausted heap space, trying to allocat');
diff --git a/tools/testing/dart/test_suite.dart b/tools/testing/dart/test_suite.dart
index bcdd9d0..0b9cb56 100644
--- a/tools/testing/dart/test_suite.dart
+++ b/tools/testing/dart/test_suite.dart
@@ -164,6 +164,14 @@
// Controlled by user with the option "--dart".
var dartExecutable = configuration.dartPath;
+ if (configuration.usingDart2VMWrapper) {
+ if (dartExecutable != null) {
+ throw 'Can not use --dart when testing Dart 2.0 configuration';
+ }
+
+ dartExecutable = 'pkg/vm/tool/dart2';
+ }
+
if (dartExecutable == null) {
var suffix = executableBinarySuffix;
dartExecutable = useSdk
@@ -815,7 +823,8 @@
// turn on reified generics in the VM.
// Note that VMOptions=--no-reify-generic-functions in test is ignored.
// Also, enable Dart 2.0 fixed-size integers with --limit-ints-to-64-bits.
- if (suiteName.endsWith("_2")) {
+ // Dart 2 VM wrapper (pkg/vm/tool/dart2) already passes correct arguments.
+ if (suiteName.endsWith("_2") && !configuration.usingDart2VMWrapper) {
allVmOptions = allVmOptions.toList()
..add("--reify-generic-functions")
..add("--limit-ints-to-64-bits");