There are 3 methods where early return happen before the
miss label is bound. This is harmless in Release mode,
in Debug an assertion fails.
Review URL: http://codereview.chromium.org/3405022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5508
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
name,
r1,
&miss);
- if (cell->IsFailure()) return cell;
+ if (cell->IsFailure()) {
+ miss.Unuse();
+ return cell;
+ }
}
// Return undefined if maps of the full prototype chain are still the
Failure* failure = Failure::InternalError();
bool success = GenerateLoadCallback(object, holder, r0, r2, r3, r1, r4,
callback, name, &miss, &failure);
- if (!success) return failure;
+ if (!success) {
+ miss.Unuse();
+ return failure;
+ }
__ bind(&miss);
GenerateLoadMiss(masm(), Code::LOAD_IC);
Failure* failure = Failure::InternalError();
bool success = GenerateLoadCallback(receiver, holder, r1, r0, r2, r3, r4,
callback, name, &miss, &failure);
- if (!success) return failure;
+ if (!success) {
+ miss.Unuse();
+ return failure;
+ }
__ bind(&miss);
GenerateLoadMiss(masm(), Code::KEYED_LOAD_IC);
name,
edx,
&miss);
- if (cell->IsFailure()) return cell;
+ if (cell->IsFailure()) {
+ miss.Unuse();
+ return cell;
+ }
}
// Return undefined if maps of the full prototype chain are still the
Failure* failure = Failure::InternalError();
bool success = GenerateLoadCallback(object, holder, eax, ecx, ebx, edx, edi,
callback, name, &miss, &failure);
- if (!success) return failure;
+ if (!success) {
+ miss.Unuse();
+ return failure;
+ }
__ bind(&miss);
GenerateLoadMiss(masm(), Code::LOAD_IC);
Failure* failure = Failure::InternalError();
bool success = GenerateLoadCallback(receiver, holder, edx, eax, ebx, ecx, edi,
callback, name, &miss, &failure);
- if (!success) return failure;
+ if (!success) {
+ miss.Unuse();
+ return failure;
+ }
__ bind(&miss);
+
__ DecrementCounter(&Counters::keyed_load_callback, 1);
GenerateLoadMiss(masm(), Code::KEYED_LOAD_IC);
Failure* failure = Failure::InternalError();
bool success = GenerateLoadCallback(object, holder, rax, rcx, rbx, rdx, rdi,
callback, name, &miss, &failure);
- if (!success) return failure;
+ if (!success) {
+ miss.Unuse();
+ return failure;
+ }
__ bind(&miss);
GenerateLoadMiss(masm(), Code::LOAD_IC);
name,
rdx,
&miss);
- if (cell->IsFailure()) return cell;
+ if (cell->IsFailure()) {
+ miss.Unuse();
+ return cell;
+ }
}
// Return undefined if maps of the full prototype chain are still the
Failure* failure = Failure::InternalError();
bool success = GenerateLoadCallback(receiver, holder, rdx, rax, rbx, rcx, rdi,
callback, name, &miss, &failure);
- if (!success) return failure;
+ if (!success) {
+ miss.Unuse();
+ return failure;
+ }
__ bind(&miss);
__ DecrementCounter(&Counters::keyed_load_callback, 1);