Zum Inhalt
HALOWERK

Technische Prüfungen & Formate

F TD2000 DATASTRUCTURES 15 / wasm30 tagged exception trytable catch reference stack unwind transcript

Reconstruct typed tagged exception creation, try_table handler search, payload/reference catch binding and frame/control-stack unwinding.

POST https://detect.halowerk.com/v1/F-TD2000-DATASTRUCTURES-15/wasm30-tagged-exception-trytable-catch-reference-stack-unwind-transcript

Eingaben

Felder des veröffentlichten Eingabeschemas
FeldTypPflichtBeschreibung
artifactobjectJa
Vollständiges Eingabeschema anzeigen
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "artifact"
  ],
  "properties": {
    "artifact": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "wasmExceptions": {
          "type": "object",
          "properties": {
            "data": {
              "type": "object",
              "properties": {
                "tags": {
                  "type": "array",
                  "items": {
                    "type": "array",
                    "items": {
                      "enum": [
                        "i32",
                        "i64",
                        "f32",
                        "f64",
                        "exnref",
                        "externref",
                        "funcref"
                      ]
                    },
                    "maxItems": 8
                  },
                  "maxItems": 16
                },
                "modules": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "tags": {
                        "type": "array",
                        "items": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 15
                        },
                        "maxItems": 16
                      }
                    },
                    "additionalProperties": false,
                    "minProperties": 1
                  },
                  "maxItems": 8
                },
                "exceptions": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "tag": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 15
                      },
                      "fields": {
                        "type": "array",
                        "items": {
                          "$ref": "#/properties/artifact/%24defs/value"
                        },
                        "maxItems": 8
                      }
                    },
                    "additionalProperties": false,
                    "minProperties": 2
                  },
                  "maxItems": 64
                },
                "stack": {
                  "type": "array",
                  "items": {
                    "$ref": "#/properties/artifact/%24defs/entry"
                  },
                  "maxItems": 64
                },
                "action": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "const": "throw"
                        },
                        "tag": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 15
                        }
                      },
                      "additionalProperties": false,
                      "minProperties": 2
                    },
                    {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "const": "throw_ref"
                        }
                      },
                      "additionalProperties": false,
                      "minProperties": 1
                    }
                  ]
                }
              },
              "additionalProperties": false,
              "minProperties": 5
            },
            "claim": {
              "$ref": "#/properties/artifact/%24defs/json"
            }
          },
          "additionalProperties": false,
          "minProperties": 2
        }
      },
      "additionalProperties": false,
      "minProperties": 1,
      "$defs": {
        "entry": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "kind": {
                  "const": "value"
                },
                "value": {
                  "$ref": "#/properties/artifact/%24defs/value"
                }
              },
              "additionalProperties": false,
              "minProperties": 2
            },
            {
              "type": "object",
              "properties": {
                "kind": {
                  "const": "frame"
                },
                "id": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 63
                },
                "module": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 7
                },
                "results": {
                  "$ref": "#/properties/artifact/%24defs/s1"
                }
              },
              "additionalProperties": false,
              "minProperties": 4
            },
            {
              "type": "object",
              "properties": {
                "kind": {
                  "const": "label"
                },
                "id": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 63
                },
                "label_kind": {
                  "enum": [
                    "function",
                    "block",
                    "loop"
                  ]
                },
                "types": {
                  "$ref": "#/properties/artifact/%24defs/s1"
                }
              },
              "additionalProperties": false,
              "minProperties": 4
            },
            {
              "type": "object",
              "properties": {
                "kind": {
                  "const": "handler"
                },
                "id": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 63
                },
                "clauses": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "enum": [
                          "catch",
                          "catch_ref",
                          "catch_all",
                          "catch_all_ref"
                        ]
                      },
                      "tag": {
                        "anyOf": [
                          {
                            "type": "null"
                          },
                          {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 15
                          }
                        ]
                      },
                      "label": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 63
                      }
                    },
                    "additionalProperties": false,
                    "minProperties": 3
                  },
                  "maxItems": 8
                }
              },
              "additionalProperties": false,
              "minProperties": 3
            }
          ]
        },
        "json": {
          "anyOf": [
            {
              "type": "null"
            },
            {
              "type": "boolean"
            },
            {
              "type": "number"
            },
            {
              "type": "string",
              "maxLength": 16000
            },
            {
              "type": "array",
              "items": {
                "$ref": "#/properties/artifact/%24defs/json"
              },
              "maxItems": 16000
            },
            {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/properties/artifact/%24defs/json"
              },
              "maxProperties": 16000
            }
          ]
        },
        "s0": {
          "type": "object",
          "additionalProperties": false,
          "minProperties": 2,
          "properties": {
            "kind": {},
            "index": {}
          },
          "anyOf": [
            {
              "properties": {
                "index": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 63
                },
                "kind": {
                  "const": "internal"
                }
              }
            },
            {
              "properties": {
                "index": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 31
                },
                "kind": {
                  "const": "foreign"
                }
              }
            }
          ]
        },
        "s1": {
          "type": "array",
          "items": {
            "enum": [
              "i32",
              "i64",
              "f32",
              "f64",
              "exnref",
              "externref",
              "funcref"
            ]
          },
          "maxItems": 9
        },
        "value": {
          "type": "object",
          "additionalProperties": false,
          "minProperties": 2,
          "properties": {
            "type": {},
            "value": {}
          },
          "anyOf": [
            {
              "properties": {
                "value": {
                  "type": "string",
                  "minLength": 8,
                  "maxLength": 8,
                  "pattern": "^[0-9a-f]{8}$"
                },
                "type": {
                  "enum": [
                    "i32",
                    "f32"
                  ]
                }
              }
            },
            {
              "properties": {
                "value": {
                  "type": "string",
                  "minLength": 16,
                  "maxLength": 16,
                  "pattern": "^[0-9a-f]{16}$"
                },
                "type": {
                  "enum": [
                    "i64",
                    "f64"
                  ]
                }
              }
            },
            {
              "properties": {
                "value": {
                  "anyOf": [
                    {
                      "type": "null"
                    },
                    {
                      "$ref": "#/properties/artifact/%24defs/s0"
                    }
                  ]
                },
                "type": {
                  "const": "exnref"
                }
              }
            },
            {
              "properties": {
                "value": {
                  "anyOf": [
                    {
                      "type": "null"
                    },
                    {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 31
                    }
                  ]
                },
                "type": {
                  "enum": [
                    "externref",
                    "funcref"
                  ]
                }
              }
            }
          ]
        }
      }
    }
  }
}

Originalschema öffnen

Ergebnis & Dokumentation

Maschinenlesbare Dokumentation dieses Hubs

Quelle dieser Seite: der veröffentlichte HALOWERK-Katalog. Stand: 2026-11-01, 20:49 UTC.

Weitere Endpunkte dieses Hubs

Alle Endpunkte dieses Hubs →