Direct eval inside a function creates local var and function bindings that should be deletable, but Boa keeps them alive after delete.
(function () {
var after;
eval("delete x; after = () => x; var x;");
try { after(); console.log("no throw"); } catch (e) { console.log(e.name); }
}());
(function () {
var after;
eval("delete f; after = () => f; function f() {}");
try { after(); console.log("no throw"); } catch (e) { console.log(e.name); }
}());
Current Boa:
Expected:
ReferenceError
ReferenceError
This also matches the failing test262 cases:
test/language/eval-code/direct/var-env-var-init-local-new-delete.js
test/language/eval-code/direct/var-env-func-init-local-new-delete.js
Direct
evalinside a function creates localvarand function bindings that should be deletable, but Boa keeps them alive afterdelete.Current Boa:
no throwno throwExpected:
ReferenceErrorReferenceErrorThis also matches the failing test262 cases:
test/language/eval-code/direct/var-env-var-init-local-new-delete.jstest/language/eval-code/direct/var-env-func-init-local-new-delete.js