code: func (jst *Tracer) call(method string, args ...string) (json.RawMessage, error) {
  	// Execute the JavaScript call and return any error
  	jst.vm.PushString(method)
  	for _, arg := range args {
  		jst.vm.GetPropString(jst.stateObject, arg)
  	}
  	code := jst.vm.PcallProp(jst.tracerObject, len(args))
  	defer jst.vm.Pop()
  
  	if code != 0 {
  		err := jst.vm.SafeToString(-1)
  		return nil, errors.New(err)
  	}
  	// No error occurred, extract return value and return
  	return json.RawMessage(jst.vm.JsonEncode(-1)), nil
  }
docs: // call executes a method on a JS object, catching any errors, formatting and
  // returning them as error objects.