access scope in liquidjs filter

HTML

<script src="https://cdn.jsdelivr.net/npm/liquidjs/dist/liquid.browser.min.js"></script>
<div id="log"></div>

JavaScript

const { Liquid } = liquidjs
const engine = new Liquid()
engine.registerTag('wrap', {
  parse(tagToken, remainTokens) {
    this.tpls = []
    this.liquid.parser.parseStream(remainTokens)
      .on('template', tpl => this.tpls.push(tpl))
      .on('tag:endwrap', function () { this.stop() })
      .on('end', () => { throw new Error(`tag ${tagToken.getText()} not closed`) })
      .start()
  },
  * render(context, emitter) {
    emitter.write("<div class='wrapper'>")
    yield this.liquid.renderer.renderTemplates(this.tpls, context, emitter)
    emitter.write("</div>")
  }
})

const tpl = `
{% wrap %}
  {{ "hello world!" | capitalize}}
{% endwrap %}`
const html = engine.parseAndRenderSync(tpl)
log.innerText = html