Fixup Class Elements: make templates from custom V8 tests

This commit is contained in:
Rick Waldron 2020-09-10 15:02:55 -04:00
parent 5c753769e6
commit dd80cd2ea9
101 changed files with 1835 additions and 0 deletions

View File

@ -22,3 +22,5 @@ template: initializer-eval-super-property
//- initializer
super.x
//- arrow-body
() => super.x

View File

@ -19,3 +19,5 @@ template: initializer-eval-super-property
//- initializer
super['x']
//- arrow-body
() => super['x']

View File

@ -23,6 +23,8 @@ template: initializer-eval-arguments
//- initializer
arguments
//- arrow-body
() => arguments
//- earlyerror
SyntaxError
//- executionerror

View File

@ -23,6 +23,8 @@ template: initializer-eval-newtarget
//- initializer
new.target
//- arrow-body
() => new.target
//- earlyerror
SyntaxError
//- executionerror

View File

@ -23,6 +23,8 @@ template: initializer-eval-super-call
//- initializer
super()['x']
//- arrow-body
() => super()['x']
//- earlyerror
SyntaxError
//- executionerror

View File

@ -16,6 +16,8 @@ template: initializer-eval-super-call
//- initializer
super().x
//- arrow-body
() => super().x
//- earlyerror
SyntaxError
//- executionerror

View File

@ -23,6 +23,8 @@ template: initializer-eval-super-call
//- initializer
super()
//- arrow-body
() => super()
//- earlyerror
SyntaxError
//- executionerror

View File

@ -0,0 +1,20 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-class-definitions-static-semantics-early-errors
path: language/statements/class/elements/nested-arrow-fnc-
name: arrow function expression
features: [arrow-function, class-fields-public]
negative:
type: SyntaxError
phase: parse
---*/
$DONOTEVALUATE();
class C {
x = () => {
var t = () => /*{ initializer }*/;
}
}

View File

@ -0,0 +1,18 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-class-definitions-static-semantics-early-errors
path: language/statements/class/elements/nested-comp-name-
name: computed ClassElementName
features: [class, class-fields-public, computed-property-names]
negative:
type: SyntaxError
phase: parse
---*/
$DONOTEVALUATE();
var x = "string";
class C {
[x] = () => /*{ initializer }*/;
}

View File

@ -0,0 +1,17 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-class-definitions-static-semantics-early-errors
path: language/statements/class/elements/nested-equality-
name: equality expression
features: [class, class-fields-public]
negative:
type: SyntaxError
phase: parse
---*/
$DONOTEVALUATE();
class C {
x = () => {} == /*{ initializer }*/;
}

View File

@ -0,0 +1,17 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-class-definitions-static-semantics-early-errors
path: language/statements/class/elements/nested-literal-name-
name: literal ClassElementName
features: [class, class-fields-public]
negative:
type: SyntaxError
phase: parse
---*/
$DONOTEVALUATE();
class C {
x = () => /*{ initializer }*/;
}

View File

@ -0,0 +1,22 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-class-definitions-static-semantics-early-errors
path: language/statements/class/elements/nested-private-arrow-fnc-
name: private field, arrow function expression
features: [class, arrow-function, class-fields-private]
negative:
type: SyntaxError
phase: parse
---*/
$DONOTEVALUATE();
class C {
#x = () => {
var t = () => /*{ initializer }*/;
t();
}
}

View File

@ -0,0 +1,17 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-class-definitions-static-semantics-early-errors
path: language/statements/class/elements/nested-private-literal-name-
name: ClassElementName PrivateName
features: [class, class-fields-private]
negative:
type: SyntaxError
phase: parse
---*/
$DONOTEVALUATE();
class C {
#x = () => /*{ initializer }*/;
}

View File

@ -0,0 +1,17 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-class-definitions-static-semantics-early-errors
path: language/statements/class/elements/nested-private-ternary-
name: private field, ternary expression
features: [class, class-fields-private]
negative:
type: SyntaxError
phase: parse
---*/
$DONOTEVALUATE();
class C {
#x = () => false ? {} : /*{ initializer }*/;
}

View File

@ -0,0 +1,17 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-class-definitions-static-semantics-early-errors
path: language/statements/class/elements/nested-private-typeof-
name: private field, typeof expression
features: [class, class-fields-private]
negative:
type: SyntaxError
phase: parse
---*/
$DONOTEVALUATE();
class C {
#x = () => typeof /*{ initializer }*/;
}

