summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRuben Bridgewater <ruben@bridgewater.de>2019-11-30 11:04:34 +0100
committerRuben Bridgewater <ruben@bridgewater.de>2019-12-07 00:38:28 +0100
commitc430aebe8683699fc072cb87e5be03af370a3f2f (patch)
tree3f93ee11527492d5295853b93c0252a4afafa423 /src
parentbdb1083ef54cf99c959c554b741e62943b56e2af (diff)
downloadandroid-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.cc20
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) {