github.com/primecitizens/pcz/std@v0.2.1/plat/js/webext/runtime/bindings/ffi_bindings.ts (about)

     1  import { importModule, Application, heap, Pointer } from "@ffi";
     2  
     3  importModule("plat/js/webext/runtime", (A: Application) => {
     4    const WEBEXT = typeof globalThis.browser === "undefined" ? globalThis.chrome : globalThis.browser;
     5  
     6    return {
     7      "store_ConnectArgConnectInfo": (ptr: Pointer, ref: heap.Ref<any>) => {
     8        const x = A.H.get<any>(ref);
     9  
    10        if (typeof x === "undefined") {
    11          A.store.Bool(ptr + 9, false);
    12          A.store.Bool(ptr + 8, false);
    13          A.store.Bool(ptr + 0, false);
    14          A.store.Ref(ptr + 4, undefined);
    15        } else {
    16          A.store.Bool(ptr + 9, true);
    17          A.store.Bool(ptr + 8, "includeTlsChannelId" in x ? true : false);
    18          A.store.Bool(ptr + 0, x["includeTlsChannelId"] ? true : false);
    19          A.store.Ref(ptr + 4, x["name"]);
    20        }
    21      },
    22      "load_ConnectArgConnectInfo": (ptr: Pointer, create: heap.Ref<boolean>, ref: heap.Ref<any>): heap.Ref<any> => {
    23        const x = create === A.H.TRUE ? {} : A.H.get<any>(ref);
    24  
    25        if (A.load.Bool(ptr + 8)) {
    26          x["includeTlsChannelId"] = A.load.Bool(ptr + 0);
    27        } else {
    28          delete x["includeTlsChannelId"];
    29        }
    30        x["name"] = A.load.Ref(ptr + 4, undefined);
    31        return create === A.H.TRUE ? A.H.push(x) : ref;
    32      },
    33      "constof_ContextType": (ref: heap.Ref<string>): number => {
    34        const idx = ["TAB", "POPUP", "BACKGROUND", "OFFSCREEN_DOCUMENT", "SIDE_PANEL"].indexOf(A.H.get(ref));
    35        return idx < 0 ? 0 : idx + 1;
    36      },
    37  
    38      "store_ContextFilter": (ptr: Pointer, ref: heap.Ref<any>) => {
    39        const x = A.H.get<any>(ref);
    40  
    41        if (typeof x === "undefined") {
    42          A.store.Bool(ptr + 37, false);
    43          A.store.Ref(ptr + 0, undefined);
    44          A.store.Ref(ptr + 4, undefined);
    45          A.store.Ref(ptr + 8, undefined);
    46          A.store.Ref(ptr + 12, undefined);
    47          A.store.Ref(ptr + 16, undefined);
    48          A.store.Ref(ptr + 20, undefined);
    49          A.store.Bool(ptr + 36, false);
    50          A.store.Bool(ptr + 24, false);
    51          A.store.Ref(ptr + 28, undefined);
    52          A.store.Ref(ptr + 32, undefined);
    53        } else {
    54          A.store.Bool(ptr + 37, true);
    55          A.store.Ref(ptr + 0, x["contextIds"]);
    56          A.store.Ref(ptr + 4, x["contextTypes"]);
    57          A.store.Ref(ptr + 8, x["documentIds"]);
    58          A.store.Ref(ptr + 12, x["documentOrigins"]);
    59          A.store.Ref(ptr + 16, x["documentUrls"]);
    60          A.store.Ref(ptr + 20, x["frameIds"]);
    61          A.store.Bool(ptr + 36, "incognito" in x ? true : false);
    62          A.store.Bool(ptr + 24, x["incognito"] ? true : false);
    63          A.store.Ref(ptr + 28, x["tabIds"]);
    64          A.store.Ref(ptr + 32, x["windowIds"]);
    65        }
    66      },
    67      "load_ContextFilter": (ptr: Pointer, create: heap.Ref<boolean>, ref: heap.Ref<any>): heap.Ref<any> => {
    68        const x = create === A.H.TRUE ? {} : A.H.get<any>(ref);
    69  
    70        x["contextIds"] = A.load.Ref(ptr + 0, undefined);
    71        x["contextTypes"] = A.load.Ref(ptr + 4, undefined);
    72        x["documentIds"] = A.load.Ref(ptr + 8, undefined);
    73        x["documentOrigins"] = A.load.Ref(ptr + 12, undefined);
    74        x["documentUrls"] = A.load.Ref(ptr + 16, undefined);
    75        x["frameIds"] = A.load.Ref(ptr + 20, undefined);
    76        if (A.load.Bool(ptr + 36)) {
    77          x["incognito"] = A.load.Bool(ptr + 24);
    78        } else {
    79          delete x["incognito"];
    80        }
    81        x["tabIds"] = A.load.Ref(ptr + 28, undefined);
    82        x["windowIds"] = A.load.Ref(ptr + 32, undefined);
    83        return create === A.H.TRUE ? A.H.push(x) : ref;
    84      },
    85  
    86      "store_ExtensionContext": (ptr: Pointer, ref: heap.Ref<any>) => {
    87        const x = A.H.get<any>(ref);
    88  
    89        if (typeof x === "undefined") {
    90          A.store.Bool(ptr + 56, false);
    91          A.store.Ref(ptr + 0, undefined);
    92          A.store.Enum(ptr + 4, -1);
    93          A.store.Ref(ptr + 8, undefined);
    94          A.store.Ref(ptr + 12, undefined);
    95          A.store.Ref(ptr + 16, undefined);
    96          A.store.Int64(ptr + 24, 0);
    97          A.store.Bool(ptr + 32, false);
    98          A.store.Int64(ptr + 40, 0);
    99          A.store.Int64(ptr + 48, 0);
   100        } else {
   101          A.store.Bool(ptr + 56, true);
   102          A.store.Ref(ptr + 0, x["contextId"]);
   103          A.store.Enum(
   104            ptr + 4,
   105            ["TAB", "POPUP", "BACKGROUND", "OFFSCREEN_DOCUMENT", "SIDE_PANEL"].indexOf(x["contextType"] as string)
   106          );
   107          A.store.Ref(ptr + 8, x["documentId"]);
   108          A.store.Ref(ptr + 12, x["documentOrigin"]);
   109          A.store.Ref(ptr + 16, x["documentUrl"]);
   110          A.store.Int64(ptr + 24, x["frameId"] === undefined ? 0 : (x["frameId"] as number));
   111          A.store.Bool(ptr + 32, x["incognito"] ? true : false);
   112          A.store.Int64(ptr + 40, x["tabId"] === undefined ? 0 : (x["tabId"] as number));
   113          A.store.Int64(ptr + 48, x["windowId"] === undefined ? 0 : (x["windowId"] as number));
   114        }
   115      },
   116      "load_ExtensionContext": (ptr: Pointer, create: heap.Ref<boolean>, ref: heap.Ref<any>): heap.Ref<any> => {
   117        const x = create === A.H.TRUE ? {} : A.H.get<any>(ref);
   118  
   119        x["contextId"] = A.load.Ref(ptr + 0, undefined);
   120        x["contextType"] = A.load.Enum(ptr + 4, ["TAB", "POPUP", "BACKGROUND", "OFFSCREEN_DOCUMENT", "SIDE_PANEL"]);
   121        x["documentId"] = A.load.Ref(ptr + 8, undefined);
   122        x["documentOrigin"] = A.load.Ref(ptr + 12, undefined);
   123        x["documentUrl"] = A.load.Ref(ptr + 16, undefined);
   124        x["frameId"] = A.load.Int64(ptr + 24);
   125        x["incognito"] = A.load.Bool(ptr + 32);
   126        x["tabId"] = A.load.Int64(ptr + 40);
   127        x["windowId"] = A.load.Int64(ptr + 48);
   128        return create === A.H.TRUE ? A.H.push(x) : ref;
   129      },
   130  
   131      "store_LastErrorProperty": (ptr: Pointer, ref: heap.Ref<any>) => {
   132        const x = A.H.get<any>(ref);
   133  
   134        if (typeof x === "undefined") {
   135          A.store.Bool(ptr + 4, false);
   136          A.store.Ref(ptr + 0, undefined);
   137        } else {
   138          A.store.Bool(ptr + 4, true);
   139          A.store.Ref(ptr + 0, x["message"]);
   140        }
   141      },
   142      "load_LastErrorProperty": (ptr: Pointer, create: heap.Ref<boolean>, ref: heap.Ref<any>): heap.Ref<any> => {
   143        const x = create === A.H.TRUE ? {} : A.H.get<any>(ref);
   144  
   145        x["message"] = A.load.Ref(ptr + 0, undefined);
   146        return create === A.H.TRUE ? A.H.push(x) : ref;
   147      },
   148  
   149      "store_MessageSender": (ptr: Pointer, ref: heap.Ref<any>) => {
   150        const x = A.H.get<any>(ref);
   151  
   152        if (typeof x === "undefined") {
   153          A.store.Bool(ptr + 187, false);
   154          A.store.Ref(ptr + 0, undefined);
   155          A.store.Ref(ptr + 4, undefined);
   156          A.store.Bool(ptr + 184, false);
   157          A.store.Int64(ptr + 8, 0);
   158          A.store.Bool(ptr + 185, false);
   159          A.store.Int64(ptr + 16, 0);
   160          A.store.Bool(ptr + 186, false);
   161          A.store.Int64(ptr + 24, 0);
   162          A.store.Ref(ptr + 32, undefined);
   163          A.store.Ref(ptr + 36, undefined);
   164          A.store.Ref(ptr + 40, undefined);
   165  
   166          A.store.Bool(ptr + 48 + 0, false);
   167          A.store.Bool(ptr + 48 + 0, false);
   168          A.store.Bool(ptr + 48 + 0, false);
   169          A.store.Bool(ptr + 48 + 0, false);
   170          A.store.Bool(ptr + 48 + 0, false);
   171          A.store.Bool(ptr + 48 + 0, false);
   172          A.store.Ref(ptr + 48 + 0, undefined);
   173          A.store.Int0(ptr + 48 + 0, 0);
   174          A.store.Bool(ptr + 48 + 0, false);
   175          A.store.Int0(ptr + 48 + 0, 0);
   176          A.store.Bool(ptr + 48 + 0, false);
   177          A.store.Bool(ptr + 48 + 0, false);
   178          A.store.Int0(ptr + 48 + 0, 0);
   179          A.store.Bool(ptr + 48 + 0, false);
   180          A.store.Int0(ptr + 48 + 0, 0);
   181  
   182          A.store.Bool(ptr + 48 + 0 + 0, false);
   183          A.store.Ref(ptr + 48 + 0 + 0, undefined);
   184          A.store.Bool(ptr + 48 + 0 + 0, false);
   185          A.store.Enum(ptr + 48 + 0 + 0, -1);
   186          A.store.Bool(ptr + 48 + 0, false);
   187          A.store.Int0(ptr + 48 + 0, 0);
   188          A.store.Ref(ptr + 48 + 0, undefined);
   189          A.store.Bool(ptr + 48 + 0, false);
   190          A.store.Bool(ptr + 48 + 0, false);
   191          A.store.Ref(ptr + 48 + 0, undefined);
   192          A.store.Enum(ptr + 48 + 0, -1);
   193          A.store.Ref(ptr + 48 + 0, undefined);
   194          A.store.Ref(ptr + 48 + 0, undefined);
   195          A.store.Bool(ptr + 48 + 0, false);
   196          A.store.Int0(ptr + 48 + 0, 0);
   197          A.store.Int0(ptr + 48 + 0, 0);
   198          A.store.Ref(ptr + 176, undefined);
   199          A.store.Ref(ptr + 180, undefined);
   200        } else {
   201          A.store.Bool(ptr + 187, true);
   202          A.store.Ref(ptr + 0, x["documentId"]);
   203          A.store.Ref(ptr + 4, x["documentLifecycle"]);
   204          A.store.Bool(ptr + 184, "frameId" in x ? true : false);
   205          A.store.Int64(ptr + 8, x["frameId"] === undefined ? 0 : (x["frameId"] as number));
   206          A.store.Bool(ptr + 185, "guestProcessId" in x ? true : false);
   207          A.store.Int64(ptr + 16, x["guestProcessId"] === undefined ? 0 : (x["guestProcessId"] as number));
   208          A.store.Bool(ptr + 186, "guestRenderFrameRoutingId" in x ? true : false);
   209          A.store.Int64(
   210            ptr + 24,
   211            x["guestRenderFrameRoutingId"] === undefined ? 0 : (x["guestRenderFrameRoutingId"] as number)
   212          );
   213          A.store.Ref(ptr + 32, x["id"]);
   214          A.store.Ref(ptr + 36, x["nativeApplication"]);
   215          A.store.Ref(ptr + 40, x["origin"]);
   216  
   217          if (typeof x["tab"] === "undefined") {
   218            A.store.Bool(ptr + 48 + 0, false);
   219            A.store.Bool(ptr + 48 + 0, false);
   220            A.store.Bool(ptr + 48 + 0, false);
   221            A.store.Bool(ptr + 48 + 0, false);
   222            A.store.Bool(ptr + 48 + 0, false);
   223            A.store.Bool(ptr + 48 + 0, false);
   224            A.store.Ref(ptr + 48 + 0, undefined);
   225            A.store.Int0(ptr + 48 + 0, 0);
   226            A.store.Bool(ptr + 48 + 0, false);
   227            A.store.Int0(ptr + 48 + 0, 0);
   228            A.store.Bool(ptr + 48 + 0, false);
   229            A.store.Bool(ptr + 48 + 0, false);
   230            A.store.Int0(ptr + 48 + 0, 0);
   231            A.store.Bool(ptr + 48 + 0, false);
   232            A.store.Int0(ptr + 48 + 0, 0);
   233  
   234            A.store.Bool(ptr + 48 + 0 + 0, false);
   235            A.store.Ref(ptr + 48 + 0 + 0, undefined);
   236            A.store.Bool(ptr + 48 + 0 + 0, false);
   237            A.store.Enum(ptr + 48 + 0 + 0, -1);
   238            A.store.Bool(ptr + 48 + 0, false);
   239            A.store.Int0(ptr + 48 + 0, 0);
   240            A.store.Ref(ptr + 48 + 0, undefined);
   241            A.store.Bool(ptr + 48 + 0, false);
   242            A.store.Bool(ptr + 48 + 0, false);
   243            A.store.Ref(ptr + 48 + 0, undefined);
   244            A.store.Enum(ptr + 48 + 0, -1);
   245            A.store.Ref(ptr + 48 + 0, undefined);
   246            A.store.Ref(ptr + 48 + 0, undefined);
   247            A.store.Bool(ptr + 48 + 0, false);
   248            A.store.Int0(ptr + 48 + 0, 0);
   249            A.store.Int0(ptr + 48 + 0, 0);
   250          } else {
   251            A.store.Bool(ptr + 48 + 0, true);
   252            A.store.Bool(ptr + 48 + 0, x["tab"]["active"] ? true : false);
   253            A.store.Bool(ptr + 48 + 0, "audible" in x["tab"] ? true : false);
   254            A.store.Bool(ptr + 48 + 0, x["tab"]["audible"] ? true : false);
   255            A.store.Bool(ptr + 48 + 0, x["tab"]["autoDiscardable"] ? true : false);
   256            A.store.Bool(ptr + 48 + 0, x["tab"]["discarded"] ? true : false);
   257            A.store.Ref(ptr + 48 + 0, x["tab"]["favIconUrl"]);
   258            A.store.Int0(ptr + 48 + 0, x["tab"]["groupId"] === undefined ? 0 : (x["tab"]["groupId"] as number));
   259            A.store.Bool(ptr + 48 + 0, "height" in x["tab"] ? true : false);
   260            A.store.Int0(ptr + 48 + 0, x["tab"]["height"] === undefined ? 0 : (x["tab"]["height"] as number));
   261            A.store.Bool(ptr + 48 + 0, x["tab"]["highlighted"] ? true : false);
   262            A.store.Bool(ptr + 48 + 0, "id" in x["tab"] ? true : false);
   263            A.store.Int0(ptr + 48 + 0, x["tab"]["id"] === undefined ? 0 : (x["tab"]["id"] as number));
   264            A.store.Bool(ptr + 48 + 0, x["tab"]["incognito"] ? true : false);
   265            A.store.Int0(ptr + 48 + 0, x["tab"]["index"] === undefined ? 0 : (x["tab"]["index"] as number));
   266  
   267            if (typeof x["tab"]["mutedInfo"] === "undefined") {
   268              A.store.Bool(ptr + 48 + 0 + 0, false);
   269              A.store.Ref(ptr + 48 + 0 + 0, undefined);
   270              A.store.Bool(ptr + 48 + 0 + 0, false);
   271              A.store.Enum(ptr + 48 + 0 + 0, -1);
   272            } else {
   273              A.store.Bool(ptr + 48 + 0 + 0, true);
   274              A.store.Ref(ptr + 48 + 0 + 0, x["tab"]["mutedInfo"]["extensionId"]);
   275              A.store.Bool(ptr + 48 + 0 + 0, x["tab"]["mutedInfo"]["muted"] ? true : false);
   276              A.store.Enum(
   277                ptr + 48 + 0 + 0,
   278                ["user", "capture", "extension"].indexOf(x["tab"]["mutedInfo"]["reason"] as string)
   279              );
   280            }
   281            A.store.Bool(ptr + 48 + 0, "openerTabId" in x["tab"] ? true : false);
   282            A.store.Int0(ptr + 48 + 0, x["tab"]["openerTabId"] === undefined ? 0 : (x["tab"]["openerTabId"] as number));
   283            A.store.Ref(ptr + 48 + 0, x["tab"]["pendingUrl"]);
   284            A.store.Bool(ptr + 48 + 0, x["tab"]["pinned"] ? true : false);
   285            A.store.Bool(ptr + 48 + 0, x["tab"]["selected"] ? true : false);
   286            A.store.Ref(ptr + 48 + 0, x["tab"]["sessionId"]);
   287            A.store.Enum(ptr + 48 + 0, ["unloaded", "loading", "complete"].indexOf(x["tab"]["status"] as string));
   288            A.store.Ref(ptr + 48 + 0, x["tab"]["title"]);
   289            A.store.Ref(ptr + 48 + 0, x["tab"]["url"]);
   290            A.store.Bool(ptr + 48 + 0, "width" in x["tab"] ? true : false);
   291            A.store.Int0(ptr + 48 + 0, x["tab"]["width"] === undefined ? 0 : (x["tab"]["width"] as number));
   292            A.store.Int0(ptr + 48 + 0, x["tab"]["windowId"] === undefined ? 0 : (x["tab"]["windowId"] as number));
   293          }
   294          A.store.Ref(ptr + 176, x["tlsChannelId"]);
   295          A.store.Ref(ptr + 180, x["url"]);
   296        }
   297      },
   298      "load_MessageSender": (ptr: Pointer, create: heap.Ref<boolean>, ref: heap.Ref<any>): heap.Ref<any> => {
   299        const x = create === A.H.TRUE ? {} : A.H.get<any>(ref);
   300  
   301        x["documentId"] = A.load.Ref(ptr + 0, undefined);
   302        x["documentLifecycle"] = A.load.Ref(ptr + 4, undefined);
   303        if (A.load.Bool(ptr + 184)) {
   304          x["frameId"] = A.load.Int64(ptr + 8);
   305        } else {
   306          delete x["frameId"];
   307        }
   308        if (A.load.Bool(ptr + 185)) {
   309          x["guestProcessId"] = A.load.Int64(ptr + 16);
   310        } else {
   311          delete x["guestProcessId"];
   312        }
   313        if (A.load.Bool(ptr + 186)) {
   314          x["guestRenderFrameRoutingId"] = A.load.Int64(ptr + 24);
   315        } else {
   316          delete x["guestRenderFrameRoutingId"];
   317        }
   318        x["id"] = A.load.Ref(ptr + 32, undefined);
   319        x["nativeApplication"] = A.load.Ref(ptr + 36, undefined);
   320        x["origin"] = A.load.Ref(ptr + 40, undefined);
   321        if (A.load.Bool(ptr + 48 + 0)) {
   322          x["tab"] = {};
   323          x["tab"]["active"] = A.load.Bool(ptr + 48 + 0);
   324          if (A.load.Bool(ptr + 48 + 0)) {
   325            x["tab"]["audible"] = A.load.Bool(ptr + 48 + 0);
   326          } else {
   327            delete x["tab"]["audible"];
   328          }
   329          x["tab"]["autoDiscardable"] = A.load.Bool(ptr + 48 + 0);
   330          x["tab"]["discarded"] = A.load.Bool(ptr + 48 + 0);
   331          x["tab"]["favIconUrl"] = A.load.Ref(ptr + 48 + 0, undefined);
   332          x["tab"]["groupId"] = A.load.Int0(ptr + 48 + 0);
   333          if (A.load.Bool(ptr + 48 + 0)) {
   334            x["tab"]["height"] = A.load.Int0(ptr + 48 + 0);
   335          } else {
   336            delete x["tab"]["height"];
   337          }
   338          x["tab"]["highlighted"] = A.load.Bool(ptr + 48 + 0);
   339          if (A.load.Bool(ptr + 48 + 0)) {
   340            x["tab"]["id"] = A.load.Int0(ptr + 48 + 0);
   341          } else {
   342            delete x["tab"]["id"];
   343          }
   344          x["tab"]["incognito"] = A.load.Bool(ptr + 48 + 0);
   345          x["tab"]["index"] = A.load.Int0(ptr + 48 + 0);
   346          if (A.load.Bool(ptr + 48 + 0 + 0)) {
   347            x["tab"]["mutedInfo"] = {};
   348            x["tab"]["mutedInfo"]["extensionId"] = A.load.Ref(ptr + 48 + 0 + 0, undefined);
   349            x["tab"]["mutedInfo"]["muted"] = A.load.Bool(ptr + 48 + 0 + 0);
   350            x["tab"]["mutedInfo"]["reason"] = A.load.Enum(ptr + 48 + 0 + 0, ["user", "capture", "extension"]);
   351          } else {
   352            delete x["tab"]["mutedInfo"];
   353          }
   354          if (A.load.Bool(ptr + 48 + 0)) {
   355            x["tab"]["openerTabId"] = A.load.Int0(ptr + 48 + 0);
   356          } else {
   357            delete x["tab"]["openerTabId"];
   358          }
   359          x["tab"]["pendingUrl"] = A.load.Ref(ptr + 48 + 0, undefined);
   360          x["tab"]["pinned"] = A.load.Bool(ptr + 48 + 0);
   361          x["tab"]["selected"] = A.load.Bool(ptr + 48 + 0);
   362          x["tab"]["sessionId"] = A.load.Ref(ptr + 48 + 0, undefined);
   363          x["tab"]["status"] = A.load.Enum(ptr + 48 + 0, ["unloaded", "loading", "complete"]);
   364          x["tab"]["title"] = A.load.Ref(ptr + 48 + 0, undefined);
   365          x["tab"]["url"] = A.load.Ref(ptr + 48 + 0, undefined);
   366          if (A.load.Bool(ptr + 48 + 0)) {
   367            x["tab"]["width"] = A.load.Int0(ptr + 48 + 0);
   368          } else {
   369            delete x["tab"]["width"];
   370          }
   371          x["tab"]["windowId"] = A.load.Int0(ptr + 48 + 0);
   372        } else {
   373          delete x["tab"];
   374        }
   375        x["tlsChannelId"] = A.load.Ref(ptr + 176, undefined);
   376        x["url"] = A.load.Ref(ptr + 180, undefined);
   377        return create === A.H.TRUE ? A.H.push(x) : ref;
   378      },
   379      "constof_OnInstalledReason": (ref: heap.Ref<string>): number => {
   380        const idx = ["install", "update", "chrome_update", "shared_module_update"].indexOf(A.H.get(ref));
   381        return idx < 0 ? 0 : idx + 1;
   382      },
   383  
   384      "store_OnInstalledArgDetails": (ptr: Pointer, ref: heap.Ref<any>) => {
   385        const x = A.H.get<any>(ref);
   386  
   387        if (typeof x === "undefined") {
   388          A.store.Bool(ptr + 12, false);
   389          A.store.Ref(ptr + 0, undefined);
   390          A.store.Ref(ptr + 4, undefined);
   391          A.store.Enum(ptr + 8, -1);
   392        } else {
   393          A.store.Bool(ptr + 12, true);
   394          A.store.Ref(ptr + 0, x["id"]);
   395          A.store.Ref(ptr + 4, x["previousVersion"]);
   396          A.store.Enum(
   397            ptr + 8,
   398            ["install", "update", "chrome_update", "shared_module_update"].indexOf(x["reason"] as string)
   399          );
   400        }
   401      },
   402      "load_OnInstalledArgDetails": (ptr: Pointer, create: heap.Ref<boolean>, ref: heap.Ref<any>): heap.Ref<any> => {
   403        const x = create === A.H.TRUE ? {} : A.H.get<any>(ref);
   404  
   405        x["id"] = A.load.Ref(ptr + 0, undefined);
   406        x["previousVersion"] = A.load.Ref(ptr + 4, undefined);
   407        x["reason"] = A.load.Enum(ptr + 8, ["install", "update", "chrome_update", "shared_module_update"]);
   408        return create === A.H.TRUE ? A.H.push(x) : ref;
   409      },
   410      "constof_OnRestartRequiredReason": (ref: heap.Ref<string>): number => {
   411        const idx = ["app_update", "os_update", "periodic"].indexOf(A.H.get(ref));
   412        return idx < 0 ? 0 : idx + 1;
   413      },
   414      "constof_PlatformArch": (ref: heap.Ref<string>): number => {
   415        const idx = ["arm", "arm64", "x86-32", "x86-64", "mips", "mips64"].indexOf(A.H.get(ref));
   416        return idx < 0 ? 0 : idx + 1;
   417      },
   418      "constof_PlatformNaclArch": (ref: heap.Ref<string>): number => {
   419        const idx = ["arm", "x86-32", "x86-64", "mips", "mips64"].indexOf(A.H.get(ref));
   420        return idx < 0 ? 0 : idx + 1;
   421      },
   422      "constof_PlatformOs": (ref: heap.Ref<string>): number => {
   423        const idx = ["mac", "win", "android", "cros", "linux", "openbsd", "fuchsia"].indexOf(A.H.get(ref));
   424        return idx < 0 ? 0 : idx + 1;
   425      },
   426  
   427      "store_PlatformInfo": (ptr: Pointer, ref: heap.Ref<any>) => {
   428        const x = A.H.get<any>(ref);
   429  
   430        if (typeof x === "undefined") {
   431          A.store.Bool(ptr + 12, false);
   432          A.store.Enum(ptr + 0, -1);
   433          A.store.Enum(ptr + 4, -1);
   434          A.store.Enum(ptr + 8, -1);
   435        } else {
   436          A.store.Bool(ptr + 12, true);
   437          A.store.Enum(ptr + 0, ["arm", "arm64", "x86-32", "x86-64", "mips", "mips64"].indexOf(x["arch"] as string));
   438          A.store.Enum(ptr + 4, ["arm", "x86-32", "x86-64", "mips", "mips64"].indexOf(x["nacl_arch"] as string));
   439          A.store.Enum(
   440            ptr + 8,
   441            ["mac", "win", "android", "cros", "linux", "openbsd", "fuchsia"].indexOf(x["os"] as string)
   442          );
   443        }
   444      },
   445      "load_PlatformInfo": (ptr: Pointer, create: heap.Ref<boolean>, ref: heap.Ref<any>): heap.Ref<any> => {
   446        const x = create === A.H.TRUE ? {} : A.H.get<any>(ref);
   447  
   448        x["arch"] = A.load.Enum(ptr + 0, ["arm", "arm64", "x86-32", "x86-64", "mips", "mips64"]);
   449        x["nacl_arch"] = A.load.Enum(ptr + 4, ["arm", "x86-32", "x86-64", "mips", "mips64"]);
   450        x["os"] = A.load.Enum(ptr + 8, ["mac", "win", "android", "cros", "linux", "openbsd", "fuchsia"]);
   451        return create === A.H.TRUE ? A.H.push(x) : ref;
   452      },
   453  
   454      "store_Port": (ptr: Pointer, ref: heap.Ref<any>) => {
   455        const x = A.H.get<any>(ref);
   456  
   457        if (typeof x === "undefined") {
   458          A.store.Bool(ptr + 204, false);
   459          A.store.Ref(ptr + 0, undefined);
   460          A.store.Ref(ptr + 4, undefined);
   461          A.store.Ref(ptr + 8, undefined);
   462  
   463          A.store.Bool(ptr + 16 + 187, false);
   464          A.store.Ref(ptr + 16 + 0, undefined);
   465          A.store.Ref(ptr + 16 + 4, undefined);
   466          A.store.Bool(ptr + 16 + 184, false);
   467          A.store.Int64(ptr + 16 + 8, 0);
   468          A.store.Bool(ptr + 16 + 185, false);
   469          A.store.Int64(ptr + 16 + 16, 0);
   470          A.store.Bool(ptr + 16 + 186, false);
   471          A.store.Int64(ptr + 16 + 24, 0);
   472          A.store.Ref(ptr + 16 + 32, undefined);
   473          A.store.Ref(ptr + 16 + 36, undefined);
   474          A.store.Ref(ptr + 16 + 40, undefined);
   475  
   476          A.store.Bool(ptr + 16 + 48 + 0, false);
   477          A.store.Bool(ptr + 16 + 48 + 0, false);
   478          A.store.Bool(ptr + 16 + 48 + 0, false);
   479          A.store.Bool(ptr + 16 + 48 + 0, false);
   480          A.store.Bool(ptr + 16 + 48 + 0, false);
   481          A.store.Bool(ptr + 16 + 48 + 0, false);
   482          A.store.Ref(ptr + 16 + 48 + 0, undefined);
   483          A.store.Int0(ptr + 16 + 48 + 0, 0);
   484          A.store.Bool(ptr + 16 + 48 + 0, false);
   485          A.store.Int0(ptr + 16 + 48 + 0, 0);
   486          A.store.Bool(ptr + 16 + 48 + 0, false);
   487          A.store.Bool(ptr + 16 + 48 + 0, false);
   488          A.store.Int0(ptr + 16 + 48 + 0, 0);
   489          A.store.Bool(ptr + 16 + 48 + 0, false);
   490          A.store.Int0(ptr + 16 + 48 + 0, 0);
   491  
   492          A.store.Bool(ptr + 16 + 48 + 0 + 0, false);
   493          A.store.Ref(ptr + 16 + 48 + 0 + 0, undefined);
   494          A.store.Bool(ptr + 16 + 48 + 0 + 0, false);
   495          A.store.Enum(ptr + 16 + 48 + 0 + 0, -1);
   496          A.store.Bool(ptr + 16 + 48 + 0, false);
   497          A.store.Int0(ptr + 16 + 48 + 0, 0);
   498          A.store.Ref(ptr + 16 + 48 + 0, undefined);
   499          A.store.Bool(ptr + 16 + 48 + 0, false);
   500          A.store.Bool(ptr + 16 + 48 + 0, false);
   501          A.store.Ref(ptr + 16 + 48 + 0, undefined);
   502          A.store.Enum(ptr + 16 + 48 + 0, -1);
   503          A.store.Ref(ptr + 16 + 48 + 0, undefined);
   504          A.store.Ref(ptr + 16 + 48 + 0, undefined);
   505          A.store.Bool(ptr + 16 + 48 + 0, false);
   506          A.store.Int0(ptr + 16 + 48 + 0, 0);
   507          A.store.Int0(ptr + 16 + 48 + 0, 0);
   508          A.store.Ref(ptr + 16 + 176, undefined);
   509          A.store.Ref(ptr + 16 + 180, undefined);
   510        } else {
   511          A.store.Bool(ptr + 204, true);
   512          A.store.Ref(ptr + 0, x["disconnect"]);
   513          A.store.Ref(ptr + 4, x["name"]);
   514          A.store.Ref(ptr + 8, x["postMessage"]);
   515  
   516          if (typeof x["sender"] === "undefined") {
   517            A.store.Bool(ptr + 16 + 187, false);
   518            A.store.Ref(ptr + 16 + 0, undefined);
   519            A.store.Ref(ptr + 16 + 4, undefined);
   520            A.store.Bool(ptr + 16 + 184, false);
   521            A.store.Int64(ptr + 16 + 8, 0);
   522            A.store.Bool(ptr + 16 + 185, false);
   523            A.store.Int64(ptr + 16 + 16, 0);
   524            A.store.Bool(ptr + 16 + 186, false);
   525            A.store.Int64(ptr + 16 + 24, 0);
   526            A.store.Ref(ptr + 16 + 32, undefined);
   527            A.store.Ref(ptr + 16 + 36, undefined);
   528            A.store.Ref(ptr + 16 + 40, undefined);
   529  
   530            A.store.Bool(ptr + 16 + 48 + 0, false);
   531            A.store.Bool(ptr + 16 + 48 + 0, false);
   532            A.store.Bool(ptr + 16 + 48 + 0, false);
   533            A.store.Bool(ptr + 16 + 48 + 0, false);
   534            A.store.Bool(ptr + 16 + 48 + 0, false);
   535            A.store.Bool(ptr + 16 + 48 + 0, false);
   536            A.store.Ref(ptr + 16 + 48 + 0, undefined);
   537            A.store.Int0(ptr + 16 + 48 + 0, 0);
   538            A.store.Bool(ptr + 16 + 48 + 0, false);
   539            A.store.Int0(ptr + 16 + 48 + 0, 0);
   540            A.store.Bool(ptr + 16 + 48 + 0, false);
   541            A.store.Bool(ptr + 16 + 48 + 0, false);
   542            A.store.Int0(ptr + 16 + 48 + 0, 0);
   543            A.store.Bool(ptr + 16 + 48 + 0, false);
   544            A.store.Int0(ptr + 16 + 48 + 0, 0);
   545  
   546            A.store.Bool(ptr + 16 + 48 + 0 + 0, false);
   547            A.store.Ref(ptr + 16 + 48 + 0 + 0, undefined);
   548            A.store.Bool(ptr + 16 + 48 + 0 + 0, false);
   549            A.store.Enum(ptr + 16 + 48 + 0 + 0, -1);
   550            A.store.Bool(ptr + 16 + 48 + 0, false);
   551            A.store.Int0(ptr + 16 + 48 + 0, 0);
   552            A.store.Ref(ptr + 16 + 48 + 0, undefined);
   553            A.store.Bool(ptr + 16 + 48 + 0, false);
   554            A.store.Bool(ptr + 16 + 48 + 0, false);
   555            A.store.Ref(ptr + 16 + 48 + 0, undefined);
   556            A.store.Enum(ptr + 16 + 48 + 0, -1);
   557            A.store.Ref(ptr + 16 + 48 + 0, undefined);
   558            A.store.Ref(ptr + 16 + 48 + 0, undefined);
   559            A.store.Bool(ptr + 16 + 48 + 0, false);
   560            A.store.Int0(ptr + 16 + 48 + 0, 0);
   561            A.store.Int0(ptr + 16 + 48 + 0, 0);
   562            A.store.Ref(ptr + 16 + 176, undefined);
   563            A.store.Ref(ptr + 16 + 180, undefined);
   564          } else {
   565            A.store.Bool(ptr + 16 + 187, true);
   566            A.store.Ref(ptr + 16 + 0, x["sender"]["documentId"]);
   567            A.store.Ref(ptr + 16 + 4, x["sender"]["documentLifecycle"]);
   568            A.store.Bool(ptr + 16 + 184, "frameId" in x["sender"] ? true : false);
   569            A.store.Int64(ptr + 16 + 8, x["sender"]["frameId"] === undefined ? 0 : (x["sender"]["frameId"] as number));
   570            A.store.Bool(ptr + 16 + 185, "guestProcessId" in x["sender"] ? true : false);
   571            A.store.Int64(
   572              ptr + 16 + 16,
   573              x["sender"]["guestProcessId"] === undefined ? 0 : (x["sender"]["guestProcessId"] as number)
   574            );
   575            A.store.Bool(ptr + 16 + 186, "guestRenderFrameRoutingId" in x["sender"] ? true : false);
   576            A.store.Int64(
   577              ptr + 16 + 24,
   578              x["sender"]["guestRenderFrameRoutingId"] === undefined
   579                ? 0
   580                : (x["sender"]["guestRenderFrameRoutingId"] as number)
   581            );
   582            A.store.Ref(ptr + 16 + 32, x["sender"]["id"]);
   583            A.store.Ref(ptr + 16 + 36, x["sender"]["nativeApplication"]);
   584            A.store.Ref(ptr + 16 + 40, x["sender"]["origin"]);
   585  
   586            if (typeof x["sender"]["tab"] === "undefined") {
   587              A.store.Bool(ptr + 16 + 48 + 0, false);
   588              A.store.Bool(ptr + 16 + 48 + 0, false);
   589              A.store.Bool(ptr + 16 + 48 + 0, false);
   590              A.store.Bool(ptr + 16 + 48 + 0, false);
   591              A.store.Bool(ptr + 16 + 48 + 0, false);
   592              A.store.Bool(ptr + 16 + 48 + 0, false);
   593              A.store.Ref(ptr + 16 + 48 + 0, undefined);
   594              A.store.Int0(ptr + 16 + 48 + 0, 0);
   595              A.store.Bool(ptr + 16 + 48 + 0, false);
   596              A.store.Int0(ptr + 16 + 48 + 0, 0);
   597              A.store.Bool(ptr + 16 + 48 + 0, false);
   598              A.store.Bool(ptr + 16 + 48 + 0, false);
   599              A.store.Int0(ptr + 16 + 48 + 0, 0);
   600              A.store.Bool(ptr + 16 + 48 + 0, false);
   601              A.store.Int0(ptr + 16 + 48 + 0, 0);
   602  
   603              A.store.Bool(ptr + 16 + 48 + 0 + 0, false);
   604              A.store.Ref(ptr + 16 + 48 + 0 + 0, undefined);
   605              A.store.Bool(ptr + 16 + 48 + 0 + 0, false);
   606              A.store.Enum(ptr + 16 + 48 + 0 + 0, -1);
   607              A.store.Bool(ptr + 16 + 48 + 0, false);
   608              A.store.Int0(ptr + 16 + 48 + 0, 0);
   609              A.store.Ref(ptr + 16 + 48 + 0, undefined);
   610              A.store.Bool(ptr + 16 + 48 + 0, false);
   611              A.store.Bool(ptr + 16 + 48 + 0, false);
   612              A.store.Ref(ptr + 16 + 48 + 0, undefined);
   613              A.store.Enum(ptr + 16 + 48 + 0, -1);
   614              A.store.Ref(ptr + 16 + 48 + 0, undefined);
   615              A.store.Ref(ptr + 16 + 48 + 0, undefined);
   616              A.store.Bool(ptr + 16 + 48 + 0, false);
   617              A.store.Int0(ptr + 16 + 48 + 0, 0);
   618              A.store.Int0(ptr + 16 + 48 + 0, 0);
   619            } else {
   620              A.store.Bool(ptr + 16 + 48 + 0, true);
   621              A.store.Bool(ptr + 16 + 48 + 0, x["sender"]["tab"]["active"] ? true : false);
   622              A.store.Bool(ptr + 16 + 48 + 0, "audible" in x["sender"]["tab"] ? true : false);
   623              A.store.Bool(ptr + 16 + 48 + 0, x["sender"]["tab"]["audible"] ? true : false);
   624              A.store.Bool(ptr + 16 + 48 + 0, x["sender"]["tab"]["autoDiscardable"] ? true : false);
   625              A.store.Bool(ptr + 16 + 48 + 0, x["sender"]["tab"]["discarded"] ? true : false);
   626              A.store.Ref(ptr + 16 + 48 + 0, x["sender"]["tab"]["favIconUrl"]);
   627              A.store.Int0(
   628                ptr + 16 + 48 + 0,
   629                x["sender"]["tab"]["groupId"] === undefined ? 0 : (x["sender"]["tab"]["groupId"] as number)
   630              );
   631              A.store.Bool(ptr + 16 + 48 + 0, "height" in x["sender"]["tab"] ? true : false);
   632              A.store.Int0(
   633                ptr + 16 + 48 + 0,
   634                x["sender"]["tab"]["height"] === undefined ? 0 : (x["sender"]["tab"]["height"] as number)
   635              );
   636              A.store.Bool(ptr + 16 + 48 + 0, x["sender"]["tab"]["highlighted"] ? true : false);
   637              A.store.Bool(ptr + 16 + 48 + 0, "id" in x["sender"]["tab"] ? true : false);
   638              A.store.Int0(
   639                ptr + 16 + 48 + 0,
   640                x["sender"]["tab"]["id"] === undefined ? 0 : (x["sender"]["tab"]["id"] as number)
   641              );
   642              A.store.Bool(ptr + 16 + 48 + 0, x["sender"]["tab"]["incognito"] ? true : false);
   643              A.store.Int0(
   644                ptr + 16 + 48 + 0,
   645                x["sender"]["tab"]["index"] === undefined ? 0 : (x["sender"]["tab"]["index"] as number)
   646              );
   647  
   648              if (typeof x["sender"]["tab"]["mutedInfo"] === "undefined") {
   649                A.store.Bool(ptr + 16 + 48 + 0 + 0, false);
   650                A.store.Ref(ptr + 16 + 48 + 0 + 0, undefined);
   651                A.store.Bool(ptr + 16 + 48 + 0 + 0, false);
   652                A.store.Enum(ptr + 16 + 48 + 0 + 0, -1);
   653              } else {
   654                A.store.Bool(ptr + 16 + 48 + 0 + 0, true);
   655                A.store.Ref(ptr + 16 + 48 + 0 + 0, x["sender"]["tab"]["mutedInfo"]["extensionId"]);
   656                A.store.Bool(ptr + 16 + 48 + 0 + 0, x["sender"]["tab"]["mutedInfo"]["muted"] ? true : false);
   657                A.store.Enum(
   658                  ptr + 16 + 48 + 0 + 0,
   659                  ["user", "capture", "extension"].indexOf(x["sender"]["tab"]["mutedInfo"]["reason"] as string)
   660                );
   661              }
   662              A.store.Bool(ptr + 16 + 48 + 0, "openerTabId" in x["sender"]["tab"] ? true : false);
   663              A.store.Int0(
   664                ptr + 16 + 48 + 0,
   665                x["sender"]["tab"]["openerTabId"] === undefined ? 0 : (x["sender"]["tab"]["openerTabId"] as number)
   666              );
   667              A.store.Ref(ptr + 16 + 48 + 0, x["sender"]["tab"]["pendingUrl"]);
   668              A.store.Bool(ptr + 16 + 48 + 0, x["sender"]["tab"]["pinned"] ? true : false);
   669              A.store.Bool(ptr + 16 + 48 + 0, x["sender"]["tab"]["selected"] ? true : false);
   670              A.store.Ref(ptr + 16 + 48 + 0, x["sender"]["tab"]["sessionId"]);
   671              A.store.Enum(
   672                ptr + 16 + 48 + 0,
   673                ["unloaded", "loading", "complete"].indexOf(x["sender"]["tab"]["status"] as string)
   674              );
   675              A.store.Ref(ptr + 16 + 48 + 0, x["sender"]["tab"]["title"]);
   676              A.store.Ref(ptr + 16 + 48 + 0, x["sender"]["tab"]["url"]);
   677              A.store.Bool(ptr + 16 + 48 + 0, "width" in x["sender"]["tab"] ? true : false);
   678              A.store.Int0(
   679                ptr + 16 + 48 + 0,
   680                x["sender"]["tab"]["width"] === undefined ? 0 : (x["sender"]["tab"]["width"] as number)
   681              );
   682              A.store.Int0(
   683                ptr + 16 + 48 + 0,
   684                x["sender"]["tab"]["windowId"] === undefined ? 0 : (x["sender"]["tab"]["windowId"] as number)
   685              );
   686            }
   687            A.store.Ref(ptr + 16 + 176, x["sender"]["tlsChannelId"]);
   688            A.store.Ref(ptr + 16 + 180, x["sender"]["url"]);
   689          }
   690        }
   691      },
   692      "load_Port": (ptr: Pointer, create: heap.Ref<boolean>, ref: heap.Ref<any>): heap.Ref<any> => {
   693        const x = create === A.H.TRUE ? {} : A.H.get<any>(ref);
   694  
   695        x["disconnect"] = A.load.Ref(ptr + 0, undefined);
   696        x["name"] = A.load.Ref(ptr + 4, undefined);
   697        x["postMessage"] = A.load.Ref(ptr + 8, undefined);
   698        if (A.load.Bool(ptr + 16 + 187)) {
   699          x["sender"] = {};
   700          x["sender"]["documentId"] = A.load.Ref(ptr + 16 + 0, undefined);
   701          x["sender"]["documentLifecycle"] = A.load.Ref(ptr + 16 + 4, undefined);
   702          if (A.load.Bool(ptr + 16 + 184)) {
   703            x["sender"]["frameId"] = A.load.Int64(ptr + 16 + 8);
   704          } else {
   705            delete x["sender"]["frameId"];
   706          }
   707          if (A.load.Bool(ptr + 16 + 185)) {
   708            x["sender"]["guestProcessId"] = A.load.Int64(ptr + 16 + 16);
   709          } else {
   710            delete x["sender"]["guestProcessId"];
   711          }
   712          if (A.load.Bool(ptr + 16 + 186)) {
   713            x["sender"]["guestRenderFrameRoutingId"] = A.load.Int64(ptr + 16 + 24);
   714          } else {
   715            delete x["sender"]["guestRenderFrameRoutingId"];
   716          }
   717          x["sender"]["id"] = A.load.Ref(ptr + 16 + 32, undefined);
   718          x["sender"]["nativeApplication"] = A.load.Ref(ptr + 16 + 36, undefined);
   719          x["sender"]["origin"] = A.load.Ref(ptr + 16 + 40, undefined);
   720          if (A.load.Bool(ptr + 16 + 48 + 0)) {
   721            x["sender"]["tab"] = {};
   722            x["sender"]["tab"]["active"] = A.load.Bool(ptr + 16 + 48 + 0);
   723            if (A.load.Bool(ptr + 16 + 48 + 0)) {
   724              x["sender"]["tab"]["audible"] = A.load.Bool(ptr + 16 + 48 + 0);
   725            } else {
   726              delete x["sender"]["tab"]["audible"];
   727            }
   728            x["sender"]["tab"]["autoDiscardable"] = A.load.Bool(ptr + 16 + 48 + 0);
   729            x["sender"]["tab"]["discarded"] = A.load.Bool(ptr + 16 + 48 + 0);
   730            x["sender"]["tab"]["favIconUrl"] = A.load.Ref(ptr + 16 + 48 + 0, undefined);
   731            x["sender"]["tab"]["groupId"] = A.load.Int0(ptr + 16 + 48 + 0);
   732            if (A.load.Bool(ptr + 16 + 48 + 0)) {
   733              x["sender"]["tab"]["height"] = A.load.Int0(ptr + 16 + 48 + 0);
   734            } else {
   735              delete x["sender"]["tab"]["height"];
   736            }
   737            x["sender"]["tab"]["highlighted"] = A.load.Bool(ptr + 16 + 48 + 0);
   738            if (A.load.Bool(ptr + 16 + 48 + 0)) {
   739              x["sender"]["tab"]["id"] = A.load.Int0(ptr + 16 + 48 + 0);
   740            } else {
   741              delete x["sender"]["tab"]["id"];
   742            }
   743            x["sender"]["tab"]["incognito"] = A.load.Bool(ptr + 16 + 48 + 0);
   744            x["sender"]["tab"]["index"] = A.load.Int0(ptr + 16 + 48 + 0);
   745            if (A.load.Bool(ptr + 16 + 48 + 0 + 0)) {
   746              x["sender"]["tab"]["mutedInfo"] = {};
   747              x["sender"]["tab"]["mutedInfo"]["extensionId"] = A.load.Ref(ptr + 16 + 48 + 0 + 0, undefined);
   748              x["sender"]["tab"]["mutedInfo"]["muted"] = A.load.Bool(ptr + 16 + 48 + 0 + 0);
   749              x["sender"]["tab"]["mutedInfo"]["reason"] = A.load.Enum(ptr + 16 + 48 + 0 + 0, [
   750                "user",
   751                "capture",
   752                "extension",
   753              ]);
   754            } else {
   755              delete x["sender"]["tab"]["mutedInfo"];
   756            }
   757            if (A.load.Bool(ptr + 16 + 48 + 0)) {
   758              x["sender"]["tab"]["openerTabId"] = A.load.Int0(ptr + 16 + 48 + 0);
   759            } else {
   760              delete x["sender"]["tab"]["openerTabId"];
   761            }
   762            x["sender"]["tab"]["pendingUrl"] = A.load.Ref(ptr + 16 + 48 + 0, undefined);
   763            x["sender"]["tab"]["pinned"] = A.load.Bool(ptr + 16 + 48 + 0);
   764            x["sender"]["tab"]["selected"] = A.load.Bool(ptr + 16 + 48 + 0);
   765            x["sender"]["tab"]["sessionId"] = A.load.Ref(ptr + 16 + 48 + 0, undefined);
   766            x["sender"]["tab"]["status"] = A.load.Enum(ptr + 16 + 48 + 0, ["unloaded", "loading", "complete"]);
   767            x["sender"]["tab"]["title"] = A.load.Ref(ptr + 16 + 48 + 0, undefined);
   768            x["sender"]["tab"]["url"] = A.load.Ref(ptr + 16 + 48 + 0, undefined);
   769            if (A.load.Bool(ptr + 16 + 48 + 0)) {
   770              x["sender"]["tab"]["width"] = A.load.Int0(ptr + 16 + 48 + 0);
   771            } else {
   772              delete x["sender"]["tab"]["width"];
   773            }
   774            x["sender"]["tab"]["windowId"] = A.load.Int0(ptr + 16 + 48 + 0);
   775          } else {
   776            delete x["sender"]["tab"];
   777          }
   778          x["sender"]["tlsChannelId"] = A.load.Ref(ptr + 16 + 176, undefined);
   779          x["sender"]["url"] = A.load.Ref(ptr + 16 + 180, undefined);
   780        } else {
   781          delete x["sender"];
   782        }
   783        return create === A.H.TRUE ? A.H.push(x) : ref;
   784      },
   785      "constof_RequestUpdateCheckStatus": (ref: heap.Ref<string>): number => {
   786        const idx = ["throttled", "no_update", "update_available"].indexOf(A.H.get(ref));
   787        return idx < 0 ? 0 : idx + 1;
   788      },
   789  
   790      "store_RequestUpdateCheckReturnType": (ptr: Pointer, ref: heap.Ref<any>) => {
   791        const x = A.H.get<any>(ref);
   792  
   793        if (typeof x === "undefined") {
   794          A.store.Bool(ptr + 8, false);
   795          A.store.Enum(ptr + 0, -1);
   796          A.store.Ref(ptr + 4, undefined);
   797        } else {
   798          A.store.Bool(ptr + 8, true);
   799          A.store.Enum(ptr + 0, ["throttled", "no_update", "update_available"].indexOf(x["status"] as string));
   800          A.store.Ref(ptr + 4, x["version"]);
   801        }
   802      },
   803      "load_RequestUpdateCheckReturnType": (
   804        ptr: Pointer,
   805        create: heap.Ref<boolean>,
   806        ref: heap.Ref<any>
   807      ): heap.Ref<any> => {
   808        const x = create === A.H.TRUE ? {} : A.H.get<any>(ref);
   809  
   810        x["status"] = A.load.Enum(ptr + 0, ["throttled", "no_update", "update_available"]);
   811        x["version"] = A.load.Ref(ptr + 4, undefined);
   812        return create === A.H.TRUE ? A.H.push(x) : ref;
   813      },
   814  
   815      "store_SendMessageArgOptions": (ptr: Pointer, ref: heap.Ref<any>) => {
   816        const x = A.H.get<any>(ref);
   817  
   818        if (typeof x === "undefined") {
   819          A.store.Bool(ptr + 2, false);
   820          A.store.Bool(ptr + 1, false);
   821          A.store.Bool(ptr + 0, false);
   822        } else {
   823          A.store.Bool(ptr + 2, true);
   824          A.store.Bool(ptr + 1, "includeTlsChannelId" in x ? true : false);
   825          A.store.Bool(ptr + 0, x["includeTlsChannelId"] ? true : false);
   826        }
   827      },
   828      "load_SendMessageArgOptions": (ptr: Pointer, create: heap.Ref<boolean>, ref: heap.Ref<any>): heap.Ref<any> => {
   829        const x = create === A.H.TRUE ? {} : A.H.get<any>(ref);
   830  
   831        if (A.load.Bool(ptr + 1)) {
   832          x["includeTlsChannelId"] = A.load.Bool(ptr + 0);
   833        } else {
   834          delete x["includeTlsChannelId"];
   835        }
   836        return create === A.H.TRUE ? A.H.push(x) : ref;
   837      },
   838      "has_Connect": (): heap.Ref<boolean> => {
   839        if (WEBEXT?.runtime && "connect" in WEBEXT?.runtime) {
   840          return A.H.TRUE;
   841        }
   842        return A.H.FALSE;
   843      },
   844      "func_Connect": (fn: Pointer): void => {
   845        A.store.Ref(fn, WEBEXT.runtime.connect);
   846      },
   847      "call_Connect": (retPtr: Pointer, extensionId: heap.Ref<object>, connectInfo: Pointer): void => {
   848        const connectInfo_ffi = {};
   849  
   850        if (A.load.Bool(connectInfo + 8)) {
   851          connectInfo_ffi["includeTlsChannelId"] = A.load.Bool(connectInfo + 0);
   852        }
   853        connectInfo_ffi["name"] = A.load.Ref(connectInfo + 4, undefined);
   854  
   855        const _ret = WEBEXT.runtime.connect(A.H.get<object>(extensionId), connectInfo_ffi);
   856        if (typeof _ret === "undefined") {
   857          A.store.Bool(retPtr + 204, false);
   858          A.store.Ref(retPtr + 0, undefined);
   859          A.store.Ref(retPtr + 4, undefined);
   860          A.store.Ref(retPtr + 8, undefined);
   861  
   862          A.store.Bool(retPtr + 16 + 187, false);
   863          A.store.Ref(retPtr + 16 + 0, undefined);
   864          A.store.Ref(retPtr + 16 + 4, undefined);
   865          A.store.Bool(retPtr + 16 + 184, false);
   866          A.store.Int64(retPtr + 16 + 8, 0);
   867          A.store.Bool(retPtr + 16 + 185, false);
   868          A.store.Int64(retPtr + 16 + 16, 0);
   869          A.store.Bool(retPtr + 16 + 186, false);
   870          A.store.Int64(retPtr + 16 + 24, 0);
   871          A.store.Ref(retPtr + 16 + 32, undefined);
   872          A.store.Ref(retPtr + 16 + 36, undefined);
   873          A.store.Ref(retPtr + 16 + 40, undefined);
   874  
   875          A.store.Bool(retPtr + 16 + 48 + 0, false);
   876          A.store.Bool(retPtr + 16 + 48 + 0, false);
   877          A.store.Bool(retPtr + 16 + 48 + 0, false);
   878          A.store.Bool(retPtr + 16 + 48 + 0, false);
   879          A.store.Bool(retPtr + 16 + 48 + 0, false);
   880          A.store.Bool(retPtr + 16 + 48 + 0, false);
   881          A.store.Ref(retPtr + 16 + 48 + 0, undefined);
   882          A.store.Int0(retPtr + 16 + 48 + 0, 0);
   883          A.store.Bool(retPtr + 16 + 48 + 0, false);
   884          A.store.Int0(retPtr + 16 + 48 + 0, 0);
   885          A.store.Bool(retPtr + 16 + 48 + 0, false);
   886          A.store.Bool(retPtr + 16 + 48 + 0, false);
   887          A.store.Int0(retPtr + 16 + 48 + 0, 0);
   888          A.store.Bool(retPtr + 16 + 48 + 0, false);
   889          A.store.Int0(retPtr + 16 + 48 + 0, 0);
   890  
   891          A.store.Bool(retPtr + 16 + 48 + 0 + 0, false);
   892          A.store.Ref(retPtr + 16 + 48 + 0 + 0, undefined);
   893          A.store.Bool(retPtr + 16 + 48 + 0 + 0, false);
   894          A.store.Enum(retPtr + 16 + 48 + 0 + 0, -1);
   895          A.store.Bool(retPtr + 16 + 48 + 0, false);
   896          A.store.Int0(retPtr + 16 + 48 + 0, 0);
   897          A.store.Ref(retPtr + 16 + 48 + 0, undefined);
   898          A.store.Bool(retPtr + 16 + 48 + 0, false);
   899          A.store.Bool(retPtr + 16 + 48 + 0, false);
   900          A.store.Ref(retPtr + 16 + 48 + 0, undefined);
   901          A.store.Enum(retPtr + 16 + 48 + 0, -1);
   902          A.store.Ref(retPtr + 16 + 48 + 0, undefined);
   903          A.store.Ref(retPtr + 16 + 48 + 0, undefined);
   904          A.store.Bool(retPtr + 16 + 48 + 0, false);
   905          A.store.Int0(retPtr + 16 + 48 + 0, 0);
   906          A.store.Int0(retPtr + 16 + 48 + 0, 0);
   907          A.store.Ref(retPtr + 16 + 176, undefined);
   908          A.store.Ref(retPtr + 16 + 180, undefined);
   909        } else {
   910          A.store.Bool(retPtr + 204, true);
   911          A.store.Ref(retPtr + 0, _ret["disconnect"]);
   912          A.store.Ref(retPtr + 4, _ret["name"]);
   913          A.store.Ref(retPtr + 8, _ret["postMessage"]);
   914  
   915          if (typeof _ret["sender"] === "undefined") {
   916            A.store.Bool(retPtr + 16 + 187, false);
   917            A.store.Ref(retPtr + 16 + 0, undefined);
   918            A.store.Ref(retPtr + 16 + 4, undefined);
   919            A.store.Bool(retPtr + 16 + 184, false);
   920            A.store.Int64(retPtr + 16 + 8, 0);
   921            A.store.Bool(retPtr + 16 + 185, false);
   922            A.store.Int64(retPtr + 16 + 16, 0);
   923            A.store.Bool(retPtr + 16 + 186, false);
   924            A.store.Int64(retPtr + 16 + 24, 0);
   925            A.store.Ref(retPtr + 16 + 32, undefined);
   926            A.store.Ref(retPtr + 16 + 36, undefined);
   927            A.store.Ref(retPtr + 16 + 40, undefined);
   928  
   929            A.store.Bool(retPtr + 16 + 48 + 0, false);
   930            A.store.Bool(retPtr + 16 + 48 + 0, false);
   931            A.store.Bool(retPtr + 16 + 48 + 0, false);
   932            A.store.Bool(retPtr + 16 + 48 + 0, false);
   933            A.store.Bool(retPtr + 16 + 48 + 0, false);
   934            A.store.Bool(retPtr + 16 + 48 + 0, false);
   935            A.store.Ref(retPtr + 16 + 48 + 0, undefined);
   936            A.store.Int0(retPtr + 16 + 48 + 0, 0);
   937            A.store.Bool(retPtr + 16 + 48 + 0, false);
   938            A.store.Int0(retPtr + 16 + 48 + 0, 0);
   939            A.store.Bool(retPtr + 16 + 48 + 0, false);
   940            A.store.Bool(retPtr + 16 + 48 + 0, false);
   941            A.store.Int0(retPtr + 16 + 48 + 0, 0);
   942            A.store.Bool(retPtr + 16 + 48 + 0, false);
   943            A.store.Int0(retPtr + 16 + 48 + 0, 0);
   944  
   945            A.store.Bool(retPtr + 16 + 48 + 0 + 0, false);
   946            A.store.Ref(retPtr + 16 + 48 + 0 + 0, undefined);
   947            A.store.Bool(retPtr + 16 + 48 + 0 + 0, false);
   948            A.store.Enum(retPtr + 16 + 48 + 0 + 0, -1);
   949            A.store.Bool(retPtr + 16 + 48 + 0, false);
   950            A.store.Int0(retPtr + 16 + 48 + 0, 0);
   951            A.store.Ref(retPtr + 16 + 48 + 0, undefined);
   952            A.store.Bool(retPtr + 16 + 48 + 0, false);
   953            A.store.Bool(retPtr + 16 + 48 + 0, false);
   954            A.store.Ref(retPtr + 16 + 48 + 0, undefined);
   955            A.store.Enum(retPtr + 16 + 48 + 0, -1);
   956            A.store.Ref(retPtr + 16 + 48 + 0, undefined);
   957            A.store.Ref(retPtr + 16 + 48 + 0, undefined);
   958            A.store.Bool(retPtr + 16 + 48 + 0, false);
   959            A.store.Int0(retPtr + 16 + 48 + 0, 0);
   960            A.store.Int0(retPtr + 16 + 48 + 0, 0);
   961            A.store.Ref(retPtr + 16 + 176, undefined);
   962            A.store.Ref(retPtr + 16 + 180, undefined);
   963          } else {
   964            A.store.Bool(retPtr + 16 + 187, true);
   965            A.store.Ref(retPtr + 16 + 0, _ret["sender"]["documentId"]);
   966            A.store.Ref(retPtr + 16 + 4, _ret["sender"]["documentLifecycle"]);
   967            A.store.Bool(retPtr + 16 + 184, "frameId" in _ret["sender"] ? true : false);
   968            A.store.Int64(
   969              retPtr + 16 + 8,
   970              _ret["sender"]["frameId"] === undefined ? 0 : (_ret["sender"]["frameId"] as number)
   971            );
   972            A.store.Bool(retPtr + 16 + 185, "guestProcessId" in _ret["sender"] ? true : false);
   973            A.store.Int64(
   974              retPtr + 16 + 16,
   975              _ret["sender"]["guestProcessId"] === undefined ? 0 : (_ret["sender"]["guestProcessId"] as number)
   976            );
   977            A.store.Bool(retPtr + 16 + 186, "guestRenderFrameRoutingId" in _ret["sender"] ? true : false);
   978            A.store.Int64(
   979              retPtr + 16 + 24,
   980              _ret["sender"]["guestRenderFrameRoutingId"] === undefined
   981                ? 0
   982                : (_ret["sender"]["guestRenderFrameRoutingId"] as number)
   983            );
   984            A.store.Ref(retPtr + 16 + 32, _ret["sender"]["id"]);
   985            A.store.Ref(retPtr + 16 + 36, _ret["sender"]["nativeApplication"]);
   986            A.store.Ref(retPtr + 16 + 40, _ret["sender"]["origin"]);
   987  
   988            if (typeof _ret["sender"]["tab"] === "undefined") {
   989              A.store.Bool(retPtr + 16 + 48 + 0, false);
   990              A.store.Bool(retPtr + 16 + 48 + 0, false);
   991              A.store.Bool(retPtr + 16 + 48 + 0, false);
   992              A.store.Bool(retPtr + 16 + 48 + 0, false);
   993              A.store.Bool(retPtr + 16 + 48 + 0, false);
   994              A.store.Bool(retPtr + 16 + 48 + 0, false);
   995              A.store.Ref(retPtr + 16 + 48 + 0, undefined);
   996              A.store.Int0(retPtr + 16 + 48 + 0, 0);
   997              A.store.Bool(retPtr + 16 + 48 + 0, false);
   998              A.store.Int0(retPtr + 16 + 48 + 0, 0);
   999              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1000              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1001              A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1002              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1003              A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1004  
  1005              A.store.Bool(retPtr + 16 + 48 + 0 + 0, false);
  1006              A.store.Ref(retPtr + 16 + 48 + 0 + 0, undefined);
  1007              A.store.Bool(retPtr + 16 + 48 + 0 + 0, false);
  1008              A.store.Enum(retPtr + 16 + 48 + 0 + 0, -1);
  1009              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1010              A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1011              A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1012              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1013              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1014              A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1015              A.store.Enum(retPtr + 16 + 48 + 0, -1);
  1016              A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1017              A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1018              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1019              A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1020              A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1021            } else {
  1022              A.store.Bool(retPtr + 16 + 48 + 0, true);
  1023              A.store.Bool(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["active"] ? true : false);
  1024              A.store.Bool(retPtr + 16 + 48 + 0, "audible" in _ret["sender"]["tab"] ? true : false);
  1025              A.store.Bool(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["audible"] ? true : false);
  1026              A.store.Bool(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["autoDiscardable"] ? true : false);
  1027              A.store.Bool(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["discarded"] ? true : false);
  1028              A.store.Ref(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["favIconUrl"]);
  1029              A.store.Int0(
  1030                retPtr + 16 + 48 + 0,
  1031                _ret["sender"]["tab"]["groupId"] === undefined ? 0 : (_ret["sender"]["tab"]["groupId"] as number)
  1032              );
  1033              A.store.Bool(retPtr + 16 + 48 + 0, "height" in _ret["sender"]["tab"] ? true : false);
  1034              A.store.Int0(
  1035                retPtr + 16 + 48 + 0,
  1036                _ret["sender"]["tab"]["height"] === undefined ? 0 : (_ret["sender"]["tab"]["height"] as number)
  1037              );
  1038              A.store.Bool(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["highlighted"] ? true : false);
  1039              A.store.Bool(retPtr + 16 + 48 + 0, "id" in _ret["sender"]["tab"] ? true : false);
  1040              A.store.Int0(
  1041                retPtr + 16 + 48 + 0,
  1042                _ret["sender"]["tab"]["id"] === undefined ? 0 : (_ret["sender"]["tab"]["id"] as number)
  1043              );
  1044              A.store.Bool(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["incognito"] ? true : false);
  1045              A.store.Int0(
  1046                retPtr + 16 + 48 + 0,
  1047                _ret["sender"]["tab"]["index"] === undefined ? 0 : (_ret["sender"]["tab"]["index"] as number)
  1048              );
  1049  
  1050              if (typeof _ret["sender"]["tab"]["mutedInfo"] === "undefined") {
  1051                A.store.Bool(retPtr + 16 + 48 + 0 + 0, false);
  1052                A.store.Ref(retPtr + 16 + 48 + 0 + 0, undefined);
  1053                A.store.Bool(retPtr + 16 + 48 + 0 + 0, false);
  1054                A.store.Enum(retPtr + 16 + 48 + 0 + 0, -1);
  1055              } else {
  1056                A.store.Bool(retPtr + 16 + 48 + 0 + 0, true);
  1057                A.store.Ref(retPtr + 16 + 48 + 0 + 0, _ret["sender"]["tab"]["mutedInfo"]["extensionId"]);
  1058                A.store.Bool(retPtr + 16 + 48 + 0 + 0, _ret["sender"]["tab"]["mutedInfo"]["muted"] ? true : false);
  1059                A.store.Enum(
  1060                  retPtr + 16 + 48 + 0 + 0,
  1061                  ["user", "capture", "extension"].indexOf(_ret["sender"]["tab"]["mutedInfo"]["reason"] as string)
  1062                );
  1063              }
  1064              A.store.Bool(retPtr + 16 + 48 + 0, "openerTabId" in _ret["sender"]["tab"] ? true : false);
  1065              A.store.Int0(
  1066                retPtr + 16 + 48 + 0,
  1067                _ret["sender"]["tab"]["openerTabId"] === undefined ? 0 : (_ret["sender"]["tab"]["openerTabId"] as number)
  1068              );
  1069              A.store.Ref(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["pendingUrl"]);
  1070              A.store.Bool(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["pinned"] ? true : false);
  1071              A.store.Bool(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["selected"] ? true : false);
  1072              A.store.Ref(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["sessionId"]);
  1073              A.store.Enum(
  1074                retPtr + 16 + 48 + 0,
  1075                ["unloaded", "loading", "complete"].indexOf(_ret["sender"]["tab"]["status"] as string)
  1076              );
  1077              A.store.Ref(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["title"]);
  1078              A.store.Ref(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["url"]);
  1079              A.store.Bool(retPtr + 16 + 48 + 0, "width" in _ret["sender"]["tab"] ? true : false);
  1080              A.store.Int0(
  1081                retPtr + 16 + 48 + 0,
  1082                _ret["sender"]["tab"]["width"] === undefined ? 0 : (_ret["sender"]["tab"]["width"] as number)
  1083              );
  1084              A.store.Int0(
  1085                retPtr + 16 + 48 + 0,
  1086                _ret["sender"]["tab"]["windowId"] === undefined ? 0 : (_ret["sender"]["tab"]["windowId"] as number)
  1087              );
  1088            }
  1089            A.store.Ref(retPtr + 16 + 176, _ret["sender"]["tlsChannelId"]);
  1090            A.store.Ref(retPtr + 16 + 180, _ret["sender"]["url"]);
  1091          }
  1092        }
  1093      },
  1094      "try_Connect": (
  1095        retPtr: Pointer,
  1096        errPtr: Pointer,
  1097        extensionId: heap.Ref<object>,
  1098        connectInfo: Pointer
  1099      ): heap.Ref<boolean> => {
  1100        try {
  1101          const connectInfo_ffi = {};
  1102  
  1103          if (A.load.Bool(connectInfo + 8)) {
  1104            connectInfo_ffi["includeTlsChannelId"] = A.load.Bool(connectInfo + 0);
  1105          }
  1106          connectInfo_ffi["name"] = A.load.Ref(connectInfo + 4, undefined);
  1107  
  1108          const _ret = WEBEXT.runtime.connect(A.H.get<object>(extensionId), connectInfo_ffi);
  1109          if (typeof _ret === "undefined") {
  1110            A.store.Bool(retPtr + 204, false);
  1111            A.store.Ref(retPtr + 0, undefined);
  1112            A.store.Ref(retPtr + 4, undefined);
  1113            A.store.Ref(retPtr + 8, undefined);
  1114  
  1115            A.store.Bool(retPtr + 16 + 187, false);
  1116            A.store.Ref(retPtr + 16 + 0, undefined);
  1117            A.store.Ref(retPtr + 16 + 4, undefined);
  1118            A.store.Bool(retPtr + 16 + 184, false);
  1119            A.store.Int64(retPtr + 16 + 8, 0);
  1120            A.store.Bool(retPtr + 16 + 185, false);
  1121            A.store.Int64(retPtr + 16 + 16, 0);
  1122            A.store.Bool(retPtr + 16 + 186, false);
  1123            A.store.Int64(retPtr + 16 + 24, 0);
  1124            A.store.Ref(retPtr + 16 + 32, undefined);
  1125            A.store.Ref(retPtr + 16 + 36, undefined);
  1126            A.store.Ref(retPtr + 16 + 40, undefined);
  1127  
  1128            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1129            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1130            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1131            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1132            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1133            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1134            A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1135            A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1136            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1137            A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1138            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1139            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1140            A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1141            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1142            A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1143  
  1144            A.store.Bool(retPtr + 16 + 48 + 0 + 0, false);
  1145            A.store.Ref(retPtr + 16 + 48 + 0 + 0, undefined);
  1146            A.store.Bool(retPtr + 16 + 48 + 0 + 0, false);
  1147            A.store.Enum(retPtr + 16 + 48 + 0 + 0, -1);
  1148            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1149            A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1150            A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1151            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1152            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1153            A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1154            A.store.Enum(retPtr + 16 + 48 + 0, -1);
  1155            A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1156            A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1157            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1158            A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1159            A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1160            A.store.Ref(retPtr + 16 + 176, undefined);
  1161            A.store.Ref(retPtr + 16 + 180, undefined);
  1162          } else {
  1163            A.store.Bool(retPtr + 204, true);
  1164            A.store.Ref(retPtr + 0, _ret["disconnect"]);
  1165            A.store.Ref(retPtr + 4, _ret["name"]);
  1166            A.store.Ref(retPtr + 8, _ret["postMessage"]);
  1167  
  1168            if (typeof _ret["sender"] === "undefined") {
  1169              A.store.Bool(retPtr + 16 + 187, false);
  1170              A.store.Ref(retPtr + 16 + 0, undefined);
  1171              A.store.Ref(retPtr + 16 + 4, undefined);
  1172              A.store.Bool(retPtr + 16 + 184, false);
  1173              A.store.Int64(retPtr + 16 + 8, 0);
  1174              A.store.Bool(retPtr + 16 + 185, false);
  1175              A.store.Int64(retPtr + 16 + 16, 0);
  1176              A.store.Bool(retPtr + 16 + 186, false);
  1177              A.store.Int64(retPtr + 16 + 24, 0);
  1178              A.store.Ref(retPtr + 16 + 32, undefined);
  1179              A.store.Ref(retPtr + 16 + 36, undefined);
  1180              A.store.Ref(retPtr + 16 + 40, undefined);
  1181  
  1182              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1183              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1184              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1185              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1186              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1187              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1188              A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1189              A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1190              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1191              A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1192              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1193              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1194              A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1195              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1196              A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1197  
  1198              A.store.Bool(retPtr + 16 + 48 + 0 + 0, false);
  1199              A.store.Ref(retPtr + 16 + 48 + 0 + 0, undefined);
  1200              A.store.Bool(retPtr + 16 + 48 + 0 + 0, false);
  1201              A.store.Enum(retPtr + 16 + 48 + 0 + 0, -1);
  1202              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1203              A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1204              A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1205              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1206              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1207              A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1208              A.store.Enum(retPtr + 16 + 48 + 0, -1);
  1209              A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1210              A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1211              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1212              A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1213              A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1214              A.store.Ref(retPtr + 16 + 176, undefined);
  1215              A.store.Ref(retPtr + 16 + 180, undefined);
  1216            } else {
  1217              A.store.Bool(retPtr + 16 + 187, true);
  1218              A.store.Ref(retPtr + 16 + 0, _ret["sender"]["documentId"]);
  1219              A.store.Ref(retPtr + 16 + 4, _ret["sender"]["documentLifecycle"]);
  1220              A.store.Bool(retPtr + 16 + 184, "frameId" in _ret["sender"] ? true : false);
  1221              A.store.Int64(
  1222                retPtr + 16 + 8,
  1223                _ret["sender"]["frameId"] === undefined ? 0 : (_ret["sender"]["frameId"] as number)
  1224              );
  1225              A.store.Bool(retPtr + 16 + 185, "guestProcessId" in _ret["sender"] ? true : false);
  1226              A.store.Int64(
  1227                retPtr + 16 + 16,
  1228                _ret["sender"]["guestProcessId"] === undefined ? 0 : (_ret["sender"]["guestProcessId"] as number)
  1229              );
  1230              A.store.Bool(retPtr + 16 + 186, "guestRenderFrameRoutingId" in _ret["sender"] ? true : false);
  1231              A.store.Int64(
  1232                retPtr + 16 + 24,
  1233                _ret["sender"]["guestRenderFrameRoutingId"] === undefined
  1234                  ? 0
  1235                  : (_ret["sender"]["guestRenderFrameRoutingId"] as number)
  1236              );
  1237              A.store.Ref(retPtr + 16 + 32, _ret["sender"]["id"]);
  1238              A.store.Ref(retPtr + 16 + 36, _ret["sender"]["nativeApplication"]);
  1239              A.store.Ref(retPtr + 16 + 40, _ret["sender"]["origin"]);
  1240  
  1241              if (typeof _ret["sender"]["tab"] === "undefined") {
  1242                A.store.Bool(retPtr + 16 + 48 + 0, false);
  1243                A.store.Bool(retPtr + 16 + 48 + 0, false);
  1244                A.store.Bool(retPtr + 16 + 48 + 0, false);
  1245                A.store.Bool(retPtr + 16 + 48 + 0, false);
  1246                A.store.Bool(retPtr + 16 + 48 + 0, false);
  1247                A.store.Bool(retPtr + 16 + 48 + 0, false);
  1248                A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1249                A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1250                A.store.Bool(retPtr + 16 + 48 + 0, false);
  1251                A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1252                A.store.Bool(retPtr + 16 + 48 + 0, false);
  1253                A.store.Bool(retPtr + 16 + 48 + 0, false);
  1254                A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1255                A.store.Bool(retPtr + 16 + 48 + 0, false);
  1256                A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1257  
  1258                A.store.Bool(retPtr + 16 + 48 + 0 + 0, false);
  1259                A.store.Ref(retPtr + 16 + 48 + 0 + 0, undefined);
  1260                A.store.Bool(retPtr + 16 + 48 + 0 + 0, false);
  1261                A.store.Enum(retPtr + 16 + 48 + 0 + 0, -1);
  1262                A.store.Bool(retPtr + 16 + 48 + 0, false);
  1263                A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1264                A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1265                A.store.Bool(retPtr + 16 + 48 + 0, false);
  1266                A.store.Bool(retPtr + 16 + 48 + 0, false);
  1267                A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1268                A.store.Enum(retPtr + 16 + 48 + 0, -1);
  1269                A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1270                A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1271                A.store.Bool(retPtr + 16 + 48 + 0, false);
  1272                A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1273                A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1274              } else {
  1275                A.store.Bool(retPtr + 16 + 48 + 0, true);
  1276                A.store.Bool(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["active"] ? true : false);
  1277                A.store.Bool(retPtr + 16 + 48 + 0, "audible" in _ret["sender"]["tab"] ? true : false);
  1278                A.store.Bool(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["audible"] ? true : false);
  1279                A.store.Bool(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["autoDiscardable"] ? true : false);
  1280                A.store.Bool(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["discarded"] ? true : false);
  1281                A.store.Ref(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["favIconUrl"]);
  1282                A.store.Int0(
  1283                  retPtr + 16 + 48 + 0,
  1284                  _ret["sender"]["tab"]["groupId"] === undefined ? 0 : (_ret["sender"]["tab"]["groupId"] as number)
  1285                );
  1286                A.store.Bool(retPtr + 16 + 48 + 0, "height" in _ret["sender"]["tab"] ? true : false);
  1287                A.store.Int0(
  1288                  retPtr + 16 + 48 + 0,
  1289                  _ret["sender"]["tab"]["height"] === undefined ? 0 : (_ret["sender"]["tab"]["height"] as number)
  1290                );
  1291                A.store.Bool(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["highlighted"] ? true : false);
  1292                A.store.Bool(retPtr + 16 + 48 + 0, "id" in _ret["sender"]["tab"] ? true : false);
  1293                A.store.Int0(
  1294                  retPtr + 16 + 48 + 0,
  1295                  _ret["sender"]["tab"]["id"] === undefined ? 0 : (_ret["sender"]["tab"]["id"] as number)
  1296                );
  1297                A.store.Bool(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["incognito"] ? true : false);
  1298                A.store.Int0(
  1299                  retPtr + 16 + 48 + 0,
  1300                  _ret["sender"]["tab"]["index"] === undefined ? 0 : (_ret["sender"]["tab"]["index"] as number)
  1301                );
  1302  
  1303                if (typeof _ret["sender"]["tab"]["mutedInfo"] === "undefined") {
  1304                  A.store.Bool(retPtr + 16 + 48 + 0 + 0, false);
  1305                  A.store.Ref(retPtr + 16 + 48 + 0 + 0, undefined);
  1306                  A.store.Bool(retPtr + 16 + 48 + 0 + 0, false);
  1307                  A.store.Enum(retPtr + 16 + 48 + 0 + 0, -1);
  1308                } else {
  1309                  A.store.Bool(retPtr + 16 + 48 + 0 + 0, true);
  1310                  A.store.Ref(retPtr + 16 + 48 + 0 + 0, _ret["sender"]["tab"]["mutedInfo"]["extensionId"]);
  1311                  A.store.Bool(retPtr + 16 + 48 + 0 + 0, _ret["sender"]["tab"]["mutedInfo"]["muted"] ? true : false);
  1312                  A.store.Enum(
  1313                    retPtr + 16 + 48 + 0 + 0,
  1314                    ["user", "capture", "extension"].indexOf(_ret["sender"]["tab"]["mutedInfo"]["reason"] as string)
  1315                  );
  1316                }
  1317                A.store.Bool(retPtr + 16 + 48 + 0, "openerTabId" in _ret["sender"]["tab"] ? true : false);
  1318                A.store.Int0(
  1319                  retPtr + 16 + 48 + 0,
  1320                  _ret["sender"]["tab"]["openerTabId"] === undefined
  1321                    ? 0
  1322                    : (_ret["sender"]["tab"]["openerTabId"] as number)
  1323                );
  1324                A.store.Ref(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["pendingUrl"]);
  1325                A.store.Bool(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["pinned"] ? true : false);
  1326                A.store.Bool(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["selected"] ? true : false);
  1327                A.store.Ref(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["sessionId"]);
  1328                A.store.Enum(
  1329                  retPtr + 16 + 48 + 0,
  1330                  ["unloaded", "loading", "complete"].indexOf(_ret["sender"]["tab"]["status"] as string)
  1331                );
  1332                A.store.Ref(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["title"]);
  1333                A.store.Ref(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["url"]);
  1334                A.store.Bool(retPtr + 16 + 48 + 0, "width" in _ret["sender"]["tab"] ? true : false);
  1335                A.store.Int0(
  1336                  retPtr + 16 + 48 + 0,
  1337                  _ret["sender"]["tab"]["width"] === undefined ? 0 : (_ret["sender"]["tab"]["width"] as number)
  1338                );
  1339                A.store.Int0(
  1340                  retPtr + 16 + 48 + 0,
  1341                  _ret["sender"]["tab"]["windowId"] === undefined ? 0 : (_ret["sender"]["tab"]["windowId"] as number)
  1342                );
  1343              }
  1344              A.store.Ref(retPtr + 16 + 176, _ret["sender"]["tlsChannelId"]);
  1345              A.store.Ref(retPtr + 16 + 180, _ret["sender"]["url"]);
  1346            }
  1347          }
  1348          return A.H.TRUE;
  1349        } catch (err: any) {
  1350          A.store.Ref(errPtr, err);
  1351          return A.H.FALSE;
  1352        }
  1353      },
  1354      "has_ConnectNative": (): heap.Ref<boolean> => {
  1355        if (WEBEXT?.runtime && "connectNative" in WEBEXT?.runtime) {
  1356          return A.H.TRUE;
  1357        }
  1358        return A.H.FALSE;
  1359      },
  1360      "func_ConnectNative": (fn: Pointer): void => {
  1361        A.store.Ref(fn, WEBEXT.runtime.connectNative);
  1362      },
  1363      "call_ConnectNative": (retPtr: Pointer, application: heap.Ref<object>): void => {
  1364        const _ret = WEBEXT.runtime.connectNative(A.H.get<object>(application));
  1365        if (typeof _ret === "undefined") {
  1366          A.store.Bool(retPtr + 204, false);
  1367          A.store.Ref(retPtr + 0, undefined);
  1368          A.store.Ref(retPtr + 4, undefined);
  1369          A.store.Ref(retPtr + 8, undefined);
  1370  
  1371          A.store.Bool(retPtr + 16 + 187, false);
  1372          A.store.Ref(retPtr + 16 + 0, undefined);
  1373          A.store.Ref(retPtr + 16 + 4, undefined);
  1374          A.store.Bool(retPtr + 16 + 184, false);
  1375          A.store.Int64(retPtr + 16 + 8, 0);
  1376          A.store.Bool(retPtr + 16 + 185, false);
  1377          A.store.Int64(retPtr + 16 + 16, 0);
  1378          A.store.Bool(retPtr + 16 + 186, false);
  1379          A.store.Int64(retPtr + 16 + 24, 0);
  1380          A.store.Ref(retPtr + 16 + 32, undefined);
  1381          A.store.Ref(retPtr + 16 + 36, undefined);
  1382          A.store.Ref(retPtr + 16 + 40, undefined);
  1383  
  1384          A.store.Bool(retPtr + 16 + 48 + 0, false);
  1385          A.store.Bool(retPtr + 16 + 48 + 0, false);
  1386          A.store.Bool(retPtr + 16 + 48 + 0, false);
  1387          A.store.Bool(retPtr + 16 + 48 + 0, false);
  1388          A.store.Bool(retPtr + 16 + 48 + 0, false);
  1389          A.store.Bool(retPtr + 16 + 48 + 0, false);
  1390          A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1391          A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1392          A.store.Bool(retPtr + 16 + 48 + 0, false);
  1393          A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1394          A.store.Bool(retPtr + 16 + 48 + 0, false);
  1395          A.store.Bool(retPtr + 16 + 48 + 0, false);
  1396          A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1397          A.store.Bool(retPtr + 16 + 48 + 0, false);
  1398          A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1399  
  1400          A.store.Bool(retPtr + 16 + 48 + 0 + 0, false);
  1401          A.store.Ref(retPtr + 16 + 48 + 0 + 0, undefined);
  1402          A.store.Bool(retPtr + 16 + 48 + 0 + 0, false);
  1403          A.store.Enum(retPtr + 16 + 48 + 0 + 0, -1);
  1404          A.store.Bool(retPtr + 16 + 48 + 0, false);
  1405          A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1406          A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1407          A.store.Bool(retPtr + 16 + 48 + 0, false);
  1408          A.store.Bool(retPtr + 16 + 48 + 0, false);
  1409          A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1410          A.store.Enum(retPtr + 16 + 48 + 0, -1);
  1411          A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1412          A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1413          A.store.Bool(retPtr + 16 + 48 + 0, false);
  1414          A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1415          A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1416          A.store.Ref(retPtr + 16 + 176, undefined);
  1417          A.store.Ref(retPtr + 16 + 180, undefined);
  1418        } else {
  1419          A.store.Bool(retPtr + 204, true);
  1420          A.store.Ref(retPtr + 0, _ret["disconnect"]);
  1421          A.store.Ref(retPtr + 4, _ret["name"]);
  1422          A.store.Ref(retPtr + 8, _ret["postMessage"]);
  1423  
  1424          if (typeof _ret["sender"] === "undefined") {
  1425            A.store.Bool(retPtr + 16 + 187, false);
  1426            A.store.Ref(retPtr + 16 + 0, undefined);
  1427            A.store.Ref(retPtr + 16 + 4, undefined);
  1428            A.store.Bool(retPtr + 16 + 184, false);
  1429            A.store.Int64(retPtr + 16 + 8, 0);
  1430            A.store.Bool(retPtr + 16 + 185, false);
  1431            A.store.Int64(retPtr + 16 + 16, 0);
  1432            A.store.Bool(retPtr + 16 + 186, false);
  1433            A.store.Int64(retPtr + 16 + 24, 0);
  1434            A.store.Ref(retPtr + 16 + 32, undefined);
  1435            A.store.Ref(retPtr + 16 + 36, undefined);
  1436            A.store.Ref(retPtr + 16 + 40, undefined);
  1437  
  1438            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1439            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1440            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1441            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1442            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1443            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1444            A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1445            A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1446            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1447            A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1448            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1449            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1450            A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1451            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1452            A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1453  
  1454            A.store.Bool(retPtr + 16 + 48 + 0 + 0, false);
  1455            A.store.Ref(retPtr + 16 + 48 + 0 + 0, undefined);
  1456            A.store.Bool(retPtr + 16 + 48 + 0 + 0, false);
  1457            A.store.Enum(retPtr + 16 + 48 + 0 + 0, -1);
  1458            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1459            A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1460            A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1461            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1462            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1463            A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1464            A.store.Enum(retPtr + 16 + 48 + 0, -1);
  1465            A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1466            A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1467            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1468            A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1469            A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1470            A.store.Ref(retPtr + 16 + 176, undefined);
  1471            A.store.Ref(retPtr + 16 + 180, undefined);
  1472          } else {
  1473            A.store.Bool(retPtr + 16 + 187, true);
  1474            A.store.Ref(retPtr + 16 + 0, _ret["sender"]["documentId"]);
  1475            A.store.Ref(retPtr + 16 + 4, _ret["sender"]["documentLifecycle"]);
  1476            A.store.Bool(retPtr + 16 + 184, "frameId" in _ret["sender"] ? true : false);
  1477            A.store.Int64(
  1478              retPtr + 16 + 8,
  1479              _ret["sender"]["frameId"] === undefined ? 0 : (_ret["sender"]["frameId"] as number)
  1480            );
  1481            A.store.Bool(retPtr + 16 + 185, "guestProcessId" in _ret["sender"] ? true : false);
  1482            A.store.Int64(
  1483              retPtr + 16 + 16,
  1484              _ret["sender"]["guestProcessId"] === undefined ? 0 : (_ret["sender"]["guestProcessId"] as number)
  1485            );
  1486            A.store.Bool(retPtr + 16 + 186, "guestRenderFrameRoutingId" in _ret["sender"] ? true : false);
  1487            A.store.Int64(
  1488              retPtr + 16 + 24,
  1489              _ret["sender"]["guestRenderFrameRoutingId"] === undefined
  1490                ? 0
  1491                : (_ret["sender"]["guestRenderFrameRoutingId"] as number)
  1492            );
  1493            A.store.Ref(retPtr + 16 + 32, _ret["sender"]["id"]);
  1494            A.store.Ref(retPtr + 16 + 36, _ret["sender"]["nativeApplication"]);
  1495            A.store.Ref(retPtr + 16 + 40, _ret["sender"]["origin"]);
  1496  
  1497            if (typeof _ret["sender"]["tab"] === "undefined") {
  1498              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1499              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1500              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1501              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1502              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1503              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1504              A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1505              A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1506              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1507              A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1508              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1509              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1510              A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1511              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1512              A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1513  
  1514              A.store.Bool(retPtr + 16 + 48 + 0 + 0, false);
  1515              A.store.Ref(retPtr + 16 + 48 + 0 + 0, undefined);
  1516              A.store.Bool(retPtr + 16 + 48 + 0 + 0, false);
  1517              A.store.Enum(retPtr + 16 + 48 + 0 + 0, -1);
  1518              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1519              A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1520              A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1521              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1522              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1523              A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1524              A.store.Enum(retPtr + 16 + 48 + 0, -1);
  1525              A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1526              A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1527              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1528              A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1529              A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1530            } else {
  1531              A.store.Bool(retPtr + 16 + 48 + 0, true);
  1532              A.store.Bool(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["active"] ? true : false);
  1533              A.store.Bool(retPtr + 16 + 48 + 0, "audible" in _ret["sender"]["tab"] ? true : false);
  1534              A.store.Bool(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["audible"] ? true : false);
  1535              A.store.Bool(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["autoDiscardable"] ? true : false);
  1536              A.store.Bool(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["discarded"] ? true : false);
  1537              A.store.Ref(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["favIconUrl"]);
  1538              A.store.Int0(
  1539                retPtr + 16 + 48 + 0,
  1540                _ret["sender"]["tab"]["groupId"] === undefined ? 0 : (_ret["sender"]["tab"]["groupId"] as number)
  1541              );
  1542              A.store.Bool(retPtr + 16 + 48 + 0, "height" in _ret["sender"]["tab"] ? true : false);
  1543              A.store.Int0(
  1544                retPtr + 16 + 48 + 0,
  1545                _ret["sender"]["tab"]["height"] === undefined ? 0 : (_ret["sender"]["tab"]["height"] as number)
  1546              );
  1547              A.store.Bool(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["highlighted"] ? true : false);
  1548              A.store.Bool(retPtr + 16 + 48 + 0, "id" in _ret["sender"]["tab"] ? true : false);
  1549              A.store.Int0(
  1550                retPtr + 16 + 48 + 0,
  1551                _ret["sender"]["tab"]["id"] === undefined ? 0 : (_ret["sender"]["tab"]["id"] as number)
  1552              );
  1553              A.store.Bool(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["incognito"] ? true : false);
  1554              A.store.Int0(
  1555                retPtr + 16 + 48 + 0,
  1556                _ret["sender"]["tab"]["index"] === undefined ? 0 : (_ret["sender"]["tab"]["index"] as number)
  1557              );
  1558  
  1559              if (typeof _ret["sender"]["tab"]["mutedInfo"] === "undefined") {
  1560                A.store.Bool(retPtr + 16 + 48 + 0 + 0, false);
  1561                A.store.Ref(retPtr + 16 + 48 + 0 + 0, undefined);
  1562                A.store.Bool(retPtr + 16 + 48 + 0 + 0, false);
  1563                A.store.Enum(retPtr + 16 + 48 + 0 + 0, -1);
  1564              } else {
  1565                A.store.Bool(retPtr + 16 + 48 + 0 + 0, true);
  1566                A.store.Ref(retPtr + 16 + 48 + 0 + 0, _ret["sender"]["tab"]["mutedInfo"]["extensionId"]);
  1567                A.store.Bool(retPtr + 16 + 48 + 0 + 0, _ret["sender"]["tab"]["mutedInfo"]["muted"] ? true : false);
  1568                A.store.Enum(
  1569                  retPtr + 16 + 48 + 0 + 0,
  1570                  ["user", "capture", "extension"].indexOf(_ret["sender"]["tab"]["mutedInfo"]["reason"] as string)
  1571                );
  1572              }
  1573              A.store.Bool(retPtr + 16 + 48 + 0, "openerTabId" in _ret["sender"]["tab"] ? true : false);
  1574              A.store.Int0(
  1575                retPtr + 16 + 48 + 0,
  1576                _ret["sender"]["tab"]["openerTabId"] === undefined ? 0 : (_ret["sender"]["tab"]["openerTabId"] as number)
  1577              );
  1578              A.store.Ref(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["pendingUrl"]);
  1579              A.store.Bool(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["pinned"] ? true : false);
  1580              A.store.Bool(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["selected"] ? true : false);
  1581              A.store.Ref(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["sessionId"]);
  1582              A.store.Enum(
  1583                retPtr + 16 + 48 + 0,
  1584                ["unloaded", "loading", "complete"].indexOf(_ret["sender"]["tab"]["status"] as string)
  1585              );
  1586              A.store.Ref(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["title"]);
  1587              A.store.Ref(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["url"]);
  1588              A.store.Bool(retPtr + 16 + 48 + 0, "width" in _ret["sender"]["tab"] ? true : false);
  1589              A.store.Int0(
  1590                retPtr + 16 + 48 + 0,
  1591                _ret["sender"]["tab"]["width"] === undefined ? 0 : (_ret["sender"]["tab"]["width"] as number)
  1592              );
  1593              A.store.Int0(
  1594                retPtr + 16 + 48 + 0,
  1595                _ret["sender"]["tab"]["windowId"] === undefined ? 0 : (_ret["sender"]["tab"]["windowId"] as number)
  1596              );
  1597            }
  1598            A.store.Ref(retPtr + 16 + 176, _ret["sender"]["tlsChannelId"]);
  1599            A.store.Ref(retPtr + 16 + 180, _ret["sender"]["url"]);
  1600          }
  1601        }
  1602      },
  1603      "try_ConnectNative": (retPtr: Pointer, errPtr: Pointer, application: heap.Ref<object>): heap.Ref<boolean> => {
  1604        try {
  1605          const _ret = WEBEXT.runtime.connectNative(A.H.get<object>(application));
  1606          if (typeof _ret === "undefined") {
  1607            A.store.Bool(retPtr + 204, false);
  1608            A.store.Ref(retPtr + 0, undefined);
  1609            A.store.Ref(retPtr + 4, undefined);
  1610            A.store.Ref(retPtr + 8, undefined);
  1611  
  1612            A.store.Bool(retPtr + 16 + 187, false);
  1613            A.store.Ref(retPtr + 16 + 0, undefined);
  1614            A.store.Ref(retPtr + 16 + 4, undefined);
  1615            A.store.Bool(retPtr + 16 + 184, false);
  1616            A.store.Int64(retPtr + 16 + 8, 0);
  1617            A.store.Bool(retPtr + 16 + 185, false);
  1618            A.store.Int64(retPtr + 16 + 16, 0);
  1619            A.store.Bool(retPtr + 16 + 186, false);
  1620            A.store.Int64(retPtr + 16 + 24, 0);
  1621            A.store.Ref(retPtr + 16 + 32, undefined);
  1622            A.store.Ref(retPtr + 16 + 36, undefined);
  1623            A.store.Ref(retPtr + 16 + 40, undefined);
  1624  
  1625            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1626            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1627            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1628            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1629            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1630            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1631            A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1632            A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1633            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1634            A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1635            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1636            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1637            A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1638            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1639            A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1640  
  1641            A.store.Bool(retPtr + 16 + 48 + 0 + 0, false);
  1642            A.store.Ref(retPtr + 16 + 48 + 0 + 0, undefined);
  1643            A.store.Bool(retPtr + 16 + 48 + 0 + 0, false);
  1644            A.store.Enum(retPtr + 16 + 48 + 0 + 0, -1);
  1645            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1646            A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1647            A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1648            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1649            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1650            A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1651            A.store.Enum(retPtr + 16 + 48 + 0, -1);
  1652            A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1653            A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1654            A.store.Bool(retPtr + 16 + 48 + 0, false);
  1655            A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1656            A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1657            A.store.Ref(retPtr + 16 + 176, undefined);
  1658            A.store.Ref(retPtr + 16 + 180, undefined);
  1659          } else {
  1660            A.store.Bool(retPtr + 204, true);
  1661            A.store.Ref(retPtr + 0, _ret["disconnect"]);
  1662            A.store.Ref(retPtr + 4, _ret["name"]);
  1663            A.store.Ref(retPtr + 8, _ret["postMessage"]);
  1664  
  1665            if (typeof _ret["sender"] === "undefined") {
  1666              A.store.Bool(retPtr + 16 + 187, false);
  1667              A.store.Ref(retPtr + 16 + 0, undefined);
  1668              A.store.Ref(retPtr + 16 + 4, undefined);
  1669              A.store.Bool(retPtr + 16 + 184, false);
  1670              A.store.Int64(retPtr + 16 + 8, 0);
  1671              A.store.Bool(retPtr + 16 + 185, false);
  1672              A.store.Int64(retPtr + 16 + 16, 0);
  1673              A.store.Bool(retPtr + 16 + 186, false);
  1674              A.store.Int64(retPtr + 16 + 24, 0);
  1675              A.store.Ref(retPtr + 16 + 32, undefined);
  1676              A.store.Ref(retPtr + 16 + 36, undefined);
  1677              A.store.Ref(retPtr + 16 + 40, undefined);
  1678  
  1679              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1680              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1681              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1682              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1683              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1684              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1685              A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1686              A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1687              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1688              A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1689              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1690              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1691              A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1692              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1693              A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1694  
  1695              A.store.Bool(retPtr + 16 + 48 + 0 + 0, false);
  1696              A.store.Ref(retPtr + 16 + 48 + 0 + 0, undefined);
  1697              A.store.Bool(retPtr + 16 + 48 + 0 + 0, false);
  1698              A.store.Enum(retPtr + 16 + 48 + 0 + 0, -1);
  1699              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1700              A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1701              A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1702              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1703              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1704              A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1705              A.store.Enum(retPtr + 16 + 48 + 0, -1);
  1706              A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1707              A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1708              A.store.Bool(retPtr + 16 + 48 + 0, false);
  1709              A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1710              A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1711              A.store.Ref(retPtr + 16 + 176, undefined);
  1712              A.store.Ref(retPtr + 16 + 180, undefined);
  1713            } else {
  1714              A.store.Bool(retPtr + 16 + 187, true);
  1715              A.store.Ref(retPtr + 16 + 0, _ret["sender"]["documentId"]);
  1716              A.store.Ref(retPtr + 16 + 4, _ret["sender"]["documentLifecycle"]);
  1717              A.store.Bool(retPtr + 16 + 184, "frameId" in _ret["sender"] ? true : false);
  1718              A.store.Int64(
  1719                retPtr + 16 + 8,
  1720                _ret["sender"]["frameId"] === undefined ? 0 : (_ret["sender"]["frameId"] as number)
  1721              );
  1722              A.store.Bool(retPtr + 16 + 185, "guestProcessId" in _ret["sender"] ? true : false);
  1723              A.store.Int64(
  1724                retPtr + 16 + 16,
  1725                _ret["sender"]["guestProcessId"] === undefined ? 0 : (_ret["sender"]["guestProcessId"] as number)
  1726              );
  1727              A.store.Bool(retPtr + 16 + 186, "guestRenderFrameRoutingId" in _ret["sender"] ? true : false);
  1728              A.store.Int64(
  1729                retPtr + 16 + 24,
  1730                _ret["sender"]["guestRenderFrameRoutingId"] === undefined
  1731                  ? 0
  1732                  : (_ret["sender"]["guestRenderFrameRoutingId"] as number)
  1733              );
  1734              A.store.Ref(retPtr + 16 + 32, _ret["sender"]["id"]);
  1735              A.store.Ref(retPtr + 16 + 36, _ret["sender"]["nativeApplication"]);
  1736              A.store.Ref(retPtr + 16 + 40, _ret["sender"]["origin"]);
  1737  
  1738              if (typeof _ret["sender"]["tab"] === "undefined") {
  1739                A.store.Bool(retPtr + 16 + 48 + 0, false);
  1740                A.store.Bool(retPtr + 16 + 48 + 0, false);
  1741                A.store.Bool(retPtr + 16 + 48 + 0, false);
  1742                A.store.Bool(retPtr + 16 + 48 + 0, false);
  1743                A.store.Bool(retPtr + 16 + 48 + 0, false);
  1744                A.store.Bool(retPtr + 16 + 48 + 0, false);
  1745                A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1746                A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1747                A.store.Bool(retPtr + 16 + 48 + 0, false);
  1748                A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1749                A.store.Bool(retPtr + 16 + 48 + 0, false);
  1750                A.store.Bool(retPtr + 16 + 48 + 0, false);
  1751                A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1752                A.store.Bool(retPtr + 16 + 48 + 0, false);
  1753                A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1754  
  1755                A.store.Bool(retPtr + 16 + 48 + 0 + 0, false);
  1756                A.store.Ref(retPtr + 16 + 48 + 0 + 0, undefined);
  1757                A.store.Bool(retPtr + 16 + 48 + 0 + 0, false);
  1758                A.store.Enum(retPtr + 16 + 48 + 0 + 0, -1);
  1759                A.store.Bool(retPtr + 16 + 48 + 0, false);
  1760                A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1761                A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1762                A.store.Bool(retPtr + 16 + 48 + 0, false);
  1763                A.store.Bool(retPtr + 16 + 48 + 0, false);
  1764                A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1765                A.store.Enum(retPtr + 16 + 48 + 0, -1);
  1766                A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1767                A.store.Ref(retPtr + 16 + 48 + 0, undefined);
  1768                A.store.Bool(retPtr + 16 + 48 + 0, false);
  1769                A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1770                A.store.Int0(retPtr + 16 + 48 + 0, 0);
  1771              } else {
  1772                A.store.Bool(retPtr + 16 + 48 + 0, true);
  1773                A.store.Bool(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["active"] ? true : false);
  1774                A.store.Bool(retPtr + 16 + 48 + 0, "audible" in _ret["sender"]["tab"] ? true : false);
  1775                A.store.Bool(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["audible"] ? true : false);
  1776                A.store.Bool(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["autoDiscardable"] ? true : false);
  1777                A.store.Bool(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["discarded"] ? true : false);
  1778                A.store.Ref(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["favIconUrl"]);
  1779                A.store.Int0(
  1780                  retPtr + 16 + 48 + 0,
  1781                  _ret["sender"]["tab"]["groupId"] === undefined ? 0 : (_ret["sender"]["tab"]["groupId"] as number)
  1782                );
  1783                A.store.Bool(retPtr + 16 + 48 + 0, "height" in _ret["sender"]["tab"] ? true : false);
  1784                A.store.Int0(
  1785                  retPtr + 16 + 48 + 0,
  1786                  _ret["sender"]["tab"]["height"] === undefined ? 0 : (_ret["sender"]["tab"]["height"] as number)
  1787                );
  1788                A.store.Bool(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["highlighted"] ? true : false);
  1789                A.store.Bool(retPtr + 16 + 48 + 0, "id" in _ret["sender"]["tab"] ? true : false);
  1790                A.store.Int0(
  1791                  retPtr + 16 + 48 + 0,
  1792                  _ret["sender"]["tab"]["id"] === undefined ? 0 : (_ret["sender"]["tab"]["id"] as number)
  1793                );
  1794                A.store.Bool(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["incognito"] ? true : false);
  1795                A.store.Int0(
  1796                  retPtr + 16 + 48 + 0,
  1797                  _ret["sender"]["tab"]["index"] === undefined ? 0 : (_ret["sender"]["tab"]["index"] as number)
  1798                );
  1799  
  1800                if (typeof _ret["sender"]["tab"]["mutedInfo"] === "undefined") {
  1801                  A.store.Bool(retPtr + 16 + 48 + 0 + 0, false);
  1802                  A.store.Ref(retPtr + 16 + 48 + 0 + 0, undefined);
  1803                  A.store.Bool(retPtr + 16 + 48 + 0 + 0, false);
  1804                  A.store.Enum(retPtr + 16 + 48 + 0 + 0, -1);
  1805                } else {
  1806                  A.store.Bool(retPtr + 16 + 48 + 0 + 0, true);
  1807                  A.store.Ref(retPtr + 16 + 48 + 0 + 0, _ret["sender"]["tab"]["mutedInfo"]["extensionId"]);
  1808                  A.store.Bool(retPtr + 16 + 48 + 0 + 0, _ret["sender"]["tab"]["mutedInfo"]["muted"] ? true : false);
  1809                  A.store.Enum(
  1810                    retPtr + 16 + 48 + 0 + 0,
  1811                    ["user", "capture", "extension"].indexOf(_ret["sender"]["tab"]["mutedInfo"]["reason"] as string)
  1812                  );
  1813                }
  1814                A.store.Bool(retPtr + 16 + 48 + 0, "openerTabId" in _ret["sender"]["tab"] ? true : false);
  1815                A.store.Int0(
  1816                  retPtr + 16 + 48 + 0,
  1817                  _ret["sender"]["tab"]["openerTabId"] === undefined
  1818                    ? 0
  1819                    : (_ret["sender"]["tab"]["openerTabId"] as number)
  1820                );
  1821                A.store.Ref(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["pendingUrl"]);
  1822                A.store.Bool(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["pinned"] ? true : false);
  1823                A.store.Bool(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["selected"] ? true : false);
  1824                A.store.Ref(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["sessionId"]);
  1825                A.store.Enum(
  1826                  retPtr + 16 + 48 + 0,
  1827                  ["unloaded", "loading", "complete"].indexOf(_ret["sender"]["tab"]["status"] as string)
  1828                );
  1829                A.store.Ref(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["title"]);
  1830                A.store.Ref(retPtr + 16 + 48 + 0, _ret["sender"]["tab"]["url"]);
  1831                A.store.Bool(retPtr + 16 + 48 + 0, "width" in _ret["sender"]["tab"] ? true : false);
  1832                A.store.Int0(
  1833                  retPtr + 16 + 48 + 0,
  1834                  _ret["sender"]["tab"]["width"] === undefined ? 0 : (_ret["sender"]["tab"]["width"] as number)
  1835                );
  1836                A.store.Int0(
  1837                  retPtr + 16 + 48 + 0,
  1838                  _ret["sender"]["tab"]["windowId"] === undefined ? 0 : (_ret["sender"]["tab"]["windowId"] as number)
  1839                );
  1840              }
  1841              A.store.Ref(retPtr + 16 + 176, _ret["sender"]["tlsChannelId"]);
  1842              A.store.Ref(retPtr + 16 + 180, _ret["sender"]["url"]);
  1843            }
  1844          }
  1845          return A.H.TRUE;
  1846        } catch (err: any) {
  1847          A.store.Ref(errPtr, err);
  1848          return A.H.FALSE;
  1849        }
  1850      },
  1851      "has_GetBackgroundPage": (): heap.Ref<boolean> => {
  1852        if (WEBEXT?.runtime && "getBackgroundPage" in WEBEXT?.runtime) {
  1853          return A.H.TRUE;
  1854        }
  1855        return A.H.FALSE;
  1856      },
  1857      "func_GetBackgroundPage": (fn: Pointer): void => {
  1858        A.store.Ref(fn, WEBEXT.runtime.getBackgroundPage);
  1859      },
  1860      "call_GetBackgroundPage": (retPtr: Pointer): void => {
  1861        const _ret = WEBEXT.runtime.getBackgroundPage();
  1862        A.store.Ref(retPtr, _ret);
  1863      },
  1864      "try_GetBackgroundPage": (retPtr: Pointer, errPtr: Pointer): heap.Ref<boolean> => {
  1865        try {
  1866          const _ret = WEBEXT.runtime.getBackgroundPage();
  1867          A.store.Ref(retPtr, _ret);
  1868          return A.H.TRUE;
  1869        } catch (err: any) {
  1870          A.store.Ref(errPtr, err);
  1871          return A.H.FALSE;
  1872        }
  1873      },
  1874      "has_GetContexts": (): heap.Ref<boolean> => {
  1875        if (WEBEXT?.runtime && "getContexts" in WEBEXT?.runtime) {
  1876          return A.H.TRUE;
  1877        }
  1878        return A.H.FALSE;
  1879      },
  1880      "func_GetContexts": (fn: Pointer): void => {
  1881        A.store.Ref(fn, WEBEXT.runtime.getContexts);
  1882      },
  1883      "call_GetContexts": (retPtr: Pointer, filter: Pointer): void => {
  1884        const filter_ffi = {};
  1885  
  1886        filter_ffi["contextIds"] = A.load.Ref(filter + 0, undefined);
  1887        filter_ffi["contextTypes"] = A.load.Ref(filter + 4, undefined);
  1888        filter_ffi["documentIds"] = A.load.Ref(filter + 8, undefined);
  1889        filter_ffi["documentOrigins"] = A.load.Ref(filter + 12, undefined);
  1890        filter_ffi["documentUrls"] = A.load.Ref(filter + 16, undefined);
  1891        filter_ffi["frameIds"] = A.load.Ref(filter + 20, undefined);
  1892        if (A.load.Bool(filter + 36)) {
  1893          filter_ffi["incognito"] = A.load.Bool(filter + 24);
  1894        }
  1895        filter_ffi["tabIds"] = A.load.Ref(filter + 28, undefined);
  1896        filter_ffi["windowIds"] = A.load.Ref(filter + 32, undefined);
  1897  
  1898        const _ret = WEBEXT.runtime.getContexts(filter_ffi);
  1899        A.store.Ref(retPtr, _ret);
  1900      },
  1901      "try_GetContexts": (retPtr: Pointer, errPtr: Pointer, filter: Pointer): heap.Ref<boolean> => {
  1902        try {
  1903          const filter_ffi = {};
  1904  
  1905          filter_ffi["contextIds"] = A.load.Ref(filter + 0, undefined);
  1906          filter_ffi["contextTypes"] = A.load.Ref(filter + 4, undefined);
  1907          filter_ffi["documentIds"] = A.load.Ref(filter + 8, undefined);
  1908          filter_ffi["documentOrigins"] = A.load.Ref(filter + 12, undefined);
  1909          filter_ffi["documentUrls"] = A.load.Ref(filter + 16, undefined);
  1910          filter_ffi["frameIds"] = A.load.Ref(filter + 20, undefined);
  1911          if (A.load.Bool(filter + 36)) {
  1912            filter_ffi["incognito"] = A.load.Bool(filter + 24);
  1913          }
  1914          filter_ffi["tabIds"] = A.load.Ref(filter + 28, undefined);
  1915          filter_ffi["windowIds"] = A.load.Ref(filter + 32, undefined);
  1916  
  1917          const _ret = WEBEXT.runtime.getContexts(filter_ffi);
  1918          A.store.Ref(retPtr, _ret);
  1919          return A.H.TRUE;
  1920        } catch (err: any) {
  1921          A.store.Ref(errPtr, err);
  1922          return A.H.FALSE;
  1923        }
  1924      },
  1925      "has_GetManifest": (): heap.Ref<boolean> => {
  1926        if (WEBEXT?.runtime && "getManifest" in WEBEXT?.runtime) {
  1927          return A.H.TRUE;
  1928        }
  1929        return A.H.FALSE;
  1930      },
  1931      "func_GetManifest": (fn: Pointer): void => {
  1932        A.store.Ref(fn, WEBEXT.runtime.getManifest);
  1933      },
  1934      "call_GetManifest": (retPtr: Pointer): void => {
  1935        const _ret = WEBEXT.runtime.getManifest();
  1936        A.store.Ref(retPtr, _ret);
  1937      },
  1938      "try_GetManifest": (retPtr: Pointer, errPtr: Pointer): heap.Ref<boolean> => {
  1939        try {
  1940          const _ret = WEBEXT.runtime.getManifest();
  1941          A.store.Ref(retPtr, _ret);
  1942          return A.H.TRUE;
  1943        } catch (err: any) {
  1944          A.store.Ref(errPtr, err);
  1945          return A.H.FALSE;
  1946        }
  1947      },
  1948      "has_GetPackageDirectoryEntry": (): heap.Ref<boolean> => {
  1949        if (WEBEXT?.runtime && "getPackageDirectoryEntry" in WEBEXT?.runtime) {
  1950          return A.H.TRUE;
  1951        }
  1952        return A.H.FALSE;
  1953      },
  1954      "func_GetPackageDirectoryEntry": (fn: Pointer): void => {
  1955        A.store.Ref(fn, WEBEXT.runtime.getPackageDirectoryEntry);
  1956      },
  1957      "call_GetPackageDirectoryEntry": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  1958        const _ret = WEBEXT.runtime.getPackageDirectoryEntry(A.H.get<object>(callback));
  1959      },
  1960      "try_GetPackageDirectoryEntry": (
  1961        retPtr: Pointer,
  1962        errPtr: Pointer,
  1963        callback: heap.Ref<object>
  1964      ): heap.Ref<boolean> => {
  1965        try {
  1966          const _ret = WEBEXT.runtime.getPackageDirectoryEntry(A.H.get<object>(callback));
  1967          return A.H.TRUE;
  1968        } catch (err: any) {
  1969          A.store.Ref(errPtr, err);
  1970          return A.H.FALSE;
  1971        }
  1972      },
  1973      "has_GetPlatformInfo": (): heap.Ref<boolean> => {
  1974        if (WEBEXT?.runtime && "getPlatformInfo" in WEBEXT?.runtime) {
  1975          return A.H.TRUE;
  1976        }
  1977        return A.H.FALSE;
  1978      },
  1979      "func_GetPlatformInfo": (fn: Pointer): void => {
  1980        A.store.Ref(fn, WEBEXT.runtime.getPlatformInfo);
  1981      },
  1982      "call_GetPlatformInfo": (retPtr: Pointer): void => {
  1983        const _ret = WEBEXT.runtime.getPlatformInfo();
  1984        A.store.Ref(retPtr, _ret);
  1985      },
  1986      "try_GetPlatformInfo": (retPtr: Pointer, errPtr: Pointer): heap.Ref<boolean> => {
  1987        try {
  1988          const _ret = WEBEXT.runtime.getPlatformInfo();
  1989          A.store.Ref(retPtr, _ret);
  1990          return A.H.TRUE;
  1991        } catch (err: any) {
  1992          A.store.Ref(errPtr, err);
  1993          return A.H.FALSE;
  1994        }
  1995      },
  1996      "has_GetURL": (): heap.Ref<boolean> => {
  1997        if (WEBEXT?.runtime && "getURL" in WEBEXT?.runtime) {
  1998          return A.H.TRUE;
  1999        }
  2000        return A.H.FALSE;
  2001      },
  2002      "func_GetURL": (fn: Pointer): void => {
  2003        A.store.Ref(fn, WEBEXT.runtime.getURL);
  2004      },
  2005      "call_GetURL": (retPtr: Pointer, path: heap.Ref<object>): void => {
  2006        const _ret = WEBEXT.runtime.getURL(A.H.get<object>(path));
  2007        A.store.Ref(retPtr, _ret);
  2008      },
  2009      "try_GetURL": (retPtr: Pointer, errPtr: Pointer, path: heap.Ref<object>): heap.Ref<boolean> => {
  2010        try {
  2011          const _ret = WEBEXT.runtime.getURL(A.H.get<object>(path));
  2012          A.store.Ref(retPtr, _ret);
  2013          return A.H.TRUE;
  2014        } catch (err: any) {
  2015          A.store.Ref(errPtr, err);
  2016          return A.H.FALSE;
  2017        }
  2018      },
  2019      "get_Id": (retPtr: Pointer): heap.Ref<boolean> => {
  2020        if (WEBEXT?.runtime && "id" in WEBEXT?.runtime) {
  2021          const val = WEBEXT.runtime.id;
  2022          A.store.Ref(retPtr, val);
  2023          return A.H.TRUE;
  2024        }
  2025  
  2026        return A.H.FALSE;
  2027      },
  2028      "set_Id": (val: heap.Ref<object>): heap.Ref<boolean> => {
  2029        return Reflect.set(WEBEXT.runtime, "id", A.H.get<object>(val), WEBEXT.runtime) ? A.H.TRUE : A.H.FALSE;
  2030      },
  2031      "get_LastError": (retPtr: Pointer): heap.Ref<boolean> => {
  2032        if (WEBEXT?.runtime && "lastError" in WEBEXT?.runtime) {
  2033          const val = WEBEXT.runtime.lastError;
  2034          if (typeof val === "undefined") {
  2035            A.store.Bool(retPtr + 4, false);
  2036            A.store.Ref(retPtr + 0, undefined);
  2037          } else {
  2038            A.store.Bool(retPtr + 4, true);
  2039            A.store.Ref(retPtr + 0, val["message"]);
  2040          }
  2041          return A.H.TRUE;
  2042        }
  2043  
  2044        return A.H.FALSE;
  2045      },
  2046      "set_LastError": (val: Pointer): heap.Ref<boolean> => {
  2047        const val_ffi = {};
  2048  
  2049        val_ffi["message"] = A.load.Ref(val + 0, undefined);
  2050        return Reflect.set(WEBEXT.runtime, "lastError", val_ffi, WEBEXT.runtime) ? A.H.TRUE : A.H.FALSE;
  2051      },
  2052      "has_OnBrowserUpdateAvailable": (): heap.Ref<boolean> => {
  2053        if (WEBEXT?.runtime?.onBrowserUpdateAvailable && "addListener" in WEBEXT?.runtime?.onBrowserUpdateAvailable) {
  2054          return A.H.TRUE;
  2055        }
  2056        return A.H.FALSE;
  2057      },
  2058      "func_OnBrowserUpdateAvailable": (fn: Pointer): void => {
  2059        A.store.Ref(fn, WEBEXT.runtime.onBrowserUpdateAvailable.addListener);
  2060      },
  2061      "call_OnBrowserUpdateAvailable": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2062        const _ret = WEBEXT.runtime.onBrowserUpdateAvailable.addListener(A.H.get<object>(callback));
  2063      },
  2064      "try_OnBrowserUpdateAvailable": (
  2065        retPtr: Pointer,
  2066        errPtr: Pointer,
  2067        callback: heap.Ref<object>
  2068      ): heap.Ref<boolean> => {
  2069        try {
  2070          const _ret = WEBEXT.runtime.onBrowserUpdateAvailable.addListener(A.H.get<object>(callback));
  2071          return A.H.TRUE;
  2072        } catch (err: any) {
  2073          A.store.Ref(errPtr, err);
  2074          return A.H.FALSE;
  2075        }
  2076      },
  2077      "has_OffBrowserUpdateAvailable": (): heap.Ref<boolean> => {
  2078        if (WEBEXT?.runtime?.onBrowserUpdateAvailable && "removeListener" in WEBEXT?.runtime?.onBrowserUpdateAvailable) {
  2079          return A.H.TRUE;
  2080        }
  2081        return A.H.FALSE;
  2082      },
  2083      "func_OffBrowserUpdateAvailable": (fn: Pointer): void => {
  2084        A.store.Ref(fn, WEBEXT.runtime.onBrowserUpdateAvailable.removeListener);
  2085      },
  2086      "call_OffBrowserUpdateAvailable": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2087        const _ret = WEBEXT.runtime.onBrowserUpdateAvailable.removeListener(A.H.get<object>(callback));
  2088      },
  2089      "try_OffBrowserUpdateAvailable": (
  2090        retPtr: Pointer,
  2091        errPtr: Pointer,
  2092        callback: heap.Ref<object>
  2093      ): heap.Ref<boolean> => {
  2094        try {
  2095          const _ret = WEBEXT.runtime.onBrowserUpdateAvailable.removeListener(A.H.get<object>(callback));
  2096          return A.H.TRUE;
  2097        } catch (err: any) {
  2098          A.store.Ref(errPtr, err);
  2099          return A.H.FALSE;
  2100        }
  2101      },
  2102      "has_HasOnBrowserUpdateAvailable": (): heap.Ref<boolean> => {
  2103        if (WEBEXT?.runtime?.onBrowserUpdateAvailable && "hasListener" in WEBEXT?.runtime?.onBrowserUpdateAvailable) {
  2104          return A.H.TRUE;
  2105        }
  2106        return A.H.FALSE;
  2107      },
  2108      "func_HasOnBrowserUpdateAvailable": (fn: Pointer): void => {
  2109        A.store.Ref(fn, WEBEXT.runtime.onBrowserUpdateAvailable.hasListener);
  2110      },
  2111      "call_HasOnBrowserUpdateAvailable": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2112        const _ret = WEBEXT.runtime.onBrowserUpdateAvailable.hasListener(A.H.get<object>(callback));
  2113        A.store.Bool(retPtr, _ret);
  2114      },
  2115      "try_HasOnBrowserUpdateAvailable": (
  2116        retPtr: Pointer,
  2117        errPtr: Pointer,
  2118        callback: heap.Ref<object>
  2119      ): heap.Ref<boolean> => {
  2120        try {
  2121          const _ret = WEBEXT.runtime.onBrowserUpdateAvailable.hasListener(A.H.get<object>(callback));
  2122          A.store.Bool(retPtr, _ret);
  2123          return A.H.TRUE;
  2124        } catch (err: any) {
  2125          A.store.Ref(errPtr, err);
  2126          return A.H.FALSE;
  2127        }
  2128      },
  2129      "has_OnConnect": (): heap.Ref<boolean> => {
  2130        if (WEBEXT?.runtime?.onConnect && "addListener" in WEBEXT?.runtime?.onConnect) {
  2131          return A.H.TRUE;
  2132        }
  2133        return A.H.FALSE;
  2134      },
  2135      "func_OnConnect": (fn: Pointer): void => {
  2136        A.store.Ref(fn, WEBEXT.runtime.onConnect.addListener);
  2137      },
  2138      "call_OnConnect": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2139        const _ret = WEBEXT.runtime.onConnect.addListener(A.H.get<object>(callback));
  2140      },
  2141      "try_OnConnect": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => {
  2142        try {
  2143          const _ret = WEBEXT.runtime.onConnect.addListener(A.H.get<object>(callback));
  2144          return A.H.TRUE;
  2145        } catch (err: any) {
  2146          A.store.Ref(errPtr, err);
  2147          return A.H.FALSE;
  2148        }
  2149      },
  2150      "has_OffConnect": (): heap.Ref<boolean> => {
  2151        if (WEBEXT?.runtime?.onConnect && "removeListener" in WEBEXT?.runtime?.onConnect) {
  2152          return A.H.TRUE;
  2153        }
  2154        return A.H.FALSE;
  2155      },
  2156      "func_OffConnect": (fn: Pointer): void => {
  2157        A.store.Ref(fn, WEBEXT.runtime.onConnect.removeListener);
  2158      },
  2159      "call_OffConnect": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2160        const _ret = WEBEXT.runtime.onConnect.removeListener(A.H.get<object>(callback));
  2161      },
  2162      "try_OffConnect": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => {
  2163        try {
  2164          const _ret = WEBEXT.runtime.onConnect.removeListener(A.H.get<object>(callback));
  2165          return A.H.TRUE;
  2166        } catch (err: any) {
  2167          A.store.Ref(errPtr, err);
  2168          return A.H.FALSE;
  2169        }
  2170      },
  2171      "has_HasOnConnect": (): heap.Ref<boolean> => {
  2172        if (WEBEXT?.runtime?.onConnect && "hasListener" in WEBEXT?.runtime?.onConnect) {
  2173          return A.H.TRUE;
  2174        }
  2175        return A.H.FALSE;
  2176      },
  2177      "func_HasOnConnect": (fn: Pointer): void => {
  2178        A.store.Ref(fn, WEBEXT.runtime.onConnect.hasListener);
  2179      },
  2180      "call_HasOnConnect": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2181        const _ret = WEBEXT.runtime.onConnect.hasListener(A.H.get<object>(callback));
  2182        A.store.Bool(retPtr, _ret);
  2183      },
  2184      "try_HasOnConnect": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => {
  2185        try {
  2186          const _ret = WEBEXT.runtime.onConnect.hasListener(A.H.get<object>(callback));
  2187          A.store.Bool(retPtr, _ret);
  2188          return A.H.TRUE;
  2189        } catch (err: any) {
  2190          A.store.Ref(errPtr, err);
  2191          return A.H.FALSE;
  2192        }
  2193      },
  2194      "has_OnConnectExternal": (): heap.Ref<boolean> => {
  2195        if (WEBEXT?.runtime?.onConnectExternal && "addListener" in WEBEXT?.runtime?.onConnectExternal) {
  2196          return A.H.TRUE;
  2197        }
  2198        return A.H.FALSE;
  2199      },
  2200      "func_OnConnectExternal": (fn: Pointer): void => {
  2201        A.store.Ref(fn, WEBEXT.runtime.onConnectExternal.addListener);
  2202      },
  2203      "call_OnConnectExternal": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2204        const _ret = WEBEXT.runtime.onConnectExternal.addListener(A.H.get<object>(callback));
  2205      },
  2206      "try_OnConnectExternal": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => {
  2207        try {
  2208          const _ret = WEBEXT.runtime.onConnectExternal.addListener(A.H.get<object>(callback));
  2209          return A.H.TRUE;
  2210        } catch (err: any) {
  2211          A.store.Ref(errPtr, err);
  2212          return A.H.FALSE;
  2213        }
  2214      },
  2215      "has_OffConnectExternal": (): heap.Ref<boolean> => {
  2216        if (WEBEXT?.runtime?.onConnectExternal && "removeListener" in WEBEXT?.runtime?.onConnectExternal) {
  2217          return A.H.TRUE;
  2218        }
  2219        return A.H.FALSE;
  2220      },
  2221      "func_OffConnectExternal": (fn: Pointer): void => {
  2222        A.store.Ref(fn, WEBEXT.runtime.onConnectExternal.removeListener);
  2223      },
  2224      "call_OffConnectExternal": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2225        const _ret = WEBEXT.runtime.onConnectExternal.removeListener(A.H.get<object>(callback));
  2226      },
  2227      "try_OffConnectExternal": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => {
  2228        try {
  2229          const _ret = WEBEXT.runtime.onConnectExternal.removeListener(A.H.get<object>(callback));
  2230          return A.H.TRUE;
  2231        } catch (err: any) {
  2232          A.store.Ref(errPtr, err);
  2233          return A.H.FALSE;
  2234        }
  2235      },
  2236      "has_HasOnConnectExternal": (): heap.Ref<boolean> => {
  2237        if (WEBEXT?.runtime?.onConnectExternal && "hasListener" in WEBEXT?.runtime?.onConnectExternal) {
  2238          return A.H.TRUE;
  2239        }
  2240        return A.H.FALSE;
  2241      },
  2242      "func_HasOnConnectExternal": (fn: Pointer): void => {
  2243        A.store.Ref(fn, WEBEXT.runtime.onConnectExternal.hasListener);
  2244      },
  2245      "call_HasOnConnectExternal": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2246        const _ret = WEBEXT.runtime.onConnectExternal.hasListener(A.H.get<object>(callback));
  2247        A.store.Bool(retPtr, _ret);
  2248      },
  2249      "try_HasOnConnectExternal": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => {
  2250        try {
  2251          const _ret = WEBEXT.runtime.onConnectExternal.hasListener(A.H.get<object>(callback));
  2252          A.store.Bool(retPtr, _ret);
  2253          return A.H.TRUE;
  2254        } catch (err: any) {
  2255          A.store.Ref(errPtr, err);
  2256          return A.H.FALSE;
  2257        }
  2258      },
  2259      "has_OnConnectNative": (): heap.Ref<boolean> => {
  2260        if (WEBEXT?.runtime?.onConnectNative && "addListener" in WEBEXT?.runtime?.onConnectNative) {
  2261          return A.H.TRUE;
  2262        }
  2263        return A.H.FALSE;
  2264      },
  2265      "func_OnConnectNative": (fn: Pointer): void => {
  2266        A.store.Ref(fn, WEBEXT.runtime.onConnectNative.addListener);
  2267      },
  2268      "call_OnConnectNative": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2269        const _ret = WEBEXT.runtime.onConnectNative.addListener(A.H.get<object>(callback));
  2270      },
  2271      "try_OnConnectNative": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => {
  2272        try {
  2273          const _ret = WEBEXT.runtime.onConnectNative.addListener(A.H.get<object>(callback));
  2274          return A.H.TRUE;
  2275        } catch (err: any) {
  2276          A.store.Ref(errPtr, err);
  2277          return A.H.FALSE;
  2278        }
  2279      },
  2280      "has_OffConnectNative": (): heap.Ref<boolean> => {
  2281        if (WEBEXT?.runtime?.onConnectNative && "removeListener" in WEBEXT?.runtime?.onConnectNative) {
  2282          return A.H.TRUE;
  2283        }
  2284        return A.H.FALSE;
  2285      },
  2286      "func_OffConnectNative": (fn: Pointer): void => {
  2287        A.store.Ref(fn, WEBEXT.runtime.onConnectNative.removeListener);
  2288      },
  2289      "call_OffConnectNative": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2290        const _ret = WEBEXT.runtime.onConnectNative.removeListener(A.H.get<object>(callback));
  2291      },
  2292      "try_OffConnectNative": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => {
  2293        try {
  2294          const _ret = WEBEXT.runtime.onConnectNative.removeListener(A.H.get<object>(callback));
  2295          return A.H.TRUE;
  2296        } catch (err: any) {
  2297          A.store.Ref(errPtr, err);
  2298          return A.H.FALSE;
  2299        }
  2300      },
  2301      "has_HasOnConnectNative": (): heap.Ref<boolean> => {
  2302        if (WEBEXT?.runtime?.onConnectNative && "hasListener" in WEBEXT?.runtime?.onConnectNative) {
  2303          return A.H.TRUE;
  2304        }
  2305        return A.H.FALSE;
  2306      },
  2307      "func_HasOnConnectNative": (fn: Pointer): void => {
  2308        A.store.Ref(fn, WEBEXT.runtime.onConnectNative.hasListener);
  2309      },
  2310      "call_HasOnConnectNative": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2311        const _ret = WEBEXT.runtime.onConnectNative.hasListener(A.H.get<object>(callback));
  2312        A.store.Bool(retPtr, _ret);
  2313      },
  2314      "try_HasOnConnectNative": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => {
  2315        try {
  2316          const _ret = WEBEXT.runtime.onConnectNative.hasListener(A.H.get<object>(callback));
  2317          A.store.Bool(retPtr, _ret);
  2318          return A.H.TRUE;
  2319        } catch (err: any) {
  2320          A.store.Ref(errPtr, err);
  2321          return A.H.FALSE;
  2322        }
  2323      },
  2324      "has_OnInstalled": (): heap.Ref<boolean> => {
  2325        if (WEBEXT?.runtime?.onInstalled && "addListener" in WEBEXT?.runtime?.onInstalled) {
  2326          return A.H.TRUE;
  2327        }
  2328        return A.H.FALSE;
  2329      },
  2330      "func_OnInstalled": (fn: Pointer): void => {
  2331        A.store.Ref(fn, WEBEXT.runtime.onInstalled.addListener);
  2332      },
  2333      "call_OnInstalled": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2334        const _ret = WEBEXT.runtime.onInstalled.addListener(A.H.get<object>(callback));
  2335      },
  2336      "try_OnInstalled": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => {
  2337        try {
  2338          const _ret = WEBEXT.runtime.onInstalled.addListener(A.H.get<object>(callback));
  2339          return A.H.TRUE;
  2340        } catch (err: any) {
  2341          A.store.Ref(errPtr, err);
  2342          return A.H.FALSE;
  2343        }
  2344      },
  2345      "has_OffInstalled": (): heap.Ref<boolean> => {
  2346        if (WEBEXT?.runtime?.onInstalled && "removeListener" in WEBEXT?.runtime?.onInstalled) {
  2347          return A.H.TRUE;
  2348        }
  2349        return A.H.FALSE;
  2350      },
  2351      "func_OffInstalled": (fn: Pointer): void => {
  2352        A.store.Ref(fn, WEBEXT.runtime.onInstalled.removeListener);
  2353      },
  2354      "call_OffInstalled": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2355        const _ret = WEBEXT.runtime.onInstalled.removeListener(A.H.get<object>(callback));
  2356      },
  2357      "try_OffInstalled": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => {
  2358        try {
  2359          const _ret = WEBEXT.runtime.onInstalled.removeListener(A.H.get<object>(callback));
  2360          return A.H.TRUE;
  2361        } catch (err: any) {
  2362          A.store.Ref(errPtr, err);
  2363          return A.H.FALSE;
  2364        }
  2365      },
  2366      "has_HasOnInstalled": (): heap.Ref<boolean> => {
  2367        if (WEBEXT?.runtime?.onInstalled && "hasListener" in WEBEXT?.runtime?.onInstalled) {
  2368          return A.H.TRUE;
  2369        }
  2370        return A.H.FALSE;
  2371      },
  2372      "func_HasOnInstalled": (fn: Pointer): void => {
  2373        A.store.Ref(fn, WEBEXT.runtime.onInstalled.hasListener);
  2374      },
  2375      "call_HasOnInstalled": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2376        const _ret = WEBEXT.runtime.onInstalled.hasListener(A.H.get<object>(callback));
  2377        A.store.Bool(retPtr, _ret);
  2378      },
  2379      "try_HasOnInstalled": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => {
  2380        try {
  2381          const _ret = WEBEXT.runtime.onInstalled.hasListener(A.H.get<object>(callback));
  2382          A.store.Bool(retPtr, _ret);
  2383          return A.H.TRUE;
  2384        } catch (err: any) {
  2385          A.store.Ref(errPtr, err);
  2386          return A.H.FALSE;
  2387        }
  2388      },
  2389      "has_OnMessage": (): heap.Ref<boolean> => {
  2390        if (WEBEXT?.runtime?.onMessage && "addListener" in WEBEXT?.runtime?.onMessage) {
  2391          return A.H.TRUE;
  2392        }
  2393        return A.H.FALSE;
  2394      },
  2395      "func_OnMessage": (fn: Pointer): void => {
  2396        A.store.Ref(fn, WEBEXT.runtime.onMessage.addListener);
  2397      },
  2398      "call_OnMessage": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2399        const _ret = WEBEXT.runtime.onMessage.addListener(A.H.get<object>(callback));
  2400      },
  2401      "try_OnMessage": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => {
  2402        try {
  2403          const _ret = WEBEXT.runtime.onMessage.addListener(A.H.get<object>(callback));
  2404          return A.H.TRUE;
  2405        } catch (err: any) {
  2406          A.store.Ref(errPtr, err);
  2407          return A.H.FALSE;
  2408        }
  2409      },
  2410      "has_OffMessage": (): heap.Ref<boolean> => {
  2411        if (WEBEXT?.runtime?.onMessage && "removeListener" in WEBEXT?.runtime?.onMessage) {
  2412          return A.H.TRUE;
  2413        }
  2414        return A.H.FALSE;
  2415      },
  2416      "func_OffMessage": (fn: Pointer): void => {
  2417        A.store.Ref(fn, WEBEXT.runtime.onMessage.removeListener);
  2418      },
  2419      "call_OffMessage": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2420        const _ret = WEBEXT.runtime.onMessage.removeListener(A.H.get<object>(callback));
  2421      },
  2422      "try_OffMessage": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => {
  2423        try {
  2424          const _ret = WEBEXT.runtime.onMessage.removeListener(A.H.get<object>(callback));
  2425          return A.H.TRUE;
  2426        } catch (err: any) {
  2427          A.store.Ref(errPtr, err);
  2428          return A.H.FALSE;
  2429        }
  2430      },
  2431      "has_HasOnMessage": (): heap.Ref<boolean> => {
  2432        if (WEBEXT?.runtime?.onMessage && "hasListener" in WEBEXT?.runtime?.onMessage) {
  2433          return A.H.TRUE;
  2434        }
  2435        return A.H.FALSE;
  2436      },
  2437      "func_HasOnMessage": (fn: Pointer): void => {
  2438        A.store.Ref(fn, WEBEXT.runtime.onMessage.hasListener);
  2439      },
  2440      "call_HasOnMessage": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2441        const _ret = WEBEXT.runtime.onMessage.hasListener(A.H.get<object>(callback));
  2442        A.store.Bool(retPtr, _ret);
  2443      },
  2444      "try_HasOnMessage": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => {
  2445        try {
  2446          const _ret = WEBEXT.runtime.onMessage.hasListener(A.H.get<object>(callback));
  2447          A.store.Bool(retPtr, _ret);
  2448          return A.H.TRUE;
  2449        } catch (err: any) {
  2450          A.store.Ref(errPtr, err);
  2451          return A.H.FALSE;
  2452        }
  2453      },
  2454      "has_OnMessageExternal": (): heap.Ref<boolean> => {
  2455        if (WEBEXT?.runtime?.onMessageExternal && "addListener" in WEBEXT?.runtime?.onMessageExternal) {
  2456          return A.H.TRUE;
  2457        }
  2458        return A.H.FALSE;
  2459      },
  2460      "func_OnMessageExternal": (fn: Pointer): void => {
  2461        A.store.Ref(fn, WEBEXT.runtime.onMessageExternal.addListener);
  2462      },
  2463      "call_OnMessageExternal": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2464        const _ret = WEBEXT.runtime.onMessageExternal.addListener(A.H.get<object>(callback));
  2465      },
  2466      "try_OnMessageExternal": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => {
  2467        try {
  2468          const _ret = WEBEXT.runtime.onMessageExternal.addListener(A.H.get<object>(callback));
  2469          return A.H.TRUE;
  2470        } catch (err: any) {
  2471          A.store.Ref(errPtr, err);
  2472          return A.H.FALSE;
  2473        }
  2474      },
  2475      "has_OffMessageExternal": (): heap.Ref<boolean> => {
  2476        if (WEBEXT?.runtime?.onMessageExternal && "removeListener" in WEBEXT?.runtime?.onMessageExternal) {
  2477          return A.H.TRUE;
  2478        }
  2479        return A.H.FALSE;
  2480      },
  2481      "func_OffMessageExternal": (fn: Pointer): void => {
  2482        A.store.Ref(fn, WEBEXT.runtime.onMessageExternal.removeListener);
  2483      },
  2484      "call_OffMessageExternal": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2485        const _ret = WEBEXT.runtime.onMessageExternal.removeListener(A.H.get<object>(callback));
  2486      },
  2487      "try_OffMessageExternal": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => {
  2488        try {
  2489          const _ret = WEBEXT.runtime.onMessageExternal.removeListener(A.H.get<object>(callback));
  2490          return A.H.TRUE;
  2491        } catch (err: any) {
  2492          A.store.Ref(errPtr, err);
  2493          return A.H.FALSE;
  2494        }
  2495      },
  2496      "has_HasOnMessageExternal": (): heap.Ref<boolean> => {
  2497        if (WEBEXT?.runtime?.onMessageExternal && "hasListener" in WEBEXT?.runtime?.onMessageExternal) {
  2498          return A.H.TRUE;
  2499        }
  2500        return A.H.FALSE;
  2501      },
  2502      "func_HasOnMessageExternal": (fn: Pointer): void => {
  2503        A.store.Ref(fn, WEBEXT.runtime.onMessageExternal.hasListener);
  2504      },
  2505      "call_HasOnMessageExternal": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2506        const _ret = WEBEXT.runtime.onMessageExternal.hasListener(A.H.get<object>(callback));
  2507        A.store.Bool(retPtr, _ret);
  2508      },
  2509      "try_HasOnMessageExternal": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => {
  2510        try {
  2511          const _ret = WEBEXT.runtime.onMessageExternal.hasListener(A.H.get<object>(callback));
  2512          A.store.Bool(retPtr, _ret);
  2513          return A.H.TRUE;
  2514        } catch (err: any) {
  2515          A.store.Ref(errPtr, err);
  2516          return A.H.FALSE;
  2517        }
  2518      },
  2519      "has_OnRestartRequired": (): heap.Ref<boolean> => {
  2520        if (WEBEXT?.runtime?.onRestartRequired && "addListener" in WEBEXT?.runtime?.onRestartRequired) {
  2521          return A.H.TRUE;
  2522        }
  2523        return A.H.FALSE;
  2524      },
  2525      "func_OnRestartRequired": (fn: Pointer): void => {
  2526        A.store.Ref(fn, WEBEXT.runtime.onRestartRequired.addListener);
  2527      },
  2528      "call_OnRestartRequired": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2529        const _ret = WEBEXT.runtime.onRestartRequired.addListener(A.H.get<object>(callback));
  2530      },
  2531      "try_OnRestartRequired": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => {
  2532        try {
  2533          const _ret = WEBEXT.runtime.onRestartRequired.addListener(A.H.get<object>(callback));
  2534          return A.H.TRUE;
  2535        } catch (err: any) {
  2536          A.store.Ref(errPtr, err);
  2537          return A.H.FALSE;
  2538        }
  2539      },
  2540      "has_OffRestartRequired": (): heap.Ref<boolean> => {
  2541        if (WEBEXT?.runtime?.onRestartRequired && "removeListener" in WEBEXT?.runtime?.onRestartRequired) {
  2542          return A.H.TRUE;
  2543        }
  2544        return A.H.FALSE;
  2545      },
  2546      "func_OffRestartRequired": (fn: Pointer): void => {
  2547        A.store.Ref(fn, WEBEXT.runtime.onRestartRequired.removeListener);
  2548      },
  2549      "call_OffRestartRequired": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2550        const _ret = WEBEXT.runtime.onRestartRequired.removeListener(A.H.get<object>(callback));
  2551      },
  2552      "try_OffRestartRequired": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => {
  2553        try {
  2554          const _ret = WEBEXT.runtime.onRestartRequired.removeListener(A.H.get<object>(callback));
  2555          return A.H.TRUE;
  2556        } catch (err: any) {
  2557          A.store.Ref(errPtr, err);
  2558          return A.H.FALSE;
  2559        }
  2560      },
  2561      "has_HasOnRestartRequired": (): heap.Ref<boolean> => {
  2562        if (WEBEXT?.runtime?.onRestartRequired && "hasListener" in WEBEXT?.runtime?.onRestartRequired) {
  2563          return A.H.TRUE;
  2564        }
  2565        return A.H.FALSE;
  2566      },
  2567      "func_HasOnRestartRequired": (fn: Pointer): void => {
  2568        A.store.Ref(fn, WEBEXT.runtime.onRestartRequired.hasListener);
  2569      },
  2570      "call_HasOnRestartRequired": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2571        const _ret = WEBEXT.runtime.onRestartRequired.hasListener(A.H.get<object>(callback));
  2572        A.store.Bool(retPtr, _ret);
  2573      },
  2574      "try_HasOnRestartRequired": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => {
  2575        try {
  2576          const _ret = WEBEXT.runtime.onRestartRequired.hasListener(A.H.get<object>(callback));
  2577          A.store.Bool(retPtr, _ret);
  2578          return A.H.TRUE;
  2579        } catch (err: any) {
  2580          A.store.Ref(errPtr, err);
  2581          return A.H.FALSE;
  2582        }
  2583      },
  2584      "has_OnStartup": (): heap.Ref<boolean> => {
  2585        if (WEBEXT?.runtime?.onStartup && "addListener" in WEBEXT?.runtime?.onStartup) {
  2586          return A.H.TRUE;
  2587        }
  2588        return A.H.FALSE;
  2589      },
  2590      "func_OnStartup": (fn: Pointer): void => {
  2591        A.store.Ref(fn, WEBEXT.runtime.onStartup.addListener);
  2592      },
  2593      "call_OnStartup": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2594        const _ret = WEBEXT.runtime.onStartup.addListener(A.H.get<object>(callback));
  2595      },
  2596      "try_OnStartup": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => {
  2597        try {
  2598          const _ret = WEBEXT.runtime.onStartup.addListener(A.H.get<object>(callback));
  2599          return A.H.TRUE;
  2600        } catch (err: any) {
  2601          A.store.Ref(errPtr, err);
  2602          return A.H.FALSE;
  2603        }
  2604      },
  2605      "has_OffStartup": (): heap.Ref<boolean> => {
  2606        if (WEBEXT?.runtime?.onStartup && "removeListener" in WEBEXT?.runtime?.onStartup) {
  2607          return A.H.TRUE;
  2608        }
  2609        return A.H.FALSE;
  2610      },
  2611      "func_OffStartup": (fn: Pointer): void => {
  2612        A.store.Ref(fn, WEBEXT.runtime.onStartup.removeListener);
  2613      },
  2614      "call_OffStartup": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2615        const _ret = WEBEXT.runtime.onStartup.removeListener(A.H.get<object>(callback));
  2616      },
  2617      "try_OffStartup": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => {
  2618        try {
  2619          const _ret = WEBEXT.runtime.onStartup.removeListener(A.H.get<object>(callback));
  2620          return A.H.TRUE;
  2621        } catch (err: any) {
  2622          A.store.Ref(errPtr, err);
  2623          return A.H.FALSE;
  2624        }
  2625      },
  2626      "has_HasOnStartup": (): heap.Ref<boolean> => {
  2627        if (WEBEXT?.runtime?.onStartup && "hasListener" in WEBEXT?.runtime?.onStartup) {
  2628          return A.H.TRUE;
  2629        }
  2630        return A.H.FALSE;
  2631      },
  2632      "func_HasOnStartup": (fn: Pointer): void => {
  2633        A.store.Ref(fn, WEBEXT.runtime.onStartup.hasListener);
  2634      },
  2635      "call_HasOnStartup": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2636        const _ret = WEBEXT.runtime.onStartup.hasListener(A.H.get<object>(callback));
  2637        A.store.Bool(retPtr, _ret);
  2638      },
  2639      "try_HasOnStartup": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => {
  2640        try {
  2641          const _ret = WEBEXT.runtime.onStartup.hasListener(A.H.get<object>(callback));
  2642          A.store.Bool(retPtr, _ret);
  2643          return A.H.TRUE;
  2644        } catch (err: any) {
  2645          A.store.Ref(errPtr, err);
  2646          return A.H.FALSE;
  2647        }
  2648      },
  2649      "has_OnSuspend": (): heap.Ref<boolean> => {
  2650        if (WEBEXT?.runtime?.onSuspend && "addListener" in WEBEXT?.runtime?.onSuspend) {
  2651          return A.H.TRUE;
  2652        }
  2653        return A.H.FALSE;
  2654      },
  2655      "func_OnSuspend": (fn: Pointer): void => {
  2656        A.store.Ref(fn, WEBEXT.runtime.onSuspend.addListener);
  2657      },
  2658      "call_OnSuspend": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2659        const _ret = WEBEXT.runtime.onSuspend.addListener(A.H.get<object>(callback));
  2660      },
  2661      "try_OnSuspend": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => {
  2662        try {
  2663          const _ret = WEBEXT.runtime.onSuspend.addListener(A.H.get<object>(callback));
  2664          return A.H.TRUE;
  2665        } catch (err: any) {
  2666          A.store.Ref(errPtr, err);
  2667          return A.H.FALSE;
  2668        }
  2669      },
  2670      "has_OffSuspend": (): heap.Ref<boolean> => {
  2671        if (WEBEXT?.runtime?.onSuspend && "removeListener" in WEBEXT?.runtime?.onSuspend) {
  2672          return A.H.TRUE;
  2673        }
  2674        return A.H.FALSE;
  2675      },
  2676      "func_OffSuspend": (fn: Pointer): void => {
  2677        A.store.Ref(fn, WEBEXT.runtime.onSuspend.removeListener);
  2678      },
  2679      "call_OffSuspend": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2680        const _ret = WEBEXT.runtime.onSuspend.removeListener(A.H.get<object>(callback));
  2681      },
  2682      "try_OffSuspend": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => {
  2683        try {
  2684          const _ret = WEBEXT.runtime.onSuspend.removeListener(A.H.get<object>(callback));
  2685          return A.H.TRUE;
  2686        } catch (err: any) {
  2687          A.store.Ref(errPtr, err);
  2688          return A.H.FALSE;
  2689        }
  2690      },
  2691      "has_HasOnSuspend": (): heap.Ref<boolean> => {
  2692        if (WEBEXT?.runtime?.onSuspend && "hasListener" in WEBEXT?.runtime?.onSuspend) {
  2693          return A.H.TRUE;
  2694        }
  2695        return A.H.FALSE;
  2696      },
  2697      "func_HasOnSuspend": (fn: Pointer): void => {
  2698        A.store.Ref(fn, WEBEXT.runtime.onSuspend.hasListener);
  2699      },
  2700      "call_HasOnSuspend": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2701        const _ret = WEBEXT.runtime.onSuspend.hasListener(A.H.get<object>(callback));
  2702        A.store.Bool(retPtr, _ret);
  2703      },
  2704      "try_HasOnSuspend": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => {
  2705        try {
  2706          const _ret = WEBEXT.runtime.onSuspend.hasListener(A.H.get<object>(callback));
  2707          A.store.Bool(retPtr, _ret);
  2708          return A.H.TRUE;
  2709        } catch (err: any) {
  2710          A.store.Ref(errPtr, err);
  2711          return A.H.FALSE;
  2712        }
  2713      },
  2714      "has_OnSuspendCanceled": (): heap.Ref<boolean> => {
  2715        if (WEBEXT?.runtime?.onSuspendCanceled && "addListener" in WEBEXT?.runtime?.onSuspendCanceled) {
  2716          return A.H.TRUE;
  2717        }
  2718        return A.H.FALSE;
  2719      },
  2720      "func_OnSuspendCanceled": (fn: Pointer): void => {
  2721        A.store.Ref(fn, WEBEXT.runtime.onSuspendCanceled.addListener);
  2722      },
  2723      "call_OnSuspendCanceled": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2724        const _ret = WEBEXT.runtime.onSuspendCanceled.addListener(A.H.get<object>(callback));
  2725      },
  2726      "try_OnSuspendCanceled": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => {
  2727        try {
  2728          const _ret = WEBEXT.runtime.onSuspendCanceled.addListener(A.H.get<object>(callback));
  2729          return A.H.TRUE;
  2730        } catch (err: any) {
  2731          A.store.Ref(errPtr, err);
  2732          return A.H.FALSE;
  2733        }
  2734      },
  2735      "has_OffSuspendCanceled": (): heap.Ref<boolean> => {
  2736        if (WEBEXT?.runtime?.onSuspendCanceled && "removeListener" in WEBEXT?.runtime?.onSuspendCanceled) {
  2737          return A.H.TRUE;
  2738        }
  2739        return A.H.FALSE;
  2740      },
  2741      "func_OffSuspendCanceled": (fn: Pointer): void => {
  2742        A.store.Ref(fn, WEBEXT.runtime.onSuspendCanceled.removeListener);
  2743      },
  2744      "call_OffSuspendCanceled": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2745        const _ret = WEBEXT.runtime.onSuspendCanceled.removeListener(A.H.get<object>(callback));
  2746      },
  2747      "try_OffSuspendCanceled": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => {
  2748        try {
  2749          const _ret = WEBEXT.runtime.onSuspendCanceled.removeListener(A.H.get<object>(callback));
  2750          return A.H.TRUE;
  2751        } catch (err: any) {
  2752          A.store.Ref(errPtr, err);
  2753          return A.H.FALSE;
  2754        }
  2755      },
  2756      "has_HasOnSuspendCanceled": (): heap.Ref<boolean> => {
  2757        if (WEBEXT?.runtime?.onSuspendCanceled && "hasListener" in WEBEXT?.runtime?.onSuspendCanceled) {
  2758          return A.H.TRUE;
  2759        }
  2760        return A.H.FALSE;
  2761      },
  2762      "func_HasOnSuspendCanceled": (fn: Pointer): void => {
  2763        A.store.Ref(fn, WEBEXT.runtime.onSuspendCanceled.hasListener);
  2764      },
  2765      "call_HasOnSuspendCanceled": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2766        const _ret = WEBEXT.runtime.onSuspendCanceled.hasListener(A.H.get<object>(callback));
  2767        A.store.Bool(retPtr, _ret);
  2768      },
  2769      "try_HasOnSuspendCanceled": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => {
  2770        try {
  2771          const _ret = WEBEXT.runtime.onSuspendCanceled.hasListener(A.H.get<object>(callback));
  2772          A.store.Bool(retPtr, _ret);
  2773          return A.H.TRUE;
  2774        } catch (err: any) {
  2775          A.store.Ref(errPtr, err);
  2776          return A.H.FALSE;
  2777        }
  2778      },
  2779      "has_OnUpdateAvailable": (): heap.Ref<boolean> => {
  2780        if (WEBEXT?.runtime?.onUpdateAvailable && "addListener" in WEBEXT?.runtime?.onUpdateAvailable) {
  2781          return A.H.TRUE;
  2782        }
  2783        return A.H.FALSE;
  2784      },
  2785      "func_OnUpdateAvailable": (fn: Pointer): void => {
  2786        A.store.Ref(fn, WEBEXT.runtime.onUpdateAvailable.addListener);
  2787      },
  2788      "call_OnUpdateAvailable": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2789        const _ret = WEBEXT.runtime.onUpdateAvailable.addListener(A.H.get<object>(callback));
  2790      },
  2791      "try_OnUpdateAvailable": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => {
  2792        try {
  2793          const _ret = WEBEXT.runtime.onUpdateAvailable.addListener(A.H.get<object>(callback));
  2794          return A.H.TRUE;
  2795        } catch (err: any) {
  2796          A.store.Ref(errPtr, err);
  2797          return A.H.FALSE;
  2798        }
  2799      },
  2800      "has_OffUpdateAvailable": (): heap.Ref<boolean> => {
  2801        if (WEBEXT?.runtime?.onUpdateAvailable && "removeListener" in WEBEXT?.runtime?.onUpdateAvailable) {
  2802          return A.H.TRUE;
  2803        }
  2804        return A.H.FALSE;
  2805      },
  2806      "func_OffUpdateAvailable": (fn: Pointer): void => {
  2807        A.store.Ref(fn, WEBEXT.runtime.onUpdateAvailable.removeListener);
  2808      },
  2809      "call_OffUpdateAvailable": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2810        const _ret = WEBEXT.runtime.onUpdateAvailable.removeListener(A.H.get<object>(callback));
  2811      },
  2812      "try_OffUpdateAvailable": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => {
  2813        try {
  2814          const _ret = WEBEXT.runtime.onUpdateAvailable.removeListener(A.H.get<object>(callback));
  2815          return A.H.TRUE;
  2816        } catch (err: any) {
  2817          A.store.Ref(errPtr, err);
  2818          return A.H.FALSE;
  2819        }
  2820      },
  2821      "has_HasOnUpdateAvailable": (): heap.Ref<boolean> => {
  2822        if (WEBEXT?.runtime?.onUpdateAvailable && "hasListener" in WEBEXT?.runtime?.onUpdateAvailable) {
  2823          return A.H.TRUE;
  2824        }
  2825        return A.H.FALSE;
  2826      },
  2827      "func_HasOnUpdateAvailable": (fn: Pointer): void => {
  2828        A.store.Ref(fn, WEBEXT.runtime.onUpdateAvailable.hasListener);
  2829      },
  2830      "call_HasOnUpdateAvailable": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2831        const _ret = WEBEXT.runtime.onUpdateAvailable.hasListener(A.H.get<object>(callback));
  2832        A.store.Bool(retPtr, _ret);
  2833      },
  2834      "try_HasOnUpdateAvailable": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => {
  2835        try {
  2836          const _ret = WEBEXT.runtime.onUpdateAvailable.hasListener(A.H.get<object>(callback));
  2837          A.store.Bool(retPtr, _ret);
  2838          return A.H.TRUE;
  2839        } catch (err: any) {
  2840          A.store.Ref(errPtr, err);
  2841          return A.H.FALSE;
  2842        }
  2843      },
  2844      "has_OnUserScriptConnect": (): heap.Ref<boolean> => {
  2845        if (WEBEXT?.runtime?.onUserScriptConnect && "addListener" in WEBEXT?.runtime?.onUserScriptConnect) {
  2846          return A.H.TRUE;
  2847        }
  2848        return A.H.FALSE;
  2849      },
  2850      "func_OnUserScriptConnect": (fn: Pointer): void => {
  2851        A.store.Ref(fn, WEBEXT.runtime.onUserScriptConnect.addListener);
  2852      },
  2853      "call_OnUserScriptConnect": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2854        const _ret = WEBEXT.runtime.onUserScriptConnect.addListener(A.H.get<object>(callback));
  2855      },
  2856      "try_OnUserScriptConnect": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => {
  2857        try {
  2858          const _ret = WEBEXT.runtime.onUserScriptConnect.addListener(A.H.get<object>(callback));
  2859          return A.H.TRUE;
  2860        } catch (err: any) {
  2861          A.store.Ref(errPtr, err);
  2862          return A.H.FALSE;
  2863        }
  2864      },
  2865      "has_OffUserScriptConnect": (): heap.Ref<boolean> => {
  2866        if (WEBEXT?.runtime?.onUserScriptConnect && "removeListener" in WEBEXT?.runtime?.onUserScriptConnect) {
  2867          return A.H.TRUE;
  2868        }
  2869        return A.H.FALSE;
  2870      },
  2871      "func_OffUserScriptConnect": (fn: Pointer): void => {
  2872        A.store.Ref(fn, WEBEXT.runtime.onUserScriptConnect.removeListener);
  2873      },
  2874      "call_OffUserScriptConnect": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2875        const _ret = WEBEXT.runtime.onUserScriptConnect.removeListener(A.H.get<object>(callback));
  2876      },
  2877      "try_OffUserScriptConnect": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => {
  2878        try {
  2879          const _ret = WEBEXT.runtime.onUserScriptConnect.removeListener(A.H.get<object>(callback));
  2880          return A.H.TRUE;
  2881        } catch (err: any) {
  2882          A.store.Ref(errPtr, err);
  2883          return A.H.FALSE;
  2884        }
  2885      },
  2886      "has_HasOnUserScriptConnect": (): heap.Ref<boolean> => {
  2887        if (WEBEXT?.runtime?.onUserScriptConnect && "hasListener" in WEBEXT?.runtime?.onUserScriptConnect) {
  2888          return A.H.TRUE;
  2889        }
  2890        return A.H.FALSE;
  2891      },
  2892      "func_HasOnUserScriptConnect": (fn: Pointer): void => {
  2893        A.store.Ref(fn, WEBEXT.runtime.onUserScriptConnect.hasListener);
  2894      },
  2895      "call_HasOnUserScriptConnect": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2896        const _ret = WEBEXT.runtime.onUserScriptConnect.hasListener(A.H.get<object>(callback));
  2897        A.store.Bool(retPtr, _ret);
  2898      },
  2899      "try_HasOnUserScriptConnect": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => {
  2900        try {
  2901          const _ret = WEBEXT.runtime.onUserScriptConnect.hasListener(A.H.get<object>(callback));
  2902          A.store.Bool(retPtr, _ret);
  2903          return A.H.TRUE;
  2904        } catch (err: any) {
  2905          A.store.Ref(errPtr, err);
  2906          return A.H.FALSE;
  2907        }
  2908      },
  2909      "has_OnUserScriptMessage": (): heap.Ref<boolean> => {
  2910        if (WEBEXT?.runtime?.onUserScriptMessage && "addListener" in WEBEXT?.runtime?.onUserScriptMessage) {
  2911          return A.H.TRUE;
  2912        }
  2913        return A.H.FALSE;
  2914      },
  2915      "func_OnUserScriptMessage": (fn: Pointer): void => {
  2916        A.store.Ref(fn, WEBEXT.runtime.onUserScriptMessage.addListener);
  2917      },
  2918      "call_OnUserScriptMessage": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2919        const _ret = WEBEXT.runtime.onUserScriptMessage.addListener(A.H.get<object>(callback));
  2920      },
  2921      "try_OnUserScriptMessage": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => {
  2922        try {
  2923          const _ret = WEBEXT.runtime.onUserScriptMessage.addListener(A.H.get<object>(callback));
  2924          return A.H.TRUE;
  2925        } catch (err: any) {
  2926          A.store.Ref(errPtr, err);
  2927          return A.H.FALSE;
  2928        }
  2929      },
  2930      "has_OffUserScriptMessage": (): heap.Ref<boolean> => {
  2931        if (WEBEXT?.runtime?.onUserScriptMessage && "removeListener" in WEBEXT?.runtime?.onUserScriptMessage) {
  2932          return A.H.TRUE;
  2933        }
  2934        return A.H.FALSE;
  2935      },
  2936      "func_OffUserScriptMessage": (fn: Pointer): void => {
  2937        A.store.Ref(fn, WEBEXT.runtime.onUserScriptMessage.removeListener);
  2938      },
  2939      "call_OffUserScriptMessage": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2940        const _ret = WEBEXT.runtime.onUserScriptMessage.removeListener(A.H.get<object>(callback));
  2941      },
  2942      "try_OffUserScriptMessage": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => {
  2943        try {
  2944          const _ret = WEBEXT.runtime.onUserScriptMessage.removeListener(A.H.get<object>(callback));
  2945          return A.H.TRUE;
  2946        } catch (err: any) {
  2947          A.store.Ref(errPtr, err);
  2948          return A.H.FALSE;
  2949        }
  2950      },
  2951      "has_HasOnUserScriptMessage": (): heap.Ref<boolean> => {
  2952        if (WEBEXT?.runtime?.onUserScriptMessage && "hasListener" in WEBEXT?.runtime?.onUserScriptMessage) {
  2953          return A.H.TRUE;
  2954        }
  2955        return A.H.FALSE;
  2956      },
  2957      "func_HasOnUserScriptMessage": (fn: Pointer): void => {
  2958        A.store.Ref(fn, WEBEXT.runtime.onUserScriptMessage.hasListener);
  2959      },
  2960      "call_HasOnUserScriptMessage": (retPtr: Pointer, callback: heap.Ref<object>): void => {
  2961        const _ret = WEBEXT.runtime.onUserScriptMessage.hasListener(A.H.get<object>(callback));
  2962        A.store.Bool(retPtr, _ret);
  2963      },
  2964      "try_HasOnUserScriptMessage": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => {
  2965        try {
  2966          const _ret = WEBEXT.runtime.onUserScriptMessage.hasListener(A.H.get<object>(callback));
  2967          A.store.Bool(retPtr, _ret);
  2968          return A.H.TRUE;
  2969        } catch (err: any) {
  2970          A.store.Ref(errPtr, err);
  2971          return A.H.FALSE;
  2972        }
  2973      },
  2974      "has_OpenOptionsPage": (): heap.Ref<boolean> => {
  2975        if (WEBEXT?.runtime && "openOptionsPage" in WEBEXT?.runtime) {
  2976          return A.H.TRUE;
  2977        }
  2978        return A.H.FALSE;
  2979      },
  2980      "func_OpenOptionsPage": (fn: Pointer): void => {
  2981        A.store.Ref(fn, WEBEXT.runtime.openOptionsPage);
  2982      },
  2983      "call_OpenOptionsPage": (retPtr: Pointer): void => {
  2984        const _ret = WEBEXT.runtime.openOptionsPage();
  2985        A.store.Ref(retPtr, _ret);
  2986      },
  2987      "try_OpenOptionsPage": (retPtr: Pointer, errPtr: Pointer): heap.Ref<boolean> => {
  2988        try {
  2989          const _ret = WEBEXT.runtime.openOptionsPage();
  2990          A.store.Ref(retPtr, _ret);
  2991          return A.H.TRUE;
  2992        } catch (err: any) {
  2993          A.store.Ref(errPtr, err);
  2994          return A.H.FALSE;
  2995        }
  2996      },
  2997      "has_Reload": (): heap.Ref<boolean> => {
  2998        if (WEBEXT?.runtime && "reload" in WEBEXT?.runtime) {
  2999          return A.H.TRUE;
  3000        }
  3001        return A.H.FALSE;
  3002      },
  3003      "func_Reload": (fn: Pointer): void => {
  3004        A.store.Ref(fn, WEBEXT.runtime.reload);
  3005      },
  3006      "call_Reload": (retPtr: Pointer): void => {
  3007        const _ret = WEBEXT.runtime.reload();
  3008      },
  3009      "try_Reload": (retPtr: Pointer, errPtr: Pointer): heap.Ref<boolean> => {
  3010        try {
  3011          const _ret = WEBEXT.runtime.reload();
  3012          return A.H.TRUE;
  3013        } catch (err: any) {
  3014          A.store.Ref(errPtr, err);
  3015          return A.H.FALSE;
  3016        }
  3017      },
  3018      "has_RequestUpdateCheck": (): heap.Ref<boolean> => {
  3019        if (WEBEXT?.runtime && "requestUpdateCheck" in WEBEXT?.runtime) {
  3020          return A.H.TRUE;
  3021        }
  3022        return A.H.FALSE;
  3023      },
  3024      "func_RequestUpdateCheck": (fn: Pointer): void => {
  3025        A.store.Ref(fn, WEBEXT.runtime.requestUpdateCheck);
  3026      },
  3027      "call_RequestUpdateCheck": (retPtr: Pointer): void => {
  3028        const _ret = WEBEXT.runtime.requestUpdateCheck();
  3029        A.store.Ref(retPtr, _ret);
  3030      },
  3031      "try_RequestUpdateCheck": (retPtr: Pointer, errPtr: Pointer): heap.Ref<boolean> => {
  3032        try {
  3033          const _ret = WEBEXT.runtime.requestUpdateCheck();
  3034          A.store.Ref(retPtr, _ret);
  3035          return A.H.TRUE;
  3036        } catch (err: any) {
  3037          A.store.Ref(errPtr, err);
  3038          return A.H.FALSE;
  3039        }
  3040      },
  3041      "has_Restart": (): heap.Ref<boolean> => {
  3042        if (WEBEXT?.runtime && "restart" in WEBEXT?.runtime) {
  3043          return A.H.TRUE;
  3044        }
  3045        return A.H.FALSE;
  3046      },
  3047      "func_Restart": (fn: Pointer): void => {
  3048        A.store.Ref(fn, WEBEXT.runtime.restart);
  3049      },
  3050      "call_Restart": (retPtr: Pointer): void => {
  3051        const _ret = WEBEXT.runtime.restart();
  3052      },
  3053      "try_Restart": (retPtr: Pointer, errPtr: Pointer): heap.Ref<boolean> => {
  3054        try {
  3055          const _ret = WEBEXT.runtime.restart();
  3056          return A.H.TRUE;
  3057        } catch (err: any) {
  3058          A.store.Ref(errPtr, err);
  3059          return A.H.FALSE;
  3060        }
  3061      },
  3062      "has_RestartAfterDelay": (): heap.Ref<boolean> => {
  3063        if (WEBEXT?.runtime && "restartAfterDelay" in WEBEXT?.runtime) {
  3064          return A.H.TRUE;
  3065        }
  3066        return A.H.FALSE;
  3067      },
  3068      "func_RestartAfterDelay": (fn: Pointer): void => {
  3069        A.store.Ref(fn, WEBEXT.runtime.restartAfterDelay);
  3070      },
  3071      "call_RestartAfterDelay": (retPtr: Pointer, seconds: number): void => {
  3072        const _ret = WEBEXT.runtime.restartAfterDelay(seconds);
  3073        A.store.Ref(retPtr, _ret);
  3074      },
  3075      "try_RestartAfterDelay": (retPtr: Pointer, errPtr: Pointer, seconds: number): heap.Ref<boolean> => {
  3076        try {
  3077          const _ret = WEBEXT.runtime.restartAfterDelay(seconds);
  3078          A.store.Ref(retPtr, _ret);
  3079          return A.H.TRUE;
  3080        } catch (err: any) {
  3081          A.store.Ref(errPtr, err);
  3082          return A.H.FALSE;
  3083        }
  3084      },
  3085      "has_SendMessage": (): heap.Ref<boolean> => {
  3086        if (WEBEXT?.runtime && "sendMessage" in WEBEXT?.runtime) {
  3087          return A.H.TRUE;
  3088        }
  3089        return A.H.FALSE;
  3090      },
  3091      "func_SendMessage": (fn: Pointer): void => {
  3092        A.store.Ref(fn, WEBEXT.runtime.sendMessage);
  3093      },
  3094      "call_SendMessage": (
  3095        retPtr: Pointer,
  3096        extensionId: heap.Ref<object>,
  3097        message: heap.Ref<object>,
  3098        options: Pointer
  3099      ): void => {
  3100        const options_ffi = {};
  3101  
  3102        if (A.load.Bool(options + 1)) {
  3103          options_ffi["includeTlsChannelId"] = A.load.Bool(options + 0);
  3104        }
  3105  
  3106        const _ret = WEBEXT.runtime.sendMessage(A.H.get<object>(extensionId), A.H.get<object>(message), options_ffi);
  3107        A.store.Ref(retPtr, _ret);
  3108      },
  3109      "try_SendMessage": (
  3110        retPtr: Pointer,
  3111        errPtr: Pointer,
  3112        extensionId: heap.Ref<object>,
  3113        message: heap.Ref<object>,
  3114        options: Pointer
  3115      ): heap.Ref<boolean> => {
  3116        try {
  3117          const options_ffi = {};
  3118  
  3119          if (A.load.Bool(options + 1)) {
  3120            options_ffi["includeTlsChannelId"] = A.load.Bool(options + 0);
  3121          }
  3122  
  3123          const _ret = WEBEXT.runtime.sendMessage(A.H.get<object>(extensionId), A.H.get<object>(message), options_ffi);
  3124          A.store.Ref(retPtr, _ret);
  3125          return A.H.TRUE;
  3126        } catch (err: any) {
  3127          A.store.Ref(errPtr, err);
  3128          return A.H.FALSE;
  3129        }
  3130      },
  3131      "has_SendNativeMessage": (): heap.Ref<boolean> => {
  3132        if (WEBEXT?.runtime && "sendNativeMessage" in WEBEXT?.runtime) {
  3133          return A.H.TRUE;
  3134        }
  3135        return A.H.FALSE;
  3136      },
  3137      "func_SendNativeMessage": (fn: Pointer): void => {
  3138        A.store.Ref(fn, WEBEXT.runtime.sendNativeMessage);
  3139      },
  3140      "call_SendNativeMessage": (retPtr: Pointer, application: heap.Ref<object>, message: heap.Ref<object>): void => {
  3141        const _ret = WEBEXT.runtime.sendNativeMessage(A.H.get<object>(application), A.H.get<object>(message));
  3142        A.store.Ref(retPtr, _ret);
  3143      },
  3144      "try_SendNativeMessage": (
  3145        retPtr: Pointer,
  3146        errPtr: Pointer,
  3147        application: heap.Ref<object>,
  3148        message: heap.Ref<object>
  3149      ): heap.Ref<boolean> => {
  3150        try {
  3151          const _ret = WEBEXT.runtime.sendNativeMessage(A.H.get<object>(application), A.H.get<object>(message));
  3152          A.store.Ref(retPtr, _ret);
  3153          return A.H.TRUE;
  3154        } catch (err: any) {
  3155          A.store.Ref(errPtr, err);
  3156          return A.H.FALSE;
  3157        }
  3158      },
  3159      "has_SetUninstallURL": (): heap.Ref<boolean> => {
  3160        if (WEBEXT?.runtime && "setUninstallURL" in WEBEXT?.runtime) {
  3161          return A.H.TRUE;
  3162        }
  3163        return A.H.FALSE;
  3164      },
  3165      "func_SetUninstallURL": (fn: Pointer): void => {
  3166        A.store.Ref(fn, WEBEXT.runtime.setUninstallURL);
  3167      },
  3168      "call_SetUninstallURL": (retPtr: Pointer, url: heap.Ref<object>): void => {
  3169        const _ret = WEBEXT.runtime.setUninstallURL(A.H.get<object>(url));
  3170        A.store.Ref(retPtr, _ret);
  3171      },
  3172      "try_SetUninstallURL": (retPtr: Pointer, errPtr: Pointer, url: heap.Ref<object>): heap.Ref<boolean> => {
  3173        try {
  3174          const _ret = WEBEXT.runtime.setUninstallURL(A.H.get<object>(url));
  3175          A.store.Ref(retPtr, _ret);
  3176          return A.H.TRUE;
  3177        } catch (err: any) {
  3178          A.store.Ref(errPtr, err);
  3179          return A.H.FALSE;
  3180        }
  3181      },
  3182    };
  3183  });