From f03c2c244cdafa247891b34e9684e5a231a1ca55 Mon Sep 17 00:00:00 2001 From: Mike Pennisi <mike@mikepennisi.com> Date: Sat, 4 Mar 2017 10:59:52 -0500 Subject: [PATCH] Procedurally generate related tests Take advantage of a recent extension to the test generation tool in order to limit duplication. --- .../literal-string-line-continuation.case | 22 +++++++++++++++++++ ...-inst-literal-string-line-continuation.js} | 18 +++++++-------- ...tatic-literal-string-line-continuation.js} | 18 +++++++-------- ...-name-literal-string-line-continuation.js} | 18 +++++++-------- ...-inst-literal-string-line-continuation.js} | 18 +++++++-------- ...tatic-literal-string-line-continuation.js} | 18 +++++++-------- 6 files changed, 67 insertions(+), 45 deletions(-) create mode 100644 src/accessor-names/literal-string-line-continuation.case rename test/language/expressions/class/{accessor-name-inst-literal-string-line-terminator.js => accessor-name-inst-literal-string-line-continuation.js} (61%) rename test/language/expressions/class/{accessor-name-static-literal-string-line-terminator.js => accessor-name-static-literal-string-line-continuation.js} (64%) rename test/language/expressions/object/{accessor-name-literal-string-line-terminator.js => accessor-name-literal-string-line-continuation.js} (64%) rename test/language/statements/class/{accessor-name-inst-literal-string-line-terminator.js => accessor-name-inst-literal-string-line-continuation.js} (61%) rename test/language/statements/class/{accessor-name-static-literal-string-line-terminator.js => accessor-name-static-literal-string-line-continuation.js} (63%) diff --git a/src/accessor-names/literal-string-line-continuation.case b/src/accessor-names/literal-string-line-continuation.case new file mode 100644 index 0000000000..24b2291aca --- /dev/null +++ b/src/accessor-names/literal-string-line-continuation.case @@ -0,0 +1,22 @@ +// Copyright (C) 2017 Mike Pennisi. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +desc: Computed values as accessor property names (string literal containing LineContinuation) +template: default +info: | + 12.2.6.7 Runtime Semantics: Evaluation + + [...] + + ComputedPropertyName : [ AssignmentExpression ] + + 1. Let exprValue be the result of evaluating AssignmentExpression. + 2. Let propName be ? GetValue(exprValue). + 3. Return ? ToPropertyKey(propName). +---*/ + +//- declareWith +'line\ +Continuation' +//- referenceWith +'lineContinuation' diff --git a/test/language/expressions/class/accessor-name-inst-literal-string-line-terminator.js b/test/language/expressions/class/accessor-name-inst-literal-string-line-continuation.js similarity index 61% rename from test/language/expressions/class/accessor-name-inst-literal-string-line-terminator.js rename to test/language/expressions/class/accessor-name-inst-literal-string-line-continuation.js index 693d03160c..9a663d71c5 100644 --- a/test/language/expressions/class/accessor-name-inst-literal-string-line-terminator.js +++ b/test/language/expressions/class/accessor-name-inst-literal-string-line-continuation.js @@ -1,9 +1,11 @@ -// Copyright (C) 2017 Mike Pennisi. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. +// This file was procedurally generated from the following sources: +// - src/accessor-names/literal-string-line-continuation.case +// - src/accessor-names/default/cls-expr-inst.template /*--- -description: Computed values as accessor property names (string literal containing a line terminator) (Class expression, instance method) +description: Computed values as accessor property names (string literal containing LineContinuation) (Class expression, instance method) esid: sec-runtime-semantics-classdefinitionevaluation es6id: 14.5.14 +flags: [generated] info: | [...] 21. For each ClassElement m in order from methods @@ -26,14 +28,12 @@ var stringSet; var C = class { get 'line\ -Terminator' -() { return 'get string'; } +Continuation'() { return 'get string'; } set 'line\ -Terminator' -(param) { stringSet = param; } +Continuation'(param) { stringSet = param; } }; -assert.sameValue(C.prototype['lineTerminator'], 'get string'); +assert.sameValue(C.prototype['lineContinuation'], 'get string'); -C.prototype['lineTerminator'] = 'set string'; +C.prototype['lineContinuation'] = 'set string'; assert.sameValue(stringSet, 'set string'); diff --git a/test/language/expressions/class/accessor-name-static-literal-string-line-terminator.js b/test/language/expressions/class/accessor-name-static-literal-string-line-continuation.js similarity index 64% rename from test/language/expressions/class/accessor-name-static-literal-string-line-terminator.js rename to test/language/expressions/class/accessor-name-static-literal-string-line-continuation.js index be13537550..1ecd300e4d 100644 --- a/test/language/expressions/class/accessor-name-static-literal-string-line-terminator.js +++ b/test/language/expressions/class/accessor-name-static-literal-string-line-continuation.js @@ -1,9 +1,11 @@ -// Copyright (C) 2017 Mike Pennisi. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. +// This file was procedurally generated from the following sources: +// - src/accessor-names/literal-string-line-continuation.case +// - src/accessor-names/default/cls-expr-static.template /*--- -description: Computed values as accessor property names (string literal containing a line terminator) (Class expression, static method) +description: Computed values as accessor property names (string literal containing LineContinuation) (Class expression, static method) esid: sec-runtime-semantics-classdefinitionevaluation es6id: 14.5.14 +flags: [generated] info: | [...] 21. For each ClassElement m in order from methods @@ -28,14 +30,12 @@ var stringSet; var C = class { static get 'line\ -Terminator' -() { return 'get string'; } +Continuation'() { return 'get string'; } static set 'line\ -Terminator' -(param) { stringSet = param; } +Continuation'(param) { stringSet = param; } }; -assert.sameValue(C['lineTerminator'], 'get string'); +assert.sameValue(C['lineContinuation'], 'get string'); -C['lineTerminator'] = 'set string'; +C['lineContinuation'] = 'set string'; assert.sameValue(stringSet, 'set string'); diff --git a/test/language/expressions/object/accessor-name-literal-string-line-terminator.js b/test/language/expressions/object/accessor-name-literal-string-line-continuation.js similarity index 64% rename from test/language/expressions/object/accessor-name-literal-string-line-terminator.js rename to test/language/expressions/object/accessor-name-literal-string-line-continuation.js index bb230c3ad4..546a46ff8d 100644 --- a/test/language/expressions/object/accessor-name-literal-string-line-terminator.js +++ b/test/language/expressions/object/accessor-name-literal-string-line-continuation.js @@ -1,9 +1,11 @@ -// Copyright (C) 2016 the V8 project authors. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. +// This file was procedurally generated from the following sources: +// - src/accessor-names/literal-string-line-continuation.case +// - src/accessor-names/default/obj.template /*--- -description: Computed values as accessor property names (string literal containing a line terminator) (Object initializer) +description: Computed values as accessor property names (string literal containing LineContinuation) (Object initializer) esid: sec-object-initializer-runtime-semantics-evaluation es6id: 12.2.6.8 +flags: [generated] info: | ObjectLiteral : { PropertyDefinitionList } @@ -27,14 +29,12 @@ info: | var stringSet; var obj = { get ['line\ -Terminator' -]() { return 'get string'; }, +Continuation']() { return 'get string'; }, set ['line\ -Terminator' -](param) { stringSet = param; } +Continuation'](param) { stringSet = param; } }; -assert.sameValue(obj['lineTerminator'], 'get string'); +assert.sameValue(obj['lineContinuation'], 'get string'); -obj['lineTerminator'] = 'set string'; +obj['lineContinuation'] = 'set string'; assert.sameValue(stringSet, 'set string'); diff --git a/test/language/statements/class/accessor-name-inst-literal-string-line-terminator.js b/test/language/statements/class/accessor-name-inst-literal-string-line-continuation.js similarity index 61% rename from test/language/statements/class/accessor-name-inst-literal-string-line-terminator.js rename to test/language/statements/class/accessor-name-inst-literal-string-line-continuation.js index a9fa0c268c..12dabf5012 100644 --- a/test/language/statements/class/accessor-name-inst-literal-string-line-terminator.js +++ b/test/language/statements/class/accessor-name-inst-literal-string-line-continuation.js @@ -1,9 +1,11 @@ -// Copyright (C) 2017 Mike Pennisi. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. +// This file was procedurally generated from the following sources: +// - src/accessor-names/literal-string-line-continuation.case +// - src/accessor-names/default/cls-decl-inst.template /*--- -description: Computed values as accessor property names (string literal containing a line terminator) (Class declaration, instance method) +description: Computed values as accessor property names (string literal containing LineContinuation) (Class declaration, instance method) esid: sec-runtime-semantics-classdefinitionevaluation es6id: 14.5.14 +flags: [generated] info: | [...] 21. For each ClassElement m in order from methods @@ -26,14 +28,12 @@ var stringSet; class C { get 'line\ -Terminator' -() { return 'get string'; } +Continuation'() { return 'get string'; } set 'line\ -Terminator' -(param) { stringSet = param; } +Continuation'(param) { stringSet = param; } } -assert.sameValue(C.prototype['lineTerminator'], 'get string'); +assert.sameValue(C.prototype['lineContinuation'], 'get string'); -C.prototype['lineTerminator'] = 'set string'; +C.prototype['lineContinuation'] = 'set string'; assert.sameValue(stringSet, 'set string'); diff --git a/test/language/statements/class/accessor-name-static-literal-string-line-terminator.js b/test/language/statements/class/accessor-name-static-literal-string-line-continuation.js similarity index 63% rename from test/language/statements/class/accessor-name-static-literal-string-line-terminator.js rename to test/language/statements/class/accessor-name-static-literal-string-line-continuation.js index b68f24df8c..b08c8cd636 100644 --- a/test/language/statements/class/accessor-name-static-literal-string-line-terminator.js +++ b/test/language/statements/class/accessor-name-static-literal-string-line-continuation.js @@ -1,9 +1,11 @@ -// Copyright (C) 2017 Mike Pennisi. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. +// This file was procedurally generated from the following sources: +// - src/accessor-names/literal-string-line-continuation.case +// - src/accessor-names/default/cls-decl-static.template /*--- -description: Computed values as accessor property names (string literal containing a line terminator) (Class declaration, static method) +description: Computed values as accessor property names (string literal containing LineContinuation) (Class declaration, static method) esid: sec-runtime-semantics-classdefinitionevaluation es6id: 14.5.14 +flags: [generated] info: | [...] 21. For each ClassElement m in order from methods @@ -28,14 +30,12 @@ var stringSet; class C { static get 'line\ -Terminator' -() { return 'get string'; } +Continuation'() { return 'get string'; } static set 'line\ -Terminator' -(param) { stringSet = param; } +Continuation'(param) { stringSet = param; } } -assert.sameValue(C['lineTerminator'], 'get string'); +assert.sameValue(C['lineContinuation'], 'get string'); -C['lineTerminator'] = 'set string'; +C['lineContinuation'] = 'set string'; assert.sameValue(stringSet, 'set string'); -- GitLab