dart-lang / co19 Goto Github PK
View Code? Open in Web Editor NEWA Dart language and library conformance test suite
License: BSD 3-Clause "New" or "Revised" License
A Dart language and library conformance test suite
License: BSD 3-Clause "New" or "Revised" License
These tests expect TypeError to be thrown:
Language/03_Overview/1_Scoping_A02_t05
Language/03_Overview/1_Scoping_A02_t06
but the spec only mentions that 'a dynamic error occurs'. (§16.12.1 New)
Failing in current Chrome. Not clear to me why.
"Expect.equals(expected: <.foo:host-context(div,body.mytheme,p#myid,.bar::before,span:hover) > div { display: block; }>, actual: <:host-context(*) { display: block; }>) fails.
Change co19/LayoutTests/fast/multicol/columns-shorthand-parsing_t02
from:
[["-webkit-columns:auto 3;", "auto", "3", "auto 3"],
["-webkit-columns:auto 10em;", "10em", "auto", "10em auto"],
["-webkit-columns:3 auto;", "auto", "3", "auto 3"],
["-webkit-columns:10em auto;", "10em", "auto", "10em auto"],
["-webkit-columns:7 7em; -webkit-columns:auto auto auto;", "7em", "7", "7em 7"],
["-webkit-columns:7 7em; -webkit-columns:10em auto auto;", "7em", "7", "7em 7"],
["-webkit-columns:7 7em; -webkit-columns:auto;", "auto", "auto", "auto auto"],
["-webkit-columns:7 7em; -webkit-columns:auto auto;", "auto", "auto", "auto auto"],
["-webkit-columns:auto; -webkit-columns:initial;", "initial", "initial", "initial"],
["-webkit-columns:auto; -webkit-columns:initial initial;", "auto", "auto", "auto auto"],
["-webkit-columns:auto; -webkit-columns:inherit;", "inherit", "inherit", "inherit"],
["-webkit-columns:auto; -webkit-columns:inherit inherit;", "auto", "auto", "auto auto"],
["-webkit-columns:7;", "auto", "7", "auto 7"],
["-webkit-columns:7em;", "7em", "auto", "7em auto"]];
to:
[["-webkit-columns:auto 3;", "auto", "3", "auto 3"],
["-webkit-columns:auto 10em;", "10em", "auto", "10em auto"],
["-webkit-columns:3 auto;", "auto", "3", "auto 3"],
["-webkit-columns:10em auto;", "10em", "auto", "10em auto"],
["-webkit-columns:7 7em; -webkit-columns:auto auto auto;", "7em", "7", "7em 7"],
["-webkit-columns:7 7em; -webkit-columns:10em auto auto;", "7em", "7", "7em 7"],
["-webkit-columns:7 7em; -webkit-columns:auto;", "auto", "auto", "auto auto"],
["-webkit-columns:7 7em; -webkit-columns:auto auto;", "auto", "auto", "auto auto"],
["-webkit-columns:auto; -webkit-columns:initial;", "initial", "initial", "initial"],
["-webkit-columns:auto; -webkit-columns:initial initial;", "auto", "auto", "auto auto"],
["-webkit-columns:auto; -webkit-columns:inherit;", "inherit", "inherit", "inherit"],
["-webkit-columns:auto; -webkit-columns:inherit inherit;", "auto", "auto", "auto auto"],
["-webkit-columns:7;", "auto", "7", "auto 7"],
["-webkit-columns:7em;", "7em", "auto", "7em auto"]];
several tests fail like this one:
co19/LayoutTests/fast/backgrounds/background-shorthand-with-backgroundSize-style_t01
Exception: Expect.equals(expected: <url(dummy://test.png) 50% 50% / cover no-repeat border-box border-box red>, actual: <url("dummy://test.png") 50% 50% / cover no-repeat border-box border-box red>) fails.
It appears that the url is now quoted.
It would be best if the expectation accepted both quoted and unquoted since browsers in the wild produce both results.
Similar failures (not an exhaustive list):
co19/LayoutTests/fast/shapes/parsing/parsing-shape-outside_t01
co19/LayoutTests/fast/masking/parsing-clip-path-iri_t01
We've removed MutationEvent as being obsolete.
For some time all the webgl tests were suppressed due to dart-lang/sdk#22026
However, they're running now on the Mac bots, and this reveals a number of passes that seem suspect or outright wrong.
With the new #-based tear-off closure syntax, test 30_Identifier_Reference_A01_t03 is no longer correct.
The test expects a compile-time error for the illegal identifier y#$. However, this is now a legal expression, closurizing the property named '$' from the object y.
The self import statement should be:
import "namespace_changes_t10.dart";
The URI in import or part statements need to be updated in these tests:
Language/Libraries_and_Scripts/URIs/syntax_t04
Language/Libraries_and_Scripts/URIs/syntax_t05
Language/Libraries_and_Scripts/URIs/syntax_t09
Language/Libraries_and_Scripts/URIs/syntax_t10
Language/Libraries_and_Scripts/URIs/syntax_t14
Language/Libraries_and_Scripts/URIs/syntax_t15
Change line:
r.setInnerHtml(r.innerHtml.replaceAll('&37;3C!--D--&37;3E', '123'),
to
r.setInnerHtml(r.innerHtml.replaceAll('&37;3C!--D--&37;3E', '123'),
Change line:
Expect.isTrue(r.innerHtml.indexOf('''javascript:test('text&',"test2&")''') > -1, 'test 4');
to:
Expect.isTrue(r.innerHtml.indexOf('''javascript:test('text&',"test2&")''') > -1, 'test 4');
Change line:
link2.click();
shouldBe(document.activeElement, link2);
to:
link2.click();
shouldBe(document.activeElement, document.body);
I don't know what's going on here, but LayoutTests/fast/css/css-selector-text_t01 starts to fail in Chrome 47 on the pattern "n|a"
For test LayoutTests/fast/dom/shadow/shadow-disable_t01 please remove the line:
document.getElementById('tref'),
Change LayoutTests/fast/dom/shadow/event-path_t01:
var expected = ['#b', '#a', BodyElement, HtmlHtmlElement, HtmlDocument];
to:
var expected = ['#b', '#a', BodyElement, HtmlHtmlElement, HtmlDocument, Window];
The bound error reported in LibTest/collection/LinkedList/LinkedList_A01_t01 is correct, since type parameter String does not extend upper bound LinkedListEntry
'dart:collection/linked_list.dart': malbounded type: line 31: type parameter 'E' of class 'LinkedList' must extend bound 'LinkedListEntry', but type argument 'String' is not a subtype of 'LinkedListEntry'
class LinkedList < E extends LinkedListEntry < E >>
^
'file:///usr/local/google/home/regis/dart1/sdk/tests/co19/src/LibTest/collection/LinkedList/LinkedList_A01_t01.dart': malbounded type: line 29 pos 13: type 'LinkedList' has an out of bound type argument
check(new LinkedList());
^
type error.
#0 _TypeError._throwNew (dart:core-patch/errors_patch.dart:58)
#1 main (file:///usr/local/google/home/regis/dart1/sdk/tests/co19/src/LibTest/collection/LinkedList/LinkedList_A01_t01.dart:29:13)
#2 _startIsolate. (dart:isolate-patch/isolate_patch.dart:261)
#3 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:148)
The test Language/Expressions/Property_Extraction/Named_Constructor_Extraction/not_class_t01 expects a runtime error, because E is not a class in new E#m.
E, being an enum, is actually a class.
We could then argue that a noSuchMethod be thrown. However, the section on enum states that it is a compile-time error to instantiate an enum. So if we write new E#, it is not a noSuchMethod method anymore. However, it is to late to report the compile-time error when the closurize constructor is invoked.
The spec will be changed to state that a compile-time error is expected in the case of new E#m.
In the setter section, the spec states:
"It is a static warning if a setter declares a return type other than void."
This indicates that no value is returned from a setter.
Also, in the assignment section, the spec states:
"The value of the assignment expression is o2 irrespective of whether setter
lookup has failed or succeeded."
Change test co19/WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-002_t01
Change an occurrences of:
getElementsByClassName('clazz')
to:
querySelectorAll('.clazz')
In checked mode, I get the following. It's inside a shouldThrow, but it seems to not catch the checked mode type error.
value: test Expect.throws(resolver is a String) failed:Unexpected _TypeError('type 'String' is not a subtype of type 'XPathNSResolver' of 'resolver'.')
#0 XPathEvaluator.evaluate (dart:html:40552)
#1 main.<anonymous closure> (http://127.0.0.1:38432/root_dart/tests/co19/src/LayoutTests/fast/xpath/invalid-resolver_t01.dart:29:19)
#2 shouldThrow (http://127.0.0.1:38432/root_dart/tests/co19/src/LayoutTests/fast/xpath/xpath-test-pre.dart:91:11)
#3 main (http://127.0.0.1:38432/root_dart/tests/co19/src/LayoutTests/fast/xpath/invalid-resolver_t01.dart:28:5)
#4 main (http://127.0.0.1:38432/root_build/generated_tests/none-dartium-checked/tests_co19_src_LayoutTests_fast_xpath_invalid-resolver_t01/test.dart:5:3)
We have SIMD tests that have denormalized numbers as results. (e.g. co19/LibTest/typed_data/Float32x4/operator_multiplication_A01_t01)
On ARM those operations will return 0 if they are computed using the NEON instructions but on X86 they will return something other than 0.0 when using the SSE instructions.
The tests should be written in such a way that they do not assume support for denormal numbers.
These tests cannot pass in checked mode, see 16.4.1 Boolean Conversion.
Language/Errors_and_Warnings/static_warning_t01
Language/Errors_and_Warnings/static_warning_t02
Language/Errors_and_Warnings/static_warning_t03
Language/Errors_and_Warnings/static_warning_t04
Language/Errors_and_Warnings/static_warning_t05
Language/Errors_and_Warnings/static_warning_t06
If you set the object position to "left center", now you get back "left center", not "0%, 50".
Please change co19/LayoutTests/fast/forms/validationMessage_t01
from:
document.execCommand("InsertText", false, "abc");
to:
document.execCommand("InsertText", false, "+++");
shouldBeTrue(textarea.validity.tooLong);
at line 41 fails in Chrome.
This seems to me like a Chrome bug, but noting it here.
The following tests fail on Windows x64
LibTest/math/acos_A01_t01
LibTest/math/asin_A01_t01
LibTest/math/atan_A01_t01
LibTest/math/cos_A01_t01
LibTest/math/tan_A01_t01
These tests works well on Linux
The wording in the specification has changed in (I think) 3 places to allow the noSuchMethod method to be inherited rather than requiring it to be implemented in every class. That causes two tests to be wrong:
Language/07_Classes/4_Abstract_Instance_Members_A02_t03
Language/07_Classes/4_Abstract_Instance_Members_A02_t04
The Dart language spec 3rd edition June 2015 says that the return type of a setter must be void, and the value of an assignment expression is the RHS, not the return value of the setter:
Page 89, 16.19 Expressions/Assignment
The value of the assignment expression is o2 irrespective of whether setter
lookup has failed or succeeded.
Document.getCSSCanvasContext is a non-standard extension that is now removed. See https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/WvqvdsmiQzg
Three tests (or more) probably fail because of this, and should be removed or rewritten:
LayoutTests/fast/canvas/canvas-as-image_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/canvas-css-crazy_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/crash-set-font_t01: RuntimeError # Please triage this failure
Change test co19/WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-event-interface/event-path-001_t01
change:
assert_equals(e.path.length, 6, 'path.length');
assert_equals(e.path[0], child, 'path[0] should be child');
assert_equals(e.path[1], shadowRoot, 'path[1] should be shadowRoot');
assert_equals(e.path[2], host, 'path[2] should be host');
assert_equals(e.path[3], doc.body, 'path[3] should be body');
assert_equals(e.path[4], doc.documentElement, 'path[4] should be html');
assert_equals(e.path[5], doc, 'path[5] should be document');
to:
assert_equals(e.path.length, 7, 'path.length');
assert_equals(e.path[0], child, 'path[0] should be child');
assert_equals(e.path[1], shadowRoot, 'path[1] should be shadowRoot');
assert_equals(e.path[2], host, 'path[2] should be host');
assert_equals(e.path[3], doc.body, 'path[3] should be body');
assert_equals(e.path[4], doc.documentElement, 'path[4] should be html');
assert_equals(e.path[5], doc, 'path[5] should be document');
assert_equals(e.path[6], doc.window, 'path[6] should be window');
LibTest/core/DateTime/parse_A01_t02 tests that the microseconds are rounded into the milliseconds.
I just added support for microseconds (to the VM at least), and this is no longer true.
Since that behavior is not supported by the dart2js compiler, please separate microsecond tests from other tests (so that dart2js can mark the microsecond tests as failing without losing coverage for the other parse tests).
WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-002_t01 is flaky on Dartium, all platforms.
Looking at the test, it seems to rely on a race condition.
This seems like it might be a Firefox issue. The test passes on other platforms.
"Unexpected source! expected: [0, 0, 0, 0] actual: [255, 0, 0, 255] , composite type: source-in, source: [255, 0, 0, 255], destination: [0, 255, 0, 255]
Unexpected destination! expected: [0, 0, 0, 0] actual: [0, 255, 0, 255] , composite type: source-in, source: [255, 0, 0, 255], destination: [0, 255, 0, 255]
"
This is a copy of issue 747 from the old co19 issue tracker.
Many many tests are failing because of this.
Many co19 tests rely on appendHtml not sanitizing ‹ Prev 24 of 24
1 person starred this issue and may be notified of changes. Back to list
Status: New
Owner: ----
Type-Defect
Priority-Medium
Reported by [email protected], May 5, 2015
AppendHtml now sanitizes, and as a result these tests fail. Possibly the simplest thing would be to define a utility function that passes a null sanitizer and change all these tests to call that instead.
Affected tests:
Many things under the following categories. See the suppressions files. Note that this includes test that spuriously pass because the content they try to add is sanitized away, and the tests don't exercise anything.
co19/LayoutTests/fast/multicol/
co19/LayoutTests/fast/media/
co19/LayoutTests/fast/loader/
co19/LayoutTests/fast/lists/
co19/LayoutTests/fast/innerHTML/
co19/LayoutTests/fast/inline
co19/LayoutTests/fast/text
co19/LayoutTests/fast/text/international/
co19/LayoutTests/fast/url
co19/LayoutTests/fast/writing-mode
co19/LayoutTests/fast/text-autosizing
co19/LayoutTests/fast/html/adjacent-html-context-element_t01
Details: (please list relevant API changes or quote specification)
The tests listed below should reference the class C containing the expected compile-time error, for example by constructing an instance of the class in main(). Otherwise, the compiler is at liberty not to compile C and thus no compile-time error is observed.
Language/Classes/Constructors/Constant_Constructors/initializer_not_a_constant_t01
Language/Classes/Constructors/Constant_Constructors/initializer_not_a_constant_t02
Language/Classes/Constructors/Constant_Constructors/initializer_not_a_constant_t03
Language/Classes/Constructors/Constant_Constructors/not_a_constant_in_superclass_t01
Language/Classes/Constructors/Constant_Constructors/not_a_constant_in_superclass_t02
E.g:
class A {
}
class C {
final x = new A();
const C();
}
main() {
const C(); // <<<< reference class C to ensure it gets compiled.
}
The line should be:
part "compilation_t09.dart";
This test co19/LayoutTests/fast/dom/custom/element-names_t01 for Dartium roll 45 needs to change from:
var invalidNames = [
// Hyphen missing:
'foo',
'xfoo',
// Reserved names:
// hyphen-containing names from the applicable specifications,
// namely the SVG and the MathML.
'annotation-xml',
'font-face',
'font-face-src',
'font-face-uri',
'font-face-format',
'font-face-name',
'missing-glyph'
];
to:
var invalidNames = [
// Hyphen missing:
'foo',
'xfoo',
// Reserved names:
// hyphen-containing names from the applicable specifications,
// namely the SVG and the MathML.
'annotation-xml',
// names containing colon
':-xfoo',
'xfoo-:yfoo'
];
Isolate spawning behaviour has changed to be more spec-compliant and faster in 1.14. There are various tests which assume that if there's an exception it can be caught by wrapping the spawn call in a try/catch block, or that the test can just be suppressed in a status file if it doesn't catch the isolate spawning error at all. This no longer works, it has to handle the error on the returned future. As a result the tests spuriously pass.
Affected tests are
co19/LibTest/isolate/ReceivePort/close_A02_t01
co19/LibTest/isolate/ReceivePort/close_A01_t01
co19/LibTest/isolate/ReceivePort/asBroadcastStream_A01_t02
co19/LibTest/isolate/ReceivePort/asBroadcastStream_A03_t02
co19/LibTest/isolate/ReceivePort/asBroadcastStream_A03_t01
co19/LibTest/isolate/ReceivePort/asBroadcastStream_A03_t03
co19/LibTest/isolate/RawReceivePort/close_A01_t01
I'm seeing a failure in co19/WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-006_t01 in Chrome which seems to be due to changes in the browser, not to any problem of ours. The current spec says that the scoped attribute should default to true, rather than the events always being stopped, but we don't have a scoped attribute visible yet. I see it landing in Chrome in Januaryin https://codereview.chromium.org/1586563005/ but it seems like it will only be set that way when the UA creates the event directly. I'm not sure what's best to be done, but for the moment I'm suppressing the test failure.
These tests expect a compile-time error without actually trying to execute the erroneous code:
Language/Mixins/Mixin_Application/error_t01
Language/Mixins/Mixin_Application/error_t02
Language/Mixins/declaring_constructor_t01
Language/Mixins/not_object_superclass_t01
Language/Mixins/reference_to_super_t01
Their respective main() should allocate the erroneous class.
Note section 7 in the spec explaining that compile-time errors may be delayed until the erroneous code is executed.
Fails in current Chrome with expectation of width 196px vs. 197px. Seems like it might reasonably tolerate the off by one in measurement. Not sure what current JS version of the test does.
LibTest/collection/DoubleLinkedQueue/removeFirst_A01_t01
The type error given in checked mode is correct. DoubleLinkedQueue implements Queue, not the other way around.
Unhandled exception:
type 'ListQueue' is not a subtype of type 'DoubleLinkedQueue' of 'list'.
#0 main (file:///usr/local/google/home/regis/dart1/sdk/tests/co19/src/LibTest/collection/DoubleLinkedQueue/removeFirst_A01_t01.dart:35:14)
#1 _startIsolate. (dart:isolate-patch/isolate_patch.dart:261)
#2 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:148)
CSSCharsetRule encoding has been removed from Chrome see
[https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/lwq9fhV5uF8/ikrrc76SvG4J]
Here's a list of 32 co19 tests and their changes:
There's a tracking issue in dart-sdk [ https://github.com/dart-lang/sdk/issues/25807]
Change any shadow DOM access to
GetElementsByTagName
GetElementsByClassName
to use querySelector or querySelectorAll
Change:
shouldBe('div.style.minWidth', '"auto"');
to:
shouldBe('div.style.minWidth', '""');
Change:
t.style.backgroundPositionX = '5%';
shouldBe(t.style.backgroundPosition, "5%");
to:
t.style.backgroundPositionX = '5%';
shouldBe(t.style.backgroundPosition, "");
Change:
shouldBeEqualToString(languageOfNode('x'), "ja-JP");
to:
shouldBeEqualToString(languageOfNode('x'), '"ja-JP"');
Change:
shouldBeEqualToString(languageOfNode('y'), "ar");
to:
shouldBeEqualToString(languageOfNode('y'), '"ar"');
Change:
shouldBeEqualToString(languageOfNode('x'), "zh");
shouldBeEqualToString(languageOfNode('y'), "ar");
meta.remove();
shouldBeEqualToString(languageOfNode('x'), "zh");
shouldBeEqualToString(languageOfNode('y'), "ar");
to:
shouldBeEqualToString(languageOfNode('x'), '"zh"');
shouldBeEqualToString(languageOfNode('y'), '"ar"');
meta.remove();
shouldBeEqualToString(languageOfNode('x'), '"zh"');
shouldBeEqualToString(languageOfNode('y'), '"ar"');
Change:
shouldBeEqualToString(languageOfNode('x'), "zh-CN");
shouldBeEqualToString(languageOfNode('y'), "ar");
to:
shouldBeEqualToString(languageOfNode('x'), '"zh-CN"');
shouldBeEqualToString(languageOfNode('y'), '"ar"');
Change:
shouldBeEqualToString(languageOfNode('x'), "zh_CN");
shouldBeEqualToString(languageOfNode('y'), "ar");
to:
shouldBeEqualToString(languageOfNode('x'), '"zh_CN"');
shouldBeEqualToString(languageOfNode('y'), '"ar"');
Change:
shouldBeEqualToString(languageOfNode('y'), "ar");
to:
shouldBeEqualToString(languageOfNode('y'), '"ar"');
Change:
shouldBeEqualToString(rules[2].style.cssText, "content: counter(section, decimal);");
shouldBeEqualToString(rules[3].style.cssText, "content: counters(section, ':', decimal);");
shouldBeEqualToString(rules[5].style.cssText, "content: counters(section, ',', upper-roman);");
to:
shouldBeEqualToString(rules[2].style.cssText, "content: counter(section);");
shouldBeEqualToString(rules[3].style.cssText, 'content: counters(section, ":");');
shouldBeEqualToString(rules[5].style.cssText, 'content: counters(section, ",", upper-roman);');
Change:
['border-top: 1px; border-right: 2px; border-bottom: 3px; border-left: 4px;', 'border-width: 1px 2px 3px 4px;'],
to:
['border-top: 1px; border-right: 2px; border-bottom: 3px; border-left: 4px;', 'border-color: initial; border-style: initial; border-width: 1px 2px 3px 4px;'],
Change:
shouldBeEqualToString(style.sheet.cssRules[0].cssText, "#A::after { content: 'A'; }");
shouldBeEqualToString(style.sheet.cssRules[1].cssText, "#B::after { content: ''B''; }");
shouldBeEqualToString(style.sheet.cssRules[2].cssText, "#C::after { content: ''C\8''; }");
shouldBeEqualToString(style.sheet.cssRules[3].cssText, "#D::after { content: ''D'', url(http://example.com/), 'EFG'; }");
to:
shouldBeEqualToString(style.sheet.cssRules[0].cssText, "#A::after { content: "A"; }");
shouldBeEqualToString(style.sheet.cssRules[1].cssText, "#B::after { content: "'B'"; }");
shouldBeEqualToString(style.sheet.cssRules[2].cssText, "#C::after { content: "'C\8 '"; }");
shouldBeEqualToString(style.sheet.cssRules[3].cssText, "#D::after { content: "'D'" url(http://example.com/) "EFG"; }");
Change:
shouldBe(measureExBox(), '50px');
to:
shouldBeGreaterThan("measureExBox()", "0");
Change:
shouldBe(computedStyle.font, 'normal normal normal normal 20px/normal foobar');
shouldBe(computedStyle.font, 'normal normal normal normal 20px/normal sans-serif');
shouldBe(computedStyle.font, 'italic normal normal normal 20px/normal sans-serif');
shouldBe(computedStyle.font, 'italic small-caps normal normal 20px/normal sans-serif');
shouldBe(computedStyle.font, 'italic small-caps bold normal 20px/normal sans-serif');
shouldBe(computedStyle.font, 'italic small-caps bold normal 20px/40px sans-serif');
shouldBe(computedStyle.font, 'normal normal normal normal 16px/normal foobar');
shouldBe(computedStyle.font, 'normal normal bold normal 16px/normal foobar');
shouldBe(computedStyle.font, 'normal normal bold normal 40px/normal sans-serif');
to:
shouldBe(computedStyle.font, 'normal normal normal normal 20px / normal foobar');
shouldBe(computedStyle.font, 'normal normal normal normal 20px / normal sans-serif');
shouldBe(computedStyle.font, 'italic normal normal normal 20px / normal sans-serif');
shouldBe(computedStyle.font, 'italic small-caps normal normal 20px / normal sans-serif');
shouldBe(computedStyle.font, 'italic small-caps bold normal 20px / normal sans-serif');
shouldBe(computedStyle.font, 'italic small-caps bold normal 20px / 40px sans-serif');
shouldBe(computedStyle.font, 'normal normal normal normal 16px / normal foobar');
shouldBe(computedStyle.font, 'normal normal bold normal 16px / normal foobar');
shouldBe(computedStyle.font, 'normal normal bold normal 40px / normal sans-serif');
Change: 10px/normal etc to be 10px / normal
shouldBe(computedFont('10px sans-serif'), 'normal normal normal normal 10px/normal sans-serif');
shouldBe(computedFont('10px sans-serif'), 'normal normal normal normal 10px/normal sans-serif');
shouldBe(computedFont('10px SANS-SERIF'), 'normal normal normal normal 10px/normal sans-serif');
shouldBe(computedFont('12px sans-serif'), 'normal normal normal normal 12px/normal sans-serif');
shouldBe(computedFont('12px sans-serif'), 'normal normal normal normal 12px/normal sans-serif');
shouldBe(computedFont('10px sans-serif, sans-serif'), 'normal normal normal normal 10px/normal sans-serif, sans-serif');
shouldBe(computedFont('10px sans-serif, serif'), 'normal normal normal normal 10px/normal sans-serif, serif');
shouldBe(computedFont('12px ahem'), 'normal normal normal normal 12px/normal ahem');
shouldBe(computedFont('12px unlikely-font-name'), 'normal normal normal normal 12px/normal unlikely-font-name');
shouldBe(computedFont('100 10px sans-serif'), 'normal normal 100 normal 10px/normal sans-serif');
shouldBe(computedFont('200 10px sans-serif'), 'normal normal 200 normal 10px/normal sans-serif');
shouldBe(computedFont('300 10px sans-serif'), 'normal normal 300 normal 10px/normal sans-serif');
shouldBe(computedFont('400 10px sans-serif'), 'normal normal normal normal 10px/normal sans-serif');
shouldBe(computedFont('normal 10px sans-serif'), 'normal normal normal normal 10px/normal sans-serif');
shouldBe(computedFont('500 10px sans-serif'), 'normal normal 500 normal 10px/normal sans-serif');
shouldBe(computedFont('600 10px sans-serif'), 'normal normal 600 normal 10px/normal sans-serif');
shouldBe(computedFont('700 10px sans-serif'), 'normal normal bold normal 10px/normal sans-serif');
shouldBe(computedFont('bold 10px sans-serif'), 'normal normal bold normal 10px/normal sans-serif');
shouldBe(computedFont('800 10px sans-serif'), 'normal normal 800 normal 10px/normal sans-serif');
shouldBe(computedFont('900 10px sans-serif'), 'normal normal 900 normal 10px/normal sans-serif');
shouldBe(computedFont('italic 10px sans-serif'), 'italic normal normal normal 10px/normal sans-serif');
shouldBe(computedFont('small-caps 10px sans-serif'), 'normal small-caps normal normal 10px/normal sans-serif');
shouldBe(computedFont('italic small-caps 10px sans-serif'), 'italic small-caps normal normal 10px/normal sans-serif');
shouldBe(computedFont('italic small-caps bold 10px sans-serif'), 'italic small-caps bold normal 10px/normal sans-serif');
shouldBe(computedFont('10px/100% sans-serif'), 'normal normal normal normal 10px/10px sans-serif');
shouldBe(computedFont('10px/100px sans-serif'), 'normal normal normal normal 10px/100px sans-serif');
shouldBe(computedFont('10px/normal sans-serif'), 'normal normal normal normal 10px/normal sans-serif');
shouldBe(computedFont('10px/normal sans-serif'), 'normal normal normal normal 10px/normal sans-serif');
shouldBe(computedFontCSSValue('10px sans-serif'), 'normal normal normal normal 10px/normal sans-serif');
shouldBe(computedFontCSSValue('10px sans-serif'), 'normal normal normal normal 10px/normal sans-serif');
shouldBe(computedFontCSSValue('10px SANS-SERIF'), 'normal normal normal normal 10px/normal sans-serif');
shouldBe(computedFontCSSValue('12px sans-serif'), 'normal normal normal normal 12px/normal sans-serif');
shouldBe(computedFontCSSValue('12px sans-serif'), 'normal normal normal normal 12px/normal sans-serif');
shouldBe(computedFontCSSValue('10px sans-serif, sans-serif'), 'normal normal normal normal 10px/normal sans-serif, sans-serif');
shouldBe(computedFontCSSValue('10px sans-serif, serif'), 'normal normal normal normal 10px/normal sans-serif, serif');
shouldBe(computedFontCSSValue('12px ahem'), 'normal normal normal normal 12px/normal ahem');
shouldBe(computedFontCSSValue('12px unlikely-font-name'), 'normal normal normal normal 12px/normal unlikely-font-name');
shouldBe(computedFontCSSValue('100 10px sans-serif'), 'normal normal 100 normal 10px/normal sans-serif');
shouldBe(computedFontCSSValue('200 10px sans-serif'), 'normal normal 200 normal 10px/normal sans-serif');
shouldBe(computedFontCSSValue('300 10px sans-serif'), 'normal normal 300 normal 10px/normal sans-serif');
shouldBe(computedFontCSSValue('400 10px sans-serif'), 'normal normal normal normal 10px/normal sans-serif');
shouldBe(computedFontCSSValue('normal 10px sans-serif'), 'normal normal normal normal 10px/normal sans-serif');
shouldBe(computedFontCSSValue('500 10px sans-serif'), 'normal normal 500 normal 10px/normal sans-serif');
shouldBe(computedFontCSSValue('600 10px sans-serif'), 'normal normal 600 normal 10px/normal sans-serif');
shouldBe(computedFontCSSValue('700 10px sans-serif'), 'normal normal bold normal 10px/normal sans-serif');
shouldBe(computedFontCSSValue('bold 10px sans-serif'), 'normal normal bold normal 10px/normal sans-serif');
shouldBe(computedFontCSSValue('800 10px sans-serif'), 'normal normal 800 normal 10px/normal sans-serif');
shouldBe(computedFontCSSValue('900 10px sans-serif'), 'normal normal 900 normal 10px/normal sans-serif');
shouldBe(computedFontCSSValue('italic 10px sans-serif'), 'italic normal normal normal 10px/normal sans-serif');
shouldBe(computedFontCSSValue('small-caps 10px sans-serif'), 'normal small-caps normal normal 10px/normal sans-serif');
shouldBe(computedFontCSSValue('italic small-caps 10px sans-serif'), 'italic small-caps normal normal 10px/normal sans-serif');
shouldBe(computedFontCSSValue('italic small-caps bold 10px sans-serif'), 'italic small-caps bold normal 10px/normal sans-serif');
shouldBe(computedFontCSSValue('10px/100% sans-serif'), 'normal normal normal normal 10px/10px sans-serif');
shouldBe(computedFontCSSValue('10px/100px sans-serif'), 'normal normal normal normal 10px/100px sans-serif');
shouldBe(computedFontCSSValue('10px/normal sans-serif'), 'normal normal normal normal 10px/normal sans-serif');
shouldBe(computedFontCSSValue('10px/normal sans-serif'), 'normal normal normal normal 10px/normal sans-serif');
to:
shouldBe(computedFont('10px sans-serif'), 'normal normal normal normal 10px / normal sans-serif');
shouldBe(computedFont('10px sans-serif'), 'normal normal normal normal 10px / normal sans-serif');
shouldBe(computedFont('10px SANS-SERIF'), 'normal normal normal normal 10px / normal sans-serif');
shouldBe(computedFont('12px sans-serif'), 'normal normal normal normal 12px / normal sans-serif');
shouldBe(computedFont('12px sans-serif'), 'normal normal normal normal 12px / normal sans-serif');
shouldBe(computedFont('10px sans-serif, sans-serif'), 'normal normal normal normal 10px / normal sans-serif, sans-serif');
shouldBe(computedFont('10px sans-serif, serif'), 'normal normal normal normal 10px / normal sans-serif, serif');
shouldBe(computedFont('12px ahem'), 'normal normal normal normal 12px / normal ahem');
shouldBe(computedFont('12px unlikely-font-name'), 'normal normal normal normal 12px / normal unlikely-font-name');
shouldBe(computedFont('100 10px sans-serif'), 'normal normal 100 normal 10px / normal sans-serif');
shouldBe(computedFont('200 10px sans-serif'), 'normal normal 200 normal 10px / normal sans-serif');
shouldBe(computedFont('300 10px sans-serif'), 'normal normal 300 normal 10px / normal sans-serif');
shouldBe(computedFont('400 10px sans-serif'), 'normal normal normal normal 10px / normal sans-serif');
shouldBe(computedFont('normal 10px sans-serif'), 'normal normal normal normal 10px / normal sans-serif');
shouldBe(computedFont('500 10px sans-serif'), 'normal normal 500 normal 10px / normal sans-serif');
shouldBe(computedFont('600 10px sans-serif'), 'normal normal 600 normal 10px / normal sans-serif');
shouldBe(computedFont('700 10px sans-serif'), 'normal normal bold normal 10px / normal sans-serif');
shouldBe(computedFont('bold 10px sans-serif'), 'normal normal bold normal 10px / normal sans-serif');
shouldBe(computedFont('800 10px sans-serif'), 'normal normal 800 normal 10px / normal sans-serif');
shouldBe(computedFont('900 10px sans-serif'), 'normal normal 900 normal 10px / normal sans-serif');
shouldBe(computedFont('italic 10px sans-serif'), 'italic normal normal normal 10px / normal sans-serif');
shouldBe(computedFont('small-caps 10px sans-serif'), 'normal small-caps normal normal 10px / normal sans-serif');
shouldBe(computedFont('italic small-caps 10px sans-serif'), 'italic small-caps normal normal 10px / normal sans-serif');
shouldBe(computedFont('italic small-caps bold 10px sans-serif'), 'italic small-caps bold normal 10px / normal sans-serif');
shouldBe(computedFont('10px / 100% sans-serif'), 'normal normal normal normal 10px / 10px sans-serif');
shouldBe(computedFont('10px / 100px sans-serif'), 'normal normal normal normal 10px / 100px sans-serif');
shouldBe(computedFont('10px / normal sans-serif'), 'normal normal normal normal 10px / normal sans-serif');
shouldBe(computedFont('10px / normal sans-serif'), 'normal normal normal normal 10px / normal sans-serif');
shouldBe(computedFontCSSValue('10px sans-serif'), 'normal normal normal normal 10px / normal sans-serif');
shouldBe(computedFontCSSValue('10px sans-serif'), 'normal normal normal normal 10px / normal sans-serif');
shouldBe(computedFontCSSValue('10px SANS-SERIF'), 'normal normal normal normal 10px / normal sans-serif');
shouldBe(computedFontCSSValue('12px sans-serif'), 'normal normal normal normal 12px / normal sans-serif');
shouldBe(computedFontCSSValue('12px sans-serif'), 'normal normal normal normal 12px / normal sans-serif');
shouldBe(computedFontCSSValue('10px sans-serif, sans-serif'), 'normal normal normal normal 10px / normal sans-serif, sans-serif');
shouldBe(computedFontCSSValue('10px sans-serif, serif'), 'normal normal normal normal 10px / normal sans-serif, serif');
shouldBe(computedFontCSSValue('12px ahem'), 'normal normal normal normal 12px / normal ahem');
shouldBe(computedFontCSSValue('12px unlikely-font-name'), 'normal normal normal normal 12px / normal unlikely-font-name');
shouldBe(computedFontCSSValue('100 10px sans-serif'), 'normal normal 100 normal 10px / normal sans-serif');
shouldBe(computedFontCSSValue('200 10px sans-serif'), 'normal normal 200 normal 10px / normal sans-serif');
shouldBe(computedFontCSSValue('300 10px sans-serif'), 'normal normal 300 normal 10px / normal sans-serif');
shouldBe(computedFontCSSValue('400 10px sans-serif'), 'normal normal normal normal 10px / normal sans-serif');
shouldBe(computedFontCSSValue('normal 10px sans-serif'), 'normal normal normal normal 10px / normal sans-serif');
shouldBe(computedFontCSSValue('500 10px sans-serif'), 'normal normal 500 normal 10px / normal sans-serif');
shouldBe(computedFontCSSValue('600 10px sans-serif'), 'normal normal 600 normal 10px / normal sans-serif');
shouldBe(computedFontCSSValue('700 10px sans-serif'), 'normal normal bold normal 10px / normal sans-serif');
shouldBe(computedFontCSSValue('bold 10px sans-serif'), 'normal normal bold normal 10px / normal sans-serif');
shouldBe(computedFontCSSValue('800 10px sans-serif'), 'normal normal 800 normal 10px / normal sans-serif');
shouldBe(computedFontCSSValue('900 10px sans-serif'), 'normal normal 900 normal 10px / normal sans-serif');
shouldBe(computedFontCSSValue('italic 10px sans-serif'), 'italic normal normal normal 10px / normal sans-serif');
shouldBe(computedFontCSSValue('small-caps 10px sans-serif'), 'normal small-caps normal normal 10px / normal sans-serif');
shouldBe(computedFontCSSValue('italic small-caps 10px sans-serif'), 'italic small-caps normal normal 10px / normal sans-serif');
shouldBe(computedFontCSSValue('italic small-caps bold 10px sans-serif'), 'italic small-caps bold normal 10px / normal sans-serif');
shouldBe(computedFontCSSValue('10px / 100% sans-serif'), 'normal normal normal normal 10px / 10px sans-serif');
shouldBe(computedFontCSSValue('10px / 100px sans-serif'), 'normal normal normal normal 10px / 100px sans-serif');
shouldBe(computedFontCSSValue('10px / normal sans-serif'), 'normal normal normal normal 10px / normal sans-serif');
shouldBe(computedFontCSSValue('10px / normal sans-serif'), 'normal normal normal normal 10px / normal sans-serif');
Change:
shouldBe(computedStyleFor('content', 'before', 'content'), 'text');
shouldBe(computedStyleFor('content', 'after', 'content'), "'test ' url(data:image/gif;base64,R0lGODlhAQABAJAAAP8AAAAAACwAAAAAAQABAAACAgQBADs=)");
…
shouldBe(computedStyleFor('subcounter2', 'before', 'content'), "counter(section) '.' counter(subsection) '. '");
to:
shouldBe(computedStyleFor('content', 'before', 'content'), '”text”');
shouldBe(computedStyleFor('content', 'after', 'content'), "\”test \“ url(data:image/gif;base64,R0lGODlhAQABAJAAAP8AAAAAACwAAAAAAQABAAACAgQBADs=)");
…
shouldBe(computedStyleFor('subcounter2', 'before', 'content'), "counter(section) \”.\” counter(subsection) \”. \”");
Change:
shouldBe(style.counterIncrement, '');
shouldBe(style.counterReset, '');
to:
shouldBe(style.counterIncrement, 'none');
shouldBe(style.counterReset, 'none');
Change:
shouldBeEqualToString(webkitColumnsValue("columns1"), '10px');
shouldBeEqualToString(webkitColumnsValue("columns2"), '10');
…
shouldBeEqualToString(webkitColumnsValue("columns4"), 'auto');
to:
shouldBeEqualToString(webkitColumnsValue("columns1"), '10px auto');
shouldBeEqualToString(webkitColumnsValue("columns2"), 'auto 10');
…
shouldBeEqualToString(webkitColumnsValue("columns4"), 'auto auto');
Change:
var computedValue = div.style.background;
to:
var computedValue = div.style.backgroundImage;
co19/LayoutTests/fast/css/image-set-setting_t01
This test is now backwards as a result of this Chrome CL https://codereview.chromium.org/1094003002/ setProperty overrides !important
Minimally change the test or use Chromium’s LayoutTests/fast/css/important-js-override.html that is more extensive.
Change (minimal):
shouldBe(a.style.backgroundColor, "green");
to:
shouldBe(a.style.backgroundColor, "re");
co19/LayoutTests/fast/css/important-js-override_t01
This test fails under Chrome with Javascript:
Change:
shouldBe(vertAuto.getComputedStyle().height, "200px");
to:
shouldBe(vertAuto.getComputedStyle().height, "360px");
Change:
shouldBeEqualToString(getComputedStyle(document.getElementById('t0')).content, "APPLIED");
shouldBeEqualToString(getComputedStyle(document.getElementById('t1')).content, "UNTOUCHED");
to:
shouldBeEqualToString(getComputedStyle(document.getElementById('t0')).content, '"APPLIED"');
shouldBeEqualToString(getComputedStyle(document.getElementById('t1')).content, '"UNTOUCHED"');
Change:
shouldBe(stopElement.style.getPropertyValue("stop-color"), "rgb(0, 0, 255)");
to:
shouldBe(stopElement.style.getPropertyValue("stop-color"), "blue");
Change:
document.body.setInnerHtml(r'''
Test parsing of CSS nth-child tokens.
Rules from the stylesheet:
Expected result:
''', treeSanitizer: new NullTreeSanitizer());
to:
document.body.setInnerHtml(r'''
Test parsing of CSS nth-child tokens.
Rules from the stylesheet:
Expected result:
''', treeSanitizer: new NullTreeSanitizer());
Change:
shouldBe(test("text-rendering: optimizeSpeed;"), "optimizespeed");
shouldBe(test("text-rendering: optimizeLegibility;"), "optimizelegibility");
shouldBe(test("text-rendering: geometricPrecision;"), "geometricprecision");
to:
shouldBe(test("text-rendering: optimizeSpeed;"), "optimizeSpeed");
shouldBe(test("text-rendering: optimizeLegibility;"), "optimizeLegibility");
shouldBe(test("text-rendering: geometricPrecision;"), "geometricPrecision");
co19/LayoutTests/fast/css/parsing-text-rendering_t01
Remove lines:
fieldset { background: lime; }
"fieldset",
Change:
var expected = ["'\0\1\2\3\4\5\6\7\8\9\a\b\c\d\e\f'",
"'\10\11\12\13\14\15\16\17\18\19\1a\1b\1c\1d\1e\1f\7f'",
"'\a\b\c\d\e\f\1a\1b\1c\1d\1e\1f\7f'",
"'\0\1\2'", // No space after each control character.
"'\0 \1 \2 '", // One space delimiter (that will be ignored by the CSS parser), plus one actual space.
"'\0 \1 \2 '", // One space delimiter, plus two actual spaces.
"'\f\0g'",
"'\0 0\0 1\0 2\0 3\0 4\0 5\0 6\0 7\0 8\0 9'", // Need a space before [0-9A-Fa-f], but not before [Gg].
"'\0 A\0 B\0 C\0 D\0 E\0 F\0G'",
"'\0 a\0 b\0 c\0 d\0 e\0 f\0g'"];
to:
var expected = ["'\uFFFD\1\2\3\4\5\6\7\8\9\a\b\c\d\e\f'",
"'\10\11\12\13\14\15\16\17\18\19\1a\1b\1c\1d\1e\1f\7f'",
"'\a\b\c\d\e\f\1a\1b\1c\1d\1e\1f\7f'",
"'\uFFFD\1\2'",
"'\uFFFD \1 \2 '", // One space delimiter (that will be ignored by the CSS parser).
"'\uFFFD \1 \2 '", // One space delimiter (that will be ignored by the CSS parser).
"'\f\uFFFDg'",
"\uFFFD0\uFFFD1\uFFFD2\uFFFD3\uFFFD4\uFFFD5\uFFFD6\uFFFD7\uFFFD8\uFFFD9",
"\uFFFDA\uFFFDB\uFFFDC\uFFFDD\uFFFDE\uFFFDF\uFFFDG",
"\uFFFDa\uFFFDb\uFFFDc\uFFFDd\uFFFDe\uFFFDf\uFFFDg"];
Change:
shouldBe(test("-webkit-transform-origin: left top 10px", "-webkit-transform-origin"), "0% 0% 10px");
to:
shouldBe(test("-webkit-transform-origin: left top 10px", "-webkit-transform-origin"), "left top 10px");
Change:
shouldBe(document.getElementById('div1').style.background, 'repeat-x, repeat-y white');
to:
shouldBe(document.getElementById('div1').style.background, '');
Change:
':nth-child(odd)',
':nth-child(even)',
':nth-child(2n)',
':nth-child(2n+1)',
':nth-child(-n+6)',
':nth-last-child(odd)',
':nth-last-child(even)',
':nth-last-child(2n)',
':nth-last-child(2n+1)',
':nth-last-child(-n+6)',
':nth-of-type(odd)',
':nth-of-type(even)',
':nth-of-type(2n)',
':nth-of-type(2n+1)',
':nth-of-type(-n+6)',
':nth-last-of-type(odd)',
':nth-last-of-type(even)',
':nth-last-of-type(2n)',
':nth-last-of-type(2n+1)',
':nth-last-of-type(-n+6)',
to:
':nth-child(2n+1)',
':nth-child(2n)',
':nth-child(2n)',
':nth-child(2n+1)',
':nth-child(-1n+6)',
':nth-last-child(2n+1)',
':nth-last-child(2n)',
':nth-last-child(2n)',
':nth-last-child(2n+1)',
':nth-last-child(-1n+6)',
':nth-of-type(2n+1)',
':nth-of-type(2n)',
':nth-of-type(2n)',
':nth-of-type(2n+1)',
':nth-of-type(-1n+6)',
':nth-last-of-type(2n+1)',
':nth-last-of-type(2n)',
':nth-last-of-type(2n)',
':nth-last-of-type(2n+1)',
':nth-last-of-type(-1n+6)',
Change:
var content = shadowRoot2.getElementsByTagName('content').item(0);
to:
var content = shadowRoot2.querySelectorAll('content')[0];
Change:
var expected = ['#b', '#a', BodyElement, HtmlHtmlElement, HtmlDocument];
to:
var expected = ['#b', '#a', BodyElement, HtmlHtmlElement, HtmlDocument, Window];
Change:
document.getElementById('tref'),
to:
Change:
shouldBeList(shadowRoot.getElementsByClassName('class2'), [div2]);
shouldBeList(shadowRoot.getElementsByClassName('foo'), []);
shouldBeList(shadowRoot.getElementsByTagName('div'), [div1, div2]);
shouldBeList(shadowRoot.getElementsByTagName('foo'), []);
to:
shouldBe(shadowRoot.querySelector('.class2'), div2);
shouldBeNull(shadowRoot.querySelector('.foo'));
shouldBeList(shadowRoot.querySelectorAll('div'), [div1, div2]);
shouldBeList(shadowRoot.querySelectorAll('foo'), []);
co19/LayoutTests/fast/dom/shadow/shadow-root-js-api_t01
It is now allowed to refer to super from a mixin or to mixin a class extending a subclass of Object.
These tests should not expect a compile-time error anymore:
Language/Mixins/not_object_superclass_t01
Language/Mixins/reference_to_super_t01
Please change this chunk of code twice (2 chunks that's not commented out):
from;
shouldBeFalse(customErrorFor("fieldset-many-changes"));
shouldBeFalse(customErrorFor("button-many-changes"));
shouldBeFalse(customErrorFor("button-button-many-changes"));
shouldBeFalse(customErrorFor("button-reset-many-changes"));
shouldBeFalse(customErrorFor("select-many-changes"));
shouldBeFalse(customErrorFor("textarea-many-changes"));
shouldBeFalse(customErrorFor("input-many-changes"));
shouldBeFalse(customErrorFor("input-submit-many-changes"));
to:
shouldBeFalse(customErrorFor("fieldset-many-changes"));
shouldBeTrue('customErrorFor("button-many-changes")');
shouldBeFalse(customErrorFor("button-button-many-changes"));
shouldBeFalse(customErrorFor("button-reset-many-changes"));
shouldBeTrue('customErrorFor("select-many-changes")');
shouldBeTrue('customErrorFor("textarea-many-changes")');
shouldBeTrue('customErrorFor("input-many-changes")');
shouldBeTrue('customErrorFor("input-submit-many-changes")');
The tests in Language/Libraries_and_Scripts/URIs/syntax*
need the references to library1.dart and part.dart to be corrected.
Language/Libraries_and_Scripts/URIs/syntax_t04: RuntimeError
Language/Libraries_and_Scripts/URIs/syntax_t05: RuntimeError
Language/Libraries_and_Scripts/URIs/syntax_t09: RuntimeError
Language/Libraries_and_Scripts/URIs/syntax_t10: RuntimeError
Language/Libraries_and_Scripts/URIs/syntax_t14: RuntimeError
Language/Libraries_and_Scripts/URIs/syntax_t15: RuntimeError
Please add:
if (context == null)
context = tryContext(canvas, "webgl", attributes);
as the first context to create to this function:
create3DContext([canvas, attributes]) {
if (canvas == null)
canvas = document.createElement("canvas");
var context = null;
tryContext(canvas, id, attributes) {
var ctx;
try {
if (attributes == null)
ctx = canvas.getContext(id);
else
ctx = canvas.getContext(id, attributes);
} catch(_) {}
return ctx;
}
if (context == null)
context = tryContext(canvas, "experimental-webgl", attributes);
if (context == null)
context = tryContext(canvas, "webkit-3d", attributes);
if (context == null)
context = tryContext(canvas, "moz-webgl", attributes);
if (context == null)
throw "Unable to fetch WebGL rendering context for Canvas";
return context;
}
These tests should be deleted, now that the use of super is allowed in mixins and now that mixins may extend a subclass of Object:
Language/09_Mixins/09_Mixins_A01_t01
Language/09_Mixins/09_Mixins_A03_t01
Change test co19/LayoutTests/fast/xmlhttprequest/xmlhttprequest-get_t01
remove line:
clipboardData=${e.clipboardData}
In current Safari, LibTest/html/Element/getBoundingClientRect_A01_t02 is failing because the two divs are exactly the same height (38). So the problem isn't with getBoundingClientRect, it's that the layout isn't making it larger. On Chrome the second one is of height 53.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.