Title: [228676] releases/WebKitGTK/webkit-2.20
Revision
228676
Author
carlo...@webkit.org
Date
2018-02-19 05:59:41 -0800 (Mon, 19 Feb 2018)

Log Message

Merge r228312 - [Web Animations] Always expose "composite" in output of getKeyframes()
https://bugs.webkit.org/show_bug.cgi?id=182600

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Update expected results to account for a number of progressions.

* web-platform-tests/web-animations/interfaces/Animatable/animate-expected.txt:
* web-platform-tests/web-animations/interfaces/KeyframeEffect/composite-expected.txt:
* web-platform-tests/web-animations/interfaces/KeyframeEffect/setKeyframes-expected.txt:

Source/WebCore:

The Web Animations spec has changed and whereas the output of getKeyframes() would not feature the "composite" property
for "null" values, it now lists "composite" in all cases.

To support this, we needed to fix an issue in the code generator such that a "null" default value for an optional enum
type was supported.

* animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::getKeyframes):
* animation/KeyframeEffect.h:
* animation/KeyframeEffect.idl:
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateDefaultValue):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::convertDictionary<TestObj::Dictionary>):
(WebCore::convertDictionaryToJS):
* bindings/scripts/test/TestObj.idl:

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.20/LayoutTests/imported/w3c/ChangeLog (228675 => 228676)


--- releases/WebKitGTK/webkit-2.20/LayoutTests/imported/w3c/ChangeLog	2018-02-19 13:59:32 UTC (rev 228675)
+++ releases/WebKitGTK/webkit-2.20/LayoutTests/imported/w3c/ChangeLog	2018-02-19 13:59:41 UTC (rev 228676)
@@ -1,3 +1,16 @@
+2018-02-08  Antoine Quint  <grao...@apple.com>
+
+        [Web Animations] Always expose "composite" in output of getKeyframes()
+        https://bugs.webkit.org/show_bug.cgi?id=182600
+
+        Reviewed by Dean Jackson.
+
+        Update expected results to account for a number of progressions.
+
+        * web-platform-tests/web-animations/interfaces/Animatable/animate-expected.txt:
+        * web-platform-tests/web-animations/interfaces/KeyframeEffect/composite-expected.txt:
+        * web-platform-tests/web-animations/interfaces/KeyframeEffect/setKeyframes-expected.txt:
+
 2018-02-07  Chris Dumez  <cdu...@apple.com>
 
         IndexedDB in service workers is using a memory backed store

Modified: releases/WebKitGTK/webkit-2.20/LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/Animatable/animate-expected.txt (228675 => 228676)


--- releases/WebKitGTK/webkit-2.20/LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/Animatable/animate-expected.txt	2018-02-19 13:59:32 UTC (rev 228675)
+++ releases/WebKitGTK/webkit-2.20/LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/Animatable/animate-expected.txt	2018-02-19 13:59:41 UTC (rev 228676)
@@ -7,63 +7,63 @@
 PASS Element.animate() accepts empty keyframe lists (input: []) 
 PASS Element.animate() accepts empty keyframe lists (input: null) 
 PASS Element.animate() accepts empty keyframe lists (input: undefined) 
