Introduced support for javascript Math and Kotlin Double to WASM32.

Implemented jsinterop tool for interaction with js math.
This commit is contained in:
Alexander Gorshenev
2017-12-28 12:33:29 +03:00
committed by alexander-gorshenev
parent 1399ac9777
commit f703877160
28 changed files with 990 additions and 187 deletions
+12
View File
@@ -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"
+16
View File
@@ -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")
}