зеркало из https://github.com/mozilla/gecko-dev.git
Bug 944975: cleanup rename JSScript originalFunction to donorFunction (r=shu).
The motivation here is to distinguish the two kinds of methods: one that assumes the receiver is a clone versus another that assumes nothing about the receiver. I.e., something along the lines of: clone.originalFunction() == clone.donorFunction() nonclone.donorFunction() == null nonclone.originalFunction() == nonclone
This commit is contained in:
Родитель
2e24dda145
Коммит
ff17d0edab
|
@ -285,7 +285,7 @@ CanEnterBaselineJIT(JSContext *cx, HandleScript script, bool osr)
|
|||
if (script->isCallsiteClone()) {
|
||||
// Ensure the original function is compiled too, so that bailouts from
|
||||
// Ion code have a BaselineScript to resume into.
|
||||
RootedScript original(cx, script->originalFunction()->nonLazyScript());
|
||||
RootedScript original(cx, script->donorFunction()->nonLazyScript());
|
||||
JS_ASSERT(original != script);
|
||||
|
||||
if (!original->canBaselineCompile())
|
||||
|
|
|
@ -339,11 +339,11 @@ class JSFunction : public JSObject
|
|||
return u.i.s.script_;
|
||||
}
|
||||
|
||||
// Returns the non-callsited-clone version of this function. Use
|
||||
// when return-value can flow to arbitrary JS (see Bug 944975).
|
||||
// Returns non-callsited-clone version of this. Use when return
|
||||
// value can flow to arbitrary JS (see Bug 944975).
|
||||
JSFunction* originalFunction() {
|
||||
if (this->hasScript() && this->nonLazyScript()->isCallsiteClone()) {
|
||||
return this->nonLazyScript()->originalFunction();
|
||||
return this->nonLazyScript()->donorFunction();
|
||||
} else {
|
||||
return this;
|
||||
}
|
||||
|
|
|
@ -1273,7 +1273,10 @@ class JSScript : public js::gc::BarrieredCell<JSScript>
|
|||
*/
|
||||
inline void ensureNonLazyCanonicalFunction(JSContext *cx);
|
||||
|
||||
JSFunction *originalFunction() const;
|
||||
/*
|
||||
* Donor provided itself to callsite clone; null if this is non-clone.
|
||||
*/
|
||||
JSFunction *donorFunction() const;
|
||||
void setIsCallsiteClone(JSObject *fun);
|
||||
|
||||
JSFlatString *sourceData(JSContext *cx);
|
||||
|
|
|
@ -149,7 +149,7 @@ JSScript::principals()
|
|||
}
|
||||
|
||||
inline JSFunction *
|
||||
JSScript::originalFunction() const {
|
||||
JSScript::donorFunction() const {
|
||||
if (!isCallsiteClone())
|
||||
return nullptr;
|
||||
return &enclosingScopeOrOriginalFunction_->as<JSFunction>();
|
||||
|
|
Загрузка…
Ссылка в новой задаче