This tests the constructor for the TransitionEvent DOM class.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".

PASS new TransitionEvent('eventType').bubbles is false
PASS new TransitionEvent('eventType').cancelable is false
PASS new TransitionEvent('eventType').propertyName is ""
PASS new TransitionEvent('eventType').elapsedTime is 0
PASS new TransitionEvent('eventType').pseudoElement is ""
PASS new TransitionEvent('eventType', { bubbles: false }).bubbles is false
PASS new TransitionEvent('eventType', { bubbles: true }).bubbles is true
PASS new TransitionEvent('eventType', { cancelable: false }).cancelable is false
PASS new TransitionEvent('eventType', { cancelable: true }).cancelable is true
PASS new TransitionEvent('eventType', { propertyName: 'doremi' }).propertyName is "doremi"
PASS new TransitionEvent('eventType', { propertyName: '' }).propertyName is ""
PASS new TransitionEvent('eventType', { propertyName: undefined }).propertyName is ""
PASS new TransitionEvent('eventType', { propertyName: null }).propertyName is "null"
PASS new TransitionEvent('eventType', { propertyName: false }).propertyName is "false"
PASS new TransitionEvent('eventType', { propertyName: true }).propertyName is "true"
PASS new TransitionEvent('eventType', { propertyName: 12345 }).propertyName is "12345"
PASS new TransitionEvent('eventType', { propertyName: 18446744073709551615 }).propertyName is "18446744073709552000"
PASS new TransitionEvent('eventType', { propertyName: NaN }).propertyName is "NaN"
PASS new TransitionEvent('eventType', { propertyName: [] }).propertyName is ""
PASS new TransitionEvent('eventType', { propertyName: [1, 2, 3] }).propertyName is "1,2,3"
PASS new TransitionEvent('eventType', { propertyName: {doremi: 12345} }).propertyName is "[object Object]"
PASS new TransitionEvent('eventType', { propertyName: {valueOf: function () { return 'doremi'; } } }).propertyName is "[object Object]"
PASS new TransitionEvent('eventType', { elapsedTime: 0 }).elapsedTime is 0
PASS new TransitionEvent('eventType', { elapsedTime: 123.45 }).elapsedTime is 123.45
PASS new TransitionEvent('eventType', { elapsedTime: -123.45 }).elapsedTime is -123.45
PASS new TransitionEvent('eventType', { elapsedTime: 18446744073709551615 }).elapsedTime is 18446744073709551615
PASS new TransitionEvent('eventType', { elapsedTime: NaN }) threw exception TypeError: Failed to construct 'TransitionEvent': The provided double value is non-finite..
PASS new TransitionEvent('eventType', { elapsedTime: Infinity }) threw exception TypeError: Failed to construct 'TransitionEvent': The provided double value is non-finite..
PASS new TransitionEvent('eventType', { elapsedTime: -Infinity }) threw exception TypeError: Failed to construct 'TransitionEvent': The provided double value is non-finite..
PASS new TransitionEvent('eventType', { pseudoElement: '::before' }).pseudoElement is "::before"
PASS new TransitionEvent('eventType', { pseudoElement: '' }).pseudoElement is ""
PASS new TransitionEvent('eventType', { elapsedTime: undefined }).elapsedTime is 0
PASS new TransitionEvent('eventType', { elapsedTime: null }).elapsedTime is 0
PASS new TransitionEvent('eventType', { elapsedTime: false }).elapsedTime is 0
PASS new TransitionEvent('eventType', { elapsedTime: true }).elapsedTime is 1
PASS new TransitionEvent('eventType', { elapsedTime: '' }).elapsedTime is 0
PASS new TransitionEvent('eventType', { elapsedTime: 'doremi' }) threw exception TypeError: Failed to construct 'TransitionEvent': The provided double value is non-finite..
PASS new TransitionEvent('eventType', { elapsedTime: [] }).elapsedTime is 0
PASS new TransitionEvent('eventType', { elapsedTime: [123.45] }).elapsedTime is 123.45
PASS new TransitionEvent('eventType', { elapsedTime: [123.45, 678.90] }) threw exception TypeError: Failed to construct 'TransitionEvent': The provided double value is non-finite..
PASS new TransitionEvent('eventType', { elapsedTime: {doremi: 123.45} }) threw exception TypeError: Failed to construct 'TransitionEvent': The provided double value is non-finite..
PASS new TransitionEvent('eventType', { elapsedTime: {valueOf: function () { return 123.45 } } }).elapsedTime is 123.45
PASS new TransitionEvent('eventType', { bubbles: true, cancelable: true, propertyName: 'doremi', elapsedTime: 123.45, pseudoElement: '::after' }).bubbles is true
PASS new TransitionEvent('eventType', { bubbles: true, cancelable: true, propertyName: 'doremi', elapsedTime: 123.45, pseudoElement: '::after' }).cancelable is true
PASS new TransitionEvent('eventType', { bubbles: true, cancelable: true, propertyName: 'doremi', elapsedTime: 123.45, pseudoElement: '::after' }).propertyName is 'doremi'
PASS new TransitionEvent('eventType', { bubbles: true, cancelable: true, propertyName: 'doremi', elapsedTime: 123.45, pseudoElement: '::after' }).elapsedTime is 123.45
PASS new TransitionEvent('eventType', { bubbles: true, cancelable: true, propertyName: 'doremi', elapsedTime: 123.45, pseudoElement: '::after' }).pseudoElement is '::after'
PASS successfullyParsed is true

TEST COMPLETE