View File

@ -0,0 +1,18 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-class-definitions-static-semantics-early-errors
path: language/statements/class/elements/nested-static-comp-name-
name: static computed ClassElementName
features: [class, class-static-fields-public, computed-property-names]
negative:
type: SyntaxError
phase: parse
---*/
$DONOTEVALUATE();
var x = "string";
class C {
static [x] = () => /*{ initializer }*/;
}

View File

@ -0,0 +1,17 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-class-definitions-static-semantics-early-errors
path: language/statements/class/elements/nested-static-literal-
name: static literal ClassElementName
features: [class, class-static-fields-public]
negative:
type: SyntaxError
phase: parse
---*/
$DONOTEVALUATE();
class C {
static x = () => /*{ initializer }*/;
}

View File

@ -0,0 +1,17 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-class-definitions-static-semantics-early-errors
path: language/statements/class/elements/nested-static-private-
name: static PrivateName
features: [class, class-static-fields-private]
negative:
type: SyntaxError
phase: parse
---*/
$DONOTEVALUATE();
class C {
static #x = () => /*{ initializer }*/;
}

View File

@ -0,0 +1,17 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-class-definitions-static-semantics-early-errors
path: language/statements/class/elements/nested-static-string-literal-name-
name: static string literal ClassElementName
features: [class, class-static-fields-public]
negative:
type: SyntaxError
phase: parse
---*/
$DONOTEVALUATE();
class C {
static 'x' = () => /*{ initializer }*/;
}

View File

@ -0,0 +1,17 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-class-definitions-static-semantics-early-errors
path: language/statements/class/elements/nested-string-literal-name-
name: string literal ClassElementName
features: [class, class-fields-public]
negative:
type: SyntaxError
phase: parse
---*/
$DONOTEVALUATE();
class C {
'x' = () => /*{ initializer }*/;
}

View File

@ -0,0 +1,17 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-class-definitions-static-semantics-early-errors
path: language/statements/class/elements/nested-ternary-
name: ternary expression
features: [class, class-fields-public]
negative:
type: SyntaxError
phase: parse
---*/
$DONOTEVALUATE();
class C {
x = () => false ? {} : /*{ initializer }*/;
}

View File

@ -0,0 +1,17 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-class-definitions-static-semantics-early-errors
path: language/statements/class/elements/nested-typeof-
name: typeof expression
features: [class, class-fields-public]
negative:
type: SyntaxError
phase: parse
---*/
$DONOTEVALUATE();
class C {
x = () => typeof /*{ initializer }*/;
}

View File

@ -0,0 +1,20 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-class-definitions-static-semantics-early-errors
path: language/expressions/class/elements/nested-arrow-fnc-
name: arrow function expression
features: [arrow-function, class, class-fields-public]
negative:
type: SyntaxError
phase: parse
---*/
$DONOTEVALUATE();
var C = class {
x = () => {
var t = () => /*{ initializer }*/;
}
}

View File

@ -0,0 +1,18 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-class-definitions-static-semantics-early-errors
path: language/expressions/class/elements/nested-comp-name-
name: computed ClassElementName
features: [class, class-fields-public]
negative:
type: SyntaxError
phase: parse
---*/
$DONOTEVALUATE();
var x = "string";
var C = class {
[x] = () => /*{ initializer }*/;
}

View File

@ -0,0 +1,17 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-class-definitions-static-semantics-early-errors
path: language/expressions/class/elements/nested-equality-
name: equality expression
features: [class, class-fields-public]
negative:
type: SyntaxError
phase: parse
---*/
$DONOTEVALUATE();
var C = class {
x = () => {} == /*{ initializer }*/;
}

View File

@ -0,0 +1,17 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-class-definitions-static-semantics-early-errors
path: language/expressions/class/elements/nested-literal-name-
name: literal ClassElementName
features: [class, class-fields-public]
negative:
type: SyntaxError
phase: parse
---*/
$DONOTEVALUATE();
var C = class {
x = () => /*{ initializer }*/;
}

View File

@ -0,0 +1,20 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-class-definitions-static-semantics-early-errors
path: language/expressions/class/elements/nested-private-arrow-fnc-
name: private field, arrow function expression
features: [class, arrow-function, class-fields-private]
negative:
type: SyntaxError
phase: parse
---*/
$DONOTEVALUATE();
var C = class {
#x = () => {
var t = () => /*{ initializer }*/;
}
}

