@@ -25,28 +25,29 @@ internal inline fun <reified T> JSConvertible.isTypeOf() = when(T::class) {
2525 JSArray ::class -> context.isArray(ref)
2626 JSObject ::class -> context.isObject(ref)
2727 JSFunction ::class -> context.isFunction(ref)
28+ JSException ::class -> true
2829 else -> false
2930}
3031
3132internal inline fun <reified T > JSConvertible.cast () =
3233 if (isTypeOf<T >()) wrap<T >()
33- else null
34+ else throw Exception ( " Failed to cast JSConvertible. Unknown type is passed " )
3435
35- fun JSConvertible.asString (): String? = cast()
36+ fun JSConvertible.asString (): String = cast()
3637
37- fun JSConvertible.asBoolean (): Boolean? = cast()
38+ fun JSConvertible.asBoolean (): Boolean = cast()
3839
39- fun JSConvertible.asInt (): Int? = cast()
40+ fun JSConvertible.asInt (): Int = cast()
4041
41- fun JSConvertible.asDouble (): Double? = cast()
42+ fun JSConvertible.asDouble (): Double = cast()
4243
43- fun JSConvertible.asJSArray (): JSArray ? = cast()
44+ fun JSConvertible.asJSArray (): JSArray = cast()
4445
45- fun JSConvertible.asJSObject (): JSObject ? = cast()
46+ fun JSConvertible.asJSObject (): JSObject = cast()
4647
47- fun JSConvertible.asJSFunction (): JSFunction ? = cast()
48+ fun JSConvertible.asJSFunction (): JSFunction = cast()
4849
49- fun JSConvertible.asJSException (): JSException ? = wrap()
50+ fun JSConvertible.asJSException (): JSException = wrap()
5051
5152fun String.toJSValue (context : JSContext ) = context.newJSValue(this )
5253
0 commit comments