Push version 2.3.8 to trunk.

Fixed build with strict aliasing on GCC 4.4 (issue 463).

Fixed issue with incorrect handling of custom valueOf methods on string wrappers (issue 760).

Fixed compilation for ARMv4 (issue 590).

Improved performance.


git-svn-id: http://v8.googlecode.com/svn/trunk@5276 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
diff --git a/include/v8.h b/include/v8.h
index 20cef79..ff73226 100644
--- a/include/v8.h
+++ b/include/v8.h
@@ -1824,19 +1824,10 @@
 
 /**
  * Returns a non-empty handle if the interceptor intercepts the request.
- * The result is true if either a boolean (true if property exists and false
- * otherwise) or an integer encoding property attributes.
+ * The result is an integer encoding property attributes.
  */
-#ifdef USE_NEW_QUERY_CALLBACKS
 typedef Handle<Integer> (*IndexedPropertyQuery)(uint32_t index,
                                                 const AccessorInfo& info);
-#else
-typedef Handle<Boolean> (*IndexedPropertyQuery)(uint32_t index,
-                                                const AccessorInfo& info);
-#endif
-
-typedef Handle<Value> (*IndexedPropertyQueryImpl)(uint32_t index,
-                                                  const AccessorInfo& info);
 
 /**
  * Returns a non-empty handle if the deleter intercepts the request.
@@ -2054,23 +2045,7 @@
                                          IndexedPropertyQuery query,
                                          IndexedPropertyDeleter remover,
                                          IndexedPropertyEnumerator enumerator,
-                                         Handle<Value> data) {
-    IndexedPropertyQueryImpl casted =
-        reinterpret_cast<IndexedPropertyQueryImpl>(query);
-    SetIndexedInstancePropertyHandlerImpl(getter,
-                                          setter,
-                                          casted,
-                                          remover,
-                                          enumerator,
-                                          data);
-  }
-  void SetIndexedInstancePropertyHandlerImpl(
-      IndexedPropertyGetter getter,
-      IndexedPropertySetter setter,
-      IndexedPropertyQueryImpl query,
-      IndexedPropertyDeleter remover,
-      IndexedPropertyEnumerator enumerator,
-      Handle<Value> data);
+                                         Handle<Value> data);
   void SetInstanceCallAsFunctionHandler(InvocationCallback callback,
                                         Handle<Value> data);
 
@@ -2169,24 +2144,7 @@
                                  IndexedPropertyQuery query = 0,
                                  IndexedPropertyDeleter deleter = 0,
                                  IndexedPropertyEnumerator enumerator = 0,
-                                 Handle<Value> data = Handle<Value>()) {
-    IndexedPropertyQueryImpl casted =
-        reinterpret_cast<IndexedPropertyQueryImpl>(query);
-    SetIndexedPropertyHandlerImpl(getter,
-                                  setter,
-                                  casted,
-                                  deleter,
-                                  enumerator,
-                                  data);
-  }
- private:
-  void SetIndexedPropertyHandlerImpl(IndexedPropertyGetter getter,
-                                     IndexedPropertySetter setter,
-                                     IndexedPropertyQueryImpl query,
-                                     IndexedPropertyDeleter deleter,
-                                     IndexedPropertyEnumerator enumerator,
-                                     Handle<Value> data);
- public:
+                                 Handle<Value> data = Handle<Value>());
 
   /**
    * Sets the callback to be used when calling instances created from