Reviewers: Lasse Reichstein, Mads Ager,

Message:
In strict mode, "this" is passed unchanged through calls to
Function.prototype.call and Function.prototype.apply.

There will be further change, to pass this unchanged through regular function call, outside of Function.prototype.call and Function.prototype.apply. Hopefully
coming soon.

Thank you!
Martin


http://codereview.chromium.org/6524006/diff/1/src/x64/builtins-x64.cc
File src/x64/builtins-x64.cc (right):

http://codereview.chromium.org/6524006/diff/1/src/x64/builtins-x64.cc#newcode651
src/x64/builtins-x64.cc:651: // Compute the receiver in non-strict mode.
Tricky ... on 64 bit the fields in SharedFunctionInfo are packed and
every other is not smi. CompilerHints is one of them, so the mask is not
shifted by (kStrictModeFunction + kSmiTagSize) as on arm and ia32.

Description:
Strict mode function entry.
Function.call/Function.apply skip transformation of the thisArg
when calling strict mode function.


BUG=
TEST=es5conform, test/mjsunit/strict-mode.js

Please review this at http://codereview.chromium.org/6524006/

SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge

Affected files:
  M src/arm/builtins-arm.cc
  M src/ia32/builtins-ia32.cc
  M src/objects.h
  M src/x64/builtins-x64.cc
  M test/es5conform/es5conform.status
  M test/mjsunit/strict-mode.js


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

Reply via email to