Skip to content

Commit 217d654

Browse files
alexkozyCommit Bot
authored andcommitted
[parser] moved load property position after dot
Currently LdaNamedProperty bytecode for expressions like a.b has position before dot. This CL moves this location after dot. It's important for later removing of Nop bytecodes in expressions like a.b() where a is local variable, property call and property load should have the same position. R=jgruber@chromium.org Bug: v8:6425 Change-Id: I528c5007de52215beba80851ab04693ecec038e2 Reviewed-on: https://chromium-review.googlesource.com/543047 Reviewed-by: Marja Hölttä <marja@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Cr-Commit-Position: refs/heads/master@{#46163}
1 parent b45f206 commit 217d654

10 files changed

Lines changed: 657 additions & 657 deletions

File tree

src/parsing/parser-base.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3639,7 +3639,7 @@ ParserBase<Impl>::ParseMemberExpressionContinuation(ExpressionT expression,
36393639
ArrowFormalParametersUnexpectedToken();
36403640

36413641
Consume(Token::PERIOD);
3642-
int pos = position();
3642+
int pos = peek_position();
36433643
IdentifierT name = ParseIdentifierName(CHECK_OK);
36443644
expression = factory()->NewProperty(
36453645
expression, factory()->NewStringLiteral(name, pos), pos);

test/cctest/interpreter/bytecode_expectations/CallAndSpread.golden

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ bytecodes: [
1616
/* 30 E> */ B(StackCheck),
1717
/* 34 S> */ B(LdaGlobal), U8(0), U8(5),
1818
B(Star), R(1),
19-
/* 38 E> */ B(LdaNamedProperty), R(1), U8(1), U8(7),
19+
/* 39 E> */ B(LdaNamedProperty), R(1), U8(1), U8(7),
2020
B(Star), R(0),
2121
B(CreateArrayLiteral), U8(2), U8(9), U8(17),
2222
B(Star), R(2),
@@ -43,7 +43,7 @@ bytecodes: [
4343
/* 30 E> */ B(StackCheck),
4444
/* 34 S> */ B(LdaGlobal), U8(0), U8(5),
4545
B(Star), R(1),
46-
/* 38 E> */ B(LdaNamedProperty), R(1), U8(1), U8(7),
46+
/* 39 E> */ B(LdaNamedProperty), R(1), U8(1), U8(7),
4747
B(Star), R(0),
4848
B(LdaZero),
4949
B(Star), R(2),

test/cctest/interpreter/bytecode_expectations/LoadGlobal.golden

Lines changed: 128 additions & 128 deletions
Large diffs are not rendered by default.

test/cctest/interpreter/bytecode_expectations/Modules.golden

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -805,13 +805,13 @@ bytecodes: [
805805
/* 45 S> */ B(Return),
806806
/* 27 S> */ B(LdaImmutableCurrentContextSlot), U8(5),
807807
B(Star), R(4),
808-
/* 30 E> */ B(LdaNamedProperty), R(4), U8(4), U8(5),
808+
/* 31 E> */ B(LdaNamedProperty), R(4), U8(4), U8(5),
809809
B(Star), R(3),
810810
B(LdaImmutableCurrentContextSlot), U8(5),
811811
B(Star), R(5),
812812
B(LdaImmutableCurrentContextSlot), U8(5),
813813
B(Star), R(6),
814-
/* 41 E> */ B(LdaNamedProperty), R(6), U8(5), U8(7),
814+
/* 42 E> */ B(LdaNamedProperty), R(6), U8(5), U8(7),
815815
B(Star), R(6),
816816
/* 31 E> */ B(CallProperty2), R(3), R(4), R(5), R(6), U8(3),
817817
B(StaCurrentContextSlot), U8(6),

test/cctest/interpreter/bytecode_expectations/PropertyCall.golden

Lines changed: 133 additions & 133 deletions
Large diffs are not rendered by default.

test/cctest/interpreter/bytecode_expectations/PropertyLoads.golden

Lines changed: 131 additions & 131 deletions
Large diffs are not rendered by default.

test/cctest/interpreter/bytecode_expectations/RegExpLiterals.golden

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ bytecodes: [
5252
/* 30 E> */ B(StackCheck),
5353
/* 34 S> */ B(CreateRegExpLiteral), U8(0), U8(5), U8(0),
5454
B(Star), R(1),
55-
/* 47 E> */ B(LdaNamedProperty), R(1), U8(1), U8(6),
55+
/* 48 E> */ B(LdaNamedProperty), R(1), U8(1), U8(6),
5656
B(Star), R(0),
5757
B(LdaConstant), U8(2),
5858
B(Star), R(2),

test/cctest/interpreter/bytecode_expectations/StoreGlobal.golden

Lines changed: 256 additions & 256 deletions
Large diffs are not rendered by default.

test/debugger/debug/es6/debug-stepin-proxies.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ assertEquals(42, get);
5454
assertEquals([
5555
"a0",
5656
"b17", "h4b17", "i2b17", // [[Has]]
57-
"c15", "j4c15", "k2c15", // [[Get]]
57+
"c16", "j4c16", "k2c16", // [[Get]]
5858
"d0", "l4d11", "m2d11", // [[Set]]
5959
"g0"
6060
], log);

test/message/overwritten-builtins.out

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727

2828
*%(basename)s:31: TypeError: Cannot read property 'x' of undefined
2929
undefined.x
30-
^
30+
^
3131
TypeError: Cannot read property 'x' of undefined
32-
at *%(basename)s:31:10
32+
at *%(basename)s:31:11
3333

0 commit comments

Comments
 (0)