Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F4503250
test_eval.cjs
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
test_eval.cjs
View Options
// Test eval() function
// eval() executes JavaScript code represented as a string
// and returns the value of the last expression evaluated
console.log('=== Testing eval() Function ===\n');
// Test 1: Basic arithmetic
console.log('Test 1: Basic arithmetic');
console.log(' eval("1 + 2"):', eval('1 + 2'), '(expected: 3)');
console.log(' eval("10 * 5"):', eval('10 * 5'), '(expected: 50)');
// Test 2: Variable declaration and use
console.log('\nTest 2: Variable declaration and access');
eval('let x = 42');
console.log(' After eval("let x = 42"), x =', x, '(expected: 42)');
// Test 3: Function definition
console.log('\nTest 3: Function definition via eval');
eval('function add(a, b) { return a + b; }');
console.log(' add(3, 4):', add(3, 4), '(expected: 7)');
// Test 4: Access to outer scope variables
console.log('\nTest 4: Access to outer scope variables');
let outerVar = 100;
let result = eval('outerVar + 50');
console.log(' outerVar = 100, eval("outerVar + 50"):', result, '(expected: 150)');
// Test 5: String operations
console.log('\nTest 5: String operations');
console.log(' eval(\'"Hello" + " " + "World"\'):', eval('"Hello" + " " + "World"'), '(expected: "Hello World")');
// Test 6: Object literal
console.log('\nTest 6: Object literal');
let obj = eval('({a: 1, b: 2})');
console.log(' eval("({a: 1, b: 2})"):', obj);
console.log(' obj.a:', obj.a, '(expected: 1)');
console.log(' obj.b:', obj.b, '(expected: 2)');
// Test 7: Array literal
console.log('\nTest 7: Array literal');
let arr = eval('[1, 2, 3, 4, 5]');
console.log(' eval("[1, 2, 3, 4, 5]"):', arr);
console.log(' arr[0]:', arr[0], '(expected: 1)');
console.log(' arr.length:', arr.length, '(expected: 5)');
// Test 8: Non-string argument (should return as-is)
console.log('\nTest 8: Non-string argument');
console.log(' eval(42):', eval(42), '(expected: 42)');
console.log(' eval(true):', eval(true), '(expected: true)');
// Test 9: Empty eval
console.log('\nTest 9: Empty eval');
console.log(' eval():', eval(), '(expected: undefined)');
// Test 10: Complex expression
console.log('\nTest 10: Complex expression');
let complex = eval('let temp = 5; temp * temp + 10');
console.log(' eval("let temp = 5; temp * temp + 10"):', complex, '(expected: 35)');
// Test 11: Modifying existing variable
console.log('\nTest 11: Modifying existing variable');
let modVar = 10;
console.log(' Before: modVar =', modVar);
eval('modVar = modVar * 2');
console.log(' After eval("modVar = modVar * 2"): modVar =', modVar, '(expected: 20)');
// Test 12: Return value is last expression
console.log('\nTest 12: Return value is last expression');
let lastExpr = eval('1 + 1; 2 + 2; 3 + 3');
console.log(' eval("1 + 1; 2 + 2; 3 + 3"):', lastExpr, '(expected: 6)');
console.log('\n=== All eval() Tests Complete ===');
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, May 3, 9:24 AM (1 d, 21 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
523819
Default Alt Text
test_eval.cjs (2 KB)
Attached To
Mode
rANT Ant
Attached
Detach File
Event Timeline
Log In to Comment