Index: src/accessors.h |
diff --git a/src/accessors.h b/src/accessors.h |
index 83a847222b44e69a8341bbaac08bdcf95aaa5dac..db506cef976e7724b4da21fd6dbd632b3a24e119 100644 |
--- a/src/accessors.h |
+++ b/src/accessors.h |
@@ -43,7 +43,6 @@ namespace internal { |
V(FunctionArguments) \ |
V(FunctionCaller) \ |
V(ArrayLength) \ |
- V(StringLength) \ |
V(ScriptSource) \ |
V(ScriptName) \ |
V(ScriptId) \ |
@@ -57,6 +56,9 @@ namespace internal { |
V(ScriptEvalFromScriptPosition) \ |
V(ScriptEvalFromFunctionName) |
+#define ACCESSOR_INFO_LIST(V) \ |
+ V(StringLength) \ |
+ |
// Accessors contains all predefined proxy accessors. |
class Accessors : public AllStatic { |
@@ -67,11 +69,30 @@ class Accessors : public AllStatic { |
ACCESSOR_DESCRIPTOR_LIST(ACCESSOR_DESCRIPTOR_DECLARATION) |
#undef ACCESSOR_DESCRIPTOR_DECLARATION |
+#define ACCESSOR_INFO_DECLARATION(name) \ |
+ static void name##Getter( \ |
+ v8::Local<v8::String> name, \ |
+ const v8::PropertyCallbackInfo<v8::Value>& info); \ |
+ static void name##Setter( \ |
+ v8::Local<v8::String> name, \ |
+ v8::Local<v8::Value> value, \ |
+ const v8::PropertyCallbackInfo<void>& info); \ |
+ static Handle<AccessorInfo> name##Info( \ |
+ Isolate* isolate, \ |
+ PropertyAttributes attributes); |
+ ACCESSOR_INFO_LIST(ACCESSOR_INFO_DECLARATION) |
+#undef ACCESSOR_INFO_DECLARATION |
+ |
enum DescriptorId { |
#define ACCESSOR_DESCRIPTOR_DECLARATION(name) \ |
k##name, |
ACCESSOR_DESCRIPTOR_LIST(ACCESSOR_DESCRIPTOR_DECLARATION) |
#undef ACCESSOR_DESCRIPTOR_DECLARATION |
+#define ACCESSOR_INFO_DECLARATION(name) \ |
+ k##name##Getter, \ |
+ k##name##Setter, |
+ ACCESSOR_INFO_LIST(ACCESSOR_INFO_DECLARATION) |
+#undef ACCESSOR_INFO_DECLARATION |
descriptorCount |
}; |
@@ -92,7 +113,6 @@ class Accessors : public AllStatic { |
Handle<String> name, |
int* object_offset); |
- |
private: |
// Accessor functions only used through the descriptor. |
static MaybeObject* FunctionSetPrototype(Isolate* isolate, |