豫言源码浏览器 / Source Browser

浏览项目文件与源码

yuyan · 558 行 · 29437 字节 · UTF-8
§
寻观「标准库」之书。
寻观「标准库」之「数据结构」之「字符串术」之书。
寻观「标准库」之「数据结构」之「字节串」之书。
寻观「癸象工具」之「总集」之书。
寻观「癸象工具」之「癸象访问」之书。
寻观「云工宿主」之「核心」之书。

「读文」乃化「字符串」而「字符串」也。
「读文」者会「原」而
  鉴「癸象解析」于「原」而
    有(「癸象字符串」于「文」)则「文」
    或有「其他」则
      「发生事故」授以「字符串」于『宿主属性不是文字』
也。

「:
文言:以宿主 JSON.parse 验 JSON 文而取其规范文;坏文为可捕之事故,不入癸象之解析(其遇坏串陷而不可捕,且使大整数回绕、小数失真)。
汉语:把 JSON 文字交给宿主的 JSON.parse 校验并取得宿主规范化后的文字(去冗白、按 ECMAScript 书写数字)。无效 JSON 抛可捕获的豫言异常,消息以「错前缀」开头;不再用癸象解析往返,所以畸形字符串不会陷阱、大整数不会回绕成负数、1e21 这类合法数值不会被拒。
:」
「答复错误说明」乃化「字符串」而「字符串」也。
「答复错误说明」者会「文」而
  虑「值」者「癸象解析」于「文」而
  (「癸象字段字符串」于「值」于『名称』于『Error』)附『: 』附(「癸象字段字符串」于「值」于『消息』于『』)
也。

「宿主规范JSON文」乃化「字符串」而化「字符串」而「字符串」也。
「宿主规范JSON文」者会「文」而会「错前缀」而
  虑「号」者「云工全局句柄」于『JSON』而
  虑「解」者
    「云工调用方法安全」于「号」于『parse』于(『[』附(「癸象表示」于(「癸象字符串」于「文」))附『]』)而
  若「解」中「零」则(「解」中「一」)否则「发生事故」授以「字符串」
    于(「错前缀」附(「答复错误说明」于(「解」中「一」)))
也。

「:
文言:网址能为宿主所析否,不抛。
汉语:调用 URL.canParse;宿主不能解析(例如相对网址)时返回阴,宿主异常不越界。
:」
「答复网址可解析」乃化「字符串」而「爻」也。
「答复网址可解析」者会「文」而
  虑「解」者
    「云工调用方法安全」
      于(「云工全局句柄」于『URL』)于『canParse』
        于(『[』附(「癸象表示」于(「癸象字符串」于「文」))附『]』)
  而
  「且」于(「解」中「零」)于(「串相等」于(「解」中「一」)于『true』)
也。

「:文言:癸象化 JSON 文字,由宿主为当前请构答。汉语:序列化 JSON 值,由宿主创建当前请求的最终响应。:」
「回应入站癸象文」乃化「整数」而化「字符串」而「有」也。
「回应入站癸象文」者会「状态」而会「正文」而
  若「或者」于(「小于」于「状态」于「二零零」)于(「大于」于「状态」于「五九九」)则
    「发生事故」授以「有」于『JSON 响应状态不在 200 至 599』
  否则
    若「或者」
      于(「等于」于「状态」于「二零四」)
      于(「或者」于(「等于」于「状态」于「二零五」)于(「等于」于「状态」于「三零四」))则
        「发生事故」授以「有」于『该 HTTP 状态不得带 JSON 正文』
    否则
      虑「净文」者
        「宿主规范JSON文」于「正文」于『JSON 响应正文无效:』
      而
      若「大于」于(「字节长度」于「净文」)于「二零九七一五二」则
        「发生事故」授以「有」于『JSON 响应超过 2 MiB』
      否则
        虑「参数」者
          『[』附(「癸象表示」于(「癸象字符串」于「净文」))附『,{"status":』附(「整数表示」于「状态」)附
            『,"headers":{"Content-Type":"application/json; charset=utf-8","Cache-Control":"no-store","X-Content-Type-Options":"nosniff"}}]』
        而
        「云工设置响应句柄」于(「取云工句柄」于(「云工构造对象」于『Response』于「参数」))
也。

