df12eb194e
This patch implements the access of private accessors by loading the referenced component from the AccessorPair associated with private name variables. It also makes the error messages for invalid kind of private accessor access more specific. Bug: v8:8330 Design doc: https://docs.google.com/document/d/10W4begYfs7lmldSqBoQBBt_BKamgT8igqxF9u50RGrI/edit Change-Id: I6d441cffb85f8d9cd0417ec9b6ae20f3e34ef418 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1695205 Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Joyee Cheung <joyee@igalia.com> Cr-Commit-Position: refs/heads/master@{#63474}
199 lines
5.7 KiB
Plaintext
199 lines
5.7 KiB
Plaintext
#
|
|
# Autogenerated by generate-bytecode-expectations.
|
|
#
|
|
|
|
---
|
|
wrap: yes
|
|
private methods: yes
|
|
|
|
---
|
|
snippet: "
|
|
{
|
|
class A {
|
|
#a() { return 1; }
|
|
}
|
|
}
|
|
"
|
|
frame size: 7
|
|
parameter count: 1
|
|
bytecode array length: 55
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
B(CreateBlockContext), U8(0),
|
|
B(PushContext), R(2),
|
|
B(LdaTheHole),
|
|
B(Star), R(6),
|
|
B(CreateClosure), U8(2), U8(0), U8(2),
|
|
B(Star), R(3),
|
|
B(LdaConstant), U8(1),
|
|
B(Star), R(4),
|
|
B(CreateClosure), U8(3), U8(1), U8(2),
|
|
B(StaCurrentContextSlot), U8(4),
|
|
B(Mov), R(3), R(5),
|
|
B(CallRuntime), U16(Runtime::kDefineClass), R(4), U8(3),
|
|
B(Star), R(4),
|
|
B(Mov), R(5), R(1),
|
|
B(LdaConstant), U8(4),
|
|
B(Star), R(5),
|
|
B(CallRuntime), U16(Runtime::kCreatePrivateNameSymbol), R(5), U8(1),
|
|
B(StaCurrentContextSlot), U8(5),
|
|
B(PopContext), R(2),
|
|
B(Mov), R(1), R(0),
|
|
B(LdaUndefined),
|
|
/* 77 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
SCOPE_INFO_TYPE,
|
|
FIXED_ARRAY_TYPE,
|
|
SHARED_FUNCTION_INFO_TYPE,
|
|
SHARED_FUNCTION_INFO_TYPE,
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["A"],
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
{
|
|
class D {
|
|
#d() { return 1; }
|
|
}
|
|
class E extends D {
|
|
#e() { return 2; }
|
|
}
|
|
}
|
|
"
|
|
frame size: 9
|
|
parameter count: 1
|
|
bytecode array length: 107
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
B(CreateBlockContext), U8(0),
|
|
B(PushContext), R(4),
|
|
B(LdaTheHole),
|
|
B(Star), R(8),
|
|
B(CreateClosure), U8(2), U8(0), U8(2),
|
|
B(Star), R(5),
|
|
B(LdaConstant), U8(1),
|
|
B(Star), R(6),
|
|
B(CreateClosure), U8(3), U8(1), U8(2),
|
|
B(StaCurrentContextSlot), U8(4),
|
|
B(Mov), R(5), R(7),
|
|
B(CallRuntime), U16(Runtime::kDefineClass), R(6), U8(3),
|
|
B(Star), R(6),
|
|
B(Mov), R(7), R(3),
|
|
B(LdaConstant), U8(4),
|
|
B(Star), R(7),
|
|
B(CallRuntime), U16(Runtime::kCreatePrivateNameSymbol), R(7), U8(1),
|
|
B(StaCurrentContextSlot), U8(5),
|
|
B(PopContext), R(4),
|
|
B(Mov), R(3), R(0),
|
|
/* 38 E> */ B(CreateBlockContext), U8(5),
|
|
B(PushContext), R(4),
|
|
/* 93 E> */ B(CreateClosure), U8(7), U8(2), U8(2),
|
|
B(Star), R(5),
|
|
B(LdaConstant), U8(6),
|
|
B(Star), R(6),
|
|
B(CreateClosure), U8(8), U8(3), U8(2),
|
|
B(StaCurrentContextSlot), U8(4),
|
|
B(Mov), R(5), R(7),
|
|
B(Mov), R(3), R(8),
|
|
B(CallRuntime), U16(Runtime::kDefineClass), R(6), U8(3),
|
|
B(Star), R(6),
|
|
B(Mov), R(7), R(2),
|
|
B(LdaConstant), U8(9),
|
|
B(Star), R(7),
|
|
B(CallRuntime), U16(Runtime::kCreatePrivateNameSymbol), R(7), U8(1),
|
|
B(StaCurrentContextSlot), U8(5),
|
|
B(PopContext), R(4),
|
|
B(Mov), R(2), R(1),
|
|
B(LdaUndefined),
|
|
/* 126 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
SCOPE_INFO_TYPE,
|
|
FIXED_ARRAY_TYPE,
|
|
SHARED_FUNCTION_INFO_TYPE,
|
|
SHARED_FUNCTION_INFO_TYPE,
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["D"],
|
|
SCOPE_INFO_TYPE,
|
|
FIXED_ARRAY_TYPE,
|
|
SHARED_FUNCTION_INFO_TYPE,
|
|
SHARED_FUNCTION_INFO_TYPE,
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["E"],
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
{
|
|
class A { foo() {} }
|
|
class C extends A {
|
|
#m() { return super.foo; }
|
|
}
|
|
}
|
|
"
|
|
frame size: 10
|
|
parameter count: 1
|
|
bytecode array length: 106
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
B(CreateBlockContext), U8(0),
|
|
B(PushContext), R(4),
|
|
B(LdaTheHole),
|
|
B(Star), R(8),
|
|
B(CreateClosure), U8(2), U8(0), U8(2),
|
|
B(Star), R(5),
|
|
B(LdaConstant), U8(1),
|
|
B(Star), R(6),
|
|
B(CreateClosure), U8(3), U8(1), U8(2),
|
|
B(Star), R(9),
|
|
B(Mov), R(5), R(7),
|
|
B(CallRuntime), U16(Runtime::kDefineClass), R(6), U8(4),
|
|
B(Star), R(6),
|
|
B(Mov), R(7), R(3),
|
|
B(PopContext), R(4),
|
|
B(Mov), R(3), R(0),
|
|
/* 38 E> */ B(CreateBlockContext), U8(4),
|
|
B(PushContext), R(4),
|
|
/* 77 E> */ B(CreateClosure), U8(6), U8(2), U8(2),
|
|
B(Star), R(5),
|
|
B(LdaConstant), U8(5),
|
|
B(Star), R(6),
|
|
B(CreateClosure), U8(7), U8(3), U8(2),
|
|
B(StaCurrentContextSlot), U8(4),
|
|
B(Mov), R(5), R(7),
|
|
B(Mov), R(3), R(8),
|
|
B(CallRuntime), U16(Runtime::kDefineClass), R(6), U8(3),
|
|
B(Star), R(6),
|
|
B(Mov), R(7), R(2),
|
|
B(LdaConstant), U8(8),
|
|
B(Star), R(7),
|
|
B(CallRuntime), U16(Runtime::kCreatePrivateNameSymbol), R(7), U8(1),
|
|
B(StaCurrentContextSlot), U8(5),
|
|
B(LdaCurrentContextSlot), U8(4),
|
|
B(Star), R(8),
|
|
B(Ldar), R(6),
|
|
B(StaNamedProperty), R(8), U8(9), U8(0),
|
|
B(PopContext), R(4),
|
|
B(Mov), R(2), R(1),
|
|
B(LdaUndefined),
|
|
/* 118 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
SCOPE_INFO_TYPE,
|
|
FIXED_ARRAY_TYPE,
|
|
SHARED_FUNCTION_INFO_TYPE,
|
|
SHARED_FUNCTION_INFO_TYPE,
|
|
SCOPE_INFO_TYPE,
|
|
FIXED_ARRAY_TYPE,
|
|
SHARED_FUNCTION_INFO_TYPE,
|
|
SHARED_FUNCTION_INFO_TYPE,
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["C"],
|
|
SYMBOL_TYPE,
|
|
]
|
|
handlers: [
|
|
]
|
|
|