コード例 #1
0
ファイル: gomonkey.go プロジェクト: zond/gomonkey
func NewJSFunction(js *JS, function C.jsval) *JSFunction {
	rval := &JSFunction{js, function}
	C.JS_AddValueRoot(rval.js.context, &(rval.function))
	runtime.SetFinalizer(rval, func(f *JSFunction) {
		C.JS_RemoveValueRoot(f.js.context, &(f.function))
	})
	return rval
}
コード例 #2
0
ファイル: js_value.go プロジェクト: jueebushe/monkey
func newValue(cx *Context, val C.jsval) *Value {
	result := &Value{cx, val}

	C.JS_AddValueRoot(cx.jscx, &result.val)

	runtime.SetFinalizer(result, func(v *Value) {
		cx.rt.valDisposeChan <- v
	})

	return result
}