「回应入站空答」乃化「整数」而「有」也。
「回应入站空答」者会「状态」而
  若「或者」于(「小于」于「状态」于「二零零」)于(「大于」于「状态」于「五九九」)则
    「发生事故」授以「有」于『空响应状态不在 200 至 599』
  否则
    虑「参数」者
      『[null,{"status":』附(「整数表示」于「状态」)附『,"headers":{"Cache-Control":"no-store"}}]』
    而
    「云工设置响应句柄」于(「取云工句柄」于(「云工构造对象」于『Response』于「参数」))
也。

「回应入站文字」乃化「整数」而化「字符串」而化「字符串」而「有」也。
「回应入站文字」者会「状态」而会「种类」而会「正文」而
  若「或者」
    于(「是子字符串吗」于(「字节转字符串」于「一三」)于「种类」)
    于(「是子字符串吗」于(「字节转字符串」于「一零」)于「种类」)则
      「发生事故」授以「有」于『内容类型含换行』
  否则
    若「或者」于(「小于」于「状态」于「二零零」)于(「大于」于「状态」于「五九九」)则
      「发生事故」授以「有」于『文字响应状态不在 200 至 599』
    否则
      若「或者」
        于(「等于」于「状态」于「二零四」)
        于(「或者」于(「等于」于「状态」于「二零五」)于(「等于」于「状态」于「三零四」))则
          「发生事故」授以「有」于『该 HTTP 状态不得带文字正文』
      否则
        若「大于」于(「字节长度」于「正文」)于「二零九七一五二」则
          「发生事故」授以「有」于『文字响应超过 2 MiB』
        否则
          虑「参数」者
            『[』附(「癸象表示」于(「癸象字符串」于「正文」))附『,{"status":』附(「整数表示」于「状态」)附
              『,"headers":{"Content-Type":』附(「癸象表示」于(「癸象字符串」于「种类」))
              附『,"Cache-Control":"no-store","X-Content-Type-Options":"nosniff"}}]』
          而
          「云工设置响应句柄」
            于(「取云工句柄」于(「云工构造对象」于『Response』于「参数」))
也。

「回应入站同源改址」乃化「整数」而化「字符串」而「有」也。
「回应入站同源改址」者会「状态」而会「目标文」而
  若「非」于(「或者」
    于(「或者」于(「等于」于「状态」于「三零一」)于(「等于」于「状态」于「三零二」))
    于(「或者」
      于(「等于」于「状态」于「三零三」)
      于(「或者」于(「等于」于「状态」于「三零七」)于(「等于」于「状态」于「三零八」))))则
        「发生事故」授以「有」于『重定向状态不受支持』
  否则
    虑「请」者「云工请求句柄」于「元」
    而
    虑「原址」者
      「取云工句柄」于(「云工构造对象」于『URL』于(『[』附(「云工读取属性」于「请」于『url』)附『]』))
    而
    若「非」于(「答复网址可解析」于「目标文」)则
      「发生事故」授以「有」于『重定向目标不是有效的绝对网址』
    否则
      虑「目标」者
        「取云工句柄」于(「云工构造对象」于『URL』于(『[』附(「癸象表示」于(「癸象字符串」于「目标文」))附『]』))
      而
      虑「原源」者「读文」于(「云工读取属性」于「原址」于『origin』)
      而
      虑「目标源」者「读文」于(「云工读取属性」于「目标」于『origin』)
      而
      若「非」于(「串相等」于「原源」于「目标源」)则
        「发生事故」授以「有」于『重定向目标不是同源』
      否则
        虑「类」者「云工全局句柄」于『Response』
        而
        虑「回」者
          「取云工句柄」于(「云工调用方法」
            于「类」
            于『redirect』
            于(『[』附(「癸象表示」于(「癸象字符串」于「目标文」))附『,』附(「整数表示」于「状态」)附『]』))
        而
        「云工设置响应句柄」于「回」
也。

