fe6839ba6d
This patch uses a bit in the Variable bit fields to distinguish static private names from instance private names, so that we can check the conflicts of private accessors that are complementary but with different staticness in the parser, and use this information later when generating code for checking static brands for private method access. Design doc: https://docs.google.com/document/d/1rgGRw5RdzaRrM-GrIMhsn-DLULtADV2dmIdh_iIZxlc/edit Bug: v8:8330 Change-Id: I8d70600e594e3d07f77ea519751b7ca2e0de87b5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1781010 Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Joyee Cheung <joyee@igalia.com> Cr-Commit-Position: refs/heads/master@{#63677}
257 lines
7.0 KiB
Plaintext
257 lines
7.0 KiB
Plaintext
#
|
|
# Autogenerated by generate-bytecode-expectations.
|
|
#
|
|
|
|
---
|
|
wrap: yes
|
|
private methods: yes
|
|
|
|
---
|
|
snippet: "
|
|
{
|
|
class A {
|
|
static #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),
|
|
/* 84 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 A {
|
|
static get #a() { return 1; }
|
|
}
|
|
}
|
|
"
|
|
frame size: 8
|
|
parameter count: 1
|
|
bytecode array length: 65
|
|
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(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(3),
|
|
B(Star), R(5),
|
|
B(CallRuntime), U16(Runtime::kCreatePrivateNameSymbol), R(5), U8(1),
|
|
B(StaCurrentContextSlot), U8(5),
|
|
B(CreateClosure), U8(4), U8(1), U8(2),
|
|
B(Star), R(6),
|
|
B(LdaNull),
|
|
B(Star), R(7),
|
|
B(CallRuntime), U16(Runtime::kCreatePrivateAccessors), R(6), U8(2),
|
|
B(StaCurrentContextSlot), U8(4),
|
|
B(PopContext), R(2),
|
|
B(Mov), R(1), R(0),
|
|
B(LdaUndefined),
|
|
/* 88 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
SCOPE_INFO_TYPE,
|
|
FIXED_ARRAY_TYPE,
|
|
SHARED_FUNCTION_INFO_TYPE,
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["A"],
|
|
SHARED_FUNCTION_INFO_TYPE,
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
{
|
|
class A {
|
|
static set #a(val) { }
|
|
}
|
|
}
|
|
"
|
|
frame size: 8
|
|
parameter count: 1
|
|
bytecode array length: 65
|
|
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(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(3),
|
|
B(Star), R(5),
|
|
B(CallRuntime), U16(Runtime::kCreatePrivateNameSymbol), R(5), U8(1),
|
|
B(StaCurrentContextSlot), U8(5),
|
|
B(LdaNull),
|
|
B(Star), R(6),
|
|
B(CreateClosure), U8(4), U8(1), U8(2),
|
|
B(Star), R(7),
|
|
B(CallRuntime), U16(Runtime::kCreatePrivateAccessors), R(6), U8(2),
|
|
B(StaCurrentContextSlot), U8(4),
|
|
B(PopContext), R(2),
|
|
B(Mov), R(1), R(0),
|
|
B(LdaUndefined),
|
|
/* 81 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
SCOPE_INFO_TYPE,
|
|
FIXED_ARRAY_TYPE,
|
|
SHARED_FUNCTION_INFO_TYPE,
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["A"],
|
|
SHARED_FUNCTION_INFO_TYPE,
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
{
|
|
class A {
|
|
static get #a() { return 1; }
|
|
static set #a(val) { }
|
|
}
|
|
}
|
|
"
|
|
frame size: 8
|
|
parameter count: 1
|
|
bytecode array length: 68
|
|
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(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(3),
|
|
B(Star), R(5),
|
|
B(CallRuntime), U16(Runtime::kCreatePrivateNameSymbol), R(5), U8(1),
|
|
B(StaCurrentContextSlot), U8(5),
|
|
B(CreateClosure), U8(4), U8(1), U8(2),
|
|
B(Star), R(6),
|
|
B(CreateClosure), U8(5), U8(2), U8(2),
|
|
B(Star), R(7),
|
|
B(CallRuntime), U16(Runtime::kCreatePrivateAccessors), R(6), U8(2),
|
|
B(StaCurrentContextSlot), U8(4),
|
|
B(PopContext), R(2),
|
|
B(Mov), R(1), R(0),
|
|
B(LdaUndefined),
|
|
/* 115 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
SCOPE_INFO_TYPE,
|
|
FIXED_ARRAY_TYPE,
|
|
SHARED_FUNCTION_INFO_TYPE,
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["A"],
|
|
SHARED_FUNCTION_INFO_TYPE,
|
|
SHARED_FUNCTION_INFO_TYPE,
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
{
|
|
class A {
|
|
static #a() { }
|
|
#b() { }
|
|
}
|
|
}
|
|
"
|
|
frame size: 7
|
|
parameter count: 1
|
|
bytecode array length: 61
|
|
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(CreateClosure), U8(4), U8(2), U8(2),
|
|
B(StaCurrentContextSlot), U8(5),
|
|
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(5),
|
|
B(Star), R(5),
|
|
B(CallRuntime), U16(Runtime::kCreatePrivateNameSymbol), R(5), U8(1),
|
|
B(StaCurrentContextSlot), U8(6),
|
|
B(PopContext), R(2),
|
|
B(Mov), R(1), R(0),
|
|
B(LdaUndefined),
|
|
/* 87 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
SCOPE_INFO_TYPE,
|
|
FIXED_ARRAY_TYPE,
|
|
SHARED_FUNCTION_INFO_TYPE,
|
|
SHARED_FUNCTION_INFO_TYPE,
|
|
SHARED_FUNCTION_INFO_TYPE,
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["A"],
|
|
]
|
|
handlers: [
|
|
]
|
|
|