From c0a324468765cb49c87e3ea4175b7070c3dff5e0 Mon Sep 17 00:00:00 2001 From: Boris Zbarsky Date: Wed, 18 Nov 2015 18:26:07 -0500 Subject: [PATCH] Bug 1225392 part 1. Expose JSAPI for getting %IteratorPrototype%. r=efaust --- js/src/jsapi.cpp | 8 ++++++++ js/src/jsapi.h | 7 +++++++ 2 files changed, 15 insertions(+) diff --git a/js/src/jsapi.cpp b/js/src/jsapi.cpp index 6799334eafcf..25e8257d3a7b 100644 --- a/js/src/jsapi.cpp +++ b/js/src/jsapi.cpp @@ -1220,6 +1220,14 @@ JS_GetErrorPrototype(JSContext* cx) return GlobalObject::getOrCreateCustomErrorPrototype(cx, global, JSEXN_ERR); } +JS_PUBLIC_API(JSObject*) +JS_GetIteratorPrototype(JSContext* cx) +{ + CHECK_REQUEST(cx); + Rooted global(cx, cx->global()); + return GlobalObject::getOrCreateIteratorPrototype(cx, global); +} + JS_PUBLIC_API(JSObject*) JS_GetGlobalForObject(JSContext* cx, JSObject* obj) { diff --git a/js/src/jsapi.h b/js/src/jsapi.h index 113926771563..2fa1b9f370c1 100644 --- a/js/src/jsapi.h +++ b/js/src/jsapi.h @@ -1503,6 +1503,13 @@ JS_GetArrayPrototype(JSContext* cx, JS::HandleObject forObj); extern JS_PUBLIC_API(JSObject*) JS_GetErrorPrototype(JSContext* cx); +/** + * Returns the %IteratorPrototype% object that all built-in iterator prototype + * chains go through for the global object of the current compartment of cx. + */ +extern JS_PUBLIC_API(JSObject*) +JS_GetIteratorPrototype(JSContext* cx); + extern JS_PUBLIC_API(JSObject*) JS_GetGlobalForObject(JSContext* cx, JSObject* obj);