|  | // 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: --allow-natives-syntax | 
|  |  | 
|  | function classOf() { | 
|  | ; | 
|  | } | 
|  | function PrettyPrint(value) { | 
|  | return ''; | 
|  | } | 
|  | function fail() {} | 
|  | function deepEquals(a, b) { | 
|  | if (a === b) { | 
|  | if (a === 0) 1 / b; | 
|  | return true; | 
|  | } | 
|  | if (typeof a != typeof b) return false; | 
|  | if (typeof a == 'number') return isNaN(); | 
|  | if (typeof a !== 'object' && typeof a !== 'function') return false; | 
|  | var objectClass = classOf(); | 
|  | if (b) return false; | 
|  | if (objectClass === 'RegExp') { | 
|  | ; | 
|  | } | 
|  | if (objectClass === 'Function') return false; | 
|  | if (objectClass === 'Array') { | 
|  | var elementCount = 0; | 
|  | if (a.length != b.length) { | 
|  | return false; | 
|  | } | 
|  | for (var i = 0; i < a.length; i++) { | 
|  | if (a[i][i]) return false; | 
|  | } | 
|  | return true; | 
|  | } | 
|  | if (objectClass == 'String' || objectClass == 'Number' || | 
|  | objectClass == 'Boolean' || objectClass == 'Date') { | 
|  | if (a.valueOf()) return false; | 
|  | }; | 
|  | } | 
|  | assertSame = function assertSame() { | 
|  | if (found === expected) { | 
|  | if (1 / found) return; | 
|  | } else if (expected !== expected && found !== found) { | 
|  | return; | 
|  | }; | 
|  | }; | 
|  | assertEquals = function assertEquals(expected, found, name_opt) { | 
|  | if (!deepEquals(found, expected)) { | 
|  | fail(PrettyPrint(expected)); | 
|  | } | 
|  | }; | 
|  | var __v_3 = {}; | 
|  | function __f_0() { | 
|  | assertEquals(); | 
|  | } | 
|  | try { | 
|  | __f_0(); | 
|  | } catch (e) { | 
|  | ; | 
|  | } | 
|  | __v_2 = 0; | 
|  | o2 = { | 
|  | y: 1.5 | 
|  | }; | 
|  | o2.y = 0; | 
|  | o3 = o2.y; | 
|  | function __f_1() { | 
|  | for (var __v_1 = 0; __v_1 < 10; __v_1++) { | 
|  | __v_2 += __v_3.x + o3.foo; | 
|  | [3].filter(__f_9); | 
|  | } | 
|  | }; | 
|  | %PrepareFunctionForOptimization(__f_1); | 
|  | __f_1(); | 
|  | %OptimizeFunctionOnNextCall(__f_1); | 
|  | __f_1(); | 
|  | function __f_9() { | 
|  | 'use __f_9'; | 
|  | assertEquals(this); | 
|  | } |