fix: 全局三常量描述符翻可配置,var 重复声明以 builtin 镜像值保留现存值

This commit is contained in:
2026-09-10 04:16:08 +08:00
parent 7138c98da8
commit c87edd404a
7 changed files with 246 additions and 27 deletions
@@ -1,6 +1,6 @@
//! 内置全局属性描述符测试:规范要求全局构造器/命名空间对象属性
//! enumerable=false(不泄漏进 Object.keys(globalThis) / for-in),
//! 全局 NaN/undefined/Infinity 三常量不可写不可枚举不可配置。
//! 全局 NaN/undefined/Infinity 三常量不可写不可枚举可配置。
use oxide_compiler::compiler::Compiler;
use oxide_parser::Allocator;
@@ -61,11 +61,11 @@ fn for_in_global_this_excludes_builtins() {
}
#[test]
fn nan_undefined_infinity_are_non_writable_non_configurable() {
fn nan_undefined_infinity_are_non_writable_configurable() {
for name in ["NaN", "undefined", "Infinity"] {
let src = format!(
"var d = Object.getOwnPropertyDescriptor(globalThis, '{name}'); \
d.writable === false && d.enumerable === false && d.configurable === false"
d.writable === false && d.enumerable === false && d.configurable === true"
);
eval_truthy(&src);
}