mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1026188 - Allow embedders to save JS execution stacks. r=sfink
This commit is contained in:
parent
c9e5e16fc1
commit
ed7a44d51b
@ -880,10 +880,10 @@ static bool
|
||||
SaveStack(JSContext *cx, unsigned argc, jsval *vp)
|
||||
{
|
||||
CallArgs args = CallArgsFromVp(argc, vp);
|
||||
Rooted<SavedFrame*> frame(cx);
|
||||
if (!cx->compartment()->savedStacks().saveCurrentStack(cx, &frame))
|
||||
Rooted<JSObject*> stack(cx);
|
||||
if (!JS::CaptureCurrentStack(cx, &stack))
|
||||
return false;
|
||||
args.rval().setObject(*frame.get());
|
||||
args.rval().setObject(*stack);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -73,6 +73,7 @@
|
||||
#include "vm/NumericConversions.h"
|
||||
#include "vm/RegExpStatics.h"
|
||||
#include "vm/Runtime.h"
|
||||
#include "vm/SavedStacks.h"
|
||||
#include "vm/Shape.h"
|
||||
#include "vm/SharedArrayObject.h"
|
||||
#include "vm/StopIterationObject.h"
|
||||
@ -6559,3 +6560,14 @@ JS::SetOutOfMemoryCallback(JSRuntime *rt, OutOfMemoryCallback cb, void *data)
|
||||
rt->oomCallbackData = data;
|
||||
}
|
||||
|
||||
JS_PUBLIC_API(bool)
|
||||
JS::CaptureCurrentStack(JSContext *cx, JS::MutableHandleObject stackp)
|
||||
{
|
||||
JSCompartment *compartment = cx->compartment();
|
||||
JS_ASSERT(compartment);
|
||||
Rooted<SavedFrame *> frame(cx);
|
||||
if (!compartment->savedStacks().saveCurrentStack(cx, &frame))
|
||||
return false;
|
||||
stackp.set(frame.get());
|
||||
return true;
|
||||
}
|
||||
|
@ -5164,6 +5164,9 @@ typedef void
|
||||
extern JS_PUBLIC_API(void)
|
||||
SetOutOfMemoryCallback(JSRuntime *rt, OutOfMemoryCallback cb, void *data);
|
||||
|
||||
extern JS_PUBLIC_API(bool)
|
||||
CaptureCurrentStack(JSContext *cx, MutableHandleObject stackp);
|
||||
|
||||
} /* namespace JS */
|
||||
|
||||
#endif /* jsapi_h */
|
||||
|
Loading…
Reference in New Issue
Block a user