js-on-sx: js-add ToPrimitive's Date and plain Objects via valueOf/toString
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 24s
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 24s
This commit is contained in:
@@ -1969,7 +1969,30 @@
|
||||
(get v "__js_number_value__"))
|
||||
((contains? (keys v) "__js_boolean_value__")
|
||||
(get v "__js_boolean_value__"))
|
||||
(else v))))
|
||||
((contains? (keys v) "__js_is_date__")
|
||||
(js-add-call-method v "toString"))
|
||||
(else (js-add-toprim-default v)))))
|
||||
|
||||
(define
|
||||
js-add-toprim-default
|
||||
(fn
|
||||
(v)
|
||||
(let
|
||||
((via-valueof (js-add-call-method v "valueOf")))
|
||||
(cond
|
||||
((not (= (type-of via-valueof) "dict")) via-valueof)
|
||||
(else (js-add-call-method v "toString"))))))
|
||||
|
||||
(define
|
||||
js-add-call-method
|
||||
(fn
|
||||
(v name)
|
||||
(let
|
||||
((m (js-dict-get-walk v name)))
|
||||
(cond
|
||||
((js-undefined? m) v)
|
||||
((not (js-function? m)) v)
|
||||
(else (js-call-with-this v m (list)))))))
|
||||
|
||||
(define
|
||||
js-add
|
||||
|
||||
Reference in New Issue
Block a user