From 681ab6e30c344e0db43ac74462f60c65b46e4b1a Mon Sep 17 00:00:00 2001 From: "ager@chromium.org" Date: Thu, 25 Jun 2009 12:20:15 +0000 Subject: [PATCH] Reintroduce recording of source position that was lost on ia32 for some reason. Review URL: http://codereview.chromium.org/147147 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2275 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/ia32/codegen-ia32.cc | 8 ++++++++ test/message/overwritten-builtins.out | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/ia32/codegen-ia32.cc b/src/ia32/codegen-ia32.cc index 9bc6290..e03a3dc 100644 --- a/src/ia32/codegen-ia32.cc +++ b/src/ia32/codegen-ia32.cc @@ -6095,6 +6095,13 @@ void Reference::GetValue(TypeofState typeof_state) { ASSERT(cgen_->HasValidEntryRegisters()); ASSERT(!is_illegal()); MacroAssembler* masm = cgen_->masm(); + + // Record the source position for the property load. + Property* property = expression_->AsProperty(); + if (property != NULL) { + cgen_->CodeForSourcePosition(property->position()); + } + switch (type_) { case SLOT: { Comment cmnt(masm, "[ Load from Slot"); @@ -6186,6 +6193,7 @@ void Reference::GetValue(TypeofState typeof_state) { Variable* var = expression_->AsVariableProxy()->AsVariable(); bool is_global = var != NULL; ASSERT(!is_global || var->is_global()); + // Inline array load code if inside of a loop. We do not know // the receiver map yet, so we initially generate the code with // a check against an invalid map. In the inline cache code, we diff --git a/test/message/overwritten-builtins.out b/test/message/overwritten-builtins.out index 88f7cf5..ccf2924 100644 --- a/test/message/overwritten-builtins.out +++ b/test/message/overwritten-builtins.out @@ -27,4 +27,4 @@ *%(basename)s:31: TypeError: Cannot read property 'x' of undefined undefined.x -^ + ^ -- 2.7.4