diff --git a/test/built-ins/WeakMap/prototype/getOrInsertComputed/throw-if-key-cannot-be-held-weakly.js b/test/built-ins/WeakMap/prototype/getOrInsertComputed/throw-if-key-cannot-be-held-weakly.js index 23762965b7..fa85e7e0fb 100644 --- a/test/built-ins/WeakMap/prototype/getOrInsertComputed/throw-if-key-cannot-be-held-weakly.js +++ b/test/built-ins/WeakMap/prototype/getOrInsertComputed/throw-if-key-cannot-be-held-weakly.js @@ -13,29 +13,22 @@ info: | ... features: [Symbol, WeakMap, upsert] ---*/ + +var log = []; +var invalidKeys = [1, false, undefined, 'string', null]; + var s = new WeakMap(); -assert.throws(TypeError, function() { - s.getOrInsertComputed(1, () => 1); -}); +for (let invalidKey of invalidKeys) { + assert.throws(TypeError, function () { + s.getOrInsertComputed(invalidKey, + () => log.push(`Unexpected evaluation of callback function, key: ${typeof invalidKey}`)); + }, `${typeof invalidKey} not allowed as WeakMap key`); +} -assert.throws(TypeError, function() { - s.getOrInsertComputed(false, () => 1); -}); - -assert.throws(TypeError, function() { - s.getOrInsertComputed(undefined, () => 1); -}); - -assert.throws(TypeError, function() { - s.getOrInsertComputed('string', () => 1); -}); - -assert.throws(TypeError, function() { - s.getOrInsertComputed(null, () => 1); -}); - -assert.throws(TypeError, function() { - s.getOrInsertComputed(Symbol.for('registered symbol'), () => 1); +assert.throws(TypeError, function () { + s.getOrInsertComputed(Symbol.for('registered symbol'), + () => log.push("Unexpected callback evaluation")); }, 'Registered symbol not allowed as WeakMap key'); +assert.compareArray(log, []);