Index: src/messages.js |
diff --git a/src/messages.js b/src/messages.js |
index dd8caf3bd484c773d610e4e71ebee91fa5fe6437..e823148d9113fc594484f40f6a8370fdef3c77a4 100644 |
--- a/src/messages.js |
+++ b/src/messages.js |
@@ -771,31 +771,8 @@ function CallSiteGetMethodName() { |
// this function. |
var receiver = GET_PRIVATE(this, CallSiteReceiverKey); |
var fun = GET_PRIVATE(this, CallSiteFunctionKey); |
- var ownName = fun.name; |
- if (ownName && receiver && |
- (%_CallFunction(receiver, ownName, ObjectLookupGetter) === fun || |
- %_CallFunction(receiver, ownName, ObjectLookupSetter) === fun || |
- (IS_OBJECT(receiver) && %GetDataProperty(receiver, ownName) === fun))) { |
- // To handle DontEnum properties we guess that the method has |
- // the same name as the function. |
- return ownName; |
- } |
- var name = null; |
- for (var prop in receiver) { |
- if (%_CallFunction(receiver, prop, ObjectLookupGetter) === fun || |
- %_CallFunction(receiver, prop, ObjectLookupSetter) === fun || |
- (IS_OBJECT(receiver) && %GetDataProperty(receiver, prop) === fun)) { |
- // If we find more than one match bail out to avoid confusion. |
- if (name) { |
- return null; |
- } |
- name = prop; |
- } |
- } |
- if (name) { |
- return name; |
- } |
- return null; |
+ var pos = GET_PRIVATE(this, CallSitePositionKey); |
+ return %CallSiteGetMethodNameRT(receiver, fun, pos); |
} |
function CallSiteGetFileName() { |
@@ -828,10 +805,9 @@ function CallSiteIsNative() { |
function CallSiteIsConstructor() { |
var receiver = GET_PRIVATE(this, CallSiteReceiverKey); |
- var constructor = (receiver != null && IS_OBJECT(receiver)) |
- ? %GetDataProperty(receiver, "constructor") : null; |
- if (!constructor) return false; |
- return GET_PRIVATE(this, CallSiteFunctionKey) === constructor; |
+ var fun = GET_PRIVATE(this, CallSiteFunctionKey); |
+ var pos = GET_PRIVATE(this, CallSitePositionKey); |
+ return %CallSiteIsConstructorRT(receiver, fun, pos); |
} |
function CallSiteToString() { |