Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F4427385
test_jit_arguments_object.cjs
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
1 KB
Referenced Files
None
Subscribers
None
test_jit_arguments_object.cjs
View Options
function assertEq(actual, expected, msg) {
if (actual !== expected) {
throw new Error(`${msg}: expected ${expected}, got ${actual}`);
}
}
function mappedRead(a) {
a = 2;
return arguments[0];
}
function mappedWrite(a) {
arguments[0] = 2;
return a;
}
function strictSlice(path) {
"use strict";
return {
argc: arguments.length,
tail: Array.prototype.slice.call(arguments, 1),
};
}
function strictUnmappedRead(a) {
"use strict";
a = 2;
return arguments[0];
}
function strictUnmappedWrite(a) {
"use strict";
arguments[0] = 2;
return a;
}
function directRead(a) {
return arguments[0] + a;
}
function arrowCapture(a) {
const read = () => arguments[0] + a;
return read();
}
for (let i = 0; i < 500; i++) {
assertEq(mappedRead(1), 2, "warm mapped read");
assertEq(mappedWrite(1), 2, "warm mapped write");
assertEq(directRead(3), 6, "warm direct read");
assertEq(arrowCapture(4), 8, "warm arrow capture");
assertEq(strictUnmappedRead(1), 1, "warm strict unmapped read");
assertEq(strictUnmappedWrite(1), 1, "warm strict unmapped write");
const warmStrict = strictSlice("/", "mw");
assertEq(warmStrict.argc, 2, "warm strict argc");
assertEq(warmStrict.tail.length, 1, "warm strict tail length");
assertEq(warmStrict.tail[0], "mw", "warm strict tail first");
}
assertEq(mappedRead(1), 2, "hot mapped read");
assertEq(mappedWrite(1), 2, "hot mapped write");
assertEq(directRead(3), 6, "hot direct read");
assertEq(arrowCapture(4), 8, "hot arrow capture");
assertEq(strictUnmappedRead(1), 1, "hot strict unmapped read");
assertEq(strictUnmappedWrite(1), 1, "hot strict unmapped write");
const hotStrict = strictSlice("/route", "mw1", "mw2");
assertEq(hotStrict.argc, 3, "hot strict argc");
assertEq(hotStrict.tail.length, 2, "hot strict tail length");
assertEq(hotStrict.tail[0], "mw1", "hot strict tail first");
assertEq(hotStrict.tail[1], "mw2", "hot strict tail second");
console.log("OK: test_jit_arguments_object");
File Metadata
Details
Attached
Mime Type
application/javascript
Expires
Sat, May 2, 3:10 AM (1 d, 19 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
543176
Default Alt Text
test_jit_arguments_object.cjs (1 KB)
Attached To
Mode
rANT Ant
Attached
Detach File
Event Timeline
Log In to Comment