summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorud2 <sjx233@qq.com>2023-12-08 00:04:44 +0800
committerGitHub <noreply@github.com>2023-12-07 21:34:44 +0530
commit3f96e5a29a88afafcef0f17458b2800b2db316ee (patch)
treea39b25f88749eae6a2e6ccc8f9ee9f1dee18ef96
parentc1fc7b2cd511ce83566f696c8880d6718e5c6885 (diff)
fix(ext/node): include non-enumerable keys in `Reflect.ownKeys(globalThis)` (#21485)
Closes #21484.
-rw-r--r--cli/tests/testdata/npm/compare_globals/main.out1
-rw-r--r--cli/tests/testdata/npm/compare_globals/main.ts2
-rw-r--r--ext/node/global.rs11
3 files changed, 11 insertions, 3 deletions
diff --git a/cli/tests/testdata/npm/compare_globals/main.out b/cli/tests/testdata/npm/compare_globals/main.out
index 31fcedda3..0e366fae7 100644
--- a/cli/tests/testdata/npm/compare_globals/main.out
+++ b/cli/tests/testdata/npm/compare_globals/main.out
@@ -25,3 +25,4 @@ false
false
bar
bar
+true
diff --git a/cli/tests/testdata/npm/compare_globals/main.ts b/cli/tests/testdata/npm/compare_globals/main.ts
index 8d3ae1ea0..6f7b9ef8e 100644
--- a/cli/tests/testdata/npm/compare_globals/main.ts
+++ b/cli/tests/testdata/npm/compare_globals/main.ts
@@ -48,3 +48,5 @@ globals.checkWindowGlobal();
(globalThis as any).foo = "bar";
console.log((globalThis as any).foo);
console.log(globals.getFoo());
+
+console.log(Reflect.ownKeys(globalThis).includes("console")); // non-enumerable keys are included
diff --git a/ext/node/global.rs b/ext/node/global.rs
index fd2f5a7cb..994155359 100644
--- a/ext/node/global.rs
+++ b/ext/node/global.rs
@@ -432,9 +432,14 @@ pub fn enumerator<'s>(
};
let inner = v8::Local::new(scope, inner);
- let Some(array) =
- inner.get_property_names(scope, GetPropertyNamesArgs::default())
- else {
+ let Some(array) = inner.get_property_names(
+ scope,
+ GetPropertyNamesArgs {
+ mode: v8::KeyCollectionMode::OwnOnly,
+ property_filter: v8::PropertyFilter::ALL_PROPERTIES,
+ ..Default::default()
+ },
+ ) else {
return;
};