diff options
author | Ruben Bridgewater <ruben@bridgewater.de> | 2019-11-30 11:04:34 +0100 |
---|---|---|
committer | Ruben Bridgewater <ruben@bridgewater.de> | 2019-12-07 00:38:28 +0100 |
commit | c430aebe8683699fc072cb87e5be03af370a3f2f (patch) | |
tree | 3f93ee11527492d5295853b93c0252a4afafa423 /src | |
parent | bdb1083ef54cf99c959c554b741e62943b56e2af (diff) | |
download | android-node-v8-c430aebe8683699fc072cb87e5be03af370a3f2f.tar.gz android-node-v8-c430aebe8683699fc072cb87e5be03af370a3f2f.tar.bz2 android-node-v8-c430aebe8683699fc072cb87e5be03af370a3f2f.zip |
util: improve performance inspecting proxies
This makes sure we do not retrieve the handler in case it's not
required. This improves the performance a tiny bit for these cases.
PR-URL: https://github.com/nodejs/node/pull/30767
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Denys Otrishko <shishugi@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/node_util.cc | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/src/node_util.cc b/src/node_util.cc index 9c24985a47..07a7b69dbd 100644 --- a/src/node_util.cc +++ b/src/node_util.cc @@ -91,15 +91,23 @@ static void GetProxyDetails(const FunctionCallbackInfo<Value>& args) { if (!args[0]->IsProxy()) return; + CHECK(args[1]->IsBoolean()); + Local<Proxy> proxy = args[0].As<Proxy>(); - Local<Value> ret[] = { - proxy->GetTarget(), - proxy->GetHandler() - }; + if (args[1]->IsTrue()) { + Local<Value> ret[] = { + proxy->GetTarget(), + proxy->GetHandler() + }; - args.GetReturnValue().Set( - Array::New(args.GetIsolate(), ret, arraysize(ret))); + args.GetReturnValue().Set( + Array::New(args.GetIsolate(), ret, arraysize(ret))); + } else { + Local<Value> ret = proxy->GetTarget(); + + args.GetReturnValue().Set(ret); + } } static void PreviewEntries(const FunctionCallbackInfo<Value>& args) { |