Skip to content
Snippets Groups Projects
Commit dd3d13a7 authored by jbhoosreddy's avatar jbhoosreddy
Browse files

test: Add private generator method tests (#1343)

parent 835c85c2
No related branches found
No related tags found
No related merge requests found
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// This code is governed by the BSD license found in the LICENSE file. // This code is governed by the BSD license found in the LICENSE file.
/*--- /*---
path: language/statements/class/gen-method- path: language/statements/class/gen-method-
name: Geenerator method as a ClassDeclaration element name: Generator method as a ClassDeclaration element
esid: prod-GeneratorMethod esid: prod-GeneratorMethod
info: | info: |
ClassElement : ClassElement :
......
// Copyright (C) 2018 Jaideep Bhoosreddy. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
path: language/statements/class/gen-method-
name: Generator private method as a ClassDeclaration element
features: [class-methods-private]
esid: prod-GeneratorPrivateMethod
info: |
ClassElement :
PrivateMethodDefinition
MethodDefinition :
GeneratorMethod
14.4 Generator Function Definitions
GeneratorMethod :
* PropertyName ( UniqueFormalParameters ) { GeneratorBody }
features: [generators]
---*/
var callCount = 0;
class C {
*#gen() {
callCount += 1;
/*{ body }*/
}
gen() {
return this.#gen();
}
}
const c = new C();
// Test the private fields do not appear as properties before set to value
assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#gen"), false, "test 1");
assert.sameValue(Object.hasOwnProperty.call(C, "#gen"), false, "test 2");
assert.sameValue(Object.hasOwnProperty.call(c, "#gen"), false, "test 3");
var iter = c.gen();
/*{ assertions }*/
assert.sameValue(callCount, 1);
// Test the private fields do not appear as properties after set to value
assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#gen"), false, "test 1");
assert.sameValue(Object.hasOwnProperty.call(C, "#gen"), false, "test 2");
assert.sameValue(Object.hasOwnProperty.call(c, "#gen"), false, "test 3");
// Copyright (C) 2018 Jaideep Bhoosreddy. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
path: language/statements/class/gen-private-method-static-
name: Static generator private method as a ClassDeclaration element
features: [class-methods-private]
esid: prod-GeneratorPrivateMethod
info: |
ClassElement :
static PrivateMethodDefinition
MethodDefinition :
GeneratorMethod
14.4 Generator Function Definitions
GeneratorMethod :
* PropertyName ( UniqueFormalParameters ) { GeneratorBody }
features: [generators]
---*/
var callCount = 0;
class C {
static #*gen() {
callCount += 1;
/*{ body }*/
}
static gen() {
return C.gen();
}
}
var gen = C.gen;
// Test the private fields do not appear as properties before set to value
assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#gen"), false, "test 1");
assert.sameValue(Object.hasOwnProperty.call(C, "#gen"), false, "test 2");
var iter = gen();
/*{ assertions }*/
assert.sameValue(callCount, 1);
// Test the private fields do not appear as properties before set to value
assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#gen"), false, "test 1");
assert.sameValue(Object.hasOwnProperty.call(C, "#gen"), false, "test 2");
\ No newline at end of file
// Copyright (C) 2018 Jaideep Bhoosreddy. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
path: language/expressions/class/gen-private-method-
name: Generator private method as a ClassExpression element
features: [class-methods-private]
esid: prod-GeneratorPrivateMethod
info: |
ClassElement :
PrivateMethodDefinition
MethodDefinition :
GeneratorMethod
14.4 Generator Function Definitions
GeneratorMethod :
* PropertyName ( UniqueFormalParameters ) { GeneratorBody }
features: [generators]
---*/
var callCount = 0;
var C = class {
*gen() {
callCount += 1;
/*{ body }*/
}
gen() {
return this.#gen();
}
}
const c = new C();
// Test the private fields do not appear as properties before set to value
assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#gen"), false, "test 1");
assert.sameValue(Object.hasOwnProperty.call(C, "#gen"), false, "test 2");
assert.sameValue(Object.hasOwnProperty.call(c, "#gen"), false, "test 3");
var iter = c.gen();
/*{ assertions }*/
assert.sameValue(callCount, 1);
// Test the private fields do not appear as properties after set to value
assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#gen"), false, "test 1");
assert.sameValue(Object.hasOwnProperty.call(C, "#gen"), false, "test 2");
assert.sameValue(Object.hasOwnProperty.call(c, "#gen"), false, "test 3");
// Copyright (C) 2018 Jaideep Bhoosreddy. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
path: language/expressions/class/gen-private-method-static-
name: Static generator private method as a ClassExpression element
features: [class-methods-private]
esid: prod-GeneratorPrivateMethod
info: |
ClassElement :
static PrivateMethodDefinition
MethodDefinition :
GeneratorMethod
14.4 Generator Function Definitions
GeneratorMethod :
* PropertyName ( UniqueFormalParameters ) { GeneratorBody }
features: [generators]
---*/
var callCount = 0;
var C = class {
static *gen() {
callCount += 1;
/*{ body }*/
}
static gen() {
return C.gen();
}
}
var gen = C.gen;
// Test the private fields do not appear as properties before set to value
assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#gen"), false, "test 1");
assert.sameValue(Object.hasOwnProperty.call(C, "#gen"), false, "test 2");
var iter = gen();
/*{ assertions }*/
assert.sameValue(callCount, 1);
// Test the private fields do not appear as properties before set to value
assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#gen"), false, "test 1");
assert.sameValue(Object.hasOwnProperty.call(C, "#gen"), false, "test 2");
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment