// 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. (function TestSloppynessPropagates() { let f = (function() { function Module() { "use asm"; function f() {} return {f: f} } return Module; })()().f; let p = Object.getOwnPropertyNames(f); assertArrayEquals(["length", "name", "arguments", "caller", "prototype"], p); assertEquals(null, f.arguments); assertEquals(null, f.caller); })(); (function TestStrictnessPropagates() { let f = (function() { "use strict"; function Module() { "use asm"; function f() {} return {f: f} } return Module; })()().f; let p = Object.getOwnPropertyNames(f); assertArrayEquals(["length", "name", "prototype"], p); assertThrows(() => f.arguments, TypeError); assertThrows(() => f.caller, TypeError); })();