summaryrefslogtreecommitdiff
path: root/ext/js/templates/template-renderer.js
diff options
context:
space:
mode:
Diffstat (limited to 'ext/js/templates/template-renderer.js')
-rw-r--r--ext/js/templates/template-renderer.js16
1 files changed, 15 insertions, 1 deletions
diff --git a/ext/js/templates/template-renderer.js b/ext/js/templates/template-renderer.js
index 2db9e177..f72740d5 100644
--- a/ext/js/templates/template-renderer.js
+++ b/ext/js/templates/template-renderer.js
@@ -108,7 +108,9 @@ class TemplateRenderer {
['noop', this._noop.bind(this)],
['isMoraPitchHigh', this._isMoraPitchHigh.bind(this)],
['getKanaMorae', this._getKanaMorae.bind(this)],
- ['typeof', this._getTypeof.bind(this)]
+ ['typeof', this._getTypeof.bind(this)],
+ ['join', this._join.bind(this)],
+ ['concat', this._concat.bind(this)]
];
for (const [name, helper] of helpers) {
@@ -414,4 +416,16 @@ class TemplateRenderer {
const value = (ii > 0 ? args[0] : args[ii].fn(context));
return typeof value;
}
+
+ _join(context, ...args) {
+ return args.length > 1 ? args.slice(1, args.length - 1).flat().join(args[0]) : '';
+ }
+
+ _concat(context, ...args) {
+ let result = '';
+ for (let i = 0, ii = args.length - 1; i < ii; ++i) {
+ result += args[i];
+ }
+ return result;
+ }
}