View File

@ -0,0 +1,17 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-class-definitions-static-semantics-early-errors
path: language/expressions/class/elements/nested-private-literal-name-
name: ClassElementName PrivateName
features: [class, class-fields-private]
negative:
type: SyntaxError
phase: parse
---*/
$DONOTEVALUATE();
var C = class {
#x = () => /*{ initializer }*/;
}

View File

@ -0,0 +1,17 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-class-definitions-static-semantics-early-errors
path: language/expressions/class/elements/nested-private-ternary-
name: private field, ternary expression
features: [class, class-fields-private]
negative:
type: SyntaxError
phase: parse
---*/
$DONOTEVALUATE();
var C = class {
#x = () => true ? {} : /*{ initializer }*/;
}

View File

@ -0,0 +1,17 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-class-definitions-static-semantics-early-errors
path: language/expressions/class/elements/nested-private-typeof-
name: private field, typeof expression
features: [class, class-fields-private]
negative:
type: SyntaxError
phase: parse
---*/
$DONOTEVALUATE();
var C = class {
#x = () => typeof /*{ initializer }*/;
}

View File

@ -0,0 +1,18 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-class-definitions-static-semantics-early-errors
path: language/expressions/class/elements/nested-static-comp-name-
name: static computed ClassElementName
features: [class, class-static-fields-public, computed-property-names]
negative:
type: SyntaxError
phase: parse
---*/
$DONOTEVALUATE();
var x = "string";
var C = class {
static [x] = () => /*{ initializer }*/;
}

View File

@ -0,0 +1,17 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-class-definitions-static-semantics-early-errors
path: language/expressions/class/elements/nested-static-literal-
name: static literal ClassElementName
features: [class, class-static-fields-public]
negative:
type: SyntaxError
phase: parse
---*/
$DONOTEVALUATE();
var C = class {
static x = () => /*{ initializer }*/;
}

View File

@ -0,0 +1,17 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-class-definitions-static-semantics-early-errors
path: language/expressions/class/elements/nested-static-private-
name: static PrivateName
features: [class, class-static-fields-private]
negative:
type: SyntaxError
phase: parse
---*/
$DONOTEVALUATE();
var C = class {
static #x = () => /*{ initializer }*/;
}

View File

@ -0,0 +1,17 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-class-definitions-static-semantics-early-errors
path: language/expressions/class/elements/nested-static-string-literal-name-
name: static string literal ClassElementName
features: [class, class-static-fields-public]
negative:
type: SyntaxError
phase: parse
---*/
$DONOTEVALUATE();
var C = class {
static 'x' = () => /*{ initializer }*/;
}

View File

@ -0,0 +1,17 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-class-definitions-static-semantics-early-errors
path: language/expressions/class/elements/nested-string-literal-name-
name: string literal ClassElementName
features: [class, class-fields-public]
negative:
type: SyntaxError
phase: parse
---*/
$DONOTEVALUATE();
var C = class {
'x' = () => /*{ initializer }*/;
}

View File

@ -0,0 +1,17 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-class-definitions-static-semantics-early-errors
path: language/expressions/class/elements/nested-ternary-
name: ternary expression
features: [class, class-fields-public]
negative:
type: SyntaxError
phase: parse
---*/
$DONOTEVALUATE();
var C = class {
x = () => true ? {} : /*{ initializer }*/;
}

View File

@ -0,0 +1,17 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-class-definitions-static-semantics-early-errors
path: language/expressions/class/elements/nested-typeof-
name: typeof expression
features: [class, class-fields-public]
negative:
type: SyntaxError
phase: parse
---*/
$DONOTEVALUATE();
var C = class {
x = () => typeof /*{ initializer }*/;
}

View File

@ -0,0 +1,20 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/statements/class/elements/arrow-body-direct-
name: direct eval
features: [class, class-fields-public]
---*/
var executed = false;
class C {
x = eval('executed = true; /*{ arrow-body }*/;');
}
assert.throws(/*{ earlyerror }*/, function() {
new C().x();
});
assert.sameValue(executed, false);

View File

@ -0,0 +1,23 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/statements/class/elements/nested-direct-
name: direct eval
features: [class, class-fields-public]
---*/
var executed = false;
class C {
x = () => {
var t = () => { eval('executed = true; /*{ initializer }*/;'); };
t();
}
}
assert.throws(/*{ earlyerror }*/, function() {
new C().x();
});
assert.sameValue(executed, false);

