Fixed usage of NewArgumentsObject for accessor.
authorbak@chromium.org <bak@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Thu, 23 Oct 2008 15:06:31 +0000 (15:06 +0000)
committerbak@chromium.org <bak@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Thu, 23 Oct 2008 15:06:31 +0000 (15:06 +0000)
Review URL: http://codereview.chromium.org/7917

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

src/accessors.cc

index cfaf44cdb53a5fe21556b4fdbfc5c0ca55c41d65..47d58a47dd3d6b8150cac72551bcc6b793a145c1 100644 (file)
@@ -382,11 +382,12 @@ Object* Accessors::FunctionGetArguments(Object* object, void*) {
     // mirror for the right frame.
     const int length = frame->GetProvidedParametersCount();
     Handle<JSObject> arguments = Factory::NewArgumentsObject(function, length);
+    Handle<FixedArray> array = Factory::NewFixedArray(length);
 
     // Copy the parameters to the arguments object.
-    FixedArray* array = FixedArray::cast(arguments->elements());
     ASSERT(array->length() == length);
     for (int i = 0; i < length; i++) array->set(i, frame->GetParameter(i));
+    arguments->set_elements(*array);
 
     // Return the freshly allocated arguments object.
     return *arguments;