Index: src/runtime.cc |
diff --git a/src/runtime.cc b/src/runtime.cc |
index fb46114f66ee30027131e795b1c48780573e2090..811d72d91d6832645f74579661a4ef4601671122 100644 |
--- a/src/runtime.cc |
+++ b/src/runtime.cc |
@@ -1,4 +1,4 @@ |
-// Copyright 2011 the V8 project authors. All rights reserved. |
+// Copyright 2012 the V8 project authors. All rights reserved. |
// Redistribution and use in source and binary forms, with or without |
// modification, are permitted provided that the following conditions are |
// met: |
@@ -8707,14 +8707,11 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_Call) { |
RUNTIME_FUNCTION(MaybeObject*, Runtime_Apply) { |
HandleScope scope(isolate); |
ASSERT(args.length() == 5); |
- CONVERT_CHECKED(JSReceiver, fun, args[0]); |
- Object* receiver = args[1]; |
- CONVERT_CHECKED(JSObject, arguments, args[2]); |
- CONVERT_CHECKED(Smi, shift, args[3]); |
- CONVERT_CHECKED(Smi, arity, args[4]); |
- |
- int offset = shift->value(); |
- int argc = arity->value(); |
+ CONVERT_ARG_CHECKED(JSReceiver, fun, 0); |
+ Handle<Object> receiver = args.at<Object>(1); |
+ CONVERT_ARG_CHECKED(JSObject, arguments, 2); |
+ CONVERT_SMI_ARG_CHECKED(offset, 3); |
+ CONVERT_SMI_ARG_CHECKED(argc, 4); |
ASSERT(offset >= 0); |
ASSERT(argc >= 0); |
@@ -8730,17 +8727,12 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_Apply) { |
} |
for (int i = 0; i < argc; ++i) { |
- MaybeObject* maybe = arguments->GetElement(offset + i); |
- Object* object; |
- if (!maybe->To<Object>(&object)) return maybe; |
- argv[i] = Handle<Object>(object); |
+ argv[i] = Object::GetElement(arguments, offset + i); |
} |
bool threw; |
- Handle<JSReceiver> hfun(fun); |
- Handle<Object> hreceiver(receiver); |
Handle<Object> result = |
- Execution::Call(hfun, hreceiver, argc, argv, &threw, true); |
+ Execution::Call(fun, receiver, argc, argv, &threw, true); |
if (threw) return Failure::Exception(); |
return *result; |