cdom 0.0.4 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +19 -5
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -609,8 +609,12 @@
|
|
|
609
609
|
args[i] = argVal;
|
|
610
610
|
}
|
|
611
611
|
}
|
|
612
|
-
|
|
613
|
-
|
|
612
|
+
try {
|
|
613
|
+
return fn(...args);
|
|
614
|
+
} catch (e) {
|
|
615
|
+
console.error(`[cDOM] Helper error in "${funcName}":`, e, { expression, contextNode: ctx });
|
|
616
|
+
return `_(${expression})`;
|
|
617
|
+
}
|
|
614
618
|
};
|
|
615
619
|
}
|
|
616
620
|
|
|
@@ -618,7 +622,12 @@
|
|
|
618
622
|
if (/[+\-*%^<>=!&|?:]/.test(expr)) {
|
|
619
623
|
return (ctx, ev) => {
|
|
620
624
|
if (!mathParser && typeof globalThis.exprEval !== 'undefined') {
|
|
621
|
-
|
|
625
|
+
try {
|
|
626
|
+
mathParser = new globalThis.exprEval.Parser();
|
|
627
|
+
} catch (e) {
|
|
628
|
+
console.error("[cDOM] Failed to initialize expr-eval parser:", e);
|
|
629
|
+
return `_(${expression})`;
|
|
630
|
+
}
|
|
622
631
|
}
|
|
623
632
|
if (!mathParser) return expr;
|
|
624
633
|
try {
|
|
@@ -632,7 +641,10 @@
|
|
|
632
641
|
return id;
|
|
633
642
|
});
|
|
634
643
|
return mathParser.evaluate(processedExpr, scope);
|
|
635
|
-
} catch (e) {
|
|
644
|
+
} catch (e) {
|
|
645
|
+
console.error(`[cDOM] Math Error in "${expression}":`, e, { contextNode: ctx });
|
|
646
|
+
return `_(${expression})`;
|
|
647
|
+
}
|
|
636
648
|
};
|
|
637
649
|
}
|
|
638
650
|
|
|
@@ -774,6 +786,7 @@
|
|
|
774
786
|
|
|
775
787
|
return { type: 'value', value: elements.map(el => el.textContent || '').join(', ') };
|
|
776
788
|
} catch (e) {
|
|
789
|
+
console.error(`[cDOM] CSS Error: "${selector}"`, e, { contextNode });
|
|
777
790
|
return { type: 'value', value: `[CSS Error: ${selector}]` };
|
|
778
791
|
}
|
|
779
792
|
}
|
|
@@ -809,6 +822,7 @@
|
|
|
809
822
|
default: return { type: 'value', value: '' };
|
|
810
823
|
}
|
|
811
824
|
} catch (e) {
|
|
825
|
+
console.error(`[cDOM] XPath Error: "${expression}"`, e, { contextNode });
|
|
812
826
|
return { type: 'value', value: `[XPath Error: ${expression}]` };
|
|
813
827
|
}
|
|
814
828
|
}
|
|
@@ -945,7 +959,7 @@
|
|
|
945
959
|
continue;
|
|
946
960
|
} else if (key.startsWith('on')) {
|
|
947
961
|
if (typeof val === "string") {
|
|
948
|
-
if (val.startsWith('_(') && val.endsWith(')')) {
|
|
962
|
+
if ((val.startsWith('_(') || val.startsWith('=(')) && val.endsWith(')')) {
|
|
949
963
|
const expr = val.substring(2, val.length - 1);
|
|
950
964
|
el[key] = (event) => evaluateStateExpression(expr, el, event);
|
|
951
965
|
} else if (!wasString || unsafe) {
|