「回应入站外址改址」乃化「整数」而化「字符串」而「有」也。
「回应入站外址改址」者会「状态」而会「目标文」而
  若「非」于(「或者」
    于(「或者」于(「等于」于「状态」于「三零一」)于(「等于」于「状态」于「三零二」))
    于(「或者」
      于(「等于」于「状态」于「三零三」)
      于(「或者」于(「等于」于「状态」于「三零七」)于(「等于」于「状态」于「三零八」))))则
        「发生事故」授以「有」于『重定向状态不受支持』
  否则
    若「非」于(「答复网址可解析」于「目标文」)则
      「发生事故」授以「有」于『重定向目标不是有效的绝对网址』
    否则
      虑「目标」者
        「取云工句柄」于(「云工构造对象」
          于『URL』
          于(『[』附(「癸象表示」于(「癸象字符串」于「目标文」))附『]』))
      而
      若「非」于(「串相等」于(「读文」于(「云工读取属性」于「目标」于『protocol』))于『https:』)则
        「发生事故」授以「有」于『外站重定向仅允许 HTTPS』
      否则
        虑「类」者「云工全局句柄」于『Response』
        而
        虑「回」者
          「取云工句柄」于(「云工调用方法」
            于「类」
            于『redirect』
            于(『[』附(「癸象表示」于(「癸象字符串」于「目标文」))附『,』附(「整数表示」于「状态」)附『]』))
        而
        「云工设置响应句柄」于「回」
也。

「:文言:此后为带头诸答共用之严验与造答之术;头列守其序,宿主所管之头与内容种类不得由头列设之。汉语:带头答复共用的严格校验和构造函数。:」
「答复令牌字节」乃化「整数」而「爻」也。
「答复令牌字节」者会「码」而
  「或者」
    于(「且」于(「大于」于「码」于「四七」)于(「小于」于「码」于「五八」))
    于(「或者」
      于(「且」于(「大于」于「码」于「六四」)于(「小于」于「码」于「九一」))
      于(「或者」
        于(「且」于(「大于」于「码」于「九六」)于(「小于」于「码」于「一二三」))
        于(「存在吗」授以「整数」
          于(会「甲」而「等于」于「甲」于「码」)
          于(「列」【
            「三三」,
            「三五」,
            「三六」,
            「三七」,
            「三八」,
            「三九」,
            「四二」,
            「四三」,
            「四五」,
            「四六」,
            「九四」,
            「九五」,
            「九六」,
            「一二四」,
            「一二六」
          】))))
也。

「答复值字节」乃化「整数」而「爻」也。
「答复值字节」者会「码」而
  「或者」于(「等于」于「码」于「九」)于(「且」于(「大于」于「码」于「三一」)于(「小于」于「码」于「一二七」))
也。

「答复网址字节」乃化「整数」而「爻」也。
「答复网址字节」者会「码」而
  「且」
    于(「且」于(「大于」于「码」于「三二」)于(「小于」于「码」于「一二七」))
    于(「非」于(「等于」于「码」于「九二」))
也。

「答复全字节符合」乃化(化「整数」而「爻」)而化「字符串」而「爻」也。
「答复全字节符合」者会「谓」而会「文」而
  虑「长」者「字节长度」于「文」而
  递归虑「扫」其化「整数」而「爻」者会「序」而
    若「等于」于「序」于「长」则「阳」否则
      若「谓」于(「字符转整数」于「文」于「序」)则「扫」于(「加」于「序」于「一」)否则「阴」
  而
  「扫」于「零」
也。

「答复令牌长」乃化「字符串」而化「整数」而「整数」也。
「答复令牌长」者会「文」而会「起」而
  若「答复令牌字节」于(「字符转整数」于「文」于「起」)则
    (「加」于「一」于(「答复令牌长」于「文」于(「加」于「起」于「一」)))
  否则
    「零」
也。

「答复跳空白」乃化「字符串」而化「整数」而「整数」也。
「答复跳空白」者会「文」而会「起」而
  虑「码」者「字符转整数」于「文」于「起」而
  若「或者」于(「等于」于「码」于「三二」)于(「等于」于「码」于「九」)则
    「答复跳空白」于「文」于(「加」于「起」于「一」)
  否则
    「起」
也。

「答复小写」乃化「字符串」而「字符串」也。
「答复小写」者会「文」而
  「串组合并」于(「态射」授以「字符串」授以「字符串」
    于(「获取字符」于「文」)
    于(会「字」而
    虑「码」者「字符转整数」于「字」于「零」而
    若「且」于(「大于」于「码」于「六四」)于(「小于」于「码」于「九一」)则
      「字节转字符串」于(「加」于「码」于「三二」)
    否则
      「字」
    ))
也。

