Add tests for direct eval calls in strict context

Fixes #2623
This commit is contained in:
Leo Balter 2020-05-18 10:19:28 -07:00 committed by Rick Waldron
parent 5124761d2f
commit 9338f22908
2 changed files with 40 additions and 0 deletions

View File

@ -0,0 +1,17 @@
// Copyright (C) 2020 Leo Balter. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval
description: Script will be script if strictCaller is true, inside a function context
info: |
...
10. If strictCaller is true, let strictEval be true.
...
12. Let runningContext be the running execution context.
...
---*/
assert.throws(SyntaxError, function() {
'use strict';
eval('var public = 1;');
});

View File

@ -0,0 +1,23 @@
// Copyright (C) 2020 Leo Balter. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-performeval
description: Script will be script if strictCaller is true
info: |
...
10. If strictCaller is true, let strictEval be true.
...
12. Let runningContext be the running execution context.
...
negative:
phase: runtime
type: SyntaxError
flags: [onlyStrict]
---*/
// Although the `try` statement is a more precise mechanism for detecting
// runtime errors, the behavior under test is only observable for a direct eval
// call when the call is made from the global scope. This forces the use of
// the more coarse-grained `negative` frontmatter to assert the expected error.
eval('var public = 1;');