X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/4be4e30906bcb8ee30b4d189205cb70bad6707ce..81345200c95645a1b0d2635520f96ad55dfde63f:/interpreter/CallFrameClosure.h diff --git a/interpreter/CallFrameClosure.h b/interpreter/CallFrameClosure.h index 7ae1e6f..e332662 100644 --- a/interpreter/CallFrameClosure.h +++ b/interpreter/CallFrameClosure.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009 Apple Inc. All rights reserved. + * Copyright (C) 2009, 2013 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -26,11 +26,13 @@ #ifndef CallFrameClosure_h #define CallFrameClosure_h +#include "ProtoCallFrame.h" + namespace JSC { struct CallFrameClosure { CallFrame* oldCallFrame; - CallFrame* newCallFrame; + ProtoCallFrame* protoCallFrame; JSFunction* function; FunctionExecutable* functionExecutable; VM* vm; @@ -40,23 +42,17 @@ struct CallFrameClosure { void setThis(JSValue value) { - newCallFrame->setThisValue(value); + protoCallFrame->setThisValue(value); } void setArgument(int argument, JSValue value) { - newCallFrame->setArgument(argument, value); + protoCallFrame->setArgument(argument, value); } void resetCallFrame() { - newCallFrame->setScope(scope); - // setArgument() takes an arg index that starts from 0 for the first - // argument after the 'this' value. Since both argumentCountIncludingThis - // and parameterCountIncludingThis includes the 'this' value, we need to - // subtract 1 from them to make i a valid argument index for setArgument(). - for (int i = argumentCountIncludingThis-1; i < parameterCountIncludingThis-1; ++i) - newCallFrame->setArgument(i, jsUndefined()); + protoCallFrame->setScope(scope); } };