「:文言:此诸头名,客不得设:宿主所管者,与内容种类(种类惟由参数而定)。汉语:Content-Length、Transfer-Encoding、Connection、Keep-Alive、Upgrade、TE、Trailer、Content-Type、Content-Encoding 由宿主或函数参数管理,不得出现在应用标头列表中(名称不区分大小写)。:」
「答复禁用头」乃化「字符串」而「爻」也。
「答复禁用头」者会「小写名」而
  「存在吗」授以「字符串」
    于(会「甲」而「串相等」于「甲」于「小写名」)
    于(「列」【
      『content-length』,
      『transfer-encoding』,
      『connection』,
      『keep-alive』,
      『upgrade』,
      『te』,
      『trailer』,
      『content-type』,
      『content-encoding』
    】)
也。

「答复校验头」乃化(「字符串」合「字符串」)而「有」也。
「答复校验头」者会「项」而
  虑「名」者「项」中「零」而
  虑「值」者「项」中「一」而
  若「非」于(「且」
    于(「且」于(「大于」于(「字节长度」于「名」)于「零」)于(「小于」于(「字节长度」于「名」)于「六五」))
    于(「答复全字节符合」于「答复令牌字节」于「名」))则「发生事故」授以「有」
      于『响应标头名称无效』
  否则
    虑「小写名」者「答复小写」于「名」
    而
    若「答复禁用头」于「小写名」则
      「发生事故」授以「有」于(『响应标头由宿主或参数管理,不得设置:』附「名」)
    否则
      若「非」于(「且」
        于(「小于」于(「字节长度」于「值」)于「八一九三」)
        于(「答复全字节符合」于「答复值字节」于「值」))则
          「发生事故」授以「有」于(『响应标头值无效:』附「名」)
      否则
        若「且」
          于(「串相等」于「小写名」于『set-cookie』)
          于(「大于」于(「字节长度」于「值」)于「四零九六」)则
            「发生事故」授以「有」于『Set-Cookie 值超过 4096 字节』
        否则
          「元」
也。

「答复逐项校验」乃化(「列」于(「字符串」合「字符串」))而「有」也。
「答复逐项校验」者会「诸」而
  鉴「诸」而
    有「罄」则「元」
    或有(「缀」于「项」于「余」)则(虑「无」者「答复校验头」于「项」而「答复逐项校验」于「余」)
也。

「答复校验头列」乃化(「列」于(「字符串」合「字符串」))而「有」也。
「答复校验头列」者会「诸」而
  若「大于」于(「长度」授以(「字符串」合「字符串」)于「诸」)于「六四」则
    「发生事故」授以「有」于『响应标头超过 64 项』
  否则
    「答复逐项校验」于「诸」
也。

「答复头列文」乃化(「列」于(「字符串」合「字符串」))而「字符串」也。
「答复头列文」者会「诸」而
  「癸象表示」于(「癸象数组」于(「态射」授以(「字符串」合「字符串」)授以「癸象」
    于「诸」
    于(会「项」而「癸象数组」于(「列」【「癸象字符串」于(「项」中「零」),「癸象字符串」于(「项」中「一」)】))))
也。

「:文言:内容种类须作「类/属」之式,其后可缀空白与分号起首之参;全文惟许可见字。汉语:内容类型须形如 type/subtype,其后只能有空白和以分号开头的参数;全文限一至 256 字节的可见 ASCII 或水平制表。:」
「答复内容类型合法」乃化「字符串」而「爻」也。
「答复内容类型合法」者会「文」而
  虑「长」者「字节长度」于「文」而
  若「或者」于(「等于」于「长」于「零」)于(「大于」于「长」于「二五六」)则
    「阴」
  否则
    若「非」于(「答复全字节符合」于「答复值字节」于「文」)则「阴」否则
      虑「甲」者「答复令牌长」于「文」于「零」
      而
      若「或者」于(「等于」于「甲」于「零」)于(「不等于」于(「字符转整数」于「文」于「甲」)于「四七」)则
        「阴」
      否则
        虑「乙」者「答复令牌长」于「文」于(「加」于「甲」于「一」)
        而
        若「等于」于「乙」于「零」则
          「阴」
        否则
          虑「末」者
            「答复跳空白」
              于「文」
              于(「加」于「甲」于(「加」于「乙」于「一」))
          而
          「或者」
            于(「等于」于「末」于「长」)
            于(「等于」于(「字符转整数」于「文」于「末」)于「五九」)
