| var config = getBuildConfiguration(); |
| |
| // FIXME: ASAN and debug builds run this too slowly for now. |
| if (!config.debug && !config.asan) { |
| let longArray = []; |
| longArray.length = getMaxArgs() + 1; |
| let shortArray = []; |
| let a; |
| |
| let f = function() { |
| }; |
| |
| // Call_Scripted |
| // Optimized stub is used after some calls. |
| a = shortArray; |
| for (let i = 0; i < 4; i++) { |
| if (i == 3) { |
| a = longArray; |
| } |
| try { |
| f(...a); |
| } catch (e) { |
| assertEq(e.message, "too many function arguments"); |
| } |
| } |
| |
| // Call_Scripted (constructing) |
| a = shortArray; |
| for (let i = 0; i < 4; i++) { |
| if (i == 3) { |
| a = longArray; |
| } |
| try { |
| new f(...a); |
| } catch (e) { |
| assertEq(e.message, "too many constructor arguments"); |
| } |
| } |
| |
| // Call_Native |
| a = shortArray; |
| for (let i = 0; i < 4; i++) { |
| if (i == 3) { |
| a = longArray; |
| } |
| try { |
| Math.max(...a); |
| } catch (e) { |
| assertEq(e.message, "too many function arguments"); |
| } |
| } |
| |
| // Call_Native (constructing) |
| a = shortArray; |
| for (let i = 0; i < 4; i++) { |
| if (i == 3) { |
| a = longArray; |
| } |
| try { |
| new Date(...a); |
| } catch (e) { |
| assertEq(e.message, "too many constructor arguments"); |
| } |
| } |
| |
| // No optimized stub for eval. |
| a = longArray; |
| try { |
| eval(...a); |
| } catch (e) { |
| assertEq(e.message, "too many function arguments"); |
| } |
| } |