forked from mirrors/gecko-dev
		
	 d4d6f8ed60
			
		
	
	
		d4d6f8ed60
		
	
	
	
	
		
			
			MozReview-Commit-ID: LaX5K1uPZo9 --HG-- extra : transplant_source : 7o%A6C%21%D1H1%C3%3Dn%E6%5E%B4%E5%D6%A3%21E%A6
		
			
				
	
	
		
			161 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			161 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| /* -*- 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;
 | |
| };
 | |
| 
 | |
| }
 | |
| }
 |