Files
rust_browser/tests/external/js262/fixtures/eval-edge-cases.js
Zachary D. Rowitsch a2e12f3d37 Add JavaScript eval() support with direct/indirect semantics
Implement eval() as a sentinel-intercepted builtin that parses and
executes code strings at runtime with proper scope and strict mode
handling. Direct eval inherits caller scope (vars leak in non-strict),
while indirect and strict eval contain declarations via function scope.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 23:36:06 -05:00

13 lines
430 B
JavaScript

// eval() edge cases — non-string passthrough, empty string, throw propagation,
// indirect-eval var isolation, doubly-parenthesized direct eval
console.log(eval(null));
console.log(eval(''));
var caught;
try { eval('throw 42'); } catch(e) { caught = e; }
console.log(caught);
var e = eval;
e('var leaked = 1');
try { leaked; console.log('bad'); } catch(_) { console.log('isolated'); }
((eval))('var dp = 55');
console.log(dp);