豫言 / 豫言操作系统网页导航适配 @ 0.1.0

以浏览器 location 与 history 实现网页导航接口。

源码浏览已生成;不能解析的文件以纯文本展示,不表示通过类型检查。

说明.汉语.md

# 网页导航浏览器适配

`导航。豫` 实现[网页导航接口](../../../豫言操作系统接口/网页导航/规范.汉语.md)的全部函数:`前往网址`、`替换当前网址`、`重载页面`、`压入历史`、`替换历史`、`移动历史`。`实现接口。豫` 固定公共包身份与版本,接口检查器须在构建前核对签名。

**宿主原语**:适配只调用 `豫言_浏览器_网页能力`(同步)与 `豫言_浏览器_网页能力异步`(需要等待的操作)两个原语,操作名为 `导航.前往`、`导航.替换当前`、`导航.重载`、`导航.压入`、`导航.替换历史`、`导航.移动`;失败以(阴,错误文)返回,再由本适配转成豫言事故,不让 JavaScript 异常越过 Wasm 边界。

**宿主实现**:`宿主/浏览器/宿主.mjs` 的 `创建网页能力`。宿主按当前页面网址解析地址,只允许 http 与 https,拒绝控制字符与反斜杠;压入与替换历史另要求同源。分别调用 `location.assign/replace/reload` 与 `history.pushState/replaceState/go`(状态恒为 null)。JSDOM 只能真实执行片段(`#锚`)导航与历史遍历,`assign/replace/reload` 在单元测试里用注入的假 `全局` 验证。

**运行要求**:等待类函数挂起豫言栈,浏览器须支持 JSPI;八个新包与网页事件包共用同一个统一事件队列。

**验收**:一致性验证见 `../网页定时/一致性验证/`(探针应用 `前端接口探针`、宿主单元测试与 JSDOM+真实 Wasm 的一致性测试,说明见其中的 `说明.汉语.md`)。

说明.文言.md

# 网页导航浏览器适配

`导航。豫` 行[网页导航之约](../../../豫言操作系统接口/网页导航/规范.文言.md)之诸函数:`前往网址`、`替换当前网址`、`重载页面`、`压入历史`、`替换历史`、`移动历史`。`实现接口。豫` 定公共包之身与版,接口检查器当于构建前核其签。

**宿主原语**:适配惟调 `豫言_浏览器_网页能力`(同步)与 `豫言_浏览器_网页能力异步`(须候者)二原语,操作名为 `导航.前往`、`导航.替换当前`、`导航.重载`、`导航.压入`、`导航.替换历史`、`导航.移动`;败则以(阴,错误文)返,本适配转为豫言事故,不使 JavaScript 之异常越 Wasm 之界。

**宿主之行**:`宿主/浏览器/宿主.mjs` 之 `创建网页能力`。宿主依当前页之网址解址,惟许 http 与 https,拒控制字符与反斜杠;压入与替换历史,另须同源。分别调 location.assign、replace、reload 与 history.pushState、replaceState、go(状态恒 null)。JSDOM 惟能真行片段(“#锚”)之导航与历史之遍,assign、replace、reload 于单元测试中以所注入之假“全局”验之。

**运行之要**:候事之函数挂豫言之栈,浏览器须支持 JSPI;八新包与网页事件包共一统一事列。

**验收**:一致性验证见 `../网页定时/一致性验证/`(探针应用“前端接口探针”、宿主单元测试与 JSDOM 加真实 Wasm 之一致性测试,说明见其中之 `说明.文言.md`)。