LGTM if Kevin agrees.

http://codereview.chromium.org/6698015/diff/1/src/arm/code-stubs-arm.cc
File src/arm/code-stubs-arm.cc (right):

http://codereview.chromium.org/6698015/diff/1/src/arm/code-stubs-arm.cc#newcode4807
src/arm/code-stubs-arm.cc:4807: int arguments_object_size) {
Could you get these values from methods on ArgumentsAccessStub that
switch on the type_?

http://codereview.chromium.org/6698015/diff/1/src/bootstrapper.cc
File src/bootstrapper.cc (right):

http://codereview.chromium.org/6698015/diff/1/src/bootstrapper.cc#newcode998
src/bootstrapper.cc:998: //       callee must be added as the second
property.
These are swapped because length is the only one requiring an in-object
field now?

http://codereview.chromium.org/6698015/diff/1/src/heap.cc
File src/heap.cc (right):

http://codereview.chromium.org/6698015/diff/1/src/heap.cc#newcode2942
src/heap.cc:2942: if (arguments_object_size == kArgumentsObjectSize) {
Save the is_strict_callee boolean as a variable, and use it both above
and here, instead of checking a derived value here.

http://codereview.chromium.org/6698015/diff/1/src/ia32/code-stubs-ia32.cc
File src/ia32/code-stubs-ia32.cc (right):

http://codereview.chromium.org/6698015/diff/1/src/ia32/code-stubs-ia32.cc#newcode3660
src/ia32/code-stubs-ia32.cc:3660: __ mov(FieldOperand(eax,
JSObject::kHeaderSize + kPointerSize), ebx);
use
  FieldOperand(eax, JSObject::kHeaderSize + Heap::arguments_callee_index
* kPointerSize)
instead of implicitly duplicating the constant in the expression.

http://codereview.chromium.org/6698015/diff/1/src/ia32/code-stubs-ia32.cc#newcode3666
src/ia32/code-stubs-ia32.cc:3666: __ mov(FieldOperand(eax,
JSObject::kHeaderSize), ecx);
Ditto here. Just do
FieldOperand(eax, JSObject::kHeaderSize + Heap::arguments_length_index *
kPointerSize)

http://codereview.chromium.org/6698015/diff/1/test/mjsunit/strict-mode.js
File test/mjsunit/strict-mode.js (right):

http://codereview.chromium.org/6698015/diff/1/test/mjsunit/strict-mode.js#newcode1061
test/mjsunit/strict-mode.js:1061: CheckPillDescriptor(args, "callee");
How about a strict function calling a non-strict function that returns
arguments? This should still poison caller (but not callee according to
10.6, [[Get]], step 3.b).
I think that might not be implemented yet, correct?

http://codereview.chromium.org/6698015/

--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to