也。

「答复正文引用」乃化「字节串」而「字符串」也。
「答复正文引用」者会「内容」而
  若「等于」于(「字节串长度」于「内容」)于「零」则
    『null』
  否则
    「云工句柄引用文」于(「云工字节成句柄」于「内容」)
也。

「答复无正文状态」乃化「整数」而「爻」也。
「答复无正文状态」者会「状态」而
  「或者」
    于(「等于」于「状态」于「二零四」)
    于(「或者」于(「等于」于「状态」于「二零五」)于(「等于」于「状态」于「三零四」))
也。

「答复校验状态」乃化「整数」而「有」也。
「答复校验状态」者会「状态」而
  若「或者」于(「小于」于「状态」于「二零零」)于(「大于」于「状态」于「五九九」)则
    「发生事故」授以「有」于『响应状态不在 200 至 599』
  否则
    「元」
也。

「答复造响应」乃化「整数」而化「字符串」而化「字符串」而「有」也。
「答复造响应」者会「状态」而会「体引用」而会「头列文」而
  虑「参数」者
    『[』附「体引用」附『,{"status":』附(「整数表示」于「状态」)附『,"headers":』附「头列文」附『}]』
  而
  「云工设置响应句柄」于(「取云工句柄」于(「云工构造对象」于『Response』于「参数」))
也。

「:文言:先验状、正文与头列,而后造答;固定之头居前,客之头守序居后。汉语:带头答复的共同实现:依次校验状态、正文与状态的兼容性、应用标头列表,再把固定标头放在前面构造 Response。:」
「答复带体」乃
  化「整数」而
  化(「列」于(「字符串」合「字符串」))而
  化(「列」于(「字符串」合「字符串」))而
  化「字节串」而
  「有」
也。
「答复带体」者会「状态」而会「固定头」而会「头列」而会「内容」而
  虑「无」者「答复校验状态」于「状态」而
  若「且」于(「答复无正文状态」于「状态」)于(「大于」于(「字节串长度」于「内容」)于「零」)则
    「发生事故」授以「有」于『该 HTTP 状态不得带非空正文』
  否则
    虑「无」者「答复校验头列」于「头列」而
    「答复造响应」
      于「状态」
      于(「答复正文引用」于「内容」)
      于(「答复头列文」于(「附加」授以(「字符串」合「字符串」)于「固定头」于「头列」))
也。

「回应入站带头文字」乃
  化「整数」而
  化「字符串」而
  化(「列」于(「字符串」合「字符串」))而
  化「字符串」而
  「有」
也。
「回应入站带头文字」者会「状态」而会「种类」而会「头列」而会「正文」而
  若「非」于(「答复内容类型合法」于「种类」)则
    「发生事故」授以「有」于『内容类型无效』
  否则
    若「大于」于(「字节长度」于「正文」)于「八三八八六零八」则
      「发生事故」授以「有」于『文字响应超过 8 MiB』
    否则
      「答复带体」
        于「状态」
        于(「列」【『Content-Type』与「种类」】)
        于「头列」
        于(「字符串转字节串」于「正文」)
也。

「回应入站带头癸象文」乃
  化「整数」而
  化(「列」于(「字符串」合「字符串」))而
  化「字符串」而
  「有」
也。
「回应入站带头癸象文」者会「状态」而会「头列」而会「正文」而
  虑「净文」者「宿主规范JSON文」于「正文」于『JSON 响应正文无效:』而
  若「大于」于(「字节长度」于「净文」)于「二零九七一五二」则
    「发生事故」授以「有」于『JSON 响应超过 2 MiB』
  否则
    「答复带体」
      于「状态」
      于(「列」【『Content-Type』与『application/json; charset=utf-8』】)
      于「头列」
      于(「字符串转字节串」于「净文」)
也。

「回应入站带头空答」乃
  化「整数」而
  化(「列」于(「字符串」合「字符串」))而
  「有」
也。
「回应入站带头空答」者会「状态」而会「头列」而
  「答复带体」于「状态」于(「罄」授以(「字符串」合「字符串」))
  于「头列」
  于(「空字节串」于「元」)
也。

