Skip to content

Commit 1226279

Browse files
committed
defer external script parsing until after DOMContentLoaded
Fixes #533. External behavior files loaded via <script type="text/hyperscript" src="..."> were being parsed before plugins like hdb.js could register their commands, causing "Unexpected Token: breakpoint" errors. The fix separates fetch from parse: external files are still fetched immediately for performance, but parsing is deferred until after ready() fires, giving synchronous plugin scripts time to register. Signed-off-by: André Ahlert <andre@aex.partners>
1 parent adeeb31 commit 1226279

1 file changed

Lines changed: 7 additions & 4 deletions

File tree

src/_hyperscript.js

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -180,11 +180,14 @@ if (typeof document !== 'undefined') {
180180
})
181181
);
182182

183-
// Evaluate loaded scripts
184-
scriptTexts.forEach(sc => _hyperscript(sc));
185-
186-
// Wait for DOM ready, then initialize
183+
// Wait for DOM ready, then parse external scripts and initialize.
184+
// Parsing is deferred until after ready() so plugins loaded via
185+
// synchronous <script> tags (e.g. hdb.js) have registered their
186+
// commands before behavior files are evaluated.
187+
// See https://github.com/bigskysoftware/_hyperscript/issues/533
187188
ready(() => {
189+
scriptTexts.forEach(sc => _hyperscript(sc));
190+
188191
_hyperscript.process(document.documentElement);
189192
document.dispatchEvent(new Event("hyperscript:ready"));
190193

0 commit comments

Comments
 (0)