| Index: src/globals.h | 
| diff --git a/src/globals.h b/src/globals.h | 
| index cc31be148751020bde24818b425ea3fb99097a22..55bb57289d9018f35d9bf78037230556bae7ea50 100644 | 
| --- a/src/globals.h | 
| +++ b/src/globals.h | 
| @@ -756,6 +756,41 @@ enum MinusZeroMode { | 
| FAIL_ON_MINUS_ZERO | 
| }; | 
|  | 
| + | 
| +enum FunctionKind { | 
| +  kNormalFunction = 0, | 
| +  kArrowFunction = 1, | 
| +  kGeneratorFunction = 2, | 
| +  kConciseMethod = 4 | 
| +}; | 
| + | 
| + | 
| +inline bool IsValidFunctionKind(FunctionKind kind) { | 
| +  // At the moment these are mutually exclusive but in the future that wont be | 
| +  // the case since ES6 allows concise generator methods. | 
| +  return kind == FunctionKind::kNormalFunction || | 
| +         kind == FunctionKind::kArrowFunction || | 
| +         kind == FunctionKind::kGeneratorFunction || | 
| +         kind == FunctionKind::kConciseMethod; | 
| +} | 
| + | 
| + | 
| +inline bool IsArrowFunction(FunctionKind kind) { | 
| +  DCHECK(IsValidFunctionKind(kind)); | 
| +  return kind & FunctionKind::kArrowFunction; | 
| +} | 
| + | 
| + | 
| +inline bool IsGeneratorFunction(FunctionKind kind) { | 
| +  DCHECK(IsValidFunctionKind(kind)); | 
| +  return kind & FunctionKind::kGeneratorFunction; | 
| +} | 
| + | 
| + | 
| +inline bool IsConciseMethod(FunctionKind kind) { | 
| +  DCHECK(IsValidFunctionKind(kind)); | 
| +  return kind & FunctionKind::kConciseMethod; | 
| +} | 
| } }  // namespace v8::internal | 
|  | 
| namespace i = v8::internal; | 
|  |