JavaScriptCore:
Reviewed by Maciej.
- Implemented ref-counting of JSContexts by splitting into two datatypes:
JSGlobalContext, which you can create/retain/release, and JSContext, which
you can't.
Internally, you retain a JSGlobalContext/ExecState by retaining its
interpreter, which, in the case of a global ExecState, owns it.
- Also made ~Interpreter() protected to catch places where Interpreter
is manually deleted. (Can't make it private because some crazy fool
decided it would be a good idea to subclass Interpreter in other frameworks.
I pity da fool.)
* API/APICast.h:
(toJS): Added cast for new JSGlobalContext
* API/JSStringRef.h: Changed vague "you must" language to more specific
(but, ultimately, equally vague) "behavior is undefined if you don't"
language.
(KJS::Interpreter::Interpreter): Factored more common initialization into
init()
* kjs/interpreter.h:
(KJS::Interpreter::ref): new
(KJS::Interpreter::deref): new
(KJS::Interpreter::refCount): new
* kjs/testkjs.cpp:
(doIt): Ref-count the interpreter.
JavaScriptGlue:
Reviewed by Maciej.
- Updated JSInterpreter to work with Interpreter ref-counting in JavaScriptCore.
(JSInterpreter::JSInterpreter::~JSInterpreter): Now protected to catch
manual delete.
WebCore:
Reviewed by Maciej.
- Updated ScriptInterpreter to work with Interpreter ref-counting in
JavaScriptCore.
(KJS::ScriptInterpreter::~ScriptInterpreter): Now protected to catch
manual delete.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@15437
268f45cc-cd09-0410-ab3c-
d52691b4dbfc