| 844 | } |
| 845 | |
| 846 | bool HermesJavaScriptContext::valueToBool(const JSValue& value, JSExceptionTracker& exceptionTracker) { |
| 847 | hermes::vm::GCScope gcScope(*_runtime); |
| 848 | auto hermesValue = toHermesValue(value); |
| 849 | if (hermesValue.isUndefined() || hermesValue.isNull()) { |
| 850 | return false; |
| 851 | } else if (hermesValue.isNumber()) { |
| 852 | return hermesValue.getNumber() != 0; |
| 853 | } else if (hermesValue.isBool()) { |
| 854 | return hermesValue.getBool(); |
| 855 | } else if (hermesValue.isString()) { |
| 856 | return hermesValue.getString()->getSize() != 0; |
| 857 | } else { |
| 858 | return true; |
| 859 | } |
| 860 | } |
| 861 | |
| 862 | double HermesJavaScriptContext::valueToDouble(const JSValue& value, JSExceptionTracker& exceptionTracker) { |
| 863 | hermes::vm::GCScope gcScope(*_runtime); |