-FAIL Element.animate() accepts a one property two value property-indexed keyframes specification assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Element.animate() accepts a one shorthand property two value property-indexed keyframes specification assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,margin,offset" but got "computedOffset,easing,marginBottom,marginLeft,marginRight,marginTop,offset"
-FAIL Element.animate() accepts a two property (one shorthand and one of its longhand components) two value property-indexed keyframes specification assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,margin,marginTop,offset" but got "computedOffset,easing,marginBottom,marginLeft,marginRight,marginTop,offset"
-FAIL Element.animate() accepts a two property two value property-indexed keyframes specification assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset,top" but got "computedOffset,easing,left,offset,top"
-FAIL Element.animate() accepts a two property property-indexed keyframes specification with different numbers of values assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset,top" but got "computedOffset,easing,left,offset,top"
-FAIL Element.animate() accepts a property-indexed keyframes specification with an invalid value assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset,top" but got "computedOffset,easing,left,offset,top"
-FAIL Element.animate() accepts a one property two value property-indexed keyframes specification that needs to stringify its values assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,offset,opacity" but got "computedOffset,easing,offset,opacity"
-FAIL Element.animate() accepts a property-indexed keyframes specification with a CSS variable reference assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Element.animate() accepts a property-indexed keyframes specification with a CSS variable reference in a shorthand property assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,margin,offset" but got "computedOffset,easing,marginBottom,marginLeft,marginRight,marginTop,offset"
-FAIL Element.animate() accepts a one property one value property-indexed keyframes specification assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Element.animate() accepts a one property one non-array value property-indexed keyframes specification assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Element.animate() accepts a one property two value property-indexed keyframes specification where the first value is invalid assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,offset" but got "computedOffset,easing,offset"
-FAIL Element.animate() accepts a one property two value property-indexed keyframes specification where the second value is invalid assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Element.animate() accepts a property-indexed keyframe with a single offset assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Element.animate() accepts a property-indexed keyframe with an array of offsets assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Element.animate() accepts a property-indexed keyframe with an array of offsets that is too short assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Element.animate() accepts a property-indexed keyframe with an array of offsets that is too long assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Element.animate() accepts a property-indexed keyframe with an empty array of offsets assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Element.animate() accepts a property-indexed keyframe with an array of offsets with an embedded null value assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Element.animate() accepts a property-indexed keyframe with an array of offsets with a trailing null value assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Element.animate() accepts a property-indexed keyframe with an array of offsets with leading and trailing null values assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Element.animate() accepts a property-indexed keyframe with an array of offsets with adjacent null values assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Element.animate() accepts a property-indexed keyframe with an array of offsets with all null values (and too many at that) assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Element.animate() accepts a property-indexed keyframe with a single null offset assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Element.animate() accepts a property-indexed keyframe with an array of offsets that is not strictly ascending in the unused part of the array assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Element.animate() accepts a property-indexed keyframe without any specified easing assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Element.animate() accepts a property-indexed keyframe with a single easing assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Element.animate() accepts a property-indexed keyframe with an array of easings assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Element.animate() accepts a property-indexed keyframe with an array of easings that is too short assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Element.animate() accepts a property-indexed keyframe with a single-element array of easings assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Element.animate() accepts a property-indexed keyframe with an empty array of easings assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Element.animate() accepts a property-indexed keyframe with an array of easings that is too long assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
+PASS Element.animate() accepts a one property two value property-indexed keyframes specification 
+FAIL Element.animate() accepts a one shorthand property two value property-indexed keyframes specification assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,margin,offset" but got "composite,computedOffset,easing,marginBottom,marginLeft,marginRight,marginTop,offset"
+FAIL Element.animate() accepts a two property (one shorthand and one of its longhand components) two value property-indexed keyframes specification assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,margin,marginTop,offset" but got "composite,computedOffset,easing,marginBottom,marginLeft,marginRight,marginTop,offset"
+PASS Element.animate() accepts a two property two value property-indexed keyframes specification 
+PASS Element.animate() accepts a two property property-indexed keyframes specification with different numbers of values 
+PASS Element.animate() accepts a property-indexed keyframes specification with an invalid value 
+PASS Element.animate() accepts a one property two value property-indexed keyframes specification that needs to stringify its values 
+FAIL Element.animate() accepts a property-indexed keyframes specification with a CSS variable reference assert_equals: value for 'left' on ComputedKeyframe #0 expected "var(--dist)" but got "auto"
+FAIL Element.animate() accepts a property-indexed keyframes specification with a CSS variable reference in a shorthand property assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,margin,offset" but got "composite,computedOffset,easing,marginBottom,marginLeft,marginRight,marginTop,offset"
+PASS Element.animate() accepts a one property one value property-indexed keyframes specification 
+PASS Element.animate() accepts a one property one non-array value property-indexed keyframes specification 
+PASS Element.animate() accepts a one property two value property-indexed keyframes specification where the first value is invalid 
+PASS Element.animate() accepts a one property two value property-indexed keyframes specification where the second value is invalid 
+PASS Element.animate() accepts a property-indexed keyframe with a single offset 
+FAIL Element.animate() accepts a property-indexed keyframe with an array of offsets assert_equals: value for 'computedOffset' on ComputedKeyframe #1 expected 0.25 but got 0.45000000000000007
+FAIL Element.animate() accepts a property-indexed keyframe with an array of offsets that is too short assert_equals: value for 'computedOffset' on ComputedKeyframe #1 expected 0.25 but got 0.5
+PASS Element.animate() accepts a property-indexed keyframe with an array of offsets that is too long 
+PASS Element.animate() accepts a property-indexed keyframe with an empty array of offsets 
+PASS Element.animate() accepts a property-indexed keyframe with an array of offsets with an embedded null value 
+FAIL Element.animate() accepts a property-indexed keyframe with an array of offsets with a trailing null value assert_equals: value for 'computedOffset' on ComputedKeyframe #1 expected 0.25 but got 0.5
+FAIL Element.animate() accepts a property-indexed keyframe with an array of offsets with leading and trailing null values assert_equals: value for 'computedOffset' on ComputedKeyframe #1 expected 0.25 but got 0.5
+PASS Element.animate() accepts a property-indexed keyframe with an array of offsets with adjacent null values 
+PASS Element.animate() accepts a property-indexed keyframe with an array of offsets with all null values (and too many at that) 
+PASS Element.animate() accepts a property-indexed keyframe with a single null offset 
+FAIL Element.animate() accepts a property-indexed keyframe with an array of offsets that is not strictly ascending in the unused part of the array assert_equals: value for 'computedOffset' on ComputedKeyframe #1 expected 0.2 but got 0.4
+PASS Element.animate() accepts a property-indexed keyframe without any specified easing 
+PASS Element.animate() accepts a property-indexed keyframe with a single easing 
+PASS Element.animate() accepts a property-indexed keyframe with an array of easings 
+FAIL Element.animate() accepts a property-indexed keyframe with an array of easings that is too short assert_equals: value for 'easing' on ComputedKeyframe #2 expected "ease-in" but got "ease-out"
+PASS Element.animate() accepts a property-indexed keyframe with a single-element array of easings 
+PASS Element.animate() accepts a property-indexed keyframe with an empty array of easings 
+PASS Element.animate() accepts a property-indexed keyframe with an array of easings that is too long 
 PASS Element.animate() accepts a property-indexed keyframe with a single composite operation 
 PASS Element.animate() accepts a property-indexed keyframe with a composite array 
 FAIL Element.animate() accepts a property-indexed keyframe with a composite array that is too short assert_equals: value for 'composite' on ComputedKeyframe #2 expected "add" but got "replace"
 PASS Element.animate() accepts a property-indexed keyframe with a composite array that is too long 
 PASS Element.animate() accepts a property-indexed keyframe with a single-element composite array 