View File

@ -0,0 +1,18 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/statements/class/elements/arrow-body-indirect-
name: indirect eval
features: [class, class-fields-public]
---*/
class C {
x = (0, eval)('/*{ arrow-body }*/;');
}
assert.throws(/*{ executionerror }*/, function() {
new C().x();
});
assert.sameValue(executed, true);

View File

@ -0,0 +1,23 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/statements/class/elements/nested-indirect-
name: indirect eval
features: [class, class-fields-public]
---*/
var executed = false;
class C {
x = () => {
var t = () => { (0, eval)('executed = true; /*{ initializer }*/;'); };
t();
}
}
assert.throws(/*{ executionerror }*/, function() {
new C().x();
});
assert.sameValue(executed, false);

View File

@ -0,0 +1,23 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/statements/class/elements/arrow-body-private-direct-
name: direct eval
features: [class, class-fields-private]
---*/
var executed = false;
class C {
#x = eval('executed = true; /*{ arrow-body }*/;');
constructor() {
this.#x();
}
}
assert.throws(/*{ earlyerror }*/, function() {
new C();
});
assert.sameValue(executed, false);

View File

@ -0,0 +1,26 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/statements/class/elements/nested-private-direct-
name: direct eval
features: [class, class-fields-private]
---*/
var executed = false;
class C {
#x = () => {
var t = () => { eval('executed = true; /*{ initializer }*/;'); };
t();
}
constructor() {
this.#x();
}
}
assert.throws(/*{ earlyerror }*/, function() {
new C();
});
assert.sameValue(executed, false);

View File

@ -0,0 +1,20 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/statements/class/elements/arrow-body-private-indirect-
name: indirect eval
features: [class, class-fields-private]
---*/
class C {
#x = (0, eval)('/*{ arrow-body }*/;');
x() {
this.#x();
}
}
assert.throws(/*{ executionerror }*/, function() {
new C().x();
});

View File

@ -0,0 +1,20 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/statements/class/elements/nested-private-indirect-
name: indirect eval
features: [class, class-fields-private]
---*/
var executed = false;
class C {
#x = (0, eval)('executed = true; /*{ initializer }*/;');
}
assert.throws(/*{ executionerror }*/, function() {
new C();
});
assert.sameValue(executed, true);

View File

@ -0,0 +1,20 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/expressions/class/elements/arrow-body-direct-
name: direct eval
features: [class, class-fields-public]
---*/
let executed = false;
let C = class {
x = eval('executed = true; /*{ arrow-body }*/;');
}
assert.throws(/*{ earlyerror }*/, function() {
new C().x();
});
assert.sameValue(executed, false);

View File

@ -0,0 +1,23 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/expressions/class/elements/nested-direct-
name: direct eval
features: [class, class-fields-public]
---*/
let executed = false;
let C = class {
x = () => {
let f = eval('executed = true; /*{ initializer }*/;');
f();
}
}
assert.throws(/*{ earlyerror }*/, function() {
new C().x();
});
assert.sameValue(executed, false);

View File

@ -0,0 +1,17 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/expressions/class/elements/arrow-body-indirect-
name: indirect eval
features: [class, class-fields-public]
---*/
var C = class {
x = (0, eval)('/*{ arrow-body }*/;');
}
assert.throws(/*{ executionerror }*/, function() {
new C().x();
});

View File

@ -0,0 +1,20 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/expressions/class/elements/nested-indirect-
name: indirect eval
features: [class, class-fields-public]
---*/
var executed = false;
var C = class {
x = () => (0, eval)('executed = true; /*{ initializer }*/;');
}
assert.throws(/*{ executionerror }*/, function() {
new C().x();
});
assert.sameValue(executed, true);

View File

@ -0,0 +1,20 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/expressions/class/elements/arrow-body-private-direct-
name: direct eval
features: [class, class-fields-private]
---*/
var C = class {
#x = eval('/*{ arrow-body }*/;');
x() {
this.#x();
}
}
assert.throws(/*{ earlyerror }*/, function() {
new C().x();
});

View File

@ -0,0 +1,23 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/expressions/class/elements/nested-private-direct-
name: direct eval
features: [class, class-fields-private]
---*/
var executed = false;
var C = class {
#x = () => eval('executed = true; /*{ initializer }*/;');
x() {
this.#x();
}
}
assert.throws(/*{ earlyerror }*/, function() {
new C().x();
});
assert.sameValue(executed, false);

