summaryrefslogtreecommitdiff
path: root/cli/rt/02_console.js
diff options
context:
space:
mode:
authorCasper Beyer <caspervonb@pm.me>2020-10-12 03:52:20 +0800
committerGitHub <noreply@github.com>2020-10-11 21:52:20 +0200
commit86dc55134ef25c1bc4f8db6c3c0dc635c1660ea4 (patch)
tree710c6888247463210f5388231f9742d87cdd2654 /cli/rt/02_console.js
parent08f3ae92d3935559a5134bc5da900d3784142bf3 (diff)
fix(cli/console): only inspect getters with option (#7830)
Diffstat (limited to 'cli/rt/02_console.js')
-rw-r--r--cli/rt/02_console.js83
1 files changed, 63 insertions, 20 deletions
diff --git a/cli/rt/02_console.js b/cli/rt/02_console.js
index 72192eda4..363a95d90 100644
--- a/cli/rt/02_console.js
+++ b/cli/rt/02_console.js
@@ -157,6 +157,7 @@
iterableLimit: 100,
showProxy: false,
colors: false,
+ getters: false,
};
const DEFAULT_INDENT = " "; // Default indent string
@@ -760,31 +761,73 @@
const red = maybeColor(colors.red, inspectOptions);
for (const key of stringKeys) {
- let propertyValue;
- let error = null;
- try {
- propertyValue = value[key];
- } catch (error_) {
- error = error_;
+ if (inspectOptions.getters) {
+ let propertyValue;
+ let error = null;
+ try {
+ propertyValue = value[key];
+ } catch (error_) {
+ error = error_;
+ }
+ const inspectedValue = error == null
+ ? inspectValueWithQuotes(
+ propertyValue,
+ ctx,
+ level + 1,
+ inspectOptions,
+ )
+ : red(`[Thrown ${error.name}: ${error.message}]`);
+ entries.push(`${maybeQuoteString(key)}: ${inspectedValue}`);
+ } else {
+ let descriptor = Object.getOwnPropertyDescriptor(value, key);
+ if (descriptor.get !== undefined && descriptor.set !== undefined) {
+ entries.push(`${maybeQuoteString(key)}: [Getter/Setter]`);
+ } else if (descriptor.get !== undefined) {
+ entries.push(`${maybeQuoteString(key)}: [Getter]`);
+ } else {
+ entries.push(
+ `${maybeQuoteString(key)}: ${
+ inspectValueWithQuotes(value[key], ctx, level + 1, inspectOptions)
+ }`,
+ );
+ }
}
- const inspectedValue = error == null
- ? inspectValueWithQuotes(propertyValue, ctx, level + 1, inspectOptions)
- : red(`[Thrown ${error.name}: ${error.message}]`);
- entries.push(`${maybeQuoteString(key)}: ${inspectedValue}`);
}
+
for (const key of symbolKeys) {
- let propertyValue;
- let error;
- try {
- propertyValue = value[key];
- } catch (error_) {
- error = error_;
+ if (inspectOptions.getters) {
+ let propertyValue;
+ let error;
+ try {
+ propertyValue = value[key];
+ } catch (error_) {
+ error = error_;
+ }
+ const inspectedValue = error == null
+ ? inspectValueWithQuotes(
+ propertyValue,
+ ctx,
+ level + 1,
+ inspectOptions,
+ )
+ : red(`Thrown ${error.name}: ${error.message}`);
+ entries.push(`[${maybeQuoteSymbol(key)}]: ${inspectedValue}`);
+ } else {
+ let descriptor = Object.getOwnPropertyDescriptor(value, key);
+ if (descriptor.get !== undefined && descriptor.set !== undefined) {
+ entries.push(`[${maybeQuoteSymbol(key)}]: [Getter/Setter]`);
+ } else if (descriptor.get !== undefined) {
+ entries.push(`[${maybeQuoteSymbol(key)}]: [Getter]`);
+ } else {
+ entries.push(
+ `[${maybeQuoteSymbol(key)}]: ${
+ inspectValueWithQuotes(value[key], ctx, level + 1, inspectOptions)
+ }`,
+ );
+ }
}
- const inspectedValue = error == null
- ? inspectValueWithQuotes(propertyValue, ctx, level + 1, inspectOptions)
- : red(`Thrown ${error.name}: ${error.message}`);
- entries.push(`[${maybeQuoteSymbol(key)}]: ${inspectedValue}`);
}
+
// Making sure color codes are ignored when calculating the total length
const totalLength = entries.length + level +
colors.stripColor(entries.join("")).length;