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 "undefined"
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 "undefined"
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', { 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 }).bubbles is true
PASS new ErrorEvent('eventType', { bubbles: true, cancelable: true, message: 'sakuranbo', filename: 'amaenbo', lineno: 12345, colno: 23456 }).cancelable is true
PASS new ErrorEvent('eventType', { bubbles: true, cancelable: true, message: 'sakuranbo', filename: 'amaenbo', lineno: 12345, colno: 23456 }).message is "sakuranbo"
PASS new ErrorEvent('eventType', { bubbles: true, cancelable: true, message: 'sakuranbo', filename: 'amaenbo', lineno: 12345, colno: 23456 }).filename is "amaenbo"
PASS new ErrorEvent('eventType', { bubbles: true, cancelable: true, message: 'sakuranbo', filename: 'amaenbo', lineno: 12345, colno: 23456 }).lineno is 12345
PASS new ErrorEvent('eventType', { bubbles: true, cancelable: true, message: 'sakuranbo', filename: 'amaenbo', lineno: 12345, colno: 23456 }).colno is 23456
PASS successfullyParsed is true

TEST COMPLETE

