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 349d2adb..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..a867c924 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) {