This tests the constructor for the ErrorEvent DOM class.

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


PASS new ErrorEvent('eventType').bubbles is false
PASS new ErrorEvent('eventType').cancelable is false
PASS new ErrorEvent('eventType').message is ""
PASS new ErrorEvent('eventType').filename is ""
PASS new ErrorEvent('eventType').lineno is 0
PASS new ErrorEvent('eventType', { bubbles: false }).bubbles is false
PASS new ErrorEvent('eventType', { bubbles: true }).bubbles is true
PASS new ErrorEvent('eventType', { cancelable: false }).cancelable is false
PASS new ErrorEvent('eventType', { cancelable: true }).cancelable is true
PASS new ErrorEvent('eventType', { message: 'melancholy' }).message is "melancholy"
PASS new ErrorEvent('eventType', { message: '' }).message is ""
PASS new ErrorEvent('eventType', { message: undefined }).message is ""
PASS new ErrorEvent('eventType', { message: null }).message is "null"
PASS new ErrorEvent('eventType', { message: false }).message is "false"
PASS new ErrorEvent('eventType', { message: true }).message is "true"
PASS new ErrorEvent('eventType', { message: 12345 }).message is "12345"
PASS new ErrorEvent('eventType', { message: 18446744073709551615 }).message is "18446744073709552000"
PASS new ErrorEvent('eventType', { message: NaN }).message is "NaN"
PASS new ErrorEvent('eventType', { message: [] }).message is ""
PASS new ErrorEvent('eventType', { message: [1, 2, 3] }).message is "1,2,3"
PASS new ErrorEvent('eventType', { message: {melancholy: 12345} }).message is "[object Object]"
PASS new ErrorEvent('eventType', { message: {valueOf: function () { return 'melancholy'; } } }).message is "[object Object]"
PASS new ErrorEvent('eventType', { filename: 'melancholy' }).filename is "melancholy"
PASS new ErrorEvent('eventType', { filename: '' }).filename is ""
PASS new ErrorEvent('eventType', { filename: undefined }).filename is ""
PASS new ErrorEvent('eventType', { filename: null }).filename is "null"
PASS new ErrorEvent('eventType', { filename: false }).filename is "false"
PASS new ErrorEvent('eventType', { filename: true }).filename is "true"
PASS new ErrorEvent('eventType', { filename: 12345 }).filename is "12345"
PASS new ErrorEvent('eventType', { filename: 18446744073709551615 }).filename is "18446744073709552000"
PASS new ErrorEvent('eventType', { filename: NaN }).filename is "NaN"
PASS new ErrorEvent('eventType', { filename: [] }).filename is ""
PASS new ErrorEvent('eventType', { filename: [1, 2, 3] }).filename is "1,2,3"
PASS new ErrorEvent('eventType', { filename: {melancholy: 12345} }).filename is "[object Object]"
PASS new ErrorEvent('eventType', { filename: {valueOf: function () { return 'melancholy'; } } }).filename is "[object Object]"
PASS new ErrorEvent('eventType', { lineno: 0 }).lineno is 0
PASS new ErrorEvent('eventType', { lineno: 1 }).lineno is 1
PASS new ErrorEvent('eventType', { lineno: 4294967294 }).lineno is 4294967294
PASS new ErrorEvent('eventType', { lineno: 4294967295 }).lineno is 4294967295
PASS new ErrorEvent('eventType', { lineno: 9007199254740991 }).lineno is 4294967295
PASS new ErrorEvent('eventType', { lineno: 18446744073709551615 }).lineno is 0
PASS new ErrorEvent('eventType', { lineno: 12345678901234567890 }).lineno is 3944679424
PASS new ErrorEvent('eventType', { lineno: -1 }).lineno is 4294967295
PASS new ErrorEvent('eventType', { lineno: 123.45 }).lineno is 123
PASS new ErrorEvent('eventType', { lineno: NaN }).lineno is 0
PASS new ErrorEvent('eventType', { lineno: undefined }).lineno is 0
PASS new ErrorEvent('eventType', { lineno: null }).lineno is 0
PASS new ErrorEvent('eventType', { lineno: '' }).lineno is 0
PASS new ErrorEvent('eventType', { lineno: '12345' }).lineno is 12345
PASS new ErrorEvent('eventType', { lineno: '12345a' }).lineno is 0
PASS new ErrorEvent('eventType', { lineno: 'abc' }).lineno is 0
PASS new ErrorEvent('eventType', { lineno: [] }).lineno is 0
PASS new ErrorEvent('eventType', { lineno: [12345] }).lineno is 12345
PASS new ErrorEvent('eventType', { lineno: [12345, 67890] }).lineno is 0
PASS new ErrorEvent('eventType', { lineno: {} }).lineno is 0
PASS new ErrorEvent('eventType', { lineno: {moemoe: 12345} }).lineno is 0
PASS new ErrorEvent('eventType', { lineno: {valueOf: function () { return 12345; }} }).lineno is 12345
PASS new ErrorEvent('eventType', { colno: 0 }).colno is 0
PASS new ErrorEvent('eventType', { colno: 1 }).colno is 1
PASS new ErrorEvent('eventType', { colno: 4294967294 }).colno is 4294967294
PASS new ErrorEvent('eventType', { colno: 4294967295 }).colno is 4294967295
PASS new ErrorEvent('eventType', { error: undefined }).error is null
PASS new ErrorEvent('eventType', { error: null }).error is null
PASS new ErrorEvent('eventType', { error: '' }).error is ''
PASS new ErrorEvent('eventType', { error: '12345' }).error is '12345'
PASS new ErrorEvent('eventType', { error: [] }).error is []
PASS new ErrorEvent('eventType', { error: [12345] }).error is [12345]
PASS new ErrorEvent('eventType', { error: [12345, 67890] }).error is [12345, 67890]
PASS new ErrorEvent('eventType', { error: {moemoe: 12345} }).error.moemoe is 12345
PASS new ErrorEvent('eventType', { colno: 9007199254740991 }).colno is 4294967295
PASS new ErrorEvent('eventType', { colno: 18446744073709551615 }).colno is 0
PASS new ErrorEvent('eventType', { colno: 12345678901234567890 }).colno is 3944679424
PASS new ErrorEvent('eventType', { colno: -1 }).colno is 4294967295
PASS new ErrorEvent('eventType', { colno: 123.45 }).colno is 123
PASS new ErrorEvent('eventType', { colno: NaN }).colno is 0
PASS new ErrorEvent('eventType', { colno: undefined }).colno is 0
PASS new ErrorEvent('eventType', { colno: null }).colno is 0
PASS new ErrorEvent('eventType', { colno: '' }).colno is 0
PASS new ErrorEvent('eventType', { colno: '12345' }).colno is 12345
PASS new ErrorEvent('eventType', { colno: '12345a' }).colno is 0
PASS new ErrorEvent('eventType', { colno: 'abc' }).colno is 0
PASS new ErrorEvent('eventType', { colno: [] }).colno is 0
PASS new ErrorEvent('eventType', { colno: [12345] }).colno is 12345
PASS new ErrorEvent('eventType', { colno: [12345, 67890] }).colno is 0
PASS new ErrorEvent('eventType', { colno: {} }).colno is 0
PASS new ErrorEvent('eventType', { colno: {moemoe: 12345} }).colno is 0
PASS new ErrorEvent('eventType', { colno: {valueOf: function () { return 12345; }} }).colno is 12345
PASS new ErrorEvent('eventType', { bubbles: true, cancelable: true, message: 'sakuranbo', filename: 'amaenbo', lineno: 12345, colno: 23456, error: 42 }).bubbles is true
PASS new ErrorEvent('eventType', { bubbles: true, cancelable: true, message: 'sakuranbo', filename: 'amaenbo', lineno: 12345, colno: 23456, error: 42 }).cancelable is true
PASS new ErrorEvent('eventType', { bubbles: true, cancelable: true, message: 'sakuranbo', filename: 'amaenbo', lineno: 12345, colno: 23456, error: 42 }).message is "sakuranbo"
PASS new ErrorEvent('eventType', { bubbles: true, cancelable: true, message: 'sakuranbo', filename: 'amaenbo', lineno: 12345, colno: 23456, error: 42 }).filename is "amaenbo"
PASS new ErrorEvent('eventType', { bubbles: true, cancelable: true, message: 'sakuranbo', filename: 'amaenbo', lineno: 12345, colno: 23456, error: 42 }).lineno is 12345
PASS new ErrorEvent('eventType', { bubbles: true, cancelable: true, message: 'sakuranbo', filename: 'amaenbo', lineno: 12345, colno: 23456, error: 42 }).colno is 23456
PASS new ErrorEvent('eventType', { bubbles: true, cancelable: true, message: 'sakuranbo', filename: 'amaenbo', lineno: 12345, colno: 23456, error: 42 }).error is 42
PASS successfullyParsed is true

TEST COMPLETE

