| // Copyright 2019 the V8 project authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | // Flags: --no-liftoff --no-force-slow-path | 
 |  | 
 | load("test/mjsunit/wasm/wasm-module-builder.js"); | 
 |  | 
 | // This constant was chosen as it is the smallest number of cases that still | 
 | // triggers the input count overflow. The new limit put into place is smaller. | 
 | const NUM_CASES = 0xfffd; | 
 |  | 
 | (function TestBrTableTooLarge() { | 
 |   let builder = new WasmModuleBuilder(); | 
 |   let cases = new Array(NUM_CASES).fill(0); | 
 |   builder.addFunction('main', kSig_v_i) | 
 |       .addBody([].concat([ | 
 |         kExprBlock, kWasmStmt, | 
 |           kExprLocalGet, 0, | 
 |           kExprBrTable], wasmSignedLeb(NUM_CASES), | 
 |           cases, [0, | 
 |         kExprEnd | 
 |       ])).exportFunc(); | 
 |   assertThrows(() => new WebAssembly.Module(builder.toBuffer()), | 
 |     WebAssembly.CompileError, /invalid table count/); | 
 | })(); |