mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-22 01:35:35 +00:00
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:
parent
2af69dc1e4
commit
06b029fdb1
@ -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();
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
|
@ -482,7 +482,7 @@ bool FunctionScriptEmitter::prepareForBody() {
|
||||
}
|
||||
}
|
||||
|
||||
if (funbox_->kind() == FunctionFlags::FunctionKind::ClassConstructor) {
|
||||
if (funbox_->isClassConstructor()) {
|
||||
if (!funbox_->isDerivedClassConstructor()) {
|
||||
if (!bce_->emitInitializeInstanceFields()) {
|
||||
// [stack]
|
||||
|
@ -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) {
|
||||
|
@ -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) {
|
||||
|
@ -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 {
|
||||
|
Loading…
Reference in New Issue
Block a user