| OLD | NEW |
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef V8_FACTORY_H_ | 5 #ifndef V8_FACTORY_H_ |
| 6 #define V8_FACTORY_H_ | 6 #define V8_FACTORY_H_ |
| 7 | 7 |
| 8 #include "src/isolate.h" | 8 #include "src/isolate.h" |
| 9 #include "src/messages.h" | 9 #include "src/messages.h" |
| 10 | 10 |
| (...skipping 528 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 539 bool immovable = false, | 539 bool immovable = false, |
| 540 bool crankshafted = false, | 540 bool crankshafted = false, |
| 541 int prologue_offset = Code::kPrologueOffsetNotSet, | 541 int prologue_offset = Code::kPrologueOffsetNotSet, |
| 542 bool is_debug = false); | 542 bool is_debug = false); |
| 543 | 543 |
| 544 Handle<Code> CopyCode(Handle<Code> code); | 544 Handle<Code> CopyCode(Handle<Code> code); |
| 545 | 545 |
| 546 Handle<Code> CopyCode(Handle<Code> code, Vector<byte> reloc_info); | 546 Handle<Code> CopyCode(Handle<Code> code, Vector<byte> reloc_info); |
| 547 | 547 |
| 548 // Interface for creating error objects. | 548 // Interface for creating error objects. |
| 549 | |
| 550 Handle<Object> NewError(const char* maker, const char* message, | |
| 551 Handle<JSArray> args); | |
| 552 Handle<String> EmergencyNewError(const char* message, Handle<JSArray> args); | |
| 553 | |
| 554 Handle<Object> NewError(Handle<JSFunction> constructor, | 549 Handle<Object> NewError(Handle<JSFunction> constructor, |
| 555 Handle<String> message); | 550 Handle<String> message); |
| 556 | 551 |
| 557 Handle<Object> NewInvalidStringLengthError() { | 552 Handle<Object> NewInvalidStringLengthError() { |
| 558 return NewRangeError(MessageTemplate::kInvalidStringLength); | 553 return NewRangeError(MessageTemplate::kInvalidStringLength); |
| 559 } | 554 } |
| 560 | 555 |
| 561 Handle<Object> NewError(const char* maker, | 556 Handle<Object> NewError(Handle<JSFunction> constructor, |
| 562 MessageTemplate::Template template_index, | 557 MessageTemplate::Template template_index, |
| 563 Handle<Object> arg0 = Handle<Object>(), | 558 Handle<Object> arg0 = Handle<Object>(), |
| 564 Handle<Object> arg1 = Handle<Object>(), | 559 Handle<Object> arg1 = Handle<Object>(), |
| 565 Handle<Object> arg2 = Handle<Object>()); | 560 Handle<Object> arg2 = Handle<Object>()); |
| 566 | 561 |
| 567 Handle<Object> NewError(MessageTemplate::Template template_index, | 562 #define DEFINE_ERROR(NAME, name) \ |
| 568 Handle<Object> arg0 = Handle<Object>(), | 563 Handle<Object> New##NAME(MessageTemplate::Template template_index, \ |
| 569 Handle<Object> arg1 = Handle<Object>(), | 564 Handle<Object> arg0 = Handle<Object>(), \ |
| 570 Handle<Object> arg2 = Handle<Object>()); | 565 Handle<Object> arg1 = Handle<Object>(), \ |
| 566 Handle<Object> arg2 = Handle<Object>()) { \ |
| 567 return NewError(isolate()->name##_function(), template_index, arg0, arg1, \ |
| 568 arg2); \ |
| 569 } |
| 571 | 570 |
| 572 Handle<Object> NewTypeError(MessageTemplate::Template template_index, | 571 DEFINE_ERROR(Error, error) |
| 573 Handle<Object> arg0 = Handle<Object>(), | 572 DEFINE_ERROR(EvalError, eval_error) |
| 574 Handle<Object> arg1 = Handle<Object>(), | 573 DEFINE_ERROR(RangeError, range_error) |
| 575 Handle<Object> arg2 = Handle<Object>()); | 574 DEFINE_ERROR(ReferenceError, reference_error) |
| 576 | 575 DEFINE_ERROR(SyntaxError, syntax_error) |
| 577 Handle<Object> NewSyntaxError(MessageTemplate::Template template_index, | 576 DEFINE_ERROR(TypeError, type_error) |
| 578 Handle<Object> arg0 = Handle<Object>(), | 577 #undef DEFINE_ERROR |
| 579 Handle<Object> arg1 = Handle<Object>(), | |
| 580 Handle<Object> arg2 = Handle<Object>()); | |
| 581 | |
| 582 Handle<Object> NewReferenceError(MessageTemplate::Template template_index, | |
| 583 Handle<Object> arg0 = Handle<Object>(), | |
| 584 Handle<Object> arg1 = Handle<Object>(), | |
| 585 Handle<Object> arg2 = Handle<Object>()); | |
| 586 | |
| 587 Handle<Object> NewRangeError(MessageTemplate::Template template_index, | |
| 588 Handle<Object> arg0 = Handle<Object>(), | |
| 589 Handle<Object> arg1 = Handle<Object>(), | |
| 590 Handle<Object> arg2 = Handle<Object>()); | |
| 591 | |
| 592 Handle<Object> NewEvalError(MessageTemplate::Template template_index, | |
| 593 Handle<Object> arg0 = Handle<Object>(), | |
| 594 Handle<Object> arg1 = Handle<Object>(), | |
| 595 Handle<Object> arg2 = Handle<Object>()); | |
| 596 | 578 |
| 597 Handle<String> NumberToString(Handle<Object> number, | 579 Handle<String> NumberToString(Handle<Object> number, |
| 598 bool check_number_string_cache = true); | 580 bool check_number_string_cache = true); |
| 599 | 581 |
| 600 Handle<String> Uint32ToString(uint32_t value) { | 582 Handle<String> Uint32ToString(uint32_t value) { |
| 601 return NumberToString(NewNumberFromUint(value)); | 583 return NumberToString(NewNumberFromUint(value)); |
| 602 } | 584 } |
| 603 | 585 |
| 604 Handle<JSFunction> InstallMembers(Handle<JSFunction> function); | 586 Handle<JSFunction> InstallMembers(Handle<JSFunction> function); |
| 605 | 587 |
| (...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 753 // Reinitialize a JSProxy into an (empty) JS object of respective type and | 735 // Reinitialize a JSProxy into an (empty) JS object of respective type and |
| 754 // size, but keeping the original prototype. The receiver must have at least | 736 // size, but keeping the original prototype. The receiver must have at least |
| 755 // the size of the new object. The object is reinitialized and behaves as an | 737 // the size of the new object. The object is reinitialized and behaves as an |
| 756 // object that has been freshly allocated. | 738 // object that has been freshly allocated. |
| 757 void ReinitializeJSProxy(Handle<JSProxy> proxy, InstanceType type, int size); | 739 void ReinitializeJSProxy(Handle<JSProxy> proxy, InstanceType type, int size); |
| 758 }; | 740 }; |
| 759 | 741 |
| 760 } } // namespace v8::internal | 742 } } // namespace v8::internal |
| 761 | 743 |
| 762 #endif // V8_FACTORY_H_ | 744 #endif // V8_FACTORY_H_ |
| OLD | NEW |