-FAIL Element.animate() accepts a one property one keyframe sequence assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Element.animate() accepts a one property two keyframe sequence assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Element.animate() accepts a two property two keyframe sequence assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset,top" but got "computedOffset,easing,left,offset,top"
-FAIL Element.animate() accepts a one shorthand property two keyframe sequence assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,margin,offset" but got "computedOffset,easing,marginBottom,marginLeft,marginRight,marginTop,offset"
-FAIL Element.animate() accepts a two property (a shorthand and one of its component longhands) two keyframe sequence assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,margin,marginTop,offset" but got "computedOffset,easing,marginBottom,marginLeft,marginRight,marginTop,offset"
-FAIL Element.animate() accepts a two property keyframe sequence where one property is missing from the first keyframe assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Element.animate() accepts a two property keyframe sequence where one property is missing from the last keyframe assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset,top" but got "computedOffset,easing,left,offset,top"
-FAIL Element.animate() accepts a one property two keyframe sequence that needs to stringify its values assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,offset,opacity" but got "computedOffset,easing,offset,opacity"
-FAIL Element.animate() accepts a keyframe sequence with a CSS variable reference assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Element.animate() accepts a keyframe sequence with a CSS variable reference in a shorthand property assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,margin,offset" but got "computedOffset,easing,marginBottom,marginLeft,marginRight,marginTop,offset"
+PASS Element.animate() accepts a one property one keyframe sequence 
+PASS Element.animate() accepts a one property two keyframe sequence 
+PASS Element.animate() accepts a two property two keyframe sequence 
+FAIL Element.animate() accepts a one shorthand property two keyframe sequence assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,margin,offset" but got "composite,computedOffset,easing,marginBottom,marginLeft,marginRight,marginTop,offset"
+FAIL Element.animate() accepts a two property (a shorthand and one of its component longhands) two keyframe sequence assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,margin,marginTop,offset" but got "composite,computedOffset,easing,marginBottom,marginLeft,marginRight,marginTop,offset"
+PASS Element.animate() accepts a two property keyframe sequence where one property is missing from the first keyframe 
+PASS Element.animate() accepts a two property keyframe sequence where one property is missing from the last keyframe 
+PASS Element.animate() accepts a one property two keyframe sequence that needs to stringify its values 
+FAIL Element.animate() accepts a keyframe sequence with a CSS variable reference assert_equals: value for 'left' on ComputedKeyframe #0 expected "var(--dist)" but got "auto"
+FAIL Element.animate() accepts a keyframe sequence with a CSS variable reference in a shorthand property assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,margin,offset" but got "composite,computedOffset,easing,marginBottom,marginLeft,marginRight,marginTop,offset"
 FAIL Element.animate() accepts a keyframe sequence with duplicate values for a given interior offset Type error
 FAIL Element.animate() accepts a keyframe sequence with duplicate values for offsets 0 and 1 Type error
 FAIL Element.animate() accepts a two property four keyframe sequence Type error
