forked from LeenkxTeam/Kmake
87 lines
1.2 KiB
JavaScript
87 lines
1.2 KiB
JavaScript
// Copyright 2024 the V8 project authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
// Flags: --expose-gc
|
|
|
|
let arrow_function;
|
|
let value_inside_class;
|
|
|
|
class C {
|
|
get x() {
|
|
return 900;
|
|
}
|
|
};
|
|
|
|
class D {
|
|
get x() {
|
|
return 800;
|
|
}
|
|
};
|
|
|
|
for (let j = 0; j < 10; j++) {
|
|
new class A extends D {
|
|
constructor() {
|
|
super();
|
|
|
|
try {
|
|
new class B extends C {
|
|
[new class extends(() => {
|
|
value_inside_class = super.x;
|
|
|
|
arrow_function = (() => {
|
|
return super.x;
|
|
});
|
|
|
|
return Array;
|
|
})() {}()] = eval();
|
|
}
|
|
();
|
|
|
|
} catch (e) {
|
|
}
|
|
}
|
|
}
|
|
();
|
|
|
|
if (j == 8) {
|
|
gc();
|
|
gc();
|
|
gc();
|
|
gc();
|
|
gc();
|
|
gc();
|
|
gc();
|
|
gc();
|
|
gc();
|
|
gc();
|
|
gc();
|
|
gc();
|
|
gc();
|
|
gc();
|
|
gc();
|
|
gc();
|
|
gc();
|
|
gc();
|
|
gc();
|
|
gc();
|
|
gc();
|
|
gc();
|
|
gc();
|
|
gc();
|
|
gc();
|
|
gc();
|
|
gc();
|
|
gc();
|
|
gc();
|
|
gc();
|
|
gc();
|
|
gc();
|
|
gc();
|
|
gc();
|
|
gc();
|
|
}
|
|
}
|
|
|
|
assertSame(value_inside_class, arrow_function());
|