gecko-dev/js/xpconnect/idl/nsIJSContextStack.idl
2012-05-21 12:12:37 +01:00

52 lines
1.6 KiB
Plaintext

/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* 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 "nsISupports.idl"
[ptr] native JSContext(JSContext);
[uuid(c67d8270-3189-11d3-9885-006008962422)]
interface nsIJSContextStack : nsISupports
{
readonly attribute PRInt32 count;
JSContext peek();
JSContext pop();
void push(in JSContext cx);
};
[uuid(c7e6b7aa-fc12-4ca7-b140-98c38b698961)]
interface nsIJSContextStackIterator : nsISupports
{
/**
* Resets this iterator to the beginning of this thread's stack.
*/
void reset(in nsIJSContextStack stack);
/**
* Returns true if this iterator is at the end of its stack's contexts.
* @throws NS_ERROR_NOT_INITIALIZED If there has not been a previous call
* to reset.
*/
boolean done();
/**
* Returns the prev JSContext off of stack. Note that because we're
* iterating over a stack, this value would be the next popped value.
*
* @throws NS_ERROR_NOT_INITIALIZED If there has not been a previous call
* to reset.
* @throws NS_ERROR_NOT_AVAILABLE if already at the end.
*/
JSContext prev();
};
[uuid(59ad3ff1-a2d3-4c11-b825-098bff3c3e15)]
interface nsIThreadJSContextStack : nsIJSContextStack
{
/* inherits methods of nsIJSContextStack */
[notxpcom,nostdcall] JSContext getSafeJSContext();
};