| Index: src/objects-inl.h
|
| diff --git a/src/objects-inl.h b/src/objects-inl.h
|
| index 700ae041cea4708833a419ec159145b042dd7ef2..6b20293072fd69784911f6a1e47625c6cb1c959f 100644
|
| --- a/src/objects-inl.h
|
| +++ b/src/objects-inl.h
|
| @@ -5240,6 +5240,8 @@ ACCESSORS(SharedFunctionInfo, script, Object, kScriptOffset)
|
| ACCESSORS(SharedFunctionInfo, debug_info, Object, kDebugInfoOffset)
|
| ACCESSORS(SharedFunctionInfo, inferred_name, String, kInferredNameOffset)
|
|
|
| +ACCESSORS(SharedFunctionInfo, asm_code, Code, kAsmCodeOffset)
|
| +
|
|
|
| SMI_ACCESSORS(FunctionTemplateInfo, length, kLengthOffset)
|
| BOOL_ACCESSORS(FunctionTemplateInfo, flag, hidden_prototype,
|
| @@ -5276,6 +5278,7 @@ BOOL_ACCESSORS(SharedFunctionInfo,
|
| has_duplicate_parameters,
|
| kHasDuplicateParameters)
|
| BOOL_ACCESSORS(SharedFunctionInfo, compiler_hints, asm_function, kIsAsmFunction)
|
| +BOOL_ACCESSORS(SharedFunctionInfo, compiler_hints, asm_module, kIsAsmModule)
|
| BOOL_ACCESSORS(SharedFunctionInfo, compiler_hints, deserialized, kDeserialized)
|
|
|
|
|
| @@ -5385,6 +5388,18 @@ LanguageMode SharedFunctionInfo::language_mode() {
|
| }
|
|
|
|
|
| +AsmMode SharedFunctionInfo::asm_mode() {
|
| + int hints = compiler_hints();
|
| + if (BooleanBit::get(hints, kIsAsmModule)) {
|
| + DCHECK(!BooleanBit::get(hints, kIsAsmFunction));
|
| + return ASM_MODULE;
|
| + } else if (BooleanBit::get(hints, kIsAsmFunction)) {
|
| + return ASM_FUNCTION;
|
| + }
|
| + return ASM_NO;
|
| +}
|
| +
|
| +
|
| void SharedFunctionInfo::set_language_mode(LanguageMode language_mode) {
|
| STATIC_ASSERT(LANGUAGE_END == 3);
|
| // We only allow language mode transitions that set the same language mode
|
| @@ -5402,6 +5417,18 @@ FunctionKind SharedFunctionInfo::kind() {
|
| }
|
|
|
|
|
| +void SharedFunctionInfo::set_asm_mode(AsmMode asm_mode) {
|
| + DCHECK(FLAG_asm || asm_mode == ASM_NO);
|
| + DCHECK(this->asm_mode() == ASM_NO ||
|
| + this->asm_mode() == asm_mode ||
|
| + asm_mode == ASM_FUNCTION);
|
| + int hints = compiler_hints();
|
| + hints = BooleanBit::set(hints, kIsAsmModule, asm_mode == ASM_MODULE);
|
| + hints = BooleanBit::set(hints, kIsAsmFunction, asm_mode == ASM_FUNCTION);
|
| + set_compiler_hints(hints);
|
| +}
|
| +
|
| +
|
| void SharedFunctionInfo::set_kind(FunctionKind kind) {
|
| DCHECK(IsValidFunctionKind(kind));
|
| int hints = compiler_hints();
|
|
|