Merge pull request #881 from trheyi/main
Improve JavaScript argument handling in jsCall method
This commit is contained in:
commit
125876d5ef
1 changed files with 19 additions and 18 deletions
|
|
@ -188,27 +188,28 @@ func jsCall(info *v8go.FunctionCallbackInfo) *v8go.Value {
|
||||||
|
|
||||||
// Rest args
|
// Rest args
|
||||||
var jsArgs *v8go.Value
|
var jsArgs *v8go.Value
|
||||||
|
goArgs := []interface{}{}
|
||||||
if len(args) > 3 {
|
if len(args) > 3 {
|
||||||
jsArgs = args[3]
|
jsArgs = args[3]
|
||||||
}
|
if jsArgs != nil {
|
||||||
|
if jsArgs.IsArray() {
|
||||||
goArgs := []interface{}{}
|
v, err := bridge.GoValue(jsArgs, info.Context())
|
||||||
if jsArgs.IsArray() {
|
if err != nil {
|
||||||
v, err := bridge.GoValue(jsArgs, info.Context())
|
return bridge.JsException(info.Context(), err.Error())
|
||||||
if err != nil {
|
}
|
||||||
return bridge.JsException(info.Context(), err.Error())
|
arr, ok := v.([]interface{})
|
||||||
|
if !ok {
|
||||||
|
return bridge.JsException(info.Context(), "Invalid arguments")
|
||||||
|
}
|
||||||
|
goArgs = arr
|
||||||
|
} else {
|
||||||
|
v, err := bridge.GoValue(jsArgs, info.Context())
|
||||||
|
if err != nil {
|
||||||
|
return bridge.JsException(info.Context(), err.Error())
|
||||||
|
}
|
||||||
|
goArgs = []interface{}{v}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
arr, ok := v.([]interface{})
|
|
||||||
if !ok {
|
|
||||||
return bridge.JsException(info.Context(), "Invalid arguments")
|
|
||||||
}
|
|
||||||
goArgs = arr
|
|
||||||
} else {
|
|
||||||
v, err := bridge.GoValue(jsArgs, info.Context())
|
|
||||||
if err != nil {
|
|
||||||
return bridge.JsException(info.Context(), err.Error())
|
|
||||||
}
|
|
||||||
goArgs = []interface{}{v}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parse the callback
|
// Parse the callback
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue