Micro-optimize passing of args to HasLocalProperty.
authorvitalyr@chromium.org <vitalyr@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Thu, 12 May 2011 16:19:03 +0000 (16:19 +0000)
committervitalyr@chromium.org <vitalyr@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Thu, 12 May 2011 16:19:03 +0000 (16:19 +0000)
Review URL: http://codereview.chromium.org/7018001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7878 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

src/macros.py
src/v8natives.js

index 69f36c09c050a7f7ddd4c81d969b9901f6c96786..28d501f37d86324bad3f57828152bb98b2a75220 100644 (file)
@@ -127,7 +127,7 @@ macro TO_INT32(arg) = (%_IsSmi(%IS_VAR(arg)) ? arg : (arg >> 0));
 macro TO_UINT32(arg) = (arg >>> 0);
 macro TO_STRING_INLINE(arg) = (IS_STRING(%IS_VAR(arg)) ? arg : NonStringToString(arg));
 macro TO_NUMBER_INLINE(arg) = (IS_NUMBER(%IS_VAR(arg)) ? arg : NonNumberToNumber(arg));
-
+macro TO_OBJECT_INLINE(arg) = (IS_SPEC_OBJECT(%IS_VAR(arg)) ? arg : ToObject(arg));
 
 # Macros implemented in Python.
 python macro CHAR_CODE(str) = ord(str[1]);
index 7a4be276d72f1af93e4c2cfa95e8956acfb429db..f5c251ee033988be9c57514ca8f988b9a302231f 100644 (file)
@@ -234,7 +234,7 @@ function ObjectValueOf() {
 
 // ECMA-262 - 15.2.4.5
 function ObjectHasOwnProperty(V) {
-  return %HasLocalProperty(ToObject(this), ToString(V));
+  return %HasLocalProperty(TO_OBJECT_INLINE(this), TO_STRING_INLINE(V));
 }