skiko/src/nativeMain/kotlin/org/jetbrains/skia/Actuals.native.kt [1:28]: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - package org.jetbrains.skia import kotlinx.cinterop.ByteVar import kotlinx.cinterop.CPointer import org.jetbrains.skia.impl.InteropPointer import org.jetbrains.skia.impl.withResult internal actual fun commonSynchronized(lock: Any, block: () -> R) { block() } actual class Pattern constructor(regex: String) { private val _regex = Regex(regex) actual fun split(input: CharSequence): Array = _regex.split(input).toTypedArray() actual fun matcher(input: CharSequence): Matcher = Matcher(_regex, input) } actual class Matcher constructor(private val regex: Regex, private val input: CharSequence) { private val matches: Boolean by lazy { regex.matches(input) } private val groups: MatchGroupCollection? by lazy { regex.matchEntire(input)?.groups } actual fun group(ix: Int): String? = groups?.get(ix)?.value actual fun matches(): Boolean = matches - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - skiko/src/webMain/kotlin/org/jetbrains/skia/Actuals.js.kt [1:25]: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - package org.jetbrains.skia import org.jetbrains.skiko.w3c.window internal actual fun commonSynchronized(lock: Any, block: () -> R) { block() } actual class Pattern constructor(regex: String) { private val _regex = Regex(regex) actual fun split(input: CharSequence): Array = _regex.split(input).toTypedArray() actual fun matcher(input: CharSequence): Matcher = Matcher(_regex, input) } actual class Matcher constructor(private val regex: Regex, private val input: CharSequence) { private val matches: Boolean by lazy { regex.matches(input) } private val groups: MatchGroupCollection? by lazy { regex.matchEntire(input)?.groups } actual fun group(ix: Int): String? = groups?.get(ix)?.value actual fun matches(): Boolean = matches - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -