mirror of
https://github.com/roytam1/palemoon27.git
synced 2026-05-26 14:30:27 +00:00
c5cfe29d26
- Bug 1136925 part 1. Stop passing a parent to JS_CloneObject (02806f3cb) - Bug 1136925 part 2. Stop passing a parent to Wrapper::New. (1d51cbd34) - Bug 1136925 part 3. Stop passing parents to js::NewProxyObject. (dc13db8da) - Bug 1136925 part 4. Stop passing parents to ProxyObject::New. (e2d30e340) - Bug 1136980 part 1. Get rid of JS_SetParent uses in DOM/XPConnect. (5cad9c256) - Bug 1136980 part 2. Remove JS_SetParent, even though we have a CLOSED TREE (96cf58c85) - Bug 1113369, part 1 - Introduce JS::ObjectOpResult and use it in js::StandardDefineProperty. (15663c476) - Bug 1113369, part 1½ - Avoid regressing error messages by adding obj to the ObjectOpResult methods that could throw a TypeError. (e063faf08) - Bug 1113369, part 2 - js::SetArrayLength ObjectOpResult support. (cf8326017) - Bug 1113369, part 3 - [[DefineOwnProperty]] ObjectOpResult support. (e16605a90) - Bug 1113369, part 4 - [[Set]] ObjectOpResult support. (6f94604d4) - Bug 1113369, part 5 - [[Delete]] ObjectOpResult support. (6feef9887) - const override -> const MOZ_OVERRIDE (fa0ff1802) - adapt pointer style writing to better accept patch (1a6627036) - Bug 1113369, part 6 - [[PreventExtensions]] ObjectOpResult support. (5fa15660e) - pointer style before applying patches (06380aade) - const override -> const MOZ_OVERRIDE (fe5f9f3c0) - Bug 1113369, part 7 - [[SetPrototypeOf]] ObjectOpResult support. (67e8d1987) and some follow-up patches: bug1140737, bug1141154, bug1141329
156 lines
2.4 KiB
Plaintext
156 lines
2.4 KiB
Plaintext
/* -*- 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;
|
|
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 ReturnException
|
|
{
|
|
JSVariant exn;
|
|
};
|
|
|
|
struct ReturnObjectOpResult
|
|
{
|
|
uint32_t code;
|
|
};
|
|
|
|
union ReturnStatus
|
|
{
|
|
ReturnSuccess;
|
|
ReturnStopIteration;
|
|
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;
|
|
};
|
|
|
|
}
|
|
}
|