| Index: src/api-natives.cc
|
| diff --git a/src/api-natives.cc b/src/api-natives.cc
|
| index 0a070ced2417bce65c960fd7e08ea8d67c130433..d8dd1510417641197da707cf27f79e51586886d3 100644
|
| --- a/src/api-natives.cc
|
| +++ b/src/api-natives.cc
|
| @@ -37,25 +37,6 @@ MaybeHandle<Object> Instantiate(Isolate* isolate, Handle<Object> data,
|
| }
|
|
|
|
|
| -MaybeHandle<JSFunction> InstantiateFunctionOrMaybeDont(Isolate* isolate,
|
| - Handle<Object> data) {
|
| - DCHECK(data->IsFunctionTemplateInfo() || data->IsJSFunction());
|
| - if (data->IsFunctionTemplateInfo()) {
|
| - // A function template needs to be instantiated.
|
| - return InstantiateFunction(isolate,
|
| - Handle<FunctionTemplateInfo>::cast(data));
|
| -#ifdef V8_JS_ACCESSORS
|
| - } else if (data->IsJSFunction()) {
|
| - // If we already have a proper function, we do not need additional work.
|
| - // (This should only happen for JavaScript API accessors.)
|
| - return Handle<JSFunction>::cast(data);
|
| -#endif // V8_JS_ACCESSORS
|
| - } else {
|
| - UNREACHABLE();
|
| - return MaybeHandle<JSFunction>();
|
| - }
|
| -}
|
| -
|
| MaybeHandle<Object> DefineAccessorProperty(Isolate* isolate,
|
| Handle<JSObject> object,
|
| Handle<Name> name,
|
| @@ -63,14 +44,18 @@ MaybeHandle<Object> DefineAccessorProperty(Isolate* isolate,
|
| Handle<Object> setter,
|
| PropertyAttributes attributes) {
|
| if (!getter->IsUndefined()) {
|
| - ASSIGN_RETURN_ON_EXCEPTION(isolate, getter,
|
| - InstantiateFunctionOrMaybeDont(isolate, getter),
|
| - Object);
|
| + ASSIGN_RETURN_ON_EXCEPTION(
|
| + isolate, getter,
|
| + InstantiateFunction(isolate,
|
| + Handle<FunctionTemplateInfo>::cast(getter)),
|
| + Object);
|
| }
|
| if (!setter->IsUndefined()) {
|
| - ASSIGN_RETURN_ON_EXCEPTION(isolate, setter,
|
| - InstantiateFunctionOrMaybeDont(isolate, setter),
|
| - Object);
|
| + ASSIGN_RETURN_ON_EXCEPTION(
|
| + isolate, setter,
|
| + InstantiateFunction(isolate,
|
| + Handle<FunctionTemplateInfo>::cast(setter)),
|
| + Object);
|
| }
|
| RETURN_ON_EXCEPTION(isolate, JSObject::DefineAccessor(object, name, getter,
|
| setter, attributes),
|
| @@ -425,19 +410,10 @@ void ApiNatives::AddDataProperty(Isolate* isolate, Handle<TemplateInfo> info,
|
|
|
| void ApiNatives::AddAccessorProperty(Isolate* isolate,
|
| Handle<TemplateInfo> info,
|
| - Handle<Name> name, Handle<Object> getter,
|
| - Handle<Object> setter,
|
| + Handle<Name> name,
|
| + Handle<FunctionTemplateInfo> getter,
|
| + Handle<FunctionTemplateInfo> setter,
|
| PropertyAttributes attributes) {
|
| -#ifdef V8_JS_ACCESSORS
|
| - DCHECK(getter.is_null() || getter->IsFunctionTemplateInfo() ||
|
| - getter->IsJSFunction());
|
| - DCHECK(setter.is_null() || setter->IsFunctionTemplateInfo() ||
|
| - setter->IsJSFunction());
|
| -#else
|
| - DCHECK(getter.is_null() || getter->IsFunctionTemplateInfo());
|
| - DCHECK(setter.is_null() || setter->IsFunctionTemplateInfo());
|
| -#endif // V8_JS_ACCESSORS
|
| -
|
| const int kSize = 4;
|
| PropertyDetails details(attributes, ACCESSOR, 0, PropertyCellType::kNoCell);
|
| auto details_handle = handle(details.AsSmi(), isolate);
|
|
|