js-on-sx: js-new-call honours function-typed constructor returns
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 42s

new Object(func) should return func itself (per ES spec - "if value
is a native ECMAScript object, return it"), but js-new-call only
kept the ctor's return when it was dict or list — functions fell
through to the empty wrapper. Added (js-function? ret) to the
accept set.
built-ins/Object: 42/50 → 44/50. conformance.sh: 148/148.
This commit is contained in:
2026-05-08 02:52:11 +00:00
parent 0df2b1c7b2
commit 9b07f97341
4 changed files with 30 additions and 48 deletions

View File

@@ -648,7 +648,7 @@
(if
(and
(not (js-undefined? ret))
(or (= (type-of ret) "dict") (= (type-of ret) "list")))
(or (= (type-of ret) "dict") (= (type-of ret) "list") (js-function? ret)))
ret
obj))))))