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

Side by Side Diff: src/arguments.h

Issue 6685088: Merge isolates to bleeding_edge. (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 9 years, 9 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/apiutils.h ('k') | src/arm/assembler-arm.h » ('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 2006-2008 the V8 project authors. All rights reserved. 1 // Copyright 2006-2008 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 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 // This cast checks that the object we're accessing does indeed have the 58 // This cast checks that the object we're accessing does indeed have the
59 // expected type. 59 // expected type.
60 S::cast(*value); 60 S::cast(*value);
61 return Handle<S>(reinterpret_cast<S**>(value)); 61 return Handle<S>(reinterpret_cast<S**>(value));
62 } 62 }
63 63
64 // Get the total number of arguments including the receiver. 64 // Get the total number of arguments including the receiver.
65 int length() const { return length_; } 65 int length() const { return length_; }
66 66
67 Object** arguments() { return arguments_; } 67 Object** arguments() { return arguments_; }
68
69 private: 68 private:
70 int length_; 69 int length_;
71 Object** arguments_; 70 Object** arguments_;
72 }; 71 };
73 72
74 73
75 // Custom arguments replicate a small segment of stack that can be 74 // Custom arguments replicate a small segment of stack that can be
76 // accessed through an Arguments object the same way the actual stack 75 // accessed through an Arguments object the same way the actual stack
77 // can. 76 // can.
78 class CustomArguments : public Relocatable { 77 class CustomArguments : public Relocatable {
79 public: 78 public:
80 inline CustomArguments(Object* data, 79 inline CustomArguments(Isolate* isolate,
80 Object* data,
81 Object* self, 81 Object* self,
82 JSObject* holder) { 82 JSObject* holder) : Relocatable(isolate) {
83 values_[2] = self; 83 values_[2] = self;
84 values_[1] = holder; 84 values_[1] = holder;
85 values_[0] = data; 85 values_[0] = data;
86 } 86 }
87 87
88 inline CustomArguments() { 88 inline explicit CustomArguments(Isolate* isolate) : Relocatable(isolate) {
89 #ifdef DEBUG 89 #ifdef DEBUG
90 for (size_t i = 0; i < ARRAY_SIZE(values_); i++) { 90 for (size_t i = 0; i < ARRAY_SIZE(values_); i++) {
91 values_[i] = reinterpret_cast<Object*>(kZapValue); 91 values_[i] = reinterpret_cast<Object*>(kZapValue);
92 } 92 }
93 #endif 93 #endif
94 } 94 }
95 95
96 void IterateInstance(ObjectVisitor* v); 96 void IterateInstance(ObjectVisitor* v);
97 Object** end() { return values_ + ARRAY_SIZE(values_) - 1; } 97 Object** end() { return values_ + ARRAY_SIZE(values_) - 1; }
98 private: 98 private:
99 Object* values_[3]; 99 Object* values_[3];
100 }; 100 };
101 101
102 #define RUNTIME_CALLING_CONVENTION Arguments args, Isolate* isolate
103 #define RUNTIME_GET_ISOLATE ASSERT(isolate == Isolate::Current())
102 104
103 } } // namespace v8::internal 105 } } // namespace v8::internal
104 106
105 #endif // V8_ARGUMENTS_H_ 107 #endif // V8_ARGUMENTS_H_
OLDNEW
« no previous file with comments | « src/apiutils.h ('k') | src/arm/assembler-arm.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698