-
Notifications
You must be signed in to change notification settings - Fork 6
fix: ES2020 compatibility for automation engine build #750
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -30,7 +30,7 @@ export class LogicNodesPlugin implements Plugin { | |||||
| // TODO: Replace with safe expression evaluator (e.g., jexl) for production. | ||||||
| let expr = cond.expression; | ||||||
| for (const [k, v] of variables) { | ||||||
| expr = expr.replaceAll(`{${k}}`, String(v)); | ||||||
| expr = expr.split(`{${k}}`).join(String(v)); | ||||||
|
||||||
| expr = expr.split(`{${k}}`).join(String(v)); | |
| expr = expr.replaceAll(`{${k}}`, String(v)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Using split().join() is not fully equivalent to replaceAll() when the replacement string contains "$" sequences (e.g. "$&", "$1"); replaceAll interprets those as replacement patterns, while join inserts them literally. Please confirm the intended semantics for template substitution (literal insertion is usually what you want here); if you need to preserve replaceAll’s behavior, you’ll need an ES2020-compatible polyfill that reproduces those "$" replacement patterns.