summaryrefslogtreecommitdiff
path: root/cli/rt/02_console.js
diff options
context:
space:
mode:
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;