Tcl
Tcl
Call a JavaScript Function Returning a Boolean
See more JavaScript Examples
Demonstrates how to call a JavaScript function that returns a boolean.Chilkat Tcl Downloads
load ./chilkat.dll
set success 0
# This is the JavaScript function we'll call:
# function isEven(number) {
# return number % 2 === 0;
# }
set sbScript [new_CkStringBuilder]
CkStringBuilder_Append $sbScript "function isEven(number) { return number % 2 === 0; }"
set js [new_CkJs]
set result [new_CkJsonObject]
CkJsonObject_put_EmitCompact $result 0
# Call Eval to add the function to the context's global object
set success [CkJs_Eval $js $sbScript $result]
if {$success == 0} then {
# Examine the result for an exception.
puts [CkJsonObject_emit $result]
# Also examine the LastErrorText.
puts [CkJs_lastErrorText $js]
delete_CkStringBuilder $sbScript
delete_CkJs $js
delete_CkJsonObject $result
exit
}
# ------------------------------------------------------------------------------
# Call the function isEven(8)
set funcCall [new_CkJsonObject]
# Create JSON specifying the function name and arguments
# {
# "name": "isEven",
# "args": [ 8 ]
# }
CkJsonObject_UpdateString $funcCall "name" "isEven"
CkJsonObject_UpdateInt $funcCall "args[0]" 8
set success [CkJs_CallFunction $js $funcCall $result]
if {$success == 0} then {
# Examine the result for an exception.
puts [CkJsonObject_emit $result]
# Also examine the LastErrorText.
puts [CkJs_lastErrorText $js]
delete_CkStringBuilder $sbScript
delete_CkJs $js
delete_CkJsonObject $result
delete_CkJsonObject $funcCall
exit
}
puts [CkJsonObject_emit $result]
# Output:
# {
# "type": "bool",
# "value": true
# }
set retval [CkJsonObject_BoolOf $result "value"]
puts "$retval"
# Output:
# 1
delete_CkStringBuilder $sbScript
delete_CkJs $js
delete_CkJsonObject $result
delete_CkJsonObject $funcCall