Commit b67e017b authored by verwaest@chromium.org's avatar verwaest@chromium.org

Remove unnecessary explicity prototype check.

The prototype is implicitly checked through a map check of the holder.
This is either checked in CheckPrototypes, or as part of the IC.

Review URL: https://chromiumcodereview.appspot.com/13529017

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14155 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent e33b6881
......@@ -1225,7 +1225,7 @@ void BaseLoadStubCompiler::NonexistentHandlerFrontend(
Handle<GlobalObject> global) {
Label miss;
Register reg = HandlerFrontendHeader(object, receiver(), last, name, &miss);
HandlerFrontendHeader(object, receiver(), last, name, &miss);
// If the last object in the prototype chain is a global object,
// check that the global property cell is empty.
......@@ -1233,13 +1233,6 @@ void BaseLoadStubCompiler::NonexistentHandlerFrontend(
GenerateCheckPropertyCell(masm(), global, name, scratch2(), &miss);
}
if (!last->HasFastProperties()) {
__ ldr(scratch2(), FieldMemOperand(reg, HeapObject::kMapOffset));
__ ldr(scratch2(), FieldMemOperand(scratch2(), Map::kPrototypeOffset));
__ cmp(scratch2(), Operand(isolate()->factory()->null_value()));
__ b(ne, &miss);
}
HandlerFrontendFooter(success, &miss);
}
......
......@@ -1113,7 +1113,7 @@ void BaseLoadStubCompiler::NonexistentHandlerFrontend(
Handle<GlobalObject> global) {
Label miss;
Register reg = HandlerFrontendHeader(object, receiver(), last, name, &miss);
HandlerFrontendHeader(object, receiver(), last, name, &miss);
// If the last object in the prototype chain is a global object,
// check that the global property cell is empty.
......@@ -1121,13 +1121,6 @@ void BaseLoadStubCompiler::NonexistentHandlerFrontend(
GenerateCheckPropertyCell(masm(), global, name, scratch2(), &miss);
}
if (!last->HasFastProperties()) {
__ mov(scratch2(), FieldOperand(reg, HeapObject::kMapOffset));
__ mov(scratch2(), FieldOperand(scratch2(), Map::kPrototypeOffset));
__ cmp(scratch2(), isolate()->factory()->null_value());
__ j(not_equal, &miss);
}
HandlerFrontendFooter(success, &miss);
}
......
......@@ -1229,7 +1229,7 @@ void BaseLoadStubCompiler::NonexistentHandlerFrontend(
Handle<GlobalObject> global) {
Label miss;
Register reg = HandlerFrontendHeader(object, receiver(), last, name, &miss);
HandlerFrontendHeader(object, receiver(), last, name, &miss);
// If the last object in the prototype chain is a global object,
// check that the global property cell is empty.
......@@ -1237,13 +1237,6 @@ void BaseLoadStubCompiler::NonexistentHandlerFrontend(
GenerateCheckPropertyCell(masm(), global, name, scratch2(), &miss);
}
if (!last->HasFastProperties()) {
__ lw(scratch2(), FieldMemOperand(reg, HeapObject::kMapOffset));
__ lw(scratch2(), FieldMemOperand(scratch2(), Map::kPrototypeOffset));
__ Branch(&miss, ne, scratch2(),
Operand(isolate()->factory()->null_value()));
}
HandlerFrontendFooter(success, &miss);
}
......
......@@ -1077,7 +1077,7 @@ void BaseLoadStubCompiler::NonexistentHandlerFrontend(
Handle<GlobalObject> global) {
Label miss;
Register reg = HandlerFrontendHeader(object, receiver(), last, name, &miss);
HandlerFrontendHeader(object, receiver(), last, name, &miss);
// If the last object in the prototype chain is a global object,
// check that the global property cell is empty.
......@@ -1085,13 +1085,6 @@ void BaseLoadStubCompiler::NonexistentHandlerFrontend(
GenerateCheckPropertyCell(masm(), global, name, scratch2(), &miss);
}
if (!last->HasFastProperties()) {
__ movq(scratch2(), FieldOperand(reg, HeapObject::kMapOffset));
__ movq(scratch2(), FieldOperand(scratch2(), Map::kPrototypeOffset));
__ Cmp(scratch2(), isolate()->factory()->null_value());
__ j(not_equal, &miss);
}
HandlerFrontendFooter(success, &miss);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment