| Index: src/x64/codegen-x64.cc
|
| ===================================================================
|
| --- src/x64/codegen-x64.cc (revision 6199)
|
| +++ src/x64/codegen-x64.cc (working copy)
|
| @@ -627,10 +627,10 @@
|
|
|
| Comment cmnt(masm_, "[ store arguments object");
|
| if (mode == LAZY_ARGUMENTS_ALLOCATION && initial) {
|
| - // When using lazy arguments allocation, we store the hole value
|
| + // When using lazy arguments allocation, we store the arguments marker value
|
| // as a sentinel indicating that the arguments object hasn't been
|
| // allocated yet.
|
| - frame_->Push(Factory::the_hole_value());
|
| + frame_->Push(Factory::arguments_marker());
|
| } else {
|
| ArgumentsAccessStub stub(ArgumentsAccessStub::NEW_OBJECT);
|
| frame_->PushFunction();
|
| @@ -655,9 +655,9 @@
|
| if (probe.is_constant()) {
|
| // We have to skip updating the arguments object if it has
|
| // been assigned a proper value.
|
| - skip_arguments = !probe.handle()->IsTheHole();
|
| + skip_arguments = !probe.handle()->IsArgumentsMarker();
|
| } else {
|
| - __ CompareRoot(probe.reg(), Heap::kTheHoleValueRootIndex);
|
| + __ CompareRoot(probe.reg(), Heap::kArgumentsMarkerRootIndex);
|
| probe.Unuse();
|
| done.Branch(not_equal);
|
| }
|
| @@ -2516,9 +2516,9 @@
|
| Label slow, done;
|
| bool try_lazy = true;
|
| if (probe.is_constant()) {
|
| - try_lazy = probe.handle()->IsTheHole();
|
| + try_lazy = probe.handle()->IsArgumentsMarker();
|
| } else {
|
| - __ CompareRoot(probe.reg(), Heap::kTheHoleValueRootIndex);
|
| + __ CompareRoot(probe.reg(), Heap::kArgumentsMarkerRootIndex);
|
| probe.Unuse();
|
| __ j(not_equal, &slow);
|
| }
|
| @@ -4417,7 +4417,7 @@
|
| // If the loaded value is a constant, we know if the arguments
|
| // object has been lazily loaded yet.
|
| if (value.is_constant()) {
|
| - if (value.handle()->IsTheHole()) {
|
| + if (value.handle()->IsArgumentsMarker()) {
|
| Result arguments = StoreArgumentsObject(false);
|
| frame_->Push(&arguments);
|
| } else {
|
| @@ -4430,7 +4430,7 @@
|
| // indicates that we haven't loaded the arguments object yet, we
|
| // need to do it now.
|
| JumpTarget exit;
|
| - __ CompareRoot(value.reg(), Heap::kTheHoleValueRootIndex);
|
| + __ CompareRoot(value.reg(), Heap::kArgumentsMarkerRootIndex);
|
| frame_->Push(&value);
|
| exit.Branch(not_equal);
|
| Result arguments = StoreArgumentsObject(false);
|
|
|