| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 151 | 151 |
| 152 | 152 |
| 153 Handle<TypeFeedbackInfo> Factory::NewTypeFeedbackInfo() { | 153 Handle<TypeFeedbackInfo> Factory::NewTypeFeedbackInfo() { |
| 154 CALL_HEAP_FUNCTION(isolate(), | 154 CALL_HEAP_FUNCTION(isolate(), |
| 155 isolate()->heap()->AllocateTypeFeedbackInfo(), | 155 isolate()->heap()->AllocateTypeFeedbackInfo(), |
| 156 TypeFeedbackInfo); | 156 TypeFeedbackInfo); |
| 157 } | 157 } |
| 158 | 158 |
| 159 | 159 |
| 160 // Symbols are created in the old generation (data space). | 160 // Symbols are created in the old generation (data space). |
| 161 Handle<String> Factory::LookupSymbol(Vector<const char> string) { | 161 Handle<String> Factory::LookupUtf8Symbol(Vector<const char> string) { |
| 162 CALL_HEAP_FUNCTION(isolate(), | 162 CALL_HEAP_FUNCTION(isolate(), |
| 163 isolate()->heap()->LookupSymbol(string), | 163 isolate()->heap()->LookupUtf8Symbol(string), |
| 164 String); | 164 String); |
| 165 } | 165 } |
| 166 | 166 |
| 167 // Symbols are created in the old generation (data space). | 167 // Symbols are created in the old generation (data space). |
| 168 Handle<String> Factory::LookupSymbol(Handle<String> string) { | 168 Handle<String> Factory::LookupSymbol(Handle<String> string) { |
| 169 CALL_HEAP_FUNCTION(isolate(), | 169 CALL_HEAP_FUNCTION(isolate(), |
| 170 isolate()->heap()->LookupSymbol(*string), | 170 isolate()->heap()->LookupSymbol(*string), |
| 171 String); | 171 String); |
| 172 } | 172 } |
| 173 | 173 |
| 174 Handle<String> Factory::LookupAsciiSymbol(Vector<const char> string) { | 174 Handle<String> Factory::LookupOneByteSymbol(Vector<const char> string) { |
| 175 CALL_HEAP_FUNCTION(isolate(), | 175 CALL_HEAP_FUNCTION(isolate(), |
| 176 isolate()->heap()->LookupAsciiSymbol(string), | 176 isolate()->heap()->LookupOneByteSymbol(string), |
| 177 String); | 177 String); |
| 178 } | 178 } |
| 179 | 179 |
| 180 | 180 |
| 181 Handle<String> Factory::LookupAsciiSymbol(Handle<SeqOneByteString> string, | 181 Handle<String> Factory::LookupOneByteSymbol(Handle<SeqOneByteString> string, |
| 182 int from, | 182 int from, |
| 183 int length) { | 183 int length) { |
| 184 CALL_HEAP_FUNCTION(isolate(), | 184 CALL_HEAP_FUNCTION(isolate(), |
| 185 isolate()->heap()->LookupAsciiSymbol(string, | 185 isolate()->heap()->LookupOneByteSymbol(string, |
| 186 from, | 186 from, |
| 187 length), | 187 length), |
| 188 String); | 188 String); |
| 189 } | 189 } |
| 190 | 190 |
| 191 | 191 |
| 192 Handle<String> Factory::LookupTwoByteSymbol(Vector<const uc16> string) { | 192 Handle<String> Factory::LookupTwoByteSymbol(Vector<const uc16> string) { |
| 193 CALL_HEAP_FUNCTION(isolate(), | 193 CALL_HEAP_FUNCTION(isolate(), |
| 194 isolate()->heap()->LookupTwoByteSymbol(string), | 194 isolate()->heap()->LookupTwoByteSymbol(string), |
| 195 String); | 195 String); |
| (...skipping 538 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 734 buffer[kBufferSize - 1] = '\0'; | 734 buffer[kBufferSize - 1] = '\0'; |
| 735 } | 735 } |
| 736 Handle<String> error_string = NewStringFromUtf8(CStrVector(buffer), TENURED); | 736 Handle<String> error_string = NewStringFromUtf8(CStrVector(buffer), TENURED); |
| 737 return error_string; | 737 return error_string; |
| 738 } | 738 } |
| 739 | 739 |
| 740 | 740 |
| 741 Handle<Object> Factory::NewError(const char* maker, | 741 Handle<Object> Factory::NewError(const char* maker, |
| 742 const char* type, | 742 const char* type, |
| 743 Handle<JSArray> args) { | 743 Handle<JSArray> args) { |
| 744 Handle<String> make_str = LookupAsciiSymbol(maker); | 744 Handle<String> make_str = LookupUtf8Symbol(maker); |
| 745 Handle<Object> fun_obj( | 745 Handle<Object> fun_obj( |
| 746 isolate()->js_builtins_object()->GetPropertyNoExceptionThrown(*make_str)); | 746 isolate()->js_builtins_object()->GetPropertyNoExceptionThrown(*make_str)); |
| 747 // If the builtins haven't been properly configured yet this error | 747 // If the builtins haven't been properly configured yet this error |
| 748 // constructor may not have been defined. Bail out. | 748 // constructor may not have been defined. Bail out. |
| 749 if (!fun_obj->IsJSFunction()) { | 749 if (!fun_obj->IsJSFunction()) { |
| 750 return EmergencyNewError(type, args); | 750 return EmergencyNewError(type, args); |
| 751 } | 751 } |
| 752 Handle<JSFunction> fun = Handle<JSFunction>::cast(fun_obj); | 752 Handle<JSFunction> fun = Handle<JSFunction>::cast(fun_obj); |
| 753 Handle<Object> type_obj = LookupAsciiSymbol(type); | 753 Handle<Object> type_obj = LookupUtf8Symbol(type); |
| 754 Handle<Object> argv[] = { type_obj, args }; | 754 Handle<Object> argv[] = { type_obj, args }; |
| 755 | 755 |
| 756 // Invoke the JavaScript factory method. If an exception is thrown while | 756 // Invoke the JavaScript factory method. If an exception is thrown while |
| 757 // running the factory method, use the exception as the result. | 757 // running the factory method, use the exception as the result. |
| 758 bool caught_exception; | 758 bool caught_exception; |
| 759 Handle<Object> result = Execution::TryCall(fun, | 759 Handle<Object> result = Execution::TryCall(fun, |
| 760 isolate()->js_builtins_object(), | 760 isolate()->js_builtins_object(), |
| 761 ARRAY_SIZE(argv), | 761 ARRAY_SIZE(argv), |
| 762 argv, | 762 argv, |
| 763 &caught_exception); | 763 &caught_exception); |
| 764 return result; | 764 return result; |
| 765 } | 765 } |
| 766 | 766 |
| 767 | 767 |
| 768 Handle<Object> Factory::NewError(Handle<String> message) { | 768 Handle<Object> Factory::NewError(Handle<String> message) { |
| 769 return NewError("$Error", message); | 769 return NewError("$Error", message); |
| 770 } | 770 } |
| 771 | 771 |
| 772 | 772 |
| 773 Handle<Object> Factory::NewError(const char* constructor, | 773 Handle<Object> Factory::NewError(const char* constructor, |
| 774 Handle<String> message) { | 774 Handle<String> message) { |
| 775 Handle<String> constr = LookupAsciiSymbol(constructor); | 775 Handle<String> constr = LookupUtf8Symbol(constructor); |
| 776 Handle<JSFunction> fun = Handle<JSFunction>( | 776 Handle<JSFunction> fun = Handle<JSFunction>( |
| 777 JSFunction::cast(isolate()->js_builtins_object()-> | 777 JSFunction::cast(isolate()->js_builtins_object()-> |
| 778 GetPropertyNoExceptionThrown(*constr))); | 778 GetPropertyNoExceptionThrown(*constr))); |
| 779 Handle<Object> argv[] = { message }; | 779 Handle<Object> argv[] = { message }; |
| 780 | 780 |
| 781 // Invoke the JavaScript factory method. If an exception is thrown while | 781 // Invoke the JavaScript factory method. If an exception is thrown while |
| 782 // running the factory method, use the exception as the result. | 782 // running the factory method, use the exception as the result. |
| 783 bool caught_exception; | 783 bool caught_exception; |
| 784 Handle<Object> result = Execution::TryCall(fun, | 784 Handle<Object> result = Execution::TryCall(fun, |
| 785 isolate()->js_builtins_object(), | 785 isolate()->js_builtins_object(), |
| (...skipping 657 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1443 | 1443 |
| 1444 | 1444 |
| 1445 Handle<Object> Factory::ToBoolean(bool value) { | 1445 Handle<Object> Factory::ToBoolean(bool value) { |
| 1446 return Handle<Object>(value | 1446 return Handle<Object>(value |
| 1447 ? isolate()->heap()->true_value() | 1447 ? isolate()->heap()->true_value() |
| 1448 : isolate()->heap()->false_value()); | 1448 : isolate()->heap()->false_value()); |
| 1449 } | 1449 } |
| 1450 | 1450 |
| 1451 | 1451 |
| 1452 } } // namespace v8::internal | 1452 } } // namespace v8::internal |
| OLD | NEW |