Commit 36ed9ca3 authored by loislo's avatar loislo Committed by Commit bot

A few tests fails when I run them with --hydrogen-track-positions

The root of problem is the fact that we don't track the position of 'this' statement but use them when visit compare statement.
As a result we have -1 as the position of left expression and the resulting relative position is negative and doesn't fit into BitField.

BUG=452067
TEST=test-cpu-profiler/SourceLocation
LOG=n

Review URL: https://codereview.chromium.org/940593002

Cr-Commit-Position: refs/heads/master@{#26741}
parent 5242700d
......@@ -1375,7 +1375,8 @@ class PreParserTraits {
}
static PreParserExpression ThisExpression(Scope* scope,
PreParserFactory* factory) {
PreParserFactory* factory,
int pos) {
return PreParserExpression::This();
}
......@@ -1850,7 +1851,7 @@ ParserBase<Traits>::ParsePrimaryExpression(bool* ok) {
case Token::THIS: {
Consume(Token::THIS);
scope_->RecordThisUsage();
result = this->ThisExpression(scope_, factory());
result = this->ThisExpression(scope_, factory(), pos);
break;
}
......
......@@ -1780,3 +1780,19 @@ TEST(CollectDeoptEvents) {
iopt_function->deopt_infos()[1].deopt_reason);
iprofiler->DeleteProfile(iprofile);
}
TEST(SourceLocation) {
i::FLAG_always_opt = true;
i::FLAG_hydrogen_track_positions = true;
LocalContext env;
v8::HandleScope scope(CcTest::isolate());
const char* source =
"function CompareStatementWithThis() {\n"
" if (this === 1) {}\n"
"}\n"
"CompareStatementWithThis();\n";
v8::Script::Compile(v8_str(source))->Run();
}
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