Skip to content

Commit

Permalink
Adding test case for super access from class field defined as arrow f…
Browse files Browse the repository at this point in the history
…unction
  • Loading branch information
caiolima authored and rwaldron committed Jan 18, 2021
1 parent 96f1e27 commit f81c2f5
Show file tree
Hide file tree
Showing 3 changed files with 109 additions and 0 deletions.
35 changes: 35 additions & 0 deletions src/class-elements/super-access-from-arrow-func-on-field.case
Original file line number Diff line number Diff line change
@@ -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');

Original file line number Diff line number Diff line change
@@ -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');

Original file line number Diff line number Diff line change
@@ -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');

0 comments on commit f81c2f5

Please sign in to comment.