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:
2026-05-05 04:30:13 +00:00
parent 7b72c064c4
commit 79190e4dac
3 changed files with 11 additions and 1 deletions

View File

@@ -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

View File

@@ -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