Changeset 265002 in webkit
- Timestamp:
- Jul 28, 2020 1:14:31 PM (4 years ago)
- Location:
- trunk
- Files:
-
- 4 added
- 29 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/imported/w3c/ChangeLog
r265001 r265002 1 2020-07-28 Clark Wang <clark_wang@apple.com> 2 3 Added constructor methods to ChannelMergerNode, ChannelSplitterNode 4 https://bugs.webkit.org/show_bug.cgi?id=214851 5 6 Reviewed by Chris Dumez. 7 8 Re-baselined existing tests that now pass, or fail further along. 9 10 * web-platform-tests/webaudio/idlharness.https.window-expected.txt: 11 * web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/buffer-resampling-expected.txt: 12 * web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching-expected.txt: 13 * web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-dynamics-compressor-connections-expected.txt: 14 * web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/simple-input-output.https-expected.txt: 15 * web-platform-tests/webaudio/the-audio-api/the-channelmergernode-interface/active-processing.https-expected.txt: 16 * web-platform-tests/webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-basic-expected.txt: 17 * web-platform-tests/webaudio/the-audio-api/the-channelmergernode-interface/ctor-channelmerger-expected.txt: 18 * web-platform-tests/webaudio/the-audio-api/the-channelsplitternode-interface/audiochannelsplitter-expected.txt: 19 * web-platform-tests/webaudio/the-audio-api/the-channelsplitternode-interface/ctor-channelsplitter-expected.txt: 20 * web-platform-tests/webaudio/the-audio-api/the-oscillatornode-interface/detune-limiting-expected.txt: 21 * web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-distance-clamping-expected.txt: 22 * web-platform-tests/webaudio/the-audio-api/the-scriptprocessornode-interface/simple-input-output-expected.txt: 23 1 24 2020-07-28 Rob Buis <rbuis@igalia.com> 2 25 -
trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/idlharness.https.window-expected.txt
r264941 r265002 502 502 FAIL AudioNode interface: new BiquadFilterNode(context) must inherit property "channelInterpretation" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new BiquadFilterNode(context)')" 503 503 PASS ChannelMergerNode interface: existence and properties of interface object 504 FAIL ChannelMergerNode interface object length assert_equals: wrong value for ChannelMergerNode.length expected 1 but got 0 504 PASS ChannelMergerNode interface object length 505 505 PASS ChannelMergerNode interface object name 506 506 PASS ChannelMergerNode interface: existence and properties of interface prototype object 507 507 PASS ChannelMergerNode interface: existence and properties of interface prototype object's "constructor" property 508 508 PASS ChannelMergerNode interface: existence and properties of interface prototype object's @@unscopables property 509 FAIL ChannelMergerNode must be primary interface of new ChannelMergerNode(context) assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelMergerNode(context)')" 510 FAIL Stringification of new ChannelMergerNode(context) assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelMergerNode(context)')" 511 FAIL AudioNode interface: new ChannelMergerNode(context) must inherit property "connect(AudioNode, optional unsigned long, optional unsigned long)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelMergerNode(context)')" 512 FAIL AudioNode interface: calling connect(AudioNode, optional unsigned long, optional unsigned long) on new ChannelMergerNode(context) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelMergerNode(context)')" 513 FAIL AudioNode interface: new ChannelMergerNode(context) must inherit property "connect(AudioParam, optional unsigned long)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelMergerNode(context)')" 514 FAIL AudioNode interface: calling connect(AudioParam, optional unsigned long) on new ChannelMergerNode(context) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelMergerNode(context)')" 515 FAIL AudioNode interface: new ChannelMergerNode(context) must inherit property "disconnect()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelMergerNode(context)')" 516 FAIL AudioNode interface: new ChannelMergerNode(context) must inherit property "disconnect(unsigned long)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelMergerNode(context)')" 517 FAIL AudioNode interface: calling disconnect(unsigned long) on new ChannelMergerNode(context) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelMergerNode(context)')" 518 FAIL AudioNode interface: new ChannelMergerNode(context) must inherit property "disconnect(AudioNode)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelMergerNode(context)')" 519 FAIL AudioNode interface: calling disconnect(AudioNode) on new ChannelMergerNode(context) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelMergerNode(context)')" 520 FAIL AudioNode interface: new ChannelMergerNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelMergerNode(context)')" 521 FAIL AudioNode interface: calling disconnect(AudioNode, unsigned long) on new ChannelMergerNode(context) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelMergerNode(context)')" 522 FAIL AudioNode interface: new ChannelMergerNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelMergerNode(context)')" 523 FAIL AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new ChannelMergerNode(context) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelMergerNode(context)')" 524 FAIL AudioNode interface: new ChannelMergerNode(context) must inherit property "disconnect(AudioParam)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelMergerNode(context)')" 525 FAIL AudioNode interface: calling disconnect(AudioParam) on new ChannelMergerNode(context) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelMergerNode(context)')" 526 FAIL AudioNode interface: new ChannelMergerNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelMergerNode(context)')" 527 FAIL AudioNode interface: calling disconnect(AudioParam, unsigned long) on new ChannelMergerNode(context) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelMergerNode(context)')" 528 FAIL AudioNode interface: new ChannelMergerNode(context) must inherit property "context" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelMergerNode(context)')" 529 FAIL AudioNode interface: new ChannelMergerNode(context) must inherit property "numberOfInputs" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelMergerNode(context)')" 530 FAIL AudioNode interface: new ChannelMergerNode(context) must inherit property "numberOfOutputs" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelMergerNode(context)')" 531 FAIL AudioNode interface: new ChannelMergerNode(context) must inherit property "channelCount" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelMergerNode(context)')" 532 FAIL AudioNode interface: new ChannelMergerNode(context) must inherit property "channelCountMode" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelMergerNode(context)')" 533 FAIL AudioNode interface: new ChannelMergerNode(context) must inherit property "channelInterpretation" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelMergerNode(context)')" 509 PASS ChannelMergerNode must be primary interface of new ChannelMergerNode(context) 510 PASS Stringification of new ChannelMergerNode(context) 511 PASS AudioNode interface: new ChannelMergerNode(context) must inherit property "connect(AudioNode, optional unsigned long, optional unsigned long)" with the proper type 512 PASS AudioNode interface: calling connect(AudioNode, optional unsigned long, optional unsigned long) on new ChannelMergerNode(context) with too few arguments must throw TypeError 513 PASS AudioNode interface: new ChannelMergerNode(context) must inherit property "connect(AudioParam, optional unsigned long)" with the proper type 514 PASS AudioNode interface: calling connect(AudioParam, optional unsigned long) on new ChannelMergerNode(context) with too few arguments must throw TypeError 515 PASS AudioNode interface: new ChannelMergerNode(context) must inherit property "disconnect()" with the proper type 516 PASS AudioNode interface: new ChannelMergerNode(context) must inherit property "disconnect(unsigned long)" with the proper type 517 PASS AudioNode interface: calling disconnect(unsigned long) on new ChannelMergerNode(context) with too few arguments must throw TypeError 518 PASS AudioNode interface: new ChannelMergerNode(context) must inherit property "disconnect(AudioNode)" with the proper type 519 PASS AudioNode interface: calling disconnect(AudioNode) on new ChannelMergerNode(context) with too few arguments must throw TypeError 520 PASS AudioNode interface: new ChannelMergerNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper type 521 PASS AudioNode interface: calling disconnect(AudioNode, unsigned long) on new ChannelMergerNode(context) with too few arguments must throw TypeError 522 PASS AudioNode interface: new ChannelMergerNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper type 523 PASS AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new ChannelMergerNode(context) with too few arguments must throw TypeError 524 PASS AudioNode interface: new ChannelMergerNode(context) must inherit property "disconnect(AudioParam)" with the proper type 525 PASS AudioNode interface: calling disconnect(AudioParam) on new ChannelMergerNode(context) with too few arguments must throw TypeError 526 PASS AudioNode interface: new ChannelMergerNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper type 527 PASS AudioNode interface: calling disconnect(AudioParam, unsigned long) on new ChannelMergerNode(context) with too few arguments must throw TypeError 528 PASS AudioNode interface: new ChannelMergerNode(context) must inherit property "context" with the proper type 529 PASS AudioNode interface: new ChannelMergerNode(context) must inherit property "numberOfInputs" with the proper type 530 PASS AudioNode interface: new ChannelMergerNode(context) must inherit property "numberOfOutputs" with the proper type 531 PASS AudioNode interface: new ChannelMergerNode(context) must inherit property "channelCount" with the proper type 532 PASS AudioNode interface: new ChannelMergerNode(context) must inherit property "channelCountMode" with the proper type 533 PASS AudioNode interface: new ChannelMergerNode(context) must inherit property "channelInterpretation" with the proper type 534 534 PASS ChannelSplitterNode interface: existence and properties of interface object 535 FAIL ChannelSplitterNode interface object length assert_equals: wrong value for ChannelSplitterNode.length expected 1 but got 0 535 PASS ChannelSplitterNode interface object length 536 536 PASS ChannelSplitterNode interface object name 537 537 PASS ChannelSplitterNode interface: existence and properties of interface prototype object 538 538 PASS ChannelSplitterNode interface: existence and properties of interface prototype object's "constructor" property 539 539 PASS ChannelSplitterNode interface: existence and properties of interface prototype object's @@unscopables property 540 FAIL ChannelSplitterNode must be primary interface of new ChannelSplitterNode(context) assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelSplitterNode(context)')" 541 FAIL Stringification of new ChannelSplitterNode(context) assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelSplitterNode(context)')" 542 FAIL AudioNode interface: new ChannelSplitterNode(context) must inherit property "connect(AudioNode, optional unsigned long, optional unsigned long)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelSplitterNode(context)')" 543 FAIL AudioNode interface: calling connect(AudioNode, optional unsigned long, optional unsigned long) on new ChannelSplitterNode(context) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelSplitterNode(context)')" 544 FAIL AudioNode interface: new ChannelSplitterNode(context) must inherit property "connect(AudioParam, optional unsigned long)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelSplitterNode(context)')" 545 FAIL AudioNode interface: calling connect(AudioParam, optional unsigned long) on new ChannelSplitterNode(context) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelSplitterNode(context)')" 546 FAIL AudioNode interface: new ChannelSplitterNode(context) must inherit property "disconnect()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelSplitterNode(context)')" 547 FAIL AudioNode interface: new ChannelSplitterNode(context) must inherit property "disconnect(unsigned long)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelSplitterNode(context)')" 548 FAIL AudioNode interface: calling disconnect(unsigned long) on new ChannelSplitterNode(context) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelSplitterNode(context)')" 549 FAIL AudioNode interface: new ChannelSplitterNode(context) must inherit property "disconnect(AudioNode)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelSplitterNode(context)')" 550 FAIL AudioNode interface: calling disconnect(AudioNode) on new ChannelSplitterNode(context) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelSplitterNode(context)')" 551 FAIL AudioNode interface: new ChannelSplitterNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelSplitterNode(context)')" 552 FAIL AudioNode interface: calling disconnect(AudioNode, unsigned long) on new ChannelSplitterNode(context) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelSplitterNode(context)')" 553 FAIL AudioNode interface: new ChannelSplitterNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelSplitterNode(context)')" 554 FAIL AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new ChannelSplitterNode(context) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelSplitterNode(context)')" 555 FAIL AudioNode interface: new ChannelSplitterNode(context) must inherit property "disconnect(AudioParam)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelSplitterNode(context)')" 556 FAIL AudioNode interface: calling disconnect(AudioParam) on new ChannelSplitterNode(context) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelSplitterNode(context)')" 557 FAIL AudioNode interface: new ChannelSplitterNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelSplitterNode(context)')" 558 FAIL AudioNode interface: calling disconnect(AudioParam, unsigned long) on new ChannelSplitterNode(context) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelSplitterNode(context)')" 559 FAIL AudioNode interface: new ChannelSplitterNode(context) must inherit property "context" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelSplitterNode(context)')" 560 FAIL AudioNode interface: new ChannelSplitterNode(context) must inherit property "numberOfInputs" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelSplitterNode(context)')" 561 FAIL AudioNode interface: new ChannelSplitterNode(context) must inherit property "numberOfOutputs" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelSplitterNode(context)')" 562 FAIL AudioNode interface: new ChannelSplitterNode(context) must inherit property "channelCount" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelSplitterNode(context)')" 563 FAIL AudioNode interface: new ChannelSplitterNode(context) must inherit property "channelCountMode" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelSplitterNode(context)')" 564 FAIL AudioNode interface: new ChannelSplitterNode(context) must inherit property "channelInterpretation" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: function is not a constructor (evaluating 'new ChannelSplitterNode(context)')" 540 PASS ChannelSplitterNode must be primary interface of new ChannelSplitterNode(context) 541 PASS Stringification of new ChannelSplitterNode(context) 542 PASS AudioNode interface: new ChannelSplitterNode(context) must inherit property "connect(AudioNode, optional unsigned long, optional unsigned long)" with the proper type 543 PASS AudioNode interface: calling connect(AudioNode, optional unsigned long, optional unsigned long) on new ChannelSplitterNode(context) with too few arguments must throw TypeError 544 PASS AudioNode interface: new ChannelSplitterNode(context) must inherit property "connect(AudioParam, optional unsigned long)" with the proper type 545 PASS AudioNode interface: calling connect(AudioParam, optional unsigned long) on new ChannelSplitterNode(context) with too few arguments must throw TypeError 546 PASS AudioNode interface: new ChannelSplitterNode(context) must inherit property "disconnect()" with the proper type 547 PASS AudioNode interface: new ChannelSplitterNode(context) must inherit property "disconnect(unsigned long)" with the proper type 548 PASS AudioNode interface: calling disconnect(unsigned long) on new ChannelSplitterNode(context) with too few arguments must throw TypeError 549 PASS AudioNode interface: new ChannelSplitterNode(context) must inherit property "disconnect(AudioNode)" with the proper type 550 PASS AudioNode interface: calling disconnect(AudioNode) on new ChannelSplitterNode(context) with too few arguments must throw TypeError 551 PASS AudioNode interface: new ChannelSplitterNode(context) must inherit property "disconnect(AudioNode, unsigned long)" with the proper type 552 PASS AudioNode interface: calling disconnect(AudioNode, unsigned long) on new ChannelSplitterNode(context) with too few arguments must throw TypeError 553 PASS AudioNode interface: new ChannelSplitterNode(context) must inherit property "disconnect(AudioNode, unsigned long, unsigned long)" with the proper type 554 PASS AudioNode interface: calling disconnect(AudioNode, unsigned long, unsigned long) on new ChannelSplitterNode(context) with too few arguments must throw TypeError 555 PASS AudioNode interface: new ChannelSplitterNode(context) must inherit property "disconnect(AudioParam)" with the proper type 556 PASS AudioNode interface: calling disconnect(AudioParam) on new ChannelSplitterNode(context) with too few arguments must throw TypeError 557 PASS AudioNode interface: new ChannelSplitterNode(context) must inherit property "disconnect(AudioParam, unsigned long)" with the proper type 558 PASS AudioNode interface: calling disconnect(AudioParam, unsigned long) on new ChannelSplitterNode(context) with too few arguments must throw TypeError 559 PASS AudioNode interface: new ChannelSplitterNode(context) must inherit property "context" with the proper type 560 PASS AudioNode interface: new ChannelSplitterNode(context) must inherit property "numberOfInputs" with the proper type 561 PASS AudioNode interface: new ChannelSplitterNode(context) must inherit property "numberOfOutputs" with the proper type 562 PASS AudioNode interface: new ChannelSplitterNode(context) must inherit property "channelCount" with the proper type 563 PASS AudioNode interface: new ChannelSplitterNode(context) must inherit property "channelCountMode" with the proper type 564 PASS AudioNode interface: new ChannelSplitterNode(context) must inherit property "channelInterpretation" with the proper type 565 565 FAIL ConstantSourceNode interface: existence and properties of interface object assert_own_property: self does not have own property "ConstantSourceNode" expected property "ConstantSourceNode" missing 566 566 FAIL ConstantSourceNode interface object length assert_own_property: self does not have own property "ConstantSourceNode" expected property "ConstantSourceNode" missing -
trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/buffer-resampling-expected.txt
r264657 r265002 1 1 2 2 PASS # AUDIT TASK RUNNER STARTED. 3 FAIL Executing "interpolate" promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new ChannelMergerNode(4 context, {numberOfChannels: context.destination.channelCount})')"3 FAIL Executing "interpolate" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering() 4 .then')" 5 5 PASS Audit report 6 6 PASS > [interpolate] Interpolation of AudioBuffers to context sample rate -
trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching-expected.txt
r264657 r265002 1 1 2 2 PASS # AUDIT TASK RUNNER STARTED. 3 FAIL Executing "buffer-stitching-1" promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new ChannelMergerNode(4 context, {numberOfInputs: context.destination.channelCount})')"5 FAIL Executing "buffer-stitching-2" promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new ChannelMergerNode(6 context, {numberOfInputs: context.destination.channelCount})')"3 FAIL Executing "buffer-stitching-1" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'testBufferStitching(sampleRate, bufferRate, bufferLength) 4 .then')" 5 FAIL Executing "buffer-stitching-2" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'testBufferStitching(sampleRate, bufferRate, bufferLength) 6 .then')" 7 7 PASS Audit report 8 8 PASS > [buffer-stitching-1] Subsample buffer stitching, same rates -
trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-dynamics-compressor-connections-expected.txt
r264657 r265002 1 1 2 2 PASS # AUDIT TASK RUNNER STARTED. 3 FAIL Executing "attack" promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new ChannelMergerNode( 4 context, {numberOfInputs: context.destination.channelCount})')" 5 FAIL Executing "knee" promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new ChannelMergerNode( 6 context, {numberOfInputs: context.destination.channelCount})')" 7 FAIL Executing "ratio" promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new ChannelMergerNode( 8 context, {numberOfInputs: context.destination.channelCount})')" 9 FAIL Executing "release" promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new ChannelMergerNode( 10 context, {numberOfInputs: context.destination.channelCount})')" 11 FAIL Executing "threshold" promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new ChannelMergerNode( 12 context, {numberOfInputs: context.destination.channelCount})')" 3 FAIL Executing "attack" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'refNode[paramName]')" 4 FAIL Executing "knee" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'refNode[paramName]')" 5 FAIL Executing "ratio" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'refNode[paramName]')" 6 FAIL Executing "release" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'refNode[paramName]')" 7 FAIL Executing "threshold" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'refNode[paramName]')" 13 8 PASS Audit report 14 9 PASS > [attack] Dynamics compressor attack 10 FAIL X attack: refNode = new DynamicsCompressorNode(context) incorrectly threw TypeError: "function is not a constructor (evaluating 'new DynamicsCompressorNode(context)')". assert_true: expected true got false 15 11 PASS > [knee] Dynamics compressor knee 12 FAIL X knee: refNode = new DynamicsCompressorNode(context) incorrectly threw TypeError: "function is not a constructor (evaluating 'new DynamicsCompressorNode(context)')". assert_true: expected true got false 16 13 PASS > [ratio] Dynamics compressor ratio 14 FAIL X ratio: refNode = new DynamicsCompressorNode(context) incorrectly threw TypeError: "function is not a constructor (evaluating 'new DynamicsCompressorNode(context)')". assert_true: expected true got false 17 15 PASS > [release] Dynamics compressor release 16 FAIL X release: refNode = new DynamicsCompressorNode(context) incorrectly threw TypeError: "function is not a constructor (evaluating 'new DynamicsCompressorNode(context)')". assert_true: expected true got false 18 17 PASS > [threshold] Dynamics compressor threshold 19 PASS # AUDIT TASK RUNNER FINISHED: 5 tasks ran successfully. 18 FAIL X threshold: refNode = new DynamicsCompressorNode(context) incorrectly threw TypeError: "function is not a constructor (evaluating 'new DynamicsCompressorNode(context)')". assert_true: expected true got false 19 FAIL # AUDIT TASK RUNNER FINISHED: 5 out of 5 tasks were failed. assert_true: expected true got false 20 20 -
trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/simple-input-output.https-expected.txt
r264657 r265002 2 2 PASS # AUDIT TASK RUNNER STARTED. 3 3 FAIL Executing "Initialize worklet" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.audioWorklet.addModule')" 4 FAIL Executing "test" promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new ChannelMergerNode( 5 context, {numberOfChannels: context.destination.channelCount})')" 4 FAIL Executing "test" promise_test: Unhandled rejection with value: object "ReferenceError: Can't find variable: AudioWorkletNode" 6 5 PASS Audit report 7 6 PASS > [Initialize worklet] -
trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-channelmergernode-interface/active-processing.https-expected.txt
r264941 r265002 2 2 PASS # AUDIT TASK RUNNER STARTED. 3 3 FAIL Executing "initialize" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.audioWorklet.addModule')" 4 FAIL Executing "test" promise_test: Unhandled rejection with value: object " TypeError: function is not a constructor (evaluating 'new ChannelMergerNode(context, {numberOfInputs: numberOfInputs})')"4 FAIL Executing "test" promise_test: Unhandled rejection with value: object "ReferenceError: Can't find variable: AudioWorkletNode" 5 5 PASS Audit report 6 6 PASS > [initialize] -
trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-basic-expected.txt
r262405 r265002 6 6 PASS > [exceptions-channels] 7 7 PASS context.createChannelMerger() did not throw an exception. 8 PASS context.createChannelMerger(0) threw IndexSizeError: " The indexis not in the allowed range.".8 PASS context.createChannelMerger(0) threw IndexSizeError: "Number of inputs is not in the allowed range.". 9 9 PASS context.createChannelMerger(32) did not throw an exception. 10 PASS context.createChannelMerger(33) threw IndexSizeError: " The indexis not in the allowed range.".10 PASS context.createChannelMerger(33) threw IndexSizeError: "Number of inputs is not in the allowed range.". 11 11 PASS < [exceptions-channels] All assertions passed. (total 4 assertions) 12 12 PASS > [exceptions-properties] 13 FAIL X merger.channelCount is not equal to 1. Got 2. assert_true: expected true got false 14 FAIL X merger.channelCount = 3 did not throw an exception. assert_true: expected true got false 15 FAIL X merger.channelCountMode is not equal to explicit. Got max. assert_true: expected true got false 16 FAIL X merger.channelCountMode = "max" did not throw an exception. assert_true: expected true got false 17 FAIL < [exceptions-properties] 4 out of 4 assertions were failed. assert_true: expected true got false 18 FAIL # AUDIT TASK RUNNER FINISHED: 1 out of 2 tasks were failed. assert_true: expected true got false 13 PASS merger.channelCount is equal to 1. 14 PASS merger.channelCount = 3 threw InvalidStateError: "Channel count cannot be changed from 1.". 15 PASS merger.channelCountMode is equal to explicit. 16 PASS merger.channelCountMode = "max" threw InvalidStateError: "Channel count mode cannot be changed from explicit.". 17 PASS < [exceptions-properties] All assertions passed. (total 4 assertions) 18 PASS # AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully. 19 19 -
trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-channelmergernode-interface/ctor-channelmerger-expected.txt
r262405 r265002 3 3 PASS Executing "initialize" 4 4 PASS Executing "invalid constructor" 5 FAIL Executing "default constructor" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'node.numberOfInputs')" 6 FAIL Executing "test AudioNodeOptions" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'node.channelCount')" 7 FAIL Executing "constructor options" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'node.numberOfInputs')" 5 PASS Executing "default constructor" 6 PASS Executing "test AudioNodeOptions" 7 PASS Executing "constructor options" 8 8 PASS Audit report 9 9 PASS > [initialize] … … 11 11 PASS < [initialize] All assertions passed. (total 1 assertions) 12 12 PASS > [invalid constructor] 13 PASS new ChannelMergerNode() threw TypeError: " function is not a constructor (evaluating 'new window[name]()')".14 PASS new ChannelMergerNode(1) threw TypeError: " function is not a constructor (evaluating 'new window[name](1)')".15 PASS new ChannelMergerNode(context, 42) threw TypeError: " function is not a constructor (evaluating 'new window[name](context, 42)')".13 PASS new ChannelMergerNode() threw TypeError: "Not enough arguments". 14 PASS new ChannelMergerNode(1) threw TypeError: "Argument 1 ('context') to the ChannelMergerNode constructor must be an instance of BaseAudioContext". 15 PASS new ChannelMergerNode(context, 42) threw TypeError: "Type error". 16 16 PASS < [invalid constructor] All assertions passed. (total 3 assertions) 17 17 PASS > [default constructor] 18 FAIL X node0 = new ChannelMergerNode(context) incorrectly threw TypeError: "function is not a constructor (evaluating 'new window[name](context, options.constructorOptions)')". assert_true: expected true got false 19 FAIL X node0 instanceof ChannelMergerNode is not equal to true. Got false. assert_true: expected true got false 18 PASS node0 = new ChannelMergerNode(context) did not throw an exception. 19 PASS node0 instanceof ChannelMergerNode is equal to true. 20 PASS node0.numberOfInputs is equal to 6. 21 PASS node0.numberOfOutputs is equal to 1. 22 PASS node0.channelCount is equal to 1. 23 PASS node0.channelCountMode is equal to explicit. 24 PASS node0.channelInterpretation is equal to speakers. 25 PASS < [default constructor] All assertions passed. (total 7 assertions) 20 26 PASS > [test AudioNodeOptions] 21 FAIL X new ChannelMergerNode(c, {channelCount: 1}) incorrectly threw TypeError: "function is not a constructor (evaluating 'new window[nodeName]')". assert_true: expected true got false 27 PASS new ChannelMergerNode(c, {channelCount: 1}) did not throw an exception. 28 PASS node.channelCount is equal to 1. 29 PASS new ChannelMergerNode(c, {channelCount: 2}) threw InvalidStateError: "Channel count cannot be changed from 1.". 30 PASS (new ChannelMergerNode(c, {channelCount: 1})).channelCount = 1 did not throw an exception. 31 PASS new ChannelMergerNode(c, {channelCountMode: "explicit"} did not throw an exception. 32 PASS node.channelCountMode is equal to explicit. 33 PASS new ChannelMergerNode(c, {channelCountMode: "max"}) threw InvalidStateError: "Channel count mode cannot be changed from explicit.". 34 PASS new ChannelMergerNode(c, {channelCountMode: "clamped-max"}) threw InvalidStateError: "Channel count mode cannot be changed from explicit.". 35 PASS (new ChannelMergerNode(c, {channelCountMode: "explicit"})).channelCountMode = "explicit" did not throw an exception. 36 PASS new ChannelMergerNode(c, {channelInterpretation: "speakers"}) did not throw an exception. 37 PASS node.channelInterpretation is equal to speakers. 38 PASS new ChannelMergerNode(c, {channelInterpretation: "discrete"}) did not throw an exception. 39 PASS node.channelInterpretation is equal to discrete. 40 PASS new ChannelMergerNode(c, {channelInterpretation: "foobar"}) threw TypeError: "Type error". 41 PASS node.channelInterpretation after invalid setter is equal to discrete. 42 PASS < [test AudioNodeOptions] All assertions passed. (total 15 assertions) 22 43 PASS > [constructor options] 23 FAIL X node1 = new ChannelMergerNode(context, {"numberOfInputs":3,"numberOfOutputs":9,"channelInterpretation":"discrete"}) incorrectly threw TypeError: "function is not a constructor (evaluating 'new ChannelMergerNode(context, options)')". assert_true: expected true got false 24 FAIL # AUDIT TASK RUNNER FINISHED: 3 out of 5 tasks were failed. assert_true: expected true got false 44 PASS node1 = new ChannelMergerNode(context, {"numberOfInputs":3,"numberOfOutputs":9,"channelInterpretation":"discrete"}) did not throw an exception. 45 PASS node1.numberOfInputs is equal to 3. 46 PASS node1.numberOfOutputs is equal to 1. 47 PASS node1.channelInterpretation is equal to discrete. 48 PASS new ChannelMergerNode(c, {"numberOfInputs":99}) threw IndexSizeError: "Number of inputs is not in the allowed range.". 49 PASS new ChannelMergerNode(c, {"channelCount":3}) threw InvalidStateError: "Channel count cannot be changed from 1.". 50 PASS new ChannelMergerNode(c, {"channelCountMode":"max"}) threw InvalidStateError: "Channel count mode cannot be changed from explicit.". 51 PASS < [constructor options] All assertions passed. (total 7 assertions) 52 PASS # AUDIT TASK RUNNER FINISHED: 5 tasks ran successfully. 25 53 -
trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-channelsplitternode-interface/audiochannelsplitter-expected.txt
r262405 r265002 6 6 PASS Audit report 7 7 PASS > [construction] Construction of ChannelSplitterNode 8 PASS createChannelSplitter(0) threw IndexSizeError: " The index is not in the allowed range.".9 PASS createChannelSplitter(33) threw IndexSizeError: " The index is not in the allowed range.".8 PASS createChannelSplitter(0) threw IndexSizeError: "Number of outputs is not in the allowed range". 9 PASS createChannelSplitter(33) threw IndexSizeError: "Number of outputs is not in the allowed range". 10 10 PASS splitternode = context.createChannelSplitter(32) did not throw an exception. 11 11 PASS splitternode.numberOfOutputs is equal to 32. -
trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-channelsplitternode-interface/ctor-channelsplitter-expected.txt
r262405 r265002 3 3 PASS Executing "initialize" 4 4 PASS Executing "invalid constructor" 5 FAIL Executing "default constructor" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'node.numberOfInputs')" 6 FAIL Executing "test AudioNodeOptions" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'node.channelCount')" 7 FAIL Executing "constructor options" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'node.numberOfInputs')" 5 PASS Executing "default constructor" 6 PASS Executing "test AudioNodeOptions" 7 PASS Executing "constructor options" 8 8 PASS Audit report 9 9 PASS > [initialize] … … 11 11 PASS < [initialize] All assertions passed. (total 1 assertions) 12 12 PASS > [invalid constructor] 13 PASS new ChannelSplitterNode() threw TypeError: " function is not a constructor (evaluating 'new window[name]()')".14 PASS new ChannelSplitterNode(1) threw TypeError: " function is not a constructor (evaluating 'new window[name](1)')".15 PASS new ChannelSplitterNode(context, 42) threw TypeError: " function is not a constructor (evaluating 'new window[name](context, 42)')".13 PASS new ChannelSplitterNode() threw TypeError: "Not enough arguments". 14 PASS new ChannelSplitterNode(1) threw TypeError: "Argument 1 ('context') to the ChannelSplitterNode constructor must be an instance of BaseAudioContext". 15 PASS new ChannelSplitterNode(context, 42) threw TypeError: "Type error". 16 16 PASS < [invalid constructor] All assertions passed. (total 3 assertions) 17 17 PASS > [default constructor] 18 FAIL X node0 = new ChannelSplitterNode(context) incorrectly threw TypeError: "function is not a constructor (evaluating 'new window[name](context, options.constructorOptions)')". assert_true: expected true got false 19 FAIL X node0 instanceof ChannelSplitterNode is not equal to true. Got false. assert_true: expected true got false 18 PASS node0 = new ChannelSplitterNode(context) did not throw an exception. 19 PASS node0 instanceof ChannelSplitterNode is equal to true. 20 PASS node0.numberOfInputs is equal to 1. 21 PASS node0.numberOfOutputs is equal to 6. 22 PASS node0.channelCount is equal to 6. 23 PASS node0.channelCountMode is equal to explicit. 24 PASS node0.channelInterpretation is equal to discrete. 25 PASS < [default constructor] All assertions passed. (total 7 assertions) 20 26 PASS > [test AudioNodeOptions] 21 FAIL X new ChannelSplitterNode(c, {channelCount: 6}) incorrectly threw TypeError: "function is not a constructor (evaluating 'new window[nodeName]')". assert_true: expected true got false 27 PASS new ChannelSplitterNode(c, {channelCount: 6}) did not throw an exception. 28 PASS node.channelCount is equal to 6. 29 PASS new ChannelSplitterNode(c, {channelCount: 7}) threw IndexSizeError: "Channel count must be set to number of outputs.". 30 PASS (new ChannelSplitterNode(c, {channelCount: 6})).channelCount = 6 did not throw an exception. 31 PASS new ChannelSplitterNode(c, {channelCountMode: "explicit"} did not throw an exception. 32 PASS node.channelCountMode is equal to explicit. 33 PASS new ChannelSplitterNode(c, {channelCountMode: "max"}) threw InvalidStateError: "Channel count mode cannot be changed from explicit.". 34 PASS new ChannelSplitterNode(c, {channelCountMode: "clamped-max"}) threw InvalidStateError: "Channel count mode cannot be changed from explicit.". 35 PASS (new ChannelSplitterNode(c, {channelCountMode: "explicit"})).channelCountMode = "explicit" did not throw an exception. 36 PASS new ChannelSplitterNode(c, {channelInterpretation: "speakers"}) threw InvalidStateError: "Channel interpretation cannot be changed from discrete.". 37 PASS (new ChannelSplitterNode(c, {channelInterpretation: "discrete"})).channelInterpretation = "discrete" did not throw an exception. 38 PASS < [test AudioNodeOptions] All assertions passed. (total 11 assertions) 22 39 PASS > [constructor options] 23 FAIL X node1 = new ChannelSplitterNode(context, {"numberOfInputs":3,"numberOfOutputs":9,"channelInterpretation":"discrete"}) incorrectly threw TypeError: "function is not a constructor (evaluating 'new ChannelSplitterNode(context, options)')". assert_true: expected true got false 24 FAIL # AUDIT TASK RUNNER FINISHED: 3 out of 5 tasks were failed. assert_true: expected true got false 40 PASS node1 = new ChannelSplitterNode(context, {"numberOfInputs":3,"numberOfOutputs":9,"channelInterpretation":"discrete"}) did not throw an exception. 41 PASS node1.numberOfInputs is equal to 1. 42 PASS node1.numberOfOutputs is equal to 9. 43 PASS node1.channelInterpretation is equal to discrete. 44 PASS new ChannelSplitterNode(c, {"numberOfOutputs":99}) threw IndexSizeError: "Number of outputs is not in the allowed range". 45 PASS new ChannelSplitterNode(c, {"channelCount":3}) threw IndexSizeError: "Channel count must be set to number of outputs.". 46 PASS new ChannelSplitterNode(c, {"channelCountMode":"max"}) threw InvalidStateError: "Channel count mode cannot be changed from explicit.". 47 PASS < [constructor options] All assertions passed. (total 7 assertions) 48 PASS # AUDIT TASK RUNNER FINISHED: 5 tasks ran successfully. 25 49 -
trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-oscillatornode-interface/detune-limiting-expected.txt
r264941 r265002 1 1 2 2 PASS # AUDIT TASK RUNNER STARTED. 3 FAIL Executing "detune limits" promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new ChannelMergerNode(4 context, {numberOfInputs: context.destination.channelCount})')"3 FAIL Executing "detune limits" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering() 4 .then')" 5 5 FAIL Executing "detune automation" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering() 6 6 .then')" -
trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-distance-clamping-expected.txt
r264941 r265002 3 3 PASS Executing "ref-distance-error" 4 4 PASS Executing "max-distance-error" 5 FAIL Executing "min-distance" promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new ChannelSplitterNode(context, {numberOfOutputs: 2})')"6 FAIL Executing "max-distance" promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new ChannelSplitterNode(context, {numberOfOutputs: 2})')"5 FAIL Executing "min-distance" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering().then')" 6 FAIL Executing "max-distance" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering().then')" 7 7 PASS Audit report 8 8 PASS > [ref-distance-error] -
trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-scriptprocessornode-interface/simple-input-output-expected.txt
r264657 r265002 1 1 2 2 PASS # AUDIT TASK RUNNER STARTED. 3 FAIL Executing "test" promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new ChannelMergerNode(4 context, {numberOfChannels: context.destination.channelCount})')"3 FAIL Executing "test" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering() 4 .then')" 5 5 PASS Audit report 6 6 PASS > [test] ScriptProcessor with stopped input source -
trunk/Source/WebCore/CMakeLists.txt
r264941 r265002 466 466 Modules/webaudio/ChannelInterpretation.idl 467 467 Modules/webaudio/ChannelMergerNode.idl 468 Modules/webaudio/ChannelMergerOptions.idl 468 469 Modules/webaudio/ChannelSplitterNode.idl 470 Modules/webaudio/ChannelSplitterOptions.idl 469 471 Modules/webaudio/ConvolverNode.idl 470 472 Modules/webaudio/DelayNode.idl -
trunk/Source/WebCore/ChangeLog
r265001 r265002 1 2020-07-28 Clark Wang <clark_wang@apple.com> 2 3 Added constructor methods to ChannelMergerNode, ChannelSplitterNode 4 https://bugs.webkit.org/show_bug.cgi?id=214851 5 6 Reviewed by Chris Dumez. 7 8 Added constructors for ChannelMergerNode, ChannelSplitterNode according to spec: 9 https://www.w3.org/TR/webaudio/#ChannelMergerNode-constructors. Added new files 10 for ChannelMergerOptions and ChannelSplitterOptions. 11 12 Re-baselined existing tests that now pass, or fail due to a different interface. 13 14 * CMakeLists.txt: 15 * DerivedSources-input.xcfilelist: 16 * DerivedSources-output.xcfilelist: 17 * DerivedSources.make: 18 * Modules/webaudio/AudioNode.h: 19 * Modules/webaudio/BaseAudioContext.cpp: 20 (WebCore::BaseAudioContext::createChannelSplitter): 21 (WebCore::BaseAudioContext::createChannelMerger): 22 * Modules/webaudio/ChannelMergerNode.cpp: 23 (WebCore::ChannelMergerNode::create): 24 (WebCore::ChannelMergerNode::setChannelCount): 25 (WebCore::ChannelMergerNode::setChannelCountMode): 26 * Modules/webaudio/ChannelMergerNode.h: 27 * Modules/webaudio/ChannelMergerNode.idl: 28 * Modules/webaudio/ChannelMergerOptions.h: Added. 29 * Modules/webaudio/ChannelMergerOptions.idl: Added. 30 * Modules/webaudio/ChannelSplitterNode.cpp: 31 (WebCore::ChannelSplitterNode::create): 32 (WebCore::ChannelSplitterNode::setChannelCount): 33 (WebCore::ChannelSplitterNode::setChannelCountMode): 34 (WebCore::ChannelSplitterNode::setChannelInterpretation): 35 * Modules/webaudio/ChannelSplitterNode.h: 36 * Modules/webaudio/ChannelSplitterNode.idl: 37 * Modules/webaudio/ChannelSplitterOptions.h: Added. 38 * Modules/webaudio/ChannelSplitterOptions.idl: Added. 39 * Sources.txt: 40 * WebCore.xcodeproj/project.pbxproj: 41 1 42 2020-07-28 Rob Buis <rbuis@igalia.com> 2 43 -
trunk/Source/WebCore/DerivedSources-input.xcfilelist
r264941 r265002 315 315 $(PROJECT_DIR)/Modules/webaudio/ChannelInterpretation.idl 316 316 $(PROJECT_DIR)/Modules/webaudio/ChannelMergerNode.idl 317 $(PROJECT_DIR)/Modules/webaudio/ChannelMergerOptions.idl 317 318 $(PROJECT_DIR)/Modules/webaudio/ChannelSplitterNode.idl 319 $(PROJECT_DIR)/Modules/webaudio/ChannelSplitterOptions.idl 318 320 $(PROJECT_DIR)/Modules/webaudio/ConvolverNode.idl 319 321 $(PROJECT_DIR)/Modules/webaudio/DelayNode.idl -
trunk/Source/WebCore/DerivedSources-output.xcfilelist
r264941 r265002 314 314 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSChannelMergerNode.cpp 315 315 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSChannelMergerNode.h 316 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSChannelMergerOptions.cpp 317 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSChannelMergerOptions.h 316 318 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSChannelSplitterNode.cpp 317 319 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSChannelSplitterNode.h 320 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSChannelSplitterOptions.cpp 321 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSChannelSplitterOptions.h 318 322 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSCharacterData.cpp 319 323 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSCharacterData.h -
trunk/Source/WebCore/DerivedSources.make
r264941 r265002 398 398 $(WebCore)/Modules/webaudio/ChannelInterpretation.idl \ 399 399 $(WebCore)/Modules/webaudio/ChannelMergerNode.idl \ 400 $(WebCore)/Modules/webaudio/ChannelMergerOptions.idl \ 400 401 $(WebCore)/Modules/webaudio/ChannelSplitterNode.idl \ 402 $(WebCore)/Modules/webaudio/ChannelSplitterOptions.idl \ 401 403 $(WebCore)/Modules/webaudio/ConvolverNode.idl \ 402 404 $(WebCore)/Modules/webaudio/DelayNode.idl \ -
trunk/Source/WebCore/Modules/webaudio/AudioNode.h
r264508 r265002 181 181 182 182 ChannelInterpretation channelInterpretation() const { return m_channelInterpretation; } 183 ExceptionOr<void> setChannelInterpretation(ChannelInterpretation);183 virtual ExceptionOr<void> setChannelInterpretation(ChannelInterpretation); 184 184 185 185 protected: -
trunk/Source/WebCore/Modules/webaudio/BaseAudioContext.cpp
r264941 r265002 41 41 #include "BiquadFilterNode.h" 42 42 #include "ChannelMergerNode.h" 43 #include "ChannelMergerOptions.h" 43 44 #include "ChannelSplitterNode.h" 45 #include "ChannelSplitterOptions.h" 44 46 #include "ConvolverNode.h" 45 47 #include "DefaultAudioDestinationNode.h" … … 595 597 596 598 lazyInitialize(); 597 auto node = ChannelSplitterNode::create(*this, sampleRate(), numberOfOutputs); 598 if (!node) 599 return Exception { IndexSizeError }; 600 return node.releaseNonNull(); 599 ChannelSplitterOptions options; 600 options.numberOfOutputs = numberOfOutputs; 601 return ChannelSplitterNode::create(*this, options); 601 602 } 602 603 … … 610 611 611 612 lazyInitialize(); 612 auto node = ChannelMergerNode::create(*this, sampleRate(), numberOfInputs); 613 if (!node) 614 return Exception { IndexSizeError }; 615 return node.releaseNonNull(); 613 ChannelMergerOptions options; 614 options.numberOfInputs = numberOfInputs; 615 return ChannelMergerNode::create(*this, options); 616 616 } 617 617 -
trunk/Source/WebCore/Modules/webaudio/ChannelMergerNode.cpp
r263410 r265002 44 44 WTF_MAKE_ISO_ALLOCATED_IMPL(ChannelMergerNode); 45 45 46 RefPtr<ChannelMergerNode> ChannelMergerNode::create(BaseAudioContext& context, float sampleRate, unsigned numberOfInputs)46 ExceptionOr<Ref<ChannelMergerNode>> ChannelMergerNode::create(BaseAudioContext& context, const ChannelMergerOptions& options) 47 47 { 48 if ( !numberOfInputs || numberOfInputs > AudioContext::maxNumberOfChannels())49 return nullptr;48 if (options.numberOfInputs > AudioContext::maxNumberOfChannels() || !options.numberOfInputs) 49 return Exception { IndexSizeError, "Number of inputs is not in the allowed range."_s }; 50 50 51 return adoptRef(*new ChannelMergerNode(context, sampleRate, numberOfInputs)); 51 auto merger = adoptRef(*new ChannelMergerNode(context, context.sampleRate(), options.numberOfInputs)); 52 53 auto result = merger->setChannelCount(options.channelCount.valueOr(1)); 54 if (result.hasException()) 55 return result.releaseException(); 56 57 result = merger->setChannelCountMode(options.channelCountMode.valueOr(ChannelCountMode::Explicit)); 58 if (result.hasException()) 59 return result.releaseException(); 60 61 result = merger->setChannelInterpretation(options.channelInterpretation.valueOr(ChannelInterpretation::Speakers)); 62 if (result.hasException()) 63 return result.releaseException(); 64 65 return merger; 52 66 } 53 67 … … 130 144 } 131 145 146 ExceptionOr<void> ChannelMergerNode::setChannelCount(unsigned channelCount) 147 { 148 if (channelCount != 1) 149 return Exception { InvalidStateError, "Channel count cannot be changed from 1."_s }; 150 151 return AudioNode::setChannelCount(channelCount); 152 } 153 154 ExceptionOr<void> ChannelMergerNode::setChannelCountMode(ChannelCountMode mode) 155 { 156 if (mode != ChannelCountMode::Explicit) 157 return Exception { InvalidStateError, "Channel count mode cannot be changed from explicit."_s }; 158 159 return AudioNode::setChannelCountMode(mode); 160 } 161 132 162 } // namespace WebCore 133 163 -
trunk/Source/WebCore/Modules/webaudio/ChannelMergerNode.h
r263410 r265002 30 30 31 31 #include "AudioNode.h" 32 #include "ChannelMergerOptions.h" 32 33 33 34 namespace WebCore { … … 38 39 WTF_MAKE_ISO_ALLOCATED(ChannelMergerNode); 39 40 public: 40 static RefPtr<ChannelMergerNode> create(BaseAudioContext&, float sampleRate, unsigned numberOfInputs);41 41 static ExceptionOr<Ref<ChannelMergerNode>> create(BaseAudioContext&, const ChannelMergerOptions& = { }); 42 42 43 // AudioNode 43 44 void process(size_t framesToProcess) override; … … 46 47 // Called in the audio thread (pre-rendering task) when the number of channels for an input may have changed. 47 48 void checkNumberOfChannelsForInput(AudioNodeInput*) override; 48 49 50 ExceptionOr<void> setChannelCount(unsigned) final; 51 ExceptionOr<void> setChannelCountMode(ChannelCountMode) final; 52 49 53 private: 50 54 unsigned m_desiredNumberOfOutputChannels; -
trunk/Source/WebCore/Modules/webaudio/ChannelMergerNode.idl
r165676 r265002 31 31 JSGenerateToJSObject 32 32 ] interface ChannelMergerNode : AudioNode { 33 [MayThrowException, EnabledBySetting=ModernUnprefixedWebAudio] constructor (BaseAudioContext context, optional ChannelMergerOptions options); 33 34 }; -
trunk/Source/WebCore/Modules/webaudio/ChannelSplitterNode.cpp
r263410 r265002 37 37 38 38 WTF_MAKE_ISO_ALLOCATED_IMPL(ChannelSplitterNode); 39 40 ExceptionOr<Ref<ChannelSplitterNode>> ChannelSplitterNode::create(BaseAudioContext& context, const ChannelSplitterOptions& options) 41 { 42 if (options.numberOfOutputs > AudioContext::maxNumberOfChannels() || !options.numberOfOutputs) 43 return Exception { IndexSizeError, "Number of outputs is not in the allowed range"_s }; 39 44 40 RefPtr<ChannelSplitterNode> ChannelSplitterNode::create(BaseAudioContext& context, float sampleRate, unsigned numberOfOutputs) 41 { 42 if (!numberOfOutputs || numberOfOutputs > AudioContext::maxNumberOfChannels()) 43 return nullptr; 44 45 return adoptRef(*new ChannelSplitterNode(context, sampleRate, numberOfOutputs)); 45 auto splitter = adoptRef(*new ChannelSplitterNode(context, context.sampleRate(), options.numberOfOutputs)); 46 47 auto result = splitter->setChannelCount(options.channelCount.valueOr(options.numberOfOutputs)); 48 if (result.hasException()) 49 return result.releaseException(); 50 51 result = splitter->setChannelCountMode(options.channelCountMode.valueOr(ChannelCountMode::Explicit)); 52 if (result.hasException()) 53 return result.releaseException(); 54 55 result = splitter->setChannelInterpretation(options.channelInterpretation.valueOr(ChannelInterpretation::Discrete)); 56 if (result.hasException()) 57 return result.releaseException(); 58 59 return splitter; 46 60 } 47 61 … … 87 101 } 88 102 103 ExceptionOr<void> ChannelSplitterNode::setChannelCount(unsigned channelCount) 104 { 105 if (channelCount != numberOfOutputs()) 106 return Exception { IndexSizeError, "Channel count must be set to number of outputs."_s }; 107 108 return AudioNode::setChannelCount(channelCount); 109 } 110 111 ExceptionOr<void> ChannelSplitterNode::setChannelCountMode(ChannelCountMode mode) 112 { 113 if (mode != ChannelCountMode::Explicit) 114 return Exception { InvalidStateError, "Channel count mode cannot be changed from explicit."_s }; 115 116 return AudioNode::setChannelCountMode(mode); 117 } 118 119 ExceptionOr<void> ChannelSplitterNode::setChannelInterpretation(ChannelInterpretation interpretation) 120 { 121 if (interpretation != ChannelInterpretation::Discrete) 122 return Exception { InvalidStateError, "Channel interpretation cannot be changed from discrete."_s }; 123 124 return AudioNode::setChannelInterpretation(interpretation); 125 } 126 89 127 } // namespace WebCore 90 128 -
trunk/Source/WebCore/Modules/webaudio/ChannelSplitterNode.h
r263410 r265002 26 26 27 27 #include "AudioNode.h" 28 #include "ChannelSplitterOptions.h" 28 29 29 30 namespace WebCore { … … 34 35 WTF_MAKE_ISO_ALLOCATED(ChannelSplitterNode); 35 36 public: 36 static RefPtr<ChannelSplitterNode> create(BaseAudioContext&, float sampleRate, unsigned numberOfOutputs);37 static ExceptionOr<Ref<ChannelSplitterNode>> create(BaseAudioContext&, const ChannelSplitterOptions& = { }); 37 38 38 39 // AudioNode 39 40 void process(size_t framesToProcess) override; 40 41 void reset() override; 42 43 ExceptionOr<void> setChannelCount(unsigned) final; 44 ExceptionOr<void> setChannelCountMode(ChannelCountMode) final; 45 ExceptionOr<void> setChannelInterpretation(ChannelInterpretation) final; 41 46 42 47 private: -
trunk/Source/WebCore/Modules/webaudio/ChannelSplitterNode.idl
r149920 r265002 27 27 JSGenerateToJSObject 28 28 ] interface ChannelSplitterNode : AudioNode { 29 [MayThrowException, EnabledBySetting=ModernUnprefixedWebAudio] constructor (BaseAudioContext context, optional ChannelSplitterOptions options); 29 30 }; -
trunk/Source/WebCore/Sources.txt
r264941 r265002 2710 2710 JSChannelInterpretation.cpp 2711 2711 JSChannelMergerNode.cpp 2712 JSChannelMergerOptions.cpp 2712 2713 JSChannelSplitterNode.cpp 2714 JSChannelSplitterOptions.cpp 2713 2715 JSCharacterData.cpp 2714 2716 JSChildNode.cpp -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r264941 r265002 15854 15854 E7CF84A524C635F400B06B90 /* OfflineAudioContextOptions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OfflineAudioContextOptions.h; sourceTree = "<group>"; }; 15855 15855 E7CF84A724C635F400B06B90 /* OfflineAudioContextOptions.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = OfflineAudioContextOptions.idl; sourceTree = "<group>"; }; 15856 E7E0352024CF60ED008DFEFB /* ChannelMergerOptions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ChannelMergerOptions.h; sourceTree = "<group>"; }; 15857 E7E0352224CF60ED008DFEFB /* ChannelMergerOptions.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = ChannelMergerOptions.idl; sourceTree = "<group>"; }; 15858 E7E0352424CF715E008DFEFB /* ChannelSplitterOptions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ChannelSplitterOptions.h; sourceTree = "<group>"; }; 15859 E7E0352524CF715E008DFEFB /* ChannelSplitterOptions.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = ChannelSplitterOptions.idl; sourceTree = "<group>"; }; 15856 15860 EB081CD81696084400553730 /* TypeConversions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TypeConversions.h; sourceTree = "<group>"; }; 15857 15861 EB081CD91696084400553730 /* TypeConversions.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = TypeConversions.idl; sourceTree = "<group>"; }; … … 29479 29483 FD315FB512B0267500C1A359 /* ChannelMergerNode.h */, 29480 29484 FD315FB612B0267500C1A359 /* ChannelMergerNode.idl */, 29485 E7E0352024CF60ED008DFEFB /* ChannelMergerOptions.h */, 29486 E7E0352224CF60ED008DFEFB /* ChannelMergerOptions.idl */, 29481 29487 FD315FB712B0267500C1A359 /* ChannelSplitterNode.cpp */, 29482 29488 FD315FB812B0267500C1A359 /* ChannelSplitterNode.h */, 29483 29489 FD315FB912B0267500C1A359 /* ChannelSplitterNode.idl */, 29490 E7E0352424CF715E008DFEFB /* ChannelSplitterOptions.h */, 29491 E7E0352524CF715E008DFEFB /* ChannelSplitterOptions.idl */, 29484 29492 FD315FDE12B0267600C1A359 /* ConvolverNode.cpp */, 29485 29493 FD315FDF12B0267600C1A359 /* ConvolverNode.h */,
Note: See TracChangeset
for help on using the changeset viewer.