aboutsummaryrefslogtreecommitdiff
path: root/lux-js/source
diff options
context:
space:
mode:
authorEduardo Julian2019-04-12 21:47:02 -0400
committerEduardo Julian2019-04-12 21:47:02 -0400
commitd2d6e69133ccfe7b2ee1723d1785e8cb3458678d (patch)
tree58868bcd846167022cd151f165836912d9ef45bc /lux-js/source
parentf2937706edb6887c5eb1a6a0b6668b1334f5ef3b (diff)
Added some debugging machinery.
Diffstat (limited to 'lux-js/source')
-rw-r--r--lux-js/source/program.lux49
1 files changed, 2 insertions, 47 deletions
diff --git a/lux-js/source/program.lux b/lux-js/source/program.lux
index a55c29aa6..1a2bfc8d8 100644
--- a/lux-js/source/program.lux
+++ b/lux-js/source/program.lux
@@ -20,6 +20,7 @@
["." template]]
[world
["." file]]
+ ["." debug]
["." host (#+ import: interface: do-to object)
["_" js]]
[tool
@@ -123,52 +124,6 @@
(error! (exception.construct unknown-member [member (:coerce java/lang/Object value)]))))
))
-(def: (inspect object)
- (-> java/lang/Object Text)
- (<| (case (host.check java/lang/Boolean object)
- (#.Some value)
- (%b value)
- #.None)
- (case (host.check java/lang/String object)
- (#.Some value)
- (%t value)
- #.None)
- (case (host.check java/lang/Long object)
- (#.Some value)
- (%i (.int value))
- #.None)
- (case (host.check java/lang/Number object)
- (#.Some value)
- (%f (java/lang/Number::doubleValue value))
- #.None)
- (case (host.check (Array java/lang/Object) object)
- (#.Some value)
- (let [value (:coerce (Array java/lang/Object) value)]
- (case (array.read 0 value)
- (^multi (#.Some tag)
- [(host.check java/lang/Integer tag)
- (#.Some tag)]
- [[(array.read 1 value)
- (array.read 2 value)]
- [last?
- (#.Some choice)]])
- (let [last? (case last?
- (#.Some _) #1
- #.None #0)]
- (|> (format (%n (.nat (java/lang/Integer::longValue tag)))
- " " (%b last?)
- " " (inspect choice))
- (text.enclose ["(" ")"])))
-
- _
- (|> value
- array.to-list
- (list/map inspect)
- (text.join-with " ")
- (text.enclose ["[" "]"]))))
- #.None)
- (java/lang/Object::toString object)))
-
(def: (::toString js-object)
(-> Any jdk/nashorn/api/scripting/JSObject)
(object [] jdk/nashorn/api/scripting/AbstractJSObject []
@@ -178,7 +133,7 @@
#1)
(jdk/nashorn/api/scripting/AbstractJSObject
(call {this java/lang/Object} {args (Array java/lang/Object)}) java/lang/Object
- (inspect (:coerce java/lang/Object js-object)))
+ (debug.inspect js-object))
))
(def: (::slice js-object value)