using-not-allowed-at-top-level-of-eval.js (1105B)
1 // |reftest| shell-option(--enable-explicit-resource-management) skip-if(!(this.hasOwnProperty('getBuildConfiguration')&&getBuildConfiguration('explicit-resource-management'))||!xulRuntime.shell) -- explicit-resource-management is not enabled unconditionally, requires shell-options 2 // Copyright (C) 2023 Ron Buckton. All rights reserved. 3 // This code is governed by the BSD license found in the LICENSE file. 4 5 /*--- 6 esid: sec-let-const-using-and-await-using-declarations-static-semantics-early-errors 7 description: > 8 using declarations not allowed at the top level of eval. Note that Eval parses text using the Script goal. 9 info: | 10 UsingDeclaration : using BindingList ; 11 12 - It is a Syntax Error if the goal symbol is Script and UsingDeclaration is not contained, either directly or 13 indirectly, within a Block, ForStatement, ForInOfStatement, FunctionBody, GeneratorBody, 14 AsyncGeneratorBody, AsyncFunctionBody, ClassStaticBlockBody, or ClassBody. 15 16 features: [explicit-resource-management] 17 ---*/ 18 19 assert.throws(SyntaxError, function() { 20 eval('using x = null;') 21 }); 22 23 reportCompare(0, 0);