| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -2460,9 +2460,9 @@ napi_status napi_create_reference(napi_env env, | |||
| 2460 | 2460 | CHECK_ARG(env, result); | |
| 2461 | 2461 | ||
| 2462 | 2462 | v8::Local<v8::Value> v8_value = v8impl::V8LocalValueFromJsValue(value); | |
| 2463 | - | ||
| 2464 | - if (!(v8_value->IsObject() || v8_value->IsFunction())) { | ||
| 2465 | - return napi_set_last_error(env, napi_object_expected); | ||
| 2463 | + if (!(v8_value->IsObject() || v8_value->IsFunction() || | ||
| 2464 | + v8_value->IsSymbol())) { | ||
| 2465 | + return napi_set_last_error(env, napi_invalid_arg); | ||
| 2466 | 2466 | } | |
| 2467 | 2467 | ||
| 2468 | 2468 | v8impl::Reference* reference = | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -14,6 +14,13 @@ assert.strictEqual(test_reference.finalizeCount, 0); | |||
| 14 | 14 | // Run each test function in sequence, | |
| 15 | 15 | // with an async delay and GC call between each. | |
| 16 | 16 | async function runTests() { | |
| 17 | + (() => { | ||
| 18 | + const symbol = test_reference.createSymbol('testSym'); | ||
| 19 | + test_reference.createReference(symbol, 0); | ||
| 20 | + assert.strictEqual(test_reference.referenceValue, symbol); | ||
| 21 | + })(); | ||
| 22 | + test_reference.deleteReference(); | ||
| 23 | + | ||
| 17 | 24 | (() => { | |
| 18 | 25 | const value = test_reference.createExternal(); | |
| 19 | 26 | assert.strictEqual(test_reference.finalizeCount, 0); | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -35,6 +35,20 @@ static napi_value CreateExternal(napi_env env, napi_callback_info info) { | |||
| 35 | 35 | return result; | |
| 36 | 36 | } | |
| 37 | 37 | ||
| 38 | + static napi_value CreateSymbol(napi_env env, napi_callback_info info) { | ||
| 39 | + | ||
| 40 | + size_t argc = 1; | ||
| 41 | + napi_value args[1]; | ||
| 42 | + | ||
| 43 | + NODE_API_CALL(env, napi_get_cb_info(env, info, &argc, args, NULL,NULL)); | ||
| 44 | + NODE_API_ASSERT(env, argc == 1, "Expect one argument only (symbol description)"); | ||
| 45 | + | ||
| 46 | + napi_value result_symbol; | ||
| 47 | + | ||
| 48 | + NODE_API_CALL(env, napi_create_symbol(env, args[0], &result_symbol)); | ||
| 49 | + return result_symbol; | ||
| 50 | + } | ||
| 51 | + | ||
| 38 | 52 | static napi_value | |
| 39 | 53 | CreateExternalWithFinalize(napi_env env, napi_callback_info info) { | |
| 40 | 54 | napi_value result; | |
@@ -175,6 +189,7 @@ napi_value Init(napi_env env, napi_value exports) { | |||
| 175 | 189 | CreateExternalWithFinalize), | |
| 176 | 190 | DECLARE_NODE_API_PROPERTY("checkExternal", CheckExternal), | |
| 177 | 191 | DECLARE_NODE_API_PROPERTY("createReference", CreateReference), | |
| 192 | + DECLARE_NODE_API_PROPERTY("createSymbol", CreateSymbol), | ||
| 178 | 193 | DECLARE_NODE_API_PROPERTY("deleteReference", DeleteReference), | |
| 179 | 194 | DECLARE_NODE_API_PROPERTY("incrementRefcount", IncrementRefcount), | |
| 180 | 195 | DECLARE_NODE_API_PROPERTY("decrementRefcount", DecrementRefcount), | |
| Back | FazBrowse Home | New Git URL |
0 commit comments