-FAIL Element.animate() accepts a single keyframe sequence with omitted offset assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Element.animate() accepts a single keyframe sequence with null offset assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Element.animate() accepts a single keyframe sequence with string offset assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Element.animate() accepts a one property keyframe sequence with some omitted offsets assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Element.animate() accepts a one property keyframe sequence with some null offsets assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Element.animate() accepts a two property keyframe sequence with some omitted offsets assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset,top" but got "computedOffset,easing,left,offset,top"
-FAIL Element.animate() accepts a one property keyframe sequence with all omitted offsets assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
+PASS Element.animate() accepts a single keyframe sequence with omitted offset 
+PASS Element.animate() accepts a single keyframe sequence with null offset 
+PASS Element.animate() accepts a single keyframe sequence with string offset 
+PASS Element.animate() accepts a one property keyframe sequence with some omitted offsets 
+PASS Element.animate() accepts a one property keyframe sequence with some null offsets 
+PASS Element.animate() accepts a two property keyframe sequence with some omitted offsets 
+PASS Element.animate() accepts a one property keyframe sequence with all omitted offsets 
 FAIL Element.animate() accepts a keyframe sequence with different easing values, but the same easing value for a given offset Type error
 FAIL Element.animate() accepts a keyframe sequence with different composite values, but the same composite value for a given offset Type error
 PASS Element.animate() does not accept keyframes with an out-of-bounded positive offset 

Modified: releases/WebKitGTK/webkit-2.20/LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/KeyframeEffect/composite-expected.txt (228675 => 228676)


--- releases/WebKitGTK/webkit-2.20/LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/KeyframeEffect/composite-expected.txt	2018-02-19 13:59:32 UTC (rev 228675)
+++ releases/WebKitGTK/webkit-2.20/LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/KeyframeEffect/composite-expected.txt	2018-02-19 13:59:41 UTC (rev 228676)
@@ -1,6 +1,6 @@
 
 PASS Default value 
 PASS Change composite value 
-FAIL Unspecified keyframe composite value when setting effect composite assert_equals: unspecified keyframe composite value should be null even if effect composite is set expected (object) null but got (undefined) undefined
+PASS Unspecified keyframe composite value when setting effect composite 
 PASS Specified keyframe composite value when setting effect composite 
 

Modified: releases/WebKitGTK/webkit-2.20/LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/KeyframeEffect/setKeyframes-expected.txt (228675 => 228676)


--- releases/WebKitGTK/webkit-2.20/LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/KeyframeEffect/setKeyframes-expected.txt	2018-02-19 13:59:32 UTC (rev 228675)
+++ releases/WebKitGTK/webkit-2.20/LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/KeyframeEffect/setKeyframes-expected.txt	2018-02-19 13:59:41 UTC (rev 228676)
@@ -1,62 +1,62 @@
 
 PASS Keyframes can be replaced with an empty keyframe 
