mirror of
https://github.com/pjh456/OxideJS.git
synced 2026-10-26 19:51:11 +08:00
feat: 写路径四路加函数名不可写守卫,sloppy 静默 strict 抛 TypeError
This commit is contained in:
@@ -132,12 +132,13 @@ fn switch_case_function_captured_by_outer() {
|
||||
|
||||
#[test]
|
||||
fn switch_case_function_binding_independent_of_outer_var() {
|
||||
// 块绑定可变且与外层 var 独立:块内对 f 重新赋值不改写外层 var 绑定。
|
||||
// 函数名不可写绑定(15.2.10.1 步 m):体内容器对 f 重新赋值静默失败(sloppy),
|
||||
// 块内 f 仍为函数对象;外层 var 绑定独立,不被改写。
|
||||
let src = "var r1, r2; (function(){ var initialBV, currentBV; \
|
||||
switch(1){case 1: function f(){ initialBV=f; f=123; currentBV=f; return 'decl'; }} \
|
||||
var varBinding=f; f(); r1 = initialBV() === 'decl'; \
|
||||
r2 = currentBV === 123 && varBinding() === 'decl'; }()); r1 && r2";
|
||||
assert!(eval(src).unwrap().as_bool(), "块绑定应独立于外层 var 绑定");
|
||||
r2 = currentBV === f && varBinding() === 'decl'; }()); r1 && r2";
|
||||
assert!(eval(src).unwrap().as_bool(), "函数名不可写绑定自引用重赋静默失败,外层 var 绑定独立");
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
||||
Reference in New Issue
Block a user