Adding test case for super access from class field defined as arrow function

This commit is contained in:
Caio Lima 2021-01-13 09:31:23 -03:00 committed by Rick Waldron
parent 96f1e2713b
commit f81c2f5422
3 changed files with 109 additions and 0 deletions

View File

@ -0,0 +1,35 @@
// Copyright (C) 2021 Caio Lima (Igalia SL). All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
desc: super inside arrow functions on field initializer resolves to class' super
info: |
ClassElementName :
PropertyName
PrivateName
SuperProperty:
super[Expression]
super.IdentifierName
template: default
features: [class-fields-public, class-static-fields-public]
---*/
//- elements
func = () => {
super.prop = 'test262';
}
static staticFunc = () => {
super.staticProp = 'static test262';
}
//- assertions
let c = new C();
c.func();
assert.sameValue(c.prop, 'test262');
C.staticFunc();
assert.sameValue(C.staticProp, 'static test262');

View File

@ -0,0 +1,37 @@
// This file was procedurally generated from the following sources:
// - src/class-elements/super-access-from-arrow-func-on-field.case
// - src/class-elements/default/cls-expr.template
/*---
description: super inside arrow functions on field initializer resolves to class' super (field definitions in a class expression)
esid: prod-FieldDefinition
features: [class-fields-public, class-static-fields-public, class]
flags: [generated]
info: |
ClassElementName :
PropertyName
PrivateName
SuperProperty:
super[Expression]
super.IdentifierName
---*/
var C = class {
func = () => {
super.prop = 'test262';
}
static staticFunc = () => {
super.staticProp = 'static test262';
}
}
let c = new C();
c.func();
assert.sameValue(c.prop, 'test262');
C.staticFunc();
assert.sameValue(C.staticProp, 'static test262');

View File

@ -0,0 +1,37 @@
// This file was procedurally generated from the following sources:
// - src/class-elements/super-access-from-arrow-func-on-field.case
// - src/class-elements/default/cls-decl.template
/*---
description: super inside arrow functions on field initializer resolves to class' super (field definitions in a class declaration)
esid: prod-FieldDefinition
features: [class-fields-public, class-static-fields-public, class]
flags: [generated]
info: |
ClassElementName :
PropertyName
PrivateName
SuperProperty:
super[Expression]
super.IdentifierName
---*/
class C {
func = () => {
super.prop = 'test262';
}
static staticFunc = () => {
super.staticProp = 'static test262';
}
}
let c = new C();
c.func();
assert.sameValue(c.prop, 'test262');
C.staticFunc();
assert.sameValue(C.staticProp, 'static test262');