Introduced support for javascript Math and Kotlin Double to WASM32.
Implemented jsinterop tool for interaction with js math.
This commit is contained in:
committed by
alexander-gorshenev
parent
1399ac9777
commit
f703877160
@@ -2370,6 +2370,18 @@ if (isMac()) {
|
||||
}
|
||||
}
|
||||
|
||||
task jsinterop_math(type: RunStandaloneKonanTest) {
|
||||
doFirst {
|
||||
// TODO: We probably need a NativeInteropPlugin for jsinterop?
|
||||
"jsinterop -pkg kotlinx.interop.wasm.math -o $buildDir/jsmath -target wasm32".execute()
|
||||
|
||||
}
|
||||
disabled = (project.testTarget != 'wasm32')
|
||||
goldValue = "e = 2.718281828459045, pi = 3.141592653589793, sin(pi) = 1.2246467991473532E-16, sin(pi/2) = 1.0, ln(1) = 0.0, ln(e) = 1.0\n"
|
||||
source = "jsinterop/math.kt"
|
||||
flags = ["-r", "$buildDir", "-l", "jsmath"]
|
||||
}
|
||||
|
||||
task produce_dynamic(type: DynamicKonanTest) {
|
||||
disabled = (project.testTarget != null && project.testTarget != project.hostName)
|
||||
source = "produce_dynamic/simple/hello.kt"
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
import kotlinx.interop.wasm.math.*
|
||||
import kotlinx.wasm.jsinterop.*
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
|
||||
val e = Math.E
|
||||
val pi = Math.PI
|
||||
|
||||
val sin_pi = Math.sin(pi)
|
||||
val sin_pi_2 = Math.sin(pi/2)
|
||||
val ln_1 = Math.log(1.0)
|
||||
val ln_e = Math.log(e)
|
||||
|
||||
println("e = $e, pi = $pi, sin(pi) = $sin_pi, sin(pi/2) = $sin_pi_2, ln(1) = $ln_1, ln(e) = $ln_e")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user