in src/js/internal/util/inspect.js [2444:2569]
function formatWithOptionsInternal(inspectOptions, args) {
const first = args[0];
let a = 0;
let str = "";
let join = "";
if (typeof first === "string") {
if (args.length === 1) {
return first;
}
let tempStr;
let lastPos = 0;
for (let i = 0; i < first.length - 1; i++) {
if (StringPrototypeCharCodeAt(first, i) === 37) {
// '%'
const nextChar = StringPrototypeCharCodeAt(first, ++i);
if (a + 1 !== args.length) {
switch (nextChar) {
case 115: {
// 's'
const tempArg = args[++a];
if (typeof tempArg === "number") {
tempStr = formatNumberNoColor(tempArg, inspectOptions);
} else if (typeof tempArg === "bigint") {
tempStr = formatBigIntNoColor(tempArg, inspectOptions);
} else if (typeof tempArg !== "object" || tempArg === null || !hasBuiltInToString(tempArg)) {
tempStr = String(tempArg);
} else {
tempStr = inspect(tempArg, {
...inspectOptions,
compact: 3,
colors: false,
depth: 0,
});
}
break;
}
case 106: // 'j'
tempStr = tryStringify(args[++a]);
break;
case 100: {
// 'd'
const tempNum = args[++a];
if (typeof tempNum === "bigint") {
tempStr = formatBigIntNoColor(tempNum, inspectOptions);
} else if (typeof tempNum === "symbol") {
tempStr = "NaN";
} else {
tempStr = formatNumberNoColor(Number(tempNum), inspectOptions);
}
break;
}
case 79: // 'O'
tempStr = inspect(args[++a], inspectOptions);
break;
case 111: // 'o'
tempStr = inspect(args[++a], {
...inspectOptions,
showHidden: true,
showProxy: true,
depth: 4,
});
break;
case 105: {
// 'i'
const tempInteger = args[++a];
if (typeof tempInteger === "bigint") {
tempStr = formatBigIntNoColor(tempInteger, inspectOptions);
} else if (typeof tempInteger === "symbol") {
tempStr = "NaN";
} else {
tempStr = formatNumberNoColor(NumberParseInt(tempInteger), inspectOptions);
}
break;
}
case 102: {
// 'f'
const tempFloat = args[++a];
if (typeof tempFloat === "symbol") {
tempStr = "NaN";
} else {
tempStr = formatNumberNoColor(NumberParseFloat(tempFloat), inspectOptions);
}
break;
}
case 99: // 'c'
a += 1;
tempStr = "";
break;
case 37: // '%'
str += StringPrototypeSlice(first, lastPos, i);
lastPos = i + 1;
continue;
default: // Any other character is not a correct placeholder
continue;
}
if (lastPos !== i - 1) {
str += StringPrototypeSlice(first, lastPos, i - 1);
}
str += tempStr;
lastPos = i + 1;
} else if (nextChar === 37) {
str += StringPrototypeSlice(first, lastPos, i);
lastPos = i + 1;
}
}
}
if (lastPos !== 0) {
a++;
join = " ";
if (lastPos < first.length) {
str += StringPrototypeSlice(first, lastPos);
}
}
}
while (a < args.length) {
const value = args[a];
str += join;
str += typeof value !== "string" ? inspect(value, inspectOptions) : value;
join = " ";
a++;
}
return str;
}