Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7)

Side by Side Diff: src/runtime/runtime.h

Issue 662413002: Move some Runtime:: functions and remove runtime.h as include when unnecessary. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/api.cc ('k') | src/runtime/runtime-array.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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_RUNTIME_H_ 5 #ifndef V8_RUNTIME_RUNTIME_H_
6 #define V8_RUNTIME_H_ 6 #define V8_RUNTIME_RUNTIME_H_
7 7
8 #include "src/allocation.h" 8 #include "src/allocation.h"
9 #include "src/objects.h" 9 #include "src/objects.h"
10 #include "src/zone.h" 10 #include "src/zone.h"
11 11
12 namespace v8 { 12 namespace v8 {
13 namespace internal { 13 namespace internal {
14 14
15 // The interface to C++ runtime functions. 15 // The interface to C++ runtime functions.
16 16
(...skipping 753 matching lines...) Expand 10 before | Expand all | Expand 10 after
770 ConsStringIteratorOp string_locale_compare_it1_; 770 ConsStringIteratorOp string_locale_compare_it1_;
771 ConsStringIteratorOp string_locale_compare_it2_; 771 ConsStringIteratorOp string_locale_compare_it2_;
772 772
773 friend class Isolate; 773 friend class Isolate;
774 friend class Runtime; 774 friend class Runtime;
775 775
776 DISALLOW_COPY_AND_ASSIGN(RuntimeState); 776 DISALLOW_COPY_AND_ASSIGN(RuntimeState);
777 }; 777 };
778 778
779 779
780 class JavaScriptFrameIterator; // Forward declaration.
781
782
780 class Runtime : public AllStatic { 783 class Runtime : public AllStatic {
781 public: 784 public:
782 enum FunctionId { 785 enum FunctionId {
783 #define F(name, nargs, ressize) k##name, 786 #define F(name, nargs, ressize) k##name,
784 RUNTIME_FUNCTION_LIST(F) INLINE_OPTIMIZED_FUNCTION_LIST(F) 787 RUNTIME_FUNCTION_LIST(F) INLINE_OPTIMIZED_FUNCTION_LIST(F)
785 #undef F 788 #undef F
786 #define F(name, nargs, ressize) kInline##name, 789 #define F(name, nargs, ressize) kInline##name,
787 INLINE_FUNCTION_LIST(F) 790 INLINE_FUNCTION_LIST(F)
788 #undef F 791 #undef F
789 #define F(name, nargs, ressize) kInlineOptimized##name, 792 #define F(name, nargs, ressize) kInlineOptimized##name,
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
821 824
822 // Get the intrinsic function with the given name, which must be internalized. 825 // Get the intrinsic function with the given name, which must be internalized.
823 static const Function* FunctionForName(Handle<String> name); 826 static const Function* FunctionForName(Handle<String> name);
824 827
825 // Get the intrinsic function with the given FunctionId. 828 // Get the intrinsic function with the given FunctionId.
826 static const Function* FunctionForId(FunctionId id); 829 static const Function* FunctionForId(FunctionId id);
827 830
828 // Get the intrinsic function with the given function entry address. 831 // Get the intrinsic function with the given function entry address.
829 static const Function* FunctionForEntry(Address ref); 832 static const Function* FunctionForEntry(Address ref);
830 833
831 // General-purpose helper functions for runtime system.
832 static int StringMatch(Isolate* isolate, Handle<String> sub,
833 Handle<String> pat, int index);
834
835 // TODO(1240886): Some of the following methods are *not* handle safe, but 834 // TODO(1240886): Some of the following methods are *not* handle safe, but
836 // accept handle arguments. This seems fragile. 835 // accept handle arguments. This seems fragile.
837 836
838 // Support getting the characters in a string using [] notation as 837 // Support getting the characters in a string using [] notation as
839 // in Firefox/SpiderMonkey, Safari and Opera. 838 // in Firefox/SpiderMonkey, Safari and Opera.
840 MUST_USE_RESULT static MaybeHandle<Object> GetElementOrCharAt( 839 MUST_USE_RESULT static MaybeHandle<Object> GetElementOrCharAt(
841 Isolate* isolate, Handle<Object> object, uint32_t index); 840 Isolate* isolate, Handle<Object> object, uint32_t index);
842 841
843 MUST_USE_RESULT static MaybeHandle<Object> SetObjectProperty( 842 MUST_USE_RESULT static MaybeHandle<Object> SetObjectProperty(
844 Isolate* isolate, Handle<Object> object, Handle<Object> key, 843 Isolate* isolate, Handle<Object> object, Handle<Object> key,
845 Handle<Object> value, StrictMode strict_mode); 844 Handle<Object> value, StrictMode strict_mode);
846 845
847 MUST_USE_RESULT static MaybeHandle<Object> DefineObjectProperty( 846 MUST_USE_RESULT static MaybeHandle<Object> DefineObjectProperty(
848 Handle<JSObject> object, Handle<Object> key, Handle<Object> value, 847 Handle<JSObject> object, Handle<Object> key, Handle<Object> value,
849 PropertyAttributes attr); 848 PropertyAttributes attr);
850 849
851 MUST_USE_RESULT static MaybeHandle<Object> DeleteObjectProperty(
852 Isolate* isolate, Handle<JSReceiver> object, Handle<Object> key,
853 JSReceiver::DeleteMode mode);
854
855 MUST_USE_RESULT static MaybeHandle<Object> HasObjectProperty(
856 Isolate* isolate, Handle<JSReceiver> object, Handle<Object> key);
857
858 MUST_USE_RESULT static MaybeHandle<Object> GetObjectProperty( 850 MUST_USE_RESULT static MaybeHandle<Object> GetObjectProperty(
859 Isolate* isolate, Handle<Object> object, Handle<Object> key); 851 Isolate* isolate, Handle<Object> object, Handle<Object> key);
860 852
861 MUST_USE_RESULT static MaybeHandle<Name> ToName(Isolate* isolate, 853 MUST_USE_RESULT static MaybeHandle<Name> ToName(Isolate* isolate,
862 Handle<Object> key); 854 Handle<Object> key);
863 855
864 static void SetupArrayBuffer(Isolate* isolate, 856 static void SetupArrayBuffer(Isolate* isolate,
865 Handle<JSArrayBuffer> array_buffer, 857 Handle<JSArrayBuffer> array_buffer,
866 bool is_external, void* data, 858 bool is_external, void* data,
867 size_t allocated_length); 859 size_t allocated_length);
868 860
869 static bool SetupArrayBufferAllocatingData(Isolate* isolate, 861 static bool SetupArrayBufferAllocatingData(Isolate* isolate,
870 Handle<JSArrayBuffer> array_buffer, 862 Handle<JSArrayBuffer> array_buffer,
871 size_t allocated_length, 863 size_t allocated_length,
872 bool initialize = true); 864 bool initialize = true);
873 865
874 static void NeuterArrayBuffer(Handle<JSArrayBuffer> array_buffer); 866 static void NeuterArrayBuffer(Handle<JSArrayBuffer> array_buffer);
875 867
876 static void FreeArrayBuffer(Isolate* isolate, 868 static void FreeArrayBuffer(Isolate* isolate,
877 JSArrayBuffer* phantom_array_buffer); 869 JSArrayBuffer* phantom_array_buffer);
878 870
871 static int FindIndexedNonNativeFrame(JavaScriptFrameIterator* it, int index);
872
879 enum TypedArrayId { 873 enum TypedArrayId {
880 // arrayIds below should be synchromized with typedarray.js natives. 874 // arrayIds below should be synchromized with typedarray.js natives.
881 ARRAY_ID_UINT8 = 1, 875 ARRAY_ID_UINT8 = 1,
882 ARRAY_ID_INT8 = 2, 876 ARRAY_ID_INT8 = 2,
883 ARRAY_ID_UINT16 = 3, 877 ARRAY_ID_UINT16 = 3,
884 ARRAY_ID_INT16 = 4, 878 ARRAY_ID_INT16 = 4,
885 ARRAY_ID_UINT32 = 5, 879 ARRAY_ID_UINT32 = 5,
886 ARRAY_ID_INT32 = 6, 880 ARRAY_ID_INT32 = 6,
887 ARRAY_ID_FLOAT32 = 7, 881 ARRAY_ID_FLOAT32 = 7,
888 ARRAY_ID_FLOAT64 = 8, 882 ARRAY_ID_FLOAT64 = 8,
(...skipping 22 matching lines...) Expand all
911 class AllocateDoubleAlignFlag : public BitField<bool, 0, 1> {}; 905 class AllocateDoubleAlignFlag : public BitField<bool, 0, 1> {};
912 class AllocateTargetSpace : public BitField<AllocationSpace, 1, 3> {}; 906 class AllocateTargetSpace : public BitField<AllocationSpace, 1, 3> {};
913 907
914 class DeclareGlobalsEvalFlag : public BitField<bool, 0, 1> {}; 908 class DeclareGlobalsEvalFlag : public BitField<bool, 0, 1> {};
915 class DeclareGlobalsNativeFlag : public BitField<bool, 1, 1> {}; 909 class DeclareGlobalsNativeFlag : public BitField<bool, 1, 1> {};
916 class DeclareGlobalsStrictMode : public BitField<StrictMode, 2, 1> {}; 910 class DeclareGlobalsStrictMode : public BitField<StrictMode, 2, 1> {};
917 911
918 } // namespace internal 912 } // namespace internal
919 } // namespace v8 913 } // namespace v8
920 914
921 #endif // V8_RUNTIME_H_ 915 #endif // V8_RUNTIME_RUNTIME_H_
OLDNEW
« no previous file with comments | « src/api.cc ('k') | src/runtime/runtime-array.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698