View File

@ -0,0 +1,20 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/expressions/class/elements/arrow-body-private-indirect-
name: indirect eval
features: [class, class-fields-private]
---*/
var C = class {
#x = (0, eval)('/*{ arrow-body }*/;');
x() {
this.#x();
}
}
assert.throws(/*{ executionerror }*/, function() {
new C().x();
});

View File

@ -0,0 +1,23 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/expressions/class/elements/nested-private-indirect-
name: indirect eval
features: [class, class-fields-private]
---*/
var executed = false;
var C = class {
#x = () => (0, eval)('executed = true; /*{ initializer }*/;');
x() {
this.#x();
}
}
assert.throws(/*{ executionerror }*/, function() {
new C().x();
});
assert.sameValue(executed, true);

View File

@ -0,0 +1,19 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/statements/class/elements/arrow-body-direct-
name: direct eval
features: [class, class-fields-public]
---*/
var executed = false;
class C {
x = eval('executed = true; /*{ arrow-body }*/;');
}
var c = new C();
assert.sameValue(executed, true);
assert.sameValue(c.x(), undefined);

View File

@ -0,0 +1,19 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/statements/class/elements/nested-direct-
name: direct eval
features: [class, class-fields-public]
---*/
var executed = false;
class C {
x = eval('executed = true; /*{ initializer }*/;');
}
var c = new C();
assert.sameValue(executed, true);
assert.sameValue(c.x, undefined);

View File

@ -0,0 +1,18 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/statements/class/elements/arrow-body-indirect-
name: indirect eval
features: [class, class-fields-public]
---*/
class C {
x = (0, eval)('/*{ arrow-body }*/;');
}
assert.throws(SyntaxError, function() {
new C().x();
});

View File

@ -0,0 +1,20 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/statements/class/elements/nested-indirect-
name: indirect eval
features: [class, class-fields-public]
---*/
var executed = false;
class C {
x = (0, eval)('executed = true; /*{ initializer }*/;');
}
assert.throws(SyntaxError, function() {
new C();
});
assert.sameValue(executed, false);

View File

@ -0,0 +1,22 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/statements/class/elements/arrow-body-private-direct-
name: direct eval
features: [class, class-fields-private]
---*/
var executed = false;
class C {
#x = eval('executed = true; /*{ arrow-body }*/;');
x() {
this.#x();
}
}
var c = new C();
assert.sameValue(executed, true);
assert.sameValue(c.x(), undefined);

View File

@ -0,0 +1,19 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/statements/class/elements/nested-private-direct-
name: direct eval
features: [class, class-fields-private]
---*/
var executed = false;
class C {
#x = eval('executed = true; /*{ initializer }*/;');
}
var c = new C();
assert.sameValue(executed, true);
assert.sameValue(c.x, undefined);

View File

@ -0,0 +1,18 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/statements/class/elements/arrow-body-private-indirect-
name: indirect eval
features: [class, class-fields-private]
---*/
class C {
#x = (0, eval)('/*{ arrow-body }*/;');
}
assert.throws(SyntaxError, function() {
new C().x();
});

View File

@ -0,0 +1,20 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/statements/class/elements/nested-private-indirect-
name: indirect eval
features: [class, class-fields-private]
---*/
var executed = false;
class C {
#x = (0, eval)('executed = true; /*{ initializer }*/;');
}
assert.throws(SyntaxError, function() {
new C();
});
assert.sameValue(executed, false);

View File

@ -0,0 +1,19 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/expressions/class/elements/arrow-body-direct-
name: direct eval
features: [class, class-fields-public]
---*/
var executed = false;
var C = class {
x = eval('executed = true; /*{ arrow-body }*/;');
}
var c = new C();
assert.sameValue(executed, true);
assert.sameValue(c.x(), undefined);

View File

@ -0,0 +1,19 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/expressions/class/elements/nested-direct-
name: direct eval
features: [class, class-fields-public]
---*/
var executed = false;
var C = class {
x = eval('executed = true; /*{ initializer }*/;');
}
var c = new C();
assert.sameValue(executed, true);
assert.sameValue(c.x, undefined);

View File

