Add unary operators with NewTarget test (#2199)

This commit is contained in:
Alexey Shvayka 2019-06-24 23:45:13 +03:00 committed by Leo Balter
parent f7f07a9010
commit 14b6bec36d

View File

@ -0,0 +1,31 @@
// 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]
---*/
(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); };
(async function() {
assert.sameValue(await new.target, undefined);
})().then($DONE, $DONE);