HS cluster 22: simplify win-call emit + def→window + init-blocks test (+1)
- Remove guard wrapper from hs-win-call emit (direct call is sufficient now) - def command also registers fn on window[name] so hs-win-call finds it - Generator: fix \"-escaped quotes in hs-compile string literal (was splitting "here" into three SX nodes) - Hand-rolled deftest for 'can refer to function in init blocks' now passes Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1407,6 +1407,21 @@ def generate_test_pw(test, elements, var_names, idx):
|
||||
if test['name'] in SKIP_TEST_NAMES:
|
||||
return emit_skip_test(test)
|
||||
|
||||
# Special case: init+def ordering. The init fires immediately at eval time, but
|
||||
# the test DOM element #d1 must exist before the script runs. Create #d1 first.
|
||||
if test.get('name') == 'can refer to function in init blocks':
|
||||
hs_src = "init call foo() end def foo() put \\\"here\\\" into #d1's innerHTML end"
|
||||
return (
|
||||
' (deftest "can refer to function in init blocks"\n'
|
||||
' (hs-cleanup!)\n'
|
||||
' (let ((_el-d1 (dom-create-element "div")))\n'
|
||||
' (dom-set-attr _el-d1 "id" "d1")\n'
|
||||
' (dom-append (dom-body) _el-d1)\n'
|
||||
' (guard (_e (true nil)) (eval-expr-cek (hs-to-sx (hs-compile "' + hs_src + '"))))\n'
|
||||
' (assert= (dom-text-content (dom-query-by-id "d1")) "here"))\n'
|
||||
' )'
|
||||
)
|
||||
|
||||
pre_setups, ops = parse_dev_body(test['body'], elements, var_names)
|
||||
|
||||
# `<script type="text/hyperscript">` blocks appear in both the
|
||||
|
||||
Reference in New Issue
Block a user