Hello again,

I have a strange failure in the Delete method for objects (running 4.9). 
When I do:

v8::Maybe<bool> delOk = obj->Delete(ctx,id);

I get the return value "false".

After stepping into V8 code, I see that it fails in 
JSReceiver::DeleteProperty(LookupIterator* 
it, LanguageMode language_mode), in this segment:
...
     case LookupIterator::ACCESSOR: {
       *if (!it->IsConfigurable() || receiver->map()->is_strong()) {*
         // Fail if the property is not configurable, or on a strong object.
         if (is_strict(language_mode)) {
           MessageTemplate::Template templ =
               receiver->map()->is_strong()
                   ? MessageTemplate::kStrongDeleteProperty
                   : MessageTemplate::kStrictDeleteProperty;
           isolate->Throw(*isolate->factory()->NewTypeError(
               templ, it->GetName(), receiver));
           return Nothing<bool>();
         }
         return Just(false);
...
I noticed that it->IsConfigurable() returns false. However, after checking 
the property in my own code like this:

auto maybeAttr = obj->GetPropertyAttributes(ctx, id);

The attribute returns 2 (v8::DontEnum) only.

Is there any other reason, why the property looks non-deletable to V8?

-- 
-- 
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users
--- 
You received this message because you are subscribed to the Google Groups 
"v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to