@ -0,0 +1,18 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/expressions/class/elements/arrow-body-indirect-
name: indirect eval
features: [class, class-fields-public]
---*/
var C = class {
x = (0, eval)('/*{ arrow-body }*/;');
}
assert.throws(SyntaxError, function() {
new C().x();
});

View File

@ -0,0 +1,20 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/expressions/class/elements/nested-indirect-
name: indirect eval
features: [class, class-fields-public]
---*/
var executed = false;
var C = class {
x = (0, eval)('executed = true; /*{ initializer }*/;');
}
assert.throws(SyntaxError, function() {
new C();
});
assert.sameValue(executed, false);

View File

@ -0,0 +1,22 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/expressions/class/elements/arrow-body-private-direct-
name: direct eval
features: [class, class-fields-private]
---*/
var executed = false;
var C = class {
#x = eval('executed = true; /*{ arrow-body }*/;');
x() {
this.#x();
}
}
var c = new C();
assert.sameValue(executed, true);
assert.sameValue(c.x(), undefined);

View File

@ -0,0 +1,19 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/expressions/class/elements/nested-private-direct-
name: direct eval
features: [class, class-fields-private]
---*/
var executed = false;
var C = class {
#x = eval('executed = true; /*{ initializer }*/;');
}
var c = new C();
assert.sameValue(executed, true);
assert.sameValue(c.x, undefined);

View File

@ -0,0 +1,18 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/expressions/class/elements/arrow-body-private-indirect-
name: indirect eval
features: [class, class-fields-private]
---*/
var C = class {
#x = (0, eval)('/*{ arrow-body }*/;');
}
assert.throws(SyntaxError, function() {
new C().x();
});

View File

@ -0,0 +1,20 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/expressions/class/elements/nested-private-indirect-
name: indirect eval
features: [class, class-fields-private]
---*/
var executed = false;
var C = class {
#x = (0, eval)('executed = true; /*{ initializer }*/;');
}
assert.throws(SyntaxError, function() {
new C();
});
assert.sameValue(executed, false);

View File

@ -0,0 +1,21 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/statements/class/elements/arrow-body-derived-cls-direct-
name: direct eval
features: [class, class-fields-public]
---*/
var executed = false;
class A {}
class C extends A {
x = eval('executed = true; /*{ arrow-body }*/;');
}
assert.throws(SyntaxError, function() {
new C().x();
});
assert.sameValue(executed, false);

View File

@ -0,0 +1,21 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/statements/class/elements/nested-derived-cls-direct-
name: direct eval
features: [class, class-fields-public]
---*/
var executed = false;
class A {}
class C extends A {
x = eval('executed = true; /*{ initializer }*/;');
}
assert.throws(SyntaxError, function() {
new C();
});
assert.sameValue(executed, false);

View File

@ -0,0 +1,19 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/statements/class/elements/arrow-body-derived-cls-indirect-
name: indirect eval
features: [class, class-fields-public]
---*/
class A {}
class C extends A {
x = (0, eval)('/*{ arrow-body }*/;');
}
assert.throws(SyntaxError, function() {
new C().x();
});

View File

@ -0,0 +1,21 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/statements/class/elements/nested-derived-cls-indirect-
name: indirect eval
features: [class, class-fields-public]
---*/
var executed = false;
class A {}
class C extends A {
x = (0, eval)('executed = true; /*{ initializer }*/;');
}
assert.throws(SyntaxError, function() {
new C();
});
assert.sameValue(executed, false);

View File

@ -0,0 +1,21 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/statements/class/elements/arrow-body-private-derived-cls-direct-
name: direct eval
features: [class, class-fields-private]
---*/
var executed = false;
class A {}
class C extends A {
#x = eval('executed = true; /*{ arrow-body }*/;');
}
assert.throws(SyntaxError, function() {
new C().x();
});
assert.sameValue(executed, false);

View File

@ -0,0 +1,21 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/statements/class/elements/nested-private-derived-cls-direct-
name: direct eval
features: [class, class-fields-private]
---*/
var executed = false;
class A {}
class C extends A {
#x = eval('executed = true; /*{ initializer }*/;');
}
assert.throws(SyntaxError, function() {
new C();
});
assert.sameValue(executed, false);

View File

@ -0,0 +1,19 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/statements/class/elements/arrow-body-private-derived-cls-indirect-
name: indirect eval
features: [class, class-fields-private]
---*/
class A {}
class C extends A {
#x = (0, eval)('/*{ arrow-body }*/;');
}
assert.throws(SyntaxError, function() {
new C().x();
});

