diff options
Diffstat (limited to 'js/src/tests/test262/language/expressions/new.target/unary-expr.js')
-rw-r--r-- | js/src/tests/test262/language/expressions/new.target/unary-expr.js | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/js/src/tests/test262/language/expressions/new.target/unary-expr.js b/js/src/tests/test262/language/expressions/new.target/unary-expr.js new file mode 100644 index 0000000000..a9302ae43e --- /dev/null +++ b/js/src/tests/test262/language/expressions/new.target/unary-expr.js @@ -0,0 +1,33 @@ +// |reftest| async +// Copyright (C) 2019 Alexey Shvayka. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +esid: prod-UnaryExpression +description: > + While increments and decrements are restricted to use with NewTarget, + other unary operators should not throw SyntaxError. +info: | + UnaryExpression[Yield, Await]: + UpdateExpression[?Yield, ?Await]: + LeftHandSideExpression[?Yield, ?Await]: + NewExpression[?Yield, ?Await]: + MemberExpression[Yield, Await]: + MetaProperty: + NewTarget +features: [new.target, async-functions] +flags: [async] +includes: [asyncHelpers.js] +---*/ + +(function() { assert.sameValue(delete (new.target), true); })(); +(function() { assert.sameValue(void new.target, undefined); })(); +new function() { assert.sameValue(typeof new.target, 'function'); }; +new function() { assert.sameValue(+(new.target), NaN); }; +(function() { assert.sameValue(-(new.target), NaN); })(); +new function() { assert.sameValue(~new.target, -1); }; +(function() { assert.sameValue(!new.target, true); })(); +new function() { assert.sameValue(delete void typeof +-~!(new.target), true); }; + +asyncTest(async function() { + assert.sameValue(await new.target, undefined); +}); |