Chromium Code Reviews| Index: src/api.cc |
| diff --git a/src/api.cc b/src/api.cc |
| index 4a6345910f978176c56c6476f232dd0e58e496c8..fd79941b9dbd29d1a4314bc1d605310d73be48ce 100644 |
| --- a/src/api.cc |
| +++ b/src/api.cc |
| @@ -828,7 +828,7 @@ static void TemplateSet(i::Isolate* isolate, |
| } |
| -void Template::Set(v8::Handle<String> name, |
| +void Template::Set(v8::Handle<Name> name, |
| v8::Handle<Data> value, |
| v8::PropertyAttribute attribute) { |
| i::Isolate* isolate = i::Isolate::Current(); |
| @@ -845,7 +845,7 @@ void Template::Set(v8::Handle<String> name, |
| void Template::SetAccessorProperty( |
| - v8::Local<v8::String> name, |
| + v8::Local<v8::Name> name, |
| v8::Local<FunctionTemplate> getter, |
| v8::Local<FunctionTemplate> setter, |
| v8::PropertyAttribute attribute, |
| @@ -1156,7 +1156,7 @@ void FunctionTemplate::SetCallHandler(FunctionCallback callback, |
| static i::Handle<i::AccessorInfo> SetAccessorInfoProperties( |
| i::Handle<i::AccessorInfo> obj, |
| - v8::Handle<String> name, |
| + v8::Handle<Name> name, |
| v8::AccessControl settings, |
| v8::PropertyAttribute attributes, |
| v8::Handle<AccessorSignature> signature) { |
| @@ -1173,7 +1173,7 @@ static i::Handle<i::AccessorInfo> SetAccessorInfoProperties( |
| template<typename Getter, typename Setter> |
| static i::Handle<i::AccessorInfo> MakeAccessorInfo( |
| - v8::Handle<String> name, |
| + v8::Handle<Name> name, |
| Getter getter, |
| Setter setter, |
| v8::Handle<Value> data, |
| @@ -1194,7 +1194,7 @@ static i::Handle<i::AccessorInfo> MakeAccessorInfo( |
| static i::Handle<i::AccessorInfo> MakeAccessorInfo( |
| - v8::Handle<String> name, |
| + v8::Handle<Name> name, |
| v8::Handle<v8::DeclaredAccessorDescriptor> descriptor, |
| void* setter_ignored, |
| void* data_ignored, |
| @@ -1345,10 +1345,10 @@ static inline i::Handle<i::TemplateInfo> GetTemplateInfo( |
| } |
| -template<typename Setter, typename Getter, typename Data, typename Template> |
| +template<typename Getter, typename Setter, typename Data, typename Template> |
| static bool TemplateSetAccessor( |
| Template* template_obj, |
| - v8::Local<String> name, |
| + v8::Local<Name> name, |
| Getter getter, |
| Setter setter, |
| Data data, |
| @@ -1368,7 +1368,7 @@ static bool TemplateSetAccessor( |
| bool Template::SetDeclaredAccessor( |
| - Local<String> name, |
| + Local<Name> name, |
| Local<DeclaredAccessorDescriptor> descriptor, |
| PropertyAttribute attribute, |
| Local<AccessorSignature> signature, |
| @@ -1391,6 +1391,18 @@ void Template::SetNativeDataProperty(v8::Local<String> name, |
| } |
| +void Template::SetNativeDataProperty(v8::Local<Name> name, |
| + AccessorNameGetterCallback getter, |
| + AccessorNameSetterCallback setter, |
| + v8::Handle<Value> data, |
| + PropertyAttribute attribute, |
| + v8::Local<AccessorSignature> signature, |
| + AccessControl settings) { |
| + TemplateSetAccessor( |
| + this, name, getter, setter, data, settings, attribute, signature); |
| +} |
| + |
| + |
| void ObjectTemplate::SetAccessor(v8::Handle<String> name, |
| AccessorGetterCallback getter, |
| AccessorSetterCallback setter, |
| @@ -1403,6 +1415,18 @@ void ObjectTemplate::SetAccessor(v8::Handle<String> name, |
| } |
| +void ObjectTemplate::SetAccessor(v8::Handle<Name> name, |
| + AccessorNameGetterCallback getter, |
| + AccessorNameSetterCallback setter, |
| + v8::Handle<Value> data, |
| + AccessControl settings, |
| + PropertyAttribute attribute, |
| + v8::Handle<AccessorSignature> signature) { |
| + TemplateSetAccessor( |
| + this, name, getter, setter, data, settings, attribute, signature); |
| +} |
| + |
| + |
| void ObjectTemplate::SetNamedPropertyHandler( |
| NamedPropertyGetterCallback getter, |
| NamedPropertySetterCallback setter, |
| @@ -2324,6 +2348,11 @@ bool Value::IsFunction() const { |
| } |
| +bool Value::IsName() const { |
| + return Utils::OpenHandle(this)->IsName(); |
| +} |
| + |
| + |
| bool Value::FullIsString() const { |
| bool result = Utils::OpenHandle(this)->IsString(); |
| DCHECK_EQ(result, QuickIsString()); |
| @@ -2632,6 +2661,14 @@ void v8::Function::CheckCast(Value* that) { |
| } |
| +void v8::Name::CheckCast(v8::Value* that) { |
| + i::Handle<i::Object> obj = Utils::OpenHandle(that); |
| + Utils::ApiCheck(obj->IsName(), |
| + "v8::Name::Cast()", |
| + "Could not convert to name"); |
| +} |
| + |
| + |
| void v8::String::CheckCast(v8::Value* that) { |
| i::Handle<i::Object> obj = Utils::OpenHandle(that); |
| Utils::ApiCheck(obj->IsString(), |
| @@ -3414,11 +3451,11 @@ bool v8::Object::Has(uint32_t index) { |
| } |
| -template<typename Setter, typename Getter, typename Data> |
| +template<typename Getter, typename Setter, typename Data> |
| static inline bool ObjectSetAccessor(Object* obj, |
| - Handle<String> name, |
| - Setter getter, |
|
rossberg
2014/08/19 11:19:27
OMG...
|
| - Getter setter, |
| + Handle<Name> name, |
| + Getter getter, |
| + Setter setter, |
| Data data, |
| AccessControl settings, |
| PropertyAttribute attributes) { |
| @@ -3453,7 +3490,18 @@ bool Object::SetAccessor(Handle<String> name, |
| } |
| -bool Object::SetDeclaredAccessor(Local<String> name, |
| +bool Object::SetAccessor(Handle<Name> name, |
| + AccessorNameGetterCallback getter, |
| + AccessorNameSetterCallback setter, |
| + v8::Handle<Value> data, |
| + AccessControl settings, |
| + PropertyAttribute attributes) { |
| + return ObjectSetAccessor( |
| + this, name, getter, setter, data, settings, attributes); |
| +} |
| + |
| + |
| +bool Object::SetDeclaredAccessor(Local<Name> name, |
| Local<DeclaredAccessorDescriptor> descriptor, |
| PropertyAttribute attributes, |
| AccessControl settings) { |
| @@ -3463,7 +3511,7 @@ bool Object::SetDeclaredAccessor(Local<String> name, |
| } |
| -void Object::SetAccessorProperty(Local<String> name, |
| +void Object::SetAccessorProperty(Local<Name> name, |
| Local<Function> getter, |
| Handle<Function> setter, |
| PropertyAttribute attribute, |
| @@ -7613,9 +7661,9 @@ void DeferredHandles::Iterate(ObjectVisitor* v) { |
| void InvokeAccessorGetterCallback( |
| - v8::Local<v8::String> property, |
| + v8::Local<v8::Name> property, |
| const v8::PropertyCallbackInfo<v8::Value>& info, |
| - v8::AccessorGetterCallback getter) { |
| + v8::AccessorNameGetterCallback getter) { |
| // Leaving JavaScript. |
| Isolate* isolate = reinterpret_cast<Isolate*>(info.GetIsolate()); |
| Address getter_address = reinterpret_cast<Address>(reinterpret_cast<intptr_t>( |