Version 3.15.3

Changed sample shell to send non-JS output (e.g. errors) to stderr instead of stdout.

Correctly check for stack overflow even when interrupt is pending. (issue 214)

Collect stack trace on stack overflow. (issue 2394)

Performance and stability improvements on all platforms.

git-svn-id: http://v8.googlecode.com/svn/trunk@12947 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
diff --git a/src/ia32/lithium-ia32.h b/src/ia32/lithium-ia32.h
index 18741d1..88b1ef0 100644
--- a/src/ia32/lithium-ia32.h
+++ b/src/ia32/lithium-ia32.h
@@ -1408,16 +1408,13 @@
 };
 
 
-template <class T>
-inline static bool ExternalArrayOpRequiresTemp(T* value) {
-  CHECK(value->IsLoadKeyed() || value->IsStoreKeyed());
-  Representation key_representation = value->key()->representation();
-  ElementsKind elements_kind = value->elements_kind();
-
+inline static bool ExternalArrayOpRequiresTemp(
+    Representation key_representation,
+    ElementsKind elements_kind) {
   // Operations that require the key to be divided by two to be converted into
   // an index cannot fold the scale operation into a load and need an extra
   // temp register to do the work.
-  return !value->IsConstant() && key_representation.IsTagged() &&
+  return key_representation.IsTagged() &&
       (elements_kind == EXTERNAL_BYTE_ELEMENTS ||
        elements_kind == EXTERNAL_UNSIGNED_BYTE_ELEMENTS ||
        elements_kind == EXTERNAL_PIXEL_ELEMENTS);