Status: Accepted
Owner: [email protected]
Labels: Type-Bug Priority-Medium

New issue 3321 by [email protected]: CallSite should check for HasLocalProperty
http://code.google.com/p/v8/issues/detail?id=3321

The CallSite methods work if the private key is on an object in the prototype chain. Some of the methods also "work" on random objects with non sensical return values.

We should guard all of these with %HasLocalProperty. For example:

Now:

function CallSiteGetThis() {
  return GET_PRIVATE(this, CallSiteStrictModeKey)
      ? UNDEFINED : GET_PRIVATE(this, CallSiteReceiverKey);
}

Should become:

function CallSiteGetThis() {
  if (!%HasLocalProperty(this, CallSiteStrictModeKey)) {
    throw MakeTypeError('incompatible_method_receiver',
                        ['CallSite.prototype.getThis']);
  }

  return GET_PRIVATE(this, CallSiteStrictModeKey)
      ? UNDEFINED : GET_PRIVATE(this, CallSiteReceiverKey);
}

--
You received this message because this project is configured to send all issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings

--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" 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