| // 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. |
| |
| @generateCppClass |
| extern class JSArgumentsObject extends JSObject { |
| } |
| |
| type JSArgumentsObjectWithLength = |
| JSSloppyArgumentsObject|JSStrictArgumentsObject; |
| |
| @export |
| macro IsJSArgumentsObjectWithLength(implicit context: Context)(o: Object): |
| bool { |
| return Is<JSArgumentsObjectWithLength>(o); |
| } |
| |
| // Just a starting shape for JSObject; properties can move after initialization. |
| extern shape JSSloppyArgumentsObject extends JSArgumentsObject { |
| length: JSAny; |
| callee: JSAny; |
| } |
| |
| // Just a starting shape for JSObject; properties can move after initialization. |
| extern shape JSStrictArgumentsObject extends JSArgumentsObject { |
| length: JSAny; |
| } |
| |
| type SloppyArgumentsElements extends FixedArray; |
| |
| @generateCppClass |
| extern class AliasedArgumentsEntry extends Struct { |
| aliased_context_slot: Smi; |
| } |