From cc69f7900bf4e7842ba15bccf1f5c9b95b0f15e3 Mon Sep 17 00:00:00 2001 From: GermanCodeEngineer Date: Sun, 9 Nov 2025 13:59:59 +0100 Subject: [PATCH] jwArrayHandler and dogeiscutObjectHandler now work for both strings and HTML --- src/extensions/jwArray/index.js | 4 ++-- src/extensions/jwColor/index.js | 4 +++- src/extensions/jwDate/index.js | 2 +- src/extensions/jwLambda/index.js | 2 +- src/extensions/jwNum/index.js | 2 +- src/extensions/jwTargets/index.js | 3 ++- src/extensions/jwVector/index.js | 2 +- src/extensions/jwXML/index.js | 4 ++-- 8 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/extensions/jwArray/index.js b/src/extensions/jwArray/index.js index 6f30482416e..22504c45a73 100644 --- a/src/extensions/jwArray/index.js +++ b/src/extensions/jwArray/index.js @@ -98,7 +98,7 @@ class ArrayType { case "object": if (x === null) return "null" if (typeof x.jwArrayHandler == "function") { - return x.jwArrayHandler() + return x.jwArrayHandler(false, "array") } return "Object" case "undefined": @@ -114,7 +114,7 @@ class ArrayType { return "?" } - jwArrayHandler() { + jwArrayHandler(expectsPlainString, context) { return `Array<${formatNumber(this.array.length)}>` } diff --git a/src/extensions/jwColor/index.js b/src/extensions/jwColor/index.js index 9f69aa9e3ed..176a7dff233 100644 --- a/src/extensions/jwColor/index.js +++ b/src/extensions/jwColor/index.js @@ -89,7 +89,9 @@ class ColorType { return this.fromRGB(r, g, b) } - jwArrayHandler() { + jwArrayHandler(expectsPlainString, context) { + if (expectsPlainString) return this.toString() + let color = document.createElement('div') color.style.width = "16px" color.style.height = "16px" diff --git a/src/extensions/jwDate/index.js b/src/extensions/jwDate/index.js index c41387e57de..0b3df70b1ff 100644 --- a/src/extensions/jwDate/index.js +++ b/src/extensions/jwDate/index.js @@ -30,7 +30,7 @@ class DateType { return new DateType() } - jwArrayHandler() { + jwArrayHandler(expectsPlainString, context) { return this.date.toLocaleDateString() } diff --git a/src/extensions/jwLambda/index.js b/src/extensions/jwLambda/index.js index 95550864967..49b68cdc738 100644 --- a/src/extensions/jwLambda/index.js +++ b/src/extensions/jwLambda/index.js @@ -47,7 +47,7 @@ class LambdaType { return new LambdaType() } - jwArrayHandler() { + jwArrayHandler(expectsPlainString, context) { return 'Lambda' } diff --git a/src/extensions/jwNum/index.js b/src/extensions/jwNum/index.js index c04c8461249..1ef838065ec 100644 --- a/src/extensions/jwNum/index.js +++ b/src/extensions/jwNum/index.js @@ -33,7 +33,7 @@ class NumType { return new NumType(x) } - jwArrayHandler() { + jwArrayHandler(expectsPlainString, context) { return this.number.toStringWithDecimalPlaces(3) } diff --git a/src/extensions/jwTargets/index.js b/src/extensions/jwTargets/index.js index e1f3be2d446..de7545727d4 100644 --- a/src/extensions/jwTargets/index.js +++ b/src/extensions/jwTargets/index.js @@ -39,7 +39,8 @@ class jwTargetType { return new jwTargetType("") } - jwArrayHandler() { + jwArrayHandler(expectsPlainString, context) { + // always a string try { return escapeHTML(`Target<${this.target.sprite.name}>`) } catch { diff --git a/src/extensions/jwVector/index.js b/src/extensions/jwVector/index.js index 07fa83e3085..336fe8852ce 100644 --- a/src/extensions/jwVector/index.js +++ b/src/extensions/jwVector/index.js @@ -42,7 +42,7 @@ class VectorType { return new VectorType(0, 0) } - jwArrayHandler() { + jwArrayHandler(expectsPlainString, context) { return 'Vector' } diff --git a/src/extensions/jwXML/index.js b/src/extensions/jwXML/index.js index a75454dc0cd..7983a376c8e 100644 --- a/src/extensions/jwXML/index.js +++ b/src/extensions/jwXML/index.js @@ -117,8 +117,8 @@ class XMLType { ].reduce((a, b) => a.replaceAll(b, ""), text) } - jwArrayHandler() { - return XMLType.safeText(`<${this.name} />`) + jwArrayHandler(expectsPlainString, context) { + return XMLType.safeText(`<${this.name} />`) // always a string } toString(pretty = false, depth = 0) {