From: bmeurer Date: Mon, 28 Sep 2015 09:02:31 +0000 (-0700) Subject: [api] Make sure InterceptorInfo is always in a verifyable state. X-Git-Tag: upstream/4.7.83~73 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=39114da1a76742395d1791e0691fe137f366779e;p=platform%2Fupstream%2Fv8.git [api] Make sure InterceptorInfo is always in a verifyable state. This should fix the Threading1 flakiness that we see on the waterfall. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1369993002 Cr-Commit-Position: refs/heads/master@{#30967} --- diff --git a/src/api.cc b/src/api.cc index 1cb00f2..d1e03b9 100644 --- a/src/api.cc +++ b/src/api.cc @@ -1370,13 +1370,13 @@ static void ObjectTemplateSetNamedPropertyHandler(ObjectTemplate* templ, EnsureNotInstantiated(cons, "ObjectTemplateSetNamedPropertyHandler"); auto obj = i::Handle::cast( isolate->factory()->NewStruct(i::INTERCEPTOR_INFO_TYPE)); + obj->set_flags(0); if (getter != 0) SET_FIELD_WRAPPED(obj, set_getter, getter); if (setter != 0) SET_FIELD_WRAPPED(obj, set_setter, setter); if (query != 0) SET_FIELD_WRAPPED(obj, set_query, query); if (remover != 0) SET_FIELD_WRAPPED(obj, set_deleter, remover); if (enumerator != 0) SET_FIELD_WRAPPED(obj, set_enumerator, enumerator); - obj->set_flags(0); obj->set_can_intercept_symbols( !(static_cast(flags) & static_cast(PropertyHandlerFlags::kOnlyInterceptStrings))); @@ -1457,6 +1457,7 @@ void ObjectTemplate::SetHandler( EnsureNotInstantiated(cons, "v8::ObjectTemplate::SetHandler"); auto obj = i::Handle::cast( isolate->factory()->NewStruct(i::INTERCEPTOR_INFO_TYPE)); + obj->set_flags(0); if (config.getter != 0) SET_FIELD_WRAPPED(obj, set_getter, config.getter); if (config.setter != 0) SET_FIELD_WRAPPED(obj, set_setter, config.setter); @@ -1465,7 +1466,6 @@ void ObjectTemplate::SetHandler( if (config.enumerator != 0) { SET_FIELD_WRAPPED(obj, set_enumerator, config.enumerator); } - obj->set_flags(0); obj->set_all_can_read(static_cast(config.flags) & static_cast(PropertyHandlerFlags::kAllCanRead));