Bug 1605200 - Use JSFunction::isClassConstructor shorthand. r=jandem

Also add this helper to FunctionBox for consistency.

Depends on D57852

Differential Revision: https://phabricator.services.mozilla.com/D57853

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Ted Campbell 2019-12-20 07:37:01 +00:00
parent 2af69dc1e4
commit 06b029fdb1
6 changed files with 11 additions and 12 deletions

View File

@ -1065,7 +1065,7 @@ static bool CompileLazyFunctionImpl(JSContext* cx, Handle<LazyScript*> lazy,
}
FieldInitializers fieldInitializers = FieldInitializers::Invalid();
if (fun->kind() == FunctionFlags::FunctionKind::ClassConstructor) {
if (fun->isClassConstructor()) {
fieldInitializers = lazy->getFieldInitializers();
}

View File

@ -2499,8 +2499,7 @@ bool BytecodeEmitter::emitFunctionScript(FunctionNode* funNode,
AutoFrontendTraceLog traceLog(cx, TraceLogger_BytecodeEmission,
parser->errorReporter(), funbox);
MOZ_ASSERT((fieldInitializers_.valid) ==
(funbox->kind() == FunctionFlags::FunctionKind::ClassConstructor));
MOZ_ASSERT(fieldInitializers_.valid == funbox->isClassConstructor());
setScriptStartOffsetIfUnset(paramsBody->pn_pos.begin);
@ -5614,7 +5613,7 @@ MOZ_NEVER_INLINE bool BytecodeEmitter::emitFunction(
FunctionBox* funbox = funNode->funbox();
MOZ_ASSERT((classContentsIfConstructor != nullptr) ==
(funbox->kind() == FunctionFlags::FunctionKind::ClassConstructor));
funbox->isClassConstructor());
// [stack]
@ -8341,7 +8340,7 @@ const FieldInitializers& BytecodeEmitter::findFieldInitializersForCall() {
for (BytecodeEmitter* current = this; current; current = current->parent) {
if (current->sc->isFunctionBox()) {
FunctionBox* box = current->sc->asFunctionBox();
if (box->kind() == FunctionFlags::FunctionKind::ClassConstructor) {
if (box->isClassConstructor()) {
const FieldInitializers& fieldInitializers =
current->getFieldInitializers();
MOZ_ASSERT(fieldInitializers.valid);
@ -8353,7 +8352,7 @@ const FieldInitializers& BytecodeEmitter::findFieldInitializersForCall() {
for (AbstractScopeIter si(innermostScope()); si; si++) {
if (si.abstractScope().is<FunctionScope>()) {
JSFunction* fun = si.abstractScope().canonicalFunction();
if (fun->kind() == FunctionFlags::FunctionKind::ClassConstructor) {
if (fun->isClassConstructor()) {
const FieldInitializers& fieldInitializers =
fun->baseScript()->getFieldInitializers();
MOZ_ASSERT(fieldInitializers.valid);

View File

@ -482,7 +482,7 @@ bool FunctionScriptEmitter::prepareForBody() {
}
}
if (funbox_->kind() == FunctionFlags::FunctionKind::ClassConstructor) {
if (funbox_->isClassConstructor()) {
if (!funbox_->isDerivedClassConstructor()) {
if (!bce_->emitInitializeInstanceFields()) {
// [stack]

View File

@ -518,9 +518,8 @@ bool ParseContext::declareFunctionThis(const UsedNameTracker& usedNames,
if (canSkipLazyClosedOverBindings) {
declareThis = funbox->function()->baseScript()->functionHasThisBinding();
} else {
declareThis =
hasUsedFunctionSpecialName(usedNames, dotThis) ||
funbox->kind() == FunctionFlags::FunctionKind::ClassConstructor;
declareThis = hasUsedFunctionSpecialName(usedNames, dotThis) ||
funbox->isClassConstructor();
}
if (declareThis) {

View File

@ -587,6 +587,7 @@ class FunctionBox : public ObjectBox, public SharedContext {
bool isGetter() const { return flags_.isGetter(); }
bool isSetter() const { return flags_.isSetter(); }
bool isMethod() const { return flags_.isMethod(); }
bool isClassConstructor() const { return flags_.isClassConstructor(); }
bool isInterpreted() const { return flags_.isInterpreted(); }
void setIsInterpreted(bool interpreted) {

View File

@ -336,7 +336,7 @@ static XDRResult XDRRelazificationInfo(XDRState<mode>* xdr, HandleFunction fun,
MOZ_ASSERT(toStringEnd == lazy->toStringEnd());
MOZ_ASSERT(lineno == lazy->lineno());
MOZ_ASSERT(column == lazy->column());
if (fun->kind() == FunctionFlags::FunctionKind::ClassConstructor) {
if (fun->isClassConstructor()) {
numFieldInitializers =
(uint32_t)lazy->getFieldInitializers().numFieldInitializers;
} else {
@ -1341,7 +1341,7 @@ XDRResult js::XDRLazyScript(XDRState<mode>* xdr, HandleScope enclosingScope,
lineno = lazy->lineno();
column = lazy->column();
immutableFlags = lazy->immutableFlags();
if (fun->kind() == FunctionFlags::FunctionKind::ClassConstructor) {
if (fun->isClassConstructor()) {
numFieldInitializers =
(uint32_t)lazy->getFieldInitializers().numFieldInitializers;
} else {