getify/literalizer

fix how template literal is processed

開放

#26 建立於 2015年1月7日

 (0 則留言) (0 個反應) (1 位負責人)JavaScript (2 個分叉)github user discovery
bughelp wanted

倉庫指標

星標
 (18 顆星)
PR 合併指標
 (30 天內沒有已合併 PR)

描述

There are quite a few problems with the existing implementation regarding template literals. Off the top of my head:

  1. the way it looks for the ending after starting a template literal is wrong. Instead of just looking for the next, it should count them in a stack, much like matching { } or ( ) pairs would be done.
  2. Template literals can have other template literals inside their expressions.
  3. Each ${ inside the literal should break out and just create elements of text (code), but must track { } pairs so it can identify the ending }, and go back into template literal mode, resuming its search for either ${ or ```.
  4. The tagged identifier before a template literal, if present, should be included as part of the first template literal element in the stream. heuristic: preceding whitespace then identifier.

貢獻者指南