2007-03-22 10:30:00 -07:00
|
|
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
|
|
|
*
|
2012-05-21 04:12:37 -07:00
|
|
|
* 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/. */
|
2007-03-22 10:30:00 -07:00
|
|
|
|
|
|
|
#include "nsISupports.idl"
|
|
|
|
|
|
|
|
[ptr] native JSContext(JSContext);
|
|
|
|
|
|
|
|
[uuid(c67d8270-3189-11d3-9885-006008962422)]
|
|
|
|
interface nsIJSContextStack : nsISupports
|
|
|
|
{
|
2012-08-22 08:56:38 -07:00
|
|
|
readonly attribute int32_t count;
|
2007-03-22 10:30:00 -07:00
|
|
|
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();
|
|
|
|
};
|
|
|
|
|
2012-05-05 02:00:05 -07:00
|
|
|
[uuid(59ad3ff1-a2d3-4c11-b825-098bff3c3e15)]
|
2007-03-22 10:30:00 -07:00
|
|
|
interface nsIThreadJSContextStack : nsIJSContextStack
|
|
|
|
{
|
|
|
|
/* inherits methods of nsIJSContextStack */
|
2012-05-05 02:00:05 -07:00
|
|
|
[notxpcom,nostdcall] JSContext getSafeJSContext();
|
2007-03-22 10:30:00 -07:00
|
|
|
};
|