Version 2.0.0-dev.40.0
Merge commit '581c512345da309711369ce3878bb45119a0e732' into dev
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 48ec197..1522229 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,5 @@
+## 2.0.0-dev.40.0
+
## 2.0.0-dev.39.0
### Tool Changes
#### Pub
@@ -227,6 +229,7 @@
`timeout`.
* `Stdin.hasTerminal` added, which is true if stdin is attached to a terminal.
* `WebSocket` added static `userAgent` property.
+ * `RandomAccessFile.close` returns `Future<void>`
* `dart:isolate`
@@ -274,22 +277,36 @@
### Tool Changes
-* Analyzer
+#### Analyzer
- * The analyzer will no longer issue a warning when a generic type parameter
- is used as the type in an instance check. For example:
+* The analyzer will no longer issue a warning when a generic type parameter
+ is used as the type in an instance check. For example:
+
+ ```dart
+ test<T>() {
+ print(3 is T); // No warning
+ }
+ ```
+
+* New static checking of `@visibleForTesting` elements. Accessing a method,
+ function, class, etc. annotated with `@visibleForTesting` from a file _not_
+ in a `test/` directory will result in a new hint ([issue 28273]).
+* Static analysis now respects functions annotated with `@alwaysThrows`
+ ([issue 31384]).
+* New hints added:
+ * `NULL_AWARE_BEFORE_OPERATOR` when an operator is used after a null-aware
+ access. For example:
```dart
- test<T>() {
- print(3 is T); // No warning
- }
+ x?.a - ''; // HINT
```
- * New static checking of `@visibleForTesting` elements. Accessing a method,
- function, class, etc. annotated with `@visibleForTesting` from a file _not_
- in a `test/` directory will result in a new hint ([issue 28273]).
- * Static analysis now respects functions annotated with `@alwaysThrows`
- ([issue 31384]).
+ * `NULL_AWARE_IN_LOGICAL_OPERATOR` when an expression with null-aware access
+ is used as a condition in logical operators. For example:
+
+ ```dart
+ x.a || x?.b; // HINT
+ ```
[issue 28273]: https://github.com/dart-lang/sdk/issues/28273
[issue 31384]: https://github.com/dart-lang/sdk/issues/31384
diff --git a/DEPS b/DEPS
index 1c46318..e30ca30 100644
--- a/DEPS
+++ b/DEPS
@@ -94,7 +94,7 @@
"http_retry_tag": "@0.1.0",
"http_tag" : "@0.11.3+16",
"http_throttle_tag" : "@1.0.1",
- "idl_parser_rev": "@7fbe68cab90c38147dee4f48c30ad0d496c17915",
+ "idl_parser_rev": "@5fb1ebf49d235b5a70c9f49047e83b0654031eb7",
"intl_tag": "@0.15.2",
"isolate_tag": "@1.1.0",
"jinja2_rev": "@2222b31554f03e62600cd7e383376a7c187967a1",
@@ -143,7 +143,7 @@
"utf_tag": "@0.9.0+4",
"watcher_tag": "@0.9.7+7",
"web_socket_channel_tag": "@1.0.7",
- "WebCore_rev": "@3c45690813c112373757bbef53de1602a62af609",
+ "WebCore_rev": "@fb11e887f77919450e497344da570d780e078bc8",
"yaml_tag": "@2.1.13",
"zlib_rev": "@c3d0a6190f2f8c924a05ab6cc97b8f975bddd33f",
}
diff --git a/pkg/analysis_server/benchmark/integration/main.dart b/pkg/analysis_server/benchmark/integration/main.dart
index 0760b17..a84e913 100644
--- a/pkg/analysis_server/benchmark/integration/main.dart
+++ b/pkg/analysis_server/benchmark/integration/main.dart
@@ -75,9 +75,8 @@
help: '<filePath>\n'
'The input file specifying how this client should interact with the server.\n'
'If the input file name is "stdin", then the instructions are read from standard input.');
- _argParser.addOption(MAP_OPTION,
+ _argParser.addMultiOption(MAP_OPTION,
abbr: 'm',
- allowMultiple: true,
splitCommas: false,
help: '<oldSrcPath>,<newSrcPath>\n'
'This option defines a mapping from the original source directory <oldSrcPath>\n'
diff --git a/pkg/analysis_server/benchmark/perf/analysis_timing_tests.dart b/pkg/analysis_server/benchmark/perf/analysis_timing_tests.dart
index 7933045..fb60e43 100644
--- a/pkg/analysis_server/benchmark/perf/analysis_timing_tests.dart
+++ b/pkg/analysis_server/benchmark/perf/analysis_timing_tests.dart
@@ -52,8 +52,8 @@
String source;
ArgParser _createArgParser() => new ArgParser()
- ..addOption(METRIC_NAME_OPTION,
- help: 'metric name (defaults to `analysis`)', allowMultiple: true)
+ ..addMultiOption(METRIC_NAME_OPTION,
+ help: 'metric name (defaults to `analysis`)')
..addOption(SOURCE_OPTION, help: 'full path to source directory for analysis')
..addOption(PRIORITY_FILE_OPTION,
help: '(optional) full path to a priority file');
diff --git a/pkg/analysis_server/lib/src/flutter/flutter_outline_computer.dart b/pkg/analysis_server/lib/src/flutter/flutter_outline_computer.dart
index 25dfe13..f786479 100644
--- a/pkg/analysis_server/lib/src/flutter/flutter_outline_computer.dart
+++ b/pkg/analysis_server/lib/src/flutter/flutter_outline_computer.dart
@@ -68,6 +68,7 @@
// Compute instrumented code.
if (widgets.isNotEmpty) {
+ _rewriteRelativeDirectives();
instrumentationEdits.sort((a, b) => b.offset - a.offset);
instrumentedCode =
SourceEdit.applySequence(content, instrumentationEdits);
@@ -339,6 +340,25 @@
}
return node.toString();
}
+
+ /// The instrumented code is put into a temporary directory for Dart VM to
+ /// run. So, any relative URIs must be changed to corresponding absolute URIs.
+ void _rewriteRelativeDirectives() {
+ for (var directive in unit.directives) {
+ if (directive is UriBasedDirective) {
+ String uriContent = directive.uriContent;
+ Source source = directive.uriSource;
+ if (uriContent != null && source != null) {
+ try {
+ if (!Uri.parse(uriContent).isAbsolute) {
+ instrumentationEdits.add(new SourceEdit(directive.uri.offset,
+ directive.uri.length, "'${source.uri}'"));
+ }
+ } on FormatException {}
+ }
+ }
+ }
+ }
}
class _FlutterOutlineBuilder extends GeneralizingAstVisitor<void> {
diff --git a/pkg/analysis_server/lib/src/server/driver.dart b/pkg/analysis_server/lib/src/server/driver.dart
index 3f35824..8ae5367 100644
--- a/pkg/analysis_server/lib/src/server/driver.dart
+++ b/pkg/analysis_server/lib/src/server/driver.dart
@@ -72,8 +72,7 @@
List<String> allowed,
Map<String, String> allowedHelp,
String defaultsTo,
- void callback(value),
- bool allowMultiple: false}) {
+ void callback(value)}) {
_knownFlags.add(name);
_parser.addOption(name,
abbr: abbr,
@@ -81,8 +80,7 @@
allowed: allowed,
allowedHelp: allowedHelp,
defaultsTo: defaultsTo,
- callback: callback,
- allowMultiple: allowMultiple);
+ callback: callback);
}
/// Generates a string displaying usage information for the defined options.
@@ -318,6 +316,8 @@
analysisServerOptions.cacheFolder = results[CACHE_FOLDER];
if (results.wasParsed(PREVIEW_DART2)) {
analysisServerOptions.previewDart2 = results[PREVIEW_DART2];
+ } else {
+ analysisServerOptions.previewDart2 = true;
}
analysisServerOptions.useCFE = results[USE_CFE];
diff --git a/pkg/analysis_server/lib/src/services/completion/dart/override_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/override_contributor.dart
index 3f9c444..e31866b 100644
--- a/pkg/analysis_server/lib/src/services/completion/dart/override_contributor.dart
+++ b/pkg/analysis_server/lib/src/services/completion/dart/override_contributor.dart
@@ -101,6 +101,9 @@
}
SourceRange selectionRange = builder.selectionRange;
+ if (selectionRange == null) {
+ return null;
+ }
int offsetDelta = targetId.offset + replacement.indexOf(completion);
String displayText =
displayTextBuffer.isNotEmpty ? displayTextBuffer.toString() : null;
diff --git a/pkg/analysis_server/lib/src/services/correction/assist_internal.dart b/pkg/analysis_server/lib/src/services/correction/assist_internal.dart
index ce3e78b..446edf9 100644
--- a/pkg/analysis_server/lib/src/services/correction/assist_internal.dart
+++ b/pkg/analysis_server/lib/src/services/correction/assist_internal.dart
@@ -2973,7 +2973,7 @@
/// does not export a class with such name.
Future<ClassElement> _getExportedClass(
String libraryUri, String className) async {
- var libraryElement = await _getLibraryByUri(libraryUri);
+ var libraryElement = await session.getLibraryByUri(libraryUri);
var element = libraryElement.exportNamespace.get(className);
if (element is ClassElement) {
return element;
@@ -2982,34 +2982,6 @@
}
}
- /// Return the [LibraryElement] for the library with the given [uri].
- Future<LibraryElement> _getLibraryByUri(String uri) async {
- var libraryElement = libraryCache[uri];
- if (libraryElement == null) {
- void walkLibraries(LibraryElement library) {
- var libraryUri = library.source.uri.toString();
- if (libraryCache[libraryUri] == null) {
- libraryCache[libraryUri] = library;
- library.importedLibraries.forEach(walkLibraries);
- library.exportedLibraries.forEach(walkLibraries);
- }
- }
-
- // Fill the cache with all libraries referenced from the unit.
- walkLibraries(unitLibraryElement);
-
- // The library might be already in the cache.
- libraryElement = libraryCache[uri];
-
- // If still not found, build a new library element.
- if (libraryElement == null) {
- libraryElement = await session.getLibraryByUri(uri);
- libraryCache[uri] = libraryElement;
- }
- }
- return libraryElement;
- }
-
/**
* Returns the text of the given node in the unit.
*/
diff --git a/pkg/analysis_server/lib/src/services/correction/fix.dart b/pkg/analysis_server/lib/src/services/correction/fix.dart
index dd3dc19..a2bfe33 100644
--- a/pkg/analysis_server/lib/src/services/correction/fix.dart
+++ b/pkg/analysis_server/lib/src/services/correction/fix.dart
@@ -89,6 +89,8 @@
class DartFixKind {
static const ADD_ASYNC =
const FixKind('ADD_ASYNC', 50, "Add 'async' modifier");
+ static const ADD_EXPLICIT_CAST =
+ const FixKind('ADD_EXPLICIT_CAST', 50, "Add cast");
static const ADD_FIELD_FORMAL_PARAMETERS = const FixKind(
'ADD_FIELD_FORMAL_PARAMETERS', 30, "Add final field formal parameters");
static const ADD_MISSING_PARAMETER_POSITIONAL = const FixKind(
@@ -211,6 +213,8 @@
'REMOVE_UNUSED_CATCH_STACK', 50, "Remove unused stack trace variable");
static const REMOVE_UNUSED_IMPORT =
const FixKind('REMOVE_UNUSED_IMPORT', 50, "Remove unused import");
+ static const RENAME_TO_CAMEL_CASE =
+ const FixKind('RENAME_TO_CAMEL_CASE', 50, "Rename to '{0}'");
static const REPLACE_BOOLEAN_WITH_BOOL = const FixKind(
'REPLACE_BOOLEAN_WITH_BOOL', 50, "Replace 'boolean' with 'bool'");
static const REPLACE_FINAL_WITH_CONST = const FixKind(
diff --git a/pkg/analysis_server/lib/src/services/correction/fix_internal.dart b/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
index c5340dc..7c28a08 100644
--- a/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
+++ b/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
@@ -364,6 +364,7 @@
await _addFix_useStaticAccess_property();
}
if (errorCode == StaticTypeWarningCode.INVALID_ASSIGNMENT) {
+ await _addFix_addExplicitCast();
await _addFix_changeTypeAnnotation();
}
if (errorCode == StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION) {
@@ -447,6 +448,9 @@
if (name == LintNames.empty_statements) {
await _addFix_removeEmptyStatement();
}
+ if (name == LintNames.non_constant_identifier_names) {
+ await _addFix_renameToCamelCase();
+ }
if (name == LintNames.prefer_collection_literals) {
await _addFix_replaceWithLiteral();
}
@@ -497,6 +501,80 @@
}
}
+ Future<Null> _addFix_addExplicitCast() async {
+ if (coveredNode is! Expression) {
+ return;
+ }
+ Expression target = coveredNode;
+ DartType fromType = target.staticType;
+ DartType toType;
+ AstNode parent = target.parent;
+ if (parent is AssignmentExpression && target == parent.rightHandSide) {
+ toType = parent.leftHandSide.staticType;
+ } else if (parent is VariableDeclaration && target == parent.initializer) {
+ toType = parent.name.staticType;
+ } else {
+ return;
+ }
+ // TODO(brianwilkerson) I think it's more efficient to invoke `cast` before
+ // invoking `toList()`, so check to see whether the cast should be inserted
+ // before the end of the expression.
+ // TODO(brianwilkerson) We should not produce a fix if the target is an
+ // invocation of the `cast` method.
+ bool needsParentheses = target.precedence < 15;
+ if ((_isDartCoreList(fromType) && _isDartCoreList(toType)) ||
+ (_isDartCoreSet(fromType) && _isDartCoreSet(toType))) {
+ DartChangeBuilder changeBuilder = new DartChangeBuilder(session);
+ await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
+ if (needsParentheses) {
+ builder.addSimpleInsertion(target.offset, '(');
+ }
+ builder.addInsertion(target.end, (DartEditBuilder builder) {
+ if (needsParentheses) {
+ builder.write(')');
+ }
+ builder.write('.cast<');
+ builder.writeType((toType as InterfaceType).typeArguments[0]);
+ builder.write('>()');
+ });
+ });
+ _addFixFromBuilder(changeBuilder, DartFixKind.ADD_EXPLICIT_CAST);
+ } else if (_isDartCoreMap(fromType) && _isDartCoreMap(toType)) {
+ DartChangeBuilder changeBuilder = new DartChangeBuilder(session);
+ await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
+ if (needsParentheses) {
+ builder.addSimpleInsertion(target.offset, '(');
+ }
+ builder.addInsertion(target.end, (DartEditBuilder builder) {
+ if (needsParentheses) {
+ builder.write(')');
+ }
+ builder.write('.cast<');
+ builder.writeType((toType as InterfaceType).typeArguments[0]);
+ builder.write(', ');
+ builder.writeType((toType as InterfaceType).typeArguments[1]);
+ builder.write('>()');
+ });
+ });
+ _addFixFromBuilder(changeBuilder, DartFixKind.ADD_EXPLICIT_CAST);
+ } else {
+ DartChangeBuilder changeBuilder = new DartChangeBuilder(session);
+ await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
+ if (needsParentheses) {
+ builder.addSimpleInsertion(target.offset, '(');
+ }
+ builder.addInsertion(target.end, (DartEditBuilder builder) {
+ if (needsParentheses) {
+ builder.write(')');
+ }
+ builder.write(' as ');
+ builder.writeType(toType);
+ });
+ });
+ _addFixFromBuilder(changeBuilder, DartFixKind.ADD_EXPLICIT_CAST);
+ }
+ }
+
Future<Null> _addFix_addMissingMethodCall() async {
ClassDeclaration targetClass = node.parent as ClassDeclaration;
int insertOffset = targetClass.end - 1;
@@ -2362,6 +2440,47 @@
_addFixFromBuilder(changeBuilder, DartFixKind.REMOVE_UNUSED_IMPORT);
}
+ Future<Null> _addFix_renameToCamelCase() async {
+ if (node is! SimpleIdentifier) {
+ return;
+ }
+ SimpleIdentifier identifier = this.node;
+
+ // Prepare the new name.
+ List<String> words = identifier.name.split('_');
+ if (words.length < 2) {
+ return;
+ }
+ var newName = words.first + words.skip(1).map((w) => capitalize(w)).join();
+
+ // Find references to the identifier.
+ List<SimpleIdentifier> references;
+ Element element = identifier.staticElement;
+ if (element is LocalVariableElement) {
+ AstNode root = node.getAncestor((node) => node is Block);
+ references = findLocalElementReferences(root, element);
+ } else if (element is ParameterElement) {
+ if (!element.isNamed) {
+ AstNode root = node.getAncestor((node) =>
+ node.parent is ClassDeclaration || node.parent is CompilationUnit);
+ references = findLocalElementReferences(root, element);
+ }
+ }
+ if (references == null) {
+ return;
+ }
+
+ // Compute the change.
+ DartChangeBuilder changeBuilder = new DartChangeBuilder(session);
+ await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
+ for (var reference in references) {
+ builder.addSimpleReplacement(range.node(reference), newName);
+ }
+ });
+ _addFixFromBuilder(changeBuilder, DartFixKind.RENAME_TO_CAMEL_CASE,
+ args: [newName]);
+ }
+
Future<Null> _addFix_replaceFinalWithConst() async {
if (node is VariableDeclarationList) {
DartChangeBuilder changeBuilder = new DartChangeBuilder(session);
@@ -3309,6 +3428,39 @@
return node is SimpleIdentifier && node.name == 'await';
}
+ bool _isDartCoreList(DartType type) {
+ if (type is! InterfaceType) {
+ return false;
+ }
+ ClassElement element = type.element;
+ if (element == null) {
+ return false;
+ }
+ return element.name == "List" && element.library.isDartCore;
+ }
+
+ bool _isDartCoreMap(DartType type) {
+ if (type is! InterfaceType) {
+ return false;
+ }
+ ClassElement element = type.element;
+ if (element == null) {
+ return false;
+ }
+ return element.name == "Map" && element.library.isDartCore;
+ }
+
+ bool _isDartCoreSet(DartType type) {
+ if (type is! InterfaceType) {
+ return false;
+ }
+ ClassElement element = type.element;
+ if (element == null) {
+ return false;
+ }
+ return element.name == "Set" && element.library.isDartCore;
+ }
+
bool _isLibSrcPath(String path) {
List<String> parts = resourceProvider.pathContext.split(path);
for (int i = 0; i < parts.length - 2; i++) {
@@ -3435,6 +3587,8 @@
static const String empty_catches = 'empty_catches';
static const String empty_constructor_bodies = 'empty_constructor_bodies';
static const String empty_statements = 'empty_statements';
+ static const String non_constant_identifier_names =
+ 'non_constant_identifier_names';
static const String prefer_collection_literals = 'prefer_collection_literals';
static const String prefer_conditional_assignment =
'prefer_conditional_assignment';
diff --git a/pkg/analysis_server/lib/src/services/correction/util.dart b/pkg/analysis_server/lib/src/services/correction/util.dart
index 1347247..71dd8c0 100644
--- a/pkg/analysis_server/lib/src/services/correction/util.dart
+++ b/pkg/analysis_server/lib/src/services/correction/util.dart
@@ -144,6 +144,16 @@
}
/**
+ * Return references to the [element] inside the [root] node.
+ */
+List<SimpleIdentifier> findLocalElementReferences(
+ AstNode root, LocalElement element) {
+ var collector = new _ElementReferenceCollector(element);
+ root.accept(collector);
+ return collector.references;
+}
+
+/**
* TODO(scheglov) replace with nodes once there will be [CompilationUnit.getComments].
*
* Returns [SourceRange]s of all comments in [unit].
@@ -1463,6 +1473,20 @@
}
}
+class _ElementReferenceCollector extends RecursiveAstVisitor<void> {
+ final Element element;
+ final List<SimpleIdentifier> references = [];
+
+ _ElementReferenceCollector(this.element);
+
+ @override
+ void visitSimpleIdentifier(SimpleIdentifier node) {
+ if (node.staticElement == element) {
+ references.add(node);
+ }
+ }
+}
+
class _ImportDirectiveInfo {
final String uri;
final int offset;
diff --git a/pkg/analysis_server/test/integration/analysis/get_hover_test.dart b/pkg/analysis_server/test/integration/analysis/get_hover_test.dart
index f9a45f6..487a4ac 100644
--- a/pkg/analysis_server/test/integration/analysis/get_hover_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/get_hover_test.dart
@@ -108,7 +108,6 @@
expect(info.parameter, matches(parameterRegexp));
}
}
- expect(info.propagatedType, equals(propagatedType));
if (staticTypeRegexps == null) {
expect(info.staticType, isNull);
} else {
diff --git a/pkg/analysis_server/test/integration/analysis/highlights_test.dart b/pkg/analysis_server/test/integration/analysis/highlights_test.dart
index f52caaf..e143a15 100644
--- a/pkg/analysis_server/test/integration/analysis/highlights_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/highlights_test.dart
@@ -112,7 +112,7 @@
HighlightRegionType.COMMENT_END_OF_LINE, ['// End of line comment']);
check(HighlightRegionType.CONSTRUCTOR, ['constructor']);
check(HighlightRegionType.DIRECTIVE, ["import 'dart:async' as async;"]);
- check(HighlightRegionType.DYNAMIC_TYPE, ['dynamicType']);
+ check(HighlightRegionType.DYNAMIC_TYPE, ['dynamicType', 'local']);
check(HighlightRegionType.FIELD, ['field']);
check(HighlightRegionType.FIELD_STATIC, ['staticField']);
check(HighlightRegionType.FUNCTION, ['print']);
@@ -129,8 +129,8 @@
check(HighlightRegionType.LITERAL_MAP,
['{1.0: [].toList()}', '{2: local}']);
check(HighlightRegionType.LITERAL_STRING, ["'dart:async'", "'string'"]);
- check(HighlightRegionType.LOCAL_VARIABLE, ['local']);
- check(HighlightRegionType.LOCAL_VARIABLE_DECLARATION, ['local']);
+ //check(HighlightRegionType.LOCAL_VARIABLE, ['local']);
+ //check(HighlightRegionType.LOCAL_VARIABLE_DECLARATION, ['local']);
check(HighlightRegionType.METHOD, ['toList']);
check(HighlightRegionType.METHOD_DECLARATION, ['method']);
check(HighlightRegionType.METHOD_DECLARATION_STATIC, ['staticMethod']);
diff --git a/pkg/analysis_server/test/integration/analysis/highlights_test2.dart b/pkg/analysis_server/test/integration/analysis/highlights_test2.dart
index 2157e77..5f4a9c3 100644
--- a/pkg/analysis_server/test/integration/analysis/highlights_test2.dart
+++ b/pkg/analysis_server/test/integration/analysis/highlights_test2.dart
@@ -147,8 +147,8 @@
check(HighlightRegionType.LITERAL_MAP,
['{1.0: [].toList()}', '{2: local}']);
check(HighlightRegionType.LITERAL_STRING, ["'dart:async'", "'string'"]);
- check(HighlightRegionType.LOCAL_VARIABLE_DECLARATION, ['local']);
- check(HighlightRegionType.LOCAL_VARIABLE_REFERENCE, ['local']);
+ check(HighlightRegionType.DYNAMIC_LOCAL_VARIABLE_DECLARATION, ['local']);
+ check(HighlightRegionType.DYNAMIC_LOCAL_VARIABLE_REFERENCE, ['local']);
check(HighlightRegionType.INSTANCE_METHOD_REFERENCE, ['toList']);
check(HighlightRegionType.INSTANCE_METHOD_DECLARATION, ['method']);
check(HighlightRegionType.STATIC_METHOD_DECLARATION, ['staticMethod']);
diff --git a/pkg/analysis_server/test/integration/analysis/update_content_test.dart b/pkg/analysis_server/test/integration/analysis/update_content_test.dart
index f703fe0..55e1e84 100644
--- a/pkg/analysis_server/test/integration/analysis/update_content_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/update_content_test.dart
@@ -63,7 +63,6 @@
expect(currentAnalysisErrors[path], isNotEmpty);
}
- @failingTest
test_updateContent_multipleAdds() async {
String pathname = sourcePath('test.dart');
writeFile(pathname, r'''
diff --git a/pkg/analysis_server/test/mock_sdk.dart b/pkg/analysis_server/test/mock_sdk.dart
index 86252cd..de74dd3 100644
--- a/pkg/analysis_server/test/mock_sdk.dart
+++ b/pkg/analysis_server/test/mock_sdk.dart
@@ -130,16 +130,19 @@
bool get isEmpty;
Iterable<T> map<T>(T f(E e)) => null;
T fold<T>(T initialValue, T combine(T previousValue, E element));
+ List<E> toList({bool growable: true});
}
class List<E> implements Iterable<E> {
List();
void add(E value) {}
void addAll(Iterable<E> iterable) {}
+ List<R> cast<R>();
E operator [](int index) => null;
void operator []=(int index, E value) {}
Iterator<E> get iterator => null;
void clear() {}
+ Iterable<E> where(bool test(E element)) {}
bool get isEmpty => false;
E get first => null;
@@ -147,6 +150,7 @@
}
abstract class Map<K, V> extends Object {
+ Map<RK, RV> cast<RK, RV>();
bool containsKey(Object key);
Iterable<K> get keys;
}
@@ -155,6 +159,10 @@
void print(Object object) {}
+class Set<E> implements Iterable<E> {
+ Set<R> cast<R>();
+}
+
class Uri {
static List<int> parseIPv6Address(String host, [int start = 0, int end]) {
int parseHex(int start, int end) {
@@ -167,7 +175,6 @@
class _Override { const _Override(); }
const Object override = const _Override();
''');
-
static const MockSdkLibrary LIB_ASYNC =
const MockSdkLibrary('dart:async', '/lib/async/async.dart', '''
library dart.async;
diff --git a/pkg/analysis_server/test/services/correction/fix_test.dart b/pkg/analysis_server/test/services/correction/fix_test.dart
index 2826fd6..486a6a6 100644
--- a/pkg/analysis_server/test/services/correction/fix_test.dart
+++ b/pkg/analysis_server/test/services/correction/fix_test.dart
@@ -97,12 +97,7 @@
assertNoFix(FixKind kind) async {
AnalysisError error = await _findErrorToFix();
- List<Fix> fixes = await _computeFixes(error);
- for (Fix fix in fixes) {
- if (fix.kind == kind) {
- fail('Unexpected fix $kind in\n${fixes.join('\n')}');
- }
- }
+ await _assertNoFix(kind, error);
}
List<LinkedEditSuggestion> expectedSuggestions(
@@ -139,6 +134,15 @@
}
}
+ Future _assertNoFix(FixKind kind, AnalysisError error) async {
+ List<Fix> fixes = await _computeFixes(error);
+ for (Fix fix in fixes) {
+ if (fix.kind == kind) {
+ fail('Unexpected fix $kind in\n${fixes.join('\n')}');
+ }
+ }
+ }
+
Future<List<AnalysisError>> _computeErrors() async {
return (await driver.getResult(convertPath(testFile))).errors;
}
@@ -381,6 +385,194 @@
''');
}
+ test_addExplicitCast_assignment_general() async {
+ await resolveTestUnit('''
+f(A a) {
+ B b;
+ b = a;
+}
+class A {}
+class B {}
+''');
+ await assertHasFix(DartFixKind.ADD_EXPLICIT_CAST, '''
+f(A a) {
+ B b;
+ b = a as B;
+}
+class A {}
+class B {}
+''');
+ }
+
+ test_addExplicitCast_assignment_list() async {
+ await resolveTestUnit('''
+f(List<A> a) {
+ List<B> b;
+ b = a.where((e) => e is B).toList();
+}
+class A {}
+class B {}
+''');
+ await assertHasFix(DartFixKind.ADD_EXPLICIT_CAST, '''
+f(List<A> a) {
+ List<B> b;
+ b = a.where((e) => e is B).toList().cast<B>();
+}
+class A {}
+class B {}
+''');
+ }
+
+ test_addExplicitCast_assignment_map() async {
+ await resolveTestUnit('''
+f(Map<A, B> a) {
+ Map<B, A> b;
+ b = a;
+}
+class A {}
+class B {}
+''');
+ await assertHasFix(DartFixKind.ADD_EXPLICIT_CAST, '''
+f(Map<A, B> a) {
+ Map<B, A> b;
+ b = a.cast<B, A>();
+}
+class A {}
+class B {}
+''');
+ }
+
+ test_addExplicitCast_assignment_needsParens() async {
+ await resolveTestUnit('''
+f(A a) {
+ B b;
+ b = a..m();
+}
+class A {
+ int m() => 0;
+}
+class B {}
+''');
+ await assertHasFix(DartFixKind.ADD_EXPLICIT_CAST, '''
+f(A a) {
+ B b;
+ b = (a..m()) as B;
+}
+class A {
+ int m() => 0;
+}
+class B {}
+''');
+ }
+
+ test_addExplicitCast_assignment_set() async {
+ await resolveTestUnit('''
+f(Set<A> a) {
+ Set<B> b;
+ b = a;
+}
+class A {}
+class B {}
+''');
+ await assertHasFix(DartFixKind.ADD_EXPLICIT_CAST, '''
+f(Set<A> a) {
+ Set<B> b;
+ b = a.cast<B>();
+}
+class A {}
+class B {}
+''');
+ }
+
+ test_addExplicitCast_declaration_general() async {
+ await resolveTestUnit('''
+f(A a) {
+ B b = a;
+}
+class A {}
+class B {}
+''');
+ await assertHasFix(DartFixKind.ADD_EXPLICIT_CAST, '''
+f(A a) {
+ B b = a as B;
+}
+class A {}
+class B {}
+''');
+ }
+
+ test_addExplicitCast_declaration_list() async {
+ await resolveTestUnit('''
+f(List<A> a) {
+ List<B> b = a.where((e) => e is B).toList();
+}
+class A {}
+class B {}
+''');
+ await assertHasFix(DartFixKind.ADD_EXPLICIT_CAST, '''
+f(List<A> a) {
+ List<B> b = a.where((e) => e is B).toList().cast<B>();
+}
+class A {}
+class B {}
+''');
+ }
+
+ test_addExplicitCast_declaration_map() async {
+ await resolveTestUnit('''
+f(Map<A, B> a) {
+ Map<B, A> b = a;
+}
+class A {}
+class B {}
+''');
+ await assertHasFix(DartFixKind.ADD_EXPLICIT_CAST, '''
+f(Map<A, B> a) {
+ Map<B, A> b = a.cast<B, A>();
+}
+class A {}
+class B {}
+''');
+ }
+
+ test_addExplicitCast_declaration_needsParens() async {
+ await resolveTestUnit('''
+f(A a) {
+ B b = a..m();
+}
+class A {
+ int m() => 0;
+}
+class B {}
+''');
+ await assertHasFix(DartFixKind.ADD_EXPLICIT_CAST, '''
+f(A a) {
+ B b = (a..m()) as B;
+}
+class A {
+ int m() => 0;
+}
+class B {}
+''');
+ }
+
+ test_addExplicitCast_declaration_set() async {
+ await resolveTestUnit('''
+f(Set<A> a) {
+ Set<B> b = a;
+}
+class A {}
+class B {}
+''');
+ await assertHasFix(DartFixKind.ADD_EXPLICIT_CAST, '''
+f(Set<A> a) {
+ Set<B> b = a.cast<B>();
+}
+class A {}
+class B {}
+''');
+ }
+
test_addFieldFormalParameters_hasRequiredParameter() async {
await resolveTestUnit('''
class Test {
@@ -5938,6 +6130,11 @@
resultCode = SourceEdit.applySequence(testCode, change.edits[0].edits);
}
+ @override
+ assertNoFix(FixKind kind) async {
+ await _assertNoFix(kind, error);
+ }
+
Future<Null> findLint(String src, String lintCode, {int length: 1}) async {
int errorOffset = src.indexOf('/*LINT*/');
await resolveTestUnit(src.replaceAll('/*LINT*/', ''));
@@ -6798,6 +6995,115 @@
''');
}
+ test_renameToCamelCase_BAD_parameter_optionalNamed() async {
+ String src = '''
+foo({int /*LINT*/my_integer_variable}) {
+ print(my_integer_variable);
+}
+''';
+ await findLint(src, LintNames.non_constant_identifier_names);
+ await assertNoFix(DartFixKind.RENAME_TO_CAMEL_CASE);
+ }
+
+ test_renameToCamelCase_OK_localVariable() async {
+ String src = '''
+main() {
+ int /*LINT*/my_integer_variable = 42;
+ int foo;
+ print(my_integer_variable);
+ print(foo);
+}
+''';
+ await findLint(src, LintNames.non_constant_identifier_names);
+
+ await applyFix(DartFixKind.RENAME_TO_CAMEL_CASE);
+
+ verifyResult('''
+main() {
+ int myIntegerVariable = 42;
+ int foo;
+ print(myIntegerVariable);
+ print(foo);
+}
+''');
+ }
+
+ test_renameToCamelCase_OK_parameter_closure() async {
+ String src = '''
+main() {
+ [0, 1, 2].forEach((/*LINT*/my_integer_variable) {
+ print(my_integer_variable);
+ });
+}
+''';
+ await findLint(src, LintNames.non_constant_identifier_names);
+
+ await applyFix(DartFixKind.RENAME_TO_CAMEL_CASE);
+
+ verifyResult('''
+main() {
+ [0, 1, 2].forEach((myIntegerVariable) {
+ print(myIntegerVariable);
+ });
+}
+''');
+ }
+
+ test_renameToCamelCase_OK_parameter_function() async {
+ String src = '''
+main(int /*LINT*/my_integer_variable) {
+ print(my_integer_variable);
+}
+''';
+ await findLint(src, LintNames.non_constant_identifier_names);
+
+ await applyFix(DartFixKind.RENAME_TO_CAMEL_CASE);
+
+ verifyResult('''
+main(int myIntegerVariable) {
+ print(myIntegerVariable);
+}
+''');
+ }
+
+ test_renameToCamelCase_OK_parameter_method() async {
+ String src = '''
+class A {
+ main(int /*LINT*/my_integer_variable) {
+ print(my_integer_variable);
+ }
+}
+''';
+ await findLint(src, LintNames.non_constant_identifier_names);
+
+ await applyFix(DartFixKind.RENAME_TO_CAMEL_CASE);
+
+ verifyResult('''
+class A {
+ main(int myIntegerVariable) {
+ print(myIntegerVariable);
+ }
+}
+''');
+ }
+
+ test_renameToCamelCase_OK_parameter_optionalPositional() async {
+ String src = '''
+main([int /*LINT*/my_integer_variable]) {
+ print(my_integer_variable);
+}
+''';
+ await findLint(src, LintNames.non_constant_identifier_names);
+
+ await applyFix(DartFixKind.RENAME_TO_CAMEL_CASE);
+
+ verifyResult('''
+main([int myIntegerVariable]) {
+ print(myIntegerVariable);
+}
+''');
+ }
+
test_replaceFinalWithConst_method() async {
String src = '''
/*LINT*/final int a = 1;
diff --git a/pkg/analysis_server/test/src/flutter/flutter_outline_computer_test.dart b/pkg/analysis_server/test/src/flutter/flutter_outline_computer_test.dart
index 218a54b..374cf39 100644
--- a/pkg/analysis_server/test/src/flutter/flutter_outline_computer_test.dart
+++ b/pkg/analysis_server/test/src/flutter/flutter_outline_computer_test.dart
@@ -376,6 +376,118 @@
expect(myWidget.renderConstructor, isNull);
}
+ test_render_instrumentedCode_registerWidgets() async {
+ await _computeOutline('''
+import 'package:flutter/widgets.dart';
+
+class MyWidget extends StatelessWidget {
+ MyWidget.forDesignTime();
+
+ @override
+ Widget build(BuildContext context) {
+ return new Row(
+ children: <Widget>[
+ new Text('aaa'),
+ new Text('bbb'),
+ ],
+ );
+ }
+}
+''');
+ expect(
+ computer.instrumentedCode,
+ r'''
+import 'package:flutter/widgets.dart';
+
+class MyWidget extends StatelessWidget {
+ MyWidget.forDesignTime();
+
+ @override
+ Widget build(BuildContext context) {
+ return _registerWidgetInstance(0, new Row(
+ children: <Widget>[
+ _registerWidgetInstance(1, new Text('aaa')),
+ _registerWidgetInstance(2, new Text('bbb')),
+ ],
+ ));
+ }
+}
+''' +
+ FlutterOutlineComputer.RENDER_APPEND);
+ }
+
+ test_render_instrumentedCode_rewriteUri_file() async {
+ testPath = resourceProvider.convertPath('/home/user/test/test.dart');
+ var libFile = newFile('/home/user/test/my_lib.dart', content: '');
+
+ await _computeOutline('''
+import 'package:flutter/widgets.dart';
+import 'my_lib.dart';
+
+class MyWidget extends StatelessWidget {
+ MyWidget.forDesignTime();
+
+ @override
+ Widget build(BuildContext context) {
+ return new Container();
+ }
+}
+''');
+ expect(
+ computer.instrumentedCode,
+ '''
+import 'package:flutter/widgets.dart';
+import '${libFile.toUri()}';
+
+class MyWidget extends StatelessWidget {
+ MyWidget.forDesignTime();
+
+ @override
+ Widget build(BuildContext context) {
+ return _registerWidgetInstance(0, new Container());
+ }
+}
+''' +
+ FlutterOutlineComputer.RENDER_APPEND);
+ }
+
+ test_render_instrumentedCode_rewriteUri_package() async {
+ packageMap['test'] = [newFolder('/home/user/test/lib')];
+
+ testPath = resourceProvider.convertPath('/home/user/test/lib/test.dart');
+ newFile('/home/user/test/lib/my_lib.dart', content: '');
+
+ await _computeOutline('''
+import 'package:flutter/widgets.dart';
+import 'my_lib.dart';
+
+class MyWidget extends StatelessWidget {
+ MyWidget.forDesignTime();
+
+ @override
+ Widget build(BuildContext context) {
+ return new Container();
+ }
+}
+''');
+ expect(
+ computer.instrumentedCode,
+ '''
+import 'package:flutter/widgets.dart';
+import 'package:test/my_lib.dart';
+
+class MyWidget extends StatelessWidget {
+ MyWidget.forDesignTime();
+
+ @override
+ Widget build(BuildContext context) {
+ return _registerWidgetInstance(0, new Container());
+ }
+}
+''' +
+ FlutterOutlineComputer.RENDER_APPEND);
+ }
+
test_render_stateful_createState_blockBody() async {
FlutterOutline unitOutline = await _computeOutline('''
import 'package:flutter/widgets.dart';
@@ -449,27 +561,6 @@
expect(myWidget.stateOffset, isNull);
expect(myWidget.stateLength, isNull);
- expect(
- computer.instrumentedCode,
- r'''
-import 'package:flutter/widgets.dart';
-
-class MyWidget extends StatelessWidget {
- MyWidget.forDesignTime();
-
- @override
- Widget build(BuildContext context) {
- return _registerWidgetInstance(0, new Row(
- children: <Widget>[
- _registerWidgetInstance(1, new Text('aaa')),
- _registerWidgetInstance(2, new Text('bbb')),
- ],
- ));
- }
-}
-''' +
- FlutterOutlineComputer.RENDER_APPEND);
-
var build = myWidget.children[1];
var row = build.children[0];
diff --git a/pkg/analyzer/lib/source/analysis_options_provider.dart b/pkg/analyzer/lib/source/analysis_options_provider.dart
index 8c47f07..40b53e7 100644
--- a/pkg/analyzer/lib/source/analysis_options_provider.dart
+++ b/pkg/analyzer/lib/source/analysis_options_provider.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.
-library analyzer.source.analysis_options_provider;
-
import 'dart:core';
import 'package:analyzer/file_system/file_system.dart';
@@ -155,7 +153,7 @@
///
Map<String, YamlNode> merge(
Map<String, YamlNode> defaults, Map<String, YamlNode> overrides) =>
- new Merger().merge(defaults, overrides) as Map<String, YamlNode>;
+ new Merger().mergeMap(defaults, overrides);
/// Read the contents of [source] as a string.
/// Returns null if source is null or does not exist.
diff --git a/pkg/analyzer/lib/src/command_line/arguments.dart b/pkg/analyzer/lib/src/command_line/arguments.dart
index 8f6af83..2703beb 100644
--- a/pkg/analyzer/lib/src/command_line/arguments.dart
+++ b/pkg/analyzer/lib/src/command_line/arguments.dart
@@ -196,9 +196,8 @@
//
// Hidden flags and options.
//
- parser.addOption(defineVariableOption,
+ parser.addMultiOption(defineVariableOption,
abbr: 'D',
- allowMultiple: true,
help: 'Define environment variables. For example, "-Dfoo=bar" defines an '
'environment variable named "foo" whose value is "bar".',
hide: hide);
@@ -291,7 +290,7 @@
Set<String> knownAbbreviations = new HashSet<String>();
parser.options.forEach((String name, Option option) {
knownOptions.add(name);
- String abbreviation = option.abbreviation;
+ String abbreviation = option.abbr;
if (abbreviation != null) {
knownAbbreviations.add(abbreviation);
}
diff --git a/pkg/analyzer/lib/src/dart/analysis/driver.dart b/pkg/analyzer/lib/src/dart/analysis/driver.dart
index 2b6e7ac..43a1d47 100644
--- a/pkg/analyzer/lib/src/dart/analysis/driver.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/driver.dart
@@ -94,7 +94,7 @@
/**
* The version of data format, should be incremented on every format change.
*/
- static const int DATA_VERSION = 52;
+ static const int DATA_VERSION = 53;
/**
* The number of exception contexts allowed to write. Once this field is
@@ -326,11 +326,8 @@
/**
* The current analysis session.
- *
- * TODO(brianwilkerson) Create a new session when the current session might
- * produce inconsistent results.
*/
- AnalysisSession _currentSession;
+ AnalysisSessionImpl _currentSession;
/**
* Create a new instance of [AnalysisDriver].
@@ -356,7 +353,7 @@
_sourceFactory = sourceFactory.clone(),
_sdkBundle = sdkBundle,
_externalSummaries = externalSummaries {
- _currentSession = new AnalysisSessionImpl(this);
+ _createNewSession();
_onResults = _resultController.stream.asBroadcastStream();
_testView = new AnalysisDriverTestView(this);
_createFileTracker();
@@ -1122,6 +1119,7 @@
* of state.
*/
void _changeHook() {
+ _createNewSession();
_priorityResults.clear();
_scheduler.notify(this);
}
@@ -1238,6 +1236,8 @@
}
}
+ _currentSession.put(libraryElement: resolvedUnit?.element?.library);
+
// Return the result, full or partial.
_logger.writeln('Computed new analysis result.');
AnalysisResult result = _getAnalysisResultFromBytes(
@@ -1385,6 +1385,13 @@
}
/**
+ * Create a new analysis session, so invalidating the current one.
+ */
+ void _createNewSession() {
+ _currentSession = new AnalysisSessionImpl(this);
+ }
+
+ /**
* Fill [_salt] with data.
*/
void _fillSalt() {
diff --git a/pkg/analyzer/lib/src/dart/analysis/session.dart b/pkg/analyzer/lib/src/dart/analysis/session.dart
index b8ff388..9125b01 100644
--- a/pkg/analyzer/lib/src/dart/analysis/session.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/session.dart
@@ -32,6 +32,11 @@
TypeSystem _typeSystem;
/**
+ * The cache of libraries for URIs.
+ */
+ final Map<String, LibraryElement> _uriToLibraryCache = {};
+
+ /**
* Initialize a newly created analysis session.
*/
AnalysisSessionImpl(this._driver);
@@ -70,9 +75,14 @@
}
@override
- Future<LibraryElement> getLibraryByUri(String uri) {
+ Future<LibraryElement> getLibraryByUri(String uri) async {
_checkConsistency();
- return _driver.getLibraryByUri(uri);
+ var libraryElement = _uriToLibraryCache[uri];
+ if (libraryElement == null) {
+ libraryElement = await _driver.getLibraryByUri(uri);
+ _fillUriToLibraryCache(libraryElement);
+ }
+ return libraryElement;
}
@override
@@ -113,6 +123,18 @@
}
/**
+ * Put information into the session, so it is available even though it is
+ * not yet requested by the user. We want to put only information that is
+ * already available directly, or can be derived from available information
+ * very cheaply.
+ */
+ void put({LibraryElement libraryElement}) {
+ if (libraryElement != null) {
+ _fillUriToLibraryCache(libraryElement);
+ }
+ }
+
+ /**
* Check to see that results from this session will be consistent, and throw
* an [InconsistentAnalysisException] if they might not be.
*/
@@ -121,4 +143,21 @@
throw new InconsistentAnalysisException();
}
}
+
+ /**
+ * Fill the [_uriToLibraryCache] with libraries referenced from the
+ * given [library].
+ */
+ void _fillUriToLibraryCache(LibraryElement library) {
+ Source source = library.source;
+ if (source == null) {
+ print('zzzzz');
+ }
+ String uri = source.uri.toString();
+ if (_uriToLibraryCache[uri] == null) {
+ _uriToLibraryCache[uri] = library;
+ library.importedLibraries.forEach(_fillUriToLibraryCache);
+ library.exportedLibraries.forEach(_fillUriToLibraryCache);
+ }
+ }
}
diff --git a/pkg/analyzer/lib/src/dart/ast/ast.dart b/pkg/analyzer/lib/src/dart/ast/ast.dart
index 63c6633..f916e4d 100644
--- a/pkg/analyzer/lib/src/dart/ast/ast.dart
+++ b/pkg/analyzer/lib/src/dart/ast/ast.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.
-library analyzer.src.dart.ast.ast;
-
import 'dart:collection';
import 'package:analyzer/dart/ast/ast.dart';
@@ -92,7 +90,7 @@
* The documentation comment associated with this node, or `null` if this node
* does not have a documentation comment associated with it.
*/
- Comment _comment;
+ CommentImpl _comment;
/**
* The annotations associated with this node.
@@ -132,7 +130,7 @@
@override
void set documentationComment(Comment comment) {
- _comment = _becomeParentOf(comment as AstNodeImpl);
+ _comment = _becomeParentOf(comment as CommentImpl);
}
@override
@@ -209,7 +207,7 @@
* The name of the class defining the constructor that is being invoked or the
* name of the field that is being referenced.
*/
- Identifier _name;
+ IdentifierImpl _name;
/**
* The period before the constructor name, or `null` if this annotation is not
@@ -222,13 +220,13 @@
* The name of the constructor being invoked, or `null` if this annotation is
* not the invocation of a named constructor.
*/
- SimpleIdentifier _constructorName;
+ SimpleIdentifierImpl _constructorName;
/**
* The arguments to the constructor being invoked, or `null` if this
* annotation is not the invocation of a constructor.
*/
- ArgumentList _arguments;
+ ArgumentListImpl _arguments;
/**
* The element associated with this annotation, or `null` if the AST structure
@@ -260,7 +258,7 @@
@override
void set arguments(ArgumentList arguments) {
- _arguments = _becomeParentOf(arguments as AstNodeImpl);
+ _arguments = _becomeParentOf(arguments as ArgumentListImpl);
}
@override
@@ -279,7 +277,7 @@
@override
void set constructorName(SimpleIdentifier name) {
- _constructorName = _becomeParentOf(name as AstNodeImpl);
+ _constructorName = _becomeParentOf(name as SimpleIdentifierImpl);
}
@override
@@ -312,7 +310,7 @@
@override
void set name(Identifier name) {
- _name = _becomeParentOf(name as AstNodeImpl);
+ _name = _becomeParentOf(name as IdentifierImpl);
}
@override
@@ -497,7 +495,7 @@
/**
* The expression used to compute the value being cast.
*/
- Expression _expression;
+ ExpressionImpl _expression;
/**
* The 'as' operator.
@@ -508,7 +506,7 @@
/**
* The type being cast to.
*/
- TypeAnnotation _type;
+ TypeAnnotationImpl _type;
/**
* Initialize a newly created as expression.
@@ -534,7 +532,7 @@
@override
void set expression(Expression expression) {
- _expression = _becomeParentOf(expression as AstNodeImpl);
+ _expression = _becomeParentOf(expression as ExpressionImpl);
}
@override
@@ -545,7 +543,7 @@
@override
void set type(TypeAnnotation type) {
- _type = _becomeParentOf(type as AstNodeImpl);
+ _type = _becomeParentOf(type as TypeAnnotationImpl);
}
@override
@@ -575,7 +573,7 @@
/**
* The condition that is being asserted to be `true`.
*/
- Expression _condition;
+ ExpressionImpl _condition;
@override
Token comma;
@@ -584,7 +582,7 @@
* The message to report if the assertion fails, or `null` if no message was
* supplied.
*/
- Expression _message;
+ ExpressionImpl _message;
@override
Token rightParenthesis;
@@ -620,7 +618,7 @@
@override
void set condition(Expression condition) {
- _condition = _becomeParentOf(condition as AstNodeImpl);
+ _condition = _becomeParentOf(condition as ExpressionImpl);
}
@override
@@ -631,7 +629,7 @@
@override
void set message(Expression expression) {
- _message = _becomeParentOf(expression as AstNodeImpl);
+ _message = _becomeParentOf(expression as ExpressionImpl);
}
@override
@@ -660,7 +658,7 @@
/**
* The condition that is being asserted to be `true`.
*/
- Expression _condition;
+ ExpressionImpl _condition;
@override
Token comma;
@@ -669,7 +667,7 @@
* The message to report if the assertion fails, or `null` if no message was
* supplied.
*/
- Expression _message;
+ ExpressionImpl _message;
@override
Token rightParenthesis;
@@ -710,7 +708,7 @@
@override
void set condition(Expression condition) {
- _condition = _becomeParentOf(condition as AstNodeImpl);
+ _condition = _becomeParentOf(condition as ExpressionImpl);
}
@override
@@ -721,7 +719,7 @@
@override
void set message(Expression expression) {
- _message = _becomeParentOf(expression as AstNodeImpl);
+ _message = _becomeParentOf(expression as ExpressionImpl);
}
@override
@@ -745,7 +743,7 @@
/**
* The expression used to compute the left hand side.
*/
- Expression _leftHandSide;
+ ExpressionImpl _leftHandSide;
/**
* The assignment operator being applied.
@@ -756,7 +754,7 @@
/**
* The expression used to compute the right hand side.
*/
- Expression _rightHandSide;
+ ExpressionImpl _rightHandSide;
/**
* The element associated with the operator based on the static type of the
@@ -825,7 +823,7 @@
@override
void set leftHandSide(Expression expression) {
- _leftHandSide = _becomeParentOf(expression as AstNodeImpl);
+ _leftHandSide = _becomeParentOf(expression as ExpressionImpl);
}
@override
@@ -836,7 +834,7 @@
@override
void set rightHandSide(Expression expression) {
- _rightHandSide = _becomeParentOf(expression as AstNodeImpl);
+ _rightHandSide = _becomeParentOf(expression as ExpressionImpl);
}
/**
@@ -1020,7 +1018,7 @@
/**
* Make this node the parent of the given [child] node. Return the child node.
*/
- AstNode _becomeParentOf(AstNodeImpl child) {
+ T _becomeParentOf<T extends AstNodeImpl>(T child) {
if (child != null) {
child._parent = this;
}
@@ -1044,7 +1042,7 @@
/**
* The expression whose value is being waited on.
*/
- Expression _expression;
+ ExpressionImpl _expression;
/**
* Initialize a newly created await expression.
@@ -1073,7 +1071,7 @@
@override
void set expression(Expression expression) {
- _expression = _becomeParentOf(expression as AstNodeImpl);
+ _expression = _becomeParentOf(expression as ExpressionImpl);
}
@override
@@ -1098,7 +1096,7 @@
/**
* The expression used to compute the left operand.
*/
- Expression _leftOperand;
+ ExpressionImpl _leftOperand;
/**
* The binary operator being applied.
@@ -1109,7 +1107,7 @@
/**
* The expression used to compute the right operand.
*/
- Expression _rightOperand;
+ ExpressionImpl _rightOperand;
/**
* The element associated with the operator based on the static type of the
@@ -1161,7 +1159,7 @@
@override
void set leftOperand(Expression expression) {
- _leftOperand = _becomeParentOf(expression as AstNodeImpl);
+ _leftOperand = _becomeParentOf(expression as ExpressionImpl);
}
@override
@@ -1172,7 +1170,7 @@
@override
void set rightOperand(Expression expression) {
- _rightOperand = _becomeParentOf(expression as AstNodeImpl);
+ _rightOperand = _becomeParentOf(expression as ExpressionImpl);
}
/**
@@ -1244,7 +1242,7 @@
/**
* The block representing the body of the function.
*/
- Block _block;
+ BlockImpl _block;
/**
* Initialize a newly created function body consisting of a block of
@@ -1269,7 +1267,7 @@
@override
void set block(Block block) {
- _block = _becomeParentOf(block as AstNodeImpl);
+ _block = _becomeParentOf(block as BlockImpl);
}
@override
@@ -1414,7 +1412,7 @@
/**
* The label associated with the statement, or `null` if there is no label.
*/
- SimpleIdentifier _label;
+ SimpleIdentifierImpl _label;
/**
* The semicolon terminating the statement.
@@ -1458,7 +1456,7 @@
@override
void set label(SimpleIdentifier identifier) {
- _label = _becomeParentOf(identifier as AstNodeImpl);
+ _label = _becomeParentOf(identifier as SimpleIdentifierImpl);
}
@override
@@ -1491,7 +1489,7 @@
/**
* The target of the cascade sections.
*/
- Expression _target;
+ ExpressionImpl _target;
/**
* The cascade sections sharing the common target.
@@ -1530,7 +1528,7 @@
@override
void set target(Expression target) {
- _target = _becomeParentOf(target as AstNodeImpl);
+ _target = _becomeParentOf(target as ExpressionImpl);
}
@override
@@ -1565,7 +1563,7 @@
* The type of exceptions caught by this catch clause, or `null` if this catch
* clause catches every type of exception.
*/
- TypeAnnotation _exceptionType;
+ TypeAnnotationImpl _exceptionType;
/**
* The token representing the 'catch' keyword, or `null` if there is no
@@ -1584,7 +1582,7 @@
* The parameter whose value will be the exception that was thrown, or `null`
* if there is no 'catch' keyword.
*/
- SimpleIdentifier _exceptionParameter;
+ SimpleIdentifierImpl _exceptionParameter;
/**
* The comma separating the exception parameter from the stack trace
@@ -1597,7 +1595,7 @@
* The parameter whose value will be the stack trace associated with the
* exception, or `null` if there is no stack trace parameter.
*/
- SimpleIdentifier _stackTraceParameter;
+ SimpleIdentifierImpl _stackTraceParameter;
/**
* The right parenthesis, or `null` if there is no 'catch' keyword.
@@ -1608,7 +1606,7 @@
/**
* The body of the catch block.
*/
- Block _body;
+ BlockImpl _body;
/**
* Initialize a newly created catch clause. The [onKeyword] and
@@ -1645,7 +1643,7 @@
@override
void set body(Block block) {
- _body = _becomeParentOf(block as AstNodeImpl);
+ _body = _becomeParentOf(block as BlockImpl);
}
@override
@@ -1668,7 +1666,7 @@
@override
void set exceptionParameter(SimpleIdentifier parameter) {
- _exceptionParameter = _becomeParentOf(parameter as AstNodeImpl);
+ _exceptionParameter = _becomeParentOf(parameter as SimpleIdentifierImpl);
}
@override
@@ -1676,7 +1674,7 @@
@override
void set exceptionType(TypeAnnotation exceptionType) {
- _exceptionType = _becomeParentOf(exceptionType as AstNodeImpl);
+ _exceptionType = _becomeParentOf(exceptionType as TypeAnnotationImpl);
}
@override
@@ -1684,7 +1682,7 @@
@override
void set stackTraceParameter(SimpleIdentifier parameter) {
- _stackTraceParameter = _becomeParentOf(parameter as AstNodeImpl);
+ _stackTraceParameter = _becomeParentOf(parameter as SimpleIdentifierImpl);
}
@override
@@ -1759,31 +1757,31 @@
* The type parameters for the class, or `null` if the class does not have any
* type parameters.
*/
- TypeParameterList _typeParameters;
+ TypeParameterListImpl _typeParameters;
/**
* The extends clause for the class, or `null` if the class does not extend
* any other class.
*/
- ExtendsClause _extendsClause;
+ ExtendsClauseImpl _extendsClause;
/**
* The with clause for the class, or `null` if the class does not have a with
* clause.
*/
- WithClause _withClause;
+ WithClauseImpl _withClause;
/**
* The implements clause for the class, or `null` if the class does not
* implement any interfaces.
*/
- ImplementsClause _implementsClause;
+ ImplementsClauseImpl _implementsClause;
/**
* The native clause for the class, or `null` if the class does not have a
* native clause.
*/
- NativeClause _nativeClause;
+ NativeClauseImpl _nativeClause;
/**
* The left curly bracket.
@@ -1813,7 +1811,7 @@
* not have any members.
*/
ClassDeclarationImpl(
- Comment comment,
+ CommentImpl comment,
List<Annotation> metadata,
this.abstractKeyword,
this.classKeyword,
@@ -1858,7 +1856,7 @@
@override
void set extendsClause(ExtendsClause extendsClause) {
- _extendsClause = _becomeParentOf(extendsClause as AstNodeImpl);
+ _extendsClause = _becomeParentOf(extendsClause as ExtendsClauseImpl);
}
@override
@@ -1874,7 +1872,8 @@
@override
void set implementsClause(ImplementsClause implementsClause) {
- _implementsClause = _becomeParentOf(implementsClause as AstNodeImpl);
+ _implementsClause =
+ _becomeParentOf(implementsClause as ImplementsClauseImpl);
}
@override
@@ -1888,7 +1887,7 @@
@override
void set nativeClause(NativeClause nativeClause) {
- _nativeClause = _becomeParentOf(nativeClause as AstNodeImpl);
+ _nativeClause = _becomeParentOf(nativeClause as NativeClauseImpl);
}
@override
@@ -1896,7 +1895,7 @@
@override
void set typeParameters(TypeParameterList typeParameters) {
- _typeParameters = _becomeParentOf(typeParameters as AstNodeImpl);
+ _typeParameters = _becomeParentOf(typeParameters as TypeParameterListImpl);
}
@override
@@ -1904,7 +1903,7 @@
@override
void set withClause(WithClause withClause) {
- _withClause = _becomeParentOf(withClause as AstNodeImpl);
+ _withClause = _becomeParentOf(withClause as WithClauseImpl);
}
@override
@@ -1989,7 +1988,7 @@
* [comment] and [metadata] can be `null` if the member does not have the
* corresponding attribute.
*/
- ClassMemberImpl(Comment comment, List<Annotation> metadata)
+ ClassMemberImpl(CommentImpl comment, List<Annotation> metadata)
: super(comment, metadata);
}
@@ -2007,7 +2006,7 @@
* The type parameters for the class, or `null` if the class does not have any
* type parameters.
*/
- TypeParameterList _typeParameters;
+ TypeParameterListImpl _typeParameters;
/**
* The token for the '=' separating the name from the definition.
@@ -2025,18 +2024,18 @@
/**
* The name of the superclass of the class being declared.
*/
- TypeName _superclass;
+ TypeNameImpl _superclass;
/**
* The with clause for this class.
*/
- WithClause _withClause;
+ WithClauseImpl _withClause;
/**
* The implements clause for this class, or `null` if there is no implements
* clause.
*/
- ImplementsClause _implementsClause;
+ ImplementsClauseImpl _implementsClause;
/**
* Initialize a newly created class type alias. Either or both of the
@@ -2093,7 +2092,8 @@
@override
void set implementsClause(ImplementsClause implementsClause) {
- _implementsClause = _becomeParentOf(implementsClause as AstNodeImpl);
+ _implementsClause =
+ _becomeParentOf(implementsClause as ImplementsClauseImpl);
}
@override
@@ -2104,7 +2104,7 @@
@override
void set superclass(TypeName superclass) {
- _superclass = _becomeParentOf(superclass as AstNodeImpl);
+ _superclass = _becomeParentOf(superclass as TypeNameImpl);
}
@override
@@ -2112,7 +2112,7 @@
@override
void set typeParameters(TypeParameterList typeParameters) {
- _typeParameters = _becomeParentOf(typeParameters as AstNodeImpl);
+ _typeParameters = _becomeParentOf(typeParameters as TypeParameterListImpl);
}
@override
@@ -2120,7 +2120,7 @@
@override
void set withClause(WithClause withClause) {
- _withClause = _becomeParentOf(withClause as AstNodeImpl);
+ _withClause = _becomeParentOf(withClause as WithClauseImpl);
}
@override
@@ -2283,7 +2283,7 @@
/**
* The identifier being referenced.
*/
- Identifier _identifier;
+ IdentifierImpl _identifier;
/**
* Initialize a newly created reference to a Dart element. The [newKeyword]
@@ -2308,7 +2308,7 @@
@override
void set identifier(Identifier identifier) {
- _identifier = _becomeParentOf(identifier as AstNodeImpl);
+ _identifier = _becomeParentOf(identifier as IdentifierImpl);
}
@override
@@ -2388,7 +2388,7 @@
* The script tag at the beginning of the compilation unit, or `null` if there
* is no script tag in this compilation unit.
*/
- ScriptTag _scriptTag;
+ ScriptTagImpl _scriptTag;
/**
* The directives contained in this compilation unit.
@@ -2472,7 +2472,7 @@
@override
void set scriptTag(ScriptTag scriptTag) {
- _scriptTag = _becomeParentOf(scriptTag as AstNodeImpl);
+ _scriptTag = _becomeParentOf(scriptTag as ScriptTagImpl);
}
@override
@@ -2535,7 +2535,7 @@
* of the [comment] and [metadata] can be `null` if the member does not have
* the corresponding attribute.
*/
- CompilationUnitMemberImpl(Comment comment, List<Annotation> metadata)
+ CompilationUnitMemberImpl(CommentImpl comment, List<Annotation> metadata)
: super(comment, metadata);
}
@@ -2550,7 +2550,7 @@
/**
* The condition used to determine which of the expressions is executed next.
*/
- Expression _condition;
+ ExpressionImpl _condition;
/**
* The token used to separate the condition from the then expression.
@@ -2561,7 +2561,7 @@
/**
* The expression that is executed if the condition evaluates to `true`.
*/
- Expression _thenExpression;
+ ExpressionImpl _thenExpression;
/**
* The token used to separate the then expression from the else expression.
@@ -2572,7 +2572,7 @@
/**
* The expression that is executed if the condition evaluates to `false`.
*/
- Expression _elseExpression;
+ ExpressionImpl _elseExpression;
/**
* Initialize a newly created conditional expression.
@@ -2604,7 +2604,7 @@
@override
void set condition(Expression expression) {
- _condition = _becomeParentOf(expression as AstNodeImpl);
+ _condition = _becomeParentOf(expression as ExpressionImpl);
}
@override
@@ -2612,7 +2612,7 @@
@override
void set elseExpression(Expression expression) {
- _elseExpression = _becomeParentOf(expression as AstNodeImpl);
+ _elseExpression = _becomeParentOf(expression as ExpressionImpl);
}
@override
@@ -2626,7 +2626,7 @@
@override
void set thenExpression(Expression expression) {
- _thenExpression = _becomeParentOf(expression as AstNodeImpl);
+ _thenExpression = _becomeParentOf(expression as ExpressionImpl);
}
@override
@@ -2660,17 +2660,17 @@
@override
Token leftParenthesis;
- DottedName _name;
+ DottedNameImpl _name;
@override
Token equalToken;
- StringLiteral _value;
+ StringLiteralImpl _value;
@override
Token rightParenthesis;
- StringLiteral _uri;
+ StringLiteralImpl _uri;
@override
Source uriSource;
@@ -2711,7 +2711,7 @@
@deprecated
@override
void set libraryUri(StringLiteral libraryUri) {
- _uri = _becomeParentOf(libraryUri as AstNodeImpl);
+ _uri = _becomeParentOf(libraryUri as StringLiteralImpl);
}
@override
@@ -2719,7 +2719,7 @@
@override
void set name(DottedName name) {
- _name = _becomeParentOf(name as AstNodeImpl);
+ _name = _becomeParentOf(name as DottedNameImpl);
}
@override
@@ -2727,7 +2727,7 @@
@override
void set uri(StringLiteral uri) {
- _uri = _becomeParentOf(uri as AstNodeImpl);
+ _uri = _becomeParentOf(uri as StringLiteralImpl);
}
@override
@@ -2735,7 +2735,7 @@
@override
void set value(StringLiteral value) {
- _value = _becomeParentOf(value as AstNodeImpl);
+ _value = _becomeParentOf(value as StringLiteralImpl);
}
@override
@@ -2829,7 +2829,7 @@
* which the constructor is being declared if the constructor is the
* implementation of a factory constructor.
*/
- Identifier _returnType;
+ IdentifierImpl _returnType;
/**
* The token for the period before the constructor name, or `null` if the
@@ -2842,12 +2842,12 @@
* The name of the constructor, or `null` if the constructor being declared is
* unnamed.
*/
- SimpleIdentifier _name;
+ SimpleIdentifierImpl _name;
/**
* The parameters associated with the constructor.
*/
- FormalParameterList _parameters;
+ FormalParameterListImpl _parameters;
/**
* The token for the separator (colon or equals) before the initializer list
@@ -2865,13 +2865,13 @@
* The name of the constructor to which this constructor will be redirected,
* or `null` if this is not a redirecting factory constructor.
*/
- ConstructorName _redirectedConstructor;
+ ConstructorNameImpl _redirectedConstructor;
/**
* The body of the constructor, or `null` if the constructor does not have a
* body.
*/
- FunctionBody _body;
+ FunctionBodyImpl _body;
/**
* The element associated with this constructor, or `null` if the AST
@@ -2925,7 +2925,7 @@
@override
void set body(FunctionBody functionBody) {
- _body = _becomeParentOf(functionBody as AstNodeImpl);
+ _body = _becomeParentOf(functionBody as FunctionBodyImpl);
}
@override
@@ -2970,7 +2970,7 @@
@override
void set name(SimpleIdentifier identifier) {
- _name = _becomeParentOf(identifier as AstNodeImpl);
+ _name = _becomeParentOf(identifier as SimpleIdentifierImpl);
}
@override
@@ -2978,7 +2978,7 @@
@override
void set parameters(FormalParameterList parameters) {
- _parameters = _becomeParentOf(parameters as AstNodeImpl);
+ _parameters = _becomeParentOf(parameters as FormalParameterListImpl);
}
@override
@@ -2987,7 +2987,7 @@
@override
void set redirectedConstructor(ConstructorName redirectedConstructor) {
_redirectedConstructor =
- _becomeParentOf(redirectedConstructor as AstNodeImpl);
+ _becomeParentOf(redirectedConstructor as ConstructorNameImpl);
}
@override
@@ -2995,7 +2995,7 @@
@override
void set returnType(Identifier typeName) {
- _returnType = _becomeParentOf(typeName as AstNodeImpl);
+ _returnType = _becomeParentOf(typeName as IdentifierImpl);
}
@override
@@ -3038,7 +3038,7 @@
/**
* The name of the field being initialized.
*/
- SimpleIdentifier _fieldName;
+ SimpleIdentifierImpl _fieldName;
/**
* The token for the equal sign between the field name and the expression.
@@ -3049,7 +3049,7 @@
/**
* The expression computing the value to which the field will be initialized.
*/
- Expression _expression;
+ ExpressionImpl _expression;
/**
* Initialize a newly created field initializer to initialize the field with
@@ -3086,7 +3086,7 @@
@override
void set expression(Expression expression) {
- _expression = _becomeParentOf(expression as AstNodeImpl);
+ _expression = _becomeParentOf(expression as ExpressionImpl);
}
@override
@@ -3094,7 +3094,7 @@
@override
void set fieldName(SimpleIdentifier identifier) {
- _fieldName = _becomeParentOf(identifier as AstNodeImpl);
+ _fieldName = _becomeParentOf(identifier as SimpleIdentifierImpl);
}
@override
@@ -3129,7 +3129,7 @@
/**
* The name of the type defining the constructor.
*/
- TypeName _type;
+ TypeNameImpl _type;
/**
* The token for the period before the constructor name, or `null` if the
@@ -3142,7 +3142,7 @@
* The name of the constructor, or `null` if the specified constructor is the
* unnamed constructor.
*/
- SimpleIdentifier _name;
+ SimpleIdentifierImpl _name;
/**
* The element associated with this constructor name based on static type
@@ -3182,7 +3182,7 @@
@override
void set name(SimpleIdentifier name) {
- _name = _becomeParentOf(name as AstNodeImpl);
+ _name = _becomeParentOf(name as SimpleIdentifierImpl);
}
@override
@@ -3190,7 +3190,7 @@
@override
void set type(TypeName type) {
- _type = _becomeParentOf(type as AstNodeImpl);
+ _type = _becomeParentOf(type as TypeNameImpl);
}
@override
@@ -3219,7 +3219,7 @@
/**
* The label associated with the statement, or `null` if there is no label.
*/
- SimpleIdentifier _label;
+ SimpleIdentifierImpl _label;
/**
* The semicolon terminating the statement.
@@ -3261,7 +3261,7 @@
@override
void set label(SimpleIdentifier identifier) {
- _label = _becomeParentOf(identifier as AstNodeImpl);
+ _label = _becomeParentOf(identifier as SimpleIdentifierImpl);
}
@override
@@ -3284,7 +3284,7 @@
* [metadata] can be `null` if the declaration does not have the corresponding
* attribute.
*/
- DeclarationImpl(Comment comment, List<Annotation> metadata)
+ DeclarationImpl(CommentImpl comment, List<Annotation> metadata)
: super(comment, metadata);
}
@@ -3307,12 +3307,12 @@
* The name of the declared type of the parameter, or `null` if the parameter
* does not have a declared type.
*/
- TypeAnnotation _type;
+ TypeAnnotationImpl _type;
/**
* The name of the variable being declared.
*/
- SimpleIdentifier _identifier;
+ SimpleIdentifierImpl _identifier;
/**
* Initialize a newly created formal parameter. Either or both of the
@@ -3357,7 +3357,7 @@
@override
void set identifier(SimpleIdentifier identifier) {
- _identifier = _becomeParentOf(identifier as AstNodeImpl);
+ _identifier = _becomeParentOf(identifier as SimpleIdentifierImpl);
}
@override
@@ -3371,7 +3371,7 @@
@override
void set type(TypeAnnotation type) {
- _type = _becomeParentOf(type as AstNodeImpl);
+ _type = _becomeParentOf(type as TypeAnnotationImpl);
}
@override
@@ -3419,7 +3419,7 @@
/**
* The formal parameter with which the default value is associated.
*/
- NormalFormalParameter _parameter;
+ NormalFormalParameterImpl _parameter;
/**
* The kind of this parameter.
@@ -3438,7 +3438,7 @@
* The expression computing the default value for the parameter, or `null` if
* there is no default value.
*/
- Expression _defaultValue;
+ ExpressionImpl _defaultValue;
/**
* Initialize a newly created default formal parameter. The [separator] and
@@ -3465,7 +3465,7 @@
@override
void set defaultValue(Expression expression) {
- _defaultValue = _becomeParentOf(expression as AstNodeImpl);
+ _defaultValue = _becomeParentOf(expression as ExpressionImpl);
}
@override
@@ -3493,7 +3493,7 @@
@override
void set parameter(NormalFormalParameter formalParameter) {
- _parameter = _becomeParentOf(formalParameter as AstNodeImpl);
+ _parameter = _becomeParentOf(formalParameter as NormalFormalParameterImpl);
}
@override
@@ -3529,7 +3529,7 @@
* [metadata] can be `null` if the directive does not have the corresponding
* attribute.
*/
- DirectiveImpl(Comment comment, List<Annotation> metadata)
+ DirectiveImpl(CommentImpl comment, List<Annotation> metadata)
: super(comment, metadata);
@override
@@ -3559,7 +3559,7 @@
/**
* The body of the loop.
*/
- Statement _body;
+ StatementImpl _body;
/**
* The token representing the 'while' keyword.
@@ -3575,7 +3575,7 @@
/**
* The condition that determines when the loop will terminate.
*/
- Expression _condition;
+ ExpressionImpl _condition;
/**
* The right parenthesis.
@@ -3612,7 +3612,7 @@
@override
void set body(Statement statement) {
- _body = _becomeParentOf(statement as AstNodeImpl);
+ _body = _becomeParentOf(statement as StatementImpl);
}
@override
@@ -3630,7 +3630,7 @@
@override
void set condition(Expression expression) {
- _condition = _becomeParentOf(expression as AstNodeImpl);
+ _condition = _becomeParentOf(expression as ExpressionImpl);
}
@override
@@ -3822,7 +3822,7 @@
/**
* The name of the constant.
*/
- SimpleIdentifier _name;
+ SimpleIdentifierImpl _name;
/**
* Initialize a newly created enum constant declaration. Either or both of the
@@ -3854,7 +3854,7 @@
@override
void set name(SimpleIdentifier name) {
- _name = _becomeParentOf(name as AstNodeImpl);
+ _name = _becomeParentOf(name as SimpleIdentifierImpl);
}
@override
@@ -3906,10 +3906,10 @@
* value.
*/
EnumDeclarationImpl(
- Comment comment,
+ CommentImpl comment,
List<Annotation> metadata,
this.enumKeyword,
- SimpleIdentifier name,
+ SimpleIdentifierImpl name,
this.leftBracket,
List<EnumConstantDeclaration> constants,
this.rightBracket)
@@ -3975,10 +3975,10 @@
* are no combinators.
*/
ExportDirectiveImpl(
- Comment comment,
+ CommentImpl comment,
List<Annotation> metadata,
Token keyword,
- StringLiteral libraryUri,
+ StringLiteralImpl libraryUri,
List<Configuration> configurations,
List<Combinator> combinators,
Token semicolon)
@@ -4037,7 +4037,7 @@
/**
* The expression representing the body of the function.
*/
- Expression _expression;
+ ExpressionImpl _expression;
/**
* The semicolon terminating the statement.
@@ -4083,7 +4083,7 @@
@override
void set expression(Expression expression) {
- _expression = _becomeParentOf(expression as AstNodeImpl);
+ _expression = _becomeParentOf(expression as ExpressionImpl);
}
@override
@@ -4268,7 +4268,7 @@
/**
* The expression that comprises the statement.
*/
- Expression _expression;
+ ExpressionImpl _expression;
/**
* The semicolon terminating the statement, or `null` if the expression is a
@@ -4304,7 +4304,7 @@
@override
void set expression(Expression expression) {
- _expression = _becomeParentOf(expression as AstNodeImpl);
+ _expression = _becomeParentOf(expression as ExpressionImpl);
}
@override
@@ -4335,7 +4335,7 @@
/**
* The name of the class that is being extended.
*/
- TypeName _superclass;
+ TypeNameImpl _superclass;
/**
* Initialize a newly created extends clause.
@@ -4359,7 +4359,7 @@
@override
void set superclass(TypeName name) {
- _superclass = _becomeParentOf(name as AstNodeImpl);
+ _superclass = _becomeParentOf(name as TypeNameImpl);
}
@override
@@ -4394,7 +4394,7 @@
/**
* The fields being declared.
*/
- VariableDeclarationList _fieldList;
+ VariableDeclarationListImpl _fieldList;
/**
* The semicolon terminating the declaration.
@@ -4434,7 +4434,7 @@
@override
void set fields(VariableDeclarationList fields) {
- _fieldList = _becomeParentOf(fields as AstNodeImpl);
+ _fieldList = _becomeParentOf(fields as VariableDeclarationListImpl);
}
@override
@@ -4480,7 +4480,7 @@
* The name of the declared type of the parameter, or `null` if the parameter
* does not have a declared type.
*/
- TypeAnnotation _type;
+ TypeAnnotationImpl _type;
/**
* The token representing the 'this' keyword.
@@ -4498,13 +4498,13 @@
* The type parameters associated with the method, or `null` if the method is
* not a generic method.
*/
- TypeParameterList _typeParameters;
+ TypeParameterListImpl _typeParameters;
/**
* The parameters of the function-typed parameter, or `null` if this is not a
* function-typed field formal parameter.
*/
- FormalParameterList _parameters;
+ FormalParameterListImpl _parameters;
/**
* Initialize a newly created formal parameter. Either or both of the
@@ -4575,7 +4575,7 @@
@override
void set parameters(FormalParameterList parameters) {
- _parameters = _becomeParentOf(parameters as AstNodeImpl);
+ _parameters = _becomeParentOf(parameters as FormalParameterListImpl);
}
@override
@@ -4583,7 +4583,7 @@
@override
void set type(TypeAnnotation type) {
- _type = _becomeParentOf(type as AstNodeImpl);
+ _type = _becomeParentOf(type as TypeAnnotationImpl);
}
@override
@@ -4591,7 +4591,7 @@
@override
void set typeParameters(TypeParameterList typeParameters) {
- _typeParameters = _becomeParentOf(typeParameters as AstNodeImpl);
+ _typeParameters = _becomeParentOf(typeParameters as TypeParameterListImpl);
}
@override
@@ -4638,12 +4638,12 @@
* The declaration of the loop variable, or `null` if the loop variable is a
* simple identifier.
*/
- DeclaredIdentifier _loopVariable;
+ DeclaredIdentifierImpl _loopVariable;
/**
* The loop variable, or `null` if the loop variable is declared in the 'for'.
*/
- SimpleIdentifier _identifier;
+ SimpleIdentifierImpl _identifier;
/**
* The token representing the 'in' keyword.
@@ -4654,7 +4654,7 @@
/**
* The expression evaluated to produce the iterator.
*/
- Expression _iterable;
+ ExpressionImpl _iterable;
/**
* The right parenthesis.
@@ -4665,7 +4665,7 @@
/**
* The body of the loop.
*/
- Statement _body;
+ StatementImpl _body;
/**
* Initialize a newly created for-each statement whose loop control variable
@@ -4713,7 +4713,7 @@
@override
void set body(Statement statement) {
- _body = _becomeParentOf(statement as AstNodeImpl);
+ _body = _becomeParentOf(statement as StatementImpl);
}
@override
@@ -4736,7 +4736,7 @@
@override
void set identifier(SimpleIdentifier identifier) {
- _identifier = _becomeParentOf(identifier as AstNodeImpl);
+ _identifier = _becomeParentOf(identifier as SimpleIdentifierImpl);
}
@override
@@ -4744,7 +4744,7 @@
@override
void set iterable(Expression expression) {
- _iterable = _becomeParentOf(expression as AstNodeImpl);
+ _iterable = _becomeParentOf(expression as ExpressionImpl);
}
@override
@@ -4752,7 +4752,7 @@
@override
void set loopVariable(DeclaredIdentifier variable) {
- _loopVariable = _becomeParentOf(variable as AstNodeImpl);
+ _loopVariable = _becomeParentOf(variable as DeclaredIdentifierImpl);
}
@override
@@ -4958,14 +4958,14 @@
* Note that a for statement cannot have both a variable list and an
* initialization expression, but can validly have neither.
*/
- VariableDeclarationList _variableList;
+ VariableDeclarationListImpl _variableList;
/**
* The initialization expression, or `null` if there is no initialization
* expression. Note that a for statement cannot have both a variable list and
* an initialization expression, but can validly have neither.
*/
- Expression _initialization;
+ ExpressionImpl _initialization;
/**
* The semicolon separating the initializer and the condition.
@@ -4977,7 +4977,7 @@
* The condition used to determine when to terminate the loop, or `null` if
* there is no condition.
*/
- Expression _condition;
+ ExpressionImpl _condition;
/**
* The semicolon separating the condition and the updater.
@@ -4999,7 +4999,7 @@
/**
* The body of the loop.
*/
- Statement _body;
+ StatementImpl _body;
/**
* Initialize a newly created for statement. Either the [variableList] or the
@@ -5033,7 +5033,7 @@
@override
void set body(Statement statement) {
- _body = _becomeParentOf(statement as AstNodeImpl);
+ _body = _becomeParentOf(statement as StatementImpl);
}
@override
@@ -5054,7 +5054,7 @@
@override
void set condition(Expression expression) {
- _condition = _becomeParentOf(expression as AstNodeImpl);
+ _condition = _becomeParentOf(expression as ExpressionImpl);
}
@override
@@ -5065,7 +5065,7 @@
@override
void set initialization(Expression initialization) {
- _initialization = _becomeParentOf(initialization as AstNodeImpl);
+ _initialization = _becomeParentOf(initialization as ExpressionImpl);
}
@override
@@ -5076,7 +5076,8 @@
@override
void set variables(VariableDeclarationList variableList) {
- _variableList = _becomeParentOf(variableList as AstNodeImpl);
+ _variableList =
+ _becomeParentOf(variableList as VariableDeclarationListImpl);
}
@override
@@ -5179,7 +5180,7 @@
/**
* The return type of the function, or `null` if no return type was declared.
*/
- TypeAnnotation _returnType;
+ TypeAnnotationImpl _returnType;
/**
* The token representing the 'get' or 'set' keyword, or `null` if this is a
@@ -5191,7 +5192,7 @@
/**
* The function expression being wrapped.
*/
- FunctionExpression _functionExpression;
+ FunctionExpressionImpl _functionExpression;
/**
* Initialize a newly created function declaration. Either or both of the
@@ -5247,7 +5248,8 @@
@override
void set functionExpression(FunctionExpression functionExpression) {
- _functionExpression = _becomeParentOf(functionExpression as AstNodeImpl);
+ _functionExpression =
+ _becomeParentOf(functionExpression as FunctionExpressionImpl);
}
@override
@@ -5261,7 +5263,7 @@
@override
void set returnType(TypeAnnotation type) {
- _returnType = _becomeParentOf(type as AstNodeImpl);
+ _returnType = _becomeParentOf(type as TypeAnnotationImpl);
}
@override
@@ -5284,7 +5286,7 @@
/**
* The function declaration being wrapped.
*/
- FunctionDeclaration _functionDeclaration;
+ FunctionDeclarationImpl _functionDeclaration;
/**
* Initialize a newly created function declaration statement.
@@ -5309,7 +5311,8 @@
@override
void set functionDeclaration(FunctionDeclaration functionDeclaration) {
- _functionDeclaration = _becomeParentOf(functionDeclaration as AstNodeImpl);
+ _functionDeclaration =
+ _becomeParentOf(functionDeclaration as FunctionDeclarationImpl);
}
@override
@@ -5334,17 +5337,17 @@
* The type parameters associated with the method, or `null` if the method is
* not a generic method.
*/
- TypeParameterList _typeParameters;
+ TypeParameterListImpl _typeParameters;
/**
* The parameters associated with the function.
*/
- FormalParameterList _parameters;
+ FormalParameterListImpl _parameters;
/**
* The body of the function, or `null` if this is an external function.
*/
- FunctionBody _body;
+ FunctionBodyImpl _body;
/**
* The element associated with the function, or `null` if the AST structure
@@ -5382,7 +5385,7 @@
@override
void set body(FunctionBody functionBody) {
- _body = _becomeParentOf(functionBody as AstNodeImpl);
+ _body = _becomeParentOf(functionBody as FunctionBodyImpl);
}
@override
@@ -5406,7 +5409,7 @@
@override
void set parameters(FormalParameterList parameters) {
- _parameters = _becomeParentOf(parameters as AstNodeImpl);
+ _parameters = _becomeParentOf(parameters as FormalParameterListImpl);
}
@override
@@ -5417,7 +5420,7 @@
@override
void set typeParameters(TypeParameterList typeParameters) {
- _typeParameters = _becomeParentOf(typeParameters as AstNodeImpl);
+ _typeParameters = _becomeParentOf(typeParameters as TypeParameterListImpl);
}
@override
@@ -5445,7 +5448,7 @@
/**
* The expression producing the function being invoked.
*/
- Expression _function;
+ ExpressionImpl _function;
/**
* The element associated with the function being invoked based on static type
@@ -5496,7 +5499,7 @@
@override
void set function(Expression expression) {
- _function = _becomeParentOf(expression as AstNodeImpl);
+ _function = _becomeParentOf(expression as ExpressionImpl);
}
@override
@@ -5528,18 +5531,18 @@
* The name of the return type of the function type being defined, or `null`
* if no return type was given.
*/
- TypeAnnotation _returnType;
+ TypeAnnotationImpl _returnType;
/**
* The type parameters for the function type, or `null` if the function type
* does not have any type parameters.
*/
- TypeParameterList _typeParameters;
+ TypeParameterListImpl _typeParameters;
/**
* The parameters associated with the function type.
*/
- FormalParameterList _parameters;
+ FormalParameterListImpl _parameters;
/**
* Initialize a newly created function type alias. Either or both of the
@@ -5581,7 +5584,7 @@
@override
void set parameters(FormalParameterList parameters) {
- _parameters = _becomeParentOf(parameters as AstNodeImpl);
+ _parameters = _becomeParentOf(parameters as FormalParameterListImpl);
}
@override
@@ -5589,7 +5592,7 @@
@override
void set returnType(TypeAnnotation type) {
- _returnType = _becomeParentOf(type as AstNodeImpl);
+ _returnType = _becomeParentOf(type as TypeAnnotationImpl);
}
@override
@@ -5597,7 +5600,7 @@
@override
void set typeParameters(TypeParameterList typeParameters) {
- _typeParameters = _becomeParentOf(typeParameters as AstNodeImpl);
+ _typeParameters = _becomeParentOf(typeParameters as TypeParameterListImpl);
}
@override
@@ -5625,18 +5628,18 @@
* The return type of the function, or `null` if the function does not have a
* return type.
*/
- TypeAnnotation _returnType;
+ TypeAnnotationImpl _returnType;
/**
* The type parameters associated with the function, or `null` if the function
* is not a generic function.
*/
- TypeParameterList _typeParameters;
+ TypeParameterListImpl _typeParameters;
/**
* The parameters of the function-typed parameter.
*/
- FormalParameterList _parameters;
+ FormalParameterListImpl _parameters;
@override
Token question;
@@ -5687,7 +5690,7 @@
@override
void set parameters(FormalParameterList parameters) {
- _parameters = _becomeParentOf(parameters as AstNodeImpl);
+ _parameters = _becomeParentOf(parameters as FormalParameterListImpl);
}
@override
@@ -5695,7 +5698,7 @@
@override
void set returnType(TypeAnnotation type) {
- _returnType = _becomeParentOf(type as AstNodeImpl);
+ _returnType = _becomeParentOf(type as TypeAnnotationImpl);
}
@override
@@ -5703,7 +5706,7 @@
@override
void set typeParameters(TypeParameterList typeParameters) {
- _typeParameters = _becomeParentOf(typeParameters as AstNodeImpl);
+ _typeParameters = _becomeParentOf(typeParameters as TypeParameterListImpl);
}
@override
@@ -5755,7 +5758,7 @@
* The name of the return type of the function type being defined, or
* `null` if no return type was given.
*/
- TypeAnnotation _returnType;
+ TypeAnnotationImpl _returnType;
@override
Token functionKeyword;
@@ -5764,12 +5767,12 @@
* The type parameters for the function type, or `null` if the function type
* does not have any type parameters.
*/
- TypeParameterList _typeParameters;
+ TypeParameterListImpl _typeParameters;
/**
* The parameters associated with the function type.
*/
- FormalParameterList _parameters;
+ FormalParameterListImpl _parameters;
@override
DartType type;
@@ -5806,7 +5809,7 @@
@override
void set parameters(FormalParameterList parameters) {
- _parameters = _becomeParentOf(parameters as AstNodeImpl);
+ _parameters = _becomeParentOf(parameters as FormalParameterListImpl);
}
@override
@@ -5814,7 +5817,7 @@
@override
void set returnType(TypeAnnotation type) {
- _returnType = _becomeParentOf(type as AstNodeImpl);
+ _returnType = _becomeParentOf(type as TypeAnnotationImpl);
}
/**
@@ -5828,7 +5831,7 @@
* [typeParameters].
*/
void set typeParameters(TypeParameterList typeParameters) {
- _typeParameters = _becomeParentOf(typeParameters as AstNodeImpl);
+ _typeParameters = _becomeParentOf(typeParameters as TypeParameterListImpl);
}
// TODO: implement type
@@ -5856,7 +5859,7 @@
* The type parameters for the function type, or `null` if the function
* type does not have any type parameters.
*/
- TypeParameterList _typeParameters;
+ TypeParameterListImpl _typeParameters;
@override
Token equals;
@@ -5864,7 +5867,7 @@
/**
* The type of function being defined by the alias.
*/
- GenericFunctionType _functionType;
+ GenericFunctionTypeImpl _functionType;
/**
* Returns a newly created generic type alias. Either or both of the
@@ -5873,10 +5876,10 @@
* are no type parameters.
*/
GenericTypeAliasImpl(
- Comment comment,
+ CommentImpl comment,
List<Annotation> metadata,
Token typedefToken,
- SimpleIdentifier name,
+ SimpleIdentifierImpl name,
TypeParameterListImpl typeParameters,
this.equals,
GenericFunctionTypeImpl functionType,
@@ -5903,7 +5906,7 @@
@override
void set functionType(GenericFunctionType functionType) {
- _functionType = _becomeParentOf(functionType as AstNodeImpl);
+ _functionType = _becomeParentOf(functionType as GenericFunctionTypeImpl);
}
@override
@@ -5911,7 +5914,7 @@
@override
void set typeParameters(TypeParameterList typeParameters) {
- _typeParameters = _becomeParentOf(typeParameters as AstNodeImpl);
+ _typeParameters = _becomeParentOf(typeParameters as TypeParameterListImpl);
}
@override
@@ -6012,7 +6015,7 @@
/**
* The condition used to determine which of the statements is executed next.
*/
- Expression _condition;
+ ExpressionImpl _condition;
/**
* The right parenthesis.
@@ -6023,7 +6026,7 @@
/**
* The statement that is executed if the condition evaluates to `true`.
*/
- Statement _thenStatement;
+ StatementImpl _thenStatement;
/**
* The token representing the 'else' keyword, or `null` if there is no else
@@ -6036,7 +6039,7 @@
* The statement that is executed if the condition evaluates to `false`, or
* `null` if there is no else statement.
*/
- Statement _elseStatement;
+ StatementImpl _elseStatement;
/**
* Initialize a newly created if statement. The [elseKeyword] and
@@ -6073,7 +6076,7 @@
@override
void set condition(Expression expression) {
- _condition = _becomeParentOf(expression as AstNodeImpl);
+ _condition = _becomeParentOf(expression as ExpressionImpl);
}
@override
@@ -6081,7 +6084,7 @@
@override
void set elseStatement(Statement statement) {
- _elseStatement = _becomeParentOf(statement as AstNodeImpl);
+ _elseStatement = _becomeParentOf(statement as StatementImpl);
}
@override
@@ -6097,7 +6100,7 @@
@override
void set thenStatement(Statement statement) {
- _thenStatement = _becomeParentOf(statement as AstNodeImpl);
+ _thenStatement = _becomeParentOf(statement as StatementImpl);
}
@override
@@ -6186,7 +6189,7 @@
* The prefix to be used with the imported names, or `null` if the imported
* names are not prefixed.
*/
- SimpleIdentifier _prefix;
+ SimpleIdentifierImpl _prefix;
/**
* Initialize a newly created import directive. Either or both of the
@@ -6229,7 +6232,7 @@
@override
void set prefix(SimpleIdentifier identifier) {
- _prefix = _becomeParentOf(identifier as AstNodeImpl);
+ _prefix = _becomeParentOf(identifier as SimpleIdentifierImpl);
}
@override
@@ -6263,7 +6266,7 @@
* The expression used to compute the object being indexed, or `null` if this
* index expression is part of a cascade expression.
*/
- Expression _target;
+ ExpressionImpl _target;
/**
* The period ("..") before a cascaded index expression, or `null` if this
@@ -6281,7 +6284,7 @@
/**
* The expression used to compute the index.
*/
- Expression _index;
+ ExpressionImpl _index;
/**
* The right square bracket.
@@ -6364,7 +6367,7 @@
@override
void set index(Expression expression) {
- _index = _becomeParentOf(expression as AstNodeImpl);
+ _index = _becomeParentOf(expression as ExpressionImpl);
}
@override
@@ -6396,7 +6399,7 @@
@override
void set target(Expression expression) {
- _target = _becomeParentOf(expression as AstNodeImpl);
+ _target = _becomeParentOf(expression as ExpressionImpl);
}
/**
@@ -6491,12 +6494,12 @@
/**
* The name of the constructor to be invoked.
*/
- ConstructorName _constructorName;
+ ConstructorNameImpl _constructorName;
/**
* The list of arguments to the constructor.
*/
- ArgumentList _argumentList;
+ ArgumentListImpl _argumentList;
/**
* The element associated with the constructor based on static type
@@ -6520,7 +6523,7 @@
@override
void set argumentList(ArgumentList argumentList) {
- _argumentList = _becomeParentOf(argumentList as AstNodeImpl);
+ _argumentList = _becomeParentOf(argumentList as ArgumentListImpl);
}
@override
@@ -6537,7 +6540,7 @@
@override
void set constructorName(ConstructorName name) {
- _constructorName = _becomeParentOf(name as AstNodeImpl);
+ _constructorName = _becomeParentOf(name as ConstructorNameImpl);
}
@override
@@ -6790,7 +6793,7 @@
/**
* The expression to be evaluated for the value to be converted into a string.
*/
- Expression _expression;
+ ExpressionImpl _expression;
/**
* The right curly bracket, or `null` if the expression is an identifier
@@ -6829,7 +6832,7 @@
@override
void set expression(Expression expression) {
- _expression = _becomeParentOf(expression as AstNodeImpl);
+ _expression = _becomeParentOf(expression as ExpressionImpl);
}
@override
@@ -6907,13 +6910,13 @@
/**
* The list of arguments to the function.
*/
- ArgumentList _argumentList;
+ ArgumentListImpl _argumentList;
/**
* The type arguments to be applied to the method being invoked, or `null` if
* no type arguments were provided.
*/
- TypeArgumentList _typeArguments;
+ TypeArgumentListImpl _typeArguments;
@override
DartType propagatedInvokeType;
@@ -6934,14 +6937,14 @@
ArgumentList get argumentList => _argumentList;
void set argumentList(ArgumentList argumentList) {
- _argumentList = _becomeParentOf(argumentList as AstNodeImpl);
+ _argumentList = _becomeParentOf(argumentList as ArgumentListImpl);
}
@override
TypeArgumentList get typeArguments => _typeArguments;
void set typeArguments(TypeArgumentList typeArguments) {
- _typeArguments = _becomeParentOf(typeArguments as AstNodeImpl);
+ _typeArguments = _becomeParentOf(typeArguments as TypeArgumentListImpl);
}
}
@@ -6955,7 +6958,7 @@
/**
* The expression used to compute the value whose type is being tested.
*/
- Expression _expression;
+ ExpressionImpl _expression;
/**
* The is operator.
@@ -6972,7 +6975,7 @@
/**
* The name of the type being tested for.
*/
- TypeAnnotation _type;
+ TypeAnnotationImpl _type;
/**
* Initialize a newly created is expression. The [notOperator] can be `null`
@@ -7002,7 +7005,7 @@
@override
void set expression(Expression expression) {
- _expression = _becomeParentOf(expression as AstNodeImpl);
+ _expression = _becomeParentOf(expression as ExpressionImpl);
}
@override
@@ -7013,7 +7016,7 @@
@override
void set type(TypeAnnotation type) {
- _type = _becomeParentOf(type as AstNodeImpl);
+ _type = _becomeParentOf(type as TypeAnnotationImpl);
}
@override
@@ -7041,7 +7044,7 @@
/**
* The statement with which the labels are being associated.
*/
- Statement _statement;
+ StatementImpl _statement;
/**
* Initialize a newly created labeled statement.
@@ -7075,7 +7078,7 @@
@override
void set statement(Statement statement) {
- _statement = _becomeParentOf(statement as AstNodeImpl);
+ _statement = _becomeParentOf(statement as StatementImpl);
}
@override
@@ -7101,7 +7104,7 @@
/**
* The label being associated with the statement.
*/
- SimpleIdentifier _label;
+ SimpleIdentifierImpl _label;
/**
* The colon that separates the label from the statement.
@@ -7131,7 +7134,7 @@
@override
void set label(SimpleIdentifier label) {
- _label = _becomeParentOf(label as AstNodeImpl);
+ _label = _becomeParentOf(label as SimpleIdentifierImpl);
}
@override
@@ -7159,7 +7162,7 @@
/**
* The name of the library being defined.
*/
- LibraryIdentifier _name;
+ LibraryIdentifierImpl _name;
/**
* The semicolon terminating the directive.
@@ -7196,7 +7199,7 @@
@override
void set name(LibraryIdentifier name) {
- _name = _becomeParentOf(name as AstNodeImpl);
+ _name = _becomeParentOf(name as LibraryIdentifierImpl);
}
@override
@@ -7311,7 +7314,7 @@
* type arguments were declared. The list of [elements] can be `null` if the
* list is empty.
*/
- ListLiteralImpl(Token constKeyword, TypeArgumentList typeArguments,
+ ListLiteralImpl(Token constKeyword, TypeArgumentListImpl typeArguments,
this.leftBracket, List<Expression> elements, this.rightBracket)
: super(constKeyword, typeArguments) {
_elements = new NodeListImpl<Expression>(this, elements);
@@ -7399,7 +7402,7 @@
/**
* The expression computing the key with which the value will be associated.
*/
- Expression _key;
+ ExpressionImpl _key;
/**
* The colon that separates the key from the value.
@@ -7410,7 +7413,7 @@
/**
* The expression computing the value that will be associated with the key.
*/
- Expression _value;
+ ExpressionImpl _value;
/**
* Initialize a newly created map literal entry.
@@ -7436,7 +7439,7 @@
@override
void set key(Expression string) {
- _key = _becomeParentOf(string as AstNodeImpl);
+ _key = _becomeParentOf(string as ExpressionImpl);
}
@override
@@ -7444,7 +7447,7 @@
@override
void set value(Expression expression) {
- _value = _becomeParentOf(expression as AstNodeImpl);
+ _value = _becomeParentOf(expression as ExpressionImpl);
}
@override
@@ -7487,7 +7490,7 @@
* the literal is not a constant. The [typeArguments] can be `null` if no type
* arguments were declared. The [entries] can be `null` if the map is empty.
*/
- MapLiteralImpl(Token constKeyword, TypeArgumentList typeArguments,
+ MapLiteralImpl(Token constKeyword, TypeArgumentListImpl typeArguments,
this.leftBracket, List<MapLiteralEntry> entries, this.rightBracket)
: super(constKeyword, typeArguments) {
_entries = new NodeListImpl<MapLiteralEntry>(this, entries);
@@ -7561,7 +7564,7 @@
/**
* The return type of the method, or `null` if no return type was declared.
*/
- TypeAnnotation _returnType;
+ TypeAnnotationImpl _returnType;
/**
* The token representing the 'get' or 'set' keyword, or `null` if this is a
@@ -7580,24 +7583,24 @@
/**
* The name of the method.
*/
- SimpleIdentifier _name;
+ SimpleIdentifierImpl _name;
/**
* The type parameters associated with the method, or `null` if the method is
* not a generic method.
*/
- TypeParameterList _typeParameters;
+ TypeParameterListImpl _typeParameters;
/**
* The parameters associated with the method, or `null` if this method
* declares a getter.
*/
- FormalParameterList _parameters;
+ FormalParameterListImpl _parameters;
/**
* The body of the method.
*/
- FunctionBody _body;
+ FunctionBodyImpl _body;
/**
* Initialize a newly created method declaration. Either or both of the
@@ -7635,7 +7638,7 @@
@override
void set body(FunctionBody functionBody) {
- _body = _becomeParentOf(functionBody as AstNodeImpl);
+ _body = _becomeParentOf(functionBody as FunctionBodyImpl);
}
@override
@@ -7702,7 +7705,7 @@
@override
void set name(SimpleIdentifier identifier) {
- _name = _becomeParentOf(identifier as AstNodeImpl);
+ _name = _becomeParentOf(identifier as SimpleIdentifierImpl);
}
@override
@@ -7710,7 +7713,7 @@
@override
void set parameters(FormalParameterList parameters) {
- _parameters = _becomeParentOf(parameters as AstNodeImpl);
+ _parameters = _becomeParentOf(parameters as FormalParameterListImpl);
}
@override
@@ -7718,7 +7721,7 @@
@override
void set returnType(TypeAnnotation type) {
- _returnType = _becomeParentOf(type as AstNodeImpl);
+ _returnType = _becomeParentOf(type as TypeAnnotationImpl);
}
@override
@@ -7726,7 +7729,7 @@
@override
void set typeParameters(TypeParameterList typeParameters) {
- _typeParameters = _becomeParentOf(typeParameters as AstNodeImpl);
+ _typeParameters = _becomeParentOf(typeParameters as TypeParameterListImpl);
}
@override
@@ -7758,7 +7761,7 @@
* The expression producing the object on which the method is defined, or
* `null` if there is no target (that is, the target is implicitly `this`).
*/
- Expression _target;
+ ExpressionImpl _target;
/**
* The operator that separates the target from the method name, or `null`
@@ -7772,7 +7775,7 @@
/**
* The name of the method being invoked.
*/
- SimpleIdentifier _methodName;
+ SimpleIdentifierImpl _methodName;
/**
* Initialize a newly created method invocation. The [target] and [operator]
@@ -7821,7 +7824,7 @@
@override
void set methodName(SimpleIdentifier identifier) {
- _methodName = _becomeParentOf(identifier as AstNodeImpl);
+ _methodName = _becomeParentOf(identifier as SimpleIdentifierImpl);
}
@override
@@ -7847,7 +7850,7 @@
@override
void set target(Expression expression) {
- _target = _becomeParentOf(expression as AstNodeImpl);
+ _target = _becomeParentOf(expression as ExpressionImpl);
}
@override
@@ -7870,7 +7873,7 @@
/**
* The name of the member being declared.
*/
- SimpleIdentifier _name;
+ SimpleIdentifierImpl _name;
/**
* Initialize a newly created compilation unit member with the given [name].
@@ -7888,7 +7891,7 @@
@override
void set name(SimpleIdentifier identifier) {
- _name = _becomeParentOf(identifier as AstNodeImpl);
+ _name = _becomeParentOf(identifier as SimpleIdentifierImpl);
}
}
@@ -7903,12 +7906,12 @@
/**
* The name associated with the expression.
*/
- Label _name;
+ LabelImpl _name;
/**
* The expression with which the name is associated.
*/
- Expression _expression;
+ ExpressionImpl _expression;
/**
* Initialize a newly created named expression..
@@ -7942,7 +7945,7 @@
@override
void set expression(Expression expression) {
- _expression = _becomeParentOf(expression as AstNodeImpl);
+ _expression = _becomeParentOf(expression as ExpressionImpl);
}
@override
@@ -7950,7 +7953,7 @@
@override
void set name(Label identifier) {
- _name = _becomeParentOf(identifier as AstNodeImpl);
+ _name = _becomeParentOf(identifier as LabelImpl);
}
@override
@@ -8011,10 +8014,10 @@
* are no combinators.
*/
NamespaceDirectiveImpl(
- Comment comment,
+ CommentImpl comment,
List<Annotation> metadata,
this.keyword,
- StringLiteral libraryUri,
+ StringLiteralImpl libraryUri,
List<Configuration> configurations,
List<Combinator> combinators,
this.semicolon)
@@ -8065,7 +8068,7 @@
/**
* The name of the native object that implements the class.
*/
- StringLiteral _name;
+ StringLiteralImpl _name;
/**
* Initialize a newly created native clause.
@@ -8089,7 +8092,7 @@
@override
void set name(StringLiteral name) {
- _name = _becomeParentOf(name as AstNodeImpl);
+ _name = _becomeParentOf(name as StringLiteralImpl);
}
@override
@@ -8119,7 +8122,7 @@
/**
* The string literal, after the 'native' token.
*/
- StringLiteral _stringLiteral;
+ StringLiteralImpl _stringLiteral;
/**
* The token representing the semicolon that marks the end of the function
@@ -8154,7 +8157,7 @@
@override
void set stringLiteral(StringLiteral stringLiteral) {
- _stringLiteral = _becomeParentOf(stringLiteral as AstNodeImpl);
+ _stringLiteral = _becomeParentOf(stringLiteral as StringLiteralImpl);
}
@override
@@ -8330,7 +8333,7 @@
* The documentation comment associated with this parameter, or `null` if this
* parameter does not have a documentation comment associated with it.
*/
- Comment _comment;
+ CommentImpl _comment;
/**
* The annotations associated with this parameter.
@@ -8345,7 +8348,7 @@
/**
* The name of the parameter being declared.
*/
- SimpleIdentifier _identifier;
+ SimpleIdentifierImpl _identifier;
/**
* Initialize a newly created formal parameter. Either or both of the
@@ -8364,7 +8367,7 @@
@override
void set documentationComment(Comment comment) {
- _comment = _becomeParentOf(comment as AstNodeImpl);
+ _comment = _becomeParentOf(comment as CommentImpl);
}
@override
@@ -8372,7 +8375,7 @@
@override
void set identifier(SimpleIdentifier identifier) {
- _identifier = _becomeParentOf(identifier as AstNodeImpl);
+ _identifier = _becomeParentOf(identifier as SimpleIdentifierImpl);
}
@deprecated
@@ -8499,7 +8502,7 @@
/**
* The expression within the parentheses.
*/
- Expression _expression;
+ ExpressionImpl _expression;
/**
* The right parenthesis.
@@ -8531,7 +8534,7 @@
@override
void set expression(Expression expression) {
- _expression = _becomeParentOf(expression as AstNodeImpl);
+ _expression = _becomeParentOf(expression as ExpressionImpl);
}
@override
@@ -8582,8 +8585,8 @@
* and [metadata] can be `null` if the directive does not have the
* corresponding attribute.
*/
- PartDirectiveImpl(Comment comment, List<Annotation> metadata,
- this.partKeyword, StringLiteral partUri, this.semicolon)
+ PartDirectiveImpl(CommentImpl comment, List<Annotation> metadata,
+ this.partKeyword, StringLiteralImpl partUri, this.semicolon)
: super(comment, metadata, partUri);
@override
@@ -8634,7 +8637,7 @@
* The name of the library that the containing compilation unit is part of, or
* `null` if no name was given (typically because a library URI was provided).
*/
- LibraryIdentifier _libraryName;
+ LibraryIdentifierImpl _libraryName;
/**
* The semicolon terminating the directive.
@@ -8682,7 +8685,7 @@
@override
void set libraryName(LibraryIdentifier libraryName) {
- _libraryName = _becomeParentOf(libraryName as AstNodeImpl);
+ _libraryName = _becomeParentOf(libraryName as LibraryIdentifierImpl);
}
@override
@@ -8690,7 +8693,7 @@
@override
void set uri(StringLiteral uri) {
- _uri = _becomeParentOf(uri as AstNodeImpl);
+ _uri = _becomeParentOf(uri as StringLiteralImpl);
}
@override
@@ -8715,7 +8718,7 @@
/**
* The expression computing the operand for the operator.
*/
- Expression _operand;
+ ExpressionImpl _operand;
/**
* The postfix operator being applied to the operand.
@@ -8771,7 +8774,7 @@
@override
void set operand(Expression expression) {
- _operand = _becomeParentOf(expression as AstNodeImpl);
+ _operand = _becomeParentOf(expression as ExpressionImpl);
}
@override
@@ -8832,7 +8835,7 @@
/**
* The prefix associated with the library in which the identifier is defined.
*/
- SimpleIdentifier _prefix;
+ SimpleIdentifierImpl _prefix;
/**
* The period used to separate the prefix from the identifier.
@@ -8842,7 +8845,7 @@
/**
* The identifier being prefixed.
*/
- SimpleIdentifier _identifier;
+ SimpleIdentifierImpl _identifier;
/**
* Initialize a newly created prefixed identifier.
@@ -8883,7 +8886,7 @@
@override
void set identifier(SimpleIdentifier identifier) {
- _identifier = _becomeParentOf(identifier as AstNodeImpl);
+ _identifier = _becomeParentOf(identifier as SimpleIdentifierImpl);
}
@override
@@ -8911,7 +8914,7 @@
@override
void set prefix(SimpleIdentifier identifier) {
- _prefix = _becomeParentOf(identifier as AstNodeImpl);
+ _prefix = _becomeParentOf(identifier as SimpleIdentifierImpl);
}
@override
@@ -8955,7 +8958,7 @@
/**
* The expression computing the operand for the operator.
*/
- Expression _operand;
+ ExpressionImpl _operand;
/**
* The element associated with the operator based on the static type of the
@@ -9002,7 +9005,7 @@
@override
void set operand(Expression expression) {
- _operand = _becomeParentOf(expression as AstNodeImpl);
+ _operand = _becomeParentOf(expression as ExpressionImpl);
}
@override
@@ -9065,7 +9068,7 @@
/**
* The expression computing the object defining the property being accessed.
*/
- Expression _target;
+ ExpressionImpl _target;
/**
* The property access operator.
@@ -9075,7 +9078,7 @@
/**
* The name of the property being accessed.
*/
- SimpleIdentifier _propertyName;
+ SimpleIdentifierImpl _propertyName;
/**
* Initialize a newly created property access expression.
@@ -9116,7 +9119,7 @@
@override
void set propertyName(SimpleIdentifier identifier) {
- _propertyName = _becomeParentOf(identifier as AstNodeImpl);
+ _propertyName = _becomeParentOf(identifier as SimpleIdentifierImpl);
}
@override
@@ -9139,7 +9142,7 @@
@override
void set target(Expression expression) {
- _target = _becomeParentOf(expression as AstNodeImpl);
+ _target = _becomeParentOf(expression as ExpressionImpl);
}
@override
@@ -9176,12 +9179,12 @@
* The name of the constructor that is being invoked, or `null` if the unnamed
* constructor is being invoked.
*/
- SimpleIdentifier _constructorName;
+ SimpleIdentifierImpl _constructorName;
/**
* The list of arguments to the constructor.
*/
- ArgumentList _argumentList;
+ ArgumentListImpl _argumentList;
/**
* The element associated with the constructor based on static type
@@ -9206,7 +9209,7 @@
@override
void set argumentList(ArgumentList argumentList) {
- _argumentList = _becomeParentOf(argumentList as AstNodeImpl);
+ _argumentList = _becomeParentOf(argumentList as ArgumentListImpl);
}
@override
@@ -9224,7 +9227,7 @@
@override
void set constructorName(SimpleIdentifier identifier) {
- _constructorName = _becomeParentOf(identifier as AstNodeImpl);
+ _constructorName = _becomeParentOf(identifier as SimpleIdentifierImpl);
}
@override
@@ -9297,7 +9300,7 @@
* The expression computing the value to be returned, or `null` if no explicit
* value was provided.
*/
- Expression _expression;
+ ExpressionImpl _expression;
/**
* The semicolon terminating the statement.
@@ -9328,7 +9331,7 @@
@override
void set expression(Expression expression) {
- _expression = _becomeParentOf(expression as AstNodeImpl);
+ _expression = _becomeParentOf(expression as ExpressionImpl);
}
@override
@@ -9435,7 +9438,7 @@
* The name of the declared type of the parameter, or `null` if the parameter
* does not have a declared type.
*/
- TypeAnnotation _type;
+ TypeAnnotationImpl _type;
@override
ParameterElement element;
@@ -9490,7 +9493,7 @@
@override
void set type(TypeAnnotation type) {
- _type = _becomeParentOf(type as AstNodeImpl);
+ _type = _becomeParentOf(type as TypeAnnotationImpl);
}
@override
@@ -10058,12 +10061,12 @@
* The name of the constructor that is being invoked, or `null` if the unnamed
* constructor is being invoked.
*/
- SimpleIdentifier _constructorName;
+ SimpleIdentifierImpl _constructorName;
/**
* The list of arguments to the constructor.
*/
- ArgumentList _argumentList;
+ ArgumentListImpl _argumentList;
/**
* The element associated with the constructor based on static type
@@ -10089,7 +10092,7 @@
@override
void set argumentList(ArgumentList argumentList) {
- _argumentList = _becomeParentOf(argumentList as AstNodeImpl);
+ _argumentList = _becomeParentOf(argumentList as ArgumentListImpl);
}
@override
@@ -10107,7 +10110,7 @@
@override
void set constructorName(SimpleIdentifier identifier) {
- _constructorName = _becomeParentOf(identifier as AstNodeImpl);
+ _constructorName = _becomeParentOf(identifier as SimpleIdentifierImpl);
}
@override
@@ -10173,7 +10176,7 @@
/**
* The expression controlling whether the statements will be executed.
*/
- Expression _expression;
+ ExpressionImpl _expression;
/**
* Initialize a newly created switch case. The list of [labels] can be `null`
@@ -10198,7 +10201,7 @@
@override
void set expression(Expression expression) {
- _expression = _becomeParentOf(expression as AstNodeImpl);
+ _expression = _becomeParentOf(expression as ExpressionImpl);
}
@override
@@ -10326,7 +10329,7 @@
* The expression used to determine which of the switch members will be
* selected.
*/
- Expression _expression;
+ ExpressionImpl _expression;
/**
* The right parenthesis.
@@ -10385,7 +10388,7 @@
@override
void set expression(Expression expression) {
- _expression = _becomeParentOf(expression as AstNodeImpl);
+ _expression = _becomeParentOf(expression as ExpressionImpl);
}
@override
@@ -10498,7 +10501,7 @@
/**
* The expression computing the exception to be thrown.
*/
- Expression _expression;
+ ExpressionImpl _expression;
/**
* Initialize a newly created throw expression.
@@ -10527,7 +10530,7 @@
@override
void set expression(Expression expression) {
- _expression = _becomeParentOf(expression as AstNodeImpl);
+ _expression = _becomeParentOf(expression as ExpressionImpl);
}
@override
@@ -10554,7 +10557,7 @@
/**
* The top-level variables being declared.
*/
- VariableDeclarationList _variableList;
+ VariableDeclarationListImpl _variableList;
/**
* The semicolon terminating the declaration.
@@ -10593,7 +10596,7 @@
@override
void set variables(VariableDeclarationList variables) {
- _variableList = _becomeParentOf(variables as AstNodeImpl);
+ _variableList = _becomeParentOf(variables as VariableDeclarationListImpl);
}
@override
@@ -10625,7 +10628,7 @@
/**
* The body of the statement.
*/
- Block _body;
+ BlockImpl _body;
/**
* The catch clauses contained in the try statement.
@@ -10642,7 +10645,7 @@
* The finally block contained in the try statement, or `null` if the
* statement does not contain a finally clause.
*/
- Block _finallyBlock;
+ BlockImpl _finallyBlock;
/**
* Initialize a newly created try statement. The list of [catchClauses] can be
@@ -10668,7 +10671,7 @@
@override
void set body(Block block) {
- _body = _becomeParentOf(block as AstNodeImpl);
+ _body = _becomeParentOf(block as BlockImpl);
}
@override
@@ -10699,7 +10702,7 @@
@override
void set finallyBlock(Block block) {
- _finallyBlock = _becomeParentOf(block as AstNodeImpl);
+ _finallyBlock = _becomeParentOf(block as BlockImpl);
}
@override
@@ -10740,8 +10743,8 @@
* [metadata] can be `null` if the declaration does not have the corresponding
* attribute.
*/
- TypeAliasImpl(Comment comment, List<Annotation> metadata, this.typedefKeyword,
- SimpleIdentifier name, this.semicolon)
+ TypeAliasImpl(CommentImpl comment, List<Annotation> metadata,
+ this.typedefKeyword, SimpleIdentifierImpl name, this.semicolon)
: super(comment, metadata, name);
@override
@@ -10834,7 +10837,7 @@
* The type argument associated with this literal, or `null` if no type
* arguments were declared.
*/
- TypeArgumentList _typeArguments;
+ TypeArgumentListImpl _typeArguments;
/**
* Initialize a newly created typed literal. The [constKeyword] can be `null`\
@@ -10855,7 +10858,7 @@
@override
void set typeArguments(TypeArgumentList typeArguments) {
- _typeArguments = _becomeParentOf(typeArguments as AstNodeImpl);
+ _typeArguments = _becomeParentOf(typeArguments as TypeArgumentListImpl);
}
ChildEntities get _childEntities =>
@@ -10877,13 +10880,13 @@
/**
* The name of the type.
*/
- Identifier _name;
+ IdentifierImpl _name;
/**
* The type arguments associated with the type, or `null` if there are no type
* arguments.
*/
- TypeArgumentList _typeArguments;
+ TypeArgumentListImpl _typeArguments;
@override
Token question;
@@ -10935,7 +10938,7 @@
@override
void set name(Identifier identifier) {
- _name = _becomeParentOf(identifier as AstNodeImpl);
+ _name = _becomeParentOf(identifier as IdentifierImpl);
}
@override
@@ -10943,7 +10946,7 @@
@override
void set typeArguments(TypeArgumentList typeArguments) {
- _typeArguments = _becomeParentOf(typeArguments as AstNodeImpl);
+ _typeArguments = _becomeParentOf(typeArguments as TypeArgumentListImpl);
}
@override
@@ -10966,7 +10969,7 @@
/**
* The name of the type parameter.
*/
- SimpleIdentifier _name;
+ SimpleIdentifierImpl _name;
/**
* The token representing the 'extends' keyword, or `null` if there is no
@@ -10978,7 +10981,7 @@
* The name of the upper bound for legal arguments, or `null` if there is no
* explicit upper bound.
*/
- TypeAnnotation _bound;
+ TypeAnnotationImpl _bound;
/**
* Initialize a newly created type parameter. Either or both of the [comment]
@@ -10998,7 +11001,7 @@
@override
void set bound(TypeAnnotation type) {
- _bound = _becomeParentOf(type as AstNodeImpl);
+ _bound = _becomeParentOf(type as TypeAnnotationImpl);
}
@override
@@ -11025,7 +11028,7 @@
@override
void set name(SimpleIdentifier identifier) {
- _name = _becomeParentOf(identifier as AstNodeImpl);
+ _name = _becomeParentOf(identifier as SimpleIdentifierImpl);
}
@override
@@ -11112,7 +11115,7 @@
/**
* The URI referenced by this directive.
*/
- StringLiteral _uri;
+ StringLiteralImpl _uri;
@override
String uriContent;
@@ -11146,7 +11149,7 @@
@override
void set uri(StringLiteral uri) {
- _uri = _becomeParentOf(uri as AstNodeImpl);
+ _uri = _becomeParentOf(uri as StringLiteralImpl);
}
UriValidationCode validate() {
@@ -11231,7 +11234,7 @@
/**
* The name of the variable being declared.
*/
- SimpleIdentifier _name;
+ SimpleIdentifierImpl _name;
/**
* The equal sign separating the variable name from the initial value, or
@@ -11243,7 +11246,7 @@
* The expression used to compute the initial value for the variable, or
* `null` if the initial value was not specified.
*/
- Expression _initializer;
+ ExpressionImpl _initializer;
/**
* Initialize a newly created variable declaration. The [equals] and
@@ -11296,7 +11299,7 @@
@override
void set initializer(Expression expression) {
- _initializer = _becomeParentOf(expression as AstNodeImpl);
+ _initializer = _becomeParentOf(expression as ExpressionImpl);
}
@override
@@ -11316,7 +11319,7 @@
@override
void set name(SimpleIdentifier identifier) {
- _name = _becomeParentOf(identifier as AstNodeImpl);
+ _name = _becomeParentOf(identifier as SimpleIdentifierImpl);
}
@override
@@ -11353,7 +11356,7 @@
/**
* The type of the variables being declared, or `null` if no type was provided.
*/
- TypeAnnotation _type;
+ TypeAnnotationImpl _type;
/**
* A list containing the individual variables being declared.
@@ -11408,7 +11411,7 @@
@override
void set type(TypeAnnotation type) {
- _type = _becomeParentOf(type as AstNodeImpl);
+ _type = _becomeParentOf(type as TypeAnnotationImpl);
}
@override
@@ -11438,7 +11441,7 @@
/**
* The variables being declared.
*/
- VariableDeclarationList _variableList;
+ VariableDeclarationListImpl _variableList;
/**
* The semicolon terminating the statement.
@@ -11468,7 +11471,7 @@
@override
void set variables(VariableDeclarationList variables) {
- _variableList = _becomeParentOf(variables as AstNodeImpl);
+ _variableList = _becomeParentOf(variables as VariableDeclarationListImpl);
}
@override
@@ -11501,7 +11504,7 @@
/**
* The expression used to determine whether to execute the body of the loop.
*/
- Expression _condition;
+ ExpressionImpl _condition;
/**
* The right parenthesis.
@@ -11511,7 +11514,7 @@
/**
* The body of the loop.
*/
- Statement _body;
+ StatementImpl _body;
/**
* Initialize a newly created while statement.
@@ -11530,7 +11533,7 @@
@override
void set body(Statement statement) {
- _body = _becomeParentOf(statement as AstNodeImpl);
+ _body = _becomeParentOf(statement as StatementImpl);
}
@override
@@ -11546,7 +11549,7 @@
@override
void set condition(Expression expression) {
- _condition = _becomeParentOf(expression as AstNodeImpl);
+ _condition = _becomeParentOf(expression as ExpressionImpl);
}
@override
@@ -11630,7 +11633,7 @@
/**
* The expression whose value will be yielded.
*/
- Expression _expression;
+ ExpressionImpl _expression;
/**
* The semicolon following the expression.
@@ -11674,7 +11677,7 @@
@override
void set expression(Expression expression) {
- _expression = _becomeParentOf(expression as AstNodeImpl);
+ _expression = _becomeParentOf(expression as ExpressionImpl);
}
@override
diff --git a/pkg/analyzer/lib/src/dart/element/element.dart b/pkg/analyzer/lib/src/dart/element/element.dart
index 5f3d53b..094a77b 100644
--- a/pkg/analyzer/lib/src/dart/element/element.dart
+++ b/pkg/analyzer/lib/src/dart/element/element.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.
-library analyzer.src.dart.element.element;
-
import 'dart:collection';
import 'dart:math' show min;
@@ -802,6 +800,7 @@
_interfaces = _unlinkedClass.interfaces
.map((EntityRef t) => context.resolveTypeRef(this, t))
.where(_isClassInterfaceType)
+ .cast<InterfaceType>()
.toList(growable: false);
}
}
@@ -938,6 +937,7 @@
_mixins = _unlinkedClass.mixins
.map((EntityRef t) => context.resolveTypeRef(this, t))
.where(_isClassInterfaceType)
+ .cast<InterfaceType>()
.toList(growable: false);
}
}
diff --git a/pkg/analyzer/lib/src/fasta/ast_builder.dart b/pkg/analyzer/lib/src/fasta/ast_builder.dart
index 083a05f..2ca77de 100644
--- a/pkg/analyzer/lib/src/fasta/ast_builder.dart
+++ b/pkg/analyzer/lib/src/fasta/ast_builder.dart
@@ -1464,6 +1464,10 @@
}
}
+ void beginTopLevelMethod(Token lastConsumed, Token externalToken) {
+ push(new _Modifiers()..externalKeyword = externalToken);
+ }
+
void endTopLevelMethod(Token beginToken, Token getOrSet, Token endToken) {
// TODO(paulberry): set up scopes properly to resolve parameters and type
// variables.
@@ -1995,6 +1999,14 @@
}
@override
+ void beginFactoryMethod(
+ Token lastConsumed, Token externalToken, Token constToken) {
+ push(new _Modifiers()
+ ..externalKeyword = externalToken
+ ..finalConstOrVarKeyword = constToken);
+ }
+
+ @override
void endFactoryMethod(
Token beginToken, Token factoryKeyword, Token endToken) {
assert(optional('factory', factoryKeyword));
@@ -2083,7 +2095,6 @@
FormalParameterList parameters = pop();
SimpleIdentifier name = pop();
TypeAnnotation returnType = pop();
- pop(); // modifiers
TypeParameterList typeParameters = pop();
FunctionExpression functionExpression =
ast.functionExpression(typeParameters, parameters, body);
diff --git a/pkg/analyzer/lib/src/generated/testing/test_type_provider.dart b/pkg/analyzer/lib/src/generated/testing/test_type_provider.dart
index 06ce559..e8b2f1f 100644
--- a/pkg/analyzer/lib/src/generated/testing/test_type_provider.dart
+++ b/pkg/analyzer/lib/src/generated/testing/test_type_provider.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.
-library analyzer.src.generated.testing.test_type_provider;
-
import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/ast/token.dart';
import 'package:analyzer/dart/element/element.dart';
@@ -732,6 +730,7 @@
element.accessors = accessors;
element.fields = accessors
.map((PropertyAccessorElement accessor) => accessor.variable)
+ .cast<FieldElement>()
.toList();
}
}
diff --git a/pkg/analyzer/lib/src/plugin/engine_plugin.dart b/pkg/analyzer/lib/src/plugin/engine_plugin.dart
index fb0599db4..fc652f0 100644
--- a/pkg/analyzer/lib/src/plugin/engine_plugin.dart
+++ b/pkg/analyzer/lib/src/plugin/engine_plugin.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.
-library analyzer.src.plugin.engine_plugin;
-
import 'package:analyzer/error/error.dart' show AnalysisError;
import 'package:analyzer/plugin/task.dart';
import 'package:analyzer/src/generated/engine.dart'
@@ -90,7 +88,7 @@
* descriptors for Dart sources.
*/
@ExtensionPointId('DART_ERRORS_FOR_SOURCE_EXTENSION_POINT_ID')
- List<ResultDescriptor> get dartErrorsForSource =>
+ List<ListResultDescriptor<AnalysisError>> get dartErrorsForSource =>
dartErrorsForSourceExtensionPoint.extensions;
/**
@@ -98,7 +96,7 @@
* descriptors for Dart library specific units.
*/
@ExtensionPointId('DART_ERRORS_FOR_UNIT_EXTENSION_POINT_ID')
- List<ResultDescriptor> get dartErrorsForUnit =>
+ List<ListResultDescriptor<AnalysisError>> get dartErrorsForUnit =>
dartErrorsForUnitExtensionPoint.extensions;
/**
@@ -106,7 +104,8 @@
* descriptors for HTML sources.
*/
@ExtensionPointId('HTML_ERRORS_EXTENSION_POINT_ID')
- List<ResultDescriptor> get htmlErrors => htmlErrorsExtensionPoint.extensions;
+ List<ListResultDescriptor<AnalysisError>> get htmlErrors =>
+ htmlErrorsExtensionPoint.extensions;
@override
String get uniqueIdentifier => UNIQUE_IDENTIFIER;
diff --git a/pkg/analyzer/lib/src/summary/resynthesize.dart b/pkg/analyzer/lib/src/summary/resynthesize.dart
index 4f0d914..58fbf60 100644
--- a/pkg/analyzer/lib/src/summary/resynthesize.dart
+++ b/pkg/analyzer/lib/src/summary/resynthesize.dart
@@ -1371,7 +1371,11 @@
} else {
// For a type that refers to a generic executable, the type arguments are
// not supposed to include the arguments to the executable itself.
- numTypeArguments = enclosing?.numTypeParameters ?? 0;
+ if (element is MethodElementHandle && !element.isStatic) {
+ numTypeArguments = enclosing?.numTypeParameters ?? 0;
+ } else {
+ numTypeArguments = 0;
+ }
computer = () => this.element as FunctionTypedElement;
}
// TODO(paulberry): Is it a bug that we have to pass `false` for
diff --git a/pkg/analyzer/lib/src/summary/summarize_const_expr.dart b/pkg/analyzer/lib/src/summary/summarize_const_expr.dart
index 75a487c..91b8015 100644
--- a/pkg/analyzer/lib/src/summary/summarize_const_expr.dart
+++ b/pkg/analyzer/lib/src/summary/summarize_const_expr.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.
-library serialization.summarize_const_expr;
-
import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/ast/token.dart';
import 'package:analyzer/dart/element/type.dart' show DartType;
@@ -13,7 +11,7 @@
/**
* Serialize the given constructor initializer [node].
*/
-UnlinkedConstructorInitializer serializeConstructorInitializer(
+UnlinkedConstructorInitializerBuilder serializeConstructorInitializer(
ConstructorInitializer node,
UnlinkedExprBuilder serializeConstExpr(Expression expr)) {
if (node is ConstructorFieldInitializer) {
@@ -175,6 +173,13 @@
List<int> serializeFunctionExpression(FunctionExpression functionExpression);
/**
+ * Return [EntityRefBuilder] that corresponds to the [type], which is defined
+ * using generic function type syntax. These may appear as the type arguments
+ * of a const list, etc.
+ */
+ EntityRefBuilder serializeGenericFunctionType(GenericFunctionType type);
+
+ /**
* Return [EntityRefBuilder] that corresponds to the given [identifier].
*/
EntityRefBuilder serializeIdentifier(Identifier identifier);
@@ -193,22 +198,6 @@
}
/**
- * Return [EntityRefBuilder] that corresponds to the [type] with the given
- * [name] and [arguments]. It is expected that [type] corresponds to the
- * given [name] and [arguments]. The parameter [type] might be `null` if the
- * type is not resolved.
- */
- EntityRefBuilder serializeTypeName(
- DartType type, Identifier name, TypeArgumentList arguments);
-
- /**
- * Return [EntityRefBuilder] that corresponds to the [type], which is defined
- * using generic function type syntax. These may appear as the type arguments
- * of a const list, etc.
- */
- EntityRefBuilder serializeGenericFunctionType(GenericFunctionType type);
-
- /**
* Return [EntityRefBuilder] that corresponds to the given [type].
*/
EntityRefBuilder serializeType(TypeAnnotation type) {
@@ -223,6 +212,15 @@
}
/**
+ * Return [EntityRefBuilder] that corresponds to the [type] with the given
+ * [name] and [arguments]. It is expected that [type] corresponds to the
+ * given [name] and [arguments]. The parameter [type] might be `null` if the
+ * type is not resolved.
+ */
+ EntityRefBuilder serializeTypeName(
+ DartType type, Identifier name, TypeArgumentList arguments);
+
+ /**
* Return the [UnlinkedExprBuilder] that corresponds to the state of this
* serializer.
*/
diff --git a/pkg/analyzer/lib/src/task/dart.dart b/pkg/analyzer/lib/src/task/dart.dart
index aa309b2..3fed1de 100644
--- a/pkg/analyzer/lib/src/task/dart.dart
+++ b/pkg/analyzer/lib/src/task/dart.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.
-library analyzer.src.task.dart;
-
import 'dart:collection';
import 'package:analyzer/dart/ast/ast.dart';
@@ -1077,7 +1075,7 @@
ConstantFinder constantFinder = new ConstantFinder();
unit.accept(constantFinder);
List<ConstantEvaluationTarget> constants =
- constantFinder.constantsToCompute.toList();
+ constantFinder.constantsToCompute;
//
// Record outputs.
//
@@ -2262,9 +2260,9 @@
component.expand((l) => l.units).map(unitToLSU).toList();
outputs[LIBRARY_CYCLE_DEPENDENCIES] = deps.map(unitToLSU).toList();
} else {
- outputs[LIBRARY_CYCLE] = [];
- outputs[LIBRARY_CYCLE_UNITS] = [];
- outputs[LIBRARY_CYCLE_DEPENDENCIES] = [];
+ outputs[LIBRARY_CYCLE] = <LibraryElement>[];
+ outputs[LIBRARY_CYCLE_UNITS] = <LibrarySpecificUnit>[];
+ outputs[LIBRARY_CYCLE_DEPENDENCIES] = <LibrarySpecificUnit>[];
}
}
@@ -2530,18 +2528,20 @@
inputs[IGNORE_INFO_INPUT] = IGNORE_INFO.of(source);
EnginePlugin enginePlugin = AnalysisEngine.instance.enginePlugin;
// for Source
- List<ResultDescriptor> errorsForSource = enginePlugin.dartErrorsForSource;
+ List<ListResultDescriptor<AnalysisError>> errorsForSource =
+ enginePlugin.dartErrorsForSource;
int sourceLength = errorsForSource.length;
for (int i = 0; i < sourceLength; i++) {
- ResultDescriptor result = errorsForSource[i];
+ ListResultDescriptor<AnalysisError> result = errorsForSource[i];
String inputName = result.name + '_input';
inputs[inputName] = result.of(source);
}
// for LibrarySpecificUnit
- List<ResultDescriptor> errorsForUnit = enginePlugin.dartErrorsForUnit;
+ List<ListResultDescriptor<AnalysisError>> errorsForUnit =
+ enginePlugin.dartErrorsForUnit;
int unitLength = errorsForUnit.length;
for (int i = 0; i < unitLength; i++) {
- ResultDescriptor result = errorsForUnit[i];
+ ListResultDescriptor<AnalysisError> result = errorsForUnit[i];
String inputName = result.name + '_input';
inputs[inputName] =
CONTAINING_LIBRARIES.of(source).toMap((Source library) {
diff --git a/pkg/analyzer/lib/src/task/inputs.dart b/pkg/analyzer/lib/src/task/inputs.dart
index 678bc1f..66650c3 100644
--- a/pkg/analyzer/lib/src/task/inputs.dart
+++ b/pkg/analyzer/lib/src/task/inputs.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.
-library analyzer.src.task.inputs;
-
import 'dart:collection';
import 'package:analyzer/task/model.dart';
@@ -109,7 +107,7 @@
}
MapTaskInput<AnalysisTarget, V> toMapOf<V>(ResultDescriptor<V> valueResult) {
- return (this as ListTaskInputImpl<AnalysisTarget>).toMap(valueResult.of);
+ return (this as ListTaskInputImpl<AnalysisTarget>).toMap<V>(valueResult.of);
}
}
@@ -651,6 +649,10 @@
throw new StateError(
'Cannot set the result value when there is no current result');
}
+ if (value is! V) {
+ throw new StateError(
+ 'Cannot build $input: computed ${value.runtimeType}, needed $V');
+ }
_resultValue = value as V;
_resultSet = true;
}
diff --git a/pkg/analyzer/lib/src/util/yaml.dart b/pkg/analyzer/lib/src/util/yaml.dart
index 06308c7..89b6156 100644
--- a/pkg/analyzer/lib/src/util/yaml.dart
+++ b/pkg/analyzer/lib/src/util/yaml.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.
-library analyzer.src.util.yaml;
-
import 'dart:collection';
/// If all of the elements of [list] are strings, return a list of strings
@@ -55,13 +53,16 @@
}
/// Merge lists, avoiding duplicates.
- List mergeList(List l1, List l2) =>
- new List()..addAll(l1)..addAll(l2.where((item) => !l1.contains(item)));
+ List<E> mergeList<E>(List<E> l1, List<E> l2) =>
+ new List<E>()..addAll(l1)..addAll(l2.where((item) => !l1.contains(item)));
/// Merge maps (recursively).
- Map mergeMap(Map m1, Map m2) {
- Map merged = new HashMap()..addAll(m1);
+ Map<K, V> mergeMap<K, V>(Map<K, V> m1, Map<K, V> m2) {
+ Map<K, V> merged = new HashMap<K, V>()..addAll(m1);
m2.forEach((k, v) {
+ // TODO(brianwilkerson) This fails when merging two Map<String, YamlNode>
+ // objects and the result of `merge` is a HashMap (because the YamlNodes
+ // were YamlMaps.
merged[k] = merge(merged[k], v);
});
return merged;
diff --git a/pkg/analyzer/lib/task/model.dart b/pkg/analyzer/lib/task/model.dart
index b522c98..0ba6aec 100644
--- a/pkg/analyzer/lib/task/model.dart
+++ b/pkg/analyzer/lib/task/model.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.
-library analyzer.task.model;
-
import 'dart:collection';
import 'dart:developer';
@@ -180,6 +178,10 @@
if (inputs == null || !inputs.containsKey(name)) {
throw new AnalysisException("Could not $description: missing $name");
}
+ if (inputs[name] is! E) {
+ throw new AnalysisException(
+ "Could not $description: $name is a ${inputs[name].runtimeType} rather than a $E");
+ }
return inputs[name] as E;
}
diff --git a/pkg/analyzer/pubspec.yaml b/pkg/analyzer/pubspec.yaml
index 4d2f038..48ec171 100644
--- a/pkg/analyzer/pubspec.yaml
+++ b/pkg/analyzer/pubspec.yaml
@@ -26,5 +26,4 @@
cli_util: ^0.1.0
dev_dependencies:
test_reflective_loader: ^0.1.0
- mockito: ^2.0.2
test: ^0.12.0
diff --git a/pkg/analyzer/test/generated/all_the_rest_test.dart b/pkg/analyzer/test/generated/all_the_rest_test.dart
index 23eb3b0..a14fde5 100644
--- a/pkg/analyzer/test/generated/all_the_rest_test.dart
+++ b/pkg/analyzer/test/generated/all_the_rest_test.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.
-library analyzer.test.generated.all_the_rest_test;
-
import 'dart:async';
import 'package:analyzer/dart/ast/ast.dart';
@@ -33,7 +31,6 @@
import 'package:analyzer/src/generated/testing/test_type_provider.dart';
import 'package:analyzer/src/generated/testing/token_factory.dart';
import 'package:analyzer/src/generated/utilities_dart.dart';
-import 'package:mockito/mockito.dart' show Mock, when;
import 'package:path/path.dart' as path;
import 'package:source_span/source_span.dart';
import 'package:test/test.dart';
@@ -151,17 +148,17 @@
}
void test_restoreAbsolute_library() {
- Source source = new _SourceMock();
+ _SourceMock source = new _SourceMock();
Uri fileUri = resourceProvider.pathContext.toUri(coreCorePath);
- when(source.uri).thenReturn(fileUri);
+ source.uri = fileUri;
Uri dartUri = resolver.restoreAbsolute(source);
expect(dartUri.toString(), 'dart:core');
}
void test_restoreAbsolute_part() {
- Source source = new _SourceMock();
+ _SourceMock source = new _SourceMock();
Uri fileUri = resourceProvider.pathContext.toUri(coreIntPath);
- when(source.uri).thenReturn(fileUri);
+ source.uri = fileUri;
Uri dartUri = resolver.restoreAbsolute(source);
expect(dartUri.toString(), 'dart:core/int.dart');
}
@@ -2089,4 +2086,12 @@
}
}
-class _SourceMock extends Mock implements Source {}
+class _SourceMock implements Source {
+ @override
+ Uri uri;
+
+ @override
+ noSuchMethod(Invocation invocation) {
+ throw new StateError('Unexpected invocation of ${invocation.memberName}');
+ }
+}
diff --git a/pkg/analyzer/test/generated/analysis_context_factory.dart b/pkg/analyzer/test/generated/analysis_context_factory.dart
index d608785..5f02ed3 100644
--- a/pkg/analyzer/test/generated/analysis_context_factory.dart
+++ b/pkg/analyzer/test/generated/analysis_context_factory.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.
-library analyzer.test.generated.analysis_context_factory;
-
import 'dart:collection';
import 'package:analyzer/dart/ast/ast.dart';
@@ -303,6 +301,7 @@
];
canvasElement.fields = canvasElement.accessors
.map((PropertyAccessorElement accessor) => accessor.variable)
+ .cast<FieldElement>()
.toList();
ClassElementImpl documentElement =
ElementFactory.classElement("Document", elementType);
diff --git a/pkg/analyzer/test/generated/bazel_test.dart b/pkg/analyzer/test/generated/bazel_test.dart
index c5a3367..290f45f 100644
--- a/pkg/analyzer/test/generated/bazel_test.dart
+++ b/pkg/analyzer/test/generated/bazel_test.dart
@@ -2,12 +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.
-library analyzer.test.generated.bazel_test;
-
import 'package:analyzer/file_system/memory_file_system.dart';
import 'package:analyzer/src/generated/bazel.dart';
import 'package:analyzer/src/generated/source.dart';
-import 'package:mockito/mockito.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -669,7 +666,14 @@
String _p(String path) => provider.convertPath(path);
}
-class _MockSource extends Mock implements Source {
+class _MockSource implements Source {
+ @override
final String fullName;
+
_MockSource(this.fullName);
+
+ @override
+ noSuchMethod(Invocation invocation) {
+ throw new StateError('Unexpected invocation of ${invocation.memberName}');
+ }
}
diff --git a/pkg/analyzer/test/generated/parser_fasta_listener.dart b/pkg/analyzer/test/generated/parser_fasta_listener.dart
index 349d2ad..cf19032 100644
--- a/pkg/analyzer/test/generated/parser_fasta_listener.dart
+++ b/pkg/analyzer/test/generated/parser_fasta_listener.dart
@@ -206,8 +206,9 @@
}
@override
- void beginFactoryMethod(Token lastConsumed) {
- super.beginFactoryMethod(lastConsumed);
+ void beginFactoryMethod(
+ Token lastConsumed, Token externalToken, Token constToken) {
+ super.beginFactoryMethod(lastConsumed, externalToken, constToken);
begin('FactoryMethod');
}
@@ -480,8 +481,8 @@
}
@override
- void beginTopLevelMethod(Token lastConsumed) {
- super.beginTopLevelMethod(lastConsumed);
+ void beginTopLevelMethod(Token lastConsumed, Token externalToken) {
+ super.beginTopLevelMethod(lastConsumed, externalToken);
begin('TopLevelMethod');
}
diff --git a/pkg/analyzer/test/generated/strong_mode_test.dart b/pkg/analyzer/test/generated/strong_mode_test.dart
index 775f942..0194fd9 100644
--- a/pkg/analyzer/test/generated/strong_mode_test.dart
+++ b/pkg/analyzer/test/generated/strong_mode_test.dart
@@ -3899,6 +3899,15 @@
expectStaticInvokeType('m();', '() → T');
}
+ test_issue32396() async {
+ await resolveTestUnit(r'''
+class C<E> {
+ static T g<T>(T e) => null;
+ static final h = g;
+}
+''');
+ }
+
test_notInstantiatedBound_direct_class_class() async {
String code = r'''
class A<T extends int> {}
diff --git a/pkg/analyzer/test/src/context/cache_test.dart b/pkg/analyzer/test/src/context/cache_test.dart
index 06f3fd7..235e254 100644
--- a/pkg/analyzer/test/src/context/cache_test.dart
+++ b/pkg/analyzer/test/src/context/cache_test.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.
-library analyzer.test.src.context.cache_test;
-
import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/file_system/memory_file_system.dart';
@@ -16,7 +14,6 @@
import 'package:analyzer/src/generated/utilities_collection.dart';
import 'package:analyzer/src/task/model.dart';
import 'package:analyzer/task/model.dart';
-import 'package:mockito/mockito.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -39,14 +36,14 @@
}
class AbstractCacheTest {
- InternalAnalysisContext context;
+ _InternalAnalysisContextMock context;
AnalysisCache cache;
void setUp() {
context = new _InternalAnalysisContextMock();
- when(context.prioritySources).thenReturn([]);
+ context.prioritySources = [];
cache = createCache(context: context);
- when(context.analysisCache).thenReturn(cache);
+ context.analysisCache = cache;
}
}
@@ -812,7 +809,7 @@
expect(entry2.getState(descriptor2), CacheState.VALID);
// Make source1 priority, so result2 is flushed instead.
- when(context.prioritySources).thenReturn([source1]);
+ context.prioritySources = <Source>[source1];
entry3.setValue(descriptor3, 3, TargetedResult.EMPTY_LIST);
expect(entry1.getState(descriptor1), CacheState.VALID);
expect(entry2.getState(descriptor2), CacheState.FLUSHED);
@@ -1250,11 +1247,11 @@
}
test_dispose() {
- InternalAnalysisContext context = new _InternalAnalysisContextMock();
+ _InternalAnalysisContextMock context = new _InternalAnalysisContextMock();
CachePartition partition1 = new UniversalCachePartition(context);
CachePartition partition2 = new UniversalCachePartition(context);
AnalysisCache cache = new AnalysisCache([partition1, partition2]);
- when(context.analysisCache).thenReturn(cache);
+ context.analysisCache = cache;
// configure
// prepare entries
ResultDescriptor<int> descriptor1 =
@@ -1283,10 +1280,20 @@
}
}
-class _InternalAnalysisContextMock extends Mock
- implements InternalAnalysisContext {
+class _InternalAnalysisContextMock implements InternalAnalysisContext {
@override
final AnalysisOptions analysisOptions = new AnalysisOptionsImpl();
+
+ @override
+ AnalysisCache analysisCache;
+
+ @override
+ List<Source> prioritySources = <Source>[];
+
+ @override
+ noSuchMethod(Invocation invocation) {
+ throw new StateError('Unexpected invocation of ${invocation.memberName}');
+ }
}
/**
diff --git a/pkg/analyzer/test/src/dart/analysis/base.dart b/pkg/analyzer/test/src/dart/analysis/base.dart
index 4b98b46..cb6b92c 100644
--- a/pkg/analyzer/test/src/dart/analysis/base.dart
+++ b/pkg/analyzer/test/src/dart/analysis/base.dart
@@ -16,7 +16,6 @@
import 'package:analyzer/src/summary/package_bundle_reader.dart';
import 'package:front_end/src/api_prototype/byte_store.dart';
import 'package:front_end/src/base/performance_logger.dart';
-import 'package:mockito/mockito.dart';
import 'package:test/test.dart';
import '../../context/mock_sdk.dart';
@@ -54,7 +53,8 @@
final StringBuffer logBuffer = new StringBuffer();
PerformanceLog logger;
- final UriResolver generatedUriResolver = new _GeneratedUriResolverMock();
+ final _GeneratedUriResolverMock generatedUriResolver =
+ new _GeneratedUriResolverMock();
AnalysisDriverScheduler scheduler;
AnalysisDriver driver;
final List<AnalysisStatus> allStatuses = <AnalysisStatus>[];
@@ -65,13 +65,13 @@
String testFile;
String testCode;
- bool get disableChangesAndCacheAllResults => false;
-
/**
* Whether to enable the Dart 2.0 Common Front End.
*/
bool useCFE = false;
+ bool get disableChangesAndCacheAllResults => false;
+
void addTestFile(String content, {bool priority: false}) {
testCode = content;
provider.newFile(testFile, content);
@@ -169,4 +169,29 @@
}
}
-class _GeneratedUriResolverMock extends Mock implements UriResolver {}
+class _GeneratedUriResolverMock implements UriResolver {
+ Source Function(Uri, Uri) resolveAbsoluteFunction;
+
+ Uri Function(Source) restoreAbsoluteFunction;
+
+ @override
+ noSuchMethod(Invocation invocation) {
+ throw new StateError('Unexpected invocation of ${invocation.memberName}');
+ }
+
+ @override
+ Source resolveAbsolute(Uri uri, [Uri actualUri]) {
+ if (resolveAbsoluteFunction != null) {
+ return resolveAbsoluteFunction(uri, actualUri);
+ }
+ return null;
+ }
+
+ @override
+ Uri restoreAbsolute(Source source) {
+ if (restoreAbsoluteFunction != null) {
+ return restoreAbsoluteFunction(source);
+ }
+ return null;
+ }
+}
diff --git a/pkg/analyzer/test/src/dart/analysis/driver_test.dart b/pkg/analyzer/test/src/dart/analysis/driver_test.dart
index bb2cba2..32df76a 100644
--- a/pkg/analyzer/test/src/dart/analysis/driver_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/driver_test.dart
@@ -30,7 +30,6 @@
import 'package:analyzer/src/summary/package_bundle_reader.dart';
import 'package:front_end/src/api_prototype/byte_store.dart';
import 'package:front_end/src/base/performance_logger.dart';
-import 'package:mockito/mockito.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -6726,6 +6725,26 @@
expect(x.constantValue.toIntValue(), 1);
}
+ test_currentSession() async {
+ var a = _p('/a.dart');
+
+ provider.newFile(a, 'var V = 1;');
+ await driver.getResult(a);
+
+ var session1 = driver.currentSession;
+ expect(session1, isNotNull);
+
+ provider.updateFile(a, 'var V = 2;');
+ driver.changeFile(a);
+ await driver.getResult(a);
+
+ var session2 = driver.currentSession;
+ expect(session2, isNotNull);
+
+ // We get a new session.
+ expect(session2, isNot(session1));
+ }
+
test_errors_uriDoesNotExist_export() async {
addTestFile(r'''
export 'foo.dart';
@@ -6869,22 +6888,18 @@
bbb() {}
''');
- Source generatedSource = new _SourceMock();
- when(generatedSource.uri).thenReturn(uri);
- when(generatedSource.fullName).thenReturn(generatedPath);
+ Source generatedSource = new _SourceMock(generatedPath, uri);
- when(generatedUriResolver.resolveAbsolute(uri, uri))
- .thenReturn(generatedSource);
- when(generatedUriResolver.restoreAbsolute(any))
- .thenAnswer((Invocation invocation) {
- Source source = invocation.positionalArguments[0];
+ generatedUriResolver.resolveAbsoluteFunction =
+ (uri, actualUri) => generatedSource;
+ generatedUriResolver.restoreAbsoluteFunction = (Source source) {
String path = source.fullName;
if (path == templatePath || path == generatedPath) {
return uri;
} else {
return null;
}
- });
+ };
driver.addFile(templatePath);
@@ -8797,4 +8812,17 @@
String _p(String path) => provider.convertPath(path);
}
-class _SourceMock extends Mock implements Source {}
+class _SourceMock implements Source {
+ @override
+ final String fullName;
+
+ @override
+ final Uri uri;
+
+ _SourceMock(this.fullName, this.uri);
+
+ @override
+ noSuchMethod(Invocation invocation) {
+ throw new StateError('Unexpected invocation of ${invocation.memberName}');
+ }
+}
diff --git a/pkg/analyzer/test/src/dart/analysis/file_state_test.dart b/pkg/analyzer/test/src/dart/analysis/file_state_test.dart
index 11815d5..3cae769 100644
--- a/pkg/analyzer/test/src/dart/analysis/file_state_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/file_state_test.dart
@@ -17,7 +17,6 @@
import 'package:crypto/crypto.dart';
import 'package:front_end/src/api_prototype/byte_store.dart';
import 'package:front_end/src/base/performance_logger.dart';
-import 'package:mockito/mockito.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -38,7 +37,8 @@
final FileContentOverlay contentOverlay = new FileContentOverlay();
final StringBuffer logBuffer = new StringBuffer();
- final UriResolver generatedUriResolver = new _GeneratedUriResolverMock();
+ final _GeneratedUriResolverMock generatedUriResolver =
+ new _GeneratedUriResolverMock();
SourceFactory sourceFactory;
PerformanceLog logger;
@@ -493,12 +493,10 @@
String templatePath = _p('/aaa/lib/foo.dart');
String generatedPath = _p('/generated/aaa/lib/foo.dart');
- Source generatedSource = new _SourceMock();
- when(generatedSource.fullName).thenReturn(generatedPath);
- when(generatedSource.uri).thenReturn(uri);
+ Source generatedSource = new _SourceMock(generatedPath, uri);
- when(generatedUriResolver.resolveAbsolute(uri, uri))
- .thenReturn(generatedSource);
+ generatedUriResolver.resolveAbsoluteFunction =
+ (uri, actualUri) => generatedSource;
expect(fileSystemState.hasUri(templatePath), isFalse);
expect(fileSystemState.hasUri(generatedPath), isTrue);
@@ -792,6 +790,44 @@
}
}
-class _GeneratedUriResolverMock extends Mock implements UriResolver {}
+class _GeneratedUriResolverMock implements UriResolver {
+ Source Function(Uri, Uri) resolveAbsoluteFunction;
-class _SourceMock extends Mock implements Source {}
+ Uri Function(Source) restoreAbsoluteFunction;
+
+ @override
+ noSuchMethod(Invocation invocation) {
+ throw new StateError('Unexpected invocation of ${invocation.memberName}');
+ }
+
+ @override
+ Source resolveAbsolute(Uri uri, [Uri actualUri]) {
+ if (resolveAbsoluteFunction != null) {
+ return resolveAbsoluteFunction(uri, actualUri);
+ }
+ return null;
+ }
+
+ @override
+ Uri restoreAbsolute(Source source) {
+ if (restoreAbsoluteFunction != null) {
+ return restoreAbsoluteFunction(source);
+ }
+ return null;
+ }
+}
+
+class _SourceMock implements Source {
+ @override
+ final String fullName;
+
+ @override
+ final Uri uri;
+
+ _SourceMock(this.fullName, this.uri);
+
+ @override
+ noSuchMethod(Invocation invocation) {
+ throw new StateError('Unexpected invocation of ${invocation.memberName}');
+ }
+}
diff --git a/pkg/analyzer/test/src/dart/analysis/session_test.dart b/pkg/analyzer/test/src/dart/analysis/session_test.dart
index fff33da..f49208d 100644
--- a/pkg/analyzer/test/src/dart/analysis/session_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/session_test.dart
@@ -42,9 +42,16 @@
test_getLibraryByUri() async {
String uri = 'uri';
- LibraryElement element = new LibraryElementImpl(null, null, null, null);
- driver.libraryMap[uri] = element;
- expect(await session.getLibraryByUri(uri), element);
+
+ var source = new _SourceMock(Uri.parse(uri));
+ var unit = new CompilationUnitElementImpl('')
+ ..librarySource = source
+ ..source = source;
+ var library = new LibraryElementImpl(null, null, null, null)
+ ..definingCompilationUnit = unit;
+
+ driver.libraryMap[uri] = library;
+ expect(await session.getLibraryByUri(uri), library);
}
test_getParsedAst() async {
@@ -204,3 +211,15 @@
return parseResult;
}
}
+
+class _SourceMock implements Source {
+ @override
+ final Uri uri;
+
+ _SourceMock(this.uri);
+
+ @override
+ noSuchMethod(Invocation invocation) {
+ throw new StateError('Unexpected invocation of ${invocation.memberName}');
+ }
+}
diff --git a/pkg/analyzer/test/src/summary/package_bundle_reader_test.dart b/pkg/analyzer/test/src/summary/package_bundle_reader_test.dart
index 73266b9..db16be7 100644
--- a/pkg/analyzer/test/src/summary/package_bundle_reader_test.dart
+++ b/pkg/analyzer/test/src/summary/package_bundle_reader_test.dart
@@ -10,7 +10,6 @@
import 'package:analyzer/src/task/dart.dart';
import 'package:analyzer/task/dart.dart';
import 'package:analyzer/task/general.dart';
-import 'package:mockito/mockito.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -26,15 +25,15 @@
const _ConflictingSummaryException();
UnlinkedPublicNamespace _namespaceWithParts(List<String> parts) {
- UnlinkedPublicNamespace namespace = new _UnlinkedPublicNamespaceMock();
- when(namespace.parts).thenReturn(parts);
+ _UnlinkedPublicNamespaceMock namespace = new _UnlinkedPublicNamespaceMock();
+ namespace.parts = parts;
return namespace;
}
@reflectiveTest
class ResynthesizerResultProviderTest {
- SourceFactory sourceFactory = new _SourceFactoryMock();
- InternalAnalysisContext context = new _InternalAnalysisContextMock();
+ _SourceFactoryMock sourceFactory = new _SourceFactoryMock();
+ _InternalAnalysisContextMock context = new _InternalAnalysisContextMock();
UniversalCachePartition cachePartition;
Source source1 = new _SourceMock('package:p1/u1.dart', '/p1/lib/u1.dart');
@@ -44,10 +43,10 @@
CacheEntry entry2;
CacheEntry entry3;
- PackageBundle bundle = new _PackageBundleMock();
- UnlinkedUnit unlinkedUnit1 = new _UnlinkedUnitMock();
- UnlinkedUnit unlinkedUnit2 = new _UnlinkedUnitMock();
- LinkedLibrary linkedLibrary = new _LinkedLibraryMock();
+ _PackageBundleMock bundle = new _PackageBundleMock();
+ _UnlinkedUnitMock unlinkedUnit1 = new _UnlinkedUnitMock();
+ _UnlinkedUnitMock unlinkedUnit2 = new _UnlinkedUnitMock();
+ _LinkedLibraryMock linkedLibrary = new _LinkedLibraryMock();
SummaryDataStore dataStore = new SummaryDataStore(<String>[]);
_TestResynthesizerResultProvider provider;
@@ -61,27 +60,26 @@
cachePartition.put(entry2);
cachePartition.put(entry3);
- when(sourceFactory.resolveUri(any, 'package:p1/u1.dart'))
- .thenReturn(source1);
- when(sourceFactory.resolveUri(any, 'package:p1/u2.dart'))
- .thenReturn(source2);
- when(context.sourceFactory).thenReturn(sourceFactory);
+ sourceFactory.resolvedUriMap['package:p1/u1.dart'] = source1;
+ sourceFactory.resolvedUriMap['package:p1/u2.dart'] = source2;
+ context.sourceFactory = sourceFactory;
- when(bundle.unlinkedUnitUris)
- .thenReturn(<String>['package:p1/u1.dart', 'package:p1/u2.dart']);
- when(bundle.unlinkedUnits)
- .thenReturn(<UnlinkedUnit>[unlinkedUnit1, unlinkedUnit2]);
- when(bundle.linkedLibraryUris).thenReturn(<String>['package:p1/u1.dart']);
- when(bundle.linkedLibraries).thenReturn(<LinkedLibrary>[linkedLibrary]);
+ bundle.unlinkedUnitUris = <String>[
+ 'package:p1/u1.dart',
+ 'package:p1/u2.dart'
+ ];
+ bundle.unlinkedUnits = <UnlinkedUnit>[unlinkedUnit1, unlinkedUnit2];
+ bundle.linkedLibraryUris = <String>['package:p1/u1.dart'];
+ bundle.linkedLibraries = <LinkedLibrary>[linkedLibrary];
dataStore.addBundle('/p1.ds', bundle);
- when(unlinkedUnit1.isPartOf).thenReturn(false);
- when(unlinkedUnit2.isPartOf).thenReturn(true);
+ unlinkedUnit1.isPartOf = false;
+ unlinkedUnit2.isPartOf = true;
var namespace1 = _namespaceWithParts(['package:p1/u2.dart']);
var namespace2 = _namespaceWithParts([]);
- when(unlinkedUnit1.publicNamespace).thenReturn(namespace1);
- when(unlinkedUnit2.publicNamespace).thenReturn(namespace2);
+ unlinkedUnit1.publicNamespace = namespace1;
+ unlinkedUnit2.publicNamespace = namespace2;
provider = new _TestResynthesizerResultProvider(context, dataStore);
provider.sourcesWithResults.add(source1);
@@ -101,13 +99,13 @@
}
test_compute_LINE_INFO_emptyLineStarts() {
- when(unlinkedUnit1.lineStarts).thenReturn(<int>[]);
+ unlinkedUnit1.lineStarts = <int>[];
bool success = provider.compute(entry1, LINE_INFO);
expect(success, isFalse);
}
test_compute_LINE_INFO_hasLineStarts() {
- when(unlinkedUnit1.lineStarts).thenReturn(<int>[10, 20, 30]);
+ unlinkedUnit1.lineStarts = <int>[10, 20, 30];
bool success = provider.compute(entry1, LINE_INFO);
expect(success, isTrue);
expect(entry1.getValue(LINE_INFO).lineStarts, <int>[10, 20, 30]);
@@ -132,7 +130,7 @@
}
test_compute_SOURCE_KIND_librarySource_isPartOf() {
- when(unlinkedUnit1.isPartOf).thenReturn(true);
+ unlinkedUnit1.isPartOf = true;
bool success = provider.compute(entry1, SOURCE_KIND);
expect(success, isTrue);
expect(entry1.getValue(SOURCE_KIND), SourceKind.PART);
@@ -156,13 +154,13 @@
SummaryDataStore dataStore =
new SummaryDataStore(<String>[], disallowOverlappingSummaries: true);
- PackageBundle bundle1 = new _PackageBundleMock();
- PackageBundle bundle2 = new _PackageBundleMock();
- UnlinkedUnit unlinkedUnit11 = new _UnlinkedUnitMock();
- UnlinkedUnit unlinkedUnit12 = new _UnlinkedUnitMock();
- UnlinkedUnit unlinkedUnit21 = new _UnlinkedUnitMock();
- LinkedLibrary linkedLibrary1 = new _LinkedLibraryMock();
- LinkedLibrary linkedLibrary2 = new _LinkedLibraryMock();
+ _PackageBundleMock bundle1 = new _PackageBundleMock();
+ _PackageBundleMock bundle2 = new _PackageBundleMock();
+ _UnlinkedUnitMock unlinkedUnit11 = new _UnlinkedUnitMock();
+ _UnlinkedUnitMock unlinkedUnit12 = new _UnlinkedUnitMock();
+ _UnlinkedUnitMock unlinkedUnit21 = new _UnlinkedUnitMock();
+ _LinkedLibraryMock linkedLibrary1 = new _LinkedLibraryMock();
+ _LinkedLibraryMock linkedLibrary2 = new _LinkedLibraryMock();
void setUp() {
_setupDataStore(dataStore);
@@ -189,36 +187,38 @@
}
test_addBundle_dartUris() {
- PackageBundle bundle = new _PackageBundleMock();
- when(bundle.unlinkedUnitUris).thenReturn(<String>['dart:core']);
- when(bundle.unlinkedUnits).thenReturn(<UnlinkedUnit>[unlinkedUnit11]);
- when(bundle.linkedLibraryUris).thenReturn(<String>['dart:core']);
- when(bundle.linkedLibraries).thenReturn(<LinkedLibrary>[linkedLibrary1]);
- when(bundle.apiSignature).thenReturn('signature');
+ _PackageBundleMock bundle = new _PackageBundleMock();
+ bundle.unlinkedUnitUris = <String>['dart:core'];
+ bundle.unlinkedUnits = <UnlinkedUnit>[unlinkedUnit11];
+ bundle.linkedLibraryUris = <String>['dart:core'];
+ bundle.linkedLibraries = <LinkedLibrary>[linkedLibrary1];
+ bundle.apiSignature = 'signature';
dataStore.addBundle('/p3.ds', bundle);
}
test_addBundle_fileUris() {
- PackageBundle bundle = new _PackageBundleMock();
- when(bundle.unlinkedUnitUris).thenReturn(<String>['file:/foo.dart']);
- when(bundle.unlinkedUnits).thenReturn(<UnlinkedUnit>[unlinkedUnit11]);
- when(bundle.linkedLibraryUris).thenReturn(<String>['file:/foo.dart']);
- when(bundle.linkedLibraries).thenReturn(<LinkedLibrary>[linkedLibrary1]);
- when(bundle.apiSignature).thenReturn('signature');
+ _PackageBundleMock bundle = new _PackageBundleMock();
+ bundle.unlinkedUnitUris = <String>['file:/foo.dart'];
+ bundle.unlinkedUnits = <UnlinkedUnit>[unlinkedUnit11];
+ bundle.linkedLibraryUris = <String>['file:/foo.dart'];
+ bundle.linkedLibraries = <LinkedLibrary>[linkedLibrary1];
+ bundle.apiSignature = 'signature';
dataStore.addBundle('/p3.ds', bundle);
}
test_addBundle_multiProject() {
- PackageBundle bundle = new _PackageBundleMock();
- when(bundle.unlinkedUnitUris)
- .thenReturn(<String>['package:p2/u1.dart', 'package:p1/u1.dart']);
- when(bundle.unlinkedUnits)
- .thenReturn(<UnlinkedUnit>[unlinkedUnit21, unlinkedUnit11]);
- when(bundle.linkedLibraryUris)
- .thenReturn(<String>['package:p2/u1.dart', 'package:p1/u1.dart']);
- when(bundle.linkedLibraries)
- .thenReturn(<LinkedLibrary>[linkedLibrary2, linkedLibrary1]);
- when(bundle.apiSignature).thenReturn('signature');
+ _PackageBundleMock bundle = new _PackageBundleMock();
+ bundle.unlinkedUnitUris = <String>[
+ 'package:p2/u1.dart',
+ 'package:p1/u1.dart'
+ ];
+ bundle.unlinkedUnits = <UnlinkedUnit>[unlinkedUnit21, unlinkedUnit11];
+ bundle.linkedLibraryUris = <String>[
+ 'package:p2/u1.dart',
+ 'package:p1/u1.dart'
+ ];
+ bundle.linkedLibraries = <LinkedLibrary>[linkedLibrary2, linkedLibrary1];
+ bundle.apiSignature = 'signature';
// p3 conflicts (overlaps) with existing summaries.
expect(() => dataStore.addBundle('/p3.ds', bundle),
throwsA(isConflictingSummaryException));
@@ -229,16 +229,18 @@
new SummaryDataStore(<String>[], disallowOverlappingSummaries: false);
_setupDataStore(dataStore2);
- PackageBundle bundle = new _PackageBundleMock();
- when(bundle.unlinkedUnitUris)
- .thenReturn(<String>['package:p2/u1.dart', 'package:p1/u1.dart']);
- when(bundle.unlinkedUnits)
- .thenReturn(<UnlinkedUnit>[unlinkedUnit21, unlinkedUnit11]);
- when(bundle.linkedLibraryUris)
- .thenReturn(<String>['package:p2/u1.dart', 'package:p1/u1.dart']);
- when(bundle.linkedLibraries)
- .thenReturn(<LinkedLibrary>[linkedLibrary2, linkedLibrary1]);
- when(bundle.apiSignature).thenReturn('signature');
+ _PackageBundleMock bundle = new _PackageBundleMock();
+ bundle.unlinkedUnitUris = <String>[
+ 'package:p2/u1.dart',
+ 'package:p1/u1.dart'
+ ];
+ bundle.unlinkedUnits = <UnlinkedUnit>[unlinkedUnit21, unlinkedUnit11];
+ bundle.linkedLibraryUris = <String>[
+ 'package:p2/u1.dart',
+ 'package:p1/u1.dart'
+ ];
+ bundle.linkedLibraries = <LinkedLibrary>[linkedLibrary2, linkedLibrary1];
+ bundle.apiSignature = 'signature';
// p3 conflicts (overlaps) with existing summaries, but now allowed.
dataStore2.addBundle('/p3.ds', bundle);
}
@@ -265,23 +267,24 @@
var namespace1 = _namespaceWithParts(['package:p1/u2.dart']);
var namespace2 = _namespaceWithParts([]);
// bundle1
- when(unlinkedUnit11.publicNamespace).thenReturn(namespace1);
- when(unlinkedUnit12.publicNamespace).thenReturn(namespace2);
- when(bundle1.unlinkedUnitUris)
- .thenReturn(<String>['package:p1/u1.dart', 'package:p1/u2.dart']);
- when(bundle1.unlinkedUnits)
- .thenReturn(<UnlinkedUnit>[unlinkedUnit11, unlinkedUnit12]);
- when(bundle1.linkedLibraryUris).thenReturn(<String>['package:p1/u1.dart']);
- when(bundle1.linkedLibraries).thenReturn(<LinkedLibrary>[linkedLibrary1]);
- when(bundle1.apiSignature).thenReturn('signature1');
+ unlinkedUnit11.publicNamespace = namespace1;
+ unlinkedUnit12.publicNamespace = namespace2;
+ bundle1.unlinkedUnitUris = <String>[
+ 'package:p1/u1.dart',
+ 'package:p1/u2.dart'
+ ];
+ bundle1.unlinkedUnits = <UnlinkedUnit>[unlinkedUnit11, unlinkedUnit12];
+ bundle1.linkedLibraryUris = <String>['package:p1/u1.dart'];
+ bundle1.linkedLibraries = <LinkedLibrary>[linkedLibrary1];
+ bundle1.apiSignature = 'signature1';
store.addBundle('/p1.ds', bundle1);
// bundle2
- when(unlinkedUnit21.publicNamespace).thenReturn(namespace2);
- when(bundle2.unlinkedUnitUris).thenReturn(<String>['package:p2/u1.dart']);
- when(bundle2.unlinkedUnits).thenReturn(<UnlinkedUnit>[unlinkedUnit21]);
- when(bundle2.linkedLibraryUris).thenReturn(<String>['package:p2/u1.dart']);
- when(bundle2.linkedLibraries).thenReturn(<LinkedLibrary>[linkedLibrary2]);
- when(bundle2.apiSignature).thenReturn('signature2');
+ unlinkedUnit21.publicNamespace = namespace2;
+ bundle2.unlinkedUnitUris = <String>['package:p2/u1.dart'];
+ bundle2.unlinkedUnits = <UnlinkedUnit>[unlinkedUnit21];
+ bundle2.linkedLibraryUris = <String>['package:p2/u1.dart'];
+ bundle2.linkedLibraries = <LinkedLibrary>[linkedLibrary2];
+ bundle2.apiSignature = 'signature2';
store.addBundle('/p2.ds', bundle2);
}
}
@@ -291,17 +294,64 @@
bool matches(item, Map matchState) => item is ConflictingSummaryException;
}
-class _InternalAnalysisContextMock extends Mock
- implements InternalAnalysisContext {}
+class _InternalAnalysisContextMock implements InternalAnalysisContext {
+ @override
+ SourceFactory sourceFactory;
-class _LinkedLibraryMock extends Mock implements LinkedLibrary {}
+ @override
+ noSuchMethod(Invocation invocation) {
+ throw new StateError('Unexpected invocation of ${invocation.memberName}');
+ }
+}
-class _PackageBundleMock extends Mock implements PackageBundle {}
+class _LinkedLibraryMock implements LinkedLibrary {
+ @override
+ noSuchMethod(Invocation invocation) {
+ throw new StateError('Unexpected invocation of ${invocation.memberName}');
+ }
+}
-class _SourceFactoryMock extends Mock implements SourceFactory {}
+class _PackageBundleMock implements PackageBundle {
+ @override
+ String apiSignature;
+
+ @override
+ List<LinkedLibrary> linkedLibraries;
+
+ @override
+ List<String> linkedLibraryUris;
+
+ @override
+ List<UnlinkedUnit> unlinkedUnits;
+
+ @override
+ List<String> unlinkedUnitUris;
+
+ @override
+ noSuchMethod(Invocation invocation) {
+ throw new StateError('Unexpected invocation of ${invocation.memberName}');
+ }
+}
+
+class _SourceFactoryMock implements SourceFactory {
+ Map<String, Source> resolvedUriMap = <String, Source>{};
+
+ @override
+ noSuchMethod(Invocation invocation) {
+ throw new StateError('Unexpected invocation of ${invocation.memberName}');
+ }
+
+ @override
+ Source resolveUri(Source containingSource, String containedUri) {
+ return resolvedUriMap[containedUri];
+ }
+}
class _SourceMock implements Source {
+ @override
final Uri uri;
+
+ @override
final String fullName;
_SourceMock(String uriStr, this.fullName) : uri = Uri.parse(uriStr);
@@ -331,7 +381,28 @@
}
}
-class _UnlinkedPublicNamespaceMock extends Mock
- implements UnlinkedPublicNamespace {}
+class _UnlinkedPublicNamespaceMock implements UnlinkedPublicNamespace {
+ @override
+ List<String> parts;
-class _UnlinkedUnitMock extends Mock implements UnlinkedUnit {}
+ @override
+ noSuchMethod(Invocation invocation) {
+ throw new StateError('Unexpected invocation of ${invocation.memberName}');
+ }
+}
+
+class _UnlinkedUnitMock implements UnlinkedUnit {
+ @override
+ bool isPartOf;
+
+ @override
+ List<int> lineStarts;
+
+ @override
+ UnlinkedPublicNamespace publicNamespace;
+
+ @override
+ noSuchMethod(Invocation invocation) {
+ throw new StateError('Unexpected invocation of ${invocation.memberName}');
+ }
+}
diff --git a/pkg/analyzer/test/src/summary/resynthesize_common.dart b/pkg/analyzer/test/src/summary/resynthesize_common.dart
index 6dfd98c..3763f67 100644
--- a/pkg/analyzer/test/src/summary/resynthesize_common.dart
+++ b/pkg/analyzer/test/src/summary/resynthesize_common.dart
@@ -9917,6 +9917,7 @@
}
test_unused_type_parameter() async {
+ shouldCompareLibraryElements = false;
var library = await checkLibrary('''
class C<T> {
void f() {}
diff --git a/pkg/analyzer/test/src/summary/resynthesize_kernel_test.dart b/pkg/analyzer/test/src/summary/resynthesize_kernel_test.dart
index 0774634..707aa7e 100644
--- a/pkg/analyzer/test/src/summary/resynthesize_kernel_test.dart
+++ b/pkg/analyzer/test/src/summary/resynthesize_kernel_test.dart
@@ -29,9 +29,11 @@
import 'resynthesize_common.dart';
main() {
- defineReflectiveSuite(() {
- defineReflectiveTests(ResynthesizeKernelStrongTest);
- });
+ // TODO(brianwilkerson) Either remove the following test, or uncomment it if
+ // we get it working under Dart2 semantics.
+// defineReflectiveSuite(() {
+// defineReflectiveTests(ResynthesizeKernelStrongTest);
+// });
}
/// Tests marked with this annotation fail because they test features that
diff --git a/pkg/analyzer/test/src/task/dart_work_manager_test.dart b/pkg/analyzer/test/src/task/dart_work_manager_test.dart
index 40b9e23..cc4fa43 100644
--- a/pkg/analyzer/test/src/task/dart_work_manager_test.dart
+++ b/pkg/analyzer/test/src/task/dart_work_manager_test.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.
-library analyzer.test.src.task.dart_work_manager_test;
-
import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/error/error.dart' show AnalysisError;
import 'package:analyzer/exception/exception.dart';
@@ -11,6 +9,8 @@
import 'package:analyzer/src/dart/scanner/scanner.dart' show ScannerErrorCode;
import 'package:analyzer/src/generated/engine.dart'
show
+ AnalysisContext,
+ AnalysisErrorInfo,
AnalysisErrorInfoImpl,
AnalysisOptions,
AnalysisOptionsImpl,
@@ -25,7 +25,6 @@
import 'package:analyzer/task/dart.dart';
import 'package:analyzer/task/general.dart';
import 'package:analyzer/task/model.dart';
-import 'package:mockito/mockito.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -39,7 +38,7 @@
@reflectiveTest
class DartWorkManagerTest {
- InternalAnalysisContext context = new _InternalAnalysisContextMock();
+ _InternalAnalysisContextMock context = new _InternalAnalysisContextMock();
AnalysisCache cache;
DartWorkManager manager;
@@ -226,8 +225,8 @@
}
void test_applyPriorityTargets_isLibrary_computeErrors() {
- when(context.shouldErrorsBeAnalyzed(source2)).thenReturn(true);
- when(context.shouldErrorsBeAnalyzed(source3)).thenReturn(true);
+ context.setShouldErrorsBeAnalyzed(source2, true);
+ context.setShouldErrorsBeAnalyzed(source3, true);
entry1.setValue(SOURCE_KIND, SourceKind.LIBRARY, []);
entry2.setValue(SOURCE_KIND, SourceKind.LIBRARY, []);
entry3.setValue(SOURCE_KIND, SourceKind.LIBRARY, []);
@@ -250,8 +249,8 @@
}
void test_applyPriorityTargets_isLibrary_computeUnit() {
- when(context.shouldErrorsBeAnalyzed(source2)).thenReturn(false);
- when(context.shouldErrorsBeAnalyzed(source3)).thenReturn(false);
+ context.setShouldErrorsBeAnalyzed(source2, false);
+ context.setShouldErrorsBeAnalyzed(source3, false);
entry1.setValue(SOURCE_KIND, SourceKind.LIBRARY, []);
entry2.setValue(SOURCE_KIND, SourceKind.LIBRARY, []);
entry3.setValue(SOURCE_KIND, SourceKind.LIBRARY, []);
@@ -276,8 +275,7 @@
entry2.setValue(SOURCE_KIND, SourceKind.LIBRARY, []);
entry3.setValue(SOURCE_KIND, SourceKind.LIBRARY, []);
// +source2 +source3
- when(context.getLibrariesContaining(source1))
- .thenReturn([source2, source3]);
+ context.getLibrariesContainingMap[source1] = <Source>[source2, source3];
manager.applyPriorityTargets([source1]);
expect(
manager.priorityResultQueue,
@@ -310,7 +308,7 @@
new AnalysisError(source1, 1, 0, ScannerErrorCode.MISSING_DIGIT);
AnalysisError error2 =
new AnalysisError(source1, 2, 0, ScannerErrorCode.MISSING_DIGIT);
- when(context.getLibrariesContaining(source1)).thenReturn([source2]);
+ context.getLibrariesContainingMap[source1] = <Source>[source2];
entry1.setValue(SCAN_ERRORS, <AnalysisError>[error1], []);
context
.getCacheEntry(new LibrarySpecificUnit(source2, source1))
@@ -324,14 +322,14 @@
new AnalysisError(source1, 1, 0, ScannerErrorCode.MISSING_DIGIT);
AnalysisError error2 =
new AnalysisError(source1, 2, 0, ScannerErrorCode.MISSING_DIGIT);
- when(context.getLibrariesContaining(source1)).thenReturn([source2]);
+ context.getLibrariesContainingMap[source1] = <Source>[source2];
entry1.setValue(DART_ERRORS, <AnalysisError>[error1, error2], []);
List<AnalysisError> errors = manager.getErrors(source1);
expect(errors, unorderedEquals([error1, error2]));
}
void test_getLibrariesContainingPart() {
- when(context.aboutToComputeResult(any, any)).thenReturn(false);
+ context.aboutToComputeEverything = false;
Source part1 = new TestSource('part1.dart');
Source part2 = new TestSource('part2.dart');
Source part3 = new TestSource('part3.dart');
@@ -356,10 +354,8 @@
Source library1 = new TestSource('library1.dart');
Source library2 = new TestSource('library2.dart');
// configure AnalysisContext mock
- when(context.aboutToComputeResult(any, CONTAINING_LIBRARIES))
- .thenAnswer((invocation) {
- CacheEntry entry = invocation.positionalArguments[0];
- ResultDescriptor result = invocation.positionalArguments[1];
+ context.aboutToComputeResultMap[CONTAINING_LIBRARIES] =
+ (CacheEntry entry, ResultDescriptor result) {
if (entry.target == part1) {
entry.setValue(result as ResultDescriptor<List<Source>>,
<Source>[library1, library2], []);
@@ -371,7 +367,7 @@
return true;
}
return false;
- });
+ };
// getLibrariesContainingPart
expect(manager.getLibrariesContainingPart(part1),
unorderedEquals([library1, library2]));
@@ -381,26 +377,29 @@
}
void test_getLibrariesContainingPart_inSDK() {
- Source part = new _SourceMock('part.dart');
- when(part.isInSystemLibrary).thenReturn(true);
+ _SourceMock part = new _SourceMock('part.dart');
+ part.isInSystemLibrary = true;
// SDK work manager
- DartWorkManager sdkDartWorkManagerMock = new _DartWorkManagerMock();
- when(sdkDartWorkManagerMock.getLibrariesContainingPart(part))
- .thenReturn([source2, source3]);
+ _DartWorkManagerMock sdkDartWorkManagerMock = new _DartWorkManagerMock();
+ sdkDartWorkManagerMock.librariesContainingPartMap[part] = <Source>[
+ source2,
+ source3
+ ];
// SDK context mock
- InternalAnalysisContext sdkContextMock = new _InternalAnalysisContextMock();
- when(sdkContextMock.workManagers).thenReturn([sdkDartWorkManagerMock]);
+ _InternalAnalysisContextMock sdkContextMock =
+ new _InternalAnalysisContextMock();
+ sdkContextMock.workManagers = <WorkManager>[sdkDartWorkManagerMock];
// SDK mock
- DartSdk sdkMock = new _DartSdkMock();
- when(sdkMock.context).thenReturn(sdkContextMock);
+ _DartSdkMock sdkMock = new _DartSdkMock();
+ sdkMock.context = sdkContextMock;
// SourceFactory mock
- SourceFactory sourceFactory = new _SourceFactoryMock();
- when(sourceFactory.dartSdk).thenReturn(sdkMock);
- when(context.sourceFactory).thenReturn(sourceFactory);
+ _SourceFactoryMock sourceFactory = new _SourceFactoryMock();
+ sourceFactory.dartSdk = sdkMock;
+ context.sourceFactory = sourceFactory;
// SDK source mock
- Source source = new _SourceMock('test.dart');
- when(source.source).thenReturn(source);
- when(source.isInSystemLibrary).thenReturn(true);
+ _SourceMock source = new _SourceMock('test.dart');
+ source.source = source;
+ source.isInSystemLibrary = true;
// validate
expect(manager.getLibrariesContainingPart(part),
unorderedEquals([source2, source3]));
@@ -531,7 +530,7 @@
}
void test_onAnalysisOptionsChanged() {
- when(context.exists(any)).thenReturn(true);
+ context.everythingExists = true;
// set cache values
entry1.setValue(PARSED_UNIT, AstTestFactory.compilationUnit(), []);
entry1.setValue(IMPORTED_LIBRARIES, <Source>[], []);
@@ -575,7 +574,7 @@
}
void test_onSourceFactoryChanged() {
- when(context.exists(any)).thenReturn(true);
+ context.everythingExists = true;
// set cache values
entry1.setValue(PARSED_UNIT, AstTestFactory.compilationUnit(), []);
entry1.setValue(IMPORTED_LIBRARIES, <Source>[], []);
@@ -610,9 +609,9 @@
new AnalysisError(source1, 1, 0, ScannerErrorCode.MISSING_DIGIT);
AnalysisError error2 =
new AnalysisError(source1, 2, 0, ScannerErrorCode.MISSING_DIGIT);
- when(context.getLibrariesContaining(source1)).thenReturn([source2]);
- when(context.getErrors(source1))
- .thenReturn(new AnalysisErrorInfoImpl([error1, error2], lineInfo));
+ context.getLibrariesContainingMap[source1] = <Source>[source2];
+ context.errorsMap[source1] =
+ new AnalysisErrorInfoImpl([error1, error2], lineInfo);
entry1.setValue(LINE_INFO, lineInfo, []);
entry1.setValue(SCAN_ERRORS, <AnalysisError>[error1], []);
AnalysisTarget unitTarget = new LibrarySpecificUnit(source2, source1);
@@ -634,9 +633,9 @@
new AnalysisError(source1, 1, 0, ScannerErrorCode.MISSING_DIGIT);
AnalysisError error2 =
new AnalysisError(source1, 2, 0, ScannerErrorCode.MISSING_DIGIT);
- when(context.getLibrariesContaining(source1)).thenReturn([source2]);
- when(context.getErrors(source1))
- .thenReturn(new AnalysisErrorInfoImpl([error1, error2], lineInfo));
+ context.getLibrariesContainingMap[source1] = <Source>[source2];
+ context.errorsMap[source1] =
+ new AnalysisErrorInfoImpl([error1, error2], lineInfo);
entry1.setValue(LINE_INFO, lineInfo, []);
entry1.setValue(SCAN_ERRORS, <AnalysisError>[error1], []);
entry1.setValue(PARSE_ERRORS, <AnalysisError>[error2], []);
@@ -658,8 +657,8 @@
_getOrCreateEntry(part1).setValue(CONTAINING_LIBRARIES, [], []);
expect(cache.getState(part1, CONTAINING_LIBRARIES), CacheState.VALID);
// configure AnalysisContext mock
- when(context.prioritySources).thenReturn(<Source>[]);
- when(context.shouldErrorsBeAnalyzed(any)).thenReturn(false);
+ context.prioritySources = <Source>[];
+ context.analyzeAllErrors = false;
// library1 parts
manager.resultsComputed(library1, <ResultDescriptor, dynamic>{
INCLUDED_PARTS: [part1, part2],
@@ -685,25 +684,28 @@
}
void test_resultsComputed_inSDK() {
- DartWorkManager sdkDartWorkManagerMock = new _DartWorkManagerMock();
+ _DartWorkManagerMock sdkDartWorkManagerMock = new _DartWorkManagerMock();
// SDK context mock
- InternalAnalysisContext sdkContextMock = new _InternalAnalysisContextMock();
- when(sdkContextMock.workManagers).thenReturn([sdkDartWorkManagerMock]);
+ _InternalAnalysisContextMock sdkContextMock =
+ new _InternalAnalysisContextMock();
+ sdkContextMock.workManagers = <WorkManager>[sdkDartWorkManagerMock];
// SDK mock
- DartSdk sdkMock = new _DartSdkMock();
- when(sdkMock.context).thenReturn(sdkContextMock);
+ _DartSdkMock sdkMock = new _DartSdkMock();
+ sdkMock.context = sdkContextMock;
// SourceFactory mock
- SourceFactory sourceFactory = new _SourceFactoryMock();
- when(sourceFactory.dartSdk).thenReturn(sdkMock);
- when(context.sourceFactory).thenReturn(sourceFactory);
+ _SourceFactoryMock sourceFactory = new _SourceFactoryMock();
+ sourceFactory.dartSdk = sdkMock;
+ context.sourceFactory = sourceFactory;
// SDK source mock
- Source source = new _SourceMock('test.dart');
- when(source.source).thenReturn(source);
- when(source.isInSystemLibrary).thenReturn(true);
+ _SourceMock source = new _SourceMock('test.dart');
+ source.source = source;
+ source.isInSystemLibrary = true;
// notify and validate
Map<ResultDescriptor, dynamic> outputs = <ResultDescriptor, dynamic>{};
manager.resultsComputed(source, outputs);
- verify(sdkDartWorkManagerMock.resultsComputed(source, outputs)).called(1);
+ var bySourceMap = sdkDartWorkManagerMock.resultsComputedCounts[source];
+ expect(bySourceMap, isNotNull);
+ expect(bySourceMap[outputs], 1);
}
void test_resultsComputed_noSourceKind() {
@@ -722,9 +724,8 @@
void test_resultsComputed_parsedUnit() {
LineInfo lineInfo = new LineInfo([0]);
- when(context.getLibrariesContaining(source1)).thenReturn([]);
- when(context.getErrors(source1))
- .thenReturn(new AnalysisErrorInfoImpl([], lineInfo));
+ context.getLibrariesContainingMap[source1] = <Source>[];
+ context.errorsMap[source1] = new AnalysisErrorInfoImpl([], lineInfo);
entry1.setValue(LINE_INFO, lineInfo, []);
CompilationUnit unit = AstTestFactory.compilationUnit();
manager.resultsComputed(source1, {PARSED_UNIT: unit});
@@ -736,9 +737,8 @@
void test_resultsComputed_resolvedUnit() {
LineInfo lineInfo = new LineInfo([0]);
- when(context.getLibrariesContaining(source2)).thenReturn([]);
- when(context.getErrors(source2))
- .thenReturn(new AnalysisErrorInfoImpl([], lineInfo));
+ context.getLibrariesContainingMap[source2] = <Source>[];
+ context.errorsMap[source2] = new AnalysisErrorInfoImpl([], lineInfo);
entry2.setValue(LINE_INFO, lineInfo, []);
CompilationUnit unit = AstTestFactory.compilationUnit();
manager.resultsComputed(
@@ -751,8 +751,8 @@
void test_resultsComputed_sourceKind_isLibrary() {
manager.unknownSourceQueue.addAll([source1, source2, source3]);
- when(context.prioritySources).thenReturn(<Source>[]);
- when(context.shouldErrorsBeAnalyzed(source2)).thenReturn(true);
+ context.prioritySources = <Source>[];
+ context.shouldErrorsBeAnalyzedMap[source2] = true;
manager.resultsComputed(source2, {SOURCE_KIND: SourceKind.LIBRARY});
expect_librarySourceQueue([source2]);
expect_unknownSourceQueue([source1, source3]);
@@ -760,8 +760,8 @@
void test_resultsComputed_sourceKind_isLibrary_isPriority_computeErrors() {
manager.unknownSourceQueue.addAll([source1, source2, source3]);
- when(context.prioritySources).thenReturn(<Source>[source2]);
- when(context.shouldErrorsBeAnalyzed(source2)).thenReturn(true);
+ context.prioritySources = <Source>[source2];
+ context.shouldErrorsBeAnalyzedMap[source2] = true;
manager.resultsComputed(source2, {SOURCE_KIND: SourceKind.LIBRARY});
expect_unknownSourceQueue([source1, source3]);
expect(manager.priorityResultQueue,
@@ -770,8 +770,8 @@
void test_resultsComputed_sourceKind_isLibrary_isPriority_computeUnit() {
manager.unknownSourceQueue.addAll([source1, source2, source3]);
- when(context.prioritySources).thenReturn(<Source>[source2]);
- when(context.shouldErrorsBeAnalyzed(source2)).thenReturn(false);
+ context.prioritySources = <Source>[source2];
+ context.shouldErrorsBeAnalyzedMap[source2] = false;
manager.resultsComputed(source2, {SOURCE_KIND: SourceKind.LIBRARY});
expect_unknownSourceQueue([source1, source3]);
expect(
@@ -816,18 +816,74 @@
}
}
-class _DartSdkMock extends Mock implements DartSdk {}
+class _DartSdkMock implements DartSdk {
+ AnalysisContext context;
-class _DartWorkManagerMock extends Mock implements DartWorkManager {}
+ @override
+ noSuchMethod(Invocation invocation) {
+ throw new StateError('Unexpected invocation of ${invocation.memberName}');
+ }
+}
-class _InternalAnalysisContextMock extends Mock
- implements InternalAnalysisContext {
+class _DartWorkManagerMock implements DartWorkManager {
+ Map<Source, List<Source>> librariesContainingPartMap =
+ <Source, List<Source>>{};
+
+ Map<Source, Map<Map<ResultDescriptor, dynamic>, int>> resultsComputedCounts =
+ <Source, Map<Map<ResultDescriptor, dynamic>, int>>{};
+
+ @override
+ List<Source> getLibrariesContainingPart(Source part) {
+ return librariesContainingPartMap[part] ?? <Source>[];
+ }
+
+ @override
+ noSuchMethod(Invocation invocation) {
+ throw new StateError('Unexpected invocation of ${invocation.memberName}');
+ }
+
+ @override
+ void resultsComputed(
+ AnalysisTarget target, Map<ResultDescriptor, dynamic> outputs) {
+ Map<Map<ResultDescriptor, dynamic>, int> bySourceMap =
+ resultsComputedCounts.putIfAbsent(target, () => {});
+ bySourceMap[outputs] = (bySourceMap[outputs] ?? 0) + 1;
+ }
+}
+
+class _InternalAnalysisContextMock implements InternalAnalysisContext {
@override
CachePartition privateAnalysisCachePartition;
@override
AnalysisCache analysisCache;
+ @override
+ SourceFactory sourceFactory;
+
+ bool analyzeAllErrors;
+
+ bool everythingExists = false;
+
+ bool aboutToComputeEverything;
+
+ @override
+ List<Source> prioritySources = <Source>[];
+
+ @override
+ List<WorkManager> workManagers = <WorkManager>[];
+
+ Map<Source, List<Source>> getLibrariesContainingMap =
+ <Source, List<Source>>{};
+
+ Map<Source, bool> shouldErrorsBeAnalyzedMap = <Source, bool>{};
+
+ Map<ResultDescriptor, bool Function(CacheEntry entry, ResultDescriptor)>
+ aboutToComputeResultMap =
+ <ResultDescriptor, bool Function(CacheEntry entry, ResultDescriptor)>{};
+
+ Map<Source, AnalysisErrorInfo> errorsMap = <Source, AnalysisErrorInfo>{};
+
Map<Source, ChangeNoticeImpl> _pendingNotices = <Source, ChangeNoticeImpl>{};
@override
@@ -846,6 +902,24 @@
}
@override
+ bool aboutToComputeResult(CacheEntry entry, ResultDescriptor result) {
+ if (aboutToComputeEverything != null) {
+ return aboutToComputeEverything;
+ }
+ bool Function(CacheEntry entry, ResultDescriptor) function =
+ aboutToComputeResultMap[result];
+ if (function == null) {
+ return false;
+ }
+ return function(entry, result);
+ }
+
+ @override
+ bool exists(Source source) {
+ return everythingExists;
+ }
+
+ @override
CacheEntry getCacheEntry(AnalysisTarget target) {
CacheEntry entry = analysisCache.get(target);
if (entry == null) {
@@ -856,19 +930,65 @@
}
@override
+ AnalysisErrorInfo getErrors(Source source) => errorsMap[source];
+
+ List<Source> getLibrariesContaining(Source source) {
+ return getLibrariesContainingMap[source];
+ }
+
+ @override
ChangeNoticeImpl getNotice(Source source) {
return _pendingNotices.putIfAbsent(
source, () => new ChangeNoticeImpl(source));
}
+
+ @override
+ noSuchMethod(Invocation invocation) {
+ throw new StateError('Unexpected invocation of ${invocation.memberName}');
+ }
+
+ void setShouldErrorsBeAnalyzed(Source source, bool value) {
+ shouldErrorsBeAnalyzedMap[source] = value;
+ }
+
+ @override
+ bool shouldErrorsBeAnalyzed(Source source) {
+ if (analyzeAllErrors != null) {
+ return analyzeAllErrors;
+ }
+ return shouldErrorsBeAnalyzedMap[source];
+ }
}
-class _SourceFactoryMock extends Mock implements SourceFactory {}
+class _SourceFactoryMock implements SourceFactory {
+ DartSdk dartSdk;
-class _SourceMock extends Mock implements Source {
+ @override
+ noSuchMethod(Invocation invocation) {
+ throw new StateError('Unexpected invocation of ${invocation.memberName}');
+ }
+}
+
+class _SourceMock implements Source {
+ @override
final String shortName;
+
+ @override
+ bool isInSystemLibrary = false;
+
+ @override
+ Source source;
+
_SourceMock(this.shortName);
+
@override
String get fullName => '/' + shortName;
+
+ @override
+ noSuchMethod(Invocation invocation) {
+ throw new StateError('Unexpected invocation of ${invocation.memberName}');
+ }
+
@override
String toString() => fullName;
}
diff --git a/pkg/analyzer/test/src/task/driver_test.dart b/pkg/analyzer/test/src/task/driver_test.dart
index 1c7c6ec..55a613d5 100644
--- a/pkg/analyzer/test/src/task/driver_test.dart
+++ b/pkg/analyzer/test/src/task/driver_test.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.
-library analyzer.test.src.task.driver_test;
-
import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/src/context/cache.dart';
import 'package:analyzer/src/generated/engine.dart';
@@ -11,7 +9,6 @@
import 'package:analyzer/src/task/inputs.dart';
import 'package:analyzer/src/task/manager.dart';
import 'package:analyzer/task/model.dart';
-import 'package:mockito/mockito.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -30,20 +27,19 @@
class AbstractDriverTest {
TaskManager taskManager = new TaskManager();
List<WorkManager> workManagers = <WorkManager>[];
- InternalAnalysisContext context = new _InternalAnalysisContextMock();
+ _InternalAnalysisContextMock context = new _InternalAnalysisContextMock();
AnalysisDriver analysisDriver;
void setUp() {
context = new _InternalAnalysisContextMock();
analysisDriver = new AnalysisDriver(taskManager, workManagers, context);
- when(context.aboutToComputeResult(any, any)).thenReturn(false);
}
}
@reflectiveTest
class AnalysisDriverTest extends AbstractDriverTest {
- WorkManager workManager1 = new _WorkManagerMock();
- WorkManager workManager2 = new _WorkManagerMock();
+ _WorkManagerMock workManager1 = new _WorkManagerMock();
+ _WorkManagerMock workManager2 = new _WorkManagerMock();
AnalysisTarget target1 = new TestSource('/1.dart');
AnalysisTarget target2 = new TestSource('/2.dart');
@@ -56,10 +52,8 @@
void setUp() {
super.setUp();
- when(workManager1.getNextResultPriority())
- .thenReturn(WorkOrderPriority.NONE);
- when(workManager2.getNextResultPriority())
- .thenReturn(WorkOrderPriority.NONE);
+ workManager1.nextResultPriority = WorkOrderPriority.NONE;
+ workManager2.nextResultPriority = WorkOrderPriority.NONE;
workManagers.add(workManager1);
workManagers.add(workManager2);
@@ -87,12 +81,9 @@
test_createNextWorkOrder_highLow() {
_configureDescriptors12();
- when(workManager1.getNextResultPriority())
- .thenReturn(WorkOrderPriority.PRIORITY);
- when(workManager2.getNextResultPriority())
- .thenReturn(WorkOrderPriority.NORMAL);
- when(workManager1.getNextResult())
- .thenReturn(new TargetedResult(target1, result1));
+ workManager1.nextResultPriority = WorkOrderPriority.PRIORITY;
+ workManager2.nextResultPriority = WorkOrderPriority.NORMAL;
+ workManager1.nextResult = new TargetedResult(target1, result1);
WorkOrder workOrder = analysisDriver.createNextWorkOrder();
expect(workOrder, isNotNull);
expect(workOrder.moveNext(), true);
@@ -102,12 +93,9 @@
test_createNextWorkOrder_lowHigh() {
_configureDescriptors12();
- when(workManager1.getNextResultPriority())
- .thenReturn(WorkOrderPriority.NORMAL);
- when(workManager2.getNextResultPriority())
- .thenReturn(WorkOrderPriority.PRIORITY);
- when(workManager2.getNextResult())
- .thenReturn(new TargetedResult(target1, result1));
+ workManager1.nextResultPriority = WorkOrderPriority.NORMAL;
+ workManager2.nextResultPriority = WorkOrderPriority.PRIORITY;
+ workManager2.nextResult = new TargetedResult(target1, result1);
WorkOrder workOrder = analysisDriver.createNextWorkOrder();
expect(workOrder, isNotNull);
expect(workOrder.moveNext(), true);
@@ -117,10 +105,8 @@
test_createNextWorkOrder_none() {
_configureDescriptors12();
- when(workManager1.getNextResultPriority())
- .thenReturn(WorkOrderPriority.NONE);
- when(workManager2.getNextResultPriority())
- .thenReturn(WorkOrderPriority.NONE);
+ workManager1.nextResultPriority = WorkOrderPriority.NONE;
+ workManager2.nextResultPriority = WorkOrderPriority.NONE;
expect(analysisDriver.createNextWorkOrder(), isNull);
}
@@ -136,14 +122,14 @@
context.getCacheEntry(target).setState(result, CacheState.INVALID);
// has result
{
- when(context.aboutToComputeResult(any, result)).thenReturn(true);
+ context.aboutToComputeResultMap[result] = true;
WorkOrder workOrder =
analysisDriver.createWorkOrderForResult(target, result);
expect(workOrder, isNull);
}
// no result
{
- when(context.aboutToComputeResult(any, result)).thenReturn(false);
+ context.aboutToComputeResultMap[result] = false;
WorkOrder workOrder =
analysisDriver.createWorkOrderForResult(target, result);
expect(workOrder, isNotNull);
@@ -230,16 +216,13 @@
test_performAnalysisTask() {
_configureDescriptors12();
- when(workManager1.getNextResult())
- .thenReturn(new TargetedResult(target1, result1));
+ workManager1.nextResult = new TargetedResult(target1, result1);
- when(workManager1.getNextResultPriority())
- .thenReturn(WorkOrderPriority.NORMAL);
+ workManager1.nextResultPriority = WorkOrderPriority.NORMAL;
expect(analysisDriver.performAnalysisTask(), true);
expect(analysisDriver.performAnalysisTask(), true);
- when(workManager1.getNextResultPriority())
- .thenReturn(WorkOrderPriority.NONE);
+ workManager1.nextResultPriority = WorkOrderPriority.NONE;
expect(analysisDriver.performAnalysisTask(), false);
}
@@ -273,14 +256,11 @@
taskManager.addTaskDescriptor(descriptor1);
taskManager.addTaskDescriptor(descriptor2);
// configure WorkManager
- when(workManager1.getNextResultPriority())
- .thenReturn(WorkOrderPriority.NORMAL);
- when(workManager1.getNextResult())
- .thenReturn(new TargetedResult(target, resultB));
+ workManager1.nextResultPriority = WorkOrderPriority.NORMAL;
+ workManager1.nextResult = new TargetedResult(target, resultB);
// prepare work order
while (analysisDriver.performAnalysisTask()) {
- when(workManager1.getNextResultPriority())
- .thenReturn(WorkOrderPriority.NONE);
+ workManager1.nextResultPriority = WorkOrderPriority.NONE;
}
Set<TaskDescriptor> expectedCycle = [descriptor1, descriptor2].toSet();
expect(task1.dependencyCycle, isNotNull);
@@ -317,10 +297,8 @@
taskManager.addTaskDescriptor(descriptor1);
taskManager.addTaskDescriptor(descriptor2);
// configure WorkManager
- when(workManager1.getNextResultPriority())
- .thenReturn(WorkOrderPriority.NORMAL);
- when(workManager1.getNextResult())
- .thenReturn(new TargetedResult(target, resultB));
+ workManager1.nextResultPriority = WorkOrderPriority.NORMAL;
+ workManager1.nextResult = new TargetedResult(target, resultB);
// prepare work order
expect(analysisDriver.performAnalysisTask(), true);
expect(analysisDriver.performAnalysisTask(), true);
@@ -350,10 +328,8 @@
taskManager.addTaskDescriptor(descriptor1);
taskManager.addTaskDescriptor(descriptor2);
// configure WorkManager
- when(workManager1.getNextResultPriority())
- .thenReturn(WorkOrderPriority.NORMAL);
- when(workManager1.getNextResult())
- .thenReturn(new TargetedResult(target, resultB));
+ workManager1.nextResultPriority = WorkOrderPriority.NORMAL;
+ workManager1.nextResult = new TargetedResult(target, resultB);
// prepare work order
expect(analysisDriver.performAnalysisTask(), true);
expect(context.getCacheEntry(target).getValue(resultA), -1);
@@ -367,8 +343,7 @@
expect(context.getCacheEntry(target).getValue(resultA), 10);
expect(context.getCacheEntry(target).getValue(resultB), 20);
// done
- when(workManager1.getNextResultPriority())
- .thenReturn(WorkOrderPriority.NONE);
+ workManager1.nextResultPriority = WorkOrderPriority.NONE;
expect(analysisDriver.performAnalysisTask(), false);
}
@@ -704,7 +679,7 @@
taskManager.addTaskDescriptor(task1);
taskManager.addTaskDescriptor(task2);
// configure mocks
- when(context.aboutToComputeResult(any, resultA)).thenReturn(true);
+ context.aboutToComputeResultMap[resultA] = true;
// gather inputs
WorkItem item = new WorkItem(context, target, task2, null, 0, null);
WorkItem inputItem = item.gatherInputs(taskManager, []);
@@ -731,7 +706,7 @@
taskManager.addTaskDescriptor(task2);
// configure ResultProvider
// configure mocks
- when(context.aboutToComputeResult(any, resultA)).thenReturn(false);
+ context.aboutToComputeResultMap[resultA] = false;
// gather inputs
WorkItem item = new WorkItem(context, target, task2, null, 0, null);
WorkItem inputItem = item.gatherInputs(taskManager, []);
@@ -824,10 +799,11 @@
* A dummy [InternalAnalysisContext] that does not use [AnalysisDriver] itself,
* but provides enough implementation for it to function.
*/
-class _InternalAnalysisContextMock extends Mock
- implements InternalAnalysisContext {
+class _InternalAnalysisContextMock implements InternalAnalysisContext {
AnalysisCache analysisCache;
+ Map<ResultDescriptor, bool> aboutToComputeResultMap = {};
+
@override
final AnalysisOptionsImpl analysisOptions = new AnalysisOptionsImpl();
@@ -841,6 +817,12 @@
analysisCache = new AnalysisCache([new UniversalCachePartition(this)]);
}
+ String get name => 'mock';
+
+ @override
+ bool aboutToComputeResult(CacheEntry entry, ResultDescriptor result) =>
+ aboutToComputeResultMap[result] ?? false;
+
@override
CacheEntry getCacheEntry(AnalysisTarget target) {
CacheEntry entry = analysisCache.get(target);
@@ -850,6 +832,11 @@
}
return entry;
}
+
+ @override
+ noSuchMethod(Invocation invocation) {
+ throw new StateError('Unexpected invocation of ${invocation.memberName}');
+ }
}
/**
@@ -875,4 +862,20 @@
}
}
-class _WorkManagerMock extends Mock implements WorkManager {}
+class _WorkManagerMock implements WorkManager {
+ WorkOrderPriority nextResultPriority;
+
+ TargetedResult nextResult;
+
+ TargetedResult getNextResult() => nextResult;
+
+ WorkOrderPriority getNextResultPriority() => nextResultPriority;
+
+ @override
+ noSuchMethod(Invocation invocation) {
+ throw new StateError('Unexpected invocation of ${invocation.memberName}');
+ }
+
+ void resultsComputed(
+ AnalysisTarget target, Map<ResultDescriptor, dynamic> outputs) {}
+}
diff --git a/pkg/analyzer/test/src/task/general_test.dart b/pkg/analyzer/test/src/task/general_test.dart
index cb3eecb..0caea7e 100644
--- a/pkg/analyzer/test/src/task/general_test.dart
+++ b/pkg/analyzer/test/src/task/general_test.dart
@@ -2,14 +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.
-library analyzer.test.src.task.general_test;
-
import 'package:analyzer/src/generated/engine.dart';
import 'package:analyzer/src/generated/source.dart';
import 'package:analyzer/src/task/general.dart';
import 'package:analyzer/task/general.dart';
import 'package:analyzer/task/model.dart';
-import 'package:mockito/mockito.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -55,11 +52,11 @@
}
test_perform() {
- AnalysisContext context = new _MockContext();
+ _MockContext context = new _MockContext();
Source target = new TestSource();
GetContentTask task = new GetContentTask(context, target);
- when(context.getContents(target))
- .thenReturn(new TimestampedData<String>(42, 'foo'));
+ context.getContentsResponse[target] =
+ () => new TimestampedData<String>(42, 'foo');
task.perform();
expect(task.caughtException, isNull);
expect(task.outputs, hasLength(2));
@@ -68,10 +65,10 @@
}
void test_perform_exception() {
- AnalysisContext context = new _MockContext();
+ _MockContext context = new _MockContext();
Source target = new TestSource();
GetContentTask task = new GetContentTask(context, target);
- when(context.getContents(target)).thenThrow('My exception!');
+ context.getContentsResponse[target] = () => throw 'My exception!';
task.perform();
expect(task.caughtException, isNull);
expect(task.outputs, hasLength(2));
@@ -80,4 +77,23 @@
}
}
-class _MockContext extends Mock implements AnalysisContext {}
+class _MockContext implements AnalysisContext {
+ Map<Source, TimestampedData<String> Function()> getContentsResponse =
+ <Source, TimestampedData<String> Function()>{};
+
+ String get name => 'mock';
+
+ @override
+ TimestampedData<String> getContents(Source source) {
+ TimestampedData<String> Function() response = getContentsResponse[source];
+ if (response == null) {
+ fail('Unexpected invocation of getContents');
+ }
+ return response();
+ }
+
+ @override
+ noSuchMethod(Invocation invocation) {
+ fail('Unexpected invocation of ${invocation.memberName}');
+ }
+}
diff --git a/pkg/analyzer/test/src/task/html_work_manager_test.dart b/pkg/analyzer/test/src/task/html_work_manager_test.dart
index 0939d9f..b09a365 100644
--- a/pkg/analyzer/test/src/task/html_work_manager_test.dart
+++ b/pkg/analyzer/test/src/task/html_work_manager_test.dart
@@ -2,12 +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.
-library analyzer.test.src.task.html_work_manager_test;
-
import 'package:analyzer/error/error.dart' show AnalysisError;
import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/src/context/cache.dart';
import 'package:analyzer/src/context/context.dart';
+import 'package:analyzer/src/context/source.dart';
import 'package:analyzer/src/error/codes.dart' show HtmlErrorCode;
import 'package:analyzer/src/generated/engine.dart'
show
@@ -24,7 +23,6 @@
import 'package:analyzer/task/general.dart';
import 'package:analyzer/task/html.dart';
import 'package:analyzer/task/model.dart';
-import 'package:mockito/mockito.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -63,7 +61,7 @@
// the work manager was constructed. This used to create a failure
// case for test_onResultInvalidated_scheduleInvalidLibraries so its
// tested here.
- context.sourceFactory = new _SourceFactoryMock();
+ context.sourceFactory = new SourceFactoryImpl(<UriResolver>[]);
// now just do the same checks as
// test_onResultInvalidated_scheduleInvalidLibraries
@@ -82,7 +80,7 @@
@reflectiveTest
class HtmlWorkManagerTest {
- InternalAnalysisContext context = new _InternalAnalysisContextMock();
+ _InternalAnalysisContextMock context = new _InternalAnalysisContextMock();
AnalysisCache cache;
HtmlWorkManager manager;
@@ -155,8 +153,8 @@
}
void test_applyPriorityTargets() {
- when(context.shouldErrorsBeAnalyzed(source2)).thenReturn(true);
- when(context.shouldErrorsBeAnalyzed(source3)).thenReturn(true);
+ context.setShouldErrorsBeAnalyzed(source2, true);
+ context.setShouldErrorsBeAnalyzed(source3, true);
manager.priorityResultQueue.add(new TargetedResult(source1, HTML_ERRORS));
manager.priorityResultQueue.add(new TargetedResult(source2, HTML_ERRORS));
// -source1 +source3
@@ -284,7 +282,7 @@
}
void test_onAnalysisOptionsChanged() {
- when(context.exists(any)).thenReturn(true);
+ context.everythingExists = true;
// set cache values
entry1.setValue(DART_SCRIPTS, [], []);
entry1.setValue(HTML_DOCUMENT, null, []);
@@ -314,7 +312,7 @@
}
void test_onSourceFactoryChanged() {
- when(context.exists(any)).thenReturn(true);
+ context.everythingExists = true;
// set cache values
entry1.setValue(DART_SCRIPTS, [], []);
entry1.setValue(HTML_DOCUMENT, null, []);
@@ -348,14 +346,17 @@
}
}
-class _InternalAnalysisContextMock extends Mock
- implements InternalAnalysisContext {
+class _InternalAnalysisContextMock implements InternalAnalysisContext {
@override
CachePartition privateAnalysisCachePartition;
@override
AnalysisCache analysisCache;
+ bool everythingExists = false;
+
+ Map<Source, bool> shouldErrorsBeAnalyzedMap = <Source, bool>{};
+
// The production version is a stream that carries messages from the cache
// since the cache changes. Here, we can just pass the inner stream because
// it doesn't change.
@@ -370,6 +371,11 @@
get onResultInvalidated => analysisCache.onResultInvalidated;
@override
+ bool exists(Source source) {
+ return everythingExists;
+ }
+
+ @override
CacheEntry getCacheEntry(AnalysisTarget target) {
CacheEntry entry = analysisCache.get(target);
if (entry == null) {
@@ -397,6 +403,18 @@
return _pendingNotices.putIfAbsent(
source, () => new ChangeNoticeImpl(source));
}
-}
-class _SourceFactoryMock extends Mock implements SourceFactory {}
+ @override
+ noSuchMethod(Invocation invocation) {
+ throw new StateError('Unexpected invocation of ${invocation.memberName}');
+ }
+
+ void setShouldErrorsBeAnalyzed(Source source, bool value) {
+ shouldErrorsBeAnalyzedMap[source] = value;
+ }
+
+ @override
+ bool shouldErrorsBeAnalyzed(Source source) {
+ return shouldErrorsBeAnalyzedMap[source];
+ }
+}
diff --git a/pkg/analyzer/test/src/task/inputs_test.dart b/pkg/analyzer/test/src/task/inputs_test.dart
index e2bd0fa..bdbf9ae 100644
--- a/pkg/analyzer/test/src/task/inputs_test.dart
+++ b/pkg/analyzer/test/src/task/inputs_test.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.
-library analyzer.test.src.task.inputs_test;
-
import 'package:analyzer/src/task/inputs.dart';
import 'package:analyzer/src/task/model.dart';
import 'package:analyzer/task/model.dart';
@@ -141,30 +139,30 @@
test_toList() {
var input = new ListTaskInputImpl<AnalysisTarget>(target, result1);
- TaskInput<List> input2 =
- input.toList((target) => new SimpleTaskInput(target, null));
+ ListTaskInput<String> input2 =
+ input.toList((target) => new SimpleTaskInput<String>(target, null));
expect(input2,
new isInstanceOf<ListToListTaskInput<AnalysisTarget, String>>());
}
test_toListOf() {
var input = new ListTaskInputImpl<AnalysisTarget>(target, result1);
- TaskInput<List> input2 = input.toListOf(result2);
+ ListTaskInput<int> input2 = input.toListOf(result2);
expect(
input2, new isInstanceOf<ListToListTaskInput<AnalysisTarget, int>>());
}
test_toMap() {
var input = new ListTaskInputImpl<AnalysisTarget>(target, result1);
- TaskInput<Map> input2 =
- input.toMap((target) => new SimpleTaskInput(target, null));
+ MapTaskInput<AnalysisTarget, String> input2 =
+ input.toMap((target) => new SimpleTaskInput<String>(target, null));
expect(
input2, new isInstanceOf<ListToMapTaskInput<AnalysisTarget, String>>());
}
test_toMapOf() {
var input = new ListTaskInputImpl<AnalysisTarget>(target, result1);
- TaskInput<Map> input2 = input.toMapOf(result2);
+ MapTaskInput<AnalysisTarget, int> input2 = input.toMapOf(result2);
expect(input2, new isInstanceOf<ListToMapTaskInput<AnalysisTarget, int>>());
}
}
diff --git a/pkg/analyzer/test/src/task/options_work_manager_test.dart b/pkg/analyzer/test/src/task/options_work_manager_test.dart
index 5092f5d..d8a0ec7 100644
--- a/pkg/analyzer/test/src/task/options_work_manager_test.dart
+++ b/pkg/analyzer/test/src/task/options_work_manager_test.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.
-library analyzer.test.src.task.options_work_manager_test;
-
import 'package:analyzer/error/error.dart' show AnalysisError;
import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/src/context/cache.dart';
@@ -22,7 +20,6 @@
import 'package:analyzer/task/dart.dart';
import 'package:analyzer/task/general.dart';
import 'package:analyzer/task/model.dart';
-import 'package:mockito/mockito.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -46,7 +43,7 @@
}
abstract class OptionsWorkManagerTest {
- InternalAnalysisContext context = new _InternalAnalysisContextMock();
+ _InternalAnalysisContextMock context = new _InternalAnalysisContextMock();
AnalysisCache cache;
OptionsWorkManager manager;
@@ -125,8 +122,8 @@
}
void test_applyPriorityTargets() {
- when(context.shouldErrorsBeAnalyzed(source2)).thenReturn(true);
- when(context.shouldErrorsBeAnalyzed(source3)).thenReturn(true);
+ context.setShouldErrorsBeAnalyzed(source2, true);
+ context.setShouldErrorsBeAnalyzed(source3, true);
manager.priorityResultQueue
.add(new TargetedResult(source1, ANALYSIS_OPTIONS_ERRORS));
manager.priorityResultQueue
@@ -258,14 +255,15 @@
}
}
-class _InternalAnalysisContextMock extends Mock
- implements InternalAnalysisContext {
+class _InternalAnalysisContextMock implements InternalAnalysisContext {
@override
CachePartition privateAnalysisCachePartition;
@override
AnalysisCache analysisCache;
+ Map<Source, bool> shouldErrorsBeAnalyzedMap = <Source, bool>{};
+
Map<Source, ChangeNoticeImpl> _pendingNotices = <Source, ChangeNoticeImpl>{};
_InternalAnalysisContextMock() {
@@ -296,4 +294,18 @@
@override
ChangeNoticeImpl getNotice(Source source) =>
_pendingNotices.putIfAbsent(source, () => new ChangeNoticeImpl(source));
+
+ @override
+ noSuchMethod(Invocation invocation) {
+ throw new StateError('Unexpected invocation of ${invocation.memberName}');
+ }
+
+ void setShouldErrorsBeAnalyzed(Source source, bool value) {
+ shouldErrorsBeAnalyzedMap[source] = value;
+ }
+
+ @override
+ bool shouldErrorsBeAnalyzed(Source source) {
+ return shouldErrorsBeAnalyzedMap[source];
+ }
}
diff --git a/pkg/analyzer/test/src/task/strong/inferred_type_test.dart b/pkg/analyzer/test/src/task/strong/inferred_type_test.dart
index d9f803c..b30d121 100644
--- a/pkg/analyzer/test/src/task/strong/inferred_type_test.dart
+++ b/pkg/analyzer/test/src/task/strong/inferred_type_test.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.
-library analyzer.test.src.task.strong.inferred_type_test;
-
import 'dart:async';
import 'package:analyzer/dart/ast/ast.dart';
@@ -4071,7 +4069,7 @@
@failingTest
test_unsafeBlockClosureInference_functionCall_explicitDynamicParam_viaExpr1() async {
- // Note: (f/*<dynamic>*/) is nort properly resulting in an instantiated
+ // Note: (f<dynamic>) is not properly resulting in an instantiated
// function type due to dartbug.com/25824.
var mainUnit = await checkFileElement('''
List<T> f<T>(T g()) => <T>[g()];
@@ -4104,11 +4102,11 @@
@failingTest
test_unsafeBlockClosureInference_functionCall_explicitTypeParam_viaExpr1() async {
- // TODO(paulberry): for some reason (f/*<int>) is nort properly resulting
+ // TODO(paulberry): for some reason (f<int>) is not properly resulting
// in an instantiated function type.
var mainUnit = await checkFileElement('''
List<T> f<T>(T g()) => <T>[g()];
-var v = (f/int>)(/*info:INFERRED_TYPE_CLOSURE*/() { return 1; });
+var v = (f<int>)(/*info:INFERRED_TYPE_CLOSURE*/() { return 1; });
''');
var v = mainUnit.topLevelVariables[0];
expect(v.name, 'v');
@@ -4337,7 +4335,7 @@
@override
Future<CompilationUnitElement> checkFileElement(String content) async {
CompilationUnit unit = await checkFile(content);
- return (unit).element;
+ return unit.element;
}
}
diff --git a/pkg/analyzer/test/src/task/strong/strong_test_helper.dart b/pkg/analyzer/test/src/task/strong/strong_test_helper.dart
index b27ef2e..9b51a72 100644
--- a/pkg/analyzer/test/src/task/strong/strong_test_helper.dart
+++ b/pkg/analyzer/test/src/task/strong/strong_test_helper.dart
@@ -4,8 +4,6 @@
// TODO(jmesserly): this file needs to be refactored, it's a port from
// package:dev_compiler's tests
-library analyzer.test.src.task.strong.strong_test_helper;
-
import 'dart:async';
import 'package:analyzer/dart/ast/ast.dart';
@@ -371,7 +369,7 @@
List<String> nonnullableTypes: AnalysisOptionsImpl.NONNULLABLE_TYPES,
bool superMixins: false}) async {
addFile(content);
- return check(
+ return await check(
declarationCasts: declarationCasts,
implicitCasts: implicitCasts,
implicitDynamic: implicitDynamic,
diff --git a/pkg/analyzer/test/src/task/strong_mode_test.dart b/pkg/analyzer/test/src/task/strong_mode_test.dart
index 6753adc..8aaff8e 100644
--- a/pkg/analyzer/test/src/task/strong_mode_test.dart
+++ b/pkg/analyzer/test/src/task/strong_mode_test.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.
-library analyzer.test.src.task.strong_mode_test;
-
import 'dart:async';
import 'package:analyzer/dart/element/element.dart';
@@ -468,7 +466,7 @@
VariableFilter filter = (variable) => true;
VariableGatherer gatherer = new VariableGatherer(filter);
expect(gatherer, isNotNull);
- expect(gatherer.filter, filter);
+ expect(gatherer.filter, same(filter));
}
test_creation_withoutFilter() async {
diff --git a/pkg/analyzer_cli/lib/src/options.dart b/pkg/analyzer_cli/lib/src/options.dart
index 76bc78f..285f328 100644
--- a/pkg/analyzer_cli/lib/src/options.dart
+++ b/pkg/analyzer_cli/lib/src/options.dart
@@ -393,15 +393,13 @@
defaultsTo: false,
negatable: false,
hide: hide)
- ..addOption('build-summary-input',
+ ..addMultiOption('build-summary-input',
help: 'Path to a linked summary file that contains information from '
'a previous analysis run; may be specified multiple times.',
- allowMultiple: true,
hide: hide)
- ..addOption('build-summary-unlinked-input',
+ ..addMultiOption('build-summary-unlinked-input',
help: 'Path to an unlinked summary file that contains information '
'from a previous analysis run; may be specified multiple times.',
- allowMultiple: true,
hide: hide)
..addOption('build-summary-output',
help: 'Specifies the path to the file where the full summary '
@@ -508,11 +506,10 @@
defaultsTo: false,
negatable: false,
hide: hide)
- ..addOption('url-mapping',
+ ..addMultiOption('url-mapping',
help: '--url-mapping=libraryUri,/path/to/library.dart directs the '
'analyzer to use "library.dart" as the source for an import '
'of "libraryUri".',
- allowMultiple: true,
splitCommas: false,
hide: hide)
..addFlag('use-cfe',
diff --git a/pkg/compiler/lib/src/elements/resolution_types.dart b/pkg/compiler/lib/src/elements/resolution_types.dart
index 4ecaf3b..e2f677a 100644
--- a/pkg/compiler/lib/src/elements/resolution_types.dart
+++ b/pkg/compiler/lib/src/elements/resolution_types.dart
@@ -132,6 +132,9 @@
@override
bool get isFunctionTypeVariable => false;
+ @override
+ bool get isFutureOr => false;
+
/// Is [: true :] if this type is a malformed type.
bool get isMalformed => false;
diff --git a/pkg/compiler/lib/src/elements/types.dart b/pkg/compiler/lib/src/elements/types.dart
index 13514a2..3da214e 100644
--- a/pkg/compiler/lib/src/elements/types.dart
+++ b/pkg/compiler/lib/src/elements/types.dart
@@ -65,6 +65,9 @@
/// void Function<T>(T t)
bool get isFunctionTypeVariable => false;
+ /// Is `true` if this type is a `FutureOr` type.
+ bool get isFutureOr => false;
+
/// Is `true` if this type is a malformed type.
bool get isMalformed => false;
@@ -188,7 +191,7 @@
bool operator ==(other) {
if (identical(this, other)) return true;
if (other is! InterfaceType) return false;
- return _equals(other, null);
+ return _equalsInternal(other, null);
}
bool _equals(DartType other, _Assumptions assumptions) {
@@ -425,7 +428,7 @@
bool operator ==(other) {
if (identical(this, other)) return true;
if (other is! FunctionTypeVariable) return false;
- return _equals(other, null);
+ return false;
}
@override
@@ -728,6 +731,52 @@
}
}
+class FutureOrType extends DartType {
+ final DartType typeArgument;
+
+ FutureOrType(this.typeArgument);
+
+ @override
+ bool get isFutureOr => true;
+
+ @override
+ DartType subst(List<DartType> arguments, List<DartType> parameters) {
+ DartType newTypeArgument = typeArgument.subst(arguments, parameters);
+ if (identical(typeArgument, newTypeArgument)) return this;
+ return new FutureOrType(newTypeArgument);
+ }
+
+ R accept<R, A>(DartTypeVisitor<R, A> visitor, A argument) =>
+ visitor.visitFutureOrType(this, argument);
+
+ int get hashCode => typeArgument.hashCode * 13;
+
+ bool operator ==(other) {
+ if (identical(this, other)) return true;
+ if (other is! FutureOrType) return false;
+ return _equalsInternal(other, null);
+ }
+
+ bool _equals(DartType other, _Assumptions assumptions) {
+ if (identical(this, other)) return true;
+ if (other is! FutureOrType) return false;
+ return _equalsInternal(other, assumptions);
+ }
+
+ bool _equalsInternal(FutureOrType other, _Assumptions assumptions) {
+ return typeArgument._equals(other.typeArgument, assumptions);
+ }
+
+ String toString() {
+ StringBuffer sb = new StringBuffer();
+ sb.write('FutureOr');
+ sb.write('<');
+ sb.write(typeArgument);
+ sb.write('>');
+ return sb.toString();
+ }
+}
+
/// Helper method for performing substitution of a list of types.
///
/// If no types are changed by the substitution, the [types] is returned
@@ -778,6 +827,8 @@
R visitTypedefType(covariant TypedefType type, A argument) => null;
R visitDynamicType(covariant DynamicType type, A argument) => null;
+
+ R visitFutureOrType(covariant FutureOrType type, A argument) => null;
}
abstract class BaseDartTypeVisitor<R, A> extends DartTypeVisitor<R, A> {
@@ -809,6 +860,10 @@
@override
R visitDynamicType(covariant DynamicType type, A argument) =>
visitType(type, argument);
+
+ @override
+ R visitFutureOrType(covariant FutureOrType type, A argument) =>
+ visitType(type, argument);
}
/// Abstract visitor for determining relations between types.
@@ -1078,13 +1133,31 @@
bool invalidCallableType(covariant DartType callType, covariant DartType s) {
return !isMoreSpecific(callType, s);
}
+
+ bool visitFutureOrType(FutureOrType t, covariant DartType s) {
+ return false;
+ }
}
/// Type visitor that determines the subtype relation two types.
abstract class SubtypeVisitor<T extends DartType>
extends MoreSpecificVisitor<T> {
- bool isSubtype(T t, T s) {
- return t.treatAsDynamic || isMoreSpecific(t, s);
+ bool isSubtype(DartType t, DartType s) {
+ if (t.treatAsDynamic) return true;
+ if (s.isFutureOr) {
+ FutureOrType sFutureOr = s;
+ if (isSubtype(t, sFutureOr.typeArgument)) {
+ return true;
+ } else if (t.isInterfaceType) {
+ InterfaceType tInterface = t;
+ if (tInterface.element == commonElements.futureClass &&
+ isSubtype(
+ tInterface.typeArguments.single, sFutureOr.typeArgument)) {
+ return true;
+ }
+ }
+ }
+ return isMoreSpecific(t, s);
}
bool isAssignable(T t, T s) {
@@ -1110,6 +1183,14 @@
bool invalidCallableType(covariant DartType callType, covariant DartType s) {
return !isSubtype(callType, s);
}
+
+ bool visitFutureOrType(FutureOrType t, covariant DartType s) {
+ if (s.isFutureOr) {
+ FutureOrType sFutureOr = s;
+ return isSubtype(t.typeArgument, sFutureOr.typeArgument);
+ }
+ return false;
+ }
}
/// Type visitor that determines one type could a subtype of another given the
@@ -1117,7 +1198,7 @@
/// `false` only if we are sure no such substitution exists.
abstract class PotentialSubtypeVisitor<T extends DartType>
extends SubtypeVisitor<T> {
- bool isSubtype(T t, T s) {
+ bool isSubtype(DartType t, DartType s) {
if (t is TypeVariableType || s is TypeVariableType) {
return true;
}
diff --git a/pkg/compiler/lib/src/inferrer/type_system.dart b/pkg/compiler/lib/src/inferrer/type_system.dart
index 04f691f..a4fbfd7 100644
--- a/pkg/compiler/lib/src/inferrer/type_system.dart
+++ b/pkg/compiler/lib/src/inferrer/type_system.dart
@@ -334,6 +334,9 @@
}
} else if (annotation.isTypedef || annotation.isFunctionType) {
otherType = functionType.type;
+ } else if (annotation.isFutureOr) {
+ // TODO(johnniwinther): Support narrowing of FutureOr.
+ return type;
} else {
assert(annotation.isTypeVariable);
// TODO(ngeoffray): Narrow to bound.
diff --git a/pkg/compiler/lib/src/js_backend/runtime_types.dart b/pkg/compiler/lib/src/js_backend/runtime_types.dart
index e67afa3..9b357d1 100644
--- a/pkg/compiler/lib/src/js_backend/runtime_types.dart
+++ b/pkg/compiler/lib/src/js_backend/runtime_types.dart
@@ -2100,6 +2100,12 @@
return finish(visit(unaliasedType, emitter));
}
}
+
+ @override
+ jsAst.Expression visitFutureOrType(FutureOrType type, Emitter argument) {
+ // TODO(johnniwinther,sigmund): Implement runtime semantics for `FutureOr`.
+ return getDynamicValue();
+ }
}
class TypeCheckMapping implements TypeChecks {
diff --git a/pkg/compiler/lib/src/js_emitter/parameter_stub_generator.dart b/pkg/compiler/lib/src/js_emitter/parameter_stub_generator.dart
index b945d93..f7489b2 100644
--- a/pkg/compiler/lib/src/js_emitter/parameter_stub_generator.dart
+++ b/pkg/compiler/lib/src/js_emitter/parameter_stub_generator.dart
@@ -74,6 +74,8 @@
ParameterStructure parameterStructure = member.parameterStructure;
int positionalArgumentCount = callStructure.positionalArgumentCount;
+ assert(callStructure.typeArgumentCount == 0 ||
+ callStructure.typeArgumentCount == parameterStructure.typeParameters);
bool needsTypeArguments =
callStructure.typeArgumentCount != parameterStructure.typeParameters;
if (positionalArgumentCount == parameterStructure.totalParameters &&
@@ -109,7 +111,7 @@
List<jsAst.Expression> argumentsBuffer = new List<jsAst.Expression>(
parameterStructure.totalParameters +
extraArgumentCount +
- parameterStructure.typeParameters);
+ (needsTypeArguments ? parameterStructure.typeParameters : 0));
int count = 0;
if (isInterceptedMethod) {
diff --git a/pkg/compiler/lib/src/js_model/elements.dart b/pkg/compiler/lib/src/js_model/elements.dart
index c6e9710..3e762b9 100644
--- a/pkg/compiler/lib/src/js_model/elements.dart
+++ b/pkg/compiler/lib/src/js_model/elements.dart
@@ -285,6 +285,11 @@
DartType visitVoidType(VoidType type, EntityConverter converter) {
return const VoidType();
}
+
+ @override
+ DartType visitFutureOrType(FutureOrType type, EntityConverter converter) {
+ return new FutureOrType(visit(type.typeArgument, converter));
+ }
}
const String jsElementPrefix = 'j:';
diff --git a/pkg/compiler/lib/src/kernel/element_map.dart b/pkg/compiler/lib/src/kernel/element_map.dart
index cc058e6..48a25e7 100644
--- a/pkg/compiler/lib/src/kernel/element_map.dart
+++ b/pkg/compiler/lib/src/kernel/element_map.dart
@@ -130,7 +130,7 @@
///
/// The main method of the first component is used as the main method for the
/// compilation.
- void addProgram(ir.Component component);
+ void addComponent(ir.Component component);
/// Returns the [ConstructorEntity] corresponding to a super initializer in
/// [constructor].
diff --git a/pkg/compiler/lib/src/kernel/element_map_impl.dart b/pkg/compiler/lib/src/kernel/element_map_impl.dart
index ccec600..e00692e 100644
--- a/pkg/compiler/lib/src/kernel/element_map_impl.dart
+++ b/pkg/compiler/lib/src/kernel/element_map_impl.dart
@@ -1220,8 +1220,8 @@
///
/// The main method of the first component is used as the main method for the
/// compilation.
- void addProgram(ir.Component component) {
- _env.addProgram(component);
+ void addComponent(ir.Component component) {
+ _env.addComponent(component);
}
@override
@@ -1706,10 +1706,12 @@
@override
DartType visitInterfaceType(ir.InterfaceType node) {
ClassEntity cls = elementMap.getClass(node.classNode);
- // TODO(johnniwinther): We currently encode 'FutureOr' as a dynamic type.
- // Update the subtyping implementations to handle 'FutureOr' correctly.
if (cls.name == 'FutureOr' &&
cls.library == elementMap.commonElements.asyncLibrary) {
+ if (elementMap.options.strongMode) {
+ return new FutureOrType(visitTypes(node.typeArguments).single);
+ }
+ // In Dart 1 we encode 'FutureOr' as a dynamic type.
return const DynamicType();
}
return new InterfaceType(cls, visitTypes(node.typeArguments));
diff --git a/pkg/compiler/lib/src/kernel/env.dart b/pkg/compiler/lib/src/kernel/env.dart
index 0870b99..37d3e65 100644
--- a/pkg/compiler/lib/src/kernel/env.dart
+++ b/pkg/compiler/lib/src/kernel/env.dart
@@ -25,15 +25,15 @@
/// Environment for fast lookup of component libraries.
class ProgramEnv {
- final Set<ir.Component> _programs = new Set<ir.Component>();
+ final Set<ir.Component> _components = new Set<ir.Component>();
Map<Uri, LibraryEnv> _libraryMap;
/// TODO(johnniwinther): Handle arbitrary load order if needed.
- ir.Member get mainMethod => _programs.first?.mainMethod;
+ ir.Member get mainMethod => _components.first?.mainMethod;
- void addProgram(ir.Component component) {
- if (_programs.add(component)) {
+ void addComponent(ir.Component component) {
+ if (_components.add(component)) {
if (_libraryMap != null) {
_addLibraries(component);
}
@@ -49,7 +49,7 @@
void _ensureLibraryMap() {
if (_libraryMap == null) {
_libraryMap = <Uri, LibraryEnv>{};
- for (ir.Component component in _programs) {
+ for (ir.Component component in _components) {
_addLibraries(component);
}
}
diff --git a/pkg/compiler/lib/src/library_loader.dart b/pkg/compiler/lib/src/library_loader.dart
index ace0223..e6e2ea8 100644
--- a/pkg/compiler/lib/src/library_loader.dart
+++ b/pkg/compiler/lib/src/library_loader.dart
@@ -884,7 +884,7 @@
// Only visible for unit testing.
LoadedLibraries createLoadedLibraries(ir.Component component) {
- _elementMap.addProgram(component);
+ _elementMap.addComponent(component);
LibraryEntity rootLibrary = null;
Iterable<ir.Library> libraries = component.libraries;
if (component.mainMethod != null) {
diff --git a/pkg/compiler/lib/src/old_to_new_api.dart b/pkg/compiler/lib/src/old_to_new_api.dart
index 160739d..78f85d1 100644
--- a/pkg/compiler/lib/src/old_to_new_api.dart
+++ b/pkg/compiler/lib/src/old_to_new_api.dart
@@ -8,6 +8,7 @@
library compiler.api.legacy;
import 'dart:async' show EventSink, Future;
+import 'dart:convert' show utf8;
import '../compiler.dart';
import '../compiler_new.dart';
@@ -37,7 +38,7 @@
return sourceFile;
case InputKind.binary:
if (data is String) {
- data = data.codeUnits;
+ data = utf8.encode(data);
}
return new Binary(uri, data);
}
diff --git a/pkg/compiler/lib/src/parser/element_listener.dart b/pkg/compiler/lib/src/parser/element_listener.dart
index 4a2634a..0658333 100644
--- a/pkg/compiler/lib/src/parser/element_listener.dart
+++ b/pkg/compiler/lib/src/parser/element_listener.dart
@@ -386,6 +386,18 @@
}
@override
+ void beginTopLevelMethod(Token lastConsumed, Token externalToken) {
+ if (externalToken == null) {
+ pushNode(Modifiers.EMPTY);
+ } else {
+ Link<Node> poppedNodes = const Link<Node>();
+ poppedNodes = poppedNodes.prepend(new Identifier(externalToken));
+ NodeList modifierNodes = new NodeList(null, poppedNodes, null, ' ');
+ pushNode(new Modifiers(modifierNodes));
+ }
+ }
+
+ @override
void endTopLevelMethod(Token beginToken, Token getOrSet, Token endToken) {
bool hasParseError = currentMemberHasParseError;
memberErrors = memberErrors.tail;
diff --git a/pkg/compiler/lib/src/parser/node_listener.dart b/pkg/compiler/lib/src/parser/node_listener.dart
index 940a35b..54d308e 100644
--- a/pkg/compiler/lib/src/parser/node_listener.dart
+++ b/pkg/compiler/lib/src/parser/node_listener.dart
@@ -550,7 +550,7 @@
// The name can be an identifier or a send in case of named constructors.
Expression name = popNode();
TypeAnnotation type = popNode();
- Modifiers modifiers = popNode();
+ Modifiers modifiers = new Modifiers(new NodeList.empty());
NodeList typeVariables = popNode();
pushNode(new FunctionExpression(name, typeVariables, formals, body, type,
modifiers, initializers, null, asyncModifier));
@@ -565,7 +565,7 @@
// The name can be an identifier or a send in case of named constructors.
Expression name = popNode();
TypeAnnotation type = popNode();
- Modifiers modifiers = popNode();
+ Modifiers modifiers = new Modifiers(new NodeList.empty());
NodeList typeVariables = popNode();
pushNode(new FunctionDeclaration(new FunctionExpression(name, typeVariables,
formals, body, type, modifiers, initializers, null, asyncModifier)));
@@ -1009,6 +1009,27 @@
}
@override
+ void beginFactoryMethod(
+ Token lastConsumed, Token externalToken, Token constToken) {
+ if (externalToken != null) {
+ Link<Node> poppedNodes = const Link<Node>();
+ if (constToken != null) {
+ poppedNodes = poppedNodes.prepend(new Identifier(constToken));
+ }
+ poppedNodes = poppedNodes.prepend(new Identifier(externalToken));
+ NodeList modifierNodes = new NodeList(null, poppedNodes, null, ' ');
+ pushNode(new Modifiers(modifierNodes));
+ } else if (constToken != null) {
+ Link<Node> poppedNodes = const Link<Node>();
+ poppedNodes = poppedNodes.prepend(new Identifier(constToken));
+ NodeList modifierNodes = new NodeList(null, poppedNodes, null, ' ');
+ pushNode(new Modifiers(modifierNodes));
+ } else {
+ pushNode(Modifiers.EMPTY);
+ }
+ }
+
+ @override
void endFactoryMethod(
Token beginToken, Token factoryKeyword, Token endToken) {
super.endFactoryMethod(beginToken, factoryKeyword, endToken);
diff --git a/pkg/compiler/lib/src/serialization/equivalence.dart b/pkg/compiler/lib/src/serialization/equivalence.dart
index 06b0dc3..65f12d5 100644
--- a/pkg/compiler/lib/src/serialization/equivalence.dart
+++ b/pkg/compiler/lib/src/serialization/equivalence.dart
@@ -723,6 +723,12 @@
FunctionTypeVariable type, ResolutionDartType other) {
throw new UnsupportedError("Function type variables are not supported.");
}
+
+ @override
+ bool visitFutureOrType(
+ covariant FutureOrType type, covariant ResolutionDartType other) {
+ throw new UnsupportedError("FutureOr is not supported.");
+ }
}
/// Visitor that checks for structural equivalence of [ConstantExpression]s.
diff --git a/pkg/compiler/lib/src/ssa/nodes.dart b/pkg/compiler/lib/src/ssa/nodes.dart
index 5033547..9bdd008 100644
--- a/pkg/compiler/lib/src/ssa/nodes.dart
+++ b/pkg/compiler/lib/src/ssa/nodes.dart
@@ -1348,6 +1348,9 @@
if (type.isFunctionType || type.isMalformed) {
return new HTypeConversion(type, kind,
closedWorld.commonMasks.dynamicType, this, sourceInformation);
+ } else if (type.isFutureOr) {
+ // TODO(johnniwinther): Handle conversion to FutureOr.
+ return this;
}
assert(type.isInterfaceType);
if (kind == HTypeConversion.BOOLEAN_CONVERSION_CHECK) {
diff --git a/pkg/dev_compiler/lib/src/analyzer/code_generator.dart b/pkg/dev_compiler/lib/src/analyzer/code_generator.dart
index 239e873..43580d4 100644
--- a/pkg/dev_compiler/lib/src/analyzer/code_generator.dart
+++ b/pkg/dev_compiler/lib/src/analyzer/code_generator.dart
@@ -461,13 +461,23 @@
e is PropertyInducingElement &&
((e.getter?.isExternal ?? false) || (e.setter?.isExternal ?? false));
- bool _isJSElement(Element e) =>
+ /// Returns true iff this element is a JS interop member.
+ ///
+ /// The element's library must have `@JS(...)` annotation from `package:js`.
+ ///
+ /// If the element is a class, it must also be marked with `@JS`. Other
+ /// elements, such as class members and top-level functions/accessors, should
+ /// be marked `external`.
+ //
+ // TODO(jmesserly): if the element is a member, shouldn't we check that the
+ // class is a JS interop class?
+ bool _usesJSInterop(Element e) =>
e?.library != null &&
- _isJSNative(e.library) &&
- (_isExternal(e) || e is ClassElement && _isJSNative(e));
+ _hasJSInteropAnnotation(e.library) &&
+ (_isExternal(e) || e is ClassElement && _hasJSInteropAnnotation(e));
String _getJSNameWithoutGlobal(Element e) {
- if (!_isJSElement(e)) return null;
+ if (!_usesJSInterop(e)) return null;
var libraryJSName = getAnnotationName(e.library, isPublicJSAnnotation);
var jsName =
getAnnotationName(e, isPublicJSAnnotation) ?? _getElementName(e);
@@ -492,7 +502,7 @@
}
JS.Expression _emitJSInteropStaticMemberName(Element e) {
- if (!_isJSElement(e)) return null;
+ if (!_usesJSInterop(e)) return null;
var name = getAnnotationName(e, isPublicJSAnnotation);
if (name != null) {
if (name.contains('.')) {
@@ -873,7 +883,7 @@
JS.Statement _emitClassDeclaration(Declaration classNode,
ClassElement classElem, List<ClassMember> members) {
// If this class is annotated with `@JS`, then there is nothing to emit.
- if (findAnnotation(classElem, isPublicJSAnnotation) != null) return null;
+ if (_hasJSInteropAnnotation(classElem)) return null;
// If this is a JavaScript type, emit it now and then exit.
var jsTypeDef = _emitJSType(classElem);
@@ -921,7 +931,7 @@
body.addAll(jsCtors);
// Emit things that come after the ES6 `class ... { ... }`.
- var jsPeerNames = _getJSPeerNames(classElem);
+ var jsPeerNames = _extensionTypes.getNativePeers(classElem);
if (jsPeerNames.length == 1 && classElem.typeParameters.isNotEmpty) {
// Special handling for JSArray<E>
body.add(_callHelperStatement('setExtensionBaseClass(#, #.global.#);',
@@ -1466,7 +1476,7 @@
var virtualFields = _classProperties.virtualFields;
var jsMethods = <JS.Method>[];
- bool hasJsPeer = findAnnotation(classElem, isJsPeerInterface) != null;
+ bool hasJsPeer = _extensionTypes.isNativeClass(classElem);
bool hasIterator = false;
if (type.isObject) {
@@ -1875,25 +1885,6 @@
}
}
- /// Gets the JS peer for this Dart type if any, otherwise null.
- ///
- /// For example for dart:_interceptors `JSArray` this will return "Array",
- /// referring to the JavaScript built-in `Array` type.
- List<String> _getJSPeerNames(ClassElement classElem) {
- var jsPeerNames = getAnnotationName(
- classElem,
- (a) =>
- isJsPeerInterface(a) ||
- isNativeAnnotation(a) && _extensionTypes.isNativeClass(classElem));
- if (classElem.type.isObject) return ['Object'];
- if (jsPeerNames == null) return [];
-
- // Omit the special name "!nonleaf" and any future hacks starting with "!"
- var result =
- jsPeerNames.split(',').where((peer) => !peer.startsWith("!")).toList();
- return result;
- }
-
void _registerExtensionType(
ClassElement classElem, String jsPeerName, List<JS.Statement> body) {
var className = _emitTopLevelName(classElem);
@@ -2015,7 +2006,7 @@
var type = classElem.type;
void addField(FieldElement e, JS.Expression value) {
var args = [
- _emitStaticAccess(classElem),
+ _emitStaticClassName(classElem),
_declareMemberName(e.getter),
value
];
@@ -2033,7 +2024,7 @@
if (f.type != type) continue;
// static const E id_i = const E(i);
values.add(new JS.PropertyAccess(
- _emitStaticAccess(classElem), _declareMemberName(f.getter)));
+ _emitStaticClassName(classElem), _declareMemberName(f.getter)));
var enumValue = _callHelper('const(new (#.#)(#))', [
_emitConstructorAccess(type),
_constructorName(''),
@@ -2051,7 +2042,8 @@
.map((f) => members[f] as VariableDeclaration)
.toList();
if (lazyStatics.isNotEmpty) {
- body.add(_emitLazyFields(_emitTopLevelName(classElem), lazyStatics));
+ body.add(_emitLazyFields(_emitStaticClassName(classElem), lazyStatics,
+ (e) => _emitStaticMemberName(e.name, e)));
}
}
@@ -3105,12 +3097,20 @@
// A static native element should just forward directly to the
// JS type's member.
+ //
+ // TODO(jmesserly): this code path seems broken. It doesn't exist
+ // elsewhere, such as [_emitAccess], so it will only take affect for
+ // unqualified static access inside of the the same class.
+ //
+ // If we want this feature to work, we'll need to implement it in the
+ // standard [_emitStaticClassName] code path, which will need to know the
+ // member we're calling so it can determine whether to use the Dart class
+ // name or the native JS class name.
if (isStatic && _isExternal(element)) {
- var nativeName = getAnnotationName(classElem, isNativeAnnotation);
- if (nativeName != null) {
+ var nativeName = _extensionTypes.getNativePeers(classElem);
+ if (nativeName.isNotEmpty) {
var memberName = getAnnotationName(element, isJSName) ?? member;
- return js
- .call('#.#.#', [_callHelper('global'), nativeName, memberName]);
+ return _callHelper('global.#.#', [nativeName[0], memberName]);
}
}
@@ -3118,16 +3118,16 @@
// For method tear-offs, we ensure it's a bound method.
if (element is MethodElement &&
!inInvocationContext(node) &&
- !_isJSNative(classElem)) {
+ !_hasJSInteropAnnotation(classElem)) {
if (isStatic) {
// TODO(jmesserly): instead of looking up the function type, we could
// simply emit it here.
return _callHelper(
- 'tagStatic(#, #)', [_emitStaticAccess(classElem), member]);
+ 'tagStatic(#, #)', [_emitStaticClassName(classElem), member]);
}
return _callHelper('bind(this, #)', member);
}
- var target = isStatic ? _emitStaticAccess(classElem) : new JS.This();
+ var target = isStatic ? _emitStaticClassName(classElem) : new JS.This();
return new JS.PropertyAccess(target, member);
}
@@ -3318,10 +3318,10 @@
return _emitJSInterop(type.element) ?? _emitType(type, nameType: nameType);
}
- /// Emits an expression that lets you access statics on an [element] from code.
- JS.Expression _emitStaticAccess(ClassElement element) {
- _declareBeforeUse(element);
- return _emitTopLevelName(element);
+ /// Emits an expression that lets you access statics on an [c] from code.
+ JS.Expression _emitStaticClassName(ClassElement c) {
+ _declareBeforeUse(c);
+ return _emitTopLevelName(c);
}
/// Emits a Dart [type] into code.
@@ -3406,9 +3406,17 @@
}
JS.PropertyAccess _emitTopLevelNameNoInterop(Element e, {String suffix: ''}) {
- var name = getJSExportName(e) ?? _getElementName(e);
return new JS.PropertyAccess(
- emitLibraryName(e.library), _propertyName(name + suffix));
+ emitLibraryName(e.library), _emitTopLevelMemberName(e, suffix: suffix));
+ }
+
+ /// Emits the member name portion of a top-level member.
+ ///
+ /// NOTE: usually you should use [_emitTopLevelName] instead of this. This
+ /// function does not handle JS interop.
+ JS.Expression _emitTopLevelMemberName(Element e, {String suffix: ''}) {
+ var name = getJSExportName(e) ?? _getElementName(e);
+ return _propertyName(name + suffix);
}
@override
@@ -3592,7 +3600,7 @@
var member = _emitMemberName(field.name,
isStatic: isStatic, type: classElem.type, element: field.setter);
jsTarget = isStatic
- ? (new JS.PropertyAccess(_emitStaticAccess(classElem), member)
+ ? (new JS.PropertyAccess(_emitStaticClassName(classElem), member)
..sourceInformation = _nodeSpan(id))
: _emitTargetAccess(jsTarget, member, field.setter, id);
return _visitExpression(right).toAssignExpression(jsTarget);
@@ -3688,12 +3696,12 @@
if (member is PropertyAccessorElement) {
var field = member.variable;
if (field is FieldElement) {
- return _emitStaticAccess(field.enclosingElement)
+ return _emitStaticClassName(field.enclosingElement)
..sourceInformation = _nodeSpan(target);
}
}
if (member is MethodElement) {
- return _emitStaticAccess(member.enclosingElement)
+ return _emitStaticClassName(member.enclosingElement)
..sourceInformation = _nodeSpan(target);
}
}
@@ -4241,7 +4249,8 @@
/// Emits a list of top-level field.
void _emitTopLevelFields(List<VariableDeclaration> fields) {
- _moduleItems.add(_emitLazyFields(emitLibraryName(currentLibrary), fields));
+ _moduleItems.add(_emitLazyFields(
+ emitLibraryName(currentLibrary), fields, _emitTopLevelMemberName));
}
/// Treat dart:_runtime fields as safe to eagerly evaluate.
@@ -4284,18 +4293,19 @@
}
JS.Statement _emitLazyFields(
- JS.Expression objExpr, List<VariableDeclaration> fields) {
+ JS.Expression objExpr,
+ List<VariableDeclaration> fields,
+ JS.Expression Function(Element e) emitFieldName) {
var accessors = <JS.Method>[];
for (var node in fields) {
- var name = node.name.name;
var element = node.element;
- var access = _emitStaticMemberName(name, element);
+ var access = emitFieldName(element);
accessors.add(closureAnnotate(
new JS.Method(
access,
js.call('function() { return #; }',
- _visitInitializer(node.initializer, node.element)) as JS.Fun,
+ _visitInitializer(node.initializer, element)) as JS.Fun,
isGetter: true)
..sourceInformation = _hoverComment(
new JS.PropertyAccess(objExpr, access), node.name),
@@ -4390,7 +4400,7 @@
// Native factory constructors are JS constructors - use new here.
var ctor = _emitConstructorName(element, type);
if (ctorNode != null) ctor.sourceInformation = _nodeSpan(ctorNode);
- return element.isFactory && !_isJSNative(classElem)
+ return element.isFactory && !_hasJSInteropAnnotation(classElem)
? new JS.Call(ctor, args)
: new JS.New(ctor, args);
}
@@ -4399,11 +4409,22 @@
}
bool _isObjectLiteral(Element classElem) {
- return _isJSNative(classElem) &&
+ return _hasJSInteropAnnotation(classElem) &&
findAnnotation(classElem, isJSAnonymousAnnotation) != null;
}
- bool _isJSNative(Element e) =>
+ /// Returns true iff the class has an `@JS(...)` annotation from `package:js`.
+ ///
+ /// Note: usually [_usesJSInterop] should be used instead of this.
+ //
+ // TODO(jmesserly): I think almost all uses of this should be replaced with
+ // [_usesJSInterop], which also checks that the library is marked with `@JS`.
+ //
+ // Right now we have inconsistencies: sometimes we'll respect `@JS` on the
+ // class itself, other places we require it on the library. Also members are
+ // inconsistent: sometimes they need to have `@JS` on them, other times they
+ // need to be `external` in an `@JS` class.
+ bool _hasJSInteropAnnotation(Element e) =>
findAnnotation(e, isPublicJSAnnotation) != null;
JS.Expression _emitObjectLiteral(ArgumentList argumentList) {
@@ -5219,7 +5240,7 @@
result = _callHelper('#(#)', [memberName, jsTarget]);
}
} else if (accessor is MethodElement &&
- !_isJSNative(accessor.enclosingElement)) {
+ !_hasJSInteropAnnotation(accessor.enclosingElement)) {
if (isStatic) {
result = _callHelper('tagStatic(#, #)', [jsTarget, jsName]);
} else if (isSuper) {
diff --git a/pkg/dev_compiler/lib/src/analyzer/element_helpers.dart b/pkg/dev_compiler/lib/src/analyzer/element_helpers.dart
index e595819..1a0658c 100644
--- a/pkg/dev_compiler/lib/src/analyzer/element_helpers.dart
+++ b/pkg/dev_compiler/lib/src/analyzer/element_helpers.dart
@@ -246,3 +246,12 @@
}
return false;
}
+
+bool isBuiltinAnnotation(
+ DartObjectImpl value, String libraryName, String annotationName) {
+ var e = value?.type?.element;
+ if (e?.name != annotationName) return false;
+ var uri = e.source.uri;
+ var path = uri.pathSegments[0];
+ return uri.scheme == 'dart' && path == libraryName;
+}
diff --git a/pkg/dev_compiler/lib/src/analyzer/extension_types.dart b/pkg/dev_compiler/lib/src/analyzer/extension_types.dart
index 53463fa..b816065 100644
--- a/pkg/dev_compiler/lib/src/analyzer/extension_types.dart
+++ b/pkg/dev_compiler/lib/src/analyzer/extension_types.dart
@@ -7,6 +7,7 @@
show ClassElement, CompilationUnitElement, Element;
import 'package:analyzer/dart/element/type.dart' show DartType, InterfaceType;
import 'package:analyzer/src/generated/engine.dart' show AnalysisContext;
+import 'element_helpers.dart' show getAnnotationName, isBuiltinAnnotation;
/// Contains information about native JS types (those types provided by the
/// implementation) that are also provided by the Dart SDK.
@@ -150,4 +151,21 @@
bool hasNativeSubtype(DartType type) =>
isNativeInterface(type.element) || isNativeClass(type.element);
+
+ /// Gets the JS peer for this Dart type if any, otherwise null.
+ ///
+ /// For example for dart:_interceptors `JSArray` this will return "Array",
+ /// referring to the JavaScript built-in `Array` type.
+ List<String> getNativePeers(ClassElement classElem) {
+ if (classElem.type.isObject) return ['Object'];
+ var names = getAnnotationName(
+ classElem,
+ (a) =>
+ isBuiltinAnnotation(a, '_js_helper', 'JsPeerInterface') ||
+ isBuiltinAnnotation(a, '_js_helper', 'Native'));
+ if (names == null) return [];
+
+ // Omit the special name "!nonleaf" and any future hacks starting with "!"
+ return names.split(',').where((peer) => !peer.startsWith("!")).toList();
+ }
}
diff --git a/pkg/dev_compiler/lib/src/analyzer/js_interop.dart b/pkg/dev_compiler/lib/src/analyzer/js_interop.dart
index 4e76a27..f0ab80b9 100644
--- a/pkg/dev_compiler/lib/src/analyzer/js_interop.dart
+++ b/pkg/dev_compiler/lib/src/analyzer/js_interop.dart
@@ -18,6 +18,8 @@
var uri = e.source.uri;
if (uri.scheme == 'package' && uri.path.startsWith('js/')) return true;
if (uri.scheme == 'dart') {
+ // TODO(jmesserly): this needs cleanup: many of the annotations don't exist
+ // in these libraries.
return uri.path == '_js_helper' || uri.path == '_foreign_helper';
}
return false;
@@ -47,15 +49,6 @@
bool isJSAnonymousAnnotation(DartObjectImpl value) =>
_isJsLibType('_Anonymous', value.type.element);
-bool isBuiltinAnnotation(
- DartObjectImpl value, String libraryName, String annotationName) {
- var e = value?.type?.element;
- if (e?.name != annotationName) return false;
- var uri = e.source.uri;
- var path = uri.pathSegments[0];
- return uri.scheme == 'dart' && path == libraryName;
-}
-
/// Whether [value] is a `@JSExportName` (internal annotation used in SDK
/// instead of `@JS` from `package:js`).
bool isJSExportNameAnnotation(DartObjectImpl value) =>
@@ -64,12 +57,6 @@
bool isJSName(DartObjectImpl value) =>
isBuiltinAnnotation(value, '_js_helper', 'JSName');
-bool isJsPeerInterface(DartObjectImpl value) =>
- isBuiltinAnnotation(value, '_js_helper', 'JsPeerInterface');
-
-bool isNativeAnnotation(DartObjectImpl value) =>
- isBuiltinAnnotation(value, '_js_helper', 'Native');
-
bool isNotNullAnnotation(DartObjectImpl value) =>
isBuiltinAnnotation(value, '_js_helper', '_NotNull');
diff --git a/pkg/dev_compiler/lib/src/kernel/compiler.dart b/pkg/dev_compiler/lib/src/kernel/compiler.dart
index d3f8a9f..143c646 100644
--- a/pkg/dev_compiler/lib/src/kernel/compiler.dart
+++ b/pkg/dev_compiler/lib/src/kernel/compiler.dart
@@ -431,19 +431,27 @@
assert(_currentLibrary == null);
_currentLibrary = library;
- // `dart:_runtime` uses a different order for bootstrapping.
- bool bootstrap = isSdkInternalRuntime(library);
- if (bootstrap) _emitLibraryProcedures(library);
-
- library.classes.forEach(_emitClass);
- library.typedefs.forEach(_emitTypedef);
- if (bootstrap) {
- _moduleItems.add(_emitInternalSdkFields(library.fields));
- } else {
+ if (isSdkInternalRuntime(library)) {
+ // `dart:_runtime` uses a different order for bootstrapping.
+ //
+ // Functions are first because we use them to associate type info
+ // (such as `dart.fn`), then classes/typedefs, then fields
+ // (which instantiate classes).
+ //
+ // For other libraries, we start with classes/types, because functions
+ // often use classes/types from the library in their signature.
+ //
+ // TODO(jmesserly): we can merge these once we change signatures to be
+ // lazily associated at the tear-off point for top-level functions.
_emitLibraryProcedures(library);
- var fields = library.fields;
- if (fields.isNotEmpty)
- _moduleItems.add(_emitLazyFields(emitLibraryName(library), fields));
+ library.classes.forEach(_emitClass);
+ library.typedefs.forEach(_emitTypedef);
+ _emitTopLevelFields(library.fields);
+ } else {
+ library.classes.forEach(_emitClass);
+ library.typedefs.forEach(_emitTypedef);
+ _emitLibraryProcedures(library);
+ _emitTopLevelFields(library.fields);
}
_currentLibrary = null;
@@ -551,7 +559,7 @@
body.addAll(jsCtors);
// Emit things that come after the ES6 `class ... { ... }`.
- var jsPeerNames = _getJSPeerNames(c);
+ var jsPeerNames = _extensionTypes.getNativePeers(c);
if (jsPeerNames.length == 1 && c.typeParameters.isNotEmpty) {
// Special handling for JSArray<E>
body.add(_callHelperStatement('setExtensionBaseClass(#, #.global.#);',
@@ -1102,7 +1110,8 @@
.toStatement());
}
} else if (fields.isNotEmpty) {
- body.add(_emitLazyFields(_emitTopLevelName(c), fields));
+ body.add(_emitLazyFields(_emitTopLevelName(c), fields,
+ (n) => _emitStaticMemberName(n.name.name)));
}
}
@@ -1567,7 +1576,7 @@
var virtualFields = _classProperties.virtualFields;
var jsMethods = <JS.Method>[];
- bool hasJsPeer = findAnnotation(c, isJsPeerInterface) != null;
+ bool hasJsPeer = _extensionTypes.isNativeClass(c);
bool hasIterator = false;
if (c == coreTypes.objectClass) {
@@ -2056,25 +2065,6 @@
JS.Expression _instantiateAnnotation(Expression node) =>
_visitExpression(node);
- /// Gets the JS peer for this Dart type if any, otherwise null.
- ///
- /// For example for dart:_interceptors `JSArray` this will return "Array",
- /// referring to the JavaScript built-in `Array` type.
- List<String> _getJSPeerNames(Class c) {
- var jsPeerNames = getAnnotationName(
- c,
- (a) =>
- isJsPeerInterface(a) ||
- isNativeAnnotation(a) && _extensionTypes.isNativeClass(c));
- if (c == coreTypes.objectClass) return ['Object'];
- if (jsPeerNames == null) return [];
-
- // Omit the special name "!nonleaf" and any future hacks starting with "!"
- var result =
- jsPeerNames.split(',').where((peer) => !peer.startsWith("!")).toList();
- return result;
- }
-
void _registerExtensionType(
Class c, String jsPeerName, List<JS.Statement> body) {
var className = _emitTopLevelName(c);
@@ -2115,50 +2105,55 @@
_moduleItems.add(result);
}
- /// Treat dart:_runtime fields as safe to eagerly evaluate.
- // TODO(jmesserly): it'd be nice to avoid this special case.
- JS.Statement _emitInternalSdkFields(Iterable<Field> fields) {
- var lazyFields = <Field>[];
- var savedUri = _currentUri;
+ void _emitTopLevelFields(List<Field> fields) {
+ if (isSdkInternalRuntime(_currentLibrary)) {
+ /// Treat dart:_runtime fields as safe to eagerly evaluate.
+ // TODO(jmesserly): it'd be nice to avoid this special case.
+ var lazyFields = <Field>[];
+ var savedUri = _currentUri;
+ for (var field in fields) {
+ // Skip our magic undefined constant.
+ if (field.name.name == 'undefined') continue;
- for (var field in fields) {
- // Skip our magic undefined constant.
- if (field.name.name == 'undefined') continue;
-
- var init = field.initializer;
- if (init == null ||
- init is BasicLiteral ||
- init is StaticInvocation && isInlineJS(init.target) ||
- init is ConstructorInvocation &&
- isSdkInternalRuntime(init.target.enclosingLibrary)) {
- _currentUri = field.fileUri;
- _moduleItems.add(js.statement('# = #;', [
- _emitTopLevelName(field),
- _visitInitializer(init, field.annotations)
- ]));
- } else {
- lazyFields.add(field);
+ var init = field.initializer;
+ if (init == null ||
+ init is BasicLiteral ||
+ init is StaticInvocation && isInlineJS(init.target) ||
+ init is ConstructorInvocation &&
+ isSdkInternalRuntime(init.target.enclosingLibrary)) {
+ _currentUri = field.fileUri;
+ _moduleItems.add(js.statement('# = #;', [
+ _emitTopLevelName(field),
+ _visitInitializer(init, field.annotations)
+ ]));
+ } else {
+ lazyFields.add(field);
+ }
}
+
+ _currentUri = savedUri;
+ fields = lazyFields;
}
- _currentUri = savedUri;
- return _emitLazyFields(emitLibraryName(_currentLibrary), lazyFields);
+ if (fields.isEmpty) return;
+ _moduleItems.add(_emitLazyFields(
+ emitLibraryName(_currentLibrary), fields, _emitTopLevelMemberName));
}
- JS.Statement _emitLazyFields(JS.Expression objExpr, Iterable<Field> fields) {
+ JS.Statement _emitLazyFields(JS.Expression objExpr, Iterable<Field> fields,
+ JS.Expression Function(Field f) emitFieldName) {
var accessors = <JS.Method>[];
var savedUri = _currentUri;
for (var field in fields) {
_currentUri = field.fileUri;
- var name = field.name.name;
- var access = _emitStaticMemberName(name);
+ var access = emitFieldName(field);
accessors.add(new JS.Method(access, _emitStaticFieldInitializer(field),
isGetter: true)
..sourceInformation = _hoverComment(
new JS.PropertyAccess(objExpr, access),
field.fileOffset,
- name.length));
+ field.name.name.length));
// TODO(jmesserly): currently uses a dummy setter to indicate writable.
if (!field.isFinal && !field.isConst) {
@@ -2415,7 +2410,7 @@
}
JS.Expression _emitJSInteropStaticMemberName(NamedNode n) {
- if (!isJSElement(n)) return null;
+ if (!usesJSInterop(n)) return null;
var name = getAnnotationName(n, isPublicJSAnnotation);
if (name != null) {
if (name.contains('.')) {
@@ -2431,13 +2426,21 @@
JS.PropertyAccess _emitTopLevelNameNoInterop(NamedNode n,
{String suffix: ''}) {
+ return new JS.PropertyAccess(emitLibraryName(getLibrary(n)),
+ _emitTopLevelMemberName(n, suffix: suffix));
+ }
+
+ /// Emits the member name portion of a top-level member.
+ ///
+ /// NOTE: usually you should use [_emitTopLevelName] instead of this. This
+ /// function does not handle JS interop.
+ JS.Expression _emitTopLevelMemberName(NamedNode n, {String suffix: ''}) {
var name = getJSExportName(n) ?? getTopLevelName(n);
- return new JS.PropertyAccess(
- emitLibraryName(getLibrary(n)), _propertyName(name + suffix));
+ return _propertyName(name + suffix);
}
String _getJSNameWithoutGlobal(NamedNode n) {
- if (!isJSElement(n)) return null;
+ if (!usesJSInterop(n)) return null;
var libraryJSName = getAnnotationName(getLibrary(n), isPublicJSAnnotation);
var jsName =
getAnnotationName(n, isPublicJSAnnotation) ?? getTopLevelName(n);
@@ -2695,8 +2698,8 @@
_emitConstructorAccess(type), _constructorName(c.name.name));
}
- /// Emits an expression that lets you access statics on an [element] from code.
- JS.Expression _emitStaticAccess(Class c) {
+ /// Emits an expression that lets you access statics on an [c] from code.
+ JS.Expression _emitStaticClassName(Class c) {
_declareBeforeUse(c);
return _emitTopLevelName(c);
}
@@ -3799,7 +3802,7 @@
}
} else if (member is Procedure &&
!member.isAccessor &&
- !_isJSNative(member.enclosingClass)) {
+ !hasJSInteropAnnotation(member.enclosingClass)) {
return _callHelper('bind(#, #)', [jsReceiver, jsName]);
} else {
return new JS.PropertyAccess(jsReceiver, jsName);
@@ -3828,7 +3831,7 @@
var jsTarget = _emitSuperTarget(target);
if (target is Procedure &&
!target.isAccessor &&
- !_isJSNative(target.enclosingClass)) {
+ !hasJSInteropAnnotation(target.enclosingClass)) {
return _callHelper('bind(this, #, #)', [jsTarget.selector, jsTarget]);
}
return jsTarget;
@@ -4329,7 +4332,7 @@
JS.Expression _emitStaticTarget(Member target) {
var c = target.enclosingClass;
if (c != null) {
- return new JS.PropertyAccess(_emitStaticAccess(c),
+ return new JS.PropertyAccess(_emitStaticClassName(c),
_emitStaticMemberName(target.name.name, target));
}
return _emitTopLevelName(target);
@@ -4530,7 +4533,7 @@
var args = node.arguments;
var ctor = node.target;
var ctorClass = ctor.enclosingClass;
- if (ctor.isExternal && _isJSNative(ctorClass)) {
+ if (ctor.isExternal && hasJSInteropAnnotation(ctorClass)) {
return _emitJSInteropNew(ctor, args);
}
@@ -4607,7 +4610,7 @@
JS.Expression _emitJSInteropNew(Member ctor, Arguments args) {
var ctorClass = ctor.enclosingClass;
- if (_isObjectLiteral(ctorClass)) return _emitObjectLiteral(args);
+ if (isJSAnonymousType(ctorClass)) return _emitObjectLiteral(args);
return new JS.New(_emitConstructorName(ctorClass.rawType, ctor),
_emitArgumentList(args, types: false));
}
@@ -4628,12 +4631,6 @@
return _emitType(new InterfaceType(c, typeArgs));
}
- bool _isObjectLiteral(Class c) {
- return _isJSNative(c) && c.annotations.any(isJSAnonymousAnnotation);
- }
-
- bool _isJSNative(Class c) => c.annotations.any(isPublicJSAnnotation);
-
JS.Expression _emitObjectLiteral(Arguments node) {
var args = _emitArgumentList(node);
if (args.isEmpty) return js.call('{}');
diff --git a/pkg/dev_compiler/lib/src/kernel/js_interop.dart b/pkg/dev_compiler/lib/src/kernel/js_interop.dart
index 419823b..890edab 100644
--- a/pkg/dev_compiler/lib/src/kernel/js_interop.dart
+++ b/pkg/dev_compiler/lib/src/kernel/js_interop.dart
@@ -45,7 +45,7 @@
bool isPublicJSAnnotation(Expression value) =>
_annotationIsFromJSLibrary('JS', value);
-bool isJSAnonymousAnnotation(Expression value) =>
+bool _isJSAnonymousAnnotation(Expression value) =>
_annotationIsFromJSLibrary('_Anonymous', value);
bool _isBuiltinAnnotation(
@@ -80,21 +80,37 @@
_isBuiltinAnnotation(value, '_js_helper', 'Native');
bool isJSAnonymousType(Class namedClass) {
- return _isJSNative(namedClass) &&
- findAnnotation(namedClass, isJSAnonymousAnnotation) != null;
+ return hasJSInteropAnnotation(namedClass) &&
+ findAnnotation(namedClass, _isJSAnonymousAnnotation) != null;
}
-// TODO(jmesserly): rename this after port
-bool isJSElement(NamedNode n) {
+/// Returns true iff the class has an `@JS(...)` annotation from `package:js`.
+///
+/// Note: usually [_usesJSInterop] should be used instead of this.
+//
+// TODO(jmesserly): I think almost all uses of this should be replaced with
+// [_usesJSInterop], which also checks that the library is marked with `@JS`.
+//
+// Right now we have inconsistencies: sometimes we'll respect `@JS` on the
+// class itself, other places we require it on the library. Also members are
+// inconsistent: sometimes they need to have `@JS` on them, other times they
+// need to be `external` in an `@JS` class.
+bool hasJSInteropAnnotation(Class c) => c.annotations.any(isPublicJSAnnotation);
+
+/// Returns true iff this element is a JS interop member.
+///
+/// The element's library must have `@JS(...)` annotation from `package:js`.
+/// If the element is a class, it must also be marked with `@JS`. Other
+/// elements, such as class members and top-level functions/accessors, should
+/// be marked `external`.
+bool usesJSInterop(NamedNode n) {
var library = getLibrary(n);
return library != null &&
- _isJSNative(library) &&
- (n is Procedure && n.isExternal || n is Class && _isJSNative(n));
+ library.annotations.any(isPublicJSAnnotation) &&
+ (n is Procedure && n.isExternal ||
+ n is Class && n.annotations.any(isPublicJSAnnotation));
}
-bool _isJSNative(NamedNode n) =>
- findAnnotation(n, isPublicJSAnnotation) != null;
-
/// Returns the name value of the `JSExportName` annotation (when compiling
/// the SDK), or `null` if there's none. This is used to control the name
/// under which functions are compiled and exported.
diff --git a/pkg/dev_compiler/lib/src/kernel/kernel_helpers.dart b/pkg/dev_compiler/lib/src/kernel/kernel_helpers.dart
index 312116b..18fb1a3 100644
--- a/pkg/dev_compiler/lib/src/kernel/kernel_helpers.dart
+++ b/pkg/dev_compiler/lib/src/kernel/kernel_helpers.dart
@@ -92,6 +92,14 @@
/// If [node] has annotation matching [test] and the first argument is a
/// string, this returns the string value.
///
+/// Calls [findAnnotation] followed by [getNameFromAnnotation].
+String getAnnotationName(NamedNode node, bool test(Expression value)) {
+ return getNameFromAnnotation(findAnnotation(node, test));
+}
+
+/// If [node] is an annotation and the first argument is a string, this returns
+/// the string value.
+///
/// For example
///
/// class MyAnnotation {
@@ -103,15 +111,11 @@
/// @MyAnnotation('FooBar')
/// main() { ... }
///
-/// If we match the annotation for the `@MyAnnotation('FooBar')` this will
-/// return the string `'FooBar'`.
-String getAnnotationName(NamedNode node, bool test(Expression value)) {
- var match = findAnnotation(node, test);
- if (match is ConstructorInvocation && match.arguments.positional.isNotEmpty) {
- var first = _followConstFields(match.arguments.positional[0]);
- if (first is StringLiteral) {
- return first.value;
- }
+/// Given teh node for `@MyAnnotation('FooBar')` this will return `'FooBar'`.
+String getNameFromAnnotation(ConstructorInvocation node) {
+ if (node != null && node.arguments.positional.isNotEmpty) {
+ var first = _followConstFields(node.arguments.positional[0]);
+ if (first is StringLiteral) return first.value;
}
return null;
}
diff --git a/pkg/dev_compiler/lib/src/kernel/native_types.dart b/pkg/dev_compiler/lib/src/kernel/native_types.dart
index e862eb9..1ac42bb 100644
--- a/pkg/dev_compiler/lib/src/kernel/native_types.dart
+++ b/pkg/dev_compiler/lib/src/kernel/native_types.dart
@@ -6,6 +6,7 @@
import 'package:kernel/core_types.dart';
import 'package:kernel/kernel.dart';
import 'package:kernel/library_index.dart';
+import 'kernel_helpers.dart' show getNameFromAnnotation;
/// Contains information about native JS types (those types provided by the
/// implementation) that are also provided by the Dart SDK.
@@ -64,18 +65,6 @@
_addPendingExtensionTypes(sdk.getLibrary('dart:web_sql'));
}
- bool _isNative(Class c) {
- for (var annotation in c.annotations) {
- if (annotation is ConstructorInvocation) {
- var c = annotation.target.enclosingClass;
- if (c.name == 'Native' || c.name == 'JsPeerInterface') {
- if (c.enclosingLibrary.importUri.scheme == 'dart') return true;
- }
- }
- }
- return false;
- }
-
void _addExtensionType(Class c, [bool mustBeNative = false]) {
if (c == coreTypes.objectClass) return;
if (_extensibleTypes.contains(c) || _nativeTypes.contains(c)) {
@@ -129,4 +118,32 @@
_processPending(c) && _extensibleTypes.contains(c);
bool hasNativeSubtype(Class c) => isNativeInterface(c) || isNativeClass(c);
+
+ /// Gets the JS peer for this Dart type if any, otherwise null.
+ ///
+ /// For example for dart:_interceptors `JSArray` this will return "Array",
+ /// referring to the JavaScript built-in `Array` type.
+ List<String> getNativePeers(Class c) {
+ if (c == coreTypes.objectClass) return ['Object'];
+ var names = getNameFromAnnotation(_getNativeAnnotation(c));
+ if (names == null) return const [];
+
+ // Omit the special name "!nonleaf" and any future hacks starting with "!"
+ return names.split(',').where((peer) => !peer.startsWith("!")).toList();
+ }
+}
+
+bool _isNative(Class c) => _getNativeAnnotation(c) != null;
+
+ConstructorInvocation _getNativeAnnotation(Class c) {
+ for (var annotation in c.annotations) {
+ if (annotation is ConstructorInvocation) {
+ var c = annotation.target.enclosingClass;
+ if ((c.name == 'Native' || c.name == 'JsPeerInterface') &&
+ c.enclosingLibrary.importUri.scheme == 'dart') {
+ return annotation;
+ }
+ }
+ }
+ return null;
}
diff --git a/pkg/dev_compiler/tool/input_sdk/patch/core_patch.dart b/pkg/dev_compiler/tool/input_sdk/patch/core_patch.dart
index de39cbb..3e7dd29 100644
--- a/pkg/dev_compiler/tool/input_sdk/patch/core_patch.dart
+++ b/pkg/dev_compiler/tool/input_sdk/patch/core_patch.dart
@@ -1118,7 +1118,7 @@
unshiftedDigits[3] = 0x10 | (bits[6] & 0xF);
var unshiftedBig = new _BigIntImpl._normalized(false, 4, unshiftedDigits);
- _BigIntImpl absResult;
+ _BigIntImpl absResult = unshiftedBig;
if (exponent < 0) {
absResult = unshiftedBig >> -exponent;
} else if (exponent > 0) {
diff --git a/pkg/front_end/lib/src/base/processed_options.dart b/pkg/front_end/lib/src/base/processed_options.dart
index cbe7ebc..f0a3761 100644
--- a/pkg/front_end/lib/src/base/processed_options.dart
+++ b/pkg/front_end/lib/src/base/processed_options.dart
@@ -102,7 +102,7 @@
/// all method bodies are left out. In essence, it contains just API
/// signatures and constants. When strong-mode is enabled, the summary already
/// includes inferred types.
- Component _sdkSummaryProgram;
+ Component _sdkSummaryComponent;
/// The summary for each uri in `options.inputSummaries`.
///
@@ -110,9 +110,9 @@
/// all method bodies are left out. In essence, it contains just API
/// signatures and constants. When strong-mode is enabled, the summary already
/// includes inferred types.
- List<Component> _inputSummariesPrograms;
+ List<Component> _inputSummariesComponents;
- /// Other programs that are meant to be linked and compiled with the input
+ /// Other components that are meant to be linked and compiled with the input
/// sources.
List<Component> _linkedDependencies;
@@ -282,6 +282,14 @@
Severity.internalProblem);
return false;
}
+
+ for (Uri source in _raw.linkedDependencies) {
+ if (!await fileSystem.entityForUri(source).exists()) {
+ reportWithoutLocation(
+ templateInputFileNotFound.withArguments(source), Severity.error);
+ return false;
+ }
+ }
return true;
}
@@ -309,38 +317,38 @@
/// Get an outline component that summarizes the SDK, if any.
// TODO(sigmund): move, this doesn't feel like an "option".
Future<Component> loadSdkSummary(CanonicalName nameRoot) async {
- if (_sdkSummaryProgram == null) {
+ if (_sdkSummaryComponent == null) {
if (sdkSummary == null) return null;
var bytes = await loadSdkSummaryBytes();
- _sdkSummaryProgram = loadComponent(bytes, nameRoot);
+ _sdkSummaryComponent = loadComponent(bytes, nameRoot);
}
- return _sdkSummaryProgram;
+ return _sdkSummaryComponent;
}
void set sdkSummaryComponent(Component platform) {
- if (_sdkSummaryProgram != null) {
+ if (_sdkSummaryComponent != null) {
throw new StateError("sdkSummary already loaded.");
}
- _sdkSummaryProgram = platform;
+ _sdkSummaryComponent = platform;
}
/// Get the summary programs for each of the underlying `inputSummaries`
/// provided via [CompilerOptions].
// TODO(sigmund): move, this doesn't feel like an "option".
Future<List<Component>> loadInputSummaries(CanonicalName nameRoot) async {
- if (_inputSummariesPrograms == null) {
+ if (_inputSummariesComponents == null) {
var uris = _raw.inputSummaries;
if (uris == null || uris.isEmpty) return const <Component>[];
// TODO(sigmund): throttle # of concurrent opreations.
var allBytes = await Future
.wait(uris.map((uri) => fileSystem.entityForUri(uri).readAsBytes()));
- _inputSummariesPrograms =
+ _inputSummariesComponents =
allBytes.map((bytes) => loadComponent(bytes, nameRoot)).toList();
}
- return _inputSummariesPrograms;
+ return _inputSummariesComponents;
}
- /// Load each of the [CompilerOptions.linkedDependencies] programs.
+ /// Load each of the [CompilerOptions.linkedDependencies] components.
// TODO(sigmund): move, this doesn't feel like an "option".
Future<List<Component>> loadLinkDependencies(CanonicalName nameRoot) async {
if (_linkedDependencies == null) {
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 2be3fcf..d033d7d 100644
--- a/pkg/front_end/lib/src/fasta/dill/dill_loader.dart
+++ b/pkg/front_end/lib/src/fasta/dill/dill_loader.dart
@@ -25,7 +25,7 @@
/// Source targets are compiled against these binary libraries.
final libraries = <Library>[];
- /// Sources for all appended programs.
+ /// Sources for all appended components.
final Map<Uri, Source> uriToSource = <Uri, Source>{};
DillLoader(TargetImplementation target) : super(target);
diff --git a/pkg/front_end/lib/src/fasta/get_dependencies.dart b/pkg/front_end/lib/src/fasta/get_dependencies.dart
index 14165b7..37ee55e 100644
--- a/pkg/front_end/lib/src/fasta/get_dependencies.dart
+++ b/pkg/front_end/lib/src/fasta/get_dependencies.dart
@@ -47,8 +47,8 @@
new DillTarget(c.options.ticker, uriTranslator, c.options.target);
if (platform != null) {
var bytes = await fileSystem.entityForUri(platform).readAsBytes();
- var platformProgram = loadComponentFromBytes(bytes);
- dillTarget.loader.appendLibraries(platformProgram);
+ var platformComponent = loadComponentFromBytes(bytes);
+ dillTarget.loader.appendLibraries(platformComponent);
}
KernelTarget kernelTarget = new KernelTarget(
fileSystem, false, dillTarget, uriTranslator,
diff --git a/pkg/front_end/lib/src/fasta/incremental_compiler.dart b/pkg/front_end/lib/src/fasta/incremental_compiler.dart
index eba0a79..b3039b5 100644
--- a/pkg/front_end/lib/src/fasta/incremental_compiler.dart
+++ b/pkg/front_end/lib/src/fasta/incremental_compiler.dart
@@ -133,7 +133,7 @@
// This is not the full program. It is the component including all
// libraries loaded from .dill files.
- Component programWithDill =
+ Component componentWithDill =
await userCode.buildComponent(verify: c.options.verify);
List<Library> libraries =
@@ -160,9 +160,9 @@
// This component represents the parts of the program that were
// recompiled.
- Procedure mainMethod = programWithDill == null
+ Procedure mainMethod = componentWithDill == null
? data.userLoadedUriMain
- : programWithDill.mainMethod;
+ : componentWithDill.mainMethod;
return new Component(libraries: libraries, uriToSource: data.uriToSource)
..mainMethod = mainMethod;
});
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 7c7babc..bdf106f 100644
--- a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
@@ -22,7 +22,6 @@
FormalParameterKind,
IdentifierContext,
MemberKind,
- closeBraceTokenFor,
lengthForToken,
lengthOfSpan,
offsetForToken,
@@ -816,8 +815,7 @@
@override
void handleParenthesizedExpression(Token token) {
debugEvent("ParenthesizedExpression");
- push(new ParenthesizedExpression(
- this, popForValue(), closeBraceTokenFor(token)));
+ push(new ParenthesizedExpression(this, popForValue(), token.endGroup));
}
@override
@@ -1786,7 +1784,7 @@
addProblem(
fasta.messageListLiteralTooManyTypeArguments,
offsetForToken(beginToken),
- lengthOfSpan(beginToken, closeBraceTokenFor(beginToken)));
+ lengthOfSpan(beginToken, beginToken.endGroup));
} else if (library.loader.target.strongMode) {
typeArgument = instantiateToBounds(typeArgument, coreTypes.objectClass);
}
@@ -1834,7 +1832,7 @@
addProblem(
fasta.messageListLiteralTypeArgumentMismatch,
offsetForToken(beginToken),
- lengthOfSpan(beginToken, closeBraceTokenFor(beginToken)));
+ lengthOfSpan(beginToken, beginToken.endGroup));
} else {
if (library.loader.target.strongMode) {
keyType =
@@ -2861,7 +2859,6 @@
var returnType = pop();
var hasImplicitReturnType = returnType == null;
returnType ??= const DynamicType();
- pop(); // Modifiers.
exitFunction();
List<TypeParameter> typeParameters = typeVariableBuildersToKernel(pop());
FunctionNode function = formals.addToFunction(new FunctionNode(body,
diff --git a/pkg/front_end/lib/src/fasta/parser.dart b/pkg/front_end/lib/src/fasta/parser.dart
index 17c0d5c..13713da 100644
--- a/pkg/front_end/lib/src/fasta/parser.dart
+++ b/pkg/front_end/lib/src/fasta/parser.dart
@@ -31,12 +31,7 @@
export 'parser/top_level_parser.dart' show TopLevelParser;
export 'parser/util.dart'
- show
- closeBraceTokenFor,
- lengthForToken,
- lengthOfSpan,
- offsetForToken,
- optional;
+ show lengthForToken, lengthOfSpan, offsetForToken, optional;
List<ParserError> parse(Token tokens) {
Listener listener = new Listener();
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 2ff44b0..c5c0802 100644
--- a/pkg/front_end/lib/src/fasta/parser/forwarding_listener.dart
+++ b/pkg/front_end/lib/src/fasta/parser/forwarding_listener.dart
@@ -141,8 +141,9 @@
}
@override
- void beginFactoryMethod(Token lastConsumed) {
- listener?.beginFactoryMethod(lastConsumed);
+ void beginFactoryMethod(
+ Token lastConsumed, Token externalToken, Token constToken) {
+ listener?.beginFactoryMethod(lastConsumed, externalToken, constToken);
}
@override
@@ -368,8 +369,8 @@
}
@override
- void beginTopLevelMethod(Token lastConsumed) {
- listener?.beginTopLevelMethod(lastConsumed);
+ void beginTopLevelMethod(Token lastConsumed, Token externalToken) {
+ listener?.beginTopLevelMethod(lastConsumed, externalToken);
}
@override
diff --git a/pkg/front_end/lib/src/fasta/parser/listener.dart b/pkg/front_end/lib/src/fasta/parser/listener.dart
index b7d921e..167775d 100644
--- a/pkg/front_end/lib/src/fasta/parser/listener.dart
+++ b/pkg/front_end/lib/src/fasta/parser/listener.dart
@@ -224,7 +224,8 @@
logEvent("ExpressionStatement");
}
- void beginFactoryMethod(Token lastConsumed) {}
+ void beginFactoryMethod(
+ Token lastConsumed, Token externalToken, Token constToken) {}
void endFactoryMethod(
Token beginToken, Token factoryKeyword, Token endToken) {
@@ -327,7 +328,6 @@
/// A function declaration.
///
/// Substructures:
- /// - Modifiers
/// - Return type
/// - Name
/// - Type variables
@@ -817,7 +817,7 @@
logEvent("TopLevelFields");
}
- void beginTopLevelMethod(Token lastConsumed) {}
+ void beginTopLevelMethod(Token lastConsumed, Token externalToken) {}
/// Handle the end of a top level method. Substructures:
/// - metadata
diff --git a/pkg/front_end/lib/src/fasta/parser/parser.dart b/pkg/front_end/lib/src/fasta/parser/parser.dart
index 0778f66..d48c0a3 100644
--- a/pkg/front_end/lib/src/fasta/parser/parser.dart
+++ b/pkg/front_end/lib/src/fasta/parser/parser.dart
@@ -101,7 +101,7 @@
isValidTypeReference,
noTypeInfo;
-import 'util.dart' show closeBraceTokenFor, optional;
+import 'util.dart' show optional;
/// An event generating parser of Dart programs. This parser expects all tokens
/// in a linked list (aka a token stream).
@@ -1076,7 +1076,7 @@
listener.endFormalParameters(0, token, token, kind);
return reportUnexpectedToken(token);
}
- Token closeBrace = closeBraceTokenFor(token);
+ Token closeBrace = token.endGroup;
listener.endFormalParameters(0, token, closeBrace, kind);
return closeBrace;
}
@@ -1488,7 +1488,7 @@
/// [isValidMethodTypeArguments].
Token tryParseMethodTypeArguments(Token token) {
if (!identical(token.kind, LT_TOKEN)) return null;
- Token endToken = closeBraceTokenFor(token);
+ Token endToken = token.endGroup;
if (endToken == null ||
!identical(endToken.next.kind, OPEN_PAREN_TOKEN)) {
return null;
@@ -1596,7 +1596,7 @@
Token skipBlock(Token token) {
token = ensureBlock(token, null);
- Token closeBrace = closeBraceTokenFor(token);
+ Token closeBrace = token.endGroup;
if (closeBrace == null ||
!identical(closeBrace.kind, $CLOSE_CURLY_BRACKET)) {
return reportUnmatchedToken(token).next;
@@ -2278,7 +2278,7 @@
/// The tokens before the start of type variables of function types seen
/// during analysis. Notice that the tokens in this list might precede
/// either `'<'` or `'('` as not all function types have type parameters.
- /// Also, it is safe to assume that [closeBraceTokenFor] will return
+ /// Also, it is safe to assume that token.endGroup will return
/// non-null for all of the tokens following these tokens.
Link<Token> typeVariableStarters = const Link<Token>();
@@ -2316,7 +2316,7 @@
token = beforeToken.next;
}
if (optional("<", token)) {
- Token close = closeBraceTokenFor(token);
+ Token close = token.endGroup;
if (close != null &&
(optional(">", close) || optional(">>", close))) {
// We found some type arguments.
@@ -2338,7 +2338,7 @@
while (optional("Function", token)) {
Token typeVariableStart = token;
if (optional("<", token.next)) {
- Token close = closeBraceTokenFor(token.next);
+ Token close = token.next.endGroup;
if (close != null && optional(">", close)) {
beforeToken = previousToken(token, close);
token = close;
@@ -2348,7 +2348,7 @@
}
if (optional("(", token.next)) {
// This is a function type.
- Token close = closeBraceTokenFor(token.next);
+ Token close = token.next.endGroup;
assert(optional(")", close));
looksLikeType = true;
functionTypes++;
@@ -2398,7 +2398,7 @@
Token functionToken = next;
if (optional("<", next.next)) {
// Skip type parameters, they were parsed above.
- next = closeBraceTokenFor(next.next);
+ next = next.next.endGroup;
}
token = parseFormalParametersRequiredOpt(
next, MemberKind.GeneralizedFunctionType);
@@ -2439,12 +2439,12 @@
}
token = token.next;
if (optional('<', token)) {
- Token closeBrace = closeBraceTokenFor(token);
+ Token closeBrace = token.endGroup;
if (closeBrace == null) return false;
token = closeBrace.next;
}
if (optional('(', token)) {
- return looksLikeFunctionBody(closeBraceTokenFor(token).next);
+ return looksLikeFunctionBody(token.endGroup.next);
}
return false;
}
@@ -2513,7 +2513,7 @@
return parseVariablesDeclaration(beforeBegin);
} else if (OPEN_PAREN_TOKEN == afterIdKind) {
// We are looking at `type identifier '('`.
- if (looksLikeFunctionBody(closeBraceTokenFor(afterId).next)) {
+ if (looksLikeFunctionBody(afterId.endGroup.next)) {
// We are looking at `type identifier '(' ... ')'` followed
// `( '{' | '=>' | 'async' | 'sync' )`.
@@ -2522,7 +2522,6 @@
Token beforeFormals = parseTypeVariablesOpt(token);
listener.beginLocalFunctionDeclaration(begin);
- listener.handleModifiers(0);
if (voidToken != null) {
listener.handleVoidKeyword(voidToken);
} else {
@@ -2533,16 +2532,14 @@
}
} else if (identical(afterIdKind, LT_TOKEN)) {
// We are looking at `type identifier '<'`.
- Token beforeFormals = closeBraceTokenFor(afterId);
+ Token beforeFormals = afterId.endGroup;
if (beforeFormals?.next != null &&
optional("(", beforeFormals.next)) {
- if (looksLikeFunctionBody(
- closeBraceTokenFor(beforeFormals.next).next)) {
+ if (looksLikeFunctionBody(beforeFormals.next.endGroup.next)) {
// We are looking at "type identifier '<' ... '>' '(' ... ')'"
// followed by '{', '=>', 'async', or 'sync'.
parseTypeVariablesOpt(token);
listener.beginLocalFunctionDeclaration(begin);
- listener.handleModifiers(0);
if (voidToken != null) {
listener.handleVoidKeyword(voidToken);
} else {
@@ -2560,7 +2557,7 @@
if (optional(':', token.next)) {
return parseLabeledStatement(beforeToken);
} else if (optional('(', token.next)) {
- if (looksLikeFunctionBody(closeBraceTokenFor(token.next).next)) {
+ if (looksLikeFunctionBody(token.next.endGroup.next)) {
// We are looking at `identifier '(' ... ')'` followed by `'{'`,
// `'=>'`, `'async'`, or `'sync'`.
@@ -2569,19 +2566,17 @@
Token formals = parseTypeVariablesOpt(token);
listener.beginLocalFunctionDeclaration(token);
- listener.handleModifiers(0);
listener.handleNoType(token);
return parseNamedFunctionRest(beforeToken, begin, formals, false);
}
} else if (optional('<', token.next)) {
- Token gt = closeBraceTokenFor(token.next);
+ Token gt = token.next.endGroup;
if (gt?.next != null && optional("(", gt.next)) {
- if (looksLikeFunctionBody(closeBraceTokenFor(gt.next).next)) {
+ if (looksLikeFunctionBody(gt.next.endGroup.next)) {
// We are looking at `identifier '<' ... '>' '(' ... ')'`
// followed by `'{'`, `'=>'`, `'async'`, or `'sync'`.
parseTypeVariablesOpt(token);
listener.beginLocalFunctionDeclaration(token);
- listener.handleModifiers(0);
listener.handleNoType(token);
return parseNamedFunctionRest(beforeToken, begin, gt, false);
}
@@ -2632,7 +2627,6 @@
Token formals = parseTypeVariablesOpt(name);
listener.beginNamedFunctionExpression(begin);
- listener.handleModifiers(0);
if (hasReturnType) {
if (voidToken != null) {
listener.handleVoidKeyword(voidToken);
@@ -2760,7 +2754,7 @@
Token inlineFunctionTypeStart;
if (optional("<", token)) {
- Token closer = closeBraceTokenFor(token);
+ Token closer = token.endGroup;
if (closer != null) {
if (optional("(", closer.next)) {
if (varFinalOrConst != null) {
@@ -2778,7 +2772,7 @@
varFinalOrConst, fasta.messageFunctionTypedParameterVar);
}
inlineFunctionTypeStart = beforeToken;
- beforeToken = closeBraceTokenFor(token);
+ beforeToken = token.endGroup;
token = beforeToken.next;
}
@@ -3135,16 +3129,7 @@
Token parseTopLevelMethod(Token beforeStart, Token externalToken,
Token beforeType, Token getOrSet, Token beforeName) {
- listener.beginTopLevelMethod(beforeStart);
-
- // TODO(danrubel): Consider passing modifiers via endTopLevelMethod
- // rather than handleModifier and handleModifiers
- if (externalToken != null) {
- listener.handleModifier(externalToken);
- listener.handleModifiers(1);
- } else {
- listener.handleModifiers(0);
- }
+ listener.beginTopLevelMethod(beforeStart, externalToken);
if (beforeType == null) {
listener.handleNoType(beforeName);
@@ -3561,7 +3546,7 @@
if (!optional('{', token)) {
token = ensureBlock(previousToken, fasta.templateExpectedClassBody);
}
- Token closeBrace = closeBraceTokenFor(token);
+ Token closeBrace = token.endGroup;
if (closeBrace == null ||
!identical(closeBrace.kind, $CLOSE_CURLY_BRACKET)) {
return reportUnmatchedToken(token).next;
@@ -3900,28 +3885,17 @@
varFinalOrConst = context.varFinalOrConst;
}
- int modifierCount = 0;
- if (externalToken != null) {
- listener.handleModifier(externalToken);
- ++modifierCount;
- }
if (staticOrCovariant != null) {
reportRecoverableErrorWithToken(
staticOrCovariant, fasta.templateExtraneousModifier);
}
- if (varFinalOrConst != null) {
- if (optional('const', varFinalOrConst)) {
- listener.handleModifier(varFinalOrConst);
- ++modifierCount;
- } else {
- reportRecoverableErrorWithToken(
- varFinalOrConst, fasta.templateExtraneousModifier);
- varFinalOrConst = null;
- }
+ if (varFinalOrConst != null && !optional('const', varFinalOrConst)) {
+ reportRecoverableErrorWithToken(
+ varFinalOrConst, fasta.templateExtraneousModifier);
+ varFinalOrConst = null;
}
- listener.handleModifiers(modifierCount);
- listener.beginFactoryMethod(beforeStart);
+ listener.beginFactoryMethod(beforeStart, externalToken, varFinalOrConst);
token = parseConstructorReference(token);
token = parseFormalParametersRequiredOpt(token, MemberKind.Factory);
Token asyncToken = token.next;
@@ -4003,7 +3977,6 @@
/// - Type variables.
/// - `beginLocalFunctionDeclaration` if [isFunctionExpression] is false,
/// otherwise `beginNamedFunctionExpression`.
- /// - Modifiers.
/// - Return type.
Token parseNamedFunctionRest(
Token beforeName, Token begin, Token formals, bool isFunctionExpression) {
@@ -4518,7 +4491,7 @@
// Foo() : map = {};
// Foo.x() : map = true ? {} : {};
// }
- token = closeBraceTokenFor(next.next) ?? next;
+ token = next.next.endGroup ?? next;
next = token.next;
continue;
}
@@ -4529,10 +4502,10 @@
// Foo() : map = <String, Foo>{};
// Foo.x() : map = true ? <String, Foo>{} : <String, Foo>{};
// }
- token = closeBraceTokenFor(next.next) ?? next;
+ token = next.next.endGroup ?? next;
next = token.next;
if (identical(next.stringValue, '{')) {
- token = closeBraceTokenFor(next) ?? next;
+ token = next.endGroup ?? next;
next = token.next;
}
continue;
@@ -4542,7 +4515,7 @@
break;
}
if (next is BeginToken) {
- token = closeBraceTokenFor(next) ?? next;
+ token = next.endGroup ?? next;
} else {
if (next is ErrorToken) {
reportErrorToken(next, false);
@@ -4882,7 +4855,7 @@
Token parseParenthesizedExpressionOrFunctionLiteral(Token token) {
Token next = token.next;
assert(optional('(', next));
- Token nextToken = closeBraceTokenFor(next).next;
+ Token nextToken = next.endGroup.next;
int kind = nextToken.kind;
if (mayParseFunctionExpressions) {
if ((identical(kind, FUNCTION_TOKEN) ||
@@ -5071,7 +5044,7 @@
Token parseLiteralFunctionSuffix(Token token) {
Token next = token.next;
assert(optional('(', next));
- Token closeBrace = closeBraceTokenFor(next);
+ Token closeBrace = next.endGroup;
if (closeBrace != null) {
Token nextToken = closeBrace.next;
int kind = nextToken.kind;
@@ -5098,7 +5071,7 @@
Token parseLiteralListOrMapOrFunction(Token token, Token constKeyword) {
Token next = token.next;
assert(optional('<', next));
- Token closeBrace = closeBraceTokenFor(next);
+ Token closeBrace = next.endGroup;
if (constKeyword == null &&
closeBrace != null &&
identical(closeBrace.next.kind, OPEN_PAREN_TOKEN)) {
@@ -5382,7 +5355,7 @@
Token next = token.next;
listener.handleNoArguments(next);
if (optional('(', next)) {
- return closeBraceTokenFor(next);
+ return next.endGroup;
} else {
return token;
}
diff --git a/pkg/front_end/lib/src/fasta/parser/util.dart b/pkg/front_end/lib/src/fasta/parser/util.dart
index f16353d..50dd955 100644
--- a/pkg/front_end/lib/src/fasta/parser/util.dart
+++ b/pkg/front_end/lib/src/fasta/parser/util.dart
@@ -17,12 +17,6 @@
return identical(value, token.stringValue);
}
-/// Returns the close brace, bracket, or parenthesis of [left]. For '<', it may
-/// return null.
-Token closeBraceTokenFor(Token token) {
- return token is BeginToken ? token.endGroup : null;
-}
-
/// Returns the token before the close brace, bracket, or parenthesis
/// associated with [left]. For '<', it may return `null`.
Token beforeCloseBraceTokenFor(BeginToken left) {
diff --git a/pkg/front_end/lib/src/fasta/source/diet_listener.dart b/pkg/front_end/lib/src/fasta/source/diet_listener.dart
index d831420..3b901fb 100644
--- a/pkg/front_end/lib/src/fasta/source/diet_listener.dart
+++ b/pkg/front_end/lib/src/fasta/source/diet_listener.dart
@@ -26,8 +26,7 @@
import '../kernel/body_builder.dart' show BodyBuilder;
-import '../parser.dart'
- show IdentifierContext, MemberKind, Parser, closeBraceTokenFor, optional;
+import '../parser.dart' show IdentifierContext, MemberKind, Parser, optional;
import '../problems.dart' show internalProblem, unexpected;
@@ -475,8 +474,7 @@
Object name = pop();
Token metadata = pop();
checkEmpty(beginToken.charOffset);
- if (bodyToken == null ||
- optional("=", closeBraceTokenFor(bodyToken).next)) {
+ if (bodyToken == null || optional("=", bodyToken.endGroup.next)) {
// TODO(ahe): Don't skip this. We need to compile metadata and
// redirecting factory bodies.
return;
diff --git a/pkg/front_end/lib/src/fasta/source/outline_builder.dart b/pkg/front_end/lib/src/fasta/source/outline_builder.dart
index 4777289..95f7e87 100644
--- a/pkg/front_end/lib/src/fasta/source/outline_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/outline_builder.dart
@@ -440,8 +440,9 @@
}
@override
- void beginTopLevelMethod(Token lastConsumed) {
+ void beginTopLevelMethod(Token lastConsumed, Token externalToken) {
library.beginNestedDeclaration("#method", hasMembers: false);
+ push(externalToken != null ? externalMask : 0);
}
@override
@@ -462,7 +463,10 @@
isAbstract = false;
}
}
- int modifiers = Modifier.validate(pop(), isAbstract: isAbstract);
+ int modifiers = pop();
+ if (isAbstract) {
+ modifiers |= abstractMask;
+ }
List<MetadataBuilder> metadata = pop();
String documentationComment = getDocumentationComment(beginToken);
checkEmpty(beginToken.charOffset);
@@ -1031,8 +1035,11 @@
}
@override
- void beginFactoryMethod(Token lastConsumed) {
+ void beginFactoryMethod(
+ Token lastConsumed, Token externalToken, Token constToken) {
library.beginNestedDeclaration("#factory_method", hasMembers: false);
+ push((externalToken != null ? externalMask : 0) |
+ (constToken != null ? constMask : 0));
}
@override
@@ -1047,7 +1054,7 @@
List<FormalParameterBuilder> formals = pop();
int formalsOffset = pop();
var name = pop();
- int modifiers = Modifier.validate(pop());
+ int modifiers = pop();
List<MetadataBuilder> metadata = pop();
String documentationComment = getDocumentationComment(beginToken);
library.addFactoryMethod(
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 83396f3..79c88ae 100644
--- a/pkg/front_end/lib/src/fasta/source/source_loader.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_loader.dart
@@ -557,7 +557,7 @@
ticker.logMs("Built component");
}
- Component computeFullProgram() {
+ Component computeFullComponent() {
Set<Library> libraries = new Set<Library>();
List<Library> workList = <Library>[];
builders.forEach((Uri uri, LibraryBuilder library) {
@@ -580,7 +580,7 @@
void computeHierarchy() {
List<List> ambiguousTypesRecords = [];
- hierarchy = new ClassHierarchy(computeFullProgram(),
+ hierarchy = new ClassHierarchy(computeFullComponent(),
onAmbiguousSupertypes: (Class cls, Supertype a, Supertype b) {
if (ambiguousTypesRecords != null) {
ambiguousTypesRecords.add([cls, a, b]);
@@ -694,7 +694,7 @@
// TODO(paulberry): could we make this unnecessary by not clearing class
// inference info?
typeInferenceEngine.classHierarchy = hierarchy = new ClassHierarchy(
- computeFullProgram(),
+ computeFullComponent(),
onAmbiguousSupertypes: ignoreAmbiguousSupertypes);
ticker.logMs("Performed top level inference");
}
diff --git a/pkg/front_end/lib/src/incremental/kernel_driver.dart b/pkg/front_end/lib/src/incremental/kernel_driver.dart
index 9038870..57b35a6 100644
--- a/pkg/front_end/lib/src/incremental/kernel_driver.dart
+++ b/pkg/front_end/lib/src/incremental/kernel_driver.dart
@@ -418,7 +418,7 @@
if (bytes != null) {
return _logger.runAsync('Read serialized libraries', () async {
var component = new Component(nameRoot: nameRoot);
- _readProgram(component, bytes);
+ _readComponent(component, bytes);
await appendNewDillLibraries(component);
return new LibraryCycleResult(
@@ -557,7 +557,7 @@
/// configured metadata factory. The [component] must be ready to read these
/// libraries, i.e. either the [bytes] represent a full component with all
/// dependencies, or the [component] already has all required dependencies.
- void _readProgram(Component component, List<int> bytes) {
+ void _readComponent(Component component, List<int> bytes) {
if (_metadataFactory != null) {
var repository = _metadataFactory.newRepositoryForReading();
component.addMetadataRepository(repository);
diff --git a/pkg/front_end/lib/src/kernel_generator_impl.dart b/pkg/front_end/lib/src/kernel_generator_impl.dart
index 4761b9a..8b78836 100644
--- a/pkg/front_end/lib/src/kernel_generator_impl.dart
+++ b/pkg/front_end/lib/src/kernel_generator_impl.dart
@@ -94,17 +94,17 @@
var kernelTarget = new KernelTarget(fs, false, dillTarget, uriTranslator);
options.inputs.forEach(kernelTarget.read);
- Component summaryProgram =
+ Component summaryComponent =
await kernelTarget.buildOutlines(nameRoot: nameRoot);
List<int> summary = null;
if (buildSummary) {
if (options.verify) {
- for (var error in verifyComponent(summaryProgram)) {
+ for (var error in verifyComponent(summaryComponent)) {
options.report(error, Severity.error);
}
}
if (options.debugDump) {
- printComponentText(summaryProgram,
+ printComponentText(summaryComponent,
libraryFilter: kernelTarget.isSourceLibrary);
}
@@ -113,20 +113,21 @@
// Note: we don't pass the library argument to the constructor to
// preserve the the libraries parent pointer (it should continue to point
// to the component within KernelTarget).
- var trimmedSummaryProgram = new Component(nameRoot: summaryProgram.root)
- ..libraries.addAll(truncateSummary
- ? kernelTarget.loader.libraries
- : summaryProgram.libraries);
- trimmedSummaryProgram.metadata.addAll(summaryProgram.metadata);
+ var trimmedSummaryComponent =
+ new Component(nameRoot: summaryComponent.root)
+ ..libraries.addAll(truncateSummary
+ ? kernelTarget.loader.libraries
+ : summaryComponent.libraries);
+ trimmedSummaryComponent.metadata.addAll(summaryComponent.metadata);
// As documented, we only run outline transformations when we are building
// summaries without building a full component (at this time, that's
// the only need we have for these transformations).
if (!buildComponent) {
- options.target.performOutlineTransformations(trimmedSummaryProgram);
+ options.target.performOutlineTransformations(trimmedSummaryComponent);
options.ticker.logMs("Transformed outline");
}
- summary = serializeComponent(trimmedSummaryProgram);
+ summary = serializeComponent(trimmedSummaryComponent);
options.ticker.logMs("Generated outline");
}
diff --git a/pkg/front_end/test/fasta/bootstrap_test.dart b/pkg/front_end/test/fasta/bootstrap_test.dart
index 77e7cab..2ca89b4 100644
--- a/pkg/front_end/test/fasta/bootstrap_test.dart
+++ b/pkg/front_end/test/fasta/bootstrap_test.dart
@@ -78,13 +78,13 @@
if (!silent) {
print("$a is different from $b");
}
- Component programA = new Component();
- Component programB = new Component();
- new BinaryBuilder(bytesA, filename: a.toFilePath()).readComponent(programA);
- new BinaryBuilder(bytesB, filename: b.toFilePath()).readComponent(programB);
+ Component componentA = new Component();
+ Component componentB = new Component();
+ new BinaryBuilder(bytesA, filename: a.toFilePath()).readComponent(componentA);
+ new BinaryBuilder(bytesB, filename: b.toFilePath()).readComponent(componentB);
RegExp splitLines = new RegExp('^', multiLine: true);
- List<String> linesA = componentToString(programA).split(splitLines);
- List<String> linesB = componentToString(programB).split(splitLines);
+ List<String> linesA = componentToString(componentA).split(splitLines);
+ List<String> linesB = componentToString(componentB).split(splitLines);
for (int i = 0; i < linesA.length && i < linesB.length; i++) {
String lineA = linesA[i].trimRight();
String lineB = linesB[i].trimRight();
diff --git a/pkg/front_end/test/fasta/testing/suite.dart b/pkg/front_end/test/fasta/testing/suite.dart
index 3337a9e..014f3a6 100644
--- a/pkg/front_end/test/fasta/testing/suite.dart
+++ b/pkg/front_end/test/fasta/testing/suite.dart
@@ -108,7 +108,7 @@
final Uri vm;
final bool strongMode;
final bool onlyCrashes;
- final Map<Component, KernelTarget> programToTarget =
+ final Map<Component, KernelTarget> componentToTarget =
<Component, KernelTarget>{};
final Uri platformBinaries;
Uri platformUri;
@@ -153,8 +153,8 @@
if (!ignoreExpectations) {
steps.add(new MatchExpectation(
fullCompile
- ? ".${generateExpectationName(strongMode)}.transformed.expect"
- : ".outline.transformed.expect",
+ ? ".${generateExpectationName(strongMode)}.transformed.expect"
+ : ".outline.transformed.expect",
updateExpectations: updateExpectations));
}
steps.add(const WriteDill());
@@ -327,8 +327,8 @@
} on deprecated_InputError catch (e, s) {
return fail(null, e.error, s);
}
- context.programToTarget.clear();
- context.programToTarget[p] = sourceTarget;
+ context.componentToTarget.clear();
+ context.componentToTarget[p] = sourceTarget;
return pass(p);
});
}
@@ -341,8 +341,8 @@
Future<Result<Component>> run(
Component component, FastaContext context) async {
- KernelTarget sourceTarget = context.programToTarget[component];
- context.programToTarget.remove(component);
+ KernelTarget sourceTarget = context.componentToTarget[component];
+ context.componentToTarget.remove(component);
TestVmTarget backendTarget = sourceTarget.backendTarget;
backendTarget.enabled = true;
try {
diff --git a/pkg/front_end/test/incremental_load_from_dill_test.dart b/pkg/front_end/test/incremental_load_from_dill_test.dart
index 13ab958..5ba4f3b 100644
--- a/pkg/front_end/test/incremental_load_from_dill_test.dart
+++ b/pkg/front_end/test/incremental_load_from_dill_test.dart
@@ -473,25 +473,25 @@
for (Uri invalidateUri in invalidateUris) {
compiler.invalidate(invalidateUri);
}
- var bootstrappedProgram = await compiler.computeDelta();
- throwOnEmptyMixinBodies(bootstrappedProgram);
+ var bootstrappedComponent = await compiler.computeDelta();
+ throwOnEmptyMixinBodies(bootstrappedComponent);
bool result = compiler.initializedFromDill;
- await writeComponentToFile(bootstrappedProgram, output);
+ await writeComponentToFile(bootstrappedComponent, output);
for (Uri invalidateUri in invalidateUris) {
compiler.invalidate(invalidateUri);
}
- var partialProgram = await compiler.computeDelta();
- throwOnEmptyMixinBodies(partialProgram);
- var emptyProgram = await compiler.computeDelta();
- throwOnEmptyMixinBodies(emptyProgram);
+ var partialComponent = await compiler.computeDelta();
+ throwOnEmptyMixinBodies(partialComponent);
+ var emptyComponent = await compiler.computeDelta();
+ throwOnEmptyMixinBodies(emptyComponent);
var fullLibUris =
- bootstrappedProgram.libraries.map((lib) => lib.importUri).toList();
+ bootstrappedComponent.libraries.map((lib) => lib.importUri).toList();
var partialLibUris =
- partialProgram.libraries.map((lib) => lib.importUri).toList();
+ partialComponent.libraries.map((lib) => lib.importUri).toList();
var emptyLibUris =
- emptyProgram.libraries.map((lib) => lib.importUri).toList();
+ emptyComponent.libraries.map((lib) => lib.importUri).toList();
if (performSizeTests) {
Expect.isTrue(fullLibUris.length > partialLibUris.length);
diff --git a/pkg/front_end/test/kernel_generator_test.dart b/pkg/front_end/test/kernel_generator_test.dart
index 6a2c923..736cb2f 100644
--- a/pkg/front_end/test/kernel_generator_test.dart
+++ b/pkg/front_end/test/kernel_generator_test.dart
@@ -107,7 +107,7 @@
expect(exceptionThrown, isTrue);
}, skip: true /* Issue 30194 */);
- test('generated component contains source-info', () async {
+ test('generated program contains source-info', () async {
var component = await compileScript('a() => print("hi"); main() {}',
fileName: 'a.dart');
// Kernel always store an empty '' key in the map, so there is always at
diff --git a/pkg/front_end/test/src/incremental/kernel_driver_test.dart b/pkg/front_end/test/src/incremental/kernel_driver_test.dart
index febded4..7568239 100644
--- a/pkg/front_end/test/src/incremental/kernel_driver_test.dart
+++ b/pkg/front_end/test/src/incremental/kernel_driver_test.dart
@@ -716,7 +716,7 @@
String initialKernelText;
List<int> bytes;
{
- Library initialLibrary = _getLibraryFromProgram(component, bUri);
+ Library initialLibrary = _getLibraryFromComponent(component, bUri);
initialKernelText = _getLibraryText(initialLibrary);
bytes = serializeComponent(component,
@@ -733,10 +733,10 @@
// serialized canonical names can be linked to corresponding nodes.
Library loadedLibrary;
{
- var programForLoading = new Component(nameRoot: component.root);
+ var componentForLoading = new Component(nameRoot: component.root);
var reader = new BinaryBuilder(bytes);
- reader.readComponent(programForLoading);
- loadedLibrary = _getLibraryFromProgram(programForLoading, bUri);
+ reader.readComponent(componentForLoading);
+ loadedLibrary = _getLibraryFromComponent(componentForLoading, bUri);
}
// Add the library into the component.
@@ -1023,7 +1023,7 @@
fail('No library found with URI "$uri"');
}
- Library _getLibraryFromProgram(Component component, Uri uri) {
+ Library _getLibraryFromComponent(Component component, Uri uri) {
for (var library in component.libraries) {
if (library.importUri == uri) return library;
}
diff --git a/pkg/front_end/tool/_fasta/entry_points.dart b/pkg/front_end/tool/_fasta/entry_points.dart
index 78d1163..67cbe59 100644
--- a/pkg/front_end/tool/_fasta/entry_points.dart
+++ b/pkg/front_end/tool/_fasta/entry_points.dart
@@ -276,6 +276,6 @@
/// to the [dillTarget].
void _appendDillForUri(DillTarget dillTarget, Uri uri) {
var bytes = new File.fromUri(uri).readAsBytesSync();
- var platformProgram = loadComponentFromBytes(bytes);
- dillTarget.loader.appendLibraries(platformProgram, byteCount: bytes.length);
+ var platformComponent = loadComponentFromBytes(bytes);
+ dillTarget.loader.appendLibraries(platformComponent, byteCount: bytes.length);
}
diff --git a/pkg/front_end/tool/incremental_perf.dart b/pkg/front_end/tool/incremental_perf.dart
index d9cf2cc..1d68942 100644
--- a/pkg/front_end/tool/incremental_perf.dart
+++ b/pkg/front_end/tool/incremental_perf.dart
@@ -134,12 +134,12 @@
collector.start("Initial compilation");
var generator = new IncrementalKernelGenerator(compilerOptions, entryUri);
- var program = await generator.computeDelta();
+ var component = await generator.computeDelta();
collector.stop("Initial compilation");
if (verbose) {
- print("Libraries changed: ${program.libraries.length}");
+ print("Libraries changed: ${component.libraries.length}");
}
- if (program.libraries.length < 1) {
+ if (component.libraries.length < 1) {
throw "No libraries were changed";
}
@@ -148,13 +148,13 @@
await applyEdits(
changeSet.edits, overlayFs, generator, uriTranslator, verbose);
collector.start(name);
- program = await generator.computeDelta();
+ component = await generator.computeDelta();
collector.stop(name);
if (verbose) {
print("Change '${changeSet.name}' - "
- "Libraries changed: ${program.libraries.length}");
+ "Libraries changed: ${component.libraries.length}");
}
- if (program.libraries.length < 1) {
+ if (component.libraries.length < 1) {
throw "No libraries were changed";
}
}
diff --git a/pkg/kernel/lib/binary/ast_to_binary.dart b/pkg/kernel/lib/binary/ast_to_binary.dart
index c829ca2..7bec298 100644
--- a/pkg/kernel/lib/binary/ast_to_binary.dart
+++ b/pkg/kernel/lib/binary/ast_to_binary.dart
@@ -15,7 +15,7 @@
///
/// A [BinaryPrinter] can be used to write one file and must then be
/// discarded.
-class BinaryPrinter extends Visitor implements BinarySink {
+class BinaryPrinter implements Visitor<void>, BinarySink {
VariableIndexer _variableIndexer;
LabelIndexer _labelIndexer;
SwitchCaseIndexer _switchCaseIndexer;
@@ -576,7 +576,8 @@
bool insideExternalLibrary = false;
- visitLibrary(Library node) {
+ @override
+ void visitLibrary(Library node) {
insideExternalLibrary = node.isExternal;
libraryOffsets.add(getBufferOffset());
writeByte(insideExternalLibrary ? 1 : 0);
@@ -714,7 +715,8 @@
levelFlags;
}
- visitClass(Class node) {
+ @override
+ void visitClass(Class node) {
classOffsets.add(getBufferOffset());
int flags = _encodeClassFlags(node.isAbstract, node.isEnum,
@@ -758,7 +760,8 @@
static final Name _emptyName = new Name('');
- visitConstructor(Constructor node) {
+ @override
+ void visitConstructor(Constructor node) {
if (node.canonicalName == null) {
throw 'Missing canonical name for $node';
}
@@ -787,7 +790,8 @@
_variableIndexer = null;
}
- visitProcedure(Procedure node) {
+ @override
+ void visitProcedure(Procedure node) {
procedureOffsets.add(getBufferOffset());
if (node.canonicalName == null) {
@@ -818,7 +822,8 @@
!(node.isForwardingStub && node.function.body != null));
}
- visitField(Field node) {
+ @override
+ void visitField(Field node) {
if (node.canonicalName == null) {
throw 'Missing canonical name for $node';
}
@@ -843,7 +848,8 @@
_variableIndexer = null;
}
- visitRedirectingFactoryConstructor(RedirectingFactoryConstructor node) {
+ @override
+ void visitRedirectingFactoryConstructor(RedirectingFactoryConstructor node) {
if (node.canonicalName == null) {
throw 'Missing canonical name for $node';
}
@@ -877,45 +883,52 @@
_variableIndexer = null;
}
- visitInvalidInitializer(InvalidInitializer node) {
+ @override
+ void visitInvalidInitializer(InvalidInitializer node) {
writeByte(Tag.InvalidInitializer);
writeByte(node.isSynthetic ? 1 : 0);
}
- visitFieldInitializer(FieldInitializer node) {
+ @override
+ void visitFieldInitializer(FieldInitializer node) {
writeByte(Tag.FieldInitializer);
writeByte(node.isSynthetic ? 1 : 0);
writeReference(node.fieldReference);
writeNode(node.value);
}
- visitSuperInitializer(SuperInitializer node) {
+ @override
+ void visitSuperInitializer(SuperInitializer node) {
writeByte(Tag.SuperInitializer);
writeByte(node.isSynthetic ? 1 : 0);
writeReference(node.targetReference);
writeNode(node.arguments);
}
- visitRedirectingInitializer(RedirectingInitializer node) {
+ @override
+ void visitRedirectingInitializer(RedirectingInitializer node) {
writeByte(Tag.RedirectingInitializer);
writeByte(node.isSynthetic ? 1 : 0);
writeReference(node.targetReference);
writeNode(node.arguments);
}
- visitLocalInitializer(LocalInitializer node) {
+ @override
+ void visitLocalInitializer(LocalInitializer node) {
writeByte(Tag.LocalInitializer);
writeByte(node.isSynthetic ? 1 : 0);
writeVariableDeclaration(node.variable);
}
- visitAssertInitializer(AssertInitializer node) {
+ @override
+ void visitAssertInitializer(AssertInitializer node) {
writeByte(Tag.AssertInitializer);
writeByte(node.isSynthetic ? 1 : 0);
writeNode(node.statement);
}
- visitFunctionNode(FunctionNode node) {
+ @override
+ void visitFunctionNode(FunctionNode node) {
writeByte(Tag.FunctionNode);
assert(_variableIndexer != null);
_variableIndexer.pushScope();
@@ -942,13 +955,15 @@
_variableIndexer.popScope();
}
- visitInvalidExpression(InvalidExpression node) {
+ @override
+ void visitInvalidExpression(InvalidExpression node) {
writeByte(Tag.InvalidExpression);
writeOffset(node.fileOffset);
writeStringReference(node.message ?? '');
}
- visitVariableGet(VariableGet node) {
+ @override
+ void visitVariableGet(VariableGet node) {
assert(_variableIndexer != null);
int index = _variableIndexer[node.variable];
assert(index != null);
@@ -966,7 +981,8 @@
}
}
- visitVariableSet(VariableSet node) {
+ @override
+ void visitVariableSet(VariableSet node) {
assert(_variableIndexer != null);
int index = _variableIndexer[node.variable];
if (index & Tag.SpecializedPayloadMask == index) {
@@ -983,7 +999,8 @@
}
}
- visitPropertyGet(PropertyGet node) {
+ @override
+ void visitPropertyGet(PropertyGet node) {
writeByte(Tag.PropertyGet);
writeOffset(node.fileOffset);
writeByte(node.flags);
@@ -992,7 +1009,8 @@
writeReference(node.interfaceTargetReference);
}
- visitPropertySet(PropertySet node) {
+ @override
+ void visitPropertySet(PropertySet node) {
writeByte(Tag.PropertySet);
writeOffset(node.fileOffset);
writeByte(node.flags);
@@ -1002,14 +1020,16 @@
writeReference(node.interfaceTargetReference);
}
- visitSuperPropertyGet(SuperPropertyGet node) {
+ @override
+ void visitSuperPropertyGet(SuperPropertyGet node) {
writeByte(Tag.SuperPropertyGet);
writeOffset(node.fileOffset);
writeName(node.name);
writeReference(node.interfaceTargetReference);
}
- visitSuperPropertySet(SuperPropertySet node) {
+ @override
+ void visitSuperPropertySet(SuperPropertySet node) {
writeByte(Tag.SuperPropertySet);
writeOffset(node.fileOffset);
writeName(node.name);
@@ -1017,7 +1037,8 @@
writeReference(node.interfaceTargetReference);
}
- visitDirectPropertyGet(DirectPropertyGet node) {
+ @override
+ void visitDirectPropertyGet(DirectPropertyGet node) {
writeByte(Tag.DirectPropertyGet);
writeOffset(node.fileOffset);
writeByte(node.flags);
@@ -1025,7 +1046,8 @@
writeReference(node.targetReference);
}
- visitDirectPropertySet(DirectPropertySet node) {
+ @override
+ void visitDirectPropertySet(DirectPropertySet node) {
writeByte(Tag.DirectPropertySet);
writeOffset(node.fileOffset);
writeByte(node.flags);
@@ -1034,20 +1056,23 @@
writeNode(node.value);
}
- visitStaticGet(StaticGet node) {
+ @override
+ void visitStaticGet(StaticGet node) {
writeByte(Tag.StaticGet);
writeOffset(node.fileOffset);
writeReference(node.targetReference);
}
- visitStaticSet(StaticSet node) {
+ @override
+ void visitStaticSet(StaticSet node) {
writeByte(Tag.StaticSet);
writeOffset(node.fileOffset);
writeReference(node.targetReference);
writeNode(node.value);
}
- visitMethodInvocation(MethodInvocation node) {
+ @override
+ void visitMethodInvocation(MethodInvocation node) {
writeByte(Tag.MethodInvocation);
writeOffset(node.fileOffset);
writeByte(node.flags);
@@ -1057,7 +1082,8 @@
writeReference(node.interfaceTargetReference);
}
- visitSuperMethodInvocation(SuperMethodInvocation node) {
+ @override
+ void visitSuperMethodInvocation(SuperMethodInvocation node) {
writeByte(Tag.SuperMethodInvocation);
writeOffset(node.fileOffset);
writeName(node.name);
@@ -1065,7 +1091,8 @@
writeReference(node.interfaceTargetReference);
}
- visitDirectMethodInvocation(DirectMethodInvocation node) {
+ @override
+ void visitDirectMethodInvocation(DirectMethodInvocation node) {
writeByte(Tag.DirectMethodInvocation);
writeOffset(node.fileOffset);
writeByte(node.flags);
@@ -1074,14 +1101,16 @@
writeNode(node.arguments);
}
- visitStaticInvocation(StaticInvocation node) {
+ @override
+ void visitStaticInvocation(StaticInvocation node) {
writeByte(node.isConst ? Tag.ConstStaticInvocation : Tag.StaticInvocation);
writeOffset(node.fileOffset);
writeReference(node.targetReference);
writeNode(node.arguments);
}
- visitConstructorInvocation(ConstructorInvocation node) {
+ @override
+ void visitConstructorInvocation(ConstructorInvocation node) {
writeByte(node.isConst
? Tag.ConstConstructorInvocation
: Tag.ConstructorInvocation);
@@ -1090,19 +1119,22 @@
writeNode(node.arguments);
}
- visitArguments(Arguments node) {
+ @override
+ void visitArguments(Arguments node) {
writeUInt30(node.positional.length + node.named.length);
writeNodeList(node.types);
writeNodeList(node.positional);
writeNodeList(node.named);
}
- visitNamedExpression(NamedExpression node) {
+ @override
+ void visitNamedExpression(NamedExpression node) {
writeStringReference(node.name);
writeNode(node.value);
}
- visitNot(Not node) {
+ @override
+ void visitNot(Not node) {
writeByte(Tag.Not);
writeNode(node.operand);
}
@@ -1117,14 +1149,16 @@
throw 'Not a logical operator: $operator';
}
- visitLogicalExpression(LogicalExpression node) {
+ @override
+ void visitLogicalExpression(LogicalExpression node) {
writeByte(Tag.LogicalExpression);
writeNode(node.left);
writeByte(logicalOperatorIndex(node.operator));
writeNode(node.right);
}
- visitConditionalExpression(ConditionalExpression node) {
+ @override
+ void visitConditionalExpression(ConditionalExpression node) {
writeByte(Tag.ConditionalExpression);
writeNode(node.condition);
writeNode(node.then);
@@ -1132,20 +1166,23 @@
writeOptionalNode(node.staticType);
}
- visitStringConcatenation(StringConcatenation node) {
+ @override
+ void visitStringConcatenation(StringConcatenation node) {
writeByte(Tag.StringConcatenation);
writeOffset(node.fileOffset);
writeNodeList(node.expressions);
}
- visitIsExpression(IsExpression node) {
+ @override
+ void visitIsExpression(IsExpression node) {
writeByte(Tag.IsExpression);
writeOffset(node.fileOffset);
writeNode(node.operand);
writeNode(node.type);
}
- visitAsExpression(AsExpression node) {
+ @override
+ void visitAsExpression(AsExpression node) {
writeByte(Tag.AsExpression);
writeOffset(node.fileOffset);
writeByte(node.flags);
@@ -1153,12 +1190,14 @@
writeNode(node.type);
}
- visitStringLiteral(StringLiteral node) {
+ @override
+ void visitStringLiteral(StringLiteral node) {
writeByte(Tag.StringLiteral);
writeStringReference(node.value);
}
- visitIntLiteral(IntLiteral node) {
+ @override
+ void visitIntLiteral(IntLiteral node) {
writeInteger(node.value);
}
@@ -1182,7 +1221,8 @@
}
}
- visitDoubleLiteral(DoubleLiteral node) {
+ @override
+ void visitDoubleLiteral(DoubleLiteral node) {
writeDouble(node.value);
}
@@ -1192,47 +1232,56 @@
writeStringReference('$value');
}
- visitBoolLiteral(BoolLiteral node) {
+ @override
+ void visitBoolLiteral(BoolLiteral node) {
writeByte(node.value ? Tag.TrueLiteral : Tag.FalseLiteral);
}
- visitNullLiteral(NullLiteral node) {
+ @override
+ void visitNullLiteral(NullLiteral node) {
writeByte(Tag.NullLiteral);
}
- visitSymbolLiteral(SymbolLiteral node) {
+ @override
+ void visitSymbolLiteral(SymbolLiteral node) {
writeByte(Tag.SymbolLiteral);
writeStringReference(node.value);
}
- visitTypeLiteral(TypeLiteral node) {
+ @override
+ void visitTypeLiteral(TypeLiteral node) {
writeByte(Tag.TypeLiteral);
writeNode(node.type);
}
- visitThisExpression(ThisExpression node) {
+ @override
+ void visitThisExpression(ThisExpression node) {
writeByte(Tag.ThisExpression);
}
- visitRethrow(Rethrow node) {
+ @override
+ void visitRethrow(Rethrow node) {
writeByte(Tag.Rethrow);
writeOffset(node.fileOffset);
}
- visitThrow(Throw node) {
+ @override
+ void visitThrow(Throw node) {
writeByte(Tag.Throw);
writeOffset(node.fileOffset);
writeNode(node.expression);
}
- visitListLiteral(ListLiteral node) {
+ @override
+ void visitListLiteral(ListLiteral node) {
writeByte(node.isConst ? Tag.ConstListLiteral : Tag.ListLiteral);
writeOffset(node.fileOffset);
writeNode(node.typeArgument);
writeNodeList(node.expressions);
}
- visitMapLiteral(MapLiteral node) {
+ @override
+ void visitMapLiteral(MapLiteral node) {
writeByte(node.isConst ? Tag.ConstMapLiteral : Tag.MapLiteral);
writeOffset(node.fileOffset);
writeNode(node.keyType);
@@ -1240,70 +1289,82 @@
writeNodeList(node.entries);
}
- visitMapEntry(MapEntry node) {
+ @override
+ void visitMapEntry(MapEntry node) {
// Note: there is no tag on MapEntry
writeNode(node.key);
writeNode(node.value);
}
- visitAwaitExpression(AwaitExpression node) {
+ @override
+ void visitAwaitExpression(AwaitExpression node) {
writeByte(Tag.AwaitExpression);
writeNode(node.operand);
}
- visitFunctionExpression(FunctionExpression node) {
+ @override
+ void visitFunctionExpression(FunctionExpression node) {
writeByte(Tag.FunctionExpression);
writeOffset(node.fileOffset);
writeNode(node.function);
}
- visitLet(Let node) {
+ @override
+ void visitLet(Let node) {
writeByte(Tag.Let);
writeVariableDeclaration(node.variable);
writeNode(node.body);
--_variableIndexer.stackHeight;
}
- visitInstantiation(Instantiation node) {
+ @override
+ void visitInstantiation(Instantiation node) {
writeByte(Tag.Instantiation);
writeNode(node.expression);
writeNodeList(node.typeArguments);
}
- visitLoadLibrary(LoadLibrary node) {
+ @override
+ void visitLoadLibrary(LoadLibrary node) {
writeByte(Tag.LoadLibrary);
writeLibraryDependencyReference(node.import);
}
- visitCheckLibraryIsLoaded(CheckLibraryIsLoaded node) {
+ @override
+ void visitCheckLibraryIsLoaded(CheckLibraryIsLoaded node) {
writeByte(Tag.CheckLibraryIsLoaded);
writeLibraryDependencyReference(node.import);
}
- visitVectorCreation(VectorCreation node) {
+ @override
+ void visitVectorCreation(VectorCreation node) {
writeByte(Tag.VectorCreation);
writeUInt30(node.length);
}
- visitVectorGet(VectorGet node) {
+ @override
+ void visitVectorGet(VectorGet node) {
writeByte(Tag.VectorGet);
writeNode(node.vectorExpression);
writeUInt30(node.index);
}
- visitVectorSet(VectorSet node) {
+ @override
+ void visitVectorSet(VectorSet node) {
writeByte(Tag.VectorSet);
writeNode(node.vectorExpression);
writeUInt30(node.index);
writeNode(node.value);
}
- visitVectorCopy(VectorCopy node) {
+ @override
+ void visitVectorCopy(VectorCopy node) {
writeByte(Tag.VectorCopy);
writeNode(node.vectorExpression);
}
- visitClosureCreation(ClosureCreation node) {
+ @override
+ void visitClosureCreation(ClosureCreation node) {
writeByte(Tag.ClosureCreation);
writeReference(node.topLevelFunctionReference);
writeNode(node.contextVector);
@@ -1319,30 +1380,35 @@
}
}
- visitExpressionStatement(ExpressionStatement node) {
+ @override
+ void visitExpressionStatement(ExpressionStatement node) {
writeByte(Tag.ExpressionStatement);
writeNode(node.expression);
}
- visitBlock(Block node) {
+ @override
+ void visitBlock(Block node) {
_variableIndexer.pushScope();
writeByte(Tag.Block);
writeNodeList(node.statements);
_variableIndexer.popScope();
}
- visitAssertBlock(AssertBlock node) {
+ @override
+ void visitAssertBlock(AssertBlock node) {
_variableIndexer.pushScope();
writeByte(Tag.AssertBlock);
writeNodeList(node.statements);
_variableIndexer.popScope();
}
- visitEmptyStatement(EmptyStatement node) {
+ @override
+ void visitEmptyStatement(EmptyStatement node) {
writeByte(Tag.EmptyStatement);
}
- visitAssertStatement(AssertStatement node) {
+ @override
+ void visitAssertStatement(AssertStatement node) {
writeByte(Tag.AssertStatement);
writeNode(node.condition);
writeOffset(node.conditionStartOffset);
@@ -1350,7 +1416,8 @@
writeOptionalNode(node.message);
}
- visitLabeledStatement(LabeledStatement node) {
+ @override
+ void visitLabeledStatement(LabeledStatement node) {
if (_labelIndexer == null) {
_labelIndexer = new LabelIndexer();
}
@@ -1360,32 +1427,37 @@
_labelIndexer.exit();
}
- visitConstantExpression(ConstantExpression node) {
+ @override
+ void visitConstantExpression(ConstantExpression node) {
writeByte(Tag.ConstantExpression);
writeConstantReference(node.constant);
}
- visitBreakStatement(BreakStatement node) {
+ @override
+ void visitBreakStatement(BreakStatement node) {
writeByte(Tag.BreakStatement);
writeOffset(node.fileOffset);
writeUInt30(_labelIndexer[node.target]);
}
- visitWhileStatement(WhileStatement node) {
+ @override
+ void visitWhileStatement(WhileStatement node) {
writeByte(Tag.WhileStatement);
writeOffset(node.fileOffset);
writeNode(node.condition);
writeNode(node.body);
}
- visitDoStatement(DoStatement node) {
+ @override
+ void visitDoStatement(DoStatement node) {
writeByte(Tag.DoStatement);
writeOffset(node.fileOffset);
writeNode(node.body);
writeNode(node.condition);
}
- visitForStatement(ForStatement node) {
+ @override
+ void visitForStatement(ForStatement node) {
_variableIndexer.pushScope();
writeByte(Tag.ForStatement);
writeOffset(node.fileOffset);
@@ -1396,7 +1468,8 @@
_variableIndexer.popScope();
}
- visitForInStatement(ForInStatement node) {
+ @override
+ void visitForInStatement(ForInStatement node) {
_variableIndexer.pushScope();
writeByte(node.isAsync ? Tag.AsyncForInStatement : Tag.ForInStatement);
writeOffset(node.fileOffset);
@@ -1407,7 +1480,8 @@
_variableIndexer.popScope();
}
- visitSwitchStatement(SwitchStatement node) {
+ @override
+ void visitSwitchStatement(SwitchStatement node) {
if (_switchCaseIndexer == null) {
_switchCaseIndexer = new SwitchCaseIndexer();
}
@@ -1419,7 +1493,8 @@
_switchCaseIndexer.exit(node);
}
- visitSwitchCase(SwitchCase node) {
+ @override
+ void visitSwitchCase(SwitchCase node) {
// Note: there is no tag on SwitchCase.
int length = node.expressions.length;
writeUInt30(length);
@@ -1431,13 +1506,15 @@
writeNode(node.body);
}
- visitContinueSwitchStatement(ContinueSwitchStatement node) {
+ @override
+ void visitContinueSwitchStatement(ContinueSwitchStatement node) {
writeByte(Tag.ContinueSwitchStatement);
writeOffset(node.fileOffset);
writeUInt30(_switchCaseIndexer[node.target]);
}
- visitIfStatement(IfStatement node) {
+ @override
+ void visitIfStatement(IfStatement node) {
writeByte(Tag.IfStatement);
writeOffset(node.fileOffset);
writeNode(node.condition);
@@ -1445,13 +1522,15 @@
writeStatementOrEmpty(node.otherwise);
}
- visitReturnStatement(ReturnStatement node) {
+ @override
+ void visitReturnStatement(ReturnStatement node) {
writeByte(Tag.ReturnStatement);
writeOffset(node.fileOffset);
writeOptionalNode(node.expression);
}
- visitTryCatch(TryCatch node) {
+ @override
+ void visitTryCatch(TryCatch node) {
writeByte(Tag.TryCatch);
writeNode(node.body);
if (node.catches.any((Catch c) => c.stackTrace != null)) {
@@ -1464,7 +1543,8 @@
writeNodeList(node.catches);
}
- visitCatch(Catch node) {
+ @override
+ void visitCatch(Catch node) {
// Note: there is no tag on Catch.
_variableIndexer.pushScope();
writeOffset(node.fileOffset);
@@ -1475,20 +1555,23 @@
_variableIndexer.popScope();
}
- visitTryFinally(TryFinally node) {
+ @override
+ void visitTryFinally(TryFinally node) {
writeByte(Tag.TryFinally);
writeNode(node.body);
writeNode(node.finalizer);
}
- visitYieldStatement(YieldStatement node) {
+ @override
+ void visitYieldStatement(YieldStatement node) {
writeByte(Tag.YieldStatement);
writeOffset(node.fileOffset);
writeByte(node.flags);
writeNode(node.expression);
}
- visitVariableDeclaration(VariableDeclaration node) {
+ @override
+ void visitVariableDeclaration(VariableDeclaration node) {
writeByte(Tag.VariableDeclaration);
writeVariableDeclaration(node);
}
@@ -1523,30 +1606,36 @@
}
}
- visitFunctionDeclaration(FunctionDeclaration node) {
+ @override
+ void visitFunctionDeclaration(FunctionDeclaration node) {
writeByte(Tag.FunctionDeclaration);
writeOffset(node.fileOffset);
writeVariableDeclaration(node.variable);
writeNode(node.function);
}
- visitBottomType(BottomType node) {
+ @override
+ void visitBottomType(BottomType node) {
writeByte(Tag.BottomType);
}
- visitInvalidType(InvalidType node) {
+ @override
+ void visitInvalidType(InvalidType node) {
writeByte(Tag.InvalidType);
}
- visitDynamicType(DynamicType node) {
+ @override
+ void visitDynamicType(DynamicType node) {
writeByte(Tag.DynamicType);
}
- visitVoidType(VoidType node) {
+ @override
+ void visitVoidType(VoidType node) {
writeByte(Tag.VoidType);
}
- visitInterfaceType(InterfaceType node) {
+ @override
+ void visitInterfaceType(InterfaceType node) {
if (node.typeArguments.isEmpty) {
writeByte(Tag.SimpleInterfaceType);
writeReference(node.className);
@@ -1557,7 +1646,8 @@
}
}
- visitSupertype(Supertype node) {
+ @override
+ void visitSupertype(Supertype node) {
if (node.typeArguments.isEmpty) {
writeByte(Tag.SimpleInterfaceType);
writeReference(node.className);
@@ -1568,7 +1658,8 @@
}
}
- visitFunctionType(FunctionType node) {
+ @override
+ void visitFunctionType(FunctionType node) {
if (node.requiredParameterCount == node.positionalParameters.length &&
node.typeParameters.isEmpty &&
node.namedParameters.isEmpty &&
@@ -1593,40 +1684,248 @@
}
}
- visitNamedType(NamedType node) {
+ @override
+ void visitNamedType(NamedType node) {
writeStringReference(node.name);
writeNode(node.type);
}
- visitTypeParameterType(TypeParameterType node) {
+ @override
+ void visitTypeParameterType(TypeParameterType node) {
writeByte(Tag.TypeParameterType);
writeUInt30(_typeParameterIndexer[node.parameter]);
writeOptionalNode(node.promotedBound);
}
- visitVectorType(VectorType node) {
+ @override
+ void visitVectorType(VectorType node) {
writeByte(Tag.VectorType);
}
- visitTypedefType(TypedefType node) {
+ @override
+ void visitTypedefType(TypedefType node) {
writeByte(Tag.TypedefType);
writeReference(node.typedefReference);
writeNodeList(node.typeArguments);
}
- visitTypeParameter(TypeParameter node) {
+ @override
+ void visitTypeParameter(TypeParameter node) {
writeByte(node.flags);
writeAnnotationList(node.annotations);
writeStringReference(node.name ?? '');
writeNode(node.bound);
}
- defaultConstant(Constant node) {
- throw 'Implement handling of ${node.runtimeType}';
+ // ================================================================
+ // These are nodes that are never serialized directly. Reaching one
+ // during serialization is an error.
+ @override
+ void defaultNode(Node node) {
+ throw new UnsupportedError('serialization of generic Nodes');
}
- defaultNode(Node node) {
- throw 'Unsupported node: $node';
+ @override
+ void defaultConstant(Constant node) {
+ throw new UnsupportedError('serialization of generic Constants');
+ }
+
+ @override
+ void defaultBasicLiteral(BasicLiteral node) {
+ throw new UnsupportedError('serialization of generic BasicLiterals');
+ }
+
+ @override
+ void defaultConstantReference(Constant node) {
+ throw new UnsupportedError('serialization of generic Constant references');
+ }
+
+ @override
+ void defaultDartType(DartType node) {
+ throw new UnsupportedError('serialization of generic DartTypes');
+ }
+
+ @override
+ void defaultExpression(Expression node) {
+ throw new UnsupportedError('serialization of generic Expressions');
+ }
+
+ @override
+ void defaultInitializer(Initializer node) {
+ throw new UnsupportedError('serialization of generic Initializers');
+ }
+
+ @override
+ void defaultMember(Member node) {
+ throw new UnsupportedError('serialization of generic Members');
+ }
+
+ @override
+ void defaultMemberReference(Member node) {
+ throw new UnsupportedError('serialization of generic Member references');
+ }
+
+ @override
+ void defaultStatement(Statement node) {
+ throw new UnsupportedError('serialization of generic Statements');
+ }
+
+ @override
+ void defaultTreeNode(TreeNode node) {
+ throw new UnsupportedError('serialization of generic TreeNodes');
+ }
+
+ @override
+ void visitBoolConstant(BoolConstant node) {
+ throw new UnsupportedError('serialization of BoolConstants');
+ }
+
+ @override
+ void visitBoolConstantReference(BoolConstant node) {
+ throw new UnsupportedError('serialization of BoolConstant references');
+ }
+
+ @override
+ void visitClassReference(Class node) {
+ throw new UnsupportedError('serialization of Class references');
+ }
+
+ @override
+ void visitConstructorReference(Constructor node) {
+ throw new UnsupportedError('serialization of Constructor references');
+ }
+
+ @override
+ void visitDoubleConstant(DoubleConstant node) {
+ throw new UnsupportedError('serialization of DoubleConstants');
+ }
+
+ @override
+ void visitDoubleConstantReference(DoubleConstant node) {
+ throw new UnsupportedError('serialization of DoubleConstant references');
+ }
+
+ @override
+ void visitFieldReference(Field node) {
+ throw new UnsupportedError('serialization of Field references');
+ }
+
+ @override
+ void visitInstanceConstant(InstanceConstant node) {
+ throw new UnsupportedError('serialization of InstanceConstants');
+ }
+
+ @override
+ void visitInstanceConstantReference(InstanceConstant node) {
+ throw new UnsupportedError('serialization of InstanceConstant references');
+ }
+
+ @override
+ void visitIntConstant(IntConstant node) {
+ throw new UnsupportedError('serialization of IntConstants');
+ }
+
+ @override
+ void visitIntConstantReference(IntConstant node) {
+ throw new UnsupportedError('serialization of IntConstant references');
+ }
+
+ @override
+ void visitLibraryDependency(LibraryDependency node) {
+ throw new UnsupportedError('serialization of LibraryDependencys');
+ }
+
+ @override
+ void visitLibraryPart(LibraryPart node) {
+ throw new UnsupportedError('serialization of LibraryParts');
+ }
+
+ @override
+ void visitListConstant(ListConstant node) {
+ throw new UnsupportedError('serialization of ListConstants');
+ }
+
+ @override
+ void visitListConstantReference(ListConstant node) {
+ throw new UnsupportedError('serialization of ListConstant references');
+ }
+
+ @override
+ void visitMapConstant(MapConstant node) {
+ throw new UnsupportedError('serialization of MapConstants');
+ }
+
+ @override
+ void visitMapConstantReference(MapConstant node) {
+ throw new UnsupportedError('serialization of MapConstant references');
+ }
+
+ @override
+ void visitName(Name node) {
+ throw new UnsupportedError('serialization of Names');
+ }
+
+ @override
+ void visitNullConstant(NullConstant node) {
+ throw new UnsupportedError('serialization of NullConstants');
+ }
+
+ @override
+ void visitNullConstantReference(NullConstant node) {
+ throw new UnsupportedError('serialization of NullConstant references');
+ }
+
+ @override
+ void visitProcedureReference(Procedure node) {
+ throw new UnsupportedError('serialization of Procedure references');
+ }
+
+ @override
+ void visitComponent(Component node) {
+ throw new UnsupportedError('serialization of Components');
+ }
+
+ @override
+ void visitRedirectingFactoryConstructorReference(
+ RedirectingFactoryConstructor node) {
+ throw new UnsupportedError(
+ 'serialization of RedirectingFactoryConstructor references');
+ }
+
+ @override
+ void visitStringConstant(StringConstant node) {
+ throw new UnsupportedError('serialization of StringConstants');
+ }
+
+ @override
+ void visitStringConstantReference(StringConstant node) {
+ throw new UnsupportedError('serialization of StringConstant references');
+ }
+
+ @override
+ void visitTearOffConstant(TearOffConstant node) {
+ throw new UnsupportedError('serialization of TearOffConstants ');
+ }
+
+ @override
+ void visitTearOffConstantReference(TearOffConstant node) {
+ throw new UnsupportedError('serialization of TearOffConstant references');
+ }
+
+ @override
+ void visitTypeLiteralConstant(TypeLiteralConstant node) {
+ throw new UnsupportedError('serialization of TypeLiteralConstants');
+ }
+
+ @override
+ void visitTypeLiteralConstantReference(TypeLiteralConstant node) {
+ throw new UnsupportedError(
+ 'serialization of TypeLiteralConstant references');
+ }
+
+ @override
+ void visitTypedefReference(Typedef node) {
+ throw new UnsupportedError('serialization of Typedef references');
}
}
diff --git a/pkg/vm/lib/transformations/type_flow/analysis.dart b/pkg/vm/lib/transformations/type_flow/analysis.dart
index 0b6bd2e..13e0739 100644
--- a/pkg/vm/lib/transformations/type_flow/analysis.dart
+++ b/pkg/vm/lib/transformations/type_flow/analysis.dart
@@ -166,11 +166,19 @@
case CallKind.FieldInitializer:
assertx(args.values.isEmpty);
assertx(args.names.isEmpty);
- fieldValue.setValue(
- typeFlowAnalysis
- .getSummary(field)
- .apply(args, typeFlowAnalysis.hierarchyCache, typeFlowAnalysis),
- typeFlowAnalysis);
+ Type initializerResult = typeFlowAnalysis
+ .getSummary(field)
+ .apply(args, typeFlowAnalysis.hierarchyCache, typeFlowAnalysis);
+ if (field.isStatic &&
+ !field.isConst &&
+ initializerResult is! NullableType) {
+ // If initializer of a static field throws an exception,
+ // then field is initialized with null value.
+ // TODO(alexmarkov): Try to prove that static field initializer
+ // does not throw exception.
+ initializerResult = new Type.nullable(initializerResult);
+ }
+ fieldValue.setValue(initializerResult, typeFlowAnalysis);
return const EmptyType();
}
diff --git a/pkg/vm/testcases/transformations/type_flow/transformer/bench_vector.dart.expect b/pkg/vm/testcases/transformations/type_flow/transformer/bench_vector.dart.expect
index b23ebd2..87c7282 100644
--- a/pkg/vm/testcases/transformations/type_flow/transformer/bench_vector.dart.expect
+++ b/pkg/vm/testcases/transformations/type_flow/transformer/bench_vector.dart.expect
@@ -18,19 +18,19 @@
operator []=([@vm.inferred-type.metadata=!] core::int i, core::double value) → void {
[@vm.unreachable.metadata=] [@vm.direct-call.metadata=#lib::_Vector::_elements] [@vm.inferred-type.metadata=dart.typed_data::_Float64List] this.{self::_Vector::_elements}.{core::List::[]=}([@vm.unreachable.metadata=] i.{core::num::+}([@vm.direct-call.metadata=#lib::_Vector::_offset] [@vm.inferred-type.metadata=!] this.{self::_Vector::_offset}), value);
}
- operator *([@vm.inferred-type.metadata=#lib::_Vector] self::_Vector a) → core::double {
+ operator *([@vm.inferred-type.metadata=#lib::_Vector?] self::_Vector a) → core::double {
core::double result = 0.0;
for (core::int i = 0; i.{core::num::<}([@vm.direct-call.metadata=#lib::_Vector::_length] [@vm.inferred-type.metadata=!] this.{self::_Vector::_length}); i = i.{core::num::+}(1))
- result = [@vm.direct-call.metadata=dart.core::_Double::+??] [@vm.inferred-type.metadata=dart.core::_Double] result.{core::double::+}([@vm.direct-call.metadata=dart.core::_Double::*] [@vm.inferred-type.metadata=dart.core::_Double] [@vm.direct-call.metadata=#lib::_Vector::[]] [@vm.inferred-type.metadata=dart.core::_Double] this.{self::_Vector::[]}(i).{core::double::*}([@vm.direct-call.metadata=#lib::_Vector::[]] [@vm.inferred-type.metadata=dart.core::_Double] a.{self::_Vector::[]}(i)));
+ result = [@vm.direct-call.metadata=dart.core::_Double::+??] [@vm.inferred-type.metadata=dart.core::_Double] result.{core::double::+}([@vm.direct-call.metadata=dart.core::_Double::*] [@vm.inferred-type.metadata=dart.core::_Double] [@vm.direct-call.metadata=#lib::_Vector::[]] [@vm.inferred-type.metadata=dart.core::_Double] this.{self::_Vector::[]}(i).{core::double::*}([@vm.direct-call.metadata=#lib::_Vector::[]??] [@vm.inferred-type.metadata=dart.core::_Double] a.{self::_Vector::[]}(i)));
return result;
}
}
-[@vm.inferred-type.metadata=#lib::_Vector]static field self::_Vector v = new self::_Vector::•(10);
-[@vm.inferred-type.metadata=dart.core::_Double]static field core::double x = 0.0;
+[@vm.inferred-type.metadata=#lib::_Vector?]static field self::_Vector v = new self::_Vector::•(10);
+[@vm.inferred-type.metadata=dart.core::_Double?]static field core::double x = 0.0;
static method main(core::List<core::String> args) → dynamic {
core::Stopwatch timer = let final core::Stopwatch #t1 = new core::Stopwatch::•() in let final dynamic #t2 = [@vm.direct-call.metadata=dart.core::Stopwatch::start] #t1.{core::Stopwatch::start}() in #t1;
for (core::int i = 0; i.{core::num::<}(100000000); i = i.{core::num::+}(1)) {
- self::x = [@vm.direct-call.metadata=dart.core::_Double::+] [@vm.inferred-type.metadata=dart.core::_Double] [@vm.inferred-type.metadata=dart.core::_Double] self::x.{core::double::+}([@vm.direct-call.metadata=#lib::_Vector::*] [@vm.inferred-type.metadata=dart.core::_Double] [@vm.inferred-type.metadata=#lib::_Vector] self::v.{self::_Vector::*}([@vm.inferred-type.metadata=#lib::_Vector] self::v));
+ self::x = [@vm.direct-call.metadata=dart.core::_Double::+??] [@vm.inferred-type.metadata=dart.core::_Double] [@vm.inferred-type.metadata=dart.core::_Double?] self::x.{core::double::+}([@vm.direct-call.metadata=#lib::_Vector::*??] [@vm.inferred-type.metadata=dart.core::_Double] [@vm.inferred-type.metadata=#lib::_Vector?] self::v.{self::_Vector::*}([@vm.inferred-type.metadata=#lib::_Vector?] self::v));
}
[@vm.direct-call.metadata=dart.core::Stopwatch::stop] timer.{core::Stopwatch::stop}();
core::print("Elapsed ${[@vm.direct-call.metadata=dart.core::Stopwatch::elapsedMilliseconds] timer.{core::Stopwatch::elapsedMilliseconds}}ms, result ${self::x}");
diff --git a/pkg/vm/testcases/transformations/type_flow/transformer/devirt.dart.expect b/pkg/vm/testcases/transformations/type_flow/transformer/devirt.dart.expect
index 8843409..21c932f 100644
--- a/pkg/vm/testcases/transformations/type_flow/transformer/devirt.dart.expect
+++ b/pkg/vm/testcases/transformations/type_flow/transformer/devirt.dart.expect
@@ -35,7 +35,7 @@
return "D";
}
[@vm.inferred-type.metadata=#lib::D?]static field self::A dd;
-[@vm.inferred-type.metadata=#lib::E]static field self::E ee = new self::E::•();
+[@vm.inferred-type.metadata=#lib::E?]static field self::E ee = new self::E::•();
static method callerA1([@vm.inferred-type.metadata=!] self::A aa) → void {
aa.{self::A::foo}();
}
@@ -51,7 +51,7 @@
static method callerE1([@vm.inferred-type.metadata=!] dynamic x) → void {
x.toString();
}
-static method callerE2([@vm.inferred-type.metadata=#lib::E] dynamic x) → void {
+static method callerE2([@vm.inferred-type.metadata=#lib::E?] dynamic x) → void {
x.toString();
}
static method main(core::List<core::String> args) → dynamic {
@@ -62,5 +62,5 @@
self::callerA4([@vm.inferred-type.metadata=#lib::D?] self::dd);
self::dd = new self::D::•();
self::callerE1("abc");
- self::callerE2([@vm.inferred-type.metadata=#lib::E] self::ee);
+ self::callerE2([@vm.inferred-type.metadata=#lib::E?] self::ee);
}
diff --git a/pkg/vm/testcases/transformations/type_flow/transformer/invalidation_field_initializer.dart.expect b/pkg/vm/testcases/transformations/type_flow/transformer/invalidation_field_initializer.dart.expect
index da1a6e6..9fa579c 100644
--- a/pkg/vm/testcases/transformations/type_flow/transformer/invalidation_field_initializer.dart.expect
+++ b/pkg/vm/testcases/transformations/type_flow/transformer/invalidation_field_initializer.dart.expect
@@ -37,13 +37,13 @@
: super core::Object::•()
;
method barL1() → dynamic
- return [@vm.direct-call.metadata=#lib::DeepCaller1::barL2] [@vm.inferred-type.metadata=!] this.{self::DeepCaller1::barL2}();
+ return [@vm.direct-call.metadata=#lib::DeepCaller1::barL2] this.{self::DeepCaller1::barL2}();
method barL2() → dynamic
- return [@vm.direct-call.metadata=#lib::DeepCaller1::barL3] [@vm.inferred-type.metadata=!] this.{self::DeepCaller1::barL3}();
+ return [@vm.direct-call.metadata=#lib::DeepCaller1::barL3] this.{self::DeepCaller1::barL3}();
method barL3() → dynamic
- return [@vm.direct-call.metadata=#lib::DeepCaller1::barL4] [@vm.inferred-type.metadata=!] this.{self::DeepCaller1::barL4}();
+ return [@vm.direct-call.metadata=#lib::DeepCaller1::barL4] this.{self::DeepCaller1::barL4}();
method barL4() → dynamic
- return [@vm.inferred-type.metadata=!] self::field1;
+ return self::field1;
}
class D extends core::Object {
[@vm.inferred-type.metadata=!] field core::Object field2 = [@vm.inferred-type.metadata=!] self::getValue();
@@ -65,7 +65,7 @@
return [@vm.direct-call.metadata=#lib::D::field2] [@vm.inferred-type.metadata=!] dd.{self::D::field2};
}
[@vm.inferred-type.metadata=dart.core::Null?]static field core::Function unknown;
-[@vm.inferred-type.metadata=!]static field core::Object field1 = [@vm.inferred-type.metadata=!] self::getValue();
+static field core::Object field1 = [@vm.inferred-type.metadata=!] self::getValue();
static method getDynamic() → dynamic
return self::unknown.call();
static method getValue() → core::Object {
@@ -73,7 +73,7 @@
return [@vm.inferred-type.metadata=!] aa.{self::A::foo}();
}
static method use1([@vm.inferred-type.metadata=#lib::DeepCaller1] self::DeepCaller1 x) → dynamic
- return [@vm.direct-call.metadata=#lib::DeepCaller1::barL1] [@vm.inferred-type.metadata=!] x.{self::DeepCaller1::barL1}();
+ return [@vm.direct-call.metadata=#lib::DeepCaller1::barL1] x.{self::DeepCaller1::barL1}();
static method use2([@vm.inferred-type.metadata=#lib::DeepCaller2] self::DeepCaller2 x) → dynamic
return [@vm.direct-call.metadata=#lib::DeepCaller2::barL1] [@vm.inferred-type.metadata=!] x.{self::DeepCaller2::barL1}(new self::D::•());
static method createC() → dynamic {
diff --git a/pkg/vm/testcases/transformations/type_flow/transformer/no_such_method.dart.expect b/pkg/vm/testcases/transformations/type_flow/transformer/no_such_method.dart.expect
index 61fb50e..f15ef86 100644
--- a/pkg/vm/testcases/transformations/type_flow/transformer/no_such_method.dart.expect
+++ b/pkg/vm/testcases/transformations/type_flow/transformer/no_such_method.dart.expect
@@ -104,18 +104,18 @@
return new self::T7::•();
}
}
-[@vm.inferred-type.metadata=#lib::B]static field self::A bb = new self::B::•();
-[@vm.inferred-type.metadata=#lib::D]static field self::A dd = new self::D::•();
+[@vm.inferred-type.metadata=#lib::B?]static field self::A bb = new self::B::•();
+[@vm.inferred-type.metadata=#lib::D?]static field self::A dd = new self::D::•();
[@vm.inferred-type.metadata=dart.core::Null?]static field core::Function unknown;
static method getDynamic() → dynamic
return self::unknown.call();
static method main(core::List<core::String> args) → dynamic {
- core::print([@vm.inferred-type.metadata=#lib::T1] [@vm.inferred-type.metadata=#lib::B] self::bb.{self::A::foo}());
- core::print([@vm.inferred-type.metadata=#lib::T1] [@vm.inferred-type.metadata=#lib::B] self::bb.{self::A::bar});
- core::print([@vm.inferred-type.metadata=#lib::T1] [@vm.inferred-type.metadata=#lib::B] self::bb.{self::A::bazz}(1, 2, 3, 4));
- core::print([@vm.inferred-type.metadata=#lib::T2] [@vm.inferred-type.metadata=#lib::D] self::dd.{self::A::foo}());
- core::print([@vm.inferred-type.metadata=#lib::T2] [@vm.inferred-type.metadata=#lib::D] self::dd.{self::A::bar});
- core::print([@vm.inferred-type.metadata=#lib::T2] [@vm.inferred-type.metadata=#lib::D] self::dd.{self::A::bazz}(1, 2, 3, 4));
+ core::print([@vm.inferred-type.metadata=#lib::T1] [@vm.inferred-type.metadata=#lib::B?] self::bb.{self::A::foo}());
+ core::print([@vm.inferred-type.metadata=#lib::T1] [@vm.inferred-type.metadata=#lib::B?] self::bb.{self::A::bar});
+ core::print([@vm.inferred-type.metadata=#lib::T1] [@vm.inferred-type.metadata=#lib::B?] self::bb.{self::A::bazz}(1, 2, 3, 4));
+ core::print([@vm.inferred-type.metadata=#lib::T2] [@vm.inferred-type.metadata=#lib::D?] self::dd.{self::A::foo}());
+ core::print([@vm.inferred-type.metadata=#lib::T2] [@vm.inferred-type.metadata=#lib::D?] self::dd.{self::A::bar});
+ core::print([@vm.inferred-type.metadata=#lib::T2] [@vm.inferred-type.metadata=#lib::D?] self::dd.{self::A::bazz}(1, 2, 3, 4));
new self::E::•();
self::A xx = self::getDynamic() as{TypeError} self::A;
core::print([@vm.inferred-type.metadata=!] xx.{self::A::bar});
diff --git a/pkg/vm/testcases/transformations/type_flow/transformer/tear_off_super_method.dart.expect b/pkg/vm/testcases/transformations/type_flow/transformer/tear_off_super_method.dart.expect
index deb3fa6..24ea90c 100644
--- a/pkg/vm/testcases/transformations/type_flow/transformer/tear_off_super_method.dart.expect
+++ b/pkg/vm/testcases/transformations/type_flow/transformer/tear_off_super_method.dart.expect
@@ -40,10 +40,10 @@
method bar() → core::int
return [@vm.direct-call.metadata=#lib::Base::doCall] this.{self::Base::doCall}(super.{self::Base::foo});
}
-[@vm.inferred-type.metadata=#lib::B]static field self::A aa = new self::B::•();
+[@vm.inferred-type.metadata=#lib::B?]static field self::A aa = new self::B::•();
static method knownResult() → dynamic
return new self::B::•();
static method main(core::List<core::String> args) → dynamic {
[@vm.direct-call.metadata=#lib::TearOffSuperMethod::bar] new self::TearOffSuperMethod::•().{self::TearOffSuperMethod::bar}();
- [@vm.direct-call.metadata=#lib::B::foo] [@vm.inferred-type.metadata=#lib::B] self::aa.{self::A::foo}();
+ [@vm.direct-call.metadata=#lib::B::foo??] [@vm.inferred-type.metadata=#lib::B?] self::aa.{self::A::foo}();
}
diff --git a/pkg/vm/testcases/transformations/type_flow/transformer/unfinished_static_field_init.dart b/pkg/vm/testcases/transformations/type_flow/transformer/unfinished_static_field_init.dart
new file mode 100644
index 0000000..e2c4d9a
--- /dev/null
+++ b/pkg/vm/testcases/transformations/type_flow/transformer/unfinished_static_field_init.dart
@@ -0,0 +1,16 @@
+// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
+// for 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 A {}
+
+dynamic good() => new A();
+dynamic bad() => throw 'No return!';
+
+var static_field_good = good();
+var static_field_bad = bad();
+
+main(List<String> args) {
+ print(static_field_good);
+ print(static_field_bad); // Should infer null.
+}
diff --git a/pkg/vm/testcases/transformations/type_flow/transformer/unfinished_static_field_init.dart.expect b/pkg/vm/testcases/transformations/type_flow/transformer/unfinished_static_field_init.dart.expect
new file mode 100644
index 0000000..e5f135c
--- /dev/null
+++ b/pkg/vm/testcases/transformations/type_flow/transformer/unfinished_static_field_init.dart.expect
@@ -0,0 +1,19 @@
+library #lib;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → void
+ : super core::Object::•()
+ ;
+}
+[@vm.inferred-type.metadata=#lib::A?]static field dynamic static_field_good = [@vm.inferred-type.metadata=#lib::A] self::good();
+[@vm.inferred-type.metadata=dart.core::Null?]static field dynamic static_field_bad = [@vm.inferred-type.metadata=!] self::bad();
+static method good() → dynamic
+ return new self::A::•();
+static method bad() → dynamic
+ return throw "No return!";
+static method main(core::List<core::String> args) → dynamic {
+ core::print([@vm.inferred-type.metadata=#lib::A?] self::static_field_good);
+ core::print([@vm.inferred-type.metadata=dart.core::Null?] self::static_field_bad);
+}
diff --git a/pkg/vm/testcases/transformations/type_flow/transformer/unreachable.dart.expect b/pkg/vm/testcases/transformations/type_flow/transformer/unreachable.dart.expect
index 2170390..8ff3030 100644
--- a/pkg/vm/testcases/transformations/type_flow/transformer/unreachable.dart.expect
+++ b/pkg/vm/testcases/transformations/type_flow/transformer/unreachable.dart.expect
@@ -22,12 +22,12 @@
[@vm.unreachable.metadata=] method foo(dynamic x) → void
throw "TFA Error: #lib::B::foo";
}
-[@vm.inferred-type.metadata=#lib::B]static field self::I ii = new self::B::•();
-static method bar([@vm.inferred-type.metadata=#lib::B] self::I i) → void {
+[@vm.inferred-type.metadata=#lib::B?]static field self::I ii = new self::B::•();
+static method bar([@vm.inferred-type.metadata=#lib::B?] self::I i) → void {
if(i is self::A) {
[@vm.unreachable.metadata=] i{self::A}.{self::A::foo}(42);
}
}
static method main(core::List<core::String> args) → dynamic {
- self::bar([@vm.inferred-type.metadata=#lib::B] self::ii);
+ self::bar([@vm.inferred-type.metadata=#lib::B?] self::ii);
}
diff --git a/runtime/bin/dartutils.cc b/runtime/bin/dartutils.cc
index c4c7d3d..e23ba23 100644
--- a/runtime/bin/dartutils.cc
+++ b/runtime/bin/dartutils.cc
@@ -413,19 +413,6 @@
return kUnknownMagicNumber;
}
-void DartUtils::WriteSnapshotMagicNumber(File* file) {
- // Write a magic number and version information into the snapshot file.
- bool bytes_written = file->WriteFully(snapshot_magic_number.bytes,
- snapshot_magic_number.length);
- ASSERT(bytes_written);
-}
-
-void DartUtils::SkipSnapshotMagicNumber(const uint8_t** buffer,
- intptr_t* buffer_length) {
- *buffer += snapshot_magic_number.length;
- *buffer_length -= snapshot_magic_number.length;
-}
-
Dart_Handle DartUtils::PrepareBuiltinLibrary(Dart_Handle builtin_lib,
Dart_Handle internal_lib,
bool is_service_isolate,
diff --git a/runtime/bin/dartutils.h b/runtime/bin/dartutils.h
index 5002f31..5c14911 100644
--- a/runtime/bin/dartutils.h
+++ b/runtime/bin/dartutils.h
@@ -217,10 +217,6 @@
static MagicNumber SniffForMagicNumber(const uint8_t* text_buffer,
intptr_t buffer_len);
- // Write a magic number to indicate a script snapshot file.
- static void WriteSnapshotMagicNumber(File* file);
- static void SkipSnapshotMagicNumber(const uint8_t** buffer, intptr_t* length);
-
// Global state that stores the original working directory..
static const char* original_working_directory;
diff --git a/runtime/bin/dfe.cc b/runtime/bin/dfe.cc
index d80f237..d6bad2b 100644
--- a/runtime/bin/dfe.cc
+++ b/runtime/bin/dfe.cc
@@ -110,10 +110,12 @@
// platform_dill is not NULL implies that platform_strong_dill is also
// not NULL.
if (platform_program_ == NULL) {
+ ASSERT(Dart_IsKernel(platform_dill, platform_dill_size));
platform_program_ =
Dart_ReadKernelBinary(platform_dill, platform_dill_size, NoopRelease);
}
if (platform_strong_program_ == NULL) {
+ ASSERT(Dart_IsKernel(platform_strong_dill, platform_strong_dill_size));
platform_strong_program_ = Dart_ReadKernelBinary(
platform_strong_dill, platform_strong_dill_size, NoopRelease);
}
@@ -175,34 +177,6 @@
free(buffer);
}
-Dart_Handle DFE::ReadKernelBinary(Dart_Isolate isolate,
- const char* url_string) {
- ASSERT(!Dart_IsServiceIsolate(isolate) && !Dart_IsKernelIsolate(isolate));
- // First check if the URL points to a Kernel IR file in which case we
- // skip the compilation step and directly reload the file.
- const uint8_t* kernel_ir = NULL;
- intptr_t kernel_ir_size = -1;
- if (!TryReadKernelFile(url_string, &kernel_ir, &kernel_ir_size)) {
- // We have a source file, compile it into a kernel ir first.
- // TODO(asiva): We will have to change this API to pass in a list of files
- // that have changed. For now just pass in the main url_string and have it
- // recompile the script.
- // TODO(aam): When Frontend is ready, VM should be passing vm_outline.dill
- // instead of vm_platform.dill to Frontend for compilation.
- Dart_KernelCompilationResult kresult =
- Dart_CompileToKernel(url_string, platform_dill, platform_dill_size);
- if (kresult.status != Dart_KernelCompilationStatus_Ok) {
- return Dart_NewApiError(kresult.error);
- }
- kernel_ir = kresult.kernel;
- kernel_ir_size = kresult.kernel_size;
- }
- void* kernel_program =
- Dart_ReadKernelBinary(kernel_ir, kernel_ir_size, ReleaseFetchedBytes);
- ASSERT(kernel_program != NULL);
- return Dart_NewExternalTypedData(Dart_TypedData_kUint64, kernel_program, 1);
-}
-
class WindowsPathSanitizer {
public:
explicit WindowsPathSanitizer(const char* path) {
diff --git a/runtime/bin/dfe.h b/runtime/bin/dfe.h
index 9d5e471..558de85 100644
--- a/runtime/bin/dfe.h
+++ b/runtime/bin/dfe.h
@@ -45,12 +45,6 @@
}
void* application_kernel_binary() const { return application_kernel_binary_; }
- // Method to read a kernel file into a kernel program blob.
- // If the specified script [url] is not a kernel IR, compile it first using
- // DFE and then read the resulting kernel file into a kernel program blob.
- // Returns Dart_Null if successful, otherwise an error object is returned.
- Dart_Handle ReadKernelBinary(Dart_Isolate isolate, const char* url_string);
-
// Compiles a script and reads the resulting kernel file.
// If the compilation is successful, returns a valid in memory kernel
// representation of the script, NULL otherwise
diff --git a/runtime/bin/error_exit.cc b/runtime/bin/error_exit.cc
index a93a972..617da04 100644
--- a/runtime/bin/error_exit.cc
+++ b/runtime/bin/error_exit.cc
@@ -21,7 +21,6 @@
Log::VPrintErr(format, arguments);
va_end(arguments);
- Dart_ExitScope();
Dart_ShutdownIsolate();
// Terminate process exit-code handler.
diff --git a/runtime/bin/loader.cc b/runtime/bin/loader.cc
index 9c05e0d..70c34e3 100644
--- a/runtime/bin/loader.cc
+++ b/runtime/bin/loader.cc
@@ -450,7 +450,6 @@
} break;
case Dart_kScriptTag:
if (payload_type == DartUtils::kSnapshotMagicNumber) {
- DartUtils::SkipSnapshotMagicNumber(&payload, &payload_length);
dart_result = Dart_LoadScriptFromSnapshot(payload, payload_length);
reload_extensions = true;
} else if (payload_type == DartUtils::kKernelMagicNumber) {
diff --git a/runtime/bin/run_vm_tests.cc b/runtime/bin/run_vm_tests.cc
index 42e4f63..31ecf76 100644
--- a/runtime/bin/run_vm_tests.cc
+++ b/runtime/bin/run_vm_tests.cc
@@ -179,7 +179,6 @@
bin::DartUtils::ReadFile(&payload, &payload_length, file);
bin::DartUtils::CloseFile(file);
- bin::DartUtils::SkipSnapshotMagicNumber(&payload, &payload_length);
Dart_Handle result = Dart_LoadScriptFromSnapshot(payload, payload_length);
CHECK_RESULT(result);
}
diff --git a/runtime/bin/snapshot_utils.cc b/runtime/bin/snapshot_utils.cc
index 7c827cd..999cbe0 100644
--- a/runtime/bin/snapshot_utils.cc
+++ b/runtime/bin/snapshot_utils.cc
@@ -246,7 +246,6 @@
}
static void WriteSnapshotFile(const char* filename,
- bool write_magic_number,
const uint8_t* buffer,
const intptr_t size) {
File* file = File::Open(NULL, filename, File::kWriteTruncate);
@@ -255,11 +254,6 @@
filename);
}
- if (write_magic_number) {
- // Write the magic number to indicate file is a script snapshot.
- DartUtils::WriteSnapshotMagicNumber(file);
- }
-
if (!file->WriteFully(buffer, size)) {
ErrorExit(kErrorExitCode, "Unable to write file %s for writing snapshot\n",
filename);
@@ -332,7 +326,7 @@
ErrorExit(kErrorExitCode, "%s\n", Dart_GetError(result));
}
- WriteSnapshotFile(snapshot_filename, true, buffer, size);
+ WriteSnapshotFile(snapshot_filename, buffer, size);
}
void Snapshot::GenerateAppJIT(const char* snapshot_filename) {
diff --git a/runtime/include/dart_api.h b/runtime/include/dart_api.h
index ae0dcbd..b4d3d75 100644
--- a/runtime/include/dart_api.h
+++ b/runtime/include/dart_api.h
@@ -862,9 +862,6 @@
*
* Requires there to be no current isolate.
*
- * After this call, the `kernel_program` needs to be supplied to a call to
- * `Dart_LoadKernel()` which will then take ownership of the memory.
- *
* \param script_uri The main source file or snapshot this isolate will load.
* The VM will provide this URI to the Dart_IsolateCreateCallback when a child
* isolate is created by Isolate.spawn. The embedder should use a URI that
@@ -890,9 +887,9 @@
void* callback_data,
char** error);
/**
- * Shuts down the current isolate. After this call, the current isolate
- * is NULL. Invokes the shutdown callback and any callbacks of remaining
- * weak persistent handles.
+ * Shuts down the current isolate. After this call, the current isolate is NULL.
+ * Any current scopes created by Dart_EnterScope will be exited. Invokes the
+ * shutdown callback and any callbacks of remaining weak persistent handles.
*
* Requires there to be a current isolate.
*/
@@ -1030,6 +1027,27 @@
intptr_t* script_snapshot_size);
/**
+ * Returns whether the buffer contains a snapshot created by
+ * Dart_Create*Snapshot.
+ *
+ * \param buffer Pointer to a buffer that might contain a snapshot.
+ * \param buffer_size Size of the buffer.
+ *
+ * \return Whether the buffer contains a snapshot (core, app or script).
+ */
+DART_EXPORT bool Dart_IsSnapshot(const uint8_t* buffer, intptr_t buffer_size);
+
+/**
+ * Returns whether the buffer contains a kernel file.
+ *
+ * \param buffer Pointer to a buffer that might contain a kernel binary.
+ * \param buffer_size Size of the buffer.
+ *
+ * \return Whether the buffer contains a kernel binary (full or partial).
+ */
+DART_EXPORT bool Dart_IsKernel(const uint8_t* buffer, intptr_t buffer_size);
+
+/**
* Returns true if snapshot_buffer contains a Dart2 snapshot.
*
* \param snapshot_buffer Pointer to a buffer that contains the snapshot
@@ -2870,17 +2888,18 @@
intptr_t script_snapshot_size);
/**
- * Loads a dart application via an in-memory kernel program.
+ * Loads the root library for the current isolate.
*
- * \param kernel_program The kernel program obtained via
- * `Dart_ReadKernelBinary`.
+ * Requires there to be no current root library.
*
- * The VM will take ownership of the `kernel_program` object.
+ * \param buffer A buffer which contains a kernel binary (see
+ * pkg/kernel/binary.md).
+ * \param buffer_size Length of the passed in buffer.
*
- * \return If no error occurs, the Library object corresponding to the root
- * script is returned. Otherwise an error handle is returned.
+ * \return A handle to the root library, or an error.
*/
-DART_EXPORT Dart_Handle Dart_LoadKernel(void* kernel_program);
+DART_EXPORT Dart_Handle Dart_LoadScriptFromKernel(const uint8_t* kernel_buffer,
+ intptr_t kernel_size);
/**
* Constructs an in-memory kernel program form a binary.
@@ -3006,6 +3025,19 @@
intptr_t column_offset);
/**
+ * Called by the embedder to load a partial program. Does not set the root
+ * library.
+ *
+ * \param buffer A buffer which contains a kernel binary (see
+ * pkg/kernel/binary.md).
+ * \param buffer_size Length of the passed in buffer.
+ *
+ * \return A handle to the main library of the compilation unit, or an error.
+ */
+DART_EXPORT Dart_Handle Dart_LoadLibraryFromKernel(const uint8_t* kernel_buffer,
+ intptr_t kernel_buffer_size);
+
+/**
* Imports a library into another library, optionally with a prefix.
* If no prefix is required, an empty string or Dart_Null() can be
* supplied.
@@ -3062,7 +3094,6 @@
Dart_Handle source,
intptr_t line_offset,
intptr_t column_offset);
-/* TODO(turnidge): Rename to Dart_LibraryLoadSource? */
/**
* Loads a patch source string into a library.
diff --git a/runtime/lib/bigint_patch.dart b/runtime/lib/bigint_patch.dart
index 7094f29..08bcf47 100644
--- a/runtime/lib/bigint_patch.dart
+++ b/runtime/lib/bigint_patch.dart
@@ -412,7 +412,7 @@
((0x10 | (bits[6] & 0xF)) << 16) + (bits[5] << 8) + bits[4];
var unshiftedBig = new _BigIntImpl._normalized(false, 2, unshiftedDigits);
- _BigIntImpl absResult;
+ _BigIntImpl absResult = unshiftedBig;
if (exponent < 0) {
absResult = unshiftedBig >> -exponent;
} else if (exponent > 0) {
diff --git a/runtime/observatory/tests/service/get_vm_timeline_rpc_test.dart b/runtime/observatory/tests/service/get_vm_timeline_rpc_test.dart
index 58c4596..c9299b9 100644
--- a/runtime/observatory/tests/service/get_vm_timeline_rpc_test.dart
+++ b/runtime/observatory/tests/service/get_vm_timeline_rpc_test.dart
@@ -75,6 +75,10 @@
// Skip meta-data events.
continue;
}
+ if (event['ph'] == 'C') {
+ // Skip counter events, where an isolate id makes Catapult hard to read.
+ continue;
+ }
if (event['name'] == 'Runnable' && event['ph'] == 'i') {
// Skip Runnable events which don't have an isolate.
continue;
diff --git a/runtime/platform/utils.h b/runtime/platform/utils.h
index 3b05c02..bd8e1ab 100644
--- a/runtime/platform/utils.h
+++ b/runtime/platform/utils.h
@@ -290,6 +290,17 @@
return bit_cast<int64_t, double>(a) == bit_cast<int64_t, double>(b);
}
+ // A double-to-integer conversion that avoids undefined behavior.
+ // Out of range values and NaNs are converted to minimum value
+ // for type T.
+ template <typename T>
+ static T SafeDoubleToInt(double v) {
+ const double min = static_cast<double>(std::numeric_limits<T>::min());
+ const double max = static_cast<double>(std::numeric_limits<T>::max());
+ return (min <= v && v <= max) ? static_cast<T>(v)
+ : std::numeric_limits<T>::min();
+ }
+
// dart2js represents integers as double precision floats, which can
// represent anything in the range -2^53 ... 2^53.
static bool IsJavascriptInt(int64_t value) {
diff --git a/runtime/vm/class_finalizer.cc b/runtime/vm/class_finalizer.cc
index e8dde2e..8ba409b 100644
--- a/runtime/vm/class_finalizer.cc
+++ b/runtime/vm/class_finalizer.cc
@@ -2751,7 +2751,7 @@
sentinel.SetStaticValue(enum_value, true);
sentinel.RecordStore(enum_value);
- if (thread->isolate()->use_dart_frontend()) {
+ if (enum_cls.kernel_offset() > 0) {
Object& result = Object::Handle(zone);
for (intptr_t i = 0; i < fields.Length(); i++) {
field = Field::RawCast(fields.At(i));
diff --git a/runtime/vm/clustered_snapshot.h b/runtime/vm/clustered_snapshot.h
index 63725d5..4900da6 100644
--- a/runtime/vm/clustered_snapshot.h
+++ b/runtime/vm/clustered_snapshot.h
@@ -190,9 +190,10 @@
}
void FillHeader(Snapshot::Kind kind) {
- int64_t* data = reinterpret_cast<int64_t*>(stream_.buffer());
- data[Snapshot::kLengthIndex] = stream_.bytes_written();
- data[Snapshot::kSnapshotFlagIndex] = kind;
+ Snapshot* header = reinterpret_cast<Snapshot*>(stream_.buffer());
+ header->set_magic();
+ header->set_length(stream_.bytes_written());
+ header->set_kind(kind);
}
void WriteVersionAndFeatures(bool is_vm_snapshot);
diff --git a/runtime/vm/compiler/backend/il.cc b/runtime/vm/compiler/backend/il.cc
index dcd56b5..c4425ed 100644
--- a/runtime/vm/compiler/backend/il.cc
+++ b/runtime/vm/compiler/backend/il.cc
@@ -1601,7 +1601,7 @@
const Object& constant = value->BoundConstant();
if (constant.IsDouble()) {
const Double& double_constant = Double::Cast(constant);
- *result = static_cast<int64_t>(double_constant.value());
+ *result = Utils::SafeDoubleToInt<int64_t>(double_constant.value());
return (static_cast<double>(*result) == double_constant.value());
} else if (constant.IsSmi()) {
*result = Smi::Cast(constant).Value();
diff --git a/runtime/vm/dart_api_impl.cc b/runtime/vm/dart_api_impl.cc
index 6fcc4e0..3429379 100644
--- a/runtime/vm/dart_api_impl.cc
+++ b/runtime/vm/dart_api_impl.cc
@@ -1192,6 +1192,16 @@
Isolate* I = T->isolate();
CHECK_ISOLATE(I);
I->WaitForOutstandingSpawns();
+
+ // Release any remaining API scopes.
+ ApiLocalScope* scope = T->api_top_scope();
+ while (scope != NULL) {
+ ApiLocalScope* previous = scope->previous();
+ delete scope;
+ scope = previous;
+ }
+ T->set_api_top_scope(NULL);
+
{
StackZone zone(T);
HandleScope handle_scope(T);
@@ -1522,6 +1532,21 @@
return Api::Success();
}
+DART_EXPORT bool Dart_IsSnapshot(const uint8_t* buffer, intptr_t buffer_size) {
+ if (buffer_size < Snapshot::kHeaderSize) {
+ return false;
+ }
+ return Snapshot::SetupFromBuffer(buffer) != NULL;
+}
+
+DART_EXPORT bool Dart_IsKernel(const uint8_t* buffer, intptr_t buffer_size) {
+ if (buffer_size < 4) {
+ return false;
+ }
+ return (buffer[0] == 0x90) && (buffer[1] == 0xab) && (buffer[2] == 0xcd) &&
+ (buffer[3] == 0xef);
+}
+
DART_EXPORT bool Dart_IsDart2Snapshot(const uint8_t* snapshot_buffer) {
if (snapshot_buffer == NULL) {
return false;
@@ -5144,6 +5169,7 @@
Dart_Handle result;
if (I->use_dart_frontend()) {
+ // TODO(kernel): Fix callers to use Dart_LoadScriptFromKernel.
if ((source == Api::Null()) || (source == NULL)) {
RETURN_NULL_ERROR(source);
}
@@ -5260,13 +5286,14 @@
return NULL;
#else
kernel::Program* program =
- ReadPrecompiledKernelFromBuffer(buffer, buffer_len);
+ kernel::Program::ReadFromBuffer(buffer, buffer_len);
program->set_release_buffer_callback(callback);
return program;
#endif
}
-DART_EXPORT Dart_Handle Dart_LoadKernel(void* kernel_program) {
+DART_EXPORT Dart_Handle Dart_LoadScriptFromKernel(const uint8_t* buffer,
+ intptr_t buffer_size) {
#if defined(DART_PRECOMPILED_RUNTIME)
return Api::NewError("%s: Cannot compile on an AOT runtime.", CURRENT_FUNC);
#else
@@ -5284,9 +5311,8 @@
CHECK_CALLBACK_STATE(T);
CHECK_COMPILATION_ALLOWED(I);
- // NOTE: Now the VM owns the [kernel_program] memory!
- // We will promptly delete it when done.
- kernel::Program* program = reinterpret_cast<kernel::Program*>(kernel_program);
+ kernel::Program* program = kernel::Program::ReadFromBuffer(
+ buffer, buffer_size, false /* take_buffer_ownership */);
const Object& tmp = kernel::KernelLoader::LoadEntireProgram(program);
delete program;
@@ -5509,6 +5535,7 @@
}
Dart_Handle result;
if (I->use_dart_frontend()) {
+ // TODO(kernel): Fix callers to use Dart_LoadLibraryFromKernel.
void* kernel_pgm = reinterpret_cast<void*>(source);
result = LoadKernelProgram(T, url_str, kernel_pgm);
if (::Dart_IsError(result)) {
@@ -5573,6 +5600,29 @@
#endif // defined(DART_PRECOMPILED_RUNTIME)
}
+DART_EXPORT Dart_Handle Dart_LoadLibraryFromKernel(const uint8_t* buffer,
+ intptr_t buffer_size) {
+#if defined(DART_PRECOMPILED_RUNTIME)
+ return Api::NewError("%s: Cannot compile on an AOT runtime.", CURRENT_FUNC);
+#else
+ DARTSCOPE(Thread::Current());
+ API_TIMELINE_DURATION(T);
+ StackZone zone(T);
+ Isolate* I = T->isolate();
+
+ CHECK_CALLBACK_STATE(T);
+ CHECK_COMPILATION_ALLOWED(I);
+
+ kernel::Program* program = kernel::Program::ReadFromBuffer(
+ buffer, buffer_size, false /* take_buffer_ownership */);
+ const Object& result =
+ kernel::KernelLoader::LoadEntireProgram(program, false);
+ delete program;
+
+ return Api::NewHandle(T, result.raw());
+#endif // defined(DART_PRECOMPILED_RUNTIME)
+}
+
DART_EXPORT Dart_Handle Dart_LibraryImportLibrary(Dart_Handle library,
Dart_Handle import,
Dart_Handle prefix) {
diff --git a/runtime/vm/isolate.cc b/runtime/vm/isolate.cc
index 3dbb929..3a6edba 100644
--- a/runtime/vm/isolate.cc
+++ b/runtime/vm/isolate.cc
@@ -2709,8 +2709,6 @@
thread = thread_registry()->GetFreeThreadLocked(this, is_mutator);
ASSERT(thread != NULL);
- thread->ResetHighWatermark();
-
// Set up other values and set the TLS value.
thread->isolate_ = this;
ASSERT(heap() != NULL);
@@ -2731,6 +2729,8 @@
}
Thread::SetCurrent(thread);
os_thread->EnableThreadInterrupts();
+
+ thread->ResetHighWatermark();
}
return thread;
}
diff --git a/runtime/vm/isolate_reload.cc b/runtime/vm/isolate_reload.cc
index 338409f..cd42d41 100644
--- a/runtime/vm/isolate_reload.cc
+++ b/runtime/vm/isolate_reload.cc
@@ -585,11 +585,11 @@
intptr_t num_libs = libs.Length();
modified_libs_ = new (Z) BitVector(Z, num_libs);
- // ReadPrecompiledKernelFromFile checks to see if the file at
+ // ReadKernelFromFile checks to see if the file at
// root_script_url is a valid .dill file. If that's the case, a Program*
// is returned. Otherwise, this is likely a source file that needs to be
- // compiled, so ReadPrecompiledKernelFromFile returns NULL.
- kernel_program.set(ReadPrecompiledKernelFromFile(root_script_url));
+ // compiled, so ReadKernelFromFile returns NULL.
+ kernel_program.set(kernel::Program::ReadFromFile(root_script_url));
if (kernel_program.get() == NULL) {
TransitionVMToNative transition(thread);
Dart_SourceFile* modified_scripts = NULL;
@@ -613,7 +613,7 @@
}
did_kernel_compilation = true;
kernel_program.set(
- ReadPrecompiledKernelFromBuffer(retval.kernel, retval.kernel_size));
+ kernel::Program::ReadFromBuffer(retval.kernel, retval.kernel_size));
}
kernel_program.get()->set_release_buffer_callback(ReleaseFetchedBytes);
diff --git a/runtime/vm/kernel.h b/runtime/vm/kernel.h
index 579a186..deb900d 100644
--- a/runtime/vm/kernel.h
+++ b/runtime/vm/kernel.h
@@ -77,6 +77,11 @@
*/
static Program* ReadFrom(Reader* reader, bool take_buffer_ownership = true);
+ static Program* ReadFromFile(const char* script_uri);
+ static Program* ReadFromBuffer(const uint8_t* buffer,
+ intptr_t buffer_length,
+ bool take_buffer_ownership = true);
+
bool is_single_program() { return single_program_; }
NameIndex main_method() { return main_method_reference_; }
intptr_t source_table_offset() const { return source_table_offset_; }
@@ -195,12 +200,6 @@
TokenPosition* end);
} // namespace kernel
-
-kernel::Program* ReadPrecompiledKernelFromFile(const char* script_uri);
-
-kernel::Program* ReadPrecompiledKernelFromBuffer(const uint8_t* buffer,
- intptr_t buffer_length);
-
} // namespace dart
#endif // !defined(DART_PRECOMPILED_RUNTIME)
diff --git a/runtime/vm/kernel_binary.cc b/runtime/vm/kernel_binary.cc
index 21e833f..a2fe779 100644
--- a/runtime/vm/kernel_binary.cc
+++ b/runtime/vm/kernel_binary.cc
@@ -77,9 +77,7 @@
return program;
}
-} // namespace kernel
-
-kernel::Program* ReadPrecompiledKernelFromFile(const char* script_uri) {
+Program* Program::ReadFromFile(const char* script_uri) {
Thread* thread = Thread::Current();
if (script_uri == NULL) {
return NULL;
@@ -108,11 +106,13 @@
return kernel_program;
}
-kernel::Program* ReadPrecompiledKernelFromBuffer(const uint8_t* buffer,
- intptr_t buffer_length) {
+Program* Program::ReadFromBuffer(const uint8_t* buffer,
+ intptr_t buffer_length,
+ bool take_buffer_ownership) {
kernel::Reader reader(buffer, buffer_length);
- return kernel::Program::ReadFrom(&reader);
+ return kernel::Program::ReadFrom(&reader, take_buffer_ownership);
}
+} // namespace kernel
} // namespace dart
#endif // !defined(DART_PRECOMPILED_RUNTIME)
diff --git a/runtime/vm/kernel_loader.cc b/runtime/vm/kernel_loader.cc
index fa60ee8..b2b6b26 100644
--- a/runtime/vm/kernel_loader.cc
+++ b/runtime/vm/kernel_loader.cc
@@ -192,49 +192,50 @@
initialize_fields();
}
-Object& KernelLoader::LoadEntireProgram(Program* program) {
+Object& KernelLoader::LoadEntireProgram(Program* program,
+ bool process_pending_classes) {
if (program->is_single_program()) {
KernelLoader loader(program);
- return loader.LoadProgram();
- } else {
- kernel::Reader reader(program->kernel_data(), program->kernel_data_size());
- GrowableArray<intptr_t> subprogram_file_starts;
- index_programs(&reader, &subprogram_file_starts);
-
- Thread* thread = Thread::Current();
- Zone* zone = thread->zone();
- Library& library = Library::Handle(zone);
- // Create "fake programs" for each sub-program.
- intptr_t subprogram_count = subprogram_file_starts.length() - 1;
- for (intptr_t i = 0; i < subprogram_count; ++i) {
- intptr_t subprogram_start = subprogram_file_starts.At(i);
- intptr_t subprogram_end = subprogram_file_starts.At(i + 1);
- reader.set_raw_buffer(program->kernel_data() + subprogram_start);
- reader.set_size(subprogram_end - subprogram_start);
- reader.set_offset(0);
- Program* subprogram = Program::ReadFrom(&reader, false);
- ASSERT(subprogram->is_single_program());
- KernelLoader loader(subprogram);
- Object& load_result = loader.LoadProgram(false);
- if (load_result.IsError()) return load_result;
-
- if (library.IsNull() && load_result.IsLibrary()) {
- library ^= load_result.raw();
- }
-
- delete subprogram;
- }
-
- if (!ClassFinalizer::ProcessPendingClasses()) {
- // Class finalization failed -> sticky error would be set.
- Error& error = Error::Handle(zone);
- error = thread->sticky_error();
- thread->clear_sticky_error();
- return error;
- }
-
- return library;
+ return loader.LoadProgram(process_pending_classes);
}
+
+ kernel::Reader reader(program->kernel_data(), program->kernel_data_size());
+ GrowableArray<intptr_t> subprogram_file_starts;
+ index_programs(&reader, &subprogram_file_starts);
+
+ Thread* thread = Thread::Current();
+ Zone* zone = thread->zone();
+ Library& library = Library::Handle(zone);
+ // Create "fake programs" for each sub-program.
+ intptr_t subprogram_count = subprogram_file_starts.length() - 1;
+ for (intptr_t i = 0; i < subprogram_count; ++i) {
+ intptr_t subprogram_start = subprogram_file_starts.At(i);
+ intptr_t subprogram_end = subprogram_file_starts.At(i + 1);
+ reader.set_raw_buffer(program->kernel_data() + subprogram_start);
+ reader.set_size(subprogram_end - subprogram_start);
+ reader.set_offset(0);
+ Program* subprogram = Program::ReadFrom(&reader, false);
+ ASSERT(subprogram->is_single_program());
+ KernelLoader loader(subprogram);
+ Object& load_result = loader.LoadProgram(false);
+ if (load_result.IsError()) return load_result;
+
+ if (library.IsNull() && load_result.IsLibrary()) {
+ library ^= load_result.raw();
+ }
+
+ delete subprogram;
+ }
+
+ if (process_pending_classes && !ClassFinalizer::ProcessPendingClasses()) {
+ // Class finalization failed -> sticky error would be set.
+ Error& error = Error::Handle(zone);
+ error = thread->sticky_error();
+ thread->clear_sticky_error();
+ return error;
+ }
+
+ return library;
}
void KernelLoader::index_programs(
@@ -1168,7 +1169,7 @@
}
class_helper->SetJustRead(ClassHelper::kFields);
- if (I->use_dart_frontend() && klass.is_enum_class()) {
+ if (klass.is_enum_class()) {
// Add static field 'const _deleted_enum_sentinel'.
// This field does not need to be of type E.
Field& deleted_enum_sentinel = Field::ZoneHandle(Z);
diff --git a/runtime/vm/kernel_loader.h b/runtime/vm/kernel_loader.h
index 7cafb9d..d18fa6c 100644
--- a/runtime/vm/kernel_loader.h
+++ b/runtime/vm/kernel_loader.h
@@ -123,7 +123,8 @@
class KernelLoader {
public:
explicit KernelLoader(Program* program);
- static Object& LoadEntireProgram(Program* program);
+ static Object& LoadEntireProgram(Program* program,
+ bool process_pending_classes = true);
// Returns the library containing the main procedure, null if there
// was no main procedure, or a failure object if there was an error.
diff --git a/runtime/vm/snapshot.cc b/runtime/vm/snapshot.cc
index a906dd7..1b91df8 100644
--- a/runtime/vm/snapshot.cc
+++ b/runtime/vm/snapshot.cc
@@ -152,19 +152,16 @@
}
}
-// TODO(5411462): Temporary setup of snapshot for testing purposes,
-// the actual creation of a snapshot maybe done differently.
const Snapshot* Snapshot::SetupFromBuffer(const void* raw_memory) {
ASSERT(raw_memory != NULL);
- ASSERT(kHeaderSize == sizeof(Snapshot));
- ASSERT(kLengthIndex == length_offset());
- ASSERT((kSnapshotFlagIndex * sizeof(int64_t)) == kind_offset());
- ASSERT((kHeapObjectTag & kInlined));
const Snapshot* snapshot = reinterpret_cast<const Snapshot*>(raw_memory);
+ if (!snapshot->check_magic()) {
+ return NULL;
+ }
// If the raw length is negative or greater than what the local machine can
// handle, then signal an error.
- int64_t snapshot_length = ReadUnaligned(&snapshot->unaligned_length_);
- if ((snapshot_length < 0) || (snapshot_length > kIntptrMax)) {
+ int64_t length = snapshot->large_length();
+ if ((length < 0) || (length > kIntptrMax)) {
return NULL;
}
return snapshot;
diff --git a/runtime/vm/snapshot.h b/runtime/vm/snapshot.h
index 5db9e24..44cb6db 100644
--- a/runtime/vm/snapshot.h
+++ b/runtime/vm/snapshot.h
@@ -161,19 +161,36 @@
};
static const char* KindToCString(Kind kind);
- static const int kHeaderSize = 2 * sizeof(int64_t);
- static const int kLengthIndex = 0;
- static const int kSnapshotFlagIndex = 1;
-
static const Snapshot* SetupFromBuffer(const void* raw_memory);
- // Getters.
- const uint8_t* content() const { OPEN_ARRAY_START(uint8_t, uint8_t); }
- intptr_t length() const {
- return static_cast<intptr_t>(ReadUnaligned(&unaligned_length_));
+ static const int32_t kMagicValue = 0xdcdcf5f5;
+ static const intptr_t kMagicOffset = 0;
+ static const intptr_t kMagicSize = sizeof(int32_t);
+ static const intptr_t kLengthOffset = kMagicOffset + kMagicSize;
+ static const intptr_t kLengthSize = sizeof(int64_t);
+ static const intptr_t kKindOffset = kLengthOffset + kLengthSize;
+ static const intptr_t kKindSize = sizeof(int64_t);
+ static const intptr_t kHeaderSize = kKindOffset + kKindSize;
+
+ // Accessors.
+ bool check_magic() const {
+ return Read<int32_t>(kMagicOffset) == kMagicValue;
}
- Kind kind() const {
- return static_cast<Kind>(ReadUnaligned(&unaligned_kind_));
+ void set_magic() { return Write<int32_t>(kMagicOffset, kMagicValue); }
+ // Excluding the magic value from the size written in the buffer is needed
+ // so we give a proper version mismatch error for snapshots create before
+ // magic value was written by the VM instead of the embedder.
+ int64_t large_length() const {
+ return Read<int64_t>(kLengthOffset) + kMagicSize;
+ }
+ intptr_t length() const { return static_cast<intptr_t>(large_length()); }
+ void set_length(intptr_t value) {
+ return Write<int64_t>(kLengthOffset, value - kMagicSize);
+ }
+ Kind kind() const { return static_cast<Kind>(Read<int64_t>(kKindOffset)); }
+ void set_kind(Kind value) { return Write<int64_t>(kKindOffset, value); }
+ const uint8_t* content() const {
+ return reinterpret_cast<const uint8_t*>(this) + kHeaderSize;
}
static bool IsFull(Kind kind) {
@@ -185,20 +202,21 @@
const uint8_t* Addr() const { return reinterpret_cast<const uint8_t*>(this); }
- static intptr_t length_offset() {
- return OFFSET_OF(Snapshot, unaligned_length_);
- }
- static intptr_t kind_offset() { return OFFSET_OF(Snapshot, unaligned_kind_); }
-
private:
// Prevent Snapshot from ever being allocated directly.
Snapshot();
- // The following fields are potentially unaligned.
- int64_t unaligned_length_; // Stream length.
- int64_t unaligned_kind_; // Kind of snapshot.
+ template <typename T>
+ T Read(intptr_t offset) const {
+ return ReadUnaligned(
+ reinterpret_cast<const T*>(reinterpret_cast<uword>(this) + offset));
+ }
- // Variable length data follows here.
+ template <typename T>
+ void Write(intptr_t offset, T value) {
+ return StoreUnaligned(
+ reinterpret_cast<T*>(reinterpret_cast<uword>(this) + offset), value);
+ }
DISALLOW_COPY_AND_ASSIGN(Snapshot);
};
@@ -570,9 +588,10 @@
}
void FillHeader(Snapshot::Kind kind) {
- int64_t* data = reinterpret_cast<int64_t*>(stream_.buffer());
- data[Snapshot::kLengthIndex] = stream_.bytes_written();
- data[Snapshot::kSnapshotFlagIndex] = kind;
+ Snapshot* header = reinterpret_cast<Snapshot*>(stream_.buffer());
+ header->set_magic();
+ header->set_length(stream_.bytes_written());
+ header->set_kind(kind);
}
void FreeBuffer() {
diff --git a/runtime/vm/snapshot_test.cc b/runtime/vm/snapshot_test.cc
index 3bfe589..cff0584 100644
--- a/runtime/vm/snapshot_test.cc
+++ b/runtime/vm/snapshot_test.cc
@@ -1029,6 +1029,7 @@
result = Dart_CreateSnapshot(NULL, &vm_isolate_snapshot_size,
&isolate_snapshot, &isolate_snapshot_size);
EXPECT_VALID(result);
+ EXPECT(Dart_IsSnapshot(isolate_snapshot, isolate_snapshot_size));
full_snapshot = reinterpret_cast<uint8_t*>(malloc(isolate_snapshot_size));
memmove(full_snapshot, isolate_snapshot, isolate_snapshot_size);
Dart_ExitScope();
@@ -1067,6 +1068,7 @@
// Write out the script snapshot.
result = Dart_CreateScriptSnapshot(&buffer, &size);
EXPECT_VALID(result);
+ EXPECT(Dart_IsSnapshot(buffer, size));
script_snapshot = reinterpret_cast<uint8_t*>(malloc(size));
memmove(script_snapshot, buffer, size);
Dart_ExitScope();
@@ -1139,6 +1141,7 @@
result = Dart_CreateSnapshot(NULL, &vm_isolate_snapshot_size,
&isolate_snapshot, &isolate_snapshot_size);
EXPECT_VALID(result);
+ EXPECT(Dart_IsSnapshot(isolate_snapshot, isolate_snapshot_size));
full_snapshot = reinterpret_cast<uint8_t*>(malloc(isolate_snapshot_size));
memmove(full_snapshot, isolate_snapshot, isolate_snapshot_size);
Dart_ExitScope();
@@ -1176,6 +1179,7 @@
// Write out the script snapshot.
result = Dart_CreateScriptSnapshot(&buffer, &size);
EXPECT_VALID(result);
+ EXPECT(Dart_IsSnapshot(buffer, size));
script_snapshot = reinterpret_cast<uint8_t*>(malloc(size));
memmove(script_snapshot, buffer, size);
Dart_ExitScope();
@@ -1452,6 +1456,7 @@
result = Dart_CreateSnapshot(NULL, &vm_isolate_snapshot_size,
&isolate_snapshot, &isolate_snapshot_size);
EXPECT_VALID(result);
+ EXPECT(Dart_IsSnapshot(isolate_snapshot, isolate_snapshot_size));
full_snapshot = reinterpret_cast<uint8_t*>(malloc(isolate_snapshot_size));
memmove(full_snapshot, isolate_snapshot, isolate_snapshot_size);
Dart_ExitScope();
@@ -1486,6 +1491,7 @@
// Write out the script snapshot.
result = Dart_CreateScriptSnapshot(&buffer, &size);
EXPECT_VALID(result);
+ EXPECT(Dart_IsSnapshot(buffer, size));
script_snapshot = reinterpret_cast<uint8_t*>(malloc(size));
memmove(script_snapshot, buffer, size);
Dart_ExitScope();
@@ -1550,6 +1556,7 @@
result = Dart_CreateSnapshot(NULL, &vm_isolate_snapshot_size,
&isolate_snapshot, &isolate_snapshot_size);
EXPECT_VALID(result);
+ EXPECT(Dart_IsSnapshot(isolate_snapshot, isolate_snapshot_size));
full_snapshot = reinterpret_cast<uint8_t*>(malloc(isolate_snapshot_size));
memmove(full_snapshot, isolate_snapshot, isolate_snapshot_size);
Dart_ExitScope();
@@ -1568,6 +1575,7 @@
// Write out the script snapshot.
result = Dart_CreateScriptSnapshot(&buffer, &size);
EXPECT_VALID(result);
+ EXPECT(Dart_IsSnapshot(buffer, size));
script_snapshot = reinterpret_cast<uint8_t*>(malloc(size));
memmove(script_snapshot, buffer, size);
Dart_ExitScope();
@@ -1641,6 +1649,7 @@
result = Dart_CreateSnapshot(NULL, &vm_isolate_snapshot_size,
&isolate_snapshot, &isolate_snapshot_size);
EXPECT_VALID(result);
+ EXPECT(Dart_IsSnapshot(isolate_snapshot, isolate_snapshot_size));
full_snapshot = reinterpret_cast<uint8_t*>(malloc(isolate_snapshot_size));
memmove(full_snapshot, isolate_snapshot, isolate_snapshot_size);
Dart_ExitScope();
@@ -1669,6 +1678,7 @@
// Write out the script snapshot.
result = Dart_CreateScriptSnapshot(&buffer, &size);
EXPECT_VALID(result);
+ EXPECT(Dart_IsSnapshot(buffer, size));
script_snapshot = reinterpret_cast<uint8_t*>(malloc(size));
memmove(script_snapshot, buffer, size);
Dart_ExitScope();
@@ -1733,6 +1743,7 @@
result = Dart_CreateSnapshot(NULL, &vm_isolate_snapshot_size,
&isolate_snapshot, &isolate_snapshot_size);
EXPECT_VALID(result);
+ EXPECT(Dart_IsSnapshot(isolate_snapshot, isolate_snapshot_size));
full_snapshot = reinterpret_cast<uint8_t*>(malloc(isolate_snapshot_size));
memmove(full_snapshot, isolate_snapshot, isolate_snapshot_size);
Dart_ExitScope();
@@ -1754,6 +1765,7 @@
// Write out the script snapshot.
result = Dart_CreateScriptSnapshot(&buffer, &size);
EXPECT_VALID(result);
+ EXPECT(Dart_IsSnapshot(buffer, size));
script_snapshot = reinterpret_cast<uint8_t*>(malloc(size));
memmove(script_snapshot, buffer, size);
Dart_ExitScope();
@@ -3145,4 +3157,18 @@
free(writer.buffer());
}
+TEST_CASE(IsSnapshotNegative) {
+ EXPECT(!Dart_IsSnapshot(NULL, 0));
+
+ uint8_t buffer[4] = {0, 0, 0, 0};
+ EXPECT(!Dart_IsSnapshot(buffer, ARRAY_SIZE(buffer)));
+}
+
+TEST_CASE(IsKernelNegative) {
+ EXPECT(!Dart_IsKernel(NULL, 0));
+
+ uint8_t buffer[4] = {0, 0, 0, 0};
+ EXPECT(!Dart_IsKernel(buffer, ARRAY_SIZE(buffer)));
+}
+
} // namespace dart
diff --git a/runtime/vm/thread.cc b/runtime/vm/thread.cc
index 239b06a7..af6c31a 100644
--- a/runtime/vm/thread.cc
+++ b/runtime/vm/thread.cc
@@ -457,6 +457,25 @@
return false;
}
+void Thread::SetHighWatermark(intptr_t value) {
+ zone_high_watermark_ = value;
+
+#if !defined(PRODUCT)
+ if ((isolate()->name() != NULL)) {
+ TimelineEvent* event = Timeline::GetZoneStream()->StartEvent();
+ if (event != NULL) {
+ event->Counter(strdup(isolate()->name()));
+ event->set_owns_label(true);
+ // Prevent Catapult from showing "isolateId" as another series.
+ event->set_isolate_id(ILLEGAL_PORT);
+ event->SetNumArguments(1);
+ event->FormatArgument(0, "zoneHighWatermark", "%" Pd, value);
+ event->Complete();
+ }
+ }
+#endif
+}
+
void Thread::DeferOOBMessageInterrupts() {
MonitorLocker ml(thread_lock_);
defer_oob_messages_count_++;
diff --git a/runtime/vm/thread.h b/runtime/vm/thread.h
index 2c51ce0..c506170 100644
--- a/runtime/vm/thread.h
+++ b/runtime/vm/thread.h
@@ -284,7 +284,7 @@
void IncrementMemoryCapacity(uintptr_t value) {
current_zone_capacity_ += value;
if (current_zone_capacity_ > zone_high_watermark_) {
- zone_high_watermark_ = current_zone_capacity_;
+ SetHighWatermark(current_zone_capacity_);
}
}
@@ -297,7 +297,9 @@
uintptr_t zone_high_watermark() const { return zone_high_watermark_; }
- void ResetHighWatermark() { zone_high_watermark_ = current_zone_capacity_; }
+ void ResetHighWatermark() { SetHighWatermark(current_zone_capacity_); }
+
+ void SetHighWatermark(intptr_t value);
// The reusable api local scope for this thread.
ApiLocalScope* api_reusable_scope() const { return api_reusable_scope_; }
diff --git a/runtime/vm/timeline.h b/runtime/vm/timeline.h
index 8ad971c..c37a982 100644
--- a/runtime/vm/timeline.h
+++ b/runtime/vm/timeline.h
@@ -39,7 +39,8 @@
V(Embedder, false) \
V(GC, false) \
V(Isolate, false) \
- V(VM, false)
+ V(VM, false) \
+ V(Zone, false)
// A stream of timeline events. A stream has a name and can be enabled or
// disabled (globally and per isolate).
@@ -314,10 +315,10 @@
void PrintJSON(JSONStream* stream) const;
ThreadId thread() const { return thread_; }
-
void set_thread(ThreadId tid) { thread_ = tid; }
Dart_Port isolate_id() const { return isolate_id_; }
+ void set_isolate_id(Dart_Port id) { isolate_id_ = id; }
const char* label() const { return label_; }
diff --git a/sdk/lib/_internal/js_runtime/lib/core_patch.dart b/sdk/lib/_internal/js_runtime/lib/core_patch.dart
index ce9b3e0..df3bf16 100644
--- a/sdk/lib/_internal/js_runtime/lib/core_patch.dart
+++ b/sdk/lib/_internal/js_runtime/lib/core_patch.dart
@@ -1198,7 +1198,7 @@
unshiftedDigits[3] = 0x10 | (bits[6] & 0xF);
var unshiftedBig = new _BigIntImpl._normalized(false, 4, unshiftedDigits);
- _BigIntImpl absResult;
+ _BigIntImpl absResult = unshiftedBig;
if (exponent < 0) {
absResult = unshiftedBig >> -exponent;
} else if (exponent > 0) {
diff --git a/sdk/lib/collection/maps.dart b/sdk/lib/collection/maps.dart
index bdc5a41..5967553 100644
--- a/sdk/lib/collection/maps.dart
+++ b/sdk/lib/collection/maps.dart
@@ -113,7 +113,7 @@
if (this.containsKey(key)) {
return this[key] = update(this[key]);
}
- if (ifAbsent == null) {
+ if (ifAbsent != null) {
return this[key] = ifAbsent();
}
throw new ArgumentError.value(key, "key", "Key not in map.");
diff --git a/sdk/lib/core/iterable.dart b/sdk/lib/core/iterable.dart
index 8341360..2187812 100644
--- a/sdk/lib/core/iterable.dart
+++ b/sdk/lib/core/iterable.dart
@@ -160,7 +160,7 @@
* if it is already an `Iterable<R>`.
*
* It means that `someIterable.cast<Object>().toList()` is not guaranteed
- * to return precisley a `List<Object>`, but it may return a subtype.
+ * to return precisely a `List<Object>`, but it may return a subtype.
*/
Iterable<R> cast<R>() {
Iterable<Object> self = this;
diff --git a/sdk/lib/html/dart2js/html_dart2js.dart b/sdk/lib/html/dart2js/html_dart2js.dart
index b3de731..f76fa2e 100644
--- a/sdk/lib/html/dart2js/html_dart2js.dart
+++ b/sdk/lib/html/dart2js/html_dart2js.dart
@@ -37,6 +37,7 @@
import 'dart:svg' show Matrix;
import 'dart:svg' show SvgSvgElement;
import 'dart:web_audio' as web_audio;
+import 'dart:web_audio' show AudioBuffer, AudioTrack, AudioTrackList;
import 'dart:web_gl' as gl;
import 'dart:web_gl' show RenderingContext, RenderingContext2;
import 'dart:web_sql';
@@ -101,7 +102,7 @@
// Workaround for tags like <cite> that lack their own Element subclass --
// Dart issue 1990.
@Native("HTMLElement")
-class HtmlElement extends Element {
+class HtmlElement extends Element implements NoncedElement {
factory HtmlElement() {
throw new UnsupportedError("Not supported");
}
@@ -112,6 +113,10 @@
* This can only be called by subclasses from their created constructor.
*/
HtmlElement.created() : super.created();
+
+ // From NoncedElement
+ @DomName('HTMLElement.nonce')
+ String nonce;
}
createCustomUpgrader(Type customElementClass, $this) => $this;
@@ -124,6 +129,65 @@
@Experimental() // untriaged
typedef void FontFaceSetForEachCallback(
FontFace fontFace, FontFace fontFaceAgain, FontFaceSet set);
+
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+@DocsEditable()
+@DomName('AbortPaymentEvent')
+@Experimental() // untriaged
+@Native("AbortPaymentEvent")
+class AbortPaymentEvent extends ExtendableEvent {
+ // To suppress missing implicit constructor warnings.
+ factory AbortPaymentEvent._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('AbortPaymentEvent.AbortPaymentEvent')
+ @DocsEditable()
+ factory AbortPaymentEvent(String type, Map eventInitDict) {
+ var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+ return AbortPaymentEvent._create_1(type, eventInitDict_1);
+ }
+ static AbortPaymentEvent _create_1(type, eventInitDict) => JS(
+ 'AbortPaymentEvent', 'new AbortPaymentEvent(#,#)', type, eventInitDict);
+
+ @DomName('AbortPaymentEvent.respondWith')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void respondWith(Future paymentAbortedResponse) 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('AbsoluteOrientationSensor')
+@Experimental() // untriaged
+@Native("AbsoluteOrientationSensor")
+class AbsoluteOrientationSensor extends OrientationSensor {
+ // To suppress missing implicit constructor warnings.
+ factory AbsoluteOrientationSensor._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('AbsoluteOrientationSensor.AbsoluteOrientationSensor')
+ @DocsEditable()
+ factory AbsoluteOrientationSensor([Map sensorOptions]) {
+ if (sensorOptions != null) {
+ var sensorOptions_1 = convertDartToNative_Dictionary(sensorOptions);
+ return AbsoluteOrientationSensor._create_1(sensorOptions_1);
+ }
+ return AbsoluteOrientationSensor._create_2();
+ }
+ static AbsoluteOrientationSensor _create_1(sensorOptions) => JS(
+ 'AbsoluteOrientationSensor',
+ 'new AbsoluteOrientationSensor(#)',
+ sensorOptions);
+ static AbsoluteOrientationSensor _create_2() =>
+ JS('AbsoluteOrientationSensor', 'new AbsoluteOrientationSensor()');
+}
// 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.
@@ -152,6 +216,466 @@
@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('Accelerometer')
+@Experimental() // untriaged
+@Native("Accelerometer")
+class Accelerometer extends Sensor {
+ // To suppress missing implicit constructor warnings.
+ factory Accelerometer._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('Accelerometer.Accelerometer')
+ @DocsEditable()
+ factory Accelerometer([Map sensorOptions]) {
+ if (sensorOptions != null) {
+ var sensorOptions_1 = convertDartToNative_Dictionary(sensorOptions);
+ return Accelerometer._create_1(sensorOptions_1);
+ }
+ return Accelerometer._create_2();
+ }
+ static Accelerometer _create_1(sensorOptions) =>
+ JS('Accelerometer', 'new Accelerometer(#)', sensorOptions);
+ static Accelerometer _create_2() =>
+ JS('Accelerometer', 'new Accelerometer()');
+
+ @DomName('Accelerometer.x')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num x;
+
+ @DomName('Accelerometer.y')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num y;
+
+ @DomName('Accelerometer.z')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num 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('AccessibleNode')
+@Experimental() // untriaged
+@Native("AccessibleNode")
+class AccessibleNode extends EventTarget {
+ // To suppress missing implicit constructor warnings.
+ factory AccessibleNode._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('AccessibleNode.accessibleclickEvent')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const EventStreamProvider<Event> accessibleClickEvent =
+ const EventStreamProvider<Event>('accessibleclick');
+
+ @DomName('AccessibleNode.accessiblecontextmenuEvent')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const EventStreamProvider<Event> accessibleContextMenuEvent =
+ const EventStreamProvider<Event>('accessiblecontextmenu');
+
+ @DomName('AccessibleNode.accessibledecrementEvent')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const EventStreamProvider<Event> accessibleDecrementEvent =
+ const EventStreamProvider<Event>('accessibledecrement');
+
+ @DomName('AccessibleNode.accessiblefocusEvent')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const EventStreamProvider<Event> accessibleFocusEvent =
+ const EventStreamProvider<Event>('accessiblefocus');
+
+ @DomName('AccessibleNode.accessibleincrementEvent')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const EventStreamProvider<Event> accessibleIncrementEvent =
+ const EventStreamProvider<Event>('accessibleincrement');
+
+ @DomName('AccessibleNode.accessiblescrollintoviewEvent')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const EventStreamProvider<Event> accessibleScrollIntoViewEvent =
+ const EventStreamProvider<Event>('accessiblescrollintoview');
+
+ @DomName('AccessibleNode.AccessibleNode')
+ @DocsEditable()
+ factory AccessibleNode() {
+ return AccessibleNode._create_1();
+ }
+ static AccessibleNode _create_1() =>
+ JS('AccessibleNode', 'new AccessibleNode()');
+
+ @DomName('AccessibleNode.activeDescendant')
+ @DocsEditable()
+ @Experimental() // untriaged
+ AccessibleNode activeDescendant;
+
+ @DomName('AccessibleNode.atomic')
+ @DocsEditable()
+ @Experimental() // untriaged
+ bool atomic;
+
+ @DomName('AccessibleNode.autocomplete')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String autocomplete;
+
+ @DomName('AccessibleNode.busy')
+ @DocsEditable()
+ @Experimental() // untriaged
+ bool busy;
+
+ @DomName('AccessibleNode.checked')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String checked;
+
+ @DomName('AccessibleNode.colCount')
+ @DocsEditable()
+ @Experimental() // untriaged
+ int colCount;
+
+ @DomName('AccessibleNode.colIndex')
+ @DocsEditable()
+ @Experimental() // untriaged
+ int colIndex;
+
+ @DomName('AccessibleNode.colSpan')
+ @DocsEditable()
+ @Experimental() // untriaged
+ int colSpan;
+
+ @DomName('AccessibleNode.controls')
+ @DocsEditable()
+ @Experimental() // untriaged
+ AccessibleNodeList controls;
+
+ @DomName('AccessibleNode.current')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String current;
+
+ @DomName('AccessibleNode.describedBy')
+ @DocsEditable()
+ @Experimental() // untriaged
+ AccessibleNodeList describedBy;
+
+ @DomName('AccessibleNode.details')
+ @DocsEditable()
+ @Experimental() // untriaged
+ AccessibleNode details;
+
+ @DomName('AccessibleNode.disabled')
+ @DocsEditable()
+ @Experimental() // untriaged
+ bool disabled;
+
+ @DomName('AccessibleNode.errorMessage')
+ @DocsEditable()
+ @Experimental() // untriaged
+ AccessibleNode errorMessage;
+
+ @DomName('AccessibleNode.expanded')
+ @DocsEditable()
+ @Experimental() // untriaged
+ bool expanded;
+
+ @DomName('AccessibleNode.flowTo')
+ @DocsEditable()
+ @Experimental() // untriaged
+ AccessibleNodeList flowTo;
+
+ @DomName('AccessibleNode.hasPopUp')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String hasPopUp;
+
+ @DomName('AccessibleNode.hidden')
+ @DocsEditable()
+ @Experimental() // untriaged
+ bool hidden;
+
+ @DomName('AccessibleNode.invalid')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String invalid;
+
+ @DomName('AccessibleNode.keyShortcuts')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String keyShortcuts;
+
+ @DomName('AccessibleNode.label')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String label;
+
+ @DomName('AccessibleNode.labeledBy')
+ @DocsEditable()
+ @Experimental() // untriaged
+ AccessibleNodeList labeledBy;
+
+ @DomName('AccessibleNode.level')
+ @DocsEditable()
+ @Experimental() // untriaged
+ int level;
+
+ @DomName('AccessibleNode.live')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String live;
+
+ @DomName('AccessibleNode.modal')
+ @DocsEditable()
+ @Experimental() // untriaged
+ bool modal;
+
+ @DomName('AccessibleNode.multiline')
+ @DocsEditable()
+ @Experimental() // untriaged
+ bool multiline;
+
+ @DomName('AccessibleNode.multiselectable')
+ @DocsEditable()
+ @Experimental() // untriaged
+ bool multiselectable;
+
+ @DomName('AccessibleNode.orientation')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String orientation;
+
+ @DomName('AccessibleNode.owns')
+ @DocsEditable()
+ @Experimental() // untriaged
+ AccessibleNodeList owns;
+
+ @DomName('AccessibleNode.placeholder')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String placeholder;
+
+ @DomName('AccessibleNode.posInSet')
+ @DocsEditable()
+ @Experimental() // untriaged
+ int posInSet;
+
+ @DomName('AccessibleNode.pressed')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String pressed;
+
+ @DomName('AccessibleNode.readOnly')
+ @DocsEditable()
+ @Experimental() // untriaged
+ bool readOnly;
+
+ @DomName('AccessibleNode.relevant')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String relevant;
+
+ @DomName('AccessibleNode.required')
+ @DocsEditable()
+ @Experimental() // untriaged
+ bool required;
+
+ @DomName('AccessibleNode.role')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String role;
+
+ @DomName('AccessibleNode.roleDescription')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String roleDescription;
+
+ @DomName('AccessibleNode.rowCount')
+ @DocsEditable()
+ @Experimental() // untriaged
+ int rowCount;
+
+ @DomName('AccessibleNode.rowIndex')
+ @DocsEditable()
+ @Experimental() // untriaged
+ int rowIndex;
+
+ @DomName('AccessibleNode.rowSpan')
+ @DocsEditable()
+ @Experimental() // untriaged
+ int rowSpan;
+
+ @DomName('AccessibleNode.selected')
+ @DocsEditable()
+ @Experimental() // untriaged
+ bool selected;
+
+ @DomName('AccessibleNode.setSize')
+ @DocsEditable()
+ @Experimental() // untriaged
+ int setSize;
+
+ @DomName('AccessibleNode.sort')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String sort;
+
+ @DomName('AccessibleNode.valueMax')
+ @DocsEditable()
+ @Experimental() // untriaged
+ num valueMax;
+
+ @DomName('AccessibleNode.valueMin')
+ @DocsEditable()
+ @Experimental() // untriaged
+ num valueMin;
+
+ @DomName('AccessibleNode.valueNow')
+ @DocsEditable()
+ @Experimental() // untriaged
+ num valueNow;
+
+ @DomName('AccessibleNode.valueText')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String valueText;
+
+ @DomName('AccessibleNode.appendChild')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void appendChild(AccessibleNode child) native;
+
+ @DomName('AccessibleNode.onaccessibleclick')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Stream<Event> get onAccessibleClick => accessibleClickEvent.forTarget(this);
+
+ @DomName('AccessibleNode.onaccessiblecontextmenu')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Stream<Event> get onAccessibleContextMenu =>
+ accessibleContextMenuEvent.forTarget(this);
+
+ @DomName('AccessibleNode.onaccessibledecrement')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Stream<Event> get onAccessibleDecrement =>
+ accessibleDecrementEvent.forTarget(this);
+
+ @DomName('AccessibleNode.onaccessiblefocus')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Stream<Event> get onAccessibleFocus => accessibleFocusEvent.forTarget(this);
+
+ @DomName('AccessibleNode.onaccessibleincrement')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Stream<Event> get onAccessibleIncrement =>
+ accessibleIncrementEvent.forTarget(this);
+
+ @DomName('AccessibleNode.onaccessiblescrollintoview')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Stream<Event> get onAccessibleScrollIntoView =>
+ accessibleScrollIntoViewEvent.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('AccessibleNodeList')
+@Experimental() // untriaged
+@Native("AccessibleNodeList")
+class AccessibleNodeList extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory AccessibleNodeList._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('AccessibleNodeList.AccessibleNodeList')
+ @DocsEditable()
+ factory AccessibleNodeList([List<AccessibleNode> nodes]) {
+ if (nodes != null) {
+ return AccessibleNodeList._create_1(nodes);
+ }
+ return AccessibleNodeList._create_2();
+ }
+ static AccessibleNodeList _create_1(nodes) =>
+ JS('AccessibleNodeList', 'new AccessibleNodeList(#)', nodes);
+ static AccessibleNodeList _create_2() =>
+ JS('AccessibleNodeList', 'new AccessibleNodeList()');
+
+ @DomName('AccessibleNodeList.length')
+ @DocsEditable()
+ @Experimental() // untriaged
+ int length;
+
+ @DomName('AccessibleNodeList.__setter__')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void __setter__(int index, AccessibleNode node) native;
+
+ @DomName('AccessibleNodeList.add')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void add(AccessibleNode node, AccessibleNode before) native;
+
+ @DomName('AccessibleNodeList.item')
+ @DocsEditable()
+ @Experimental() // untriaged
+ AccessibleNode item(int index) native;
+
+ @DomName('AccessibleNodeList.remove')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void remove(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('AmbientLightSensor')
+@Experimental() // untriaged
+@Native("AmbientLightSensor")
+class AmbientLightSensor extends Sensor {
+ // To suppress missing implicit constructor warnings.
+ factory AmbientLightSensor._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('AmbientLightSensor.AmbientLightSensor')
+ @DocsEditable()
+ factory AmbientLightSensor([Map sensorOptions]) {
+ if (sensorOptions != null) {
+ var sensorOptions_1 = convertDartToNative_Dictionary(sensorOptions);
+ return AmbientLightSensor._create_1(sensorOptions_1);
+ }
+ return AmbientLightSensor._create_2();
+ }
+ static AmbientLightSensor _create_1(sensorOptions) =>
+ JS('AmbientLightSensor', 'new AmbientLightSensor(#)', sensorOptions);
+ static AmbientLightSensor _create_2() =>
+ JS('AmbientLightSensor', 'new AmbientLightSensor()');
+
+ @DomName('AmbientLightSensor.illuminance')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num illuminance;
+}
// 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.
@@ -159,7 +683,7 @@
@DocsEditable()
@DomName('HTMLAnchorElement')
@Native("HTMLAnchorElement")
-class AnchorElement extends HtmlElement implements UrlUtils {
+class AnchorElement extends HtmlElement implements HtmlHyperlinkElementUtils {
// To suppress missing implicit constructor warnings.
factory AnchorElement._() {
throw new UnsupportedError("Not supported");
@@ -188,10 +712,10 @@
@DocsEditable()
String hreflang;
- @DomName('HTMLAnchorElement.referrerpolicy')
+ @DomName('HTMLAnchorElement.referrerPolicy')
@DocsEditable()
@Experimental() // untriaged
- String referrerpolicy;
+ String referrerPolicy;
@DomName('HTMLAnchorElement.rel')
@DocsEditable()
@@ -205,7 +729,7 @@
@DocsEditable()
String type;
- // From URLUtils
+ // From HTMLHyperlinkElementUtils
@DomName('HTMLAnchorElement.hash')
@DocsEditable()
@@ -273,6 +797,36 @@
throw new UnsupportedError("Not supported");
}
+ @DomName('Animation.cancelEvent')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const EventStreamProvider<Event> cancelEvent =
+ const EventStreamProvider<Event>('cancel');
+
+ @DomName('Animation.finishEvent')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const EventStreamProvider<Event> finishEvent =
+ const EventStreamProvider<Event>('finish');
+
+ @DomName('Animation.Animation')
+ @DocsEditable()
+ factory Animation(
+ [AnimationEffectReadOnly effect, AnimationTimeline timeline]) {
+ if (timeline != null) {
+ return Animation._create_1(effect, timeline);
+ }
+ if (effect != null) {
+ return Animation._create_2(effect);
+ }
+ return Animation._create_3();
+ }
+ static Animation _create_1(effect, timeline) =>
+ JS('Animation', 'new Animation(#,#)', effect, timeline);
+ static Animation _create_2(effect) =>
+ JS('Animation', 'new Animation(#)', effect);
+ static Animation _create_3() => JS('Animation', 'new Animation()');
+
/// Checks if this type is supported on the current platform.
static bool get supported => JS('bool', '!!(document.body.animate)');
@@ -316,6 +870,11 @@
@Experimental() // untriaged
num startTime;
+ @DomName('Animation.timeline')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final AnimationTimeline timeline;
+
@DomName('Animation.cancel')
@DocsEditable()
@Experimental() // untriaged
@@ -340,6 +899,16 @@
@DocsEditable()
@Experimental() // untriaged
void reverse() native;
+
+ @DomName('Animation.oncancel')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Stream<Event> get onCancel => cancelEvent.forTarget(this);
+
+ @DomName('Animation.onfinish')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Stream<Event> get onFinish => finishEvent.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
@@ -355,21 +924,23 @@
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;
+ final AnimationEffectTimingReadOnly timing;
+
+ @DomName('AnimationEffectReadOnly.getComputedTiming')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Map getComputedTiming() {
+ return convertNativeToDart_Dictionary(_getComputedTiming_1());
+ }
+
+ @JSName('getComputedTiming')
+ @DomName('AnimationEffectReadOnly.getComputedTiming')
+ @DocsEditable()
+ @Experimental() // untriaged
+ _getComputedTiming_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
@@ -379,58 +950,121 @@
@DomName('AnimationEffectTiming')
@Experimental() // untriaged
@Native("AnimationEffectTiming")
-class AnimationEffectTiming extends Interceptor {
+class AnimationEffectTiming extends AnimationEffectTimingReadOnly {
// To suppress missing implicit constructor warnings.
factory AnimationEffectTiming._() {
throw new UnsupportedError("Not supported");
}
- @DomName('AnimationEffectTiming.delay')
- @DocsEditable()
- @Experimental() // untriaged
- num delay;
+ // Shadowing definition.
+ num get delay => JS("num", "#.delay", this);
- @DomName('AnimationEffectTiming.direction')
- @DocsEditable()
- @Experimental() // untriaged
- String direction;
+ set delay(num value) {
+ JS("void", "#.delay = #", this, value);
+ }
- @DomName('AnimationEffectTiming.duration')
- @DocsEditable()
- @Experimental() // untriaged
- @Creates('Null')
- @Returns('num|String')
- Object duration;
+ // Shadowing definition.
+ String get direction => JS("String", "#.direction", this);
- @DomName('AnimationEffectTiming.easing')
- @DocsEditable()
- @Experimental() // untriaged
- String easing;
+ set direction(String value) {
+ JS("void", "#.direction = #", this, value);
+ }
- @DomName('AnimationEffectTiming.endDelay')
- @DocsEditable()
- @Experimental() // untriaged
- num endDelay;
+ // Shadowing definition.
+ Object get duration => JS("Object", "#.duration", this);
- @DomName('AnimationEffectTiming.fill')
- @DocsEditable()
- @Experimental() // untriaged
- String fill;
+ set duration(Object value) {
+ JS("void", "#.duration = #", this, value);
+ }
- @DomName('AnimationEffectTiming.iterationStart')
- @DocsEditable()
- @Experimental() // untriaged
- num iterationStart;
+ // Shadowing definition.
+ String get easing => JS("String", "#.easing", this);
- @DomName('AnimationEffectTiming.iterations')
- @DocsEditable()
- @Experimental() // untriaged
- num iterations;
+ set easing(String value) {
+ JS("void", "#.easing = #", this, value);
+ }
- @DomName('AnimationEffectTiming.playbackRate')
+ // Shadowing definition.
+ num get endDelay => JS("num", "#.endDelay", this);
+
+ set endDelay(num value) {
+ JS("void", "#.endDelay = #", this, value);
+ }
+
+ // Shadowing definition.
+ String get fill => JS("String", "#.fill", this);
+
+ set fill(String value) {
+ JS("void", "#.fill = #", this, value);
+ }
+
+ // Shadowing definition.
+ num get iterationStart => JS("num", "#.iterationStart", this);
+
+ set iterationStart(num value) {
+ JS("void", "#.iterationStart = #", this, value);
+ }
+
+ // Shadowing definition.
+ num get iterations => JS("num", "#.iterations", this);
+
+ set iterations(num value) {
+ JS("void", "#.iterations = #", 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('AnimationEffectTimingReadOnly')
+@Experimental() // untriaged
+@Native("AnimationEffectTimingReadOnly")
+class AnimationEffectTimingReadOnly extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory AnimationEffectTimingReadOnly._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('AnimationEffectTimingReadOnly.delay')
@DocsEditable()
@Experimental() // untriaged
- num playbackRate;
+ final num delay;
+
+ @DomName('AnimationEffectTimingReadOnly.direction')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String direction;
+
+ @DomName('AnimationEffectTimingReadOnly.duration')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final Object duration;
+
+ @DomName('AnimationEffectTimingReadOnly.easing')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String easing;
+
+ @DomName('AnimationEffectTimingReadOnly.endDelay')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num endDelay;
+
+ @DomName('AnimationEffectTimingReadOnly.fill')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String fill;
+
+ @DomName('AnimationEffectTimingReadOnly.iterationStart')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num iterationStart;
+
+ @DomName('AnimationEffectTimingReadOnly.iterations')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num iterations;
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -468,48 +1102,48 @@
@DomName('AnimationEvent.elapsedTime')
@DocsEditable()
@Experimental() // untriaged
- final double elapsedTime;
+ final num 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')
+@DomName('AnimationPlaybackEvent')
@Experimental() // untriaged
-@Native("AnimationPlayerEvent")
-class AnimationPlayerEvent extends Event {
+@Native("AnimationPlaybackEvent")
+class AnimationPlaybackEvent extends Event {
// To suppress missing implicit constructor warnings.
- factory AnimationPlayerEvent._() {
+ factory AnimationPlaybackEvent._() {
throw new UnsupportedError("Not supported");
}
- @DomName('AnimationPlayerEvent.AnimationPlayerEvent')
+ @DomName('AnimationPlaybackEvent.AnimationPlaybackEvent')
@DocsEditable()
- factory AnimationPlayerEvent(String type, [Map eventInitDict]) {
+ factory AnimationPlaybackEvent(String type, [Map eventInitDict]) {
if (eventInitDict != null) {
var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
- return AnimationPlayerEvent._create_1(type, eventInitDict_1);
+ return AnimationPlaybackEvent._create_1(type, eventInitDict_1);
}
- return AnimationPlayerEvent._create_2(type);
+ return AnimationPlaybackEvent._create_2(type);
}
- static AnimationPlayerEvent _create_1(type, eventInitDict) => JS(
- 'AnimationPlayerEvent',
- 'new AnimationPlayerEvent(#,#)',
+ static AnimationPlaybackEvent _create_1(type, eventInitDict) => JS(
+ 'AnimationPlaybackEvent',
+ 'new AnimationPlaybackEvent(#,#)',
type,
eventInitDict);
- static AnimationPlayerEvent _create_2(type) =>
- JS('AnimationPlayerEvent', 'new AnimationPlayerEvent(#)', type);
+ static AnimationPlaybackEvent _create_2(type) =>
+ JS('AnimationPlaybackEvent', 'new AnimationPlaybackEvent(#)', type);
- @DomName('AnimationPlayerEvent.currentTime')
+ @DomName('AnimationPlaybackEvent.currentTime')
@DocsEditable()
@Experimental() // untriaged
- final double currentTime;
+ final num currentTime;
- @DomName('AnimationPlayerEvent.timelineTime')
+ @DomName('AnimationPlaybackEvent.timelineTime')
@DocsEditable()
@Experimental() // untriaged
- final double timelineTime;
+ final num 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
@@ -528,46 +1162,26 @@
@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;
+ final num currentTime;
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All 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')
+@DomName('AnimationWorkletGlobalScope')
@Experimental() // untriaged
-@Native("AppBannerPromptResult")
-class AppBannerPromptResult extends Interceptor {
+@Native("AnimationWorkletGlobalScope")
+class AnimationWorkletGlobalScope extends WorkletGlobalScope {
// To suppress missing implicit constructor warnings.
- factory AppBannerPromptResult._() {
+ factory AnimationWorkletGlobalScope._() {
throw new UnsupportedError("Not supported");
}
- @DomName('AppBannerPromptResult.outcome')
+ @DomName('AnimationWorkletGlobalScope.registerAnimator')
@DocsEditable()
@Experimental() // untriaged
- final String outcome;
-
- @DomName('AppBannerPromptResult.platform')
- @DocsEditable()
- @Experimental() // untriaged
- final String platform;
+ void registerAnimator(String name, Object animatorConstructor) 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
@@ -830,7 +1444,7 @@
*/
@DomName('HTMLAreaElement')
@Native("HTMLAreaElement")
-class AreaElement extends HtmlElement implements UrlUtils {
+class AreaElement extends HtmlElement implements HtmlHyperlinkElementUtils {
// To suppress missing implicit constructor warnings.
factory AreaElement._() {
throw new UnsupportedError("Not supported");
@@ -858,10 +1472,20 @@
@DocsEditable()
String coords;
- @DomName('HTMLAreaElement.referrerpolicy')
+ @DomName('HTMLAreaElement.download')
@DocsEditable()
@Experimental() // untriaged
- String referrerpolicy;
+ String download;
+
+ @DomName('HTMLAreaElement.referrerPolicy')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String referrerPolicy;
+
+ @DomName('HTMLAreaElement.rel')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String rel;
@DomName('HTMLAreaElement.shape')
@DocsEditable()
@@ -871,7 +1495,7 @@
@DocsEditable()
String target;
- // From URLUtils
+ // From HTMLHyperlinkElementUtils
@DomName('HTMLAreaElement.hash')
@DocsEditable()
@@ -956,160 +1580,63 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
-@DomName('AudioTrack')
+@DomName('AuthenticatorAssertionResponse')
@Experimental() // untriaged
-@Native("AudioTrack")
-class AudioTrack extends Interceptor {
+@Native("AuthenticatorAssertionResponse")
+class AuthenticatorAssertionResponse extends AuthenticatorResponse {
// To suppress missing implicit constructor warnings.
- factory AudioTrack._() {
+ factory AuthenticatorAssertionResponse._() {
throw new UnsupportedError("Not supported");
}
- @DomName('AudioTrack.enabled')
+ @DomName('AuthenticatorAssertionResponse.authenticatorData')
@DocsEditable()
@Experimental() // untriaged
- bool enabled;
+ final ByteBuffer authenticatorData;
- @DomName('AudioTrack.id')
+ @DomName('AuthenticatorAssertionResponse.signature')
@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;
+ final ByteBuffer signature;
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All 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')
+@DomName('AuthenticatorAttestationResponse')
@Experimental() // untriaged
-@Native("AudioTrackList")
-class AudioTrackList extends EventTarget
- with ListMixin<AudioTrack>, ImmutableListMixin<AudioTrack>
- implements JavaScriptIndexingBehavior<AudioTrack>, List<AudioTrack> {
+@Native("AuthenticatorAttestationResponse")
+class AuthenticatorAttestationResponse extends AuthenticatorResponse {
// To suppress missing implicit constructor warnings.
- factory AudioTrackList._() {
+ factory AuthenticatorAttestationResponse._() {
throw new UnsupportedError("Not supported");
}
- @DomName('AudioTrackList.changeEvent')
+ @DomName('AuthenticatorAttestationResponse.attestationObject')
@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);
+ final ByteBuffer attestationObject;
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All 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 {
+@DomName('AuthenticatorResponse')
+@Experimental() // untriaged
+@Native("AuthenticatorResponse")
+class AuthenticatorResponse extends Interceptor {
// To suppress missing implicit constructor warnings.
- factory AutocompleteErrorEvent._() {
+ factory AuthenticatorResponse._() {
throw new UnsupportedError("Not supported");
}
- @DomName('AutocompleteErrorEvent.AutocompleteErrorEvent')
+ @JSName('clientDataJSON')
+ @DomName('AuthenticatorResponse.clientDataJSON')
@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;
+ @Experimental() // untriaged
+ final ByteBuffer clientDataJson;
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -1140,6 +1667,278 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('BackgroundFetchClickEvent')
+@Experimental() // untriaged
+@Native("BackgroundFetchClickEvent")
+class BackgroundFetchClickEvent extends BackgroundFetchEvent {
+ // To suppress missing implicit constructor warnings.
+ factory BackgroundFetchClickEvent._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('BackgroundFetchClickEvent.BackgroundFetchClickEvent')
+ @DocsEditable()
+ factory BackgroundFetchClickEvent(String type, Map init) {
+ var init_1 = convertDartToNative_Dictionary(init);
+ return BackgroundFetchClickEvent._create_1(type, init_1);
+ }
+ static BackgroundFetchClickEvent _create_1(type, init) => JS(
+ 'BackgroundFetchClickEvent',
+ 'new BackgroundFetchClickEvent(#,#)',
+ type,
+ init);
+
+ @DomName('BackgroundFetchClickEvent.state')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String 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.
+
+@DocsEditable()
+@DomName('BackgroundFetchEvent')
+@Experimental() // untriaged
+@Native("BackgroundFetchEvent")
+class BackgroundFetchEvent extends ExtendableEvent {
+ // To suppress missing implicit constructor warnings.
+ factory BackgroundFetchEvent._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('BackgroundFetchEvent.BackgroundFetchEvent')
+ @DocsEditable()
+ factory BackgroundFetchEvent(String type, Map init) {
+ var init_1 = convertDartToNative_Dictionary(init);
+ return BackgroundFetchEvent._create_1(type, init_1);
+ }
+ static BackgroundFetchEvent _create_1(type, init) =>
+ JS('BackgroundFetchEvent', 'new BackgroundFetchEvent(#,#)', type, init);
+
+ @DomName('BackgroundFetchEvent.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('BackgroundFetchFailEvent')
+@Experimental() // untriaged
+@Native("BackgroundFetchFailEvent")
+class BackgroundFetchFailEvent extends BackgroundFetchEvent {
+ // To suppress missing implicit constructor warnings.
+ factory BackgroundFetchFailEvent._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('BackgroundFetchFailEvent.BackgroundFetchFailEvent')
+ @DocsEditable()
+ factory BackgroundFetchFailEvent(String type, Map init) {
+ var init_1 = convertDartToNative_Dictionary(init);
+ return BackgroundFetchFailEvent._create_1(type, init_1);
+ }
+ static BackgroundFetchFailEvent _create_1(type, init) => JS(
+ 'BackgroundFetchFailEvent',
+ 'new BackgroundFetchFailEvent(#,#)',
+ type,
+ init);
+
+ @DomName('BackgroundFetchFailEvent.fetches')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final List<BackgroundFetchSettledFetch> fetches;
+}
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+@DocsEditable()
+@DomName('BackgroundFetchFetch')
+@Experimental() // untriaged
+@Native("BackgroundFetchFetch")
+class BackgroundFetchFetch extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory BackgroundFetchFetch._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('BackgroundFetchFetch.request')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final _Request request;
+}
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+@DocsEditable()
+@DomName('BackgroundFetchManager')
+@Experimental() // untriaged
+@Native("BackgroundFetchManager")
+class BackgroundFetchManager extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory BackgroundFetchManager._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('BackgroundFetchManager.fetch')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future fetch(String id, Object requests, [Map options]) {
+ if (options != null) {
+ var options_1 = convertDartToNative_Dictionary(options);
+ return _fetch_1(id, requests, options_1);
+ }
+ return _fetch_2(id, requests);
+ }
+
+ @JSName('fetch')
+ @DomName('BackgroundFetchManager.fetch')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future _fetch_1(id, requests, options) native;
+ @JSName('fetch')
+ @DomName('BackgroundFetchManager.fetch')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future _fetch_2(id, requests) native;
+
+ @DomName('BackgroundFetchManager.get')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future get(String id) native;
+
+ @DomName('BackgroundFetchManager.getIds')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future getIds() 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('BackgroundFetchRegistration')
+@Experimental() // untriaged
+@Native("BackgroundFetchRegistration")
+class BackgroundFetchRegistration extends EventTarget {
+ // To suppress missing implicit constructor warnings.
+ factory BackgroundFetchRegistration._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('BackgroundFetchRegistration.downloadTotal')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final int downloadTotal;
+
+ @DomName('BackgroundFetchRegistration.downloaded')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final int downloaded;
+
+ @DomName('BackgroundFetchRegistration.id')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String id;
+
+ @DomName('BackgroundFetchRegistration.title')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String title;
+
+ @DomName('BackgroundFetchRegistration.totalDownloadSize')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final int totalDownloadSize;
+
+ @DomName('BackgroundFetchRegistration.uploadTotal')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final int uploadTotal;
+
+ @DomName('BackgroundFetchRegistration.uploaded')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final int uploaded;
+
+ @DomName('BackgroundFetchRegistration.abort')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future abort() 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('BackgroundFetchSettledFetch')
+@Experimental() // untriaged
+@Native("BackgroundFetchSettledFetch")
+class BackgroundFetchSettledFetch extends BackgroundFetchFetch {
+ // To suppress missing implicit constructor warnings.
+ factory BackgroundFetchSettledFetch._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('BackgroundFetchSettledFetch.BackgroundFetchSettledFetch')
+ @DocsEditable()
+ factory BackgroundFetchSettledFetch(_Request request, _Response response) {
+ return BackgroundFetchSettledFetch._create_1(request, response);
+ }
+ static BackgroundFetchSettledFetch _create_1(request, response) => JS(
+ 'BackgroundFetchSettledFetch',
+ 'new BackgroundFetchSettledFetch(#,#)',
+ request,
+ response);
+
+ @DomName('BackgroundFetchSettledFetch.response')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final _Response 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('BackgroundFetchedEvent')
+@Experimental() // untriaged
+@Native("BackgroundFetchedEvent")
+class BackgroundFetchedEvent extends BackgroundFetchEvent {
+ // To suppress missing implicit constructor warnings.
+ factory BackgroundFetchedEvent._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('BackgroundFetchedEvent.BackgroundFetchedEvent')
+ @DocsEditable()
+ factory BackgroundFetchedEvent(String type, Map init) {
+ var init_1 = convertDartToNative_Dictionary(init);
+ return BackgroundFetchedEvent._create_1(type, init_1);
+ }
+ static BackgroundFetchedEvent _create_1(type, init) => JS(
+ 'BackgroundFetchedEvent', 'new BackgroundFetchedEvent(#,#)', type, init);
+
+ @DomName('BackgroundFetchedEvent.fetches')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final List<BackgroundFetchSettledFetch> fetches;
+
+ @DomName('BackgroundFetchedEvent.updateUI')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future updateUI(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('BarProp')
// http://www.whatwg.org/specs/web-apps/current-work/multipage/browsers.html#barprop
@deprecated // standard
@@ -1159,6 +1958,33 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('BarcodeDetector')
+@Experimental() // untriaged
+@Native("BarcodeDetector")
+class BarcodeDetector extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory BarcodeDetector._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('BarcodeDetector.BarcodeDetector')
+ @DocsEditable()
+ factory BarcodeDetector() {
+ return BarcodeDetector._create_1();
+ }
+ static BarcodeDetector _create_1() =>
+ JS('BarcodeDetector', 'new BarcodeDetector()');
+
+ @DomName('BarcodeDetector.detect')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future detect(/*ImageBitmapSource*/ image) 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('HTMLBaseElement')
@Native("HTMLBaseElement")
class BaseElement extends HtmlElement {
@@ -1210,15 +2036,15 @@
@DomName('BatteryManager.chargingTime')
@DocsEditable()
- final double chargingTime;
+ final num chargingTime;
@DomName('BatteryManager.dischargingTime')
@DocsEditable()
- final double dischargingTime;
+ final num dischargingTime;
@DomName('BatteryManager.level')
@DocsEditable()
- final double level;
+ final num 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
@@ -1251,7 +2077,10 @@
static BeforeInstallPromptEvent _create_2(type) =>
JS('BeforeInstallPromptEvent', 'new BeforeInstallPromptEvent(#)', type);
- List<String> get platforms => JS("List<String>", "#.platforms", this);
+ @DomName('BeforeInstallPromptEvent.platforms')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final List<String> platforms;
@DomName('BeforeInstallPromptEvent.userChoice')
@DocsEditable()
@@ -1303,11 +2132,6 @@
@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;
@@ -1369,6 +2193,50 @@
@DocsEditable()
@Experimental() // untriaged
final Blob data;
+
+ @DomName('BlobEvent.timecode')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num timecode;
+}
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+@DocsEditable()
+@DomName('BluetoothRemoteGATTDescriptor')
+@Experimental() // untriaged
+@Native("BluetoothRemoteGATTDescriptor")
+class BluetoothRemoteGattDescriptor extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory BluetoothRemoteGattDescriptor._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('BluetoothRemoteGATTDescriptor.characteristic')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final _BluetoothRemoteGATTCharacteristic characteristic;
+
+ @DomName('BluetoothRemoteGATTDescriptor.uuid')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String uuid;
+
+ @DomName('BluetoothRemoteGATTDescriptor.value')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final ByteData value;
+
+ @DomName('BluetoothRemoteGATTDescriptor.readValue')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future readValue() native;
+
+ @DomName('BluetoothRemoteGATTDescriptor.writeValue')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future writeValue(/*BufferSource*/ 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
@@ -1399,6 +2267,11 @@
@Experimental() // untriaged
Future blob() native;
+ @DomName('Body.formData')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future formData() native;
+
@DomName('Body.json')
@DocsEditable()
@Experimental() // untriaged
@@ -1644,6 +2517,78 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('BroadcastChannel')
+@Experimental() // untriaged
+@Native("BroadcastChannel")
+class BroadcastChannel extends EventTarget {
+ // To suppress missing implicit constructor warnings.
+ factory BroadcastChannel._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('BroadcastChannel.messageEvent')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const EventStreamProvider<MessageEvent> messageEvent =
+ const EventStreamProvider<MessageEvent>('message');
+
+ @DomName('BroadcastChannel.BroadcastChannel')
+ @DocsEditable()
+ factory BroadcastChannel(String name) {
+ return BroadcastChannel._create_1(name);
+ }
+ static BroadcastChannel _create_1(name) =>
+ JS('BroadcastChannel', 'new BroadcastChannel(#)', name);
+
+ @DomName('BroadcastChannel.name')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String name;
+
+ @DomName('BroadcastChannel.close')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void close() native;
+
+ @DomName('BroadcastChannel.postMessage')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void postMessage(Object message) native;
+
+ @DomName('BroadcastChannel.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('BudgetState')
+@Experimental() // untriaged
+@Native("BudgetState")
+class BudgetState extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory BudgetState._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('BudgetState.budgetAt')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num budgetAt;
+
+ @DomName('BudgetState.time')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final int 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.
+
+@DocsEditable()
@DomName('HTMLButtonElement')
@Native("HTMLButtonElement")
class ButtonElement extends HtmlElement {
@@ -1818,108 +2763,51 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
-@DomName('CalcLength')
+@DomName('CanMakePaymentEvent')
@Experimental() // untriaged
-@Native("CalcLength")
-class CalcLength extends LengthValue {
+@Native("CanMakePaymentEvent")
+class CanMakePaymentEvent extends ExtendableEvent {
// To suppress missing implicit constructor warnings.
- factory CalcLength._() {
+ factory CanMakePaymentEvent._() {
throw new UnsupportedError("Not supported");
}
- @DomName('CalcLength.CalcLength')
+ @DomName('CanMakePaymentEvent.CanMakePaymentEvent')
@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");
+ factory CanMakePaymentEvent(String type, Map eventInitDict) {
+ var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+ return CanMakePaymentEvent._create_1(type, eventInitDict_1);
}
- 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);
+ static CanMakePaymentEvent _create_1(type, eventInitDict) => JS(
+ 'CanMakePaymentEvent',
+ 'new CanMakePaymentEvent(#,#)',
+ type,
+ eventInitDict);
- @DomName('CalcLength.ch')
+ @DomName('CanMakePaymentEvent.methodData')
@DocsEditable()
@Experimental() // untriaged
- final double ch;
+ final List methodData;
- @DomName('CalcLength.cm')
+ @DomName('CanMakePaymentEvent.modifiers')
@DocsEditable()
@Experimental() // untriaged
- final double cm;
+ final List modifiers;
- @DomName('CalcLength.em')
+ @DomName('CanMakePaymentEvent.paymentRequestOrigin')
@DocsEditable()
@Experimental() // untriaged
- final double em;
+ final String paymentRequestOrigin;
- @DomName('CalcLength.ex')
+ @DomName('CanMakePaymentEvent.topLevelOrigin')
@DocsEditable()
@Experimental() // untriaged
- final double ex;
+ final String topLevelOrigin;
- @JSName('in')
- @DomName('CalcLength.in')
+ @DomName('CanMakePaymentEvent.respondWith')
@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;
+ void respondWith(Future canMakePaymentResponse) 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
@@ -2045,6 +2933,11 @@
@DocsEditable()
String _toDataUrl(String type, [arguments_OR_quality]) native;
+ @DomName('HTMLCanvasElement.transferControlToOffscreen')
+ @DocsEditable()
+ @Experimental() // untriaged
+ OffscreenCanvas transferControlToOffscreen() native;
+
/// Stream of `webglcontextlost` events handled by this [CanvasElement].
@DomName('HTMLCanvasElement.onwebglcontextlost')
@DocsEditable()
@@ -2406,14 +3299,51 @@
@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);
+ ImageData createImageData(data_OR_imagedata_OR_sw,
+ [int sh_OR_sw,
+ imageDataColorSettings_OR_sh,
+ Map imageDataColorSettings]) {
+ if ((data_OR_imagedata_OR_sw is ImageData) &&
+ sh_OR_sw == null &&
+ imageDataColorSettings_OR_sh == null &&
+ imageDataColorSettings == null) {
+ var imagedata_1 = convertDartToNative_ImageData(data_OR_imagedata_OR_sw);
return convertNativeToDart_ImageData(_createImageData_1(imagedata_1));
}
- if (sh != null && (imagedata_OR_sw is num)) {
+ if (sh_OR_sw != null &&
+ (data_OR_imagedata_OR_sw is int) &&
+ imageDataColorSettings_OR_sh == null &&
+ imageDataColorSettings == null) {
return convertNativeToDart_ImageData(
- _createImageData_2(imagedata_OR_sw, sh));
+ _createImageData_2(data_OR_imagedata_OR_sw, sh_OR_sw));
+ }
+ if ((imageDataColorSettings_OR_sh is Map) &&
+ sh_OR_sw != null &&
+ (data_OR_imagedata_OR_sw is int) &&
+ imageDataColorSettings == null) {
+ var imageDataColorSettings_1 =
+ convertDartToNative_Dictionary(imageDataColorSettings_OR_sh);
+ return convertNativeToDart_ImageData(_createImageData_3(
+ data_OR_imagedata_OR_sw, sh_OR_sw, imageDataColorSettings_1));
+ }
+ if ((imageDataColorSettings_OR_sh is int) &&
+ sh_OR_sw != null &&
+ data_OR_imagedata_OR_sw != null &&
+ imageDataColorSettings == null) {
+ return convertNativeToDart_ImageData(_createImageData_4(
+ data_OR_imagedata_OR_sw, sh_OR_sw, imageDataColorSettings_OR_sh));
+ }
+ if (imageDataColorSettings != null &&
+ (imageDataColorSettings_OR_sh is int) &&
+ sh_OR_sw != null &&
+ data_OR_imagedata_OR_sw != null) {
+ var imageDataColorSettings_1 =
+ convertDartToNative_Dictionary(imageDataColorSettings);
+ return convertNativeToDart_ImageData(_createImageData_5(
+ data_OR_imagedata_OR_sw,
+ sh_OR_sw,
+ imageDataColorSettings_OR_sh,
+ imageDataColorSettings_1));
}
throw new ArgumentError("Incorrect number or type of arguments");
}
@@ -2427,7 +3357,22 @@
@DomName('CanvasRenderingContext2D.createImageData')
@DocsEditable()
@Creates('ImageData|=Object')
- _createImageData_2(num sw, sh) native;
+ _createImageData_2(int sw, sh) native;
+ @JSName('createImageData')
+ @DomName('CanvasRenderingContext2D.createImageData')
+ @DocsEditable()
+ @Creates('ImageData|=Object')
+ _createImageData_3(int sw, sh, imageDataColorSettings) native;
+ @JSName('createImageData')
+ @DomName('CanvasRenderingContext2D.createImageData')
+ @DocsEditable()
+ @Creates('ImageData|=Object')
+ _createImageData_4(data, sw, int sh) native;
+ @JSName('createImageData')
+ @DomName('CanvasRenderingContext2D.createImageData')
+ @DocsEditable()
+ @Creates('ImageData|=Object')
+ _createImageData_5(data, sw, int sh, imageDataColorSettings) native;
@DomName('CanvasRenderingContext2D.createLinearGradient')
@DocsEditable()
@@ -2469,7 +3414,7 @@
@DomName('CanvasRenderingContext2D.getImageData')
@DocsEditable()
@Creates('ImageData|=Object')
- ImageData getImageData(num sx, num sy, num sw, num sh) {
+ ImageData getImageData(int sx, int sy, int sw, int sh) {
return convertNativeToDart_ImageData(_getImageData_1(sx, sy, sw, sh));
}
@@ -2504,8 +3449,8 @@
@DomName('CanvasRenderingContext2D.putImageData')
@DocsEditable()
- void putImageData(ImageData imagedata, num dx, num dy,
- [num dirtyX, num dirtyY, num dirtyWidth, num dirtyHeight]) {
+ void putImageData(ImageData imagedata, int dx, int dy,
+ [int dirtyX, int dirtyY, int dirtyWidth, int dirtyHeight]) {
if (dirtyX == null &&
dirtyY == null &&
dirtyWidth == null &&
@@ -2591,7 +3536,7 @@
@DocsEditable()
void translate(num x, num y) native;
- // From CanvasPathMethods
+ // From CanvasPath
@JSName('arc')
@DomName('CanvasRenderingContext2D.arc')
@@ -2991,6 +3936,16 @@
// From ChildNode
+ @DomName('CharacterData.after')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void after(Object nodes) native;
+
+ @DomName('CharacterData.before')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void before(Object nodes) native;
+
// From NonDocumentTypeChildNode
@DomName('CharacterData.nextElementSibling')
@@ -3014,6 +3969,10 @@
throw new UnsupportedError("Not supported");
}
+ void after(Object nodes);
+
+ void before(Object nodes);
+
void remove();
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
@@ -3021,68 +3980,6 @@
// 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")
@@ -3102,6 +3999,11 @@
@Experimental() // untriaged
final String id;
+ @DomName('Client.type')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String type;
+
@DomName('Client.url')
@DocsEditable()
@Experimental() // untriaged
@@ -3110,28 +4012,7 @@
@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;
+ void postMessage(Object message, [List<Object> transfer]) 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
@@ -3198,6 +4079,20 @@
throw new UnsupportedError("Not supported");
}
+ @DomName('ClipboardEvent.ClipboardEvent')
+ @DocsEditable()
+ factory ClipboardEvent(String type, [Map eventInitDict]) {
+ if (eventInitDict != null) {
+ var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+ return ClipboardEvent._create_1(type, eventInitDict_1);
+ }
+ return ClipboardEvent._create_2(type);
+ }
+ static ClipboardEvent _create_1(type, eventInitDict) =>
+ JS('ClipboardEvent', 'new ClipboardEvent(#,#)', type, eventInitDict);
+ static ClipboardEvent _create_2(type) =>
+ JS('ClipboardEvent', 'new ClipboardEvent(#)', type);
+
@DomName('ClipboardEvent.clipboardData')
@DocsEditable()
@Experimental() // untriaged
@@ -3319,328 +4214,6 @@
// 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()
@@ -3680,6 +4253,64 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('CookieStore')
+@Experimental() // untriaged
+@Native("CookieStore")
+class CookieStore extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory CookieStore._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('CookieStore.getAll')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future getAll([Map options]) {
+ if (options != null) {
+ var options_1 = convertDartToNative_Dictionary(options);
+ return _getAll_1(options_1);
+ }
+ return _getAll_2();
+ }
+
+ @JSName('getAll')
+ @DomName('CookieStore.getAll')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future _getAll_1(options) native;
+ @JSName('getAll')
+ @DomName('CookieStore.getAll')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future _getAll_2() native;
+
+ @DomName('CookieStore.set')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future set(String name, String value, [Map options]) {
+ if (options != null) {
+ var options_1 = convertDartToNative_Dictionary(options);
+ return _set_1(name, value, options_1);
+ }
+ return _set_2(name, value);
+ }
+
+ @JSName('set')
+ @DomName('CookieStore.set')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future _set_1(name, value, options) native;
+ @JSName('set')
+ @DomName('CookieStore.set')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future _set_2(name, 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('Coordinates')
@Native("Coordinates")
class Coordinates extends Interceptor {
@@ -3690,31 +4321,31 @@
@DomName('Coordinates.accuracy')
@DocsEditable()
- final double accuracy;
+ final num accuracy;
@DomName('Coordinates.altitude')
@DocsEditable()
- final double altitude;
+ final num altitude;
@DomName('Coordinates.altitudeAccuracy')
@DocsEditable()
- final double altitudeAccuracy;
+ final num altitudeAccuracy;
@DomName('Coordinates.heading')
@DocsEditable()
- final double heading;
+ final num heading;
@DomName('Coordinates.latitude')
@DocsEditable()
- final double latitude;
+ final num latitude;
@DomName('Coordinates.longitude')
@DocsEditable()
- final double longitude;
+ final num longitude;
@DomName('Coordinates.speed')
@DocsEditable()
- final double speed;
+ final num 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
@@ -3730,22 +4361,11 @@
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
@@ -3756,6 +4376,31 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('CredentialUserData')
+@Experimental() // untriaged
+@Native("CredentialUserData")
+class CredentialUserData extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory CredentialUserData._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @JSName('iconURL')
+ @DomName('CredentialUserData.iconURL')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String iconUrl;
+
+ @DomName('CredentialUserData.name')
+ @DocsEditable()
+ @Experimental() // untriaged
+ 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.
+
+@DocsEditable()
@DomName('CredentialsContainer')
@Experimental() // untriaged
@Native("CredentialsContainer")
@@ -3765,6 +4410,28 @@
throw new UnsupportedError("Not supported");
}
+ @DomName('CredentialsContainer.create')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future create([Map options]) {
+ if (options != null) {
+ var options_1 = convertDartToNative_Dictionary(options);
+ return _create_1(options_1);
+ }
+ return _create_2();
+ }
+
+ @JSName('create')
+ @DomName('CredentialsContainer.create')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future _create_1(options) native;
+ @JSName('create')
+ @DomName('CredentialsContainer.create')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future _create_2() native;
+
@DomName('CredentialsContainer.get')
@DocsEditable()
@Experimental() // untriaged
@@ -3787,6 +4454,11 @@
@Experimental() // untriaged
Future _get_2() native;
+ @DomName('CredentialsContainer.preventSilentAccess')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future preventSilentAccess() native;
+
@DomName('CredentialsContainer.requireUserMediation')
@DocsEditable()
@Experimental() // untriaged
@@ -3797,56 +4469,6 @@
@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.
@@ -3916,7 +4538,7 @@
@DomName('CryptoKey.usages')
@DocsEditable()
@Experimental() // untriaged
- final List<String> usages;
+ final Object 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
@@ -3933,11 +4555,147 @@
throw new UnsupportedError("Not supported");
}
+ @DomName('CSS.paintWorklet')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final _Worklet paintWorklet;
+
+ @DomName('CSS.Hz')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static CssUnitValue Hz(num value) native;
+
+ @DomName('CSS.ch')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static CssUnitValue ch(num value) native;
+
+ @DomName('CSS.cm')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static CssUnitValue cm(num value) native;
+
+ @DomName('CSS.deg')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static CssUnitValue deg(num value) native;
+
+ @DomName('CSS.dpcm')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static CssUnitValue dpcm(num value) native;
+
+ @DomName('CSS.dpi')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static CssUnitValue dpi(num value) native;
+
+ @DomName('CSS.dppx')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static CssUnitValue dppx(num value) native;
+
+ @DomName('CSS.em')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static CssUnitValue em(num value) native;
+
@DomName('CSS.escape')
@DocsEditable()
@Experimental() // untriaged
static String escape(String ident) native;
+ @DomName('CSS.ex')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static CssUnitValue ex(num value) native;
+
+ @DomName('CSS.fr')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static CssUnitValue fr(num value) native;
+
+ @DomName('CSS.grad')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static CssUnitValue grad(num value) native;
+
+ @JSName('in')
+ @DomName('CSS.in')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static CssUnitValue inch(num value) native;
+
+ @DomName('CSS.kHz')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static CssUnitValue kHz(num value) native;
+
+ @DomName('CSS.mm')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static CssUnitValue mm(num value) native;
+
+ @DomName('CSS.ms')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static CssUnitValue ms(num value) native;
+
+ @DomName('CSS.number')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static CssUnitValue number(num value) native;
+
+ @DomName('CSS.pc')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static CssUnitValue pc(num value) native;
+
+ @DomName('CSS.percent')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static CssUnitValue percent(num value) native;
+
+ @DomName('CSS.pt')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static CssUnitValue pt(num value) native;
+
+ @DomName('CSS.px')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static CssUnitValue px(num value) native;
+
+ @DomName('CSS.rad')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static CssUnitValue rad(num value) native;
+
+ @DomName('CSS.registerProperty')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static void registerProperty(Map descriptor) {
+ var descriptor_1 = convertDartToNative_Dictionary(descriptor);
+ _registerProperty_1(descriptor_1);
+ return;
+ }
+
+ @JSName('registerProperty')
+ @DomName('CSS.registerProperty')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static void _registerProperty_1(descriptor) native;
+
+ @DomName('CSS.rem')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static CssUnitValue rem(num value) native;
+
+ @DomName('CSS.s')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static CssUnitValue s(num value) native;
+
@DomName('CSS.supports')
@DocsEditable()
static bool supports(String property, String value) native;
@@ -3946,6 +4704,31 @@
@DomName('CSS.supports')
@DocsEditable()
static bool supportsCondition(String conditionText) native;
+
+ @DomName('CSS.turn')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static CssUnitValue turn(num value) native;
+
+ @DomName('CSS.vh')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static CssUnitValue vh(num value) native;
+
+ @DomName('CSS.vmax')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static CssUnitValue vmax(num value) native;
+
+ @DomName('CSS.vmin')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static CssUnitValue vmin(num value) native;
+
+ @DomName('CSS.vw')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static CssUnitValue vw(num 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
@@ -3971,6 +4754,25 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('CSSConditionRule')
+@Experimental() // untriaged
+@Native("CSSConditionRule")
+class CssConditionRule extends CssGroupingRule {
+ // To suppress missing implicit constructor warnings.
+ factory CssConditionRule._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('CSSConditionRule.conditionText')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String conditionText;
+}
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All 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 {
@@ -4019,6 +4821,35 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('CSSImageValue')
+@Experimental() // untriaged
+@Native("CSSImageValue")
+class CssImageValue extends CssResourceValue {
+ // To suppress missing implicit constructor warnings.
+ factory CssImageValue._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('CSSImageValue.intrinsicHeight')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num intrinsicHeight;
+
+ @DomName('CSSImageValue.intrinsicRatio')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num intrinsicRatio;
+
+ @DomName('CSSImageValue.intrinsicWidth')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num intrinsicWidth;
+}
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All 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 {
@@ -4114,9 +4945,69 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('CSSKeywordValue')
+@Experimental() // untriaged
+@Native("CSSKeywordValue")
+class CssKeywordValue extends CssStyleValue {
+ // To suppress missing implicit constructor warnings.
+ factory CssKeywordValue._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('CSSKeywordValue.CSSKeywordValue')
+ @DocsEditable()
+ factory CssKeywordValue(String keyword) {
+ return CssKeywordValue._create_1(keyword);
+ }
+ static CssKeywordValue _create_1(keyword) =>
+ JS('CssKeywordValue', 'new CSSKeywordValue(#)', keyword);
+
+ @DomName('CSSKeywordValue.value')
+ @DocsEditable()
+ @Experimental() // untriaged
+ 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('CSSMatrixComponent')
+@Experimental() // untriaged
+@Native("CSSMatrixComponent")
+class CssMatrixComponent extends CssTransformComponent {
+ // To suppress missing implicit constructor warnings.
+ factory CssMatrixComponent._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('CSSMatrixComponent.CSSMatrixComponent')
+ @DocsEditable()
+ factory CssMatrixComponent(DomMatrixReadOnly matrix, [Map options]) {
+ if (options != null) {
+ var options_1 = convertDartToNative_Dictionary(options);
+ return CssMatrixComponent._create_1(matrix, options_1);
+ }
+ return CssMatrixComponent._create_2(matrix);
+ }
+ static CssMatrixComponent _create_1(matrix, options) =>
+ JS('CssMatrixComponent', 'new CSSMatrixComponent(#,#)', matrix, options);
+ static CssMatrixComponent _create_2(matrix) =>
+ JS('CssMatrixComponent', 'new CSSMatrixComponent(#)', matrix);
+
+ @DomName('CSSMatrixComponent.matrix')
+ @DocsEditable()
+ @Experimental() // untriaged
+ DomMatrix matrix;
+}
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All 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 {
+class CssMediaRule extends CssConditionRule {
// To suppress missing implicit constructor warnings.
factory CssMediaRule._() {
throw new UnsupportedError("Not supported");
@@ -4156,6 +5047,50 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('CSSNumericValue')
+@Experimental() // untriaged
+@Native("CSSNumericValue")
+class CssNumericValue extends CssStyleValue {
+ // To suppress missing implicit constructor warnings.
+ factory CssNumericValue._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('CSSNumericValue.add')
+ @DocsEditable()
+ @Experimental() // untriaged
+ CssNumericValue add(CssNumericValue value) native;
+
+ @DomName('CSSNumericValue.div')
+ @DocsEditable()
+ @Experimental() // untriaged
+ CssNumericValue div(num value) native;
+
+ @DomName('CSSNumericValue.mul')
+ @DocsEditable()
+ @Experimental() // untriaged
+ CssNumericValue mul(num value) native;
+
+ @DomName('CSSNumericValue.parse')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static CssNumericValue parse(String cssText) native;
+
+ @DomName('CSSNumericValue.sub')
+ @DocsEditable()
+ @Experimental() // untriaged
+ CssNumericValue sub(CssNumericValue value) native;
+
+ @DomName('CSSNumericValue.to')
+ @DocsEditable()
+ @Experimental() // untriaged
+ CssNumericValue to(String unit) 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('CSSPageRule')
@Native("CSSPageRule")
class CssPageRule extends CssRule {
@@ -4177,6 +5112,140 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('CSSPerspective')
+@Experimental() // untriaged
+@Native("CSSPerspective")
+class CssPerspective extends CssTransformComponent {
+ // To suppress missing implicit constructor warnings.
+ factory CssPerspective._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('CSSPerspective.CSSPerspective')
+ @DocsEditable()
+ factory CssPerspective(CssNumericValue length) {
+ return CssPerspective._create_1(length);
+ }
+ static CssPerspective _create_1(length) =>
+ JS('CssPerspective', 'new CSSPerspective(#)', length);
+
+ @DomName('CSSPerspective.length')
+ @DocsEditable()
+ @Experimental() // untriaged
+ CssNumericValue 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('CSSPositionValue')
+@Experimental() // untriaged
+@Native("CSSPositionValue")
+class CssPositionValue extends CssStyleValue {
+ // To suppress missing implicit constructor warnings.
+ factory CssPositionValue._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('CSSPositionValue.CSSPositionValue')
+ @DocsEditable()
+ factory CssPositionValue(CssNumericValue x, CssNumericValue y) {
+ return CssPositionValue._create_1(x, y);
+ }
+ static CssPositionValue _create_1(x, y) =>
+ JS('CssPositionValue', 'new CSSPositionValue(#,#)', x, y);
+
+ @DomName('CSSPositionValue.x')
+ @DocsEditable()
+ @Experimental() // untriaged
+ CssNumericValue x;
+
+ @DomName('CSSPositionValue.y')
+ @DocsEditable()
+ @Experimental() // untriaged
+ CssNumericValue 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('CSSResourceValue')
+@Experimental() // untriaged
+@Native("CSSResourceValue")
+class CssResourceValue extends CssStyleValue {
+ // To suppress missing implicit constructor warnings.
+ factory CssResourceValue._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('CSSResourceValue.state')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String 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.
+
+@DocsEditable()
+@DomName('CSSRotation')
+@Experimental() // untriaged
+@Native("CSSRotation")
+class CssRotation extends CssTransformComponent {
+ // To suppress missing implicit constructor warnings.
+ factory CssRotation._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('CSSRotation.CSSRotation')
+ @DocsEditable()
+ factory CssRotation(angleValue_OR_x, [num y, num z, CssNumericValue angle]) {
+ if ((angleValue_OR_x is CssNumericValue) &&
+ y == null &&
+ z == null &&
+ angle == null) {
+ return CssRotation._create_1(angleValue_OR_x);
+ }
+ if ((angle is CssNumericValue) &&
+ (z is num) &&
+ (y is num) &&
+ (angleValue_OR_x is num)) {
+ return CssRotation._create_2(angleValue_OR_x, y, z, angle);
+ }
+ throw new ArgumentError("Incorrect number or type of arguments");
+ }
+ static CssRotation _create_1(angleValue_OR_x) =>
+ JS('CssRotation', 'new CSSRotation(#)', angleValue_OR_x);
+ static CssRotation _create_2(angleValue_OR_x, y, z, angle) => JS(
+ 'CssRotation', 'new CSSRotation(#,#,#,#)', angleValue_OR_x, y, z, angle);
+
+ @DomName('CSSRotation.angle')
+ @DocsEditable()
+ @Experimental() // untriaged
+ CssNumericValue angle;
+
+ @DomName('CSSRotation.x')
+ @DocsEditable()
+ @Experimental() // untriaged
+ num x;
+
+ @DomName('CSSRotation.y')
+ @DocsEditable()
+ @Experimental() // untriaged
+ num y;
+
+ @DomName('CSSRotation.z')
+ @DocsEditable()
+ @Experimental() // untriaged
+ num 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('CSSRule')
@Native("CSSRule")
class CssRule extends Interceptor {
@@ -4233,18 +5302,6 @@
@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;
@@ -4261,6 +5318,81 @@
@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('CSSScale')
+@Experimental() // untriaged
+@Native("CSSScale")
+class CssScale extends CssTransformComponent {
+ // To suppress missing implicit constructor warnings.
+ factory CssScale._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('CSSScale.CSSScale')
+ @DocsEditable()
+ factory CssScale(num x, num y, [num z]) {
+ if ((y is num) && (x is num) && z == null) {
+ return CssScale._create_1(x, y);
+ }
+ if ((z is num) && (y is num) && (x is num)) {
+ return CssScale._create_2(x, y, z);
+ }
+ throw new ArgumentError("Incorrect number or type of arguments");
+ }
+ static CssScale _create_1(x, y) => JS('CssScale', 'new CSSScale(#,#)', x, y);
+ static CssScale _create_2(x, y, z) =>
+ JS('CssScale', 'new CSSScale(#,#,#)', x, y, z);
+
+ @DomName('CSSScale.x')
+ @DocsEditable()
+ @Experimental() // untriaged
+ num x;
+
+ @DomName('CSSScale.y')
+ @DocsEditable()
+ @Experimental() // untriaged
+ num y;
+
+ @DomName('CSSScale.z')
+ @DocsEditable()
+ @Experimental() // untriaged
+ num 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('CSSSkew')
+@Experimental() // untriaged
+@Native("CSSSkew")
+class CssSkew extends CssTransformComponent {
+ // To suppress missing implicit constructor warnings.
+ factory CssSkew._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('CSSSkew.CSSSkew')
+ @DocsEditable()
+ factory CssSkew(CssNumericValue ax, CssNumericValue ay) {
+ return CssSkew._create_1(ax, ay);
+ }
+ static CssSkew _create_1(ax, ay) => JS('CssSkew', 'new CSSSkew(#,#)', ax, ay);
+
+ @DomName('CSSSkew.ax')
+ @DocsEditable()
+ @Experimental() // untriaged
+ CssNumericValue ax;
+
+ @DomName('CSSSkew.ay')
+ @DocsEditable()
+ @Experimental() // untriaged
+ CssNumericValue ay;
+}
// 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
@@ -8807,31 +9939,234 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('CSSStyleValue')
+@Experimental() // untriaged
+@Native("CSSStyleValue")
+class CssStyleValue extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory CssStyleValue._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('CSSStyleValue.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('CSSSupportsRule')
@Native("CSSSupportsRule")
-class CssSupportsRule extends CssRule {
+class CssSupportsRule extends CssConditionRule {
// To suppress missing implicit constructor warnings.
factory CssSupportsRule._() {
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.
- @DomName('CSSSupportsRule.conditionText')
- @DocsEditable()
- final String conditionText;
+@DocsEditable()
+@DomName('CSSTransformComponent')
+@Experimental() // untriaged
+@Native("CSSTransformComponent")
+class CssTransformComponent extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory CssTransformComponent._() {
+ throw new UnsupportedError("Not supported");
+ }
- @DomName('CSSSupportsRule.cssRules')
+ @DomName('CSSTransformComponent.is2D')
@DocsEditable()
- @Returns('_CssRuleList|Null')
- @Creates('_CssRuleList')
- final List<CssRule> cssRules;
+ @Experimental() // untriaged
+ bool is2D;
+}
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for 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('CSSSupportsRule.deleteRule')
- @DocsEditable()
- void deleteRule(int index) native;
+@DocsEditable()
+@DomName('CSSTransformValue')
+@Experimental() // untriaged
+@Native("CSSTransformValue")
+class CssTransformValue extends CssStyleValue {
+ // To suppress missing implicit constructor warnings.
+ factory CssTransformValue._() {
+ throw new UnsupportedError("Not supported");
+ }
- @DomName('CSSSupportsRule.insertRule')
+ @DomName('CSSTransformValue.CSSTransformValue')
@DocsEditable()
- int insertRule(String rule, int index) native;
+ factory CssTransformValue([List<CssTransformComponent> transformComponents]) {
+ if (transformComponents == null) {
+ return CssTransformValue._create_1();
+ }
+ if ((transformComponents is List<CssTransformComponent>)) {
+ return CssTransformValue._create_2(transformComponents);
+ }
+ throw new ArgumentError("Incorrect number or type of arguments");
+ }
+ static CssTransformValue _create_1() =>
+ JS('CssTransformValue', 'new CSSTransformValue()');
+ static CssTransformValue _create_2(transformComponents) =>
+ JS('CssTransformValue', 'new CSSTransformValue(#)', transformComponents);
+
+ @DomName('CSSTransformValue.is2D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final bool is2D;
+
+ @DomName('CSSTransformValue.length')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final int length;
+
+ @DomName('CSSTransformValue.componentAtIndex')
+ @DocsEditable()
+ @Experimental() // untriaged
+ CssTransformComponent componentAtIndex(int index) native;
+
+ @DomName('CSSTransformValue.toMatrix')
+ @DocsEditable()
+ @Experimental() // untriaged
+ DomMatrix toMatrix() 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('CSSTranslation')
+@Experimental() // untriaged
+@Native("CSSTranslation")
+class CssTranslation extends CssTransformComponent {
+ // To suppress missing implicit constructor warnings.
+ factory CssTranslation._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('CSSTranslation.CSSTranslation')
+ @DocsEditable()
+ factory CssTranslation(CssNumericValue x, CssNumericValue y,
+ [CssNumericValue z]) {
+ if ((y is CssNumericValue) && (x is CssNumericValue) && z == null) {
+ return CssTranslation._create_1(x, y);
+ }
+ if ((z is CssNumericValue) &&
+ (y is CssNumericValue) &&
+ (x is CssNumericValue)) {
+ return CssTranslation._create_2(x, y, z);
+ }
+ throw new ArgumentError("Incorrect number or type of arguments");
+ }
+ static CssTranslation _create_1(x, y) =>
+ JS('CssTranslation', 'new CSSTranslation(#,#)', x, y);
+ static CssTranslation _create_2(x, y, z) =>
+ JS('CssTranslation', 'new CSSTranslation(#,#,#)', x, y, z);
+
+ @DomName('CSSTranslation.x')
+ @DocsEditable()
+ @Experimental() // untriaged
+ CssNumericValue x;
+
+ @DomName('CSSTranslation.y')
+ @DocsEditable()
+ @Experimental() // untriaged
+ CssNumericValue y;
+
+ @DomName('CSSTranslation.z')
+ @DocsEditable()
+ @Experimental() // untriaged
+ CssNumericValue 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('CSSUnitValue')
+@Experimental() // untriaged
+@Native("CSSUnitValue")
+class CssUnitValue extends CssNumericValue {
+ // To suppress missing implicit constructor warnings.
+ factory CssUnitValue._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('CSSUnitValue.CSSUnitValue')
+ @DocsEditable()
+ factory CssUnitValue(num value, String unit) {
+ return CssUnitValue._create_1(value, unit);
+ }
+ static CssUnitValue _create_1(value, unit) =>
+ JS('CssUnitValue', 'new CSSUnitValue(#,#)', value, unit);
+
+ @DomName('CSSUnitValue.type')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String type;
+
+ @DomName('CSSUnitValue.unit')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String unit;
+
+ @DomName('CSSUnitValue.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('CSSUnparsedValue')
+@Experimental() // untriaged
+@Native("CSSUnparsedValue")
+class CssUnparsedValue extends CssStyleValue {
+ // To suppress missing implicit constructor warnings.
+ factory CssUnparsedValue._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('CSSUnparsedValue.length')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final int length;
+
+ @DomName('CSSUnparsedValue.fragmentAtIndex')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Object fragmentAtIndex(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('CSSVariableReferenceValue')
+@Experimental() // untriaged
+@Native("CSSVariableReferenceValue")
+class CssVariableReferenceValue extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory CssVariableReferenceValue._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('CSSVariableReferenceValue.fallback')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final CssUnparsedValue fallback;
+
+ @DomName('CSSVariableReferenceValue.variable')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String variable;
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -8856,6 +10191,91 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
+@DocsEditable()
+@DomName('CSSURLImageValue')
+@Experimental() // untriaged
+@Native("CSSURLImageValue")
+class CssurlImageValue extends CssImageValue {
+ // To suppress missing implicit constructor warnings.
+ factory CssurlImageValue._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('CSSURLImageValue.CSSURLImageValue')
+ @DocsEditable()
+ factory CssurlImageValue(String url) {
+ return CssurlImageValue._create_1(url);
+ }
+ static CssurlImageValue _create_1(url) =>
+ JS('CssurlImageValue', 'new CSSURLImageValue(#)', url);
+
+ @DomName('CSSURLImageValue.url')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String url;
+}
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for 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('CustomElementConstructor')
+// https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/custom/index.html#dfn-custom-element-constructor-generation
+@deprecated // experimental
+typedef void CustomElementConstructor();
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+@DocsEditable()
+@DomName('CustomElementRegistry')
+@Experimental() // untriaged
+@Native("CustomElementRegistry")
+class CustomElementRegistry extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory CustomElementRegistry._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('CustomElementRegistry.define')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void define(String name, Object constructor, [Map options]) {
+ if (options != null) {
+ var options_1 = convertDartToNative_Dictionary(options);
+ _define_1(name, constructor, options_1);
+ return;
+ }
+ _define_2(name, constructor);
+ return;
+ }
+
+ @JSName('define')
+ @DomName('CustomElementRegistry.define')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void _define_1(name, constructor, options) native;
+ @JSName('define')
+ @DomName('CustomElementRegistry.define')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void _define_2(name, constructor) native;
+
+ @DomName('CustomElementRegistry.get')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Object get(String name) native;
+
+ @DomName('CustomElementRegistry.whenDefined')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future whenDefined(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('CustomEvent')
@@ -8894,6 +10314,20 @@
return _detail;
}
+ @DomName('CustomEvent.CustomEvent')
+ @DocsEditable()
+ factory CustomEvent._(String type, [Map eventInitDict]) {
+ if (eventInitDict != null) {
+ var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+ return CustomEvent._create_1(type, eventInitDict_1);
+ }
+ return CustomEvent._create_2(type);
+ }
+ static CustomEvent _create_1(type, eventInitDict) =>
+ JS('CustomEvent', 'new CustomEvent(#,#)', type, eventInitDict);
+ static CustomEvent _create_2(type) =>
+ JS('CustomEvent', 'new CustomEvent(#)', type);
+
@DomName('CustomEvent._detail')
@DocsEditable()
@Experimental() // untriaged
@@ -8909,8 +10343,8 @@
@JSName('initCustomEvent')
@DomName('CustomEvent.initCustomEvent')
@DocsEditable()
- void _initCustomEvent(
- String type, bool bubbles, bool cancelable, Object detail) native;
+ 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
@@ -8944,6 +10378,31 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('HTMLDataElement')
+@Experimental() // untriaged
+@Native("HTMLDataElement")
+class DataElement extends HtmlElement {
+ // To suppress missing implicit constructor warnings.
+ factory DataElement._() {
+ 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.
+ */
+ DataElement.created() : super.created();
+
+ @DomName('HTMLDataElement.value')
+ @DocsEditable()
+ @Experimental() // untriaged
+ 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('HTMLDataListElement')
@SupportedBrowser(SupportedBrowser.CHROME)
@SupportedBrowser(SupportedBrowser.FIREFOX)
@@ -8989,6 +10448,13 @@
throw new UnsupportedError("Not supported");
}
+ @DomName('DataTransfer.DataTransfer')
+ @DocsEditable()
+ factory DataTransfer() {
+ return DataTransfer._create_1();
+ }
+ static DataTransfer _create_1() => JS('DataTransfer', 'new DataTransfer()');
+
@DomName('DataTransfer.dropEffect')
@DocsEditable()
@Experimental() // untriaged
@@ -9061,23 +10527,7 @@
@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;
- }
+ File getAsFile() native;
@JSName('webkitGetAsEntry')
@DomName('DataTransferItem.webkitGetAsEntry')
@@ -9151,6 +10601,24 @@
// for 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('DecodeErrorCallback')
+@Experimental() // untriaged
+typedef void DecodeErrorCallback(DomException 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('DecodeSuccessCallback')
+@Experimental() // untriaged
+typedef void DecodeSuccessCallback(AudioBuffer decodedData);
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All 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
@@ -9183,10 +10651,15 @@
@Experimental() // untriaged
static const int TEMPORARY = 0;
+ @DomName('DedicatedWorkerGlobalScope.close')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void close() native;
+
@DomName('DedicatedWorkerGlobalScope.postMessage')
@DocsEditable()
@Experimental() // untriaged
- void postMessage(/*any*/ message, [List<MessagePort> transfer]) {
+ void postMessage(/*any*/ message, [List<Object> transfer]) {
if (transfer != null) {
var message_1 = convertDartToNative_SerializedScriptValue(message);
_postMessage_1(message_1, transfer);
@@ -9201,7 +10674,7 @@
@DomName('DedicatedWorkerGlobalScope.postMessage')
@DocsEditable()
@Experimental() // untriaged
- void _postMessage_1(message, List<MessagePort> transfer) native;
+ void _postMessage_1(message, List<Object> transfer) native;
@JSName('postMessage')
@DomName('DedicatedWorkerGlobalScope.postMessage')
@DocsEditable()
@@ -9324,6 +10797,35 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('DeprecationReport')
+@Experimental() // untriaged
+@Native("DeprecationReport")
+class DeprecationReport extends ReportBody {
+ // To suppress missing implicit constructor warnings.
+ factory DeprecationReport._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('DeprecationReport.lineNumber')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final int lineNumber;
+
+ @DomName('DeprecationReport.message')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String message;
+
+ @DomName('DeprecationReport.sourceFile')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String sourceFile;
+}
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All 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)
@@ -9357,6 +10859,110 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('DetectedBarcode')
+@Experimental() // untriaged
+@Native("DetectedBarcode")
+class DetectedBarcode extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory DetectedBarcode._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('DetectedBarcode.DetectedBarcode')
+ @DocsEditable()
+ factory DetectedBarcode() {
+ return DetectedBarcode._create_1();
+ }
+ static DetectedBarcode _create_1() =>
+ JS('DetectedBarcode', 'new DetectedBarcode()');
+
+ @DomName('DetectedBarcode.boundingBox')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final Rectangle boundingBox;
+
+ @DomName('DetectedBarcode.cornerPoints')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final List cornerPoints;
+
+ @DomName('DetectedBarcode.rawValue')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String rawValue;
+}
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+@DocsEditable()
+@DomName('DetectedFace')
+@Experimental() // untriaged
+@Native("DetectedFace")
+class DetectedFace extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory DetectedFace._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('DetectedFace.DetectedFace')
+ @DocsEditable()
+ factory DetectedFace() {
+ return DetectedFace._create_1();
+ }
+ static DetectedFace _create_1() => JS('DetectedFace', 'new DetectedFace()');
+
+ @DomName('DetectedFace.boundingBox')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final Rectangle boundingBox;
+
+ @DomName('DetectedFace.landmarks')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final List landmarks;
+}
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+@DocsEditable()
+@DomName('DetectedText')
+@Experimental() // untriaged
+@Native("DetectedText")
+class DetectedText extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory DetectedText._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('DetectedText.DetectedText')
+ @DocsEditable()
+ factory DetectedText() {
+ return DetectedText._create_1();
+ }
+ static DetectedText _create_1() => JS('DetectedText', 'new DetectedText()');
+
+ @DomName('DetectedText.boundingBox')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final Rectangle boundingBox;
+
+ @DomName('DetectedText.cornerPoints')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final List cornerPoints;
+
+ @DomName('DetectedText.rawValue')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String rawValue;
+}
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All 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()
@@ -9369,48 +10975,15 @@
@DomName('DeviceAcceleration.x')
@DocsEditable()
- final double x;
+ final num x;
@DomName('DeviceAcceleration.y')
@DocsEditable()
- final double y;
+ final num 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;
+ final num 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
@@ -9427,6 +11000,20 @@
throw new UnsupportedError("Not supported");
}
+ @DomName('DeviceMotionEvent.DeviceMotionEvent')
+ @DocsEditable()
+ factory DeviceMotionEvent(String type, [Map eventInitDict]) {
+ if (eventInitDict != null) {
+ var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+ return DeviceMotionEvent._create_1(type, eventInitDict_1);
+ }
+ return DeviceMotionEvent._create_2(type);
+ }
+ static DeviceMotionEvent _create_1(type, eventInitDict) => JS(
+ 'DeviceMotionEvent', 'new DeviceMotionEvent(#,#)', type, eventInitDict);
+ static DeviceMotionEvent _create_2(type) =>
+ JS('DeviceMotionEvent', 'new DeviceMotionEvent(#)', type);
+
@DomName('DeviceMotionEvent.acceleration')
@DocsEditable()
final DeviceAcceleration acceleration;
@@ -9437,73 +11024,59 @@
@DomName('DeviceMotionEvent.interval')
@DocsEditable()
- final double interval;
+ final num 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
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for 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.
-
+@DocsEditable()
@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.DeviceOrientationEvent')
+ @DocsEditable()
+ factory DeviceOrientationEvent(String type, [Map eventInitDict]) {
+ if (eventInitDict != null) {
+ var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+ return DeviceOrientationEvent._create_1(type, eventInitDict_1);
+ }
+ return DeviceOrientationEvent._create_2(type);
+ }
+ static DeviceOrientationEvent _create_1(type, eventInitDict) => JS(
+ 'DeviceOrientationEvent',
+ 'new DeviceOrientationEvent(#,#)',
+ type,
+ eventInitDict);
+ static DeviceOrientationEvent _create_2(type) =>
+ JS('DeviceOrientationEvent', 'new DeviceOrientationEvent(#)', type);
+
@DomName('DeviceOrientationEvent.absolute')
@DocsEditable()
final bool absolute;
@DomName('DeviceOrientationEvent.alpha')
@DocsEditable()
- final double alpha;
+ final num alpha;
@DomName('DeviceOrientationEvent.beta')
@DocsEditable()
- final double beta;
+ final num 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;
+ final num 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
@@ -9522,15 +11095,15 @@
@DomName('DeviceRotationRate.alpha')
@DocsEditable()
- final double alpha;
+ final num alpha;
@DomName('DeviceRotationRate.beta')
@DocsEditable()
- final double beta;
+ final num beta;
@DomName('DeviceRotationRate.gamma')
@DocsEditable()
- final double gamma;
+ final num 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
@@ -9563,7 +11136,7 @@
@DomName('HTMLDialogElement.close')
@DocsEditable()
- void close(String returnValue) native;
+ void close([String returnValue]) native;
@DomName('HTMLDialogElement.show')
@DocsEditable()
@@ -9917,10 +11490,17 @@
static const EventStreamProvider<Event> selectionChangeEvent =
const EventStreamProvider<Event>('selectionchange');
- @DomName('Document.activeElement')
+ @DomName('Document.Document')
+ @DocsEditable()
+ factory Document() {
+ return Document._create_1();
+ }
+ static Document _create_1() => JS('Document', 'new Document()');
+
+ @DomName('Document.addressSpace')
@DocsEditable()
@Experimental() // untriaged
- final Element activeElement;
+ final String addressSpace;
@JSName('body')
@DomName('Document.body')
@@ -9963,16 +11543,6 @@
@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
@@ -10002,11 +11572,6 @@
@Experimental() // untriaged
final String origin;
- @DomName('Document.pointerLockElement')
- @DocsEditable()
- @Experimental() // untriaged
- final Element pointerLockElement;
-
@JSName('preferredStylesheetSet')
@DomName('Document.preferredStylesheetSet')
@DocsEditable()
@@ -10026,6 +11591,11 @@
@Experimental() // untriaged
final SvgSvgElement rootElement;
+ @DomName('Document.rootScroller')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Element rootScroller;
+
@DomName('Document.scrollingElement')
@DocsEditable()
@Experimental() // untriaged
@@ -10036,13 +11606,6 @@
@DocsEditable()
String _selectedStylesheetSet;
- @JSName('styleSheets')
- @DomName('Document.styleSheets')
- @DocsEditable()
- @Returns('_StyleSheetList|Null')
- @Creates('_StyleSheetList')
- final List<StyleSheet> _styleSheets;
-
@DomName('Document.suborigin')
@DocsEditable()
@Experimental() // untriaged
@@ -10051,7 +11614,7 @@
@DomName('Document.timeline')
@DocsEditable()
@Experimental() // untriaged
- final AnimationTimeline timeline;
+ final DocumentTimeline timeline;
@JSName('title')
@DomName('Document.title')
@@ -10118,14 +11681,14 @@
@JSName('createElement')
@DomName('Document.createElement')
@DocsEditable()
- Element _createElement(String localName_OR_tagName, [String typeExtension])
- native;
+ Element _createElement(String localName_OR_tagName,
+ [options_OR_typeExtension]) native;
@JSName('createElementNS')
@DomName('Document.createElementNS')
@DocsEditable()
Element _createElementNS(String namespaceURI, String qualifiedName,
- [String typeExtension]) native;
+ [options_OR_typeExtension]) native;
@JSName('createEvent')
@DomName('Document.createEvent')
@@ -10145,21 +11708,32 @@
@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) {
+ Touch _createTouch(Window view, EventTarget target, int identifier, num pageX,
+ num pageY, num screenX, num screenY,
+ [num radiusX, num radiusY, num rotationAngle, num force]) {
+ if (force != null) {
+ var target_1 = _convertDartToNative_EventTarget(target);
+ return _createTouch_1(view, target_1, identifier, pageX, pageY, screenX,
+ screenY, radiusX, radiusY, rotationAngle, force);
+ }
+ if (rotationAngle != null) {
+ var target_1 = _convertDartToNative_EventTarget(target);
+ return _createTouch_2(view, target_1, identifier, pageX, pageY, screenX,
+ screenY, radiusX, radiusY, rotationAngle);
+ }
+ if (radiusY != null) {
+ var target_1 = _convertDartToNative_EventTarget(target);
+ return _createTouch_3(view, target_1, identifier, pageX, pageY, screenX,
+ screenY, radiusX, radiusY);
+ }
+ if (radiusX != null) {
+ var target_1 = _convertDartToNative_EventTarget(target);
+ return _createTouch_4(
+ view, target_1, identifier, pageX, pageY, screenX, screenY, radiusX);
+ }
var target_1 = _convertDartToNative_EventTarget(target);
- return _createTouch_1(window, target_1, identifier, pageX, pageY, screenX,
- screenY, radiusX, radiusY, rotationAngle, force);
+ return _createTouch_5(
+ view, target_1, identifier, pageX, pageY, screenX, screenY);
}
@JSName('createTouch')
@@ -10167,8 +11741,36 @@
@DocsEditable()
// http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
@Experimental()
- Touch _createTouch_1(Window window, target, identifier, pageX, pageY, screenX,
+ Touch _createTouch_1(Window view, target, identifier, pageX, pageY, screenX,
screenY, radiusX, radiusY, rotationAngle, force) native;
+ @JSName('createTouch')
+ @DomName('Document.createTouch')
+ @DocsEditable()
+ // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
+ @Experimental()
+ Touch _createTouch_2(Window view, target, identifier, pageX, pageY, screenX,
+ screenY, radiusX, radiusY, rotationAngle) native;
+ @JSName('createTouch')
+ @DomName('Document.createTouch')
+ @DocsEditable()
+ // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
+ @Experimental()
+ Touch _createTouch_3(Window view, target, identifier, pageX, pageY, screenX,
+ screenY, radiusX, radiusY) native;
+ @JSName('createTouch')
+ @DomName('Document.createTouch')
+ @DocsEditable()
+ // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
+ @Experimental()
+ Touch _createTouch_4(Window view, target, identifier, pageX, pageY, screenX,
+ screenY, radiusX) native;
+ @JSName('createTouch')
+ @DomName('Document.createTouch')
+ @DocsEditable()
+ // http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features
+ @Experimental()
+ Touch _createTouch_5(
+ Window view, target, identifier, pageX, pageY, screenX, screenY) native;
@JSName('createTouchList')
@DomName('Document.createTouchList')
@@ -10177,16 +11779,6 @@
@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;
@@ -10201,6 +11793,11 @@
@Experimental() // untriaged
void exitPointerLock() native;
+ @DomName('Document.getAnimations')
+ @DocsEditable()
+ @Experimental() // untriaged
+ List<Animation> getAnimations() native;
+
@DomName('Document.getElementsByClassName')
@DocsEditable()
@Creates('NodeList|HtmlCollection')
@@ -10243,10 +11840,27 @@
@DocsEditable()
String queryCommandValue(String commandId) native;
- @DomName('Document.transformDocumentToTreeView')
+ @DomName('Document.registerElement')
@DocsEditable()
@Experimental() // untriaged
- void transformDocumentToTreeView(String noStyleMessage) native;
+ Function registerElement2(String type, [Map options]) {
+ if (options != null) {
+ var options_1 = convertDartToNative_Dictionary(options);
+ return _registerElement2_1(type, options_1);
+ }
+ return _registerElement2_2(type);
+ }
+
+ @JSName('registerElement')
+ @DomName('Document.registerElement')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Function _registerElement2_1(type, options) native;
+ @JSName('registerElement')
+ @DomName('Document.registerElement')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Function _registerElement2_2(type) native;
@JSName('webkitExitFullscreen')
@DomName('Document.webkitExitFullscreen')
@@ -10263,6 +11877,47 @@
@DocsEditable()
Element getElementById(String elementId) native;
+ // From DocumentOrShadowRoot
+
+ @DomName('Document.activeElement')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final Element activeElement;
+
+ @DomName('Document.fullscreenElement')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final Element fullscreenElement;
+
+ @DomName('Document.pointerLockElement')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final Element pointerLockElement;
+
+ @JSName('styleSheets')
+ @DomName('Document.styleSheets')
+ @DocsEditable()
+ @Returns('_StyleSheetList|Null')
+ @Creates('_StyleSheetList')
+ final List<StyleSheet> _styleSheets;
+
+ @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;
+
+ // From FontFaceSource
+
+ @DomName('Document.fonts')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final FontFaceSet fonts;
+
// From ParentNode
@JSName('childElementCount')
@@ -10748,6 +12403,12 @@
@deprecated
bool get supportsRegister => supportsRegisterElement;
+ void registerElement(String tag, Type customElementClass,
+ {String extendsTag}) {
+ registerElement2(
+ tag, {'prototype': customElementClass, 'extends': extendsTag});
+ }
+
@DomName('Document.createElement')
@ForceInline() // Almost all call sites have one argument.
Element createElement(String tagName, [String typeExtension]) {
@@ -10974,6 +12635,85 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('DocumentOrShadowRoot')
+@Experimental() // untriaged
+@Native("DocumentOrShadowRoot")
+class DocumentOrShadowRoot extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory DocumentOrShadowRoot._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('DocumentOrShadowRoot.activeElement')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final Element activeElement;
+
+ @DomName('DocumentOrShadowRoot.fullscreenElement')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final Element fullscreenElement;
+
+ @DomName('DocumentOrShadowRoot.pointerLockElement')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final Element pointerLockElement;
+
+ @DomName('DocumentOrShadowRoot.styleSheets')
+ @DocsEditable()
+ @Experimental() // untriaged
+ @Returns('_StyleSheetList|Null')
+ @Creates('_StyleSheetList')
+ final List<StyleSheet> styleSheets;
+
+ @DomName('DocumentOrShadowRoot.elementFromPoint')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Element elementFromPoint(int x, int y) native;
+
+ @DomName('DocumentOrShadowRoot.elementsFromPoint')
+ @DocsEditable()
+ @Experimental() // untriaged
+ List<Element> elementsFromPoint(int x, int y) native;
+
+ @DomName('DocumentOrShadowRoot.getSelection')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Selection getSelection() 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('DocumentTimeline')
+@Experimental() // untriaged
+@Native("DocumentTimeline")
+class DocumentTimeline extends AnimationTimeline {
+ // To suppress missing implicit constructor warnings.
+ factory DocumentTimeline._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('DocumentTimeline.DocumentTimeline')
+ @DocsEditable()
+ factory DocumentTimeline([Map options]) {
+ if (options != null) {
+ var options_1 = convertDartToNative_Dictionary(options);
+ return DocumentTimeline._create_1(options_1);
+ }
+ return DocumentTimeline._create_2();
+ }
+ static DocumentTimeline _create_1(options) =>
+ JS('DocumentTimeline', 'new DocumentTimeline(#)', options);
+ static DocumentTimeline _create_2() =>
+ JS('DocumentTimeline', 'new DocumentTimeline()');
+}
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All 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 {
@@ -11085,7 +12825,7 @@
@JSName('createHTMLDocument')
@DomName('DOMImplementation.createHTMLDocument')
@DocsEditable()
- HtmlDocument createHtmlDocument(String title) native;
+ HtmlDocument createHtmlDocument([String title]) native;
@DomName('DOMImplementation.hasFeature')
@DocsEditable()
@@ -11126,18 +12866,14 @@
@DomName('DOMMatrix.DOMMatrix')
@DocsEditable()
- factory DomMatrix([DomMatrixReadOnly other]) {
- if (other == null) {
- return DomMatrix._create_1();
+ factory DomMatrix([Object init]) {
+ if (init != null) {
+ return DomMatrix._create_1(init);
}
- if ((other is DomMatrixReadOnly)) {
- return DomMatrix._create_2(other);
- }
- throw new ArgumentError("Incorrect number or type of arguments");
+ return DomMatrix._create_2();
}
- static DomMatrix _create_1() => JS('DomMatrix', 'new DOMMatrix()');
- static DomMatrix _create_2(other) =>
- JS('DomMatrix', 'new DOMMatrix(#)', other);
+ static DomMatrix _create_1(init) => JS('DomMatrix', 'new DOMMatrix(#)', init);
+ static DomMatrix _create_2() => JS('DomMatrix', 'new DOMMatrix()');
// Shadowing definition.
num get a => JS("num", "#.a", this);
@@ -11293,37 +13029,138 @@
JS("void", "#.m44 = #", this, value);
}
+ @DomName('DOMMatrix.fromFloat32Array')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static DomMatrix fromFloat32Array(Float32List array32) native;
+
+ @DomName('DOMMatrix.fromFloat64Array')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static DomMatrix fromFloat64Array(Float64List array64) native;
+
+ @DomName('DOMMatrix.fromMatrix')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static DomMatrix fromMatrix([Map other]) {
+ if (other != null) {
+ var other_1 = convertDartToNative_Dictionary(other);
+ return _fromMatrix_1(other_1);
+ }
+ return _fromMatrix_2();
+ }
+
+ @JSName('fromMatrix')
+ @DomName('DOMMatrix.fromMatrix')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static DomMatrix _fromMatrix_1(other) native;
+ @JSName('fromMatrix')
+ @DomName('DOMMatrix.fromMatrix')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static DomMatrix _fromMatrix_2() native;
+
+ @DomName('DOMMatrix.invertSelf')
+ @DocsEditable()
+ @Experimental() // untriaged
+ DomMatrix invertSelf() native;
+
@DomName('DOMMatrix.multiplySelf')
@DocsEditable()
@Experimental() // untriaged
- DomMatrix multiplySelf(DomMatrix other) native;
+ DomMatrix multiplySelf([Map other]) {
+ if (other != null) {
+ var other_1 = convertDartToNative_Dictionary(other);
+ return _multiplySelf_1(other_1);
+ }
+ return _multiplySelf_2();
+ }
+
+ @JSName('multiplySelf')
+ @DomName('DOMMatrix.multiplySelf')
+ @DocsEditable()
+ @Experimental() // untriaged
+ DomMatrix _multiplySelf_1(other) native;
+ @JSName('multiplySelf')
+ @DomName('DOMMatrix.multiplySelf')
+ @DocsEditable()
+ @Experimental() // untriaged
+ DomMatrix _multiplySelf_2() native;
@DomName('DOMMatrix.preMultiplySelf')
@DocsEditable()
@Experimental() // untriaged
- DomMatrix preMultiplySelf(DomMatrix other) native;
+ DomMatrix preMultiplySelf([Map other]) {
+ if (other != null) {
+ var other_1 = convertDartToNative_Dictionary(other);
+ return _preMultiplySelf_1(other_1);
+ }
+ return _preMultiplySelf_2();
+ }
+
+ @JSName('preMultiplySelf')
+ @DomName('DOMMatrix.preMultiplySelf')
+ @DocsEditable()
+ @Experimental() // untriaged
+ DomMatrix _preMultiplySelf_1(other) native;
+ @JSName('preMultiplySelf')
+ @DomName('DOMMatrix.preMultiplySelf')
+ @DocsEditable()
+ @Experimental() // untriaged
+ DomMatrix _preMultiplySelf_2() native;
+
+ @DomName('DOMMatrix.rotateAxisAngleSelf')
+ @DocsEditable()
+ @Experimental() // untriaged
+ DomMatrix rotateAxisAngleSelf([num x, num y, num z, num angle]) native;
+
+ @DomName('DOMMatrix.rotateFromVectorSelf')
+ @DocsEditable()
+ @Experimental() // untriaged
+ DomMatrix rotateFromVectorSelf([num x, num y]) native;
+
+ @DomName('DOMMatrix.rotateSelf')
+ @DocsEditable()
+ @Experimental() // untriaged
+ DomMatrix rotateSelf([num rotX, num rotY, num rotZ]) native;
@DomName('DOMMatrix.scale3dSelf')
@DocsEditable()
@Experimental() // untriaged
- DomMatrix scale3dSelf(num scale, [num originX, num originY, num originZ])
+ 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;
+ DomMatrix scaleSelf(
+ [num scaleX,
+ num scaleY,
+ num scaleZ,
+ num originX,
+ num originY,
+ num originZ]) native;
+
+ @DomName('DOMMatrix.setMatrixValue')
+ @DocsEditable()
+ @Experimental() // untriaged
+ DomMatrix setMatrixValue(String transformList) native;
+
+ @DomName('DOMMatrix.skewXSelf')
+ @DocsEditable()
+ @Experimental() // untriaged
+ DomMatrix skewXSelf([num sx]) native;
+
+ @DomName('DOMMatrix.skewYSelf')
+ @DocsEditable()
+ @Experimental() // untriaged
+ DomMatrix skewYSelf([num sy]) native;
@DomName('DOMMatrix.translateSelf')
@DocsEditable()
@Experimental() // untriaged
- DomMatrix translateSelf(num tx, num ty, [num tz]) native;
+ 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
@@ -11339,6 +13176,19 @@
throw new UnsupportedError("Not supported");
}
+ @DomName('DOMMatrixReadOnly.DOMMatrixReadOnly')
+ @DocsEditable()
+ factory DomMatrixReadOnly([Object init]) {
+ if (init != null) {
+ return DomMatrixReadOnly._create_1(init);
+ }
+ return DomMatrixReadOnly._create_2();
+ }
+ static DomMatrixReadOnly _create_1(init) =>
+ JS('DomMatrixReadOnly', 'new DOMMatrixReadOnly(#)', init);
+ static DomMatrixReadOnly _create_2() =>
+ JS('DomMatrixReadOnly', 'new DOMMatrixReadOnly()');
+
num get a => JS("num", "#.a", this);
num get b => JS("num", "#.b", this);
@@ -11387,26 +13237,115 @@
num get m44 => JS("num", "#.m44", this);
+ @DomName('DOMMatrixReadOnly.flipX')
+ @DocsEditable()
+ @Experimental() // untriaged
+ DomMatrix flipX() native;
+
+ @DomName('DOMMatrixReadOnly.flipY')
+ @DocsEditable()
+ @Experimental() // untriaged
+ DomMatrix flipY() native;
+
+ @DomName('DOMMatrixReadOnly.fromFloat32Array')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static DomMatrixReadOnly fromFloat32Array(Float32List array32) native;
+
+ @DomName('DOMMatrixReadOnly.fromFloat64Array')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static DomMatrixReadOnly fromFloat64Array(Float64List array64) native;
+
+ @DomName('DOMMatrixReadOnly.fromMatrix')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static DomMatrixReadOnly fromMatrix([Map other]) {
+ if (other != null) {
+ var other_1 = convertDartToNative_Dictionary(other);
+ return _fromMatrix_1(other_1);
+ }
+ return _fromMatrix_2();
+ }
+
+ @JSName('fromMatrix')
+ @DomName('DOMMatrixReadOnly.fromMatrix')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static DomMatrixReadOnly _fromMatrix_1(other) native;
+ @JSName('fromMatrix')
+ @DomName('DOMMatrixReadOnly.fromMatrix')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static DomMatrixReadOnly _fromMatrix_2() native;
+
+ @DomName('DOMMatrixReadOnly.inverse')
+ @DocsEditable()
+ @Experimental() // untriaged
+ DomMatrix inverse() native;
+
@DomName('DOMMatrixReadOnly.multiply')
@DocsEditable()
@Experimental() // untriaged
- DomMatrix multiply(DomMatrix other) native;
+ DomMatrix multiply([Map other]) {
+ if (other != null) {
+ var other_1 = convertDartToNative_Dictionary(other);
+ return _multiply_1(other_1);
+ }
+ return _multiply_2();
+ }
+
+ @JSName('multiply')
+ @DomName('DOMMatrixReadOnly.multiply')
+ @DocsEditable()
+ @Experimental() // untriaged
+ DomMatrix _multiply_1(other) native;
+ @JSName('multiply')
+ @DomName('DOMMatrixReadOnly.multiply')
+ @DocsEditable()
+ @Experimental() // untriaged
+ DomMatrix _multiply_2() native;
+
+ @DomName('DOMMatrixReadOnly.rotate')
+ @DocsEditable()
+ @Experimental() // untriaged
+ DomMatrix rotate([num rotX, num rotY, num rotZ]) native;
+
+ @DomName('DOMMatrixReadOnly.rotateAxisAngle')
+ @DocsEditable()
+ @Experimental() // untriaged
+ DomMatrix rotateAxisAngle([num x, num y, num z, num angle]) native;
+
+ @DomName('DOMMatrixReadOnly.rotateFromVector')
+ @DocsEditable()
+ @Experimental() // untriaged
+ DomMatrix rotateFromVector([num x, num y]) native;
@DomName('DOMMatrixReadOnly.scale')
@DocsEditable()
@Experimental() // untriaged
- DomMatrix scale(num scale, [num originX, num originY]) native;
+ DomMatrix scale(
+ [num scaleX,
+ num scaleY,
+ num scaleZ,
+ num originX,
+ num originY,
+ num originZ]) native;
@DomName('DOMMatrixReadOnly.scale3d')
@DocsEditable()
@Experimental() // untriaged
- DomMatrix scale3d(num scale, [num originX, num originY, num originZ]) native;
+ DomMatrix scale3d([num scale, num originX, num originY, num originZ]) native;
- @DomName('DOMMatrixReadOnly.scaleNonUniform')
+ @DomName('DOMMatrixReadOnly.skewX')
@DocsEditable()
@Experimental() // untriaged
- DomMatrix scaleNonUniform(num scaleX,
- [num scaleY, num scaleZn, num originX, num originY, num originZ]) native;
+ DomMatrix skewX([num sx]) native;
+
+ @DomName('DOMMatrixReadOnly.skewY')
+ @DocsEditable()
+ @Experimental() // untriaged
+ DomMatrix skewY([num sy]) native;
@DomName('DOMMatrixReadOnly.toFloat32Array')
@DocsEditable()
@@ -11418,10 +13357,32 @@
@Experimental() // untriaged
Float64List toFloat64Array() native;
+ @DomName('DOMMatrixReadOnly.transformPoint')
+ @DocsEditable()
+ @Experimental() // untriaged
+ DomPoint transformPoint([Map point]) {
+ if (point != null) {
+ var point_1 = convertDartToNative_Dictionary(point);
+ return _transformPoint_1(point_1);
+ }
+ return _transformPoint_2();
+ }
+
+ @JSName('transformPoint')
+ @DomName('DOMMatrixReadOnly.transformPoint')
+ @DocsEditable()
+ @Experimental() // untriaged
+ DomPoint _transformPoint_1(point) native;
+ @JSName('transformPoint')
+ @DomName('DOMMatrixReadOnly.transformPoint')
+ @DocsEditable()
+ @Experimental() // untriaged
+ DomPoint _transformPoint_2() native;
+
@DomName('DOMMatrixReadOnly.translate')
@DocsEditable()
@Experimental() // untriaged
- DomMatrix translate(num tx, num ty, [num tz]) native;
+ 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
@@ -11463,51 +13424,28 @@
@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);
+ factory DomPoint([num x, num y, num z, num w]) {
+ if (w != null) {
+ return DomPoint._create_1(x, y, z, w);
}
- if (point_OR_x == null && y == null && z == null && w == null) {
- return DomPoint._create_2();
+ if (z != null) {
+ return DomPoint._create_2(x, y, z);
}
- 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 != null) {
+ return DomPoint._create_3(x, y);
}
- 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 (x != null) {
+ return DomPoint._create_4(x);
}
- 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");
+ return DomPoint._create_5();
}
- 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);
+ static DomPoint _create_1(x, y, z, w) =>
+ JS('DomPoint', 'new DOMPoint(#,#,#,#)', x, y, z, w);
+ static DomPoint _create_2(x, y, z) =>
+ JS('DomPoint', 'new DOMPoint(#,#,#)', x, y, z);
+ static DomPoint _create_3(x, y) => JS('DomPoint', 'new DOMPoint(#,#)', x, y);
+ static DomPoint _create_4(x) => JS('DomPoint', 'new DOMPoint(#)', x);
+ static DomPoint _create_5() => JS('DomPoint', 'new DOMPoint()');
/// Checks if this type is supported on the current platform.
static bool get supported =>
@@ -11540,6 +13478,28 @@
set z(num value) {
JS("void", "#.z = #", this, value);
}
+
+ @DomName('DOMPoint.fromPoint')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static DomPoint fromPoint([Map other]) {
+ if (other != null) {
+ var other_1 = convertDartToNative_Dictionary(other);
+ return _fromPoint_1(other_1);
+ }
+ return _fromPoint_2();
+ }
+
+ @JSName('fromPoint')
+ @DomName('DOMPoint.fromPoint')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static DomPoint _fromPoint_1(other) native;
+ @JSName('fromPoint')
+ @DomName('DOMPoint.fromPoint')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static DomPoint _fromPoint_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
@@ -11557,11 +13517,31 @@
@DomName('DOMPointReadOnly.DOMPointReadOnly')
@DocsEditable()
- factory DomPointReadOnly(num x, num y, num z, num w) {
- return DomPointReadOnly._create_1(x, y, z, w);
+ factory DomPointReadOnly([num x, num y, num z, num w]) {
+ if (w != null) {
+ return DomPointReadOnly._create_1(x, y, z, w);
+ }
+ if (z != null) {
+ return DomPointReadOnly._create_2(x, y, z);
+ }
+ if (y != null) {
+ return DomPointReadOnly._create_3(x, y);
+ }
+ if (x != null) {
+ return DomPointReadOnly._create_4(x);
+ }
+ return DomPointReadOnly._create_5();
}
static DomPointReadOnly _create_1(x, y, z, w) =>
JS('DomPointReadOnly', 'new DOMPointReadOnly(#,#,#,#)', x, y, z, w);
+ static DomPointReadOnly _create_2(x, y, z) =>
+ JS('DomPointReadOnly', 'new DOMPointReadOnly(#,#,#)', x, y, z);
+ static DomPointReadOnly _create_3(x, y) =>
+ JS('DomPointReadOnly', 'new DOMPointReadOnly(#,#)', x, y);
+ static DomPointReadOnly _create_4(x) =>
+ JS('DomPointReadOnly', 'new DOMPointReadOnly(#)', x);
+ static DomPointReadOnly _create_5() =>
+ JS('DomPointReadOnly', 'new DOMPointReadOnly()');
num get w => JS("num", "#.w", this);
@@ -11570,6 +13550,237 @@
num get y => JS("num", "#.y", this);
num get z => JS("num", "#.z", this);
+
+ @DomName('DOMPointReadOnly.fromPoint')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static DomPointReadOnly fromPoint([Map other]) {
+ if (other != null) {
+ var other_1 = convertDartToNative_Dictionary(other);
+ return _fromPoint_1(other_1);
+ }
+ return _fromPoint_2();
+ }
+
+ @JSName('fromPoint')
+ @DomName('DOMPointReadOnly.fromPoint')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static DomPointReadOnly _fromPoint_1(other) native;
+ @JSName('fromPoint')
+ @DomName('DOMPointReadOnly.fromPoint')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static DomPointReadOnly _fromPoint_2() native;
+
+ @DomName('DOMPointReadOnly.matrixTransform')
+ @DocsEditable()
+ @Experimental() // untriaged
+ DomPoint matrixTransform([Map matrix]) {
+ if (matrix != null) {
+ var matrix_1 = convertDartToNative_Dictionary(matrix);
+ return _matrixTransform_1(matrix_1);
+ }
+ return _matrixTransform_2();
+ }
+
+ @JSName('matrixTransform')
+ @DomName('DOMPointReadOnly.matrixTransform')
+ @DocsEditable()
+ @Experimental() // untriaged
+ DomPoint _matrixTransform_1(matrix) native;
+ @JSName('matrixTransform')
+ @DomName('DOMPointReadOnly.matrixTransform')
+ @DocsEditable()
+ @Experimental() // untriaged
+ DomPoint _matrixTransform_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('DOMQuad')
+@Experimental() // untriaged
+@Native("DOMQuad")
+class DomQuad extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory DomQuad._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('DOMQuad.DOMQuad')
+ @DocsEditable()
+ factory DomQuad([Map p1, Map p2, Map p3, Map p4]) {
+ if (p4 != null) {
+ var p1_1 = convertDartToNative_Dictionary(p1);
+ var p2_2 = convertDartToNative_Dictionary(p2);
+ var p3_3 = convertDartToNative_Dictionary(p3);
+ var p4_4 = convertDartToNative_Dictionary(p4);
+ return DomQuad._create_1(p1_1, p2_2, p3_3, p4_4);
+ }
+ if (p3 != null) {
+ var p1_1 = convertDartToNative_Dictionary(p1);
+ var p2_2 = convertDartToNative_Dictionary(p2);
+ var p3_3 = convertDartToNative_Dictionary(p3);
+ return DomQuad._create_2(p1_1, p2_2, p3_3);
+ }
+ if (p2 != null) {
+ var p1_1 = convertDartToNative_Dictionary(p1);
+ var p2_2 = convertDartToNative_Dictionary(p2);
+ return DomQuad._create_3(p1_1, p2_2);
+ }
+ if (p1 != null) {
+ var p1_1 = convertDartToNative_Dictionary(p1);
+ return DomQuad._create_4(p1_1);
+ }
+ return DomQuad._create_5();
+ }
+ static DomQuad _create_1(p1, p2, p3, p4) =>
+ JS('DomQuad', 'new DOMQuad(#,#,#,#)', p1, p2, p3, p4);
+ static DomQuad _create_2(p1, p2, p3) =>
+ JS('DomQuad', 'new DOMQuad(#,#,#)', p1, p2, p3);
+ static DomQuad _create_3(p1, p2) => JS('DomQuad', 'new DOMQuad(#,#)', p1, p2);
+ static DomQuad _create_4(p1) => JS('DomQuad', 'new DOMQuad(#)', p1);
+ static DomQuad _create_5() => JS('DomQuad', 'new DOMQuad()');
+
+ @DomName('DOMQuad.p1')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final DomPoint p1;
+
+ @DomName('DOMQuad.p2')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final DomPoint p2;
+
+ @DomName('DOMQuad.p3')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final DomPoint p3;
+
+ @DomName('DOMQuad.p4')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final DomPoint p4;
+
+ @DomName('DOMQuad.fromQuad')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static DomQuad fromQuad([Map other]) {
+ if (other != null) {
+ var other_1 = convertDartToNative_Dictionary(other);
+ return _fromQuad_1(other_1);
+ }
+ return _fromQuad_2();
+ }
+
+ @JSName('fromQuad')
+ @DomName('DOMQuad.fromQuad')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static DomQuad _fromQuad_1(other) native;
+ @JSName('fromQuad')
+ @DomName('DOMQuad.fromQuad')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static DomQuad _fromQuad_2() native;
+
+ @DomName('DOMQuad.fromRect')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static DomQuad fromRect([Map other]) {
+ if (other != null) {
+ var other_1 = convertDartToNative_Dictionary(other);
+ return _fromRect_1(other_1);
+ }
+ return _fromRect_2();
+ }
+
+ @JSName('fromRect')
+ @DomName('DOMQuad.fromRect')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static DomQuad _fromRect_1(other) native;
+ @JSName('fromRect')
+ @DomName('DOMQuad.fromRect')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static DomQuad _fromRect_2() native;
+
+ @DomName('DOMQuad.getBounds')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Rectangle getBounds() 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('DOMRectList')
+@Experimental() // untriaged
+@Native("ClientRectList,DOMRectList")
+class DomRectList extends Interceptor
+ with ListMixin<Rectangle>, ImmutableListMixin<Rectangle>
+ implements List<Rectangle>, JavaScriptIndexingBehavior<Rectangle> {
+ // To suppress missing implicit constructor warnings.
+ factory DomRectList._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('DOMRectList.length')
+ @DocsEditable()
+ @Experimental() // untriaged
+ 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('DOMRectList.item')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Rectangle 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
@@ -11676,11 +13887,31 @@
@DomName('DOMRectReadOnly.DOMRectReadOnly')
@DocsEditable()
- factory DomRectReadOnly(num x, num y, num width, num height) {
- return DomRectReadOnly._create_1(x, y, width, height);
+ factory DomRectReadOnly([num x, num y, num width, num height]) {
+ if (height != null) {
+ return DomRectReadOnly._create_1(x, y, width, height);
+ }
+ if (width != null) {
+ return DomRectReadOnly._create_2(x, y, width);
+ }
+ if (y != null) {
+ return DomRectReadOnly._create_3(x, y);
+ }
+ if (x != null) {
+ return DomRectReadOnly._create_4(x);
+ }
+ return DomRectReadOnly._create_5();
}
static DomRectReadOnly _create_1(x, y, width, height) => JS(
'DomRectReadOnly', 'new DOMRectReadOnly(#,#,#,#)', x, y, width, height);
+ static DomRectReadOnly _create_2(x, y, width) =>
+ JS('DomRectReadOnly', 'new DOMRectReadOnly(#,#,#)', x, y, width);
+ static DomRectReadOnly _create_3(x, y) =>
+ JS('DomRectReadOnly', 'new DOMRectReadOnly(#,#)', x, y);
+ static DomRectReadOnly _create_4(x) =>
+ JS('DomRectReadOnly', 'new DOMRectReadOnly(#)', x);
+ static DomRectReadOnly _create_5() =>
+ JS('DomRectReadOnly', 'new DOMRectReadOnly()');
num get bottom => JS("num", "#.bottom", this);
@@ -11697,6 +13928,28 @@
num get x => JS("num", "#.x", this);
num get y => JS("num", "#.y", this);
+
+ @DomName('DOMRectReadOnly.fromRect')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static DomRectReadOnly fromRect([Map other]) {
+ if (other != null) {
+ var other_1 = convertDartToNative_Dictionary(other);
+ return _fromRect_1(other_1);
+ }
+ return _fromRect_2();
+ }
+
+ @JSName('fromRect')
+ @DomName('DOMRectReadOnly.fromRect')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static DomRectReadOnly _fromRect_1(other) native;
+ @JSName('fromRect')
+ @DomName('DOMRectReadOnly.fromRect')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static DomRectReadOnly _fromRect_2() native;
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
@@ -11761,11 +14014,6 @@
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;
@@ -11785,15 +14033,11 @@
@DomName('DOMStringMap.__delete__')
@DocsEditable()
- void __delete__(index_OR_name) native;
-
- @DomName('DOMStringMap.__getter__')
- @DocsEditable()
- String __getter__(int index) native;
+ void __delete__(String name) native;
@DomName('DOMStringMap.__setter__')
@DocsEditable()
- void __setter__(index_OR_name, String value) native;
+ void __setter__(String name, String value) native;
@DomName('DOMStringMap.item')
@DocsEditable()
@@ -11840,6 +14084,11 @@
@Experimental() // untriaged
void remove(String tokens) native;
+ @DomName('DOMTokenList.replace')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void replace(String token, String newToken) native;
+
@DomName('DOMTokenList.supports')
@DocsEditable()
@Experimental() // untriaged
@@ -11853,20 +14102,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.
-@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.
@@ -12581,6 +14816,11 @@
// https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html
@Experimental()
ElementStream<Event> get onFullscreenError;
+
+ @DomName('Element.onwheel')
+ @DocsEditable()
+ @Experimental() // untriaged
+ ElementStream<WheelEvent> get onWheel;
}
// Wrapper over an immutable NodeList to make it implement ElementList.
@@ -13169,6 +15409,12 @@
@Experimental()
ElementStream<Event> get onFullscreenError =>
Element.fullscreenErrorEvent._forElementList(this);
+
+ @DomName('Element.onwheel')
+ @DocsEditable()
+ @Experimental() // untriaged
+ ElementStream<WheelEvent> get onWheel =>
+ Element.wheelEvent._forElementList(this);
}
@DocsEditable()
@@ -13638,6 +15884,24 @@
@deprecated
void enteredView() {}
+ @DomName('Element.getClientRects')
+ @DocsEditable()
+ @Returns('DomRectList|Null')
+ @Creates('DomRectList')
+ List<Rectangle> getClientRects() {
+ var value = _getClientRects();
+
+ // If no prototype we need one for the world to hookup to the proper Dart class.
+ var jsProto = JS('', '#.prototype', value);
+ if (jsProto == null) {
+ JS('', '#.prototype = Object.create(null)', value);
+ }
+
+ applyExtension('DOMRectList', value);
+
+ return value;
+ }
+
/** *Deprecated*: override [detached] instead. */
@Experimental()
@deprecated
@@ -15120,15 +17384,16 @@
static const EventStreamProvider<Event> fullscreenErrorEvent =
const EventStreamProvider<Event>('webkitfullscreenerror');
+ @DomName('Element.wheelEvent')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const EventStreamProvider<WheelEvent> wheelEvent =
+ const EventStreamProvider<WheelEvent>('wheel');
+
@DomName('Element.contentEditable')
@DocsEditable()
String contentEditable;
- @DomName('Element.contextMenu')
- @DocsEditable()
- @Experimental() // untriaged
- MenuElement contextMenu;
-
@DomName('Element.dir')
@DocsEditable()
String dir;
@@ -15163,6 +17428,16 @@
@DocsEditable()
bool hidden;
+ @DomName('Element.inert')
+ @DocsEditable()
+ @Experimental() // untriaged
+ bool inert;
+
+ @DomName('Element.inputMode')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String inputMode;
+
// Using property as subclass shadows.
bool get isContentEditable => JS("bool", "#.isContentEditable", this);
@@ -15204,29 +17479,6 @@
@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;
@@ -15239,6 +17491,11 @@
@DocsEditable()
void focus() native;
+ @DomName('Element.accessibleNode')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final AccessibleNode accessibleNode;
+
@DomName('Element.assignedSlot')
@DocsEditable()
@Experimental() // untriaged
@@ -15328,6 +17585,11 @@
@Experimental() // untriaged
String slot;
+ @DomName('Element.styleMap')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final StylePropertyMap styleMap;
+
@DomName('Element.tagName')
@DocsEditable()
final String tagName;
@@ -15367,6 +17629,11 @@
@Experimental() // untriaged
String getAttributeNS(String namespaceURI, String localName) native;
+ @DomName('Element.getAttributeNames')
+ @DocsEditable()
+ @Experimental() // untriaged
+ List<String> getAttributeNames() native;
+
/**
* Returns the smallest bounding rectangle that encompasses this element's
* padding, scrollbar, and border.
@@ -15381,10 +17648,11 @@
*/
@DomName('Element.getBoundingClientRect')
@DocsEditable()
- @Creates('_ClientRect')
- @Returns('_ClientRect|Null')
+ @Creates('_DomRect')
+ @Returns('_DomRect|Null')
Rectangle getBoundingClientRect() native;
+ @JSName('getClientRects')
/**
* Returns a list of bounding rectangles for each box associated with this
* element.
@@ -15399,9 +17667,9 @@
*/
@DomName('Element.getClientRects')
@DocsEditable()
- @Returns('_ClientRectList|Null')
- @Creates('_ClientRectList')
- List<Rectangle> getClientRects() native;
+ @Returns('DomRectList|Null')
+ @Creates('DomRectList')
+ List<Rectangle> _getClientRects() native;
/**
* Returns a list of shadow DOM insertion points to which this element is
@@ -15452,6 +17720,16 @@
@DocsEditable()
bool _hasAttributeNS(String namespaceURI, String localName) native;
+ @DomName('Element.hasPointerCapture')
+ @DocsEditable()
+ @Experimental() // untriaged
+ bool hasPointerCapture(int pointerId) native;
+
+ @DomName('Element.releasePointerCapture')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void releasePointerCapture(int pointerId) native;
+
@JSName('removeAttribute')
@DomName('Element.removeAttribute')
@DocsEditable()
@@ -15547,7 +17825,7 @@
@JSName('scrollIntoView')
@DomName('Element.scrollIntoView')
@DocsEditable()
- void _scrollIntoView([bool alignWithTop]) native;
+ void _scrollIntoView([Object arg]) native;
@JSName('scrollIntoViewIfNeeded')
@DomName('Element.scrollIntoViewIfNeeded')
@@ -15612,8 +17890,23 @@
void setDistributeScroll(ScrollStateCallback scrollStateCallback,
String nativeScrollBehavior) native;
+ @DomName('Element.setPointerCapture')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void setPointerCapture(int pointerId) native;
+
// From ChildNode
+ @DomName('Element.after')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void after(Object nodes) native;
+
+ @DomName('Element.before')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void before(Object nodes) native;
+
// From NonDocumentTypeChildNode
@DomName('Element.nextElementSibling')
@@ -16154,6 +18447,11 @@
@Experimental()
ElementStream<Event> get onFullscreenError =>
fullscreenErrorEvent.forElement(this);
+
+ @DomName('Element.onwheel')
+ @DocsEditable()
+ @Experimental() // untriaged
+ ElementStream<WheelEvent> get onWheel => wheelEvent.forElement(this);
}
class _ElementFactoryProvider {
@@ -16243,11 +18541,11 @@
@DomName('HTMLEmbedElement.__getter__')
@DocsEditable()
- bool __getter__(index_OR_name) native;
+ Node __getter__(String name) native;
@DomName('HTMLEmbedElement.__setter__')
@DocsEditable()
- void __setter__(index_OR_name, Node value) native;
+ void __setter__(String 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
@@ -16418,7 +18716,7 @@
@DomName('ErrorCallback')
// http://www.w3.org/TR/file-system-api/#the-errorcallback-interface
@Experimental()
-typedef void _ErrorCallback(FileError error);
+typedef void _ErrorCallback(DomException 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.
@@ -16528,6 +18826,12 @@
throw new StateError('No selector matched for populating matchedTarget.');
}
+ @DomName('Event.path')
+ @DocsEditable()
+ @Experimental()
+ List<EventTarget> get path =>
+ JS('bool', '!!#.composedPath', this) ? composedPath() : [];
+
@DomName('Event.Event')
@DocsEditable()
factory Event._(String type, [Map eventInitDict]) {
@@ -16586,6 +18890,11 @@
@DocsEditable()
final bool cancelable;
+ @DomName('Event.composed')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final bool composed;
+
@DomName('Event.currentTarget')
@DocsEditable()
EventTarget get currentTarget =>
@@ -16610,26 +18919,6 @@
@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);
@@ -16642,21 +18931,21 @@
@DomName('Event.timeStamp')
@DocsEditable()
- final double timeStamp;
+ final num timeStamp;
@DomName('Event.type')
@DocsEditable()
final String type;
- @DomName('Event.deepPath')
+ @DomName('Event.composedPath')
@DocsEditable()
@Experimental() // untriaged
- List<EventTarget> deepPath() native;
+ List<EventTarget> composedPath() native;
@JSName('initEvent')
@DomName('Event.initEvent')
@DocsEditable()
- void _initEvent(String type, bool bubbles, bool cancelable) native;
+ void _initEvent(String type, [bool bubbles, bool cancelable]) native;
@DomName('Event.preventDefault')
@DocsEditable()
@@ -17005,10 +19294,67 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('External')
+@Experimental() // untriaged
+@Native("External")
+class External extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory External._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('External.AddSearchProvider')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void AddSearchProvider() native;
+
+ @DomName('External.IsSearchProviderInstalled')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void IsSearchProviderInstalled() 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('FaceDetector')
+@Experimental() // untriaged
+@Native("FaceDetector")
+class FaceDetector extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory FaceDetector._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('FaceDetector.FaceDetector')
+ @DocsEditable()
+ factory FaceDetector([Map faceDetectorOptions]) {
+ if (faceDetectorOptions != null) {
+ var faceDetectorOptions_1 =
+ convertDartToNative_Dictionary(faceDetectorOptions);
+ return FaceDetector._create_1(faceDetectorOptions_1);
+ }
+ return FaceDetector._create_2();
+ }
+ static FaceDetector _create_1(faceDetectorOptions) =>
+ JS('FaceDetector', 'new FaceDetector(#)', faceDetectorOptions);
+ static FaceDetector _create_2() => JS('FaceDetector', 'new FaceDetector()');
+
+ @DomName('FaceDetector.detect')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future detect(/*ImageBitmapSource*/ image) 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('FederatedCredential')
@Experimental() // untriaged
@Native("FederatedCredential")
-class FederatedCredential extends Credential {
+class FederatedCredential extends Credential implements CredentialUserData {
// To suppress missing implicit constructor warnings.
factory FederatedCredential._() {
throw new UnsupportedError("Not supported");
@@ -17032,6 +19378,19 @@
@DocsEditable()
@Experimental() // untriaged
final String provider;
+
+ // From CredentialUserData
+
+ @JSName('iconURL')
+ @DomName('FederatedCredential.iconURL')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String iconUrl;
+
+ @DomName('FederatedCredential.name')
+ @DocsEditable()
+ @Experimental() // untriaged
+ 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
@@ -17066,6 +19425,11 @@
@Experimental() // untriaged
final bool isReload;
+ @DomName('FetchEvent.preloadResponse')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final Future preloadResponse;
+
@DomName('FetchEvent.request')
@DocsEditable()
@Experimental() // untriaged
@@ -17110,7 +19474,9 @@
@DomName('HTMLFieldSetElement.elements')
@DocsEditable()
- final HtmlFormControlsCollection elements;
+ @Returns('HtmlCollection|Null')
+ @Creates('HtmlCollection')
+ final List<Node> elements;
@DomName('HTMLFieldSetElement.form')
@DocsEditable()
@@ -17274,73 +19640,6 @@
// 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
@@ -17444,8 +19743,8 @@
*/
@DomName('FileReader.errorEvent')
@DocsEditable()
- static const EventStreamProvider<Event> errorEvent =
- const EventStreamProvider<Event>('error');
+ static const EventStreamProvider<ProgressEvent> errorEvent =
+ const EventStreamProvider<ProgressEvent>('error');
/**
* Static factory designed to expose `load` events to event
@@ -17512,7 +19811,7 @@
@DomName('FileReader.error')
@DocsEditable()
- final FileError error;
+ final DomException error;
@DomName('FileReader.readyState')
@DocsEditable()
@@ -17543,7 +19842,7 @@
/// Stream of `error` events handled by this [FileReader].
@DomName('FileReader.onerror')
@DocsEditable()
- Stream<Event> get onError => errorEvent.forTarget(this);
+ Stream<ProgressEvent> get onError => errorEvent.forTarget(this);
/// Stream of `load` events handled by this [FileReader].
@DomName('FileReader.onload')
@@ -17570,25 +19869,6 @@
// 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()
@@ -17716,7 +19996,7 @@
@DomName('FileWriter.error')
@DocsEditable()
- final FileError error;
+ final DomException error;
@DomName('FileWriter.length')
@DocsEditable()
@@ -17851,6 +20131,11 @@
static FontFace _create_2(family, source) =>
JS('FontFace', 'new FontFace(#,#)', family, source);
+ @DomName('FontFace.display')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String display;
+
@DomName('FontFace.family')
@DocsEditable()
@Experimental() // untriaged
@@ -17915,10 +20200,23 @@
throw new UnsupportedError("Not supported");
}
- @DomName('FontFaceSet.size')
+ @DomName('FontFaceSet.loadingEvent')
@DocsEditable()
@Experimental() // untriaged
- final int size;
+ static const EventStreamProvider<FontFaceSetLoadEvent> loadingEvent =
+ const EventStreamProvider<FontFaceSetLoadEvent>('loading');
+
+ @DomName('FontFaceSet.loadingdoneEvent')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const EventStreamProvider<FontFaceSetLoadEvent> loadingDoneEvent =
+ const EventStreamProvider<FontFaceSetLoadEvent>('loadingdone');
+
+ @DomName('FontFaceSet.loadingerrorEvent')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const EventStreamProvider<FontFaceSetLoadEvent> loadingErrorEvent =
+ const EventStreamProvider<FontFaceSetLoadEvent>('loadingerror');
@DomName('FontFaceSet.status')
@DocsEditable()
@@ -17954,6 +20252,23 @@
@DocsEditable()
@Experimental() // untriaged
bool has(FontFace arg) native;
+
+ @DomName('FontFaceSet.onloading')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Stream<FontFaceSetLoadEvent> get onLoading => loadingEvent.forTarget(this);
+
+ @DomName('FontFaceSet.onloadingdone')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Stream<FontFaceSetLoadEvent> get onLoadingDone =>
+ loadingDoneEvent.forTarget(this);
+
+ @DomName('FontFaceSet.onloadingerror')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Stream<FontFaceSetLoadEvent> get onLoadingError =>
+ loadingErrorEvent.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
@@ -17969,6 +20284,23 @@
throw new UnsupportedError("Not supported");
}
+ @DomName('FontFaceSetLoadEvent.FontFaceSetLoadEvent')
+ @DocsEditable()
+ factory FontFaceSetLoadEvent(String type, [Map eventInitDict]) {
+ if (eventInitDict != null) {
+ var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+ return FontFaceSetLoadEvent._create_1(type, eventInitDict_1);
+ }
+ return FontFaceSetLoadEvent._create_2(type);
+ }
+ static FontFaceSetLoadEvent _create_1(type, eventInitDict) => JS(
+ 'FontFaceSetLoadEvent',
+ 'new FontFaceSetLoadEvent(#,#)',
+ type,
+ eventInitDict);
+ static FontFaceSetLoadEvent _create_2(type) =>
+ JS('FontFaceSetLoadEvent', 'new FontFaceSetLoadEvent(#)', type);
+
@DomName('FontFaceSetLoadEvent.fontfaces')
@DocsEditable()
@Experimental() // untriaged
@@ -17979,6 +20311,63 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('FontFaceSource')
+@Experimental() // untriaged
+@Native("FontFaceSource")
+class FontFaceSource extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory FontFaceSource._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('FontFaceSource.fonts')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final FontFaceSet fonts;
+}
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+@DocsEditable()
+@DomName('ForeignFetchEvent')
+@Experimental() // untriaged
+@Native("ForeignFetchEvent")
+class ForeignFetchEvent extends ExtendableEvent {
+ // To suppress missing implicit constructor warnings.
+ factory ForeignFetchEvent._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('ForeignFetchEvent.ForeignFetchEvent')
+ @DocsEditable()
+ factory ForeignFetchEvent(String type, Map eventInitDict) {
+ var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+ return ForeignFetchEvent._create_1(type, eventInitDict_1);
+ }
+ static ForeignFetchEvent _create_1(type, eventInitDict) => JS(
+ 'ForeignFetchEvent', 'new ForeignFetchEvent(#,#)', type, eventInitDict);
+
+ @DomName('ForeignFetchEvent.origin')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String origin;
+
+ @DomName('ForeignFetchEvent.request')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final _Request request;
+
+ @DomName('ForeignFetchEvent.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('FormData')
@SupportedBrowser(SupportedBrowser.CHROME)
@SupportedBrowser(SupportedBrowser.FIREFOX)
@@ -18164,6 +20553,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.
+// WARNING: Do not edit - generated code.
+
+@DomName('FunctionStringCallback')
+@Experimental() // untriaged
+typedef void FunctionStringCallback(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('Gamepad')
// https://dvcs.w3.org/hg/gamepad/raw-file/default/gamepad.html#gamepad-interface
@@ -18190,6 +20588,16 @@
@Experimental() // untriaged
final bool connected;
+ @DomName('Gamepad.displayId')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final int displayId;
+
+ @DomName('Gamepad.hand')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String hand;
+
@DomName('Gamepad.id')
@DocsEditable()
final String id;
@@ -18203,6 +20611,11 @@
@Experimental() // untriaged
final String mapping;
+ @DomName('Gamepad.pose')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final GamepadPose pose;
+
@DomName('Gamepad.timestamp')
@DocsEditable()
final int timestamp;
@@ -18226,10 +20639,15 @@
@Experimental() // untriaged
final bool pressed;
+ @DomName('GamepadButton.touched')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final bool touched;
+
@DomName('GamepadButton.value')
@DocsEditable()
@Experimental() // untriaged
- final double value;
+ final 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
@@ -18269,72 +20687,54 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
-@DomName('Geofencing')
+@DomName('GamepadPose')
@Experimental() // untriaged
-@Native("Geofencing")
-class Geofencing extends Interceptor {
+@Native("GamepadPose")
+class GamepadPose extends Interceptor {
// To suppress missing implicit constructor warnings.
- factory Geofencing._() {
+ factory GamepadPose._() {
throw new UnsupportedError("Not supported");
}
- @DomName('Geofencing.getRegisteredRegions')
+ @DomName('GamepadPose.angularAcceleration')
@DocsEditable()
@Experimental() // untriaged
- Future getRegisteredRegions() native;
+ final Float32List angularAcceleration;
- @DomName('Geofencing.registerRegion')
+ @DomName('GamepadPose.angularVelocity')
@DocsEditable()
@Experimental() // untriaged
- Future registerRegion(GeofencingRegion region) native;
+ final Float32List angularVelocity;
- @DomName('Geofencing.unregisterRegion')
+ @DomName('GamepadPose.hasOrientation')
@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.
+ final bool hasOrientation;
-@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')
+ @DomName('GamepadPose.hasPosition')
@DocsEditable()
@Experimental() // untriaged
- final String id;
+ final bool hasPosition;
- @DomName('GeofencingEvent.region')
+ @DomName('GamepadPose.linearAcceleration')
@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.
+ final Float32List linearAcceleration;
-@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')
+ @DomName('GamepadPose.linearVelocity')
@DocsEditable()
@Experimental() // untriaged
- final String id;
+ final Float32List linearVelocity;
+
+ @DomName('GamepadPose.orientation')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final Float32List orientation;
+
+ @DomName('GamepadPose.position')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final Float32List 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
@@ -18507,21 +20907,23 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
-@DomName('Geoposition')
-@Unstable()
-@Native("Geoposition")
+@DomName('Position')
+@Experimental() // untriaged
+@Native("Position")
class Geoposition extends Interceptor {
// To suppress missing implicit constructor warnings.
factory Geoposition._() {
throw new UnsupportedError("Not supported");
}
- @DomName('Geoposition.coords')
+ @DomName('Position.coords')
@DocsEditable()
+ @Experimental() // untriaged
final Coordinates coords;
- @DomName('Geoposition.timestamp')
+ @DomName('Position.timestamp')
@DocsEditable()
+ @Experimental() // untriaged
final int timestamp;
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
@@ -18883,6 +21285,12 @@
static const EventStreamProvider<Event> waitingEvent =
const EventStreamProvider<Event>('waiting');
+ @DomName('GlobalEventHandlers.wheelEvent')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const EventStreamProvider<WheelEvent> wheelEvent =
+ const EventStreamProvider<WheelEvent>('wheel');
+
@DomName('GlobalEventHandlers.onabort')
@DocsEditable()
@Experimental() // untriaged
@@ -19162,6 +21570,53 @@
@DocsEditable()
@Experimental() // untriaged
Stream<Event> get onWaiting => waitingEvent.forTarget(this);
+
+ @DomName('GlobalEventHandlers.onwheel')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Stream<WheelEvent> get onWheel => wheelEvent.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('Gyroscope')
+@Experimental() // untriaged
+@Native("Gyroscope")
+class Gyroscope extends Sensor {
+ // To suppress missing implicit constructor warnings.
+ factory Gyroscope._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('Gyroscope.Gyroscope')
+ @DocsEditable()
+ factory Gyroscope([Map sensorOptions]) {
+ if (sensorOptions != null) {
+ var sensorOptions_1 = convertDartToNative_Dictionary(sensorOptions);
+ return Gyroscope._create_1(sensorOptions_1);
+ }
+ return Gyroscope._create_2();
+ }
+ static Gyroscope _create_1(sensorOptions) =>
+ JS('Gyroscope', 'new Gyroscope(#)', sensorOptions);
+ static Gyroscope _create_2() => JS('Gyroscope', 'new Gyroscope()');
+
+ @DomName('Gyroscope.x')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num x;
+
+ @DomName('Gyroscope.y')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num y;
+
+ @DomName('Gyroscope.z')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num 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
@@ -19293,26 +21748,14 @@
@DomName('Headers.Headers')
@DocsEditable()
- factory Headers([input]) {
- if (input == null) {
- return Headers._create_1();
+ factory Headers([Object init]) {
+ if (init != null) {
+ return Headers._create_1(init);
}
- 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");
+ return Headers._create_2();
}
- 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);
+ static Headers _create_1(init) => JS('Headers', 'new Headers(#)', init);
+ static Headers _create_2() => JS('Headers', 'new Headers()');
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -19482,30 +21925,6 @@
// 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
@@ -19733,10 +22152,8 @@
* `<input is="x-bar"></input>`
*
*/
- void registerElement(String tag, Type customElementClass,
- {String extendsTag}) {
- _registerCustomElement(
- JS('', 'window'), this, tag, customElementClass, extendsTag);
+ Function registerElement2(String tag, [Map options]) {
+ return _registerCustomElement(JS('', 'window'), this, tag, options);
}
/** *Deprecated*: use [registerElement] instead. */
@@ -19848,6 +22265,75 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('HTMLHyperlinkElementUtils')
+@Experimental() // untriaged
+@Native("HTMLHyperlinkElementUtils")
+class HtmlHyperlinkElementUtils extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory HtmlHyperlinkElementUtils._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('HTMLHyperlinkElementUtils.hash')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String hash;
+
+ @DomName('HTMLHyperlinkElementUtils.host')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String host;
+
+ @DomName('HTMLHyperlinkElementUtils.hostname')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String hostname;
+
+ @DomName('HTMLHyperlinkElementUtils.href')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String href;
+
+ @DomName('HTMLHyperlinkElementUtils.origin')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String origin;
+
+ @DomName('HTMLHyperlinkElementUtils.password')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String password;
+
+ @DomName('HTMLHyperlinkElementUtils.pathname')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String pathname;
+
+ @DomName('HTMLHyperlinkElementUtils.port')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String port;
+
+ @DomName('HTMLHyperlinkElementUtils.protocol')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String protocol;
+
+ @DomName('HTMLHyperlinkElementUtils.search')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String search;
+
+ @DomName('HTMLHyperlinkElementUtils.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('HTMLOptionsCollection')
@Native("HTMLOptionsCollection")
class HtmlOptionsCollection extends HtmlCollection {
@@ -19860,7 +22346,7 @@
@DomName('HTMLOptionsCollection.item')
@DocsEditable()
@Experimental() // untriaged
- Node _item(int index) native;
+ 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
@@ -20278,8 +22764,8 @@
*/
@DomName('XMLHttpRequest.readystatechangeEvent')
@DocsEditable()
- static const EventStreamProvider<ProgressEvent> readyStateChangeEvent =
- const EventStreamProvider<ProgressEvent>('readystatechange');
+ static const EventStreamProvider<Event> readyStateChangeEvent =
+ const EventStreamProvider<Event>('readystatechange');
/**
* General constructor for any type of request (GET, POST, etc).
@@ -20585,8 +23071,7 @@
*/
@DomName('XMLHttpRequest.onreadystatechange')
@DocsEditable()
- Stream<ProgressEvent> get onReadyStateChange =>
- readyStateChangeEvent.forTarget(this);
+ Stream<Event> 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
@@ -20778,11 +23263,21 @@
*/
IFrameElement.created() : super.created();
+ @DomName('HTMLIFrameElement.allow')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String allow;
+
@DomName('HTMLIFrameElement.allowFullscreen')
@DocsEditable()
@Experimental() // untriaged
bool allowFullscreen;
+ @DomName('HTMLIFrameElement.allowPaymentRequest')
+ @DocsEditable()
+ @Experimental() // untriaged
+ bool allowPaymentRequest;
+
@DomName('HTMLIFrameElement.contentWindow')
@DocsEditable()
WindowBase get contentWindow =>
@@ -20794,6 +23289,11 @@
@Returns('Window|=Object')
final dynamic _get_contentWindow;
+ @DomName('HTMLIFrameElement.csp')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String csp;
+
@DomName('HTMLIFrameElement.height')
@DocsEditable()
String height;
@@ -20802,10 +23302,10 @@
@DocsEditable()
String name;
- @DomName('HTMLIFrameElement.referrerpolicy')
+ @DomName('HTMLIFrameElement.referrerPolicy')
@DocsEditable()
@Experimental() // untriaged
- String referrerpolicy;
+ String referrerPolicy;
@DomName('HTMLIFrameElement.sandbox')
@DocsEditable()
@@ -20904,10 +23404,88 @@
@Experimental() // untriaged
final CanvasElement canvas;
- @DomName('ImageBitmapRenderingContext.transferImageBitmap')
+ @DomName('ImageBitmapRenderingContext.transferFromImageBitmap')
@DocsEditable()
@Experimental() // untriaged
- void transferImageBitmap(ImageBitmap bitmap) native;
+ void transferFromImageBitmap(ImageBitmap bitmap) 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('ImageCapture')
+@Experimental() // untriaged
+@Native("ImageCapture")
+class ImageCapture extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory ImageCapture._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('ImageCapture.ImageCapture')
+ @DocsEditable()
+ factory ImageCapture(MediaStreamTrack track) {
+ return ImageCapture._create_1(track);
+ }
+ static ImageCapture _create_1(track) =>
+ JS('ImageCapture', 'new ImageCapture(#)', track);
+
+ @DomName('ImageCapture.track')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final MediaStreamTrack track;
+
+ @DomName('ImageCapture.getPhotoCapabilities')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future getPhotoCapabilities() native;
+
+ @DomName('ImageCapture.getPhotoSettings')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future getPhotoSettings() native;
+
+ @DomName('ImageCapture.grabFrame')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future grabFrame() native;
+
+ @DomName('ImageCapture.setOptions')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future setOptions(Map photoSettings) {
+ var photoSettings_1 = convertDartToNative_Dictionary(photoSettings);
+ return _setOptions_1(photoSettings_1);
+ }
+
+ @JSName('setOptions')
+ @DomName('ImageCapture.setOptions')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future _setOptions_1(photoSettings) native;
+
+ @DomName('ImageCapture.takePhoto')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future takePhoto([Map photoSettings]) {
+ if (photoSettings != null) {
+ var photoSettings_1 = convertDartToNative_Dictionary(photoSettings);
+ return _takePhoto_1(photoSettings_1);
+ }
+ return _takePhoto_2();
+ }
+
+ @JSName('takePhoto')
+ @DomName('ImageCapture.takePhoto')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future _takePhoto_1(photoSettings) native;
+ @JSName('takePhoto')
+ @DomName('ImageCapture.takePhoto')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future _takePhoto_2() 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
@@ -20989,6 +23567,11 @@
@DocsEditable()
String alt;
+ @DomName('HTMLImageElement.async')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String async;
+
@DomName('HTMLImageElement.complete')
@DocsEditable()
final bool complete;
@@ -21018,10 +23601,10 @@
@DocsEditable()
final int naturalWidth;
- @DomName('HTMLImageElement.referrerpolicy')
+ @DomName('HTMLImageElement.referrerPolicy')
@DocsEditable()
@Experimental() // untriaged
- String referrerpolicy;
+ String referrerPolicy;
@DomName('HTMLImageElement.sizes')
@DocsEditable()
@@ -21044,25 +23627,11 @@
@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')
+ @DomName('HTMLImageElement.decode')
@DocsEditable()
@Experimental() // untriaged
- void inspect(Object objectId, Object hints) native;
+ Future decode() 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
@@ -21174,7 +23743,7 @@
@DomName('HTMLInputElement.capture')
@DocsEditable()
@Experimental() // untriaged
- bool capture;
+ String capture;
@DomName('HTMLInputElement.checked')
@DocsEditable()
@@ -21240,11 +23809,6 @@
@DocsEditable()
bool indeterminate;
- @DomName('HTMLInputElement.inputMode')
- @DocsEditable()
- @Experimental() // untriaged
- String inputMode;
-
@DomName('HTMLInputElement.labels')
@DocsEditable()
@Returns('NodeList|Null')
@@ -21999,20 +24563,20 @@
static InstallEvent _create_2(type) =>
JS('InstallEvent', 'new InstallEvent(#)', type);
- @DomName('InstallEvent.registerForeignFetchScopes')
+ @DomName('InstallEvent.registerForeignFetch')
@DocsEditable()
@Experimental() // untriaged
- void registerForeignFetchScopes(List<String> subScopes, Object origins) {
- List subScopes_1 = convertDartToNative_StringArray(subScopes);
- _registerForeignFetchScopes_1(subScopes_1, origins);
+ void registerForeignFetch(Map options) {
+ var options_1 = convertDartToNative_Dictionary(options);
+ _registerForeignFetch_1(options_1);
return;
}
- @JSName('registerForeignFetchScopes')
- @DomName('InstallEvent.registerForeignFetchScopes')
+ @JSName('registerForeignFetch')
+ @DomName('InstallEvent.registerForeignFetch')
@DocsEditable()
@Experimental() // untriaged
- void _registerForeignFetchScopes_1(List subScopes, origins) native;
+ void _registerForeignFetch_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
@@ -22028,6 +24592,24 @@
throw new UnsupportedError("Not supported");
}
+ @DomName('IntersectionObserver.IntersectionObserver')
+ @DocsEditable()
+ factory IntersectionObserver(IntersectionObserverCallback callback,
+ [Map options]) {
+ if (options != null) {
+ var options_1 = convertDartToNative_Dictionary(options);
+ return IntersectionObserver._create_1(callback, options_1);
+ }
+ return IntersectionObserver._create_2(callback);
+ }
+ static IntersectionObserver _create_1(callback, options) => JS(
+ 'IntersectionObserver',
+ 'new IntersectionObserver(#,#)',
+ callback,
+ options);
+ static IntersectionObserver _create_2(callback) =>
+ JS('IntersectionObserver', 'new IntersectionObserver(#)', callback);
+
@DomName('IntersectionObserver.root')
@DocsEditable()
@Experimental() // untriaged
@@ -22067,6 +24649,16 @@
// for 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('IntersectionObserverCallback')
+@Experimental() // untriaged
+typedef void IntersectionObserverCallback(
+ List<IntersectionObserverEntry> entries, IntersectionObserver 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.
+
@DocsEditable()
@DomName('IntersectionObserverEntry')
@Experimental() // untriaged
@@ -22080,17 +24672,27 @@
@DomName('IntersectionObserverEntry.boundingClientRect')
@DocsEditable()
@Experimental() // untriaged
- final Rectangle boundingClientRect;
+ final DomRectReadOnly boundingClientRect;
+
+ @DomName('IntersectionObserverEntry.intersectionRatio')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num intersectionRatio;
@DomName('IntersectionObserverEntry.intersectionRect')
@DocsEditable()
@Experimental() // untriaged
- final Rectangle intersectionRect;
+ final DomRectReadOnly intersectionRect;
+
+ @DomName('IntersectionObserverEntry.isIntersecting')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final bool isIntersecting;
@DomName('IntersectionObserverEntry.rootBounds')
@DocsEditable()
@Experimental() // untriaged
- final Rectangle rootBounds;
+ final DomRectReadOnly rootBounds;
@DomName('IntersectionObserverEntry.target')
@DocsEditable()
@@ -22100,7 +24702,36 @@
@DomName('IntersectionObserverEntry.time')
@DocsEditable()
@Experimental() // untriaged
- final double time;
+ final num 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.
+
+@DocsEditable()
+@DomName('InterventionReport')
+@Experimental() // untriaged
+@Native("InterventionReport")
+class InterventionReport extends ReportBody {
+ // To suppress missing implicit constructor warnings.
+ factory InterventionReport._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('InterventionReport.lineNumber')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final int lineNumber;
+
+ @DomName('InterventionReport.message')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String message;
+
+ @DomName('InterventionReport.sourceFile')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String sourceFile;
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -22248,6 +24879,11 @@
@DocsEditable()
final bool ctrlKey;
+ @DomName('KeyboardEvent.isComposing')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final bool isComposing;
+
@DomName('KeyboardEvent.key')
@DocsEditable()
@Experimental() // untriaged
@@ -22259,12 +24895,6 @@
@Experimental() // untriaged
final int _keyCode;
- @JSName('keyIdentifier')
- @DomName('KeyboardEvent.keyIdentifier')
- @DocsEditable()
- @Experimental() // nonstandard
- final String _keyIdentifier;
-
@DomName('KeyboardEvent.location')
@DocsEditable()
@Experimental() // untriaged
@@ -22283,9 +24913,6 @@
@DocsEditable()
final bool shiftKey;
- // Use implementation from UIEvent.
- // final int _which;
-
@DomName('KeyboardEvent.getModifierState')
@DocsEditable()
@Experimental() // untriaged
@@ -22299,7 +24926,7 @@
@DomName('KeyframeEffect')
@Experimental() // untriaged
@Native("KeyframeEffect")
-class KeyframeEffect extends AnimationEffectReadOnly {
+class KeyframeEffect extends KeyframeEffectReadOnly {
// To suppress missing implicit constructor warnings.
factory KeyframeEffect._() {
throw new UnsupportedError("Not supported");
@@ -22307,150 +24934,51 @@
@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);
+ factory KeyframeEffect(Element target, Object effect, [Object options]) {
+ if (options != null) {
+ return KeyframeEffect._create_1(target, effect, options);
}
- 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");
+ return KeyframeEffect._create_2(target, effect);
}
- static KeyframeEffect _create_1(target, effect) =>
+ static KeyframeEffect _create_1(target, effect, options) => JS(
+ 'KeyframeEffect', 'new KeyframeEffect(#,#,#)', target, effect, options);
+ static KeyframeEffect _create_2(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')
+@DomName('KeyframeEffectReadOnly')
@Experimental() // untriaged
-@Native("KeywordValue")
-class KeywordValue extends StyleValue {
+@Native("KeyframeEffectReadOnly")
+class KeyframeEffectReadOnly extends AnimationEffectReadOnly {
// To suppress missing implicit constructor warnings.
- factory KeywordValue._() {
+ factory KeyframeEffectReadOnly._() {
throw new UnsupportedError("Not supported");
}
- @DomName('KeywordValue.KeywordValue')
+ @DomName('KeyframeEffectReadOnly.KeyframeEffectReadOnly')
@DocsEditable()
- factory KeywordValue(String keyword) {
- return KeywordValue._create_1(keyword);
+ factory KeyframeEffectReadOnly(Element target, Object effect,
+ [Object options]) {
+ if (options != null) {
+ return KeyframeEffectReadOnly._create_1(target, effect, options);
+ }
+ return KeyframeEffectReadOnly._create_2(target, effect);
}
- static KeywordValue _create_1(keyword) =>
- JS('KeywordValue', 'new KeywordValue(#)', keyword);
-
- @DomName('KeywordValue.keywordValue')
- @DocsEditable()
- @Experimental() // untriaged
- final String keywordValue;
+ static KeyframeEffectReadOnly _create_1(target, effect, options) => JS(
+ 'KeyframeEffectReadOnly',
+ 'new KeyframeEffectReadOnly(#,#,#)',
+ target,
+ effect,
+ options);
+ static KeyframeEffectReadOnly _create_2(target, effect) => JS(
+ 'KeyframeEffectReadOnly',
+ 'new KeyframeEffectReadOnly(#,#)',
+ target,
+ effect);
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -22555,58 +25083,30 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
-@DomName('LengthValue')
+@DomName('LinearAccelerationSensor')
@Experimental() // untriaged
-@Native("LengthValue")
-class LengthValue extends StyleValue {
+@Native("LinearAccelerationSensor")
+class LinearAccelerationSensor extends Accelerometer {
// To suppress missing implicit constructor warnings.
- factory LengthValue._() {
+ factory LinearAccelerationSensor._() {
throw new UnsupportedError("Not supported");
}
- @DomName('LengthValue.add')
+ @DomName('LinearAccelerationSensor.LinearAccelerationSensor')
@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);
+ factory LinearAccelerationSensor([Map sensorOptions]) {
+ if (sensorOptions != null) {
+ var sensorOptions_1 = convertDartToNative_Dictionary(sensorOptions);
+ return LinearAccelerationSensor._create_1(sensorOptions_1);
+ }
+ return LinearAccelerationSensor._create_2();
}
-
- @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;
+ static LinearAccelerationSensor _create_1(sensorOptions) => JS(
+ 'LinearAccelerationSensor',
+ 'new LinearAccelerationSensor(#)',
+ sensorOptions);
+ static LinearAccelerationSensor _create_2() =>
+ JS('LinearAccelerationSensor', 'new LinearAccelerationSensor()');
}
// 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
@@ -22672,6 +25172,11 @@
@DocsEditable()
String media;
+ @DomName('HTMLLinkElement.referrerPolicy')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String referrerPolicy;
+
@DomName('HTMLLinkElement.rel')
@DocsEditable()
String rel;
@@ -22681,6 +25186,11 @@
@Experimental() // untriaged
final DomTokenList relList;
+ @DomName('HTMLLinkElement.scope')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String scope;
+
@DomName('HTMLLinkElement.sheet')
@DocsEditable()
final StyleSheet sheet;
@@ -22750,6 +25260,11 @@
@DocsEditable()
String search;
+ @DomName('Location.trustedHref')
+ @DocsEditable()
+ @Experimental() // untriaged
+ TrustedUrl trustedHref;
+
@DomName('Location.assign')
@DocsEditable()
void assign([String url]) native;
@@ -22779,6 +25294,48 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('Magnetometer')
+@Experimental() // untriaged
+@Native("Magnetometer")
+class Magnetometer extends Sensor {
+ // To suppress missing implicit constructor warnings.
+ factory Magnetometer._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('Magnetometer.Magnetometer')
+ @DocsEditable()
+ factory Magnetometer([Map sensorOptions]) {
+ if (sensorOptions != null) {
+ var sensorOptions_1 = convertDartToNative_Dictionary(sensorOptions);
+ return Magnetometer._create_1(sensorOptions_1);
+ }
+ return Magnetometer._create_2();
+ }
+ static Magnetometer _create_1(sensorOptions) =>
+ JS('Magnetometer', 'new Magnetometer(#)', sensorOptions);
+ static Magnetometer _create_2() => JS('Magnetometer', 'new Magnetometer()');
+
+ @DomName('Magnetometer.x')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num x;
+
+ @DomName('Magnetometer.y')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num y;
+
+ @DomName('Magnetometer.z')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num 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('HTMLMapElement')
@Native("HTMLMapElement")
class MapElement extends HtmlElement {
@@ -22813,204 +25370,71 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
-@DomName('Matrix')
+@DomName('MediaCapabilities')
@Experimental() // untriaged
-@Native("Matrix")
-class Matrix extends TransformComponent {
+@Native("MediaCapabilities")
+class MediaCapabilities extends Interceptor {
// To suppress missing implicit constructor warnings.
- factory Matrix._() {
+ factory MediaCapabilities._() {
throw new UnsupportedError("Not supported");
}
- @DomName('Matrix.Matrix')
+ @DomName('MediaCapabilities.decodingInfo')
@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");
+ @Experimental() // untriaged
+ Future decodingInfo(Map configuration) {
+ var configuration_1 = convertDartToNative_Dictionary(configuration);
+ return _decodingInfo_1(configuration_1);
}
- 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')
+ @JSName('decodingInfo')
+ @DomName('MediaCapabilities.decodingInfo')
@DocsEditable()
@Experimental() // untriaged
- final double a;
+ Future _decodingInfo_1(configuration) native;
- @DomName('Matrix.b')
+ @DomName('MediaCapabilities.encodingInfo')
@DocsEditable()
@Experimental() // untriaged
- final double b;
+ Future encodingInfo(Map configuration) {
+ var configuration_1 = convertDartToNative_Dictionary(configuration);
+ return _encodingInfo_1(configuration_1);
+ }
- @DomName('Matrix.c')
+ @JSName('encodingInfo')
+ @DomName('MediaCapabilities.encodingInfo')
@DocsEditable()
@Experimental() // untriaged
- final double c;
+ Future _encodingInfo_1(configuration) 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('Matrix.d')
+@DocsEditable()
+@DomName('MediaCapabilitiesInfo')
+@Experimental() // untriaged
+@Native("MediaCapabilitiesInfo")
+class MediaCapabilitiesInfo extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory MediaCapabilitiesInfo._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('MediaCapabilitiesInfo.powerEfficient')
@DocsEditable()
@Experimental() // untriaged
- final double d;
+ final bool powerEfficient;
- @DomName('Matrix.e')
+ @DomName('MediaCapabilitiesInfo.smooth')
@DocsEditable()
@Experimental() // untriaged
- final double e;
+ final bool smooth;
- @DomName('Matrix.f')
+ @DomName('MediaCapabilitiesInfo.supported')
@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;
+ final bool 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
@@ -23054,7 +25478,7 @@
@DomName('MediaDevices')
@Experimental() // untriaged
@Native("MediaDevices")
-class MediaDevices extends Interceptor {
+class MediaDevices extends EventTarget {
// To suppress missing implicit constructor warnings.
factory MediaDevices._() {
throw new UnsupportedError("Not supported");
@@ -23065,19 +25489,18 @@
@Experimental() // untriaged
Future enumerateDevices() native;
- @DomName('MediaDevices.getUserMedia')
+ @DomName('MediaDevices.getSupportedConstraints')
@DocsEditable()
@Experimental() // untriaged
- Future getUserMedia(Map options) {
- var options_1 = convertDartToNative_Dictionary(options);
- return _getUserMedia_1(options_1);
+ Map getSupportedConstraints() {
+ return convertNativeToDart_Dictionary(_getSupportedConstraints_1());
}
- @JSName('getUserMedia')
- @DomName('MediaDevices.getUserMedia')
+ @JSName('getSupportedConstraints')
+ @DomName('MediaDevices.getSupportedConstraints')
@DocsEditable()
@Experimental() // untriaged
- Future _getUserMedia_1(options) native;
+ _getSupportedConstraints_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
@@ -23138,9 +25561,7 @@
@DomName('HTMLMediaElement.audioTracks')
@DocsEditable()
@Experimental() // untriaged
- @Returns('AudioTrackList|Null')
- @Creates('AudioTrackList')
- final List<AudioTrack> audioTracks;
+ final AudioTrackList audioTracks;
@DomName('HTMLMediaElement.autoplay')
@DocsEditable()
@@ -23154,6 +25575,11 @@
@DocsEditable()
bool controls;
+ @DomName('HTMLMediaElement.controlsList')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final DomTokenList controlsList;
+
@DomName('HTMLMediaElement.crossOrigin')
@DocsEditable()
@Experimental() // untriaged
@@ -23182,7 +25608,7 @@
@DomName('HTMLMediaElement.duration')
@DocsEditable()
- final double duration;
+ final num duration;
@DomName('HTMLMediaElement.ended')
@DocsEditable()
@@ -23230,6 +25656,11 @@
@DocsEditable()
final int readyState;
+ @DomName('HTMLMediaElement.remote')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final RemotePlayback remote;
+
@DomName('HTMLMediaElement.seekable')
@DocsEditable()
final TimeRanges seekable;
@@ -23238,11 +25669,6 @@
@DocsEditable()
final bool seeking;
- @DomName('HTMLMediaElement.session')
- @DocsEditable()
- @Experimental() // untriaged
- MediaSession session;
-
@DomName('HTMLMediaElement.sinkId')
@DocsEditable()
@Experimental() // untriaged
@@ -23252,6 +25678,11 @@
@DocsEditable()
String src;
+ @DomName('HTMLMediaElement.srcObject')
+ @DocsEditable()
+ @Experimental() // untriaged
+ MediaStream srcObject;
+
@DomName('HTMLMediaElement.textTracks')
@DocsEditable()
// http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#dom-media-texttracks
@@ -23397,6 +25828,11 @@
@DomName('MediaError.code')
@DocsEditable()
final int code;
+
+ @DomName('MediaError.message')
+ @DocsEditable()
+ @Experimental() // untriaged
+ 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
@@ -23415,20 +25851,15 @@
@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);
+ factory MediaKeyMessageEvent(String type, Map eventInitDict) {
+ var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+ return MediaKeyMessageEvent._create_1(type, eventInitDict_1);
}
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()
@@ -23454,6 +25885,12 @@
throw new UnsupportedError("Not supported");
}
+ @DomName('MediaKeySession.messageEvent')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const EventStreamProvider<MessageEvent> messageEvent =
+ const EventStreamProvider<MessageEvent>('message');
+
@DomName('MediaKeySession.closed')
@DocsEditable()
@Experimental() // untriaged
@@ -23462,7 +25899,7 @@
@DomName('MediaKeySession.expiration')
@DocsEditable()
@Experimental() // untriaged
- final double expiration;
+ final num expiration;
@DomName('MediaKeySession.keyStatuses')
@DocsEditable()
@@ -23496,6 +25933,11 @@
@DomName('MediaKeySession.update')
@DocsEditable()
Future _update(/*BufferSource*/ response) native;
+
+ @DomName('MediaKeySession.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
@@ -23515,6 +25957,16 @@
@DocsEditable()
@Experimental() // untriaged
final int size;
+
+ @DomName('MediaKeyStatusMap.get')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Object get(/*BufferSource*/ keyId) native;
+
+ @DomName('MediaKeyStatusMap.has')
+ @DocsEditable()
+ @Experimental() // untriaged
+ bool has(/*BufferSource*/ keyId) 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
@@ -23573,6 +26025,11 @@
@DocsEditable()
MediaKeySession _createSession([String sessionType]) native;
+ @DomName('MediaKeys.getStatusForPolicy')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future getStatusForPolicy(MediaKeysPolicy policy) native;
+
@DomName('MediaKeys.setServerCertificate')
@DocsEditable()
@Experimental() // untriaged
@@ -23583,6 +26040,34 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('MediaKeysPolicy')
+@Experimental() // untriaged
+@Native("MediaKeysPolicy")
+class MediaKeysPolicy extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory MediaKeysPolicy._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('MediaKeysPolicy.MediaKeysPolicy')
+ @DocsEditable()
+ factory MediaKeysPolicy(Map init) {
+ var init_1 = convertDartToNative_Dictionary(init);
+ return MediaKeysPolicy._create_1(init_1);
+ }
+ static MediaKeysPolicy _create_1(init) =>
+ JS('MediaKeysPolicy', 'new MediaKeysPolicy(#)', init);
+
+ @DomName('MediaKeysPolicy.minHdcpVersion')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String minHdcpVersion;
+}
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All 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")
@@ -23628,27 +26113,37 @@
@DomName('MediaMetadata.MediaMetadata')
@DocsEditable()
- factory MediaMetadata(Map metadata) {
- var metadata_1 = convertDartToNative_Dictionary(metadata);
- return MediaMetadata._create_1(metadata_1);
+ factory MediaMetadata([Map metadata]) {
+ if (metadata != null) {
+ var metadata_1 = convertDartToNative_Dictionary(metadata);
+ return MediaMetadata._create_1(metadata_1);
+ }
+ return MediaMetadata._create_2();
}
static MediaMetadata _create_1(metadata) =>
JS('MediaMetadata', 'new MediaMetadata(#)', metadata);
+ static MediaMetadata _create_2() =>
+ JS('MediaMetadata', 'new MediaMetadata()');
@DomName('MediaMetadata.album')
@DocsEditable()
@Experimental() // untriaged
- final String album;
+ String album;
@DomName('MediaMetadata.artist')
@DocsEditable()
@Experimental() // untriaged
- final String artist;
+ String artist;
+
+ @DomName('MediaMetadata.artwork')
+ @DocsEditable()
+ @Experimental() // untriaged
+ List artwork;
@DomName('MediaMetadata.title')
@DocsEditable()
@Experimental() // untriaged
- final String title;
+ 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
@@ -23777,11 +26272,6 @@
@Experimental() // untriaged
final int audioBitsPerSecond;
- @DomName('MediaRecorder.ignoreMutedMedia')
- @DocsEditable()
- @Experimental() // untriaged
- bool ignoreMutedMedia;
-
@DomName('MediaRecorder.mimeType')
@DocsEditable()
@Experimental() // untriaged
@@ -23856,27 +26346,59 @@
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')
+ @DomName('MediaSession.playbackState')
@DocsEditable()
@Experimental() // untriaged
- Future activate() native;
+ String playbackState;
- @DomName('MediaSession.deactivate')
+ @DomName('MediaSession.setActionHandler')
@DocsEditable()
@Experimental() // untriaged
- Future deactivate() native;
+ void setActionHandler(String action, MediaSessionActionHandler handler)
+ 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('MediaSessionActionHandler')
+@Experimental() // untriaged
+typedef void MediaSessionActionHandler();
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+@DocsEditable()
+@DomName('MediaSettingsRange')
+@Experimental() // untriaged
+@Native("MediaSettingsRange")
+class MediaSettingsRange extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory MediaSettingsRange._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('MediaSettingsRange.max')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num max;
+
+ @DomName('MediaSettingsRange.min')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num min;
+
+ @DomName('MediaSettingsRange.step')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num step;
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -23925,6 +26447,11 @@
@DocsEditable()
SourceBuffer addSourceBuffer(String type) native;
+ @DomName('MediaSource.clearLiveSeekableRange')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void clearLiveSeekableRange() native;
+
@DomName('MediaSource.endOfStream')
@DocsEditable()
void endOfStream([String error]) native;
@@ -23936,6 +26463,11 @@
@DomName('MediaSource.removeSourceBuffer')
@DocsEditable()
void removeSourceBuffer(SourceBuffer buffer) native;
+
+ @DomName('MediaSource.setLiveSeekableRange')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void setLiveSeekableRange(num start, num end) 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
@@ -23964,17 +26496,6 @@
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].
*
@@ -24053,11 +26574,6 @@
@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()
@@ -24165,6 +26681,11 @@
static const EventStreamProvider<Event> unmuteEvent =
const EventStreamProvider<Event>('unmute');
+ @DomName('MediaStreamTrack.contentHint')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String contentHint;
+
@DomName('MediaStreamTrack.enabled')
@DocsEditable()
bool enabled;
@@ -24190,34 +26711,72 @@
@DocsEditable()
final String readyState;
- @DomName('MediaStreamTrack.remote')
+ @DomName('MediaStreamTrack.applyConstraints')
@DocsEditable()
@Experimental() // untriaged
- final bool remote;
+ Future applyConstraints([Map constraints]) {
+ if (constraints != null) {
+ var constraints_1 = convertDartToNative_Dictionary(constraints);
+ return _applyConstraints_1(constraints_1);
+ }
+ return _applyConstraints_2();
+ }
+
+ @JSName('applyConstraints')
+ @DomName('MediaStreamTrack.applyConstraints')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future _applyConstraints_1(constraints) native;
+ @JSName('applyConstraints')
+ @DomName('MediaStreamTrack.applyConstraints')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future _applyConstraints_2() native;
@DomName('MediaStreamTrack.clone')
@DocsEditable()
@Experimental() // untriaged
MediaStreamTrack clone() native;
- @JSName('getSources')
- @DomName('MediaStreamTrack.getSources')
+ @DomName('MediaStreamTrack.getCapabilities')
@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;
+ Map getCapabilities() {
+ return convertNativeToDart_Dictionary(_getCapabilities_1());
}
+ @JSName('getCapabilities')
+ @DomName('MediaStreamTrack.getCapabilities')
+ @DocsEditable()
+ @Experimental() // untriaged
+ _getCapabilities_1() native;
+
+ @DomName('MediaStreamTrack.getConstraints')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Map getConstraints() {
+ return convertNativeToDart_Dictionary(_getConstraints_1());
+ }
+
+ @JSName('getConstraints')
+ @DomName('MediaStreamTrack.getConstraints')
+ @DocsEditable()
+ @Experimental() // untriaged
+ _getConstraints_1() native;
+
+ @DomName('MediaStreamTrack.getSettings')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Map getSettings() {
+ return convertNativeToDart_Dictionary(_getSettings_1());
+ }
+
+ @JSName('getSettings')
+ @DomName('MediaStreamTrack.getSettings')
+ @DocsEditable()
+ @Experimental() // untriaged
+ _getSettings_1() native;
+
@DomName('MediaStreamTrack.stop')
@DocsEditable()
@Experimental() // untriaged
@@ -24254,6 +26813,18 @@
throw new UnsupportedError("Not supported");
}
+ @DomName('MediaStreamTrackEvent.MediaStreamTrackEvent')
+ @DocsEditable()
+ factory MediaStreamTrackEvent(String type, Map eventInitDict) {
+ var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+ return MediaStreamTrackEvent._create_1(type, eventInitDict_1);
+ }
+ static MediaStreamTrackEvent _create_1(type, eventInitDict) => JS(
+ 'MediaStreamTrackEvent',
+ 'new MediaStreamTrackEvent(#,#)',
+ type,
+ eventInitDict);
+
/// Checks if this type is supported on the current platform.
static bool get supported =>
Device.isEventTypeSupported('MediaStreamTrackEvent');
@@ -24266,15 +26837,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.
-// 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
@@ -24333,73 +26895,16 @@
* 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')
+// WARNING: Do not edit - generated code.
+
+@DomName('MessageCallback')
@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;
-}
+typedef void MessageCallback(Map 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.
@@ -24515,7 +27020,6 @@
@Experimental() // untriaged
final String suborigin;
- @JSName('initMessageEvent')
@DomName('MessageEvent.initMessageEvent')
@DocsEditable()
void _initMessageEvent(
@@ -24525,8 +27029,19 @@
Object dataArg,
String originArg,
String lastEventIdArg,
- Window sourceArg,
- List<MessagePort> portsArg) native;
+ EventTarget sourceArg,
+ List<MessagePort> portsArg) {
+ var sourceArg_1 = _convertDartToNative_EventTarget(sourceArg);
+ _initMessageEvent_1(typeArg, canBubbleArg, cancelableArg, dataArg,
+ originArg, lastEventIdArg, sourceArg_1, portsArg);
+ return;
+ }
+
+ @JSName('initMessageEvent')
+ @DomName('MessageEvent.initMessageEvent')
+ @DocsEditable()
+ void _initMessageEvent_1(typeArg, canBubbleArg, cancelableArg, dataArg,
+ originArg, lastEventIdArg, 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
@@ -24559,7 +27074,7 @@
@DomName('MessagePort.postMessage')
@DocsEditable()
- void postMessage(/*any*/ message, [List<MessagePort> transfer]) {
+ void postMessage(/*any*/ message, [List<Object> transfer]) {
if (transfer != null) {
var message_1 = convertDartToNative_SerializedScriptValue(message);
_postMessage_1(message_1, transfer);
@@ -24573,7 +27088,7 @@
@JSName('postMessage')
@DomName('MessagePort.postMessage')
@DocsEditable()
- void _postMessage_1(message, List<MessagePort> transfer) native;
+ void _postMessage_1(message, List<Object> transfer) native;
@JSName('postMessage')
@DomName('MessagePort.postMessage')
@DocsEditable()
@@ -24836,11 +27351,6 @@
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
@@ -24874,10 +27384,6 @@
@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
@@ -24911,11 +27417,6 @@
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
@@ -25105,6 +27606,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.
+// WARNING: Do not edit - generated code.
+
+@DomName('MojoWatchCallback')
+@Experimental() // untriaged
+typedef void MojoWatchCallback(int result);
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for 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 {
@@ -25176,12 +27686,12 @@
@JSName('clientX')
@DomName('MouseEvent.clientX')
@DocsEditable()
- final int _clientX;
+ final num _clientX;
@JSName('clientY')
@DomName('MouseEvent.clientY')
@DocsEditable()
- final int _clientY;
+ final num _clientY;
@DomName('MouseEvent.ctrlKey')
@DocsEditable()
@@ -25231,13 +27741,13 @@
@DomName('MouseEvent.pageX')
@DocsEditable()
@Experimental() // untriaged
- final int _pageX;
+ final num _pageX;
@JSName('pageY')
@DomName('MouseEvent.pageY')
@DocsEditable()
@Experimental() // untriaged
- final int _pageY;
+ final num _pageY;
@DomName('MouseEvent.region')
@DocsEditable()
@@ -25258,12 +27768,12 @@
@JSName('screenX')
@DomName('MouseEvent.screenX')
@DocsEditable()
- final int _screenX;
+ final num _screenX;
@JSName('screenY')
@DomName('MouseEvent.screenY')
@DocsEditable()
- final int _screenY;
+ final num _screenY;
@DomName('MouseEvent.shiftKey')
@DocsEditable()
@@ -25281,9 +27791,6 @@
@deprecated
final Node toElement;
- // Use implementation from UIEvent.
- // final int _which;
-
@DomName('MouseEvent.getModifierState')
@DocsEditable()
@Experimental() // untriaged
@@ -25482,9 +27989,13 @@
@DomName('MutationObserver.observe')
@DocsEditable()
- void _observe(Node target, Map options) {
- var options_1 = convertDartToNative_Dictionary(options);
- _observe_1(target, options_1);
+ void _observe(Node target, [Map options]) {
+ if (options != null) {
+ var options_1 = convertDartToNative_Dictionary(options);
+ _observe_1(target, options_1);
+ return;
+ }
+ _observe_2(target);
return;
}
@@ -25492,6 +28003,10 @@
@DomName('MutationObserver.observe')
@DocsEditable()
void _observe_1(Node target, options) native;
+ @JSName('observe')
+ @DomName('MutationObserver.observe')
+ @DocsEditable()
+ void _observe_2(Node target) native;
@DomName('MutationObserver.takeRecords')
@DocsEditable()
@@ -25634,14 +28149,43 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
+@DocsEditable()
+@DomName('NavigationPreloadManager')
+@Experimental() // untriaged
+@Native("NavigationPreloadManager")
+class NavigationPreloadManager extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory NavigationPreloadManager._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('NavigationPreloadManager.disable')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future disable() native;
+
+ @DomName('NavigationPreloadManager.enable')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future enable() native;
+
+ @DomName('NavigationPreloadManager.getState')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future getState() 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('Navigator')
@Native("Navigator")
-class Navigator extends Interceptor
+class Navigator extends NavigatorConcurrentHardware
implements
- NavigatorStorageUtils,
- NavigatorCpu,
+ NavigatorCookies,
NavigatorLanguage,
NavigatorOnLine,
+ NavigatorAutomationInformation,
NavigatorID {
@DomName('Navigator.language')
String get language =>
@@ -25722,6 +28266,16 @@
throw new UnsupportedError("Not supported");
}
+ @DomName('Navigator.budget')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final _BudgetService budget;
+
+ @DomName('Navigator.clipboard')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final _Clipboard clipboard;
+
@DomName('Navigator.connection')
@DocsEditable()
@Experimental() // untriaged
@@ -25732,6 +28286,11 @@
@Experimental() // untriaged
final CredentialsContainer credentials;
+ @DomName('Navigator.deviceMemory')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num deviceMemory;
+
@DomName('Navigator.doNotTrack')
@DocsEditable()
// http://www.w3.org/2011/tracking-protection/drafts/tracking-dnt.html#js-dom
@@ -25748,11 +28307,21 @@
@Experimental() // untriaged
final int maxTouchPoints;
+ @DomName('Navigator.mediaCapabilities')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final MediaCapabilities mediaCapabilities;
+
@DomName('Navigator.mediaDevices')
@DocsEditable()
@Experimental() // untriaged
final MediaDevices mediaDevices;
+ @DomName('Navigator.mediaSession')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final MediaSession mediaSession;
+
@DomName('Navigator.mimeTypes')
@DocsEditable()
@Experimental() // nonstandard
@@ -25783,21 +28352,11 @@
@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()
@@ -25808,6 +28367,11 @@
@Unstable()
final String vendorSub;
+ @DomName('Navigator.vr')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final VR vr;
+
@JSName('webkitPersistentStorage')
@DomName('Navigator.webkitPersistentStorage')
@DocsEditable()
@@ -25826,6 +28390,11 @@
// http://www.w3.org/TR/quota-api/#accessing-storagequota
final DeprecatedStorageQuota temporaryStorage;
+ @DomName('Navigator.cancelKeyboardLock')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void cancelKeyboardLock() native;
+
@DomName('Navigator.getBattery')
@DocsEditable()
@Experimental() // untriaged
@@ -25838,16 +28407,43 @@
@Creates('_GamepadList')
List<Gamepad> getGamepads() native;
- @DomName('Navigator.getVRDevices')
+ @DomName('Navigator.getInstalledRelatedApps')
@DocsEditable()
@Experimental() // untriaged
- Future getVRDevices() native;
+ Future getInstalledRelatedApps() native;
+
+ @DomName('Navigator.getVRDisplays')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future getVRDisplays() native;
@DomName('Navigator.registerProtocolHandler')
@DocsEditable()
@Unstable()
void registerProtocolHandler(String scheme, String url, String title) native;
+ @DomName('Navigator.requestKeyboardLock')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future requestKeyboardLock([List<String> keyCodes]) {
+ if (keyCodes != null) {
+ List keyCodes_1 = convertDartToNative_StringArray(keyCodes);
+ return _requestKeyboardLock_1(keyCodes_1);
+ }
+ return _requestKeyboardLock_2();
+ }
+
+ @JSName('requestKeyboardLock')
+ @DomName('Navigator.requestKeyboardLock')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future _requestKeyboardLock_1(List keyCodes) native;
+ @JSName('requestKeyboardLock')
+ @DomName('Navigator.requestKeyboardLock')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future _requestKeyboardLock_2() native;
+
@DomName('Navigator.requestMIDIAccess')
@DocsEditable()
@Experimental() // untriaged
@@ -25881,12 +28477,41 @@
@Experimental() // untriaged
bool sendBeacon(String url, Object data) native;
- // From NavigatorCPU
-
- @DomName('Navigator.hardwareConcurrency')
+ @DomName('Navigator.share')
@DocsEditable()
@Experimental() // untriaged
- final int hardwareConcurrency;
+ Future share([Map data]) {
+ if (data != null) {
+ var data_1 = convertDartToNative_Dictionary(data);
+ return _share_1(data_1);
+ }
+ return _share_2();
+ }
+
+ @JSName('share')
+ @DomName('Navigator.share')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future _share_1(data) native;
+ @JSName('share')
+ @DomName('Navigator.share')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future _share_2() native;
+
+ // From NavigatorAutomationInformation
+
+ @DomName('Navigator.webdriver')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final bool webdriver;
+
+ // From NavigatorCookies
+
+ @DomName('Navigator.cookieEnabled')
+ @DocsEditable()
+ @Unstable()
+ final bool cookieEnabled;
// From NavigatorID
@@ -25934,27 +28559,43 @@
@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')
+@DomName('NavigatorAutomationInformation')
@Experimental() // untriaged
-abstract class NavigatorCpu extends Interceptor {
+@Native("NavigatorAutomationInformation")
+class NavigatorAutomationInformation extends Interceptor {
// To suppress missing implicit constructor warnings.
- factory NavigatorCpu._() {
+ factory NavigatorAutomationInformation._() {
throw new UnsupportedError("Not supported");
}
+ @DomName('NavigatorAutomationInformation.webdriver')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final bool webdriver;
+}
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+@DocsEditable()
+@DomName('NavigatorConcurrentHardware')
+@Experimental() // untriaged
+@Native("NavigatorConcurrentHardware")
+class NavigatorConcurrentHardware extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory NavigatorConcurrentHardware._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('NavigatorConcurrentHardware.hardwareConcurrency')
+ @DocsEditable()
+ @Experimental() // untriaged
final int hardwareConcurrency;
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
@@ -25962,6 +28603,25 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('NavigatorCookies')
+@Experimental() // untriaged
+@Native("NavigatorCookies")
+class NavigatorCookies extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory NavigatorCookies._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('NavigatorCookies.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('NavigatorID')
@Experimental() // untriaged
abstract class NavigatorID extends Interceptor {
@@ -26021,25 +28681,6 @@
// 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()
@@ -26102,10 +28743,25 @@
static const EventStreamProvider<Event> changeEvent =
const EventStreamProvider<Event>('change');
+ @DomName('NetworkInformation.downlink')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num downlink;
+
@DomName('NetworkInformation.downlinkMax')
@DocsEditable()
@Experimental() // untriaged
- final double downlinkMax;
+ final num downlinkMax;
+
+ @DomName('NetworkInformation.effectiveType')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String effectiveType;
+
+ @DomName('NetworkInformation.rtt')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final int rtt;
@DomName('NetworkInformation.type')
@DocsEditable()
@@ -26462,6 +29118,11 @@
@DocsEditable()
final Node firstChild;
+ @DomName('Node.isConnected')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final bool isConnected;
+
/**
* The last child of this node.
*
@@ -26612,11 +29273,6 @@
@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.
@@ -26659,6 +29315,28 @@
@DocsEditable()
bool contains(Node other) native;
+ @DomName('Node.getRootNode')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Node getRootNode([Map options]) {
+ if (options != null) {
+ var options_1 = convertDartToNative_Dictionary(options);
+ return _getRootNode_1(options_1);
+ }
+ return _getRootNode_2();
+ }
+
+ @JSName('getRootNode')
+ @DomName('Node.getRootNode')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Node _getRootNode_1(options) native;
+ @JSName('getRootNode')
+ @DomName('Node.getRootNode')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Node _getRootNode_2() native;
+
/**
* Returns true if this node has any children.
*
@@ -26905,6 +29583,25 @@
@Experimental() // untriaged
Element getElementById(String elementId) 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('NoncedElement')
+@Experimental() // untriaged
+@Native("NoncedElement")
+class NoncedElement extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory NoncedElement._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('NoncedElement.nonce')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String nonce;
+}
// 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.
@@ -27000,6 +29697,11 @@
@Experimental() // untriaged
final List actions;
+ @DomName('Notification.badge')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String badge;
+
@DomName('Notification.body')
@DocsEditable()
@Experimental() // untriaged
@@ -27022,6 +29724,11 @@
@Experimental() // untriaged
final String icon;
+ @DomName('Notification.image')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String image;
+
@DomName('Notification.lang')
@DocsEditable()
@Experimental() // untriaged
@@ -27144,6 +29851,11 @@
@DocsEditable()
@Experimental() // untriaged
final Notification notification;
+
+ @DomName('NotificationEvent.reply')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String reply;
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -27160,33 +29872,6 @@
// 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 {
@@ -27251,6 +29936,19 @@
/// Checks if this type is supported on the current platform.
static bool get supported => Element.isTagSupported('object');
+ @DomName('HTMLObjectElement.contentWindow')
+ @DocsEditable()
+ @Experimental() // untriaged
+ WindowBase get contentWindow =>
+ _convertNativeToDart_Window(this._get_contentWindow);
+ @JSName('contentWindow')
+ @DomName('HTMLObjectElement.contentWindow')
+ @DocsEditable()
+ @Experimental() // untriaged
+ @Creates('Window|=Object')
+ @Returns('Window|=Object')
+ final dynamic _get_contentWindow;
+
@DomName('HTMLObjectElement.data')
@DocsEditable()
String data;
@@ -27293,11 +29991,11 @@
@DomName('HTMLObjectElement.__getter__')
@DocsEditable()
- bool __getter__(index_OR_name) native;
+ Node __getter__(String name) native;
@DomName('HTMLObjectElement.__setter__')
@DocsEditable()
- void __setter__(index_OR_name, Node value) native;
+ void __setter__(String name, Node value) native;
@DomName('HTMLObjectElement.checkValidity')
@DocsEditable()
@@ -27320,7 +30018,7 @@
@DomName('OffscreenCanvas')
@Experimental() // untriaged
@Native("OffscreenCanvas")
-class OffscreenCanvas extends Interceptor {
+class OffscreenCanvas extends EventTarget {
// To suppress missing implicit constructor warnings.
factory OffscreenCanvas._() {
throw new UnsupportedError("Not supported");
@@ -27343,6 +30041,486 @@
@DocsEditable()
@Experimental() // untriaged
int width;
+
+ @DomName('OffscreenCanvas.convertToBlob')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future convertToBlob([Map options]) {
+ if (options != null) {
+ var options_1 = convertDartToNative_Dictionary(options);
+ return _convertToBlob_1(options_1);
+ }
+ return _convertToBlob_2();
+ }
+
+ @JSName('convertToBlob')
+ @DomName('OffscreenCanvas.convertToBlob')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future _convertToBlob_1(options) native;
+ @JSName('convertToBlob')
+ @DomName('OffscreenCanvas.convertToBlob')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future _convertToBlob_2() native;
+
+ @DomName('OffscreenCanvas.getContext')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Object getContext(String contextType, [Map attributes]) {
+ if (attributes != null) {
+ var attributes_1 = convertDartToNative_Dictionary(attributes);
+ return _getContext_1(contextType, attributes_1);
+ }
+ return _getContext_2(contextType);
+ }
+
+ @JSName('getContext')
+ @DomName('OffscreenCanvas.getContext')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Object _getContext_1(contextType, attributes) native;
+ @JSName('getContext')
+ @DomName('OffscreenCanvas.getContext')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Object _getContext_2(contextType) native;
+
+ @DomName('OffscreenCanvas.transferToImageBitmap')
+ @DocsEditable()
+ @Experimental() // untriaged
+ ImageBitmap transferToImageBitmap() 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('OffscreenCanvasRenderingContext2D')
+@Experimental() // untriaged
+@Native("OffscreenCanvasRenderingContext2D")
+class OffscreenCanvasRenderingContext2D extends Interceptor
+ implements _CanvasPath {
+ // To suppress missing implicit constructor warnings.
+ factory OffscreenCanvasRenderingContext2D._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('OffscreenCanvasRenderingContext2D.canvas')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final OffscreenCanvas canvas;
+
+ @DomName('OffscreenCanvasRenderingContext2D.direction')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String direction;
+
+ @DomName('OffscreenCanvasRenderingContext2D.fillStyle')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Object fillStyle;
+
+ @DomName('OffscreenCanvasRenderingContext2D.filter')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String filter;
+
+ @DomName('OffscreenCanvasRenderingContext2D.font')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String font;
+
+ @DomName('OffscreenCanvasRenderingContext2D.globalAlpha')
+ @DocsEditable()
+ @Experimental() // untriaged
+ num globalAlpha;
+
+ @DomName('OffscreenCanvasRenderingContext2D.globalCompositeOperation')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String globalCompositeOperation;
+
+ @DomName('OffscreenCanvasRenderingContext2D.imageSmoothingEnabled')
+ @DocsEditable()
+ @Experimental() // untriaged
+ bool imageSmoothingEnabled;
+
+ @DomName('OffscreenCanvasRenderingContext2D.imageSmoothingQuality')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String imageSmoothingQuality;
+
+ @DomName('OffscreenCanvasRenderingContext2D.lineCap')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String lineCap;
+
+ @DomName('OffscreenCanvasRenderingContext2D.lineDashOffset')
+ @DocsEditable()
+ @Experimental() // untriaged
+ num lineDashOffset;
+
+ @DomName('OffscreenCanvasRenderingContext2D.lineJoin')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String lineJoin;
+
+ @DomName('OffscreenCanvasRenderingContext2D.lineWidth')
+ @DocsEditable()
+ @Experimental() // untriaged
+ num lineWidth;
+
+ @DomName('OffscreenCanvasRenderingContext2D.miterLimit')
+ @DocsEditable()
+ @Experimental() // untriaged
+ num miterLimit;
+
+ @DomName('OffscreenCanvasRenderingContext2D.shadowBlur')
+ @DocsEditable()
+ @Experimental() // untriaged
+ num shadowBlur;
+
+ @DomName('OffscreenCanvasRenderingContext2D.shadowColor')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String shadowColor;
+
+ @DomName('OffscreenCanvasRenderingContext2D.shadowOffsetX')
+ @DocsEditable()
+ @Experimental() // untriaged
+ num shadowOffsetX;
+
+ @DomName('OffscreenCanvasRenderingContext2D.shadowOffsetY')
+ @DocsEditable()
+ @Experimental() // untriaged
+ num shadowOffsetY;
+
+ @DomName('OffscreenCanvasRenderingContext2D.strokeStyle')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Object strokeStyle;
+
+ @DomName('OffscreenCanvasRenderingContext2D.textAlign')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String textAlign;
+
+ @DomName('OffscreenCanvasRenderingContext2D.textBaseline')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String textBaseline;
+
+ @DomName('OffscreenCanvasRenderingContext2D.beginPath')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void beginPath() native;
+
+ @DomName('OffscreenCanvasRenderingContext2D.clearRect')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void clearRect(num x, num y, num width, num height) native;
+
+ @DomName('OffscreenCanvasRenderingContext2D.clip')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void clip([Path2D path]) native;
+
+ @DomName('OffscreenCanvasRenderingContext2D.commit')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future commit() native;
+
+ @DomName('OffscreenCanvasRenderingContext2D.createImageData')
+ @DocsEditable()
+ @Experimental() // untriaged
+ ImageData createImageData(data_OR_imagedata_OR_sw,
+ [int sh_OR_sw,
+ imageDataColorSettings_OR_sh,
+ Map imageDataColorSettings]) {
+ if ((data_OR_imagedata_OR_sw is ImageData) &&
+ sh_OR_sw == null &&
+ imageDataColorSettings_OR_sh == null &&
+ imageDataColorSettings == null) {
+ var imagedata_1 = convertDartToNative_ImageData(data_OR_imagedata_OR_sw);
+ return convertNativeToDart_ImageData(_createImageData_1(imagedata_1));
+ }
+ if (sh_OR_sw != null &&
+ (data_OR_imagedata_OR_sw is int) &&
+ imageDataColorSettings_OR_sh == null &&
+ imageDataColorSettings == null) {
+ return convertNativeToDart_ImageData(
+ _createImageData_2(data_OR_imagedata_OR_sw, sh_OR_sw));
+ }
+ if ((imageDataColorSettings_OR_sh is Map) &&
+ sh_OR_sw != null &&
+ (data_OR_imagedata_OR_sw is int) &&
+ imageDataColorSettings == null) {
+ var imageDataColorSettings_1 =
+ convertDartToNative_Dictionary(imageDataColorSettings_OR_sh);
+ return convertNativeToDart_ImageData(_createImageData_3(
+ data_OR_imagedata_OR_sw, sh_OR_sw, imageDataColorSettings_1));
+ }
+ if (imageDataColorSettings != null &&
+ (imageDataColorSettings_OR_sh is int) &&
+ sh_OR_sw != null &&
+ data_OR_imagedata_OR_sw != null) {
+ var imageDataColorSettings_1 =
+ convertDartToNative_Dictionary(imageDataColorSettings);
+ return convertNativeToDart_ImageData(_createImageData_4(
+ data_OR_imagedata_OR_sw,
+ sh_OR_sw,
+ imageDataColorSettings_OR_sh,
+ imageDataColorSettings_1));
+ }
+ throw new ArgumentError("Incorrect number or type of arguments");
+ }
+
+ @JSName('createImageData')
+ @DomName('OffscreenCanvasRenderingContext2D.createImageData')
+ @DocsEditable()
+ @Experimental() // untriaged
+ _createImageData_1(imagedata) native;
+ @JSName('createImageData')
+ @DomName('OffscreenCanvasRenderingContext2D.createImageData')
+ @DocsEditable()
+ @Experimental() // untriaged
+ _createImageData_2(int sw, sh) native;
+ @JSName('createImageData')
+ @DomName('OffscreenCanvasRenderingContext2D.createImageData')
+ @DocsEditable()
+ @Experimental() // untriaged
+ _createImageData_3(int sw, sh, imageDataColorSettings) native;
+ @JSName('createImageData')
+ @DomName('OffscreenCanvasRenderingContext2D.createImageData')
+ @DocsEditable()
+ @Experimental() // untriaged
+ _createImageData_4(data, sw, int sh, imageDataColorSettings) native;
+
+ @DomName('OffscreenCanvasRenderingContext2D.createLinearGradient')
+ @DocsEditable()
+ @Experimental() // untriaged
+ CanvasGradient createLinearGradient(num x0, num y0, num x1, num y1) native;
+
+ @DomName('OffscreenCanvasRenderingContext2D.createPattern')
+ @DocsEditable()
+ @Experimental() // untriaged
+ CanvasPattern createPattern(
+ /*CanvasImageSource*/ image,
+ String repetitionType) native;
+
+ @DomName('OffscreenCanvasRenderingContext2D.createRadialGradient')
+ @DocsEditable()
+ @Experimental() // untriaged
+ CanvasGradient createRadialGradient(
+ num x0, num y0, num r0, num x1, num y1, num r1) native;
+
+ @DomName('OffscreenCanvasRenderingContext2D.drawImage')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void drawImage(/*CanvasImageSource*/ image, num sx_OR_x, num sy_OR_y,
+ [num sw_OR_width,
+ num height_OR_sh,
+ num dx,
+ num dy,
+ num dw,
+ num dh]) native;
+
+ @DomName('OffscreenCanvasRenderingContext2D.fill')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void fill([path_OR_winding, String winding]) native;
+
+ @DomName('OffscreenCanvasRenderingContext2D.fillRect')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void fillRect(num x, num y, num width, num height) native;
+
+ @DomName('OffscreenCanvasRenderingContext2D.fillText')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void fillText(String text, num x, num y, [num maxWidth]) native;
+
+ @DomName('OffscreenCanvasRenderingContext2D.getImageData')
+ @DocsEditable()
+ @Experimental() // untriaged
+ ImageData getImageData(int sx, int sy, int sw, int sh) {
+ return convertNativeToDart_ImageData(_getImageData_1(sx, sy, sw, sh));
+ }
+
+ @JSName('getImageData')
+ @DomName('OffscreenCanvasRenderingContext2D.getImageData')
+ @DocsEditable()
+ @Experimental() // untriaged
+ _getImageData_1(sx, sy, sw, sh) native;
+
+ @DomName('OffscreenCanvasRenderingContext2D.getLineDash')
+ @DocsEditable()
+ @Experimental() // untriaged
+ List<num> getLineDash() native;
+
+ @DomName('OffscreenCanvasRenderingContext2D.isPointInPath')
+ @DocsEditable()
+ @Experimental() // untriaged
+ bool isPointInPath(path_OR_x, num x_OR_y, [winding_OR_y, String winding])
+ native;
+
+ @DomName('OffscreenCanvasRenderingContext2D.isPointInStroke')
+ @DocsEditable()
+ @Experimental() // untriaged
+ bool isPointInStroke(path_OR_x, num x_OR_y, [num y]) native;
+
+ @DomName('OffscreenCanvasRenderingContext2D.measureText')
+ @DocsEditable()
+ @Experimental() // untriaged
+ TextMetrics measureText(String text) native;
+
+ @DomName('OffscreenCanvasRenderingContext2D.putImageData')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void putImageData(ImageData imagedata, int dx, int dy,
+ [int dirtyX, int dirtyY, int dirtyWidth, int 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('OffscreenCanvasRenderingContext2D.putImageData')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void _putImageData_1(imagedata, dx, dy) native;
+ @JSName('putImageData')
+ @DomName('OffscreenCanvasRenderingContext2D.putImageData')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void _putImageData_2(
+ imagedata, dx, dy, dirtyX, dirtyY, dirtyWidth, dirtyHeight) native;
+
+ @DomName('OffscreenCanvasRenderingContext2D.resetTransform')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void resetTransform() native;
+
+ @DomName('OffscreenCanvasRenderingContext2D.restore')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void restore() native;
+
+ @DomName('OffscreenCanvasRenderingContext2D.rotate')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void rotate(num angle) native;
+
+ @DomName('OffscreenCanvasRenderingContext2D.save')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void save() native;
+
+ @DomName('OffscreenCanvasRenderingContext2D.scale')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void scale(num x, num y) native;
+
+ @DomName('OffscreenCanvasRenderingContext2D.setLineDash')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void setLineDash(List<num> dash) native;
+
+ @DomName('OffscreenCanvasRenderingContext2D.setTransform')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void setTransform(num a, num b, num c, num d, num e, num f) native;
+
+ @DomName('OffscreenCanvasRenderingContext2D.stroke')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void stroke([Path2D path]) native;
+
+ @DomName('OffscreenCanvasRenderingContext2D.strokeRect')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void strokeRect(num x, num y, num width, num height) native;
+
+ @DomName('OffscreenCanvasRenderingContext2D.strokeText')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void strokeText(String text, num x, num y, [num maxWidth]) native;
+
+ @DomName('OffscreenCanvasRenderingContext2D.transform')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void transform(num a, num b, num c, num d, num e, num f) native;
+
+ @DomName('OffscreenCanvasRenderingContext2D.translate')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void translate(num x, num y) native;
+
+ // From CanvasPath
+
+ @DomName('OffscreenCanvasRenderingContext2D.arc')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void arc(num x, num y, num radius, num startAngle, num endAngle,
+ bool anticlockwise) native;
+
+ @DomName('OffscreenCanvasRenderingContext2D.arcTo')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void arcTo(num x1, num y1, num x2, num y2, num radius) native;
+
+ @DomName('OffscreenCanvasRenderingContext2D.bezierCurveTo')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void bezierCurveTo(num cp1x, num cp1y, num cp2x, num cp2y, num x, num y)
+ native;
+
+ @DomName('OffscreenCanvasRenderingContext2D.closePath')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void closePath() native;
+
+ @DomName('OffscreenCanvasRenderingContext2D.ellipse')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void ellipse(num x, num y, num radiusX, num radiusY, num rotation,
+ num startAngle, num endAngle, bool anticlockwise) native;
+
+ @DomName('OffscreenCanvasRenderingContext2D.lineTo')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void lineTo(num x, num y) native;
+
+ @DomName('OffscreenCanvasRenderingContext2D.moveTo')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void moveTo(num x, num y) native;
+
+ @DomName('OffscreenCanvasRenderingContext2D.quadraticCurveTo')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void quadraticCurveTo(num cpx, num cpy, num x, num y) native;
+
+ @DomName('OffscreenCanvasRenderingContext2D.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
@@ -27463,6 +30641,30 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('OrientationSensor')
+@Experimental() // untriaged
+@Native("OrientationSensor")
+class OrientationSensor extends Sensor {
+ // To suppress missing implicit constructor warnings.
+ factory OrientationSensor._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('OrientationSensor.quaternion')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final List<num> quaternion;
+
+ @DomName('OrientationSensor.populateMatrix')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void populateMatrix(Object targetBuffer) 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('HTMLOutputElement')
@SupportedBrowser(SupportedBrowser.CHROME)
@SupportedBrowser(SupportedBrowser.FIREFOX)
@@ -27548,6 +30750,46 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('OverconstrainedError')
+@Experimental() // untriaged
+@Native("OverconstrainedError")
+class OverconstrainedError extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory OverconstrainedError._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('OverconstrainedError.OverconstrainedError')
+ @DocsEditable()
+ factory OverconstrainedError(String constraint, String message) {
+ return OverconstrainedError._create_1(constraint, message);
+ }
+ static OverconstrainedError _create_1(constraint, message) => JS(
+ 'OverconstrainedError',
+ 'new OverconstrainedError(#,#)',
+ constraint,
+ message);
+
+ @DomName('OverconstrainedError.constraint')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String constraint;
+
+ @DomName('OverconstrainedError.message')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String message;
+
+ @DomName('OverconstrainedError.name')
+ @DocsEditable()
+ @Experimental() // untriaged
+ 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.
+
+@DocsEditable()
@DomName('PageTransitionEvent')
// http://www.whatwg.org/specs/web-apps/current-work/multipage/history.html#pagetransitionevent
@Experimental()
@@ -27584,6 +30826,328 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('PaintRenderingContext2D')
+@Experimental() // untriaged
+@Native("PaintRenderingContext2D")
+class PaintRenderingContext2D extends Interceptor implements _CanvasPath {
+ // To suppress missing implicit constructor warnings.
+ factory PaintRenderingContext2D._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('PaintRenderingContext2D.currentTransform')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Matrix currentTransform;
+
+ @DomName('PaintRenderingContext2D.fillStyle')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Object fillStyle;
+
+ @DomName('PaintRenderingContext2D.filter')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String filter;
+
+ @DomName('PaintRenderingContext2D.globalAlpha')
+ @DocsEditable()
+ @Experimental() // untriaged
+ num globalAlpha;
+
+ @DomName('PaintRenderingContext2D.globalCompositeOperation')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String globalCompositeOperation;
+
+ @DomName('PaintRenderingContext2D.imageSmoothingEnabled')
+ @DocsEditable()
+ @Experimental() // untriaged
+ bool imageSmoothingEnabled;
+
+ @DomName('PaintRenderingContext2D.imageSmoothingQuality')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String imageSmoothingQuality;
+
+ @DomName('PaintRenderingContext2D.lineCap')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String lineCap;
+
+ @DomName('PaintRenderingContext2D.lineDashOffset')
+ @DocsEditable()
+ @Experimental() // untriaged
+ num lineDashOffset;
+
+ @DomName('PaintRenderingContext2D.lineJoin')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String lineJoin;
+
+ @DomName('PaintRenderingContext2D.lineWidth')
+ @DocsEditable()
+ @Experimental() // untriaged
+ num lineWidth;
+
+ @DomName('PaintRenderingContext2D.miterLimit')
+ @DocsEditable()
+ @Experimental() // untriaged
+ num miterLimit;
+
+ @DomName('PaintRenderingContext2D.shadowBlur')
+ @DocsEditable()
+ @Experimental() // untriaged
+ num shadowBlur;
+
+ @DomName('PaintRenderingContext2D.shadowColor')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String shadowColor;
+
+ @DomName('PaintRenderingContext2D.shadowOffsetX')
+ @DocsEditable()
+ @Experimental() // untriaged
+ num shadowOffsetX;
+
+ @DomName('PaintRenderingContext2D.shadowOffsetY')
+ @DocsEditable()
+ @Experimental() // untriaged
+ num shadowOffsetY;
+
+ @DomName('PaintRenderingContext2D.strokeStyle')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Object strokeStyle;
+
+ @DomName('PaintRenderingContext2D.beginPath')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void beginPath() native;
+
+ @DomName('PaintRenderingContext2D.clearRect')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void clearRect(num x, num y, num width, num height) native;
+
+ @DomName('PaintRenderingContext2D.clip')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void clip([path_OR_winding, String winding]) native;
+
+ @DomName('PaintRenderingContext2D.createLinearGradient')
+ @DocsEditable()
+ @Experimental() // untriaged
+ CanvasGradient createLinearGradient(num x0, num y0, num x1, num y1) native;
+
+ @DomName('PaintRenderingContext2D.createPattern')
+ @DocsEditable()
+ @Experimental() // untriaged
+ CanvasPattern createPattern(
+ /*CanvasImageSource*/ image,
+ String repetitionType) native;
+
+ @DomName('PaintRenderingContext2D.createRadialGradient')
+ @DocsEditable()
+ @Experimental() // untriaged
+ CanvasGradient createRadialGradient(
+ num x0, num y0, num r0, num x1, num y1, num r1) native;
+
+ @DomName('PaintRenderingContext2D.drawImage')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void drawImage(/*CanvasImageSource*/ image, num sx_OR_x, num sy_OR_y,
+ [num sw_OR_width,
+ num height_OR_sh,
+ num dx,
+ num dy,
+ num dw,
+ num dh]) native;
+
+ @DomName('PaintRenderingContext2D.fill')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void fill([path_OR_winding, String winding]) native;
+
+ @DomName('PaintRenderingContext2D.fillRect')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void fillRect(num x, num y, num width, num height) native;
+
+ @DomName('PaintRenderingContext2D.getLineDash')
+ @DocsEditable()
+ @Experimental() // untriaged
+ List<num> getLineDash() native;
+
+ @DomName('PaintRenderingContext2D.isPointInPath')
+ @DocsEditable()
+ @Experimental() // untriaged
+ bool isPointInPath(path_OR_x, num x_OR_y, [winding_OR_y, String winding])
+ native;
+
+ @DomName('PaintRenderingContext2D.isPointInStroke')
+ @DocsEditable()
+ @Experimental() // untriaged
+ bool isPointInStroke(path_OR_x, num x_OR_y, [num y]) native;
+
+ @DomName('PaintRenderingContext2D.resetTransform')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void resetTransform() native;
+
+ @DomName('PaintRenderingContext2D.restore')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void restore() native;
+
+ @DomName('PaintRenderingContext2D.rotate')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void rotate(num angle) native;
+
+ @DomName('PaintRenderingContext2D.save')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void save() native;
+
+ @DomName('PaintRenderingContext2D.scale')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void scale(num x, num y) native;
+
+ @DomName('PaintRenderingContext2D.setLineDash')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void setLineDash(List<num> dash) native;
+
+ @DomName('PaintRenderingContext2D.setTransform')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void setTransform(num a, num b, num c, num d, num e, num f) native;
+
+ @DomName('PaintRenderingContext2D.stroke')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void stroke([Path2D path]) native;
+
+ @DomName('PaintRenderingContext2D.strokeRect')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void strokeRect(num x, num y, num width, num height) native;
+
+ @DomName('PaintRenderingContext2D.transform')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void transform(num a, num b, num c, num d, num e, num f) native;
+
+ @DomName('PaintRenderingContext2D.translate')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void translate(num x, num y) native;
+
+ // From CanvasPath
+
+ @DomName('PaintRenderingContext2D.arc')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void arc(num x, num y, num radius, num startAngle, num endAngle,
+ bool anticlockwise) native;
+
+ @DomName('PaintRenderingContext2D.arcTo')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void arcTo(num x1, num y1, num x2, num y2, num radius) native;
+
+ @DomName('PaintRenderingContext2D.bezierCurveTo')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void bezierCurveTo(num cp1x, num cp1y, num cp2x, num cp2y, num x, num y)
+ native;
+
+ @DomName('PaintRenderingContext2D.closePath')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void closePath() native;
+
+ @DomName('PaintRenderingContext2D.ellipse')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void ellipse(num x, num y, num radiusX, num radiusY, num rotation,
+ num startAngle, num endAngle, bool anticlockwise) native;
+
+ @DomName('PaintRenderingContext2D.lineTo')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void lineTo(num x, num y) native;
+
+ @DomName('PaintRenderingContext2D.moveTo')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void moveTo(num x, num y) native;
+
+ @DomName('PaintRenderingContext2D.quadraticCurveTo')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void quadraticCurveTo(num cpx, num cpy, num x, num y) native;
+
+ @DomName('PaintRenderingContext2D.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('PaintSize')
+@Experimental() // untriaged
+@Native("PaintSize")
+class PaintSize extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory PaintSize._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('PaintSize.height')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num height;
+
+ @DomName('PaintSize.width')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final 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('PaintWorkletGlobalScope')
+@Experimental() // untriaged
+@Native("PaintWorkletGlobalScope")
+class PaintWorkletGlobalScope extends WorkletGlobalScope {
+ // To suppress missing implicit constructor warnings.
+ factory PaintWorkletGlobalScope._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('PaintWorkletGlobalScope.devicePixelRatio')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num devicePixelRatio;
+
+ @DomName('PaintWorkletGlobalScope.registerPaint')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void registerPaint(String name, Object paintCtor) 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('HTMLParagraphElement')
@Native("HTMLParagraphElement")
class ParagraphElement extends HtmlElement {
@@ -27675,7 +31239,7 @@
@DomName('PasswordCredential')
@Experimental() // untriaged
@Native("PasswordCredential")
-class PasswordCredential extends Credential {
+class PasswordCredential extends Credential implements CredentialUserData {
// To suppress missing implicit constructor warnings.
factory PasswordCredential._() {
throw new UnsupportedError("Not supported");
@@ -27683,12 +31247,20 @@
@DomName('PasswordCredential.PasswordCredential')
@DocsEditable()
- factory PasswordCredential(Map data) {
- var data_1 = convertDartToNative_Dictionary(data);
- return PasswordCredential._create_1(data_1);
+ factory PasswordCredential(data_OR_form) {
+ if ((data_OR_form is Map)) {
+ var data_1 = convertDartToNative_Dictionary(data_OR_form);
+ return PasswordCredential._create_1(data_1);
+ }
+ if ((data_OR_form is FormElement)) {
+ return PasswordCredential._create_2(data_OR_form);
+ }
+ throw new ArgumentError("Incorrect number or type of arguments");
}
- static PasswordCredential _create_1(data) =>
- JS('PasswordCredential', 'new PasswordCredential(#)', data);
+ static PasswordCredential _create_1(data_OR_form) =>
+ JS('PasswordCredential', 'new PasswordCredential(#)', data_OR_form);
+ static PasswordCredential _create_2(data_OR_form) =>
+ JS('PasswordCredential', 'new PasswordCredential(#)', data_OR_form);
@DomName('PasswordCredential.additionalData')
@DocsEditable()
@@ -27700,10 +31272,28 @@
@Experimental() // untriaged
String idName;
+ @DomName('PasswordCredential.password')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String password;
+
@DomName('PasswordCredential.passwordName')
@DocsEditable()
@Experimental() // untriaged
String passwordName;
+
+ // From CredentialUserData
+
+ @JSName('iconURL')
+ @DomName('PasswordCredential.iconURL')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String iconUrl;
+
+ @DomName('PasswordCredential.name')
+ @DocsEditable()
+ @Experimental() // untriaged
+ 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
@@ -27713,7 +31303,7 @@
@DomName('Path2D')
@Experimental() // untriaged
@Native("Path2D")
-class Path2D extends Interceptor implements _CanvasPathMethods {
+class Path2D extends Interceptor implements _CanvasPath {
// To suppress missing implicit constructor warnings.
factory Path2D._() {
throw new UnsupportedError("Not supported");
@@ -27744,7 +31334,7 @@
@Experimental() // untriaged
void addPath(Path2D path, [Matrix transform]) native;
- // From CanvasPathMethods
+ // From CanvasPath
@DomName('Path2D.arc')
@DocsEditable()
@@ -27799,6 +31389,391 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('PaymentAddress')
+@Experimental() // untriaged
+@Native("PaymentAddress")
+class PaymentAddress extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory PaymentAddress._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('PaymentAddress.addressLine')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final List<String> addressLine;
+
+ @DomName('PaymentAddress.city')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String city;
+
+ @DomName('PaymentAddress.country')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String country;
+
+ @DomName('PaymentAddress.dependentLocality')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String dependentLocality;
+
+ @DomName('PaymentAddress.languageCode')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String languageCode;
+
+ @DomName('PaymentAddress.organization')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String organization;
+
+ @DomName('PaymentAddress.phone')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String phone;
+
+ @DomName('PaymentAddress.postalCode')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String postalCode;
+
+ @DomName('PaymentAddress.recipient')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String recipient;
+
+ @DomName('PaymentAddress.region')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String region;
+
+ @DomName('PaymentAddress.sortingCode')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String sortingCode;
+}
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+@DocsEditable()
+@DomName('PaymentInstruments')
+@Experimental() // untriaged
+@Native("PaymentInstruments")
+class PaymentInstruments extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory PaymentInstruments._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('PaymentInstruments.clear')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future clear() native;
+
+ @DomName('PaymentInstruments.delete')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future delete(String instrumentKey) native;
+
+ @DomName('PaymentInstruments.get')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future get(String instrumentKey) native;
+
+ @DomName('PaymentInstruments.has')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future has(String instrumentKey) native;
+
+ @DomName('PaymentInstruments.keys')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future keys() native;
+
+ @DomName('PaymentInstruments.set')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future set(String instrumentKey, Map details) {
+ var details_1 = convertDartToNative_Dictionary(details);
+ return _set_1(instrumentKey, details_1);
+ }
+
+ @JSName('set')
+ @DomName('PaymentInstruments.set')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future _set_1(instrumentKey, details) 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('PaymentManager')
+@Experimental() // untriaged
+@Native("PaymentManager")
+class PaymentManager extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory PaymentManager._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('PaymentManager.instruments')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final PaymentInstruments instruments;
+
+ @DomName('PaymentManager.userHint')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String userHint;
+}
+// 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('PaymentRequest')
+@Experimental() // untriaged
+@Native("PaymentRequest")
+class PaymentRequest extends EventTarget {
+ factory PaymentRequest(List<Map> methodData, Map details, [Map options]) {
+ var methodData_1 = [];
+ for (var i in methodData) {
+ methodData_1.add(convertDartToNative_Dictionary(i));
+ }
+ if (options != null) {
+ var details_1 = convertDartToNative_Dictionary(details);
+ var options_2 = convertDartToNative_Dictionary(options);
+ return PaymentRequest._create_1(methodData_1, details_1, options_2);
+ }
+ var details_1 = convertDartToNative_Dictionary(details);
+ return PaymentRequest._create_2(methodData_1, details_1);
+ }
+
+ static PaymentRequest _create_1(methodData, details, options) => JS(
+ 'PaymentRequest',
+ 'new PaymentRequest(#,#,#)',
+ methodData,
+ details,
+ options);
+ static PaymentRequest _create_2(methodData, details) =>
+ JS('PaymentRequest', 'new PaymentRequest(#,#)', methodData, details);
+
+ // To suppress missing implicit constructor warnings.
+ factory PaymentRequest._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('PaymentRequest.id')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String id;
+
+ @DomName('PaymentRequest.shippingAddress')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final PaymentAddress shippingAddress;
+
+ @DomName('PaymentRequest.shippingOption')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String shippingOption;
+
+ @DomName('PaymentRequest.shippingType')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String shippingType;
+
+ @DomName('PaymentRequest.abort')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future abort() native;
+
+ @DomName('PaymentRequest.canMakePayment')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future canMakePayment() native;
+
+ @DomName('PaymentRequest.show')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future show() 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('PaymentRequestEvent')
+@Experimental() // untriaged
+@Native("PaymentRequestEvent")
+class PaymentRequestEvent extends ExtendableEvent {
+ // To suppress missing implicit constructor warnings.
+ factory PaymentRequestEvent._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('PaymentRequestEvent.PaymentRequestEvent')
+ @DocsEditable()
+ factory PaymentRequestEvent(String type, Map eventInitDict) {
+ var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+ return PaymentRequestEvent._create_1(type, eventInitDict_1);
+ }
+ static PaymentRequestEvent _create_1(type, eventInitDict) => JS(
+ 'PaymentRequestEvent',
+ 'new PaymentRequestEvent(#,#)',
+ type,
+ eventInitDict);
+
+ @DomName('PaymentRequestEvent.instrumentKey')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String instrumentKey;
+
+ @DomName('PaymentRequestEvent.methodData')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final List methodData;
+
+ @DomName('PaymentRequestEvent.modifiers')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final List modifiers;
+
+ @DomName('PaymentRequestEvent.paymentRequestId')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String paymentRequestId;
+
+ @DomName('PaymentRequestEvent.paymentRequestOrigin')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String paymentRequestOrigin;
+
+ @DomName('PaymentRequestEvent.topLevelOrigin')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String topLevelOrigin;
+
+ @DomName('PaymentRequestEvent.total')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final Object total;
+
+ @DomName('PaymentRequestEvent.openWindow')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future openWindow(String url) native;
+
+ @DomName('PaymentRequestEvent.respondWith')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void 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('PaymentRequestUpdateEvent')
+@Experimental() // untriaged
+@Native("PaymentRequestUpdateEvent")
+class PaymentRequestUpdateEvent extends Event {
+ // To suppress missing implicit constructor warnings.
+ factory PaymentRequestUpdateEvent._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('PaymentRequestUpdateEvent.PaymentRequestUpdateEvent')
+ @DocsEditable()
+ factory PaymentRequestUpdateEvent(String type, [Map eventInitDict]) {
+ if (eventInitDict != null) {
+ var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+ return PaymentRequestUpdateEvent._create_1(type, eventInitDict_1);
+ }
+ return PaymentRequestUpdateEvent._create_2(type);
+ }
+ static PaymentRequestUpdateEvent _create_1(type, eventInitDict) => JS(
+ 'PaymentRequestUpdateEvent',
+ 'new PaymentRequestUpdateEvent(#,#)',
+ type,
+ eventInitDict);
+ static PaymentRequestUpdateEvent _create_2(type) =>
+ JS('PaymentRequestUpdateEvent', 'new PaymentRequestUpdateEvent(#)', type);
+
+ @DomName('PaymentRequestUpdateEvent.updateWith')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void updateWith(Future detailsPromise) 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('PaymentResponse')
+@Experimental() // untriaged
+@Native("PaymentResponse")
+class PaymentResponse extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory PaymentResponse._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('PaymentResponse.details')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final Object details;
+
+ @DomName('PaymentResponse.methodName')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String methodName;
+
+ @DomName('PaymentResponse.payerEmail')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String payerEmail;
+
+ @DomName('PaymentResponse.payerName')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String payerName;
+
+ @DomName('PaymentResponse.payerPhone')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String payerPhone;
+
+ @DomName('PaymentResponse.requestId')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String requestId;
+
+ @DomName('PaymentResponse.shippingAddress')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final PaymentAddress shippingAddress;
+
+ @DomName('PaymentResponse.shippingOption')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String shippingOption;
+
+ @DomName('PaymentResponse.complete')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future complete([String paymentResult]) 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)
@@ -27822,15 +31797,15 @@
@DocsEditable()
final PerformanceNavigation navigation;
+ @DomName('Performance.timeOrigin')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num timeOrigin;
+
@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
@@ -27882,11 +31857,6 @@
@DocsEditable()
double now() native;
- @DomName('Performance.setFrameTimingBufferSize')
- @DocsEditable()
- @Experimental() // untriaged
- void setFrameTimingBufferSize(int maxSize) native;
-
@DomName('Performance.setResourceTimingBufferSize')
@DocsEditable()
@Experimental() // untriaged
@@ -27897,25 +31867,6 @@
// 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()
@@ -27928,7 +31879,7 @@
@DomName('PerformanceEntry.duration')
@DocsEditable()
- final double duration;
+ final num duration;
@DomName('PerformanceEntry.entryType')
@DocsEditable()
@@ -27940,7 +31891,26 @@
@DomName('PerformanceEntry.startTime')
@DocsEditable()
- final double startTime;
+ final num 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('PerformanceLongTaskTiming')
+@Experimental() // untriaged
+@Native("PerformanceLongTaskTiming")
+class PerformanceLongTaskTiming extends PerformanceEntry {
+ // To suppress missing implicit constructor warnings.
+ factory PerformanceLongTaskTiming._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('PerformanceLongTaskTiming.attribution')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final List<TaskAttributionTiming> attribution;
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -28015,6 +31985,70 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('PerformanceNavigationTiming')
+@Experimental() // untriaged
+@Native("PerformanceNavigationTiming")
+class PerformanceNavigationTiming extends PerformanceResourceTiming {
+ // To suppress missing implicit constructor warnings.
+ factory PerformanceNavigationTiming._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('PerformanceNavigationTiming.domComplete')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num domComplete;
+
+ @DomName('PerformanceNavigationTiming.domContentLoadedEventEnd')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num domContentLoadedEventEnd;
+
+ @DomName('PerformanceNavigationTiming.domContentLoadedEventStart')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num domContentLoadedEventStart;
+
+ @DomName('PerformanceNavigationTiming.domInteractive')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num domInteractive;
+
+ @DomName('PerformanceNavigationTiming.loadEventEnd')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num loadEventEnd;
+
+ @DomName('PerformanceNavigationTiming.loadEventStart')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num loadEventStart;
+
+ @DomName('PerformanceNavigationTiming.redirectCount')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final int redirectCount;
+
+ @DomName('PerformanceNavigationTiming.type')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String type;
+
+ @DomName('PerformanceNavigationTiming.unloadEventEnd')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num unloadEventEnd;
+
+ @DomName('PerformanceNavigationTiming.unloadEventStart')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num 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('PerformanceObserver')
@Experimental() // untriaged
@Native("PerformanceObserver")
@@ -28024,6 +32058,14 @@
throw new UnsupportedError("Not supported");
}
+ @DomName('PerformanceObserver.PerformanceObserver')
+ @DocsEditable()
+ factory PerformanceObserver(PerformanceObserverCallback callback) {
+ return PerformanceObserver._create_1(callback);
+ }
+ static PerformanceObserver _create_1(callback) =>
+ JS('PerformanceObserver', 'new PerformanceObserver(#)', callback);
+
@DomName('PerformanceObserver.disconnect')
@DocsEditable()
@Experimental() // untriaged
@@ -28048,6 +32090,16 @@
// for 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('PerformanceObserverCallback')
+@Experimental() // untriaged
+typedef void PerformanceObserverCallback(
+ PerformanceObserverEntryList entries, PerformanceObserver 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.
+
@DocsEditable()
@DomName('PerformanceObserverEntryList')
@Experimental() // untriaged
@@ -28078,19 +32130,14 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
-@DomName('PerformanceRenderTiming')
+@DomName('PerformancePaintTiming')
@Experimental() // untriaged
-@Native("PerformanceRenderTiming")
-class PerformanceRenderTiming extends PerformanceEntry {
+@Native("PerformancePaintTiming")
+class PerformancePaintTiming extends PerformanceEntry {
// To suppress missing implicit constructor warnings.
- factory PerformanceRenderTiming._() {
+ factory PerformancePaintTiming._() {
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
@@ -28109,59 +32156,113 @@
@DomName('PerformanceResourceTiming.connectEnd')
@DocsEditable()
- final double connectEnd;
+ final num connectEnd;
@DomName('PerformanceResourceTiming.connectStart')
@DocsEditable()
- final double connectStart;
+ final num connectStart;
+
+ @DomName('PerformanceResourceTiming.decodedBodySize')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final int decodedBodySize;
@DomName('PerformanceResourceTiming.domainLookupEnd')
@DocsEditable()
- final double domainLookupEnd;
+ final num domainLookupEnd;
@DomName('PerformanceResourceTiming.domainLookupStart')
@DocsEditable()
- final double domainLookupStart;
+ final num domainLookupStart;
+
+ @DomName('PerformanceResourceTiming.encodedBodySize')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final int encodedBodySize;
@DomName('PerformanceResourceTiming.fetchStart')
@DocsEditable()
- final double fetchStart;
+ final num fetchStart;
@DomName('PerformanceResourceTiming.initiatorType')
@DocsEditable()
final String initiatorType;
+ @DomName('PerformanceResourceTiming.nextHopProtocol')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String nextHopProtocol;
+
@DomName('PerformanceResourceTiming.redirectEnd')
@DocsEditable()
- final double redirectEnd;
+ final num redirectEnd;
@DomName('PerformanceResourceTiming.redirectStart')
@DocsEditable()
- final double redirectStart;
+ final num redirectStart;
@DomName('PerformanceResourceTiming.requestStart')
@DocsEditable()
@Experimental() // nonstandard
- final double requestStart;
+ final num requestStart;
@DomName('PerformanceResourceTiming.responseEnd')
@DocsEditable()
@Experimental() // nonstandard
- final double responseEnd;
+ final num responseEnd;
@DomName('PerformanceResourceTiming.responseStart')
@DocsEditable()
@Experimental() // nonstandard
- final double responseStart;
+ final num responseStart;
@DomName('PerformanceResourceTiming.secureConnectionStart')
@DocsEditable()
- final double secureConnectionStart;
+ final num secureConnectionStart;
+
+ @DomName('PerformanceResourceTiming.serverTiming')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final List<PerformanceServerTiming> serverTiming;
+
+ @DomName('PerformanceResourceTiming.transferSize')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final int transferSize;
@DomName('PerformanceResourceTiming.workerStart')
@DocsEditable()
@Experimental() // untriaged
- final double workerStart;
+ final num 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('PerformanceServerTiming')
+@Experimental() // untriaged
+@Native("PerformanceServerTiming")
+class PerformanceServerTiming extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory PerformanceServerTiming._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('PerformanceServerTiming.description')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String description;
+
+ @DomName('PerformanceServerTiming.duration')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num duration;
+
+ @DomName('PerformanceServerTiming.name')
+ @DocsEditable()
+ @Experimental() // untriaged
+ 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
@@ -28357,27 +32458,34 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
-@DomName('Perspective')
+@DomName('PhotoCapabilities')
@Experimental() // untriaged
-@Native("Perspective")
-class Perspective extends TransformComponent {
+@Native("PhotoCapabilities")
+class PhotoCapabilities extends Interceptor {
// To suppress missing implicit constructor warnings.
- factory Perspective._() {
+ factory PhotoCapabilities._() {
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')
+ @DomName('PhotoCapabilities.fillLightMode')
@DocsEditable()
@Experimental() // untriaged
- final LengthValue length;
+ final List fillLightMode;
+
+ @DomName('PhotoCapabilities.imageHeight')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final MediaSettingsRange imageHeight;
+
+ @DomName('PhotoCapabilities.imageWidth')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final MediaSettingsRange imageWidth;
+
+ @DomName('PhotoCapabilities.redEyeReduction')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String redEyeReduction;
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -28543,7 +32651,7 @@
@DomName('PointerEvent.height')
@DocsEditable()
@Experimental() // untriaged
- final double height;
+ final num height;
@DomName('PointerEvent.isPrimary')
@DocsEditable()
@@ -28563,7 +32671,12 @@
@DomName('PointerEvent.pressure')
@DocsEditable()
@Experimental() // untriaged
- final double pressure;
+ final num pressure;
+
+ @DomName('PointerEvent.tangentialPressure')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num tangentialPressure;
@DomName('PointerEvent.tiltX')
@DocsEditable()
@@ -28575,10 +32688,20 @@
@Experimental() // untriaged
final int tiltY;
+ @DomName('PointerEvent.twist')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final int twist;
+
@DomName('PointerEvent.width')
@DocsEditable()
@Experimental() // untriaged
- final double width;
+ final num width;
+
+ @DomName('PointerEvent.getCoalescedEvents')
+ @DocsEditable()
+ @Experimental() // untriaged
+ List<PointerEvent> getCoalescedEvents() 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
@@ -28679,67 +32802,6 @@
// 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 {
@@ -28848,6 +32910,11 @@
@Experimental() // untriaged
final String state;
+ @DomName('PresentationConnection.url')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String url;
+
@DomName('PresentationConnection.close')
@DocsEditable()
@Experimental() // untriaged
@@ -28940,24 +33007,38 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('PresentationConnectionList')
+@Experimental() // untriaged
+@Native("PresentationConnectionList")
+class PresentationConnectionList extends EventTarget {
+ // To suppress missing implicit constructor warnings.
+ factory PresentationConnectionList._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('PresentationConnectionList.connections')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final List<PresentationConnection> connections;
+}
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All 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 {
+class PresentationReceiver extends Interceptor {
// To suppress missing implicit constructor warnings.
factory PresentationReceiver._() {
throw new UnsupportedError("Not supported");
}
- @DomName('PresentationReceiver.getConnection')
+ @DomName('PresentationReceiver.connectionList')
@DocsEditable()
@Experimental() // untriaged
- Future getConnection() native;
-
- @DomName('PresentationReceiver.getConnections')
- @DocsEditable()
- @Experimental() // untriaged
- Future getConnections() native;
+ final Future connectionList;
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -28975,11 +33056,20 @@
@DomName('PresentationRequest.PresentationRequest')
@DocsEditable()
- factory PresentationRequest(String url) {
- return PresentationRequest._create_1(url);
+ factory PresentationRequest(url_OR_urls) {
+ if ((url_OR_urls is String)) {
+ return PresentationRequest._create_1(url_OR_urls);
+ }
+ if ((url_OR_urls is List<String>)) {
+ List urls_1 = convertDartToNative_StringArray(url_OR_urls);
+ return PresentationRequest._create_2(urls_1);
+ }
+ throw new ArgumentError("Incorrect number or type of arguments");
}
- static PresentationRequest _create_1(url) =>
- JS('PresentationRequest', 'new PresentationRequest(#)', url);
+ static PresentationRequest _create_1(url_OR_urls) =>
+ JS('PresentationRequest', 'new PresentationRequest(#)', url_OR_urls);
+ static PresentationRequest _create_2(url_OR_urls) =>
+ JS('PresentationRequest', 'new PresentationRequest(#)', url_OR_urls);
@DomName('PresentationRequest.getAvailability')
@DocsEditable()
@@ -29062,7 +33152,7 @@
@DomName('HTMLProgressElement.position')
@DocsEditable()
- final double position;
+ final num position;
@DomName('HTMLProgressElement.value')
@DocsEditable()
@@ -29148,6 +33238,30 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('PublicKeyCredential')
+@Experimental() // untriaged
+@Native("PublicKeyCredential")
+class PublicKeyCredential extends Credential {
+ // To suppress missing implicit constructor warnings.
+ factory PublicKeyCredential._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('PublicKeyCredential.rawId')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final ByteBuffer rawId;
+
+ @DomName('PublicKeyCredential.response')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final AuthenticatorResponse 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('PushEvent')
@Experimental() // untriaged
@Native("PushEvent")
@@ -29189,6 +33303,11 @@
throw new UnsupportedError("Not supported");
}
+ @DomName('PushManager.supportedContentEncodings')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final List<String> supportedContentEncodings;
+
@DomName('PushManager.getSubscription')
@DocsEditable()
@Experimental() // untriaged
@@ -29291,6 +33410,16 @@
@Experimental() // untriaged
final String endpoint;
+ @DomName('PushSubscription.expirationTime')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final int expirationTime;
+
+ @DomName('PushSubscription.options')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final PushSubscriptionOptions options;
+
@DomName('PushSubscription.getKey')
@DocsEditable()
@Experimental() // untriaged
@@ -29306,6 +33435,30 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('PushSubscriptionOptions')
+@Experimental() // untriaged
+@Native("PushSubscriptionOptions")
+class PushSubscriptionOptions extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory PushSubscriptionOptions._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('PushSubscriptionOptions.applicationServerKey')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final ByteBuffer applicationServerKey;
+
+ @DomName('PushSubscriptionOptions.userVisibleOnly')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final bool userVisibleOnly;
+}
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All 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 {
@@ -29466,11 +33619,12 @@
@DocsEditable()
Rectangle getBoundingClientRect() native;
+ @JSName('getClientRects')
@DomName('Range.getClientRects')
@DocsEditable()
- @Returns('_ClientRectList|Null')
- @Creates('_ClientRectList')
- List<Rectangle> getClientRects() native;
+ @Returns('DomRectList|Null')
+ @Creates('DomRectList')
+ List<Rectangle> _getClientRects() native;
@DomName('Range.insertNode')
@DocsEditable()
@@ -29516,6 +33670,24 @@
@DocsEditable()
void surroundContents(Node newParent) native;
+ @DomName('Range.getClientRects')
+ @DocsEditable()
+ @Returns('DomRectList|Null')
+ @Creates('DomRectList')
+ List<Rectangle> getClientRects() {
+ var value = _getClientRects();
+
+ // If no prototype we need one for the world to hookup to the proper Dart class.
+ var jsProto = JS('', '#.prototype', value);
+ if (jsProto == null) {
+ JS('', '#.prototype = Object.create(null)', value);
+ }
+
+ applyExtension('DOMRectList', value);
+
+ return value;
+ }
+
/**
* Checks if createContextualFragment is supported.
*
@@ -29531,136 +33703,163 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
-@DomName('ReadableByteStream')
+@DomName('RelatedApplication')
@Experimental() // untriaged
-@Native("ReadableByteStream")
-class ReadableByteStream extends Interceptor {
+@Native("RelatedApplication")
+class RelatedApplication extends Interceptor {
// To suppress missing implicit constructor warnings.
- factory ReadableByteStream._() {
+ factory RelatedApplication._() {
throw new UnsupportedError("Not supported");
}
- @DomName('ReadableByteStream.cancel')
+ @DomName('RelatedApplication.id')
@DocsEditable()
@Experimental() // untriaged
- Future cancel([Object reason]) native;
+ final String id;
- @DomName('ReadableByteStream.getReader')
+ @DomName('RelatedApplication.platform')
@DocsEditable()
@Experimental() // untriaged
- ReadableByteStreamReader getReader() native;
+ final String platform;
+
+ @DomName('RelatedApplication.url')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String url;
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All 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')
+@DomName('RelativeOrientationSensor')
@Experimental() // untriaged
-@Native("ReadableByteStreamReader")
-class ReadableByteStreamReader extends Interceptor {
+@Native("RelativeOrientationSensor")
+class RelativeOrientationSensor extends OrientationSensor {
// To suppress missing implicit constructor warnings.
- factory ReadableByteStreamReader._() {
+ factory RelativeOrientationSensor._() {
throw new UnsupportedError("Not supported");
}
- @DomName('ReadableByteStreamReader.closed')
+ @DomName('RelativeOrientationSensor.RelativeOrientationSensor')
@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);
+ factory RelativeOrientationSensor([Map sensorOptions]) {
+ if (sensorOptions != null) {
+ var sensorOptions_1 = convertDartToNative_Dictionary(sensorOptions);
+ return RelativeOrientationSensor._create_1(sensorOptions_1);
}
- return RelatedEvent._create_2(type);
+ return RelativeOrientationSensor._create_2();
}
- 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;
+ static RelativeOrientationSensor _create_1(sensorOptions) => JS(
+ 'RelativeOrientationSensor',
+ 'new RelativeOrientationSensor(#)',
+ sensorOptions);
+ static RelativeOrientationSensor _create_2() =>
+ JS('RelativeOrientationSensor', 'new RelativeOrientationSensor()');
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
+@DocsEditable()
+@DomName('RemotePlayback')
+@Experimental() // untriaged
+@Native("RemotePlayback")
+class RemotePlayback extends EventTarget {
+ // To suppress missing implicit constructor warnings.
+ factory RemotePlayback._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('RemotePlayback.state')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String state;
+
+ @DomName('RemotePlayback.cancelWatchAvailability')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future cancelWatchAvailability([int id]) native;
+
+ @DomName('RemotePlayback.prompt')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future prompt() native;
+
+ @DomName('RemotePlayback.watchAvailability')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future watchAvailability(RemotePlaybackAvailabilityCallback callback) 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('RemotePlaybackAvailabilityCallback')
+@Experimental() // untriaged
+typedef void RemotePlaybackAvailabilityCallback(bool available);
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+@DocsEditable()
+@DomName('ReportBody')
+@Experimental() // untriaged
+@Native("ReportBody")
+class ReportBody extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory ReportBody._() {
+ 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('ReportingObserver')
+@Experimental() // untriaged
+@Native("ReportingObserver")
+class ReportingObserver extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory ReportingObserver._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('ReportingObserver.ReportingObserver')
+ @DocsEditable()
+ factory ReportingObserver(ReportingObserverCallback callback) {
+ return ReportingObserver._create_1(callback);
+ }
+ static ReportingObserver _create_1(callback) =>
+ JS('ReportingObserver', 'new ReportingObserver(#)', callback);
+
+ @DomName('ReportingObserver.disconnect')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void disconnect() native;
+
+ @DomName('ReportingObserver.observe')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void observe() 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('ReportingObserverCallback')
+@Experimental() // untriaged
+typedef void ReportingObserverCallback(
+ List<_Report> reports, ReportingObserver 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.
+
// WARNING: Do not edit - generated code.
@DomName('RequestAnimationFrameCallback')
@@ -29670,49 +33869,71 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
-@DomName('Rotation')
+@DomName('ResizeObserver')
@Experimental() // untriaged
-@Native("Rotation")
-class Rotation extends TransformComponent {
+@Native("ResizeObserver")
+class ResizeObserver extends Interceptor {
// To suppress missing implicit constructor warnings.
- factory Rotation._() {
+ factory ResizeObserver._() {
throw new UnsupportedError("Not supported");
}
- @DomName('Rotation.Rotation')
+ @DomName('ResizeObserver.ResizeObserver')
@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");
+ factory ResizeObserver(ResizeObserverCallback callback) {
+ return ResizeObserver._create_1(callback);
}
- 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);
+ static ResizeObserver _create_1(callback) =>
+ JS('ResizeObserver', 'new ResizeObserver(#)', callback);
- @DomName('Rotation.angle')
+ @DomName('ResizeObserver.disconnect')
@DocsEditable()
@Experimental() // untriaged
- final double angle;
+ void disconnect() native;
- @DomName('Rotation.x')
+ @DomName('ResizeObserver.observe')
@DocsEditable()
@Experimental() // untriaged
- final double x;
+ void observe(Element target) native;
- @DomName('Rotation.y')
+ @DomName('ResizeObserver.unobserve')
@DocsEditable()
@Experimental() // untriaged
- final double y;
+ 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.
- @DomName('Rotation.z')
+// WARNING: Do not edit - generated code.
+
+@DomName('ResizeObserverCallback')
+@Experimental() // untriaged
+typedef void ResizeObserverCallback(
+ List<ResizeObserverEntry> entries, ResizeObserver 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.
+
+@DocsEditable()
+@DomName('ResizeObserverEntry')
+@Experimental() // untriaged
+@Native("ResizeObserverEntry")
+class ResizeObserverEntry extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory ResizeObserverEntry._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('ResizeObserverEntry.contentRect')
@DocsEditable()
@Experimental() // untriaged
- final double z;
+ final DomRectReadOnly contentRect;
+
+ @DomName('ResizeObserverEntry.target')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final Element 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
@@ -29732,6 +33953,11 @@
@DocsEditable()
@Experimental() // untriaged
final int expires;
+
+ @DomName('RTCCertificate.getFingerprints')
+ @DocsEditable()
+ @Experimental() // untriaged
+ List<Map> getFingerprints() 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
@@ -29910,6 +34136,18 @@
throw new UnsupportedError("Not supported");
}
+ @DomName('RTCDataChannelEvent.RTCDataChannelEvent')
+ @DocsEditable()
+ factory RtcDataChannelEvent(String type, Map eventInitDict) {
+ var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+ return RtcDataChannelEvent._create_1(type, eventInitDict_1);
+ }
+ static RtcDataChannelEvent _create_1(type, eventInitDict) => JS(
+ 'RtcDataChannelEvent',
+ 'new RTCDataChannelEvent(#,#)',
+ type,
+ eventInitDict);
+
@DomName('RTCDataChannelEvent.channel')
@DocsEditable()
final RtcDataChannel channel;
@@ -30048,19 +34286,44 @@
// 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 {
+@DomName('RTCLegacyStatsReport')
+@Experimental() // untriaged
+@Native("RTCLegacyStatsReport")
+class RtcLegacyStatsReport extends Interceptor {
// To suppress missing implicit constructor warnings.
- factory RtcIceCandidateEvent._() {
+ factory RtcLegacyStatsReport._() {
throw new UnsupportedError("Not supported");
}
- @DomName('RTCIceCandidateEvent.candidate')
+ @DomName('RTCLegacyStatsReport.id')
@DocsEditable()
- final RtcIceCandidate candidate;
+ @Experimental() // untriaged
+ final String id;
+
+ @DomName('RTCLegacyStatsReport.timestamp')
+ @DocsEditable()
+ @Experimental() // untriaged
+ DateTime get timestamp => convertNativeToDart_DateTime(this._get_timestamp);
+ @JSName('timestamp')
+ @DomName('RTCLegacyStatsReport.timestamp')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final dynamic _get_timestamp;
+
+ @DomName('RTCLegacyStatsReport.type')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String type;
+
+ @DomName('RTCLegacyStatsReport.names')
+ @DocsEditable()
+ @Experimental() // untriaged
+ List<String> names() native;
+
+ @DomName('RTCLegacyStatsReport.stat')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String stat(String name) 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
@@ -30180,8 +34443,9 @@
*/
@DomName('RTCPeerConnection.icecandidateEvent')
@DocsEditable()
- static const EventStreamProvider<RtcIceCandidateEvent> iceCandidateEvent =
- const EventStreamProvider<RtcIceCandidateEvent>('icecandidate');
+ static const EventStreamProvider<RtcPeerConnectionIceEvent>
+ iceCandidateEvent =
+ const EventStreamProvider<RtcPeerConnectionIceEvent>('icecandidate');
/**
* Static factory designed to expose `iceconnectionstatechange` events to event
@@ -30249,7 +34513,7 @@
@DomName('RTCPeerConnection.addIceCandidate')
@DocsEditable()
- Future addIceCandidate(candidate,
+ Future addIceCandidate(Object candidate,
[VoidCallback successCallback,
RtcPeerConnectionErrorCallback failureCallback]) native;
@@ -30274,34 +34538,66 @@
@DocsEditable()
void _addStream_2(MediaStream stream) native;
+ @DomName('RTCPeerConnection.addTrack')
+ @DocsEditable()
+ @Experimental() // untriaged
+ RtcRtpSender addTrack(MediaStreamTrack track, MediaStream streams) native;
+
@DomName('RTCPeerConnection.close')
@DocsEditable()
void close() native;
@DomName('RTCPeerConnection.createAnswer')
@DocsEditable()
- void _createAnswer(_RtcSessionDescriptionCallback successCallback,
+ Future _createAnswer(
+ [options_OR_successCallback,
RtcPeerConnectionErrorCallback failureCallback,
- [Map mediaConstraints]) {
- if (mediaConstraints != null) {
- var mediaConstraints_1 = convertDartToNative_Dictionary(mediaConstraints);
- _createAnswer_1(successCallback, failureCallback, mediaConstraints_1);
- return;
+ Map mediaConstraints]) {
+ if (options_OR_successCallback == null &&
+ failureCallback == null &&
+ mediaConstraints == null) {
+ return _createAnswer_1();
}
- _createAnswer_2(successCallback, failureCallback);
- return;
+ if ((options_OR_successCallback is Map) &&
+ failureCallback == null &&
+ mediaConstraints == null) {
+ var options_1 =
+ convertDartToNative_Dictionary(options_OR_successCallback);
+ return _createAnswer_2(options_1);
+ }
+ if (failureCallback != null &&
+ (options_OR_successCallback is _RtcSessionDescriptionCallback) &&
+ mediaConstraints == null) {
+ return _createAnswer_3(options_OR_successCallback, failureCallback);
+ }
+ if (mediaConstraints != null &&
+ failureCallback != null &&
+ (options_OR_successCallback is _RtcSessionDescriptionCallback)) {
+ var mediaConstraints_1 = convertDartToNative_Dictionary(mediaConstraints);
+ return _createAnswer_4(
+ options_OR_successCallback, failureCallback, mediaConstraints_1);
+ }
+ throw new ArgumentError("Incorrect number or type of arguments");
}
@JSName('createAnswer')
@DomName('RTCPeerConnection.createAnswer')
@DocsEditable()
- void _createAnswer_1(_RtcSessionDescriptionCallback successCallback,
- RtcPeerConnectionErrorCallback failureCallback, mediaConstraints) native;
+ Future _createAnswer_1() native;
@JSName('createAnswer')
@DomName('RTCPeerConnection.createAnswer')
@DocsEditable()
- void _createAnswer_2(_RtcSessionDescriptionCallback successCallback,
+ Future _createAnswer_2(options) native;
+ @JSName('createAnswer')
+ @DomName('RTCPeerConnection.createAnswer')
+ @DocsEditable()
+ Future _createAnswer_3(_RtcSessionDescriptionCallback successCallback,
RtcPeerConnectionErrorCallback failureCallback) native;
+ @JSName('createAnswer')
+ @DomName('RTCPeerConnection.createAnswer')
+ @DocsEditable()
+ Future _createAnswer_4(_RtcSessionDescriptionCallback successCallback,
+ RtcPeerConnectionErrorCallback failureCallback, mediaConstraints) native;
@JSName('createDTMFSender')
@DomName('RTCPeerConnection.createDTMFSender')
@@ -30310,10 +34606,10 @@
@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);
+ RtcDataChannel createDataChannel(String label, [Map dataChannelDict]) {
+ if (dataChannelDict != null) {
+ var dataChannelDict_1 = convertDartToNative_Dictionary(dataChannelDict);
+ return _createDataChannel_1(label, dataChannelDict_1);
}
return _createDataChannel_2(label);
}
@@ -30321,7 +34617,7 @@
@JSName('createDataChannel')
@DomName('RTCPeerConnection.createDataChannel')
@DocsEditable()
- RtcDataChannel _createDataChannel_1(label, options) native;
+ RtcDataChannel _createDataChannel_1(label, dataChannelDict) native;
@JSName('createDataChannel')
@DomName('RTCPeerConnection.createDataChannel')
@DocsEditable()
@@ -30329,62 +34625,123 @@
@DomName('RTCPeerConnection.createOffer')
@DocsEditable()
- void _createOffer(_RtcSessionDescriptionCallback successCallback,
+ Future _createOffer(
+ [options_OR_successCallback,
RtcPeerConnectionErrorCallback failureCallback,
- [Map rtcOfferOptions]) {
- if (rtcOfferOptions != null) {
- var rtcOfferOptions_1 = convertDartToNative_Dictionary(rtcOfferOptions);
- _createOffer_1(successCallback, failureCallback, rtcOfferOptions_1);
- return;
+ Map rtcOfferOptions]) {
+ if (options_OR_successCallback == null &&
+ failureCallback == null &&
+ rtcOfferOptions == null) {
+ return _createOffer_1();
}
- _createOffer_2(successCallback, failureCallback);
- return;
+ if ((options_OR_successCallback is Map) &&
+ failureCallback == null &&
+ rtcOfferOptions == null) {
+ var options_1 =
+ convertDartToNative_Dictionary(options_OR_successCallback);
+ return _createOffer_2(options_1);
+ }
+ if (failureCallback != null &&
+ (options_OR_successCallback is _RtcSessionDescriptionCallback) &&
+ rtcOfferOptions == null) {
+ return _createOffer_3(options_OR_successCallback, failureCallback);
+ }
+ if (rtcOfferOptions != null &&
+ failureCallback != null &&
+ (options_OR_successCallback is _RtcSessionDescriptionCallback)) {
+ var rtcOfferOptions_1 = convertDartToNative_Dictionary(rtcOfferOptions);
+ return _createOffer_4(
+ options_OR_successCallback, failureCallback, rtcOfferOptions_1);
+ }
+ throw new ArgumentError("Incorrect number or type of arguments");
}
@JSName('createOffer')
@DomName('RTCPeerConnection.createOffer')
@DocsEditable()
- void _createOffer_1(_RtcSessionDescriptionCallback successCallback,
- RtcPeerConnectionErrorCallback failureCallback, rtcOfferOptions) native;
+ Future _createOffer_1() native;
@JSName('createOffer')
@DomName('RTCPeerConnection.createOffer')
@DocsEditable()
- void _createOffer_2(_RtcSessionDescriptionCallback successCallback,
+ Future _createOffer_2(options) native;
+ @JSName('createOffer')
+ @DomName('RTCPeerConnection.createOffer')
+ @DocsEditable()
+ Future _createOffer_3(_RtcSessionDescriptionCallback successCallback,
RtcPeerConnectionErrorCallback failureCallback) native;
+ @JSName('createOffer')
+ @DomName('RTCPeerConnection.createOffer')
+ @DocsEditable()
+ Future _createOffer_4(_RtcSessionDescriptionCallback successCallback,
+ RtcPeerConnectionErrorCallback failureCallback, rtcOfferOptions) native;
@DomName('RTCPeerConnection.getLocalStreams')
@DocsEditable()
List<MediaStream> getLocalStreams() native;
+ @DomName('RTCPeerConnection.getReceivers')
+ @DocsEditable()
+ @Experimental() // untriaged
+ List<RtcRtpReceiver> getReceivers() native;
+
@DomName('RTCPeerConnection.getRemoteStreams')
@DocsEditable()
List<MediaStream> getRemoteStreams() native;
+ @DomName('RTCPeerConnection.getSenders')
+ @DocsEditable()
+ @Experimental() // untriaged
+ List<RtcRtpSender> getSenders() native;
+
@JSName('getStats')
@DomName('RTCPeerConnection.getStats')
@DocsEditable()
- void _getStats(RtcStatsCallback successCallback, MediaStreamTrack selector)
- native;
-
- @DomName('RTCPeerConnection.getStreamById')
- @DocsEditable()
- MediaStream getStreamById(String streamId) native;
+ Future _getStats(
+ [RtcStatsCallback successCallback, MediaStreamTrack selector]) native;
@DomName('RTCPeerConnection.removeStream')
@DocsEditable()
void removeStream(MediaStream stream) native;
- @JSName('setLocalDescription')
+ @DomName('RTCPeerConnection.removeTrack')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void removeTrack(RtcRtpSender sender) native;
+
+ @DomName('RTCPeerConnection.setConfiguration')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void setConfiguration(Map configuration) {
+ var configuration_1 = convertDartToNative_Dictionary(configuration);
+ _setConfiguration_1(configuration_1);
+ return;
+ }
+
+ @JSName('setConfiguration')
+ @DomName('RTCPeerConnection.setConfiguration')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void _setConfiguration_1(configuration) native;
+
@DomName('RTCPeerConnection.setLocalDescription')
@DocsEditable()
- Future _setLocalDescription(
- RtcSessionDescription description, VoidCallback successCallback,
- [RtcPeerConnectionErrorCallback failureCallback]) native;
+ Future _setLocalDescription(Map description, VoidCallback successCallback,
+ [RtcPeerConnectionErrorCallback failureCallback]) {
+ var description_1 = convertDartToNative_Dictionary(description);
+ return _setLocalDescription_1(
+ description_1, successCallback, failureCallback);
+ }
@JSName('setLocalDescription')
@DomName('RTCPeerConnection.setLocalDescription')
@DocsEditable()
- Future setLocalDescription(RtcSessionDescription description) {
+ Future _setLocalDescription_1(description, VoidCallback successCallback,
+ RtcPeerConnectionErrorCallback failureCallback) native;
+
+ @JSName('setLocalDescription')
+ @DomName('RTCPeerConnection.setLocalDescription')
+ @DocsEditable()
+ Future setLocalDescription(Map description) {
var completer = new Completer();
_setLocalDescription(description, () {
completer.complete();
@@ -30394,17 +34751,25 @@
return completer.future;
}
- @JSName('setRemoteDescription')
@DomName('RTCPeerConnection.setRemoteDescription')
@DocsEditable()
- Future _setRemoteDescription(
- RtcSessionDescription description, VoidCallback successCallback,
- [RtcPeerConnectionErrorCallback failureCallback]) native;
+ Future _setRemoteDescription(Map description, VoidCallback successCallback,
+ [RtcPeerConnectionErrorCallback failureCallback]) {
+ var description_1 = convertDartToNative_Dictionary(description);
+ return _setRemoteDescription_1(
+ description_1, successCallback, failureCallback);
+ }
@JSName('setRemoteDescription')
@DomName('RTCPeerConnection.setRemoteDescription')
@DocsEditable()
- Future setRemoteDescription(RtcSessionDescription description) {
+ Future _setRemoteDescription_1(description, VoidCallback successCallback,
+ RtcPeerConnectionErrorCallback failureCallback) native;
+
+ @JSName('setRemoteDescription')
+ @DomName('RTCPeerConnection.setRemoteDescription')
+ @DocsEditable()
+ Future setRemoteDescription(Map description) {
var completer = new Completer();
_setRemoteDescription(description, () {
completer.complete();
@@ -30414,37 +34779,6 @@
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()
@@ -30459,7 +34793,7 @@
/// Stream of `icecandidate` events handled by this [RtcPeerConnection].
@DomName('RTCPeerConnection.onicecandidate')
@DocsEditable()
- Stream<RtcIceCandidateEvent> get onIceCandidate =>
+ Stream<RtcPeerConnectionIceEvent> get onIceCandidate =>
iceCandidateEvent.forTarget(this);
/// Stream of `iceconnectionstatechange` events handled by this [RtcPeerConnection].
@@ -30486,6 +34820,109 @@
Stream<Event> get onSignalingStateChange =>
signalingStateChangeEvent.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('RTCPeerConnectionIceEvent')
+@Experimental() // untriaged
+@Native("RTCPeerConnectionIceEvent")
+class RtcPeerConnectionIceEvent extends Event {
+ // To suppress missing implicit constructor warnings.
+ factory RtcPeerConnectionIceEvent._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('RTCPeerConnectionIceEvent.RTCPeerConnectionIceEvent')
+ @DocsEditable()
+ factory RtcPeerConnectionIceEvent(String type, [Map eventInitDict]) {
+ if (eventInitDict != null) {
+ var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+ return RtcPeerConnectionIceEvent._create_1(type, eventInitDict_1);
+ }
+ return RtcPeerConnectionIceEvent._create_2(type);
+ }
+ static RtcPeerConnectionIceEvent _create_1(type, eventInitDict) => JS(
+ 'RtcPeerConnectionIceEvent',
+ 'new RTCPeerConnectionIceEvent(#,#)',
+ type,
+ eventInitDict);
+ static RtcPeerConnectionIceEvent _create_2(type) =>
+ JS('RtcPeerConnectionIceEvent', 'new RTCPeerConnectionIceEvent(#)', type);
+
+ @DomName('RTCPeerConnectionIceEvent.candidate')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final RtcIceCandidate candidate;
+}
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+@DocsEditable()
+@DomName('RTCRtpContributingSource')
+@Experimental() // untriaged
+@Native("RTCRtpContributingSource")
+class RtcRtpContributingSource extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory RtcRtpContributingSource._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('RTCRtpContributingSource.source')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final int source;
+
+ @DomName('RTCRtpContributingSource.timestamp')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num 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('RTCRtpReceiver')
+@Experimental() // untriaged
+@Native("RTCRtpReceiver")
+class RtcRtpReceiver extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory RtcRtpReceiver._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('RTCRtpReceiver.track')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final MediaStreamTrack track;
+
+ @DomName('RTCRtpReceiver.getContributingSources')
+ @DocsEditable()
+ @Experimental() // untriaged
+ List<RtcRtpContributingSource> getContributingSources() 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('RTCRtpSender')
+@Experimental() // untriaged
+@Native("RTCRtpSender")
+class RtcRtpSender extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory RtcRtpSender._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('RTCRtpSender.track')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final MediaStreamTrack track;
+}
// 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.
@@ -30536,31 +34973,6 @@
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
@@ -30579,11 +34991,49 @@
@DomName('RTCStatsResponse.namedItem')
@DocsEditable()
- RtcStatsReport namedItem(String name) native;
+ RtcLegacyStatsReport namedItem(String name) native;
@DomName('RTCStatsResponse.result')
@DocsEditable()
- List<RtcStatsReport> result() native;
+ List<RtcLegacyStatsReport> result() 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('RTCTrackEvent')
+@Experimental() // untriaged
+@Native("RTCTrackEvent")
+class RtcTrackEvent extends Event {
+ // To suppress missing implicit constructor warnings.
+ factory RtcTrackEvent._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('RTCTrackEvent.RTCTrackEvent')
+ @DocsEditable()
+ factory RtcTrackEvent(String type, Map eventInitDict) {
+ var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+ return RtcTrackEvent._create_1(type, eventInitDict_1);
+ }
+ static RtcTrackEvent _create_1(type, eventInitDict) =>
+ JS('RtcTrackEvent', 'new RTCTrackEvent(#,#)', type, eventInitDict);
+
+ @DomName('RTCTrackEvent.receiver')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final RtcRtpReceiver receiver;
+
+ @DomName('RTCTrackEvent.streams')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final List<MediaStream> streams;
+
+ @DomName('RTCTrackEvent.track')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final MediaStreamTrack track;
}
// 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
@@ -30747,11 +35197,10 @@
@Experimental() // untriaged
String integrity;
- @DomName('HTMLScriptElement.nonce')
+ @DomName('HTMLScriptElement.noModule')
@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;
+ @Experimental() // untriaged
+ bool noModule;
@DomName('HTMLScriptElement.src')
@DocsEditable()
@@ -30791,17 +35240,17 @@
@DomName('ScrollState.deltaGranularity')
@DocsEditable()
@Experimental() // untriaged
- final double deltaGranularity;
+ final num deltaGranularity;
@DomName('ScrollState.deltaX')
@DocsEditable()
@Experimental() // untriaged
- final double deltaX;
+ final num deltaX;
@DomName('ScrollState.deltaY')
@DocsEditable()
@Experimental() // untriaged
- final double deltaY;
+ final num deltaY;
@DomName('ScrollState.fromUserInput')
@DocsEditable()
@@ -30828,30 +35277,25 @@
@Experimental() // untriaged
final bool isEnding;
- @DomName('ScrollState.shouldPropagate')
+ @DomName('ScrollState.positionX')
@DocsEditable()
@Experimental() // untriaged
- final bool shouldPropagate;
+ final int positionX;
- @DomName('ScrollState.startPositionX')
+ @DomName('ScrollState.positionY')
@DocsEditable()
@Experimental() // untriaged
- final int startPositionX;
-
- @DomName('ScrollState.startPositionY')
- @DocsEditable()
- @Experimental() // untriaged
- final int startPositionY;
+ final int positionY;
@DomName('ScrollState.velocityX')
@DocsEditable()
@Experimental() // untriaged
- final double velocityX;
+ final num velocityX;
@DomName('ScrollState.velocityY')
@DocsEditable()
@Experimental() // untriaged
- final double velocityY;
+ final num velocityY;
@DomName('ScrollState.consumeDelta')
@DocsEditable()
@@ -30877,6 +35321,49 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('ScrollTimeline')
+@Experimental() // untriaged
+@Native("ScrollTimeline")
+class ScrollTimeline extends AnimationTimeline {
+ // To suppress missing implicit constructor warnings.
+ factory ScrollTimeline._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('ScrollTimeline.ScrollTimeline')
+ @DocsEditable()
+ factory ScrollTimeline([Map options]) {
+ if (options != null) {
+ var options_1 = convertDartToNative_Dictionary(options);
+ return ScrollTimeline._create_1(options_1);
+ }
+ return ScrollTimeline._create_2();
+ }
+ static ScrollTimeline _create_1(options) =>
+ JS('ScrollTimeline', 'new ScrollTimeline(#)', options);
+ static ScrollTimeline _create_2() =>
+ JS('ScrollTimeline', 'new ScrollTimeline()');
+
+ @DomName('ScrollTimeline.orientation')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String orientation;
+
+ @DomName('ScrollTimeline.scrollSource')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final Element scrollSource;
+
+ @DomName('ScrollTimeline.timeRange')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final Object timeRange;
+}
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All 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()
@@ -30915,6 +35402,11 @@
@DocsEditable()
final int columnNumber;
+ @DomName('SecurityPolicyViolationEvent.disposition')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String disposition;
+
@JSName('documentURI')
@DomName('SecurityPolicyViolationEvent.documentURI')
@DocsEditable()
@@ -30936,6 +35428,11 @@
@DocsEditable()
final String referrer;
+ @DomName('SecurityPolicyViolationEvent.sample')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String sample;
+
@DomName('SecurityPolicyViolationEvent.sourceFile')
@DocsEditable()
final String sourceFile;
@@ -31194,6 +35691,11 @@
@DocsEditable()
void removeAllRanges() native;
+ @DomName('Selection.removeRange')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void removeRange(Range range) native;
+
@DomName('Selection.selectAllChildren')
@DocsEditable()
void selectAllChildren(Node node) native;
@@ -31214,191 +35716,78 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
-@DomName('ServicePort')
+@DomName('Sensor')
@Experimental() // untriaged
-@Native("ServicePort")
-class ServicePort extends Interceptor {
+@Native("Sensor")
+class Sensor extends EventTarget {
// To suppress missing implicit constructor warnings.
- factory ServicePort._() {
+ factory Sensor._() {
throw new UnsupportedError("Not supported");
}
- @DomName('ServicePort.data')
+ @DomName('Sensor.errorEvent')
@DocsEditable()
@Experimental() // untriaged
- final Object data;
+ static const EventStreamProvider<Event> errorEvent =
+ const EventStreamProvider<Event>('error');
- @DomName('ServicePort.name')
+ @DomName('Sensor.activated')
@DocsEditable()
@Experimental() // untriaged
- final String name;
+ final bool activated;
- @JSName('targetURL')
- @DomName('ServicePort.targetURL')
+ @DomName('Sensor.hasReading')
@DocsEditable()
@Experimental() // untriaged
- final String targetUrl;
+ final bool hasReading;
- @DomName('ServicePort.close')
+ @DomName('Sensor.timestamp')
@DocsEditable()
@Experimental() // untriaged
- void close() native;
+ final num timestamp;
- @DomName('ServicePort.postMessage')
+ @DomName('Sensor.start')
@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;
- }
+ void start() native;
- @JSName('postMessage')
- @DomName('ServicePort.postMessage')
+ @DomName('Sensor.stop')
@DocsEditable()
@Experimental() // untriaged
- void _postMessage_1(message, List<MessagePort> transfer) native;
- @JSName('postMessage')
- @DomName('ServicePort.postMessage')
+ void stop() native;
+
+ @DomName('Sensor.onerror')
@DocsEditable()
@Experimental() // untriaged
- void _postMessage_2(message) native;
+ 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('ServicePortCollection')
+@DomName('SensorErrorEvent')
@Experimental() // untriaged
-@Native("ServicePortCollection")
-class ServicePortCollection extends EventTarget {
+@Native("SensorErrorEvent")
+class SensorErrorEvent extends Event {
// To suppress missing implicit constructor warnings.
- factory ServicePortCollection._() {
+ factory SensorErrorEvent._() {
throw new UnsupportedError("Not supported");
}
- @DomName('ServicePortCollection.messageEvent')
+ @DomName('SensorErrorEvent.SensorErrorEvent')
@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);
+ factory SensorErrorEvent(String type, Map eventInitDict) {
+ var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+ return SensorErrorEvent._create_1(type, eventInitDict_1);
}
+ static SensorErrorEvent _create_1(type, eventInitDict) =>
+ JS('SensorErrorEvent', 'new SensorErrorEvent(#,#)', type, eventInitDict);
- @JSName('connect')
- @DomName('ServicePortCollection.connect')
+ @DomName('SensorErrorEvent.error')
@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;
+ final DomException 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
@@ -31481,6 +35870,30 @@
throw new UnsupportedError("Not supported");
}
+ @DomName('ServiceWorkerGlobalScope.activateEvent')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const EventStreamProvider<Event> activateEvent =
+ const EventStreamProvider<Event>('activate');
+
+ @DomName('ServiceWorkerGlobalScope.fetchEvent')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const EventStreamProvider<Event> fetchEvent =
+ const EventStreamProvider<Event>('fetch');
+
+ @DomName('ServiceWorkerGlobalScope.foreignfetchEvent')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const EventStreamProvider<ForeignFetchEvent> foreignfetchEvent =
+ const EventStreamProvider<ForeignFetchEvent>('foreignfetch');
+
+ @DomName('ServiceWorkerGlobalScope.installEvent')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const EventStreamProvider<Event> installEvent =
+ const EventStreamProvider<Event>('install');
+
@DomName('ServiceWorkerGlobalScope.messageEvent')
@DocsEditable()
@Experimental() // untriaged
@@ -31502,64 +35915,32 @@
@Experimental() // untriaged
Future skipWaiting() native;
+ @DomName('ServiceWorkerGlobalScope.onactivate')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Stream<Event> get onActivate => activateEvent.forTarget(this);
+
+ @DomName('ServiceWorkerGlobalScope.onfetch')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Stream<Event> get onFetch => fetchEvent.forTarget(this);
+
+ @DomName('ServiceWorkerGlobalScope.onforeignfetch')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Stream<ForeignFetchEvent> get onForeignfetch =>
+ foreignfetchEvent.forTarget(this);
+
+ @DomName('ServiceWorkerGlobalScope.oninstall')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Stream<Event> get onInstall => installEvent.forTarget(this);
+
@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.
@@ -31579,16 +35960,26 @@
@Experimental() // untriaged
final _ServiceWorker active;
- @DomName('ServiceWorkerRegistration.geofencing')
+ @DomName('ServiceWorkerRegistration.backgroundFetch')
@DocsEditable()
@Experimental() // untriaged
- final Geofencing geofencing;
+ final BackgroundFetchManager backgroundFetch;
@DomName('ServiceWorkerRegistration.installing')
@DocsEditable()
@Experimental() // untriaged
final _ServiceWorker installing;
+ @DomName('ServiceWorkerRegistration.navigationPreload')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final NavigationPreloadManager navigationPreload;
+
+ @DomName('ServiceWorkerRegistration.paymentManager')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final PaymentManager paymentManager;
+
@DomName('ServiceWorkerRegistration.pushManager')
@DocsEditable()
@Experimental() // untriaged
@@ -31710,16 +36101,12 @@
@Experimental()
// https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#api-shadow-root
@Native("ShadowRoot")
-class ShadowRoot extends DocumentFragment {
+class ShadowRoot extends DocumentFragment implements DocumentOrShadowRoot {
// 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
@@ -31735,11 +36122,32 @@
@DocsEditable()
String innerHtml;
+ @DomName('ShadowRoot.mode')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String mode;
+
@DomName('ShadowRoot.olderShadowRoot')
@DocsEditable()
@Experimental() // untriaged
final ShadowRoot olderShadowRoot;
+ // From DocumentOrShadowRoot
+
+ @DomName('ShadowRoot.activeElement')
+ @DocsEditable()
+ final Element activeElement;
+
+ @DomName('ShadowRoot.fullscreenElement')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final Element fullscreenElement;
+
+ @DomName('ShadowRoot.pointerLockElement')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final Element pointerLockElement;
+
@DomName('ShadowRoot.styleSheets')
@DocsEditable()
@Experimental() // untriaged
@@ -31747,11 +36155,6 @@
@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;
@@ -31862,11 +36265,6 @@
@DocsEditable()
final MessagePort port;
- @DomName('SharedWorker.workerStart')
- @DocsEditable()
- @Experimental() // untriaged
- final double workerStart;
-
@DomName('SharedWorker.onerror')
@DocsEditable()
@Experimental() // untriaged
@@ -31913,6 +36311,11 @@
@Experimental() // untriaged
final String name;
+ @DomName('SharedWorkerGlobalScope.close')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void close() native;
+
@JSName('webkitRequestFileSystem')
@DomName('SharedWorkerGlobalScope.webkitRequestFileSystem')
@DocsEditable()
@@ -31964,69 +36367,6 @@
// 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")
@@ -32047,27 +36387,27 @@
@Experimental() // untriaged
String name;
- @DomName('HTMLSlotElement.getAssignedNodes')
+ @DomName('HTMLSlotElement.assignedNodes')
@DocsEditable()
@Experimental() // untriaged
- List<Node> getAssignedNodes([Map options]) {
+ List<Node> assignedNodes([Map options]) {
if (options != null) {
var options_1 = convertDartToNative_Dictionary(options);
- return _getAssignedNodes_1(options_1);
+ return _assignedNodes_1(options_1);
}
- return _getAssignedNodes_2();
+ return _assignedNodes_2();
}
- @JSName('getAssignedNodes')
- @DomName('HTMLSlotElement.getAssignedNodes')
+ @JSName('assignedNodes')
+ @DomName('HTMLSlotElement.assignedNodes')
@DocsEditable()
@Experimental() // untriaged
- List<Node> _getAssignedNodes_1(options) native;
- @JSName('getAssignedNodes')
- @DomName('HTMLSlotElement.getAssignedNodes')
+ List<Node> _assignedNodes_1(options) native;
+ @JSName('assignedNodes')
+ @DomName('HTMLSlotElement.assignedNodes')
@DocsEditable()
@Experimental() // untriaged
- List<Node> _getAssignedNodes_2() native;
+ List<Node> _assignedNodes_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
@@ -32084,6 +36424,18 @@
throw new UnsupportedError("Not supported");
}
+ @DomName('SourceBuffer.abortEvent')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const EventStreamProvider<Event> abortEvent =
+ const EventStreamProvider<Event>('abort');
+
+ @DomName('SourceBuffer.errorEvent')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const EventStreamProvider<Event> errorEvent =
+ const EventStreamProvider<Event>('error');
+
@DomName('SourceBuffer.appendWindowEnd')
@DocsEditable()
@Experimental() // untriaged
@@ -32094,6 +36446,11 @@
@Experimental() // untriaged
num appendWindowStart;
+ @DomName('SourceBuffer.audioTracks')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final AudioTrackList audioTracks;
+
@DomName('SourceBuffer.buffered')
@DocsEditable()
final TimeRanges buffered;
@@ -32117,6 +36474,11 @@
@Experimental() // untriaged
final bool updating;
+ @DomName('SourceBuffer.videoTracks')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final VideoTrackList videoTracks;
+
@DomName('SourceBuffer.abort')
@DocsEditable()
void abort() native;
@@ -32126,11 +36488,6 @@
@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()
@@ -32141,6 +36498,16 @@
@DocsEditable()
@Experimental() // untriaged
void remove(num start, num end) native;
+
+ @DomName('SourceBuffer.onabort')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Stream<Event> get onAbort => abortEvent.forTarget(this);
+
+ @DomName('SourceBuffer.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
@@ -32264,40 +36631,6 @@
// 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 {
@@ -32690,7 +37023,7 @@
@DomName('SpeechRecognitionAlternative.confidence')
@DocsEditable()
- final double confidence;
+ final num confidence;
@DomName('SpeechRecognitionAlternative.transcript')
@DocsEditable()
@@ -32884,7 +37217,7 @@
@DomName('SpeechSynthesisEvent.elapsedTime')
@DocsEditable()
- final double elapsedTime;
+ final num elapsedTime;
@DomName('SpeechSynthesisEvent.name')
@DocsEditable()
@@ -33100,6 +37433,45 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
+@DocsEditable()
+@DomName('StaticRange')
+@Experimental() // untriaged
+@Native("StaticRange")
+class StaticRange extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory StaticRange._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('StaticRange.collapsed')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final bool collapsed;
+
+ @DomName('StaticRange.endContainer')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final Node endContainer;
+
+ @DomName('StaticRange.endOffset')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final int endOffset;
+
+ @DomName('StaticRange.startContainer')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final Node startContainer;
+
+ @DomName('StaticRange.startOffset')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final int startOffset;
+}
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for 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.
@@ -33195,18 +37567,6 @@
@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()
@@ -33318,31 +37678,6 @@
// 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")
@@ -33352,45 +37687,20 @@
throw new UnsupportedError("Not supported");
}
- @DomName('StorageManager.persistentPermission')
+ @DomName('StorageManager.estimate')
@DocsEditable()
@Experimental() // untriaged
- Future persistentPermission() native;
+ Future estimate() native;
- @DomName('StorageManager.requestPersistent')
+ @DomName('StorageManager.persist')
@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.
+ Future persist() native;
-@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')
+ @DomName('StorageManager.persisted')
@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;
+ Future persisted() 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
@@ -33417,16 +37727,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.
-// 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")
@@ -33497,7 +37797,7 @@
@DomName('StylePropertyMap')
@Experimental() // untriaged
@Native("StylePropertyMap")
-class StylePropertyMap extends Interceptor {
+class StylePropertyMap extends StylePropertyMapReadonly {
// To suppress missing implicit constructor warnings.
factory StylePropertyMap._() {
throw new UnsupportedError("Not supported");
@@ -33513,26 +37813,6 @@
@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
@@ -33543,6 +37823,40 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('StylePropertyMapReadonly')
+@Experimental() // untriaged
+@Native("StylePropertyMapReadonly")
+class StylePropertyMapReadonly extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory StylePropertyMapReadonly._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('StylePropertyMapReadonly.get')
+ @DocsEditable()
+ @Experimental() // untriaged
+ CssStyleValue get(String property) native;
+
+ @DomName('StylePropertyMapReadonly.getAll')
+ @DocsEditable()
+ @Experimental() // untriaged
+ List<CssStyleValue> getAll(String property) native;
+
+ @DomName('StylePropertyMapReadonly.getProperties')
+ @DocsEditable()
+ @Experimental() // untriaged
+ List<String> getProperties() native;
+
+ @DomName('StylePropertyMapReadonly.has')
+ @DocsEditable()
+ @Experimental() // untriaged
+ bool has(String property) 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 {
@@ -33584,30 +37898,6 @@
// 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")
@@ -34036,6 +38326,46 @@
@DocsEditable()
HtmlElement _insertRow([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('TaskAttributionTiming')
+@Experimental() // untriaged
+@Native("TaskAttributionTiming")
+class TaskAttributionTiming extends PerformanceEntry {
+ // To suppress missing implicit constructor warnings.
+ factory TaskAttributionTiming._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('TaskAttributionTiming.containerId')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String containerId;
+
+ @DomName('TaskAttributionTiming.containerName')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String containerName;
+
+ @DomName('TaskAttributionTiming.containerSrc')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String containerSrc;
+
+ @DomName('TaskAttributionTiming.containerType')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String containerType;
+
+ @JSName('scriptURL')
+ @DomName('TaskAttributionTiming.scriptURL')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String scriptUrl;
+}
// 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.
@@ -34184,11 +38514,6 @@
@DocsEditable()
final FormElement form;
- @DomName('HTMLTextAreaElement.inputMode')
- @DocsEditable()
- @Experimental() // untriaged
- String inputMode;
-
@DomName('HTMLTextAreaElement.labels')
@DocsEditable()
@Unstable()
@@ -34293,6 +38618,32 @@
@DocsEditable()
void setSelectionRange(int start, int end, [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.
+
+@DocsEditable()
+@DomName('TextDetector')
+@Experimental() // untriaged
+@Native("TextDetector")
+class TextDetector extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory TextDetector._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('TextDetector.TextDetector')
+ @DocsEditable()
+ factory TextDetector() {
+ return TextDetector._create_1();
+ }
+ static TextDetector _create_1() => JS('TextDetector', 'new TextDetector()');
+
+ @DomName('TextDetector.detect')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future detect(/*ImageBitmapSource*/ image) 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.
@@ -34346,61 +38697,61 @@
@DomName('TextMetrics.actualBoundingBoxAscent')
@DocsEditable()
@Experimental() // untriaged
- final double actualBoundingBoxAscent;
+ final num actualBoundingBoxAscent;
@DomName('TextMetrics.actualBoundingBoxDescent')
@DocsEditable()
@Experimental() // untriaged
- final double actualBoundingBoxDescent;
+ final num actualBoundingBoxDescent;
@DomName('TextMetrics.actualBoundingBoxLeft')
@DocsEditable()
@Experimental() // untriaged
- final double actualBoundingBoxLeft;
+ final num actualBoundingBoxLeft;
@DomName('TextMetrics.actualBoundingBoxRight')
@DocsEditable()
@Experimental() // untriaged
- final double actualBoundingBoxRight;
+ final num actualBoundingBoxRight;
@DomName('TextMetrics.alphabeticBaseline')
@DocsEditable()
@Experimental() // untriaged
- final double alphabeticBaseline;
+ final num alphabeticBaseline;
@DomName('TextMetrics.emHeightAscent')
@DocsEditable()
@Experimental() // untriaged
- final double emHeightAscent;
+ final num emHeightAscent;
@DomName('TextMetrics.emHeightDescent')
@DocsEditable()
@Experimental() // untriaged
- final double emHeightDescent;
+ final num emHeightDescent;
@DomName('TextMetrics.fontBoundingBoxAscent')
@DocsEditable()
@Experimental() // untriaged
- final double fontBoundingBoxAscent;
+ final num fontBoundingBoxAscent;
@DomName('TextMetrics.fontBoundingBoxDescent')
@DocsEditable()
@Experimental() // untriaged
- final double fontBoundingBoxDescent;
+ final num fontBoundingBoxDescent;
@DomName('TextMetrics.hangingBaseline')
@DocsEditable()
@Experimental() // untriaged
- final double hangingBaseline;
+ final num hangingBaseline;
@DomName('TextMetrics.ideographicBaseline')
@DocsEditable()
@Experimental() // untriaged
- final double ideographicBaseline;
+ final num ideographicBaseline;
@DomName('TextMetrics.width')
@DocsEditable()
- final double width;
+ final 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
@@ -34457,29 +38808,14 @@
@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()
@@ -34731,6 +39067,31 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('HTMLTimeElement')
+@Experimental() // untriaged
+@Native("HTMLTimeElement")
+class TimeElement extends HtmlElement {
+ // To suppress missing implicit constructor warnings.
+ factory TimeElement._() {
+ 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.
+ */
+ TimeElement.created() : super.created();
+
+ @DomName('HTMLTimeElement.dateTime')
+ @DocsEditable()
+ @Experimental() // untriaged
+ 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.
+
+@DocsEditable()
@DomName('TimeRanges')
@Unstable()
@Native("TimeRanges")
@@ -34813,17 +39174,17 @@
@JSName('clientX')
@DomName('Touch.clientX')
@DocsEditable()
- final double _clientX;
+ final num _clientX;
@JSName('clientY')
@DomName('Touch.clientY')
@DocsEditable()
- final double _clientY;
+ final num _clientY;
@DomName('Touch.force')
@DocsEditable()
@Experimental() // untriaged
- final double force;
+ final num force;
@DomName('Touch.identifier')
@DocsEditable()
@@ -34832,24 +39193,24 @@
@JSName('pageX')
@DomName('Touch.pageX')
@DocsEditable()
- final double _pageX;
+ final num _pageX;
@JSName('pageY')
@DomName('Touch.pageY')
@DocsEditable()
- final double _pageY;
+ final num _pageY;
@JSName('radiusX')
@DomName('Touch.radiusX')
@DocsEditable()
@Experimental() // untriaged
- final double _radiusX;
+ final num _radiusX;
@JSName('radiusY')
@DomName('Touch.radiusY')
@DocsEditable()
@Experimental() // untriaged
- final double _radiusY;
+ final num _radiusY;
@DomName('Touch.region')
@DocsEditable()
@@ -34859,17 +39220,17 @@
@DomName('Touch.rotationAngle')
@DocsEditable()
@Experimental() // untriaged
- final double rotationAngle;
+ final num rotationAngle;
@JSName('screenX')
@DomName('Touch.screenX')
@DocsEditable()
- final double _screenX;
+ final num _screenX;
@JSName('screenY')
@DomName('Touch.screenY')
@DocsEditable()
- final double _screenY;
+ final num _screenY;
@DomName('Touch.target')
@DocsEditable()
@@ -34929,30 +39290,25 @@
@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.TouchEvent')
+ @DocsEditable()
+ factory TouchEvent(String type, [Map eventInitDict]) {
+ if (eventInitDict != null) {
+ var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+ return TouchEvent._create_1(type, eventInitDict_1);
+ }
+ return TouchEvent._create_2(type);
+ }
+ static TouchEvent _create_1(type, eventInitDict) =>
+ JS('TouchEvent', 'new TouchEvent(#,#)', type, eventInitDict);
+ static TouchEvent _create_2(type) =>
+ JS('TouchEvent', 'new TouchEvent(#)', type);
+
@DomName('TouchEvent.altKey')
@DocsEditable()
final bool altKey;
@@ -34981,24 +39337,6 @@
@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.
*
@@ -35131,7 +39469,7 @@
@DomName('TrackDefault.kinds')
@DocsEditable()
@Experimental() // untriaged
- final List<String> kinds;
+ final Object kinds;
@DomName('TrackDefault.label')
@DocsEditable()
@@ -35299,70 +39637,6 @@
// 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 {
@@ -35387,7 +39661,7 @@
@DomName('TransitionEvent.elapsedTime')
@DocsEditable()
- final double elapsedTime;
+ final num elapsedTime;
@DomName('TransitionEvent.propertyName')
@DocsEditable()
@@ -35397,51 +39671,6 @@
@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.
@@ -35506,6 +39735,73 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
+@DocsEditable()
+@DomName('TrustedHTML')
+@Experimental() // untriaged
+@Native("TrustedHTML")
+class TrustedHtml extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory TrustedHtml._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('TrustedHTML.escape')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static TrustedHtml escape(String html) native;
+
+ @DomName('TrustedHTML.unsafelyCreate')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static TrustedHtml unsafelyCreate(String html) 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('TrustedScriptURL')
+@Experimental() // untriaged
+@Native("TrustedScriptURL")
+class TrustedScriptUrl extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory TrustedScriptUrl._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('TrustedScriptURL.unsafelyCreate')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static TrustedScriptUrl unsafelyCreate(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('TrustedURL')
+@Experimental() // untriaged
+@Native("TrustedURL")
+class TrustedUrl extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory TrustedUrl._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('TrustedURL.create')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static TrustedUrl create(String url) native;
+
+ @DomName('TrustedURL.unsafelyCreate')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static TrustedUrl unsafelyCreate(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.
+
// WARNING: Do not edit - generated code.
@DomName('UIEvent')
@@ -35620,6 +39916,16 @@
@Experimental() // untriaged
Future cancel(Object reason) native;
+ @DomName('UnderlyingSourceBase.notifyLockAcquired')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void notifyLockAcquired() native;
+
+ @DomName('UnderlyingSourceBase.notifyLockReleased')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void notifyLockReleased() native;
+
@DomName('UnderlyingSourceBase.pull')
@DocsEditable()
@Experimental() // untriaged
@@ -35655,7 +39961,7 @@
@DomName('URL')
@Native("URL")
-class Url extends Interceptor implements UrlUtils {
+class Url extends Interceptor {
static String createObjectUrl(blob_OR_source_OR_stream) => JS(
'String',
'(self.URL || self.webkitURL).createObjectURL(#)',
@@ -35682,8 +39988,6 @@
throw new UnsupportedError("Not supported");
}
- // From URLUtils
-
@DomName('URL.hash')
@DocsEditable()
@Experimental() // untriaged
@@ -35734,6 +40038,11 @@
@Experimental() // untriaged
String search;
+ @DomName('URL.searchParams')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final UrlSearchParams searchParams;
+
@DomName('URL.username')
@DocsEditable()
@Experimental() // untriaged
@@ -35795,43 +40104,11 @@
@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();
+ @DomName('URLSearchParams.sort')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void sort() 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
@@ -35863,8 +40140,44 @@
final String protocol;
final String search;
+}
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
- String toString();
+@DocsEditable()
+@DomName('VR')
+@Experimental() // untriaged
+@Native("VR")
+class VR extends EventTarget {
+ // To suppress missing implicit constructor warnings.
+ factory VR._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('VR.getDevices')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future getDevices() 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('VRCoordinateSystem')
+@Experimental() // untriaged
+@Native("VRCoordinateSystem")
+class VRCoordinateSystem extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory VRCoordinateSystem._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('VRCoordinateSystem.getTransformTo')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Float32List getTransformTo(VRCoordinateSystem other) 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
@@ -35874,26 +40187,254 @@
@DomName('VRDevice')
@Experimental() // untriaged
@Native("VRDevice")
-class VRDevice extends Interceptor {
+class VRDevice extends EventTarget {
// 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')
+ @DomName('VRDevice.isExternal')
@DocsEditable()
@Experimental() // untriaged
- final String hardwareUnitId;
+ final bool isExternal;
+
+ @DomName('VRDevice.requestSession')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future requestSession([Map options]) {
+ if (options != null) {
+ var options_1 = convertDartToNative_Dictionary(options);
+ return _requestSession_1(options_1);
+ }
+ return _requestSession_2();
+ }
+
+ @JSName('requestSession')
+ @DomName('VRDevice.requestSession')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future _requestSession_1(options) native;
+ @JSName('requestSession')
+ @DomName('VRDevice.requestSession')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future _requestSession_2() native;
+
+ @DomName('VRDevice.supportsSession')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future supportsSession([Map options]) {
+ if (options != null) {
+ var options_1 = convertDartToNative_Dictionary(options);
+ return _supportsSession_1(options_1);
+ }
+ return _supportsSession_2();
+ }
+
+ @JSName('supportsSession')
+ @DomName('VRDevice.supportsSession')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future _supportsSession_1(options) native;
+ @JSName('supportsSession')
+ @DomName('VRDevice.supportsSession')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future _supportsSession_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('VRDeviceEvent')
+@Experimental() // untriaged
+@Native("VRDeviceEvent")
+class VRDeviceEvent extends Event {
+ // To suppress missing implicit constructor warnings.
+ factory VRDeviceEvent._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('VRDeviceEvent.VRDeviceEvent')
+ @DocsEditable()
+ factory VRDeviceEvent(String type, Map eventInitDict) {
+ var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+ return VRDeviceEvent._create_1(type, eventInitDict_1);
+ }
+ static VRDeviceEvent _create_1(type, eventInitDict) =>
+ JS('VRDeviceEvent', 'new VRDeviceEvent(#,#)', type, eventInitDict);
+
+ @DomName('VRDeviceEvent.device')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final VRDevice device;
+}
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+@DocsEditable()
+@DomName('VRDisplay')
+@Experimental() // untriaged
+@Native("VRDisplay")
+class VRDisplay extends EventTarget {
+ // To suppress missing implicit constructor warnings.
+ factory VRDisplay._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('VRDisplay.capabilities')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final VRDisplayCapabilities capabilities;
+
+ @DomName('VRDisplay.depthFar')
+ @DocsEditable()
+ @Experimental() // untriaged
+ num depthFar;
+
+ @DomName('VRDisplay.depthNear')
+ @DocsEditable()
+ @Experimental() // untriaged
+ num depthNear;
+
+ @DomName('VRDisplay.displayId')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final int displayId;
+
+ @DomName('VRDisplay.displayName')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String displayName;
+
+ @DomName('VRDisplay.isPresenting')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final bool isPresenting;
+
+ @DomName('VRDisplay.stageParameters')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final VRStageParameters stageParameters;
+
+ @DomName('VRDisplay.cancelAnimationFrame')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void cancelAnimationFrame(int handle) native;
+
+ @DomName('VRDisplay.exitPresent')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future exitPresent() native;
+
+ @DomName('VRDisplay.getEyeParameters')
+ @DocsEditable()
+ @Experimental() // untriaged
+ VREyeParameters getEyeParameters(String whichEye) native;
+
+ @DomName('VRDisplay.getFrameData')
+ @DocsEditable()
+ @Experimental() // untriaged
+ bool getFrameData(VRFrameData frameData) native;
+
+ @DomName('VRDisplay.getLayers')
+ @DocsEditable()
+ @Experimental() // untriaged
+ List<Map> getLayers() native;
+
+ @DomName('VRDisplay.requestAnimationFrame')
+ @DocsEditable()
+ @Experimental() // untriaged
+ int requestAnimationFrame(FrameRequestCallback callback) native;
+
+ @DomName('VRDisplay.requestPresent')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future requestPresent(List<Map> layers) native;
+
+ @DomName('VRDisplay.submitFrame')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void submitFrame() 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('VRDisplayCapabilities')
+@Experimental() // untriaged
+@Native("VRDisplayCapabilities")
+class VRDisplayCapabilities extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory VRDisplayCapabilities._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('VRDisplayCapabilities.canPresent')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final bool canPresent;
+
+ @DomName('VRDisplayCapabilities.hasExternalDisplay')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final bool hasExternalDisplay;
+
+ @DomName('VRDisplayCapabilities.hasPosition')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final bool hasPosition;
+
+ @DomName('VRDisplayCapabilities.maxLayers')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final int maxLayers;
+}
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+@DocsEditable()
+@DomName('VRDisplayEvent')
+@Experimental() // untriaged
+@Native("VRDisplayEvent")
+class VRDisplayEvent extends Event {
+ // To suppress missing implicit constructor warnings.
+ factory VRDisplayEvent._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('VRDisplayEvent.VRDisplayEvent')
+ @DocsEditable()
+ factory VRDisplayEvent(String type, [Map eventInitDict]) {
+ if (eventInitDict != null) {
+ var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+ return VRDisplayEvent._create_1(type, eventInitDict_1);
+ }
+ return VRDisplayEvent._create_2(type);
+ }
+ static VRDisplayEvent _create_1(type, eventInitDict) =>
+ JS('VRDisplayEvent', 'new VRDisplayEvent(#,#)', type, eventInitDict);
+ static VRDisplayEvent _create_2(type) =>
+ JS('VRDisplayEvent', 'new VRDisplayEvent(#)', type);
+
+ @DomName('VRDisplayEvent.display')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final VRDisplay display;
+
+ @DomName('VRDisplayEvent.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
@@ -35909,132 +40450,317 @@
throw new UnsupportedError("Not supported");
}
- @DomName('VREyeParameters.currentFieldOfView')
+ @DomName('VREyeParameters.offset')
@DocsEditable()
@Experimental() // untriaged
- final VRFieldOfView currentFieldOfView;
+ final Float32List offset;
- @DomName('VREyeParameters.eyeTranslation')
+ @DomName('VREyeParameters.renderHeight')
@DocsEditable()
@Experimental() // untriaged
- final DomPoint eyeTranslation;
+ final int renderHeight;
- @DomName('VREyeParameters.maximumFieldOfView')
+ @DomName('VREyeParameters.renderWidth')
@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;
+ final int renderWidth;
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All 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')
+@DomName('VRFrameData')
@Experimental() // untriaged
-@Native("VRFieldOfView")
-class VRFieldOfView extends Interceptor {
+@Native("VRFrameData")
+class VRFrameData extends Interceptor {
// To suppress missing implicit constructor warnings.
- factory VRFieldOfView._() {
+ factory VRFrameData._() {
throw new UnsupportedError("Not supported");
}
- @DomName('VRFieldOfView.VRFieldOfView')
+ @DomName('VRFrameData.VRFrameData')
@DocsEditable()
- factory VRFieldOfView([Map fov]) {
- if (fov != null) {
- var fov_1 = convertDartToNative_Dictionary(fov);
- return VRFieldOfView._create_1(fov_1);
+ factory VRFrameData() {
+ return VRFrameData._create_1();
+ }
+ static VRFrameData _create_1() => JS('VRFrameData', 'new VRFrameData()');
+
+ @DomName('VRFrameData.leftProjectionMatrix')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final Float32List leftProjectionMatrix;
+
+ @DomName('VRFrameData.leftViewMatrix')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final Float32List leftViewMatrix;
+
+ @DomName('VRFrameData.pose')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final VRPose pose;
+
+ @DomName('VRFrameData.rightProjectionMatrix')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final Float32List rightProjectionMatrix;
+
+ @DomName('VRFrameData.rightViewMatrix')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final Float32List rightViewMatrix;
+}
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+@DocsEditable()
+@DomName('VRFrameOfReference')
+@Experimental() // untriaged
+@Native("VRFrameOfReference")
+class VRFrameOfReference extends VRCoordinateSystem {
+ // To suppress missing implicit constructor warnings.
+ factory VRFrameOfReference._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('VRFrameOfReference.bounds')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final VRStageBounds bounds;
+
+ @DomName('VRFrameOfReference.emulatedHeight')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num emulatedHeight;
+}
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+@DocsEditable()
+@DomName('VRPose')
+@Experimental() // untriaged
+@Native("VRPose")
+class VRPose extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory VRPose._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('VRPose.angularAcceleration')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final Float32List angularAcceleration;
+
+ @DomName('VRPose.angularVelocity')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final Float32List angularVelocity;
+
+ @DomName('VRPose.linearAcceleration')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final Float32List linearAcceleration;
+
+ @DomName('VRPose.linearVelocity')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final Float32List linearVelocity;
+
+ @DomName('VRPose.orientation')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final Float32List orientation;
+
+ @DomName('VRPose.position')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final Float32List 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('VRSession')
+@Experimental() // untriaged
+@Native("VRSession")
+class VRSession extends EventTarget {
+ // To suppress missing implicit constructor warnings.
+ factory VRSession._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('VRSession.blurEvent')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const EventStreamProvider<Event> blurEvent =
+ const EventStreamProvider<Event>('blur');
+
+ @DomName('VRSession.focusEvent')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const EventStreamProvider<Event> focusEvent =
+ const EventStreamProvider<Event>('focus');
+
+ @DomName('VRSession.depthFar')
+ @DocsEditable()
+ @Experimental() // untriaged
+ num depthFar;
+
+ @DomName('VRSession.depthNear')
+ @DocsEditable()
+ @Experimental() // untriaged
+ num depthNear;
+
+ @DomName('VRSession.device')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final VRDevice device;
+
+ @DomName('VRSession.exclusive')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final bool exclusive;
+
+ @DomName('VRSession.end')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future end() native;
+
+ @DomName('VRSession.requestFrameOfReference')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future requestFrameOfReference(String type, [Map options]) {
+ if (options != null) {
+ var options_1 = convertDartToNative_Dictionary(options);
+ return _requestFrameOfReference_1(type, options_1);
}
- return VRFieldOfView._create_2();
+ return _requestFrameOfReference_2(type);
}
- static VRFieldOfView _create_1(fov) =>
- JS('VRFieldOfView', 'new VRFieldOfView(#)', fov);
- static VRFieldOfView _create_2() =>
- JS('VRFieldOfView', 'new VRFieldOfView()');
- @DomName('VRFieldOfView.downDegrees')
+ @JSName('requestFrameOfReference')
+ @DomName('VRSession.requestFrameOfReference')
@DocsEditable()
@Experimental() // untriaged
- num downDegrees;
-
- @DomName('VRFieldOfView.leftDegrees')
+ Future _requestFrameOfReference_1(type, options) native;
+ @JSName('requestFrameOfReference')
+ @DomName('VRSession.requestFrameOfReference')
@DocsEditable()
@Experimental() // untriaged
- num leftDegrees;
+ Future _requestFrameOfReference_2(type) native;
- @DomName('VRFieldOfView.rightDegrees')
+ @DomName('VRSession.onblur')
@DocsEditable()
@Experimental() // untriaged
- num rightDegrees;
+ Stream<Event> get onBlur => blurEvent.forTarget(this);
- @DomName('VRFieldOfView.upDegrees')
+ @DomName('VRSession.onfocus')
@DocsEditable()
@Experimental() // untriaged
- num upDegrees;
+ Stream<Event> get onFocus => focusEvent.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('VRPositionState')
+@DomName('VRSessionEvent')
@Experimental() // untriaged
-@Native("VRPositionState")
-class VRPositionState extends Interceptor {
+@Native("VRSessionEvent")
+class VRSessionEvent extends Event {
// To suppress missing implicit constructor warnings.
- factory VRPositionState._() {
+ factory VRSessionEvent._() {
throw new UnsupportedError("Not supported");
}
- @DomName('VRPositionState.angularAcceleration')
+ @DomName('VRSessionEvent.VRSessionEvent')
@DocsEditable()
- @Experimental() // untriaged
- final DomPoint angularAcceleration;
+ factory VRSessionEvent(String type, Map eventInitDict) {
+ var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+ return VRSessionEvent._create_1(type, eventInitDict_1);
+ }
+ static VRSessionEvent _create_1(type, eventInitDict) =>
+ JS('VRSessionEvent', 'new VRSessionEvent(#,#)', type, eventInitDict);
- @DomName('VRPositionState.angularVelocity')
+ @DomName('VRSessionEvent.session')
@DocsEditable()
@Experimental() // untriaged
- final DomPoint angularVelocity;
+ final VRSession session;
+}
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for 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('VRPositionState.linearAcceleration')
- @DocsEditable()
- @Experimental() // untriaged
- final DomPoint linearAcceleration;
+@DocsEditable()
+@DomName('VRStageBounds')
+@Experimental() // untriaged
+@Native("VRStageBounds")
+class VRStageBounds extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory VRStageBounds._() {
+ throw new UnsupportedError("Not supported");
+ }
- @DomName('VRPositionState.linearVelocity')
+ @DomName('VRStageBounds.geometry')
@DocsEditable()
@Experimental() // untriaged
- final DomPoint linearVelocity;
+ final List<VRStageBoundsPoint> geometry;
+}
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for 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('VRPositionState.orientation')
- @DocsEditable()
- @Experimental() // untriaged
- final DomPoint orientation;
+@DocsEditable()
+@DomName('VRStageBoundsPoint')
+@Experimental() // untriaged
+@Native("VRStageBoundsPoint")
+class VRStageBoundsPoint extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory VRStageBoundsPoint._() {
+ throw new UnsupportedError("Not supported");
+ }
- @DomName('VRPositionState.position')
+ @DomName('VRStageBoundsPoint.x')
@DocsEditable()
@Experimental() // untriaged
- final DomPoint position;
+ final num x;
- @DomName('VRPositionState.timeStamp')
+ @DomName('VRStageBoundsPoint.z')
@DocsEditable()
@Experimental() // untriaged
- final double timeStamp;
+ final num 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('VRStageParameters')
+@Experimental() // untriaged
+@Native("VRStageParameters")
+class VRStageParameters extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory VRStageParameters._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('VRStageParameters.sittingToStandingTransform')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final Float32List sittingToStandingTransform;
+
+ @DomName('VRStageParameters.sizeX')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num sizeX;
+
+ @DomName('VRStageParameters.sizeZ')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num sizeZ;
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -36201,7 +40927,7 @@
@DomName('VideoPlaybackQuality.creationTime')
@DocsEditable()
@Experimental() // untriaged
- final double creationTime;
+ final num creationTime;
@DomName('VideoPlaybackQuality.droppedVideoFrames')
@DocsEditable()
@@ -36251,6 +40977,11 @@
@DocsEditable()
@Experimental() // untriaged
bool selected;
+
+ @DomName('VideoTrack.sourceBuffer')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final SourceBuffer sourceBuffer;
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -36301,6 +41032,77 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
+@DocsEditable()
+@DomName('VisualViewport')
+@Experimental() // untriaged
+@Native("VisualViewport")
+class VisualViewport extends EventTarget {
+ // To suppress missing implicit constructor warnings.
+ factory VisualViewport._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('VisualViewport.resizeEvent')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const EventStreamProvider<Event> resizeEvent =
+ const EventStreamProvider<Event>('resize');
+
+ @DomName('VisualViewport.scrollEvent')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const EventStreamProvider<Event> scrollEvent =
+ const EventStreamProvider<Event>('scroll');
+
+ @DomName('VisualViewport.height')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num height;
+
+ @DomName('VisualViewport.offsetLeft')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num offsetLeft;
+
+ @DomName('VisualViewport.offsetTop')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num offsetTop;
+
+ @DomName('VisualViewport.pageLeft')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num pageLeft;
+
+ @DomName('VisualViewport.pageTop')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num pageTop;
+
+ @DomName('VisualViewport.scale')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num scale;
+
+ @DomName('VisualViewport.width')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num width;
+
+ @DomName('VisualViewport.onresize')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Stream<Event> get onResize => resizeEvent.forTarget(this);
+
+ @DomName('VisualViewport.onscroll')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Stream<Event> get onScroll => scrollEvent.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')
@@ -36348,10 +41150,10 @@
@Returns('num|String')
Object position;
- @DomName('VTTCue.regionId')
+ @DomName('VTTCue.region')
@DocsEditable()
@Experimental() // untriaged
- String regionId;
+ VttRegion region;
@DomName('VTTCue.size')
@DocsEditable()
@@ -36400,16 +41202,16 @@
}
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.lines')
+ @DocsEditable()
+ @Experimental() // untriaged
+ int lines;
+
@DomName('VTTRegion.regionAnchorX')
@DocsEditable()
@Experimental() // untriaged
@@ -36425,11 +41227,6 @@
@Experimental() // untriaged
String scroll;
- @DomName('VTTRegion.track')
- @DocsEditable()
- @Experimental() // untriaged
- final TextTrack track;
-
@DomName('VTTRegion.viewportAnchorX')
@DocsEditable()
@Experimental() // untriaged
@@ -36450,35 +41247,6 @@
// 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.
@@ -36793,16 +41561,16 @@
@JSName('deltaX')
@DomName('WheelEvent.deltaX')
@DocsEditable()
- final double _deltaX;
+ final num _deltaX;
@JSName('deltaY')
@DomName('WheelEvent.deltaY')
@DocsEditable()
- final double _deltaY;
+ final num _deltaY;
@DomName('WheelEvent.deltaZ')
@DocsEditable()
- final double deltaZ;
+ final num deltaZ;
/**
* The amount that is expected to scroll vertically, in units determined by
@@ -37356,6 +42124,11 @@
@Experimental()
static const int TEMPORARY = 0;
+ @DomName('Window.animationWorklet')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final _Worklet animationWorklet;
+
/**
* The application cache for this window.
*
@@ -37372,6 +42145,11 @@
@DocsEditable()
final ApplicationCache applicationCache;
+ @DomName('Window.audioWorklet')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final _Worklet audioWorklet;
+
@DomName('Window.caches')
@DocsEditable()
@Experimental() // untriaged
@@ -37381,6 +42159,11 @@
@DocsEditable()
final bool closed;
+ @DomName('Window.cookieStore')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final CookieStore cookieStore;
+
/**
* Entrypoint for the browser's cryptographic functions.
*
@@ -37394,6 +42177,11 @@
@Experimental()
final Crypto crypto;
+ @DomName('Window.customElements')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final CustomElementRegistry customElements;
+
/// *Deprecated*.
@DomName('Window.defaultStatus')
@DocsEditable()
@@ -37420,7 +42208,12 @@
@DocsEditable()
// http://www.quirksmode.org/blog/archives/2012/06/devicepixelrati.html
@Experimental() // non-standard
- final double devicePixelRatio;
+ final num devicePixelRatio;
+
+ @DomName('Window.external')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final External external;
/**
* The current session history for this window's newest document.
@@ -37562,6 +42355,11 @@
@Experimental() // untriaged
final int orientation;
+ @DomName('Window.origin')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String origin;
+
/**
* The height of this window including all user interface elements.
*
@@ -37602,7 +42400,7 @@
*/
@DomName('Window.pageXOffset')
@DocsEditable()
- final double _pageXOffset;
+ final num _pageXOffset;
@JSName('pageYOffset')
/**
@@ -37620,7 +42418,7 @@
*/
@DomName('Window.pageYOffset')
@DocsEditable()
- final double _pageYOffset;
+ final num _pageYOffset;
@DomName('Window.parent')
@DocsEditable()
@@ -37650,11 +42448,6 @@
@SupportedBrowser(SupportedBrowser.IE)
final Performance performance;
- @DomName('Window.renderWorklet')
- @DocsEditable()
- @Experimental() // untriaged
- final _Worklet renderWorklet;
-
/**
* Information about the screen displaying this window.
*
@@ -37843,6 +42636,11 @@
@Returns('Window|=Object')
final dynamic _get_top;
+ @DomName('Window.visualViewport')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final VisualViewport visualViewport;
+
/**
* The current window.
*
@@ -37968,7 +42766,13 @@
@JSName('getComputedStyle')
@DomName('Window.getComputedStyle')
@DocsEditable()
- CssStyleDeclaration _getComputedStyle(Element elt, String pseudoElt) native;
+ CssStyleDeclaration _getComputedStyle(Element elt, [String pseudoElt]) native;
+
+ @DomName('Window.getComputedStyleMap')
+ @DocsEditable()
+ @Experimental() // untriaged
+ StylePropertyMapReadonly getComputedStyleMap(
+ Element element, String pseudoElement) native;
@JSName('getMatchedCSSRules')
/**
@@ -38047,7 +42851,7 @@
@DomName('Window.postMessage')
@DocsEditable()
void postMessage(/*any*/ message, String targetOrigin,
- [List<MessagePort> transfer]) {
+ [List<Object> transfer]) {
if (transfer != null) {
var message_1 = convertDartToNative_SerializedScriptValue(message);
_postMessage_1(message_1, targetOrigin, transfer);
@@ -38061,7 +42865,7 @@
@JSName('postMessage')
@DomName('Window.postMessage')
@DocsEditable()
- void _postMessage_1(message, targetOrigin, List<MessagePort> transfer) native;
+ void _postMessage_1(message, targetOrigin, List<Object> transfer) native;
@JSName('postMessage')
@DomName('Window.postMessage')
@DocsEditable()
@@ -38971,6 +43775,10 @@
@DomName('Window.onbeforeunload')
Stream<Event> get onBeforeUnload => beforeUnloadEvent.forTarget(this);
+ /// Stream of `wheel` events handled by this [Window].
+ @DomName('Window.onWheel')
+ Stream<WheelEvent> get onWheel => Element.wheelEvent.forTarget(this);
+
/**
* Moves this window to a specific position.
*
@@ -39301,26 +44109,7 @@
@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;
+ void postMessage(Object message, [List<Object> transfer]) native;
@DomName('Worker.terminate')
@DocsEditable()
@@ -39342,20 +44131,6 @@
// 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")
@@ -39378,16 +44153,16 @@
static const EventStreamProvider<Event> errorEvent =
const EventStreamProvider<Event>('error');
+ @DomName('WorkerGlobalScope.addressSpace')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String addressSpace;
+
@DomName('WorkerGlobalScope.caches')
@DocsEditable()
@Experimental() // untriaged
final CacheStorage caches;
- @DomName('WorkerGlobalScope.console')
- @DocsEditable()
- @Experimental() // untriaged
- final WorkerConsole console;
-
@DomName('WorkerGlobalScope.crypto')
@DocsEditable()
@Experimental() // untriaged
@@ -39398,6 +44173,11 @@
@Experimental() // untriaged
final IdbFactory indexedDB;
+ @DomName('WorkerGlobalScope.isSecureContext')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final bool isSecureContext;
+
@DomName('WorkerGlobalScope.location')
@DocsEditable()
@Experimental() // untriaged
@@ -39408,6 +44188,11 @@
@Experimental() // untriaged
final _WorkerNavigator navigator;
+ @DomName('WorkerGlobalScope.origin')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String origin;
+
@DomName('WorkerGlobalScope.performance')
@DocsEditable()
@Experimental() // untriaged
@@ -39418,11 +44203,6 @@
@Experimental() // untriaged
final WorkerGlobalScope self;
- @DomName('WorkerGlobalScope.close')
- @DocsEditable()
- @Experimental() // untriaged
- void close() native;
-
@DomName('WorkerGlobalScope.fetch')
@DocsEditable()
@Experimental() // untriaged
@@ -39527,6 +44307,11 @@
@Experimental() // untriaged
final MemoryInfo memory;
+ @DomName('WorkerPerformance.timeOrigin')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num timeOrigin;
+
@DomName('WorkerPerformance.clearMarks')
@DocsEditable()
@Experimental() // untriaged
@@ -39582,6 +44367,65 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('WorkletAnimation')
+@Experimental() // untriaged
+@Native("WorkletAnimation")
+class WorkletAnimation extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory WorkletAnimation._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('WorkletAnimation.WorkletAnimation')
+ @DocsEditable()
+ factory WorkletAnimation(
+ String animatorName,
+ List<KeyframeEffectReadOnly> effects,
+ List<Object> timelines,
+ /*SerializedScriptValue*/ options) {
+ var options_1 = convertDartToNative_SerializedScriptValue(options);
+ return WorkletAnimation._create_1(
+ animatorName, effects, timelines, options_1);
+ }
+ static WorkletAnimation _create_1(
+ animatorName, effects, timelines, options) =>
+ JS('WorkletAnimation', 'new WorkletAnimation(#,#,#,#)', animatorName,
+ effects, timelines, options);
+
+ @DomName('WorkletAnimation.playState')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String playState;
+
+ @DomName('WorkletAnimation.cancel')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void cancel() native;
+
+ @DomName('WorkletAnimation.play')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void play() 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('WorkletGlobalScope')
+@Experimental() // untriaged
+@Native("WorkletGlobalScope")
+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.
+
+@DocsEditable()
@DomName('XPathEvaluator')
// http://www.w3.org/TR/DOM-Level-3-XPath/xpath.html#XPathEvaluator
@deprecated // experimental
@@ -39719,7 +44563,7 @@
@DomName('XPathResult.numberValue')
@DocsEditable()
- final double numberValue;
+ final num numberValue;
@DomName('XPathResult.resultType')
@DocsEditable()
@@ -39875,9 +44719,6 @@
@Experimental() // untriaged
final String _namespaceUri;
- // Use implementation from Node.
- // final String nodeValue;
-
@DomName('Attr.value')
@DocsEditable()
String value;
@@ -39901,20 +44742,6 @@
// 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")
@@ -39999,6 +44826,35 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('BudgetService')
+@Experimental() // untriaged
+@Native("BudgetService")
+class _BudgetService extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory _BudgetService._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('BudgetService.getBudget')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future getBudget() native;
+
+ @DomName('BudgetService.getCost')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future getCost(String operation) native;
+
+ @DomName('BudgetService.reserve')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future reserve(String operation) 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('Cache')
@Experimental() // untriaged
@Native("Cache")
@@ -40013,247 +44869,46 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
-@DomName('CanvasPathMethods')
+@DomName('CanvasPath')
@Experimental() // untriaged
-abstract class _CanvasPathMethods extends Interceptor {
+abstract class _CanvasPath extends Interceptor {
// To suppress missing implicit constructor warnings.
- factory _CanvasPathMethods._() {
+ factory _CanvasPath._() {
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(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(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> {
+@DomName('Clipboard')
+@Native("Clipboard")
+class _Clipboard extends EventTarget {
// To suppress missing implicit constructor warnings.
- factory _ClientRectList._() {
+ factory _Clipboard._() {
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__')
+ @DomName('Clipboard.read')
@DocsEditable()
@Experimental() // untriaged
- Rectangle __getter__(int index) native;
+ Future read() native;
- @DomName('ClientRectList.item')
+ @DomName('Clipboard.readText')
@DocsEditable()
- Rectangle item(int index) native;
+ @Experimental() // untriaged
+ Future readText() native;
+
+ @DomName('Clipboard.write')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future write(DataTransfer data) native;
+
+ @DomName('Clipboard.writeText')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future writeText(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
@@ -40386,7 +45041,7 @@
}
-// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// 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.
@@ -40394,7 +45049,96 @@
@DomName('DOMRect')
@Experimental() // untriaged
@Native("DOMRect")
-class _DomRect extends DomRectReadOnly {
+class _DomRect extends DomRectReadOnly 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(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(this.left, this.top + this.height);
+
// To suppress missing implicit constructor warnings.
factory _DomRect._() {
throw new UnsupportedError("Not supported");
@@ -40452,6 +45196,65 @@
set y(num value) {
JS("void", "#.y = #", this, value);
}
+
+ @DomName('DOMRect.fromRect')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static Rectangle fromRect([Map other]) {
+ if (other != null) {
+ var other_1 = convertDartToNative_Dictionary(other);
+ return _fromRect_1(other_1);
+ }
+ return _fromRect_2();
+ }
+
+ @JSName('fromRect')
+ @DomName('DOMRect.fromRect')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static Rectangle _fromRect_1(other) native;
+ @JSName('fromRect')
+ @DomName('DOMRect.fromRect')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static Rectangle _fromRect_2() native;
+}
+
+/**
+ * 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
@@ -40721,6 +45524,111 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('Mojo')
+@Experimental() // untriaged
+@Native("Mojo")
+abstract class _Mojo extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory _Mojo._() {
+ 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('MojoHandle')
+@Experimental() // untriaged
+@Native("MojoHandle")
+abstract class _MojoHandle extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory _MojoHandle._() {
+ 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('MojoInterfaceInterceptor')
+@Experimental() // untriaged
+@Native("MojoInterfaceInterceptor")
+abstract class _MojoInterfaceInterceptor extends EventTarget {
+ // To suppress missing implicit constructor warnings.
+ factory _MojoInterfaceInterceptor._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('MojoInterfaceInterceptor.MojoInterfaceInterceptor')
+ @DocsEditable()
+ factory _MojoInterfaceInterceptor(String interfaceName, [String scope]) {
+ if (scope != null) {
+ return _MojoInterfaceInterceptor._create_1(interfaceName, scope);
+ }
+ return _MojoInterfaceInterceptor._create_2(interfaceName);
+ }
+ static _MojoInterfaceInterceptor _create_1(interfaceName, scope) => JS(
+ '_MojoInterfaceInterceptor',
+ 'new MojoInterfaceInterceptor(#,#)',
+ interfaceName,
+ scope);
+ static _MojoInterfaceInterceptor _create_2(interfaceName) => JS(
+ '_MojoInterfaceInterceptor',
+ 'new MojoInterfaceInterceptor(#)',
+ interfaceName);
+}
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+@DocsEditable()
+@DomName('MojoInterfaceRequestEvent')
+@Experimental() // untriaged
+@Native("MojoInterfaceRequestEvent")
+abstract class _MojoInterfaceRequestEvent extends Event {
+ // To suppress missing implicit constructor warnings.
+ factory _MojoInterfaceRequestEvent._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('MojoInterfaceRequestEvent.MojoInterfaceRequestEvent')
+ @DocsEditable()
+ factory _MojoInterfaceRequestEvent(String type, [Map eventInitDict]) {
+ if (eventInitDict != null) {
+ var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+ return _MojoInterfaceRequestEvent._create_1(type, eventInitDict_1);
+ }
+ return _MojoInterfaceRequestEvent._create_2(type);
+ }
+ static _MojoInterfaceRequestEvent _create_1(type, eventInitDict) => JS(
+ '_MojoInterfaceRequestEvent',
+ 'new MojoInterfaceRequestEvent(#,#)',
+ type,
+ eventInitDict);
+ static _MojoInterfaceRequestEvent _create_2(type) => JS(
+ '_MojoInterfaceRequestEvent', 'new MojoInterfaceRequestEvent(#)', 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('MojoWatcher')
+@Experimental() // untriaged
+@Native("MojoWatcher")
+abstract class _MojoWatcher extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory _MojoWatcher._() {
+ 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('NFC')
@Experimental() // untriaged
@Native("NFC")
@@ -40849,6 +45757,35 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('Report')
+@Experimental() // untriaged
+@Native("Report")
+class _Report extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory _Report._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('Report.body')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final ReportBody body;
+
+ @DomName('Report.type')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String type;
+
+ @DomName('Report.url')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String url;
+}
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All 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")
@@ -40871,6 +45808,11 @@
JS('_Request', 'new Request(#,#)', input, requestInitDict);
static _Request _create_2(input) => JS('_Request', 'new Request(#)', input);
+ @DomName('Request.cache')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String cache;
+
@DomName('Request.credentials')
@DocsEditable()
@Experimental() // untriaged
@@ -40901,6 +45843,11 @@
@Experimental() // untriaged
final String referrer;
+ @DomName('Request.referrerPolicy')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String referrerPolicy;
+
@DomName('Request.url')
@DocsEditable()
@Experimental() // untriaged
@@ -40942,18 +45889,18 @@
@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);
+ factory _Response([Object body, Map init]) {
+ if (init != null) {
+ var init_1 = convertDartToNative_Dictionary(init);
+ return _Response._create_1(body, init_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_1(body, init) =>
+ JS('_Response', 'new Response(#,#)', body, init);
static _Response _create_2(body) => JS('_Response', 'new Response(#)', body);
static _Response _create_3() => JS('_Response', 'new Response()');
}
@@ -41207,20 +46154,15 @@
@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);
+ factory _USBConnectionEvent(String type, Map eventInitDict) {
+ var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+ return _USBConnectionEvent._create_1(type, eventInitDict_1);
}
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
@@ -41276,6 +46218,19 @@
factory _USBInTransferResult._() {
throw new UnsupportedError("Not supported");
}
+
+ @DomName('USBInTransferResult.USBInTransferResult')
+ @DocsEditable()
+ factory _USBInTransferResult(String status, [ByteData data]) {
+ if (data != null) {
+ return _USBInTransferResult._create_1(status, data);
+ }
+ return _USBInTransferResult._create_2(status);
+ }
+ static _USBInTransferResult _create_1(status, data) =>
+ JS('_USBInTransferResult', 'new USBInTransferResult(#,#)', status, data);
+ static _USBInTransferResult _create_2(status) =>
+ JS('_USBInTransferResult', 'new USBInTransferResult(#)', status);
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -41312,6 +46267,24 @@
factory _USBIsochronousInTransferPacket._() {
throw new UnsupportedError("Not supported");
}
+
+ @DomName('USBIsochronousInTransferPacket.USBIsochronousInTransferPacket')
+ @DocsEditable()
+ factory _USBIsochronousInTransferPacket(String status, [ByteData data]) {
+ if (data != null) {
+ return _USBIsochronousInTransferPacket._create_1(status, data);
+ }
+ return _USBIsochronousInTransferPacket._create_2(status);
+ }
+ static _USBIsochronousInTransferPacket _create_1(status, data) => JS(
+ '_USBIsochronousInTransferPacket',
+ 'new USBIsochronousInTransferPacket(#,#)',
+ status,
+ data);
+ static _USBIsochronousInTransferPacket _create_2(status) => JS(
+ '_USBIsochronousInTransferPacket',
+ 'new USBIsochronousInTransferPacket(#)',
+ status);
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -41326,6 +46299,26 @@
factory _USBIsochronousInTransferResult._() {
throw new UnsupportedError("Not supported");
}
+
+ @DomName('USBIsochronousInTransferResult.USBIsochronousInTransferResult')
+ @DocsEditable()
+ factory _USBIsochronousInTransferResult(
+ List<_USBIsochronousInTransferPacket> packets,
+ [ByteData data]) {
+ if (data != null) {
+ return _USBIsochronousInTransferResult._create_1(packets, data);
+ }
+ return _USBIsochronousInTransferResult._create_2(packets);
+ }
+ static _USBIsochronousInTransferResult _create_1(packets, data) => JS(
+ '_USBIsochronousInTransferResult',
+ 'new USBIsochronousInTransferResult(#,#)',
+ packets,
+ data);
+ static _USBIsochronousInTransferResult _create_2(packets) => JS(
+ '_USBIsochronousInTransferResult',
+ 'new USBIsochronousInTransferResult(#)',
+ packets);
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -41340,6 +46333,24 @@
factory _USBIsochronousOutTransferPacket._() {
throw new UnsupportedError("Not supported");
}
+
+ @DomName('USBIsochronousOutTransferPacket.USBIsochronousOutTransferPacket')
+ @DocsEditable()
+ factory _USBIsochronousOutTransferPacket(String status, [int bytesWritten]) {
+ if (bytesWritten != null) {
+ return _USBIsochronousOutTransferPacket._create_1(status, bytesWritten);
+ }
+ return _USBIsochronousOutTransferPacket._create_2(status);
+ }
+ static _USBIsochronousOutTransferPacket _create_1(status, bytesWritten) => JS(
+ '_USBIsochronousOutTransferPacket',
+ 'new USBIsochronousOutTransferPacket(#,#)',
+ status,
+ bytesWritten);
+ static _USBIsochronousOutTransferPacket _create_2(status) => JS(
+ '_USBIsochronousOutTransferPacket',
+ 'new USBIsochronousOutTransferPacket(#)',
+ status);
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -41354,6 +46365,17 @@
factory _USBIsochronousOutTransferResult._() {
throw new UnsupportedError("Not supported");
}
+
+ @DomName('USBIsochronousOutTransferResult.USBIsochronousOutTransferResult')
+ @DocsEditable()
+ factory _USBIsochronousOutTransferResult(
+ List<_USBIsochronousOutTransferPacket> packets) {
+ return _USBIsochronousOutTransferResult._create_1(packets);
+ }
+ static _USBIsochronousOutTransferResult _create_1(packets) => JS(
+ '_USBIsochronousOutTransferResult',
+ 'new USBIsochronousOutTransferResult(#)',
+ packets);
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -41368,37 +46390,22 @@
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')
+ @DomName('USBOutTransferResult.USBOutTransferResult')
@DocsEditable()
- factory _WebKitCSSMatrix([String cssValue]) {
- if (cssValue != null) {
- return _WebKitCSSMatrix._create_1(cssValue);
+ factory _USBOutTransferResult(String status, [int bytesWritten]) {
+ if (bytesWritten != null) {
+ return _USBOutTransferResult._create_1(status, bytesWritten);
}
- return _WebKitCSSMatrix._create_2();
+ return _USBOutTransferResult._create_2(status);
}
- static _WebKitCSSMatrix _create_1(cssValue) =>
- JS('_WebKitCSSMatrix', 'new WebKitCSSMatrix(#)', cssValue);
- static _WebKitCSSMatrix _create_2() =>
- JS('_WebKitCSSMatrix', 'new WebKitCSSMatrix()');
+ static _USBOutTransferResult _create_1(status, bytesWritten) => JS(
+ '_USBOutTransferResult',
+ 'new USBOutTransferResult(#,#)',
+ status,
+ bytesWritten);
+ static _USBOutTransferResult _create_2(status) =>
+ JS('_USBOutTransferResult', 'new USBOutTransferResult(#)', status);
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -41453,15 +46460,13 @@
// 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 {
+abstract class _WorkerNavigator extends NavigatorConcurrentHardware
+ implements NavigatorOnLine, NavigatorID {
// To suppress missing implicit constructor warnings.
factory _WorkerNavigator._() {
throw new UnsupportedError("Not supported");
}
- // From NavigatorCPU
-
// From NavigatorID
// From NavigatorOnLine
@@ -41486,20 +46491,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.
-@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 extends MapBase<String, String> {
final Element _element;
@@ -45672,6 +50663,108 @@
T get current => _current;
}
+// 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 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', 'window.console.memory') : null;
+
+ @DomName('Console.assertCondition')
+ void assertCondition(bool condition, Object arg) => _isConsoleDefined
+ ? JS('void', 'window.console.assertCondition(#, #)', condition, arg)
+ : null;
+
+ @DomName('Console.clear')
+ void clear(Object arg) =>
+ _isConsoleDefined ? JS('void', 'window.console.clear(#)', arg) : null;
+
+ @DomName('Console.count')
+ void count(Object arg) =>
+ _isConsoleDefined ? JS('void', 'window.console.count(#)', arg) : null;
+
+ @DomName('Console.debug')
+ void debug(Object arg) =>
+ _isConsoleDefined ? JS('void', 'window.console.debug(#)', arg) : null;
+
+ @DomName('Console.dir')
+ void dir(Object arg) =>
+ _isConsoleDefined ? JS('void', 'window.console.dir(#)', arg) : null;
+
+ @DomName('Console.dirxml')
+ void dirxml(Object arg) =>
+ _isConsoleDefined ? JS('void', 'window.console.dirxml(#)', arg) : null;
+
+ @DomName('Console.error')
+ void error(Object arg) =>
+ _isConsoleDefined ? JS('void', 'window.console.error(#)', arg) : null;
+
+ @DomName('Console.group')
+ void group(Object arg) =>
+ _isConsoleDefined ? JS('void', 'window.console.group(#)', arg) : null;
+
+ @DomName('Console.groupCollapsed')
+ void groupCollapsed(Object arg) => _isConsoleDefined
+ ? JS('void', 'window.console.groupCollapsed(#)', arg)
+ : null;
+
+ @DomName('Console.groupEnd')
+ void groupEnd() =>
+ _isConsoleDefined ? JS('void', 'window.console.groupEnd()') : null;
+
+ @DomName('Console.info')
+ void info(Object arg) =>
+ _isConsoleDefined ? JS('void', 'window.console.info(#)', arg) : null;
+
+ @DomName('Console.log')
+ void log(Object arg) =>
+ _isConsoleDefined ? JS('void', 'window.console.log(#)', arg) : null;
+
+ @DomName('Console.markTimeline')
+ void markTimeline(Object arg) => _isConsoleDefined
+ ? JS('void', 'window.console.markTimeline(#)', arg)
+ : null;
+
+ @DomName('Console.profile')
+ void profile(String title) =>
+ _isConsoleDefined ? JS('void', 'window.console.profile(#)', title) : null;
+
+ @DomName('Console.profileEnd')
+ void profileEnd(String title) => _isConsoleDefined
+ ? JS('void', 'window.console.profileEnd(#)', title)
+ : null;
+
+ @DomName('Console.table')
+ void table(Object arg) =>
+ _isConsoleDefined ? JS('void', 'window.console.table(#)', arg) : null;
+
+ @DomName('Console.time')
+ void time(String title) =>
+ _isConsoleDefined ? JS('void', 'window.console.time(#)', title) : null;
+
+ @DomName('Console.timeEnd')
+ void timeEnd(String title) =>
+ _isConsoleDefined ? JS('void', 'window.console.timeEnd(#)', title) : null;
+
+ @DomName('Console.timeStamp')
+ void timeStamp(Object arg) =>
+ _isConsoleDefined ? JS('void', 'window.console.timeStamp(#)', arg) : null;
+
+ @DomName('Console.trace')
+ void trace(Object arg) =>
+ _isConsoleDefined ? JS('void', 'window.console.trace(#)', arg) : null;
+
+ @DomName('Console.warn')
+ void warn(Object arg) =>
+ _isConsoleDefined ? JS('void', 'window.console.warn(#)', arg) : null;
+}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
@@ -45785,8 +50878,7 @@
}
}
-void _registerCustomElement(
- context, document, String tag, Type type, String extendsTagName) {
+Function _registerCustomElement(context, document, String tag, [Map options]) {
// Function follows the same pattern as the following JavaScript code for
// registering a custom element.
//
@@ -45801,6 +50893,13 @@
// ...
// var e = document.createElement('x-foo');
+ var extendsTagName = '';
+ Type type;
+ if (options != null) {
+ extendsTagName = options['extends'];
+ type = options['prototype'];
+ }
+
var interceptorClass = findInterceptorConstructorForType(type);
if (interceptorClass == null) {
throw new ArgumentError(type);
@@ -45854,13 +50953,13 @@
setNativeSubclassDispatchRecord(proto, interceptor);
- var options = JS('=Object', '{prototype: #}', proto);
+ var opts = JS('=Object', '{prototype: #}', proto);
if (extendsTagName != null) {
- JS('=Object', '#.extends = #', options, extendsTagName);
+ JS('=Object', '#.extends = #', opts, extendsTagName);
}
- JS('void', '#.registerElement(#, #)', document, tag, options);
+ return JS('=Object', '#.registerElement(#, #)', document, tag, opts);
}
//// Called by Element.created to do validation & initialization.
@@ -46245,6 +51344,7 @@
/** True if the ctrl key is pressed during this event. */
bool get ctrlKey => _parent.ctrlKey;
int get detail => _parent.detail;
+ bool get isComposing => _parent.isComposing;
String get key => _parent.key;
/**
* Accessor to the part of the keyboard that the key was pressed from (one of
@@ -46292,6 +51392,7 @@
@Experimental() // untriaged
bool get repeat => throw new UnimplementedError();
+ bool get isComposed => throw new UnimplementedError();
dynamic get _get_view => throw new UnimplementedError();
}
// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
@@ -46332,11 +51433,9 @@
bool get cancelable => wrapped.cancelable;
- EventTarget get currentTarget => wrapped.currentTarget;
+ bool get composed => wrapped.composed;
- List<EventTarget> deepPath() {
- return wrapped.deepPath();
- }
+ EventTarget get currentTarget => wrapped.currentTarget;
bool get defaultPrevented => wrapped.defaultPrevented;
@@ -46344,15 +51443,13 @@
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) {
+ void _initEvent(String type, [bool bubbles, bool cancelable]) {
throw new UnsupportedError('Cannot initialize this Event.');
}
@@ -46368,6 +51465,8 @@
wrapped.stopPropagation();
}
+ List<EventTarget> composedPath() => wrapped.composedPath();
+
/**
* 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,
diff --git a/sdk/lib/indexed_db/dart2js/indexed_db_dart2js.dart b/sdk/lib/indexed_db/dart2js/indexed_db_dart2js.dart
index 715037b..7edd685 100644
--- a/sdk/lib/indexed_db/dart2js/indexed_db_dart2js.dart
+++ b/sdk/lib/indexed_db/dart2js/indexed_db_dart2js.dart
@@ -512,6 +512,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.
+// WARNING: Do not edit - generated code.
+
+@DomName('IDBObserverCallback')
+@Experimental() // untriaged
+typedef void ObserverCallback(ObserverChanges changes);
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for 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')
@@ -579,21 +588,9 @@
}
}
- @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.
+ * TODO(terry): Should be able to always return false?
*/
bool get supportsDatabaseNames {
return supported &&
@@ -622,17 +619,6 @@
@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;
}
/**
@@ -762,7 +748,7 @@
@DomName('IDBIndex.name')
@DocsEditable()
- final String name;
+ String name;
@DomName('IDBIndex.objectStore')
@DocsEditable()
@@ -788,12 +774,12 @@
@DomName('IDBIndex.getAll')
@DocsEditable()
@Experimental() // untriaged
- Request getAll(Object range, [int maxCount]) native;
+ Request getAll(Object query, [int count]) native;
@DomName('IDBIndex.getAllKeys')
@DocsEditable()
@Experimental() // untriaged
- Request getAllKeys(Object range, [int maxCount]) native;
+ Request getAllKeys(Object query, [int count]) native;
@JSName('getKey')
@DomName('IDBIndex.getKey')
@@ -875,6 +861,11 @@
static KeyRange bound_(Object lower, Object upper,
[bool lowerOpen, bool upperOpen]) native;
+ @DomName('IDBKeyRange.includes')
+ @DocsEditable()
+ @Experimental() // untriaged
+ bool includes(Object key) native;
+
@JSName('lowerBound')
@DomName('IDBKeyRange.lowerBound')
@DocsEditable()
@@ -1046,7 +1037,7 @@
@DomName('IDBObjectStore.name')
@DocsEditable()
- final String name;
+ String name;
@DomName('IDBObjectStore.transaction')
@DocsEditable()
@@ -1131,12 +1122,17 @@
@DomName('IDBObjectStore.getAll')
@DocsEditable()
@Experimental() // untriaged
- Request getAll(Object range, [int maxCount]) native;
+ Request getAll(Object query, [int count]) native;
@DomName('IDBObjectStore.getAllKeys')
@DocsEditable()
@Experimental() // untriaged
- Request getAllKeys(Object range, [int maxCount]) native;
+ Request getAllKeys(Object query, [int count]) native;
+
+ @DomName('IDBObjectStore.getKey')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Request getKey(Object key) native;
@DomName('IDBObjectStore.index')
@DocsEditable()
@@ -1217,6 +1213,106 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('IDBObservation')
+@Experimental() // untriaged
+@Native("IDBObservation")
+class Observation extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory Observation._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('IDBObservation.key')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final Object key;
+
+ @DomName('IDBObservation.type')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String type;
+
+ @DomName('IDBObservation.value')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final Object 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('IDBObserver')
+@Experimental() // untriaged
+@Native("IDBObserver")
+class Observer extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory Observer._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('IDBObserver.IDBObserver')
+ @DocsEditable()
+ factory Observer(ObserverCallback callback) {
+ return Observer._create_1(callback);
+ }
+ static Observer _create_1(callback) =>
+ JS('Observer', 'new IDBObserver(#)', callback);
+
+ @DomName('IDBObserver.observe')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void observe(Database db, Transaction tx, Map options) {
+ var options_1 = convertDartToNative_Dictionary(options);
+ _observe_1(db, tx, options_1);
+ return;
+ }
+
+ @JSName('observe')
+ @DomName('IDBObserver.observe')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void _observe_1(Database db, Transaction tx, options) native;
+
+ @DomName('IDBObserver.unobserve')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void unobserve(Database db) 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('IDBObserverChanges')
+@Experimental() // untriaged
+@Native("IDBObserverChanges")
+class ObserverChanges extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory ObserverChanges._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('IDBObserverChanges.database')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final Database database;
+
+ @DomName('IDBObserverChanges.records')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final Object records;
+
+ @DomName('IDBObserverChanges.transaction')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final Transaction 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.
+
+@DocsEditable()
@DomName('IDBOpenDBRequest')
@Unstable()
@Native("IDBOpenDBRequest,IDBVersionChangeRequest")
diff --git a/sdk/lib/io/file.dart b/sdk/lib/io/file.dart
index e1a9825..b881bbe 100644
--- a/sdk/lib/io/file.dart
+++ b/sdk/lib/io/file.dart
@@ -609,10 +609,10 @@
*/
abstract class RandomAccessFile {
/**
- * Closes the file. Returns a `Future<RandomAccessFile>` that
- * completes with this RandomAccessFile when it has been closed.
+ * Closes the file. Returns a `Future` that
+ * completes when it has been closed.
*/
- Future<RandomAccessFile> close();
+ Future<void> close();
/**
* Synchronously closes the file.
diff --git a/sdk/lib/io/file_impl.dart b/sdk/lib/io/file_impl.dart
index c0a0543..a64fdc2 100644
--- a/sdk/lib/io/file_impl.dart
+++ b/sdk/lib/io/file_impl.dart
@@ -685,15 +685,13 @@
}
}
- Future<RandomAccessFile> close() {
+ Future<void> close() {
return _dispatch(_FILE_CLOSE, [null], markClosed: true).then((result) {
- if (result != -1) {
- closed = closed || (result == 0);
- _maybePerformCleanup();
- return this;
- } else {
+ if (result == -1) {
throw new FileSystemException("Cannot close file", path);
}
+ closed = closed || (result == 0);
+ _maybePerformCleanup();
});
}
diff --git a/sdk/lib/svg/dart2js/svg_dart2js.dart b/sdk/lib/svg/dart2js/svg_dart2js.dart
index e782763..fb3da8b 100644
--- a/sdk/lib/svg/dart2js/svg_dart2js.dart
+++ b/sdk/lib/svg/dart2js/svg_dart2js.dart
@@ -370,7 +370,7 @@
@DomName('SVGAnimatedNumber.animVal')
@DocsEditable()
- final double animVal;
+ final num animVal;
@DomName('SVGAnimatedNumber.baseVal')
@DocsEditable()
@@ -549,10 +549,6 @@
@DocsEditable()
final StringList requiredExtensions;
- @DomName('SVGAnimationElement.requiredFeatures')
- @DocsEditable()
- final StringList requiredFeatures;
-
@DomName('SVGAnimationElement.systemLanguage')
@DocsEditable()
final StringList systemLanguage;
@@ -2543,6 +2539,21 @@
*/
GeometryElement.created() : super.created();
+ @DomName('SVGGeometryElement.pathLength')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final AnimatedNumber pathLength;
+
+ @DomName('SVGGeometryElement.getPointAtLength')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Point getPointAtLength(num distance) native;
+
+ @DomName('SVGGeometryElement.getTotalLength')
+ @DocsEditable()
+ @Experimental() // untriaged
+ double getTotalLength() native;
+
@DomName('SVGGeometryElement.isPointInFill')
@DocsEditable()
@Experimental() // untriaged
@@ -2612,11 +2623,6 @@
@Experimental() // untriaged
final StringList requiredExtensions;
- @DomName('SVGGraphicsElement.requiredFeatures')
- @DocsEditable()
- @Experimental() // untriaged
- final StringList requiredFeatures;
-
@DomName('SVGGraphicsElement.systemLanguage')
@DocsEditable()
@Experimental() // untriaged
@@ -2647,6 +2653,11 @@
*/
ImageElement.created() : super.created();
+ @DomName('SVGImageElement.async')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String async;
+
@DomName('SVGImageElement.height')
@DocsEditable()
final AnimatedLength height;
@@ -2667,6 +2678,11 @@
@DocsEditable()
final AnimatedLength y;
+ @DomName('SVGImageElement.decode')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future decode() native;
+
// From SVGURIReference
@DomName('SVGImageElement.href')
@@ -3088,10 +3104,6 @@
@DocsEditable()
final StringList requiredExtensions;
- @DomName('SVGMaskElement.requiredFeatures')
- @DocsEditable()
- final StringList requiredFeatures;
-
@DomName('SVGMaskElement.systemLanguage')
@DocsEditable()
final StringList systemLanguage;
@@ -3341,22 +3353,6 @@
* 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
@@ -3428,10 +3424,6 @@
@DocsEditable()
final StringList requiredExtensions;
- @DomName('SVGPatternElement.requiredFeatures')
- @DocsEditable()
- final StringList requiredFeatures;
-
@DomName('SVGPatternElement.systemLanguage')
@DocsEditable()
final StringList systemLanguage;
@@ -4077,7 +4069,7 @@
@DomName('SVGElement')
@Unstable()
@Native("SVGElement")
-class SvgElement extends Element implements GlobalEventHandlers {
+class SvgElement extends Element implements GlobalEventHandlers, NoncedElement {
static final _START_TAG_REGEXP = new RegExp('<(\\w+)');
factory SvgElement.tag(String tag) =>
@@ -4528,6 +4520,12 @@
@Experimental() // untriaged
static const EventStreamProvider<Event> waitingEvent =
const EventStreamProvider<Event>('waiting');
+
+ @DomName('SVGElement.wheelEvent')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const EventStreamProvider<WheelEvent> wheelEvent =
+ const EventStreamProvider<WheelEvent>('wheel');
/**
* Constructor instantiated by the DOM when a custom element has been created.
*
@@ -4563,6 +4561,13 @@
@Experimental() // untriaged
void focus() native;
+ // From NoncedElement
+
+ @DomName('SVGElement.nonce')
+ @DocsEditable()
+ @Experimental() // untriaged
+ String nonce;
+
@DomName('SVGElement.onabort')
@DocsEditable()
@Experimental() // untriaged
@@ -4851,6 +4856,11 @@
@DocsEditable()
@Experimental() // untriaged
ElementStream<Event> get onWaiting => waitingEvent.forElement(this);
+
+ @DomName('SVGElement.onwheel')
+ @DocsEditable()
+ @Experimental() // untriaged
+ ElementStream<WheelEvent> get onWheel => wheelEvent.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
@@ -4887,22 +4897,10 @@
@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;
@@ -5135,8 +5133,6 @@
final StringList requiredExtensions;
- final StringList requiredFeatures;
-
final StringList systemLanguage;
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
@@ -5411,7 +5407,7 @@
@DomName('SVGTransform.angle')
@DocsEditable()
- final double angle;
+ final num angle;
@DomName('SVGTransform.matrix')
@DocsEditable()
@@ -5668,10 +5664,6 @@
*/
ViewElement.created() : super.created();
- @DomName('SVGViewElement.viewTarget')
- @DocsEditable()
- final StringList viewTarget;
-
// From SVGFitToViewBox
@DomName('SVGViewElement.preserveAspectRatio')
@@ -5693,63 +5685,6 @@
// 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 {
@@ -5777,40 +5712,6 @@
// 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")
@@ -5885,43 +5786,6 @@
// 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")
diff --git a/sdk/lib/web_audio/dart2js/web_audio_dart2js.dart b/sdk/lib/web_audio/dart2js/web_audio_dart2js.dart
index c59ee24..deb724c 100644
--- a/sdk/lib/web_audio/dart2js/web_audio_dart2js.dart
+++ b/sdk/lib/web_audio/dart2js/web_audio_dart2js.dart
@@ -10,14 +10,21 @@
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.
+import 'dart:_js_helper'
+ show
+ Creates,
+ JavaScriptIndexingBehavior,
+ JSName,
+ Native,
+ Returns,
+ convertDartClosureToJS;
+
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
@@ -33,6 +40,20 @@
throw new UnsupportedError("Not supported");
}
+ @DomName('AnalyserNode.AnalyserNode')
+ @DocsEditable()
+ factory AnalyserNode(BaseAudioContext context, [Map options]) {
+ if (options != null) {
+ var options_1 = convertDartToNative_Dictionary(options);
+ return AnalyserNode._create_1(context, options_1);
+ }
+ return AnalyserNode._create_2(context);
+ }
+ static AnalyserNode _create_1(context, options) =>
+ JS('AnalyserNode', 'new AnalyserNode(#,#)', context, options);
+ static AnalyserNode _create_2(context) =>
+ JS('AnalyserNode', 'new AnalyserNode(#)', context);
+
@DomName('AnalyserNode.fftSize')
@DocsEditable()
int fftSize;
@@ -85,9 +106,18 @@
throw new UnsupportedError("Not supported");
}
+ @DomName('AudioBuffer.AudioBuffer')
+ @DocsEditable()
+ factory AudioBuffer(Map options) {
+ var options_1 = convertDartToNative_Dictionary(options);
+ return AudioBuffer._create_1(options_1);
+ }
+ static AudioBuffer _create_1(options) =>
+ JS('AudioBuffer', 'new AudioBuffer(#)', options);
+
@DomName('AudioBuffer.duration')
@DocsEditable()
- final double duration;
+ final num duration;
@DomName('AudioBuffer.length')
@DocsEditable()
@@ -99,7 +129,7 @@
@DomName('AudioBuffer.sampleRate')
@DocsEditable()
- final double sampleRate;
+ final num sampleRate;
@DomName('AudioBuffer.copyFromChannel')
@DocsEditable()
@@ -121,69 +151,35 @@
// for 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.
-
+@DocsEditable()
@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);
- }
- }
-
+class AudioBufferSourceNode extends AudioScheduledSourceNode {
// 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')
+ @DomName('AudioBufferSourceNode.AudioBufferSourceNode')
@DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> endedEvent =
- const EventStreamProvider<Event>('ended');
+ factory AudioBufferSourceNode(BaseAudioContext context, [Map options]) {
+ if (options != null) {
+ var options_1 = convertDartToNative_Dictionary(options);
+ return AudioBufferSourceNode._create_1(context, options_1);
+ }
+ return AudioBufferSourceNode._create_2(context);
+ }
+ static AudioBufferSourceNode _create_1(context, options) => JS(
+ 'AudioBufferSourceNode',
+ 'new AudioBufferSourceNode(#,#)',
+ context,
+ options);
+ static AudioBufferSourceNode _create_2(context) =>
+ JS('AudioBufferSourceNode', 'new AudioBufferSourceNode(#)', context);
@DomName('AudioBufferSourceNode.buffer')
@DocsEditable()
@@ -210,11 +206,10 @@
@DocsEditable()
final AudioParam playbackRate;
- /// Stream of `ended` events handled by this [AudioBufferSourceNode].
- @DomName('AudioBufferSourceNode.onended')
+ @JSName('start')
+ @DomName('AudioBufferSourceNode.start')
@DocsEditable()
- @Experimental() // untriaged
- Stream<Event> get onEnded => endedEvent.forTarget(this);
+ void start2([num when, num grainOffset, num grainDuration]) 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
@@ -226,7 +221,7 @@
@Experimental()
// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioContext-section
@Native("AudioContext,webkitAudioContext")
-class AudioContext extends EventTarget {
+class AudioContext extends BaseAudioContext {
// To suppress missing implicit constructor warnings.
factory AudioContext._() {
throw new UnsupportedError("Not supported");
@@ -236,135 +231,28 @@
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')
+ @DomName('AudioContext.baseLatency')
@DocsEditable()
@Experimental() // untriaged
- final String state;
+ final num baseLatency;
@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')
+ @DomName('AudioContext.getOutputTimestamp')
@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);
+ Map getOutputTimestamp() {
+ return convertNativeToDart_Dictionary(_getOutputTimestamp_1());
}
- @JSName('createPeriodicWave')
- @DomName('AudioContext.createPeriodicWave')
+ @JSName('getOutputTimestamp')
+ @DomName('AudioContext.getOutputTimestamp')
@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;
-
- @DomName('AudioContext.resume')
- @DocsEditable()
- @Experimental() // untriaged
- Future resume() native;
+ _getOutputTimestamp_1() native;
@DomName('AudioContext.suspend')
@DocsEditable()
@@ -382,8 +270,8 @@
}
}
- ScriptProcessorNode createScriptProcessor(int bufferSize,
- [int numberOfInputChannels, int numberOfOutputChannels]) {
+ ScriptProcessorNode createScriptProcessor(
+ [int bufferSize, int numberOfInputChannels, int numberOfOutputChannels]) {
var function = JS(
'=Object',
'#.createScriptProcessor || '
@@ -396,9 +284,11 @@
} else if (numberOfInputChannels != null) {
return JS('ScriptProcessorNode', '#.call(#, #, #)', function, this,
bufferSize, numberOfInputChannels);
- } else {
+ } else if (bufferSize != null) {
return JS(
'ScriptProcessorNode', '#.call(#, #)', function, this, bufferSize);
+ } else {
+ return JS('ScriptProcessorNode', '#.call(#)', function, this);
}
}
@@ -406,11 +296,17 @@
@DomName('AudioContext.decodeAudioData')
@DocsEditable()
Future _decodeAudioData(ByteBuffer audioData,
- [AudioBufferCallback successCallback,
- AudioBufferCallback errorCallback]) native;
+ [DecodeSuccessCallback successCallback,
+ DecodeErrorCallback errorCallback]) native;
@DomName('AudioContext.decodeAudioData')
- Future<AudioBuffer> decodeAudioData(ByteBuffer audioData) {
+ Future<AudioBuffer> decodeAudioData(ByteBuffer audioData,
+ [DecodeSuccessCallback successCallback,
+ DecodeErrorCallback errorCallback]) {
+ if (successCallback != null && errorCallback != null) {
+ return _decodeAudioData(audioData, successCallback, errorCallback);
+ }
+
var completer = new Completer<AudioBuffer>();
_decodeAudioData(audioData, (value) {
completer.complete(value);
@@ -458,13 +354,50 @@
throw new UnsupportedError("Not supported");
}
- @DomName('AudioListener.dopplerFactor')
+ @DomName('AudioListener.forwardX')
@DocsEditable()
- num dopplerFactor;
+ @Experimental() // untriaged
+ final AudioParam forwardX;
- @DomName('AudioListener.speedOfSound')
+ @DomName('AudioListener.forwardY')
@DocsEditable()
- num speedOfSound;
+ @Experimental() // untriaged
+ final AudioParam forwardY;
+
+ @DomName('AudioListener.forwardZ')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final AudioParam forwardZ;
+
+ @DomName('AudioListener.positionX')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final AudioParam positionX;
+
+ @DomName('AudioListener.positionY')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final AudioParam positionY;
+
+ @DomName('AudioListener.positionZ')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final AudioParam positionZ;
+
+ @DomName('AudioListener.upX')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final AudioParam upX;
+
+ @DomName('AudioListener.upY')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final AudioParam upY;
+
+ @DomName('AudioListener.upZ')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final AudioParam upZ;
@DomName('AudioListener.setOrientation')
@DocsEditable()
@@ -473,10 +406,6 @@
@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
@@ -506,7 +435,7 @@
@DomName('AudioNode.context')
@DocsEditable()
- final AudioContext context;
+ final BaseAudioContext context;
@DomName('AudioNode.numberOfInputs')
@DocsEditable()
@@ -552,12 +481,25 @@
@DomName('AudioParam.defaultValue')
@DocsEditable()
- final double defaultValue;
+ final num defaultValue;
+
+ @DomName('AudioParam.maxValue')
+ @DocsEditable()
+ final num maxValue;
+
+ @DomName('AudioParam.minValue')
+ @DocsEditable()
+ final num minValue;
@DomName('AudioParam.value')
@DocsEditable()
num value;
+ @DomName('AudioParam.cancelAndHoldAtTime')
+ @DocsEditable()
+ @Experimental() // untriaged
+ AudioParam cancelAndHoldAtTime(num startTime) native;
+
@DomName('AudioParam.cancelScheduledValues')
@DocsEditable()
AudioParam cancelScheduledValues(num startTime) native;
@@ -580,7 +522,7 @@
@DomName('AudioParam.setValueCurveAtTime')
@DocsEditable()
- AudioParam setValueCurveAtTime(Float32List values, num time, num duration)
+ AudioParam setValueCurveAtTime(List<num> values, num time, num duration)
native;
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
@@ -588,6 +530,20 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('AudioParamMap')
+@Experimental() // untriaged
+@Native("AudioParamMap")
+class AudioParamMap extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory AudioParamMap._() {
+ 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('AudioProcessingEvent')
// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioProcessingEvent-section
@Experimental()
@@ -598,6 +554,18 @@
throw new UnsupportedError("Not supported");
}
+ @DomName('AudioProcessingEvent.AudioProcessingEvent')
+ @DocsEditable()
+ factory AudioProcessingEvent(String type, Map eventInitDict) {
+ var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+ return AudioProcessingEvent._create_1(type, eventInitDict_1);
+ }
+ static AudioProcessingEvent _create_1(type, eventInitDict) => JS(
+ 'AudioProcessingEvent',
+ 'new AudioProcessingEvent(#,#)',
+ type,
+ eventInitDict);
+
@DomName('AudioProcessingEvent.inputBuffer')
@DocsEditable()
final AudioBuffer inputBuffer;
@@ -609,22 +577,390 @@
@DomName('AudioProcessingEvent.playbackTime')
@DocsEditable()
@Experimental() // untriaged
- final double playbackTime;
+ final num 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 {
+@DomName('AudioScheduledSourceNode')
+@Experimental() // untriaged
+@Native("AudioScheduledSourceNode")
+class AudioScheduledSourceNode extends AudioNode {
// To suppress missing implicit constructor warnings.
- factory AudioSourceNode._() {
+ factory AudioScheduledSourceNode._() {
throw new UnsupportedError("Not supported");
}
+
+ @DomName('AudioScheduledSourceNode.endedEvent')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const EventStreamProvider<Event> endedEvent =
+ const EventStreamProvider<Event>('ended');
+
+ @DomName('AudioScheduledSourceNode.start')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void start([num when]) native;
+
+ @DomName('AudioScheduledSourceNode.stop')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void stop([num when]) native;
+
+ @DomName('AudioScheduledSourceNode.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('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;
+
+ @DomName('AudioTrack.sourceBuffer')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final SourceBuffer sourceBuffer;
+}
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All 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 {
+ // 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
+ final int length;
+
+ @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('AudioWorkletGlobalScope')
+@Experimental() // untriaged
+@Native("AudioWorkletGlobalScope")
+class AudioWorkletGlobalScope extends WorkletGlobalScope {
+ // To suppress missing implicit constructor warnings.
+ factory AudioWorkletGlobalScope._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('AudioWorkletGlobalScope.currentTime')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num currentTime;
+
+ @DomName('AudioWorkletGlobalScope.sampleRate')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num sampleRate;
+
+ @DomName('AudioWorkletGlobalScope.registerProcessor')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void registerProcessor(String name, Object processorConstructor) 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('AudioWorkletNode')
+@Experimental() // untriaged
+@Native("AudioWorkletNode")
+class AudioWorkletNode extends AudioNode {
+ // To suppress missing implicit constructor warnings.
+ factory AudioWorkletNode._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('AudioWorkletNode.AudioWorkletNode')
+ @DocsEditable()
+ factory AudioWorkletNode(BaseAudioContext context, String name,
+ [Map options]) {
+ if (options != null) {
+ var options_1 = convertDartToNative_Dictionary(options);
+ return AudioWorkletNode._create_1(context, name, options_1);
+ }
+ return AudioWorkletNode._create_2(context, name);
+ }
+ static AudioWorkletNode _create_1(context, name, options) => JS(
+ 'AudioWorkletNode',
+ 'new AudioWorkletNode(#,#,#)',
+ context,
+ name,
+ options);
+ static AudioWorkletNode _create_2(context, name) =>
+ JS('AudioWorkletNode', 'new AudioWorkletNode(#,#)', context, name);
+
+ @DomName('AudioWorkletNode.parameters')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final AudioParamMap parameters;
+}
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+@DocsEditable()
+@DomName('AudioWorkletProcessor')
+@Experimental() // untriaged
+@Native("AudioWorkletProcessor")
+class AudioWorkletProcessor extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory AudioWorkletProcessor._() {
+ 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('BaseAudioContext')
+@Experimental() // untriaged
+@Native("BaseAudioContext")
+class BaseAudioContext extends EventTarget {
+ // To suppress missing implicit constructor warnings.
+ factory BaseAudioContext._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('BaseAudioContext.currentTime')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num currentTime;
+
+ @DomName('BaseAudioContext.destination')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final AudioDestinationNode destination;
+
+ @DomName('BaseAudioContext.listener')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final AudioListener listener;
+
+ @DomName('BaseAudioContext.sampleRate')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num sampleRate;
+
+ @DomName('BaseAudioContext.state')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final String state;
+
+ @DomName('BaseAudioContext.createAnalyser')
+ @DocsEditable()
+ @Experimental() // untriaged
+ AnalyserNode createAnalyser() native;
+
+ @DomName('BaseAudioContext.createBiquadFilter')
+ @DocsEditable()
+ @Experimental() // untriaged
+ BiquadFilterNode createBiquadFilter() native;
+
+ @DomName('BaseAudioContext.createBuffer')
+ @DocsEditable()
+ @Experimental() // untriaged
+ AudioBuffer createBuffer(
+ int numberOfChannels, int numberOfFrames, num sampleRate) native;
+
+ @DomName('BaseAudioContext.createBufferSource')
+ @DocsEditable()
+ @Experimental() // untriaged
+ AudioBufferSourceNode createBufferSource() native;
+
+ @DomName('BaseAudioContext.createChannelMerger')
+ @DocsEditable()
+ @Experimental() // untriaged
+ ChannelMergerNode createChannelMerger([int numberOfInputs]) native;
+
+ @DomName('BaseAudioContext.createChannelSplitter')
+ @DocsEditable()
+ @Experimental() // untriaged
+ ChannelSplitterNode createChannelSplitter([int numberOfOutputs]) native;
+
+ @DomName('BaseAudioContext.createConstantSource')
+ @DocsEditable()
+ @Experimental() // untriaged
+ ConstantSourceNode createConstantSource() native;
+
+ @DomName('BaseAudioContext.createConvolver')
+ @DocsEditable()
+ @Experimental() // untriaged
+ ConvolverNode createConvolver() native;
+
+ @DomName('BaseAudioContext.createDelay')
+ @DocsEditable()
+ @Experimental() // untriaged
+ DelayNode createDelay([num maxDelayTime]) native;
+
+ @DomName('BaseAudioContext.createDynamicsCompressor')
+ @DocsEditable()
+ @Experimental() // untriaged
+ DynamicsCompressorNode createDynamicsCompressor() native;
+
+ @DomName('BaseAudioContext.createGain')
+ @DocsEditable()
+ @Experimental() // untriaged
+ GainNode createGain() native;
+
+ @JSName('createIIRFilter')
+ @DomName('BaseAudioContext.createIIRFilter')
+ @DocsEditable()
+ @Experimental() // untriaged
+ IirFilterNode createIirFilter(List<num> feedForward, List<num> feedBack)
+ native;
+
+ @DomName('BaseAudioContext.createMediaElementSource')
+ @DocsEditable()
+ @Experimental() // untriaged
+ MediaElementAudioSourceNode createMediaElementSource(
+ MediaElement mediaElement) native;
+
+ @DomName('BaseAudioContext.createMediaStreamDestination')
+ @DocsEditable()
+ @Experimental() // untriaged
+ MediaStreamAudioDestinationNode createMediaStreamDestination() native;
+
+ @DomName('BaseAudioContext.createMediaStreamSource')
+ @DocsEditable()
+ @Experimental() // untriaged
+ MediaStreamAudioSourceNode createMediaStreamSource(MediaStream mediaStream)
+ native;
+
+ @DomName('BaseAudioContext.createOscillator')
+ @DocsEditable()
+ @Experimental() // untriaged
+ OscillatorNode createOscillator() native;
+
+ @DomName('BaseAudioContext.createPanner')
+ @DocsEditable()
+ @Experimental() // untriaged
+ PannerNode createPanner() native;
+
+ @DomName('BaseAudioContext.createPeriodicWave')
+ @DocsEditable()
+ @Experimental() // untriaged
+ PeriodicWave createPeriodicWave(List<num> real, List<num> 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('BaseAudioContext.createPeriodicWave')
+ @DocsEditable()
+ @Experimental() // untriaged
+ PeriodicWave _createPeriodicWave_1(List<num> real, List<num> imag, options)
+ native;
+ @JSName('createPeriodicWave')
+ @DomName('BaseAudioContext.createPeriodicWave')
+ @DocsEditable()
+ @Experimental() // untriaged
+ PeriodicWave _createPeriodicWave_2(List<num> real, List<num> imag) native;
+
+ @DomName('BaseAudioContext.createScriptProcessor')
+ @DocsEditable()
+ @Experimental() // untriaged
+ ScriptProcessorNode createScriptProcessor(
+ [int bufferSize,
+ int numberOfInputChannels,
+ int numberOfOutputChannels]) native;
+
+ @DomName('BaseAudioContext.createStereoPanner')
+ @DocsEditable()
+ @Experimental() // untriaged
+ StereoPannerNode createStereoPanner() native;
+
+ @DomName('BaseAudioContext.createWaveShaper')
+ @DocsEditable()
+ @Experimental() // untriaged
+ WaveShaperNode createWaveShaper() native;
+
+ @DomName('BaseAudioContext.decodeAudioData')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future decodeAudioData(ByteBuffer audioData,
+ [DecodeSuccessCallback successCallback,
+ DecodeErrorCallback errorCallback]) native;
+
+ @DomName('BaseAudioContext.resume')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future resume() 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
@@ -641,6 +977,20 @@
throw new UnsupportedError("Not supported");
}
+ @DomName('BiquadFilterNode.BiquadFilterNode')
+ @DocsEditable()
+ factory BiquadFilterNode(BaseAudioContext context, [Map options]) {
+ if (options != null) {
+ var options_1 = convertDartToNative_Dictionary(options);
+ return BiquadFilterNode._create_1(context, options_1);
+ }
+ return BiquadFilterNode._create_2(context);
+ }
+ static BiquadFilterNode _create_1(context, options) =>
+ JS('BiquadFilterNode', 'new BiquadFilterNode(#,#)', context, options);
+ static BiquadFilterNode _create_2(context) =>
+ JS('BiquadFilterNode', 'new BiquadFilterNode(#)', context);
+
@DomName('BiquadFilterNode.Q')
@DocsEditable()
final AudioParam Q;
@@ -680,6 +1030,20 @@
factory ChannelMergerNode._() {
throw new UnsupportedError("Not supported");
}
+
+ @DomName('ChannelMergerNode.ChannelMergerNode')
+ @DocsEditable()
+ factory ChannelMergerNode(BaseAudioContext context, [Map options]) {
+ if (options != null) {
+ var options_1 = convertDartToNative_Dictionary(options);
+ return ChannelMergerNode._create_1(context, options_1);
+ }
+ return ChannelMergerNode._create_2(context);
+ }
+ static ChannelMergerNode _create_1(context, options) =>
+ JS('ChannelMergerNode', 'new ChannelMergerNode(#,#)', context, options);
+ static ChannelMergerNode _create_2(context) =>
+ JS('ChannelMergerNode', 'new ChannelMergerNode(#)', context);
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -695,6 +1059,53 @@
factory ChannelSplitterNode._() {
throw new UnsupportedError("Not supported");
}
+
+ @DomName('ChannelSplitterNode.ChannelSplitterNode')
+ @DocsEditable()
+ factory ChannelSplitterNode(BaseAudioContext context, [Map options]) {
+ if (options != null) {
+ var options_1 = convertDartToNative_Dictionary(options);
+ return ChannelSplitterNode._create_1(context, options_1);
+ }
+ return ChannelSplitterNode._create_2(context);
+ }
+ static ChannelSplitterNode _create_1(context, options) => JS(
+ 'ChannelSplitterNode', 'new ChannelSplitterNode(#,#)', context, options);
+ static ChannelSplitterNode _create_2(context) =>
+ JS('ChannelSplitterNode', 'new ChannelSplitterNode(#)', context);
+}
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+@DocsEditable()
+@DomName('ConstantSourceNode')
+@Experimental() // untriaged
+@Native("ConstantSourceNode")
+class ConstantSourceNode extends AudioScheduledSourceNode {
+ // To suppress missing implicit constructor warnings.
+ factory ConstantSourceNode._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('ConstantSourceNode.ConstantSourceNode')
+ @DocsEditable()
+ factory ConstantSourceNode(BaseAudioContext context, [Map options]) {
+ if (options != null) {
+ var options_1 = convertDartToNative_Dictionary(options);
+ return ConstantSourceNode._create_1(context, options_1);
+ }
+ return ConstantSourceNode._create_2(context);
+ }
+ static ConstantSourceNode _create_1(context, options) =>
+ JS('ConstantSourceNode', 'new ConstantSourceNode(#,#)', context, options);
+ static ConstantSourceNode _create_2(context) =>
+ JS('ConstantSourceNode', 'new ConstantSourceNode(#)', context);
+
+ @DomName('ConstantSourceNode.offset')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final AudioParam offset;
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -711,6 +1122,20 @@
throw new UnsupportedError("Not supported");
}
+ @DomName('ConvolverNode.ConvolverNode')
+ @DocsEditable()
+ factory ConvolverNode(BaseAudioContext context, [Map options]) {
+ if (options != null) {
+ var options_1 = convertDartToNative_Dictionary(options);
+ return ConvolverNode._create_1(context, options_1);
+ }
+ return ConvolverNode._create_2(context);
+ }
+ static ConvolverNode _create_1(context, options) =>
+ JS('ConvolverNode', 'new ConvolverNode(#,#)', context, options);
+ static ConvolverNode _create_2(context) =>
+ JS('ConvolverNode', 'new ConvolverNode(#)', context);
+
@DomName('ConvolverNode.buffer')
@DocsEditable()
AudioBuffer buffer;
@@ -734,6 +1159,20 @@
throw new UnsupportedError("Not supported");
}
+ @DomName('DelayNode.DelayNode')
+ @DocsEditable()
+ factory DelayNode(BaseAudioContext context, [Map options]) {
+ if (options != null) {
+ var options_1 = convertDartToNative_Dictionary(options);
+ return DelayNode._create_1(context, options_1);
+ }
+ return DelayNode._create_2(context);
+ }
+ static DelayNode _create_1(context, options) =>
+ JS('DelayNode', 'new DelayNode(#,#)', context, options);
+ static DelayNode _create_2(context) =>
+ JS('DelayNode', 'new DelayNode(#)', context);
+
@DomName('DelayNode.delayTime')
@DocsEditable()
final AudioParam delayTime;
@@ -753,6 +1192,23 @@
throw new UnsupportedError("Not supported");
}
+ @DomName('DynamicsCompressorNode.DynamicsCompressorNode')
+ @DocsEditable()
+ factory DynamicsCompressorNode(BaseAudioContext context, [Map options]) {
+ if (options != null) {
+ var options_1 = convertDartToNative_Dictionary(options);
+ return DynamicsCompressorNode._create_1(context, options_1);
+ }
+ return DynamicsCompressorNode._create_2(context);
+ }
+ static DynamicsCompressorNode _create_1(context, options) => JS(
+ 'DynamicsCompressorNode',
+ 'new DynamicsCompressorNode(#,#)',
+ context,
+ options);
+ static DynamicsCompressorNode _create_2(context) =>
+ JS('DynamicsCompressorNode', 'new DynamicsCompressorNode(#)', context);
+
@DomName('DynamicsCompressorNode.attack')
@DocsEditable()
final AudioParam attack;
@@ -767,7 +1223,7 @@
@DomName('DynamicsCompressorNode.reduction')
@DocsEditable()
- final AudioParam reduction;
+ final num reduction;
@DomName('DynamicsCompressorNode.release')
@DocsEditable()
@@ -792,6 +1248,20 @@
throw new UnsupportedError("Not supported");
}
+ @DomName('GainNode.GainNode')
+ @DocsEditable()
+ factory GainNode(BaseAudioContext context, [Map options]) {
+ if (options != null) {
+ var options_1 = convertDartToNative_Dictionary(options);
+ return GainNode._create_1(context, options_1);
+ }
+ return GainNode._create_2(context);
+ }
+ static GainNode _create_1(context, options) =>
+ JS('GainNode', 'new GainNode(#,#)', context, options);
+ static GainNode _create_2(context) =>
+ JS('GainNode', 'new GainNode(#)', context);
+
@DomName('GainNode.gain')
@DocsEditable()
final AudioParam gain;
@@ -810,6 +1280,15 @@
throw new UnsupportedError("Not supported");
}
+ @DomName('IIRFilterNode.IIRFilterNode')
+ @DocsEditable()
+ factory IirFilterNode(BaseAudioContext context, Map options) {
+ var options_1 = convertDartToNative_Dictionary(options);
+ return IirFilterNode._create_1(context, options_1);
+ }
+ static IirFilterNode _create_1(context, options) =>
+ JS('IirFilterNode', 'new IIRFilterNode(#,#)', context, options);
+
@DomName('IIRFilterNode.getFrequencyResponse')
@DocsEditable()
@Experimental() // untriaged
@@ -825,12 +1304,24 @@
// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#MediaElementAudioSourceNode
@Experimental()
@Native("MediaElementAudioSourceNode")
-class MediaElementAudioSourceNode extends AudioSourceNode {
+class MediaElementAudioSourceNode extends AudioNode {
// To suppress missing implicit constructor warnings.
factory MediaElementAudioSourceNode._() {
throw new UnsupportedError("Not supported");
}
+ @DomName('MediaElementAudioSourceNode.MediaElementAudioSourceNode')
+ @DocsEditable()
+ factory MediaElementAudioSourceNode(BaseAudioContext context, Map options) {
+ var options_1 = convertDartToNative_Dictionary(options);
+ return MediaElementAudioSourceNode._create_1(context, options_1);
+ }
+ static MediaElementAudioSourceNode _create_1(context, options) => JS(
+ 'MediaElementAudioSourceNode',
+ 'new MediaElementAudioSourceNode(#,#)',
+ context,
+ options);
+
@DomName('MediaElementAudioSourceNode.mediaElement')
@DocsEditable()
@Experimental() // non-standard
@@ -851,6 +1342,26 @@
throw new UnsupportedError("Not supported");
}
+ @DomName('MediaStreamAudioDestinationNode.MediaStreamAudioDestinationNode')
+ @DocsEditable()
+ factory MediaStreamAudioDestinationNode(BaseAudioContext context,
+ [Map options]) {
+ if (options != null) {
+ var options_1 = convertDartToNative_Dictionary(options);
+ return MediaStreamAudioDestinationNode._create_1(context, options_1);
+ }
+ return MediaStreamAudioDestinationNode._create_2(context);
+ }
+ static MediaStreamAudioDestinationNode _create_1(context, options) => JS(
+ 'MediaStreamAudioDestinationNode',
+ 'new MediaStreamAudioDestinationNode(#,#)',
+ context,
+ options);
+ static MediaStreamAudioDestinationNode _create_2(context) => JS(
+ 'MediaStreamAudioDestinationNode',
+ 'new MediaStreamAudioDestinationNode(#)',
+ context);
+
@DomName('MediaStreamAudioDestinationNode.stream')
@DocsEditable()
final MediaStream stream;
@@ -864,12 +1375,24 @@
// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#MediaStreamAudioSourceNode
@Experimental()
@Native("MediaStreamAudioSourceNode")
-class MediaStreamAudioSourceNode extends AudioSourceNode {
+class MediaStreamAudioSourceNode extends AudioNode {
// To suppress missing implicit constructor warnings.
factory MediaStreamAudioSourceNode._() {
throw new UnsupportedError("Not supported");
}
+ @DomName('MediaStreamAudioSourceNode.MediaStreamAudioSourceNode')
+ @DocsEditable()
+ factory MediaStreamAudioSourceNode(BaseAudioContext context, Map options) {
+ var options_1 = convertDartToNative_Dictionary(options);
+ return MediaStreamAudioSourceNode._create_1(context, options_1);
+ }
+ static MediaStreamAudioSourceNode _create_1(context, options) => JS(
+ 'MediaStreamAudioSourceNode',
+ 'new MediaStreamAudioSourceNode(#,#)',
+ context,
+ options);
+
@DomName('MediaStreamAudioSourceNode.mediaStream')
@DocsEditable()
final MediaStream mediaStream;
@@ -889,6 +1412,18 @@
throw new UnsupportedError("Not supported");
}
+ @DomName('OfflineAudioCompletionEvent.OfflineAudioCompletionEvent')
+ @DocsEditable()
+ factory OfflineAudioCompletionEvent(String type, Map eventInitDict) {
+ var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
+ return OfflineAudioCompletionEvent._create_1(type, eventInitDict_1);
+ }
+ static OfflineAudioCompletionEvent _create_1(type, eventInitDict) => JS(
+ 'OfflineAudioCompletionEvent',
+ 'new OfflineAudioCompletionEvent(#,#)',
+ type,
+ eventInitDict);
+
@DomName('OfflineAudioCompletionEvent.renderedBuffer')
@DocsEditable()
final AudioBuffer renderedBuffer;
@@ -902,7 +1437,7 @@
// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#OfflineAudioContext-section
@Experimental()
@Native("OfflineAudioContext")
-class OfflineAudioContext extends AudioContext {
+class OfflineAudioContext extends BaseAudioContext {
// To suppress missing implicit constructor warnings.
factory OfflineAudioContext._() {
throw new UnsupportedError("Not supported");
@@ -910,15 +1445,36 @@
@DomName('OfflineAudioContext.OfflineAudioContext')
@DocsEditable()
- factory OfflineAudioContext(
- int numberOfChannels, int numberOfFrames, num sampleRate) {
- return OfflineAudioContext._create_1(
- numberOfChannels, numberOfFrames, sampleRate);
+ factory OfflineAudioContext(numberOfChannels_OR_options,
+ [int numberOfFrames, num sampleRate]) {
+ if ((sampleRate is num) &&
+ (numberOfFrames is int) &&
+ (numberOfChannels_OR_options is int)) {
+ return OfflineAudioContext._create_1(
+ numberOfChannels_OR_options, numberOfFrames, sampleRate);
+ }
+ if ((numberOfChannels_OR_options is Map) &&
+ numberOfFrames == null &&
+ sampleRate == null) {
+ var options_1 =
+ convertDartToNative_Dictionary(numberOfChannels_OR_options);
+ return OfflineAudioContext._create_2(options_1);
+ }
+ throw new ArgumentError("Incorrect number or type of arguments");
}
static OfflineAudioContext _create_1(
- numberOfChannels, numberOfFrames, sampleRate) =>
+ numberOfChannels_OR_options, numberOfFrames, sampleRate) =>
JS('OfflineAudioContext', 'new OfflineAudioContext(#,#,#)',
- numberOfChannels, numberOfFrames, sampleRate);
+ numberOfChannels_OR_options, numberOfFrames, sampleRate);
+ static OfflineAudioContext _create_2(numberOfChannels_OR_options) => JS(
+ 'OfflineAudioContext',
+ 'new OfflineAudioContext(#)',
+ numberOfChannels_OR_options);
+
+ @DomName('OfflineAudioContext.length')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final int length;
@DomName('OfflineAudioContext.startRendering')
@DocsEditable()
@@ -940,23 +1496,25 @@
// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#dfn-OscillatorNode
@Experimental()
@Native("OscillatorNode,Oscillator")
-class OscillatorNode extends AudioSourceNode {
+class OscillatorNode extends AudioScheduledSourceNode {
// 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')
+ @DomName('OscillatorNode.OscillatorNode')
@DocsEditable()
- @Experimental() // untriaged
- static const EventStreamProvider<Event> endedEvent =
- const EventStreamProvider<Event>('ended');
+ factory OscillatorNode(BaseAudioContext context, [Map options]) {
+ if (options != null) {
+ var options_1 = convertDartToNative_Dictionary(options);
+ return OscillatorNode._create_1(context, options_1);
+ }
+ return OscillatorNode._create_2(context);
+ }
+ static OscillatorNode _create_1(context, options) =>
+ JS('OscillatorNode', 'new OscillatorNode(#,#)', context, options);
+ static OscillatorNode _create_2(context) =>
+ JS('OscillatorNode', 'new OscillatorNode(#)', context);
@DomName('OscillatorNode.detune')
@DocsEditable()
@@ -974,20 +1532,6 @@
@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
@@ -1004,6 +1548,20 @@
throw new UnsupportedError("Not supported");
}
+ @DomName('PannerNode.PannerNode')
+ @DocsEditable()
+ factory PannerNode(BaseAudioContext context, [Map options]) {
+ if (options != null) {
+ var options_1 = convertDartToNative_Dictionary(options);
+ return PannerNode._create_1(context, options_1);
+ }
+ return PannerNode._create_2(context);
+ }
+ static PannerNode _create_1(context, options) =>
+ JS('PannerNode', 'new PannerNode(#,#)', context, options);
+ static PannerNode _create_2(context) =>
+ JS('PannerNode', 'new PannerNode(#)', context);
+
@DomName('PannerNode.coneInnerAngle')
@DocsEditable()
num coneInnerAngle;
@@ -1024,10 +1582,40 @@
@DocsEditable()
num maxDistance;
+ @DomName('PannerNode.orientationX')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final AudioParam orientationX;
+
+ @DomName('PannerNode.orientationY')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final AudioParam orientationY;
+
+ @DomName('PannerNode.orientationZ')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final AudioParam orientationZ;
+
@DomName('PannerNode.panningModel')
@DocsEditable()
String panningModel;
+ @DomName('PannerNode.positionX')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final AudioParam positionX;
+
+ @DomName('PannerNode.positionY')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final AudioParam positionY;
+
+ @DomName('PannerNode.positionZ')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final AudioParam positionZ;
+
@DomName('PannerNode.refDistance')
@DocsEditable()
num refDistance;
@@ -1043,10 +1631,6 @@
@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
@@ -1061,6 +1645,20 @@
factory PeriodicWave._() {
throw new UnsupportedError("Not supported");
}
+
+ @DomName('PeriodicWave.PeriodicWave')
+ @DocsEditable()
+ factory PeriodicWave(BaseAudioContext context, [Map options]) {
+ if (options != null) {
+ var options_1 = convertDartToNative_Dictionary(options);
+ return PeriodicWave._create_1(context, options_1);
+ }
+ return PeriodicWave._create_2(context);
+ }
+ static PeriodicWave _create_1(context, options) =>
+ JS('PeriodicWave', 'new PeriodicWave(#,#)', context, options);
+ static PeriodicWave _create_2(context) =>
+ JS('PeriodicWave', 'new PeriodicWave(#)', context);
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -1126,6 +1724,20 @@
throw new UnsupportedError("Not supported");
}
+ @DomName('StereoPannerNode.StereoPannerNode')
+ @DocsEditable()
+ factory StereoPannerNode(BaseAudioContext context, [Map options]) {
+ if (options != null) {
+ var options_1 = convertDartToNative_Dictionary(options);
+ return StereoPannerNode._create_1(context, options_1);
+ }
+ return StereoPannerNode._create_2(context);
+ }
+ static StereoPannerNode _create_1(context, options) =>
+ JS('StereoPannerNode', 'new StereoPannerNode(#,#)', context, options);
+ static StereoPannerNode _create_2(context) =>
+ JS('StereoPannerNode', 'new StereoPannerNode(#)', context);
+
@DomName('StereoPannerNode.pan')
@DocsEditable()
@Experimental() // untriaged
@@ -1146,6 +1758,20 @@
throw new UnsupportedError("Not supported");
}
+ @DomName('WaveShaperNode.WaveShaperNode')
+ @DocsEditable()
+ factory WaveShaperNode(BaseAudioContext context, [Map options]) {
+ if (options != null) {
+ var options_1 = convertDartToNative_Dictionary(options);
+ return WaveShaperNode._create_1(context, options_1);
+ }
+ return WaveShaperNode._create_2(context);
+ }
+ static WaveShaperNode _create_1(context, options) =>
+ JS('WaveShaperNode', 'new WaveShaperNode(#,#)', context, options);
+ static WaveShaperNode _create_2(context) =>
+ JS('WaveShaperNode', 'new WaveShaperNode(#)', context);
+
@DomName('WaveShaperNode.curve')
@DocsEditable()
Float32List curve;
diff --git a/sdk/lib/web_gl/dart2js/web_gl_dart2js.dart b/sdk/lib/web_gl/dart2js/web_gl_dart2js.dart
index 5e833a6..d441cf1 100644
--- a/sdk/lib/web_gl/dart2js/web_gl_dart2js.dart
+++ b/sdk/lib/web_gl/dart2js/web_gl_dart2js.dart
@@ -3,6 +3,7 @@
*/
library dart.dom.web_gl;
+import 'dart:async';
import 'dart:collection' hide LinkedList, LinkedListEntry;
import 'dart:_internal' show FixedLengthListMixin;
import 'dart:html';
@@ -253,7 +254,6 @@
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;
@@ -428,72 +428,44 @@
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('WebGLCanvas')
+@Experimental() // untriaged
+@Native("WebGLCanvas")
+class Canvas extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory Canvas._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @JSName('canvas')
+ @DomName('WebGLCanvas.canvas')
+ @DocsEditable()
+ final CanvasElement canvas;
+
+ @JSName('canvas')
+ @DomName('WebGLCanvas.offscreenCanvas')
+ @DocsEditable()
+ final OffscreenCanvas offscreenCanvas;
+}
+
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All 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')
+@DomName('WebGLColorBufferFloat')
@Experimental() // untriaged
-@Native("CHROMIUMSubscribeUniform")
-class ChromiumSubscribeUniform extends Interceptor {
+@Native("WebGLColorBufferFloat")
+class ColorBufferFloat extends Interceptor {
// To suppress missing implicit constructor warnings.
- factory ChromiumSubscribeUniform._() {
+ factory ColorBufferFloat._() {
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
@@ -701,6 +673,71 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('WebGLCompressedTextureETC')
+@Experimental() // untriaged
+@Native("WebGLCompressedTextureETC")
+class CompressedTextureEtc extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory CompressedTextureEtc._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('WebGLCompressedTextureETC.COMPRESSED_R11_EAC')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const int COMPRESSED_R11_EAC = 0x9270;
+
+ @DomName('WebGLCompressedTextureETC.COMPRESSED_RG11_EAC')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const int COMPRESSED_RG11_EAC = 0x9272;
+
+ @DomName('WebGLCompressedTextureETC.COMPRESSED_RGB8_ETC2')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const int COMPRESSED_RGB8_ETC2 = 0x9274;
+
+ @DomName('WebGLCompressedTextureETC.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const int COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9276;
+
+ @DomName('WebGLCompressedTextureETC.COMPRESSED_RGBA8_ETC2_EAC')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const int COMPRESSED_RGBA8_ETC2_EAC = 0x9278;
+
+ @DomName('WebGLCompressedTextureETC.COMPRESSED_SIGNED_R11_EAC')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const int COMPRESSED_SIGNED_R11_EAC = 0x9271;
+
+ @DomName('WebGLCompressedTextureETC.COMPRESSED_SIGNED_RG11_EAC')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const int COMPRESSED_SIGNED_RG11_EAC = 0x9273;
+
+ @DomName('WebGLCompressedTextureETC.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const int COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 0x9279;
+
+ @DomName('WebGLCompressedTextureETC.COMPRESSED_SRGB8_ETC2')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const int COMPRESSED_SRGB8_ETC2 = 0x9275;
+
+ @DomName(
+ 'WebGLCompressedTextureETC.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const int COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9277;
+}
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All 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
@@ -763,6 +800,40 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('WebGLCompressedTextureS3TCsRGB')
+@Experimental() // untriaged
+@Native("WebGLCompressedTextureS3TCsRGB")
+class CompressedTextureS3TCsRgb extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory CompressedTextureS3TCsRgb._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('WebGLCompressedTextureS3TCsRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const int COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = 0x8C4D;
+
+ @DomName('WebGLCompressedTextureS3TCsRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const int COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = 0x8C4E;
+
+ @DomName('WebGLCompressedTextureS3TCsRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const int COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = 0x8C4F;
+
+ @DomName('WebGLCompressedTextureS3TCsRGB.COMPRESSED_SRGB_S3TC_DXT1_EXT')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const int COMPRESSED_SRGB_S3TC_DXT1_EXT = 0x8C4C;
+}
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All 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")
@@ -1084,6 +1155,20 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('EXTColorBufferHalfFloat')
+@Experimental() // untriaged
+@Native("EXTColorBufferHalfFloat")
+class ExtColorBufferHalfFloat extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory ExtColorBufferHalfFloat._() {
+ 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")
@@ -1181,6 +1266,46 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('EXTDisjointTimerQueryWebGL2')
+@Experimental() // untriaged
+@Native("EXTDisjointTimerQueryWebGL2")
+class ExtDisjointTimerQueryWebGL2 extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory ExtDisjointTimerQueryWebGL2._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('EXTDisjointTimerQueryWebGL2.GPU_DISJOINT_EXT')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const int GPU_DISJOINT_EXT = 0x8FBB;
+
+ @DomName('EXTDisjointTimerQueryWebGL2.QUERY_COUNTER_BITS_EXT')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const int QUERY_COUNTER_BITS_EXT = 0x8864;
+
+ @DomName('EXTDisjointTimerQueryWebGL2.TIMESTAMP_EXT')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const int TIMESTAMP_EXT = 0x8E28;
+
+ @DomName('EXTDisjointTimerQueryWebGL2.TIME_ELAPSED_EXT')
+ @DocsEditable()
+ @Experimental() // untriaged
+ static const int TIME_ELAPSED_EXT = 0x88BF;
+
+ @JSName('queryCounterEXT')
+ @DomName('EXTDisjointTimerQueryWebGL2.queryCounterEXT')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void queryCounterExt(Query 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()
@@ -1247,6 +1372,26 @@
// BSD-style license that can be found in the LICENSE file.
@DocsEditable()
+@DomName('WebGLGetBufferSubDataAsync')
+@Experimental() // untriaged
+@Native("WebGLGetBufferSubDataAsync")
+class GetBufferSubDataAsync extends Interceptor {
+ // To suppress missing implicit constructor warnings.
+ factory GetBufferSubDataAsync._() {
+ throw new UnsupportedError("Not supported");
+ }
+
+ @DomName('WebGLGetBufferSubDataAsync.getBufferSubDataAsync')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future getBufferSubDataAsync(int target, int srcByteOffset, TypedData dstData,
+ [int dstOffset, int length]) 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('WebGLLoseContext')
// http://www.khronos.org/registry/webgl/extensions/WEBGL_lose_context/
@Experimental()
@@ -1463,6 +1608,11 @@
/// Checks if this type is supported on the current platform.
static bool get supported => JS('bool', '!!(window.WebGLRenderingContext)');
+ @DomName('WebGLRenderingContext.canvas')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final CanvasElement canvas;
+
@DomName('WebGLRenderingContext.ACTIVE_ATTRIBUTES')
@DocsEditable()
static const int ACTIVE_ATTRIBUTES = 0x8B89;
@@ -2321,10 +2471,6 @@
@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;
@@ -2655,11 +2801,6 @@
// From WebGLRenderingContextBase
- @DomName('WebGLRenderingContext.canvas')
- @DocsEditable()
- @Experimental() // untriaged
- final CanvasElement canvas;
-
@DomName('WebGLRenderingContext.drawingBufferHeight')
@DocsEditable()
final int drawingBufferHeight;
@@ -2749,6 +2890,11 @@
@DocsEditable()
void colorMask(bool red, bool green, bool blue, bool alpha) native;
+ @DomName('WebGLRenderingContext.commit')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future commit() native;
+
@DomName('WebGLRenderingContext.compileShader')
@DocsEditable()
void compileShader(Shader shader) native;
@@ -3142,8 +3288,7 @@
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) &&
+ if ((bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video is ImageData) &&
format == null &&
type == null &&
pixels == null) {
@@ -3277,8 +3422,7 @@
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) &&
+ if ((bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video is ImageData) &&
type == null &&
pixels == null) {
var pixels_1 = convertDartToNative_ImageData(
@@ -3600,6 +3744,11 @@
throw new UnsupportedError("Not supported");
}
+ @DomName('WebGL2RenderingContext.canvas')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final Canvas canvas;
+
@DomName('WebGL2RenderingContext.ACTIVE_ATTRIBUTES')
@DocsEditable()
@Experimental() // untriaged
@@ -4671,11 +4820,6 @@
@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
@@ -5130,6 +5274,21 @@
void blitFramebuffer(int srcX0, int srcY0, int srcX1, int srcY1, int dstX0,
int dstY0, int dstX1, int dstY1, int mask, int filter) native;
+ @JSName('bufferData')
+ @DomName('WebGL2RenderingContext.bufferData')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void bufferData2(int target, TypedData srcData, int usage, int srcOffset,
+ [int length]) native;
+
+ @JSName('bufferSubData')
+ @DomName('WebGL2RenderingContext.bufferSubData')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void bufferSubData2(
+ int target, int dstByteOffset, TypedData srcData, int srcOffset,
+ [int length]) native;
+
@DomName('WebGL2RenderingContext.clearBufferfi')
@DocsEditable()
@Experimental() // untriaged
@@ -5138,33 +5297,88 @@
@DomName('WebGL2RenderingContext.clearBufferfv')
@DocsEditable()
@Experimental() // untriaged
- void clearBufferfv(int buffer, int drawbuffer, value) native;
+ void clearBufferfv(int buffer, int drawbuffer, value, [int srcOffset]) native;
@DomName('WebGL2RenderingContext.clearBufferiv')
@DocsEditable()
@Experimental() // untriaged
- void clearBufferiv(int buffer, int drawbuffer, value) native;
+ void clearBufferiv(int buffer, int drawbuffer, value, [int srcOffset]) native;
@DomName('WebGL2RenderingContext.clearBufferuiv')
@DocsEditable()
@Experimental() // untriaged
- void clearBufferuiv(int buffer, int drawbuffer, value) native;
+ void clearBufferuiv(int buffer, int drawbuffer, value, [int srcOffset])
+ native;
@DomName('WebGL2RenderingContext.clientWaitSync')
@DocsEditable()
@Experimental() // untriaged
int clientWaitSync(Sync sync, int flags, int timeout) native;
+ @JSName('compressedTexImage2D')
+ @DomName('WebGL2RenderingContext.compressedTexImage2D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void compressedTexImage2D2(int target, int level, int internalformat,
+ int width, int height, int border, TypedData data, int srcOffset,
+ [int srcLengthOverride]) native;
+
+ @JSName('compressedTexImage2D')
+ @DomName('WebGL2RenderingContext.compressedTexImage2D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void compressedTexImage2D3(int target, int level, int internalformat,
+ int width, int height, int border, int imageSize, int offset) 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;
+ int width, int height, int depth, int border, TypedData data,
+ [int srcOffset, int srcLengthOverride]) native;
+
+ @JSName('compressedTexImage3D')
+ @DomName('WebGL2RenderingContext.compressedTexImage3D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void compressedTexImage3D2(
+ int target,
+ int level,
+ int internalformat,
+ int width,
+ int height,
+ int depth,
+ int border,
+ int imageSize,
+ int offset) native;
+
+ @JSName('compressedTexSubImage2D')
+ @DomName('WebGL2RenderingContext.compressedTexSubImage2D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void compressedTexSubImage2D2(int target, int level, int xoffset, int yoffset,
+ int width, int height, int format, TypedData data, int srcOffset,
+ [int srcLengthOverride]) native;
+
+ @JSName('compressedTexSubImage2D')
+ @DomName('WebGL2RenderingContext.compressedTexSubImage2D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void compressedTexSubImage2D3(int target, int level, int xoffset, int yoffset,
+ int width, int height, int format, int imageSize, int offset) native;
@DomName('WebGL2RenderingContext.compressedTexSubImage3D')
@DocsEditable()
@Experimental() // untriaged
- void compressedTexSubImage3D(
+ void compressedTexSubImage3D(int target, int level, int xoffset, int yoffset,
+ int zoffset, int width, int height, int depth, int format, TypedData data,
+ [int srcOffset, int srcLengthOverride]) native;
+
+ @JSName('compressedTexSubImage3D')
+ @DomName('WebGL2RenderingContext.compressedTexSubImage3D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void compressedTexSubImage3D2(
int target,
int level,
int xoffset,
@@ -5174,7 +5388,8 @@
int height,
int depth,
int format,
- TypedData data) native;
+ int imageSize,
+ int offset) native;
@DomName('WebGL2RenderingContext.copyBufferSubData')
@DocsEditable()
@@ -5298,7 +5513,8 @@
@DomName('WebGL2RenderingContext.getBufferSubData')
@DocsEditable()
@Experimental() // untriaged
- void getBufferSubData(int target, int offset, ByteBuffer returnedData) native;
+ void getBufferSubData(int target, int srcByteOffset, TypedData dstData,
+ [int dstOffset, int length]) native;
@DomName('WebGL2RenderingContext.getFragDataLocation')
@DocsEditable()
@@ -5319,7 +5535,7 @@
@DomName('WebGL2RenderingContext.getQuery')
@DocsEditable()
@Experimental() // untriaged
- Query getQuery(int target, int pname) native;
+ Object getQuery(int target, int pname) native;
@DomName('WebGL2RenderingContext.getQueryParameter')
@DocsEditable()
@@ -5411,7 +5627,8 @@
@DocsEditable()
@Experimental() // untriaged
void readPixels2(int x, int y, int width, int height, int format, int type,
- int offset) native;
+ dstData_OR_offset,
+ [int offset]) native;
@DomName('WebGL2RenderingContext.renderbufferStorageMultisample')
@DocsEditable()
@@ -5434,12 +5651,165 @@
@Experimental() // untriaged
void samplerParameteri(Sampler sampler, int pname, int param) native;
+ @DomName('WebGL2RenderingContext.texImage2D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void texImage2D2(
+ int target,
+ int level,
+ int internalformat,
+ int width,
+ int height,
+ int border,
+ int format,
+ int type,
+ bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video,
+ [int srcOffset]) {
+ if ((bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video
+ is int) &&
+ srcOffset == null) {
+ _texImage2D2_1(
+ target,
+ level,
+ internalformat,
+ width,
+ height,
+ border,
+ format,
+ type,
+ bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video);
+ return;
+ }
+ if ((bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video
+ is ImageData) &&
+ srcOffset == null) {
+ var data_1 = convertDartToNative_ImageData(
+ bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video);
+ _texImage2D2_2(target, level, internalformat, width, height, border,
+ format, type, data_1);
+ return;
+ }
+ if ((bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video
+ is ImageElement) &&
+ srcOffset == null) {
+ _texImage2D2_3(
+ target,
+ level,
+ internalformat,
+ width,
+ height,
+ border,
+ format,
+ type,
+ bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video);
+ return;
+ }
+ if ((bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video
+ is CanvasElement) &&
+ srcOffset == null) {
+ _texImage2D2_4(
+ target,
+ level,
+ internalformat,
+ width,
+ height,
+ border,
+ format,
+ type,
+ bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video);
+ return;
+ }
+ if ((bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video
+ is VideoElement) &&
+ srcOffset == null) {
+ _texImage2D2_5(
+ target,
+ level,
+ internalformat,
+ width,
+ height,
+ border,
+ format,
+ type,
+ bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video);
+ return;
+ }
+ if ((bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video
+ is ImageBitmap) &&
+ srcOffset == null) {
+ _texImage2D2_6(
+ target,
+ level,
+ internalformat,
+ width,
+ height,
+ border,
+ format,
+ type,
+ bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video);
+ return;
+ }
+ if (srcOffset != null &&
+ (bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video
+ is TypedData)) {
+ _texImage2D2_7(
+ target,
+ level,
+ internalformat,
+ width,
+ height,
+ border,
+ format,
+ type,
+ bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video,
+ srcOffset);
+ return;
+ }
+ throw new ArgumentError("Incorrect number or type of arguments");
+ }
+
@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;
+ void _texImage2D2_1(target, level, internalformat, width, height, border,
+ format, type, int offset) native;
+ @JSName('texImage2D')
+ @DomName('WebGL2RenderingContext.texImage2D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void _texImage2D2_2(target, level, internalformat, width, height, border,
+ format, type, data) native;
+ @JSName('texImage2D')
+ @DomName('WebGL2RenderingContext.texImage2D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void _texImage2D2_3(target, level, internalformat, width, height, border,
+ format, type, ImageElement image) native;
+ @JSName('texImage2D')
+ @DomName('WebGL2RenderingContext.texImage2D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void _texImage2D2_4(target, level, internalformat, width, height, border,
+ format, type, CanvasElement canvas) native;
+ @JSName('texImage2D')
+ @DomName('WebGL2RenderingContext.texImage2D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void _texImage2D2_5(target, level, internalformat, width, height, border,
+ format, type, VideoElement video) native;
+ @JSName('texImage2D')
+ @DomName('WebGL2RenderingContext.texImage2D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void _texImage2D2_6(target, level, internalformat, width, height, border,
+ format, type, ImageBitmap bitmap) native;
+ @JSName('texImage2D')
+ @DomName('WebGL2RenderingContext.texImage2D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void _texImage2D2_7(target, level, internalformat, width, height, border,
+ format, type, TypedData srcData, srcOffset) native;
@DomName('WebGL2RenderingContext.texImage3D')
@DocsEditable()
@@ -5454,7 +5824,183 @@
int border,
int format,
int type,
- offset_OR_pixels) native;
+ bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video,
+ [int srcOffset]) {
+ if ((bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video
+ is int) &&
+ srcOffset == null) {
+ _texImage3D_1(
+ target,
+ level,
+ internalformat,
+ width,
+ height,
+ depth,
+ border,
+ format,
+ type,
+ bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video);
+ return;
+ }
+ if ((bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video
+ is ImageData) &&
+ srcOffset == null) {
+ var data_1 = convertDartToNative_ImageData(
+ bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video);
+ _texImage3D_2(target, level, internalformat, width, height, depth, border,
+ format, type, data_1);
+ return;
+ }
+ if ((bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video
+ is ImageElement) &&
+ srcOffset == null) {
+ _texImage3D_3(
+ target,
+ level,
+ internalformat,
+ width,
+ height,
+ depth,
+ border,
+ format,
+ type,
+ bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video);
+ return;
+ }
+ if ((bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video
+ is CanvasElement) &&
+ srcOffset == null) {
+ _texImage3D_4(
+ target,
+ level,
+ internalformat,
+ width,
+ height,
+ depth,
+ border,
+ format,
+ type,
+ bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video);
+ return;
+ }
+ if ((bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video
+ is VideoElement) &&
+ srcOffset == null) {
+ _texImage3D_5(
+ target,
+ level,
+ internalformat,
+ width,
+ height,
+ depth,
+ border,
+ format,
+ type,
+ bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video);
+ return;
+ }
+ if ((bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video
+ is ImageBitmap) &&
+ srcOffset == null) {
+ _texImage3D_6(
+ target,
+ level,
+ internalformat,
+ width,
+ height,
+ depth,
+ border,
+ format,
+ type,
+ bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video);
+ return;
+ }
+ if ((bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video
+ is TypedData ||
+ bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video ==
+ null) &&
+ srcOffset == null) {
+ _texImage3D_7(
+ target,
+ level,
+ internalformat,
+ width,
+ height,
+ depth,
+ border,
+ format,
+ type,
+ bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video);
+ return;
+ }
+ if (srcOffset != null &&
+ (bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video
+ is TypedData)) {
+ _texImage3D_8(
+ target,
+ level,
+ internalformat,
+ width,
+ height,
+ depth,
+ border,
+ format,
+ type,
+ bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video,
+ srcOffset);
+ return;
+ }
+ throw new ArgumentError("Incorrect number or type of arguments");
+ }
+
+ @JSName('texImage3D')
+ @DomName('WebGL2RenderingContext.texImage3D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void _texImage3D_1(target, level, internalformat, width, height, depth,
+ border, format, type, int offset) native;
+ @JSName('texImage3D')
+ @DomName('WebGL2RenderingContext.texImage3D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void _texImage3D_2(target, level, internalformat, width, height, depth,
+ border, format, type, data) native;
+ @JSName('texImage3D')
+ @DomName('WebGL2RenderingContext.texImage3D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void _texImage3D_3(target, level, internalformat, width, height, depth,
+ border, format, type, ImageElement image) native;
+ @JSName('texImage3D')
+ @DomName('WebGL2RenderingContext.texImage3D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void _texImage3D_4(target, level, internalformat, width, height, depth,
+ border, format, type, CanvasElement canvas) native;
+ @JSName('texImage3D')
+ @DomName('WebGL2RenderingContext.texImage3D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void _texImage3D_5(target, level, internalformat, width, height, depth,
+ border, format, type, VideoElement video) native;
+ @JSName('texImage3D')
+ @DomName('WebGL2RenderingContext.texImage3D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void _texImage3D_6(target, level, internalformat, width, height, depth,
+ border, format, type, ImageBitmap bitmap) native;
+ @JSName('texImage3D')
+ @DomName('WebGL2RenderingContext.texImage3D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void _texImage3D_7(target, level, internalformat, width, height, depth,
+ border, format, type, TypedData pixels) native;
+ @JSName('texImage3D')
+ @DomName('WebGL2RenderingContext.texImage3D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void _texImage3D_8(target, level, internalformat, width, height, depth,
+ border, format, type, TypedData pixels, srcOffset) native;
@DomName('WebGL2RenderingContext.texStorage2D')
@DocsEditable()
@@ -5468,6 +6014,166 @@
void texStorage3D(int target, int levels, int internalformat, int width,
int height, int depth) native;
+ @DomName('WebGL2RenderingContext.texSubImage2D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void texSubImage2D2(
+ int target,
+ int level,
+ int xoffset,
+ int yoffset,
+ int width,
+ int height,
+ int format,
+ int type,
+ bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video,
+ [int srcOffset]) {
+ if ((bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video
+ is int) &&
+ srcOffset == null) {
+ _texSubImage2D2_1(
+ target,
+ level,
+ xoffset,
+ yoffset,
+ width,
+ height,
+ format,
+ type,
+ bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video);
+ return;
+ }
+ if ((bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video
+ is ImageData) &&
+ srcOffset == null) {
+ var data_1 = convertDartToNative_ImageData(
+ bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video);
+ _texSubImage2D2_2(
+ target, level, xoffset, yoffset, width, height, format, type, data_1);
+ return;
+ }
+ if ((bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video
+ is ImageElement) &&
+ srcOffset == null) {
+ _texSubImage2D2_3(
+ target,
+ level,
+ xoffset,
+ yoffset,
+ width,
+ height,
+ format,
+ type,
+ bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video);
+ return;
+ }
+ if ((bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video
+ is CanvasElement) &&
+ srcOffset == null) {
+ _texSubImage2D2_4(
+ target,
+ level,
+ xoffset,
+ yoffset,
+ width,
+ height,
+ format,
+ type,
+ bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video);
+ return;
+ }
+ if ((bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video
+ is VideoElement) &&
+ srcOffset == null) {
+ _texSubImage2D2_5(
+ target,
+ level,
+ xoffset,
+ yoffset,
+ width,
+ height,
+ format,
+ type,
+ bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video);
+ return;
+ }
+ if ((bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video
+ is ImageBitmap) &&
+ srcOffset == null) {
+ _texSubImage2D2_6(
+ target,
+ level,
+ xoffset,
+ yoffset,
+ width,
+ height,
+ format,
+ type,
+ bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video);
+ return;
+ }
+ if (srcOffset != null &&
+ (bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video
+ is TypedData)) {
+ _texSubImage2D2_7(
+ target,
+ level,
+ xoffset,
+ yoffset,
+ width,
+ height,
+ format,
+ type,
+ bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_srcData_OR_video,
+ srcOffset);
+ return;
+ }
+ throw new ArgumentError("Incorrect number or type of arguments");
+ }
+
+ @JSName('texSubImage2D')
+ @DomName('WebGL2RenderingContext.texSubImage2D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void _texSubImage2D2_1(target, level, xoffset, yoffset, width, height, format,
+ type, int offset) native;
+ @JSName('texSubImage2D')
+ @DomName('WebGL2RenderingContext.texSubImage2D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void _texSubImage2D2_2(target, level, xoffset, yoffset, width, height, format,
+ type, data) native;
+ @JSName('texSubImage2D')
+ @DomName('WebGL2RenderingContext.texSubImage2D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void _texSubImage2D2_3(target, level, xoffset, yoffset, width, height, format,
+ type, ImageElement image) native;
+ @JSName('texSubImage2D')
+ @DomName('WebGL2RenderingContext.texSubImage2D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void _texSubImage2D2_4(target, level, xoffset, yoffset, width, height, format,
+ type, CanvasElement canvas) native;
+ @JSName('texSubImage2D')
+ @DomName('WebGL2RenderingContext.texSubImage2D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void _texSubImage2D2_5(target, level, xoffset, yoffset, width, height, format,
+ type, VideoElement video) native;
+ @JSName('texSubImage2D')
+ @DomName('WebGL2RenderingContext.texSubImage2D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void _texSubImage2D2_6(target, level, xoffset, yoffset, width, height, format,
+ type, ImageBitmap bitmap) native;
+ @JSName('texSubImage2D')
+ @DomName('WebGL2RenderingContext.texSubImage2D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void _texSubImage2D2_7(target, level, xoffset, yoffset, width, height, format,
+ type, TypedData srcData, srcOffset) native;
+
@DomName('WebGL2RenderingContext.texSubImage3D')
@DocsEditable()
@Experimental() // untriaged
@@ -5477,102 +6183,140 @@
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 width,
+ int height,
+ int depth,
+ int format,
int type,
- TypedData pixels]) {
- if (type != null &&
- format != null &&
- (bitmap_OR_canvas_OR_data_OR_depth_OR_image_OR_video is int)) {
+ bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video,
+ [int srcOffset]) {
+ if ((bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video
+ is int) &&
+ srcOffset == null) {
_texSubImage3D_1(
target,
level,
xoffset,
yoffset,
zoffset,
- format_OR_width,
- height_OR_type,
- bitmap_OR_canvas_OR_data_OR_depth_OR_image_OR_video,
+ width,
+ height,
+ depth,
format,
type,
- pixels);
+ bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video);
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) {
+ if ((bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video
+ is ImageData) &&
+ srcOffset == 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);
+ bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video);
+ _texSubImage3D_2(target, level, xoffset, yoffset, zoffset, width, height,
+ depth, format, 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) {
+ if ((bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video
+ is ImageElement) &&
+ srcOffset == 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);
+ width,
+ height,
+ depth,
+ format,
+ type,
+ bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_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) {
+ if ((bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video
+ is CanvasElement) &&
+ srcOffset == 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);
+ width,
+ height,
+ depth,
+ format,
+ type,
+ bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_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) {
+ if ((bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video
+ is VideoElement) &&
+ srcOffset == 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);
+ width,
+ height,
+ depth,
+ format,
+ type,
+ bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_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) {
+ if ((bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video
+ is ImageBitmap) &&
+ srcOffset == 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);
+ width,
+ height,
+ depth,
+ format,
+ type,
+ bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video);
+ return;
+ }
+ if ((bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video
+ is TypedData) &&
+ srcOffset == null) {
+ _texSubImage3D_7(
+ target,
+ level,
+ xoffset,
+ yoffset,
+ zoffset,
+ width,
+ height,
+ depth,
+ format,
+ type,
+ bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video);
+ return;
+ }
+ if (srcOffset != null &&
+ (bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video
+ is TypedData)) {
+ _texSubImage3D_8(
+ target,
+ level,
+ xoffset,
+ yoffset,
+ zoffset,
+ width,
+ height,
+ depth,
+ format,
+ type,
+ bitmap_OR_canvas_OR_data_OR_image_OR_offset_OR_pixels_OR_video,
+ srcOffset);
return;
}
throw new ArgumentError("Incorrect number or type of arguments");
@@ -5583,37 +6327,49 @@
@DocsEditable()
@Experimental() // untriaged
void _texSubImage3D_1(target, level, xoffset, yoffset, zoffset, width, height,
- int depth, format, type, TypedData pixels) native;
+ depth, format, type, int offset) native;
@JSName('texSubImage3D')
@DomName('WebGL2RenderingContext.texSubImage3D')
@DocsEditable()
@Experimental() // untriaged
- void _texSubImage3D_2(
- target, level, xoffset, yoffset, zoffset, format, type, data) native;
+ void _texSubImage3D_2(target, level, xoffset, yoffset, zoffset, width, height,
+ depth, 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;
+ void _texSubImage3D_3(target, level, xoffset, yoffset, zoffset, width, height,
+ depth, 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;
+ void _texSubImage3D_4(target, level, xoffset, yoffset, zoffset, width, height,
+ depth, 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;
+ void _texSubImage3D_5(target, level, xoffset, yoffset, zoffset, width, height,
+ depth, 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;
+ void _texSubImage3D_6(target, level, xoffset, yoffset, zoffset, width, height,
+ depth, format, type, ImageBitmap bitmap) native;
+ @JSName('texSubImage3D')
+ @DomName('WebGL2RenderingContext.texSubImage3D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void _texSubImage3D_7(target, level, xoffset, yoffset, zoffset, width, height,
+ depth, format, type, TypedData pixels) native;
+ @JSName('texSubImage3D')
+ @DomName('WebGL2RenderingContext.texSubImage3D')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void _texSubImage3D_8(target, level, xoffset, yoffset, zoffset, width, height,
+ depth, format, type, TypedData pixels, srcOffset) native;
@DomName('WebGL2RenderingContext.transformFeedbackVaryings')
@DocsEditable()
@@ -5632,6 +6388,20 @@
void _transformFeedbackVaryings_1(Program program, List varyings, bufferMode)
native;
+ @JSName('uniform1fv')
+ @DomName('WebGL2RenderingContext.uniform1fv')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void uniform1fv2(UniformLocation location, v, int srcOffset, [int srcLength])
+ native;
+
+ @JSName('uniform1iv')
+ @DomName('WebGL2RenderingContext.uniform1iv')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void uniform1iv2(UniformLocation location, v, int srcOffset, [int srcLength])
+ native;
+
@DomName('WebGL2RenderingContext.uniform1ui')
@DocsEditable()
@Experimental() // untriaged
@@ -5640,7 +6410,22 @@
@DomName('WebGL2RenderingContext.uniform1uiv')
@DocsEditable()
@Experimental() // untriaged
- void uniform1uiv(UniformLocation location, v) native;
+ void uniform1uiv(UniformLocation location, v, [int srcOffset, int srcLength])
+ native;
+
+ @JSName('uniform2fv')
+ @DomName('WebGL2RenderingContext.uniform2fv')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void uniform2fv2(UniformLocation location, v, int srcOffset, [int srcLength])
+ native;
+
+ @JSName('uniform2iv')
+ @DomName('WebGL2RenderingContext.uniform2iv')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void uniform2iv2(UniformLocation location, v, int srcOffset, [int srcLength])
+ native;
@DomName('WebGL2RenderingContext.uniform2ui')
@DocsEditable()
@@ -5650,7 +6435,22 @@
@DomName('WebGL2RenderingContext.uniform2uiv')
@DocsEditable()
@Experimental() // untriaged
- void uniform2uiv(UniformLocation location, v) native;
+ void uniform2uiv(UniformLocation location, v, [int srcOffset, int srcLength])
+ native;
+
+ @JSName('uniform3fv')
+ @DomName('WebGL2RenderingContext.uniform3fv')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void uniform3fv2(UniformLocation location, v, int srcOffset, [int srcLength])
+ native;
+
+ @JSName('uniform3iv')
+ @DomName('WebGL2RenderingContext.uniform3iv')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void uniform3iv2(UniformLocation location, v, int srcOffset, [int srcLength])
+ native;
@DomName('WebGL2RenderingContext.uniform3ui')
@DocsEditable()
@@ -5660,7 +6460,22 @@
@DomName('WebGL2RenderingContext.uniform3uiv')
@DocsEditable()
@Experimental() // untriaged
- void uniform3uiv(UniformLocation location, v) native;
+ void uniform3uiv(UniformLocation location, v, [int srcOffset, int srcLength])
+ native;
+
+ @JSName('uniform4fv')
+ @DomName('WebGL2RenderingContext.uniform4fv')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void uniform4fv2(UniformLocation location, v, int srcOffset, [int srcLength])
+ native;
+
+ @JSName('uniform4iv')
+ @DomName('WebGL2RenderingContext.uniform4iv')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void uniform4iv2(UniformLocation location, v, int srcOffset, [int srcLength])
+ native;
@DomName('WebGL2RenderingContext.uniform4ui')
@DocsEditable()
@@ -5671,7 +6486,8 @@
@DomName('WebGL2RenderingContext.uniform4uiv')
@DocsEditable()
@Experimental() // untriaged
- void uniform4uiv(UniformLocation location, v) native;
+ void uniform4uiv(UniformLocation location, v, [int srcOffset, int srcLength])
+ native;
@DomName('WebGL2RenderingContext.uniformBlockBinding')
@DocsEditable()
@@ -5679,41 +6495,65 @@
void uniformBlockBinding(
Program program, int uniformBlockIndex, int uniformBlockBinding) native;
+ @JSName('uniformMatrix2fv')
+ @DomName('WebGL2RenderingContext.uniformMatrix2fv')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void uniformMatrix2fv2(
+ UniformLocation location, bool transpose, array, int srcOffset,
+ [int srcLength]) native;
+
@DomName('WebGL2RenderingContext.uniformMatrix2x3fv')
@DocsEditable()
@Experimental() // untriaged
- void uniformMatrix2x3fv(UniformLocation location, bool transpose, value)
- native;
+ void uniformMatrix2x3fv(UniformLocation location, bool transpose, value,
+ [int srcOffset, int srcLength]) native;
@DomName('WebGL2RenderingContext.uniformMatrix2x4fv')
@DocsEditable()
@Experimental() // untriaged
- void uniformMatrix2x4fv(UniformLocation location, bool transpose, value)
- native;
+ void uniformMatrix2x4fv(UniformLocation location, bool transpose, value,
+ [int srcOffset, int srcLength]) native;
+
+ @JSName('uniformMatrix3fv')
+ @DomName('WebGL2RenderingContext.uniformMatrix3fv')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void uniformMatrix3fv2(
+ UniformLocation location, bool transpose, array, int srcOffset,
+ [int srcLength]) native;
@DomName('WebGL2RenderingContext.uniformMatrix3x2fv')
@DocsEditable()
@Experimental() // untriaged
- void uniformMatrix3x2fv(UniformLocation location, bool transpose, value)
- native;
+ void uniformMatrix3x2fv(UniformLocation location, bool transpose, value,
+ [int srcOffset, int srcLength]) native;
@DomName('WebGL2RenderingContext.uniformMatrix3x4fv')
@DocsEditable()
@Experimental() // untriaged
- void uniformMatrix3x4fv(UniformLocation location, bool transpose, value)
- native;
+ void uniformMatrix3x4fv(UniformLocation location, bool transpose, value,
+ [int srcOffset, int srcLength]) native;
+
+ @JSName('uniformMatrix4fv')
+ @DomName('WebGL2RenderingContext.uniformMatrix4fv')
+ @DocsEditable()
+ @Experimental() // untriaged
+ void uniformMatrix4fv2(
+ UniformLocation location, bool transpose, array, int srcOffset,
+ [int srcLength]) native;
@DomName('WebGL2RenderingContext.uniformMatrix4x2fv')
@DocsEditable()
@Experimental() // untriaged
- void uniformMatrix4x2fv(UniformLocation location, bool transpose, value)
- native;
+ void uniformMatrix4x2fv(UniformLocation location, bool transpose, value,
+ [int srcOffset, int srcLength]) native;
@DomName('WebGL2RenderingContext.uniformMatrix4x3fv')
@DocsEditable()
@Experimental() // untriaged
- void uniformMatrix4x3fv(UniformLocation location, bool transpose, value)
- native;
+ void uniformMatrix4x3fv(UniformLocation location, bool transpose, value,
+ [int srcOffset, int srcLength]) native;
@DomName('WebGL2RenderingContext.vertexAttribDivisor')
@DocsEditable()
@@ -5753,11 +6593,6 @@
// From WebGLRenderingContextBase
- @DomName('WebGL2RenderingContext.canvas')
- @DocsEditable()
- @Experimental() // untriaged
- final CanvasElement canvas;
-
@DomName('WebGL2RenderingContext.drawingBufferHeight')
@DocsEditable()
@Experimental() // untriaged
@@ -5869,6 +6704,11 @@
@Experimental() // untriaged
void colorMask(bool red, bool green, bool blue, bool alpha) native;
+ @DomName('WebGL2RenderingContext.commit')
+ @DocsEditable()
+ @Experimental() // untriaged
+ Future commit() native;
+
@DomName('WebGL2RenderingContext.compileShader')
@DocsEditable()
@Experimental() // untriaged
@@ -6321,8 +7161,7 @@
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) &&
+ if ((bitmap_OR_border_OR_canvas_OR_image_OR_pixels_OR_video is ImageData) &&
format == null &&
type == null &&
pixels == null) {
@@ -6465,8 +7304,7 @@
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) &&
+ if ((bitmap_OR_canvas_OR_format_OR_image_OR_pixels_OR_video is ImageData) &&
type == null &&
pixels == null) {
var pixels_1 = convertDartToNative_ImageData(
@@ -6813,6 +7651,26 @@
factory Texture._() {
throw new UnsupportedError("Not supported");
}
+
+ @DomName('WebGLTexture.lastUploadedVideoFrameWasSkipped')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final bool lastUploadedVideoFrameWasSkipped;
+
+ @DomName('WebGLTexture.lastUploadedVideoHeight')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final int lastUploadedVideoHeight;
+
+ @DomName('WebGLTexture.lastUploadedVideoTimestamp')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final num lastUploadedVideoTimestamp;
+
+ @DomName('WebGLTexture.lastUploadedVideoWidth')
+ @DocsEditable()
+ @Experimental() // untriaged
+ final int lastUploadedVideoWidth;
}
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
diff --git a/tests/co19/co19-dart2js.status b/tests/co19/co19-dart2js.status
index 86b9d35..9ef5fea 100644
--- a/tests/co19/co19-dart2js.status
+++ b/tests/co19/co19-dart2js.status
@@ -448,8 +448,10 @@
LayoutTests/fast/css/focus-display-block-inline_t01: Pass, RuntimeError # Please triage this failure
LayoutTests/fast/css/font-face-insert-link_t01: Pass, RuntimeError # Please triage this failure
LayoutTests/fast/css/font-face-multiple-ranges-for-unicode-range_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/css/font-face-unicode-range-monospace_t01: Pass, RuntimeError # Please triage this failure
LayoutTests/fast/css/font-face-unicode-range-overlap-load_t01: Skip # Times out, Runtime error. Please triage this failure
LayoutTests/fast/css/fontfaceset-events_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/css/fontfaceset-loadingdone_t01: Pass, RuntimeError # See issue https://github.com/dart-lang/co19/issues/134
LayoutTests/fast/css/getComputedStyle/computed-style-cross-fade_t01: RuntimeError # co19 issue 14
LayoutTests/fast/css/getComputedStyle/computed-style-font_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/getComputedStyle/font-family-fallback-reset_t01: RuntimeError # Please triage this failure
@@ -4896,6 +4898,7 @@
LayoutTests/fast/table/td-bordercolor-attribute_t01: RuntimeError # Please triage this failure
LayoutTests/fast/text-autosizing/vertical-writing-mode_t01: RuntimeError # Please triage this failure
LayoutTests/fast/text/container-align-with-inlines_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/decomposed-after-stacked-diacritics_t01: RuntimeError # Issue 32578
LayoutTests/fast/text/find-backwards_t01: RuntimeError # Please triage this failure
LayoutTests/fast/text/find-case-folding_t01: RuntimeError # Please triage this failure
LayoutTests/fast/text/find-hidden-text_t01: RuntimeError # Please triage this failure
@@ -4908,11 +4911,16 @@
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/international/cjk-segmentation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/international/complex-text-rectangle_t01: RuntimeError # Issue 32578
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/justification-padding-mid-word_t01: RuntimeError # Issue 32578
+LayoutTests/fast/text/line-break-after-inline-latin1_t01: RuntimeError # Issue 32578
LayoutTests/fast/text/line-break-after-question-mark_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/line-breaks-after-ideographic-comma-or-full-stop_t02: RuntimeError # Issue 32578
+LayoutTests/fast/text/multiglyph-characters_t01: RuntimeError # Issue 32578
LayoutTests/fast/text/offsetForPosition-cluster-at-zero_t01: RuntimeError # Please triage this failure
LayoutTests/fast/text/pre-wrap-trailing-tab_t01: RuntimeError # Please triage this failure
LayoutTests/fast/text/remove-zero-length-run_t01: RuntimeError # Please triage this failure
@@ -5079,6 +5087,8 @@
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/getAttribute_A01_t01: Skip # Times out. Please triage this failure
+LibTest/html/Element/getBoundingClientRect_A01_t02: RuntimeError # Issue 32578
+LibTest/html/Element/getClientRects_A01_t02: RuntimeError # Issue 32579
LibTest/html/Element/getNamespacedAttributes_A01_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
@@ -5127,6 +5137,7 @@
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/focus_A01_t01: Pass, RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/getClientRects_A01_t02: RuntimeError # Issue 32578
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/leftView_A01_t01: RuntimeError # Please triage this failure
@@ -5732,6 +5743,7 @@
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-flex-box-zero-width-intrinsic-max-width_t01: RuntimeError # Issue 32568
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
@@ -5886,6 +5898,7 @@
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/getClientRects-character_t01: RuntimeError # Issue 32573
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
@@ -6113,6 +6126,7 @@
LayoutTests/fast/forms/autofocus-input-css-style-change_t01: Pass, RuntimeError # Fails 7 out of 10.
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/checkValidity-001_t01: RuntimeError # co19 issue 142
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
@@ -6162,10 +6176,14 @@
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/selection-wrongtype_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/setCustomValidity-existence_t01: RuntimeError # co19 issue 141
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/forms/validationMessage_t01: RuntimeError # Issue 32567
+LayoutTests/fast/forms/validity-property_t01: RuntimeError # co19 issue 140
+LayoutTests/fast/forms/willvalidate_t01: RuntimeError # co19 issue 142
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
@@ -6292,6 +6310,7 @@
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/decomposed-after-stacked-diacritics_t01: RuntimeError # See issue 32574
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
@@ -6301,11 +6320,16 @@
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/complex-text-rectangle_t01: RuntimeError # See issue 32575
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/justification-padding-mid-word_t01: RuntimeError # Issue 32577
+LayoutTests/fast/text/line-break-after-inline-latin1_t01: RuntimeError # Issue 32569
LayoutTests/fast/text/line-break-after-question-mark_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/line-breaks-after-ideographic-comma-or-full-stop_t02: RuntimeError # Issue 32570
+LayoutTests/fast/text/multiglyph-characters_t01: RuntimeError # Issue 32577
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
diff --git a/tests/compiler/dart2js/equivalence/check_helpers.dart b/tests/compiler/dart2js/equivalence/check_helpers.dart
index a0ac080..9191c01 100644
--- a/tests/compiler/dart2js/equivalence/check_helpers.dart
+++ b/tests/compiler/dart2js/equivalence/check_helpers.dart
@@ -678,6 +678,13 @@
sb.write('void');
}
+ @override
+ visitFutureOrType(FutureOrType type, _) {
+ sb.write('FutureOr<');
+ visit(type.typeArgument);
+ sb.write('>');
+ }
+
String getText() => sb.toString();
}
diff --git a/tests/compiler/dart2js/model/future_or_test.dart b/tests/compiler/dart2js/model/future_or_test.dart
new file mode 100644
index 0000000..a183c3a
--- /dev/null
+++ b/tests/compiler/dart2js/model/future_or_test.dart
@@ -0,0 +1,127 @@
+// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
+// for 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/commandline_options.dart';
+import 'package:compiler/src/elements/types.dart';
+import 'package:expect/expect.dart';
+import '../type_test_helper.dart';
+
+main() {
+ asyncTest(() async {
+ var env = await TypeEnvironment.create(
+ '''
+Future<num> futureNum() async => null;
+FutureOr<num> futureOrNum() async => null;
+
+Future<int> futureInt() async => null;
+FutureOr<int> futureOrInt() async => null;
+
+Future<List<num>> futureListNum() async => null;
+FutureOr<List<num>> futureOrListNum() async => null;
+
+Future<Future<num>> futureFutureNum() async => null;
+FutureOr<FutureOr<num>> futureOrFutureOrNum() async => null;
+
+Future<Null> futureNull() async => null;
+FutureOr<Null> futureOrNull() async => null;
+''',
+ compileMode: CompileMode.kernel,
+ options: [Flags.strongMode]);
+ DartType getReturnType(String name, String expectedType) {
+ FunctionType type = env.getMemberType(name);
+ DartType returnType = type.returnType;
+ Expect.equals(expectedType, '${returnType}');
+ return returnType;
+ }
+
+ DartType Object_ = env['Object'];
+
+ DartType futureNum = getReturnType('futureNum', 'Future<num>');
+ FutureOrType futureOrNum = getReturnType('futureOrNum', 'FutureOr<num>');
+ DartType num_ = futureOrNum.typeArgument;
+
+ DartType futureInt = getReturnType('futureInt', 'Future<int>');
+ FutureOrType futureOrInt = getReturnType('futureOrInt', 'FutureOr<int>');
+ DartType int_ = futureOrInt.typeArgument;
+
+ DartType futureListNum =
+ getReturnType('futureListNum', 'Future<List<num>>');
+ FutureOrType futureOrListNum =
+ getReturnType('futureOrListNum', 'FutureOr<List<num>>');
+ DartType ListNum = futureOrListNum.typeArgument;
+
+ DartType futureFutureNum =
+ getReturnType('futureFutureNum', 'Future<Future<num>>');
+ FutureOrType futureOrFutureOrNum =
+ getReturnType('futureOrFutureOrNum', 'FutureOr<FutureOr<num>>');
+
+ DartType futureNull = getReturnType('futureNull', 'Future<Null>');
+ FutureOrType futureOrNull = getReturnType('futureOrNull', 'FutureOr<Null>');
+ DartType Null_ = futureOrNull.typeArgument;
+
+ List<DartType> all = [
+ Object_,
+ num_,
+ int_,
+ Null_,
+ ListNum,
+ futureNum,
+ futureOrNum,
+ futureInt,
+ futureNull,
+ futureListNum,
+ futureOrInt,
+ futureOrNull,
+ futureOrListNum,
+ futureFutureNum,
+ futureOrFutureOrNum,
+ ];
+
+ Map<DartType, List<DartType>> expectedSubtypesMap = {
+ num_: [futureOrNum, futureOrFutureOrNum],
+ int_: [num_, futureOrInt, futureOrNum, futureOrFutureOrNum],
+ ListNum: [futureOrListNum],
+ futureNum: [futureOrNum, futureOrFutureOrNum],
+ futureInt: [futureNum, futureOrNum, futureOrInt, futureOrFutureOrNum],
+ futureNull: [
+ futureOrNull,
+ futureNum,
+ futureOrNum,
+ futureInt,
+ futureOrInt,
+ futureListNum,
+ futureOrListNum,
+ futureFutureNum,
+ futureOrFutureOrNum,
+ futureOrNull,
+ ],
+ futureListNum: [futureOrListNum],
+ futureFutureNum: [futureOrFutureOrNum],
+ futureOrNum: [futureOrFutureOrNum],
+ futureOrInt: [futureOrNum, futureOrFutureOrNum],
+ futureOrNull: [
+ futureOrNum,
+ futureOrInt,
+ futureOrListNum,
+ futureOrFutureOrNum
+ ],
+ };
+
+ for (DartType t in all) {
+ List<DartType> expectedSubtypes = expectedSubtypesMap[t] ?? [];
+ for (DartType s in all) {
+ bool expectedSubtype = t == s ||
+ expectedSubtypes.contains(s) ||
+ s == Object_ ||
+ t == Null_;
+ Expect.equals(
+ expectedSubtype,
+ env.isSubtype(t, s),
+ "$t${expectedSubtype ? '' : ' not'} "
+ "expected to be a subtype of $s.");
+ }
+ }
+ });
+}
diff --git a/tests/compiler/dart2js/old_frontend/analyze_api_test.dart b/tests/compiler/dart2js/old_frontend/analyze_api_test.dart
index 458824e..678e798 100644
--- a/tests/compiler/dart2js/old_frontend/analyze_api_test.dart
+++ b/tests/compiler/dart2js/old_frontend/analyze_api_test.dart
@@ -18,7 +18,14 @@
* the error/warning message in the list of white-listings for each file.
*/
// TODO(johnniwinther): Support canonical URIs as keys.
-const Map<String, List<String>> WHITE_LIST = const {};
+const Map<String, List<String>> WHITE_LIST = const {
+ "sdk/lib/io/file.dart": const [
+ "'void' is not a subtype of bound 'Object' for type variable",
+ ],
+ "sdk/lib/io/file_impl.dart": const [
+ "'void' is not a subtype of bound 'Object' for type variable",
+ ],
+};
void main() {
var uriList = new List<Uri>();
diff --git a/tests/compiler/dart2js/old_frontend/analyze_unused_dart2js_test.dart b/tests/compiler/dart2js/old_frontend/analyze_unused_dart2js_test.dart
index 558bb2f..dd803ab 100644
--- a/tests/compiler/dart2js/old_frontend/analyze_unused_dart2js_test.dart
+++ b/tests/compiler/dart2js/old_frontend/analyze_unused_dart2js_test.dart
@@ -55,9 +55,21 @@
"Duplicated library name 'kernel.transformations.closure.converter'",
],
+ "pkg/kernel/lib/binary/ast_to_binary.dart": const [
+ "'void' is not a subtype of bound 'Object' for type variable",
+ ],
+
"pkg/compiler/lib/src/js_backend/runtime_types.dart": const [
"'void' is not a subtype of bound 'Object' for type variable",
],
+
+ "sdk/lib/io/file.dart": const [
+ "'void' is not a subtype of bound 'Object' for type variable",
+ ],
+
+ "sdk/lib/io/file_impl.dart": const [
+ "'void' is not a subtype of bound 'Object' for type variable",
+ ],
};
void main() {
diff --git a/tests/corelib_2/bigint_from_test.dart b/tests/corelib_2/bigint_from_test.dart
new file mode 100644
index 0000000..c25e457
--- /dev/null
+++ b/tests/corelib_2/bigint_from_test.dart
@@ -0,0 +1,67 @@
+// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
+// for 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 'dart:math' show pow;
+
+main() {
+ // Test integers.
+ testInt(0);
+ for (int i = 0; i < 63; i++) {
+ var n = pow(2, i);
+ testInt(-n - 1);
+ testInt(-n);
+ testInt(-n + 1);
+ testInt(n - 1);
+ testInt(n);
+ testInt(n + 1);
+ }
+ testInt(-0x8000000000000000);
+
+ // Test doubles.
+ testDouble(0.0);
+ testDouble(-0.0, 0.0);
+ for (double d in [
+ 1.0,
+ 2.0,
+ pow(2.0, 30) - 1,
+ pow(2.0, 30),
+ pow(2.0, 31) - 1,
+ pow(2.0, 31),
+ pow(2.0, 31) + 1,
+ pow(2.0, 32) - 1,
+ pow(2.0, 32),
+ pow(2.0, 32) + 1,
+ pow(2.0, 52) - 1,
+ pow(2.0, 52),
+ pow(2.0, 52) + 1,
+ pow(2.0, 53) - 1,
+ pow(2.0, 53),
+ ]) {
+ for (int p = 0; p < 1024; p++) {
+ var value = d * pow(2.0, p); // Valid integer value.
+ if (!value.isFinite) break;
+ testDouble(-value);
+ testDouble(value);
+ }
+ }
+ Expect.equals(BigInt.zero, new BigInt.from(0.5));
+ Expect.equals(BigInt.one, new BigInt.from(1.5));
+
+ Expect.throws(() => new BigInt.from(double.infinity));
+ Expect.throws(() => new BigInt.from(-double.infinity));
+ Expect.throws(() => new BigInt.from(double.nan));
+}
+
+testInt(int n) {
+ var bigint = new BigInt.from(n);
+ Expect.equals(n, bigint.toInt());
+ Expect.equals("$n", "$bigint");
+}
+
+testDouble(double input, [double expectation]) {
+ var bigint = new BigInt.from(input);
+ Expect.equals(expectation ?? input, bigint.toDouble());
+}
diff --git a/tests/corelib_2/corelib_2.status b/tests/corelib_2/corelib_2.status
index 2e60e22..4083750a 100644
--- a/tests/corelib_2/corelib_2.status
+++ b/tests/corelib_2/corelib_2.status
@@ -4,12 +4,14 @@
iterable_where_type_test: RuntimeError # Disabled. Issue 32463
[ $compiler == dart2analyzer ]
+bigint_from_test: CompileTimeError # Issue 32585
compare_to2_test: CompileTimeError # invalid test
int_parse_radix_bad_handler_test: MissingCompileTimeError
iterable_element_at_test/static: Pass
num_sign_test: Crash, Pass # Issue 31768
[ $compiler == dart2js ]
+bigint_from_test: RuntimeError # Issue 32589
date_time11_test: RuntimeError, Pass # Fails when US is on winter time, issue 31285.
int_parse_radix_test/badTypes: RuntimeError # wrong exception returned
iterable_where_type_test: RuntimeError # issue 31718
@@ -20,6 +22,7 @@
[ $compiler == dartdevk ]
apply3_test: RuntimeError
+bigint_from_test: RuntimeError # Issue 32589
bool_from_environment2_test/03: Crash
int_modulo_arith_test/modPow: RuntimeError
int_modulo_arith_test/none: RuntimeError
@@ -250,7 +253,6 @@
regexp/regress-regexp-codeflush_test: RuntimeError
regexp/standalones_test: RuntimeError
splay_tree_from_iterable_test: RuntimeError
-stacktrace_fromstring_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(bindCallback.R) in (local(_RootZone.bindCallback#)) for j:closure_call(_RootZone_bindCallback_closure.call).
string_from_list_test: RuntimeError
string_fromcharcodes_test: RuntimeError
string_replace_test: Crash # NoSuchMethodError: The getter 'isDynamic' was called on null.
@@ -303,7 +305,6 @@
regexp/regress-regexp-codeflush_test: RuntimeError
regexp/standalones_test: RuntimeError
splay_tree_from_iterable_test: RuntimeError
-stacktrace_fromstring_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(bindCallback.R) in (local(_RootZone.bindCallback#)) for j:closure_call(_RootZone_bindCallback_closure.call).
string_from_list_test: RuntimeError
string_fromcharcodes_test: RuntimeError
string_replace_test: Crash # NoSuchMethodError: The getter 'isDynamic' was called on null.
@@ -318,6 +319,7 @@
uri_test: RuntimeError
[ $compiler == dart2js && $fasta && $strong ]
+map_update_test: Crash # Issue 32453
null_nosuchmethod_test: RuntimeError # Fails if type checks are skipped.
shuffle_test: RuntimeError
@@ -344,6 +346,7 @@
string_from_environment3_test/03: MissingCompileTimeError
[ $compiler == dartdevc && $runtime != none ]
+bigint_from_test: CompileTimeError # Issue 32585
compare_to2_test: CompileTimeError # invalid test
null_nosuchmethod_test/01: RuntimeError # Issue 32088
symbol_operator_test: RuntimeError # Issue 29921
diff --git a/tests/corelib_2/map_update_test.dart b/tests/corelib_2/map_update_test.dart
new file mode 100644
index 0000000..c00caca
--- /dev/null
+++ b/tests/corelib_2/map_update_test.dart
@@ -0,0 +1,214 @@
+// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
+// for 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 'dart:collection';
+import 'dart:convert' show json;
+
+Map<String, dynamic> newJsonMap() => json.decode('{}');
+Map<String, dynamic> newJsonMapCustomReviver() =>
+ json.decode('{}', reviver: (key, value) => value);
+
+void main() {
+ test({});
+ test(new LinkedHashMap());
+ test(new HashMap());
+ test(new LinkedHashMap.identity());
+ test(new HashMap.identity());
+ test(new MapView(new HashMap()));
+ test(new MapBaseMap());
+ test(new MapMixinMap());
+ test(newJsonMap());
+ test(newJsonMapCustomReviver());
+ testNonNull(new SplayTreeMap());
+ testNonNull(new SplayTreeMap(Comparable.compare));
+ testNonNull(new MapView(new SplayTreeMap()));
+}
+
+void test(Map<Comparable, Object> map) {
+ testNonNull(map);
+
+ // Also works with null keys and values (omitted for splay-tree based maps)
+ map.clear();
+ map.update(null, unreachable, ifAbsent: () => null);
+ Expect.mapEquals({null: null}, map);
+ map.update(null, (v) => "$v", ifAbsent: unreachable);
+ Expect.mapEquals({null: "null"}, map);
+ map.update(null, (v) => null, ifAbsent: unreachable);
+ Expect.mapEquals({null: null}, map);
+}
+
+void testNonNull(Map<Comparable, Object> map) {
+ // Only use literal String keys since JSON maps only accept strings,
+ // and literals works with identity-maps, and it's comparable for SplayTreeMap
+ // maps.
+ Expect.mapEquals({}, map);
+ map.update("key1", unreachable, ifAbsent: () => 42);
+ Expect.mapEquals({"key1": 42}, map);
+ map.clear();
+ map["key1"] = 42;
+ map.update("key1", (v) => 1 + v, ifAbsent: unreachable);
+ Expect.mapEquals({"key1": 43}, map);
+ map.clear();
+
+ // Operations on maps with multiple elements.
+ var multi = {
+ "k1": 1,
+ "k2": 2,
+ "k3": 3,
+ "k4": 4,
+ "k5": 5,
+ "k6": 6,
+ "k7": 7,
+ "k8": 8,
+ "k9": 9,
+ "k10": 10,
+ };
+ map.addAll(multi);
+ Expect.mapEquals(multi, map);
+ map.update("k3", (v) => 13);
+ map.update("k6", (v) => 16);
+ map.update("k11", unreachable, ifAbsent: () => 21);
+ Expect.mapEquals({
+ "k1": 1,
+ "k2": 2,
+ "k3": 13,
+ "k4": 4,
+ "k5": 5,
+ "k6": 16,
+ "k7": 7,
+ "k8": 8,
+ "k9": 9,
+ "k10": 10,
+ "k11": 21,
+ }, map);
+
+ map.clear();
+ map.updateAll((k, v) => throw "unreachable");
+ Expect.mapEquals({}, map);
+
+ map.addAll(multi);
+ map.updateAll((k, v) => "$k:$v");
+ Expect.mapEquals({
+ "k1": "k1:1",
+ "k2": "k2:2",
+ "k3": "k3:3",
+ "k4": "k4:4",
+ "k5": "k5:5",
+ "k6": "k6:6",
+ "k7": "k7:7",
+ "k8": "k8:8",
+ "k9": "k9:9",
+ "k10": "k10:10",
+ }, map);
+
+ map.clear();
+ Expect.throws(
+ () => map.update("key1", unreachable, ifAbsent: () => throw "expected"),
+ (t) => t == "expected");
+
+ map["key1"] = 42;
+ Expect.throws(() => map.update("key1", (_) => throw "expected"),
+ (t) => t == "expected");
+
+ // No ifAbsent means throw if key not there.
+ Expect.throws(() => map.update("key-not", unreachable), (e) => e is Error);
+
+ Expect.throws(() => map.update("key1", null), (e) => e is Error);
+
+ // Works with null values.
+ map.clear();
+ map.update("key1", unreachable, ifAbsent: () => null);
+ Expect.mapEquals({"key1": null}, map);
+ map.update("key1", (v) => "$v", ifAbsent: unreachable);
+ Expect.mapEquals({"key1": "null"}, map);
+ map.update("key1", (v) => null, ifAbsent: unreachable);
+ Expect.mapEquals({"key1": null}, map);
+}
+
+// Slow implementation of Map based on MapBase.
+abstract class MapBaseOperations<K, V> {
+ final List _keys = <K>[];
+ final List _values = <V>[];
+ int _modCount = 0;
+
+ V operator [](Object key) {
+ int index = _keys.indexOf(key);
+ if (index < 0) return null;
+ return _values[index];
+ }
+
+ Iterable<K> get keys => new TestKeyIterable<K>(this);
+
+ void operator []=(K key, V value) {
+ int index = _keys.indexOf(key);
+ if (index >= 0) {
+ _values[index] = value;
+ } else {
+ _modCount++;
+ _keys.add(key);
+ _values.add(value);
+ }
+ }
+
+ V remove(Object key) {
+ int index = _keys.indexOf(key);
+ if (index >= 0) {
+ var result = _values[index];
+ key = _keys.removeLast();
+ var value = _values.removeLast();
+ if (index != _keys.length) {
+ _keys[index] = key;
+ _values[index] = value;
+ }
+ _modCount++;
+ return result;
+ }
+ return null;
+ }
+
+ void clear() {
+ // Clear cannot be based on remove, since remove won't remove keys that
+ // are not equal to themselves. It will fail the testNaNKeys test.
+ _keys.clear();
+ _values.clear();
+ _modCount++;
+ }
+}
+
+class MapBaseMap<K, V> = MapBase<K, V> with MapBaseOperations<K, V>;
+class MapMixinMap<K, V> = MapBaseOperations<K, V> with MapMixin<K, V>;
+
+class TestKeyIterable<K> extends IterableBase<K> {
+ final _map;
+ TestKeyIterable(this._map);
+ int get length => _map._keys.length;
+ Iterator<K> get iterator => new TestKeyIterator<K>(_map);
+}
+
+class TestKeyIterator<K> implements Iterator<K> {
+ final _map;
+ final int _modCount;
+ int _index = 0;
+ var _current;
+ TestKeyIterator(map)
+ : _map = map,
+ _modCount = map._modCount;
+
+ bool moveNext() {
+ if (_modCount != _map._modCount) {
+ throw new ConcurrentModificationError(_map);
+ }
+ if (_index == _map._keys.length) {
+ _current = null;
+ return false;
+ }
+ _current = _map._keys[_index++];
+ return true;
+ }
+
+ K get current => _current;
+}
+
+Null unreachable([_, __]) => throw "unreachable";
diff --git a/tests/html/audiobuffersourcenode_test.dart b/tests/html/audiobuffersourcenode_test.dart
index 7da731f..34dc221 100644
--- a/tests/html/audiobuffersourcenode_test.dart
+++ b/tests/html/audiobuffersourcenode_test.dart
@@ -19,7 +19,7 @@
var ctx = new AudioContext();
AudioBufferSourceNode node = ctx.createBufferSource();
expect(node is AudioBufferSourceNode, isTrue);
- node.start(ctx.currentTime, 0, 2);
+ node.start2(ctx.currentTime, 0, 2);
expect(node is AudioBufferSourceNode, isTrue);
}
});
diff --git a/tests/html/client_rect_test.dart b/tests/html/client_rect_test.dart
index 4b4481a..7b086f3 100644
--- a/tests/html/client_rect_test.dart
+++ b/tests/html/client_rect_test.dart
@@ -5,8 +5,7 @@
import 'dart:html';
main() {
- var isRectList =
- predicate((x) => x is List<Rectangle>, 'is a List<Rectangle>');
+ var isRectList = predicate((x) => x is DomRectList, 'is a DomRectList');
insertTestDiv() {
var element = new Element.tag('div');
diff --git a/tests/html/element_types_constructors2_test.dart b/tests/html/element_types_constructors2_test.dart
index f351831..a714031 100644
--- a/tests/html/element_types_constructors2_test.dart
+++ b/tests/html/element_types_constructors2_test.dart
@@ -35,7 +35,5 @@
check('iframe', () => new IFrameElement() is IFrameElement);
check('img', () => new ImageElement() is ImageElement);
check('input', () => new InputElement() is InputElement);
- check('keygen', () => new KeygenElement() is KeygenElement,
- KeygenElement.supported);
});
}
diff --git a/tests/html/element_types_test.dart b/tests/html/element_types_test.dart
index 57129b9..6f434b9 100644
--- a/tests/html/element_types_test.dart
+++ b/tests/html/element_types_test.dart
@@ -35,12 +35,6 @@
});
});
- group('supported_keygen', () {
- test('supported', () {
- expect(KeygenElement.supported, true);
- });
- });
-
group('supported_meter', () {
test('supported', () {
expect(MeterElement.supported, true);
diff --git a/tests/html/fileapi_test.dart b/tests/html/fileapi_test.dart
index 4c36c53..a867c92 100644
--- a/tests/html/fileapi_test.dart
+++ b/tests/html/fileapi_test.dart
@@ -43,8 +43,8 @@
test('directoryDoesntExist', () {
return fs.root.getDirectory('directory2').catchError((error) {
- expect(error.code, equals(FileError.NOT_FOUND_ERR));
- }, test: (e) => e is FileError);
+ expect(error.code, equals(DomException.NOT_FOUND));
+ }, test: (e) => e is DomError);
});
test('directoryCreate', () {
@@ -61,8 +61,8 @@
test('fileDoesntExist', () {
return fs.root.getFile('file2').catchError((error) {
- expect(error.code, equals(FileError.NOT_FOUND_ERR));
- }, test: (e) => e is FileError);
+ expect(error.code, equals(DomException.NOT_FOUND));
+ }, test: (e) => e is DomError);
});
test('fileCreate', () {
@@ -139,8 +139,8 @@
expect(entry.fullPath, '/dir_moveTo/movedFile');
return fs.root.getFile('file4');
}).catchError((error) {
- expect(error.code, equals(FileError.NOT_FOUND_ERR));
- }, test: (e) => e is FileError);
+ expect(error.code, equals(DomException.NOT_FOUND));
+ }, test: (e) => e is DomError);
});
test('remove', () {
diff --git a/tests/html/html.status b/tests/html/html.status
index 3796ec1..bd4fae9 100644
--- a/tests/html/html.status
+++ b/tests/html/html.status
@@ -65,6 +65,7 @@
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_test/position: RuntimeError # Issue 32578
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.
@@ -100,6 +101,7 @@
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/getBoundingClientRect: RuntimeError # Isue 32580
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.
@@ -501,7 +503,6 @@
js_typed_interop_default_arg_test/explicit_argument: RuntimeError
js_typed_interop_test/static_method_tearoff_1: RuntimeError
mirrors_js_typed_interop_test: SkipByDesign
-websql_test/Database/Database: Pass, RuntimeError
[ $compiler == dart2js && $fasta && $host_checked ]
fontface_loaded_test: Crash
diff --git a/tests/html/indexeddb_5_test.dart b/tests/html/indexeddb_5_test.dart
index cc50cea..b61b90f 100644
--- a/tests/html/indexeddb_5_test.dart
+++ b/tests/html/indexeddb_5_test.dart
@@ -32,14 +32,6 @@
});
});
- if (html.window.indexedDB.supportsDatabaseNames) {
- test('getDatabaseNames', () {
- return html.window.indexedDB.getDatabaseNames().then((names) {
- expect(names.contains(dbName), isTrue);
- });
- });
- }
-
var value = {'name_index': 'one', 'value': 'add_value'};
test('add/delete', () {
var transaction = db.transaction(storeName, 'readwrite');
diff --git a/tests/html/touchevent_test.dart b/tests/html/touchevent_test.dart
index 48cc98d..b1a92e8 100644
--- a/tests/html/touchevent_test.dart
+++ b/tests/html/touchevent_test.dart
@@ -11,20 +11,12 @@
main() {
useHtmlIndividualConfiguration();
- group('supported', () {
- test('supported', () {
- expect(TouchEvent.supported, true);
- });
- });
-
group('functional', () {
- test('unsupported throws', () {
- var expectation = TouchEvent.supported ? returnsNormally : throws;
-
- expect(() {
- var e = new TouchEvent(null, null, null, 'touch');
- expect(e is TouchEvent, true);
- }, expectation);
+ test('Basic TouchEvent', () {
+ if (TouchEvent.supported) {
+ var e = new TouchEvent('touch');
+ expect(e is TouchEvent, isTrue);
+ }
});
});
}
diff --git a/tests/language_2/closure_type_variables_test.dart b/tests/language_2/closure_type_variables_test.dart
index 9c39a70..2fe276c 100644
--- a/tests/language_2/closure_type_variables_test.dart
+++ b/tests/language_2/closure_type_variables_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:expect/expect.dart";
// Test that type variables are available in closures.
@@ -26,7 +28,18 @@
}
}
+class B<K> {
+ makeBaz() {
+ return (K key) async {
+ return null;
+ };
+ }
+}
+
+typedef Future<Null> aBaz(int a);
+
main() {
Expect.isTrue(new A<int>().foo() is A<int>);
Expect.isTrue(new A<int>.bar().foo() is A<int>);
+ Expect.isTrue(new B<int>().makeBaz() is aBaz);
}
diff --git a/tests/language_2/language_2_dart2js.status b/tests/language_2/language_2_dart2js.status
index db6dba1..f42f191 100644
--- a/tests/language_2/language_2_dart2js.status
+++ b/tests/language_2/language_2_dart2js.status
@@ -1145,110 +1145,51 @@
assertion_initializer_const_error2_test/none: CompileTimeError
assertion_initializer_test: CompileTimeError
assertion_test: RuntimeError
-async_and_or_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_await_catch_regression_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_await_foreign_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(bindCallback.R) in (local(_RootZone.bindCallback#)) for j:closure_call(_RootZone_bindCallback_closure.call).
-async_await_syntax_test/a01a: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_await_syntax_test/a02a: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_await_syntax_test/a03a: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_await_syntax_test/a03b: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_await_syntax_test/a05a: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_await_syntax_test/a05b: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_await_syntax_test/a06a: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_await_syntax_test/a09a: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_await_syntax_test/a11c: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_await_syntax_test/a11d: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_await_syntax_test/a12g: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_await_syntax_test/b01a: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_await_syntax_test/b02a: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_await_syntax_test/b03a: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_await_syntax_test/b05a: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_await_syntax_test/b06a: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_await_syntax_test/b09a: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_await_syntax_test/b11c: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_await_syntax_test/b11d: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_await_syntax_test/b12g: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_await_syntax_test/c01a: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_await_syntax_test/c02a: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_await_syntax_test/c03a: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_await_syntax_test/c05a: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_await_syntax_test/c06a: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_await_syntax_test/c09a: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_await_syntax_test/d01a: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_await_syntax_test/d02a: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_await_syntax_test/d03a: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_await_syntax_test/d05a: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_await_syntax_test/d06a: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_await_syntax_test/d09a: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_await_test/02: Crash # Assertion failure: Runtime type information not available for type_variable_local(bindCallback.R) in (local(_RootZone.bindCallback#)) for j:closure_call(_RootZone_bindCallback_closure.call).
-async_await_test/03: Crash # Assertion failure: Runtime type information not available for type_variable_local(bindCallback.R) in (local(_RootZone.bindCallback#)) for j:closure_call(_RootZone_bindCallback_closure.call).
-async_await_test/none: Crash # Assertion failure: Runtime type information not available for type_variable_local(bindCallback.R) in (local(_RootZone.bindCallback#)) for j:closure_call(_RootZone_bindCallback_closure.call).
-async_break_in_finally_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_call_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_cascade_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_congruence_local_test/none: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_congruence_method_test/none: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_congruence_top_level_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_congruence_unnamed_test/none: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_continue_label_test/await_in_body: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_continue_label_test/await_in_condition: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_continue_label_test/await_in_init: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_continue_label_test/await_in_update: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_continue_label_test/none: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_control_structures_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
+async_await_syntax_test/a06a: RuntimeError
+async_await_syntax_test/b06a: RuntimeError
+async_await_syntax_test/c06a: RuntimeError
+async_await_syntax_test/d06a: RuntimeError
+async_await_test/02: RuntimeError
+async_await_test/03: RuntimeError
+async_await_test/none: RuntimeError
+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_error_timing_test: RuntimeError
-async_finally_rethrow_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
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_regression_23058_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_rethrow_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
async_return_types_test/nestedFuture: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_return_types_test/none: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
+async_return_types_test/none: RuntimeError
async_return_types_test/tooManyTypeParameters: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
async_return_types_test/wrongReturnType: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_star_await_pauses_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(bindCallback.R) in (local(_RootZone.bindCallback#)) for j:closure_call(_RootZone_bindCallback_closure.call).
-async_star_cancel_and_throw_in_finally_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
+async_star_await_pauses_test: RuntimeError
+async_star_cancel_and_throw_in_finally_test: RuntimeError
async_star_cancel_while_paused_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_star_no_cancel2_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_star_no_cancel_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_star_pause_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_star_regression_2238_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(bindCallback.R) in (local(_RootZone.bindCallback#)) for j:closure_call(_RootZone_bindCallback_closure.call).
-async_star_regression_23116_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_star_regression_fisk_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_star_stream_take_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(bindCallback.R) in (local(_RootZone.bindCallback#)) for j:closure_call(_RootZone_bindCallback_closure.call).
-async_star_take_reyield_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_star_test/01: Crash # Assertion failure: Unexpected arguments. Expected 1 argument, actual: [invoke dynamic method: selector=Selector(operator, *, arity=1), mask=[subclass=JSUInt32], HTypeInfoReadVariable(ListQueue.E)].
-async_star_test/02: Crash # Assertion failure: Unexpected arguments. Expected 1 argument, actual: [invoke dynamic method: selector=Selector(operator, *, arity=1), mask=[subclass=JSUInt32], HTypeInfoReadVariable(ListQueue.E)].
-async_star_test/03: Crash # Assertion failure: Unexpected arguments. Expected 1 argument, actual: [invoke dynamic method: selector=Selector(operator, *, arity=1), mask=[subclass=JSUInt32], HTypeInfoReadVariable(ListQueue.E)].
-async_star_test/04: Crash # Assertion failure: Unexpected arguments. Expected 1 argument, actual: [invoke dynamic method: selector=Selector(operator, *, arity=1), mask=[subclass=JSUInt32], HTypeInfoReadVariable(ListQueue.E)].
-async_star_test/05: Crash # Assertion failure: Unexpected arguments. Expected 1 argument, actual: [invoke dynamic method: selector=Selector(operator, *, arity=1), mask=[subclass=JSUInt32], HTypeInfoReadVariable(ListQueue.E)].
-async_star_test/none: Crash # Assertion failure: Unexpected arguments. Expected 1 argument, actual: [invoke dynamic method: selector=Selector(operator, *, arity=1), mask=[subclass=JSUInt32], HTypeInfoReadVariable(ListQueue.E)].
-async_switch_test/none: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_switch_test/withDefault: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(bindCallback.R) in (local(_RootZone.bindCallback#)) for j:closure_call(_RootZone_bindCallback_closure.call).
-async_this_bound_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_throw_in_catch_test/forceAwait: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-async_throw_in_catch_test/none: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-asyncstar_concat_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-asyncstar_throw_in_catch_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(bindCallback.R) in (local(_RootZone.bindCallback#)) for j:closure_call(_RootZone_bindCallback_closure.call).
-asyncstar_yield_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-asyncstar_yieldstar_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-await_and_ifnull_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-await_backwards_compatibility_test/none: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-await_exceptions_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-await_for_cancel_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-await_for_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(bindCallback.R) in (local(_RootZone.bindCallback#)) for j:closure_call(_RootZone_bindCallback_closure.call).
-await_for_use_local_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-await_future_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-await_in_cascade_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-await_nonfuture_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
+async_star_no_cancel2_test: RuntimeError
+async_star_no_cancel_test: RuntimeError
+async_star_pause_test: RuntimeError
+async_star_regression_2238_test: RuntimeError
+async_star_regression_23116_test: RuntimeError
+async_star_regression_fisk_test: RuntimeError
+async_star_stream_take_test: RuntimeError
+async_star_take_reyield_test: RuntimeError
+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
+async_test: RuntimeError
+asyncstar_concat_test: RuntimeError
+asyncstar_yield_test: RuntimeError
+asyncstar_yieldstar_test: RuntimeError
+await_for_cancel_test: RuntimeError
+await_for_test: RuntimeError
+await_for_use_local_test: RuntimeError
await_not_started_immediately_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(bindCallback.R) in (local(_RootZone.bindCallback#)) for j:closure_call(_RootZone_bindCallback_closure.call).
-await_null_aware_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-await_postfix_expr_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-await_regression_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-await_started_immediately_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-await_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
+await_test: RuntimeError
bad_override_test/01: MissingCompileTimeError
bad_override_test/02: MissingCompileTimeError
bad_override_test/03: MissingCompileTimeError
@@ -1263,9 +1204,9 @@
call_non_method_field_test/01: MissingCompileTimeError
call_non_method_field_test/02: MissingCompileTimeError
canonical_const2_test: RuntimeError, OK # non JS number semantics
-cha_deopt1_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-cha_deopt2_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-cha_deopt3_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
+cha_deopt1_test: RuntimeError
+cha_deopt2_test: RuntimeError
+cha_deopt3_test: RuntimeError
check_member_static_test/01: MissingCompileTimeError
check_member_static_test/02: MissingCompileTimeError
class_cycle_test/02: MissingCompileTimeError
@@ -1332,7 +1273,6 @@
covariant_subtyping_unsafe_call2_test: RuntimeError
covariant_subtyping_unsafe_call3_test: RuntimeError
ct_const_test: CompileTimeError
-custom_await_stack_trace_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
cyclic_constructor_test/01: Crash # Issue 30856
cyclic_type_variable_test/01: MissingCompileTimeError
cyclic_type_variable_test/02: MissingCompileTimeError
@@ -1342,44 +1282,40 @@
cyclic_typedef_test/11: Crash # Stack Overflow
default_factory2_test/01: MissingCompileTimeError
default_factory_test/01: MissingCompileTimeError
-deferred_closurize_load_library_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-deferred_constant_list_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-deferred_constraints_constants_test/default_argument2: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-deferred_constraints_constants_test/none: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-deferred_constraints_constants_test/reference_after_load: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-deferred_constraints_type_annotation_test/new: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-deferred_constraints_type_annotation_test/new_generic1: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-deferred_constraints_type_annotation_test/none: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-deferred_constraints_type_annotation_test/static_method: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-deferred_constraints_type_annotation_test/type_annotation_non_deferred: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-deferred_function_type_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-deferred_global_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-deferred_import_core_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
+deferred_closurize_load_library_test: RuntimeError
+deferred_constant_list_test: RuntimeError
+deferred_constraints_constants_test/none: RuntimeError
+deferred_constraints_constants_test/reference_after_load: RuntimeError
+deferred_constraints_type_annotation_test/new: RuntimeError
+deferred_constraints_type_annotation_test/new_generic1: RuntimeError
+deferred_constraints_type_annotation_test/none: RuntimeError
+deferred_constraints_type_annotation_test/static_method: RuntimeError
+deferred_constraints_type_annotation_test/type_annotation_non_deferred: RuntimeError
+deferred_function_type_test: RuntimeError
+deferred_global_test: RuntimeError
deferred_inheritance_constraints_test/extends: MissingCompileTimeError
deferred_inheritance_constraints_test/implements: MissingCompileTimeError
deferred_inheritance_constraints_test/mixin: MissingCompileTimeError
deferred_inheritance_constraints_test/redirecting_constructor: MissingCompileTimeError
-deferred_inlined_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-deferred_load_constants_test/none: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-deferred_load_inval_code_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
+deferred_inlined_test: RuntimeError
+deferred_load_constants_test/none: RuntimeError
+deferred_load_inval_code_test: RuntimeError
deferred_load_library_wrong_args_test/01: CompileTimeError
-deferred_load_library_wrong_args_test/none: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-deferred_mixin_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-deferred_no_such_method_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
+deferred_mixin_test: RuntimeError
+deferred_no_such_method_test: RuntimeError
deferred_not_loaded_check_test: RuntimeError # Test out of date. Issue 31933
-deferred_only_constant_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-deferred_optimized_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-deferred_redirecting_factory_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-deferred_regression_22995_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-deferred_regression_28678_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-deferred_shadow_load_library_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
+deferred_only_constant_test: RuntimeError
+deferred_optimized_test: RuntimeError
+deferred_redirecting_factory_test: RuntimeError
+deferred_regression_22995_test: RuntimeError
+deferred_regression_28678_test: RuntimeError
+deferred_shadow_load_library_test: RuntimeError
deferred_shared_and_unshared_classes_test: CompileTimeError
-deferred_static_seperate_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-deferred_super_dependency_test/none: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-deferred_type_dependency_test/as: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-deferred_type_dependency_test/is: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-deferred_type_dependency_test/none: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-deferred_type_dependency_test/type_annotation: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
+deferred_static_seperate_test: RuntimeError
+deferred_type_dependency_test/as: RuntimeError
+deferred_type_dependency_test/is: RuntimeError
+deferred_type_dependency_test/none: RuntimeError
+deferred_type_dependency_test/type_annotation: RuntimeError
double_int_to_string_test: RuntimeError, OK # non JS number semantics
duplicate_export_negative_test: Fail
duplicate_implements_test/01: MissingCompileTimeError
@@ -1412,19 +1348,10 @@
field_override4_test/02: MissingCompileTimeError
field_override_test/00: MissingCompileTimeError
field_override_test/01: MissingCompileTimeError
-flatten_test/01: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-flatten_test/02: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-flatten_test/03: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-flatten_test/04: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-flatten_test/05: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-flatten_test/06: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-flatten_test/07: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-flatten_test/08: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-flatten_test/09: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-flatten_test/10: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-flatten_test/11: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-flatten_test/12: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-flatten_test/none: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
+flatten_test/05: MissingRuntimeError
+flatten_test/08: MissingRuntimeError
+flatten_test/09: MissingRuntimeError
+flatten_test/12: MissingRuntimeError
full_stacktrace1_test: RuntimeError # Issue 12698
full_stacktrace2_test: RuntimeError # Issue 12698
full_stacktrace3_test: RuntimeError # Issue 12698
@@ -1462,8 +1389,7 @@
function_type_alias_test: RuntimeError
function_type_call_getter2_test/none: RuntimeError
function_type_test: RuntimeError
-generic_async_star_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-generic_async_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
+generic_async_star_test: RuntimeError
generic_closure_test/01: RuntimeError
generic_closure_test/none: RuntimeError
generic_field_mixin6_test/none: RuntimeError
@@ -1541,8 +1467,7 @@
issue31596_override_test/08: MissingCompileTimeError
issue31596_super_test/01: CompileTimeError
issue31596_super_test/03: CompileTimeError
-issue_1751477_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-known_identifier_usage_error_test/none: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
+known_identifier_usage_error_test/none: RuntimeError
left_shift_test: RuntimeError # non JS number semantics
library_env_test/has_mirror_support: RuntimeError
library_env_test/has_no_html_support: RuntimeError
@@ -1782,28 +1707,15 @@
reg_exp_test: RuntimeError
regress_13462_1_test: RuntimeError
regress_18535_test: RuntimeError
-regress_22443_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-regress_22445_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-regress_22579_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-regress_22728_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-regress_22777_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
+regress_22443_test: RuntimeError
regress_23089_test: Crash # Stack Overflow
regress_23408_test: CompileTimeError
-regress_23498_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-regress_23500_test/01: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-regress_23500_test/02: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-regress_23500_test/none: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-regress_23996_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
+regress_23996_test: RuntimeError
regress_24283_test: RuntimeError # non JS number semantics
-regress_24935_test/01: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-regress_24935_test/none: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-regress_26175_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(bindCallback.R) in (local(_RootZone.bindCallback#)) for j:closure_call(_RootZone_bindCallback_closure.call).
-regress_26668_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-regress_26948_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
+regress_24935_test/none: RuntimeError
regress_27617_test/1: Crash # Assertion failure: Unexpected constructor j:constructor(Foo._) in ConstructorDataImpl._getConstructorConstant
-regress_27659_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
regress_28255_test: RuntimeError
-regress_28278_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
+regress_28278_test: RuntimeError
regress_29025_test: CompileTimeError
regress_29405_test: CompileTimeError
regress_29784_test/01: Crash # Assertion failure: Cannot find value Instance of 'ThisLocal' in () for j:constructor(A.ok).
@@ -1817,7 +1729,7 @@
setter_override_test/01: MissingCompileTimeError
setter_override_test/02: MissingCompileTimeError
setter_override_test/03: MissingCompileTimeError
-shadow_parameter_and_local_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
+shadow_parameter_and_local_test: RuntimeError
stacktrace_demangle_ctors_test: RuntimeError # Issue 12698
stacktrace_rethrow_error_test/none: RuntimeError # Issue 12698
stacktrace_rethrow_error_test/withtraceparameter: RuntimeError # Issue 12698
@@ -1830,12 +1742,6 @@
super_bound_closure_test/none: CompileTimeError
super_call4_test: CompileTimeError
super_getter_setter_test: CompileTimeError
-super_in_async1_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-super_in_async2_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-super_in_async3_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-super_in_async4_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-super_in_async5_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-super_in_async6_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
super_no_such_method1_test: CompileTimeError
super_no_such_method2_test: CompileTimeError
super_no_such_method3_test: CompileTimeError
@@ -1853,8 +1759,6 @@
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.
-sync_generator2_test/none: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
-syncstar_yieldstar_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
syntax_test/04: Crash # 'file:*/pkg/compiler/lib/src/kernel/env.dart': Failed assertion: line 322 pos 16: '!name.contains('#')': is not true.
syntax_test/05: Crash # 'file:*/pkg/compiler/lib/src/kernel/env.dart': Failed assertion: line 322 pos 16: '!name.contains('#')': is not true.
syntax_test/06: Crash # 'file:*/pkg/compiler/lib/src/kernel/env.dart': Failed assertion: line 322 pos 16: '!name.contains('#')': is not true.
@@ -1914,7 +1818,6 @@
type_variable_promotion_test: RuntimeError
typedef_is_test: RuntimeError
typevariable_substitution2_test/02: RuntimeError
-unused_overridden_async_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
vm/async_await_catch_stacktrace_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(bindCallback.R) in (local(_RootZone.bindCallback#)) for j:closure_call(_RootZone_bindCallback_closure.call).
vm/await_synchronous_future_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
vm/causal_async_exception_stack2_test: Crash # Assertion failure: Unexpected arguments. Expected 1 argument, actual: [invoke dynamic method: selector=Selector(operator, *, arity=1), mask=[subclass=JSUInt32], HTypeInfoReadVariable(ListQueue.E)].
@@ -1987,7 +1890,7 @@
void_type_usage_test/paren_null_equals2: Crash # 'package:front_end/src/fasta/type_inference/type_schema_environment.dart': Failed assertion: line 214 pos 12: 'false': is not true.
wrong_number_type_arguments_test/01: MissingCompileTimeError
wrong_number_type_arguments_test/none: Pass
-yieldstar_pause_test: Crash # 'file:*/pkg/compiler/lib/src/js_emitter/runtime_type_generator.dart': Failed assertion: line 208 pos 18: '!(_useKernel && _strongMode && !_disableRtiOptimization) ||
+yieldstar_pause_test: RuntimeError
[ $compiler == dart2js && $fasta && $minified && $strong ]
abstract_factory_constructor_test/00: MissingCompileTimeError
@@ -2003,110 +1906,51 @@
assertion_initializer_const_error2_test/none: CompileTimeError
assertion_initializer_test: CompileTimeError
assertion_test: RuntimeError
-async_and_or_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_await_catch_regression_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_await_foreign_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(bindCallback.R) in (local(_RootZone.bindCallback#)) for j:closure_call(_RootZone_bindCallback_closure.call).
-async_await_syntax_test/a01a: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_await_syntax_test/a02a: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_await_syntax_test/a03a: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_await_syntax_test/a03b: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_await_syntax_test/a05a: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_await_syntax_test/a05b: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_await_syntax_test/a06a: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_await_syntax_test/a09a: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_await_syntax_test/a11c: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_await_syntax_test/a11d: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_await_syntax_test/a12g: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_await_syntax_test/b01a: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_await_syntax_test/b02a: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_await_syntax_test/b03a: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_await_syntax_test/b05a: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_await_syntax_test/b06a: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_await_syntax_test/b09a: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_await_syntax_test/b11c: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_await_syntax_test/b11d: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_await_syntax_test/b12g: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_await_syntax_test/c01a: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_await_syntax_test/c02a: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_await_syntax_test/c03a: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_await_syntax_test/c05a: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_await_syntax_test/c06a: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_await_syntax_test/c09a: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_await_syntax_test/d01a: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_await_syntax_test/d02a: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_await_syntax_test/d03a: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_await_syntax_test/d05a: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_await_syntax_test/d06a: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_await_syntax_test/d09a: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_await_test/02: Crash # Assertion failure: Runtime type information not available for type_variable_local(bindCallback.R) in (local(_RootZone.bindCallback#)) for j:closure_call(_RootZone_bindCallback_closure.call).
-async_await_test/03: Crash # Assertion failure: Runtime type information not available for type_variable_local(bindCallback.R) in (local(_RootZone.bindCallback#)) for j:closure_call(_RootZone_bindCallback_closure.call).
-async_await_test/none: Crash # Assertion failure: Runtime type information not available for type_variable_local(bindCallback.R) in (local(_RootZone.bindCallback#)) for j:closure_call(_RootZone_bindCallback_closure.call).
-async_break_in_finally_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_call_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_cascade_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_congruence_local_test/none: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_congruence_method_test/none: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_congruence_top_level_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_congruence_unnamed_test/none: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_continue_label_test/await_in_body: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_continue_label_test/await_in_condition: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_continue_label_test/await_in_init: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_continue_label_test/await_in_update: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_continue_label_test/none: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_control_structures_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
+async_await_syntax_test/a06a: RuntimeError
+async_await_syntax_test/b06a: RuntimeError
+async_await_syntax_test/c06a: RuntimeError
+async_await_syntax_test/d06a: RuntimeError
+async_await_test/02: RuntimeError
+async_await_test/03: RuntimeError
+async_await_test/none: RuntimeError
+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_error_timing_test: RuntimeError
-async_finally_rethrow_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
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_regression_23058_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_rethrow_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
async_return_types_test/nestedFuture: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_return_types_test/none: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
+async_return_types_test/none: RuntimeError
async_return_types_test/tooManyTypeParameters: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
async_return_types_test/wrongReturnType: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_star_await_pauses_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(bindCallback.R) in (local(_RootZone.bindCallback#)) for j:closure_call(_RootZone_bindCallback_closure.call).
-async_star_cancel_and_throw_in_finally_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
+async_star_await_pauses_test: RuntimeError
+async_star_cancel_and_throw_in_finally_test: RuntimeError
async_star_cancel_while_paused_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_star_no_cancel2_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_star_no_cancel_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_star_pause_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_star_regression_2238_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(bindCallback.R) in (local(_RootZone.bindCallback#)) for j:closure_call(_RootZone_bindCallback_closure.call).
-async_star_regression_23116_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_star_regression_fisk_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_star_stream_take_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(bindCallback.R) in (local(_RootZone.bindCallback#)) for j:closure_call(_RootZone_bindCallback_closure.call).
-async_star_take_reyield_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_star_test/01: Crash # Wrong number of template arguments, given 2, expected 1
-async_star_test/02: Crash # Wrong number of template arguments, given 2, expected 1
-async_star_test/03: Crash # Wrong number of template arguments, given 2, expected 1
-async_star_test/04: Crash # Wrong number of template arguments, given 2, expected 1
-async_star_test/05: Crash # Wrong number of template arguments, given 2, expected 1
-async_star_test/none: Crash # Wrong number of template arguments, given 2, expected 1
-async_switch_test/none: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_switch_test/withDefault: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(bindCallback.R) in (local(_RootZone.bindCallback#)) for j:closure_call(_RootZone_bindCallback_closure.call).
-async_this_bound_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_throw_in_catch_test/forceAwait: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-async_throw_in_catch_test/none: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-asyncstar_concat_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-asyncstar_throw_in_catch_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(bindCallback.R) in (local(_RootZone.bindCallback#)) for j:closure_call(_RootZone_bindCallback_closure.call).
-asyncstar_yield_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-asyncstar_yieldstar_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-await_and_ifnull_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-await_backwards_compatibility_test/none: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-await_exceptions_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-await_for_cancel_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-await_for_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(bindCallback.R) in (local(_RootZone.bindCallback#)) for j:closure_call(_RootZone_bindCallback_closure.call).
-await_for_use_local_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-await_future_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-await_in_cascade_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-await_nonfuture_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
+async_star_no_cancel2_test: RuntimeError
+async_star_no_cancel_test: RuntimeError
+async_star_pause_test: RuntimeError
+async_star_regression_2238_test: RuntimeError
+async_star_regression_23116_test: RuntimeError
+async_star_regression_fisk_test: RuntimeError
+async_star_stream_take_test: RuntimeError
+async_star_take_reyield_test: RuntimeError
+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
+async_test: RuntimeError
+asyncstar_concat_test: RuntimeError
+asyncstar_yield_test: RuntimeError
+asyncstar_yieldstar_test: RuntimeError
+await_for_cancel_test: RuntimeError
+await_for_test: RuntimeError
+await_for_use_local_test: RuntimeError
await_not_started_immediately_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(bindCallback.R) in (local(_RootZone.bindCallback#)) for j:closure_call(_RootZone_bindCallback_closure.call).
-await_null_aware_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-await_postfix_expr_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-await_regression_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-await_started_immediately_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-await_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
+await_test: RuntimeError
bad_override_test/01: MissingCompileTimeError
bad_override_test/02: MissingCompileTimeError
bad_override_test/03: MissingCompileTimeError
@@ -2120,9 +1964,9 @@
call_non_method_field_test/01: MissingCompileTimeError
call_non_method_field_test/02: MissingCompileTimeError
canonical_const2_test: RuntimeError, OK # non JS number semantics
-cha_deopt1_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-cha_deopt2_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-cha_deopt3_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
+cha_deopt1_test: RuntimeError
+cha_deopt2_test: RuntimeError
+cha_deopt3_test: RuntimeError
check_member_static_test/01: MissingCompileTimeError
check_member_static_test/02: MissingCompileTimeError
class_cycle_test/02: MissingCompileTimeError
@@ -2188,7 +2032,6 @@
covariant_subtyping_unsafe_call2_test: RuntimeError
covariant_subtyping_unsafe_call3_test: RuntimeError
ct_const_test: CompileTimeError
-custom_await_stack_trace_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
cyclic_constructor_test/01: Crash # Issue 30856
cyclic_type_variable_test/01: MissingCompileTimeError
cyclic_type_variable_test/02: MissingCompileTimeError
@@ -2198,44 +2041,40 @@
cyclic_typedef_test/11: Crash # Stack Overflow
default_factory2_test/01: MissingCompileTimeError
default_factory_test/01: MissingCompileTimeError
-deferred_closurize_load_library_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-deferred_constant_list_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-deferred_constraints_constants_test/default_argument2: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-deferred_constraints_constants_test/none: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-deferred_constraints_constants_test/reference_after_load: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-deferred_constraints_type_annotation_test/new: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-deferred_constraints_type_annotation_test/new_generic1: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-deferred_constraints_type_annotation_test/none: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-deferred_constraints_type_annotation_test/static_method: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-deferred_constraints_type_annotation_test/type_annotation_non_deferred: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-deferred_function_type_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-deferred_global_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-deferred_import_core_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
+deferred_closurize_load_library_test: RuntimeError
+deferred_constant_list_test: RuntimeError
+deferred_constraints_constants_test/none: RuntimeError
+deferred_constraints_constants_test/reference_after_load: RuntimeError
+deferred_constraints_type_annotation_test/new: RuntimeError
+deferred_constraints_type_annotation_test/new_generic1: RuntimeError
+deferred_constraints_type_annotation_test/none: RuntimeError
+deferred_constraints_type_annotation_test/static_method: RuntimeError
+deferred_constraints_type_annotation_test/type_annotation_non_deferred: RuntimeError
+deferred_function_type_test: RuntimeError
+deferred_global_test: RuntimeError
deferred_inheritance_constraints_test/extends: MissingCompileTimeError
deferred_inheritance_constraints_test/implements: MissingCompileTimeError
deferred_inheritance_constraints_test/mixin: MissingCompileTimeError
deferred_inheritance_constraints_test/redirecting_constructor: MissingCompileTimeError
-deferred_inlined_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-deferred_load_constants_test/none: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-deferred_load_inval_code_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
+deferred_inlined_test: RuntimeError
+deferred_load_constants_test/none: RuntimeError
+deferred_load_inval_code_test: RuntimeError
deferred_load_library_wrong_args_test/01: CompileTimeError
-deferred_load_library_wrong_args_test/none: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-deferred_mixin_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-deferred_no_such_method_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
+deferred_mixin_test: RuntimeError
+deferred_no_such_method_test: RuntimeError
deferred_not_loaded_check_test: RuntimeError # Test out of date. Issue 31933
-deferred_only_constant_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-deferred_optimized_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-deferred_redirecting_factory_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-deferred_regression_22995_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-deferred_regression_28678_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-deferred_shadow_load_library_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
+deferred_only_constant_test: RuntimeError
+deferred_optimized_test: RuntimeError
+deferred_redirecting_factory_test: RuntimeError
+deferred_regression_22995_test: RuntimeError
+deferred_regression_28678_test: RuntimeError
+deferred_shadow_load_library_test: RuntimeError
deferred_shared_and_unshared_classes_test: CompileTimeError
-deferred_static_seperate_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-deferred_super_dependency_test/none: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-deferred_type_dependency_test/as: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-deferred_type_dependency_test/is: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-deferred_type_dependency_test/none: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-deferred_type_dependency_test/type_annotation: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
+deferred_static_seperate_test: RuntimeError
+deferred_type_dependency_test/as: RuntimeError
+deferred_type_dependency_test/is: RuntimeError
+deferred_type_dependency_test/none: RuntimeError
+deferred_type_dependency_test/type_annotation: RuntimeError
double_int_to_string_test: RuntimeError, OK # non JS number semantics
duplicate_export_negative_test: Fail
duplicate_implements_test/01: MissingCompileTimeError
@@ -2269,19 +2108,10 @@
field_override4_test/02: MissingCompileTimeError
field_override_test/00: MissingCompileTimeError
field_override_test/01: MissingCompileTimeError
-flatten_test/01: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-flatten_test/02: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-flatten_test/03: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-flatten_test/04: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-flatten_test/05: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-flatten_test/06: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-flatten_test/07: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-flatten_test/08: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-flatten_test/09: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-flatten_test/10: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-flatten_test/11: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-flatten_test/12: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-flatten_test/none: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
+flatten_test/05: MissingRuntimeError
+flatten_test/08: MissingRuntimeError
+flatten_test/09: MissingRuntimeError
+flatten_test/12: MissingRuntimeError
full_stacktrace1_test: RuntimeError # Issue 12698
full_stacktrace2_test: RuntimeError # Issue 12698
full_stacktrace3_test: RuntimeError # Issue 12698
@@ -2319,8 +2149,7 @@
function_type_alias_test: RuntimeError
function_type_call_getter2_test/none: RuntimeError
function_type_test: RuntimeError
-generic_async_star_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-generic_async_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
+generic_async_star_test: RuntimeError
generic_field_mixin6_test/none: RuntimeError
generic_function_bounds_test: RuntimeError
generic_function_dcall_test: RuntimeError
@@ -2390,13 +2219,11 @@
issue18628_2_test/01: MissingCompileTimeError
issue21079_test: RuntimeError
issue23244_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-issue28498_test: Crash
issue31596_override_test/07: MissingCompileTimeError
issue31596_override_test/08: MissingCompileTimeError
issue31596_super_test/01: CompileTimeError
issue31596_super_test/03: CompileTimeError
-issue_1751477_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-known_identifier_usage_error_test/none: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
+known_identifier_usage_error_test/none: RuntimeError
left_shift_test: RuntimeError # non JS number semantics
library_env_test/has_mirror_support: RuntimeError
library_env_test/has_no_html_support: RuntimeError
@@ -2633,28 +2460,15 @@
regress_13462_1_test: RuntimeError
regress_18535_test: RuntimeError
regress_21795_test: RuntimeError # Issue 12605
-regress_22443_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-regress_22445_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-regress_22579_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-regress_22728_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-regress_22777_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
+regress_22443_test: RuntimeError
regress_23089_test: Crash # Stack Overflow
regress_23408_test: CompileTimeError
-regress_23498_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-regress_23500_test/01: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-regress_23500_test/02: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-regress_23500_test/none: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-regress_23996_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
+regress_23996_test: RuntimeError
regress_24283_test: RuntimeError, OK # Requires 64 bit numbers.
-regress_24935_test/01: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-regress_24935_test/none: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-regress_26175_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(bindCallback.R) in (local(_RootZone.bindCallback#)) for j:closure_call(_RootZone_bindCallback_closure.call).
-regress_26668_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-regress_26948_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
+regress_24935_test/none: RuntimeError
regress_27617_test/1: Crash # Assertion failure: Unexpected constructor j:constructor(Foo._) in ConstructorDataImpl._getConstructorConstant
-regress_27659_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
regress_28255_test: RuntimeError
-regress_28278_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
+regress_28278_test: RuntimeError
regress_29025_test: CompileTimeError
regress_29405_test: CompileTimeError
regress_29784_test/01: Crash # Issue 29784
@@ -2668,7 +2482,7 @@
setter_override_test/01: MissingCompileTimeError
setter_override_test/02: MissingCompileTimeError
setter_override_test/03: MissingCompileTimeError
-shadow_parameter_and_local_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
+shadow_parameter_and_local_test: RuntimeError
stack_trace_test: RuntimeError, OK # Stack trace not preserved in minified code.
stacktrace_demangle_ctors_test: RuntimeError # Issue 12698
stacktrace_rethrow_error_test/none: RuntimeError # Issue 12698
@@ -2682,12 +2496,6 @@
super_bound_closure_test/none: CompileTimeError
super_call4_test: CompileTimeError
super_getter_setter_test: CompileTimeError
-super_in_async1_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-super_in_async2_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-super_in_async3_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-super_in_async4_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-super_in_async5_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-super_in_async6_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
super_no_such_method1_test: CompileTimeError
super_no_such_method2_test: CompileTimeError
super_no_such_method3_test: CompileTimeError
@@ -2704,8 +2512,6 @@
switch_case_test/01: MissingCompileTimeError
switch_case_test/02: MissingCompileTimeError
symbol_conflict_test: RuntimeError # Issue 23857
-sync_generator2_test/none: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
-syncstar_yieldstar_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
syntax_test/28: MissingCompileTimeError
syntax_test/29: MissingCompileTimeError
syntax_test/30: MissingCompileTimeError
@@ -2743,7 +2549,6 @@
type_variable_promotion_test: RuntimeError
typedef_is_test: RuntimeError
typevariable_substitution2_test/02: RuntimeError
-unused_overridden_async_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
vm/async_await_catch_stacktrace_test: Crash # Assertion failure: Runtime type information not available for type_variable_local(bindCallback.R) in (local(_RootZone.bindCallback#)) for j:closure_call(_RootZone_bindCallback_closure.call).
vm/await_synchronous_future_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
vm/causal_async_exception_stack2_test: Crash # Wrong number of template arguments, given 2, expected 1
@@ -2780,7 +2585,7 @@
void_type_usage_test/conditional_return_to_void: MissingCompileTimeError
wrong_number_type_arguments_test/01: MissingCompileTimeError
wrong_number_type_arguments_test/none: Pass
-yieldstar_pause_test: Crash # Interpolated value #1 is not an Expression or List of Expressions: [VariableUse(f), Instance of 'LiteralNull', null]
+yieldstar_pause_test: RuntimeError
[ $compiler == dart2js && $fasta && $strong ]
mixin_type_parameter5_test: RuntimeError
diff --git a/tests/language_2/naming3_test.dart b/tests/language_2/naming3_test.dart
index 1af4356..3936778 100644
--- a/tests/language_2/naming3_test.dart
+++ b/tests/language_2/naming3_test.dart
@@ -93,4 +93,5 @@
regress31049();
regress31050();
+ regress31117();
}
diff --git a/tests/lib_2/html/audiobuffersourcenode_test.dart b/tests/lib_2/html/audiobuffersourcenode_test.dart
index 9c98cf0..ddfb55c 100644
--- a/tests/lib_2/html/audiobuffersourcenode_test.dart
+++ b/tests/lib_2/html/audiobuffersourcenode_test.dart
@@ -15,7 +15,7 @@
var ctx = new AudioContext();
AudioBufferSourceNode node = ctx.createBufferSource();
expect(node is AudioBufferSourceNode, isTrue);
- node.start(ctx.currentTime, 0, 2);
+ node.start2(ctx.currentTime, 0, 2);
expect(node is AudioBufferSourceNode, isTrue);
}
});
diff --git a/tests/lib_2/html/client_rect_test.dart b/tests/lib_2/html/client_rect_test.dart
index 983be6b..10d84b2 100644
--- a/tests/lib_2/html/client_rect_test.dart
+++ b/tests/lib_2/html/client_rect_test.dart
@@ -4,7 +4,13 @@
main() {
var isRectList =
- predicate((x) => x is List<Rectangle>, 'is a List<Rectangle>');
+ predicate((x) => x is DomRectList, 'should be a DomRectList');
+ var isListOfRectangle =
+ predicate((x) => x is List<Rectangle>, 'should be a List<Rectangle>');
+
+ var isRectangle = predicate((x) => x is Rectangle, 'should be a Rectangle');
+ var isDomRectReadOnly =
+ predicate((x) => x is DomRectReadOnly, 'should be a DomRectReadOnly');
insertTestDiv() {
var element = new Element.tag('div');
@@ -17,16 +23,19 @@
return element;
}
- test("ClientRectList test", () {
+ test("DomRectList test", () {
insertTestDiv();
var range = new Range();
var rects = range.getClientRects();
+ expect(rects, isListOfRectangle);
expect(rects, isRectList);
});
test("ClientRect ==", () {
var rect1 = document.body.getBoundingClientRect();
var rect2 = document.body.getBoundingClientRect();
+ expect(rect1, isRectangle);
+ expect(rect1, isDomRectReadOnly);
expect(rect1, equals(rect2));
});
}
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 5d685c5..1d6a85e 100644
--- a/tests/lib_2/html/custom/attribute_changed_callback_test.dart
+++ b/tests/lib_2/html/custom/attribute_changed_callback_test.dart
@@ -58,8 +58,8 @@
setUp(() => customElementsReady.then((_) {
if (!registered) {
registered = true;
- document.registerElement(A.tag, A);
- document.registerElement(B.tag, B);
+ document.registerElement2(A.tag, {'prototype': A});
+ document.registerElement2(B.tag, {'prototype': B});
}
}));
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 eb0f55b..9b6818b 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
@@ -30,7 +30,7 @@
return customElementsReady.then((_) {
if (!registered) {
registered = true;
- document.registerElement(A.tag, A);
+ document.registerElement2(A.tag, {'prototype': A});
}
});
});
@@ -51,8 +51,8 @@
});
test("can extend elements that don't have special prototypes", () {
- document.registerElement('fancy-section', FancySection,
- extendsTag: 'section');
+ document.registerElement2(
+ 'fancy-section', {'prototype': FancySection, 'extends': 'section'});
var fancy = document.createElement('section', 'fancy-section');
expect(fancy is FancySection, true, reason: 'fancy-section was registered');
expect((fancy as FancySection).wasCreated, true,
diff --git a/tests/lib_2/html/custom/created_callback_test.dart b/tests/lib_2/html/custom/created_callback_test.dart
index 492fb3e..4961b8b 100644
--- a/tests/lib_2/html/custom/created_callback_test.dart
+++ b/tests/lib_2/html/custom/created_callback_test.dart
@@ -65,15 +65,15 @@
return customElementsReady.then((_) {
if (!registered) {
registered = true;
- document.registerElement(B.tag, B);
- document.registerElement(C.tag, C);
+ document.registerElement2(B.tag, {'prototype': B});
+ document.registerElement2(C.tag, {'prototype': C});
ErrorConstructorElement.register();
}
});
});
test('transfer created callback', () {
- document.registerElement(A.tag, A as dynamic);
+ document.registerElement2(A.tag, {'prototype': A as dynamic});
var x = new A();
expect(A.createdInvocations, 1);
});
@@ -107,8 +107,8 @@
test('cannot register without created', () {
expect(() {
- document.registerElement(
- MissingCreatedElement.tag, MissingCreatedElement);
+ document.registerElement2(
+ MissingCreatedElement.tag, {'prototype': MissingCreatedElement});
}, throws);
});
@@ -150,8 +150,8 @@
test('cannot register created with params', () {
expect(() {
- document.registerElement(
- 'x-created-with-params', CreatedWithParametersElement);
+ document.registerElement2(
+ 'x-created-with-params', {'prototype': CreatedWithParametersElement});
}, throws);
});
@@ -171,7 +171,7 @@
NestedElement.created() : super.created();
static void register() {
- document.registerElement(tag, NestedElement);
+ document.registerElement2(tag, {'prototype': NestedElement});
}
static void test() {
@@ -202,7 +202,7 @@
}
static void register() {
- document.registerElement(tag, AccessWhileUpgradingElement);
+ document.registerElement2(tag, {'prototype': AccessWhileUpgradingElement});
}
static void test() {
@@ -238,7 +238,7 @@
}
static void register() {
- document.registerElement(tag, ErrorConstructorElement);
+ document.registerElement2(tag, {'prototype': ErrorConstructorElement});
}
}
@@ -253,7 +253,8 @@
NestedCreatedConstructorElement.created() : super.created();
static void register() {
- document.registerElement(tag, NestedCreatedConstructorElement);
+ document
+ .registerElement2(tag, {'prototype': NestedCreatedConstructorElement});
}
// Try to run the created constructor, and record the results.
diff --git a/tests/lib_2/html/custom/document_register_basic_test.dart b/tests/lib_2/html/custom/document_register_basic_test.dart
index 156556e..c295b7f7 100644
--- a/tests/lib_2/html/custom/document_register_basic_test.dart
+++ b/tests/lib_2/html/custom/document_register_basic_test.dart
@@ -48,23 +48,29 @@
setUp(() => customElementsReady);
- test('Testing document.registerElement() basic behaviors', () {
- document.registerElement(Foo.tag, Foo);
+ test('Testing document.registerElement2() basic behaviors', () {
+ document.registerElement2(Foo.tag, {'prototype': Foo});
// Cannot register an existing dart:html type.
- expect(() => document.registerElement('x-bad-a', HtmlElement), throws);
+ expect(
+ () => document.registerElement2('x-bad-a', {'prototype': HtmlElement}),
+ throws);
// Invalid user type. Doesn't inherit from HtmlElement.
- expect(() => document.registerElement('x-bad-b', BadB), throws);
+ expect(() => document.registerElement2('x-bad-b', {'prototype': BadB}),
+ throws);
// Cannot register abstract class.
- expect(() => document.registerElement('x-bad-c', BadC), throws);
+ expect(() => document.registerElement2('x-bad-c', {'prototype': BadC}),
+ throws);
// Not a type.
- expect(() => document.registerElement('x-bad-d', null), throws);
+ expect(() => document.registerElement2('x-bad-d', {'prototype': null}),
+ throws);
// Cannot register system type.
- expect(() => document.registerElement('x-bad-e', Object), throws);
+ expect(() => document.registerElement2('x-bad-e', {'prototype': Object}),
+ throws);
// Constructor initiated instantiation
var createdFoo = new Foo();
@@ -105,14 +111,14 @@
expect(someProperty[container.firstChild], someProperty[parsedFoo]);
// Having another constructor
- document.registerElement(Bar.tag, Bar);
+ document.registerElement2(Bar.tag, {'prototype': Bar});
var createdBar = new Bar();
expect(createdBar is Bar, isTrue);
expect(createdBar is Foo, isFalse);
expect(createdBar.tagName, "X-BAR");
// Having a subclass
- document.registerElement(Baz.tag, Baz);
+ document.registerElement2(Baz.tag, {'prototype': Baz});
var createdBaz = new Baz();
expect(createdBaz.tagName, "X-BAZ");
expect(createdBaz.thisIsACustomClass, isTrue);
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 f7819fa..883f4f0 100644
--- a/tests/lib_2/html/custom/document_register_template_test.dart
+++ b/tests/lib_2/html/custom/document_register_template_test.dart
@@ -8,7 +8,8 @@
setUp(() => customElementsReady);
test('can register custom template with webcomponents-lite polyfill', () {
- document.registerElement('my-element', MyElement, extendsTag: 'template');
+ document.registerElement2(
+ 'my-element', {'prototype': MyElement, 'extends': 'template'});
dynamic e = new Element.tag('template', 'my-element');
document.body.append(e);
expect(e is TemplateElement, isTrue);
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 e9143ea..2e652c4 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
@@ -96,13 +96,13 @@
return;
}
registeredTypes = true;
- document.registerElement(Foo.tag, Foo);
- document.registerElement(Bar.tag, Bar, extendsTag: 'input');
- document.registerElement(Baz.tag, Baz);
- document.registerElement(Qux.tag, Qux, extendsTag: 'input');
- document.registerElement(MyCanvas.tag, MyCanvas, extendsTag: 'canvas');
- document.registerElement(CustomCustomDiv.tag, CustomCustomDiv,
- extendsTag: 'div');
+ document.registerElement2(Foo.tag, {'prototype': Foo});
+ document.registerElement2(Bar.tag, {'prototype': Bar, 'extends': 'input'});
+ document.registerElement2(Baz.tag, {'prototype': Baz});
+ document.registerElement2(Qux.tag, {'prototype': Qux, 'extends': 'input'});
+ document.registerElement2(MyCanvas.tag, {'prototype': MyCanvas, 'extends': 'canvas'});
+ document.registerElement2(CustomCustomDiv.tag, {'prototype': CustomCustomDiv,
+ 'extends': 'div'});
}
setUp(() => customElementsReady);
@@ -111,19 +111,19 @@
setUp(registerTypes);
test('cannot register twice', () {
- expect(() => document.registerElement(FooBad.tag, Foo, extendsTag: 'div'),
+ expect(() => document.registerElement2(FooBad.tag, {'prototype': Foo, 'extends': 'div'}),
throws);
});
test('cannot register for non-matching tag', () {
expect(() {
- document.registerElement('x-input-div', Bar, extendsTag: 'div');
+ document.registerElement2('x-input-div', {'prototype': Bar, 'extends': 'div'});
}, throws);
});
test('cannot register type extension for custom tag', () {
expect(() {
- document.registerElement('x-custom-tag', CustomCustomDiv);
+ document.registerElement2('x-custom-tag', {'prototype': CustomCustomDiv});
}, throws);
});
});
diff --git a/tests/lib_2/html/custom/element_upgrade_test.dart b/tests/lib_2/html/custom/element_upgrade_test.dart
index c025552..15a9f85 100644
--- a/tests/lib_2/html/custom/element_upgrade_test.dart
+++ b/tests/lib_2/html/custom/element_upgrade_test.dart
@@ -38,7 +38,8 @@
upgrader.upgrade(e);
};
- document.registerElement('custom-element', CustomElement);
+ document
+ .registerElement2('custom-element', {'prototype': CustomElement});
}
}));
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 20d5dc1..3badfdb 100644
--- a/tests/lib_2/html/custom/entered_left_view_test.dart
+++ b/tests/lib_2/html/custom/entered_left_view_test.dart
@@ -79,8 +79,8 @@
setUp(() => customElementsReady.then((_) {
if (registeredTypes) return;
registeredTypes = true;
- document.registerElement('x-a', Foo);
- document.registerElement('x-a-old', FooOldCallbacks);
+ document.registerElement2('x-a', {'prototype': Foo});
+ document.registerElement2('x-a-old', {'prototype': FooOldCallbacks});
}));
group('standard_events', () {
diff --git a/tests/lib_2/html/custom/js_custom_test.dart b/tests/lib_2/html/custom/js_custom_test.dart
index 9044134..1a7fd47 100644
--- a/tests/lib_2/html/custom/js_custom_test.dart
+++ b/tests/lib_2/html/custom/js_custom_test.dart
@@ -31,7 +31,7 @@
return customElementsReady.then((_) {
if (!registered) {
registered = true;
- document.registerElement(A.tag, A);
+ document.registerElement2(A.tag, {'prototype': A});
}
});
});
@@ -51,7 +51,7 @@
test('accessing custom JS element from Dart', () {
var script = '''
- var Foo = document.registerElement('x-foo', {
+ var Foo = document.registerElement2('x-foo', {
prototype: Object.create(HTMLElement.prototype, {
createdCallback: {
value: function() {
diff --git a/tests/lib_2/html/custom/mirrors_2_test.dart b/tests/lib_2/html/custom/mirrors_2_test.dart
index a489ede..6fa8ab3 100644
--- a/tests/lib_2/html/custom/mirrors_2_test.dart
+++ b/tests/lib_2/html/custom/mirrors_2_test.dart
@@ -27,8 +27,8 @@
setUp(() => customElementsReady.then((_) {
if (!registered) {
registered = true;
- document.registerElement(A.tag, A);
- document.registerElement(B.tag, B);
+ document.registerElement2(A.tag, {'prototype': A});
+ document.registerElement2(B.tag, {'prototype': B});
}
}));
diff --git a/tests/lib_2/html/custom/mirrors_test.dart b/tests/lib_2/html/custom/mirrors_test.dart
index e5225af..c08e777 100644
--- a/tests/lib_2/html/custom/mirrors_test.dart
+++ b/tests/lib_2/html/custom/mirrors_test.dart
@@ -22,8 +22,8 @@
setUp(() => customElementsReady.then((_) {
if (!registered) {
registered = true;
- document.registerElement(A.tag, A);
- document.registerElement(B.tag, B);
+ document.registerElement2(A.tag, {'prototype': A});
+ document.registerElement2(B.tag, {'prototype': B});
}
}));
diff --git a/tests/lib_2/html/custom/regress_194523002_test.dart b/tests/lib_2/html/custom/regress_194523002_test.dart
index 7cb1394..a705e34 100644
--- a/tests/lib_2/html/custom/regress_194523002_test.dart
+++ b/tests/lib_2/html/custom/regress_194523002_test.dart
@@ -27,7 +27,7 @@
return customElementsReady.then((_) {
if (!registered) {
registered = true;
- document.registerElement(A.tag, A);
+ document.registerElement2(A.tag, {'prototype': A});
}
});
});
diff --git a/tests/lib_2/html/custom_element_method_clash_test.dart b/tests/lib_2/html/custom_element_method_clash_test.dart
index e088b65..b9ad26d 100644
--- a/tests/lib_2/html/custom_element_method_clash_test.dart
+++ b/tests/lib_2/html/custom_element_method_clash_test.dart
@@ -28,7 +28,7 @@
group('test', () {
test('test', () {
- document.registerElement('x-custom', CustomElement);
+ document.registerElement2('x-custom', {'prototype': CustomElement});
CustomElement custom = new CustomElement();
document.body.children.add(custom);
diff --git a/tests/lib_2/html/custom_element_name_clash_test.dart b/tests/lib_2/html/custom_element_name_clash_test.dart
index a11c565..58e29d3 100644
--- a/tests/lib_2/html/custom_element_name_clash_test.dart
+++ b/tests/lib_2/html/custom_element_name_clash_test.dart
@@ -26,7 +26,7 @@
group('test', () {
test('test', () {
- document.registerElement('x-custom', CustomElement);
+ document.registerElement2('x-custom', {'prototype': CustomElement});
CustomElement custom = new CustomElement();
document.body.children.add(custom);
// Will call appendChild in JS.
diff --git a/tests/lib_2/html/element_types_constructors2_test.dart b/tests/lib_2/html/element_types_constructors2_test.dart
index f21ae78..d1376b0 100644
--- a/tests/lib_2/html/element_types_constructors2_test.dart
+++ b/tests/lib_2/html/element_types_constructors2_test.dart
@@ -33,7 +33,5 @@
check('iframe', () => new IFrameElement() is IFrameElement);
check('img', () => new ImageElement() is ImageElement);
check('input', () => new InputElement() is InputElement);
- check('keygen', () => new KeygenElement() is KeygenElement,
- KeygenElement.supported);
});
}
diff --git a/tests/lib_2/html/element_types_keygen_test.dart b/tests/lib_2/html/element_types_keygen_test.dart
deleted file mode 100644
index ec27ac8..0000000
--- a/tests/lib_2/html/element_types_keygen_test.dart
+++ /dev/null
@@ -1,13 +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.
-
-import 'dart:html';
-
-import 'package:expect/minitest.dart';
-
-main() {
- test('keygen_supported', () {
- expect(KeygenElement.supported, true);
- });
-}
diff --git a/tests/lib_2/html/fileapi_directory_test.dart b/tests/lib_2/html/fileapi_directory_test.dart
index 6dda69a..03f8e2f 100644
--- a/tests/lib_2/html/fileapi_directory_test.dart
+++ b/tests/lib_2/html/fileapi_directory_test.dart
@@ -1,5 +1,6 @@
library fileapi;
+
import 'dart:async';
import 'dart:html';
@@ -40,5 +41,6 @@
expect(entry.name, equals('directory3'));
});
}
+
}
diff --git a/tests/lib_2/html/fileapi_file_test.dart b/tests/lib_2/html/fileapi_file_test.dart
index 3511ec3..9075a65 100644
--- a/tests/lib_2/html/fileapi_file_test.dart
+++ b/tests/lib_2/html/fileapi_file_test.dart
@@ -7,6 +7,12 @@
import 'package:unittest/html_config.dart';
import 'package:async_helper/async_helper.dart';
+class FileAndDir {
+ FileEntry file;
+ DirectoryEntry dir;
+ FileAndDir(this.file, this.dir);
+}
+
FileSystem fs;
main() async {
diff --git a/tests/lib_2/html/indexeddb_5_test.dart b/tests/lib_2/html/indexeddb_5_test.dart
index d4d3a28..3197c33 100644
--- a/tests/lib_2/html/indexeddb_5_test.dart
+++ b/tests/lib_2/html/indexeddb_5_test.dart
@@ -29,14 +29,6 @@
});
});
- if (html.window.indexedDB.supportsDatabaseNames) {
- test('getDatabaseNames', () {
- return html.window.indexedDB.getDatabaseNames().then((names) {
- expect(names.contains(dbName), isTrue);
- });
- });
- }
-
var value = {'name_index': 'one', 'value': 'add_value'};
test('add/delete', () {
var transaction = db.transaction(storeName, 'readwrite');
diff --git a/tests/lib_2/html/touchevent_test.dart b/tests/lib_2/html/touchevent_test.dart
index 7ad89c6..7e9645f 100644
--- a/tests/lib_2/html/touchevent_test.dart
+++ b/tests/lib_2/html/touchevent_test.dart
@@ -4,23 +4,16 @@
import 'dart:html';
-import 'package:expect/minitest.dart';
+import 'package:unittest/unittest.dart';
+import 'package:unittest/html_config.dart';
main() {
- group('supported', () {
- test('supported', () {
- expect(TouchEvent.supported, isTrue);
- });
- });
+ useHtmlConfiguration();
- group('functional', () {
- test('unsupported throws', () {
- var expectation = TouchEvent.supported ? returnsNormally : throws;
-
- expect(() {
- var e = new TouchEvent(null, null, null, 'touch');
- expect(e is TouchEvent, isTrue);
- }, expectation);
- });
+ test('Basic TouchEvent', () {
+ if (TouchEvent.supported) {
+ var e = new TouchEvent('touch');
+ expect(e is TouchEvent, isTrue);
+ }
});
}
diff --git a/tests/lib_2/lib_2.status b/tests/lib_2/lib_2.status
index fbcb2db..322ea0f 100644
--- a/tests/lib_2/lib_2.status
+++ b/tests/lib_2/lib_2.status
@@ -15,7 +15,6 @@
[ $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'.
@@ -99,7 +98,6 @@
html/rtc_test: Fail
html/shadow_dom_test: Fail
html/speechrecognition_test: Fail
-html/touchevent_test: Fail # Safari does not support TouchEvents
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).
diff --git a/tests/lib_2/lib_2_analyzer.status b/tests/lib_2/lib_2_analyzer.status
index 8c96e84..96499ee 100644
--- a/tests/lib_2/lib_2_analyzer.status
+++ b/tests/lib_2/lib_2_analyzer.status
@@ -4,6 +4,7 @@
[ $compiler == dart2analyzer ]
html/debugger_test: CompileTimeError # Issue 28969
+html/element_types_keygen_test: CompileTimeError # Chrome 57 keygen removed
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_mirrors_metadata_test: Fail # Issue 17522
@@ -20,7 +21,6 @@
mirrors/metadata_nested_constructor_call_test/none: CompileTimeError
[ $compiler == dart2analyzer && $strong ]
-html/transferables_test: CompileTimeError # Issue 30975
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
diff --git a/tests/lib_2/lib_2_dart2js.status b/tests/lib_2/lib_2_dart2js.status
index 01f5583..85c39cc 100644
--- a/tests/lib_2/lib_2_dart2js.status
+++ b/tests/lib_2/lib_2_dart2js.status
@@ -406,7 +406,6 @@
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
isolate/kill_self_synchronously_test: RuntimeError
@@ -484,6 +483,8 @@
[ $compiler == dart2js && $runtime == safari ]
html/audiobuffersourcenode_test: RuntimeError
+html/client_rect_test: RuntimeError # Issue 32572
+html/css_test/functional/functional: RuntimeError # Issue 32576
html/custom/attribute_changed_callback_test: RuntimeError, Timeout
html/custom/constructor_calls_created_synchronously_test: Pass, Timeout
html/custom/created_callback_test: Pass, Timeout
@@ -494,6 +495,8 @@
html/file_sample_test: Skip # FileSystem not supported on Safari.
html/fileapi_supported_throws_test: Skip # FileSystem not supported on Safari
html/js_mock_test: RuntimeError # Issue 32286
+html/svgelement_test: RuntimeError # Issue 32571
+html/svgelement_test/getBoundingClientRect/getBoundingClientRect: RuntimeError # Issue 32571
html/xhr_test: RuntimeError
isolate/cross_isolate_message_test: Skip # Issue 12627
isolate/message_test: Skip # Issue 12627
@@ -849,7 +852,6 @@
html/mirrors_js_typed_interop_test: RuntimeError
html/postmessage_structured_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
html/speechrecognition_test: Crash # NoSuchMethodError: Class 'JMethod' has no instance getter 'implementation'.
-html/touchevent_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/typed_arrays_1_test/arrays: RuntimeError
diff --git a/tests/lib_2/lib_2_dartdevc.status b/tests/lib_2/lib_2_dartdevc.status
index 476cbd7..d3e9fe3 100644
--- a/tests/lib_2/lib_2_dartdevc.status
+++ b/tests/lib_2/lib_2_dartdevc.status
@@ -3,6 +3,7 @@
# BSD-style license that can be found in the LICENSE file.
[ $compiler == dartdevc ]
+html/element_types_keygen_test: CompileTimeError # Chrome 57 keygen removed
html/xhr_test: Pass, Slow
[ $compiler == dartdevk ]
@@ -19,9 +20,8 @@
[ $runtime == chrome && ($compiler == dartdevc || $compiler == dartdevk) ]
html/element_animate_test/timing_dict: RuntimeError # Issue 29922
-html/element_types_keygen_test: RuntimeError # Issue 29055
+html/element_types_keygen_test: CompileTimeError # Issue 29055
html/js_dispatch_property_test: Skip # Timeout Issue 31030
-html/touchevent_test: RuntimeError # Issue 29922
[ $runtime == drt && ($compiler == dartdevc || $compiler == dartdevk) ]
html/svg_test: RuntimeError # Issue 29922
@@ -61,7 +61,6 @@
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/attribute_changed_callback_test: Skip # Issue 31577
html/custom/constructor_calls_created_synchronously_test: Skip # Issue 31577
html/custom/created_callback_test: RuntimeError
@@ -103,12 +102,10 @@
html/no_linked_scripts_htmltest: Skip # Issue 29919
html/notification_permission_test: Timeout # Issue 32002
html/scripts_htmltest: Skip # Issue 29919
-html/transferables_test: CompileTimeError # Issue 30975
html/transition_event_test: Pass, RuntimeError, Timeout # Issue 29922, this test seems flaky
html/two_scripts_htmltest: Skip # Issue 29919
html/webgl_extensions_test: RuntimeError # Issue 31017
html/worker_api_test: RuntimeError # Issue 29922
-html/xhr_cross_origin_test/functional: RuntimeError # Issue 29922
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
diff --git a/tools/VERSION b/tools/VERSION
index 08a79fe..bdaeec8 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 0
PATCH 0
-PRERELEASE 39
+PRERELEASE 40
PRERELEASE_PATCH 0
diff --git a/tools/bots/browsers/README b/tools/bots/browsers/README
new file mode 100644
index 0000000..91d325c
--- /dev/null
+++ b/tools/bots/browsers/README
@@ -0,0 +1,20 @@
+This directory contains the hashes of tar.gz files uploaded to cloud storage.
+Steps in the test.py script run "download_from_google_storage"
+to download these tarfiles and unpack them, if the browser cache directory exists.
+These tar files contain browser installations on the different platforms.
+We currently download Chrome.
+
+The downloads use the --auto-platform feature, so that only the browsers for the
+current platform (linux, macos, or windows) is downloaded. This requires
+the subdirectories to have the special names "linux", "win", and "mac", which
+the download_from_google_storage script in depot_tools is hardcoded to
+recognize.
+
+The download is intended to run on bots from the swarming pools, and they
+download to a named cache directory called "browsers" on those swarming bots.
+
+To upload new versions of these tar files, use the "upload_to_google_storage"
+tool in depot_tools, after replacing the existing downloaded browser in-place
+with the new version.
+
+Currently, we only have the Chrome browser for Linux uploaded.
\ No newline at end of file
diff --git a/tools/bots/browsers/chrome/linux/chrome.tar.gz.sha1 b/tools/bots/browsers/chrome/linux/chrome.tar.gz.sha1
new file mode 100644
index 0000000..ef2e989
--- /dev/null
+++ b/tools/bots/browsers/chrome/linux/chrome.tar.gz.sha1
@@ -0,0 +1 @@
+3d7ff2d8ee18bdb06f84b381795b53351437138b
\ No newline at end of file
diff --git a/tools/dom/dom.json b/tools/dom/dom.json
index 8a113c8..e5c2f48 100644
--- a/tools/dom/dom.json
+++ b/tools/dom/dom.json
@@ -16,6 +16,21 @@
},
"support_level": "untriaged"
},
+ "AbortPaymentEvent": {
+ "members": {
+ "AbortPaymentEvent": {},
+ "respondWith": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "AbsoluteOrientationSensor": {
+ "members": {
+ "AbsoluteOrientationSensor": {}
+ },
+ "support_level": "untriaged"
+ },
"AbstractWorker": {
"comment": "http://www.w3.org/TR/workers/#the-abstractworker-abstract-interface",
"members": {
@@ -26,6 +41,210 @@
},
"support_level": "stable"
},
+ "Accelerometer": {
+ "members": {
+ "Accelerometer": {},
+ "x": {
+ "support_level": "untriaged"
+ },
+ "y": {
+ "support_level": "untriaged"
+ },
+ "z": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "AccessibleNode": {
+ "members": {
+ "AccessibleNode": {},
+ "activeDescendant": {
+ "support_level": "untriaged"
+ },
+ "appendChild": {
+ "support_level": "untriaged"
+ },
+ "atomic": {
+ "support_level": "untriaged"
+ },
+ "autocomplete": {
+ "support_level": "untriaged"
+ },
+ "busy": {
+ "support_level": "untriaged"
+ },
+ "checked": {
+ "support_level": "untriaged"
+ },
+ "colCount": {
+ "support_level": "untriaged"
+ },
+ "colIndex": {
+ "support_level": "untriaged"
+ },
+ "colSpan": {
+ "support_level": "untriaged"
+ },
+ "controls": {
+ "support_level": "untriaged"
+ },
+ "current": {
+ "support_level": "untriaged"
+ },
+ "describedBy": {
+ "support_level": "untriaged"
+ },
+ "details": {
+ "support_level": "untriaged"
+ },
+ "disabled": {
+ "support_level": "untriaged"
+ },
+ "errorMessage": {
+ "support_level": "untriaged"
+ },
+ "expanded": {
+ "support_level": "untriaged"
+ },
+ "flowTo": {
+ "support_level": "untriaged"
+ },
+ "hasPopUp": {
+ "support_level": "untriaged"
+ },
+ "hidden": {
+ "support_level": "untriaged"
+ },
+ "invalid": {
+ "support_level": "untriaged"
+ },
+ "keyShortcuts": {
+ "support_level": "untriaged"
+ },
+ "label": {
+ "support_level": "untriaged"
+ },
+ "labeledBy": {
+ "support_level": "untriaged"
+ },
+ "level": {
+ "support_level": "untriaged"
+ },
+ "live": {
+ "support_level": "untriaged"
+ },
+ "modal": {
+ "support_level": "untriaged"
+ },
+ "multiline": {
+ "support_level": "untriaged"
+ },
+ "multiselectable": {
+ "support_level": "untriaged"
+ },
+ "onaccessibleclick": {
+ "support_level": "untriaged"
+ },
+ "onaccessiblecontextmenu": {
+ "support_level": "untriaged"
+ },
+ "onaccessibledecrement": {
+ "support_level": "untriaged"
+ },
+ "onaccessiblefocus": {
+ "support_level": "untriaged"
+ },
+ "onaccessibleincrement": {
+ "support_level": "untriaged"
+ },
+ "onaccessiblescrollintoview": {
+ "support_level": "untriaged"
+ },
+ "orientation": {
+ "support_level": "untriaged"
+ },
+ "owns": {
+ "support_level": "untriaged"
+ },
+ "placeholder": {
+ "support_level": "untriaged"
+ },
+ "posInSet": {
+ "support_level": "untriaged"
+ },
+ "pressed": {
+ "support_level": "untriaged"
+ },
+ "readOnly": {
+ "support_level": "untriaged"
+ },
+ "relevant": {
+ "support_level": "untriaged"
+ },
+ "required": {
+ "support_level": "untriaged"
+ },
+ "role": {
+ "support_level": "untriaged"
+ },
+ "roleDescription": {
+ "support_level": "untriaged"
+ },
+ "rowCount": {
+ "support_level": "untriaged"
+ },
+ "rowIndex": {
+ "support_level": "untriaged"
+ },
+ "rowSpan": {
+ "support_level": "untriaged"
+ },
+ "selected": {
+ "support_level": "untriaged"
+ },
+ "setSize": {
+ "support_level": "untriaged"
+ },
+ "sort": {
+ "support_level": "untriaged"
+ },
+ "valueMax": {
+ "support_level": "untriaged"
+ },
+ "valueMin": {
+ "support_level": "untriaged"
+ },
+ "valueNow": {
+ "support_level": "untriaged"
+ },
+ "valueText": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "AccessibleNodeList": {
+ "members": {
+ "AccessibleNodeList": {},
+ "__setter__": {
+ "support_level": "untriaged"
+ },
+ "add": {
+ "support_level": "untriaged"
+ },
+ "item": {
+ "support_level": "untriaged"
+ },
+ "length": {
+ "support_level": "untriaged"
+ },
+ "remove": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"AesCbcParams": {
"members": {
"iv": {
@@ -69,9 +288,19 @@
},
"support_level": "untriaged"
},
+ "AmbientLightSensor": {
+ "members": {
+ "AmbientLightSensor": {},
+ "illuminance": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"AnalyserNode": {
"comment": "https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AnalyserNode",
"members": {
+ "AnalyserNode": {},
"fftSize": {},
"frequencyBinCount": {},
"getByteFrequencyData": {},
@@ -110,6 +339,12 @@
"id": {
"support_level": "untriaged"
},
+ "oncancel": {
+ "support_level": "untriaged"
+ },
+ "onfinish": {
+ "support_level": "untriaged"
+ },
"pause": {
"support_level": "untriaged"
},
@@ -133,6 +368,9 @@
},
"startTime": {
"support_level": "untriaged"
+ },
+ "timeline": {
+ "support_level": "untriaged"
}
},
"support_level": "untriaged"
@@ -146,6 +384,9 @@
"computedTiming": {
"support_level": "untriaged"
},
+ "getComputedTiming": {
+ "support_level": "untriaged"
+ },
"timing": {
"support_level": "untriaged"
}
@@ -184,6 +425,35 @@
},
"support_level": "untriaged"
},
+ "AnimationEffectTimingReadOnly": {
+ "members": {
+ "delay": {
+ "support_level": "untriaged"
+ },
+ "direction": {
+ "support_level": "untriaged"
+ },
+ "duration": {
+ "support_level": "untriaged"
+ },
+ "easing": {
+ "support_level": "untriaged"
+ },
+ "endDelay": {
+ "support_level": "untriaged"
+ },
+ "fill": {
+ "support_level": "untriaged"
+ },
+ "iterationStart": {
+ "support_level": "untriaged"
+ },
+ "iterations": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"AnimationEvent": {
"members": {
"AnimationEvent": {},
@@ -225,6 +495,18 @@
},
"support_level": "untriaged"
},
+ "AnimationPlaybackEvent": {
+ "members": {
+ "AnimationPlaybackEvent": {},
+ "currentTime": {
+ "support_level": "untriaged"
+ },
+ "timelineTime": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"AnimationPlayer": {
"members": {
"cancel": {
@@ -301,6 +583,14 @@
},
"support_level": "untriaged"
},
+ "AnimationWorkletGlobalScope": {
+ "members": {
+ "registerAnimator": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"AppBannerPromptResult": {
"members": {
"outcome": {
@@ -407,6 +697,7 @@
"AudioBuffer": {
"comment": "https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioBuffer-section",
"members": {
+ "AudioBuffer": {},
"copyFromChannel": {
"support_level": "untriaged"
},
@@ -432,6 +723,7 @@
"AudioBufferSourceNode": {
"comment": "https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioBufferSourceNode-section",
"members": {
+ "AudioBufferSourceNode": {},
"FINISHED_STATE": {},
"PLAYING_STATE": {},
"SCHEDULED_STATE": {},
@@ -486,6 +778,9 @@
"support_level": "untriaged"
},
"start": {},
+ "start2": {
+ "support_level": "untriaged"
+ },
"stop": {}
},
"support_level": "experimental"
@@ -498,6 +793,9 @@
"addEventListener": {
"support_level": "untriaged"
},
+ "baseLatency": {
+ "support_level": "untriaged"
+ },
"close": {
"support_level": "untriaged"
},
@@ -539,6 +837,9 @@
"dispatchEvent": {
"support_level": "untriaged"
},
+ "getOutputTimestamp": {
+ "support_level": "untriaged"
+ },
"listener": {},
"oncomplete": {},
"removeEventListener": {
@@ -569,10 +870,37 @@
"comment": "https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioListener-section",
"members": {
"dopplerFactor": {},
+ "forwardX": {
+ "support_level": "untriaged"
+ },
+ "forwardY": {
+ "support_level": "untriaged"
+ },
+ "forwardZ": {
+ "support_level": "untriaged"
+ },
+ "positionX": {
+ "support_level": "untriaged"
+ },
+ "positionY": {
+ "support_level": "untriaged"
+ },
+ "positionZ": {
+ "support_level": "untriaged"
+ },
"setOrientation": {},
"setPosition": {},
"setVelocity": {},
- "speedOfSound": {}
+ "speedOfSound": {},
+ "upX": {
+ "support_level": "untriaged"
+ },
+ "upY": {
+ "support_level": "untriaged"
+ },
+ "upZ": {
+ "support_level": "untriaged"
+ }
},
"support_level": "experimental"
},
@@ -596,6 +924,9 @@
"AudioParam": {
"comment": "https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioParam",
"members": {
+ "cancelAndHoldAtTime": {
+ "support_level": "untriaged"
+ },
"cancelScheduledValues": {},
"defaultValue": {},
"exponentialRampToValueAtTime": {},
@@ -612,9 +943,14 @@
},
"support_level": "experimental"
},
+ "AudioParamMap": {
+ "members": {},
+ "support_level": "untriaged"
+ },
"AudioProcessingEvent": {
"comment": "https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioProcessingEvent-section",
"members": {
+ "AudioProcessingEvent": {},
"inputBuffer": {},
"outputBuffer": {},
"playbackTime": {
@@ -623,6 +959,23 @@
},
"support_level": "experimental"
},
+ "AudioScheduledSourceNode": {
+ "members": {
+ "onended": {
+ "support_level": "untriaged"
+ },
+ "start": {
+ "support_level": "untriaged"
+ },
+ "start2": {
+ "support_level": "untriaged"
+ },
+ "stop": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"AudioSourceNode": {
"comment": "https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html",
"members": {},
@@ -644,6 +997,9 @@
},
"language": {
"support_level": "untriaged"
+ },
+ "sourceBuffer": {
+ "support_level": "untriaged"
}
},
"support_level": "untriaged"
@@ -660,8 +1016,68 @@
"length": {
"support_level": "untriaged"
},
+ "onaddtrack": {
+ "support_level": "untriaged"
+ },
"onchange": {
"support_level": "untriaged"
+ },
+ "onremovetrack": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "AudioWorkletGlobalScope": {
+ "members": {
+ "currentTime": {
+ "support_level": "untriaged"
+ },
+ "registerProcessor": {
+ "support_level": "untriaged"
+ },
+ "sampleRate": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "AudioWorkletNode": {
+ "members": {
+ "AudioWorkletNode": {},
+ "parameters": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "AudioWorkletProcessor": {
+ "members": {},
+ "support_level": "untriaged"
+ },
+ "AuthenticatorAssertionResponse": {
+ "members": {
+ "authenticatorData": {
+ "support_level": "untriaged"
+ },
+ "signature": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "AuthenticatorAttestationResponse": {
+ "members": {
+ "attestationObject": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "AuthenticatorResponse": {
+ "members": {
+ "clientDataJSON": {
+ "support_level": "untriaged"
}
},
"support_level": "untriaged"
@@ -674,6 +1090,108 @@
},
"support_level": "experimental"
},
+ "BackgroundFetchClickEvent": {
+ "members": {
+ "BackgroundFetchClickEvent": {},
+ "state": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "BackgroundFetchEvent": {
+ "members": {
+ "BackgroundFetchEvent": {},
+ "id": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "BackgroundFetchFailEvent": {
+ "members": {
+ "BackgroundFetchFailEvent": {},
+ "fetches": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "BackgroundFetchFetch": {
+ "members": {
+ "request": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "BackgroundFetchManager": {
+ "members": {
+ "fetch": {
+ "support_level": "untriaged"
+ },
+ "get": {
+ "support_level": "untriaged"
+ },
+ "getIds": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "BackgroundFetchRegistration": {
+ "members": {
+ "abort": {
+ "support_level": "untriaged"
+ },
+ "downloadTotal": {
+ "support_level": "untriaged"
+ },
+ "downloaded": {
+ "support_level": "untriaged"
+ },
+ "id": {
+ "support_level": "untriaged"
+ },
+ "onprogress": {
+ "support_level": "untriaged"
+ },
+ "title": {
+ "support_level": "untriaged"
+ },
+ "totalDownloadSize": {
+ "support_level": "untriaged"
+ },
+ "uploadTotal": {
+ "support_level": "untriaged"
+ },
+ "uploaded": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "BackgroundFetchSettledFetch": {
+ "members": {
+ "BackgroundFetchSettledFetch": {},
+ "response": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "BackgroundFetchedEvent": {
+ "members": {
+ "BackgroundFetchedEvent": {},
+ "fetches": {
+ "support_level": "untriaged"
+ },
+ "updateUI": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"BarProp": {
"comment": "http://www.whatwg.org/specs/web-apps/current-work/multipage/browsers.html#barprop",
"dart_action": "suppress",
@@ -682,6 +1200,107 @@
},
"support_level": "standard"
},
+ "BarcodeDetector": {
+ "members": {
+ "BarcodeDetector": {},
+ "detect": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "BaseAudioContext": {
+ "members": {
+ "createAnalyser": {
+ "support_level": "untriaged"
+ },
+ "createBiquadFilter": {
+ "support_level": "untriaged"
+ },
+ "createBuffer": {
+ "support_level": "untriaged"
+ },
+ "createBufferSource": {
+ "support_level": "untriaged"
+ },
+ "createChannelMerger": {
+ "support_level": "untriaged"
+ },
+ "createChannelSplitter": {
+ "support_level": "untriaged"
+ },
+ "createConstantSource": {
+ "support_level": "untriaged"
+ },
+ "createConvolver": {
+ "support_level": "untriaged"
+ },
+ "createDelay": {
+ "support_level": "untriaged"
+ },
+ "createDynamicsCompressor": {
+ "support_level": "untriaged"
+ },
+ "createGain": {
+ "support_level": "untriaged"
+ },
+ "createIIRFilter": {
+ "support_level": "untriaged"
+ },
+ "createMediaElementSource": {
+ "support_level": "untriaged"
+ },
+ "createMediaStreamDestination": {
+ "support_level": "untriaged"
+ },
+ "createMediaStreamSource": {
+ "support_level": "untriaged"
+ },
+ "createOscillator": {
+ "support_level": "untriaged"
+ },
+ "createPanner": {
+ "support_level": "untriaged"
+ },
+ "createPeriodicWave": {
+ "support_level": "untriaged"
+ },
+ "createScriptProcessor": {
+ "support_level": "untriaged"
+ },
+ "createStereoPanner": {
+ "support_level": "untriaged"
+ },
+ "createWaveShaper": {
+ "support_level": "untriaged"
+ },
+ "currentTime": {
+ "support_level": "untriaged"
+ },
+ "decodeAudioData": {
+ "support_level": "untriaged"
+ },
+ "destination": {
+ "support_level": "untriaged"
+ },
+ "listener": {
+ "support_level": "untriaged"
+ },
+ "onstatechange": {
+ "support_level": "untriaged"
+ },
+ "resume": {
+ "support_level": "untriaged"
+ },
+ "sampleRate": {
+ "support_level": "untriaged"
+ },
+ "state": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"BatteryManager": {
"comment": "https://dvcs.w3.org/hg/dap/raw-file/default/battery/Overview.html#batterymanager-interface",
"dart_action": "experimental",
@@ -733,6 +1352,7 @@
"members": {
"ALLPASS": {},
"BANDPASS": {},
+ "BiquadFilterNode": {},
"HIGHPASS": {},
"HIGHSHELF": {},
"LOWPASS": {},
@@ -770,6 +1390,9 @@
"BlobEvent": {},
"data": {
"support_level": "untriaged"
+ },
+ "timecode": {
+ "support_level": "untriaged"
}
},
"support_level": "untriaged"
@@ -931,6 +1554,26 @@
},
"support_level": "untriaged"
},
+ "BluetoothRemoteGATTDescriptor": {
+ "members": {
+ "characteristic": {
+ "support_level": "untriaged"
+ },
+ "readValue": {
+ "support_level": "untriaged"
+ },
+ "uuid": {
+ "support_level": "untriaged"
+ },
+ "value": {
+ "support_level": "untriaged"
+ },
+ "writeValue": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"BluetoothRemoteGATTServer": {
"members": {
"connect": {
@@ -996,6 +1639,9 @@
"bodyUsed": {
"support_level": "untriaged"
},
+ "formData": {
+ "support_level": "untriaged"
+ },
"json": {
"support_level": "untriaged"
},
@@ -1005,6 +1651,52 @@
},
"support_level": "untriaged"
},
+ "BroadcastChannel": {
+ "members": {
+ "BroadcastChannel": {},
+ "close": {
+ "support_level": "untriaged"
+ },
+ "name": {
+ "support_level": "untriaged"
+ },
+ "onmessage": {
+ "support_level": "untriaged"
+ },
+ "onmessageerror": {
+ "support_level": "untriaged"
+ },
+ "postMessage": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "BudgetService": {
+ "members": {
+ "getBudget": {
+ "support_level": "untriaged"
+ },
+ "getCost": {
+ "support_level": "untriaged"
+ },
+ "reserve": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "BudgetState": {
+ "members": {
+ "budgetAt": {
+ "support_level": "untriaged"
+ },
+ "time": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"CDATASection": {
"comment": "http://dom.spec.whatwg.org/#cdatasection",
"dart_action": "suppress",
@@ -1051,12 +1743,105 @@
"comment": "http://www.w3.org/TR/css3-conditional/#the-css-interface",
"dart_action": "experimental",
"members": {
+ "Hz": {
+ "support_level": "untriaged"
+ },
+ "ch": {
+ "support_level": "untriaged"
+ },
+ "cm": {
+ "support_level": "untriaged"
+ },
+ "deg": {
+ "support_level": "untriaged"
+ },
+ "dpcm": {
+ "support_level": "untriaged"
+ },
+ "dpi": {
+ "support_level": "untriaged"
+ },
+ "dppx": {
+ "support_level": "untriaged"
+ },
+ "em": {
+ "support_level": "untriaged"
+ },
"escape": {
"support_level": "untriaged"
},
+ "ex": {
+ "support_level": "untriaged"
+ },
+ "fr": {
+ "support_level": "untriaged"
+ },
+ "grad": {
+ "support_level": "untriaged"
+ },
+ "in": {
+ "support_level": "untriaged"
+ },
+ "inch": {
+ "support_level": "untriaged"
+ },
+ "kHz": {
+ "support_level": "untriaged"
+ },
+ "mm": {
+ "support_level": "untriaged"
+ },
+ "ms": {
+ "support_level": "untriaged"
+ },
+ "number": {
+ "support_level": "untriaged"
+ },
+ "paintWorklet": {
+ "support_level": "untriaged"
+ },
+ "pc": {
+ "support_level": "untriaged"
+ },
+ "percent": {
+ "support_level": "untriaged"
+ },
+ "pt": {
+ "support_level": "untriaged"
+ },
+ "px": {
+ "support_level": "untriaged"
+ },
+ "rad": {
+ "support_level": "untriaged"
+ },
+ "registerProperty": {
+ "support_level": "untriaged"
+ },
+ "rem": {
+ "support_level": "untriaged"
+ },
+ "s": {
+ "support_level": "untriaged"
+ },
"supports": {},
"supportsCondition": {},
- "supportsProperty": {}
+ "supportsProperty": {},
+ "turn": {
+ "support_level": "untriaged"
+ },
+ "vh": {
+ "support_level": "untriaged"
+ },
+ "vmax": {
+ "support_level": "untriaged"
+ },
+ "vmin": {
+ "support_level": "untriaged"
+ },
+ "vw": {
+ "support_level": "untriaged"
+ }
}
},
"CSSCharsetRule": {
@@ -1066,6 +1851,14 @@
},
"support_level": "experimental"
},
+ "CSSConditionRule": {
+ "members": {
+ "conditionText": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"CSSFontFaceLoadEvent": {
"comment": "http://www.w3.org/TR/css3-fonts/",
"members": {
@@ -1107,6 +1900,20 @@
},
"support_level": "experimental"
},
+ "CSSImageValue": {
+ "members": {
+ "intrinsicHeight": {
+ "support_level": "untriaged"
+ },
+ "intrinsicRatio": {
+ "support_level": "untriaged"
+ },
+ "intrinsicWidth": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"CSSImportRule": {
"comment": "http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSImportRule",
"members": {
@@ -1154,6 +1961,24 @@
},
"support_level": "untriaged"
},
+ "CSSKeywordValue": {
+ "members": {
+ "CSSKeywordValue": {},
+ "value": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "CSSMatrixComponent": {
+ "members": {
+ "CSSMatrixComponent": {},
+ "matrix": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"CSSMediaRule": {
"comment": "http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSMediaRule",
"members": {
@@ -1175,6 +2000,29 @@
},
"support_level": "untriaged"
},
+ "CSSNumericValue": {
+ "members": {
+ "add": {
+ "support_level": "untriaged"
+ },
+ "div": {
+ "support_level": "untriaged"
+ },
+ "mul": {
+ "support_level": "untriaged"
+ },
+ "parse": {
+ "support_level": "untriaged"
+ },
+ "sub": {
+ "support_level": "untriaged"
+ },
+ "to": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"CSSPageRule": {
"comment": "http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPageRule",
"members": {
@@ -1183,6 +2031,27 @@
},
"support_level": "stable"
},
+ "CSSPerspective": {
+ "members": {
+ "CSSPerspective": {},
+ "length": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "CSSPositionValue": {
+ "members": {
+ "CSSPositionValue": {},
+ "x": {
+ "support_level": "untriaged"
+ },
+ "y": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"CSSPrimitiveValue": {
"comment": "http://dev.w3.org/csswg/cssom/#the-cssstyledeclaration-interface",
"dart_action": "suppress",
@@ -1228,6 +2097,32 @@
},
"support_level": "deprecated"
},
+ "CSSResourceValue": {
+ "members": {
+ "state": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "CSSRotation": {
+ "members": {
+ "CSSRotation": {},
+ "angle": {
+ "support_level": "untriaged"
+ },
+ "x": {
+ "support_level": "untriaged"
+ },
+ "y": {
+ "support_level": "untriaged"
+ },
+ "z": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"CSSRule": {
"comment": "http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSRule",
"members": {
@@ -1290,6 +2185,33 @@
},
"support_level": "stable"
},
+ "CSSScale": {
+ "members": {
+ "CSSScale": {},
+ "x": {
+ "support_level": "untriaged"
+ },
+ "y": {
+ "support_level": "untriaged"
+ },
+ "z": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "CSSSkew": {
+ "members": {
+ "CSSSkew": {},
+ "ax": {
+ "support_level": "untriaged"
+ },
+ "ay": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"CSSStyleDeclaration": {
"comment": "http://dev.w3.org/csswg/cssom/#the-cssstyledeclaration-interface",
"members": {
@@ -1353,6 +2275,14 @@
},
"support_level": "stable"
},
+ "CSSStyleValue": {
+ "members": {
+ "parse": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"CSSSupportsRule": {
"comment": "http://www.w3.org/TR/css3-conditional/#csssupportsrule",
"members": {
@@ -1363,12 +2293,88 @@
},
"support_level": "standard"
},
+ "CSSTransformComponent": {
+ "members": {
+ "is2D": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "CSSTransformValue": {
+ "members": {
+ "CSSTransformValue": {},
+ "componentAtIndex": {
+ "support_level": "untriaged"
+ },
+ "is2D": {
+ "support_level": "untriaged"
+ },
+ "length": {
+ "support_level": "untriaged"
+ },
+ "toMatrix": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "CSSTranslation": {
+ "members": {
+ "CSSTranslation": {},
+ "x": {
+ "support_level": "untriaged"
+ },
+ "y": {
+ "support_level": "untriaged"
+ },
+ "z": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "CSSURLImageValue": {
+ "members": {
+ "CSSURLImageValue": {},
+ "url": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "CSSUnitValue": {
+ "members": {
+ "CSSUnitValue": {},
+ "type": {
+ "support_level": "untriaged"
+ },
+ "unit": {
+ "support_level": "untriaged"
+ },
+ "value": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"CSSUnknownRule": {
"comment": "http://dev.w3.org/csswg/cssom/#the-cssstylesheet-interface",
"dart_action": "suppress",
"members": {},
"support_level": "deprecated"
},
+ "CSSUnparsedValue": {
+ "members": {
+ "fragmentAtIndex": {
+ "support_level": "untriaged"
+ },
+ "length": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"CSSValue": {
"comment": "http://dev.w3.org/csswg/cssom/",
"dart_action": "suppress",
@@ -1403,6 +2409,17 @@
},
"support_level": "deprecated"
},
+ "CSSVariableReferenceValue": {
+ "members": {
+ "fallback": {
+ "support_level": "untriaged"
+ },
+ "variable": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"CSSVariablesMap": {
"members": {
"clear": {
@@ -1525,6 +2542,27 @@
},
"support_level": "untriaged"
},
+ "CanMakePaymentEvent": {
+ "members": {
+ "CanMakePaymentEvent": {},
+ "methodData": {
+ "support_level": "untriaged"
+ },
+ "modifiers": {
+ "support_level": "untriaged"
+ },
+ "paymentRequestOrigin": {
+ "support_level": "untriaged"
+ },
+ "respondWith": {
+ "support_level": "untriaged"
+ },
+ "topLevelOrigin": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"Canvas2DContextAttributes": {
"comment": "http://wiki.whatwg.org/wiki/CanvasOpaque#Suggested_IDL",
"members": {
@@ -1553,6 +2591,38 @@
},
"support_level": "stable"
},
+ "CanvasPath": {
+ "members": {
+ "arc": {
+ "support_level": "untriaged"
+ },
+ "arcTo": {
+ "support_level": "untriaged"
+ },
+ "bezierCurveTo": {
+ "support_level": "untriaged"
+ },
+ "closePath": {
+ "support_level": "untriaged"
+ },
+ "ellipse": {
+ "support_level": "untriaged"
+ },
+ "lineTo": {
+ "support_level": "untriaged"
+ },
+ "moveTo": {
+ "support_level": "untriaged"
+ },
+ "quadraticCurveTo": {
+ "support_level": "untriaged"
+ },
+ "rect": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"CanvasPathMethods": {
"members": {
"arc": {
@@ -1779,12 +2849,16 @@
},
"ChannelMergerNode": {
"comment": "https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#ChannelMergerNode-section",
- "members": {},
+ "members": {
+ "ChannelMergerNode": {}
+ },
"support_level": "experimental"
},
"ChannelSplitterNode": {
"comment": "https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#ChannelSplitterNode-section",
- "members": {},
+ "members": {
+ "ChannelSplitterNode": {}
+ },
"support_level": "experimental"
},
"CharacterData": {
@@ -1891,6 +2965,9 @@
"postMessage": {
"support_level": "untriaged"
},
+ "type": {
+ "support_level": "untriaged"
+ },
"url": {
"support_level": "untriaged"
}
@@ -1946,14 +3023,27 @@
"files": {},
"getData": {},
"items": {},
+ "read": {
+ "support_level": "untriaged"
+ },
+ "readText": {
+ "support_level": "untriaged"
+ },
"setData": {},
"setDragImage": {},
- "types": {}
+ "types": {},
+ "write": {
+ "support_level": "untriaged"
+ },
+ "writeText": {
+ "support_level": "untriaged"
+ }
},
"support_level": "stable"
},
"ClipboardEvent": {
"members": {
+ "ClipboardEvent": {},
"clipboardData": {
"support_level": "untriaged"
}
@@ -2207,14 +3297,35 @@
},
"support_level": "untriaged"
},
+ "ConstantSourceNode": {
+ "members": {
+ "ConstantSourceNode": {},
+ "offset": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"ConvolverNode": {
"comment": "https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#ConvolverNode",
"members": {
+ "ConvolverNode": {},
"buffer": {},
"normalize": {}
},
"support_level": "experimental"
},
+ "CookieStore": {
+ "members": {
+ "getAll": {
+ "support_level": "untriaged"
+ },
+ "set": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"Coordinates": {
"comment": "http://www.w3.org/TR/geolocation-API/#coordinates_interface",
"members": {
@@ -2258,8 +3369,22 @@
},
"support_level": "untriaged"
},
+ "CredentialUserData": {
+ "members": {
+ "iconURL": {
+ "support_level": "untriaged"
+ },
+ "name": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"CredentialsContainer": {
"members": {
+ "create": {
+ "support_level": "untriaged"
+ },
"get": {
"support_level": "untriaged"
},
@@ -2272,6 +3397,9 @@
"notifySignedOut": {
"support_level": "untriaged"
},
+ "preventSilentAccess": {
+ "support_level": "untriaged"
+ },
"request": {
"support_level": "untriaged"
},
@@ -2362,9 +3490,27 @@
"CustomElementConstructor": {
"comment": "https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/custom/index.html#dfn-custom-element-constructor-generation",
"dart_action": "suppress",
- "members": {},
+ "members": {
+ "callback": {
+ "support_level": "untriaged"
+ }
+ },
"support_level": "experimental"
},
+ "CustomElementRegistry": {
+ "members": {
+ "define": {
+ "support_level": "untriaged"
+ },
+ "get": {
+ "support_level": "untriaged"
+ },
+ "whenDefined": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"CustomEvent": {
"comment": "http://www.w3.org/TR/DOM-Level-3-Events/#interface-CustomEvent",
"members": {
@@ -2600,6 +3746,18 @@
"f": {
"support_level": "untriaged"
},
+ "fromFloat32Array": {
+ "support_level": "untriaged"
+ },
+ "fromFloat64Array": {
+ "support_level": "untriaged"
+ },
+ "fromMatrix": {
+ "support_level": "untriaged"
+ },
+ "invertSelf": {
+ "support_level": "untriaged"
+ },
"m11": {
"support_level": "untriaged"
},
@@ -2654,6 +3812,15 @@
"preMultiplySelf": {
"support_level": "untriaged"
},
+ "rotateAxisAngleSelf": {
+ "support_level": "untriaged"
+ },
+ "rotateFromVectorSelf": {
+ "support_level": "untriaged"
+ },
+ "rotateSelf": {
+ "support_level": "untriaged"
+ },
"scale3dSelf": {
"support_level": "untriaged"
},
@@ -2663,6 +3830,15 @@
"scaleSelf": {
"support_level": "untriaged"
},
+ "setMatrixValue": {
+ "support_level": "untriaged"
+ },
+ "skewXSelf": {
+ "support_level": "untriaged"
+ },
+ "skewYSelf": {
+ "support_level": "untriaged"
+ },
"translateSelf": {
"support_level": "untriaged"
}
@@ -2671,6 +3847,7 @@
},
"DOMMatrixReadOnly": {
"members": {
+ "DOMMatrixReadOnly": {},
"a": {
"support_level": "untriaged"
},
@@ -2689,6 +3866,24 @@
"f": {
"support_level": "untriaged"
},
+ "flipX": {
+ "support_level": "untriaged"
+ },
+ "flipY": {
+ "support_level": "untriaged"
+ },
+ "fromFloat32Array": {
+ "support_level": "untriaged"
+ },
+ "fromFloat64Array": {
+ "support_level": "untriaged"
+ },
+ "fromMatrix": {
+ "support_level": "untriaged"
+ },
+ "inverse": {
+ "support_level": "untriaged"
+ },
"is2D": {
"support_level": "untriaged"
},
@@ -2746,6 +3941,15 @@
"multiply": {
"support_level": "untriaged"
},
+ "rotate": {
+ "support_level": "untriaged"
+ },
+ "rotateAxisAngle": {
+ "support_level": "untriaged"
+ },
+ "rotateFromVector": {
+ "support_level": "untriaged"
+ },
"scale": {
"support_level": "untriaged"
},
@@ -2755,12 +3959,21 @@
"scaleNonUniform": {
"support_level": "untriaged"
},
+ "skewX": {
+ "support_level": "untriaged"
+ },
+ "skewY": {
+ "support_level": "untriaged"
+ },
"toFloat32Array": {
"support_level": "untriaged"
},
"toFloat64Array": {
"support_level": "untriaged"
},
+ "transformPoint": {
+ "support_level": "untriaged"
+ },
"translate": {
"support_level": "untriaged"
}
@@ -2777,6 +3990,9 @@
"DOMPoint": {
"members": {
"DOMPoint": {},
+ "fromPoint": {
+ "support_level": "untriaged"
+ },
"w": {
"support_level": "untriaged"
},
@@ -2795,6 +4011,12 @@
"DOMPointReadOnly": {
"members": {
"DOMPointReadOnly": {},
+ "fromPoint": {
+ "support_level": "untriaged"
+ },
+ "matrixTransform": {
+ "support_level": "untriaged"
+ },
"w": {
"support_level": "untriaged"
},
@@ -2810,9 +4032,39 @@
},
"support_level": "untriaged"
},
+ "DOMQuad": {
+ "members": {
+ "DOMQuad": {},
+ "fromQuad": {
+ "support_level": "untriaged"
+ },
+ "fromRect": {
+ "support_level": "untriaged"
+ },
+ "getBounds": {
+ "support_level": "untriaged"
+ },
+ "p1": {
+ "support_level": "untriaged"
+ },
+ "p2": {
+ "support_level": "untriaged"
+ },
+ "p3": {
+ "support_level": "untriaged"
+ },
+ "p4": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"DOMRect": {
"members": {
"DOMRect": {},
+ "fromRect": {
+ "support_level": "untriaged"
+ },
"height": {
"support_level": "untriaged"
},
@@ -2828,12 +4080,26 @@
},
"support_level": "untriaged"
},
+ "DOMRectList": {
+ "members": {
+ "item": {
+ "support_level": "untriaged"
+ },
+ "length": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"DOMRectReadOnly": {
"members": {
"DOMRectReadOnly": {},
"bottom": {
"support_level": "untriaged"
},
+ "fromRect": {
+ "support_level": "untriaged"
+ },
"height": {
"support_level": "untriaged"
},
@@ -2907,6 +4173,9 @@
"remove": {
"support_level": "untriaged"
},
+ "replace": {
+ "support_level": "untriaged"
+ },
"supports": {
"support_level": "untriaged"
},
@@ -2920,6 +4189,7 @@
},
"DataTransfer": {
"members": {
+ "DataTransfer": {},
"clearData": {
"support_level": "untriaged"
},
@@ -3019,6 +4289,9 @@
"comment": "http://www.w3.org/TR/webdatabase/#databasecallback",
"dart_action": "experimental",
"members": {
+ "callback": {
+ "support_level": "untriaged"
+ },
"handleEvent": {}
},
"support_level": "deprecated"
@@ -3035,6 +4308,22 @@
},
"support_level": "deprecated"
},
+ "DecodeErrorCallback": {
+ "members": {
+ "callback": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "DecodeSuccessCallback": {
+ "members": {
+ "callback": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"DedicatedWorkerContext": {
"comment": "http://www.whatwg.org/specs/web-apps/current-work/multipage/workers.html",
"members": {
@@ -3051,9 +4340,15 @@
"TEMPORARY": {
"support_level": "untriaged"
},
+ "close": {
+ "support_level": "untriaged"
+ },
"onmessage": {
"support_level": "untriaged"
},
+ "onmessageerror": {
+ "support_level": "untriaged"
+ },
"postMessage": {
"support_level": "untriaged"
},
@@ -3084,6 +4379,7 @@
"DelayNode": {
"comment": "https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#DelayNode",
"members": {
+ "DelayNode": {},
"delayTime": {}
},
"support_level": "experimental"
@@ -3116,6 +4412,62 @@
},
"support_level": "untriaged"
},
+ "DeprecationReport": {
+ "members": {
+ "lineNumber": {
+ "support_level": "untriaged"
+ },
+ "message": {
+ "support_level": "untriaged"
+ },
+ "sourceFile": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "DetectedBarcode": {
+ "members": {
+ "DetectedBarcode": {},
+ "boundingBox": {
+ "support_level": "untriaged"
+ },
+ "cornerPoints": {
+ "support_level": "untriaged"
+ },
+ "rawValue": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "DetectedFace": {
+ "members": {
+ "DetectedFace": {},
+ "boundingBox": {
+ "support_level": "untriaged"
+ },
+ "landmarks": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "DetectedText": {
+ "members": {
+ "DetectedText": {},
+ "boundingBox": {
+ "support_level": "untriaged"
+ },
+ "cornerPoints": {
+ "support_level": "untriaged"
+ },
+ "rawValue": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"DeviceAcceleration": {
"comment": "http://dev.w3.org/geo/api/spec-source-orientation.html#devicemotion",
"members": {
@@ -3137,6 +4489,7 @@
"DeviceMotionEvent": {
"comment": "http://dev.w3.org/geo/api/spec-source-orientation.html#devicemotion",
"members": {
+ "DeviceMotionEvent": {},
"acceleration": {},
"accelerationIncludingGravity": {},
"initDeviceMotionEvent": {
@@ -3150,6 +4503,7 @@
"DeviceOrientationEvent": {
"comment": "http://dev.w3.org/geo/api/spec-source-orientation.html#devicemotion",
"members": {
+ "DeviceOrientationEvent": {},
"absolute": {},
"alpha": {},
"beta": {},
@@ -3237,10 +4591,14 @@
"Document": {
"comment": "http://dom.spec.whatwg.org/#interface-document",
"members": {
+ "Document": {},
"URL": {},
"activeElement": {
"support_level": "untriaged"
},
+ "addressSpace": {
+ "support_level": "untriaged"
+ },
"adoptNode": {},
"anchors": {
"dart_action": "suppress"
@@ -3367,6 +4725,9 @@
"fullscreenEnabled": {
"support_level": "untriaged"
},
+ "getAnimations": {
+ "support_level": "untriaged"
+ },
"getCSSCanvasContext": {
"comment": "https://developer.apple.com/library/safari/#documentation/AppleApplications/Reference/SafariCSSRef/Articles/Functions.html",
"support_level": "nonstandard"
@@ -3545,6 +4906,9 @@
"comment": "http://www.w3.org/TR/touch-events/, http://www.chromestatus.com/features",
"support_level": "experimental"
},
+ "onvisibilitychange": {
+ "support_level": "untriaged"
+ },
"onvolumechange": {
"support_level": "untriaged"
},
@@ -3588,9 +4952,18 @@
"querySelectorAll": {},
"readyState": {},
"referrer": {},
+ "registerElement": {
+ "support_level": "untriaged"
+ },
+ "registerElement2": {
+ "support_level": "untriaged"
+ },
"rootElement": {
"support_level": "untriaged"
},
+ "rootScroller": {
+ "support_level": "untriaged"
+ },
"scrollingElement": {
"support_level": "untriaged"
},
@@ -3712,6 +5085,38 @@
},
"support_level": "stable"
},
+ "DocumentOrShadowRoot": {
+ "members": {
+ "activeElement": {
+ "support_level": "untriaged"
+ },
+ "elementFromPoint": {
+ "support_level": "untriaged"
+ },
+ "elementsFromPoint": {
+ "support_level": "untriaged"
+ },
+ "fullscreenElement": {
+ "support_level": "untriaged"
+ },
+ "getSelection": {
+ "support_level": "untriaged"
+ },
+ "pointerLockElement": {
+ "support_level": "untriaged"
+ },
+ "styleSheets": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "DocumentTimeline": {
+ "members": {
+ "DocumentTimeline": {}
+ },
+ "support_level": "untriaged"
+ },
"DocumentType": {
"comment": "http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-412266927",
"dart_action": "suppress",
@@ -3758,6 +5163,7 @@
"DynamicsCompressorNode": {
"comment": "https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#DynamicsCompressorNode",
"members": {
+ "DynamicsCompressorNode": {},
"attack": {},
"knee": {},
"ratio": {},
@@ -3782,6 +5188,10 @@
"members": {},
"support_level": "untriaged"
},
+ "EXTColorBufferHalfFloat": {
+ "members": {},
+ "support_level": "untriaged"
+ },
"EXTDisjointTimerQuery": {
"members": {
"CURRENT_QUERY_EXT": {
@@ -3832,6 +5242,26 @@
},
"support_level": "untriaged"
},
+ "EXTDisjointTimerQueryWebGL2": {
+ "members": {
+ "GPU_DISJOINT_EXT": {
+ "support_level": "untriaged"
+ },
+ "QUERY_COUNTER_BITS_EXT": {
+ "support_level": "untriaged"
+ },
+ "TIMESTAMP_EXT": {
+ "support_level": "untriaged"
+ },
+ "TIME_ELAPSED_EXT": {
+ "support_level": "untriaged"
+ },
+ "queryCounterEXT": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"EXTFragDepth": {
"comment": "http://www.khronos.org/registry/webgl/extensions/EXT_frag_depth/",
"members": {},
@@ -3878,6 +5308,9 @@
"dart_action": "suppress",
"support_level": "deprecated"
},
+ "accessibleNode": {
+ "support_level": "untriaged"
+ },
"after": {
"support_level": "untriaged"
},
@@ -3962,6 +5395,9 @@
"getAttributeNS": {
"support_level": "untriaged"
},
+ "getAttributeNames": {
+ "support_level": "untriaged"
+ },
"getAttributeNode": {
"comment": "http://dom.spec.whatwg.org/#dom-element-getattributenode",
"dart_action": "suppress",
@@ -3989,6 +5425,9 @@
"hasAttribute": {},
"hasAttributeNS": {},
"hasAttributes": {},
+ "hasPointerCapture": {
+ "support_level": "untriaged"
+ },
"hidden": {
"comment": "http://www.whatwg.org/specs/web-apps/2007-10-26/multipage/section-elements.html#htmlelement",
"dart_action": "stable",
@@ -3999,6 +5438,9 @@
"dart_action": "stable",
"support_level": "nonstandard"
},
+ "inert": {
+ "support_level": "untriaged"
+ },
"innerHTML": {
"comment": "http://www.whatwg.org/specs/web-apps/2007-10-26/multipage/section-elements.html#htmlelement",
"dart_action": "stable",
@@ -4009,6 +5451,9 @@
"dart_action": "suppress",
"support_level": "untriaged"
},
+ "inputMode": {
+ "support_level": "untriaged"
+ },
"insertAdjacentElement": {
"support_level": "untriaged"
},
@@ -4216,6 +5661,9 @@
},
"querySelector": {},
"querySelectorAll": {},
+ "releasePointerCapture": {
+ "support_level": "untriaged"
+ },
"remove": {
"dart_action": "stable",
"support_level": "nonstandard"
@@ -4269,6 +5717,9 @@
"setDistributeScroll": {
"support_level": "untriaged"
},
+ "setPointerCapture": {
+ "support_level": "untriaged"
+ },
"shadowRoot": {
"comment": "https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#api-shadow-aware-create-shadow-root",
"support_level": "experimental"
@@ -4282,6 +5733,9 @@
"support_level": "nonstandard"
},
"style": {},
+ "styleMap": {
+ "support_level": "untriaged"
+ },
"tabIndex": {
"comment": "http://www.whatwg.org/specs/web-apps/2007-10-26/multipage/section-elements.html#htmlelement",
"dart_action": "stable",
@@ -4564,6 +6018,12 @@
"dart_action": "experimental",
"support_level": "nonstandard"
},
+ "composed": {
+ "support_level": "untriaged"
+ },
+ "composedPath": {
+ "support_level": "untriaged"
+ },
"currentTarget": {},
"deepPath": {
"support_level": "untriaged"
@@ -4679,12 +6139,38 @@
},
"support_level": "untriaged"
},
+ "External": {
+ "members": {
+ "AddSearchProvider": {
+ "support_level": "untriaged"
+ },
+ "IsSearchProviderInstalled": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "FaceDetector": {
+ "members": {
+ "FaceDetector": {},
+ "detect": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"FederatedCredential": {
"members": {
"FederatedCredential": {},
"federation": {
"support_level": "untriaged"
},
+ "iconURL": {
+ "support_level": "untriaged"
+ },
+ "name": {
+ "support_level": "untriaged"
+ },
"protocol": {
"support_level": "untriaged"
},
@@ -4720,6 +6206,9 @@
"isReload": {
"support_level": "untriaged"
},
+ "preloadResponse": {
+ "support_level": "untriaged"
+ },
"request": {
"support_level": "untriaged"
},
@@ -4973,6 +6462,9 @@
"FontFace": {
"members": {
"FontFace": {},
+ "display": {
+ "support_level": "untriaged"
+ },
"family": {
"support_level": "untriaged"
},
@@ -5035,6 +6527,15 @@
"match": {
"support_level": "untriaged"
},
+ "onloading": {
+ "support_level": "untriaged"
+ },
+ "onloadingdone": {
+ "support_level": "untriaged"
+ },
+ "onloadingerror": {
+ "support_level": "untriaged"
+ },
"removeEventListener": {
"support_level": "untriaged"
},
@@ -5053,12 +6554,21 @@
},
"FontFaceSetLoadEvent": {
"members": {
+ "FontFaceSetLoadEvent": {},
"fontfaces": {
"support_level": "untriaged"
}
},
"support_level": "untriaged"
},
+ "FontFaceSource": {
+ "members": {
+ "fonts": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"FontLoader": {
"comment": "http://www.w3.org/TR/css3-fonts/#document-fontloader",
"members": {
@@ -5077,6 +6587,21 @@
},
"support_level": "experimental"
},
+ "ForeignFetchEvent": {
+ "members": {
+ "ForeignFetchEvent": {},
+ "origin": {
+ "support_level": "untriaged"
+ },
+ "request": {
+ "support_level": "untriaged"
+ },
+ "respondWith": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"FormData": {
"comment": "http://www.w3.org/TR/XMLHttpRequest2/#interface-formdata",
"members": {
@@ -5103,12 +6628,25 @@
"support_level": "stable"
},
"FrameRequestCallback": {
- "members": {},
+ "members": {
+ "callback": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "FunctionStringCallback": {
+ "members": {
+ "callback": {
+ "support_level": "untriaged"
+ }
+ },
"support_level": "untriaged"
},
"GainNode": {
"comment": "https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#GainNode",
"members": {
+ "GainNode": {},
"gain": {}
},
"support_level": "experimental"
@@ -5121,11 +6659,20 @@
"connected": {
"support_level": "untriaged"
},
+ "displayId": {
+ "support_level": "untriaged"
+ },
+ "hand": {
+ "support_level": "untriaged"
+ },
"id": {},
"index": {},
"mapping": {
"support_level": "untriaged"
},
+ "pose": {
+ "support_level": "untriaged"
+ },
"timestamp": {}
},
"support_level": "experimental"
@@ -5135,6 +6682,9 @@
"pressed": {
"support_level": "untriaged"
},
+ "touched": {
+ "support_level": "untriaged"
+ },
"value": {
"support_level": "untriaged"
}
@@ -5158,6 +6708,35 @@
},
"support_level": "experimental"
},
+ "GamepadPose": {
+ "members": {
+ "angularAcceleration": {
+ "support_level": "untriaged"
+ },
+ "angularVelocity": {
+ "support_level": "untriaged"
+ },
+ "hasOrientation": {
+ "support_level": "untriaged"
+ },
+ "hasPosition": {
+ "support_level": "untriaged"
+ },
+ "linearAcceleration": {
+ "support_level": "untriaged"
+ },
+ "linearVelocity": {
+ "support_level": "untriaged"
+ },
+ "orientation": {
+ "support_level": "untriaged"
+ },
+ "position": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"Geofencing": {
"members": {
"getRegisteredRegions": {
@@ -5215,9 +6794,15 @@
"onabort": {
"support_level": "untriaged"
},
+ "onauxclick": {
+ "support_level": "untriaged"
+ },
"onblur": {
"support_level": "untriaged"
},
+ "oncancel": {
+ "support_level": "untriaged"
+ },
"oncanplay": {
"support_level": "untriaged"
},
@@ -5230,9 +6815,15 @@
"onclick": {
"support_level": "untriaged"
},
+ "onclose": {
+ "support_level": "untriaged"
+ },
"oncontextmenu": {
"support_level": "untriaged"
},
+ "oncuechange": {
+ "support_level": "untriaged"
+ },
"ondblclick": {
"support_level": "untriaged"
},
@@ -5275,6 +6866,9 @@
"onfocus": {
"support_level": "untriaged"
},
+ "ongotpointercapture": {
+ "support_level": "untriaged"
+ },
"oninput": {
"support_level": "untriaged"
},
@@ -5299,6 +6893,12 @@
"onloadedmetadata": {
"support_level": "untriaged"
},
+ "onloadstart": {
+ "support_level": "untriaged"
+ },
+ "onlostpointercapture": {
+ "support_level": "untriaged"
+ },
"onmousedown": {
"support_level": "untriaged"
},
@@ -5332,6 +6932,33 @@
"onplaying": {
"support_level": "untriaged"
},
+ "onpointercancel": {
+ "support_level": "untriaged"
+ },
+ "onpointerdown": {
+ "support_level": "untriaged"
+ },
+ "onpointerenter": {
+ "support_level": "untriaged"
+ },
+ "onpointerleave": {
+ "support_level": "untriaged"
+ },
+ "onpointermove": {
+ "support_level": "untriaged"
+ },
+ "onpointerout": {
+ "support_level": "untriaged"
+ },
+ "onpointerover": {
+ "support_level": "untriaged"
+ },
+ "onpointerup": {
+ "support_level": "untriaged"
+ },
+ "onprogress": {
+ "support_level": "untriaged"
+ },
"onratechange": {
"support_level": "untriaged"
},
@@ -5365,6 +6992,9 @@
"ontimeupdate": {
"support_level": "untriaged"
},
+ "ontoggle": {
+ "support_level": "untriaged"
+ },
"ontouchcancel": {
"support_level": "untriaged"
},
@@ -5382,6 +7012,24 @@
},
"onwaiting": {
"support_level": "untriaged"
+ },
+ "onwheel": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "Gyroscope": {
+ "members": {
+ "Gyroscope": {},
+ "x": {
+ "support_level": "untriaged"
+ },
+ "y": {
+ "support_level": "untriaged"
+ },
+ "z": {
+ "support_level": "untriaged"
}
},
"support_level": "untriaged"
@@ -5454,6 +7102,9 @@
},
"port": {},
"protocol": {},
+ "referrerPolicy": {
+ "support_level": "untriaged"
+ },
"referrerpolicy": {
"support_level": "untriaged"
},
@@ -5503,6 +7154,9 @@
"HTMLAreaElement": {},
"alt": {},
"coords": {},
+ "download": {
+ "support_level": "untriaged"
+ },
"hash": {},
"host": {},
"hostname": {},
@@ -5526,9 +7180,15 @@
},
"port": {},
"protocol": {},
+ "referrerPolicy": {
+ "support_level": "untriaged"
+ },
"referrerpolicy": {
"support_level": "untriaged"
},
+ "rel": {
+ "support_level": "untriaged"
+ },
"search": {},
"shape": {},
"target": {},
@@ -5612,6 +7272,9 @@
"onmessage": {},
"onoffline": {},
"ononline": {},
+ "onorientationchange": {
+ "support_level": "untriaged"
+ },
"onpopstate": {},
"onresize": {},
"onscroll": {
@@ -5681,6 +7344,9 @@
"support_level": "untriaged"
},
"toDataURL": {},
+ "transferControlToOffscreen": {
+ "support_level": "untriaged"
+ },
"width": {}
},
"support_level": "stable"
@@ -5717,6 +7383,14 @@
},
"support_level": "stable"
},
+ "HTMLDataElement": {
+ "members": {
+ "value": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"HTMLDataListElement": {
"comment": "http://www.whatwg.org/specs/web-apps/current-work/multipage/the-button-element.html#the-datalist-element",
"members": {
@@ -5868,6 +7542,9 @@
},
"hidden": {},
"id": {},
+ "inert": {
+ "support_level": "untriaged"
+ },
"innerHTML": {},
"innerText": {
"dart_action": "suppress",
@@ -5876,6 +7553,9 @@
"inputMethodContext": {
"support_level": "untriaged"
},
+ "inputMode": {
+ "support_level": "untriaged"
+ },
"insertAdjacentElement": {
"support_level": "nonstandard"
},
@@ -5887,6 +7567,9 @@
},
"isContentEditable": {},
"lang": {},
+ "nonce": {
+ "support_level": "untriaged"
+ },
"onabort": {
"support_level": "untriaged"
},
@@ -6058,6 +7741,9 @@
"onwaiting": {
"support_level": "untriaged"
},
+ "onwheel": {
+ "support_level": "untriaged"
+ },
"outerHTML": {},
"outerText": {
"dart_action": "suppress",
@@ -6308,6 +7994,44 @@
},
"support_level": "stable"
},
+ "HTMLHyperlinkElementUtils": {
+ "members": {
+ "hash": {
+ "support_level": "untriaged"
+ },
+ "host": {
+ "support_level": "untriaged"
+ },
+ "hostname": {
+ "support_level": "untriaged"
+ },
+ "href": {
+ "support_level": "untriaged"
+ },
+ "origin": {
+ "support_level": "untriaged"
+ },
+ "password": {
+ "support_level": "untriaged"
+ },
+ "pathname": {
+ "support_level": "untriaged"
+ },
+ "port": {
+ "support_level": "untriaged"
+ },
+ "protocol": {
+ "support_level": "untriaged"
+ },
+ "search": {
+ "support_level": "untriaged"
+ },
+ "username": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"HTMLIFrameElement": {
"comment": "http://www.whatwg.org/specs/web-apps/current-work/multipage/the-iframe-element.html#the-iframe-element",
"members": {
@@ -6317,11 +8041,20 @@
"dart_action": "suppress",
"support_level": "deprecated"
},
+ "allow": {
+ "support_level": "untriaged"
+ },
"allowFullscreen": {
"support_level": "untriaged"
},
+ "allowPaymentRequest": {
+ "support_level": "untriaged"
+ },
"contentDocument": {},
"contentWindow": {},
+ "csp": {
+ "support_level": "untriaged"
+ },
"frameBorder": {
"comment": "http://www.whatwg.org/specs/web-apps/current-work/multipage/obsolete.html#HTMLIFrameElement-partial",
"dart_action": "suppress",
@@ -6352,6 +8085,9 @@
"support_level": "deprecated"
},
"name": {},
+ "referrerPolicy": {
+ "support_level": "untriaged"
+ },
"referrerpolicy": {
"support_level": "untriaged"
},
@@ -6378,6 +8114,9 @@
"support_level": "deprecated"
},
"alt": {},
+ "async": {
+ "support_level": "untriaged"
+ },
"border": {
"dart_action": "suppress",
"support_level": "deprecated"
@@ -6387,6 +8126,9 @@
"currentSrc": {
"support_level": "untriaged"
},
+ "decode": {
+ "support_level": "untriaged"
+ },
"height": {},
"hspace": {
"comment": "http://www.whatwg.org/specs/web-apps/current-work/multipage/obsolete.html#HTMLImageElement-partial",
@@ -6409,6 +8151,9 @@
"name": {},
"naturalHeight": {},
"naturalWidth": {},
+ "referrerPolicy": {
+ "support_level": "untriaged"
+ },
"referrerpolicy": {
"support_level": "untriaged"
},
@@ -6643,6 +8388,9 @@
"support_level": "untriaged"
},
"media": {},
+ "referrerPolicy": {
+ "support_level": "untriaged"
+ },
"rel": {},
"relList": {
"support_level": "untriaged"
@@ -6652,6 +8400,9 @@
"dart_action": "suppress",
"support_level": "deprecated"
},
+ "scope": {
+ "support_level": "untriaged"
+ },
"sheet": {},
"sizes": {},
"target": {
@@ -6723,6 +8474,9 @@
},
"controller": {},
"controls": {},
+ "controlsList": {
+ "support_level": "untriaged"
+ },
"crossOrigin": {
"support_level": "untriaged"
},
@@ -6756,6 +8510,9 @@
"oncanplaythrough": {},
"ondurationchange": {},
"onemptied": {},
+ "onencrypted": {
+ "support_level": "untriaged"
+ },
"onended": {},
"onkeyadded": {
"support_level": "untriaged"
@@ -6814,6 +8571,9 @@
"onwaiting": {
"comment": "http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#event-media-loadstart"
},
+ "onwaitingforkey": {
+ "support_level": "untriaged"
+ },
"onwebkitkeyadded": {
"comment": "https://dvcs.w3.org/hg/html-media/raw-file/eme-v0.1/encrypted-media/encrypted-media.html#dom-keyadded",
"support_level": "experimental"
@@ -6837,6 +8597,9 @@
"played": {},
"preload": {},
"readyState": {},
+ "remote": {
+ "support_level": "untriaged"
+ },
"seekable": {},
"seeking": {},
"session": {
@@ -6852,6 +8615,9 @@
"support_level": "untriaged"
},
"src": {},
+ "srcObject": {
+ "support_level": "untriaged"
+ },
"startTime": {
"support_level": "nonstandard"
},
@@ -7040,6 +8806,9 @@
"support_level": "deprecated"
},
"contentDocument": {},
+ "contentWindow": {
+ "support_level": "untriaged"
+ },
"data": {},
"declare": {
"comment": "http://www.whatwg.org/specs/web-apps/current-work/multipage/obsolete.html#HTMLObjectElement-partial",
@@ -7247,6 +9016,9 @@
"integrity": {
"support_level": "untriaged"
},
+ "noModule": {
+ "support_level": "untriaged"
+ },
"nonce": {
"comment": "https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#interaction-with-the-script-src-directive",
"support_level": "experimental"
@@ -7312,6 +9084,9 @@
},
"HTMLSlotElement": {
"members": {
+ "assignedNodes": {
+ "support_level": "untriaged"
+ },
"getAssignedNodes": {
"support_level": "untriaged"
},
@@ -7666,6 +9441,14 @@
},
"support_level": "stable"
},
+ "HTMLTimeElement": {
+ "members": {
+ "dateTime": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"HTMLTitleElement": {
"comment": "http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#the-title-element",
"members": {
@@ -7980,6 +9763,9 @@
"bound_": {
"support_level": "nonstandard"
},
+ "includes": {
+ "support_level": "untriaged"
+ },
"lower": {},
"lowerBound": {},
"lowerBound_": {
@@ -8017,6 +9803,9 @@
"getAllKeys": {
"support_level": "untriaged"
},
+ "getKey": {
+ "support_level": "untriaged"
+ },
"index": {},
"indexNames": {},
"keyPath": {},
@@ -8030,6 +9819,54 @@
},
"support_level": "stable"
},
+ "IDBObservation": {
+ "members": {
+ "key": {
+ "support_level": "untriaged"
+ },
+ "type": {
+ "support_level": "untriaged"
+ },
+ "value": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "IDBObserver": {
+ "members": {
+ "IDBObserver": {},
+ "observe": {
+ "support_level": "untriaged"
+ },
+ "unobserve": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "IDBObserverCallback": {
+ "members": {
+ "callback": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "IDBObserverChanges": {
+ "members": {
+ "database": {
+ "support_level": "untriaged"
+ },
+ "records": {
+ "support_level": "untriaged"
+ },
+ "transaction": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"IDBOpenDBRequest": {
"comment": "http://www.w3.org/TR/IndexedDB/#idl-def-IDBOpenDBRequest",
"dart_action": "unstable",
@@ -8107,6 +9944,7 @@
},
"IIRFilterNode": {
"members": {
+ "IIRFilterNode": {},
"getFrequencyResponse": {
"support_level": "untriaged"
}
@@ -8125,7 +9963,11 @@
"support_level": "untriaged"
},
"IdleRequestCallback": {
- "members": {},
+ "members": {
+ "callback": {
+ "support_level": "untriaged"
+ }
+ },
"support_level": "untriaged"
},
"ImageBitmap": {
@@ -8159,17 +10001,50 @@
"canvas": {
"support_level": "untriaged"
},
+ "transferFromImageBitmap": {
+ "support_level": "untriaged"
+ },
"transferImageBitmap": {
"support_level": "untriaged"
}
},
"support_level": "untriaged"
},
+ "ImageCapture": {
+ "members": {
+ "ImageCapture": {},
+ "getPhotoCapabilities": {
+ "support_level": "untriaged"
+ },
+ "getPhotoSettings": {
+ "support_level": "untriaged"
+ },
+ "grabFrame": {
+ "support_level": "untriaged"
+ },
+ "setOptions": {
+ "support_level": "untriaged"
+ },
+ "takePhoto": {
+ "support_level": "untriaged"
+ },
+ "track": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"ImageData": {
"comment": "http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#imagedata",
"members": {
"ImageData": {},
"data": {},
+ "dataUnion": {
+ "support_level": "untriaged"
+ },
+ "getColorSettings": {
+ "support_level": "untriaged"
+ },
"height": {},
"width": {}
},
@@ -8241,6 +10116,9 @@
"InstallEvent": {
"members": {
"InstallEvent": {},
+ "registerForeignFetch": {
+ "support_level": "untriaged"
+ },
"registerForeignFetchScopes": {
"support_level": "untriaged"
},
@@ -8293,6 +10171,7 @@
},
"IntersectionObserver": {
"members": {
+ "IntersectionObserver": {},
"disconnect": {
"support_level": "untriaged"
},
@@ -8317,14 +10196,28 @@
},
"support_level": "untriaged"
},
+ "IntersectionObserverCallback": {
+ "members": {
+ "callback": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"IntersectionObserverEntry": {
"members": {
"boundingClientRect": {
"support_level": "untriaged"
},
+ "intersectionRatio": {
+ "support_level": "untriaged"
+ },
"intersectionRect": {
"support_level": "untriaged"
},
+ "isIntersecting": {
+ "support_level": "untriaged"
+ },
"rootBounds": {
"support_level": "untriaged"
},
@@ -8337,6 +10230,20 @@
},
"support_level": "untriaged"
},
+ "InterventionReport": {
+ "members": {
+ "lineNumber": {
+ "support_level": "untriaged"
+ },
+ "message": {
+ "support_level": "untriaged"
+ },
+ "sourceFile": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"Iterator": {
"members": {
"next": {
@@ -8413,6 +10320,9 @@
"support_level": "untriaged"
},
"initKeyboardEvent": {},
+ "isComposing": {
+ "support_level": "untriaged"
+ },
"key": {
"support_level": "untriaged"
},
@@ -8447,6 +10357,12 @@
},
"support_level": "untriaged"
},
+ "KeyframeEffectReadOnly": {
+ "members": {
+ "KeyframeEffectReadOnly": {}
+ },
+ "support_level": "untriaged"
+ },
"KeywordValue": {
"members": {
"KeywordValue": {},
@@ -8482,6 +10398,12 @@
},
"support_level": "untriaged"
},
+ "LinearAccelerationSensor": {
+ "members": {
+ "LinearAccelerationSensor": {}
+ },
+ "support_level": "untriaged"
+ },
"LocalCredential": {
"members": {
"LocalCredential": {},
@@ -8538,6 +10460,9 @@
"comment": "http://url.spec.whatwg.org/#urlutils"
},
"toString": {},
+ "trustedHref": {
+ "support_level": "untriaged"
+ },
"valueOf": {
"dart_action": "experimental",
"support_level": "nonstandard"
@@ -8553,6 +10478,9 @@
"inputs": {},
"onconnect": {},
"ondisconnect": {},
+ "onstatechange": {
+ "support_level": "untriaged"
+ },
"outputs": {},
"removeEventListener": {},
"sysexEnabled": {
@@ -8666,6 +10594,9 @@
"manufacturer": {},
"name": {},
"ondisconnect": {},
+ "onstatechange": {
+ "support_level": "untriaged"
+ },
"open": {
"support_level": "untriaged"
},
@@ -8682,6 +10613,21 @@
"members": {},
"support_level": "untriaged"
},
+ "Magnetometer": {
+ "members": {
+ "Magnetometer": {},
+ "x": {
+ "support_level": "untriaged"
+ },
+ "y": {
+ "support_level": "untriaged"
+ },
+ "z": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"Matrix": {
"members": {
"Matrix": {},
@@ -8754,6 +10700,31 @@
},
"support_level": "untriaged"
},
+ "MediaCapabilities": {
+ "members": {
+ "decodingInfo": {
+ "support_level": "untriaged"
+ },
+ "encodingInfo": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "MediaCapabilitiesInfo": {
+ "members": {
+ "powerEfficient": {
+ "support_level": "untriaged"
+ },
+ "smooth": {
+ "support_level": "untriaged"
+ },
+ "supported": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"MediaController": {
"comment": "http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#mediacontroller",
"members": {
@@ -8804,8 +10775,14 @@
"enumerateDevices": {
"support_level": "untriaged"
},
+ "getSupportedConstraints": {
+ "support_level": "untriaged"
+ },
"getUserMedia": {
"support_level": "untriaged"
+ },
+ "ondevicechange": {
+ "support_level": "untriaged"
}
},
"support_level": "untriaged"
@@ -8813,6 +10790,7 @@
"MediaElementAudioSourceNode": {
"comment": "https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#MediaElementAudioSourceNode",
"members": {
+ "MediaElementAudioSourceNode": {},
"addEventListener": {
"support_level": "untriaged"
},
@@ -8876,7 +10854,10 @@
},
"MEDIA_ERR_NETWORK": {},
"MEDIA_ERR_SRC_NOT_SUPPORTED": {},
- "code": {}
+ "code": {},
+ "message": {
+ "support_level": "untriaged"
+ }
},
"support_level": "stable"
},
@@ -8964,6 +10945,12 @@
"onkeymessage": {
"support_level": "untriaged"
},
+ "onkeystatuseschange": {
+ "support_level": "untriaged"
+ },
+ "onmessage": {
+ "support_level": "untriaged"
+ },
"onwebkitkeyadded": {},
"onwebkitkeyerror": {},
"onwebkitkeymessage": {},
@@ -8981,6 +10968,12 @@
},
"MediaKeyStatusMap": {
"members": {
+ "get": {
+ "support_level": "untriaged"
+ },
+ "has": {
+ "support_level": "untriaged"
+ },
"size": {
"support_level": "untriaged"
}
@@ -9009,6 +11002,9 @@
"support_level": "untriaged"
},
"createSession": {},
+ "getStatusForPolicy": {
+ "support_level": "untriaged"
+ },
"isTypeSupported": {
"support_level": "untriaged"
},
@@ -9019,6 +11015,15 @@
},
"support_level": "experimental"
},
+ "MediaKeysPolicy": {
+ "members": {
+ "MediaKeysPolicy": {},
+ "minHdcpVersion": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"MediaList": {
"comment": "http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSMediaRule",
"dart_action": "unstable",
@@ -9040,6 +11045,9 @@
"artist": {
"support_level": "untriaged"
},
+ "artwork": {
+ "support_level": "untriaged"
+ },
"title": {
"support_level": "untriaged"
}
@@ -9095,12 +11103,24 @@
"mimeType": {
"support_level": "untriaged"
},
+ "ondataavailable": {
+ "support_level": "untriaged"
+ },
"onerror": {
"support_level": "untriaged"
},
"onpause": {
"support_level": "untriaged"
},
+ "onresume": {
+ "support_level": "untriaged"
+ },
+ "onstart": {
+ "support_level": "untriaged"
+ },
+ "onstop": {
+ "support_level": "untriaged"
+ },
"pause": {
"support_level": "untriaged"
},
@@ -9139,6 +11159,34 @@
},
"metadata": {
"support_level": "untriaged"
+ },
+ "playbackState": {
+ "support_level": "untriaged"
+ },
+ "setActionHandler": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "MediaSessionActionHandler": {
+ "members": {
+ "callback": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "MediaSettingsRange": {
+ "members": {
+ "max": {
+ "support_level": "untriaged"
+ },
+ "min": {
+ "support_level": "untriaged"
+ },
+ "step": {
+ "support_level": "untriaged"
}
},
"support_level": "untriaged"
@@ -9150,13 +11198,28 @@
"activeSourceBuffers": {},
"addEventListener": {},
"addSourceBuffer": {},
+ "clearLiveSeekableRange": {
+ "support_level": "untriaged"
+ },
"dispatchEvent": {},
"duration": {},
"endOfStream": {},
"isTypeSupported": {},
+ "onsourceclose": {
+ "support_level": "untriaged"
+ },
+ "onsourceended": {
+ "support_level": "untriaged"
+ },
+ "onsourceopen": {
+ "support_level": "untriaged"
+ },
"readyState": {},
"removeEventListener": {},
"removeSourceBuffer": {},
+ "setLiveSeekableRange": {
+ "support_level": "untriaged"
+ },
"sourceBuffers": {}
},
"support_level": "experimental"
@@ -9185,8 +11248,14 @@
"label": {
"support_level": "nonstandard"
},
+ "onactive": {
+ "support_level": "untriaged"
+ },
"onaddtrack": {},
"onended": {},
+ "oninactive": {
+ "support_level": "untriaged"
+ },
"onremovetrack": {},
"removeEventListener": {},
"removeTrack": {},
@@ -9197,6 +11266,7 @@
"MediaStreamAudioDestinationNode": {
"comment": "https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#MediaStreamAudioDestinationNode",
"members": {
+ "MediaStreamAudioDestinationNode": {},
"stream": {}
},
"support_level": "experimental"
@@ -9204,6 +11274,7 @@
"MediaStreamAudioSourceNode": {
"comment": "https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#MediaStreamAudioSourceNode",
"members": {
+ "MediaStreamAudioSourceNode": {},
"addEventListener": {
"support_level": "untriaged"
},
@@ -9253,11 +11324,26 @@
"comment": "http://dev.w3.org/2011/webrtc/editor/getusermedia.html#mediastreamtrack",
"members": {
"addEventListener": {},
+ "applyConstraints": {
+ "support_level": "untriaged"
+ },
"clone": {
"support_level": "untriaged"
},
+ "contentHint": {
+ "support_level": "untriaged"
+ },
"dispatchEvent": {},
"enabled": {},
+ "getCapabilities": {
+ "support_level": "untriaged"
+ },
+ "getConstraints": {
+ "support_level": "untriaged"
+ },
+ "getSettings": {
+ "support_level": "untriaged"
+ },
"getSources": {
"support_level": "untriaged"
},
@@ -9284,6 +11370,7 @@
"MediaStreamTrackEvent": {
"comment": "http://dev.w3.org/2011/webrtc/editor/getusermedia.html",
"members": {
+ "MediaStreamTrackEvent": {},
"track": {}
},
"support_level": "experimental"
@@ -9301,6 +11388,10 @@
},
"support_level": "nonstandard"
},
+ "MessageCallback": {
+ "members": {},
+ "support_level": "untriaged"
+ },
"MessageChannel": {
"comment": "http://www.whatwg.org/specs/web-apps/current-work/multipage/web-messaging.html#message-channels",
"dart_action": "unstable",
@@ -9343,6 +11434,9 @@
"close": {},
"dispatchEvent": {},
"onmessage": {},
+ "onmessageerror": {
+ "support_level": "untriaged"
+ },
"postMessage": {},
"removeEventListener": {},
"start": {}
@@ -9383,6 +11477,152 @@
},
"support_level": "nonstandard"
},
+ "Mojo": {
+ "members": {
+ "RESULT_ABORTED": {
+ "support_level": "untriaged"
+ },
+ "RESULT_ALREADY_EXISTS": {
+ "support_level": "untriaged"
+ },
+ "RESULT_BUSY": {
+ "support_level": "untriaged"
+ },
+ "RESULT_CANCELLED": {
+ "support_level": "untriaged"
+ },
+ "RESULT_DATA_LOSS": {
+ "support_level": "untriaged"
+ },
+ "RESULT_DEADLINE_EXCEEDED": {
+ "support_level": "untriaged"
+ },
+ "RESULT_FAILED_PRECONDITION": {
+ "support_level": "untriaged"
+ },
+ "RESULT_INTERNAL": {
+ "support_level": "untriaged"
+ },
+ "RESULT_INVALID_ARGUMENT": {
+ "support_level": "untriaged"
+ },
+ "RESULT_NOT_FOUND": {
+ "support_level": "untriaged"
+ },
+ "RESULT_OK": {
+ "support_level": "untriaged"
+ },
+ "RESULT_OUT_OF_RANGE": {
+ "support_level": "untriaged"
+ },
+ "RESULT_PERMISSION_DENIED": {
+ "support_level": "untriaged"
+ },
+ "RESULT_RESOURCE_EXHAUSTED": {
+ "support_level": "untriaged"
+ },
+ "RESULT_SHOULD_WAIT": {
+ "support_level": "untriaged"
+ },
+ "RESULT_UNAVAILABLE": {
+ "support_level": "untriaged"
+ },
+ "RESULT_UNIMPLEMENTED": {
+ "support_level": "untriaged"
+ },
+ "RESULT_UNKNOWN": {
+ "support_level": "untriaged"
+ },
+ "bindInterface": {
+ "support_level": "untriaged"
+ },
+ "createDataPipe": {
+ "support_level": "untriaged"
+ },
+ "createMessagePipe": {
+ "support_level": "untriaged"
+ },
+ "createSharedBuffer": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "MojoHandle": {
+ "members": {
+ "close": {
+ "support_level": "untriaged"
+ },
+ "discardData": {
+ "support_level": "untriaged"
+ },
+ "duplicateBufferHandle": {
+ "support_level": "untriaged"
+ },
+ "mapBuffer": {
+ "support_level": "untriaged"
+ },
+ "queryData": {
+ "support_level": "untriaged"
+ },
+ "readData": {
+ "support_level": "untriaged"
+ },
+ "readMessage": {
+ "support_level": "untriaged"
+ },
+ "watch": {
+ "support_level": "untriaged"
+ },
+ "writeData": {
+ "support_level": "untriaged"
+ },
+ "writeMessage": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "MojoInterfaceInterceptor": {
+ "members": {
+ "MojoInterfaceInterceptor": {},
+ "oninterfacerequest": {
+ "support_level": "untriaged"
+ },
+ "start": {
+ "support_level": "untriaged"
+ },
+ "stop": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "MojoInterfaceRequestEvent": {
+ "members": {
+ "MojoInterfaceRequestEvent": {},
+ "handle": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "MojoWatchCallback": {
+ "members": {
+ "callback": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "MojoWatcher": {
+ "members": {
+ "cancel": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"MouseEvent": {
"comment": "http://www.w3.org/TR/DOM-Level-3-Events/#events-mouseevents",
"members": {
@@ -9545,6 +11785,20 @@
},
"support_level": "deprecated"
},
+ "NavigationPreloadManager": {
+ "members": {
+ "disable": {
+ "support_level": "untriaged"
+ },
+ "enable": {
+ "support_level": "untriaged"
+ },
+ "getState": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"Navigator": {
"comment": "http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#navigator",
"members": {
@@ -9560,6 +11814,15 @@
"bluetooth": {
"support_level": "untriaged"
},
+ "budget": {
+ "support_level": "untriaged"
+ },
+ "cancelKeyboardLock": {
+ "support_level": "untriaged"
+ },
+ "clipboard": {
+ "support_level": "untriaged"
+ },
"connection": {
"support_level": "untriaged"
},
@@ -9574,6 +11837,9 @@
"dartEnabled": {
"support_level": "untriaged"
},
+ "deviceMemory": {
+ "support_level": "untriaged"
+ },
"doNotTrack": {
"comment": "http://www.w3.org/2011/tracking-protection/drafts/tracking-dnt.html#js-dom",
"dart_action": "experimental",
@@ -9593,6 +11859,9 @@
"getGamepads": {
"support_level": "untriaged"
},
+ "getInstalledRelatedApps": {
+ "support_level": "untriaged"
+ },
"getMediaDevices": {
"support_level": "untriaged"
},
@@ -9600,9 +11869,15 @@
"comment": "http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#navigatorstorageutils",
"support_level": "experimental"
},
+ "getUserMedia": {
+ "support_level": "untriaged"
+ },
"getVRDevices": {
"support_level": "untriaged"
},
+ "getVRDisplays": {
+ "support_level": "untriaged"
+ },
"hardwareConcurrency": {
"support_level": "untriaged"
},
@@ -9622,9 +11897,15 @@
"maxTouchPoints": {
"support_level": "untriaged"
},
+ "mediaCapabilities": {
+ "support_level": "untriaged"
+ },
"mediaDevices": {
"support_level": "untriaged"
},
+ "mediaSession": {
+ "support_level": "untriaged"
+ },
"mimeTypes": {
"dart_action": "experimental",
"support_level": "nonstandard"
@@ -9665,6 +11946,9 @@
"comment": "http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#navigatorcontentutils",
"dart_action": "unstable"
},
+ "requestKeyboardLock": {
+ "support_level": "untriaged"
+ },
"requestMIDIAccess": {
"support_level": "untriaged"
},
@@ -9680,6 +11964,9 @@
"services": {
"support_level": "untriaged"
},
+ "share": {
+ "support_level": "untriaged"
+ },
"storage": {
"support_level": "untriaged"
},
@@ -9703,6 +11990,12 @@
"dart_action": "unstable",
"support_level": "nonstandard"
},
+ "vr": {
+ "support_level": "untriaged"
+ },
+ "webdriver": {
+ "support_level": "untriaged"
+ },
"webkitBattery": {
"comment": "https://dvcs.w3.org/hg/dap/raw-file/tip/battery/Overview.html",
"support_level": "experimental"
@@ -9726,6 +12019,14 @@
},
"support_level": "stable"
},
+ "NavigatorAutomationInformation": {
+ "members": {
+ "webdriver": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"NavigatorCPU": {
"members": {
"hardwareConcurrency": {
@@ -9734,6 +12035,22 @@
},
"support_level": "untriaged"
},
+ "NavigatorConcurrentHardware": {
+ "members": {
+ "hardwareConcurrency": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "NavigatorCookies": {
+ "members": {
+ "cookieEnabled": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"NavigatorID": {
"members": {
"appCodeName": {
@@ -9823,12 +12140,24 @@
},
"NetworkInformation": {
"members": {
+ "downlink": {
+ "support_level": "untriaged"
+ },
"downlinkMax": {
"support_level": "untriaged"
},
+ "effectiveType": {
+ "support_level": "untriaged"
+ },
"onchange": {
"support_level": "untriaged"
},
+ "ontypechange": {
+ "support_level": "untriaged"
+ },
+ "rtt": {
+ "support_level": "untriaged"
+ },
"type": {
"support_level": "untriaged"
}
@@ -9865,8 +12194,14 @@
"contains": {},
"dispatchEvent": {},
"firstChild": {},
+ "getRootNode": {
+ "support_level": "untriaged"
+ },
"hasChildNodes": {},
"insertBefore": {},
+ "isConnected": {
+ "support_level": "untriaged"
+ },
"isDefaultNamespace": {},
"isEqualNode": {},
"isSameNode": {
@@ -10001,6 +12336,14 @@
},
"support_level": "untriaged"
},
+ "NoncedElement": {
+ "members": {
+ "nonce": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"Notation": {
"comment": "http://dom.spec.whatwg.org/#notation",
"dart_action": "suppress",
@@ -10019,6 +12362,9 @@
"support_level": "untriaged"
},
"addEventListener": {},
+ "badge": {
+ "support_level": "untriaged"
+ },
"body": {
"support_level": "untriaged"
},
@@ -10038,6 +12384,9 @@
"icon": {
"support_level": "untriaged"
},
+ "image": {
+ "support_level": "untriaged"
+ },
"lang": {
"support_level": "untriaged"
},
@@ -10096,6 +12445,9 @@
},
"notification": {
"support_level": "untriaged"
+ },
+ "reply": {
+ "support_level": "untriaged"
}
},
"support_level": "untriaged"
@@ -10169,6 +12521,7 @@
"OfflineAudioCompletionEvent": {
"comment": "https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#OfflineAudioCompletionEvent-section",
"members": {
+ "OfflineAudioCompletionEvent": {},
"renderedBuffer": {}
},
"support_level": "experimental"
@@ -10252,9 +12605,15 @@
"dispatchEvent": {
"support_level": "untriaged"
},
+ "length": {
+ "support_level": "untriaged"
+ },
"listener": {
"support_level": "untriaged"
},
+ "oncomplete": {
+ "support_level": "untriaged"
+ },
"removeEventListener": {
"support_level": "untriaged"
},
@@ -10279,15 +12638,220 @@
"OffscreenCanvas": {
"members": {
"OffscreenCanvas": {},
+ "convertToBlob": {
+ "support_level": "untriaged"
+ },
+ "getContext": {
+ "support_level": "untriaged"
+ },
"height": {
"support_level": "untriaged"
},
+ "transferToImageBitmap": {
+ "support_level": "untriaged"
+ },
"width": {
"support_level": "untriaged"
}
},
"support_level": "untriaged"
},
+ "OffscreenCanvasRenderingContext2D": {
+ "members": {
+ "arc": {
+ "support_level": "untriaged"
+ },
+ "arcTo": {
+ "support_level": "untriaged"
+ },
+ "beginPath": {
+ "support_level": "untriaged"
+ },
+ "bezierCurveTo": {
+ "support_level": "untriaged"
+ },
+ "canvas": {
+ "support_level": "untriaged"
+ },
+ "clearRect": {
+ "support_level": "untriaged"
+ },
+ "clip": {
+ "support_level": "untriaged"
+ },
+ "closePath": {
+ "support_level": "untriaged"
+ },
+ "commit": {
+ "support_level": "untriaged"
+ },
+ "createImageData": {
+ "support_level": "untriaged"
+ },
+ "createLinearGradient": {
+ "support_level": "untriaged"
+ },
+ "createPattern": {
+ "support_level": "untriaged"
+ },
+ "createRadialGradient": {
+ "support_level": "untriaged"
+ },
+ "direction": {
+ "support_level": "untriaged"
+ },
+ "drawImage": {
+ "support_level": "untriaged"
+ },
+ "ellipse": {
+ "support_level": "untriaged"
+ },
+ "fill": {
+ "support_level": "untriaged"
+ },
+ "fillRect": {
+ "support_level": "untriaged"
+ },
+ "fillStyle": {
+ "support_level": "untriaged"
+ },
+ "fillText": {
+ "support_level": "untriaged"
+ },
+ "filter": {
+ "support_level": "untriaged"
+ },
+ "font": {
+ "support_level": "untriaged"
+ },
+ "getImageData": {
+ "support_level": "untriaged"
+ },
+ "getLineDash": {
+ "support_level": "untriaged"
+ },
+ "globalAlpha": {
+ "support_level": "untriaged"
+ },
+ "globalCompositeOperation": {
+ "support_level": "untriaged"
+ },
+ "imageSmoothingEnabled": {
+ "support_level": "untriaged"
+ },
+ "imageSmoothingQuality": {
+ "support_level": "untriaged"
+ },
+ "isPointInPath": {
+ "support_level": "untriaged"
+ },
+ "isPointInStroke": {
+ "support_level": "untriaged"
+ },
+ "lineCap": {
+ "support_level": "untriaged"
+ },
+ "lineDashOffset": {
+ "support_level": "untriaged"
+ },
+ "lineJoin": {
+ "support_level": "untriaged"
+ },
+ "lineTo": {
+ "support_level": "untriaged"
+ },
+ "lineWidth": {
+ "support_level": "untriaged"
+ },
+ "measureText": {
+ "support_level": "untriaged"
+ },
+ "miterLimit": {
+ "support_level": "untriaged"
+ },
+ "moveTo": {
+ "support_level": "untriaged"
+ },
+ "putImageData": {
+ "support_level": "untriaged"
+ },
+ "quadraticCurveTo": {
+ "support_level": "untriaged"
+ },
+ "rect": {
+ "support_level": "untriaged"
+ },
+ "resetTransform": {
+ "support_level": "untriaged"
+ },
+ "restore": {
+ "support_level": "untriaged"
+ },
+ "rotate": {
+ "support_level": "untriaged"
+ },
+ "save": {
+ "support_level": "untriaged"
+ },
+ "scale": {
+ "support_level": "untriaged"
+ },
+ "setLineDash": {
+ "support_level": "untriaged"
+ },
+ "setTransform": {
+ "support_level": "untriaged"
+ },
+ "shadowBlur": {
+ "support_level": "untriaged"
+ },
+ "shadowColor": {
+ "support_level": "untriaged"
+ },
+ "shadowOffsetX": {
+ "support_level": "untriaged"
+ },
+ "shadowOffsetY": {
+ "support_level": "untriaged"
+ },
+ "stroke": {
+ "support_level": "untriaged"
+ },
+ "strokeRect": {
+ "support_level": "untriaged"
+ },
+ "strokeStyle": {
+ "support_level": "untriaged"
+ },
+ "strokeText": {
+ "support_level": "untriaged"
+ },
+ "textAlign": {
+ "support_level": "untriaged"
+ },
+ "textBaseline": {
+ "support_level": "untriaged"
+ },
+ "transform": {
+ "support_level": "untriaged"
+ },
+ "translate": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "OrientationSensor": {
+ "members": {
+ "populateMatrix": {
+ "support_level": "untriaged"
+ },
+ "quaternion": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"OscillatorNode": {
"comment": "https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#dfn-OscillatorNode",
"members": {
@@ -10297,6 +12861,7 @@
"support_level": "deprecated"
},
"FINISHED_STATE": {},
+ "OscillatorNode": {},
"PLAYING_STATE": {},
"SAWTOOTH": {
"comment": "https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AlternateNames",
@@ -10371,6 +12936,21 @@
},
"support_level": "experimental"
},
+ "OverconstrainedError": {
+ "members": {
+ "OverconstrainedError": {},
+ "constraint": {
+ "support_level": "untriaged"
+ },
+ "message": {
+ "support_level": "untriaged"
+ },
+ "name": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"OverflowEvent": {
"dart_action": "experimental",
"members": {
@@ -10404,6 +12984,180 @@
},
"support_level": "experimental"
},
+ "PaintRenderingContext2D": {
+ "members": {
+ "arc": {
+ "support_level": "untriaged"
+ },
+ "arcTo": {
+ "support_level": "untriaged"
+ },
+ "beginPath": {
+ "support_level": "untriaged"
+ },
+ "bezierCurveTo": {
+ "support_level": "untriaged"
+ },
+ "clearRect": {
+ "support_level": "untriaged"
+ },
+ "clip": {
+ "support_level": "untriaged"
+ },
+ "closePath": {
+ "support_level": "untriaged"
+ },
+ "createLinearGradient": {
+ "support_level": "untriaged"
+ },
+ "createPattern": {
+ "support_level": "untriaged"
+ },
+ "createRadialGradient": {
+ "support_level": "untriaged"
+ },
+ "currentTransform": {
+ "support_level": "untriaged"
+ },
+ "drawImage": {
+ "support_level": "untriaged"
+ },
+ "ellipse": {
+ "support_level": "untriaged"
+ },
+ "fill": {
+ "support_level": "untriaged"
+ },
+ "fillRect": {
+ "support_level": "untriaged"
+ },
+ "fillStyle": {
+ "support_level": "untriaged"
+ },
+ "filter": {
+ "support_level": "untriaged"
+ },
+ "getLineDash": {
+ "support_level": "untriaged"
+ },
+ "globalAlpha": {
+ "support_level": "untriaged"
+ },
+ "globalCompositeOperation": {
+ "support_level": "untriaged"
+ },
+ "imageSmoothingEnabled": {
+ "support_level": "untriaged"
+ },
+ "imageSmoothingQuality": {
+ "support_level": "untriaged"
+ },
+ "isPointInPath": {
+ "support_level": "untriaged"
+ },
+ "isPointInStroke": {
+ "support_level": "untriaged"
+ },
+ "lineCap": {
+ "support_level": "untriaged"
+ },
+ "lineDashOffset": {
+ "support_level": "untriaged"
+ },
+ "lineJoin": {
+ "support_level": "untriaged"
+ },
+ "lineTo": {
+ "support_level": "untriaged"
+ },
+ "lineWidth": {
+ "support_level": "untriaged"
+ },
+ "miterLimit": {
+ "support_level": "untriaged"
+ },
+ "moveTo": {
+ "support_level": "untriaged"
+ },
+ "quadraticCurveTo": {
+ "support_level": "untriaged"
+ },
+ "rect": {
+ "support_level": "untriaged"
+ },
+ "resetTransform": {
+ "support_level": "untriaged"
+ },
+ "restore": {
+ "support_level": "untriaged"
+ },
+ "rotate": {
+ "support_level": "untriaged"
+ },
+ "save": {
+ "support_level": "untriaged"
+ },
+ "scale": {
+ "support_level": "untriaged"
+ },
+ "setLineDash": {
+ "support_level": "untriaged"
+ },
+ "setTransform": {
+ "support_level": "untriaged"
+ },
+ "shadowBlur": {
+ "support_level": "untriaged"
+ },
+ "shadowColor": {
+ "support_level": "untriaged"
+ },
+ "shadowOffsetX": {
+ "support_level": "untriaged"
+ },
+ "shadowOffsetY": {
+ "support_level": "untriaged"
+ },
+ "stroke": {
+ "support_level": "untriaged"
+ },
+ "strokeRect": {
+ "support_level": "untriaged"
+ },
+ "strokeStyle": {
+ "support_level": "untriaged"
+ },
+ "transform": {
+ "support_level": "untriaged"
+ },
+ "translate": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "PaintSize": {
+ "members": {
+ "height": {
+ "support_level": "untriaged"
+ },
+ "width": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "PaintWorkletGlobalScope": {
+ "members": {
+ "devicePixelRatio": {
+ "support_level": "untriaged"
+ },
+ "registerPaint": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"PannerNode": {
"comment": "https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#PannerNode",
"members": {
@@ -10432,6 +13186,7 @@
"dart_action": "suppress",
"support_level": "deprecated"
},
+ "PannerNode": {},
"SOUNDFIELD": {
"comment": "https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AlternateNames",
"dart_action": "suppress",
@@ -10442,7 +13197,25 @@
"coneOuterGain": {},
"distanceModel": {},
"maxDistance": {},
+ "orientationX": {
+ "support_level": "untriaged"
+ },
+ "orientationY": {
+ "support_level": "untriaged"
+ },
+ "orientationZ": {
+ "support_level": "untriaged"
+ },
"panningModel": {},
+ "positionX": {
+ "support_level": "untriaged"
+ },
+ "positionY": {
+ "support_level": "untriaged"
+ },
+ "positionZ": {
+ "support_level": "untriaged"
+ },
"refDistance": {},
"rolloffFactor": {},
"setOrientation": {},
@@ -10483,9 +13256,15 @@
"formData": {
"support_level": "untriaged"
},
+ "iconURL": {
+ "support_level": "untriaged"
+ },
"idName": {
"support_level": "untriaged"
},
+ "name": {
+ "support_level": "untriaged"
+ },
"password": {
"support_level": "untriaged"
},
@@ -10546,6 +13325,185 @@
},
"support_level": "untriaged"
},
+ "PaymentAddress": {
+ "members": {
+ "addressLine": {
+ "support_level": "untriaged"
+ },
+ "city": {
+ "support_level": "untriaged"
+ },
+ "country": {
+ "support_level": "untriaged"
+ },
+ "dependentLocality": {
+ "support_level": "untriaged"
+ },
+ "languageCode": {
+ "support_level": "untriaged"
+ },
+ "organization": {
+ "support_level": "untriaged"
+ },
+ "phone": {
+ "support_level": "untriaged"
+ },
+ "postalCode": {
+ "support_level": "untriaged"
+ },
+ "recipient": {
+ "support_level": "untriaged"
+ },
+ "region": {
+ "support_level": "untriaged"
+ },
+ "sortingCode": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "PaymentInstruments": {
+ "members": {
+ "clear": {
+ "support_level": "untriaged"
+ },
+ "delete": {
+ "support_level": "untriaged"
+ },
+ "get": {
+ "support_level": "untriaged"
+ },
+ "has": {
+ "support_level": "untriaged"
+ },
+ "keys": {
+ "support_level": "untriaged"
+ },
+ "set": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "PaymentManager": {
+ "members": {
+ "instruments": {
+ "support_level": "untriaged"
+ },
+ "userHint": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "PaymentRequest": {
+ "members": {
+ "PaymentRequest": {},
+ "abort": {
+ "support_level": "untriaged"
+ },
+ "canMakePayment": {
+ "support_level": "untriaged"
+ },
+ "id": {
+ "support_level": "untriaged"
+ },
+ "onshippingaddresschange": {
+ "support_level": "untriaged"
+ },
+ "onshippingoptionchange": {
+ "support_level": "untriaged"
+ },
+ "shippingAddress": {
+ "support_level": "untriaged"
+ },
+ "shippingOption": {
+ "support_level": "untriaged"
+ },
+ "shippingType": {
+ "support_level": "untriaged"
+ },
+ "show": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "PaymentRequestEvent": {
+ "members": {
+ "PaymentRequestEvent": {},
+ "instrumentKey": {
+ "support_level": "untriaged"
+ },
+ "methodData": {
+ "support_level": "untriaged"
+ },
+ "modifiers": {
+ "support_level": "untriaged"
+ },
+ "openWindow": {
+ "support_level": "untriaged"
+ },
+ "paymentRequestId": {
+ "support_level": "untriaged"
+ },
+ "paymentRequestOrigin": {
+ "support_level": "untriaged"
+ },
+ "respondWith": {
+ "support_level": "untriaged"
+ },
+ "topLevelOrigin": {
+ "support_level": "untriaged"
+ },
+ "total": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "PaymentRequestUpdateEvent": {
+ "members": {
+ "PaymentRequestUpdateEvent": {},
+ "updateWith": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "PaymentResponse": {
+ "members": {
+ "complete": {
+ "support_level": "untriaged"
+ },
+ "details": {
+ "support_level": "untriaged"
+ },
+ "methodName": {
+ "support_level": "untriaged"
+ },
+ "payerEmail": {
+ "support_level": "untriaged"
+ },
+ "payerName": {
+ "support_level": "untriaged"
+ },
+ "payerPhone": {
+ "support_level": "untriaged"
+ },
+ "requestId": {
+ "support_level": "untriaged"
+ },
+ "shippingAddress": {
+ "support_level": "untriaged"
+ },
+ "shippingOption": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"Performance": {
"comment": "http://www.w3.org/TR/navigation-timing/#performance",
"members": {
@@ -10613,6 +13571,9 @@
"setResourceTimingBufferSize": {
"support_level": "untriaged"
},
+ "timeOrigin": {
+ "support_level": "untriaged"
+ },
"timing": {},
"webkitClearResourceTimings": {
"comment": "http://www.w3c-test.org/webperf/specs/ResourceTiming/#extensions-performance-interface",
@@ -10651,6 +13612,14 @@
},
"support_level": "experimental"
},
+ "PerformanceLongTaskTiming": {
+ "members": {
+ "attribution": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"PerformanceMark": {
"comment": "http://www.w3.org/TR/user-timing/#performancemark",
"members": {},
@@ -10674,8 +13643,44 @@
},
"support_level": "stable"
},
+ "PerformanceNavigationTiming": {
+ "members": {
+ "domComplete": {
+ "support_level": "untriaged"
+ },
+ "domContentLoadedEventEnd": {
+ "support_level": "untriaged"
+ },
+ "domContentLoadedEventStart": {
+ "support_level": "untriaged"
+ },
+ "domInteractive": {
+ "support_level": "untriaged"
+ },
+ "loadEventEnd": {
+ "support_level": "untriaged"
+ },
+ "loadEventStart": {
+ "support_level": "untriaged"
+ },
+ "redirectCount": {
+ "support_level": "untriaged"
+ },
+ "type": {
+ "support_level": "untriaged"
+ },
+ "unloadEventEnd": {
+ "support_level": "untriaged"
+ },
+ "unloadEventStart": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"PerformanceObserver": {
"members": {
+ "PerformanceObserver": {},
"disconnect": {
"support_level": "untriaged"
},
@@ -10685,6 +13690,14 @@
},
"support_level": "untriaged"
},
+ "PerformanceObserverCallback": {
+ "members": {
+ "callback": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"PerformanceObserverEntryList": {
"members": {
"getEntries": {
@@ -10699,6 +13712,10 @@
},
"support_level": "untriaged"
},
+ "PerformancePaintTiming": {
+ "members": {},
+ "support_level": "untriaged"
+ },
"PerformanceRenderTiming": {
"members": {
"sourceFrame": {
@@ -10712,10 +13729,19 @@
"members": {
"connectEnd": {},
"connectStart": {},
+ "decodedBodySize": {
+ "support_level": "untriaged"
+ },
"domainLookupEnd": {},
"domainLookupStart": {},
+ "encodedBodySize": {
+ "support_level": "untriaged"
+ },
"fetchStart": {},
"initiatorType": {},
+ "nextHopProtocol": {
+ "support_level": "untriaged"
+ },
"redirectEnd": {},
"redirectStart": {},
"requestStart": {
@@ -10731,12 +13757,32 @@
"support_level": "nonstandard"
},
"secureConnectionStart": {},
+ "serverTiming": {
+ "support_level": "untriaged"
+ },
+ "transferSize": {
+ "support_level": "untriaged"
+ },
"workerStart": {
"support_level": "untriaged"
}
},
"support_level": "experimental"
},
+ "PerformanceServerTiming": {
+ "members": {
+ "description": {
+ "support_level": "untriaged"
+ },
+ "duration": {
+ "support_level": "untriaged"
+ },
+ "name": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"PerformanceTiming": {
"comment": "http://w3c-test.org/webperf/specs/NavigationTiming/#sec-navigation-timing-interface",
"dart_action": "unstable",
@@ -10815,7 +13861,9 @@
"support_level": "untriaged"
},
"PeriodicWave": {
- "members": {},
+ "members": {
+ "PeriodicWave": {}
+ },
"support_level": "untriaged"
},
"PermissionStatus": {
@@ -10858,6 +13906,23 @@
},
"support_level": "untriaged"
},
+ "PhotoCapabilities": {
+ "members": {
+ "fillLightMode": {
+ "support_level": "untriaged"
+ },
+ "imageHeight": {
+ "support_level": "untriaged"
+ },
+ "imageWidth": {
+ "support_level": "untriaged"
+ },
+ "redEyeReduction": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"Player": {
"members": {
"cancel": {
@@ -10940,6 +14005,9 @@
"PointerEvent": {
"members": {
"PointerEvent": {},
+ "getCoalescedEvents": {
+ "support_level": "untriaged"
+ },
"height": {
"support_level": "untriaged"
},
@@ -10955,12 +14023,18 @@
"pressure": {
"support_level": "untriaged"
},
+ "tangentialPressure": {
+ "support_level": "untriaged"
+ },
"tiltX": {
"support_level": "untriaged"
},
"tiltY": {
"support_level": "untriaged"
},
+ "twist": {
+ "support_level": "untriaged"
+ },
"width": {
"support_level": "untriaged"
}
@@ -10975,10 +14049,24 @@
},
"support_level": "stable"
},
+ "Position": {
+ "members": {
+ "coords": {
+ "support_level": "untriaged"
+ },
+ "timestamp": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"PositionCallback": {
"comment": "http://www.w3.org/TR/geolocation-API/#position-callback",
"dart_action": "unstable",
"members": {
+ "callback": {
+ "support_level": "untriaged"
+ },
"handleEvent": {}
},
"support_level": "stable"
@@ -11074,9 +14162,18 @@
"id": {
"support_level": "untriaged"
},
+ "onclose": {
+ "support_level": "untriaged"
+ },
+ "onconnect": {
+ "support_level": "untriaged"
+ },
"onmessage": {
"support_level": "untriaged"
},
+ "onterminate": {
+ "support_level": "untriaged"
+ },
"send": {
"support_level": "untriaged"
},
@@ -11085,6 +14182,9 @@
},
"terminate": {
"support_level": "untriaged"
+ },
+ "url": {
+ "support_level": "untriaged"
}
},
"support_level": "untriaged"
@@ -11110,8 +14210,22 @@
},
"support_level": "untriaged"
},
+ "PresentationConnectionList": {
+ "members": {
+ "connections": {
+ "support_level": "untriaged"
+ },
+ "onconnectionavailable": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"PresentationReceiver": {
"members": {
+ "connectionList": {
+ "support_level": "untriaged"
+ },
"getConnection": {
"support_level": "untriaged"
},
@@ -11127,6 +14241,9 @@
"getAvailability": {
"support_level": "untriaged"
},
+ "onconnectionavailable": {
+ "support_level": "untriaged"
+ },
"reconnect": {
"support_level": "untriaged"
},
@@ -11241,6 +14358,17 @@
},
"support_level": "untriaged"
},
+ "PublicKeyCredential": {
+ "members": {
+ "rawId": {
+ "support_level": "untriaged"
+ },
+ "response": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"PushEvent": {
"members": {
"PushEvent": {},
@@ -11263,6 +14391,9 @@
},
"subscribe": {
"support_level": "untriaged"
+ },
+ "supportedContentEncodings": {
+ "support_level": "untriaged"
}
},
"support_level": "untriaged"
@@ -11301,15 +14432,32 @@
"endpoint": {
"support_level": "untriaged"
},
+ "expirationTime": {
+ "support_level": "untriaged"
+ },
"getKey": {
"support_level": "untriaged"
},
+ "options": {
+ "support_level": "untriaged"
+ },
"unsubscribe": {
"support_level": "untriaged"
}
},
"support_level": "untriaged"
},
+ "PushSubscriptionOptions": {
+ "members": {
+ "applicationServerKey": {
+ "support_level": "untriaged"
+ },
+ "userVisibleOnly": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"RGBColor": {
"comment": "http://dev.w3.org/csswg/cssom/",
"dart_action": "suppress",
@@ -11324,6 +14472,9 @@
"members": {
"expires": {
"support_level": "untriaged"
+ },
+ "getFingerprints": {
+ "support_level": "untriaged"
}
},
"support_level": "untriaged"
@@ -11376,6 +14527,9 @@
"negotiated": {
"support_level": "untriaged"
},
+ "onbufferedamountlow": {
+ "support_level": "untriaged"
+ },
"onclose": {},
"onerror": {},
"onmessage": {},
@@ -11400,6 +14554,7 @@
"RTCDataChannelEvent": {
"comment": "http://dev.w3.org/2011/webrtc/editor/webrtc.html#rtcdatachannelevent",
"members": {
+ "RTCDataChannelEvent": {},
"channel": {}
},
"support_level": "experimental"
@@ -11428,6 +14583,26 @@
},
"support_level": "experimental"
},
+ "RTCLegacyStatsReport": {
+ "members": {
+ "id": {
+ "support_level": "untriaged"
+ },
+ "names": {
+ "support_level": "untriaged"
+ },
+ "stat": {
+ "support_level": "untriaged"
+ },
+ "timestamp": {
+ "support_level": "untriaged"
+ },
+ "type": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"RTCPeerConnection": {
"comment": "http://dev.w3.org/2011/webrtc/editor/webrtc.html#idl-def-RTCPeerConnection",
"members": {
@@ -11435,6 +14610,9 @@
"addEventListener": {},
"addIceCandidate": {},
"addStream": {},
+ "addTrack": {
+ "support_level": "untriaged"
+ },
"close": {},
"createAnswer": {},
"createDTMFSender": {},
@@ -11445,7 +14623,13 @@
"support_level": "untriaged"
},
"getLocalStreams": {},
+ "getReceivers": {
+ "support_level": "untriaged"
+ },
"getRemoteStreams": {},
+ "getSenders": {
+ "support_level": "untriaged"
+ },
"getStats": {},
"getStreamById": {},
"iceConnectionState": {},
@@ -11455,12 +14639,24 @@
"ondatachannel": {},
"onicecandidate": {},
"oniceconnectionstatechange": {},
+ "onicegatheringstatechange": {
+ "support_level": "untriaged"
+ },
"onnegotiationneeded": {},
"onremovestream": {},
"onsignalingstatechange": {},
+ "ontrack": {
+ "support_level": "untriaged"
+ },
"remoteDescription": {},
"removeEventListener": {},
"removeStream": {},
+ "removeTrack": {
+ "support_level": "untriaged"
+ },
+ "setConfiguration": {
+ "support_level": "untriaged"
+ },
"setLocalDescription": {},
"setRemoteDescription": {},
"signalingState": {},
@@ -11472,6 +14668,45 @@
"members": {},
"support_level": "untriaged"
},
+ "RTCPeerConnectionIceEvent": {
+ "members": {
+ "RTCPeerConnectionIceEvent": {},
+ "candidate": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "RTCRtpContributingSource": {
+ "members": {
+ "source": {
+ "support_level": "untriaged"
+ },
+ "timestamp": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "RTCRtpReceiver": {
+ "members": {
+ "getContributingSources": {
+ "support_level": "untriaged"
+ },
+ "track": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "RTCRtpSender": {
+ "members": {
+ "track": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"RTCSessionDescription": {
"comment": "http://dev.w3.org/2011/webrtc/editor/webrtc.html#idl-def-RTCSessionDescription",
"members": {
@@ -11518,6 +14753,21 @@
},
"support_level": "experimental"
},
+ "RTCTrackEvent": {
+ "members": {
+ "RTCTrackEvent": {},
+ "receiver": {
+ "support_level": "untriaged"
+ },
+ "streams": {
+ "support_level": "untriaged"
+ },
+ "track": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"RadioNodeList": {
"comment": "http://www.whatwg.org/specs/web-apps/current-work/#radionodelist",
"members": {
@@ -11696,6 +14946,20 @@
},
"support_level": "deprecated"
},
+ "RelatedApplication": {
+ "members": {
+ "id": {
+ "support_level": "untriaged"
+ },
+ "platform": {
+ "support_level": "untriaged"
+ },
+ "url": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"RelatedEvent": {
"members": {
"RelatedEvent": {},
@@ -11705,6 +14969,84 @@
},
"support_level": "untriaged"
},
+ "RelativeOrientationSensor": {
+ "members": {
+ "RelativeOrientationSensor": {}
+ },
+ "support_level": "untriaged"
+ },
+ "RemotePlayback": {
+ "members": {
+ "cancelWatchAvailability": {
+ "support_level": "untriaged"
+ },
+ "onconnect": {
+ "support_level": "untriaged"
+ },
+ "onconnecting": {
+ "support_level": "untriaged"
+ },
+ "ondisconnect": {
+ "support_level": "untriaged"
+ },
+ "prompt": {
+ "support_level": "untriaged"
+ },
+ "state": {
+ "support_level": "untriaged"
+ },
+ "watchAvailability": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "RemotePlaybackAvailabilityCallback": {
+ "members": {
+ "callback": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "Report": {
+ "members": {
+ "body": {
+ "support_level": "untriaged"
+ },
+ "type": {
+ "support_level": "untriaged"
+ },
+ "url": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "ReportBody": {
+ "members": {},
+ "support_level": "untriaged"
+ },
+ "ReportingObserver": {
+ "members": {
+ "ReportingObserver": {},
+ "disconnect": {
+ "support_level": "untriaged"
+ },
+ "observe": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "ReportingObserverCallback": {
+ "members": {
+ "callback": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"Request": {
"members": {
"Request": {},
@@ -11717,6 +15059,9 @@
"bodyUsed": {
"support_level": "untriaged"
},
+ "cache": {
+ "support_level": "untriaged"
+ },
"clone": {
"support_level": "untriaged"
},
@@ -11747,6 +15092,9 @@
"referrer": {
"support_level": "untriaged"
},
+ "referrerPolicy": {
+ "support_level": "untriaged"
+ },
"text": {
"support_level": "untriaged"
},
@@ -11763,6 +15111,40 @@
},
"support_level": "stable"
},
+ "ResizeObserver": {
+ "members": {
+ "ResizeObserver": {},
+ "disconnect": {
+ "support_level": "untriaged"
+ },
+ "observe": {
+ "support_level": "untriaged"
+ },
+ "unobserve": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "ResizeObserverCallback": {
+ "members": {
+ "callback": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "ResizeObserverEntry": {
+ "members": {
+ "contentRect": {
+ "support_level": "untriaged"
+ },
+ "target": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"ResourceProgressEvent": {
"comment": "https://chromiumcodereview.appspot.com/14773025/",
"dart_action": "suppress",
@@ -12209,6 +15591,15 @@
"hasExtension": {
"comment": "http://www.w3.org/TR/SVG/types.html#InterfaceSVGTests"
},
+ "onbegin": {
+ "support_level": "untriaged"
+ },
+ "onend": {
+ "support_level": "untriaged"
+ },
+ "onrepeat": {
+ "support_level": "untriaged"
+ },
"requiredExtensions": {
"comment": "http://www.w3.org/TR/SVG/types.html#InterfaceSVGTests"
},
@@ -12466,6 +15857,9 @@
"support_level": "untriaged"
},
"id": {},
+ "nonce": {
+ "support_level": "untriaged"
+ },
"onabort": {
"support_level": "untriaged"
},
@@ -12637,6 +16031,9 @@
"onwaiting": {
"support_level": "untriaged"
},
+ "onwheel": {
+ "support_level": "untriaged"
+ },
"ownerSVGElement": {},
"style": {
"support_level": "untriaged"
@@ -13659,11 +17056,20 @@
},
"SVGGeometryElement": {
"members": {
+ "getPointAtLength": {
+ "support_level": "untriaged"
+ },
+ "getTotalLength": {
+ "support_level": "untriaged"
+ },
"isPointInFill": {
"support_level": "untriaged"
},
"isPointInStroke": {
"support_level": "untriaged"
+ },
+ "pathLength": {
+ "support_level": "untriaged"
}
},
"support_level": "untriaged"
@@ -13763,6 +17169,12 @@
"dart_action": "unstable",
"members": {
"SVGImageElement": {},
+ "async": {
+ "support_level": "untriaged"
+ },
+ "decode": {
+ "support_level": "untriaged"
+ },
"externalResourcesRequired": {
"comment": "http://www.w3.org/TR/SVG/types.html#InterfaceSVGExternalResourcesRequired"
},
@@ -15509,6 +18921,12 @@
"isEnding": {
"support_level": "untriaged"
},
+ "positionX": {
+ "support_level": "untriaged"
+ },
+ "positionY": {
+ "support_level": "untriaged"
+ },
"shouldPropagate": {
"support_level": "untriaged"
},
@@ -15531,6 +18949,21 @@
"members": {},
"support_level": "untriaged"
},
+ "ScrollTimeline": {
+ "members": {
+ "ScrollTimeline": {},
+ "orientation": {
+ "support_level": "untriaged"
+ },
+ "scrollSource": {
+ "support_level": "untriaged"
+ },
+ "timeRange": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"SecurityPolicy": {
"comment": "https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#securitypolicy",
"members": {
@@ -15558,11 +18991,17 @@
"SecurityPolicyViolationEvent": {},
"blockedURI": {},
"columnNumber": {},
+ "disposition": {
+ "support_level": "untriaged"
+ },
"documentURI": {},
"effectiveDirective": {},
"lineNumber": {},
"originalPolicy": {},
"referrer": {},
+ "sample": {
+ "support_level": "untriaged"
+ },
"sourceFile": {},
"statusCode": {
"support_level": "untriaged"
@@ -15609,6 +19048,9 @@
},
"rangeCount": {},
"removeAllRanges": {},
+ "removeRange": {
+ "support_level": "untriaged"
+ },
"selectAllChildren": {},
"setBaseAndExtent": {
"support_level": "nonstandard"
@@ -15623,6 +19065,44 @@
},
"support_level": "stable"
},
+ "Sensor": {
+ "members": {
+ "activated": {
+ "support_level": "untriaged"
+ },
+ "hasReading": {
+ "support_level": "untriaged"
+ },
+ "onactivate": {
+ "support_level": "untriaged"
+ },
+ "onerror": {
+ "support_level": "untriaged"
+ },
+ "onreading": {
+ "support_level": "untriaged"
+ },
+ "start": {
+ "support_level": "untriaged"
+ },
+ "stop": {
+ "support_level": "untriaged"
+ },
+ "timestamp": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "SensorErrorEvent": {
+ "members": {
+ "SensorErrorEvent": {},
+ "error": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"ServicePort": {
"members": {
"close": {
@@ -15718,6 +19198,9 @@
"installing": {
"support_level": "untriaged"
},
+ "oncontrollerchange": {
+ "support_level": "untriaged"
+ },
"onmessage": {
"support_level": "untriaged"
},
@@ -15753,9 +19236,54 @@
"nativeCaches": {
"support_level": "untriaged"
},
+ "onabortpayment": {
+ "support_level": "untriaged"
+ },
+ "onactivate": {
+ "support_level": "untriaged"
+ },
+ "onbackgroundfetchabort": {
+ "support_level": "untriaged"
+ },
+ "onbackgroundfetchclick": {
+ "support_level": "untriaged"
+ },
+ "onbackgroundfetched": {
+ "support_level": "untriaged"
+ },
+ "onbackgroundfetchfail": {
+ "support_level": "untriaged"
+ },
+ "oncanmakepayment": {
+ "support_level": "untriaged"
+ },
+ "onfetch": {
+ "support_level": "untriaged"
+ },
+ "onforeignfetch": {
+ "support_level": "untriaged"
+ },
+ "oninstall": {
+ "support_level": "untriaged"
+ },
"onmessage": {
"support_level": "untriaged"
},
+ "onnotificationclick": {
+ "support_level": "untriaged"
+ },
+ "onnotificationclose": {
+ "support_level": "untriaged"
+ },
+ "onpaymentrequest": {
+ "support_level": "untriaged"
+ },
+ "onpush": {
+ "support_level": "untriaged"
+ },
+ "onsync": {
+ "support_level": "untriaged"
+ },
"ports": {
"support_level": "untriaged"
},
@@ -15797,6 +19325,9 @@
"active": {
"support_level": "untriaged"
},
+ "backgroundFetch": {
+ "support_level": "untriaged"
+ },
"geofencing": {
"support_level": "untriaged"
},
@@ -15806,6 +19337,15 @@
"installing": {
"support_level": "untriaged"
},
+ "navigationPreload": {
+ "support_level": "untriaged"
+ },
+ "onupdatefound": {
+ "support_level": "untriaged"
+ },
+ "paymentManager": {
+ "support_level": "untriaged"
+ },
"periodicSync": {
"support_level": "untriaged"
},
@@ -15846,6 +19386,9 @@
"elementsFromPoint": {
"support_level": "untriaged"
},
+ "fullscreenElement": {
+ "support_level": "untriaged"
+ },
"getElementById": {},
"getElementsByClassName": {},
"getElementsByTagName": {},
@@ -15855,9 +19398,15 @@
"support_level": "untriaged"
},
"innerHTML": {},
+ "mode": {
+ "support_level": "untriaged"
+ },
"olderShadowRoot": {
"support_level": "untriaged"
},
+ "pointerLockElement": {
+ "support_level": "untriaged"
+ },
"resetStyleInheritance": {},
"styleSheets": {
"support_level": "untriaged"
@@ -15913,6 +19462,9 @@
"TEMPORARY": {
"support_level": "untriaged"
},
+ "close": {
+ "support_level": "untriaged"
+ },
"name": {
"support_level": "untriaged"
},
@@ -15989,6 +19541,9 @@
"appendWindowStart": {
"support_level": "untriaged"
},
+ "audioTracks": {
+ "support_level": "untriaged"
+ },
"buffered": {},
"dispatchEvent": {
"support_level": "untriaged"
@@ -15996,6 +19551,21 @@
"mode": {
"support_level": "untriaged"
},
+ "onabort": {
+ "support_level": "untriaged"
+ },
+ "onerror": {
+ "support_level": "untriaged"
+ },
+ "onupdate": {
+ "support_level": "untriaged"
+ },
+ "onupdateend": {
+ "support_level": "untriaged"
+ },
+ "onupdatestart": {
+ "support_level": "untriaged"
+ },
"remove": {
"support_level": "untriaged"
},
@@ -16008,6 +19578,9 @@
},
"updating": {
"support_level": "untriaged"
+ },
+ "videoTracks": {
+ "support_level": "untriaged"
}
},
"support_level": "experimental"
@@ -16019,6 +19592,12 @@
"dispatchEvent": {},
"item": {},
"length": {},
+ "onaddsourcebuffer": {
+ "support_level": "untriaged"
+ },
+ "onremovesourcebuffer": {
+ "support_level": "untriaged"
+ },
"removeEventListener": {}
},
"support_level": "experimental"
@@ -16174,6 +19753,9 @@
"support_level": "untriaged"
},
"getVoices": {},
+ "onvoiceschanged": {
+ "support_level": "untriaged"
+ },
"pause": {},
"paused": {},
"pending": {},
@@ -16260,8 +19842,29 @@
},
"support_level": "untriaged"
},
+ "StaticRange": {
+ "members": {
+ "collapsed": {
+ "support_level": "untriaged"
+ },
+ "endContainer": {
+ "support_level": "untriaged"
+ },
+ "endOffset": {
+ "support_level": "untriaged"
+ },
+ "startContainer": {
+ "support_level": "untriaged"
+ },
+ "startOffset": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"StereoPannerNode": {
"members": {
+ "StereoPannerNode": {},
"pan": {
"support_level": "untriaged"
}
@@ -16324,6 +19927,15 @@
},
"StorageManager": {
"members": {
+ "estimate": {
+ "support_level": "untriaged"
+ },
+ "persist": {
+ "support_level": "untriaged"
+ },
+ "persisted": {
+ "support_level": "untriaged"
+ },
"persistentPermission": {
"support_level": "untriaged"
},
@@ -16414,6 +20026,23 @@
},
"support_level": "untriaged"
},
+ "StylePropertyMapReadonly": {
+ "members": {
+ "get": {
+ "support_level": "untriaged"
+ },
+ "getAll": {
+ "support_level": "untriaged"
+ },
+ "getProperties": {
+ "support_level": "untriaged"
+ },
+ "has": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"StyleSheet": {
"comment": "http://dev.w3.org/csswg/cssom/#the-stylesheet-interface",
"members": {
@@ -16520,6 +20149,26 @@
},
"support_level": "untriaged"
},
+ "TaskAttributionTiming": {
+ "members": {
+ "containerId": {
+ "support_level": "untriaged"
+ },
+ "containerName": {
+ "support_level": "untriaged"
+ },
+ "containerSrc": {
+ "support_level": "untriaged"
+ },
+ "containerType": {
+ "support_level": "untriaged"
+ },
+ "scriptURL": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"Text": {
"comment": "http://dom.spec.whatwg.org/#interface-text",
"members": {
@@ -16562,6 +20211,15 @@
},
"support_level": "untriaged"
},
+ "TextDetector": {
+ "members": {
+ "TextDetector": {},
+ "detect": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"TextEncoder": {
"members": {
"TextEncoder": {},
@@ -16734,6 +20392,9 @@
"onchange": {
"support_level": "untriaged"
},
+ "onremovetrack": {
+ "support_level": "untriaged"
+ },
"removeEventListener": {}
},
"support_level": "experimental"
@@ -17006,6 +20667,36 @@
},
"support_level": "stable"
},
+ "TrustedHTML": {
+ "members": {
+ "escape": {
+ "support_level": "untriaged"
+ },
+ "unsafelyCreate": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "TrustedScriptURL": {
+ "members": {
+ "unsafelyCreate": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "TrustedURL": {
+ "members": {
+ "create": {
+ "support_level": "untriaged"
+ },
+ "unsafelyCreate": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"UIEvent": {
"comment": "http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html#events-UIEvent",
"members": {
@@ -17101,6 +20792,9 @@
"search": {
"support_level": "untriaged"
},
+ "searchParams": {
+ "support_level": "untriaged"
+ },
"toString": {
"support_level": "untriaged"
},
@@ -17130,6 +20824,9 @@
},
"set": {
"support_level": "untriaged"
+ },
+ "sort": {
+ "support_level": "untriaged"
}
},
"support_level": "untriaged"
@@ -17387,6 +21084,7 @@
},
"USBInTransferResult": {
"members": {
+ "USBInTransferResult": {},
"data": {
"support_level": "untriaged"
},
@@ -17410,6 +21108,7 @@
},
"USBIsochronousInTransferPacket": {
"members": {
+ "USBIsochronousInTransferPacket": {},
"data": {
"support_level": "untriaged"
},
@@ -17421,6 +21120,7 @@
},
"USBIsochronousInTransferResult": {
"members": {
+ "USBIsochronousInTransferResult": {},
"data": {
"support_level": "untriaged"
},
@@ -17432,6 +21132,7 @@
},
"USBIsochronousOutTransferPacket": {
"members": {
+ "USBIsochronousOutTransferPacket": {},
"bytesWritten": {
"support_level": "untriaged"
},
@@ -17443,6 +21144,7 @@
},
"USBIsochronousOutTransferResult": {
"members": {
+ "USBIsochronousOutTransferResult": {},
"packets": {
"support_level": "untriaged"
}
@@ -17451,6 +21153,7 @@
},
"USBOutTransferResult": {
"members": {
+ "USBOutTransferResult": {},
"bytesWritten": {
"support_level": "untriaged"
},
@@ -17504,6 +21207,12 @@
"cancel": {
"support_level": "untriaged"
},
+ "notifyLockAcquired": {
+ "support_level": "untriaged"
+ },
+ "notifyLockReleased": {
+ "support_level": "untriaged"
+ },
"pull": {
"support_level": "untriaged"
},
@@ -17513,6 +21222,28 @@
},
"support_level": "untriaged"
},
+ "VR": {
+ "members": {
+ "getDevices": {
+ "support_level": "untriaged"
+ },
+ "ondeviceconnect": {
+ "support_level": "untriaged"
+ },
+ "ondevicedisconnect": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "VRCoordinateSystem": {
+ "members": {
+ "getTransformTo": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"VRDevice": {
"members": {
"deviceId": {
@@ -17523,6 +21254,103 @@
},
"hardwareUnitId": {
"support_level": "untriaged"
+ },
+ "isExternal": {
+ "support_level": "untriaged"
+ },
+ "requestSession": {
+ "support_level": "untriaged"
+ },
+ "supportsSession": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "VRDeviceEvent": {
+ "members": {
+ "VRDeviceEvent": {},
+ "device": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "VRDisplay": {
+ "members": {
+ "cancelAnimationFrame": {
+ "support_level": "untriaged"
+ },
+ "capabilities": {
+ "support_level": "untriaged"
+ },
+ "depthFar": {
+ "support_level": "untriaged"
+ },
+ "depthNear": {
+ "support_level": "untriaged"
+ },
+ "displayId": {
+ "support_level": "untriaged"
+ },
+ "displayName": {
+ "support_level": "untriaged"
+ },
+ "exitPresent": {
+ "support_level": "untriaged"
+ },
+ "getEyeParameters": {
+ "support_level": "untriaged"
+ },
+ "getFrameData": {
+ "support_level": "untriaged"
+ },
+ "getLayers": {
+ "support_level": "untriaged"
+ },
+ "isPresenting": {
+ "support_level": "untriaged"
+ },
+ "requestAnimationFrame": {
+ "support_level": "untriaged"
+ },
+ "requestPresent": {
+ "support_level": "untriaged"
+ },
+ "stageParameters": {
+ "support_level": "untriaged"
+ },
+ "submitFrame": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "VRDisplayCapabilities": {
+ "members": {
+ "canPresent": {
+ "support_level": "untriaged"
+ },
+ "hasExternalDisplay": {
+ "support_level": "untriaged"
+ },
+ "hasPosition": {
+ "support_level": "untriaged"
+ },
+ "maxLayers": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "VRDisplayEvent": {
+ "members": {
+ "VRDisplayEvent": {},
+ "display": {
+ "support_level": "untriaged"
+ },
+ "reason": {
+ "support_level": "untriaged"
}
},
"support_level": "untriaged"
@@ -17541,11 +21369,20 @@
"minimumFieldOfView": {
"support_level": "untriaged"
},
+ "offset": {
+ "support_level": "untriaged"
+ },
"recommendedFieldOfView": {
"support_level": "untriaged"
},
+ "renderHeight": {
+ "support_level": "untriaged"
+ },
"renderRect": {
"support_level": "untriaged"
+ },
+ "renderWidth": {
+ "support_level": "untriaged"
}
},
"support_level": "untriaged"
@@ -17568,6 +21405,61 @@
},
"support_level": "untriaged"
},
+ "VRFrameData": {
+ "members": {
+ "VRFrameData": {},
+ "leftProjectionMatrix": {
+ "support_level": "untriaged"
+ },
+ "leftViewMatrix": {
+ "support_level": "untriaged"
+ },
+ "pose": {
+ "support_level": "untriaged"
+ },
+ "rightProjectionMatrix": {
+ "support_level": "untriaged"
+ },
+ "rightViewMatrix": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "VRFrameOfReference": {
+ "members": {
+ "bounds": {
+ "support_level": "untriaged"
+ },
+ "emulatedHeight": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "VRPose": {
+ "members": {
+ "angularAcceleration": {
+ "support_level": "untriaged"
+ },
+ "angularVelocity": {
+ "support_level": "untriaged"
+ },
+ "linearAcceleration": {
+ "support_level": "untriaged"
+ },
+ "linearVelocity": {
+ "support_level": "untriaged"
+ },
+ "orientation": {
+ "support_level": "untriaged"
+ },
+ "position": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"VRPositionState": {
"members": {
"angularAcceleration": {
@@ -17594,6 +21486,83 @@
},
"support_level": "untriaged"
},
+ "VRSession": {
+ "members": {
+ "depthFar": {
+ "support_level": "untriaged"
+ },
+ "depthNear": {
+ "support_level": "untriaged"
+ },
+ "device": {
+ "support_level": "untriaged"
+ },
+ "end": {
+ "support_level": "untriaged"
+ },
+ "exclusive": {
+ "support_level": "untriaged"
+ },
+ "onblur": {
+ "support_level": "untriaged"
+ },
+ "onend": {
+ "support_level": "untriaged"
+ },
+ "onfocus": {
+ "support_level": "untriaged"
+ },
+ "onresetpose": {
+ "support_level": "untriaged"
+ },
+ "requestFrameOfReference": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "VRSessionEvent": {
+ "members": {
+ "VRSessionEvent": {},
+ "session": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "VRStageBounds": {
+ "members": {
+ "geometry": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "VRStageBoundsPoint": {
+ "members": {
+ "x": {
+ "support_level": "untriaged"
+ },
+ "z": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "VRStageParameters": {
+ "members": {
+ "sittingToStandingTransform": {
+ "support_level": "untriaged"
+ },
+ "sizeX": {
+ "support_level": "untriaged"
+ },
+ "sizeZ": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"VTTCue": {
"members": {
"VTTCue": {},
@@ -17609,6 +21578,9 @@
"position": {
"support_level": "untriaged"
},
+ "region": {
+ "support_level": "untriaged"
+ },
"regionId": {
"support_level": "untriaged"
},
@@ -17636,6 +21608,9 @@
"id": {
"support_level": "untriaged"
},
+ "lines": {
+ "support_level": "untriaged"
+ },
"regionAnchorX": {
"support_level": "untriaged"
},
@@ -17726,6 +21701,9 @@
},
"selected": {
"support_level": "untriaged"
+ },
+ "sourceBuffer": {
+ "support_level": "untriaged"
}
},
"support_level": "untriaged"
@@ -17742,15 +21720,53 @@
"length": {
"support_level": "untriaged"
},
+ "onaddtrack": {
+ "support_level": "untriaged"
+ },
"onchange": {
"support_level": "untriaged"
},
+ "onremovetrack": {
+ "support_level": "untriaged"
+ },
"selectedIndex": {
"support_level": "untriaged"
}
},
"support_level": "untriaged"
},
+ "VisualViewport": {
+ "members": {
+ "height": {
+ "support_level": "untriaged"
+ },
+ "offsetLeft": {
+ "support_level": "untriaged"
+ },
+ "offsetTop": {
+ "support_level": "untriaged"
+ },
+ "onresize": {
+ "support_level": "untriaged"
+ },
+ "onscroll": {
+ "support_level": "untriaged"
+ },
+ "pageLeft": {
+ "support_level": "untriaged"
+ },
+ "pageTop": {
+ "support_level": "untriaged"
+ },
+ "scale": {
+ "support_level": "untriaged"
+ },
+ "width": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"VoidCallback": {
"comment": "http://www.w3.org/TR/file-system-api/#the-voidcallback-interface",
"members": {
@@ -17761,6 +21777,7 @@
"WaveShaperNode": {
"comment": "https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#dfn-WaveShaperNode",
"members": {
+ "WaveShaperNode": {},
"curve": {},
"oversample": {}
},
@@ -18730,6 +22747,9 @@
"bufferData": {
"support_level": "untriaged"
},
+ "bufferData2": {
+ "support_level": "untriaged"
+ },
"bufferDataTyped": {
"support_level": "untriaged"
},
@@ -18739,12 +22759,24 @@
"bufferSubData": {
"support_level": "untriaged"
},
+ "bufferSubData2": {
+ "support_level": "untriaged"
+ },
"bufferSubDataTyped": {
"support_level": "untriaged"
},
"canvas": {
"support_level": "untriaged"
},
+ "canvasElement": {
+ "support_level": "untriaged"
+ },
+ "canvasOffscreen": {
+ "support_level": "untriaged"
+ },
+ "canvasUnion": {
+ "support_level": "untriaged"
+ },
"checkFramebufferStatus": {
"support_level": "untriaged"
},
@@ -18778,21 +22810,42 @@
"colorMask": {
"support_level": "untriaged"
},
+ "commit": {
+ "support_level": "untriaged"
+ },
"compileShader": {
"support_level": "untriaged"
},
"compressedTexImage2D": {
"support_level": "untriaged"
},
+ "compressedTexImage2D2": {
+ "support_level": "untriaged"
+ },
+ "compressedTexImage2D3": {
+ "support_level": "untriaged"
+ },
"compressedTexImage3D": {
"support_level": "untriaged"
},
+ "compressedTexImage3D2": {
+ "support_level": "untriaged"
+ },
"compressedTexSubImage2D": {
"support_level": "untriaged"
},
+ "compressedTexSubImage2D2": {
+ "support_level": "untriaged"
+ },
+ "compressedTexSubImage2D3": {
+ "support_level": "untriaged"
+ },
"compressedTexSubImage3D": {
"support_level": "untriaged"
},
+ "compressedTexSubImage3D2": {
+ "support_level": "untriaged"
+ },
"copyBufferSubData": {
"support_level": "untriaged"
},
@@ -19114,6 +23167,9 @@
"linkProgram": {
"support_level": "untriaged"
},
+ "offscreenCanvas": {
+ "support_level": "untriaged"
+ },
"pauseTransformFeedback": {
"support_level": "untriaged"
},
@@ -19210,6 +23266,9 @@
"texSubImage2D": {
"support_level": "untriaged"
},
+ "texSubImage2D2": {
+ "support_level": "untriaged"
+ },
"texSubImage2DCanvas": {
"support_level": "untriaged"
},
@@ -19234,12 +23293,18 @@
"uniform1fv": {
"support_level": "untriaged"
},
+ "uniform1fv2": {
+ "support_level": "untriaged"
+ },
"uniform1i": {
"support_level": "untriaged"
},
"uniform1iv": {
"support_level": "untriaged"
},
+ "uniform1iv2": {
+ "support_level": "untriaged"
+ },
"uniform1ui": {
"support_level": "untriaged"
},
@@ -19252,12 +23317,18 @@
"uniform2fv": {
"support_level": "untriaged"
},
+ "uniform2fv2": {
+ "support_level": "untriaged"
+ },
"uniform2i": {
"support_level": "untriaged"
},
"uniform2iv": {
"support_level": "untriaged"
},
+ "uniform2iv2": {
+ "support_level": "untriaged"
+ },
"uniform2ui": {
"support_level": "untriaged"
},
@@ -19270,12 +23341,18 @@
"uniform3fv": {
"support_level": "untriaged"
},
+ "uniform3fv2": {
+ "support_level": "untriaged"
+ },
"uniform3i": {
"support_level": "untriaged"
},
"uniform3iv": {
"support_level": "untriaged"
},
+ "uniform3iv2": {
+ "support_level": "untriaged"
+ },
"uniform3ui": {
"support_level": "untriaged"
},
@@ -19288,12 +23365,18 @@
"uniform4fv": {
"support_level": "untriaged"
},
+ "uniform4fv2": {
+ "support_level": "untriaged"
+ },
"uniform4i": {
"support_level": "untriaged"
},
"uniform4iv": {
"support_level": "untriaged"
},
+ "uniform4iv2": {
+ "support_level": "untriaged"
+ },
"uniform4ui": {
"support_level": "untriaged"
},
@@ -19306,6 +23389,9 @@
"uniformMatrix2fv": {
"support_level": "untriaged"
},
+ "uniformMatrix2fv2": {
+ "support_level": "untriaged"
+ },
"uniformMatrix2x3fv": {
"support_level": "untriaged"
},
@@ -19315,6 +23401,9 @@
"uniformMatrix3fv": {
"support_level": "untriaged"
},
+ "uniformMatrix3fv2": {
+ "support_level": "untriaged"
+ },
"uniformMatrix3x2fv": {
"support_level": "untriaged"
},
@@ -19324,6 +23413,9 @@
"uniformMatrix4fv": {
"support_level": "untriaged"
},
+ "uniformMatrix4fv2": {
+ "support_level": "untriaged"
+ },
"uniformMatrix4x2fv": {
"support_level": "untriaged"
},
@@ -19410,6 +23502,21 @@
"members": {},
"support_level": "stable"
},
+ "WebGLCanvas": {
+ "members": {
+ "canvas": {
+ "support_level": "untriaged"
+ },
+ "offscreenCanvas": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
+ "WebGLColorBufferFloat": {
+ "members": {},
+ "support_level": "untriaged"
+ },
"WebGLCompressedTextureASTC": {
"members": {
"COMPRESSED_RGBA_ASTC_10x10_KHR": {
@@ -19508,6 +23615,41 @@
},
"support_level": "experimental"
},
+ "WebGLCompressedTextureETC": {
+ "members": {
+ "COMPRESSED_R11_EAC": {
+ "support_level": "untriaged"
+ },
+ "COMPRESSED_RG11_EAC": {
+ "support_level": "untriaged"
+ },
+ "COMPRESSED_RGB8_ETC2": {
+ "support_level": "untriaged"
+ },
+ "COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2": {
+ "support_level": "untriaged"
+ },
+ "COMPRESSED_RGBA8_ETC2_EAC": {
+ "support_level": "untriaged"
+ },
+ "COMPRESSED_SIGNED_R11_EAC": {
+ "support_level": "untriaged"
+ },
+ "COMPRESSED_SIGNED_RG11_EAC": {
+ "support_level": "untriaged"
+ },
+ "COMPRESSED_SRGB8_ALPHA8_ETC2_EAC": {
+ "support_level": "untriaged"
+ },
+ "COMPRESSED_SRGB8_ETC2": {
+ "support_level": "untriaged"
+ },
+ "COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"WebGLCompressedTextureETC1": {
"members": {
"COMPRESSED_RGB_ETC1_WEBGL": {
@@ -19538,6 +23680,23 @@
},
"support_level": "experimental"
},
+ "WebGLCompressedTextureS3TCsRGB": {
+ "members": {
+ "COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT": {
+ "support_level": "untriaged"
+ },
+ "COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT": {
+ "support_level": "untriaged"
+ },
+ "COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT": {
+ "support_level": "untriaged"
+ },
+ "COMPRESSED_SRGB_S3TC_DXT1_EXT": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"WebGLContextAttributes": {
"comment": "http://www.khronos.org/registry/webgl/specs/latest/#5.2",
"dart_action": "unstable",
@@ -19636,6 +23795,14 @@
"members": {},
"support_level": "stable"
},
+ "WebGLGetBufferSubDataAsync": {
+ "members": {
+ "getBufferSubDataAsync": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"WebGLLoseContext": {
"comment": "http://www.khronos.org/registry/webgl/extensions/WEBGL_lose_context/",
"members": {
@@ -19991,12 +24158,24 @@
"canvas": {
"support_level": "untriaged"
},
+ "canvasElement": {
+ "support_level": "untriaged"
+ },
+ "canvasOffscreen": {
+ "support_level": "untriaged"
+ },
+ "canvasUnion": {
+ "support_level": "untriaged"
+ },
"checkFramebufferStatus": {},
"clear": {},
"clearColor": {},
"clearDepth": {},
"clearStencil": {},
"colorMask": {},
+ "commit": {
+ "support_level": "untriaged"
+ },
"compileShader": {},
"compressedTexImage2D": {},
"compressedTexSubImage2D": {},
@@ -20067,6 +24246,9 @@
"isTexture": {},
"lineWidth": {},
"linkProgram": {},
+ "offscreenCanvas": {
+ "support_level": "untriaged"
+ },
"pixelStorei": {},
"polygonOffset": {},
"readPixels": {},
@@ -21507,7 +25689,20 @@
},
"WebGLTexture": {
"comment": "http://www.khronos.org/registry/webgl/specs/latest/#5.9",
- "members": {},
+ "members": {
+ "lastUploadedVideoFrameWasSkipped": {
+ "support_level": "untriaged"
+ },
+ "lastUploadedVideoHeight": {
+ "support_level": "untriaged"
+ },
+ "lastUploadedVideoTimestamp": {
+ "support_level": "untriaged"
+ },
+ "lastUploadedVideoWidth": {
+ "support_level": "untriaged"
+ }
+ },
"support_level": "stable"
},
"WebGLTimerQueryEXT": {
@@ -21807,8 +26002,14 @@
},
"addEventListener": {},
"alert": {},
+ "animationWorklet": {
+ "support_level": "untriaged"
+ },
"applicationCache": {},
"atob": {},
+ "audioWorklet": {
+ "support_level": "untriaged"
+ },
"blur": {
"dart_action": "suppress",
"support_level": "deprecated"
@@ -21835,6 +26036,9 @@
"closed": {},
"confirm": {},
"console": {},
+ "cookieStore": {
+ "support_level": "untriaged"
+ },
"createImageBitmap": {
"support_level": "untriaged"
},
@@ -21842,6 +26046,9 @@
"comment": "http://www.w3.org/TR/WebCryptoAPI/",
"support_level": "experimental"
},
+ "customElements": {
+ "support_level": "untriaged"
+ },
"defaultStatus": {
"support_level": "nonstandard"
},
@@ -21858,6 +26065,9 @@
"dart_action": "suppress",
"support_level": "deprecated"
},
+ "external": {
+ "support_level": "untriaged"
+ },
"fetch": {
"support_level": "untriaged"
},
@@ -21871,6 +26081,9 @@
"frameElement": {},
"frames": {},
"getComputedStyle": {},
+ "getComputedStyleMap": {
+ "support_level": "untriaged"
+ },
"getMatchedCSSRules": {
"support_level": "nonstandard"
},
@@ -21909,6 +26122,12 @@
"onanimationstart": {
"support_level": "untriaged"
},
+ "onappinstalled": {
+ "support_level": "untriaged"
+ },
+ "onbeforeinstallprompt": {
+ "support_level": "untriaged"
+ },
"onbeforeunload": {},
"onblur": {},
"oncanplay": {},
@@ -21928,6 +26147,9 @@
"comment": "http://dev.w3.org/geo/api/spec-source-orientation.html#devicemotion",
"support_level": "experimental"
},
+ "ondeviceorientationabsolute": {
+ "support_level": "untriaged"
+ },
"ondoubleclick": {
"support_level": "untriaged"
},
@@ -21970,6 +26192,9 @@
"onmousewheel": {},
"onoffline": {},
"ononline": {},
+ "onorientationchange": {
+ "support_level": "untriaged"
+ },
"onpagehide": {},
"onpageshow": {},
"onpause": {},
@@ -22050,6 +26275,9 @@
"orientation": {
"support_level": "untriaged"
},
+ "origin": {
+ "support_level": "untriaged"
+ },
"outerHeight": {},
"outerWidth": {},
"pagePopupController": {
@@ -22116,6 +26344,9 @@
"toString": {},
"toolbar": {},
"top": {},
+ "visualViewport": {
+ "support_level": "untriaged"
+ },
"webkitCancelAnimationFrame": {
"support_level": "experimental"
},
@@ -22190,30 +26421,54 @@
},
"WindowEventHandlers": {
"members": {
+ "onafterprint": {
+ "support_level": "untriaged"
+ },
+ "onbeforeprint": {
+ "support_level": "untriaged"
+ },
"onbeforeunload": {
"support_level": "untriaged"
},
"onhashchange": {
"support_level": "untriaged"
},
+ "onlanguagechange": {
+ "support_level": "untriaged"
+ },
"onmessage": {
"support_level": "untriaged"
},
+ "onmessageerror": {
+ "support_level": "untriaged"
+ },
"onoffline": {
"support_level": "untriaged"
},
"ononline": {
"support_level": "untriaged"
},
+ "onpagehide": {
+ "support_level": "untriaged"
+ },
+ "onpageshow": {
+ "support_level": "untriaged"
+ },
"onpopstate": {
"support_level": "untriaged"
},
+ "onrejectionhandled": {
+ "support_level": "untriaged"
+ },
"onresize": {
"support_level": "untriaged"
},
"onstorage": {
"support_level": "untriaged"
},
+ "onunhandledrejection": {
+ "support_level": "untriaged"
+ },
"onunload": {
"support_level": "untriaged"
}
@@ -22444,6 +26699,9 @@
"addEventListener": {
"support_level": "untriaged"
},
+ "addressSpace": {
+ "support_level": "untriaged"
+ },
"atob": {
"support_level": "untriaged"
},
@@ -22483,6 +26741,9 @@
"indexedDB": {
"support_level": "untriaged"
},
+ "isSecureContext": {
+ "support_level": "untriaged"
+ },
"location": {
"support_level": "untriaged"
},
@@ -22492,12 +26753,21 @@
"onerror": {
"support_level": "untriaged"
},
+ "onrejectionhandled": {
+ "support_level": "untriaged"
+ },
+ "onunhandledrejection": {
+ "support_level": "untriaged"
+ },
"openDatabase": {
"support_level": "untriaged"
},
"openDatabaseSync": {
"support_level": "untriaged"
},
+ "origin": {
+ "support_level": "untriaged"
+ },
"performance": {
"support_level": "untriaged"
},
@@ -22627,9 +26897,15 @@
"now": {
"support_level": "untriaged"
},
+ "onresourcetimingbufferfull": {
+ "support_level": "untriaged"
+ },
"setResourceTimingBufferSize": {
"support_level": "untriaged"
},
+ "timeOrigin": {
+ "support_level": "untriaged"
+ },
"webkitClearResourceTimings": {
"support_level": "untriaged"
},
@@ -22647,6 +26923,21 @@
},
"support_level": "untriaged"
},
+ "WorkletAnimation": {
+ "members": {
+ "WorkletAnimation": {},
+ "cancel": {
+ "support_level": "untriaged"
+ },
+ "play": {
+ "support_level": "untriaged"
+ },
+ "playState": {
+ "support_level": "untriaged"
+ }
+ },
+ "support_level": "untriaged"
+ },
"WorkletGlobalScope": {
"members": {},
"support_level": "untriaged"
diff --git a/tools/dom/idl/dart/dart.idl b/tools/dom/idl/dart/dart.idl
index e7e1549..570ccc5 100644
--- a/tools/dom/idl/dart/dart.idl
+++ b/tools/dom/idl/dart/dart.idl
@@ -20,6 +20,9 @@
[Custom] Element createElement(DOMString localName, DOMString typeExtension);
[Custom] Element createElementNS(DOMString namespaceURI, DOMString qualifiedName);
[Custom] Element createElementNS(DOMString namespaceURI, DOMString qualifiedName, DOMString typeExtension);
+ [DartName=registerElement2] CustomElementConstructor registerElement(DOMString type, optional ElementRegistrationOptions options);
+ [DartSuppress] readonly attribute (HTMLScriptElement or SVGScriptElement)? currentScript;
+ readonly attribute HTMLScriptElement? currentScript;
};
[DartSupplemental]
@@ -82,8 +85,8 @@
};
interface HTMLCanvasElement {
- [DartSuppress] DOMString toDataURL([TreatNullAs=NullString, TreatUndefinedAs=NullString,Default=Undefined] DOMString type);
- [Custom] DOMString toDataURL([TreatNullAs=NullString, TreatUndefinedAs=NullString,Default=Undefined] DOMString type, optional float quality);
+ [DartSuppress] DOMString toDataURL([TreatNullAs=NullString, Default=Undefined] DOMString type);
+ [Custom] DOMString toDataURL([TreatNullAs=NullString, Default=Undefined] DOMString type, optional float quality);
};
[DartSupplemental]
@@ -124,6 +127,7 @@
attribute EventListener ontimeupdate;
attribute EventListener onvolumechange;
attribute EventListener onwaiting;
+ attribute EventListener onwheel;
};
[DartSupplemental]
@@ -131,10 +135,108 @@
[DartSuppress, RaisesException] void addIceCandidate(RTCIceCandidate candidate);
};
+// See implementation in tools/dom/templates for canvas and offscreenCanvas.
+interface WebGLCanvas {
+};
+
+[DartSupplemental]
+interface WebGL2RenderingContext {
+ [DartSuppress] readonly attribute (HTMLCanvasElement or OffscreenCanvas) canvas;
+ readonly attribute WebGLCanvas canvas;
+};
+
+[DartSupplemental]
+interface WebGLRenderingContext {
+ [DartSuppress] readonly attribute (HTMLCanvasElement or OffscreenCanvas) canvas;
+ readonly attribute HTMLCanvasElement canvas;
+};
+
[DartSupplemental]
interface WebGL2RenderingContextBase {
+ [DartSuppress] readonly attribute (HTMLCanvasElement or OffscreenCanvas) canvas;
+ readonly attribute WebGLCanvas canvas;
+ [DartName=bufferData2] void bufferData(GLenum target, [AllowShared] ArrayBufferView srcData, GLenum usage, GLuint srcOffset, optional GLuint length = 0);
+ [DartName=bufferSubData2] void bufferSubData(GLenum target, GLintptr dstByteOffset, [AllowShared] ArrayBufferView srcData, GLuint srcOffset, optional GLuint length = 0);
+ [DartName=compressedTexImage2D2] void compressedTexImage2D(GLenum target, GLint level, GLenum internalformat,
+ GLsizei width, GLsizei height, GLint border,
+ [AllowShared] ArrayBufferView data, GLuint srcOffset,
+ optional GLuint srcLengthOverride = 0);
+ [DartName=compressedTexImage2D3] void compressedTexImage2D(GLenum target, GLint level, GLenum internalformat,
+ GLsizei width, GLsizei height, GLint border,
+ GLsizei imageSize, GLintptr offset);
+ [DartName=compressedTexSubImage2D2] void compressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
+ GLsizei width, GLsizei height, GLenum format,
+ [AllowShared] ArrayBufferView data, GLuint srcOffset,
+ optional GLuint srcLengthOverride = 0);
+ [DartName=compressedTexSubImage2D3] void compressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
+ GLsizei width, GLsizei height, GLenum format,
+ GLsizei imageSize, GLintptr offset);
+ [DartName=compressedTexImage3D2] void compressedTexImage3D(GLenum target, GLint level, GLenum internalformat,
+ GLsizei width, GLsizei height, GLsizei depth, GLint border,
+ GLsizei imageSize, GLintptr offset);
+ [DartName=compressedTexSubImage3D2] void compressedTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset,
+ GLsizei width, GLsizei height, GLsizei depth, GLenum format,
+ GLsizei imageSize, GLintptr offset);
+ [DartName=readPixels2] void readPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, ArrayBufferView dstData, GLintptr offset);
[DartName=readPixels2] void readPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLintptr offset);
[DartName=texImage2D2] void texImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, GLintptr offset);
+ [DartName=texImage2D2] void texImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, ImageData data);
+ [DartName=texImage2D2] void texImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, HTMLImageElement image);
+ [DartName=texImage2D2] void texImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, HTMLCanvasElement canvas);
+ [DartName=texImage2D2] void texImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, HTMLVideoElement video);
+ [DartName=texImage2D2] void texImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, ImageBitmap bitmap);
+ [DartName=texImage2D2] void texImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, [AllowShared] ArrayBufferView srcData, GLuint srcOffset);
+ [DartName=texSubImage2D2] void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLintptr offset);
+ [DartName=texSubImage2D2] void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, ImageData data);
+ [DartName=texSubImage2D2] void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, HTMLImageElement image);
+ [DartName=texSubImage2D2] void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, HTMLCanvasElement canvas);
+ [DartName=texSubImage2D2] void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, HTMLVideoElement video);
+ [DartName=texSubImage2D2] void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, ImageBitmap bitmap);
+ [DartName=texSubImage2D2] void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, [AllowShared] ArrayBufferView srcData, GLuint srcOffset);
+ [DartName=uniform1fv2] void uniform1fv(WebGLUniformLocation? location, [FlexibleArrayBufferView] Float32Array v,
+ GLuint srcOffset, optional GLuint srcLength = 0);
+ [DartName=uniform1fv2] void uniform1fv(WebGLUniformLocation? location, sequence<GLfloat> v,
+ GLuint srcOffset, optional GLuint srcLength = 0);
+ [DartName=uniform2fv2] void uniform2fv(WebGLUniformLocation? location, [FlexibleArrayBufferView] Float32Array v,
+ GLuint srcOffset, optional GLuint srcLength = 0);
+ [DartName=uniform2fv2] void uniform2fv(WebGLUniformLocation? location, sequence<GLfloat> v,
+ GLuint srcOffset, optional GLuint srcLength = 0);
+ [DartName=uniform3fv2] void uniform3fv(WebGLUniformLocation? location, [FlexibleArrayBufferView] Float32Array v,
+ GLuint srcOffset, optional GLuint srcLength = 0);
+ [DartName=uniform3fv2] void uniform3fv(WebGLUniformLocation? location, sequence<GLfloat> v,
+ GLuint srcOffset, optional GLuint srcLength = 0);
+ [DartName=uniform4fv2] void uniform4fv(WebGLUniformLocation? location, [FlexibleArrayBufferView] Float32Array v,
+ GLuint srcOffset, optional GLuint srcLength = 0);
+ [DartName=uniform4fv2] void uniform4fv(WebGLUniformLocation? location, sequence<GLfloat> v,
+ GLuint srcOffset, optional GLuint srcLength = 0);
+ [DartName=uniform1iv2] void uniform1iv(WebGLUniformLocation? location, [FlexibleArrayBufferView] Int32Array v,
+ GLuint srcOffset, optional GLuint srcLength = 0);
+ [DartName=uniform1iv2] void uniform1iv(WebGLUniformLocation? location, sequence<GLint> v,
+ GLuint srcOffset, optional GLuint srcLength = 0);
+ [DartName=uniform2iv2] void uniform2iv(WebGLUniformLocation? location, [FlexibleArrayBufferView] Int32Array v,
+ GLuint srcOffset, optional GLuint srcLength = 0);
+ [DartName=uniform2iv2] void uniform2iv(WebGLUniformLocation? location, sequence<GLint> v,
+ GLuint srcOffset, optional GLuint srcLength = 0);
+ [DartName=uniform3iv2] void uniform3iv(WebGLUniformLocation? location, [FlexibleArrayBufferView] Int32Array v,
+ GLuint srcOffset, optional GLuint srcLength = 0);
+ [DartName=uniform3iv2] void uniform3iv(WebGLUniformLocation? location, sequence<GLint> v,
+ GLuint srcOffset, optional GLuint srcLength = 0);
+ [DartName=uniform4iv2] void uniform4iv(WebGLUniformLocation? location, [FlexibleArrayBufferView] Int32Array v,
+ GLuint srcOffset, optional GLuint srcLength = 0);
+ [DartName=uniform4iv2] void uniform4iv(WebGLUniformLocation? location, sequence<GLint> v,
+ GLuint srcOffset, optional GLuint srcLength = 0);
+ [DartName=uniformMatrix2fv2] void uniformMatrix2fv(WebGLUniformLocation? location, GLboolean transpose, [AllowShared] Float32Array array,
+ GLuint srcOffset, optional GLuint srcLength = 0);
+ [DartName=uniformMatrix2fv2] void uniformMatrix2fv(WebGLUniformLocation? location, GLboolean transpose, sequence<GLfloat> array,
+ GLuint srcOffset, optional GLuint srcLength = 0);
+ [DartName=uniformMatrix3fv2] void uniformMatrix3fv(WebGLUniformLocation? location, GLboolean transpose, [AllowShared] Float32Array array,
+ GLuint srcOffset, optional GLuint srcLength = 0);
+ [DartName=uniformMatrix3fv2] void uniformMatrix3fv(WebGLUniformLocation? location, GLboolean transpose, sequence<GLfloat> array,
+ GLuint srcOffset, optional GLuint srcLength = 0);
+ [DartName=uniformMatrix4fv2] void uniformMatrix4fv(WebGLUniformLocation? location, GLboolean transpose, [AllowShared] Float32Array array,
+ GLuint srcOffset, optional GLuint srcLength = 0);
+ [DartName=uniformMatrix4fv2] void uniformMatrix4fv(WebGLUniformLocation? location, GLboolean transpose, sequence<GLfloat> array,
+ GLuint srcOffset, optional GLuint srcLength = 0);
};
[DartSupplemental]
@@ -158,7 +260,7 @@
[DartSupplemental]
interface HTMLMediaElement {
- DOMString canPlayType([Default=Undefined] optional DOMString type, [Default=Undefined, TreatNullAs=NullString, TreatUndefinedAs=NullString, DartForceOptional] optional DOMString keySystem);
+ DOMString canPlayType([Default=Undefined] optional DOMString type, [Default=Undefined, TreatNullAs=NullString, DartForceOptional] optional DOMString keySystem);
};
[DartSupplemental]
@@ -208,17 +310,16 @@
[DartStrictTypeChecking, Custom] attribute float value;
};
-// Keep it in to generate Dart code, C++ implementation is filterd out in generator.
-[Callback]
-interface MutationCallback {
- [Custom] boolean handleEvent(MutationRecordArray mutations, MutationObserver observer);
+[DartSupplemental]
+interface MediaDevices {
+ [DartSuppress] Promise<MediaStream> getUserMedia(optional MediaStreamConstraints constraints);
};
-[DartSupplemental,
- CustomConstructor,
- // Provide missing constructor signature.
- Constructor(MutationCallback callback)]
-interface MutationObserver {
+[DartSupplemental]
+interface Navigator {
+ [DartSuppress] void getUserMedia(MediaStreamConstraints constraints,
+ NavigatorUserMediaSuccessCallback successCallback,
+ NavigatorUserMediaErrorCallback errorCallback);
};
[DartSupplemental,
@@ -245,34 +346,14 @@
[DartSuppress]
interface AbstractView {};
-interface InjectedScriptHost {
- [Custom] void inspect(any objectId, any hints);
- [DartSuppress, Custom] any inspectedObject(long num);
- [DartSuppress, Custom] any internalConstructorName(any obj);
- [DartSuppress, Custom] boolean isHTMLAllCollection(any obj);
- [DartSuppress, Custom] DOMString type(any obj);
- [DartSuppress, Custom] any functionDetails(any obj);
- [DartSuppress, Custom] any[] getInternalProperties(any obj);
- [DartSuppress, Custom] EventListener[] getEventListeners(EventTarget target);
- [DartSuppress, Custom] any evaluate(DOMString text);
- [DartSuppress, Custom] void debugFunction(any fn);
- [DartSuppress, Custom] void undebugFunction(any fn);
- [DartSuppress, Custom] void monitorFunction(any fn);
- [DartSuppress, Custom] void unmonitorFunction(any fn);
-
- // Only declarative scope (local, with and catch) is accepted. Returns undefined.
- [DartSuppress, Custom] any setFunctionVariableValue(any functionObject, long scopeIndex, DOMString variableName, any newValue);
-};
-
-
-
[DartSuppress]
interface JavaScriptCallFrame {};
-
[DartSupplemental]
interface Location {
+ [DartSuppress] attribute URLString href;
[Custom=Setter] attribute DOMString href;
+ [Custom=Setter] attribute TrustedURL trustedHref;
[Custom] void assign(optional DOMString url);
[Custom] void replace([Default=Undefined] optional DOMString url);
@@ -292,6 +373,14 @@
[DartSuppress]
interface ImageBitmapFactories {};
+[DartSupplemental]
+interface ImageData {
+ [DartSuppress] ImageDataColorSettings getColorSettings();
+ // Below needs 'any' because ImageDataArray is union of (Uint8ClampedArray
+ // or Uint16Array or Float32Array)
+ [DartSuppress] readonly attribute any dataUnion;
+};
+
// See https://chromiumcodereview.appspot.com/15901002 for the V8 implementation of
// TextEncoder/TextDecoder
[DartSuppress]
@@ -370,9 +459,10 @@
[DartSupplemental]
interface DOMImplementation {
- [DartSuppress]
- CSSStyleSheet createCSSStyleSheet([Default=Undefined] optional DOMString title,
+ [DartSuppress] CSSStyleSheet createCSSStyleSheet([Default=Undefined] optional DOMString title,
[Default=Undefined] optional DOMString media);
+ [DartSuppress] Document createHTMLDocument(optional DOMString title);
+ HTMLDocument createHTMLDocument(optional DOMString title);
};
[DartSupplemental]
@@ -403,8 +493,8 @@
};
[DartSupplemental]
-interface AudioBufferSourceNode : AudioSourceNode {
- [DartSuppress] readonly attribute AudioParam gain;
+interface AudioBufferSourceNode {
+ [DartName=start2] void start(optional double when = 0, optional double grainOffset, optional double grainDuration);
};
// Remove operations webkitRequestFullscreen replaced w/ requestFullscreen.
@@ -415,6 +505,11 @@
};
[DartSupplemental]
+interface CSS {
+ [DartName=inch] static CSSUnitValue in(double value);
+};
+
+[DartSupplemental]
interface CSSStyleDeclaration {
// Expose __propertyQuery__ a getter with a special operation in the IDL
// when used with Custom=PropertyQuery will emit __propertyQuery__.
@@ -482,10 +577,14 @@
[MeasureAs=CSSCharsetRuleEncoding] attribute DOMString encoding;
};
+[DartSupplemental]
+interface Event {
+ [DartSuppress] readonly attribute object path;
+};
[DartSupplemental]
interface EventTarget {
- [DartSuppress] void addEventListener(DOMString type, EventListener? listener, optional (EventListenerOptions or boolean) options);
+ [DartSuppress] void addEventListener(DOMString type, EventListener? listener, optional (AddEventListenerOptions or boolean) options);
[DartSuppress] void removeEventListener(DOMString type, EventListener? listener, optional (EventListenerOptions or boolean) options);
[Custom] void addEventListener(DOMString type, EventListener? listener, optional boolean options);
[Custom] void removeEventListener(DOMString type, EventListener? listener, optional boolean options);
diff --git a/tools/dom/new_scripts/code_generator_dart.py b/tools/dom/new_scripts/code_generator_dart.py
index d9d86a9..c5a5709 100644
--- a/tools/dom/new_scripts/code_generator_dart.py
+++ b/tools/dom/new_scripts/code_generator_dart.py
@@ -81,7 +81,7 @@
import idl_types
from idl_types import IdlType
from utilities import write_pickle_file
-from v8_globals import includes, interfaces
+from v8_globals import includes
from dart_utilities import DartUtilities
@@ -122,10 +122,6 @@
interface_name
for interface_name, interface_info in interfaces_info.iteritems()
if 'GarbageCollected' in interface_info['inherited_extended_attributes']))
- IdlType.set_will_be_garbage_collected_types(set(
- interface_name
- for interface_name, interface_info in interfaces_info.iteritems()
- if 'WillBeGarbageCollected' in interface_info['inherited_extended_attributes']))
def generate_code(self, definitions, interface_name, idl_pickle_filename,
only_if_changed):
diff --git a/tools/dom/new_scripts/dart_utilities.py b/tools/dom/new_scripts/dart_utilities.py
index c01a426..7a57a4f 100644
--- a/tools/dom/new_scripts/dart_utilities.py
+++ b/tools/dom/new_scripts/dart_utilities.py
@@ -151,11 +151,9 @@
DartUtilities.cpp_name = v8_utilities.cpp_name
DartUtilities.deprecate_as = _deprecate_as
DartUtilities.extended_attribute_value_contains = v8_utilities.extended_attribute_value_contains
-DartUtilities.gc_type = v8_utilities.gc_type
DartUtilities.has_extended_attribute = v8_utilities.has_extended_attribute
DartUtilities.has_extended_attribute_value = v8_utilities.has_extended_attribute_value
DartUtilities.measure_as = _measure_as
-DartUtilities.runtime_enabled_function_name = v8_utilities.runtime_enabled_function_name
DartUtilities.scoped_name = _scoped_name
DartUtilities.strip_suffix = v8_utilities.strip_suffix
DartUtilities.uncapitalize = v8_utilities.uncapitalize
diff --git a/tools/dom/scripts/dartgenerator.py b/tools/dom/scripts/dartgenerator.py
index e03a0fa..52ea4b5 100755
--- a/tools/dom/scripts/dartgenerator.py
+++ b/tools/dom/scripts/dartgenerator.py
@@ -98,15 +98,6 @@
type_name.endswith('Constructor')):
_logger.warn('removing %s in %s which has unidentified type %s' %
(node_name, interface.id, type_name))
-
- # One last check is the type a typedef in an IDL file (the typedefs
- # are treated as global).
- resolvedType = resolveTypedef(idl_type)
- if (resolvedType != idl_type):
- idl_type.id = resolvedType.id
- idl_type.nullable = resolvedType.nullable
- continue
-
return False
return True
diff --git a/tools/dom/scripts/dartmetadata.py b/tools/dom/scripts/dartmetadata.py
index 6e77214..230c2dd 100644
--- a/tools/dom/scripts/dartmetadata.py
+++ b/tools/dom/scripts/dartmetadata.py
@@ -107,8 +107,8 @@
],
'Element.getBoundingClientRect': [
- "@Creates('_ClientRect')",
- "@Returns('_ClientRect|Null')", # TODO(sra): Verify and remove Null.
+ "@Creates('_DomRect')",
+ "@Returns('_DomRect|Null')", # TODO(sra): Verify and remove Null.
],
# Methods returning Window can return a local window, or a cross-frame
diff --git a/tools/dom/scripts/fremontcutbuilder.py b/tools/dom/scripts/fremontcutbuilder.py
index d368470..0bb4b69 100755
--- a/tools/dom/scripts/fremontcutbuilder.py
+++ b/tools/dom/scripts/fremontcutbuilder.py
@@ -5,12 +5,14 @@
import database
import databasebuilder
+import idlnode
import logging.config
import os.path
import sys
import time
import utilities
import dependency
+from idlnode import IDLType, resolveTypedef
_logger = logging.getLogger('fremontcutbuilder')
@@ -36,6 +38,30 @@
'ENABLE_WEB_AUDIO', # Not on Android
]
+
+# Resolve all typedefs encountered while parsing (see idlnode.py), resolve any typedefs not resolved
+# during parsing. This must be done before the database is created, merged, and augmented to
+# exact type matching. Typedefs can be encountered in any IDL and usage can cross IDL boundaries.
+def ResolveAllTypedefs(all_interfaces):
+ # Resolve all typedefs.
+ for interface, db_Opts in all_interfaces:
+ def IsIdentified(idl_node):
+ node_name = idl_node.id if idl_node.id else 'parent'
+ for idl_type in idl_node.all(idlnode.IDLType):
+ # One last check is the type a typedef in an IDL file (the typedefs
+ # are treated as global).
+ resolvedType = resolveTypedef(idl_type)
+ if (resolvedType != idl_type):
+ idl_type.id = resolvedType.id
+ idl_type.nullable = resolvedType.nullable
+ continue
+ return True
+
+ interface.constants = filter(IsIdentified, interface.constants)
+ interface.attributes = filter(IsIdentified, interface.attributes)
+ interface.operations = filter(IsIdentified, interface.operations)
+ interface.parents = filter(IsIdentified, interface.parents)
+
def build_database(idl_files, database_dir, feature_defines=None,
logging_level=logging.WARNING, examine_idls=False):
"""This code reconstructs the FremontCut IDL database from W3C,
@@ -54,8 +80,8 @@
dependency.set_builder(builder)
# TODO(vsm): Move this to a README.
- # This is the Dart SVN revision.
- webkit_revision = '1060'
+ # This is the Chrome revision.
+ webkit_revision = '63'
# TODO(vsm): Reconcile what is exposed here and inside WebKit code
# generation. We need to recheck this periodically for now.
@@ -88,6 +114,9 @@
start_time = time.time()
+ # All typedefs MUST be resolved here before any database fixups (merging, implements, etc.)
+ ResolveAllTypedefs(builder._imported_interfaces)
+
# Merging:
builder.merge_imported_interfaces()
diff --git a/tools/dom/scripts/generator.py b/tools/dom/scripts/generator.py
index 9438b07..4c7ae18 100644
--- a/tools/dom/scripts/generator.py
+++ b/tools/dom/scripts/generator.py
@@ -16,7 +16,7 @@
_pure_interfaces = monitored.Set('generator._pure_interfaces', [
'AbstractWorker',
- 'CanvasPathMethods',
+ 'CanvasPath',
'ChildNode',
'DocumentAnimation',
'DocumentFontFaceSet',
@@ -153,7 +153,6 @@
'RTCDTMFSender',
'RTCDataChannel',
'RTCDataChannelEvent',
- 'RTCIceCandidateEvent',
'RTCStatsReport',
'RTCStatsResponse',
'ReadableByteStreamReader',
@@ -276,14 +275,12 @@
'ChannelMergerNode': 'ChannelMergerNode,AudioChannelMerger',
'ChannelSplitterNode': 'ChannelSplitterNode,AudioChannelSplitter',
- 'ClientRectList': 'ClientRectList,DOMRectList',
+ 'DOMRectList': 'ClientRectList,DOMRectList',
'CSSStyleDeclaration':
# IE Firefox
'CSSStyleDeclaration,MSStyleCSSProperties,CSS2Properties',
- 'Clipboard': 'Clipboard,DataTransfer',
-
'ApplicationCache':
'ApplicationCache,DOMApplicationCache,OfflineResourceList',
@@ -314,8 +311,6 @@
'RTCIceCandidate': 'RTCIceCandidate,mozRTCIceCandidate',
- 'RTCIceCandidateEvent': 'RTCIceCandidateEvent,RTCPeerConnectionIceEvent',
-
'RTCSessionDescription': 'RTCSessionDescription,mozRTCSessionDescription',
'RTCDataChannel': 'RTCDataChannel,DataChannel',
@@ -407,7 +402,7 @@
def GetCallbackHandlers(interface):
callback_handlers = []
callback_handlers = [operation for operation in interface.operations
- if operation.id == 'handleEvent']
+ if operation.id == 'handleEvent' or operation.id == 'handleMessage']
if callback_handlers == []:
callback_handlers = [operation for operation in interface.operations
if operation.id == 'handleItem']
@@ -1169,8 +1164,14 @@
def __init__(self, idl_type, data):
super(CallbackIDLTypeInfo, self).__init__(idl_type, data)
+ def interface_name(self):
+ return self.dart_type()
+
def implementation_name(self):
- return ""
+ return self.dart_type()
+
+ def list_item_type(self):
+ return self._data.item_type
def array_type(data_type):
@@ -1445,18 +1446,16 @@
'any': TypeData(clazz='Primitive', dart_type='Object', native_type='ScriptValue'),
'Array': TypeData(clazz='Primitive', dart_type='List'),
'custom': TypeData(clazz='Primitive', dart_type='dynamic'),
- 'ClientRect': TypeData(clazz='Interface',
- dart_type='Rectangle', suppress_interface=True),
+ 'DOMRect': TypeData(clazz='Interface',
+ dart_type='Rectangle', suppress_interface=True),
'Date': TypeData(clazz='Primitive', dart_type='DateTime', native_type='double'),
'Promise': TypeData(clazz='Primitive', dart_type='Future', native_type='ScriptPromise'),
'DOMObject': TypeData(clazz='Primitive', dart_type='Object', native_type='ScriptValue'),
'DOMString': TypeData(clazz='Primitive', dart_type='String', native_type='String'),
+ 'ScriptURLString': TypeData(clazz='Primitive', dart_type='String', native_type='String'),
# TODO(vsm): This won't actually work until we convert the Map to
# a native JS Map for JS DOM.
'Dictionary': TypeData(clazz='Primitive', dart_type='Map'),
- # TODO(terry): It's a dictionary but a very complex dictionary is multiple lists.
- # Need to investigate a 1-off solution probably.
- 'MediaKeySystemConfiguration': TypeData(clazz='Primitive', dart_type='Map'),
'DOMTimeStamp': TypeData(clazz='Primitive', dart_type='int', native_type='unsigned long long'),
'object': TypeData(clazz='Primitive', dart_type='Object', native_type='ScriptValue'),
'PositionOptions': TypeData(clazz='Primitive', dart_type='Object'),
@@ -1483,22 +1482,74 @@
native_type='MutationRecordArray', dart_type='List<MutationRecord>'),
'StyleSheet': TypeData(clazz='Interface', conversion_includes=['CSSStyleSheet']),
'SVGElement': TypeData(clazz='Interface', custom_to_dart=True),
-
- 'AudioTrackList': TypeData(clazz='Interface', item_type='AudioTrack',
- suppress_interface=False, dart_type='List<AudioTrack>'),
- 'ClientRectList': TypeData(clazz='Interface',
- item_type='ClientRect', dart_type='List<Rectangle>',
- suppress_interface=True),
'CSSRuleList': TypeData(clazz='Interface',
item_type='CSSRule', suppress_interface=True),
'CSSValueList': TypeData(clazz='Interface',
item_type='CSSValue', suppress_interface=True),
'MimeTypeArray': TypeData(clazz='Interface', item_type='MimeType'),
'PluginArray': TypeData(clazz='Interface', item_type='Plugin'),
+ 'DOMRectList': TypeData(clazz='Interface',
+ item_type='DOMRect', dart_type='List<Rectangle>',
+ custom_to_native = True),
'DOMStringList': TypeData(clazz='Interface', item_type='DOMString',
dart_type='List<String>', custom_to_native=True),
'FileList': TypeData(clazz='Interface', item_type='File',
dart_type='List<File>'),
+ # Handle new FrozenArray Web IDL builtin
+ # TODO(terry): Consider automating this mechanism to map the conversion from FrozenArray<xxx>
+ # to List<xxx>. Some caveats for double, unsigned int and dictionary.
+ 'FrozenArray<BackgroundFetchSettledFetch>': TypeData(clazz='Primitive', item_type='BackgroundFetchSettledFetch',
+ dart_type='List<BackgroundFetchSettledFetch>'),
+ 'FrozenArray<DOMString>': TypeData(clazz='Primitive', item_type='DOMString',
+ dart_type='List<String>', custom_to_native=True),
+ 'FrozenArray<double>': TypeData(clazz='Primitive', item_type='double',
+ dart_type='List<num>'),
+ 'FrozenArray<Entry>': TypeData(clazz='Primitive', item_type='Entry',
+ dart_type='List<Entry>'),
+ 'FrozenArray<FillLightMode>': TypeData(clazz='Primitive', item_type='FillLightMode',
+ dart_type='List'),
+ 'FrozenArray<FontFace>': TypeData(clazz='Primitive', item_type='FontFace',
+ dart_type='List<FontFace>'),
+ 'FrozenArray<GamepadButton>': TypeData(clazz='Primitive', item_type='GamepadButton',
+ dart_type='List<GamepadButton>'),
+ 'FrozenArray<Landmark>': TypeData(clazz='Primitive', item_type='Landmark',
+ dart_type='List'),
+ 'FrozenArray<MediaImage>': TypeData(clazz='Primitive', item_type='MediaImage',
+ dart_type='List'),
+ 'FrozenArray<MediaStream>': TypeData(clazz='Primitive', item_type='MediaStream',
+ dart_type='List<MediaStream>'),
+ 'FrozenArray<MessagePort>': TypeData(clazz='Primitive', item_type='MessagePort',
+ dart_type='List<MessagePort>'),
+ 'FrozenArray<NotificationAction>': TypeData(clazz='Primitive', item_type='NotificationAction',
+ dart_type='List'),
+ 'FrozenArray<PaymentDetailsModifier>': TypeData(clazz='Primitive', item_type='PaymentDetailsModifier',
+ dart_type='List'),
+ 'FrozenArray<PaymentMethodData>':TypeData(clazz='Primitive', item_type='PaymentMethodData',
+ dart_type='List'),
+ 'FrozenArray<PerformanceServerTiming>': TypeData(clazz='Primitive', item_type='PerformanceServerTiming',
+ dart_type='List<PerformanceServerTiming>'),
+ 'FrozenArray<Point2D>': TypeData(clazz='Primitive', item_type='Point2D',
+ dart_type='List'),
+ 'FrozenArray<PresentationConnection>': TypeData(clazz='Primitive', item_type='PresentationConnection',
+ dart_type='List<PresentationConnection>'),
+ 'FrozenArray<TaskAttributionTiming>': TypeData(clazz='Primitive', item_type='TaskAttributionTiming',
+ dart_type='List<TaskAttributionTiming>'),
+ 'FrozenArray<unsigned long>': TypeData(clazz='Primitive', item_type='unsigned long',
+ dart_type='List<int>'),
+ 'FrozenArray<USBEndpoint>': TypeData(clazz='Primitive', item_type='USBEndpoint',
+ dart_type='List<USBEndpoint>'),
+ 'FrozenArray<USBInterface>': TypeData(clazz='Primitive', item_type='USBInterface',
+ dart_type='List<USBInterface>'),
+ 'FrozenArray<USBConfiguration>': TypeData(clazz='Primitive', item_type='USBConfiguration',
+ dart_type='List<USBConfiguration>'),
+ 'FrozenArray<USBAlternateInterface>':TypeData(clazz='Primitive', item_type='USBAlternateInterface',
+ dart_type='List<USBAlternateInterface>'),
+ 'FrozenArray<USBIsochronousInTransferPacket>':TypeData(clazz='Primitive', item_type='USBIsochronousInTransferPacket',
+ dart_type='List<USBIsochronousInTransferPacket>'),
+ 'FrozenArray<USBIsochronousOutTransferPacket>':TypeData(clazz='Primitive', item_type='USBIsochronousOutTransferPacket',
+ dart_type='List<USBIsochronousOutTransferPacket>'),
+ 'FrozenArray<VRStageBoundsPoint>': TypeData(clazz='Primitive', item_type='VRStageBoundsPoint',
+ dart_type='List<VRStageBoundsPoint>'),
'Future': TypeData(clazz='Interface', dart_type='Future'),
'GamepadList': TypeData(clazz='Interface', item_type='Gamepad',
item_type_nullable=True, suppress_interface=True),
@@ -1602,8 +1653,12 @@
def _TypeInfo(self, type_name):
match = re.match(r'(?:sequence<([\w ]+)>|(\w+)\[\])$', type_name)
+
+ if match and self._database.HasDictionary(match.group(1)):
+ interface = self._database.GetDictionary(match.group(1))
+
# sequence<any> should not be List<Object>
- if match and match.group(1) != 'any':
+ if match and match.group(1) != 'any' and not(self._database.HasDictionary(match.group(1))):
type_data = TypeData('Sequence')
if self.HasTypeDef(match.group(1) or match.group(2)):
# It's a typedef (union)
@@ -1620,17 +1675,21 @@
return PrimitiveIDLTypeInfo(
type_name,
TypeData(clazz='Primitive', dart_type='String', native_type='String'))
-
if self._database.HasInterface(type_name):
interface = self._database.GetInterface(type_name)
elif self._database.HasDictionary(type_name):
- interface = self._database.GetDictionary(type_name)
+ type_data = _idl_type_registry.get('Dictionary')
+ class_name = '%sIDLTypeInfo' % type_data.clazz
+ return globals()[class_name](type_name, type_data)
elif type_name.startswith('sequence<('):
if type_name.find(' or ') != -1:
# Union type of sequence is an any type (no type).
type_data = TypeData('Sequence')
item_info = self.TypeInfo('any')
return SequenceIDLTypeInfo(type_name, type_data, item_info)
+ elif match and self._database.HasDictionary(match.group(1)):
+ return SequenceIDLTypeInfo(type_name,
+ TypeData('Sequence'), self.TypeInfo(match.group(1)))
elif type_name.startswith('sequence<sequence<'):
# TODO(terry): Cleanup up list of list, etc.
type_data = TypeData('Sequence')
@@ -1639,6 +1698,8 @@
elif self.HasTypeDef(type_name):
# It's a typedef (implied union)
return self.TypeInfo('any')
+ else:
+ print "ERROR: Unexpected interface, or type not found. %s" % type_name
if 'Callback' in interface.ext_attrs:
return CallbackIDLTypeInfo(type_name, TypeData('Callback',
@@ -1649,7 +1710,10 @@
self._renamer.RenameInterface(interface),
self)
- type_data = _idl_type_registry.get(type_name)
+ if (self._database.HasDictionary(type_name)):
+ type_data = _idl_type_registry.get('Dictionary')
+ else:
+ type_data = _idl_type_registry.get(type_name)
if type_data.clazz == 'Interface':
if self._database.HasInterface(type_name):
diff --git a/tools/dom/scripts/htmldartgenerator.py b/tools/dom/scripts/htmldartgenerator.py
index 5bad37f..52b1dfe 100644
--- a/tools/dom/scripts/htmldartgenerator.py
+++ b/tools/dom/scripts/htmldartgenerator.py
@@ -545,7 +545,6 @@
# Hack to ignore the constructor used by JavaScript.
if ((self._interface.id == 'HTMLImageElement' or
self._interface.id == 'Blob' or
- self._interface.id == 'TouchEvent' or
self._interface.id == 'DOMException')
and not constructor_info.pure_dart_constructor):
return
@@ -604,8 +603,14 @@
inits.Emit(' if ($E != null) e.$E = $E;\n', E=param_info.name)
else:
custom_factory_ctr = self._interface.id in _custom_factories
- constructor_full_name = constructor_info._ConstructorFullName(
+ if self._interface_type_info.has_generated_interface():
+ constructor_full_name = constructor_info._ConstructorFullName(
self._DartType)
+ else:
+ # The interface is suppress_interface so use the implementation_name not
+ # the dart_type.
+ constructor_full_name = self._interface_type_info.implementation_name()
+ factory_name = constructor_full_name
def GenerateCall(
stmts_emitter, call_emitter,
diff --git a/tools/dom/scripts/htmleventgenerator.py b/tools/dom/scripts/htmleventgenerator.py
index 2bf39b6..827a79d 100644
--- a/tools/dom/scripts/htmleventgenerator.py
+++ b/tools/dom/scripts/htmleventgenerator.py
@@ -115,6 +115,14 @@
'*.webkitfullscreenerror': ('fullscreenError', 'Event'),
'*.wheel': ('wheel', 'WheelEvent'),
'AbstractWorker.error': ('error', 'Event'),
+ 'AccessibleNode.accessibleclick': ('accessibleClick', 'Event'),
+ 'AccessibleNode.accessiblecontextmenu': ('accessibleContextMenu', 'Event'),
+ 'AccessibleNode.accessibledecrement': ('accessibleDecrement', 'Event'),
+ 'AccessibleNode.accessiblefocus': ('accessibleFocus', 'Event'),
+ 'AccessibleNode.accessibleincrement': ('accessibleIncrement', 'Event'),
+ 'AccessibleNode.accessiblescrollintoview': ('accessibleScrollIntoView', 'Event'),
+ 'Animation.finish': ('finish', 'Event'),
+ 'Animation.cancel': ('cancel', 'Event'),
'AudioContext.complete': ('complete', 'Event'),
'ApplicationCache.cached': ('cached', 'Event'),
'ApplicationCache.checking': ('checking', 'Event'),
@@ -131,6 +139,7 @@
'Document.pointerlockerror': ('pointerLockError', 'Event'),
'EventSource.open': ('open', 'Event'),
'FileReader.abort': ('abort', 'ProgressEvent'),
+ 'FileReader.error': ('error', 'ProgressEvent'),
'FileReader.load': ('load', 'ProgressEvent'),
'FileReader.loadend': ('loadEnd', 'ProgressEvent'),
'FileReader.loadstart': ('loadStart', 'ProgressEvent'),
@@ -140,10 +149,9 @@
'FileWriter.write': ('write', 'ProgressEvent'),
'FileWriter.writeend': ('writeEnd', 'ProgressEvent'),
'FileWriter.writestart': ('writeStart', 'ProgressEvent'),
- 'FontLoader.load': ('load', 'CssFontFaceLoadEvent'),
- 'FontLoader.loading': ('loading', 'CssFontFaceLoadEvent'),
- 'FontLoader.loadingdone': ('loadingDone', 'CssFontFaceLoadEvent'),
- 'FontLoader.loadstart': ('loadStart', 'CssFontFaceLoadEvent'),
+ 'FontFaceSet.loading': ('loading', 'FontFaceSetLoadEvent'),
+ 'FontFaceSet.loadingdone': ('loadingDone', 'FontFaceSetLoadEvent'),
+ 'FontFaceSet.loadingerror': ('loadingError', 'FontFaceSetLoadEvent'),
'HTMLBodyElement.storage': ('storage', 'StorageEvent'),
'HTMLCanvasElement.webglcontextlost': ('webGlContextLost', 'gl.ContextEvent'),
'HTMLCanvasElement.webglcontextrestored': ('webGlContextRestored', 'gl.ContextEvent'),
@@ -185,12 +193,16 @@
'RTCDataChannel.open': ('open', 'Event'),
'RTCPeerConnection.addstream': ('addStream', 'MediaStreamEvent'),
'RTCPeerConnection.datachannel': ('dataChannel', 'RtcDataChannelEvent'),
- 'RTCPeerConnection.icecandidate': ('iceCandidate', 'RtcIceCandidateEvent'),
+ 'RTCPeerConnection.icecandidate': ('iceCandidate', 'RtcPeerConnectionIceEvent'),
'RTCPeerConnection.iceconnectionstatechange': ('iceConnectionStateChange', 'Event'),
'RTCPeerConnection.negotiationneeded': ('negotiationNeeded', 'Event'),
'RTCPeerConnection.removestream': ('removeStream', 'MediaStreamEvent'),
'RTCPeerConnection.signalingstatechange': ('signalingStateChange', 'Event'),
'ScriptProcessorNode.audioprocess': ('audioProcess', 'AudioProcessingEvent'),
+ 'ServiceWorkerGlobalScope.activate': ('activate', 'Event'),
+ 'ServiceWorkerGlobalScope.fetch': ('fetch', 'Event'),
+ 'ServiceWorkerGlobalScope.install': ('install', 'Event'),
+ 'ServiceWorkerGlobalScope.foreignfetch': ('foreignfetch', 'ForeignFetchEvent'),
'SharedWorker.error': ('error', 'Event'),
'SharedWorkerGlobalScope.connect': ('connect', 'Event'),
'SpeechRecognition.audioend': ('audioEnd', 'Event'),
@@ -223,6 +235,7 @@
'Window.pageshow': ('pageShow', 'Event'),
'Window.progress': ('progress', 'Event'),
'Window.webkittransitionend': ('webkitTransitionEnd', 'TransitionEvent'),
+ 'Window.wheel': ('wheel', 'WheelEvent'),
'Worker.error': ('error', 'Event'),
'XMLHttpRequestEventTarget.abort': ('abort', 'ProgressEvent'),
'XMLHttpRequestEventTarget.error': ('error', 'ProgressEvent'),
@@ -231,7 +244,7 @@
'XMLHttpRequestEventTarget.loadstart': ('loadStart', 'ProgressEvent'),
'XMLHttpRequestEventTarget.progress': ('progress', 'ProgressEvent'),
'XMLHttpRequestEventTarget.timeout': ('timeout', 'ProgressEvent'),
- 'XMLHttpRequest.readystatechange': ('readyStateChange', 'ProgressEvent'),
+ 'XMLHttpRequest.readystatechange': ('readyStateChange', 'Event'),
})
# These classes require an explicit declaration for the "on" method even though
@@ -251,6 +264,7 @@
def EmitStreamProviders(self, interface, custom_events,
members_emitter, library_name):
+
events = self._GetEvents(interface, custom_events)
if not events:
return
@@ -279,6 +293,7 @@
def EmitStreamGetters(self, interface, custom_events,
members_emitter, library_name, stream_getter_signatures_emitter=None,
element_stream_getters_emitter=None):
+
events = self._GetEvents(interface, custom_events)
if not events:
return
diff --git a/tools/dom/scripts/htmlrenamer.py b/tools/dom/scripts/htmlrenamer.py
index 12e2de5..9033552 100644
--- a/tools/dom/scripts/htmlrenamer.py
+++ b/tools/dom/scripts/htmlrenamer.py
@@ -24,12 +24,12 @@
html_interface_renames = monitored.Dict('htmlrenamer.html_interface_renames',
dict({
'Attr': '_Attr',
+ 'BudgetService': '_BudgetService',
'CDATASection': 'CDataSection',
- 'Clipboard': 'DataTransfer',
+ 'Clipboard': '_Clipboard', # TODO(terry): Need to remove when ACX Clipboard is renamed to AcxClipboard.
'Database': 'SqlDatabase', # Avoid conflict with Index DB's Database.
'DatabaseSync': 'SqlDatabaseSync',
'DOMFileSystem': 'FileSystem',
- 'DOMRect': '_DomRect',
'Entity': '_Entity', # Not sure if we want to expose this yet, may conflict with other libs.
'EntryCallback': '_EntryCallback',
'EntriesCallback': '_EntriesCallback',
@@ -47,9 +47,11 @@
'NavigatorUserMediaErrorCallback': '_NavigatorUserMediaErrorCallback',
'NavigatorUserMediaSuccessCallback': '_NavigatorUserMediaSuccessCallback',
'NotificationPermissionCallback': '_NotificationPermissionCallback',
+ 'Position': 'Geoposition',
'PositionCallback': '_PositionCallback',
'PositionErrorCallback': '_PositionErrorCallback',
'Request': '_Request',
+ 'Report': '_Report',
'RTCDTMFSender': 'RtcDtmfSender',
'RTCDTMFToneChangeEvent': 'RtcDtmfToneChangeEvent',
'RTCErrorCallback': '_RtcErrorCallback',
@@ -68,6 +70,16 @@
'XMLHttpRequestEventTarget': 'HttpRequestEventTarget',
}, **typed_array_renames))
+
+# Some callback interfaces are not just a simple callback functions. If the callback
+# interface is in this list then the interface is exposed as a class.
+_gen_callback_interfaces = [
+ 'NodeFilter'
+]
+
+def generateCallbackInterface(id):
+ return id in _gen_callback_interfaces
+
# Interfaces that are suppressed, but need to still exist for Dartium and to
# properly wrap DOM objects if/when encountered.
_removed_html_interfaces = [
@@ -80,7 +92,7 @@
'BluetoothRemoteGATTService',
'BluetoothUUID',
'Cache', # TODO: Symbol conflicts with Angular: dartbug.com/20937
- 'CanvasPathMethods',
+ 'CanvasPath',
'CDataSection',
'CSSPrimitiveValue',
'CSSUnknownRule',
@@ -104,6 +116,11 @@
'HTMLFrameSetElement',
'HTMLMarqueeElement',
'IDBAny',
+ 'Mojo',
+ 'MojoHandle',
+ 'MojoInterfaceInterceptor',
+ 'MojoInterfaceRequestEvent',
+ 'MojoWatcher',
'NFC',
'Notation',
'PagePopupController',
@@ -162,7 +179,6 @@
'WorkerLocation', # Workers
'WorkerNavigator', # Workers
'Worklet', # Rendering Workers
- 'WorkletGlobalScope', # Rendering Workers
'XMLHttpRequestProgressEvent',
# Obsolete event for NaCl.
'ResourceProgressEvent',
@@ -323,6 +339,7 @@
'Element.children',
'Element.childElementCount',
'Element.firstElementChild',
+ 'Element.getClientRects',
'Element.getElementsByTagName',
'Element.insertAdjacentHTML',
'Element.scrollIntoView',
@@ -404,6 +421,7 @@
'ParentNode.firstElementChild',
'ParentNode.lastElementChild',
'ParentNode.querySelectorAll',
+ 'Range.getClientRects',
'RTCPeerConnection.createAnswer',
'RTCPeerConnection.createOffer',
'RTCPeerConnection.getStats',
@@ -440,7 +458,6 @@
'Touch.screenY',
'Touch.radiusX',
'Touch.radiusY',
- 'TouchEvent.initTouchEvent',
'UIEvent.initUIEvent',
'UIEvent.layerX',
'UIEvent.layerY',
@@ -537,7 +554,6 @@
# number of arguments vary), so we do not rename them as a _raw method.
keep_overloaded_members = monitored.Set(
'htmldartgenerator.keep_overloaded_members', [
- 'AudioBufferSourceNode.start',
'CanvasRenderingContext2D.putImageData',
'CanvasRenderingContext2D.webkitPutImageDataHD',
'DataTransferItemList.add',
@@ -707,7 +723,6 @@
'Element.offsetLeft',
'Element.offsetWidth',
'Element.offsetHeight',
- 'Element.on:wheel',
'Element.outerText',
'Element.prepend',
'Element.removeAttributeNode',
@@ -904,14 +919,24 @@
'AudioBufferSourceNode': 'web_audio',
'AudioContext': 'web_audio',
'AudioDestinationNode': 'web_audio',
+ 'AudioElement': 'web_audio',
'AudioListener': 'web_audio',
'AudioNode': 'web_audio',
'AudioParam': 'web_audio',
+ 'AudioParamMap': 'web_audio',
'AudioProcessingEvent': 'web_audio',
+ 'AudioScheduledSourceNode': 'web_audio',
'AudioSourceNode': 'web_audio',
+ 'AudioTrack': 'web_audio',
+ 'AudioTrackList': 'web_audio',
+ 'AudioWorkletGlobalScope': 'web_audio',
+ 'AudioWorkletNode': 'web_audio',
+ 'AudioWorkletProcessor': 'web_audio',
+ 'BaseAudioContext': 'web_audio',
'BiquadFilterNode': 'web_audio',
'ChannelMergerNode': 'web_audio',
'ChannelSplitterNode': 'web_audio',
+ 'ConstantSourceNode': 'web_audio',
'ConvolverNode': 'web_audio',
'DelayNode': 'web_audio',
'DynamicsCompressorNode': 'web_audio',
diff --git a/tools/dom/scripts/idlnode.py b/tools/dom/scripts/idlnode.py
index 85d711c..a9b7fd7 100644
--- a/tools/dom/scripts/idlnode.py
+++ b/tools/dom/scripts/idlnode.py
@@ -236,6 +236,7 @@
'ParentInterface': 'parent',
'Id': 'name',
'Interface': 'interfaces',
+ 'Callback_Function': 'callback_functions',
'Callback': 'is_callback',
'Partial': 'is_partial',
'Operation': 'operations',
@@ -397,6 +398,23 @@
self.interfaces = self._convert_all(ast, 'Interface', IDLInterface)
self.dictionaries = self._convert_all(ast, 'Dictionary', IDLDictionary)
+ if len(ast.callback_functions) > 0:
+ callback_functions = self._convert_all(ast, 'Callback_Function', IDLCallbackFunction)
+ for callback_function in callback_functions:
+ for annotation in callback_function.annotations:
+ callback = callback_function.annotations[annotation]
+ cb_interface = IDLInterface(None, callback.name)
+ cb_interface.ext_attrs['Callback'] = None
+ op = IDLOperation(None, cb_interface.id, "handleEvent")
+ op.type = IDLType(callback.idl_type)
+ op.type = resolveTypedef(op.type)
+
+ if len(callback.arguments) > 0:
+ op.arguments = self._convert_all(callback, 'Argument', IDLArgument)
+
+ cb_interface.operations = [op]
+ self.interfaces.append(cb_interface)
+
is_blink = not(isinstance(ast, list)) and ast.__module__ == 'idl_definitions'
if is_blink:
@@ -640,6 +658,7 @@
# TODO(terry): Handled USVString as a DOMString.
type_name = type_name.replace('USVString', 'DOMString', 1)
+ type_name = type_name.replace('HTMLString', 'DOMString', 1)
# TODO(terry); WindowTimers setInterval/setTimeout overloads with a
# Function type - map to any until the IDL uses union.
@@ -693,6 +712,12 @@
# TODO(terry): Need to handle emitting of enums for dart:html
+class IDLCallbackFunction(IDLNode):
+ """IDLNode for 'callback [type] [id]' declarations."""
+ def __init__(self, ast):
+ IDLNode.__init__(self, ast)
+ self._convert_annotations(ast)
+ self.type = self._convert_first(ast, 'Type', IDLType)
class IDLTypeDef(IDLNode):
"""IDLNode for 'typedef [type] [id]' declarations."""
@@ -729,6 +754,14 @@
value = IDLDictionaryMember(member, js_name)
self[name] = value
+def generate_callback(interface_name, result_type, arguments):
+ syn_op = IDLOperation(None, interface_name, 'callback')
+
+ syn_op.type = resolveTypedef(result_type)
+ syn_op.arguments = arguments
+
+ return syn_op
+
def generate_operation(interface_name, result_type_name, oper_name, arguments):
""" Synthesize an IDLOperation with no AST used for support of setlike."""
""" Arguments is a list of argument where each argument is:
@@ -740,8 +773,8 @@
syn_op.type = resolveTypedef(syn_op.type)
for argument in arguments:
- arg = IDLArgument(None, argument[1]);
- arg.type = argument[0];
+ arg = IDLArgument(None, argument[1])
+ arg.type = argument[0]
arg.optional = argument[2] if len(argument) > 2 else False
syn_op.arguments.append(arg)
@@ -800,8 +833,12 @@
"""IDLInterface node contains operations, attributes, constants,
as well as parent references."""
- def __init__(self, ast):
+ def __init__(self, ast, id=None):
IDLNode.__init__(self, ast)
+
+ if id:
+ self.id = id
+
self._convert_ext_attrs(ast)
self._convert_annotations(ast)
@@ -821,7 +858,7 @@
self.operations = self._convert_all(ast, 'Operation',
lambda ast: IDLOperation(ast, self.doc_js_name))
- if ast.setlike:
+ if not(id) and ast.setlike:
setlike_ops = generate_setLike_operations_properties(self, ast.setlike)
for op in setlike_ops:
self.operations.append(op)
@@ -903,7 +940,7 @@
self.specials = []
self.is_static = False
self.arguments = []
- return;
+ return
self.type = self._convert_first(ast, 'ReturnType', IDLType)
self.type = resolveTypedef(self.type)
diff --git a/tools/dom/scripts/idlsync.py b/tools/dom/scripts/idlsync.py
index 632e236..e5ac565 100755
--- a/tools/dom/scripts/idlsync.py
+++ b/tools/dom/scripts/idlsync.py
@@ -1,6 +1,6 @@
# Upgrading Dart's SDK for HTML (blink IDLs).
#
-# Typically this is done using the Dart integration branch (as it has to be
+# Typically this is done using the Dart WebCore branch (as it has to be
# staged to get most things working).
#
# Enlist in third_party/WebCore:
@@ -9,7 +9,7 @@
# > git clone https://github.com/dart-lang/webcore.git WebCore
#
# To update all *.idl, *.py, LICENSE files, and IDLExtendedAttributes.txt:
-# > cd src/dart
+# > cd sdk
# > python tools/dom/scripts/idlsync.py
#
# Display blink files to delete, copy, update, and collisions to review:
@@ -30,6 +30,7 @@
#
# Finally, commit the files in dart/third_party/WebCore.
+import errno
import optparse
import os.path
import re
@@ -40,24 +41,22 @@
from shutil import copyfile
-# Dartium DEPS file from the DEPS file checked into the dart-lang/sdk integration
-# branch.
-DEPS_GIT = ('https://raw.githubusercontent.com/dart-lang/sdk/integration/'
- 'tools/deps/dartium.deps/DEPS')
+# Dart DEPS file checked into the dart-lang/sdk master.
+DEPS_GIT = "https://raw.githubusercontent.com/dart-lang/sdk/master/DEPS"
CHROME_TRUNK = "https://chromium.googlesource.com"
-WEBKIT_URL_PATTERN = r'"dartium_chromium_commit": "(\S+)",'
-DEPS_PATTERNS = {
- 'webkit': (CHROME_TRUNK, WEBKIT_URL_PATTERN),
-}
+WEBKIT_SHA_PATTERN = r'"WebCore_rev": "(\S+)",'
-# Dartium/Chromium remote (GIT repository)
-GIT_REMOTES_CHROMIUM = 'https://chromium.googlesource.com/dart/dartium/src.git'
+# Chromium remote (GIT repository)
+GIT_REMOTES_CHROMIUM = 'https://chromium.googlesource.com/chromium/src.git'
# location of this file
-SOURCE_FILE_DIR = 'src/dart/tools/dom/scripts'
+SOURCE_FILE_DIR = 'tools/dom/scripts'
WEBKIT_SOURCE = 'src/third_party/WebKit/Source'
-WEBCORE_SOURCE = 'src/dart/third_party/WebCore'
+WEBCORE_SOURCE = 'third_party/WebCore'
+
+WEBKIT_BLINK_SOURCE = 'src/third_party/blink'
+WEBCORE_BLINK_SOURCE = 'third_party/WebCore/blink'
# Never automatically git add bindings/IDLExtendedAttributes.txt this file has
# been modified by Dart but is usually changed by WebKit blink too.
@@ -69,6 +68,10 @@
# is driven from the blink IDL parser AST
DART_SDK_GENERATOR_SCRIPTS = 'bindings/dart/scripts'
+# The __init__.py files allow Python to treat directories as packages. Used to
+# allow Dart's Python scripts to interact with Chrome's IDL parsing scripts.
+PYTHON_INITS = '__init__.py'
+
# sub directories containing IDLs (core and modules) from the base directory
# src/third_party/WebKit/Source
SUBDIRS = [
@@ -89,16 +92,24 @@
warning_messages = []
-# Is --check passed in.
-def isChecked():
+# Is --dry_run passed in.
+def isDryRun():
global options
- return options['check'] is not None
+ return options['dry_run'] is not None
# Is --verbose passed in.
def isVerbose():
global options
return options['verbose'] is not None
+# If --WebKit= is specified then compute the directory of the Chromium
+# source.
+def chromiumDirectory():
+ global options
+ if options['chromium_dir'] is not None:
+ return os.path.expanduser(options['chromium_dir'])
+ return os.cwd()
+
def RunCommand(cmd, valid_exits=[0]):
"""Executes a shell command and return its stdout."""
if isVerbose():
@@ -136,8 +147,13 @@
# source_dir is the src/third_party/WebKit/Source location (blink)
# destination_dir is the src/dart/third_party/WebCore location
# returns idls_copied, py_copied, other_copied
-def copy_files(source_dir, destination_dir):
+def copy_files(source_dir, src_prefix, destination_dir):
original_cwd = os.getcwd()
+ try:
+ os.makedirs(destination_dir)
+ except OSError as e:
+ if e.errno != errno.EEXIST:
+ raise
os.chdir(destination_dir)
idls = 0 # *.idl files copied
@@ -161,8 +177,14 @@
else:
others += 1
src_file = os.path.join(root, f)
- dst_root = root.replace(WEBKIT_SOURCE, WEBCORE_SOURCE)
- dst_file = os.path.join(dst_root, f)
+
+ # Compute the destination path using sdk/third_party/WebCore
+ subdir_root = src_file[src_file.rfind(src_prefix) + len(src_prefix):]
+ if subdir_root.startswith(os.path.sep):
+ subdir_root = subdir_root[1:]
+ dst_file = os.path.join(destination_dir, subdir_root)
+
+ # Need to make src/third_party/WebKit/Source/* to sdk/third_party/WebCore/*
destination = os.path.dirname(dst_file)
if not os.path.exists(destination):
@@ -170,16 +192,17 @@
has_Dart_fix_me = anyDartFixMe(dst_file)
- if not isChecked():
+ if not isDryRun():
copyfile(src_file, dst_file)
if isVerbose():
- print('...copying %s' % os.path.split(dst_file)[1])
+ #print('...copying %s' % os.path.split(dst_file)[1])
+ print('...copying %s' % dst_file)
if f == IDL_EXTENDED_ATTRIBUTES_FILE:
warning_messages.append(dst_file)
else:
if has_Dart_fix_me:
warning_messages.append(dst_file)
- if not (isChecked() or has_Dart_fix_me):
+ if not (isDryRun() or has_Dart_fix_me):
# git add the file
RunCommand(['git', 'add', dst_file])
@@ -196,21 +219,24 @@
files_to_delete = []
original_cwd = os.getcwd()
- os.chdir(webcore_dir)
- for (root, _, files) in os.walk(os.path.join(webcore_dir, subdir), topdown=False):
- dir_portion = subpath(root, webcore_dir)
- for f in files:
- # Never automatically deleted any Dart generator scripts (these are the
- # original sources in WebCore).
- if dir_portion != DART_SDK_GENERATOR_SCRIPTS:
- check_file = os.path.join(dir_portion, f)
- check_file_full_path = os.path.join(webkit_dir, check_file)
- if not os.path.exists(check_file_full_path):
- if not isChecked():
- # Remove the file using git
- RunCommand(['git', 'rm', check_file])
- files_to_delete.append(check_file)
+ if os.path.exists(webcore_dir):
+ os.chdir(webcore_dir)
+
+ for (root, _, files) in os.walk(os.path.join(webcore_dir, subdir), topdown=False):
+ dir_portion = subpath(root, webcore_dir)
+ for f in files:
+ # Never automatically deleted any Dart generator scripts (these are the
+ # original sources in WebCore).
+ if dir_portion != DART_SDK_GENERATOR_SCRIPTS:
+ check_file = os.path.join(dir_portion, f)
+ check_file_full_path = os.path.join(webkit_dir, check_file)
+ if not os.path.exists(check_file_full_path) and \
+ not(check_file_full_path.endswith(PYTHON_INITS)):
+ if not isDryRun():
+ # Remove the file using git
+ RunCommand(['git', 'rm', check_file])
+ files_to_delete.append(check_file)
os.chdir(original_cwd)
@@ -218,15 +244,18 @@
def ParseOptions():
parser = optparse.OptionParser()
- parser.add_option('--verbose', '-v', dest='verbose', action='store_false',
+ parser.add_option('--chromium', '-c', dest='chromium_dir', action='store', type='string',
+ help='WebKit Chrome directory (e.g., --chromium=~/chrome63', default=None)
+ parser.add_option('--verbose', '-v', dest='verbose', action='store_true',
help='Dump all information', default=None)
- parser.add_option('--check', '-c', dest='check', action='store_false',
+ parser.add_option('--dry_run', '-d', dest='dry_run', action='store_true',
help='Display results without adding, updating or deleting any files', default=None)
args, _ = parser.parse_args()
argOptions = {}
+ argOptions['chromium_dir'] = args.chromium_dir
argOptions['verbose'] = args.verbose
- argOptions['check'] = args.check
+ argOptions['dry_run'] = args.dry_run
return argOptions
# Fetch the DEPS file in src/dart/tools/deps/dartium.deps/DEPS from the GIT repro.
@@ -244,34 +273,68 @@
print 'ERROR: Unable to find dart/dartium/src repository %s' % GIT_REMOTES_CHROMIUM
return False
-def getCurrentDartiumSHA():
+def getChromiumSHA():
cwd = os.getcwd()
+ chromiumDir = chromiumDirectory()
+
+ webkit_dir = os.path.join(chromiumDir, WEBKIT_SOURCE)
+ os.chdir(webkit_dir)
+
+ if ValidateGitRemotes():
+ chromium_sha = RunCommand(['git', 'log', '--format=format:%H', '-1'])
+ else:
+ chromium_sha = -1
+
+ os.chdir(cwd)
+ return chromium_sha
+
+def getCurrentDartSHA():
+ cwd = os.getcwd()
+
if cwd.endswith('dart'):
- # In src/dart
+ # In src/dart
src_dir, _ = os.path.split(cwd)
- elif cwd.endswith('src'):
+ elif cwd.endswith('sdk'):
src_dir = cwd
else:
- src_dir = os.path.join(cwd, 'src')
+ src_dir = os.path.join(cwd, 'sdk')
os.chdir(src_dir)
if ValidateGitRemotes():
- dartium_sha = RunCommand(['git', 'log', '--format=format:%H', '-1'])
+ dart_sha = RunCommand(['git', 'log', '--format=format:%H', '-1'])
else:
- dartium_sha = -1
+ dart_sha = -1
os.chdir(cwd)
- return dartium_sha
+ return dart_sha
# Returns the SHA of the Dartium/Chromiun in the DEPS file.
-def GetDEPSDartiumGitRevision(deps, component):
+def GetDEPSWebCoreGitRevision(deps, component):
"""Returns a tuple with the (dartium chromium repo, latest revision)."""
- url_base, url_pattern = DEPS_PATTERNS[component]
- url = url_base + re.search(url_pattern, deps).group(1)
+ foundIt = re.search(WEBKIT_SHA_PATTERN, deps)
+ #url_base, url_pattern = DEPS_PATTERNS[component]
+ #url = url_base + re.search(url_pattern, deps).group(1)
# Get the SHA for the Chromium/WebKit changes for Dartium.
- revision = url[len(url_base):]
+ #revision = url[len(url_base):]
+ revision = foundIt.group(1)[1:]
+ print '%s' % revision
return revision
+def copy_subdir(src, src_prefix, dest, subdir):
+ idls_deleted = remove_obsolete_webcore_files(dest, src, subdir)
+ print "%s files removed in WebCore %s" % (idls_deleted.__len__(), subdir)
+ if isVerbose():
+ for delete_file in idls_deleted:
+ print " %s" % delete_file
+
+ idls_copied, py_copied, other_copied = copy_files(os.path.join(src, subdir), src_prefix, dest)
+ if idls_copied > 0:
+ print "Copied %s IDLs to %s" % (idls_copied, subdir)
+ if py_copied > 0:
+ print "Copied %s PYs to %s" % (py_copied, subdir)
+ if other_copied > 0:
+ print "Copied %s other to %s\n" % (other_copied, subdir)
+
def main():
global options
options = ParseOptions()
@@ -282,29 +345,40 @@
base_directory = current_dir[:current_dir.rfind(SOURCE_FILE_DIR)]
- # Validate that the DEPS SHA matches the SHA of the chromium/dartium branch.
+ # Validate DEPS WebCore_rev SHA DOES NOT match the SHA of chromium master.
deps = GetDepsFromGit()
- revision = GetDEPSDartiumGitRevision(deps, 'webkit')
- dartium_sha = getCurrentDartiumSHA()
- if not(revision == dartium_sha):
- print "ERROR: Chromium/Dartium SHA in DEPS doesn't match the GIT branch."
+ webcore_revision = GetDEPSWebCoreGitRevision(deps, 'webkit')
+ chromium_sha = getChromiumSHA()
+ if webcore_revision == chromium_sha:
+ print "ERROR: Nothing to update in WebCore, WebCore_rev SHA in DEPS " \
+ "matches Chromium GIT master SHA in %s" % options['webkit_dir']
return
start_time = time.time()
+
+ # Copy scripts from third_party/blink/tools to third_party/WebCore/blink/tools
+ #
+ # This also implies that the files:
+ # WebCore/bindings/scripts/code_generator_web_agent_api.py
+ # WebCore/bindings/scripts/utilities.py
+ #
+ # Need to have sys.path.append at beginning of the above files changed from:
+ #
+ # sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..', '..', '..', '..',
+ # 'third_party', 'blink', 'tools'))
+ # to
+ #
+ # sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..',
+ # 'blink', 'tools'))
+ #
+ webkit_blink_dir = os.path.join(chromiumDirectory(), WEBKIT_BLINK_SOURCE)
+ webcore_blink_dir = os.path.join(base_directory, WEBCORE_BLINK_SOURCE)
+ copy_subdir(webkit_blink_dir, WEBKIT_BLINK_SOURCE, webcore_blink_dir, "")
+
+ chromium_webkit_dir = os.path.join(chromiumDirectory(), WEBKIT_SOURCE)
+ dart_webcore_dir = os.path.join(base_directory, WEBCORE_SOURCE)
for subdir in SUBDIRS:
- webkit_dir = os.path.join(base_directory, WEBKIT_SOURCE)
- webcore_dir = os.path.join(base_directory, WEBCORE_SOURCE)
-
- idls_deleted = remove_obsolete_webcore_files(webcore_dir, webkit_dir, subdir)
- print "%s files removed in WebCore %s" % (idls_deleted.__len__(), subdir)
- if isVerbose():
- for delete_file in idls_deleted:
- print " %s" % delete_file
-
- idls_copied, py_copied, other_copied = copy_files(os.path.join(webkit_dir, subdir), webcore_dir)
- print "Copied %s IDLs to %s" % (idls_copied, subdir)
- print "Copied %s PYs to %s" % (py_copied, subdir)
- print "Copied %s other to %s\n" % (other_copied, subdir)
+ copy_subdir(chromium_webkit_dir, WEBKIT_SOURCE, dart_webcore_dir, subdir)
end_time = time.time()
diff --git a/tools/dom/scripts/systemhtml.py b/tools/dom/scripts/systemhtml.py
index 8ab959c..e100908 100644
--- a/tools/dom/scripts/systemhtml.py
+++ b/tools/dom/scripts/systemhtml.py
@@ -13,6 +13,7 @@
import re
from generator import *
from htmldartgenerator import *
+from htmlrenamer import generateCallbackInterface
_logger = logging.getLogger('systemhtml')
@@ -35,8 +36,6 @@
])
_js_custom_members = monitored.Set('systemhtml._js_custom_members', [
- 'AudioBufferSourceNode.start',
- 'AudioBufferSourceNode.stop',
'AudioContext.createGain',
'AudioContext.createScriptProcessor',
'CanvasRenderingContext2D.drawImage',
@@ -128,6 +127,7 @@
'Blob',
'Comment',
'MutationObserver',
+ 'PaymentRequest',
'RTCIceCandidate',
'RTCPeerConnection',
'RTCSessionDescription',
@@ -504,6 +504,8 @@
elif 'Callback' in self._interface.ext_attrs:
if len(GetCallbackHandlers(self._interface)) > 0:
self.GenerateCallback()
+ elif generateCallbackInterface(self._interface.id):
+ self.GenerateInterface()
else:
return
else:
@@ -846,6 +848,13 @@
return argument.optional
def EmitStaticFactoryOverload(self, constructor_info, name, arguments):
+ if self._interface_type_info.has_generated_interface():
+ # Use dart_type name, we're generating.
+ interface_name = self._interface_type_info.interface_name()
+ else:
+ # Use the implementation name the interface is suppressed.
+ interface_name = self._interface_type_info.implementation_name()
+
index = len(arguments)
arguments = constructor_info.ParametersAsArgumentList(index)
if arguments:
@@ -853,7 +862,7 @@
self._members_emitter.Emit(
" static $INTERFACE_NAME $NAME($PARAMETERS) => "
"JS('$INTERFACE_NAME', 'new $CTOR_NAME($PLACEHOLDERS)'$ARGUMENTS);\n",
- INTERFACE_NAME=self._interface_type_info.interface_name(),
+ INTERFACE_NAME=interface_name,
NAME=name,
# TODO(antonm): add types to parameters.
PARAMETERS=constructor_info.ParametersAsArgumentList(index),
@@ -931,12 +940,16 @@
' JS("void", "#[#] = #", this, index, value); }',
TYPE=self._NarrowInputType(element_type))
else:
+ theType = self._NarrowInputType(element_type)
+ if theType == 'DomRectList':
+ theType = '';
+
self._members_emitter.Emit(
'\n'
' void operator[]=(int index, $TYPE value) {\n'
' throw new UnsupportedError("Cannot assign element of immutable List.");\n'
' }\n',
- TYPE=self._NarrowInputType(element_type))
+ TYPE=theType)
self.EmitListMixin(self._DartType(element_type), nullable)
@@ -1019,7 +1032,7 @@
RENAME=rename,
ANNOTATIONS=metadata,
NAME=html_name,
- TYPE=output_type)
+ TYPE=input_type if output_type == 'double' else output_type)
def _AddAttributeUsingProperties(self, attribute, html_name, read_only):
self._AddRenamingGetter(attribute, html_name)
@@ -1124,8 +1137,25 @@
else:
self._AddDirectNativeOperation(info, html_name)
+ def _computeResultType(self, checkType):
+ # TODO(terry): Work around bug in dart2js compiler e.g.,
+ # typedef void CustomElementConstructor();
+ # CustomElementConstructor registerElement(String type, [Map options])
+ # Needs to become:
+ # Function registerElement(String type, [Map options])
+ resultType = checkType
+ if self._database.HasInterface(resultType):
+ resultInterface = self._database.GetInterface(resultType)
+ if 'Callback' in resultInterface.ext_attrs:
+ resultType = 'Function'
+ return resultType
+
+
def _AddDirectNativeOperation(self, info, html_name):
force_optional = True if html_name.startswith('_') else False
+
+ resultType = self._computeResultType(info.type_name)
+
self._members_emitter.Emit(
'\n'
' $RENAME$METADATA$MODIFIERS$TYPE $NAME($PARAMS) native;\n',
@@ -1133,20 +1163,23 @@
METADATA=self._Metadata(info.type_name, info.declared_name,
self.SecureOutputType(info.type_name)),
MODIFIERS='static ' if info.IsStatic() else '',
- TYPE=self.SecureOutputType(info.type_name, False, True),
+ TYPE=self.SecureOutputType(resultType, False, True),
NAME=html_name,
PARAMS=info.ParametersAsDeclaration(self._NarrowInputType, force_optional))
def _AddOperationWithConversions(self, info, html_name):
# Assert all operations have same return type.
assert len(set([op.type.id for op in info.operations])) == 1
- output_conversion = self._OutputConversion(info.type_name,
+
+ resultType = self._computeResultType(info.type_name)
+
+ output_conversion = self._OutputConversion(resultType,
info.declared_name)
if output_conversion:
return_type = output_conversion.output_type
native_return_type = output_conversion.input_type
else:
- return_type = self._NarrowInputType(info.type_name)
+ return_type = resultType if resultType == 'Function' else self._NarrowInputType(resultType)
native_return_type = return_type
parameter_names = [param_info.name for param_info in info.param_infos]
diff --git a/tools/dom/src/WebGLConstants.dart b/tools/dom/src/WebGLConstants.dart
index ae4057a..89d87ce 100644
--- a/tools/dom/src/WebGLConstants.dart
+++ b/tools/dom/src/WebGLConstants.dart
@@ -236,7 +236,6 @@
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;
diff --git a/tools/dom/src/dart2js_Console.dart b/tools/dom/src/dart2js_Console.dart
new file mode 100644
index 0000000..6166c0a
--- /dev/null
+++ b/tools/dom/src/dart2js_Console.dart
@@ -0,0 +1,104 @@
+// 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.
+
+part of html;
+
+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', 'window.console.memory') : null;
+
+ @DomName('Console.assertCondition')
+ void assertCondition(bool condition, Object arg) => _isConsoleDefined
+ ? JS('void', 'window.console.assertCondition(#, #)', condition, arg)
+ : null;
+
+ @DomName('Console.clear')
+ void clear(Object arg) =>
+ _isConsoleDefined ? JS('void', 'window.console.clear(#)', arg) : null;
+
+ @DomName('Console.count')
+ void count(Object arg) =>
+ _isConsoleDefined ? JS('void', 'window.console.count(#)', arg) : null;
+
+ @DomName('Console.debug')
+ void debug(Object arg) =>
+ _isConsoleDefined ? JS('void', 'window.console.debug(#)', arg) : null;
+
+ @DomName('Console.dir')
+ void dir(Object arg) =>
+ _isConsoleDefined ? JS('void', 'window.console.dir(#)', arg) : null;
+
+ @DomName('Console.dirxml')
+ void dirxml(Object arg) =>
+ _isConsoleDefined ? JS('void', 'window.console.dirxml(#)', arg) : null;
+
+ @DomName('Console.error')
+ void error(Object arg) =>
+ _isConsoleDefined ? JS('void', 'window.console.error(#)', arg) : null;
+
+ @DomName('Console.group')
+ void group(Object arg) =>
+ _isConsoleDefined ? JS('void', 'window.console.group(#)', arg) : null;
+
+ @DomName('Console.groupCollapsed')
+ void groupCollapsed(Object arg) => _isConsoleDefined
+ ? JS('void', 'window.console.groupCollapsed(#)', arg)
+ : null;
+
+ @DomName('Console.groupEnd')
+ void groupEnd() =>
+ _isConsoleDefined ? JS('void', 'window.console.groupEnd()') : null;
+
+ @DomName('Console.info')
+ void info(Object arg) =>
+ _isConsoleDefined ? JS('void', 'window.console.info(#)', arg) : null;
+
+ @DomName('Console.log')
+ void log(Object arg) =>
+ _isConsoleDefined ? JS('void', 'window.console.log(#)', arg) : null;
+
+ @DomName('Console.markTimeline')
+ void markTimeline(Object arg) => _isConsoleDefined
+ ? JS('void', 'window.console.markTimeline(#)', arg)
+ : null;
+
+ @DomName('Console.profile')
+ void profile(String title) =>
+ _isConsoleDefined ? JS('void', 'window.console.profile(#)', title) : null;
+
+ @DomName('Console.profileEnd')
+ void profileEnd(String title) => _isConsoleDefined
+ ? JS('void', 'window.console.profileEnd(#)', title)
+ : null;
+
+ @DomName('Console.table')
+ void table(Object arg) =>
+ _isConsoleDefined ? JS('void', 'window.console.table(#)', arg) : null;
+
+ @DomName('Console.time')
+ void time(String title) =>
+ _isConsoleDefined ? JS('void', 'window.console.time(#)', title) : null;
+
+ @DomName('Console.timeEnd')
+ void timeEnd(String title) =>
+ _isConsoleDefined ? JS('void', 'window.console.timeEnd(#)', title) : null;
+
+ @DomName('Console.timeStamp')
+ void timeStamp(Object arg) =>
+ _isConsoleDefined ? JS('void', 'window.console.timeStamp(#)', arg) : null;
+
+ @DomName('Console.trace')
+ void trace(Object arg) =>
+ _isConsoleDefined ? JS('void', 'window.console.trace(#)', arg) : null;
+
+ @DomName('Console.warn')
+ void warn(Object arg) =>
+ _isConsoleDefined ? JS('void', 'window.console.warn(#)', arg) : null;
+}
diff --git a/tools/dom/src/dart2js_CustomElementSupport.dart b/tools/dom/src/dart2js_CustomElementSupport.dart
index fa1b129..7869ea3 100644
--- a/tools/dom/src/dart2js_CustomElementSupport.dart
+++ b/tools/dom/src/dart2js_CustomElementSupport.dart
@@ -66,8 +66,7 @@
}
}
-void _registerCustomElement(
- context, document, String tag, Type type, String extendsTagName) {
+Function _registerCustomElement(context, document, String tag, [Map options]) {
// Function follows the same pattern as the following JavaScript code for
// registering a custom element.
//
@@ -82,6 +81,13 @@
// ...
// var e = document.createElement('x-foo');
+ var extendsTagName = '';
+ Type type;
+ if (options != null) {
+ extendsTagName = options['extends'];
+ type = options['prototype'];
+ }
+
var interceptorClass = findInterceptorConstructorForType(type);
if (interceptorClass == null) {
throw new ArgumentError(type);
@@ -135,13 +141,13 @@
setNativeSubclassDispatchRecord(proto, interceptor);
- var options = JS('=Object', '{prototype: #}', proto);
+ var opts = JS('=Object', '{prototype: #}', proto);
if (extendsTagName != null) {
- JS('=Object', '#.extends = #', options, extendsTagName);
+ JS('=Object', '#.extends = #', opts, extendsTagName);
}
- JS('void', '#.registerElement(#, #)', document, tag, options);
+ return JS('=Object', '#.registerElement(#, #)', document, tag, opts);
}
//// Called by Element.created to do validation & initialization.
diff --git a/tools/dom/src/dart2js_KeyEvent.dart b/tools/dom/src/dart2js_KeyEvent.dart
index 92534a1a..e4bc296 100644
--- a/tools/dom/src/dart2js_KeyEvent.dart
+++ b/tools/dom/src/dart2js_KeyEvent.dart
@@ -187,6 +187,7 @@
/** True if the ctrl key is pressed during this event. */
bool get ctrlKey => _parent.ctrlKey;
int get detail => _parent.detail;
+ bool get isComposing => _parent.isComposing;
String get key => _parent.key;
/**
* Accessor to the part of the keyboard that the key was pressed from (one of
@@ -234,5 +235,6 @@
@Experimental() // untriaged
bool get repeat => throw new UnimplementedError();
+ bool get isComposed => throw new UnimplementedError();
dynamic get _get_view => throw new UnimplementedError();
}
diff --git a/tools/dom/src/dart2js_WrappedEvent.dart b/tools/dom/src/dart2js_WrappedEvent.dart
index e7ab18b..02dab3d 100644
--- a/tools/dom/src/dart2js_WrappedEvent.dart
+++ b/tools/dom/src/dart2js_WrappedEvent.dart
@@ -19,11 +19,9 @@
bool get cancelable => wrapped.cancelable;
- EventTarget get currentTarget => wrapped.currentTarget;
+ bool get composed => wrapped.composed;
- List<EventTarget> deepPath() {
- return wrapped.deepPath();
- }
+ EventTarget get currentTarget => wrapped.currentTarget;
bool get defaultPrevented => wrapped.defaultPrevented;
@@ -31,15 +29,13 @@
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) {
+ void _initEvent(String type, [bool bubbles, bool cancelable]) {
throw new UnsupportedError('Cannot initialize this Event.');
}
@@ -55,6 +51,8 @@
wrapped.stopPropagation();
}
+ List<EventTarget> composedPath() => wrapped.composedPath();
+
/**
* 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,
diff --git a/tools/dom/templates/html/dart2js/html_dart2js.darttemplate b/tools/dom/templates/html/dart2js/html_dart2js.darttemplate
index dfb08cb..0ee1f54 100644
--- a/tools/dom/templates/html/dart2js/html_dart2js.darttemplate
+++ b/tools/dom/templates/html/dart2js/html_dart2js.darttemplate
@@ -46,6 +46,7 @@
import 'dart:svg' show Matrix;
import 'dart:svg' show SvgSvgElement;
import 'dart:web_audio' as web_audio;
+import 'dart:web_audio' show AudioBuffer, AudioTrack, AudioTrackList;
import 'dart:web_gl' as gl;
import 'dart:web_gl' show RenderingContext,RenderingContext2;
import 'dart:web_sql';
@@ -87,6 +88,7 @@
part '$AUXILIARY_DIR/WrappedList.dart';
part '$AUXILIARY_DIR/_HttpRequestUtils.dart';
part '$AUXILIARY_DIR/_ListIterators.dart';
+part '$AUXILIARY_DIR/dart2js_Console.dart';
part '$AUXILIARY_DIR/dart2js_Conversions.dart';
part '$AUXILIARY_DIR/dart2js_CustomElementSupport.dart';
part '$AUXILIARY_DIR/dart2js_DOMImplementation.dart';
@@ -121,7 +123,7 @@
// Workaround for tags like <cite> that lack their own Element subclass --
// Dart issue 1990.
@Native("HTMLElement")
-class HtmlElement extends Element {
+class HtmlElement extends Element implements NoncedElement {
factory HtmlElement() { throw new UnsupportedError("Not supported"); }
/**
@@ -130,6 +132,10 @@
* This can only be called by subclasses from their created constructor.
*/
HtmlElement.created() : super.created();
+
+ // From NoncedElement
+ @DomName('HTMLElement.nonce')
+ String nonce;
}
createCustomUpgrader(Type customElementClass, $this) => $this;
@@ -142,3 +148,4 @@
@Experimental() // untriaged
typedef void FontFaceSetForEachCallback(
FontFace fontFace, FontFace fontFaceAgain, FontFaceSet set);
+
diff --git a/tools/dom/templates/html/dart2js/impl_AudioBufferSourceNode.darttemplate b/tools/dom/templates/html/dart2js/impl_AudioBufferSourceNode.darttemplate
deleted file mode 100644
index 7773f8f..0000000
--- a/tools/dom/templates/html/dart2js/impl_AudioBufferSourceNode.darttemplate
+++ /dev/null
@@ -1,39 +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 $LIBRARYNAME;
-
-$(ANNOTATIONS)$(NATIVESPEC)class $CLASSNAME$EXTENDS$IMPLEMENTS {
-
- // 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);
- }
- }
-$!MEMBERS
-}
diff --git a/tools/dom/templates/html/dart2js/impl_PaymentRequest.darttemplate b/tools/dom/templates/html/dart2js/impl_PaymentRequest.darttemplate
new file mode 100644
index 0000000..3110cc8
--- /dev/null
+++ b/tools/dom/templates/html/dart2js/impl_PaymentRequest.darttemplate
@@ -0,0 +1,35 @@
+// 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.
+
+part of $LIBRARYNAME;
+
+@DocsEditable()
+$(ANNOTATIONS)$(NATIVESPEC)$(CLASS_MODIFIERS)class $CLASSNAME$EXTENDS$MIXINS$IMPLEMENTS {
+ factory PaymentRequest(List<Map> methodData, Map details,
+ [Map options]) {
+ var methodData_1 = [];
+ for (var i in methodData) {
+ methodData_1.add(convertDartToNative_Dictionary(i));
+ }
+ if (options != null) {
+ var details_1 = convertDartToNative_Dictionary(details);
+ var options_2 = convertDartToNative_Dictionary(options);
+ return PaymentRequest._create_1(methodData_1, details_1, options_2);
+ }
+ var details_1 = convertDartToNative_Dictionary(details);
+ return PaymentRequest._create_2(methodData_1, details_1);
+ }
+
+ static PaymentRequest _create_1(methodData, details, options) => JS(
+ 'PaymentRequest',
+ 'new PaymentRequest(#,#,#)',
+ methodData,
+ details,
+ options);
+ static PaymentRequest _create_2(methodData, details) =>
+ JS('PaymentRequest', 'new PaymentRequest(#,#)', methodData, details);
+
+$!MEMBERS
+}
+
diff --git a/tools/dom/templates/html/dart2js/web_audio_dart2js.darttemplate b/tools/dom/templates/html/dart2js/web_audio_dart2js.darttemplate
index c290f9e..ce8e678 100644
--- a/tools/dom/templates/html/dart2js/web_audio_dart2js.darttemplate
+++ b/tools/dom/templates/html/dart2js/web_audio_dart2js.darttemplate
@@ -14,7 +14,9 @@
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:_js_helper' show
+ Creates, JavaScriptIndexingBehavior, JSName, Native, Returns,
+ convertDartClosureToJS;
import 'dart:_foreign_helper' show JS;
import 'dart:_interceptors' show Interceptor;
diff --git a/tools/dom/templates/html/dart2js/web_gl_dart2js.darttemplate b/tools/dom/templates/html/dart2js/web_gl_dart2js.darttemplate
index 4d8ff3c..88023f7 100644
--- a/tools/dom/templates/html/dart2js/web_gl_dart2js.darttemplate
+++ b/tools/dom/templates/html/dart2js/web_gl_dart2js.darttemplate
@@ -7,6 +7,7 @@
*/
library dart.dom.web_gl;
+import 'dart:async';
import 'dart:collection' hide LinkedList, LinkedListEntry;
import 'dart:_internal' show FixedLengthListMixin;
import 'dart:html';
diff --git a/tools/dom/templates/html/impl/impl_AudioContext.darttemplate b/tools/dom/templates/html/impl/impl_AudioContext.darttemplate
index 3c9adbd..a90e62e 100644
--- a/tools/dom/templates/html/impl/impl_AudioContext.darttemplate
+++ b/tools/dom/templates/html/impl/impl_AudioContext.darttemplate
@@ -17,19 +17,26 @@
}
}
- ScriptProcessorNode createScriptProcessor(int bufferSize,
- [int numberOfInputChannels, int numberOfOutputChannels]) {
- var function = JS('=Object', '#.createScriptProcessor || '
- '#.createJavaScriptNode', this, 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 if (bufferSize != null) {
+ return JS(
+ 'ScriptProcessorNode', '#.call(#, #)', function, this, bufferSize);
} else {
- return JS('ScriptProcessorNode', '#.call(#, #)', function, this,
- bufferSize);
+ return JS(
+ 'ScriptProcessorNode', '#.call(#)', function, this);
}
}
@@ -37,21 +44,27 @@
@DomName('AudioContext.decodeAudioData')
@DocsEditable()
Future _decodeAudioData(ByteBuffer audioData,
- [AudioBufferCallback successCallback,
- AudioBufferCallback errorCallback]) native;
+ [DecodeSuccessCallback successCallback,
+ DecodeErrorCallback errorCallback]) native;
@DomName('AudioContext.decodeAudioData')
- Future<AudioBuffer> decodeAudioData(ByteBuffer audioData) {
+ Future<AudioBuffer> decodeAudioData(ByteBuffer audioData,
+ [DecodeSuccessCallback successCallback,
+ DecodeErrorCallback errorCallback]) {
+ if (successCallback != null && errorCallback != null) {
+ return _decodeAudioData(audioData, successCallback, errorCallback);
+ }
+
var completer = new Completer<AudioBuffer>();
- _decodeAudioData(audioData,
- (value) { completer.complete(value); },
- (error) {
- if (error == null) {
- completer.completeError('');
- } else {
- completer.completeError(error);
- }
- });
+ _decodeAudioData(audioData, (value) {
+ completer.complete(value);
+ }, (error) {
+ if (error == null) {
+ completer.completeError('');
+ } else {
+ completer.completeError(error);
+ }
+ });
return completer.future;
}
}
diff --git a/tools/dom/templates/html/impl/impl_ClientRect.darttemplate b/tools/dom/templates/html/impl/impl_DOMRect.darttemplate
similarity index 100%
rename from tools/dom/templates/html/impl/impl_ClientRect.darttemplate
rename to tools/dom/templates/html/impl/impl_DOMRect.darttemplate
diff --git a/tools/dom/templates/html/impl/impl_DeviceOrientationEvent.darttemplate b/tools/dom/templates/html/impl/impl_DeviceOrientationEvent.darttemplate
deleted file mode 100644
index 6b4a4f8..0000000
--- a/tools/dom/templates/html/impl/impl_DeviceOrientationEvent.darttemplate
+++ /dev/null
@@ -1,18 +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.
-
-// WARNING: Do not edit - generated code.
-
-part of $LIBRARYNAME;
-$(ANNOTATIONS)$(NATIVESPEC)$(CLASS_MODIFIERS)class $CLASSNAME$EXTENDS$IMPLEMENTS {
- factory $CLASSNAME(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;
- }
-$!MEMBERS
-}
diff --git a/tools/dom/templates/html/impl/impl_Document.darttemplate b/tools/dom/templates/html/impl/impl_Document.darttemplate
index d64e858..6957bd3 100644
--- a/tools/dom/templates/html/impl/impl_Document.darttemplate
+++ b/tools/dom/templates/html/impl/impl_Document.darttemplate
@@ -56,6 +56,11 @@
@deprecated
bool get supportsRegister => supportsRegisterElement;
+ void registerElement(String tag, Type customElementClass,
+ {String extendsTag}) {
+ registerElement2(tag, {'prototype': customElementClass, 'extends': extendsTag});
+ }
+
@DomName('Document.createElement')
@ForceInline() // Almost all call sites have one argument.
Element createElement(String tagName, [String typeExtension]) {
diff --git a/tools/dom/templates/html/impl/impl_Element.darttemplate b/tools/dom/templates/html/impl/impl_Element.darttemplate
index 4ec5836..47d2ce3 100644
--- a/tools/dom/templates/html/impl/impl_Element.darttemplate
+++ b/tools/dom/templates/html/impl/impl_Element.darttemplate
@@ -782,6 +782,24 @@
@deprecated
void enteredView() {}
+ @DomName('Element.getClientRects')
+ @DocsEditable()
+ @Returns('DomRectList|Null')
+ @Creates('DomRectList')
+ List<Rectangle> getClientRects() {
+ var value = _getClientRects();
+
+ // If no prototype we need one for the world to hookup to the proper Dart class.
+ var jsProto = JS('', '#.prototype', value);
+ if (jsProto == null) {
+ JS('', '#.prototype = Object.create(null)', value);
+ }
+
+ applyExtension('DOMRectList', value);
+
+ return value;
+ }
+
/** *Deprecated*: override [detached] instead. */
@Experimental()
@deprecated
diff --git a/tools/dom/templates/html/impl/impl_Event.darttemplate b/tools/dom/templates/html/impl/impl_Event.darttemplate
index 9ff5f48..6359078 100644
--- a/tools/dom/templates/html/impl/impl_Event.darttemplate
+++ b/tools/dom/templates/html/impl/impl_Event.darttemplate
@@ -56,5 +56,12 @@
} while (target != null && target != currentTarget.parent);
throw new StateError('No selector matched for populating matchedTarget.');
}
+
+ @DomName('Event.path')
+ @DocsEditable()
+ @Experimental()
+ List<EventTarget> get path =>
+ JS('bool', '!!#.composedPath', this) ? composedPath() : [];
+
$!MEMBERS
}
diff --git a/tools/dom/templates/html/impl/impl_HTMLDocument.darttemplate b/tools/dom/templates/html/impl/impl_HTMLDocument.darttemplate
index 47451dc..1f95dca 100644
--- a/tools/dom/templates/html/impl/impl_HTMLDocument.darttemplate
+++ b/tools/dom/templates/html/impl/impl_HTMLDocument.darttemplate
@@ -158,10 +158,8 @@
* `<input is="x-bar"></input>`
*
*/
- void registerElement(String tag, Type customElementClass,
- {String extendsTag}) {
- _registerCustomElement(JS('', 'window'), this, tag, customElementClass,
- extendsTag);
+ Function registerElement2(String tag, [Map options]) {
+ return _registerCustomElement(JS('', 'window'), this, tag, options);
}
/** *Deprecated*: use [registerElement] instead. */
diff --git a/tools/dom/templates/html/impl/impl_IDBFactory.darttemplate b/tools/dom/templates/html/impl/impl_IDBFactory.darttemplate
index 7488d85..2fba73d 100644
--- a/tools/dom/templates/html/impl/impl_IDBFactory.darttemplate
+++ b/tools/dom/templates/html/impl/impl_IDBFactory.darttemplate
@@ -63,21 +63,9 @@
}
}
- @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.
+ * TODO(terry): Should be able to always return false?
*/
bool get supportsDatabaseNames {
return supported && JS('bool',
diff --git a/tools/dom/templates/html/impl/impl_Range.darttemplate b/tools/dom/templates/html/impl/impl_Range.darttemplate
index 82ddf8b..64d01a1 100644
--- a/tools/dom/templates/html/impl/impl_Range.darttemplate
+++ b/tools/dom/templates/html/impl/impl_Range.darttemplate
@@ -13,6 +13,24 @@
document._caretRangeFromPoint(point.x, point.y);
$!MEMBERS
+ @DomName('Range.getClientRects')
+ @DocsEditable()
+ @Returns('DomRectList|Null')
+ @Creates('DomRectList')
+ List<Rectangle> getClientRects() {
+ var value = _getClientRects();
+
+ // If no prototype we need one for the world to hookup to the proper Dart class.
+ var jsProto = JS('', '#.prototype', value);
+ if (jsProto == null) {
+ JS('', '#.prototype = Object.create(null)', value);
+ }
+
+ applyExtension('DOMRectList', value);
+
+ return value;
+ }
+
/**
* Checks if createContextualFragment is supported.
*
diff --git a/tools/dom/templates/html/impl/impl_TouchEvent.darttemplate b/tools/dom/templates/html/impl/impl_TouchEvent.darttemplate
index 7857dc8..5a30fd4 100644
--- a/tools/dom/templates/html/impl/impl_TouchEvent.darttemplate
+++ b/tools/dom/templates/html/impl/impl_TouchEvent.darttemplate
@@ -7,19 +7,6 @@
part of $LIBRARYNAME;
$(ANNOTATIONS)$(NATIVESPEC)$(CLASS_MODIFIERS)class $CLASSNAME$EXTENDS$IMPLEMENTS {
- factory $CLASSNAME(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;
- }
$!MEMBERS
/**
* Checks if touch events supported on the current platform.
diff --git a/tools/dom/templates/html/impl/impl_WebGLCanvas.darttemplate b/tools/dom/templates/html/impl/impl_WebGLCanvas.darttemplate
new file mode 100644
index 0000000..26e09b6
--- /dev/null
+++ b/tools/dom/templates/html/impl/impl_WebGLCanvas.darttemplate
@@ -0,0 +1,21 @@
+// 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.
+
+part of $LIBRARYNAME;
+
+@DocsEditable()
+$(ANNOTATIONS)$(NATIVESPEC)class $CLASSNAME$EXTENDS {
+$!MEMBERS
+
+ @JSName('canvas')
+ @DomName('WebGLCanvas.canvas')
+ @DocsEditable()
+ final CanvasElement canvas;
+
+ @JSName('canvas')
+ @DomName('WebGLCanvas.offscreenCanvas')
+ @DocsEditable()
+ final OffscreenCanvas offscreenCanvas;
+}
+
diff --git a/tools/dom/templates/html/impl/impl_Window.darttemplate b/tools/dom/templates/html/impl/impl_Window.darttemplate
index 9da90cd..cf5ddf9 100644
--- a/tools/dom/templates/html/impl/impl_Window.darttemplate
+++ b/tools/dom/templates/html/impl/impl_Window.darttemplate
@@ -177,7 +177,6 @@
@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
@@ -211,6 +210,10 @@
@DomName('Window.onbeforeunload')
Stream<Event> get onBeforeUnload => beforeUnloadEvent.forTarget(this);
+ /// Stream of `wheel` events handled by this [Window].
+ @DomName('Window.onWheel')
+ Stream<WheelEvent> get onWheel => Element.wheelEvent.forTarget(this);
+
/**
* Moves this window to a specific position.
*
diff --git a/tools/testing/dart/compiler_configuration.dart b/tools/testing/dart/compiler_configuration.dart
index 79ea762..0b7c602 100644
--- a/tools/testing/dart/compiler_configuration.dart
+++ b/tools/testing/dart/compiler_configuration.dart
@@ -39,6 +39,7 @@
bool get _isStrong => _configuration.isStrong;
bool get _isHostChecked => _configuration.isHostChecked;
bool get _useSdk => _configuration.useSdk;
+ bool get _useEnableAsserts => _configuration.useEnableAsserts;
/// Only some subclasses support this check, but we statically allow calling
/// it on [CompilerConfiguration].
@@ -190,6 +191,9 @@
args.add('--enable_asserts');
args.add('--enable_type_checks');
}
+ if (_useEnableAsserts) {
+ args.add('--enable_asserts');
+ }
if (_configuration.hotReload) {
args.add('--hot-reload-test-mode');
} else if (_configuration.hotReloadRollback) {
@@ -250,6 +254,9 @@
args.add('--enable_asserts');
args.add('--enable_type_checks');
}
+ if (_useEnableAsserts) {
+ args.add('--enable_asserts');
+ }
if (_configuration.hotReload) {
args.add('--hot-reload-test-mode');
} else if (_configuration.hotReloadRollback) {