「回应入站带头字节」乃
  化「整数」而
  化「字符串」而
  化(「列」于(「字符串」合「字符串」))而
  化「字节串」而
  「有」
也。
「回应入站带头字节」者会「状态」而会「种类」而会「头列」而会「内容」而
  若「非」于(「答复内容类型合法」于「种类」)则
    「发生事故」授以「有」于『内容类型无效』
  否则
    若「大于」于(「字节串长度」于「内容」)于「一六七七七二一六」则
      「发生事故」授以「有」于『字节响应超过 16 MiB』
    否则
      「答复带体」
        于「状态」
        于(「列」【『Content-Type』与「种类」】)于「头列」于「内容」
也。

「:文言:改址之目标:或以单一「/」起首而次字非「/」非「\」,或无用户信息之绝对 HTTP(S) 址(方案不辨大小写);全文惟含无空之可见字,不含反斜线。汉语:Location 全文只含 0x21 至 0x7E 的 ASCII 且不含反斜线,长度一至 8192;相对形式须以单个 / 开头,绝对形式须以 http:// 或 https:// 起首(方案不分大小写)、能被 URL 标准解析、无用户名口令且主机非空。:」
「答复改址目标合法」乃化「字符串」而「爻」也。
「答复改址目标合法」者会「文」而
  虑「长」者「字节长度」于「文」而
  若「或者」于(「等于」于「长」于「零」)于(「大于」于「长」于「八一九二」)则
    「阴」
  否则
    若「非」于(「答复全字节符合」于「答复网址字节」于「文」)则
      「阴」
    否则
      若「等于」于(「字符转整数」于「文」于「零」)于「四七」则
        「非」于(「等于」于(「字符转整数」于「文」于「一」)于「四七」)
      否则
        虑「小写文」者「答复小写」于「文」
        而
        若「非」于(「或者」
          于(「串开头是它吗」于『http://』于「小写文」)
          于(「串开头是它吗」于『https://』于「小写文」))
        则
          「阴」
        否则
          虑「前缀长」者
            若「串开头是它吗」于『https://』于「小写文」则「八」否则「七」
          而
          虑「首」者「字符转整数」于「文」于「前缀长」
          而
          若「存在吗」授以「整数」
          于(会「甲」而「等于」于「甲」于「首」)
          于(「列」【「零」,「四七」,「六三」,「三五」,「六四」】)则「阴」
          否则
            虑「解」者「云工解析网址」于「文」
            而
            若「非」于(「解」中「零」)则
              「阴」
            否则
              虑「址」者「解」中「一」
              而
              虑「协议」者
                「读文」于(「云工读取属性」于「址」于『protocol』)
              而
              虑「用户」者
                「读文」于(「云工读取属性」于「址」于『username』)
              而
              虑「口令」者
                「读文」于(「云工读取属性」于「址」于『password』)
              而
              虑「主机」者
                「读文」于(「云工读取属性」于「址」于『hostname』)
              而
              「且」
                于(「且」
                  于(「或者」于(「串相等」于「协议」于『http:』)于(「串相等」于「协议」于『https:』))
                  于(「且」于(「串相等」于「用户」于『』)于(「串相等」于「口令」于『』)))
                  于(「非」于(「串相等」于「主机」于『』))
也。

「回应入站带头改址」乃
  化「整数」而
  化「字符串」而
  化(「列」于(「字符串」合「字符串」))而
  「有」
也。
「回应入站带头改址」者会「状态」而会「目标」而会「头列」而
  若「非」于(「存在吗」授以「整数」
    于(会「甲」而「等于」于「甲」于「状态」)
    于(「列」【「三零一」,「三零二」,「三零三」,「三零七」,「三零八」】))则
      「发生事故」授以「有」于『重定向状态不受支持』
  否则
    若「非」于(「答复改址目标合法」于「目标」)则
      「发生事故」授以「有」于『重定向目标无效』
    否则
      若「存在吗」授以(「字符串」合「字符串」)
      于(会「项」而「串相等」于(「答复小写」于(「项」中「零」))于『location』)
      于「头列」则
        「发生事故」授以「有」于『重定向标头列表不得再含 Location』
      否则
        「答复带体」
          于「状态」
          于(「列」【『Location』与「目标」】)
          于「头列」
          于(「空字节串」于「元」)
也。