OLD | NEW |
1 // Copyright 2006-2009 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2009 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 10088 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10099 { Runtime::kInline##name, Runtime::INLINE, \ | 10099 { Runtime::kInline##name, Runtime::INLINE, \ |
10100 "_" #name, NULL, number_of_args, result_size }, | 10100 "_" #name, NULL, number_of_args, result_size }, |
10101 | 10101 |
10102 Runtime::Function kIntrinsicFunctions[] = { | 10102 Runtime::Function kIntrinsicFunctions[] = { |
10103 RUNTIME_FUNCTION_LIST(F) | 10103 RUNTIME_FUNCTION_LIST(F) |
10104 INLINE_FUNCTION_LIST(I) | 10104 INLINE_FUNCTION_LIST(I) |
10105 INLINE_RUNTIME_FUNCTION_LIST(I) | 10105 INLINE_RUNTIME_FUNCTION_LIST(I) |
10106 }; | 10106 }; |
10107 | 10107 |
10108 | 10108 |
10109 const int Runtime::kNotFound; | |
10110 | |
10111 | |
10112 Object* Runtime::InitializeIntrinsicFunctionNames(Object* dictionary) { | 10109 Object* Runtime::InitializeIntrinsicFunctionNames(Object* dictionary) { |
10113 ASSERT(dictionary != NULL); | 10110 ASSERT(dictionary != NULL); |
10114 ASSERT(StringDictionary::cast(dictionary)->NumberOfElements() == 0); | 10111 ASSERT(StringDictionary::cast(dictionary)->NumberOfElements() == 0); |
10115 for (int i = 0; i < kNumFunctions; ++i) { | 10112 for (int i = 0; i < kNumFunctions; ++i) { |
10116 Object* name_symbol = Heap::LookupAsciiSymbol(kIntrinsicFunctions[i].name); | 10113 Object* name_symbol = Heap::LookupAsciiSymbol(kIntrinsicFunctions[i].name); |
10117 if (name_symbol->IsFailure()) return name_symbol; | 10114 if (name_symbol->IsFailure()) return name_symbol; |
10118 StringDictionary* string_dictionary = StringDictionary::cast(dictionary); | 10115 StringDictionary* string_dictionary = StringDictionary::cast(dictionary); |
10119 dictionary = string_dictionary->Add(String::cast(name_symbol), | 10116 dictionary = string_dictionary->Add(String::cast(name_symbol), |
10120 Smi::FromInt(i), | 10117 Smi::FromInt(i), |
10121 PropertyDetails(NONE, NORMAL)); | 10118 PropertyDetails(NONE, NORMAL)); |
(...skipping 29 matching lines...) Expand all Loading... |
10151 } else { | 10148 } else { |
10152 // Handle last resort GC and make sure to allow future allocations | 10149 // Handle last resort GC and make sure to allow future allocations |
10153 // to grow the heap without causing GCs (if possible). | 10150 // to grow the heap without causing GCs (if possible). |
10154 Counters::gc_last_resort_from_js.Increment(); | 10151 Counters::gc_last_resort_from_js.Increment(); |
10155 Heap::CollectAllGarbage(false); | 10152 Heap::CollectAllGarbage(false); |
10156 } | 10153 } |
10157 } | 10154 } |
10158 | 10155 |
10159 | 10156 |
10160 } } // namespace v8::internal | 10157 } } // namespace v8::internal |
OLD | NEW |