jsValueToJavaString() is merely calling jsValue->ToString() with a null check. I've tested with all cases you mentioned. If its an array, or null, null is returned for the KrollException. If it's undefined, a valid KrollException is returned with the message being undefined. I think these are acceptable results.