diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /js/ipc/JavaScriptTypes.ipdlh | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'js/ipc/JavaScriptTypes.ipdlh')
-rw-r--r-- | js/ipc/JavaScriptTypes.ipdlh | 161 |
1 files changed, 161 insertions, 0 deletions
diff --git a/js/ipc/JavaScriptTypes.ipdlh b/js/ipc/JavaScriptTypes.ipdlh new file mode 100644 index 000000000..5129fc304 --- /dev/null +++ b/js/ipc/JavaScriptTypes.ipdlh @@ -0,0 +1,161 @@ +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * vim: set ts=4 sw=4 et tw=80: + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +include DOMTypes; + +using struct mozilla::void_t from "ipc/IPCMessageUtils.h"; + +namespace mozilla { +namespace jsipc { + +struct JSIID +{ + uint32_t m0; + uint16_t m1; + uint16_t m2; + uint8_t m3_0; + uint8_t m3_1; + uint8_t m3_2; + uint8_t m3_3; + uint8_t m3_4; + uint8_t m3_5; + uint8_t m3_6; + uint8_t m3_7; +}; + +struct LocalObject +{ + uint64_t serializedId; +}; + +struct RemoteObject +{ + uint64_t serializedId; + bool isCallable; + bool isConstructor; + bool isDOMObject; + nsCString objectTag; +}; + +union ObjectVariant +{ + LocalObject; + RemoteObject; +}; + +struct WellKnownSymbol +{ + uint32_t which; +}; + +struct RegisteredSymbol +{ + nsString key; +}; + +union SymbolVariant +{ + WellKnownSymbol; + RegisteredSymbol; +}; + +struct UndefinedVariant {}; +struct NullVariant {}; + +union ObjectOrNullVariant +{ + ObjectVariant; + NullVariant; +}; + +union JSVariant +{ + UndefinedVariant; + NullVariant; + ObjectVariant; + SymbolVariant; + nsString; /* StringValue(x) */ + double; /* NumberValue(x) */ + bool; /* BooleanValue(x) */ + JSIID; /* XPC nsIID */ +}; + +union JSIDVariant +{ + SymbolVariant; + nsString; + int32_t; +}; + +struct ReturnSuccess +{ +}; + +struct ReturnStopIteration +{ +}; + +struct ReturnDeadCPOW +{ +}; + +struct ReturnException +{ + JSVariant exn; +}; + +struct ReturnObjectOpResult +{ + uint32_t code; +}; + +union ReturnStatus +{ + ReturnSuccess; + ReturnStopIteration; + ReturnDeadCPOW; + ReturnException; + ReturnObjectOpResult; +}; + +union JSParam +{ + void_t; /* value is strictly an xpc out param */ + JSVariant; /* actual value to pass through */ +}; + +union GetterSetter +{ + uint64_t; + ObjectVariant; +}; + +struct PPropertyDescriptor +{ + ObjectOrNullVariant obj; + uint32_t attrs; + JSVariant value; + + // How to interpret these values depends on whether JSPROP_GETTER/SETTER + // are set. If set, the corresponding value is a CPOW or 0 for NULL. + // Otherwise, the following table is used: + // + // 0 - NULL + // 1 - Default getter or setter. + // 2 - Unknown + GetterSetter getter; + GetterSetter setter; +}; + +struct CpowEntry +{ + nsString name; + JSVariant value; +}; + +} +} |