Files
scriptc/tests/corpus/2980-string-position-arguments.js
Chris Tate d8f6d7cf94 Fix static string position defaults and coercion (#416)
* Fix static string position defaults and coercion

* Stabilize HTTP timeout differential fixtures
2026-09-25 00:42:37 -05:00

28 lines
1.3 KiB
JavaScript

console.log("abc".charAt(), "abc".charCodeAt(), "abc".substring(), "abc".slice());
console.log("abc".charAt(undefined), "abc".charCodeAt(undefined));
console.log("abc".slice(undefined, undefined), "abc".substring(undefined, undefined));
console.log("abc".charAt(null), "abc".charCodeAt(null));
console.log("abc".charAt(true), "abc".charCodeAt(false));
console.log("abc".slice(false, true), "abc".substring(true, false));
console.log("abcd".charAt(" +00200.0000E-0002 "), "abcd".charCodeAt("2.9"));
console.log("abc".charAt("x"), "abc".charCodeAt(""));
console.log("abcd".slice("-2.9", "Infinity"), "abcd".substring("2.9", "x"));
console.log("abc".slice(1, undefined), "abc".substring(1, undefined));
console.log("abc".slice(1, null), "abc".substring(1, null));
console.log("".charAt(), "".charCodeAt(), "".slice(), "".substring());
let trace = "";
function receiver() { trace += "r"; return "abcd"; }
function start() { trace += "s"; return "1.9"; }
function end() { trace += "e"; return "3.9"; }
console.log(receiver().slice(start(), end()), trace);
trace = "";
console.log(receiver().substring(start(), void end()), trace);
trace = "";
console.log(receiver().charAt(void start()), trace);
trace = "";
console.log(receiver().charCodeAt(void start()), trace);
function optionalEnd(end) { return "abcd".slice(1, end); }
console.log(optionalEnd(undefined), optionalEnd(3));