View File

@ -0,0 +1,21 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/statements/class/elements/nested-private-derived-cls-indirect-
name: indirect eval
features: [class, class-fields-private]
---*/
var executed = false;
class A {}
class C extends A {
#x = (0, eval)('executed = true; /*{ initializer }*/;');
}
assert.throws(SyntaxError, function() {
new C();
});
assert.sameValue(executed, false);

View File

@ -0,0 +1,21 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/expressions/class/elements/arrow-body-derived-cls-direct-
name: direct eval
features: [class, class-fields-public]
---*/
var executed = false;
var A = class {}
var C = class extends A {
x = eval('executed = true; /*{ arrow-body }*/;');
}
assert.throws(SyntaxError, function() {
new C().x();
});
assert.sameValue(executed, false);

View File

@ -0,0 +1,21 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/expressions/class/elements/nested-derived-cls-direct-
name: direct eval
features: [class, class-fields-public]
---*/
var executed = false;
var A = class {}
var C = class extends A {
x = eval('executed = true; /*{ initializer }*/;');
}
assert.throws(SyntaxError, function() {
new C();
});
assert.sameValue(executed, false);

View File

@ -0,0 +1,19 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/expressions/class/elements/arrow-body-derived-cls-indirect-
name: indirect eval
features: [class, class-fields-public]
---*/
var A = class {}
var C = class extends A {
x = (0, eval)('/*{ arrow-body }*/;');
}
assert.throws(SyntaxError, function() {
new C().x();
});

View File

@ -0,0 +1,21 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/expressions/class/elements/nested-derived-cls-indirect-
name: indirect eval
features: [class, class-fields-public]
---*/
var executed = false;
var A = class {}
var C = class extends A {
x = (0, eval)('executed = true; /*{ initializer }*/;');
}
assert.throws(SyntaxError, function() {
new C();
});
assert.sameValue(executed, false);

View File

@ -0,0 +1,21 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/expressions/class/elements/arrow-body-private-derived-cls-direct-
name: direct eval
features: [class, class-fields-private]
---*/
var executed = false;
var A = class {}
var C = class extends A {
#x = eval('executed = true; /*{ arrow-body }*/;');
}
assert.throws(SyntaxError, function() {
new C().x();
});
assert.sameValue(executed, false);

View File

@ -0,0 +1,21 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/expressions/class/elements/nested-private-derived-cls-direct-
name: direct eval
features: [class, class-fields-private]
---*/
var executed = false;
var A = class {}
var C = class extends A {
#x = eval('executed = true; /*{ initializer }*/;');
}
assert.throws(SyntaxError, function() {
new C();
});
assert.sameValue(executed, false);

View File

@ -0,0 +1,19 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/expressions/class/elements/arrow-body-private-derived-cls-indirect-
name: indirect eval
features: [class, class-fields-private]
---*/
var A = class {}
var C = class extends A {
#x = (0, eval)('/*{ arrow-body }*/;');
}
assert.throws(SyntaxError, function() {
new C().x();
});

View File

@ -0,0 +1,21 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/expressions/class/elements/nested-private-derived-cls-indirect-
name: indirect eval
features: [class, class-fields-private]
---*/
var executed = false;
var A = class {}
var C = class extends A {
#x = (0, eval)('executed = true; /*{ initializer }*/;');
}
assert.throws(SyntaxError, function() {
new C();
});
assert.sameValue(executed, false);

View File

@ -0,0 +1,18 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/statements/class/elements/arrow-body-derived-cls-direct-
name: direct eval
---*/
var executed = false;
class A {}
class C extends A {
x = eval('executed = true; /*{ arrow-body }*/;');
}
new C().x();
assert.sameValue(executed, true);

View File

@ -0,0 +1,18 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/statements/class/elements/nested-derived-cls-direct-
name: direct eval
---*/
var executed = false;
class A {}
class C extends A {
x = eval('executed = true; /*{ initializer }*/;');
}
new C();
assert.sameValue(executed, true);

View File

@ -0,0 +1,19 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/statements/class/elements/arrow-body-derived-cls-indirect-
name: indirect eval
features: [class, class-fields-public]
---*/
class A {}
class C extends A {
x = (0, eval)('/*{ arrow-body }*/;');
}
assert.throws(SyntaxError, function() {
new C().x();
});

