From 26a029d407be480d791972afb5975cf62c9360a6 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 02:47:55 +0200 Subject: Adding upstream version 124.0.1. Signed-off-by: Daniel Baumann --- .../tests/Set/forEach-selfhosted-behavior.js | 36 ++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 js/src/jit-test/tests/Set/forEach-selfhosted-behavior.js (limited to 'js/src/jit-test/tests/Set/forEach-selfhosted-behavior.js') diff --git a/js/src/jit-test/tests/Set/forEach-selfhosted-behavior.js b/js/src/jit-test/tests/Set/forEach-selfhosted-behavior.js new file mode 100644 index 0000000000..ca6363be5c --- /dev/null +++ b/js/src/jit-test/tests/Set/forEach-selfhosted-behavior.js @@ -0,0 +1,36 @@ +/* + * Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/licenses/publicdomain/ + */ + +// Don't use .call(...) in the self-hosted Set.prototype.forEach + +var functionCall = Function.prototype.call; + +function throwSyntaxError() +{ + throw new SyntaxError("Function.prototype.call incorrectly called"); +} + +function lalala() {} + +Function.prototype.call = throwSyntaxError; + +new Set().forEach(throwSyntaxError); +new Set([1]).forEach(lalala); +new Set([{}, 4]).forEach(lalala); + +Function.prototype.call = function() { this.add(3.141592654); }; + +new Set().forEach(throwSyntaxError); +new Set(["foo"]).forEach(lalala); +new Set([undefined, NaN]).forEach(lalala); + +var callCount = 0; +Function.prototype.call = function() { callCount++; }; + +new Set().forEach(throwSyntaxError); +new Set([new Number]).forEach(lalala); +new Set([true, new Boolean(false)]).forEach(lalala); + +assertEq(callCount, 0); -- cgit v1.2.3