-FAIL Keyframes can be replaced with a one property two value property-indexed keyframes specification assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Keyframes can be replaced with a one shorthand property two value property-indexed keyframes specification assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,margin,offset" but got "computedOffset,easing,marginBottom,marginLeft,marginRight,marginTop,offset"
-FAIL Keyframes can be replaced with a two property (one shorthand and one of its longhand components) two value property-indexed keyframes specification assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,margin,marginTop,offset" but got "computedOffset,easing,marginBottom,marginLeft,marginRight,marginTop,offset"
-FAIL Keyframes can be replaced with a two property two value property-indexed keyframes specification assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset,top" but got "computedOffset,easing,left,offset,top"
-FAIL Keyframes can be replaced with a two property property-indexed keyframes specification with different numbers of values assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset,top" but got "computedOffset,easing,left,offset,top"
-FAIL Keyframes can be replaced with a property-indexed keyframes specification with an invalid value assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset,top" but got "computedOffset,easing,left,offset,top"
-FAIL Keyframes can be replaced with a one property two value property-indexed keyframes specification that needs to stringify its values assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,offset,opacity" but got "computedOffset,easing,offset,opacity"
-FAIL Keyframes can be replaced with a property-indexed keyframes specification with a CSS variable reference assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Keyframes can be replaced with a property-indexed keyframes specification with a CSS variable reference in a shorthand property assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,margin,offset" but got "computedOffset,easing,marginBottom,marginLeft,marginRight,marginTop,offset"
-FAIL Keyframes can be replaced with a one property one value property-indexed keyframes specification assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Keyframes can be replaced with a one property one non-array value property-indexed keyframes specification assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Keyframes can be replaced with a one property two value property-indexed keyframes specification where the first value is invalid assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,offset" but got "computedOffset,easing,offset"
-FAIL Keyframes can be replaced with a one property two value property-indexed keyframes specification where the second value is invalid assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Keyframes can be replaced with a property-indexed keyframe with a single offset assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Keyframes can be replaced with a property-indexed keyframe with an array of offsets assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Keyframes can be replaced with a property-indexed keyframe with an array of offsets that is too short assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Keyframes can be replaced with a property-indexed keyframe with an array of offsets that is too long assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Keyframes can be replaced with a property-indexed keyframe with an empty array of offsets assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Keyframes can be replaced with a property-indexed keyframe with an array of offsets with an embedded null value assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Keyframes can be replaced with a property-indexed keyframe with an array of offsets with a trailing null value assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Keyframes can be replaced with a property-indexed keyframe with an array of offsets with leading and trailing null values assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Keyframes can be replaced with a property-indexed keyframe with an array of offsets with adjacent null values assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Keyframes can be replaced with a property-indexed keyframe with an array of offsets with all null values (and too many at that) assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Keyframes can be replaced with a property-indexed keyframe with a single null offset assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Keyframes can be replaced with a property-indexed keyframe with an array of offsets that is not strictly ascending in the unused part of the array assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Keyframes can be replaced with a property-indexed keyframe without any specified easing assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Keyframes can be replaced with a property-indexed keyframe with a single easing assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Keyframes can be replaced with a property-indexed keyframe with an array of easings assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Keyframes can be replaced with a property-indexed keyframe with an array of easings that is too short assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Keyframes can be replaced with a property-indexed keyframe with a single-element array of easings assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Keyframes can be replaced with a property-indexed keyframe with an empty array of easings assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Keyframes can be replaced with a property-indexed keyframe with an array of easings that is too long assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
+PASS Keyframes can be replaced with a one property two value property-indexed keyframes specification 
+FAIL Keyframes can be replaced with a one shorthand property two value property-indexed keyframes specification assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,margin,offset" but got "composite,computedOffset,easing,marginBottom,marginLeft,marginRight,marginTop,offset"
+FAIL Keyframes can be replaced with a two property (one shorthand and one of its longhand components) two value property-indexed keyframes specification assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,margin,marginTop,offset" but got "composite,computedOffset,easing,marginBottom,marginLeft,marginRight,marginTop,offset"
+PASS Keyframes can be replaced with a two property two value property-indexed keyframes specification 
+PASS Keyframes can be replaced with a two property property-indexed keyframes specification with different numbers of values 
+PASS Keyframes can be replaced with a property-indexed keyframes specification with an invalid value 
+PASS Keyframes can be replaced with a one property two value property-indexed keyframes specification that needs to stringify its values 
+FAIL Keyframes can be replaced with a property-indexed keyframes specification with a CSS variable reference assert_equals: value for 'left' on ComputedKeyframe #0 expected "var(--dist)" but got "auto"
+FAIL Keyframes can be replaced with a property-indexed keyframes specification with a CSS variable reference in a shorthand property assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,margin,offset" but got "composite,computedOffset,easing,marginBottom,marginLeft,marginRight,marginTop,offset"
+PASS Keyframes can be replaced with a one property one value property-indexed keyframes specification 
+PASS Keyframes can be replaced with a one property one non-array value property-indexed keyframes specification 
+PASS Keyframes can be replaced with a one property two value property-indexed keyframes specification where the first value is invalid 
+PASS Keyframes can be replaced with a one property two value property-indexed keyframes specification where the second value is invalid 
+PASS Keyframes can be replaced with a property-indexed keyframe with a single offset 
+FAIL Keyframes can be replaced with a property-indexed keyframe with an array of offsets assert_equals: value for 'computedOffset' on ComputedKeyframe #1 expected 0.25 but got 0.45000000000000007
+FAIL Keyframes can be replaced with a property-indexed keyframe with an array of offsets that is too short assert_equals: value for 'computedOffset' on ComputedKeyframe #1 expected 0.25 but got 0.5
+PASS Keyframes can be replaced with a property-indexed keyframe with an array of offsets that is too long 
+PASS Keyframes can be replaced with a property-indexed keyframe with an empty array of offsets 
+PASS Keyframes can be replaced with a property-indexed keyframe with an array of offsets with an embedded null value 
+FAIL Keyframes can be replaced with a property-indexed keyframe with an array of offsets with a trailing null value assert_equals: value for 'computedOffset' on ComputedKeyframe #1 expected 0.25 but got 0.5
+FAIL Keyframes can be replaced with a property-indexed keyframe with an array of offsets with leading and trailing null values assert_equals: value for 'computedOffset' on ComputedKeyframe #1 expected 0.25 but got 0.5
+PASS Keyframes can be replaced with a property-indexed keyframe with an array of offsets with adjacent null values 
+PASS Keyframes can be replaced with a property-indexed keyframe with an array of offsets with all null values (and too many at that) 
+PASS Keyframes can be replaced with a property-indexed keyframe with a single null offset 
+FAIL Keyframes can be replaced with a property-indexed keyframe with an array of offsets that is not strictly ascending in the unused part of the array assert_equals: value for 'computedOffset' on ComputedKeyframe #1 expected 0.2 but got 0.4
+PASS Keyframes can be replaced with a property-indexed keyframe without any specified easing 
+PASS Keyframes can be replaced with a property-indexed keyframe with a single easing 
+PASS Keyframes can be replaced with a property-indexed keyframe with an array of easings 
+FAIL Keyframes can be replaced with a property-indexed keyframe with an array of easings that is too short assert_equals: value for 'easing' on ComputedKeyframe #2 expected "ease-in" but got "ease-out"
+PASS Keyframes can be replaced with a property-indexed keyframe with a single-element array of easings 
+PASS Keyframes can be replaced with a property-indexed keyframe with an empty array of easings 
+PASS Keyframes can be replaced with a property-indexed keyframe with an array of easings that is too long 
 PASS Keyframes can be replaced with a property-indexed keyframe with a single composite operation 
 PASS Keyframes can be replaced with a property-indexed keyframe with a composite array 
 FAIL Keyframes can be replaced with a property-indexed keyframe with a composite array that is too short assert_equals: value for 'composite' on ComputedKeyframe #2 expected "add" but got "replace"
 PASS Keyframes can be replaced with a property-indexed keyframe with a composite array that is too long 
 PASS Keyframes can be replaced with a property-indexed keyframe with a single-element composite array 
