developit / developit/htm

Improve runtime error handling for missing close tags

未关闭
#166 5 条评论 1 个 reaction 已指派 0 人 在 GitHub 查看
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

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。