| Index: src/globals.h
 | 
| diff --git a/src/globals.h b/src/globals.h
 | 
| index c6ba010fc5ff0851e0de43e0776e59e912b38ca3..f39575ee4b00d0ef689b985e19129e2489783110 100644
 | 
| --- a/src/globals.h
 | 
| +++ b/src/globals.h
 | 
| @@ -771,12 +771,15 @@ enum MinusZeroMode {
 | 
|  enum Signedness { kSigned, kUnsigned };
 | 
|  
 | 
|  
 | 
| +// TODO(arv): We have 7 options so this will fit in 3 bits instead of 5.
 | 
|  enum FunctionKind {
 | 
|    kNormalFunction = 0,
 | 
|    kArrowFunction = 1,
 | 
|    kGeneratorFunction = 2,
 | 
|    kConciseMethod = 4,
 | 
| -  kConciseGeneratorMethod = kGeneratorFunction | kConciseMethod
 | 
| +  kConciseGeneratorMethod = kGeneratorFunction | kConciseMethod,
 | 
| +  kDefaultConstructor = 8,
 | 
| +  kDefaultConstructorCallSuper = 16
 | 
|  };
 | 
|  
 | 
|  
 | 
| @@ -785,7 +788,9 @@ inline bool IsValidFunctionKind(FunctionKind kind) {
 | 
|           kind == FunctionKind::kArrowFunction ||
 | 
|           kind == FunctionKind::kGeneratorFunction ||
 | 
|           kind == FunctionKind::kConciseMethod ||
 | 
| -         kind == FunctionKind::kConciseGeneratorMethod;
 | 
| +         kind == FunctionKind::kConciseGeneratorMethod ||
 | 
| +         kind == FunctionKind::kDefaultConstructor ||
 | 
| +         kind == FunctionKind::kDefaultConstructorCallSuper;
 | 
|  }
 | 
|  
 | 
|  
 | 
| @@ -805,6 +810,18 @@ inline bool IsConciseMethod(FunctionKind kind) {
 | 
|    DCHECK(IsValidFunctionKind(kind));
 | 
|    return kind & FunctionKind::kConciseMethod;
 | 
|  }
 | 
| +
 | 
| +
 | 
| +inline bool IsDefaultConstructor(FunctionKind kind) {
 | 
| +  DCHECK(IsValidFunctionKind(kind));
 | 
| +  return kind & FunctionKind::kDefaultConstructor;
 | 
| +}
 | 
| +
 | 
| +
 | 
| +inline bool IsDefaultConstructorCallSuper(FunctionKind kind) {
 | 
| +  DCHECK(IsValidFunctionKind(kind));
 | 
| +  return kind & FunctionKind::kDefaultConstructorCallSuper;
 | 
| +}
 | 
|  } }  // namespace v8::internal
 | 
|  
 | 
|  namespace i = v8::internal;
 | 
| 
 |