Improve runtime error handling for missing close tags
未关闭
debugging
duplicate
enhancement
proposal
- 主要语言
- JavaScript
- 星标
- 9k
- 派生
- 181
- PR 合并指标
- 30 天内没有已合并 PR
描述
Consider this sample code, which accidentally omits a closing tag.
```js
import htm from 'https://unpkg.com/htm?module'
const h = (type, props, ...children) => ({type, props, children});
const html = htm.bind(h)
console.log(JSON.stringify(html`
Hello, world!`));
```
In this case, the user intended to include a closing tag ``, and so the user's desired logged result is `{"type":"h1","props":null,"children":["Hello, world!"]}`
Actual: `["h1","Hello, world!"]` The element name is incorrectly handled as a text node.
Expected: Throw an exception.
贡献指南
调研方向
首先使用 htm runtime 运行提供的 tagged-template sample,并复现缺失的 是如何被处理的。跟踪未闭合标签的 parser 路径;完成的标准是 sample 抛出 exception,而不是将元素名称当作文本节点处理,同时有效标签仍继续生成预期的对象。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- javascript
- 领域
- frontend
- Issue 类型
- 缺陷
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 35/100