| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 28f0693 commit fa134dd
1 file changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1822,6 +1822,12 @@ napi_status napi_get_value_int32(napi_env env, | |||
| 1822 | 1822 | CHECK_ARG(env, result); | |
| 1823 | 1823 | ||
| 1824 | 1824 | v8::Local<v8::Value> val = v8impl::V8LocalValueFromJsValue(value); | |
| 1825 | + | ||
| 1826 | + if (val->IsInt32()) { | ||
| 1827 | + *result = val.As<v8::Int32>()->Value(); | ||
| 1828 | + return napi_clear_last_error(env); | ||
| 1829 | + } | ||
| 1830 | + | ||
| 1825 | 1831 | RETURN_STATUS_IF_FALSE(env, val->IsNumber(), napi_number_expected); | |
| 1826 | 1832 | ||
| 1827 | 1833 | v8::Isolate* isolate = env->isolate; | |
@@ -1841,6 +1847,12 @@ napi_status napi_get_value_uint32(napi_env env, | |||
| 1841 | 1847 | CHECK_ARG(env, result); | |
| 1842 | 1848 | ||
| 1843 | 1849 | v8::Local<v8::Value> val = v8impl::V8LocalValueFromJsValue(value); | |
| 1850 | + | ||
| 1851 | + if (val->IsUint32()) { | ||
| 1852 | + *result = val.As<v8::Uint32>()->Value(); | ||
| 1853 | + return napi_clear_last_error(env); | ||
| 1854 | + } | ||
| 1855 | + | ||
| 1844 | 1856 | RETURN_STATUS_IF_FALSE(env, val->IsNumber(), napi_number_expected); | |
| 1845 | 1857 | ||
| 1846 | 1858 | v8::Isolate* isolate = env->isolate; | |
@@ -1860,6 +1872,13 @@ napi_status napi_get_value_int64(napi_env env, | |||
| 1860 | 1872 | CHECK_ARG(env, result); | |
| 1861 | 1873 | ||
| 1862 | 1874 | v8::Local<v8::Value> val = v8impl::V8LocalValueFromJsValue(value); | |
| 1875 | + | ||
| 1876 | + // This is still a fast path very likely to be taken. | ||
| 1877 | + if (val->IsInt32()) { | ||
| 1878 | + *result = val.As<v8::Int32>()->Value(); | ||
| 1879 | + return napi_clear_last_error(env); | ||
| 1880 | + } | ||
| 1881 | + | ||
| 1863 | 1882 | RETURN_STATUS_IF_FALSE(env, val->IsNumber(), napi_number_expected); | |
| 1864 | 1883 | ||
| 1865 | 1884 | // v8::Value::IntegerValue() converts NaN to INT64_MIN, inconsistent with | |
| Back | FazBrowse Home | New Git URL |
0 commit comments