-FAIL Keyframes can be replaced with a one property one keyframe sequence assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Keyframes can be replaced with a one property two keyframe sequence assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Keyframes can be replaced with a two property two keyframe sequence assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset,top" but got "computedOffset,easing,left,offset,top"
-FAIL Keyframes can be replaced with a one shorthand property two keyframe sequence assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,margin,offset" but got "computedOffset,easing,marginBottom,marginLeft,marginRight,marginTop,offset"
-FAIL Keyframes can be replaced with a two property (a shorthand and one of its component longhands) two keyframe sequence assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,margin,marginTop,offset" but got "computedOffset,easing,marginBottom,marginLeft,marginRight,marginTop,offset"
-FAIL Keyframes can be replaced with a two property keyframe sequence where one property is missing from the first keyframe assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Keyframes can be replaced with a two property keyframe sequence where one property is missing from the last keyframe assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset,top" but got "computedOffset,easing,left,offset,top"
-FAIL Keyframes can be replaced with a one property two keyframe sequence that needs to stringify its values assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,offset,opacity" but got "computedOffset,easing,offset,opacity"
-FAIL Keyframes can be replaced with a keyframe sequence with a CSS variable reference assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Keyframes can be replaced with a keyframe sequence with a CSS variable reference in a shorthand property assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,margin,offset" but got "computedOffset,easing,marginBottom,marginLeft,marginRight,marginTop,offset"
+PASS Keyframes can be replaced with a one property one keyframe sequence 
+PASS Keyframes can be replaced with a one property two keyframe sequence 
+PASS Keyframes can be replaced with a two property two keyframe sequence 
+FAIL Keyframes can be replaced with a one shorthand property two keyframe sequence assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,margin,offset" but got "composite,computedOffset,easing,marginBottom,marginLeft,marginRight,marginTop,offset"
+FAIL Keyframes can be replaced with a two property (a shorthand and one of its component longhands) two keyframe sequence assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,margin,marginTop,offset" but got "composite,computedOffset,easing,marginBottom,marginLeft,marginRight,marginTop,offset"
+PASS Keyframes can be replaced with a two property keyframe sequence where one property is missing from the first keyframe 
+PASS Keyframes can be replaced with a two property keyframe sequence where one property is missing from the last keyframe 
+PASS Keyframes can be replaced with a one property two keyframe sequence that needs to stringify its values 
+FAIL Keyframes can be replaced with a keyframe sequence with a CSS variable reference assert_equals: value for 'left' on ComputedKeyframe #0 expected "var(--dist)" but got "auto"
+FAIL Keyframes can be replaced with a keyframe sequence with a CSS variable reference in a shorthand property assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,margin,offset" but got "composite,computedOffset,easing,marginBottom,marginLeft,marginRight,marginTop,offset"
 FAIL Keyframes can be replaced with a keyframe sequence with duplicate values for a given interior offset Type error
 FAIL Keyframes can be replaced with a keyframe sequence with duplicate values for offsets 0 and 1 Type error
 FAIL Keyframes can be replaced with a two property four keyframe sequence Type error
