|  | // Copyright 2017 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: --validate-asm --allow-natives-syntax | 
|  |  | 
|  | (function TestValidationFailureInForStatement() { | 
|  | function Module() { | 
|  | "use asm" | 
|  | function f() { | 
|  | var a = 0; | 
|  | for (a = b; 0; 0) {}; | 
|  | return 0; | 
|  | } | 
|  | return { f:f }; | 
|  | } | 
|  | assertThrows(() => Module().f(), ReferenceError); | 
|  | assertFalse(%IsAsmWasmCode(Module)); | 
|  | })(); | 
|  |  | 
|  | (function TestForStatementInVoidFunction() { | 
|  | function Module() { | 
|  | "use asm" | 
|  | function f() { | 
|  | for (1; 0; 0) {}; | 
|  | } | 
|  | return { f:f }; | 
|  | } | 
|  | assertDoesNotThrow(() => Module().f()); | 
|  | assertTrue(%IsAsmWasmCode(Module)); | 
|  | })(); |