diff -r 000000000000 -r 6474c204b198 js/ipc/JavaScriptTypes.ipdlh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/js/ipc/JavaScriptTypes.ipdlh Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,91 @@ +/* -*- 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; +}; + +union JSVariant +{ + void_t; /* |undefined| */ + nsString; /* StringValue(x) */ + uint64_t; /* ID that maps to a JSObject (cpow on parent, original on child). */ + double; /* NumberValue(x) */ + bool; /* BooleanValue(x) */ + JSIID; /* XPC nsIID */ +}; + +struct ReturnSuccess +{ +}; + +struct ReturnStopIteration +{ +}; + +struct ReturnException +{ + JSVariant exn; +}; + +union ReturnStatus +{ + ReturnSuccess; + ReturnStopIteration; + ReturnException; +}; + +union JSParam +{ + void_t; /* value is strictly an xpc out param */ + JSVariant; /* actual value to pass through */ +}; + +struct PPropertyDescriptor +{ + uint64_t objId; + 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 - js_GetterOnlyPropertyStub (setter only) + // 3 - Unknown + uint64_t getter; + uint64_t setter; +}; + +struct CpowEntry +{ + nsString name; + JSVariant value; +}; + +} +}