-FAIL Keyframes can be replaced with a single keyframe sequence with omitted offset assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Keyframes can be replaced with a single keyframe sequence with null offset assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Keyframes can be replaced with a single keyframe sequence with string offset assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Keyframes can be replaced with a one property keyframe sequence with some omitted offsets assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Keyframes can be replaced with a one property keyframe sequence with some null offsets assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
-FAIL Keyframes can be replaced with a two property keyframe sequence with some omitted offsets assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset,top" but got "computedOffset,easing,left,offset,top"
-FAIL Keyframes can be replaced with a one property keyframe sequence with all omitted offsets assert_equals: properties on ComputedKeyframe #0 should match expected "composite,computedOffset,easing,left,offset" but got "computedOffset,easing,left,offset"
+PASS Keyframes can be replaced with a single keyframe sequence with omitted offset 
+PASS Keyframes can be replaced with a single keyframe sequence with null offset 
+PASS Keyframes can be replaced with a single keyframe sequence with string offset 
+PASS Keyframes can be replaced with a one property keyframe sequence with some omitted offsets 
+PASS Keyframes can be replaced with a one property keyframe sequence with some null offsets 
+PASS Keyframes can be replaced with a two property keyframe sequence with some omitted offsets 
+PASS Keyframes can be replaced with a one property keyframe sequence with all omitted offsets 
 FAIL Keyframes can be replaced with a keyframe sequence with different easing values, but the same easing value for a given offset Type error
 FAIL Keyframes can be replaced with a keyframe sequence with different composite values, but the same composite value for a given offset Type error
 PASS KeyframeEffect constructor throws with keyframes with an out-of-bounded positive offset 

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/ChangeLog (228675 => 228676)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/ChangeLog	2018-02-19 13:59:32 UTC (rev 228675)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/ChangeLog	2018-02-19 13:59:41 UTC (rev 228676)
@@ -1,3 +1,27 @@
+2018-02-08  Antoine Quint  <grao...@apple.com>
+
+        [Web Animations] Always expose "composite" in output of getKeyframes()
+        https://bugs.webkit.org/show_bug.cgi?id=182600
+
+        Reviewed by Dean Jackson.
+
+        The Web Animations spec has changed and whereas the output of getKeyframes() would not feature the "composite" property
+        for "null" values, it now lists "composite" in all cases.
+
+        To support this, we needed to fix an issue in the code generator such that a "null" default value for an optional enum
+        type was supported.
+
+        * animation/KeyframeEffect.cpp:
+        (WebCore::KeyframeEffect::getKeyframes):
+        * animation/KeyframeEffect.h:
+        * animation/KeyframeEffect.idl:
+        * bindings/scripts/CodeGeneratorJS.pm:
+        (GenerateDefaultValue):
+        * bindings/scripts/test/JS/JSTestObj.cpp:
+        (WebCore::convertDictionary<TestObj::Dictionary>):
+        (WebCore::convertDictionaryToJS):
+        * bindings/scripts/test/TestObj.idl:
+
 2018-02-13  Chris Dumez  <cdu...@apple.com>
 
         REGRESSION (r228299): Broke reader mode in Safari

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/animation/KeyframeEffect.cpp (228675 => 228676)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/animation/KeyframeEffect.cpp	2018-02-19 13:59:32 UTC (rev 228675)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/animation/KeyframeEffect.cpp	2018-02-19 13:59:41 UTC (rev 228676)
@@ -451,33 +451,26 @@
         // 1. Initialize a dictionary object, output keyframe, using the following definition:
         //
         // dictionary BaseComputedKeyframe {
-        //      double?            offset = null;
-        //      double             computedOffset;
-        //      DOMString          easing = "linear";
-        //      CompositeOperation composite;
+        //      double?             offset = null;
+        //      double              computedOffset;
+        //      DOMString           easing = "linear";
+        //      CompositeOperation? composite = null;
         // };
 
-        // 2. Set offset, computedOffset, easing members of output keyframe to the respective values keyframe offset, computed keyframe offset,
-        // and keyframe-specific timing function of keyframe.
-
-        // 3. If keyframe has a keyframe-specific composite operation, set composite to that value.
+        // 2. Set offset, computedOffset, easing, composite members of output keyframe to the respective values keyframe offset, computed keyframe
+        // offset, keyframe-specific timing function and keyframe-specific composite operation of keyframe.
         BaseComputedKeyframe computedKeyframe;
         computedKeyframe.offset = m_offsets[i];
         computedKeyframe.computedOffset = keyframe.key();
         computedKeyframe.easing = m_timingFunctions[i]->cssText();
+        computedKeyframe.composite = m_compositeOperations[i];
 
         auto outputKeyframe = convertDictionaryToJS(state, *jsCast<JSDOMGlobalObject*>(state.lexicalGlobalObject()), computedKeyframe);
 
-        // If we have a non-null CompositeOperation for this keyframes, set the JS property for it.
-        if (auto compositeOperation = m_compositeOperations[i]) {
-            PropertyDescriptor propertyDescriptor(convertEnumerationToJS(state, compositeOperation.value()), 0);
-            JSObject::defineOwnProperty(outputKeyframe, &state, AtomicString("composite").impl(), propertyDescriptor, false);
-        }
-
         auto& style = *keyframe.style();
         auto computedStyleExtractor = ComputedStyleExtractor(m_target.get());
 
-        // 4. For each animation property-value pair specified on keyframe, declaration, perform the following steps:
+        // 3. For each animation property-value pair specified on keyframe, declaration, perform the following steps:
         for (auto cssPropertyId : keyframe.properties()) {
             // 1. Let property name be the result of applying the animation property name to IDL attribute name algorithm to the property name of declaration.
             auto propertyName = CSSPropertyIDToIDLAttributeName(cssPropertyId);
@@ -490,7 +483,7 @@
             JSObject::defineOwnProperty(outputKeyframe, &state, AtomicString(propertyName).impl(), PropertyDescriptor(value, 0), false);
         }
 