View File

@ -0,0 +1,21 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/statements/class/elements/nested-derived-cls-indirect-
name: indirect eval
features: [class, class-fields-public]
---*/
var executed = false;
class A {}
class C extends A {
x = (0, eval)('executed = true; /*{ initializer }*/;');
}
assert.throws(SyntaxError, function() {
new C();
});
assert.sameValue(executed, false);

View File

@ -0,0 +1,22 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/statements/class/elements/arrow-body-private-derived-cls-direct-
name: direct eval
features: [class, class-fields-private]
---*/
var executed = false;
class A {}
class C extends A {
#x = eval('executed = true; /*{ arrow-body }*/;');
x() {
this.#x();
}
}
new C().x();
assert.sameValue(executed, true);

View File

@ -0,0 +1,19 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/statements/class/elements/nested-private-derived-cls-direct-
name: direct eval
features: [class, class-fields-private]
---*/
var executed = false;
class A {}
class C extends A {
#x = eval('executed = true; /*{ initializer }*/;');
}
new C();
assert.sameValue(executed, true);

View File

@ -0,0 +1,19 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/statements/class/elements/arrow-body-private-derived-cls-indirect-
name: indirect eval
features: [class, class-fields-private]
---*/
class A {}
class C extends A {
#x = (0, eval)('/*{ arrow-body }*/;');
}
assert.throws(SyntaxError, function() {
new C().x();
});

View File

@ -0,0 +1,21 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/statements/class/elements/nested-private-derived-cls-indirect-
name: indirect eval
features: [class, class-fields-private]
---*/
var executed = false;
class A {}
class C extends A {
#x = (0, eval)('executed = true; /*{ initializer }*/;');
}
assert.throws(SyntaxError, function() {
new C();
});
assert.sameValue(executed, false);

View File

@ -0,0 +1,19 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/expressions/class/elements/arrow-body-derived-cls-direct-
name: direct eval
features: [class, class-fields-public]
---*/
var executed = false;
var A = class {}
var C = class extends A {
x = eval('executed = true; /*{ arrow-body }*/;');
};
new C().x();
assert.sameValue(executed, true);

View File

@ -0,0 +1,19 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/expressions/class/elements/nested-derived-cls-direct-
name: direct eval
features: [class, class-fields-public]
---*/
var executed = false;
var A = class {}
var C = class extends A {
x = eval('executed = true; /*{ initializer }*/;');
};
new C();
assert.sameValue(executed, true);

View File

@ -0,0 +1,19 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/expressions/class/elements/arrow-body-derived-cls-indirect-
name: indirect eval
features: [class, class-fields-public]
---*/
var A = class {}
var C = class extends A {
x = (0, eval)('/*{ arrow-body }*/;');
};
assert.throws(SyntaxError, function() {
new C().x();
});

View File

@ -0,0 +1,21 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/expressions/class/elements/nested-derived-cls-indirect-
name: indirect eval
features: [class, class-fields-public]
---*/
var executed = false;
var A = class {}
var C = class extends A {
x = (0, eval)('executed = true; /*{ initializer }*/;');
};
assert.throws(SyntaxError, function() {
new C();
});
assert.sameValue(executed, false);

View File

@ -0,0 +1,22 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/expressions/class/elements/arrow-body-private-derived-cls-direct-
name: direct eval
features: [class, class-fields-private]
---*/
var executed = false;
var A = class {}
var C = class extends A {
#x = eval('executed = true; /*{ arrow-body }*/;');
x() {
this.#x();
}
};
new C().x();
assert.sameValue(executed, true);

View File

@ -0,0 +1,19 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/expressions/class/elements/nested-private-derived-cls-direct-
name: direct eval
features: [class, class-fields-private]
---*/
var executed = false;
var A = class {}
var C = class extends A {
#x = eval('executed = true; /*{ initializer }*/;');
};
new C();
assert.sameValue(executed, true);

View File

@ -0,0 +1,19 @@
// Copyright (C) 2020 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval-rules-in-initializer
path: language/expressions/class/elements/arrow-body-private-derived-cls-indirect-
name: indirect eval
features: [class, class-fields-private]
---*/
var A = class {}
var C = class extends A {
#x = (0, eval)('/*{ arrow-body }*/;');
};
assert.throws(SyntaxError, function() {
new C().x();
});

Some files were not shown because too many files have changed in this diff Show More