Tests support for calling removeEventListener() with an EventListenerOptions dictionary

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


PASS testAddThenRemove(undefined, false) is true
PASS testAddThenRemove(undefined, { 'capture': false }) is true
PASS testAddThenRemove(undefined, { }) is true
PASS testAddThenRemove(undefined, undefined) is true
PASS testAddThenRemove(undefined, true) is false
PASS testAddThenRemove(undefined, { 'capture': true }) is false

PASS testAddThenRemove(false, false) is true
PASS testAddThenRemove(false, { 'capture': false }) is true
PASS testAddThenRemove(false, { }) is true
PASS testAddThenRemove(false, undefined) is true
PASS testAddThenRemove(false, true) is false
PASS testAddThenRemove(false, { 'capture': true }) is false

PASS testAddThenRemove({ 'capture': false }, false) is true
PASS testAddThenRemove({ 'capture': false }, { 'capture': false }) is true
PASS testAddThenRemove({ 'capture': false }, { }) is true
PASS testAddThenRemove({ 'capture': false }, undefined) is true
PASS testAddThenRemove({ 'capture': false }, true) is false
PASS testAddThenRemove({ 'capture': false }, { 'capture': true }) is false

PASS testAddThenRemove({ }, false) is true
PASS testAddThenRemove({ }, { 'capture': false }) is true
PASS testAddThenRemove({ }, { }) is true
PASS testAddThenRemove({ }, undefined) is true
PASS testAddThenRemove({ }, true) is false
PASS testAddThenRemove({ }, { 'capture': true }) is false

PASS testAddThenRemove(true, true) is true
PASS testAddThenRemove(true, { 'capture': true }) is true
PASS testAddThenRemove(true, { }) is false
PASS testAddThenRemove(true, undefined) is false
PASS testAddThenRemove(true, false) is false
PASS testAddThenRemove(true, { 'capture': false }) is false

PASS testAddThenRemove({ 'capture': true } , true) is true
PASS testAddThenRemove({ 'capture': true }, { 'capture': true }) is true
PASS testAddThenRemove({ 'capture': true }, { }) is false
PASS testAddThenRemove({ 'capture': true }, undefined) is false
PASS testAddThenRemove({ 'capture': true }, false) is false
PASS testAddThenRemove({ 'capture': true }, { 'capture': false }) is false
PASS successfullyParsed is true

TEST COMPLETE