-        // 5. Append output keyframe to result.
+        // 4. Append output keyframe to result.
         result.append(JSC::Strong<JSC::JSObject> { state.vm(), outputKeyframe });
     }
 

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/animation/KeyframeEffect.h (228675 => 228676)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/animation/KeyframeEffect.h	2018-02-19 13:59:32 UTC (rev 228675)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/animation/KeyframeEffect.h	2018-02-19 13:59:41 UTC (rev 228676)
@@ -73,6 +73,7 @@
         std::optional<double> offset;
         double computedOffset;
         String easing { "linear" };
+        std::optional<CompositeOperation> composite;
     };
 
     Element* target() const { return m_target.get(); }

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/animation/KeyframeEffect.idl (228675 => 228676)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/animation/KeyframeEffect.idl	2018-02-19 13:59:32 UTC (rev 228675)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/animation/KeyframeEffect.idl	2018-02-19 13:59:41 UTC (rev 228676)
@@ -48,4 +48,5 @@
      double? offset = null;
      double computedOffset;
      DOMString easing = "linear";
+     CompositeOperation? composite = null;
 };

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm (228675 => 228676)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm	2018-02-19 13:59:32 UTC (rev 228675)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm	2018-02-19 13:59:41 UTC (rev 228676)
@@ -2188,6 +2188,10 @@
     if ($codeGenerator->IsEnumType($type)) {
         # FIXME: Would be nice to report an error if the value does not have quote marks around it.
         # FIXME: Would be nice to report an error if the value is not one of the enumeration values.
+        if ($defaultValue eq "null") {
+            die if !$type->isNullable;
+            return "std::nullopt";
+        }
         my $className = GetEnumerationClassName($type, $typeScope);
         my $enumerationValueName = GetEnumerationValueName(substr($defaultValue, 1, -1));
         return $className . "::" . $enumerationValueName;

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp (228675 => 228676)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp	2018-02-19 13:59:32 UTC (rev 228675)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp	2018-02-19 13:59:41 UTC (rev 228676)
@@ -637,6 +637,18 @@
         RETURN_IF_EXCEPTION(throwScope, { });
     } else
         result.largeIntegerWithDefault = 0;
+    JSValue nullableEnumValue;
+    if (isNullOrUndefined)
+        nullableEnumValue = jsUndefined();
+    else {
+        nullableEnumValue = object->get(&state, Identifier::fromString(&state, "nullableEnum"));
+        RETURN_IF_EXCEPTION(throwScope, { });
+    }
+    if (!nullableEnumValue.isUndefined()) {
+        result.nullableEnum = convert<IDLNullable<IDLEnumeration<TestObj::EnumType>>>(state, nullableEnumValue);
+        RETURN_IF_EXCEPTION(throwScope, { });
+    } else
+        result.nullableEnum = std::nullopt;
     JSValue nullableIntegerWithDefaultValue;
     if (isNullOrUndefined)
         nullableIntegerWithDefaultValue = jsUndefined();
@@ -999,6 +1011,8 @@
     }
     auto largeIntegerWithDefaultValue = toJS<IDLLongLong>(dictionary.largeIntegerWithDefault);
     result->putDirect(vm, JSC::Identifier::fromString(&vm, "largeIntegerWithDefault"), largeIntegerWithDefaultValue);
+    auto nullableEnumValue = toJS<IDLNullable<IDLEnumeration<TestObj::EnumType>>>(state, dictionary.nullableEnum);
+    result->putDirect(vm, JSC::Identifier::fromString(&vm, "nullableEnum"), nullableEnumValue);
     auto nullableIntegerWithDefaultValue = toJS<IDLNullable<IDLLong>>(dictionary.nullableIntegerWithDefault);
     result->putDirect(vm, JSC::Identifier::fromString(&vm, "nullableIntegerWithDefault"), nullableIntegerWithDefaultValue);
     auto nullableNodeValue = toJS<IDLNullable<IDLInterface<Node>>>(state, globalObject, dictionary.nullableNode);

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/bindings/scripts/test/TestObj.idl (228675 => 228676)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/bindings/scripts/test/TestObj.idl	2018-02-19 13:59:32 UTC (rev 228675)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/bindings/scripts/test/TestObj.idl	2018-02-19 13:59:41 UTC (rev 228676)
@@ -490,6 +490,7 @@
     unsigned long long unsignedLargeIntegerWithDefault = 0;
     long? nullableIntegerWithDefault = null;
     Node? nullableNode = null;
+    TestEnumType? nullableEnum = null;
     any anyValue;
     any anyValueWithNullDefault = null;
     [ImplementedAs=foo] any fooAlias;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to