MCPcopy Index your code
hub / github.com/nodejs/node-addon-api / GetFromGetter

Function GetFromGetter

test/object_reference.cc:309–337  ·  view source on GitHub ↗

info[0] is a flag to determine if the weak, persistent, or multiple reference ObjectReference is being requested. info[1] is the key, and it be either a String or a Number.

Source from the content-addressed store, hash-verified

307// multiple reference ObjectReference is being requested.
308// info[1] is the key, and it be either a String or a Number.
309Value GetFromGetter(const CallbackInfo& info) {
310 Env env = info.Env();
311
312 if (info[0] == String::New(env, "weak")) {
313 if (weak.IsEmpty()) {
314 return String::New(env, "No Referenced Value");
315 } else {
316 if (info[1].IsString()) {
317 return MaybeUnwrap(weak.Get(info[1].As<String>().Utf8Value()));
318 } else if (info[1].IsNumber()) {
319 return MaybeUnwrap(weak.Get(info[1].As<Number>().Uint32Value()));
320 }
321 }
322 } else if (info[0] == String::New(env, "persistent")) {
323 if (info[1].IsString()) {
324 return MaybeUnwrap(persistent.Get(info[1].As<String>().Utf8Value()));
325 } else if (info[1].IsNumber()) {
326 return MaybeUnwrap(persistent.Get(info[1].As<Number>().Uint32Value()));
327 }
328 } else {
329 if (info[0].IsString()) {
330 return MaybeUnwrap(reference.Get(info[0].As<String>().Utf8Value()));
331 } else if (info[0].IsNumber()) {
332 return MaybeUnwrap(reference.Get(info[0].As<Number>().Uint32Value()));
333 }
334 }
335
336 return String::New(env, "Error: Reached end of getter");
337}
338
339// info[0] is a flag to determine if the weak, persistent, or
340// multiple reference ObjectReference is being requested.

Callers

nothing calls this directly

Calls 4

MaybeUnwrapFunction · 0.85
EnvMethod · 0.80
IsEmptyMethod · 0.80
GetMethod · 0.80

Tested by

no test coverage detected