HS: fix null→nil in generator + asyncCheck fixture (+2 tests)
js_expr_to_sx bare-identifier path returned JS "null"/"undefined" as literal symbols; added keyword mapping before the identifier regex. Registered asyncCheck() global (returns true) for async-when test. Regen'd spec file to propagate the null fix. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -399,6 +399,8 @@ globalThis.cancelAnimationFrame=()=>{};
|
||||
// cluster-36b: globalFunction mock for "can call functions" test.
|
||||
// The test calls globalFunction("foo") via hyperscript and checks window.calledWith.
|
||||
globalThis.globalFunction = function(x) { globalThis.calledWith = x; };
|
||||
// asyncCheck: async-when test needs a truthy-returning global (simulates async guard).
|
||||
globalThis.asyncCheck = function() { return true; };
|
||||
// cluster-asyncError: function that returns a rejected promise.
|
||||
globalThis.failAsync = function() { return Promise.reject(new Error("boom")); };
|
||||
// HsMutationObserver — cluster-32 mutation mock. Maintains a global
|
||||
|
||||
@@ -1881,6 +1881,14 @@ def js_expr_to_sx(expr):
|
||||
if m:
|
||||
return f'(host-get {m.group(1)} "{m.group(2)}")'
|
||||
|
||||
# JS keywords / literals
|
||||
if expr in ('null', 'undefined'):
|
||||
return 'nil'
|
||||
if expr == 'true':
|
||||
return 'true'
|
||||
if expr == 'false':
|
||||
return 'false'
|
||||
|
||||
# Bare identifier
|
||||
if re.match(r'^[A-Za-z_]\w*$', expr):
|
||||
return expr
|
||||
|
||||
Reference in New Issue
Block a user