| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 9729 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9740 return CompileLazyHelper(&info, flag); | 9740 return CompileLazyHelper(&info, flag); |
| 9741 } | 9741 } |
| 9742 | 9742 |
| 9743 | 9743 |
| 9744 bool JSFunction::EnsureCompiled(Handle<JSFunction> function, | 9744 bool JSFunction::EnsureCompiled(Handle<JSFunction> function, |
| 9745 ClearExceptionFlag flag) { | 9745 ClearExceptionFlag flag) { |
| 9746 return function->is_compiled() || CompileLazy(function, flag); | 9746 return function->is_compiled() || CompileLazy(function, flag); |
| 9747 } | 9747 } |
| 9748 | 9748 |
| 9749 | 9749 |
| 9750 bool JSFunction::IsInlineable() { |
| 9751 if (IsBuiltin()) return false; |
| 9752 SharedFunctionInfo* shared_info = shared(); |
| 9753 // Check that the function has a script associated with it. |
| 9754 if (!shared_info->script()->IsScript()) return false; |
| 9755 if (shared_info->optimization_disabled()) return false; |
| 9756 Code* code = shared_info->code(); |
| 9757 if (code->kind() == Code::OPTIMIZED_FUNCTION) return true; |
| 9758 // If we never ran this (unlikely) then lets try to optimize it. |
| 9759 if (code->kind() != Code::FUNCTION) return true; |
| 9760 return code->optimizable(); |
| 9761 } |
| 9762 |
| 9763 |
| 9750 void JSObject::OptimizeAsPrototype(Handle<JSObject> object) { | 9764 void JSObject::OptimizeAsPrototype(Handle<JSObject> object) { |
| 9751 if (object->IsGlobalObject()) return; | 9765 if (object->IsGlobalObject()) return; |
| 9752 | 9766 |
| 9753 // Make sure prototypes are fast objects and their maps have the bit set | 9767 // Make sure prototypes are fast objects and their maps have the bit set |
| 9754 // so they remain fast. | 9768 // so they remain fast. |
| 9755 if (!object->HasFastProperties()) { | 9769 if (!object->HasFastProperties()) { |
| 9756 TransformToFastProperties(object, 0); | 9770 TransformToFastProperties(object, 0); |
| 9757 } | 9771 } |
| 9758 } | 9772 } |
| 9759 | 9773 |
| (...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10008 | 10022 |
| 10009 | 10023 |
| 10010 Handle<Object> SharedFunctionInfo::GetSourceCode() { | 10024 Handle<Object> SharedFunctionInfo::GetSourceCode() { |
| 10011 if (!HasSourceCode()) return GetIsolate()->factory()->undefined_value(); | 10025 if (!HasSourceCode()) return GetIsolate()->factory()->undefined_value(); |
| 10012 Handle<String> source(String::cast(Script::cast(script())->source())); | 10026 Handle<String> source(String::cast(Script::cast(script())->source())); |
| 10013 return GetIsolate()->factory()->NewSubString( | 10027 return GetIsolate()->factory()->NewSubString( |
| 10014 source, start_position(), end_position()); | 10028 source, start_position(), end_position()); |
| 10015 } | 10029 } |
| 10016 | 10030 |
| 10017 | 10031 |
| 10018 bool SharedFunctionInfo::IsInlineable() { | |
| 10019 // Check that the function has a script associated with it. | |
| 10020 if (!script()->IsScript()) return false; | |
| 10021 if (optimization_disabled()) return false; | |
| 10022 // If we never ran this (unlikely) then lets try to optimize it. | |
| 10023 if (code()->kind() != Code::FUNCTION) return true; | |
| 10024 return code()->optimizable(); | |
| 10025 } | |
| 10026 | |
| 10027 | |
| 10028 int SharedFunctionInfo::SourceSize() { | 10032 int SharedFunctionInfo::SourceSize() { |
| 10029 return end_position() - start_position(); | 10033 return end_position() - start_position(); |
| 10030 } | 10034 } |
| 10031 | 10035 |
| 10032 | 10036 |
| 10033 int SharedFunctionInfo::CalculateInstanceSize() { | 10037 int SharedFunctionInfo::CalculateInstanceSize() { |
| 10034 int instance_size = | 10038 int instance_size = |
| 10035 JSObject::kHeaderSize + | 10039 JSObject::kHeaderSize + |
| 10036 expected_nof_properties() * kPointerSize; | 10040 expected_nof_properties() * kPointerSize; |
| 10037 if (instance_size > JSObject::kMaxInstanceSize) { | 10041 if (instance_size > JSObject::kMaxInstanceSize) { |
| (...skipping 6493 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 16531 #define ERROR_MESSAGES_TEXTS(C, T) T, | 16535 #define ERROR_MESSAGES_TEXTS(C, T) T, |
| 16532 static const char* error_messages_[] = { | 16536 static const char* error_messages_[] = { |
| 16533 ERROR_MESSAGES_LIST(ERROR_MESSAGES_TEXTS) | 16537 ERROR_MESSAGES_LIST(ERROR_MESSAGES_TEXTS) |
| 16534 }; | 16538 }; |
| 16535 #undef ERROR_MESSAGES_TEXTS | 16539 #undef ERROR_MESSAGES_TEXTS |
| 16536 return error_messages_[reason]; | 16540 return error_messages_[reason]; |
| 16537 } | 16541 } |
| 16538 | 16542 |
| 16539 | 16543 |
| 16540 } } // namespace v8::internal | 16544 } } // namespace v8::internal |
| OLD | NEW |