nativeMain.com.dokar.quickjs.bridge.useJsValue.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of quickjs-kt Show documentation
Show all versions of quickjs-kt Show documentation
A QuickJS binding for idiomatic Kotlin, with Async/DSL/ES Modules support.
The newest version!
package com.dokar.quickjs.bridge
import kotlinx.cinterop.CPointer
import kotlinx.cinterop.CValue
import kotlinx.cinterop.ExperimentalForeignApi
import quickjs.JSContext
import quickjs.JSValue
import quickjs.JS_FreeValue
@OptIn(ExperimentalForeignApi::class)
internal inline fun CValue.use(
context: CPointer,
block: CValue.() -> T
): T {
try {
return block()
} finally {
JS_FreeValue(context, this)
}
}